diff --git a/lib/examples b/lib/examples
index 15c1d3e..53e778e 160000
--- a/lib/examples
+++ b/lib/examples
@@ -1 +1 @@
-Subproject commit 15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+Subproject commit 53e778ee60280bbf14af6216234579808b1b8130
diff --git a/vocs/docs/pages/examples/advanced/any_network.mdx b/vocs/docs/pages/examples/advanced/any_network.mdx
index eaf56d6..199233e 100644
--- a/vocs/docs/pages/examples/advanced/any_network.mdx
+++ b/vocs/docs/pages/examples/advanced/any_network.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/advanced/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `any_network`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/advanced/examples/any_network.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/advanced/examples/any_network.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/advanced/examples/any_network.rs).
diff --git a/vocs/docs/pages/examples/advanced/decoding_json_abi.mdx b/vocs/docs/pages/examples/advanced/decoding_json_abi.mdx
index 89a67f2..381b975 100644
--- a/vocs/docs/pages/examples/advanced/decoding_json_abi.mdx
+++ b/vocs/docs/pages/examples/advanced/decoding_json_abi.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/advanced/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `decoding_json_abi`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/advanced/examples/decoding_json_abi.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/advanced/examples/decoding_json_abi.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/advanced/examples/decoding_json_abi.rs).
diff --git a/vocs/docs/pages/examples/advanced/encoding_dyn_abi.mdx b/vocs/docs/pages/examples/advanced/encoding_dyn_abi.mdx
index bf8a785..3d81ab9 100644
--- a/vocs/docs/pages/examples/advanced/encoding_dyn_abi.mdx
+++ b/vocs/docs/pages/examples/advanced/encoding_dyn_abi.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/advanced/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `encoding_dyn_abi`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/advanced/examples/encoding_dyn_abi.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/advanced/examples/encoding_dyn_abi.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/advanced/examples/encoding_dyn_abi.rs).
diff --git a/vocs/docs/pages/examples/advanced/encoding_sol_static.mdx b/vocs/docs/pages/examples/advanced/encoding_sol_static.mdx
index 228e9ab..1fb3e7e 100644
--- a/vocs/docs/pages/examples/advanced/encoding_sol_static.mdx
+++ b/vocs/docs/pages/examples/advanced/encoding_sol_static.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/advanced/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `encoding_sol_static`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/advanced/examples/encoding_sol_static.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/advanced/examples/encoding_sol_static.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/advanced/examples/encoding_sol_static.rs).
diff --git a/vocs/docs/pages/examples/advanced/foundry_fork_db.mdx b/vocs/docs/pages/examples/advanced/foundry_fork_db.mdx
index f07a228..f969d3e 100644
--- a/vocs/docs/pages/examples/advanced/foundry_fork_db.mdx
+++ b/vocs/docs/pages/examples/advanced/foundry_fork_db.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/advanced/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `foundry_fork_db`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/advanced/examples/foundry_fork_db.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/advanced/examples/foundry_fork_db.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/advanced/examples/foundry_fork_db.rs).
diff --git a/vocs/docs/pages/examples/big-numbers/comparison_equivalence.mdx b/vocs/docs/pages/examples/big-numbers/comparison_equivalence.mdx
index 2e7cd67..92bacbf 100644
--- a/vocs/docs/pages/examples/big-numbers/comparison_equivalence.mdx
+++ b/vocs/docs/pages/examples/big-numbers/comparison_equivalence.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/big-numbers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `comparison_equivalence`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/big-numbers/examples/comparison_equivalence.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/big-numbers/examples/comparison_equivalence.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/big-numbers/examples/comparison_equivalence.rs).
diff --git a/vocs/docs/pages/examples/big-numbers/conversion.mdx b/vocs/docs/pages/examples/big-numbers/conversion.mdx
index 4d7cc6e..d8d8c97 100644
--- a/vocs/docs/pages/examples/big-numbers/conversion.mdx
+++ b/vocs/docs/pages/examples/big-numbers/conversion.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/big-numbers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `conversion`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/big-numbers/examples/conversion.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/big-numbers/examples/conversion.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/big-numbers/examples/conversion.rs).
diff --git a/vocs/docs/pages/examples/big-numbers/create_instances.mdx b/vocs/docs/pages/examples/big-numbers/create_instances.mdx
index ceb1933..48d9ae3 100644
--- a/vocs/docs/pages/examples/big-numbers/create_instances.mdx
+++ b/vocs/docs/pages/examples/big-numbers/create_instances.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/big-numbers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `create_instances`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/big-numbers/examples/create_instances.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/big-numbers/examples/create_instances.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/big-numbers/examples/create_instances.rs).
diff --git a/vocs/docs/pages/examples/big-numbers/math_operations.mdx b/vocs/docs/pages/examples/big-numbers/math_operations.mdx
index ce184e2..ae44033 100644
--- a/vocs/docs/pages/examples/big-numbers/math_operations.mdx
+++ b/vocs/docs/pages/examples/big-numbers/math_operations.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/big-numbers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `math_operations`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/big-numbers/examples/math_operations.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/big-numbers/examples/math_operations.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/big-numbers/examples/math_operations.rs).
diff --git a/vocs/docs/pages/examples/big-numbers/math_utilities.mdx b/vocs/docs/pages/examples/big-numbers/math_utilities.mdx
index 97210eb..e75458e 100644
--- a/vocs/docs/pages/examples/big-numbers/math_utilities.mdx
+++ b/vocs/docs/pages/examples/big-numbers/math_utilities.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/big-numbers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `math_utilities`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/big-numbers/examples/math_utilities.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/big-numbers/examples/math_utilities.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/big-numbers/examples/math_utilities.rs).
diff --git a/vocs/docs/pages/examples/comparison/compare_new_heads.mdx b/vocs/docs/pages/examples/comparison/compare_new_heads.mdx
index 8928c92..95aca46 100644
--- a/vocs/docs/pages/examples/comparison/compare_new_heads.mdx
+++ b/vocs/docs/pages/examples/comparison/compare_new_heads.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/comparison/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `compare_new_heads`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/comparison/examples/compare_new_heads.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/comparison/examples/compare_new_heads.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/comparison/examples/compare_new_heads.rs).
diff --git a/vocs/docs/pages/examples/comparison/compare_pending_txs.mdx b/vocs/docs/pages/examples/comparison/compare_pending_txs.mdx
index 5c4a62e..c18c0e2 100644
--- a/vocs/docs/pages/examples/comparison/compare_pending_txs.mdx
+++ b/vocs/docs/pages/examples/comparison/compare_pending_txs.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/comparison/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `compare_pending_txs`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/comparison/examples/compare_pending_txs.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/comparison/examples/compare_pending_txs.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/comparison/examples/compare_pending_txs.rs).
diff --git a/vocs/docs/pages/examples/contracts/arb_profit_calc.mdx b/vocs/docs/pages/examples/contracts/arb_profit_calc.mdx
index b93bd90..7251189 100644
--- a/vocs/docs/pages/examples/contracts/arb_profit_calc.mdx
+++ b/vocs/docs/pages/examples/contracts/arb_profit_calc.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `arb_profit_calc`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/arb_profit_calc.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/arb_profit_calc.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/arb_profit_calc.rs).
diff --git a/vocs/docs/pages/examples/contracts/deploy_and_link_library.mdx b/vocs/docs/pages/examples/contracts/deploy_and_link_library.mdx
index 75c4175..421753a 100644
--- a/vocs/docs/pages/examples/contracts/deploy_and_link_library.mdx
+++ b/vocs/docs/pages/examples/contracts/deploy_and_link_library.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `deploy_and_link_library`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/deploy_and_link_library.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/deploy_and_link_library.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/deploy_and_link_library.rs).
diff --git a/vocs/docs/pages/examples/contracts/deploy_from_artifact.mdx b/vocs/docs/pages/examples/contracts/deploy_from_artifact.mdx
index 72e9727..5689c5c 100644
--- a/vocs/docs/pages/examples/contracts/deploy_from_artifact.mdx
+++ b/vocs/docs/pages/examples/contracts/deploy_from_artifact.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `deploy_from_artifact`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/deploy_from_artifact.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/deploy_from_artifact.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/deploy_from_artifact.rs).
diff --git a/vocs/docs/pages/examples/contracts/deploy_from_bytecode.mdx b/vocs/docs/pages/examples/contracts/deploy_from_bytecode.mdx
index db4bea3..4b5c59a 100644
--- a/vocs/docs/pages/examples/contracts/deploy_from_bytecode.mdx
+++ b/vocs/docs/pages/examples/contracts/deploy_from_bytecode.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `deploy_from_bytecode`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/deploy_from_bytecode.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/deploy_from_bytecode.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/deploy_from_bytecode.rs).
diff --git a/vocs/docs/pages/examples/contracts/deploy_from_contract.mdx b/vocs/docs/pages/examples/contracts/deploy_from_contract.mdx
index 7d8ea92..ff2c361 100644
--- a/vocs/docs/pages/examples/contracts/deploy_from_contract.mdx
+++ b/vocs/docs/pages/examples/contracts/deploy_from_contract.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `deploy_from_contract`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/deploy_from_contract.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/deploy_from_contract.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/deploy_from_contract.rs).
diff --git a/vocs/docs/pages/examples/contracts/helpers.mdx b/vocs/docs/pages/examples/contracts/helpers.mdx
index 7088896..7c6084b 100644
--- a/vocs/docs/pages/examples/contracts/helpers.mdx
+++ b/vocs/docs/pages/examples/contracts/helpers.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `helpers`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/helpers.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/helpers.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/helpers.rs).
diff --git a/vocs/docs/pages/examples/contracts/interact_with_abi.mdx b/vocs/docs/pages/examples/contracts/interact_with_abi.mdx
index 27fe557..23dfe84 100644
--- a/vocs/docs/pages/examples/contracts/interact_with_abi.mdx
+++ b/vocs/docs/pages/examples/contracts/interact_with_abi.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `interact_with_abi`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/interact_with_abi.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/interact_with_abi.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/interact_with_abi.rs).
diff --git a/vocs/docs/pages/examples/contracts/interact_with_contract_instance.mdx b/vocs/docs/pages/examples/contracts/interact_with_contract_instance.mdx
index ab0ce6f..ef6373b 100644
--- a/vocs/docs/pages/examples/contracts/interact_with_contract_instance.mdx
+++ b/vocs/docs/pages/examples/contracts/interact_with_contract_instance.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `interact_with_contract_instance`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/interact_with_contract_instance.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/interact_with_contract_instance.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/interact_with_contract_instance.rs).
diff --git a/vocs/docs/pages/examples/contracts/jsonrpc_error_decoding.mdx b/vocs/docs/pages/examples/contracts/jsonrpc_error_decoding.mdx
index e2d3828..3611aec 100644
--- a/vocs/docs/pages/examples/contracts/jsonrpc_error_decoding.mdx
+++ b/vocs/docs/pages/examples/contracts/jsonrpc_error_decoding.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `jsonrpc_error_decoding`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/jsonrpc_error_decoding.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/jsonrpc_error_decoding.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/jsonrpc_error_decoding.rs).
diff --git a/vocs/docs/pages/examples/contracts/revert_decoding.mdx b/vocs/docs/pages/examples/contracts/revert_decoding.mdx
index d85559c..bc5a051 100644
--- a/vocs/docs/pages/examples/contracts/revert_decoding.mdx
+++ b/vocs/docs/pages/examples/contracts/revert_decoding.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `revert_decoding`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/revert_decoding.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/revert_decoding.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/revert_decoding.rs).
diff --git a/vocs/docs/pages/examples/contracts/simulation_uni_v2.mdx b/vocs/docs/pages/examples/contracts/simulation_uni_v2.mdx
index 073d2ff..9fbc8bf 100644
--- a/vocs/docs/pages/examples/contracts/simulation_uni_v2.mdx
+++ b/vocs/docs/pages/examples/contracts/simulation_uni_v2.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `simulation_uni_v2`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/simulation_uni_v2.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/simulation_uni_v2.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/simulation_uni_v2.rs).
diff --git a/vocs/docs/pages/examples/contracts/unknown_return_types.mdx b/vocs/docs/pages/examples/contracts/unknown_return_types.mdx
index bba39d2..8345725 100644
--- a/vocs/docs/pages/examples/contracts/unknown_return_types.mdx
+++ b/vocs/docs/pages/examples/contracts/unknown_return_types.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `unknown_return_types`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/unknown_return_types.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/unknown_return_types.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/unknown_return_types.rs).
diff --git a/vocs/docs/pages/examples/ens/README.mdx b/vocs/docs/pages/examples/ens/README.mdx
new file mode 100644
index 0000000..55f3f6b
--- /dev/null
+++ b/vocs/docs/pages/examples/ens/README.mdx
@@ -0,0 +1,3 @@
+import Template from '../../templates/ens/README.mdx'
+
+
diff --git a/vocs/docs/pages/examples/advanced/reth_db_layer.mdx b/vocs/docs/pages/examples/ens/address_lookup.mdx
similarity index 54%
rename from vocs/docs/pages/examples/advanced/reth_db_layer.mdx
rename to vocs/docs/pages/examples/ens/address_lookup.mdx
index 3bf394d..afc05a9 100644
--- a/vocs/docs/pages/examples/advanced/reth_db_layer.mdx
+++ b/vocs/docs/pages/examples/ens/address_lookup.mdx
@@ -1,18 +1,18 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
-EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/advanced/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/ens/README.mdx
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
-## Example: `reth_db_layer`
+## Example: `address_lookup`
To run this example:
- Clone the [examples](https://github.com/alloy-rs/examples) repository: `git clone git@github.com:alloy-rs/examples.git`
-- Run: `cargo run --example reth_db_layer`
+- Run: `cargo run --example address_lookup`
```rust
-// [!include ~/snippets/advanced/examples/reth_db_layer.rs]
+// [!include ~/snippets/ens/examples/address_lookup.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/advanced/examples/reth_db_layer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/ens/examples/address_lookup.rs).
diff --git a/vocs/docs/pages/examples/advanced/reth_db_provider.mdx b/vocs/docs/pages/examples/ens/name_resolution.mdx
similarity index 53%
rename from vocs/docs/pages/examples/advanced/reth_db_provider.mdx
rename to vocs/docs/pages/examples/ens/name_resolution.mdx
index 5c1ec17..ea5f5b6 100644
--- a/vocs/docs/pages/examples/advanced/reth_db_provider.mdx
+++ b/vocs/docs/pages/examples/ens/name_resolution.mdx
@@ -1,18 +1,18 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
-EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/advanced/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/ens/README.mdx
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
-## Example: `reth_db_provider`
+## Example: `name_resolution`
To run this example:
- Clone the [examples](https://github.com/alloy-rs/examples) repository: `git clone git@github.com:alloy-rs/examples.git`
-- Run: `cargo run --example reth_db_provider`
+- Run: `cargo run --example name_resolution`
```rust
-// [!include ~/snippets/advanced/examples/reth_db_provider.rs]
+// [!include ~/snippets/ens/examples/name_resolution.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/advanced/examples/reth_db_provider.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/ens/examples/name_resolution.rs).
diff --git a/vocs/docs/pages/examples/fillers/gas_filler.mdx b/vocs/docs/pages/examples/fillers/gas_filler.mdx
index c7e4505..ce1c384 100644
--- a/vocs/docs/pages/examples/fillers/gas_filler.mdx
+++ b/vocs/docs/pages/examples/fillers/gas_filler.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/fillers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `gas_filler`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/fillers/examples/gas_filler.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/fillers/examples/gas_filler.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/fillers/examples/gas_filler.rs).
diff --git a/vocs/docs/pages/examples/fillers/nonce_filler.mdx b/vocs/docs/pages/examples/fillers/nonce_filler.mdx
index fc51855..ab6d0da 100644
--- a/vocs/docs/pages/examples/fillers/nonce_filler.mdx
+++ b/vocs/docs/pages/examples/fillers/nonce_filler.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/fillers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `nonce_filler`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/fillers/examples/nonce_filler.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/fillers/examples/nonce_filler.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/fillers/examples/nonce_filler.rs).
diff --git a/vocs/docs/pages/examples/fillers/recommended_fillers.mdx b/vocs/docs/pages/examples/fillers/recommended_fillers.mdx
index 10fdc68..cb028f9 100644
--- a/vocs/docs/pages/examples/fillers/recommended_fillers.mdx
+++ b/vocs/docs/pages/examples/fillers/recommended_fillers.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/fillers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `recommended_fillers`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/fillers/examples/recommended_fillers.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/fillers/examples/recommended_fillers.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/fillers/examples/recommended_fillers.rs).
diff --git a/vocs/docs/pages/examples/fillers/urgent_filler.mdx b/vocs/docs/pages/examples/fillers/urgent_filler.mdx
index dcf8b57..6a33fdd 100644
--- a/vocs/docs/pages/examples/fillers/urgent_filler.mdx
+++ b/vocs/docs/pages/examples/fillers/urgent_filler.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/fillers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `urgent_filler`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/fillers/examples/urgent_filler.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/fillers/examples/urgent_filler.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/fillers/examples/urgent_filler.rs).
diff --git a/vocs/docs/pages/examples/fillers/wallet_filler.mdx b/vocs/docs/pages/examples/fillers/wallet_filler.mdx
index 84f1179..dca0743 100644
--- a/vocs/docs/pages/examples/fillers/wallet_filler.mdx
+++ b/vocs/docs/pages/examples/fillers/wallet_filler.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/fillers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `wallet_filler`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/fillers/examples/wallet_filler.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/fillers/examples/wallet_filler.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/fillers/examples/wallet_filler.rs).
diff --git a/vocs/docs/pages/examples/layers/delay_layer.mdx b/vocs/docs/pages/examples/layers/delay_layer.mdx
index e7c6f62..388b44e 100644
--- a/vocs/docs/pages/examples/layers/delay_layer.mdx
+++ b/vocs/docs/pages/examples/layers/delay_layer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/layers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `delay_layer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/layers/examples/delay_layer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/layers/examples/delay_layer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/layers/examples/delay_layer.rs).
diff --git a/vocs/docs/pages/examples/layers/fallback_layer.mdx b/vocs/docs/pages/examples/layers/fallback_layer.mdx
index 53e1f89..8b41871 100644
--- a/vocs/docs/pages/examples/layers/fallback_layer.mdx
+++ b/vocs/docs/pages/examples/layers/fallback_layer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/layers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `fallback_layer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/layers/examples/fallback_layer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/layers/examples/fallback_layer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/layers/examples/fallback_layer.rs).
diff --git a/vocs/docs/pages/examples/layers/hyper_http_layer.mdx b/vocs/docs/pages/examples/layers/hyper_http_layer.mdx
index 5fa35fb..e79da06 100644
--- a/vocs/docs/pages/examples/layers/hyper_http_layer.mdx
+++ b/vocs/docs/pages/examples/layers/hyper_http_layer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/layers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `hyper_http_layer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/layers/examples/hyper_http_layer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/layers/examples/hyper_http_layer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/layers/examples/hyper_http_layer.rs).
diff --git a/vocs/docs/pages/examples/layers/logging_layer.mdx b/vocs/docs/pages/examples/layers/logging_layer.mdx
index 63f130e..6f4da93 100644
--- a/vocs/docs/pages/examples/layers/logging_layer.mdx
+++ b/vocs/docs/pages/examples/layers/logging_layer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/layers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `logging_layer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/layers/examples/logging_layer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/layers/examples/logging_layer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/layers/examples/logging_layer.rs).
diff --git a/vocs/docs/pages/examples/layers/retry_layer.mdx b/vocs/docs/pages/examples/layers/retry_layer.mdx
index d6e25a8..b4b0d5c 100644
--- a/vocs/docs/pages/examples/layers/retry_layer.mdx
+++ b/vocs/docs/pages/examples/layers/retry_layer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/layers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `retry_layer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/layers/examples/retry_layer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/layers/examples/retry_layer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/layers/examples/retry_layer.rs).
diff --git a/vocs/docs/pages/examples/node-bindings/anvil_deploy_contract.mdx b/vocs/docs/pages/examples/node-bindings/anvil_deploy_contract.mdx
index 0d52285..ff66ead 100644
--- a/vocs/docs/pages/examples/node-bindings/anvil_deploy_contract.mdx
+++ b/vocs/docs/pages/examples/node-bindings/anvil_deploy_contract.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/node-bindings/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `anvil_deploy_contract`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/node-bindings/examples/anvil_deploy_contract.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/node-bindings/examples/anvil_deploy_contract.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/node-bindings/examples/anvil_deploy_contract.rs).
diff --git a/vocs/docs/pages/examples/node-bindings/anvil_fork_instance.mdx b/vocs/docs/pages/examples/node-bindings/anvil_fork_instance.mdx
index 99d0727..33d05f3 100644
--- a/vocs/docs/pages/examples/node-bindings/anvil_fork_instance.mdx
+++ b/vocs/docs/pages/examples/node-bindings/anvil_fork_instance.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/node-bindings/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `anvil_fork_instance`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/node-bindings/examples/anvil_fork_instance.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/node-bindings/examples/anvil_fork_instance.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/node-bindings/examples/anvil_fork_instance.rs).
diff --git a/vocs/docs/pages/examples/node-bindings/anvil_fork_provider.mdx b/vocs/docs/pages/examples/node-bindings/anvil_fork_provider.mdx
index 3d6994e..925538e 100644
--- a/vocs/docs/pages/examples/node-bindings/anvil_fork_provider.mdx
+++ b/vocs/docs/pages/examples/node-bindings/anvil_fork_provider.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/node-bindings/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `anvil_fork_provider`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/node-bindings/examples/anvil_fork_provider.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/node-bindings/examples/anvil_fork_provider.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/node-bindings/examples/anvil_fork_provider.rs).
diff --git a/vocs/docs/pages/examples/node-bindings/anvil_local_instance.mdx b/vocs/docs/pages/examples/node-bindings/anvil_local_instance.mdx
index 8925838..73bde80 100644
--- a/vocs/docs/pages/examples/node-bindings/anvil_local_instance.mdx
+++ b/vocs/docs/pages/examples/node-bindings/anvil_local_instance.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/node-bindings/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `anvil_local_instance`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/node-bindings/examples/anvil_local_instance.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/node-bindings/examples/anvil_local_instance.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/node-bindings/examples/anvil_local_instance.rs).
diff --git a/vocs/docs/pages/examples/node-bindings/anvil_local_provider.mdx b/vocs/docs/pages/examples/node-bindings/anvil_local_provider.mdx
index 51b7c92..ed65217 100644
--- a/vocs/docs/pages/examples/node-bindings/anvil_local_provider.mdx
+++ b/vocs/docs/pages/examples/node-bindings/anvil_local_provider.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/node-bindings/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `anvil_local_provider`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/node-bindings/examples/anvil_local_provider.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/node-bindings/examples/anvil_local_provider.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/node-bindings/examples/anvil_local_provider.rs).
diff --git a/vocs/docs/pages/examples/node-bindings/anvil_set_storage_at.mdx b/vocs/docs/pages/examples/node-bindings/anvil_set_storage_at.mdx
index a7b87e3..ebf759c 100644
--- a/vocs/docs/pages/examples/node-bindings/anvil_set_storage_at.mdx
+++ b/vocs/docs/pages/examples/node-bindings/anvil_set_storage_at.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/node-bindings/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `anvil_set_storage_at`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/node-bindings/examples/anvil_set_storage_at.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/node-bindings/examples/anvil_set_storage_at.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/node-bindings/examples/anvil_set_storage_at.rs).
diff --git a/vocs/docs/pages/examples/node-bindings/geth_local_instance.mdx b/vocs/docs/pages/examples/node-bindings/geth_local_instance.mdx
index 83f38ee..b69c3e2 100644
--- a/vocs/docs/pages/examples/node-bindings/geth_local_instance.mdx
+++ b/vocs/docs/pages/examples/node-bindings/geth_local_instance.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/node-bindings/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `geth_local_instance`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/node-bindings/examples/geth_local_instance.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/node-bindings/examples/geth_local_instance.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/node-bindings/examples/geth_local_instance.rs).
diff --git a/vocs/docs/pages/examples/node-bindings/reth_local_instance.mdx b/vocs/docs/pages/examples/node-bindings/reth_local_instance.mdx
index 1acee0b..fffe79c 100644
--- a/vocs/docs/pages/examples/node-bindings/reth_local_instance.mdx
+++ b/vocs/docs/pages/examples/node-bindings/reth_local_instance.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/node-bindings/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `reth_local_instance`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/node-bindings/examples/reth_local_instance.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/node-bindings/examples/reth_local_instance.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/node-bindings/examples/reth_local_instance.rs).
diff --git a/vocs/docs/pages/examples/primitives/bytes_and_address_types.mdx b/vocs/docs/pages/examples/primitives/bytes_and_address_types.mdx
index b11a920..04b1952 100644
--- a/vocs/docs/pages/examples/primitives/bytes_and_address_types.mdx
+++ b/vocs/docs/pages/examples/primitives/bytes_and_address_types.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/primitives/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `bytes_and_address_types`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/primitives/examples/bytes_and_address_types.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/primitives/examples/bytes_and_address_types.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/primitives/examples/bytes_and_address_types.rs).
diff --git a/vocs/docs/pages/examples/primitives/hashing_functions.mdx b/vocs/docs/pages/examples/primitives/hashing_functions.mdx
index c609470..6956be1 100644
--- a/vocs/docs/pages/examples/primitives/hashing_functions.mdx
+++ b/vocs/docs/pages/examples/primitives/hashing_functions.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/primitives/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `hashing_functions`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/primitives/examples/hashing_functions.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/primitives/examples/hashing_functions.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/primitives/examples/hashing_functions.rs).
diff --git a/vocs/docs/pages/examples/providers/basic_provider.mdx b/vocs/docs/pages/examples/providers/basic_provider.mdx
index 1b49f50..e64e66c 100644
--- a/vocs/docs/pages/examples/providers/basic_provider.mdx
+++ b/vocs/docs/pages/examples/providers/basic_provider.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `basic_provider`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/basic_provider.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/basic_provider.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/basic_provider.rs).
diff --git a/vocs/docs/pages/examples/providers/batch_rpc.mdx b/vocs/docs/pages/examples/providers/batch_rpc.mdx
index 2f3216a..98ece75 100644
--- a/vocs/docs/pages/examples/providers/batch_rpc.mdx
+++ b/vocs/docs/pages/examples/providers/batch_rpc.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `batch_rpc`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/batch_rpc.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/batch_rpc.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/batch_rpc.rs).
diff --git a/vocs/docs/pages/examples/providers/builder.mdx b/vocs/docs/pages/examples/providers/builder.mdx
index 97f7b47..0249313 100644
--- a/vocs/docs/pages/examples/providers/builder.mdx
+++ b/vocs/docs/pages/examples/providers/builder.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `builder`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/builder.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/builder.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/builder.rs).
diff --git a/vocs/docs/pages/examples/providers/builtin.mdx b/vocs/docs/pages/examples/providers/builtin.mdx
index d580f8d..1b2cef1 100644
--- a/vocs/docs/pages/examples/providers/builtin.mdx
+++ b/vocs/docs/pages/examples/providers/builtin.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `builtin`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/builtin.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/builtin.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/builtin.rs).
diff --git a/vocs/docs/pages/examples/providers/dyn_provider.mdx b/vocs/docs/pages/examples/providers/dyn_provider.mdx
index 3c2fd97..4412591 100644
--- a/vocs/docs/pages/examples/providers/dyn_provider.mdx
+++ b/vocs/docs/pages/examples/providers/dyn_provider.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `dyn_provider`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/dyn_provider.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/dyn_provider.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/dyn_provider.rs).
diff --git a/vocs/docs/pages/examples/providers/embed_consensus_rpc.mdx b/vocs/docs/pages/examples/providers/embed_consensus_rpc.mdx
index e141799..12fc38a 100644
--- a/vocs/docs/pages/examples/providers/embed_consensus_rpc.mdx
+++ b/vocs/docs/pages/examples/providers/embed_consensus_rpc.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `embed_consensus_rpc`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/embed_consensus_rpc.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/embed_consensus_rpc.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/embed_consensus_rpc.rs).
diff --git a/vocs/docs/pages/examples/providers/http.mdx b/vocs/docs/pages/examples/providers/http.mdx
index 803f3a9..6470360 100644
--- a/vocs/docs/pages/examples/providers/http.mdx
+++ b/vocs/docs/pages/examples/providers/http.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `http`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/http.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/http.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/http.rs).
diff --git a/vocs/docs/pages/examples/providers/http_with_auth.mdx b/vocs/docs/pages/examples/providers/http_with_auth.mdx
index 397c365..2ef301f 100644
--- a/vocs/docs/pages/examples/providers/http_with_auth.mdx
+++ b/vocs/docs/pages/examples/providers/http_with_auth.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `http_with_auth`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/http_with_auth.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/http_with_auth.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/http_with_auth.rs).
diff --git a/vocs/docs/pages/examples/providers/ipc.mdx b/vocs/docs/pages/examples/providers/ipc.mdx
index 6f78b79..9657344 100644
--- a/vocs/docs/pages/examples/providers/ipc.mdx
+++ b/vocs/docs/pages/examples/providers/ipc.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `ipc`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/ipc.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/ipc.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/ipc.rs).
diff --git a/vocs/docs/pages/examples/providers/mocking.mdx b/vocs/docs/pages/examples/providers/mocking.mdx
index 0203847..28b78de 100644
--- a/vocs/docs/pages/examples/providers/mocking.mdx
+++ b/vocs/docs/pages/examples/providers/mocking.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `mocking`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/mocking.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/mocking.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/mocking.rs).
diff --git a/vocs/docs/pages/examples/providers/multicall.mdx b/vocs/docs/pages/examples/providers/multicall.mdx
index 84304df..6c1696d 100644
--- a/vocs/docs/pages/examples/providers/multicall.mdx
+++ b/vocs/docs/pages/examples/providers/multicall.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `multicall`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/multicall.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/multicall.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/multicall.rs).
diff --git a/vocs/docs/pages/examples/providers/multicall_batching.mdx b/vocs/docs/pages/examples/providers/multicall_batching.mdx
index e5078c1..f871bf3 100644
--- a/vocs/docs/pages/examples/providers/multicall_batching.mdx
+++ b/vocs/docs/pages/examples/providers/multicall_batching.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `multicall_batching`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/multicall_batching.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/multicall_batching.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/multicall_batching.rs).
diff --git a/vocs/docs/pages/examples/providers/wrapped_provider.mdx b/vocs/docs/pages/examples/providers/wrapped_provider.mdx
index f31db73..2eddfee 100644
--- a/vocs/docs/pages/examples/providers/wrapped_provider.mdx
+++ b/vocs/docs/pages/examples/providers/wrapped_provider.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `wrapped_provider`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/wrapped_provider.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/wrapped_provider.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/wrapped_provider.rs).
diff --git a/vocs/docs/pages/examples/providers/ws.mdx b/vocs/docs/pages/examples/providers/ws.mdx
index bed1e3a..aee4c0e 100644
--- a/vocs/docs/pages/examples/providers/ws.mdx
+++ b/vocs/docs/pages/examples/providers/ws.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `ws`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/ws.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/ws.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/ws.rs).
diff --git a/vocs/docs/pages/examples/providers/ws_with_auth.mdx b/vocs/docs/pages/examples/providers/ws_with_auth.mdx
index dc8db5a..01f52d6 100644
--- a/vocs/docs/pages/examples/providers/ws_with_auth.mdx
+++ b/vocs/docs/pages/examples/providers/ws_with_auth.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/providers/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `ws_with_auth`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/providers/examples/ws_with_auth.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/providers/examples/ws_with_auth.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/providers/examples/ws_with_auth.rs).
diff --git a/vocs/docs/pages/examples/queries/query_contract_storage.mdx b/vocs/docs/pages/examples/queries/query_contract_storage.mdx
index 0774838..f7a2e5e 100644
--- a/vocs/docs/pages/examples/queries/query_contract_storage.mdx
+++ b/vocs/docs/pages/examples/queries/query_contract_storage.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/queries/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `query_contract_storage`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/queries/examples/query_contract_storage.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/queries/examples/query_contract_storage.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/queries/examples/query_contract_storage.rs).
diff --git a/vocs/docs/pages/examples/queries/query_deployed_bytecode.mdx b/vocs/docs/pages/examples/queries/query_deployed_bytecode.mdx
index 0b9f723..0f4e073 100644
--- a/vocs/docs/pages/examples/queries/query_deployed_bytecode.mdx
+++ b/vocs/docs/pages/examples/queries/query_deployed_bytecode.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/queries/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `query_deployed_bytecode`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/queries/examples/query_deployed_bytecode.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/queries/examples/query_deployed_bytecode.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/queries/examples/query_deployed_bytecode.rs).
diff --git a/vocs/docs/pages/examples/queries/query_logs.mdx b/vocs/docs/pages/examples/queries/query_logs.mdx
index 729ab8b..8a8f81b 100644
--- a/vocs/docs/pages/examples/queries/query_logs.mdx
+++ b/vocs/docs/pages/examples/queries/query_logs.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/queries/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `query_logs`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/queries/examples/query_logs.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/queries/examples/query_logs.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/queries/examples/query_logs.rs).
diff --git a/vocs/docs/pages/examples/sol-macro/all_derives.mdx b/vocs/docs/pages/examples/sol-macro/all_derives.mdx
index a901d72..a9c7838 100644
--- a/vocs/docs/pages/examples/sol-macro/all_derives.mdx
+++ b/vocs/docs/pages/examples/sol-macro/all_derives.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/sol-macro/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `all_derives`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/sol-macro/examples/all_derives.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/sol-macro/examples/all_derives.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/sol-macro/examples/all_derives.rs).
diff --git a/vocs/docs/pages/examples/sol-macro/contract.mdx b/vocs/docs/pages/examples/sol-macro/contract.mdx
index 7d8ea92..ff2c361 100644
--- a/vocs/docs/pages/examples/sol-macro/contract.mdx
+++ b/vocs/docs/pages/examples/sol-macro/contract.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/contracts/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `deploy_from_contract`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/contracts/examples/deploy_from_contract.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/contracts/examples/deploy_from_contract.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/contracts/examples/deploy_from_contract.rs).
diff --git a/vocs/docs/pages/examples/sol-macro/decode_returns.mdx b/vocs/docs/pages/examples/sol-macro/decode_returns.mdx
index 40dfbc9..d37f267 100644
--- a/vocs/docs/pages/examples/sol-macro/decode_returns.mdx
+++ b/vocs/docs/pages/examples/sol-macro/decode_returns.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/sol-macro/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `decode_returns`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/sol-macro/examples/decode_returns.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/sol-macro/examples/decode_returns.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/sol-macro/examples/decode_returns.rs).
diff --git a/vocs/docs/pages/examples/sol-macro/events_errors.mdx b/vocs/docs/pages/examples/sol-macro/events_errors.mdx
index 92e2459..f641abf 100644
--- a/vocs/docs/pages/examples/sol-macro/events_errors.mdx
+++ b/vocs/docs/pages/examples/sol-macro/events_errors.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/sol-macro/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `events_errors`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/sol-macro/examples/events_errors.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/sol-macro/examples/events_errors.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/sol-macro/examples/events_errors.rs).
diff --git a/vocs/docs/pages/examples/sol-macro/extra_derives.mdx b/vocs/docs/pages/examples/sol-macro/extra_derives.mdx
index 636c243..48ba6f8 100644
--- a/vocs/docs/pages/examples/sol-macro/extra_derives.mdx
+++ b/vocs/docs/pages/examples/sol-macro/extra_derives.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/sol-macro/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `extra_derives`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/sol-macro/examples/extra_derives.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/sol-macro/examples/extra_derives.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/sol-macro/examples/extra_derives.rs).
diff --git a/vocs/docs/pages/examples/sol-macro/structs_enums.mdx b/vocs/docs/pages/examples/sol-macro/structs_enums.mdx
index 7041a2c..f1d0008 100644
--- a/vocs/docs/pages/examples/sol-macro/structs_enums.mdx
+++ b/vocs/docs/pages/examples/sol-macro/structs_enums.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/sol-macro/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `structs_enums`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/sol-macro/examples/structs_enums.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/sol-macro/examples/structs_enums.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/sol-macro/examples/structs_enums.rs).
diff --git a/vocs/docs/pages/examples/sol-macro/user_defined_types.mdx b/vocs/docs/pages/examples/sol-macro/user_defined_types.mdx
index 201e341..f8d9106 100644
--- a/vocs/docs/pages/examples/sol-macro/user_defined_types.mdx
+++ b/vocs/docs/pages/examples/sol-macro/user_defined_types.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/sol-macro/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `user_defined_types`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/sol-macro/examples/user_defined_types.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/sol-macro/examples/user_defined_types.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/sol-macro/examples/user_defined_types.rs).
diff --git a/vocs/docs/pages/examples/subscriptions/event_multiplexer.mdx b/vocs/docs/pages/examples/subscriptions/event_multiplexer.mdx
index 4b6cf77..0353b03 100644
--- a/vocs/docs/pages/examples/subscriptions/event_multiplexer.mdx
+++ b/vocs/docs/pages/examples/subscriptions/event_multiplexer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/subscriptions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `event_multiplexer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/subscriptions/examples/event_multiplexer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/subscriptions/examples/event_multiplexer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/subscriptions/examples/event_multiplexer.rs).
diff --git a/vocs/docs/pages/examples/subscriptions/poll_logs.mdx b/vocs/docs/pages/examples/subscriptions/poll_logs.mdx
index 3cf5886..f876a6c 100644
--- a/vocs/docs/pages/examples/subscriptions/poll_logs.mdx
+++ b/vocs/docs/pages/examples/subscriptions/poll_logs.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/subscriptions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `poll_logs`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/subscriptions/examples/poll_logs.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/subscriptions/examples/poll_logs.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/subscriptions/examples/poll_logs.rs).
diff --git a/vocs/docs/pages/examples/subscriptions/subscribe_all_logs.mdx b/vocs/docs/pages/examples/subscriptions/subscribe_all_logs.mdx
index 3e16fb2..aace02c 100644
--- a/vocs/docs/pages/examples/subscriptions/subscribe_all_logs.mdx
+++ b/vocs/docs/pages/examples/subscriptions/subscribe_all_logs.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/subscriptions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `subscribe_all_logs`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/subscriptions/examples/subscribe_all_logs.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/subscriptions/examples/subscribe_all_logs.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/subscriptions/examples/subscribe_all_logs.rs).
diff --git a/vocs/docs/pages/examples/subscriptions/subscribe_blocks.mdx b/vocs/docs/pages/examples/subscriptions/subscribe_blocks.mdx
index 301115a..2488507 100644
--- a/vocs/docs/pages/examples/subscriptions/subscribe_blocks.mdx
+++ b/vocs/docs/pages/examples/subscriptions/subscribe_blocks.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/subscriptions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `subscribe_blocks`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/subscriptions/examples/subscribe_blocks.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/subscriptions/examples/subscribe_blocks.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/subscriptions/examples/subscribe_blocks.rs).
diff --git a/vocs/docs/pages/examples/subscriptions/subscribe_logs.mdx b/vocs/docs/pages/examples/subscriptions/subscribe_logs.mdx
index 61eff4c..bea6088 100644
--- a/vocs/docs/pages/examples/subscriptions/subscribe_logs.mdx
+++ b/vocs/docs/pages/examples/subscriptions/subscribe_logs.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/subscriptions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `subscribe_logs`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/subscriptions/examples/subscribe_logs.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/subscriptions/examples/subscribe_logs.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/subscriptions/examples/subscribe_logs.rs).
diff --git a/vocs/docs/pages/examples/subscriptions/subscribe_pending_transactions.mdx b/vocs/docs/pages/examples/subscriptions/subscribe_pending_transactions.mdx
index 6ffa3bf..fbf80e8 100644
--- a/vocs/docs/pages/examples/subscriptions/subscribe_pending_transactions.mdx
+++ b/vocs/docs/pages/examples/subscriptions/subscribe_pending_transactions.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/subscriptions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `subscribe_pending_transactions`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/subscriptions/examples/subscribe_pending_transactions.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/subscriptions/examples/subscribe_pending_transactions.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/subscriptions/examples/subscribe_pending_transactions.rs).
diff --git a/vocs/docs/pages/examples/transactions/debug_trace_call_many.mdx b/vocs/docs/pages/examples/transactions/debug_trace_call_many.mdx
index ec46627..efeef8d 100644
--- a/vocs/docs/pages/examples/transactions/debug_trace_call_many.mdx
+++ b/vocs/docs/pages/examples/transactions/debug_trace_call_many.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `debug_trace_call_many`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/debug_trace_call_many.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/debug_trace_call_many.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/debug_trace_call_many.rs).
diff --git a/vocs/docs/pages/examples/transactions/decode_input.mdx b/vocs/docs/pages/examples/transactions/decode_input.mdx
index a7a00a4..1440fbd 100644
--- a/vocs/docs/pages/examples/transactions/decode_input.mdx
+++ b/vocs/docs/pages/examples/transactions/decode_input.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `decode_input`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/decode_input.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/decode_input.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/decode_input.rs).
diff --git a/vocs/docs/pages/examples/transactions/decode_receipt_log.mdx b/vocs/docs/pages/examples/transactions/decode_receipt_log.mdx
index d61cca2..22ea305 100644
--- a/vocs/docs/pages/examples/transactions/decode_receipt_log.mdx
+++ b/vocs/docs/pages/examples/transactions/decode_receipt_log.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `decode_receipt_log`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/decode_receipt_log.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/decode_receipt_log.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/decode_receipt_log.rs).
diff --git a/vocs/docs/pages/examples/transactions/encode_decode_eip1559.mdx b/vocs/docs/pages/examples/transactions/encode_decode_eip1559.mdx
index 18a258a..680e121 100644
--- a/vocs/docs/pages/examples/transactions/encode_decode_eip1559.mdx
+++ b/vocs/docs/pages/examples/transactions/encode_decode_eip1559.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `encode_decode_eip1559`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/encode_decode_eip1559.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/encode_decode_eip1559.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/encode_decode_eip1559.rs).
diff --git a/vocs/docs/pages/examples/transactions/gas_price_usd.mdx b/vocs/docs/pages/examples/transactions/gas_price_usd.mdx
index 25caee8..6a7122a 100644
--- a/vocs/docs/pages/examples/transactions/gas_price_usd.mdx
+++ b/vocs/docs/pages/examples/transactions/gas_price_usd.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `gas_price_usd`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/gas_price_usd.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/blob/main/examples/transactions/examples/gas_price_usd.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/gas_price_usd.rs).
diff --git a/vocs/docs/pages/examples/transactions/permit2_signature_transfer.mdx b/vocs/docs/pages/examples/transactions/permit2_signature_transfer.mdx
index f4ab17b..f839321 100644
--- a/vocs/docs/pages/examples/transactions/permit2_signature_transfer.mdx
+++ b/vocs/docs/pages/examples/transactions/permit2_signature_transfer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `permit2_signature_transfer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/permit2_signature_transfer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/permit2_signature_transfer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/permit2_signature_transfer.rs).
diff --git a/vocs/docs/pages/examples/transactions/send_eip1559_transaction.mdx b/vocs/docs/pages/examples/transactions/send_eip1559_transaction.mdx
index efecfac..50379ed 100644
--- a/vocs/docs/pages/examples/transactions/send_eip1559_transaction.mdx
+++ b/vocs/docs/pages/examples/transactions/send_eip1559_transaction.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `send_eip1559_transaction`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/send_eip1559_transaction.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/send_eip1559_transaction.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/send_eip1559_transaction.rs).
diff --git a/vocs/docs/pages/examples/transactions/send_eip4844_transaction.mdx b/vocs/docs/pages/examples/transactions/send_eip4844_transaction.mdx
index d4f5fa7..2a67227 100644
--- a/vocs/docs/pages/examples/transactions/send_eip4844_transaction.mdx
+++ b/vocs/docs/pages/examples/transactions/send_eip4844_transaction.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `send_eip4844_transaction`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/send_eip4844_transaction.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/send_eip4844_transaction.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/send_eip4844_transaction.rs).
diff --git a/vocs/docs/pages/examples/transactions/send_eip7594_transaction.mdx b/vocs/docs/pages/examples/transactions/send_eip7594_transaction.mdx
new file mode 100644
index 0000000..e26c93c
--- /dev/null
+++ b/vocs/docs/pages/examples/transactions/send_eip7594_transaction.mdx
@@ -0,0 +1,18 @@
+{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
+ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
+EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
+*/}
+
+## Example: `send_eip7594_transaction`
+
+To run this example:
+
+- Clone the [examples](https://github.com/alloy-rs/examples) repository: `git clone git@github.com:alloy-rs/examples.git`
+- Run: `cargo run --example send_eip7594_transaction`
+
+```rust
+// [!include ~/snippets/transactions/examples/send_eip7594_transaction.rs]
+```
+
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/send_eip7594_transaction.rs).
diff --git a/vocs/docs/pages/examples/transactions/send_eip7702_transaction.mdx b/vocs/docs/pages/examples/transactions/send_eip7702_transaction.mdx
index 4d2e83f..5f64b0e 100644
--- a/vocs/docs/pages/examples/transactions/send_eip7702_transaction.mdx
+++ b/vocs/docs/pages/examples/transactions/send_eip7702_transaction.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `send_eip7702_transaction`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/send_eip7702_transaction.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/send_eip7702_transaction.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/send_eip7702_transaction.rs).
diff --git a/vocs/docs/pages/examples/transactions/send_legacy_transaction.mdx b/vocs/docs/pages/examples/transactions/send_legacy_transaction.mdx
index 77bc160..9b6bed8 100644
--- a/vocs/docs/pages/examples/transactions/send_legacy_transaction.mdx
+++ b/vocs/docs/pages/examples/transactions/send_legacy_transaction.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `send_legacy_transaction`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/send_legacy_transaction.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/send_legacy_transaction.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/send_legacy_transaction.rs).
diff --git a/vocs/docs/pages/examples/transactions/send_private_transaction.mdx b/vocs/docs/pages/examples/transactions/send_private_transaction.mdx
index 8adcca0..aa93c63 100644
--- a/vocs/docs/pages/examples/transactions/send_private_transaction.mdx
+++ b/vocs/docs/pages/examples/transactions/send_private_transaction.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `send_private_transaction`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/send_private_transaction.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/send_private_transaction.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/send_private_transaction.rs).
diff --git a/vocs/docs/pages/examples/transactions/send_raw_transaction.mdx b/vocs/docs/pages/examples/transactions/send_raw_transaction.mdx
index aedba5c..dac2fc3 100644
--- a/vocs/docs/pages/examples/transactions/send_raw_transaction.mdx
+++ b/vocs/docs/pages/examples/transactions/send_raw_transaction.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `send_raw_transaction`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/send_raw_transaction.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/send_raw_transaction.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/send_raw_transaction.rs).
diff --git a/vocs/docs/pages/examples/transactions/trace_call.mdx b/vocs/docs/pages/examples/transactions/trace_call.mdx
index 7186e5f..25bd09a 100644
--- a/vocs/docs/pages/examples/transactions/trace_call.mdx
+++ b/vocs/docs/pages/examples/transactions/trace_call.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `trace_call`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/trace_call.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/trace_call.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/trace_call.rs).
diff --git a/vocs/docs/pages/examples/transactions/trace_call_many.mdx b/vocs/docs/pages/examples/transactions/trace_call_many.mdx
index 52a0015..a48938a 100644
--- a/vocs/docs/pages/examples/transactions/trace_call_many.mdx
+++ b/vocs/docs/pages/examples/transactions/trace_call_many.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `trace_call_many`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/trace_call_many.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/trace_call_many.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/trace_call_many.rs).
diff --git a/vocs/docs/pages/examples/transactions/trace_transaction.mdx b/vocs/docs/pages/examples/transactions/trace_transaction.mdx
index c1a2b9f..3dd7340 100644
--- a/vocs/docs/pages/examples/transactions/trace_transaction.mdx
+++ b/vocs/docs/pages/examples/transactions/trace_transaction.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `trace_transaction`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/trace_transaction.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/trace_transaction.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/trace_transaction.rs).
diff --git a/vocs/docs/pages/examples/transactions/transfer_erc20.mdx b/vocs/docs/pages/examples/transactions/transfer_erc20.mdx
index 8d0d216..1573bf3 100644
--- a/vocs/docs/pages/examples/transactions/transfer_erc20.mdx
+++ b/vocs/docs/pages/examples/transactions/transfer_erc20.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `transfer_erc20`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/transfer_erc20.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/transfer_erc20.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/transfer_erc20.rs).
diff --git a/vocs/docs/pages/examples/transactions/transfer_eth.mdx b/vocs/docs/pages/examples/transactions/transfer_eth.mdx
index 81b5f09..6aa977d 100644
--- a/vocs/docs/pages/examples/transactions/transfer_eth.mdx
+++ b/vocs/docs/pages/examples/transactions/transfer_eth.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `transfer_eth`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/transfer_eth.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/transfer_eth.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/transfer_eth.rs).
diff --git a/vocs/docs/pages/examples/transactions/with_access_list.mdx b/vocs/docs/pages/examples/transactions/with_access_list.mdx
index 84bd324..dd152da 100644
--- a/vocs/docs/pages/examples/transactions/with_access_list.mdx
+++ b/vocs/docs/pages/examples/transactions/with_access_list.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/transactions/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `with_access_list`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/transactions/examples/with_access_list.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/transactions/examples/with_access_list.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/transactions/examples/with_access_list.rs).
diff --git a/vocs/docs/pages/examples/wallets/aws_signer.mdx b/vocs/docs/pages/examples/wallets/aws_signer.mdx
index 6fd100f..473ff7b 100644
--- a/vocs/docs/pages/examples/wallets/aws_signer.mdx
+++ b/vocs/docs/pages/examples/wallets/aws_signer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `aws_signer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/aws_signer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/aws_signer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/aws_signer.rs).
diff --git a/vocs/docs/pages/examples/wallets/create_keystore.mdx b/vocs/docs/pages/examples/wallets/create_keystore.mdx
index f4a4197..c63644b 100644
--- a/vocs/docs/pages/examples/wallets/create_keystore.mdx
+++ b/vocs/docs/pages/examples/wallets/create_keystore.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `create_keystore`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/create_keystore.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/create_keystore.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/create_keystore.rs).
diff --git a/vocs/docs/pages/examples/wallets/ethereum_wallet.mdx b/vocs/docs/pages/examples/wallets/ethereum_wallet.mdx
index 33e242b..98fcdd3 100644
--- a/vocs/docs/pages/examples/wallets/ethereum_wallet.mdx
+++ b/vocs/docs/pages/examples/wallets/ethereum_wallet.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `ethereum_wallet`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/ethereum_wallet.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/ethereum_wallet.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/ethereum_wallet.rs).
diff --git a/vocs/docs/pages/examples/wallets/gcp_signer.mdx b/vocs/docs/pages/examples/wallets/gcp_signer.mdx
index 8447858..c7606c3 100644
--- a/vocs/docs/pages/examples/wallets/gcp_signer.mdx
+++ b/vocs/docs/pages/examples/wallets/gcp_signer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `gcp_signer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/gcp_signer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/gcp_signer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/gcp_signer.rs).
diff --git a/vocs/docs/pages/examples/wallets/keystore_signer.mdx b/vocs/docs/pages/examples/wallets/keystore_signer.mdx
index e64140d..cc1dea7 100644
--- a/vocs/docs/pages/examples/wallets/keystore_signer.mdx
+++ b/vocs/docs/pages/examples/wallets/keystore_signer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `keystore_signer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/keystore_signer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/keystore_signer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/keystore_signer.rs).
diff --git a/vocs/docs/pages/examples/wallets/ledger_signer.mdx b/vocs/docs/pages/examples/wallets/ledger_signer.mdx
index 23e5d68..0b27a67 100644
--- a/vocs/docs/pages/examples/wallets/ledger_signer.mdx
+++ b/vocs/docs/pages/examples/wallets/ledger_signer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `ledger_signer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/ledger_signer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/ledger_signer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/ledger_signer.rs).
diff --git a/vocs/docs/pages/examples/wallets/mnemonic_signer.mdx b/vocs/docs/pages/examples/wallets/mnemonic_signer.mdx
index fa75434..9262344 100644
--- a/vocs/docs/pages/examples/wallets/mnemonic_signer.mdx
+++ b/vocs/docs/pages/examples/wallets/mnemonic_signer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `mnemonic_signer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/mnemonic_signer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/mnemonic_signer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/mnemonic_signer.rs).
diff --git a/vocs/docs/pages/examples/wallets/private_key_signer.mdx b/vocs/docs/pages/examples/wallets/private_key_signer.mdx
index 65d7265..d3fd894 100644
--- a/vocs/docs/pages/examples/wallets/private_key_signer.mdx
+++ b/vocs/docs/pages/examples/wallets/private_key_signer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `private_key_signer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/private_key_signer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/private_key_signer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/private_key_signer.rs).
diff --git a/vocs/docs/pages/examples/wallets/sign_message.mdx b/vocs/docs/pages/examples/wallets/sign_message.mdx
index d1aa59e..7705a55 100644
--- a/vocs/docs/pages/examples/wallets/sign_message.mdx
+++ b/vocs/docs/pages/examples/wallets/sign_message.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `sign_message`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/sign_message.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/sign_message.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/sign_message.rs).
diff --git a/vocs/docs/pages/examples/wallets/sign_permit_hash.mdx b/vocs/docs/pages/examples/wallets/sign_permit_hash.mdx
index 5a8fa4a..d8a1db3 100644
--- a/vocs/docs/pages/examples/wallets/sign_permit_hash.mdx
+++ b/vocs/docs/pages/examples/wallets/sign_permit_hash.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `sign_permit_hash`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/sign_permit_hash.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/sign_permit_hash.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/sign_permit_hash.rs).
diff --git a/vocs/docs/pages/examples/wallets/trezor_signer.mdx b/vocs/docs/pages/examples/wallets/trezor_signer.mdx
index 7965c7a..fdde658 100644
--- a/vocs/docs/pages/examples/wallets/trezor_signer.mdx
+++ b/vocs/docs/pages/examples/wallets/trezor_signer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `trezor_signer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/trezor_signer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/trezor_signer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/trezor_signer.rs).
diff --git a/vocs/docs/pages/examples/wallets/verify_message.mdx b/vocs/docs/pages/examples/wallets/verify_message.mdx
index 49288db..ad10295 100644
--- a/vocs/docs/pages/examples/wallets/verify_message.mdx
+++ b/vocs/docs/pages/examples/wallets/verify_message.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `verify_message`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/verify_message.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/verify_message.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/verify_message.rs).
diff --git a/vocs/docs/pages/examples/wallets/yubi_signer.mdx b/vocs/docs/pages/examples/wallets/yubi_signer.mdx
index 4ab8f51..bb2d555 100644
--- a/vocs/docs/pages/examples/wallets/yubi_signer.mdx
+++ b/vocs/docs/pages/examples/wallets/yubi_signer.mdx
@@ -1,7 +1,7 @@
{/*DO NOT EDIT THIS FILE. IT IS GENERATED BY RUNNING `./scripts/update.sh`
ANY CHANGES MADE TO THIS FILE WILL BE OVERWRITTEN
EDIT OR CREATE THIS TEMPLATE INSTEAD: ./vocs/docs/pages/templates/wallets/README.mdx
-LATEST UPDATE: https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1
+LATEST UPDATE: https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130
*/}
## Example: `yubi_signer`
@@ -15,4 +15,4 @@ To run this example:
// [!include ~/snippets/wallets/examples/yubi_signer.rs]
```
-Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/15c1d3e6e758d6a9dfe747200b5c8d12f5a027f1/examples/wallets/examples/yubi_signer.rs).
+Find the source code on Github [here](https://github.com/alloy-rs/examples/tree/53e778ee60280bbf14af6216234579808b1b8130/examples/wallets/examples/yubi_signer.rs).
diff --git a/vocs/docs/pages/templates/ens/README.mdx b/vocs/docs/pages/templates/ens/README.mdx
new file mode 100644
index 0000000..94a8f22
--- /dev/null
+++ b/vocs/docs/pages/templates/ens/README.mdx
@@ -0,0 +1,11 @@
+## Installation
+Enable the ```ens``` feature while installing the ```alloy``` crate.
+```bash
+cargo add alloy --features "ens"
+```
+
+```toml
+alloy = { version = "1.1.0", features = ["ens"] }
+```
+- [Using `Address LookUp`](/examples/ens/address_lookup)
+- [Using `Name Resolution`](/examples/ens/name_resolution)
diff --git a/vocs/docs/snippets/advanced/Cargo.toml b/vocs/docs/snippets/advanced/Cargo.toml
index 42ea215..9c791bd 100644
--- a/vocs/docs/snippets/advanced/Cargo.toml
+++ b/vocs/docs/snippets/advanced/Cargo.toml
@@ -12,20 +12,33 @@ repository.workspace = true
[lints]
workspace = true
-[dev-dependencies]
+[dependencies]
+foundry-fork-db.workspace = true
alloy.workspace = true
-# foundry-fork-db = "0.12"
+ethers.workspace = true
+alloy-evm.workspace = true
-# # reth
-# revm-primitives = { version = "17.0.0", default-features = false }
-# revm = { version = "21.0.0", default-features = false }
-# reth-db = { git = "https://github.com/paradigmxyz/reth", package = "reth-db", rev = "v1.3.8" }
-# reth-provider = { git = "https://github.com/paradigmxyz/reth", package = "reth-provider", rev = "v1.3.8" }
-# reth-node-types = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-types", rev = "v1.3.8" }
-# reth-chainspec = { git = "https://github.com/paradigmxyz/reth", package = "reth-chainspec", rev = "v1.3.8" }
-# reth-node-ethereum = { git = "https://github.com/paradigmxyz/reth", package = "reth-node-ethereum", rev = "v1.3.8" }
+# reth
+revm = { workspace = true, default-features = false }
eyre.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
serde = { workspace = true, features = ["derive"] }
-serde_json = { workspace = true }
+serde_json.workspace = true
+
+
+[[bin]]
+name = "alloy_profit"
+path = "examples/uniswap_u256/alloy_profit.rs"
+
+[[bin]]
+name = "alloy_simulation"
+path = "examples/uniswap_u256/alloy_simulation.rs"
+
+[[bin]]
+name = "ethers_profit"
+path = "examples/uniswap_u256/ethers_profit.rs"
+
+[lib]
+name = "uniswap_u256"
+path = "examples/uniswap_u256/lib.rs"
diff --git a/vocs/docs/snippets/advanced/examples/abi/BundleExecutor.sol b/vocs/docs/snippets/advanced/examples/abi/BundleExecutor.sol
new file mode 100644
index 0000000..b6fec36
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/abi/BundleExecutor.sol
@@ -0,0 +1,100 @@
+//SPDX-License-Identifier: MIT
+pragma solidity 0.8.20;
+
+pragma experimental ABIEncoderV2;
+
+interface IERC20 {
+ event Approval(address indexed owner, address indexed spender, uint value);
+ event Transfer(address indexed from, address indexed to, uint value);
+
+ function name() external view returns (string memory);
+ function symbol() external view returns (string memory);
+ function decimals() external view returns (uint8);
+ function totalSupply() external view returns (uint);
+ function balanceOf(address owner) external view returns (uint);
+ function allowance(
+ address owner,
+ address spender
+ ) external view returns (uint);
+
+ function approve(address spender, uint value) external returns (bool);
+ function transfer(address to, uint value) external returns (bool);
+ function transferFrom(
+ address from,
+ address to,
+ uint value
+ ) external returns (bool);
+}
+
+interface IWETH is IERC20 {
+ function deposit() external payable;
+ function withdraw(uint) external;
+}
+
+// This contract simply calls multiple targets sequentially, ensuring WETH balance before and after
+
+contract FlashBotsMultiCall {
+ address private immutable owner;
+ address private immutable executor;
+ IWETH private constant WETH =
+ IWETH(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
+
+ modifier onlyExecutor() {
+ require(msg.sender == executor);
+ _;
+ }
+
+ modifier onlyOwner() {
+ require(msg.sender == owner);
+ _;
+ }
+
+ constructor(address _executor) payable {
+ owner = msg.sender;
+ executor = _executor;
+ if (msg.value > 0) {
+ WETH.deposit{value: msg.value}();
+ }
+ }
+
+ receive() external payable {}
+
+ function uniswapWeth(
+ uint256 _wethAmountToFirstMarket,
+ uint256 _ethAmountToCoinbase,
+ address[] memory _targets,
+ bytes[] memory _payloads
+ ) external payable onlyExecutor {
+ require(_targets.length == _payloads.length);
+ uint256 _wethBalanceBefore = WETH.balanceOf(address(this));
+ WETH.transfer(_targets[0], _wethAmountToFirstMarket);
+ for (uint256 i = 0; i < _targets.length; i++) {
+ (bool _success, bytes memory _response) = _targets[i].call(
+ _payloads[i]
+ );
+ require(_success);
+ _response;
+ }
+
+ uint256 _wethBalanceAfter = WETH.balanceOf(address(this));
+ require(_wethBalanceAfter > _wethBalanceBefore + _ethAmountToCoinbase);
+ if (_ethAmountToCoinbase == 0) return;
+
+ uint256 _ethBalance = address(this).balance;
+ if (_ethBalance < _ethAmountToCoinbase) {
+ WETH.withdraw(_ethAmountToCoinbase - _ethBalance);
+ }
+ block.coinbase.transfer(_ethAmountToCoinbase);
+ }
+
+ function call(
+ address payable _to,
+ uint256 _value,
+ bytes calldata _data
+ ) external payable onlyOwner returns (bytes memory) {
+ require(_to != address(0));
+ (bool _success, bytes memory _result) = _to.call{value: _value}(_data);
+ require(_success);
+ return _result;
+ }
+}
diff --git a/vocs/docs/snippets/advanced/examples/abi/FlashBotsMultiCall.json b/vocs/docs/snippets/advanced/examples/abi/FlashBotsMultiCall.json
new file mode 100644
index 0000000..91763f6
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/abi/FlashBotsMultiCall.json
@@ -0,0 +1 @@
+{"abi":[{"type":"constructor","inputs":[{"name":"_executor","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"call","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"_value","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"uniswapWeth","inputs":[{"name":"_wethAmountToFirstMarket","type":"uint256","internalType":"uint256"},{"name":"_ethAmountToCoinbase","type":"uint256","internalType":"uint256"},{"name":"_targets","type":"address[]","internalType":"address[]"},{"name":"_payloads","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x60c06040526040516109ef3803806109ef833981016040819052610022916100a8565b336080526001600160a01b03811660a05234156100a25773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561008857600080fd5b505af115801561009c573d6000803e3d6000fd5b50505050505b506100d8565b6000602082840312156100ba57600080fd5b81516001600160a01b03811681146100d157600080fd5b9392505050565b60805160a0516108f36100fc600039600061014501526000608401526108f36000f3fe60806040526004361061002d5760003560e01c80636dbf2fa014610039578063ecd494b31461006257600080fd5b3661003457005b600080fd5b61004c6100473660046104d3565b610077565b6040516100599190610580565b60405180910390f35b610075610070366004610707565b61013a565b005b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100ae57600080fd5b6001600160a01b0385166100c157600080fd5b600080866001600160a01b03168686866040516100df9291906107de565b60006040518083038185875af1925050503d806000811461011c576040519150601f19603f3d011682016040523d82523d6000602084013e610121565b606091505b50915091508161013057600080fd5b9695505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461016f57600080fd5b805182511461017d57600080fd5b6040516370a0823160e01b815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa1580156101cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f391906107ee565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663a9059cbb8460008151811061022b5761022b610807565b6020026020010151876040518363ffffffff1660e01b81526004016102659291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a8919061081d565b5060005b8351811015610368576000808583815181106102ca576102ca610807565b60200260200101516001600160a01b03168584815181106102ed576102ed610807565b60200260200101516040516103029190610846565b6000604051808303816000865af19150503d806000811461033f576040519150601f19603f3d011682016040523d82523d6000602084013e610344565b606091505b50915091508161035357600080fd5b5050808061036090610878565b9150506102ac565b506040516370a0823160e01b815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa1580156103bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103df91906107ee565b90506103eb8583610891565b81116103f657600080fd5b846000036104055750506104b5565b47858110156104835773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2632e1a7d4d61043283896108aa565b6040518263ffffffff1660e01b815260040161045091815260200190565b600060405180830381600087803b15801561046a57600080fd5b505af115801561047e573d6000803e3d6000fd5b505050505b604051419087156108fc029088906000818181858888f193505050501580156104b0573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b03811681146104d057600080fd5b50565b600080600080606085870312156104e957600080fd5b84356104f4816104bb565b935060208501359250604085013567ffffffffffffffff8082111561051857600080fd5b818701915087601f83011261052c57600080fd5b81358181111561053b57600080fd5b88602082850101111561054d57600080fd5b95989497505060200194505050565b60005b8381101561057757818101518382015260200161055f565b50506000910152565b602081526000825180602084015261059f81604085016020870161055c565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156105f2576105f26105b3565b604052919050565b600067ffffffffffffffff821115610614576106146105b3565b5060051b60200190565b6000601f838184011261063057600080fd5b82356020610645610640836105fa565b6105c9565b82815260059290921b8501810191818101908784111561066457600080fd5b8287015b848110156106fb57803567ffffffffffffffff808211156106895760008081fd5b818a0191508a603f83011261069e5760008081fd5b858201356040828211156106b4576106b46105b3565b6106c5828b01601f191689016105c9565b92508183528c818386010111156106dc5760008081fd5b8181850189850137506000908201870152845250918301918301610668565b50979650505050505050565b6000806000806080858703121561071d57600080fd5b843593506020808601359350604086013567ffffffffffffffff8082111561074457600080fd5b818801915088601f83011261075857600080fd5b8135610766610640826105fa565b81815260059190911b8301840190848101908b83111561078557600080fd5b938501935b828510156107ac57843561079d816104bb565b8252938501939085019061078a565b9650505060608801359250808311156107c457600080fd5b50506107d28782880161061e565b91505092959194509250565b8183823760009101908152919050565b60006020828403121561080057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561082f57600080fd5b8151801515811461083f57600080fd5b9392505050565b6000825161085881846020870161055c565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b60006001820161088a5761088a610862565b5060010190565b808201808211156108a4576108a4610862565b92915050565b818103818111156108a4576108a461086256fea26469706673582212201fe9e0f213107138bfbddcac1ea9dba28bf03266201eef0c278def20fe7ca98a64736f6c63430008140033","sourceMap":"1152:2002:0:-:0;;;1529:189;;;;;;;;;;;;;;;;;;:::i;:::-;1586:10;1578:18;;-1:-1:-1;;;;;1606:20:0;;;;1640:9;:13;1636:76;;1307:42;-1:-1:-1;;;;;1669:12:0;;1689:9;1669:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1636:76;1529:189;1152:2002;;14:290:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:1;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:1:o;:::-;1152:2002:0;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002d5760003560e01c80636dbf2fa014610039578063ecd494b31461006257600080fd5b3661003457005b600080fd5b61004c6100473660046104d3565b610077565b6040516100599190610580565b60405180910390f35b610075610070366004610707565b61013a565b005b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100ae57600080fd5b6001600160a01b0385166100c157600080fd5b600080866001600160a01b03168686866040516100df9291906107de565b60006040518083038185875af1925050503d806000811461011c576040519150601f19603f3d011682016040523d82523d6000602084013e610121565b606091505b50915091508161013057600080fd5b9695505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461016f57600080fd5b805182511461017d57600080fd5b6040516370a0823160e01b815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa1580156101cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101f391906107ee565b905073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663a9059cbb8460008151811061022b5761022b610807565b6020026020010151876040518363ffffffff1660e01b81526004016102659291906001600160a01b03929092168252602082015260400190565b6020604051808303816000875af1158015610284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a8919061081d565b5060005b8351811015610368576000808583815181106102ca576102ca610807565b60200260200101516001600160a01b03168584815181106102ed576102ed610807565b60200260200101516040516103029190610846565b6000604051808303816000865af19150503d806000811461033f576040519150601f19603f3d011682016040523d82523d6000602084013e610344565b606091505b50915091508161035357600080fd5b5050808061036090610878565b9150506102ac565b506040516370a0823160e01b815230600482015260009073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa1580156103bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103df91906107ee565b90506103eb8583610891565b81116103f657600080fd5b846000036104055750506104b5565b47858110156104835773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2632e1a7d4d61043283896108aa565b6040518263ffffffff1660e01b815260040161045091815260200190565b600060405180830381600087803b15801561046a57600080fd5b505af115801561047e573d6000803e3d6000fd5b505050505b604051419087156108fc029088906000818181858888f193505050501580156104b0573d6000803e3d6000fd5b505050505b50505050565b6001600160a01b03811681146104d057600080fd5b50565b600080600080606085870312156104e957600080fd5b84356104f4816104bb565b935060208501359250604085013567ffffffffffffffff8082111561051857600080fd5b818701915087601f83011261052c57600080fd5b81358181111561053b57600080fd5b88602082850101111561054d57600080fd5b95989497505060200194505050565b60005b8381101561057757818101518382015260200161055f565b50506000910152565b602081526000825180602084015261059f81604085016020870161055c565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156105f2576105f26105b3565b604052919050565b600067ffffffffffffffff821115610614576106146105b3565b5060051b60200190565b6000601f838184011261063057600080fd5b82356020610645610640836105fa565b6105c9565b82815260059290921b8501810191818101908784111561066457600080fd5b8287015b848110156106fb57803567ffffffffffffffff808211156106895760008081fd5b818a0191508a603f83011261069e5760008081fd5b858201356040828211156106b4576106b46105b3565b6106c5828b01601f191689016105c9565b92508183528c818386010111156106dc5760008081fd5b8181850189850137506000908201870152845250918301918301610668565b50979650505050505050565b6000806000806080858703121561071d57600080fd5b843593506020808601359350604086013567ffffffffffffffff8082111561074457600080fd5b818801915088601f83011261075857600080fd5b8135610766610640826105fa565b81815260059190911b8301840190848101908b83111561078557600080fd5b938501935b828510156107ac57843561079d816104bb565b8252938501939085019061078a565b9650505060608801359250808311156107c457600080fd5b50506107d28782880161061e565b91505092959194509250565b8183823760009101908152919050565b60006020828403121561080057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561082f57600080fd5b8151801515811461083f57600080fd5b9392505050565b6000825161085881846020870161055c565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b60006001820161088a5761088a610862565b5060010190565b808201808211156108a4576108a4610862565b92915050565b818103818111156108a4576108a461086256fea26469706673582212201fe9e0f213107138bfbddcac1ea9dba28bf03266201eef0c278def20fe7ca98a64736f6c63430008140033","sourceMap":"1152:2002:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2825:327;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1759:1060;;;;;;:::i;:::-;;:::i;:::-;;2825:327;2964:12;1485:10;-1:-1:-1;;;;;1499:5:0;1485:19;;1477:28;;;;;;-1:-1:-1;;;;;2996:17:0;::::1;2988:26;;;::::0;::::1;;3025:13;3040:20:::0;3064:3:::1;-1:-1:-1::0;;;;;3064:8:0::1;3080:6;3088:5;;3064:30;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3024:70;;;;3112:8;3104:17;;;::::0;::::1;;3138:7:::0;2825:327;-1:-1:-1;;;;;;2825:327:0:o;1759:1060::-;1399:10;-1:-1:-1;;;;;1413:8:0;1399:22;;1391:31;;;;;;2002:9:::1;:16;1983:8;:15;:35;1975:44;;;::::0;::::1;;2058:29;::::0;-1:-1:-1;;;2058:29:0;;2081:4:::1;2058:29;::::0;::::1;5563:51:1::0;2029:26:0::1;::::0;1307:42:::1;::::0;2058:14:::1;::::0;5536:18:1;;2058:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2029:58;;1307:42;-1:-1:-1::0;;;;;2097:13:0::1;;2111:8;2120:1;2111:11;;;;;;;;:::i;:::-;;;;;;;2124:24;2097:52;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6138:32:1;;;;6120:51;;6202:2;6187:18;;6180:34;6108:2;6093:18;;5946:274;2097:52:0::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2164:9;2159:227;2183:8;:15;2179:1;:19;2159:227;;;2220:13;2235:22:::0;2261:8:::1;2270:1;2261:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;2261:16:0::1;2295:9;2305:1;2295:12;;;;;;;;:::i;:::-;;;;;;;2261:60;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:102;;;;2343:8;2335:17;;;::::0;::::1;;2205:181;;2200:3;;;;;:::i;:::-;;;;2159:227;;;-1:-1:-1::0;2424:29:0::1;::::0;-1:-1:-1;;;2424:29:0;;2447:4:::1;2424:29;::::0;::::1;5563:51:1::0;2396:25:0::1;::::0;1307:42:::1;::::0;2424:14:::1;::::0;5536:18:1;;2424:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2396:57:::0;-1:-1:-1;2491:41:0::1;2512:20:::0;2491:18;:41:::1;:::i;:::-;2471:17;:61;2463:70;;;::::0;::::1;;2547:20;2571:1;2547:25:::0;2543:38:::1;;2574:7;;;;2543:38;2613:21;2648:34:::0;;::::1;2644:114;;;1307:42;2698:13;2712:34;2735:11:::0;2712:20;:34:::1;:::i;:::-;2698:49;;;;;;;;;;;;;7480:25:1::0;;7468:2;7453:18;;7334:177;2698:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2644:114;2767:45;::::0;:14:::1;::::0;:45;::::1;;;::::0;2791:20;;2767:45:::1;::::0;;;2791:20;2767:14;:45;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;1965:854;;;1432:1;1759:1060:::0;;;;:::o;14:139:1:-;-1:-1:-1;;;;;97:31:1;;87:42;;77:70;;143:1;140;133:12;77:70;14:139;:::o;158:810::-;254:6;262;270;278;331:2;319:9;310:7;306:23;302:32;299:52;;;347:1;344;337:12;299:52;386:9;373:23;405:39;438:5;405:39;:::i;:::-;463:5;-1:-1:-1;515:2:1;500:18;;487:32;;-1:-1:-1;570:2:1;555:18;;542:32;593:18;623:14;;;620:34;;;650:1;647;640:12;620:34;688:6;677:9;673:22;663:32;;733:7;726:4;722:2;718:13;714:27;704:55;;755:1;752;745:12;704:55;795:2;782:16;821:2;813:6;810:14;807:34;;;837:1;834;827:12;807:34;882:7;877:2;868:6;864:2;860:15;856:24;853:37;850:57;;;903:1;900;893:12;850:57;158:810;;;;-1:-1:-1;;934:2:1;926:11;;-1:-1:-1;;;158:810:1:o;973:250::-;1058:1;1068:113;1082:6;1079:1;1076:13;1068:113;;;1158:11;;;1152:18;1139:11;;;1132:39;1104:2;1097:10;1068:113;;;-1:-1:-1;;1215:1:1;1197:16;;1190:27;973:250::o;1228:394::-;1375:2;1364:9;1357:21;1338:4;1407:6;1401:13;1450:6;1445:2;1434:9;1430:18;1423:34;1466:79;1538:6;1533:2;1522:9;1518:18;1513:2;1505:6;1501:15;1466:79;:::i;:::-;1606:2;1585:15;-1:-1:-1;;1581:29:1;1566:45;;;;1613:2;1562:54;;1228:394;-1:-1:-1;;1228:394:1:o;1627:127::-;1688:10;1683:3;1679:20;1676:1;1669:31;1719:4;1716:1;1709:15;1743:4;1740:1;1733:15;1759:275;1830:2;1824:9;1895:2;1876:13;;-1:-1:-1;;1872:27:1;1860:40;;1930:18;1915:34;;1951:22;;;1912:62;1909:88;;;1977:18;;:::i;:::-;2013:2;2006:22;1759:275;;-1:-1:-1;1759:275:1:o;2039:183::-;2099:4;2132:18;2124:6;2121:30;2118:56;;;2154:18;;:::i;:::-;-1:-1:-1;2199:1:1;2195:14;2211:4;2191:25;;2039:183::o;2227:1539::-;2279:5;2309:4;2353:3;2348:2;2340:6;2336:15;2332:25;2322:53;;2371:1;2368;2361:12;2322:53;2407:6;2394:20;2433:4;2457:60;2473:43;2513:2;2473:43;:::i;:::-;2457:60;:::i;:::-;2551:15;;;2637:1;2633:10;;;;2621:23;;2617:32;;;2582:12;;;;2661:15;;;2658:35;;;2689:1;2686;2679:12;2658:35;2725:2;2717:6;2713:15;2737:1000;2753:6;2748:3;2745:15;2737:1000;;;2839:3;2826:17;2866:18;2916:2;2903:11;2900:19;2897:109;;;2960:1;2989:2;2985;2978:14;2897:109;3041:11;3033:6;3029:24;3019:34;;3093:3;3088:2;3084;3080:11;3076:21;3066:119;;3139:1;3168:2;3164;3157:14;3066:119;3229:2;3225;3221:11;3208:25;3256:2;3281;3277;3274:10;3271:36;;;3287:18;;:::i;:::-;3335:51;3359:11;;;-1:-1:-1;;3355:25:1;3351:34;;3335:51;:::i;:::-;3320:66;;3415:2;3406:7;3399:19;3459:3;3454:2;3449;3445;3441:11;3437:20;3434:29;3431:122;;;3505:1;3535:3;3530;3523:16;3431:122;3610:2;3605;3601;3597:11;3592:2;3583:7;3579:16;3566:47;-1:-1:-1;3660:1:1;3637:16;;;3633:25;;3626:36;3675:20;;-1:-1:-1;3715:12:1;;;;2770;;2737:1000;;;-1:-1:-1;3755:5:1;2227:1539;-1:-1:-1;;;;;;;2227:1539:1:o;3771:1365::-;3916:6;3924;3932;3940;3993:3;3981:9;3972:7;3968:23;3964:33;3961:53;;;4010:1;4007;4000:12;3961:53;4046:9;4033:23;4023:33;;4075:2;4124;4113:9;4109:18;4096:32;4086:42;;4179:2;4168:9;4164:18;4151:32;4202:18;4243:2;4235:6;4232:14;4229:34;;;4259:1;4256;4249:12;4229:34;4297:6;4286:9;4282:22;4272:32;;4342:7;4335:4;4331:2;4327:13;4323:27;4313:55;;4364:1;4361;4354:12;4313:55;4400:2;4387:16;4423:60;4439:43;4479:2;4439:43;:::i;4423:60::-;4517:15;;;4599:1;4595:10;;;;4587:19;;4583:28;;;4548:12;;;;4623:19;;;4620:39;;;4655:1;4652;4645:12;4620:39;4679:11;;;;4699:225;4715:6;4710:3;4707:15;4699:225;;;4795:3;4782:17;4812:39;4845:5;4812:39;:::i;:::-;4864:18;;4732:12;;;;4902;;;;4699:225;;;4943:5;-1:-1:-1;;;5001:2:1;4986:18;;4973:32;;-1:-1:-1;5017:16:1;;;5014:36;;;5046:1;5043;5036:12;5014:36;;;5069:61;5122:7;5111:8;5100:9;5096:24;5069:61;:::i;:::-;5059:71;;;3771:1365;;;;;;;:::o;5141:271::-;5324:6;5316;5311:3;5298:33;5280:3;5350:16;;5375:13;;;5350:16;5141:271;-1:-1:-1;5141:271:1:o;5625:184::-;5695:6;5748:2;5736:9;5727:7;5723:23;5719:32;5716:52;;;5764:1;5761;5754:12;5716:52;-1:-1:-1;5787:16:1;;5625:184;-1:-1:-1;5625:184:1:o;5814:127::-;5875:10;5870:3;5866:20;5863:1;5856:31;5906:4;5903:1;5896:15;5930:4;5927:1;5920:15;6225:277;6292:6;6345:2;6333:9;6324:7;6320:23;6316:32;6313:52;;;6361:1;6358;6351:12;6313:52;6393:9;6387:16;6446:5;6439:13;6432:21;6425:5;6422:32;6412:60;;6468:1;6465;6458:12;6412:60;6491:5;6225:277;-1:-1:-1;;;6225:277:1:o;6507:287::-;6636:3;6674:6;6668:13;6690:66;6749:6;6744:3;6737:4;6729:6;6725:17;6690:66;:::i;:::-;6772:16;;;;;6507:287;-1:-1:-1;;6507:287:1:o;6799:127::-;6860:10;6855:3;6851:20;6848:1;6841:31;6891:4;6888:1;6881:15;6915:4;6912:1;6905:15;6931:135;6970:3;6991:17;;;6988:43;;7011:18;;:::i;:::-;-1:-1:-1;7058:1:1;7047:13;;6931:135::o;7071:125::-;7136:9;;;7157:10;;;7154:36;;;7170:18;;:::i;:::-;7071:125;;;;:::o;7201:128::-;7268:9;;;7289:11;;;7286:37;;;7303:18;;:::i","linkReferences":{},"immutableReferences":{"97":[{"start":132,"length":32}],"99":[{"start":325,"length":32}]}},"methodIdentifiers":{"call(address,uint256,bytes)":"6dbf2fa0","uniswapWeth(uint256,uint256,address[],bytes[])":"ecd494b3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_executor\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_wethAmountToFirstMarket\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_ethAmountToCoinbase\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_targets\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_payloads\",\"type\":\"bytes[]\"}],\"name\":\"uniswapWeth\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BundleExecutor.sol\":\"FlashBotsMultiCall\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/BundleExecutor.sol\":{\"keccak256\":\"0xf6ce27bdbd28d614702d605c1053b275d61fee32713ea82270f91168882bee1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6129f7842b9d5cbc358bed367a82fa03cb972ea79e0874d32d89c52ffee02763\",\"dweb:/ipfs/QmdqWaNvy4DcEwmQWSwVsW4BAQnfktAgz5isNUUPgsjF4w\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_executor","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"_wethAmountToFirstMarket","type":"uint256"},{"internalType":"uint256","name":"_ethAmountToCoinbase","type":"uint256"},{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"bytes[]","name":"_payloads","type":"bytes[]"}],"stateMutability":"payable","type":"function","name":"uniswapWeth"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":[],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/BundleExecutor.sol":"FlashBotsMultiCall"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/BundleExecutor.sol":{"keccak256":"0xf6ce27bdbd28d614702d605c1053b275d61fee32713ea82270f91168882bee1b","urls":["bzz-raw://6129f7842b9d5cbc358bed367a82fa03cb972ea79e0874d32d89c52ffee02763","dweb:/ipfs/QmdqWaNvy4DcEwmQWSwVsW4BAQnfktAgz5isNUUPgsjF4w"],"license":"MIT"}},"version":1},"id":0}
\ No newline at end of file
diff --git a/vocs/docs/snippets/advanced/examples/any_network.rs b/vocs/docs/snippets/advanced/examples/any_network.rs
index 2ed9023..a0b351b 100644
--- a/vocs/docs/snippets/advanced/examples/any_network.rs
+++ b/vocs/docs/snippets/advanced/examples/any_network.rs
@@ -48,7 +48,8 @@ async fn main() -> Result<()> {
// Create a provider with the Arbitrum Sepolia network and the wallet.
let rpc_url = "https://sepolia-rollup.arbitrum.io/rpc".parse()?;
- let provider = ProviderBuilder::new().network::().wallet(signer).on_http(rpc_url);
+ let provider =
+ ProviderBuilder::new().network::().wallet(signer).connect_http(rpc_url);
// Create a contract instance.
let contract = Counter::new(COUNTER_CONTRACT_ADDRESS, &provider);
@@ -62,8 +63,8 @@ async fn main() -> Result<()> {
let l1_gas = arb_fields.gas_used_for_l1.to::();
let l1_block_number = arb_fields.l1_block_number.to::();
- println!("Gas used for L1: {}", l1_gas);
- println!("L1 block number: {}", l1_block_number);
+ println!("Gas used for L1: {l1_gas}");
+ println!("L1 block number: {l1_block_number}");
Ok(())
}
diff --git a/vocs/docs/snippets/advanced/examples/decoding_json_abi.rs b/vocs/docs/snippets/advanced/examples/decoding_json_abi.rs
index ab0b5ac..9a63388 100644
--- a/vocs/docs/snippets/advanced/examples/decoding_json_abi.rs
+++ b/vocs/docs/snippets/advanced/examples/decoding_json_abi.rs
@@ -23,7 +23,7 @@ fn main() -> Result<(), Box> {
// Functions
println!("Functions:");
for (name, functions) in &abi.functions {
- println!("\n>> {}:", name);
+ println!("\n>> {name}:");
for function in functions {
println!(" Inputs: {:?}", function.inputs);
println!(" Outputs: {:?}", function.outputs);
@@ -36,7 +36,7 @@ fn main() -> Result<(), Box> {
// Events
println!("Events:");
for (name, events) in &abi.events {
- println!("\n>> {}:", name);
+ println!("\n>> {name}:");
for event in events {
println!(" Inputs: {:?}", event.inputs);
println!(" Anonymous: {}", event.anonymous);
@@ -48,7 +48,7 @@ fn main() -> Result<(), Box> {
// Errors
println!("Errors:");
for (name, errors) in &abi.errors {
- println!(">> {}:", name);
+ println!(">> {name}:");
for error in errors {
println!(" Inputs: {:?}", error.inputs);
}
diff --git a/vocs/docs/snippets/advanced/examples/encoding_dyn_abi.rs b/vocs/docs/snippets/advanced/examples/encoding_dyn_abi.rs
index 8215fb4..a527ac3 100644
--- a/vocs/docs/snippets/advanced/examples/encoding_dyn_abi.rs
+++ b/vocs/docs/snippets/advanced/examples/encoding_dyn_abi.rs
@@ -75,7 +75,7 @@ async fn main() -> Result<(), Box> {
// Verify the signature
let recovered_address = signature.recover_address_from_prehash(&eip712_hash)?;
- println!("Recovered address: {}", recovered_address);
+ println!("Recovered address: {recovered_address}");
assert_eq!(recovered_address, wallet.address(), "Signature verification failed");
println!("Signature verified successfully!");
@@ -87,7 +87,7 @@ async fn main() -> Result<(), Box> {
fn print_tuple(value: &DynSolValue, field_names: &[&str]) {
if let DynSolValue::Tuple(values) = value {
for (value, name) in values.iter().zip(field_names.iter()) {
- println!(" {}: {:?}", name, value);
+ println!(" {name}: {value:?}");
}
}
}
diff --git a/vocs/docs/snippets/advanced/examples/encoding_sol_static.rs b/vocs/docs/snippets/advanced/examples/encoding_sol_static.rs
index 1c4be7c..07987b0 100644
--- a/vocs/docs/snippets/advanced/examples/encoding_sol_static.rs
+++ b/vocs/docs/snippets/advanced/examples/encoding_sol_static.rs
@@ -44,7 +44,7 @@ fn main() -> Result<(), Box> {
let encoded = hex::encode(swapExactTokensForTokensCall::abi_encode(&swap_data));
- println!("Encoded: 0x{}", encoded);
+ println!("Encoded: 0x{encoded}");
Ok(())
}
diff --git a/vocs/docs/snippets/advanced/examples/foundry_fork_db.rs b/vocs/docs/snippets/advanced/examples/foundry_fork_db.rs
index 714c69c..26ad911 100644
--- a/vocs/docs/snippets/advanced/examples/foundry_fork_db.rs
+++ b/vocs/docs/snippets/advanced/examples/foundry_fork_db.rs
@@ -17,24 +17,30 @@ use alloy::{
providers::{Provider, ProviderBuilder},
rpc::types::TransactionRequest,
};
+use alloy_evm::{eth::EthEvmContext, EthEvm, Evm};
use eyre::Result;
use foundry_fork_db::{cache::BlockchainDbMeta, BlockchainDb, SharedBackend};
-use revm::{db::CacheDB, DatabaseRef, Evm};
-use revm_primitives::{BlobExcessGasAndPrice, BlockEnv, TxEnv};
+use revm::{
+ context::{BlockEnv, Evm as RevmEvm, TxEnv},
+ context_interface::block::BlobExcessGasAndPrice,
+ database::WrapDatabaseRef,
+ handler::{instructions::EthInstructions, EthPrecompiles},
+ inspector::NoOpInspector,
+ primitives::hardfork::SpecId,
+ DatabaseRef,
+};
#[tokio::main]
async fn main() -> Result<()> {
let anvil = Anvil::new().spawn();
- let provider = ProviderBuilder::new().network::().on_http(anvil.endpoint_url());
+ let provider =
+ ProviderBuilder::new().network::().connect_http(anvil.endpoint_url());
let block = provider.get_block(BlockId::latest()).await?.unwrap();
// The `BlockchainDbMeta` is used a identifier when the db is flushed to the disk.
// This aids in cases where the disk contains data from multiple forks.
- let meta = BlockchainDbMeta::default()
- .with_chain_id(31337)
- .with_block(&block.inner)
- .with_url(&anvil.endpoint());
+ let meta = BlockchainDbMeta::default().with_block(&block.inner).with_url(&anvil.endpoint());
let db = BlockchainDb::new(meta, None);
@@ -45,9 +51,8 @@ async fn main() -> Result<()> {
//
// For example, if we send two requests to get_full_block(0) simultaneously, the
// `BackendHandler` is smart enough to only send one request to the RPC provider, and queue the
- // other request until the response is received.
- // Once the response from RPC provider is received it relays the response to both the requests
- // over their respective channels.
+ // other request until the response is received. Once the response from RPC provider is
+ // received it relays the response to both the requests // over their respective channels.
//
// The `SharedBackend` and `BackendHandler` communicate over an unbounded channel.
let shared = SharedBackend::spawn_backend(Arc::new(provider.clone()), db, None).await;
@@ -69,9 +74,9 @@ async fn main() -> Result<()> {
println!("-------get_full_block--------");
// The backend handle falls back to the RPC provider if the block is not in the cache.
- println!("1st request (via rpc): {:?}", time_rpc);
+ println!("1st request (via rpc): {time_rpc:?}");
// The block is cached due to the previous request and can be fetched from db.
- println!("2nd request (via fork db): {:?}\n", time_cache);
+ println!("2nd request (via fork db): {time_cache:?}\n");
let alice = anvil.addresses()[0];
let bob = anvil.addresses()[1];
@@ -87,7 +92,7 @@ async fn main() -> Result<()> {
.with_gas_limit(21000)
.with_nonce(0);
- let mut evm = configure_evm_env(block, shared.clone(), configure_tx_env(tx_req));
+ let mut evm = configure_evm(block, shared.clone());
// Fetches accounts from the RPC
let start_t = std::time::Instant::now();
@@ -95,7 +100,7 @@ async fn main() -> Result<()> {
let bob_bal = shared.basic_ref(bob)?.unwrap().balance;
let time_rpc = start_t.elapsed();
- let res = evm.transact().unwrap();
+ let res = evm.transact(configure_tx_env(tx_req)).unwrap();
let total_spent = U256::from(res.result.gas_used()) * U256::from(basefee) + U256::from(100);
@@ -108,8 +113,8 @@ async fn main() -> Result<()> {
let time_cache = start_t.elapsed();
println!("-------get_account--------");
- println!("1st request (via rpc): {:?}", time_rpc);
- println!("2nd request (via fork db): {:?}\n", time_cache);
+ println!("1st request (via rpc): {time_rpc:?}");
+ println!("2nd request (via fork db): {time_cache:?}\n");
assert_eq!(alice_bal_after, alice_bal - total_spent);
assert_eq!(bob_bal_after, bob_bal + U256::from(100));
@@ -117,39 +122,38 @@ async fn main() -> Result<()> {
Ok(())
}
-fn configure_evm_env(
+fn configure_evm(
block: AnyRpcBlock,
shared: SharedBackend,
- tx_env: TxEnv,
-) -> Evm<'static, (), CacheDB> {
- let basefee = block.header.base_fee_per_gas().map(U256::from).unwrap_or_default();
+) -> EthEvm, NoOpInspector> {
let block_env = BlockEnv {
number: U256::from(block.header.number()),
- coinbase: block.header.beneficiary(),
+ beneficiary: block.header.beneficiary(),
timestamp: U256::from(block.header.timestamp()),
- gas_limit: U256::from(block.header.gas_limit()),
- basefee,
+ gas_limit: block.header.gas_limit(),
+ basefee: block.header.base_fee_per_gas().unwrap_or(0),
prevrandao: block.header.mix_hash(),
difficulty: block.header.difficulty(),
- blob_excess_gas_and_price: Some(BlobExcessGasAndPrice::new(
+ blob_excess_gas_and_price: Some(BlobExcessGasAndPrice::new_with_spec(
block.header.excess_blob_gas().unwrap_or_default(),
- false,
+ SpecId::PRAGUE,
)),
};
- let db = CacheDB::new(shared);
+ let context = EthEvmContext::new(WrapDatabaseRef(shared), SpecId::PRAGUE).with_block(block_env);
- let evm = Evm::builder().with_block_env(block_env).with_db(db).with_tx_env(tx_env).build();
+ let evm = RevmEvm::new(context, EthInstructions::default(), EthPrecompiles::default())
+ .with_inspector(NoOpInspector);
- evm
+ EthEvm::new(evm, false)
}
fn configure_tx_env(tx_req: TransactionRequest) -> TxEnv {
TxEnv {
caller: tx_req.from.unwrap(),
- transact_to: tx_req.to.unwrap(),
+ kind: tx_req.to.unwrap(),
value: tx_req.value.unwrap(),
- gas_price: U256::from(tx_req.max_fee_per_gas.unwrap()),
+ gas_price: tx_req.max_fee_per_gas.unwrap(),
gas_limit: tx_req.gas.unwrap_or_default(),
..Default::default()
}
diff --git a/vocs/docs/snippets/advanced/examples/uniswap_u256/alloy_profit.rs b/vocs/docs/snippets/advanced/examples/uniswap_u256/alloy_profit.rs
new file mode 100644
index 0000000..7bf3bec
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/uniswap_u256/alloy_profit.rs
@@ -0,0 +1,36 @@
+//! Uniswap V2 Arbitrage Profit Calculation using alloy U256
+
+use alloy::primitives::utils::format_units;
+use eyre::Result;
+use uniswap_u256::helpers::alloy::{
+ get_amount_in, get_amount_out, get_sushi_pair, get_uniswap_pair,
+};
+
+fn main() -> Result<()> {
+ let uniswap_pair = get_uniswap_pair();
+ let sushi_pair = get_sushi_pair();
+
+ let amount_in = get_amount_in(
+ uniswap_pair.reserve0,
+ uniswap_pair.reserve1,
+ false,
+ sushi_pair.reserve0,
+ sushi_pair.reserve1,
+ );
+
+ let dai_amount_out = get_amount_out(uniswap_pair.reserve1, uniswap_pair.reserve0, amount_in);
+
+ let weth_amount_out = get_amount_out(sushi_pair.reserve0, sushi_pair.reserve1, dai_amount_out);
+
+ if weth_amount_out < amount_in {
+ println!("No profit detected");
+ return Ok(());
+ }
+
+ let profit = weth_amount_out - amount_in;
+ println!("Alloy U256");
+ println!("WETH amount in {}", format_units(amount_in, 18).unwrap());
+ println!("WETH profit: {}", format_units(profit, 18).unwrap());
+
+ Ok(())
+}
diff --git a/vocs/docs/snippets/advanced/examples/uniswap_u256/alloy_simulation.rs b/vocs/docs/snippets/advanced/examples/uniswap_u256/alloy_simulation.rs
new file mode 100644
index 0000000..c8951f5
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/uniswap_u256/alloy_simulation.rs
@@ -0,0 +1,172 @@
+//! Uniswap V2 Arbitrage Simulation using alloy
+
+use alloy::{
+ hex,
+ network::TransactionBuilder,
+ primitives::{utils::parse_units, Bytes, B256, U256},
+ providers::{ext::AnvilApi, Provider, ProviderBuilder},
+ rpc::types::TransactionRequest,
+ sol,
+ sol_types::SolCall,
+};
+
+use alloy::primitives::address;
+use eyre::Result;
+use uniswap_u256::helpers::alloy::{
+ get_amount_in, get_amount_out, get_sushi_pair, get_uniswap_pair, set_hash_storage_slot,
+ DAI_ADDR, WETH_ADDR,
+};
+
+sol! {
+ function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
+}
+
+sol!(
+ #[sol(rpc)]
+ contract IERC20 {
+ function balanceOf(address target) returns (uint256);
+ }
+);
+
+sol!(
+ #[sol(rpc)]
+ FlashBotsMultiCall,
+ "examples/abi/FlashBotsMultiCall.json"
+);
+
+#[tokio::main]
+async fn main() -> Result<()> {
+ let uniswap_pair = get_uniswap_pair();
+ let sushi_pair = get_sushi_pair();
+
+ let wallet_address = address!("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266");
+ let provider = ProviderBuilder::new()
+ .connect_anvil_with_wallet_and_config(|a| a.fork("https://reth-ethereum.ithaca.xyz/rpc"))?;
+
+ let executor = FlashBotsMultiCall::deploy(provider.clone(), wallet_address).await?;
+ let iweth = IERC20::new(WETH_ADDR, provider.clone());
+
+ // Mock WETH balance for executor contract
+ set_hash_storage_slot(
+ provider.clone(),
+ WETH_ADDR,
+ U256::from(3),
+ *executor.address(),
+ parse_units("5.0", "ether")?.into(),
+ )
+ .await?;
+
+ // Mock reserves for Uniswap pair
+ provider
+ .anvil_set_storage_at(
+ uniswap_pair.address,
+ U256::from(8), // getReserves slot
+ B256::from_slice(&hex!(
+ "665c6fcf00000000008ed55850d607f83a660000000526c08d812099d2577fbf"
+ )),
+ )
+ .await?;
+
+ // Mock WETH balance for Uniswap pair
+ set_hash_storage_slot(
+ &provider,
+ WETH_ADDR,
+ U256::from(3),
+ uniswap_pair.address,
+ uniswap_pair.reserve1,
+ )
+ .await?;
+
+ // Mock DAI balance for Uniswap pair
+ set_hash_storage_slot(
+ &provider,
+ DAI_ADDR,
+ U256::from(2),
+ uniswap_pair.address,
+ uniswap_pair.reserve0,
+ )
+ .await?;
+
+ // Mock reserves for Sushi pair
+
+ provider
+ .anvil_set_storage_at(
+ sushi_pair.address,
+ U256::from(8), // getReserves slot
+ B256::from_slice(&hex!(
+ "665c6fcf00000000006407e2ec8d4f09436700000003919bf56d886af022979d"
+ )),
+ )
+ .await?;
+
+ // Mock WETH balance for Sushi pair
+ set_hash_storage_slot(
+ &provider,
+ WETH_ADDR,
+ U256::from(3),
+ sushi_pair.address,
+ sushi_pair.reserve1,
+ )
+ .await?;
+
+ // Mock DAI balance for Sushi pair
+ set_hash_storage_slot(
+ &provider,
+ DAI_ADDR,
+ U256::from(2),
+ sushi_pair.address,
+ sushi_pair.reserve0,
+ )
+ .await?;
+
+ let balance_of = iweth.balanceOf(*executor.address()).call().await?;
+ println!("Before - WETH balance of executor {:?}", balance_of);
+
+ let weth_amount_in = get_amount_in(
+ uniswap_pair.reserve0,
+ uniswap_pair.reserve1,
+ false,
+ sushi_pair.reserve0,
+ sushi_pair.reserve1,
+ );
+
+ let dai_amount_out =
+ get_amount_out(uniswap_pair.reserve1, uniswap_pair.reserve0, weth_amount_in);
+
+ let weth_amount_out = get_amount_out(sushi_pair.reserve0, sushi_pair.reserve1, dai_amount_out);
+
+ let swap1 = swapCall {
+ amount0Out: dai_amount_out,
+ amount1Out: U256::ZERO,
+ to: sushi_pair.address,
+ data: Bytes::new(),
+ }
+ .abi_encode();
+
+ let swap2 = swapCall {
+ amount0Out: U256::ZERO,
+ amount1Out: weth_amount_out,
+ to: *executor.address(),
+ data: Bytes::new(),
+ }
+ .abi_encode();
+
+ let arb_calldata = FlashBotsMultiCall::uniswapWethCall {
+ _wethAmountToFirstMarket: weth_amount_in,
+ _ethAmountToCoinbase: U256::ZERO,
+ _targets: vec![uniswap_pair.address, sushi_pair.address],
+ _payloads: vec![Bytes::from(swap1), Bytes::from(swap2)],
+ }
+ .abi_encode();
+
+ let arb_tx =
+ TransactionRequest::default().with_to(*executor.address()).with_input(arb_calldata);
+
+ let pending = provider.send_transaction(arb_tx).await?;
+ pending.get_receipt().await?;
+
+ let balance_of = iweth.balanceOf(*executor.address()).call().await?;
+ println!("After - WETH balance of executor {:?}", balance_of);
+
+ Ok(())
+}
diff --git a/vocs/docs/snippets/advanced/examples/uniswap_u256/ethers_profit.rs b/vocs/docs/snippets/advanced/examples/uniswap_u256/ethers_profit.rs
new file mode 100644
index 0000000..4f9ff9f
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/uniswap_u256/ethers_profit.rs
@@ -0,0 +1,34 @@
+//! Uniswap V2 Arbitrage Profit Calculation using ethers-rs U256
+use eyre::Result;
+use uniswap_u256::helpers::ethers::{
+ display_token, get_amount_in, get_amount_out, get_sushi_pair, get_uniswap_pair,
+};
+
+fn main() -> Result<()> {
+ let uniswap_pair = get_uniswap_pair();
+ let sushi_pair = get_sushi_pair();
+
+ let amount_in = get_amount_in(
+ uniswap_pair.reserve0,
+ uniswap_pair.reserve1,
+ false,
+ sushi_pair.reserve0,
+ sushi_pair.reserve1,
+ );
+
+ let dai_amount_out = get_amount_out(uniswap_pair.reserve1, uniswap_pair.reserve0, amount_in);
+
+ let weth_amount_out = get_amount_out(sushi_pair.reserve0, sushi_pair.reserve1, dai_amount_out);
+
+ if weth_amount_out < amount_in {
+ println!("No profit detected");
+ return Ok(());
+ }
+
+ let profit = weth_amount_out - amount_in;
+ println!("Ethers-rs U256");
+ println!("WETH amount in {}", display_token(amount_in));
+ println!("WETH profit: {}", display_token(profit));
+
+ Ok(())
+}
diff --git a/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/alloy.rs b/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/alloy.rs
new file mode 100644
index 0000000..6ce0430
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/alloy.rs
@@ -0,0 +1,173 @@
+use std::ops::{Add, Div, Mul, Sub};
+
+use alloy::{
+ primitives::{address, keccak256, Address, U256},
+ providers::{ext::AnvilApi, Provider},
+ sol_types::SolValue,
+ uint,
+};
+use ethers::types::U256 as EthersU256;
+use eyre::Result;
+
+/// WETH address
+pub static WETH_ADDR: Address = address!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2");
+/// DAI address
+pub static DAI_ADDR: Address = address!("6B175474E89094C44Da98b954EedeAC495271d0F");
+
+/// Uniswap V2 Pair
+#[derive(Debug)]
+pub struct UniV2Pair {
+ /// Pair contract address
+ pub address: Address,
+ /// Token0 address
+ pub token0: Address,
+ /// Token1 address
+ pub token1: Address,
+ /// Reserves of token0
+ pub reserve0: U256,
+ /// Reserves of token1
+ pub reserve1: U256,
+}
+
+// https://etherscan.io/address/0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11
+/// Get DAI-WETH Uniswap V2 pair
+pub fn get_uniswap_pair() -> UniV2Pair {
+ UniV2Pair {
+ address: address!("A478c2975Ab1Ea89e8196811F51A7B7Ade33eB11"),
+ token0: DAI_ADDR,
+ token1: WETH_ADDR,
+ reserve0: uint!(6227630995751221000110015_U256),
+ reserve1: uint!(2634810784674972449382_U256),
+ }
+}
+
+// https://etherscan.io/address/0xC3D03e4F041Fd4cD388c549Ee2A29a9E5075882f
+/// Get DAI-WETH Sushiswap pair
+pub fn get_sushi_pair() -> UniV2Pair {
+ UniV2Pair {
+ address: address!("C3D03e4F041Fd4cD388c549Ee2A29a9E5075882f"),
+ token0: DAI_ADDR,
+ token1: WETH_ADDR,
+ reserve0: uint!(4314397529132715691120541_U256),
+ reserve1: uint!(1845242683965617816423_U256),
+ }
+}
+
+/// Helper trait to convert to alloy types
+pub trait ToEthers {
+ /// Target type
+ type To;
+ /// Convert to target type
+ fn to_ethers(self) -> Self::To;
+}
+
+impl ToEthers for U256 {
+ type To = EthersU256;
+
+ #[inline(always)]
+ fn to_ethers(self) -> Self::To {
+ EthersU256(self.into_limbs())
+ }
+}
+
+/// Get amount out for Uniswap V2
+pub fn get_amount_out(reserve_in: U256, reserve_out: U256, amount_in: U256) -> U256 {
+ let amount_in_with_fee = amount_in * get_uniswappy_fee();
+ let numerator = amount_in_with_fee * reserve_out;
+ let denominator = reserve_in * U256::from(1000) + amount_in_with_fee;
+ numerator / denominator
+}
+
+/// Get amount in for Uniswap V2
+pub fn get_amount_in(
+ reserves00: U256,
+ reserves01: U256,
+ is_weth0: bool,
+ reserves10: U256,
+ reserves11: U256,
+) -> U256 {
+ let numerator = get_numerator(reserves00, reserves01, is_weth0, reserves10, reserves11);
+
+ let denominator = get_denominator(reserves00, reserves01, is_weth0, reserves10, reserves11);
+
+ numerator * U256::from(1000) / denominator
+}
+
+fn sqrt(input: U256) -> U256 {
+ if input == U256::ZERO {
+ return U256::ZERO;
+ }
+
+ let mut z = (input + U256::from(1)) / U256::from(2);
+ let mut y = input;
+ while z < y {
+ y = z;
+ z = (input / z + z) / U256::from(2);
+ }
+ y
+}
+
+fn get_numerator(
+ reserves00: U256,
+ reserves01: U256,
+ is_weth0: bool,
+ reserves10: U256,
+ reserves11: U256,
+) -> U256 {
+ if is_weth0 {
+ let presqrt = get_uniswappy_fee()
+ .mul(get_uniswappy_fee())
+ .mul(reserves01)
+ .mul(reserves10)
+ .div(reserves11)
+ .div(reserves00);
+ sqrt(presqrt).sub(U256::from(1000)).mul(reserves11).mul(reserves00)
+ } else {
+ let presqrt = get_uniswappy_fee()
+ .mul(get_uniswappy_fee())
+ .mul(reserves00)
+ .mul(reserves11)
+ .div(reserves10)
+ .div(reserves01);
+ (sqrt(presqrt)).sub(U256::from(1000)).mul(reserves10).mul(reserves01)
+ }
+}
+
+fn get_denominator(
+ reserves00: U256,
+ reserves01: U256,
+ is_weth0: bool,
+ reserves10: U256,
+ reserves11: U256,
+) -> U256 {
+ if is_weth0 {
+ get_uniswappy_fee()
+ .mul(reserves11)
+ .mul(U256::from(1000))
+ .add(get_uniswappy_fee().mul(get_uniswappy_fee()).mul(reserves01))
+ } else {
+ get_uniswappy_fee()
+ .mul(reserves10)
+ .mul(U256::from(1000))
+ .add(get_uniswappy_fee().mul(get_uniswappy_fee()).mul(reserves00))
+ }
+}
+
+fn get_uniswappy_fee() -> U256 {
+ U256::from(997)
+}
+
+/// Set a storage slot in the Anvil node
+pub async fn set_hash_storage_slot(
+ anvil_provider: P,
+ address: Address,
+ hash_slot: U256,
+ hash_key: Address,
+ value: U256,
+) -> Result<()> {
+ let hashed_slot = keccak256((hash_key, hash_slot).abi_encode());
+
+ anvil_provider.anvil_set_storage_at(address, hashed_slot.into(), value.into()).await?;
+
+ Ok(())
+}
diff --git a/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/ethers.rs b/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/ethers.rs
new file mode 100644
index 0000000..44ad2eb
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/ethers.rs
@@ -0,0 +1,159 @@
+use alloy::primitives::U256 as AlloyU256;
+use ethers::types::{Address, U256};
+use std::ops::{Add, Div, Mul, Sub};
+
+/// Uniswap V2 Pair
+#[derive(Debug)]
+pub struct UniV2Pair {
+ /// Address of the pair contract
+ pub address: Address,
+ /// Token0 address
+ pub token0: Address,
+ /// Token1 address
+ pub token1: Address,
+ /// Reserves of token0
+ pub reserve0: U256,
+ /// Reserves of token1
+ pub reserve1: U256,
+}
+
+// https://etherscan.io/address/0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11
+/// Get DAI-WETH Uniswap V2 pair
+pub fn get_uniswap_pair() -> UniV2Pair {
+ UniV2Pair {
+ address: "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11".parse().unwrap(),
+ token0: dai(),
+ token1: weth(),
+ reserve0: U256::from_dec_str("6227630995751221000110015").unwrap(),
+ reserve1: U256::from_dec_str("2634810784674972449382").unwrap(),
+ }
+}
+
+// https://etherscan.io/address/0xC3D03e4F041Fd4cD388c549Ee2A29a9E5075882f
+/// Get DAI-WETH Sushiswap pair
+pub fn get_sushi_pair() -> UniV2Pair {
+ UniV2Pair {
+ address: "0xC3D03e4F041Fd4cD388c549Ee2A29a9E5075882f".parse().unwrap(),
+ token0: dai(),
+ token1: weth(),
+ reserve0: U256::from_dec_str("4314397529132715691120541").unwrap(),
+ reserve1: U256::from_dec_str("1845242683965617816423").unwrap(),
+ }
+}
+
+/// Helper trait to convert to alloy types
+pub trait ToAlloy {
+ /// Target type
+ type To;
+ /// Convert to target type
+ fn to_alloy(self) -> Self::To;
+}
+
+impl ToAlloy for U256 {
+ type To = AlloyU256;
+
+ #[inline(always)]
+ fn to_alloy(self) -> Self::To {
+ AlloyU256::from_limbs(self.0)
+ }
+}
+
+fn weth() -> Address {
+ "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2".parse().unwrap()
+}
+
+fn dai() -> Address {
+ "0x6B175474E89094C44Da98b954EedeAC495271d0F".parse().unwrap()
+}
+
+/// Displays the token amount in a human-readable format
+pub fn display_token(value: U256) -> String {
+ format!("{:.16}", value.low_u128() as f64 / 1_000_000_000_000_000_000.0)
+}
+
+/// Gets the amountOut
+pub fn get_amount_out(reserve_in: U256, reserve_out: U256, amount_in: U256) -> U256 {
+ let amount_in_with_fee = amount_in * U256::from(997); // uniswap fee 0.3%
+ let numerator = amount_in_with_fee * reserve_out;
+ let denominator = reserve_in * U256::from(1000) + amount_in_with_fee;
+ numerator / denominator
+}
+
+/// Gets the amountIn
+pub fn get_amount_in(
+ reserves00: U256,
+ reserves01: U256,
+ is_weth0: bool,
+ reserves10: U256,
+ reserves11: U256,
+) -> U256 {
+ let numerator = get_numerator(reserves00, reserves01, is_weth0, reserves10, reserves11);
+
+ let denominator = get_denominator(reserves00, reserves01, is_weth0, reserves10, reserves11);
+
+ numerator * U256::from(1000) / denominator
+}
+
+fn sqrt(input: U256) -> U256 {
+ if input == U256::zero() {
+ return U256::zero();
+ }
+
+ let mut z = (input + U256::from(1)) / U256::from(2);
+ let mut y = input;
+ while z < y {
+ y = z;
+ z = (input / z + z) / U256::from(2);
+ }
+ y
+}
+
+fn get_numerator(
+ reserves00: U256,
+ reserves01: U256,
+ is_weth0: bool,
+ reserves10: U256,
+ reserves11: U256,
+) -> U256 {
+ if is_weth0 {
+ let presqrt = get_uniswappy_fee()
+ .mul(get_uniswappy_fee())
+ .mul(reserves01)
+ .mul(reserves10)
+ .div(reserves11)
+ .div(reserves00);
+ sqrt(presqrt).sub(U256::from(1000)).mul(reserves11).mul(reserves00)
+ } else {
+ let presqrt = get_uniswappy_fee()
+ .mul(get_uniswappy_fee())
+ .mul(reserves00)
+ .mul(reserves11)
+ .div(reserves10)
+ .div(reserves01);
+ (sqrt(presqrt)).sub(U256::from(1000)).mul(reserves10).mul(reserves01)
+ }
+}
+
+fn get_denominator(
+ reserves00: U256,
+ reserves01: U256,
+ is_weth0: bool,
+ reserves10: U256,
+ reserves11: U256,
+) -> U256 {
+ if is_weth0 {
+ get_uniswappy_fee()
+ .mul(reserves11)
+ .mul(U256::from(1000))
+ .add(get_uniswappy_fee().mul(get_uniswappy_fee()).mul(reserves01))
+ } else {
+ get_uniswappy_fee()
+ .mul(reserves10)
+ .mul(U256::from(1000))
+ .add(get_uniswappy_fee().mul(get_uniswappy_fee()).mul(reserves00))
+ }
+}
+
+fn get_uniswappy_fee() -> U256 {
+ U256::from(997)
+}
diff --git a/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/mod.rs b/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/mod.rs
new file mode 100644
index 0000000..52e28c8
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/uniswap_u256/helpers/mod.rs
@@ -0,0 +1,4 @@
+/// Alloy helpers
+pub mod alloy;
+/// Ethers helpers
+pub mod ethers;
diff --git a/vocs/docs/snippets/advanced/examples/uniswap_u256/lib.rs b/vocs/docs/snippets/advanced/examples/uniswap_u256/lib.rs
new file mode 100644
index 0000000..d1290fe
--- /dev/null
+++ b/vocs/docs/snippets/advanced/examples/uniswap_u256/lib.rs
@@ -0,0 +1,4 @@
+//! Alloy and ethers helpers
+
+/// Helpers
+pub mod helpers;
diff --git a/vocs/docs/snippets/comparison/Cargo.toml b/vocs/docs/snippets/comparison/Cargo.toml
index a4d1661..7828e64 100644
--- a/vocs/docs/snippets/comparison/Cargo.toml
+++ b/vocs/docs/snippets/comparison/Cargo.toml
@@ -15,8 +15,8 @@ workspace = true
[dev-dependencies]
alloy.workspace = true
-chrono = "0.4"
-clap = { version = "4.5", features = ["derive"] }
+chrono.workspace = true
+clap = { workspace = true, features = ["derive"] }
eyre.workspace = true
futures-util.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
diff --git a/vocs/docs/snippets/comparison/examples/compare_new_heads.rs b/vocs/docs/snippets/comparison/examples/compare_new_heads.rs
index 96f906b..f08c27e 100644
--- a/vocs/docs/snippets/comparison/examples/compare_new_heads.rs
+++ b/vocs/docs/snippets/comparison/examples/compare_new_heads.rs
@@ -34,7 +34,7 @@ async fn main() -> Result<()> {
let provider = match ProviderBuilder::new().network::().connect(&url).await {
Ok(provider) => provider,
Err(e) => {
- eprintln!("skipping {} at {} because of error: {}", name, url, e);
+ eprintln!("skipping {name} at {url} because of error: {e}");
continue;
}
};
@@ -42,7 +42,7 @@ async fn main() -> Result<()> {
let mut stream = match provider.subscribe_blocks().await {
Ok(stream) => stream.into_stream().take(10),
Err(e) => {
- eprintln!("skipping {} at {} because of error: {}", name, url, e);
+ eprintln!("skipping {name} at {url} because of error: {e}");
continue;
}
};
@@ -53,7 +53,7 @@ async fn main() -> Result<()> {
let _p = provider; // keep provider alive
while let Some(header) = stream.next().await {
if let Err(e) = sx.send((name.clone(), header, Utc::now())) {
- eprintln!("sending to channel failed: {}", e);
+ eprintln!("sending to channel failed: {e}");
}
}
}));
diff --git a/vocs/docs/snippets/comparison/examples/compare_pending_txs.rs b/vocs/docs/snippets/comparison/examples/compare_pending_txs.rs
index fd12fd6..b86d0b1 100644
--- a/vocs/docs/snippets/comparison/examples/compare_pending_txs.rs
+++ b/vocs/docs/snippets/comparison/examples/compare_pending_txs.rs
@@ -24,7 +24,7 @@ async fn main() -> Result<()> {
let mut rpcs = vec![];
for (name, url) in tmp {
if url.starts_with("http") {
- eprintln!("skipping {} at {} because it is not a websocket/ipc endpoint", name, url);
+ eprintln!("skipping {name} at {url} because it is not a websocket/ipc endpoint");
continue;
}
rpcs.push((name, url));
@@ -41,7 +41,7 @@ async fn main() -> Result<()> {
let provider = match ProviderBuilder::new().network::().connect(&url).await {
Ok(provider) => provider,
Err(e) => {
- eprintln!("skipping {} at {} because of error: {}", name, url, e);
+ eprintln!("skipping {name} at {url} because of error: {e}");
continue;
}
};
@@ -49,7 +49,7 @@ async fn main() -> Result<()> {
let mut stream = match provider.subscribe_pending_transactions().await {
Ok(stream) => stream.into_stream().take(50),
Err(e) => {
- eprintln!("skipping {} at {} because of error: {}", name, url, e);
+ eprintln!("skipping {name} at {url} because of error: {e}");
continue;
}
};
@@ -60,7 +60,7 @@ async fn main() -> Result<()> {
let _p = provider; // keep provider alive
while let Some(tx_hash) = stream.next().await {
if let Err(e) = sx.send((name.clone(), tx_hash, Utc::now())) {
- eprintln!("sending to channel failed: {}", e);
+ eprintln!("sending to channel failed: {e}");
}
}
}));
diff --git a/vocs/docs/snippets/contracts/examples/arb_profit_calc.rs b/vocs/docs/snippets/contracts/examples/arb_profit_calc.rs
index 6b28811..a214016 100644
--- a/vocs/docs/snippets/contracts/examples/arb_profit_calc.rs
+++ b/vocs/docs/snippets/contracts/examples/arb_profit_calc.rs
@@ -1,5 +1,6 @@
//! Simple arbitrage profit calculator for WETH/DAI pools
-//! Reads the balaces of the Uniswap V2 and SushiSwap pools and calculates a basic arb opportunity.
+//! Reads the balaces of the Uniswap V2 and `Sushiswap` pools and calculates a basic arb
+//! opportunity.
mod helpers;
use crate::helpers::{get_amount_in, get_amount_out, get_sushi_pair, get_uniswap_pair};
diff --git a/vocs/docs/snippets/contracts/examples/deploy_and_link_library.rs b/vocs/docs/snippets/contracts/examples/deploy_and_link_library.rs
index 042751f..c430d49 100644
--- a/vocs/docs/snippets/contracts/examples/deploy_and_link_library.rs
+++ b/vocs/docs/snippets/contracts/examples/deploy_and_link_library.rs
@@ -46,11 +46,11 @@ async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the library (instead of using existing ones)
let lib_addr: Address = Comparators::deploy_builder(&provider).deploy().await?;
- println!("Deployed Comparators library at: {}", lib_addr);
+ println!("Deployed Comparators library at: {lib_addr}");
// Link the Counter contract bytecode by replacing the library placeholder
let counter_linked_bytecode = Bytes::from_hex(
@@ -63,7 +63,7 @@ async fn main() -> Result<()> {
.map(|req| req.with_deploy_code(counter_linked_bytecode))
.deploy()
.await?;
- println!("Deployed Counter contract at: {}", counter_addr);
+ println!("Deployed Counter contract at: {counter_addr}");
// Instantiate the deployed Counter contract
let counter = Counter::new(counter_addr, &provider);
diff --git a/vocs/docs/snippets/contracts/examples/deploy_from_artifact.rs b/vocs/docs/snippets/contracts/examples/deploy_from_artifact.rs
index 21b74f8..3739344 100644
--- a/vocs/docs/snippets/contracts/examples/deploy_from_artifact.rs
+++ b/vocs/docs/snippets/contracts/examples/deploy_from_artifact.rs
@@ -16,7 +16,7 @@ sol!(
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the `Counter` contract.
let contract = Counter::deploy(&provider).await?;
diff --git a/vocs/docs/snippets/contracts/examples/deploy_from_bytecode.rs b/vocs/docs/snippets/contracts/examples/deploy_from_bytecode.rs
index 9bf8c6f..0a2d10b 100644
--- a/vocs/docs/snippets/contracts/examples/deploy_from_bytecode.rs
+++ b/vocs/docs/snippets/contracts/examples/deploy_from_bytecode.rs
@@ -34,7 +34,7 @@ sol! {
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the `Counter` contract from bytecode at runtime.
let bytecode = hex::decode(
diff --git a/vocs/docs/snippets/contracts/examples/deploy_from_contract.rs b/vocs/docs/snippets/contracts/examples/deploy_from_contract.rs
index ee48bc3..7ea8381 100644
--- a/vocs/docs/snippets/contracts/examples/deploy_from_contract.rs
+++ b/vocs/docs/snippets/contracts/examples/deploy_from_contract.rs
@@ -26,7 +26,7 @@ sol! {
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the `Counter` contract.
let contract = Counter::deploy(&provider).await?;
diff --git a/vocs/docs/snippets/contracts/examples/helpers.rs b/vocs/docs/snippets/contracts/examples/helpers.rs
index 237ab41..4c74ffd 100644
--- a/vocs/docs/snippets/contracts/examples/helpers.rs
+++ b/vocs/docs/snippets/contracts/examples/helpers.rs
@@ -1,4 +1,4 @@
-//! Helpers for the UniswapV2 and Sushiswap arb simulation.
+//! Helpers for the `UniswapV2` and Sushiswap arb simulation.
#![allow(missing_docs, dead_code)]
use std::ops::{Add, Div, Mul, Sub};
@@ -143,4 +143,4 @@ pub(crate) async fn set_hash_storage_slot(
Ok(())
}
-fn main() {}
+const fn main() {}
diff --git a/vocs/docs/snippets/contracts/examples/interact_with_abi.rs b/vocs/docs/snippets/contracts/examples/interact_with_abi.rs
index a9de722..ed36539 100644
--- a/vocs/docs/snippets/contracts/examples/interact_with_abi.rs
+++ b/vocs/docs/snippets/contracts/examples/interact_with_abi.rs
@@ -17,7 +17,7 @@ async fn main() -> Result<()> {
// Ensure `anvil` is available in $PATH.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc";
let provider =
- ProviderBuilder::new().on_anvil_with_wallet_and_config(|anvil| anvil.fork(rpc_url))?;
+ ProviderBuilder::new().connect_anvil_with_wallet_and_config(|anvil| anvil.fork(rpc_url))?;
// Create a contract instance.
let contract = IWETH9::new(address!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"), provider);
diff --git a/vocs/docs/snippets/contracts/examples/interact_with_contract_instance.rs b/vocs/docs/snippets/contracts/examples/interact_with_contract_instance.rs
index 43ba3f8..6545ff7 100644
--- a/vocs/docs/snippets/contracts/examples/interact_with_contract_instance.rs
+++ b/vocs/docs/snippets/contracts/examples/interact_with_contract_instance.rs
@@ -15,7 +15,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the `Counter` contract from bytecode at runtime.
let bytecode = hex::decode(
diff --git a/vocs/docs/snippets/contracts/examples/revert_decoding.rs b/vocs/docs/snippets/contracts/examples/revert_decoding.rs
index c388130..4d66b5c 100644
--- a/vocs/docs/snippets/contracts/examples/revert_decoding.rs
+++ b/vocs/docs/snippets/contracts/examples/revert_decoding.rs
@@ -27,7 +27,7 @@ sol! {
async fn main() -> Result<()> {
// Setup an Anvil provider with a wallet.
// Make sure `anvil` is in your $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the contract.
let contract = ThrowsError::deploy(&provider).await?;
@@ -38,12 +38,12 @@ async fn main() -> Result<()> {
// Get the raw bytes of the revert data.
let revert_data = err.as_revert_data().unwrap();
- println!("Decoding revert data: {:?}", revert_data);
+ println!("Decoding revert data: {revert_data:?}");
// Decode the revert data as a custom error.
let decoded_err = err.as_decoded_error::().unwrap();
- println!("Decoded as: {:?}", decoded_err);
+ println!("Decoded as: {decoded_err:?}");
assert_eq!(decoded_err, SomeCustomError { a: U256::from(1) });
@@ -55,11 +55,11 @@ async fn main() -> Result<()> {
// The above returns an enum with the errors as its variants.
match decoded_err {
ErrorsErrors::SomeCustomError(err) => {
- println!("Decoded as: {:?}", err);
+ println!("Decoded as: {err:?}");
assert_eq!(err.a, U256::from(1));
}
ErrorsErrors::AnotherError(err) => {
- println!("Decoded as: {:?}", err);
+ println!("Decoded as: {err:?}");
assert_eq!(err.b, 0);
}
}
diff --git a/vocs/docs/snippets/contracts/examples/simulation_uni_v2.rs b/vocs/docs/snippets/contracts/examples/simulation_uni_v2.rs
index 9036199..705f7f7 100644
--- a/vocs/docs/snippets/contracts/examples/simulation_uni_v2.rs
+++ b/vocs/docs/snippets/contracts/examples/simulation_uni_v2.rs
@@ -1,5 +1,5 @@
-//! Simulates an arbitrage between Uniswap V2 and SushiSwap by forking anvil and using the
-//! FlashBotsMultiCall contract.
+//! Simulates an arbitrage between Uniswap V2 and `Sushiswap` by forking anvil and using the
+//! `FlashBotsMultiCall` contract.
use alloy::{
hex,
network::TransactionBuilder,
@@ -46,8 +46,9 @@ async fn main() -> Result<()> {
let sushi_pair = get_sushi_pair();
let wallet_address: Address = anvil.addresses()[0];
- let provider =
- ProviderBuilder::new().wallet(anvil.wallet().unwrap()).on_http(anvil.endpoint().parse()?);
+ let provider = ProviderBuilder::new()
+ .wallet(anvil.wallet().unwrap())
+ .connect_http(anvil.endpoint().parse()?);
let executor = FlashBotsMultiCall::deploy(provider.clone(), wallet_address).await?;
let iweth = IERC20::new(WETH_ADDR, provider.clone());
@@ -126,7 +127,7 @@ async fn main() -> Result<()> {
.await?;
let balance_of = iweth.balanceOf(*executor.address()).call().await?;
- println!("Before - WETH balance of executor {:?}", balance_of);
+ println!("Before - WETH balance of executor {balance_of:?}");
let weth_amount_in = get_amount_in(
uniswap_pair.reserve0,
@@ -172,7 +173,7 @@ async fn main() -> Result<()> {
pending.get_receipt().await?;
let balance_of = iweth.balanceOf(*executor.address()).call().await?;
- println!("After - WETH balance of executor {:?}", balance_of);
+ println!("After - WETH balance of executor {balance_of:?}");
Ok(())
}
diff --git a/vocs/docs/snippets/contracts/examples/unknown_return_types.rs b/vocs/docs/snippets/contracts/examples/unknown_return_types.rs
index 88f3936..cddeed7 100644
--- a/vocs/docs/snippets/contracts/examples/unknown_return_types.rs
+++ b/vocs/docs/snippets/contracts/examples/unknown_return_types.rs
@@ -15,7 +15,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Get the first account from the wallet, Alice.
let alice = provider.get_accounts().await?[0];
diff --git a/vocs/docs/snippets/ens/Cargo.toml b/vocs/docs/snippets/ens/Cargo.toml
new file mode 100644
index 0000000..bd51e6d
--- /dev/null
+++ b/vocs/docs/snippets/ens/Cargo.toml
@@ -0,0 +1,20 @@
+[package]
+name = "examples-ens"
+publish.workspace = true
+version.workspace = true
+edition.workspace = true
+rust-version.workspace = true
+authors.workspace = true
+license.workspace = true
+homepage.workspace = true
+repository.workspace = true
+
+[lints]
+workspace = true
+
+[dev-dependencies]
+alloy.workspace = true
+
+eyre.workspace = true
+futures-util.workspace = true
+tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
diff --git a/vocs/docs/snippets/ens/examples/address_lookup.rs b/vocs/docs/snippets/ens/examples/address_lookup.rs
new file mode 100644
index 0000000..4f7d8fe
--- /dev/null
+++ b/vocs/docs/snippets/ens/examples/address_lookup.rs
@@ -0,0 +1,20 @@
+//! Example of looking up ENS names from Ethereum addresses.
+use alloy::{ens::ProviderEnsExt, primitives::address, providers::ProviderBuilder};
+use eyre::Result;
+
+#[tokio::main]
+async fn main() -> Result<()> {
+ // Create a provider.
+ let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
+ let provider = ProviderBuilder::new().connect_http(rpc_url);
+
+ // Vitalik's Ethereum address.
+ let vitalik_address = address!("0xd8da6bf26964af9d7eed9e03e53415d37aa96045");
+
+ // Perform reverse ENS lookup to get the ENS name for the address.
+ let ens_name = provider.lookup_address(&vitalik_address).await?;
+
+ println!("Address {vitalik_address} resolves to: {ens_name:?}");
+
+ Ok(())
+}
diff --git a/vocs/docs/snippets/ens/examples/name_resolution.rs b/vocs/docs/snippets/ens/examples/name_resolution.rs
new file mode 100644
index 0000000..85685d7
--- /dev/null
+++ b/vocs/docs/snippets/ens/examples/name_resolution.rs
@@ -0,0 +1,18 @@
+//! Example of resolving ENS names to Ethereum addresses.
+
+use alloy::{ens::ProviderEnsExt, providers::ProviderBuilder};
+use eyre::Result;
+
+#[tokio::main]
+async fn main() -> Result<()> {
+ // Create a provider.
+ let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
+ let provider = ProviderBuilder::new().connect_http(rpc_url);
+
+ // Resolve the ENS name "vitalik.eth" to its Ethereum address.
+ let address = provider.resolve_name("vitalik.eth").await?;
+
+ println!("vitalik.eth resolves to: {address:?}");
+
+ Ok(())
+}
diff --git a/vocs/docs/snippets/fillers/Cargo.toml b/vocs/docs/snippets/fillers/Cargo.toml
index 8ea8faa..abdac0c 100644
--- a/vocs/docs/snippets/fillers/Cargo.toml
+++ b/vocs/docs/snippets/fillers/Cargo.toml
@@ -18,4 +18,4 @@ alloy.workspace = true
eyre.workspace = true
serde_json.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
-reqwest = "0.12.10"
+reqwest.workspace = true
diff --git a/vocs/docs/snippets/fillers/examples/gas_filler.rs b/vocs/docs/snippets/fillers/examples/gas_filler.rs
index f020ace..0c80f10 100644
--- a/vocs/docs/snippets/fillers/examples/gas_filler.rs
+++ b/vocs/docs/snippets/fillers/examples/gas_filler.rs
@@ -13,12 +13,15 @@ use eyre::Result;
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::default()
+ let provider = ProviderBuilder::new()
+ // You can disable the recommended fillers by calling the `disable_recommended_fillers()`
+ // and pick the fillers of your choice.
+ .disable_recommended_fillers()
// Add the `GasFiller` to the provider.
// It is generally recommended to use the recommended fillers which includes the GasFiller,
// enabled by building the provider using ProviderBuilder::new().
.with_gas_estimation()
- .on_anvil_with_wallet();
+ .connect_anvil_with_wallet();
// Build an EIP-1559 type transaction to send 100 wei to Vitalik.
let vitalik = address!("d8dA6BF26964aF9D7eEd9e03E53415D37aA96045");
diff --git a/vocs/docs/snippets/fillers/examples/nonce_filler.rs b/vocs/docs/snippets/fillers/examples/nonce_filler.rs
index a745e8e..e6665b2 100644
--- a/vocs/docs/snippets/fillers/examples/nonce_filler.rs
+++ b/vocs/docs/snippets/fillers/examples/nonce_filler.rs
@@ -38,7 +38,7 @@ async fn main() -> Result<()> {
// reorganizations.
.with_cached_nonce_management()
// .with_simple_nonce_management()
- .on_anvil_with_wallet();
+ .connect_anvil_with_wallet();
// Build an EIP-1559 type transaction to send 100 wei to Vitalik.
let vitalik = address!("d8dA6BF26964aF9D7eEd9e03E53415D37aA96045");
diff --git a/vocs/docs/snippets/fillers/examples/recommended_fillers.rs b/vocs/docs/snippets/fillers/examples/recommended_fillers.rs
index cc8aa39..f4e8c85 100644
--- a/vocs/docs/snippets/fillers/examples/recommended_fillers.rs
+++ b/vocs/docs/snippets/fillers/examples/recommended_fillers.rs
@@ -20,7 +20,7 @@ async fn main() -> Result<()> {
// This is the recommended way to set up the provider.
// One can disable the recommended fillers by calling the `disable_recommended_fillers()`
// method or building the provider with `ProviderBuilder::default()`.
- .on_anvil_with_wallet();
+ .connect_anvil_with_wallet();
// Build an EIP-1559 type transaction to send 100 wei to Vitalik.
// Notice that the `nonce` field is set by the `NonceFiller`.
diff --git a/vocs/docs/snippets/fillers/examples/urgent_filler.rs b/vocs/docs/snippets/fillers/examples/urgent_filler.rs
index 0cfbe9c..370fb21 100644
--- a/vocs/docs/snippets/fillers/examples/urgent_filler.rs
+++ b/vocs/docs/snippets/fillers/examples/urgent_filler.rs
@@ -85,10 +85,7 @@ impl TxFiller for UrgentQueue {
Ok(res) => res,
Err(e) => {
return Err(RpcError::Transport(TransportErrorKind::Custom(Box::new(
- std::io::Error::new(
- std::io::ErrorKind::Other,
- format!("Failed to fetch gas price, {}", e),
- ),
+ std::io::Error::other(format!("Failed to fetch gas price, {e}")),
))));
}
};
@@ -107,14 +104,15 @@ impl TxFiller for UrgentQueue {
#[tokio::main]
async fn main() -> Result<()> {
// Instantiate the provider with the UrgentQueue filler
- let provider = ProviderBuilder::new().filler(UrgentQueue::default()).on_anvil_with_wallet();
+ let provider =
+ ProviderBuilder::new().filler(UrgentQueue::default()).connect_anvil_with_wallet();
let bob = Address::from([0x42; 20]);
let tx = TransactionRequest::default().with_to(bob).with_value(U256::from(1));
let bob_balance_before = provider.get_balance(bob).await?;
let res = provider.send_transaction(tx).await?.get_receipt().await?;
let bob_balance_after = provider.get_balance(bob).await?;
- println!("Balance before: {}\nBalance after: {}", bob_balance_before, bob_balance_after);
+ println!("Balance before: {bob_balance_before}\nBalance after: {bob_balance_after}");
let tx = provider.get_transaction_by_hash(res.transaction_hash).await?.unwrap();
println!("Max fee per gas: {:?}", tx.max_fee_per_gas());
diff --git a/vocs/docs/snippets/fillers/examples/wallet_filler.rs b/vocs/docs/snippets/fillers/examples/wallet_filler.rs
index a200eec..a9a5591 100644
--- a/vocs/docs/snippets/fillers/examples/wallet_filler.rs
+++ b/vocs/docs/snippets/fillers/examples/wallet_filler.rs
@@ -24,7 +24,7 @@ async fn main() -> Result<()> {
let provider = ProviderBuilder::new()
// Add the `WalletFiller` to the provider
.wallet(signer)
- .on_http(rpc_url);
+ .connect_http(rpc_url);
// Build an EIP-1559 type transaction to send 100 wei to Vitalik.
let vitalik = address!("d8dA6BF26964aF9D7eEd9e03E53415D37aA96045");
diff --git a/vocs/docs/snippets/layers/Cargo.toml b/vocs/docs/snippets/layers/Cargo.toml
index a75b616..6860de8 100644
--- a/vocs/docs/snippets/layers/Cargo.toml
+++ b/vocs/docs/snippets/layers/Cargo.toml
@@ -17,6 +17,6 @@ alloy = { workspace = true, features = ["hyper"] }
eyre.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
-tower = { version = "0.5", features = ["retry"] }
-http-body-util = "0.1"
-tracing-subscriber = "0.3"
+tower = { workspace = true, features = ["retry"] }
+http-body-util.workspace = true
+tracing-subscriber.workspace = true
diff --git a/vocs/docs/snippets/layers/examples/delay_layer.rs b/vocs/docs/snippets/layers/examples/delay_layer.rs
index 00e59d0..de9830d 100644
--- a/vocs/docs/snippets/layers/examples/delay_layer.rs
+++ b/vocs/docs/snippets/layers/examples/delay_layer.rs
@@ -33,7 +33,7 @@ pub struct DelayLayer {
impl DelayLayer {
/// Creates a new [`DelayLayer`] with the specified delay.
- pub fn new(delay: Duration) -> Self {
+ pub const fn new(delay: Duration) -> Self {
Self { delay }
}
}
@@ -84,7 +84,7 @@ async fn main() -> Result<()> {
.http(anvil.endpoint().parse()?);
// Instatiate a provider with the RPC-client that uses the `DelayLayer`.
- let provider = ProviderBuilder::new().wallet(signer).on_client(client);
+ let provider = ProviderBuilder::new().wallet(signer).connect_client(client);
let bob = Address::from([0x42; 20]);
let tx = TransactionRequest::default().with_to(bob).with_value(U256::from(1));
@@ -93,7 +93,7 @@ async fn main() -> Result<()> {
let receipt = provider.send_transaction(tx).await?.get_receipt().await?;
assert!(receipt.status(), "Transaction failed");
let bob_balance_after = provider.get_balance(bob).await?;
- println!("Balance before: {}\nBalance after: {}", bob_balance_before, bob_balance_after);
+ println!("Balance before: {bob_balance_before}\nBalance after: {bob_balance_after}");
Ok(())
}
diff --git a/vocs/docs/snippets/layers/examples/fallback_layer.rs b/vocs/docs/snippets/layers/examples/fallback_layer.rs
index 06f78cc..084ed4d 100644
--- a/vocs/docs/snippets/layers/examples/fallback_layer.rs
+++ b/vocs/docs/snippets/layers/examples/fallback_layer.rs
@@ -31,7 +31,7 @@ async fn main() -> Result<()> {
// Apply the FallbackLayer to the transports
let transport = ServiceBuilder::new().layer(fallback_layer).service(transports);
let client = RpcClient::builder().transport(transport, false);
- let provider = ProviderBuilder::new().on_client(client);
+ let provider = ProviderBuilder::new().connect_client(client);
// Get the latest block number using the provider with ranked transports.
// This will also print the rankings of the transports to the console.
diff --git a/vocs/docs/snippets/layers/examples/hyper_http_layer.rs b/vocs/docs/snippets/layers/examples/hyper_http_layer.rs
index cd13c66..d1c8189 100644
--- a/vocs/docs/snippets/layers/examples/hyper_http_layer.rs
+++ b/vocs/docs/snippets/layers/examples/hyper_http_layer.rs
@@ -37,7 +37,7 @@ async fn main() -> Result<()> {
// Create a new RPC client with the Hyper transport.
let rpc_client = RpcClient::new(http, true);
- let provider = ProviderBuilder::new().on_client(rpc_client);
+ let provider = ProviderBuilder::new().connect_client(rpc_client);
let num = provider.get_block_number().await.unwrap();
@@ -93,7 +93,7 @@ where
let header = req.headers_mut();
header.insert("x-alloy", "hyper".parse().unwrap());
- println!("Request: {:?}", req);
+ println!("Request: {req:?}");
let fut = self.inner.call(req);
diff --git a/vocs/docs/snippets/layers/examples/logging_layer.rs b/vocs/docs/snippets/layers/examples/logging_layer.rs
index 47e91e0..83e5393 100644
--- a/vocs/docs/snippets/layers/examples/logging_layer.rs
+++ b/vocs/docs/snippets/layers/examples/logging_layer.rs
@@ -78,7 +78,7 @@ async fn main() -> Result<()> {
let client = ClientBuilder::default().layer(LoggingLayer).http(rpc_url);
// Create a new provider with the client.
- let provider = ProviderBuilder::new().on_client(client);
+ let provider = ProviderBuilder::new().connect_client(client);
for _ in 0..10 {
let _block_number = provider.get_block_number().into_future().await?;
diff --git a/vocs/docs/snippets/layers/examples/retry_layer.rs b/vocs/docs/snippets/layers/examples/retry_layer.rs
index 377c1e9..9205514 100644
--- a/vocs/docs/snippets/layers/examples/retry_layer.rs
+++ b/vocs/docs/snippets/layers/examples/retry_layer.rs
@@ -28,7 +28,7 @@ async fn main() -> eyre::Result<()> {
// have been reached.
let client = RpcClient::builder().layer(retry_layer).http(anvil.endpoint_url());
- let provider = ProviderBuilder::new().on_client(client);
+ let provider = ProviderBuilder::new().connect_client(client);
let latest_block = provider.get_block_number().await?;
diff --git a/vocs/docs/snippets/node-bindings/examples/anvil_deploy_contract.rs b/vocs/docs/snippets/node-bindings/examples/anvil_deploy_contract.rs
index ec666f6..1eb7bc5 100644
--- a/vocs/docs/snippets/node-bindings/examples/anvil_deploy_contract.rs
+++ b/vocs/docs/snippets/node-bindings/examples/anvil_deploy_contract.rs
@@ -25,7 +25,7 @@ sol! {
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the `Counter` contract.
let contract = Counter::deploy(&provider).await?;
diff --git a/vocs/docs/snippets/node-bindings/examples/anvil_fork_instance.rs b/vocs/docs/snippets/node-bindings/examples/anvil_fork_instance.rs
index 72b4dc0..20f1694 100644
--- a/vocs/docs/snippets/node-bindings/examples/anvil_fork_instance.rs
+++ b/vocs/docs/snippets/node-bindings/examples/anvil_fork_instance.rs
@@ -12,12 +12,12 @@ async fn main() -> Result<()> {
// Ensure `anvil` is available in $PATH.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc";
let anvil = Anvil::new().fork(rpc_url).try_spawn()?;
- let provider = ProviderBuilder::new().on_http(anvil.endpoint_url());
+ let provider = ProviderBuilder::new().connect_http(anvil.endpoint_url());
// Get node info using the Anvil API.
let info = provider.anvil_node_info().await?;
- println!("Node info: {:#?}", info);
+ println!("Node info: {info:#?}");
assert_eq!(info.environment.chain_id, 1);
assert_eq!(info.fork_config.fork_url, Some(rpc_url.to_string()));
diff --git a/vocs/docs/snippets/node-bindings/examples/anvil_fork_provider.rs b/vocs/docs/snippets/node-bindings/examples/anvil_fork_provider.rs
index 5c22c7d..bd344f0 100644
--- a/vocs/docs/snippets/node-bindings/examples/anvil_fork_provider.rs
+++ b/vocs/docs/snippets/node-bindings/examples/anvil_fork_provider.rs
@@ -13,7 +13,7 @@ async fn main() -> Result<()> {
// Get node info using the Anvil API.
let info = provider.anvil_node_info().await?;
- println!("Node info: {:#?}", info);
+ println!("Node info: {info:#?}");
assert_eq!(info.environment.chain_id, 1);
assert_eq!(info.fork_config.fork_url, Some(rpc_url.to_string()));
diff --git a/vocs/docs/snippets/node-bindings/examples/anvil_local_instance.rs b/vocs/docs/snippets/node-bindings/examples/anvil_local_instance.rs
index a8e3f7f..19180d7 100644
--- a/vocs/docs/snippets/node-bindings/examples/anvil_local_instance.rs
+++ b/vocs/docs/snippets/node-bindings/examples/anvil_local_instance.rs
@@ -11,12 +11,12 @@ async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
let anvil = Anvil::new().block_time(1).chain_id(1337).try_spawn()?;
- let provider = ProviderBuilder::new().on_http(anvil.endpoint_url());
+ let provider = ProviderBuilder::new().connect_http(anvil.endpoint_url());
// Get node info using the Anvil API.
let info = provider.anvil_node_info().await?;
- println!("Node info: {:#?}", info);
+ println!("Node info: {info:#?}");
assert_eq!(info.environment.chain_id, 1337);
assert_eq!(info.fork_config.fork_url, None);
diff --git a/vocs/docs/snippets/node-bindings/examples/anvil_local_provider.rs b/vocs/docs/snippets/node-bindings/examples/anvil_local_provider.rs
index 15de7cb..0189262 100644
--- a/vocs/docs/snippets/node-bindings/examples/anvil_local_provider.rs
+++ b/vocs/docs/snippets/node-bindings/examples/anvil_local_provider.rs
@@ -7,13 +7,13 @@ use eyre::Result;
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider =
- ProviderBuilder::new().connect_anvil_with_config(|anvil| anvil.block_time(1).chain_id(1337));
+ let provider = ProviderBuilder::new()
+ .connect_anvil_with_config(|anvil| anvil.block_time(1).chain_id(1337));
// Get node info using the Anvil API.
let info = provider.anvil_node_info().await?;
- println!("Node info: {:#?}", info);
+ println!("Node info: {info:#?}");
assert_eq!(info.environment.chain_id, 1337);
assert_eq!(info.fork_config.fork_url, None);
diff --git a/vocs/docs/snippets/node-bindings/examples/anvil_set_storage_at.rs b/vocs/docs/snippets/node-bindings/examples/anvil_set_storage_at.rs
index 6cee57e..e2f5489 100644
--- a/vocs/docs/snippets/node-bindings/examples/anvil_set_storage_at.rs
+++ b/vocs/docs/snippets/node-bindings/examples/anvil_set_storage_at.rs
@@ -33,7 +33,7 @@ async fn main() -> Result<()> {
// Get the WETH balance of the target account before mocking.
let balance_before = iweth.balanceOf(account).call().await?;
- println!("WETH balance before: {}", balance_before);
+ println!("WETH balance before: {balance_before}");
assert_eq!(balance_before, U256::ZERO);
// Mock WETH balance using the Anvil API.
@@ -43,7 +43,7 @@ async fn main() -> Result<()> {
// Get the WETH balance of the target account after mocking.
let balance_after = iweth.balanceOf(account).call().await?;
- println!("WETH balance after: {}", balance_after);
+ println!("WETH balance after: {balance_after}");
assert_eq!(balance_after, mocked_balance);
Ok(())
diff --git a/vocs/docs/snippets/node-bindings/examples/geth_local_instance.rs b/vocs/docs/snippets/node-bindings/examples/geth_local_instance.rs
index 0b32d3b..2e95d5a 100644
--- a/vocs/docs/snippets/node-bindings/examples/geth_local_instance.rs
+++ b/vocs/docs/snippets/node-bindings/examples/geth_local_instance.rs
@@ -11,7 +11,7 @@ async fn main() -> Result<()> {
// Spin up a local Geth node.
// Ensure `geth` is available in $PATH.
let geth = Geth::new().chain_id(1337).port(8545_u16).authrpc_port(8551).spawn();
- let provider = ProviderBuilder::new().on_http(geth.endpoint().parse()?);
+ let provider = ProviderBuilder::new().connect_http(geth.endpoint().parse()?);
let chain_id = provider.get_chain_id().await?;
diff --git a/vocs/docs/snippets/node-bindings/examples/reth_local_instance.rs b/vocs/docs/snippets/node-bindings/examples/reth_local_instance.rs
index b60edb3..e92ce35 100644
--- a/vocs/docs/snippets/node-bindings/examples/reth_local_instance.rs
+++ b/vocs/docs/snippets/node-bindings/examples/reth_local_instance.rs
@@ -11,7 +11,7 @@ async fn main() -> Result<()> {
// Spin up a local Reth node.
// Ensure `reth` is available in $PATH.
let reth = Reth::new().dev().disable_discovery().instance(1).spawn();
- let provider = ProviderBuilder::new().on_http(reth.endpoint().parse()?);
+ let provider = ProviderBuilder::new().connect_http(reth.endpoint().parse()?);
let chain_id = provider.get_chain_id().await?;
diff --git a/vocs/docs/snippets/providers/examples/basic_provider.rs b/vocs/docs/snippets/providers/examples/basic_provider.rs
index 278a5ce..061a211 100644
--- a/vocs/docs/snippets/providers/examples/basic_provider.rs
+++ b/vocs/docs/snippets/providers/examples/basic_provider.rs
@@ -24,7 +24,7 @@ async fn main() -> Result<()> {
.disable_recommended_fillers()
// Add the signer to the provider for signing transactions
.wallet(signer)
- .on_http(anvil.endpoint().parse()?);
+ .connect_http(anvil.endpoint().parse()?);
let bob = Address::from([0x42; 20]);
let fees = provider.estimate_eip1559_fees().await?;
@@ -46,7 +46,7 @@ async fn main() -> Result<()> {
let receipt = provider.send_transaction(tx).await?.get_receipt().await?;
assert!(receipt.status(), "Transaction failed");
let bob_balance_after = provider.get_balance(bob).await?;
- println!("Balance before: {}\nBalance after: {}", bob_balance_before, bob_balance_after);
+ println!("Balance before: {bob_balance_before}\nBalance after: {bob_balance_after}");
Ok(())
}
diff --git a/vocs/docs/snippets/providers/examples/builder.rs b/vocs/docs/snippets/providers/examples/builder.rs
index 4f0340b..bd1bbf5 100644
--- a/vocs/docs/snippets/providers/examples/builder.rs
+++ b/vocs/docs/snippets/providers/examples/builder.rs
@@ -25,7 +25,7 @@ async fn main() -> Result<()> {
// Set up the HTTP provider with the `reqwest` crate.
let rpc_url = anvil.endpoint_url();
- let provider = ProviderBuilder::new().wallet(signer).on_http(rpc_url);
+ let provider = ProviderBuilder::new().wallet(signer).connect_http(rpc_url);
// Create a transaction.
let tx = TransactionRequest::default().with_to(bob).with_value(U256::from(100));
diff --git a/vocs/docs/snippets/providers/examples/dyn_provider.rs b/vocs/docs/snippets/providers/examples/dyn_provider.rs
index 7034f9f..770eb59 100644
--- a/vocs/docs/snippets/providers/examples/dyn_provider.rs
+++ b/vocs/docs/snippets/providers/examples/dyn_provider.rs
@@ -58,7 +58,7 @@ async fn main() -> eyre::Result<()> {
let number = counter.number().call().await?;
- println!("New number: {}", number);
+ println!("New number: {number}");
Ok(())
}
diff --git a/vocs/docs/snippets/providers/examples/http.rs b/vocs/docs/snippets/providers/examples/http.rs
index d632fba..abe8c55 100644
--- a/vocs/docs/snippets/providers/examples/http.rs
+++ b/vocs/docs/snippets/providers/examples/http.rs
@@ -7,7 +7,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Create a provider with the HTTP transport using the `reqwest` crate.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
- let provider = ProviderBuilder::new().on_http(rpc_url);
+ let provider = ProviderBuilder::new().connect_http(rpc_url);
// Get latest block number.
let latest_block = provider.get_block_number().await?;
diff --git a/vocs/docs/snippets/providers/examples/http_with_auth.rs b/vocs/docs/snippets/providers/examples/http_with_auth.rs
index 30f066d..28a0d8b 100644
--- a/vocs/docs/snippets/providers/examples/http_with_auth.rs
+++ b/vocs/docs/snippets/providers/examples/http_with_auth.rs
@@ -29,7 +29,7 @@ async fn main() -> Result<()> {
let rpc_client = RpcClient::new(http, false);
// Create a provider with the HTTP transport.
- let provider = ProviderBuilder::new().on_client(rpc_client);
+ let provider = ProviderBuilder::new().connect_client(rpc_client);
// Get latest block number.
let latest_block = provider.get_block_number().await?;
diff --git a/vocs/docs/snippets/providers/examples/ipc.rs b/vocs/docs/snippets/providers/examples/ipc.rs
index 9d2e99d..4b0ac5b 100644
--- a/vocs/docs/snippets/providers/examples/ipc.rs
+++ b/vocs/docs/snippets/providers/examples/ipc.rs
@@ -10,7 +10,7 @@ async fn main() -> Result<()> {
// Create the provider.
let ipc = IpcConnect::new(ipc_path.to_string());
- let provider = ProviderBuilder::new().on_ipc(ipc).await?;
+ let provider = ProviderBuilder::new().connect_ipc(ipc).await?;
let latest_block = provider.get_block_number().await?;
diff --git a/vocs/docs/snippets/providers/examples/mocking.rs b/vocs/docs/snippets/providers/examples/mocking.rs
index 9a6a880..bc205f5 100644
--- a/vocs/docs/snippets/providers/examples/mocking.rs
+++ b/vocs/docs/snippets/providers/examples/mocking.rs
@@ -20,7 +20,7 @@ async fn main() -> eyre::Result<()> {
// Initialize the provider with the `MockTransport` that intercepts incoming requests and uses
// the `Asserter` to return the next response.
// `Asserter` is cheaply cloneable as the underlying queue is wrapped in an `Arc`.
- let provider = ProviderBuilder::new().on_mocked_client(asserter.clone());
+ let provider = ProviderBuilder::new().connect_mocked_client(asserter.clone());
// Mock the response for a basic `get_block_number` request.
let expected_bn = 1000;
diff --git a/vocs/docs/snippets/providers/examples/multicall.rs b/vocs/docs/snippets/providers/examples/multicall.rs
index 99c6228..de7bfb2 100644
--- a/vocs/docs/snippets/providers/examples/multicall.rs
+++ b/vocs/docs/snippets/providers/examples/multicall.rs
@@ -20,13 +20,13 @@ sol!(
async fn main() -> eyre::Result<()> {
// Create a new provider
let provider = ProviderBuilder::new()
- .on_anvil_with_wallet_and_config(|a| a.fork("https://reth-ethereum.ithaca.xyz/rpc"))?;
+ .connect_anvil_with_wallet_and_config(|a| a.fork("https://reth-ethereum.ithaca.xyz/rpc"))?;
// Create a new instance of the IWETH9 contract.
let weth =
IWETH9Instance::new(address!("0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"), &provider);
- let alice = address!("70997970C51812dc3A010C7d01b50e0d17dc79C8");
- let bob = address!("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266");
+ let alice = address!("0xa71c300000000000000000000000000000000000");
+ let bob = address!("0xb0b0000000000000000000000000000000000000");
let multicall = provider
.multicall()
@@ -42,8 +42,7 @@ async fn main() -> eyre::Result<()> {
let (init_total_supply, alice_weth, alice_eth_bal) = multicall.aggregate().await?;
println!(
- "Initial total supply: {}, Alice's WETH balance: {}, Alice's ETH balance: {}",
- init_total_supply, alice_weth, alice_eth_bal
+ "Initial total supply: {init_total_supply}, Alice's WETH balance: {alice_weth}, Alice's ETH balance: {alice_eth_bal}"
);
// Simulate a transfer of WETH from Alice to Bob.
@@ -89,7 +88,7 @@ async fn main() -> eyre::Result<()> {
let alice_weth = alice_weth?;
let bob_weth = bob_weth?;
- println!("Alice's WETH balance: {}, Bob's WETH balance: {}", alice_weth, bob_weth);
+ println!("Alice's WETH balance: {alice_weth}, Bob's WETH balance: {bob_weth}");
Ok(())
}
diff --git a/vocs/docs/snippets/providers/examples/multicall_batching.rs b/vocs/docs/snippets/providers/examples/multicall_batching.rs
index f36d7f9..f1356af 100644
--- a/vocs/docs/snippets/providers/examples/multicall_batching.rs
+++ b/vocs/docs/snippets/providers/examples/multicall_batching.rs
@@ -28,10 +28,10 @@ async fn main() -> Result<()> {
// The `CallBatchLayer` will wait for a certain amount of time before sending a request. See: .
// This delay is added to aggregate any incoming `eth_calls` that can be together.
// In this case, we set the delay to 10ms.
- .layer(CallBatchLayer::new().wait(Duration::from_secs(10)))
+ .layer(CallBatchLayer::new().wait(Duration::from_millis(10)))
// Can also use the shorthand `with_call_batching` on the build which set the delay to 1ms.
// .with_call_batching()
- .on_anvil_with_wallet_and_config(|a| a.fork("https://reth-ethereum.ithaca.xyz/rpc"))?;
+ .connect_anvil_with_wallet_and_config(|a| a.fork("https://reth-ethereum.ithaca.xyz/rpc"))?;
// Create a new instance of the IWETH9 contract.
let weth =
@@ -63,9 +63,8 @@ async fn main() -> Result<()> {
println!("Block Number: {block_number}");
println!(
- "Alice's WETH balance: {}\nBob's WETH balance: {}\nTotal WETH supply: {}\nAlice's ETH
- balance: {}",
- alice_weth, bob_weth, total_supply, alice_eth
+ "Alice's WETH balance: {alice_weth}\nBob's WETH balance: {bob_weth}\nTotal WETH supply: {total_supply}\nAlice's ETH
+ balance: {alice_eth}"
);
Ok(())
diff --git a/vocs/docs/snippets/providers/examples/wrapped_provider.rs b/vocs/docs/snippets/providers/examples/wrapped_provider.rs
index f058b56..5f14035 100644
--- a/vocs/docs/snippets/providers/examples/wrapped_provider.rs
+++ b/vocs/docs/snippets/providers/examples/wrapped_provider.rs
@@ -119,7 +119,7 @@ async fn main() -> Result<()> {
let block_num = counter.provider().get_block_number().await?;
- println!("Current block number: {}", block_num);
+ println!("Current block number: {block_num}");
Ok(())
}
diff --git a/vocs/docs/snippets/providers/examples/ws.rs b/vocs/docs/snippets/providers/examples/ws.rs
index dc2b6c3..a4b6585 100644
--- a/vocs/docs/snippets/providers/examples/ws.rs
+++ b/vocs/docs/snippets/providers/examples/ws.rs
@@ -9,7 +9,7 @@ async fn main() -> Result<()> {
// Create the provider.
let rpc_url = "wss://eth-mainnet.g.alchemy.com/v2/your-api-key";
let ws = WsConnect::new(rpc_url);
- let provider = ProviderBuilder::new().on_ws(ws).await?;
+ let provider = ProviderBuilder::new().connect_ws(ws).await?;
// Subscribe to new blocks.
let sub = provider.subscribe_blocks().await?;
diff --git a/vocs/docs/snippets/providers/examples/ws_with_auth.rs b/vocs/docs/snippets/providers/examples/ws_with_auth.rs
index 378b0f7..ae72f7e 100644
--- a/vocs/docs/snippets/providers/examples/ws_with_auth.rs
+++ b/vocs/docs/snippets/providers/examples/ws_with_auth.rs
@@ -19,8 +19,8 @@ async fn main() -> Result<()> {
let ws_bearer = WsConnect::new(rpc_url).with_auth(auth_bearer);
// Create the provider.
- let provider_basic = ProviderBuilder::new().on_ws(ws_basic).await?;
- let provider_bearer = ProviderBuilder::new().on_ws(ws_bearer).await?;
+ let provider_basic = ProviderBuilder::new().connect_ws(ws_basic).await?;
+ let provider_bearer = ProviderBuilder::new().connect_ws(ws_bearer).await?;
// Subscribe to new block headers.
let sub_basic = provider_basic.subscribe_blocks();
diff --git a/vocs/docs/snippets/queries/examples/query_contract_storage.rs b/vocs/docs/snippets/queries/examples/query_contract_storage.rs
index 580a05a..b3f064a 100644
--- a/vocs/docs/snippets/queries/examples/query_contract_storage.rs
+++ b/vocs/docs/snippets/queries/examples/query_contract_storage.rs
@@ -10,7 +10,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Create a provider.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
- let provider = ProviderBuilder::new().on_http(rpc_url);
+ let provider = ProviderBuilder::new().connect_http(rpc_url);
// Get storage slot 0 from the Uniswap V3 USDC-ETH pool on Ethereum mainnet.
let pool_address = address!("88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640");
diff --git a/vocs/docs/snippets/queries/examples/query_deployed_bytecode.rs b/vocs/docs/snippets/queries/examples/query_deployed_bytecode.rs
index d35af32..486880c 100644
--- a/vocs/docs/snippets/queries/examples/query_deployed_bytecode.rs
+++ b/vocs/docs/snippets/queries/examples/query_deployed_bytecode.rs
@@ -10,7 +10,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Create a provider.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
- let provider = ProviderBuilder::new().on_http(rpc_url);
+ let provider = ProviderBuilder::new().connect_http(rpc_url);
// Get the bytecode of the Uniswap V3 USDC-ETH pool on Ethereum mainnet.
let pool_address = address!("88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640");
diff --git a/vocs/docs/snippets/queries/examples/query_logs.rs b/vocs/docs/snippets/queries/examples/query_logs.rs
index e3076d4..5d203c5 100644
--- a/vocs/docs/snippets/queries/examples/query_logs.rs
+++ b/vocs/docs/snippets/queries/examples/query_logs.rs
@@ -11,7 +11,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Create a provider.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
- let provider = ProviderBuilder::new().on_http(rpc_url);
+ let provider = ProviderBuilder::new().connect_http(rpc_url);
// Get logs from the latest block
let latest_block = provider.get_block_number().await?;
diff --git a/vocs/docs/snippets/sol-macro/examples/all_derives.rs b/vocs/docs/snippets/sol-macro/examples/all_derives.rs
index eb7849c..0e01fad 100644
--- a/vocs/docs/snippets/sol-macro/examples/all_derives.rs
+++ b/vocs/docs/snippets/sol-macro/examples/all_derives.rs
@@ -26,7 +26,7 @@ fn main() {
let mut foo_list = vec![foo.clone(), foo, foo_bar];
// `Debug` derived as well.
- println!("Initial foo_list: {:?}", foo_list);
+ println!("Initial foo_list: {foo_list:?}");
// `PartialEq` is derived, enabling us to apply `.dedup()`.
foo_list.dedup();
diff --git a/vocs/docs/snippets/sol-macro/examples/events_errors.rs b/vocs/docs/snippets/sol-macro/examples/events_errors.rs
index f3cb3d3..7bcd68a 100644
--- a/vocs/docs/snippets/sol-macro/examples/events_errors.rs
+++ b/vocs/docs/snippets/sol-macro/examples/events_errors.rs
@@ -46,7 +46,7 @@ sol!(
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the `Counter` contract.
let contract = CounterWithError::deploy(provider.clone()).await?;
diff --git a/vocs/docs/snippets/sol-macro/examples/extra_derives.rs b/vocs/docs/snippets/sol-macro/examples/extra_derives.rs
index 2bd91d6..93af621 100644
--- a/vocs/docs/snippets/sol-macro/examples/extra_derives.rs
+++ b/vocs/docs/snippets/sol-macro/examples/extra_derives.rs
@@ -19,8 +19,7 @@ sol!(
);
fn main() -> eyre::Result<()> {
- let mut color_struct = Colors::Color::default();
- color_struct.r = 255;
+ let color_struct = Colors::Color { r: 255, ..Default::default() };
// serde::Serialize is derived for types passed to the `sol!` macro.
let json = serde_json::to_string_pretty(&color_struct)?;
@@ -28,6 +27,6 @@ fn main() -> eyre::Result<()> {
// serde::Deserialize is derived for all types in the abi.
let deserialized: Colors::Color = serde_json::from_str(&json)?;
- println!("{:?}", deserialized);
+ println!("{deserialized:?}");
Ok(())
}
diff --git a/vocs/docs/snippets/subscriptions/examples/event_multiplexer.rs b/vocs/docs/snippets/subscriptions/examples/event_multiplexer.rs
index 9b57ec7..8f1155a 100644
--- a/vocs/docs/snippets/subscriptions/examples/event_multiplexer.rs
+++ b/vocs/docs/snippets/subscriptions/examples/event_multiplexer.rs
@@ -52,7 +52,7 @@ async fn main() -> Result<()> {
// Create a provider.
let ws = WsConnect::new(anvil.ws_endpoint());
- let provider = ProviderBuilder::new().wallet(pk).on_ws(ws).await?;
+ let provider = ProviderBuilder::new().wallet(pk).connect_ws(ws).await?;
// Deploy the `EventExample` contract.
let contract = EventMultiplexer::deploy(provider).await?;
diff --git a/vocs/docs/snippets/subscriptions/examples/poll_logs.rs b/vocs/docs/snippets/subscriptions/examples/poll_logs.rs
index a0bbf9d..14527c2 100644
--- a/vocs/docs/snippets/subscriptions/examples/poll_logs.rs
+++ b/vocs/docs/snippets/subscriptions/examples/poll_logs.rs
@@ -41,7 +41,7 @@ async fn main() -> Result<()> {
// Create a WebSocket provider.
let ws = WsConnect::new(anvil.ws_endpoint());
- let provider = ProviderBuilder::new().wallet(pk).on_ws(ws).await?;
+ let provider = ProviderBuilder::new().wallet(pk).connect_ws(ws).await?;
// Deploy the `Counter` contract.
let contract = Counter::deploy(provider.clone()).await?;
diff --git a/vocs/docs/snippets/subscriptions/examples/subscribe_all_logs.rs b/vocs/docs/snippets/subscriptions/examples/subscribe_all_logs.rs
index 30e29f8..c1ea226 100644
--- a/vocs/docs/snippets/subscriptions/examples/subscribe_all_logs.rs
+++ b/vocs/docs/snippets/subscriptions/examples/subscribe_all_logs.rs
@@ -23,7 +23,7 @@ async fn main() -> Result<()> {
// Create the provider.
let rpc_url = "wss://eth-mainnet.g.alchemy.com/v2/your-api-key";
let ws = WsConnect::new(rpc_url);
- let provider = ProviderBuilder::new().on_ws(ws).await?;
+ let provider = ProviderBuilder::new().connect_ws(ws).await?;
// Create a filter to watch for all WETH9 events.
let weth9_token_address = address!("C02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2");
diff --git a/vocs/docs/snippets/subscriptions/examples/subscribe_blocks.rs b/vocs/docs/snippets/subscriptions/examples/subscribe_blocks.rs
index 2d36e1c..d4db293 100644
--- a/vocs/docs/snippets/subscriptions/examples/subscribe_blocks.rs
+++ b/vocs/docs/snippets/subscriptions/examples/subscribe_blocks.rs
@@ -15,7 +15,7 @@ async fn main() -> Result<()> {
// Create a provider.
let ws = WsConnect::new(anvil.ws_endpoint());
- let provider = ProviderBuilder::new().on_ws(ws).await?;
+ let provider = ProviderBuilder::new().connect_ws(ws).await?;
// Subscribe to block headers.
let subscription = provider.subscribe_blocks().await?;
diff --git a/vocs/docs/snippets/subscriptions/examples/subscribe_logs.rs b/vocs/docs/snippets/subscriptions/examples/subscribe_logs.rs
index 7516dd2..3ef0849 100644
--- a/vocs/docs/snippets/subscriptions/examples/subscribe_logs.rs
+++ b/vocs/docs/snippets/subscriptions/examples/subscribe_logs.rs
@@ -13,7 +13,7 @@ async fn main() -> Result<()> {
// Create the provider.
let rpc_url = "wss://eth-mainnet.g.alchemy.com/v2/your-api-key";
let ws = WsConnect::new(rpc_url);
- let provider = ProviderBuilder::new().on_ws(ws).await?;
+ let provider = ProviderBuilder::new().connect_ws(ws).await?;
// Create a filter to watch for UNI token transfers.
let uniswap_token_address = address!("1f9840a85d5aF5bf1D1762F925BDADdC4201F984");
diff --git a/vocs/docs/snippets/subscriptions/examples/subscribe_pending_transactions.rs b/vocs/docs/snippets/subscriptions/examples/subscribe_pending_transactions.rs
index d15e92d..a72a416 100644
--- a/vocs/docs/snippets/subscriptions/examples/subscribe_pending_transactions.rs
+++ b/vocs/docs/snippets/subscriptions/examples/subscribe_pending_transactions.rs
@@ -10,7 +10,7 @@ async fn main() -> Result<()> {
// Create the provider.
let rpc_url = "wss://eth-mainnet.g.alchemy.com/v2/your-api-key";
let ws = WsConnect::new(rpc_url);
- let provider = ProviderBuilder::new().on_ws(ws).await?;
+ let provider = ProviderBuilder::new().connect_ws(ws).await?;
// Subscribe to pending transactions.
// Alteratively use `subscribe_full_pending_transactions` to get the full transaction details
diff --git a/vocs/docs/snippets/transactions/Cargo.toml b/vocs/docs/snippets/transactions/Cargo.toml
index 1a137b6..7080abd 100644
--- a/vocs/docs/snippets/transactions/Cargo.toml
+++ b/vocs/docs/snippets/transactions/Cargo.toml
@@ -16,4 +16,5 @@ workspace = true
alloy = { workspace = true, features = ["eip712"]}
eyre.workspace = true
+rand.workspace = true
tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
diff --git a/vocs/docs/snippets/transactions/examples/debug_trace_call_many.rs b/vocs/docs/snippets/transactions/examples/debug_trace_call_many.rs
index d531bcd..278bb84 100644
--- a/vocs/docs/snippets/transactions/examples/debug_trace_call_many.rs
+++ b/vocs/docs/snippets/transactions/examples/debug_trace_call_many.rs
@@ -16,7 +16,7 @@ async fn main() -> Result<()> {
// Spin up a local Reth node.
// Ensure `reth` is available in $PATH.
let reth = Reth::new().dev().disable_discovery().instance(1).spawn();
- let provider = ProviderBuilder::new().on_http(reth.endpoint().parse()?);
+ let provider = ProviderBuilder::new().connect_http(reth.endpoint().parse()?);
// Get users, these have allocated balances in the dev genesis block.
let alice = address!("70997970C51812dc3A010C7d01b50e0d17dc79C8");
@@ -43,10 +43,10 @@ async fn main() -> Result<()> {
// Print the trace results.
match result {
Ok(traces) => {
- println!("Traces:\n{:?}", traces);
+ println!("Traces:\n{traces:?}");
}
Err(err) => {
- println!("Error tracing transactions: {:?}", err);
+ println!("Error tracing transactions: {err:?}");
}
}
diff --git a/vocs/docs/snippets/transactions/examples/decode_receipt_log.rs b/vocs/docs/snippets/transactions/examples/decode_receipt_log.rs
index 04acfc2..126f66d 100644
--- a/vocs/docs/snippets/transactions/examples/decode_receipt_log.rs
+++ b/vocs/docs/snippets/transactions/examples/decode_receipt_log.rs
@@ -27,7 +27,7 @@ sol! {
async fn main() -> eyre::Result<()> {
// Create an AnvilProvider
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Deploy the `Counter` contract.
let counter = Counter::deploy(&provider).await?;
diff --git a/vocs/docs/snippets/transactions/examples/permit2_signature_transfer.rs b/vocs/docs/snippets/transactions/examples/permit2_signature_transfer.rs
index 363f97e..44367e9 100644
--- a/vocs/docs/snippets/transactions/examples/permit2_signature_transfer.rs
+++ b/vocs/docs/snippets/transactions/examples/permit2_signature_transfer.rs
@@ -1,17 +1,22 @@
//! Example of how to transfer ERC20 tokens from one account to another using a signed permit.
-use std::str::FromStr;
-
use alloy::{
network::EthereumWallet,
node_bindings::Anvil,
primitives::{Address, U256},
providers::{Provider, ProviderBuilder},
- signers::{local::PrivateKeySigner, Signer},
+ signers::{
+ local::{
+ coins_bip39::{English, Mnemonic},
+ PrivateKeySigner,
+ },
+ Signer,
+ },
sol,
sol_types::eip712_domain,
};
use eyre::Result;
+use std::str::FromStr;
// Codegen from artifact.
sol!(
@@ -64,11 +69,15 @@ async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc";
- let anvil = Anvil::new().fork(rpc_url).try_spawn()?;
+ // NOTE: ⚠️ Due to changes in EIP-7702 (see: https://getfoundry.sh/anvil/overview/#eip-7702-and-default-accounts),
+ // the default mnemonic cannot be used for signature-based testing. Instead, we use a custom
+ // mnemonic.
+ let mnemonic = generate_mnemonic()?;
+ let anvil = Anvil::new().fork(rpc_url).mnemonic(mnemonic).try_spawn()?;
// Set up signers from the first two default Anvil accounts (Alice, Bob).
- let alice: PrivateKeySigner = anvil.keys()[0].clone().into();
- let bob: PrivateKeySigner = anvil.keys()[1].clone().into();
+ let alice: PrivateKeySigner = anvil.keys()[8].clone().into();
+ let bob: PrivateKeySigner = anvil.keys()[9].clone().into();
// We can manage multiple signers with the same wallet
let mut wallet = EthereumWallet::new(alice.clone());
@@ -76,7 +85,7 @@ async fn main() -> Result<()> {
// Create a provider with both signers pointing to anvil
let rpc_url = anvil.endpoint_url();
- let provider = ProviderBuilder::new().wallet(wallet).on_http(rpc_url);
+ let provider = ProviderBuilder::new().wallet(wallet).connect_http(rpc_url);
// Deploy the `ERC20Example` contract.
let token = ERC20Example::deploy(provider.clone()).await?;
@@ -97,7 +106,7 @@ async fn main() -> Result<()> {
.await?
.watch()
.await?;
- println!("Sent approval: {}", tx_hash);
+ println!("Sent approval: {tx_hash}");
// Create the EIP712 Domain and Permit
let amount = U256::from(100);
@@ -127,7 +136,7 @@ async fn main() -> Result<()> {
.await?
.watch()
.await?;
- println!("Sent permit transfer: {}", tx_hash);
+ println!("Sent permit transfer: {tx_hash}");
// Register the balances of Alice and Bob after the transfer.
let alice_after_balance = token.balanceOf(alice.address()).call().await?;
@@ -139,3 +148,9 @@ async fn main() -> Result<()> {
Ok(())
}
+
+fn generate_mnemonic() -> Result {
+ let mut rng = rand::thread_rng();
+ let mnemonic = Mnemonic::::new_with_count(&mut rng, 12)?.to_phrase();
+ Ok(mnemonic)
+}
diff --git a/vocs/docs/snippets/transactions/examples/send_eip1559_transaction.rs b/vocs/docs/snippets/transactions/examples/send_eip1559_transaction.rs
index cd2668a..cb33fcd 100644
--- a/vocs/docs/snippets/transactions/examples/send_eip1559_transaction.rs
+++ b/vocs/docs/snippets/transactions/examples/send_eip1559_transaction.rs
@@ -12,7 +12,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil();
+ let provider = ProviderBuilder::new().connect_anvil();
// Create two users, Alice and Bob.
let accounts = provider.get_accounts().await?;
diff --git a/vocs/docs/snippets/transactions/examples/send_eip4844_transaction.rs b/vocs/docs/snippets/transactions/examples/send_eip4844_transaction.rs
index 33ee579..0973794 100644
--- a/vocs/docs/snippets/transactions/examples/send_eip4844_transaction.rs
+++ b/vocs/docs/snippets/transactions/examples/send_eip4844_transaction.rs
@@ -14,7 +14,7 @@ async fn main() -> Result<()> {
// Spin up a local Anvil node with the Cancun hardfork enabled.
// Ensure `anvil` is available in $PATH.
let provider = ProviderBuilder::new()
- .on_anvil_with_wallet_and_config(|anvil| anvil.args(["--hardfork", "cancun"]))?;
+ .connect_anvil_with_wallet_and_config(|anvil| anvil.args(["--hardfork", "cancun"]))?;
// Create two users, Alice and Bob.
let accounts = provider.get_accounts().await?;
diff --git a/vocs/docs/snippets/transactions/examples/send_eip7594_transaction.rs b/vocs/docs/snippets/transactions/examples/send_eip7594_transaction.rs
new file mode 100644
index 0000000..04bb47a
--- /dev/null
+++ b/vocs/docs/snippets/transactions/examples/send_eip7594_transaction.rs
@@ -0,0 +1,71 @@
+//! Example showing how to send an [EIP-7594](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7594.md) transaction.
+
+use alloy::{
+ consensus::{
+ EnvKzgSettings, EthereumTxEnvelope, SidecarBuilder, SimpleCoder, TxEip4844WithSidecar,
+ },
+ eips::{eip7594::BlobTransactionSidecarEip7594, Encodable2718},
+ network::{TransactionBuilder, TransactionBuilder4844},
+ providers::{Provider, ProviderBuilder},
+ rpc::types::TransactionRequest,
+};
+use eyre::Result;
+
+#[tokio::main]
+async fn main() -> Result<()> {
+ // Spin up a local Anvil node with the Cancun hardfork enabled.
+ // Ensure `anvil` is available in $PATH.
+ let provider = ProviderBuilder::new()
+ .connect_anvil_with_wallet_and_config(|anvil| anvil.args(["--hardfork", "osaka"]))?;
+
+ // Create two users, Alice and Bob.
+ let accounts = provider.get_accounts().await?;
+ let alice = accounts[0];
+ let bob = accounts[1];
+
+ // Create a sidecar with some data.
+ let sidecar: SidecarBuilder = SidecarBuilder::from_slice(b"Blobs are fun!");
+ let sidecar = sidecar.build()?;
+
+ // Build a transaction to send the sidecar from Alice to Bob.
+ // The `from` field is automatically filled to the first signer's address (Alice).
+ let tx = TransactionRequest::default().with_to(bob).with_blob_sidecar(sidecar);
+
+ // Fill the transaction (e.g., nonce, gas, etc.) using the provider and convert it to an
+ // envelope.
+ let envelope = provider.fill(tx).await?.try_into_envelope()?;
+
+ // Convert the envelope into an EIP-7594 transaction by converting the sidecar.
+ let tx: EthereumTxEnvelope> =
+ envelope.try_into_pooled()?.try_map_eip4844(|tx| {
+ tx.try_map_sidecar(|sidecar| sidecar.try_into_7594(EnvKzgSettings::Default.get()))
+ })?;
+
+ let encoded_tx = tx.encoded_2718();
+
+ // Send the raw transaction to the network.
+ let pending_tx = provider.send_raw_transaction(&encoded_tx).await?;
+
+ println!("Pending transaction... {}", pending_tx.tx_hash());
+
+ // // Wait for the transaction to be included and get the receipt.
+ let receipt = pending_tx.get_receipt().await?;
+
+ println!(
+ "Transaction included in block {}",
+ receipt.block_number.expect("Failed to get block number")
+ );
+
+ assert_eq!(receipt.from, alice);
+ assert_eq!(receipt.to, Some(bob));
+
+ println!(
+ "Transaction included in block {}",
+ receipt.block_number.expect("Failed to get block number")
+ );
+
+ assert_eq!(receipt.from, alice);
+ assert_eq!(receipt.to, Some(bob));
+
+ Ok(())
+}
diff --git a/vocs/docs/snippets/transactions/examples/send_eip7702_transaction.rs b/vocs/docs/snippets/transactions/examples/send_eip7702_transaction.rs
index 309a580..077fb2c 100644
--- a/vocs/docs/snippets/transactions/examples/send_eip7702_transaction.rs
+++ b/vocs/docs/snippets/transactions/examples/send_eip7702_transaction.rs
@@ -45,7 +45,7 @@ async fn main() -> Result<()> {
// Create a provider with the wallet for only Bob (not Alice).
let rpc_url = anvil.endpoint_url();
- let provider = ProviderBuilder::new().wallet(bob.clone()).on_http(rpc_url);
+ let provider = ProviderBuilder::new().wallet(bob.clone()).connect_http(rpc_url);
// Deploy the contract Alice will authorize.
let contract = Log::deploy(&provider).await?;
diff --git a/vocs/docs/snippets/transactions/examples/send_legacy_transaction.rs b/vocs/docs/snippets/transactions/examples/send_legacy_transaction.rs
index 8be55dc..b9cc516 100644
--- a/vocs/docs/snippets/transactions/examples/send_legacy_transaction.rs
+++ b/vocs/docs/snippets/transactions/examples/send_legacy_transaction.rs
@@ -12,7 +12,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// // Spin up a local Anvil node.
// // Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil();
+ let provider = ProviderBuilder::new().connect_anvil();
// Create two users, Alice and Bob.
let accounts = provider.get_accounts().await?;
diff --git a/vocs/docs/snippets/transactions/examples/send_private_transaction.rs b/vocs/docs/snippets/transactions/examples/send_private_transaction.rs
index 07e7f1f..727d50e 100644
--- a/vocs/docs/snippets/transactions/examples/send_private_transaction.rs
+++ b/vocs/docs/snippets/transactions/examples/send_private_transaction.rs
@@ -33,7 +33,7 @@ async fn main() -> Result<()> {
let flashbots_url = "https://rpc.flashbots.net".parse()?;
// Create a provider.
- let provider = ProviderBuilder::new().on_http(flashbots_url);
+ let provider = ProviderBuilder::new().connect_http(flashbots_url);
// Create a signer from a random private key.
let signer = PrivateKeySigner::random();
diff --git a/vocs/docs/snippets/transactions/examples/send_raw_transaction.rs b/vocs/docs/snippets/transactions/examples/send_raw_transaction.rs
index e783c0b..d5cf82e 100644
--- a/vocs/docs/snippets/transactions/examples/send_raw_transaction.rs
+++ b/vocs/docs/snippets/transactions/examples/send_raw_transaction.rs
@@ -12,7 +12,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Create two users, Alice and Bob.
let accounts = provider.get_accounts().await?;
diff --git a/vocs/docs/snippets/transactions/examples/trace_call.rs b/vocs/docs/snippets/transactions/examples/trace_call.rs
index 72d09b7..8e9d0b1 100644
--- a/vocs/docs/snippets/transactions/examples/trace_call.rs
+++ b/vocs/docs/snippets/transactions/examples/trace_call.rs
@@ -12,7 +12,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Create a provider.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
- let provider = ProviderBuilder::new().on_http(rpc_url);
+ let provider = ProviderBuilder::new().connect_http(rpc_url);
// Build a transaction to send 100 wei from Alice to Vitalik.
let alice = address!("f39Fd6e51aad88F6F4ce6aB8827279cffFb92266");
diff --git a/vocs/docs/snippets/transactions/examples/trace_call_many.rs b/vocs/docs/snippets/transactions/examples/trace_call_many.rs
index 66ba47e..a766d94 100644
--- a/vocs/docs/snippets/transactions/examples/trace_call_many.rs
+++ b/vocs/docs/snippets/transactions/examples/trace_call_many.rs
@@ -14,7 +14,7 @@ async fn main() -> Result<()> {
// Spin up a local Reth node.
// Ensure `reth` is available in $PATH.
let reth = Reth::new().dev().disable_discovery().instance(1).spawn();
- let provider = ProviderBuilder::new().on_http(reth.endpoint().parse()?);
+ let provider = ProviderBuilder::new().connect_http(reth.endpoint().parse()?);
// Get users, these have allocated balances in the dev genesis block.
let alice = address!("70997970C51812dc3A010C7d01b50e0d17dc79C8");
@@ -38,7 +38,7 @@ async fn main() -> Result<()> {
// Print the trace results.
for (index, trace_result) in result.iter().enumerate() {
- println!("Trace result for transaction {}: {:?}", index, trace_result);
+ println!("Trace result for transaction {index}: {trace_result:?}");
}
Ok(())
}
diff --git a/vocs/docs/snippets/transactions/examples/transfer_erc20.rs b/vocs/docs/snippets/transactions/examples/transfer_erc20.rs
index 49793c8..f9de5f2 100644
--- a/vocs/docs/snippets/transactions/examples/transfer_erc20.rs
+++ b/vocs/docs/snippets/transactions/examples/transfer_erc20.rs
@@ -21,7 +21,7 @@ async fn main() -> Result<()> {
// Ensure `anvil` is available in $PATH.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc";
let provider =
- ProviderBuilder::new().on_anvil_with_wallet_and_config(|anvil| anvil.fork(rpc_url))?;
+ ProviderBuilder::new().connect_anvil_with_wallet_and_config(|anvil| anvil.fork(rpc_url))?;
// Create two users, Alice and Bob.
let accounts = provider.get_accounts().await?;
diff --git a/vocs/docs/snippets/transactions/examples/transfer_eth.rs b/vocs/docs/snippets/transactions/examples/transfer_eth.rs
index 497ed8a..850ca03 100644
--- a/vocs/docs/snippets/transactions/examples/transfer_eth.rs
+++ b/vocs/docs/snippets/transactions/examples/transfer_eth.rs
@@ -12,7 +12,7 @@ use eyre::Result;
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil_with_wallet();
+ let provider = ProviderBuilder::new().connect_anvil_with_wallet();
// Create two users, Alice and Bob.
let accounts = provider.get_accounts().await?;
diff --git a/vocs/docs/snippets/transactions/examples/with_access_list.rs b/vocs/docs/snippets/transactions/examples/with_access_list.rs
index 7f4ed74..0e2ca26 100644
--- a/vocs/docs/snippets/transactions/examples/with_access_list.rs
+++ b/vocs/docs/snippets/transactions/examples/with_access_list.rs
@@ -19,7 +19,7 @@ sol!(
async fn main() -> Result<()> {
// Spin up a local Anvil node.
// Ensure `anvil` is available in $PATH.
- let provider = ProviderBuilder::new().on_anvil();
+ let provider = ProviderBuilder::new().connect_anvil();
// Create two users, Alice and Bob.
let accounts = provider.get_accounts().await?;
diff --git a/vocs/docs/snippets/wallets/Cargo.toml b/vocs/docs/snippets/wallets/Cargo.toml
index 04914b7..3bbe7c5 100644
--- a/vocs/docs/snippets/wallets/Cargo.toml
+++ b/vocs/docs/snippets/wallets/Cargo.toml
@@ -14,15 +14,16 @@ workspace = true
[dev-dependencies]
alloy.workspace = true
+alloy-chains.workspace = true
-aws-config = { version = "1.6", default-features = false }
-aws-sdk-kms = { version = "1.63", default-features = false }
+aws-config = { workspace = true, default-features = false }
+aws-sdk-kms = { workspace = true, default-features = false }
eyre.workspace = true
-gcloud-sdk = { version = "0.26", features = [
+gcloud-sdk = { workspace = true, features = [
"google-cloud-kms-v1",
"google-longrunning",
] }
-rand = "0.8.5"
+rand.workspace = true
serde = { workspace = true, features = ["derive"] }
-tempfile = "3.19"
+tempfile.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
diff --git a/vocs/docs/snippets/wallets/examples/ethereum_wallet.rs b/vocs/docs/snippets/wallets/examples/ethereum_wallet.rs
index 02a168d..0e44b3b 100644
--- a/vocs/docs/snippets/wallets/examples/ethereum_wallet.rs
+++ b/vocs/docs/snippets/wallets/examples/ethereum_wallet.rs
@@ -48,7 +48,7 @@ async fn main() -> eyre::Result<()> {
wallet.register_signer(ledger);
// Create a provider with the `WalletFiller`.
- let provider = ProviderBuilder::new().wallet(wallet).on_http(anvil.endpoint_url());
+ let provider = ProviderBuilder::new().wallet(wallet).connect_http(anvil.endpoint_url());
// Note that the `from` field hasn't been specified.
// The wallet filler in the provider will set to it the default signer's address, which is
diff --git a/vocs/docs/snippets/wallets/examples/gcp_signer.rs b/vocs/docs/snippets/wallets/examples/gcp_signer.rs
index 77f20e6..114e3db 100644
--- a/vocs/docs/snippets/wallets/examples/gcp_signer.rs
+++ b/vocs/docs/snippets/wallets/examples/gcp_signer.rs
@@ -4,6 +4,7 @@ use alloy::signers::{
gcp::{GcpKeyRingRef, GcpSigner, KeySpecifier},
Signer,
};
+use alloy_chains::NamedChain;
use eyre::Result;
use gcloud_sdk::{
google::cloud::kms::v1::key_management_service_client::KeyManagementServiceClient, GoogleApi,
@@ -27,7 +28,9 @@ async fn main() -> Result<()> {
let key_version = 1;
let specifier = KeySpecifier::new(keyring, &key_name, key_version);
- let signer = GcpSigner::new(client, specifier, Some(key_version)).await?;
+
+ let chain = NamedChain::Mainnet;
+ let signer = GcpSigner::new(client, specifier, Some(chain.into())).await?;
let message = "Hello, world!";
let signature = signer.sign_message(message.as_bytes()).await?;
diff --git a/vocs/docs/snippets/wallets/examples/keystore_signer.rs b/vocs/docs/snippets/wallets/examples/keystore_signer.rs
index 278302e..872654e 100644
--- a/vocs/docs/snippets/wallets/examples/keystore_signer.rs
+++ b/vocs/docs/snippets/wallets/examples/keystore_signer.rs
@@ -23,8 +23,9 @@ async fn main() -> Result<()> {
let signer = LocalSigner::decrypt_keystore(keystore_file_path, password)?;
// Create a provider with the wallet.
- let provider =
- ProviderBuilder::new().wallet(signer).connect_anvil_with_config(|anvil| anvil.block_time(1));
+ let provider = ProviderBuilder::new()
+ .wallet(signer)
+ .connect_anvil_with_config(|anvil| anvil.block_time(1));
// Build a transaction to send 100 wei from Alice to Vitalik.
// The `from` field is automatically filled to the first signer's address (Alice).
diff --git a/vocs/docs/snippets/wallets/examples/ledger_signer.rs b/vocs/docs/snippets/wallets/examples/ledger_signer.rs
index d323f4c..9a12bdd 100644
--- a/vocs/docs/snippets/wallets/examples/ledger_signer.rs
+++ b/vocs/docs/snippets/wallets/examples/ledger_signer.rs
@@ -16,7 +16,7 @@ async fn main() -> Result<()> {
// Create a provider with the wallet.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
- let provider = ProviderBuilder::new().wallet(signer).on_http(rpc_url);
+ let provider = ProviderBuilder::new().wallet(signer).connect_http(rpc_url);
// Build a transaction to send 100 wei from Alice to Vitalik.
// The `from` field is automatically filled to the first signer's address (Alice).
diff --git a/vocs/docs/snippets/wallets/examples/private_key_signer.rs b/vocs/docs/snippets/wallets/examples/private_key_signer.rs
index b8ea78f..93fbd18 100644
--- a/vocs/docs/snippets/wallets/examples/private_key_signer.rs
+++ b/vocs/docs/snippets/wallets/examples/private_key_signer.rs
@@ -24,7 +24,7 @@ async fn main() -> Result<()> {
// Create a provider with the wallet.
let rpc_url = anvil.endpoint_url();
- let provider = ProviderBuilder::new().wallet(signer).on_http(rpc_url);
+ let provider = ProviderBuilder::new().wallet(signer).connect_http(rpc_url);
// Build a transaction to send 100 wei from Alice to Vitalik.
// The `from` field is automatically filled to the first signer's address (Alice).
diff --git a/vocs/docs/snippets/wallets/examples/trezor_signer.rs b/vocs/docs/snippets/wallets/examples/trezor_signer.rs
index 506ce13..e9515d0 100644
--- a/vocs/docs/snippets/wallets/examples/trezor_signer.rs
+++ b/vocs/docs/snippets/wallets/examples/trezor_signer.rs
@@ -16,7 +16,7 @@ async fn main() -> Result<()> {
// Create a provider with the wallet.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
- let provider = ProviderBuilder::new().wallet(signer).on_http(rpc_url);
+ let provider = ProviderBuilder::new().wallet(signer).connect_http(rpc_url);
// Build a transaction to send 100 wei from Alice to Vitalik.
// The `from` field is automatically filled to the first signer's address (Alice).
diff --git a/vocs/docs/snippets/wallets/examples/yubi_signer.rs b/vocs/docs/snippets/wallets/examples/yubi_signer.rs
index 3d0fa58..b2e60a8 100644
--- a/vocs/docs/snippets/wallets/examples/yubi_signer.rs
+++ b/vocs/docs/snippets/wallets/examples/yubi_signer.rs
@@ -25,7 +25,7 @@ async fn main() -> Result<()> {
// Create a provider with the wallet.
let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?;
- let provider = ProviderBuilder::new().wallet(signer).on_http(rpc_url);
+ let provider = ProviderBuilder::new().wallet(signer).connect_http(rpc_url);
// Build a transaction to send 100 wei from Alice to Vitalik.
// The `from` field is automatically filled to the first signer's address (Alice).
diff --git a/vocs/example-items.ts b/vocs/example-items.ts
index 0450a13..d172b58 100644
--- a/vocs/example-items.ts
+++ b/vocs/example-items.ts
@@ -2,133 +2,168 @@
import { SidebarItem } from "vocs";
export const exampleItems: SidebarItem[] = [
- { text: 'Advanced', collapsed: true, link: '/examples/advanced/README', items: [
- { text: 'Any Network', link: '/examples/advanced/any_network' },
- { text: 'Decoding JSON ABI', link: '/examples/advanced/decoding_json_abi' },
- { text: 'Encoding Dynamic ABI', link: '/examples/advanced/encoding_dyn_abi' },
- { text: 'Encoding SOL Static', link: '/examples/advanced/encoding_sol_static' },
- { text: 'Foundry Fork DB', link: '/examples/advanced/foundry_fork_db' },
- { text: 'Reth DB Layer', link: '/examples/advanced/reth_db_layer' },
- { text: 'Reth DB Provider', link: '/examples/advanced/reth_db_provider' }
- ]},
- { text: 'Big Numbers', collapsed: true, link: '/examples/big-numbers/README', items: [
- { text: 'Comparison & Equivalence', link: '/examples/big-numbers/comparison_equivalence' },
- { text: 'Conversion', link: '/examples/big-numbers/conversion' },
- { text: 'Create Instances', link: '/examples/big-numbers/create_instances' },
- { text: 'Math Operations', link: '/examples/big-numbers/math_operations' },
- { text: 'Math Utilities', link: '/examples/big-numbers/math_utilities' }
- ]},
- { text: 'Comparison', collapsed: true, link: '/examples/comparison/README', items: [
- { text: 'Compare New Heads', link: '/examples/comparison/compare_new_heads' },
- { text: 'Compare Pending Transactions', link: '/examples/comparison/compare_pending_txs' }
- ]},
- { text: 'Contracts', collapsed: true, link: '/examples/contracts/README', items: [
- { text: 'Deploy and Link Library', link: '/examples/contracts/deploy_and_link_library' },
- { text: 'Deploy From Artifact', link: '/examples/contracts/deploy_from_artifact' },
- { text: 'Deploy From Bytecode', link: '/examples/contracts/deploy_from_bytecode' },
- { text: 'Deploy From Contract', link: '/examples/contracts/deploy_from_contract' },
- { text: 'Interact with ABI', link: '/examples/contracts/interact_with_abi' },
- { text: 'Interact with Contract Instance', link: '/examples/contracts/interact_with_contract_instance' },
- { text: 'JSON-RPC Error Decoding', link: '/examples/contracts/jsonrpc_error_decoding' },
- { text: 'Revert Decoding', link: '/examples/contracts/revert_decoding' },
- { text: 'Unknown Return Types', link: '/examples/contracts/unknown_return_types' }
- ]},
- { text: 'Fillers', collapsed: true, link: '/examples/fillers/README', items: [
- { text: 'Gas Filler', link: '/examples/fillers/gas_filler' },
- { text: 'Nonce Filler', link: '/examples/fillers/nonce_filler' },
- { text: 'Recommended Fillers', link: '/examples/fillers/recommended_fillers' },
- { text: 'Wallet Filler', link: '/examples/fillers/wallet_filler' }
- ]},
- { text: 'Layers', collapsed: true, link: '/examples/layers/README', items: [
- { text: 'Fallback Layer', link: '/examples/layers/fallback_layer' },
- { text: 'Hyper HTTP Layer', link: '/examples/layers/hyper_http_layer' },
- { text: 'Logging Layer', link: '/examples/layers/logging_layer' },
- { text: 'Retry Layer', link: '/examples/layers/retry_layer' }
- ]},
- { text: 'Node Bindings', collapsed: true, link: '/examples/node-bindings/README', items: [
- { text: 'Anvil Deploy Contract', link: '/examples/node-bindings/anvil_deploy_contract' },
- { text: 'Anvil Fork Instance', link: '/examples/node-bindings/anvil_fork_instance' },
- { text: 'Anvil Fork Provider', link: '/examples/node-bindings/anvil_fork_provider' },
- { text: 'Anvil Local Instance', link: '/examples/node-bindings/anvil_local_instance' },
- { text: 'Anvil Local Provider', link: '/examples/node-bindings/anvil_local_provider' },
- { text: 'Anvil Set Storage At', link: '/examples/node-bindings/anvil_set_storage_at' },
- { text: 'Geth Local Instance', link: '/examples/node-bindings/geth_local_instance' },
- { text: 'Reth Local Instance', link: '/examples/node-bindings/reth_local_instance' }
- ]},
- { text: 'Primitives', collapsed: true, link: '/examples/primitives/README', items: [
- { text: 'Bytes and Address Types', link: '/examples/primitives/bytes_and_address_types' },
- { text: 'Hashing Functions', link: '/examples/primitives/hashing_functions' }
- ]},
- { text: 'Providers', collapsed: true, link: '/examples/providers/README', items: [
- { text: 'Batch RPC', link: '/examples/providers/batch_rpc' },
- { text: 'Builder', link: '/examples/providers/builder' },
- { text: 'Built-in', link: '/examples/providers/builtin' },
- { text: 'Dynamic Provider', link: '/examples/providers/dyn_provider' },
- { text: 'HTTP', link: '/examples/providers/http' },
- { text: 'HTTP with Auth', link: '/examples/providers/http_with_auth' },
- { text: 'IPC', link: '/examples/providers/ipc' },
- { text: 'Mocking', link: '/examples/providers/mocking' },
- { text: 'Multicall', link: '/examples/providers/multicall' },
- { text: 'Multicall Batching', link: '/examples/providers/multicall_batching' },
- { text: 'WebSocket', link: '/examples/providers/ws' },
- { text: 'WebSocket with Auth', link: '/examples/providers/ws_with_auth' },
- { text: 'Wrapped Provider', link: '/examples/providers/wrapped_provider' }
- ]},
- { text: 'Queries', collapsed: true, link: '/examples/queries/README', items: [
- { text: 'Query Contract Storage', link: '/examples/queries/query_contract_storage' },
- { text: 'Query Deployed Bytecode', link: '/examples/queries/query_deployed_bytecode' },
- { text: 'Query Logs', link: '/examples/queries/query_logs' }
- ]},
- { text: 'Sol Macro', collapsed: true, link: '/examples/sol-macro/README', items: [
- { text: 'Contract', link: '/examples/sol-macro/contract'},
- { text: 'All Derives', link: '/examples/sol-macro/all_derives' },
- { text: 'Decode Returns', link: '/examples/sol-macro/decode_returns' },
- { text: 'Events & Errors', link: '/examples/sol-macro/events_errors' },
- { text: 'Extra Derives', link: '/examples/sol-macro/extra_derives' },
- { text: 'Structs & Enums', link: '/examples/sol-macro/structs_enums' },
- { text: 'User Defined Types', link: '/examples/sol-macro/user_defined_types' }
- ]},
- { text: 'Subscriptions', collapsed: true, link: '/examples/subscriptions/README', items: [
- { text: 'Event Multiplexer', link: '/examples/subscriptions/event_multiplexer' },
- { text: 'Poll Logs', link: '/examples/subscriptions/poll_logs' },
- { text: 'Subscribe All Logs', link: '/examples/subscriptions/subscribe_all_logs' },
- { text: 'Subscribe Blocks', link: '/examples/subscriptions/subscribe_blocks' },
- { text: 'Subscribe Logs', link: '/examples/subscriptions/subscribe_logs' },
- { text: 'Subscribe Pending Transactions', link: '/examples/subscriptions/subscribe_pending_transactions' }
- ]},
- { text: 'Transactions', collapsed: true, link: '/examples/transactions/README', items: [
- { text: 'Debug Trace Call Many', link: '/examples/transactions/debug_trace_call_many' },
- { text: 'Decode Input', link: '/examples/transactions/decode_input' },
- { text: 'Decode Receipt Log', link: '/examples/transactions/decode_receipt_log' },
- { text: 'Encode Decode EIP1559', link: '/examples/transactions/encode_decode_eip1559' },
- { text: 'Gas Price USD', link: '/examples/transactions/gas_price_usd' },
- { text: 'Permit2 Signature Transfer', link: '/examples/transactions/permit2_signature_transfer' },
- { text: 'Send EIP1559 Transaction', link: '/examples/transactions/send_eip1559_transaction' },
- { text: 'Send EIP4844 Transaction', link: '/examples/transactions/send_eip4844_transaction' },
- { text: 'Send EIP7702 Transaction', link: '/examples/transactions/send_eip7702_transaction' },
- { text: 'Send Legacy Transaction', link: '/examples/transactions/send_legacy_transaction' },
- { text: 'Send Private Transaction', link: '/examples/transactions/send_private_transaction' },
- { text: 'Send Raw Transaction', link: '/examples/transactions/send_raw_transaction' },
- { text: 'Trace Call', link: '/examples/transactions/trace_call' },
- { text: 'Trace Call Many', link: '/examples/transactions/trace_call_many' },
- { text: 'Trace Transaction', link: '/examples/transactions/trace_transaction' },
- { text: 'Transfer ERC20', link: '/examples/transactions/transfer_erc20' },
- { text: 'Transfer ETH', link: '/examples/transactions/transfer_eth' },
- { text: 'With Access List', link: '/examples/transactions/with_access_list' }
- ]},
- { text: 'Wallets', collapsed: true, link: '/examples/wallets/README', items: [
- { text: 'AWS Signer', link: '/examples/wallets/aws_signer' },
- { text: 'Create Keystore', link: '/examples/wallets/create_keystore' },
- { text: 'Ethereum Wallet', link: '/examples/wallets/ethereum_wallet' },
- { text: 'GCP Signer', link: '/examples/wallets/gcp_signer' },
- { text: 'Keystore Signer', link: '/examples/wallets/keystore_signer' },
- { text: 'Ledger Signer', link: '/examples/wallets/ledger_signer' },
- { text: 'Mnemonic Signer', link: '/examples/wallets/mnemonic_signer' },
- { text: 'Private Key Signer', link: '/examples/wallets/private_key_signer' },
- { text: 'Sign Message', link: '/examples/wallets/sign_message' },
- { text: 'Sign Permit Hash', link: '/examples/wallets/sign_permit_hash' },
- { text: 'Trezor Signer', link: '/examples/wallets/trezor_signer' },
- { text: 'Verify Message', link: '/examples/wallets/verify_message' },
- { text: 'Yubi Signer', link: '/examples/wallets/yubi_signer' }
- ]}
-]
\ No newline at end of file
+ {
+ text: 'Advanced', collapsed: true, link: '/examples/advanced/README', items: [
+ { text: 'Any Network', link: '/examples/advanced/any_network' },
+ { text: 'Decoding JSON ABI', link: '/examples/advanced/decoding_json_abi' },
+ { text: 'Encoding Dynamic ABI', link: '/examples/advanced/encoding_dyn_abi' },
+ { text: 'Encoding SOL Static', link: '/examples/advanced/encoding_sol_static' },
+ { text: 'Foundry Fork DB', link: '/examples/advanced/foundry_fork_db' },
+ { text: 'Reth DB Layer', link: '/examples/advanced/reth_db_layer' },
+ { text: 'Reth DB Provider', link: '/examples/advanced/reth_db_provider' }
+ ]
+ },
+ {
+ text: 'ENS', collapsed: true, link: '/examples/ens/README', items: [
+ { text: 'Address Lookup', link: '/examples/ens/address_lookup' },
+ { text: 'Name Resolution', link: '/examples/ens/name_resolution' }
+ ]
+ },
+
+ {
+ text: 'Big Numbers', collapsed: true, link: '/examples/big-numbers/README', items: [
+ { text: 'Comparison & Equivalence', link: '/examples/big-numbers/comparison_equivalence' },
+ { text: 'Conversion', link: '/examples/big-numbers/conversion' },
+ { text: 'Create Instances', link: '/examples/big-numbers/create_instances' },
+ { text: 'Math Operations', link: '/examples/big-numbers/math_operations' },
+ { text: 'Math Utilities', link: '/examples/big-numbers/math_utilities' }
+ ]
+ },
+ {
+ text: 'Comparison', collapsed: true, link: '/examples/comparison/README', items: [
+ { text: 'Compare New Heads', link: '/examples/comparison/compare_new_heads' },
+ { text: 'Compare Pending Transactions', link: '/examples/comparison/compare_pending_txs' }
+ ]
+ },
+ {
+ text: 'Contracts', collapsed: true, link: '/examples/contracts/README', items: [
+ { text: 'Deploy and Link Library', link: '/examples/contracts/deploy_and_link_library' },
+ { text: 'Deploy From Artifact', link: '/examples/contracts/deploy_from_artifact' },
+ { text: 'Deploy From Bytecode', link: '/examples/contracts/deploy_from_bytecode' },
+ { text: 'Deploy From Contract', link: '/examples/contracts/deploy_from_contract' },
+ { text: 'Interact with ABI', link: '/examples/contracts/interact_with_abi' },
+ { text: 'Interact with Contract Instance', link: '/examples/contracts/interact_with_contract_instance' },
+ { text: 'JSON-RPC Error Decoding', link: '/examples/contracts/jsonrpc_error_decoding' },
+ { text: 'Revert Decoding', link: '/examples/contracts/revert_decoding' },
+ { text: 'Unknown Return Types', link: '/examples/contracts/unknown_return_types' }
+ ]
+ },
+ {
+ text: 'Fillers', collapsed: true, link: '/examples/fillers/README', items: [
+ { text: 'Gas Filler', link: '/examples/fillers/gas_filler' },
+ { text: 'Nonce Filler', link: '/examples/fillers/nonce_filler' },
+ { text: 'Recommended Fillers', link: '/examples/fillers/recommended_fillers' },
+ { text: 'Wallet Filler', link: '/examples/fillers/wallet_filler' }
+ ]
+ },
+ {
+ text: 'Layers', collapsed: true, link: '/examples/layers/README', items: [
+ { text: 'Fallback Layer', link: '/examples/layers/fallback_layer' },
+ { text: 'Hyper HTTP Layer', link: '/examples/layers/hyper_http_layer' },
+ { text: 'Logging Layer', link: '/examples/layers/logging_layer' },
+ { text: 'Retry Layer', link: '/examples/layers/retry_layer' }
+ ]
+ },
+ {
+ text: 'Node Bindings', collapsed: true, link: '/examples/node-bindings/README', items: [
+ { text: 'Anvil Deploy Contract', link: '/examples/node-bindings/anvil_deploy_contract' },
+ { text: 'Anvil Fork Instance', link: '/examples/node-bindings/anvil_fork_instance' },
+ { text: 'Anvil Fork Provider', link: '/examples/node-bindings/anvil_fork_provider' },
+ { text: 'Anvil Local Instance', link: '/examples/node-bindings/anvil_local_instance' },
+ { text: 'Anvil Local Provider', link: '/examples/node-bindings/anvil_local_provider' },
+ { text: 'Anvil Set Storage At', link: '/examples/node-bindings/anvil_set_storage_at' },
+ { text: 'Geth Local Instance', link: '/examples/node-bindings/geth_local_instance' },
+ { text: 'Reth Local Instance', link: '/examples/node-bindings/reth_local_instance' }
+ ]
+ },
+ {
+ text: 'Primitives', collapsed: true, link: '/examples/primitives/README', items: [
+ { text: 'Bytes and Address Types', link: '/examples/primitives/bytes_and_address_types' },
+ { text: 'Hashing Functions', link: '/examples/primitives/hashing_functions' }
+ ]
+ },
+ {
+ text: 'Providers', collapsed: true, link: '/examples/providers/README', items: [
+ { text: 'Batch RPC', link: '/examples/providers/batch_rpc' },
+ { text: 'Builder', link: '/examples/providers/builder' },
+ { text: 'Built-in', link: '/examples/providers/builtin' },
+ { text: 'Dynamic Provider', link: '/examples/providers/dyn_provider' },
+ { text: 'HTTP', link: '/examples/providers/http' },
+ { text: 'HTTP with Auth', link: '/examples/providers/http_with_auth' },
+ { text: 'IPC', link: '/examples/providers/ipc' },
+ { text: 'Mocking', link: '/examples/providers/mocking' },
+ { text: 'Multicall', link: '/examples/providers/multicall' },
+ { text: 'Multicall Batching', link: '/examples/providers/multicall_batching' },
+ { text: 'WebSocket', link: '/examples/providers/ws' },
+ { text: 'WebSocket with Auth', link: '/examples/providers/ws_with_auth' },
+ { text: 'Wrapped Provider', link: '/examples/providers/wrapped_provider' }
+ ]
+ },
+ {
+ text: 'Queries', collapsed: true, link: '/examples/queries/README', items: [
+ { text: 'Query Contract Storage', link: '/examples/queries/query_contract_storage' },
+ { text: 'Query Deployed Bytecode', link: '/examples/queries/query_deployed_bytecode' },
+ { text: 'Query Logs', link: '/examples/queries/query_logs' }
+ ]
+ },
+ {
+ text: 'Sol Macro', collapsed: true, link: '/examples/sol-macro/README', items: [
+ { text: 'Contract', link: '/examples/sol-macro/contract' },
+ { text: 'All Derives', link: '/examples/sol-macro/all_derives' },
+ { text: 'Decode Returns', link: '/examples/sol-macro/decode_returns' },
+ { text: 'Events & Errors', link: '/examples/sol-macro/events_errors' },
+ { text: 'Extra Derives', link: '/examples/sol-macro/extra_derives' },
+ { text: 'Structs & Enums', link: '/examples/sol-macro/structs_enums' },
+ { text: 'User Defined Types', link: '/examples/sol-macro/user_defined_types' }
+ ]
+ },
+ {
+ text: 'Subscriptions', collapsed: true, link: '/examples/subscriptions/README', items: [
+ { text: 'Event Multiplexer', link: '/examples/subscriptions/event_multiplexer' },
+ { text: 'Poll Logs', link: '/examples/subscriptions/poll_logs' },
+ { text: 'Subscribe All Logs', link: '/examples/subscriptions/subscribe_all_logs' },
+ { text: 'Subscribe Blocks', link: '/examples/subscriptions/subscribe_blocks' },
+ { text: 'Subscribe Logs', link: '/examples/subscriptions/subscribe_logs' },
+ { text: 'Subscribe Pending Transactions', link: '/examples/subscriptions/subscribe_pending_transactions' }
+ ]
+ },
+ {
+ text: 'Transactions', collapsed: true, link: '/examples/transactions/README', items: [
+ { text: 'Debug Trace Call Many', link: '/examples/transactions/debug_trace_call_many' },
+ { text: 'Decode Input', link: '/examples/transactions/decode_input' },
+ { text: 'Decode Receipt Log', link: '/examples/transactions/decode_receipt_log' },
+ { text: 'Encode Decode EIP1559', link: '/examples/transactions/encode_decode_eip1559' },
+ { text: 'Gas Price USD', link: '/examples/transactions/gas_price_usd' },
+ { text: 'Permit2 Signature Transfer', link: '/examples/transactions/permit2_signature_transfer' },
+ { text: 'Send EIP1559 Transaction', link: '/examples/transactions/send_eip1559_transaction' },
+ { text: 'Send EIP4844 Transaction', link: '/examples/transactions/send_eip4844_transaction' },
+ { text: 'Send EIP7702 Transaction', link: '/examples/transactions/send_eip7702_transaction' },
+ { text: 'Send Legacy Transaction', link: '/examples/transactions/send_legacy_transaction' },
+ { text: 'Send Private Transaction', link: '/examples/transactions/send_private_transaction' },
+ { text: 'Send Raw Transaction', link: '/examples/transactions/send_raw_transaction' },
+ { text: 'Trace Call', link: '/examples/transactions/trace_call' },
+ { text: 'Trace Call Many', link: '/examples/transactions/trace_call_many' },
+ { text: 'Trace Transaction', link: '/examples/transactions/trace_transaction' },
+ { text: 'Transfer ERC20', link: '/examples/transactions/transfer_erc20' },
+ { text: 'Transfer ETH', link: '/examples/transactions/transfer_eth' },
+ { text: 'With Access List', link: '/examples/transactions/with_access_list' }
+ ]
+ },
+ {
+ text: 'Wallets', collapsed: true, link: '/examples/wallets/README', items: [
+ { text: 'AWS Signer', link: '/examples/wallets/aws_signer' },
+ { text: 'Create Keystore', link: '/examples/wallets/create_keystore' },
+ { text: 'Ethereum Wallet', link: '/examples/wallets/ethereum_wallet' },
+ { text: 'GCP Signer', link: '/examples/wallets/gcp_signer' },
+ { text: 'Keystore Signer', link: '/examples/wallets/keystore_signer' },
+ { text: 'Ledger Signer', link: '/examples/wallets/ledger_signer' },
+ { text: 'Mnemonic Signer', link: '/examples/wallets/mnemonic_signer' },
+ { text: 'Private Key Signer', link: '/examples/wallets/private_key_signer' },
+ { text: 'Sign Message', link: '/examples/wallets/sign_message' },
+ { text: 'Sign Permit Hash', link: '/examples/wallets/sign_permit_hash' },
+ { text: 'Trezor Signer', link: '/examples/wallets/trezor_signer' },
+ { text: 'Verify Message', link: '/examples/wallets/verify_message' },
+ { text: 'Yubi Signer', link: '/examples/wallets/yubi_signer' }
+ ]
+ }
+]