├── .gitignore ├── README.md ├── python ├── main.py └── requirements.txt └── rust ├── .env.example ├── Cargo.lock ├── Cargo.toml └── src ├── lib.rs ├── main.rs ├── trace.rs └── utils.rs /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | .DS_Store 3 | .cfmms-checkpoint.json 4 | 5 | venv/ 6 | target/ 7 | 8 | .idea/ 9 | .vscode/ 10 | __pycache__/ 11 | 12 | *.pyc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EVM Tracing sample code 2 | 3 | There're two versions of EVM Tracing sample codes: Python, Rust. 4 | 5 | ### Python version: 6 | 7 | 1. Go to **python** directory: 8 | 9 | ```bash 10 | cd python 11 | ``` 12 | 13 | 2. Install requirements.txt: 14 | 15 | ```bash 16 | pip install -r requirements.txt 17 | ``` 18 | 19 | 3. Run Python script in python/main.py: 20 | 21 | ```bash 22 | python main.py 23 | ``` 24 | 25 | ### Rust version: 26 | 27 | 1. Go to **rust** directory: 28 | 29 | ```bash 30 | cd rust 31 | ``` 32 | 33 | 2. Create .env file by copying .env.example: 34 | 35 | ```bash 36 | WSS_URL=ws://localhost:8546 37 | ``` 38 | 39 | 3. Run main.rs: 40 | 41 | ```bash 42 | cargo run 43 | ``` 44 | 45 | ### Reference: 46 | 47 | - [artemis](https://github.com/paradigmxyz/artemis) 48 | - [cfmms-rs](https://github.com/0xKitsune/cfmms-rs) 49 | - [rusty-sando](https://github.com/mouseless-eth/rusty-sando) 50 | - [foundry](https://github.com/foundry-rs/foundry) -------------------------------------------------------------------------------- /python/main.py: -------------------------------------------------------------------------------- 1 | import json 2 | import time 3 | import asyncio 4 | import aiohttp 5 | import websockets 6 | from web3 import Web3 7 | 8 | http_url = '' 9 | ws_url = '' 10 | 11 | provider = Web3(Web3.HTTPProvider(http_url)) 12 | ws_provider = Web3(Web3.WebsocketProvider(ws_url)) 13 | 14 | 15 | async def geth_style_tracing(tx_hash: str): 16 | async with aiohttp.ClientSession() as session: 17 | req = { 18 | 'id': 1, 19 | 'method': 'debug_traceTransaction', 20 | 'jsonrpc': '2.0', 21 | 'params': [ 22 | tx_hash, 23 | {'tracer': 'prestateTracer'} 24 | ] 25 | } 26 | headers = { 27 | 'Content-Type': 'application/json' 28 | } 29 | request = await session.post(http_url, data=json.dumps(req), headers=headers) 30 | res = await request.json() 31 | 32 | result = res.get('result') 33 | 34 | if result: 35 | addresses_touched = list(result.keys()) 36 | print('Geth style: ', addresses_touched) 37 | 38 | 39 | async def parity_style_tracing(tx_hash: str): 40 | async with aiohttp.ClientSession() as session: 41 | req = { 42 | 'id': 1, 43 | 'method': 'trace_replayTransaction', 44 | 'jsonrpc': '2.0', 45 | 'params': [tx_hash, ['stateDiff']] 46 | } 47 | request = await session.post(http_url, data=json.dumps(req)) 48 | res = await request.json() 49 | 50 | result = res.get('result') 51 | 52 | if result: 53 | state_diff = result['stateDiff'] 54 | addresses_touched = list(state_diff.keys()) 55 | print('Parity style: ', addresses_touched) 56 | 57 | 58 | async def main(): 59 | while True: 60 | try: 61 | async with websockets.connect(ws_url) as ws: 62 | subscription = { 63 | 'json': '2.0', 64 | 'id': 1, 65 | 'method': 'eth_subscribe', 66 | 'params': ['newPendingTransactions'] 67 | } 68 | 69 | await ws.send(json.dumps(subscription)) 70 | res = await ws.recv() 71 | print(res) 72 | 73 | while True: 74 | msg = await asyncio.wait_for(ws.recv(), timeout=60 * 10) 75 | response = json.loads(msg) 76 | tx_hash = response['params']['result'] 77 | 78 | await geth_style_tracing(tx_hash) 79 | await parity_style_tracing(tx_hash) 80 | 81 | print('\n') 82 | except: 83 | time.sleep(2) 84 | print('reconnecting...') 85 | 86 | 87 | if __name__ == '__main__': 88 | asyncio.run(main()) 89 | -------------------------------------------------------------------------------- /python/requirements.txt: -------------------------------------------------------------------------------- 1 | aiohttp==3.8.5 2 | web3==6.6.1 3 | websockets==11.0.3 4 | -------------------------------------------------------------------------------- /rust/.env.example: -------------------------------------------------------------------------------- 1 | WSS_URL=ws://localhost:8546 -------------------------------------------------------------------------------- /rust/Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "Inflector" 7 | version = "0.11.4" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" 10 | dependencies = [ 11 | "lazy_static", 12 | "regex", 13 | ] 14 | 15 | [[package]] 16 | name = "addr2line" 17 | version = "0.21.0" 18 | source = "registry+https://github.com/rust-lang/crates.io-index" 19 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 20 | dependencies = [ 21 | "gimli", 22 | ] 23 | 24 | [[package]] 25 | name = "adler" 26 | version = "1.0.2" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 29 | 30 | [[package]] 31 | name = "aes" 32 | version = "0.8.3" 33 | source = "registry+https://github.com/rust-lang/crates.io-index" 34 | checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" 35 | dependencies = [ 36 | "cfg-if", 37 | "cipher", 38 | "cpufeatures", 39 | ] 40 | 41 | [[package]] 42 | name = "aho-corasick" 43 | version = "1.1.2" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 46 | dependencies = [ 47 | "memchr", 48 | ] 49 | 50 | [[package]] 51 | name = "alloy-rlp" 52 | version = "0.3.3" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | checksum = "cc0fac0fc16baf1f63f78b47c3d24718f3619b0714076f6a02957d808d52cbef" 55 | dependencies = [ 56 | "arrayvec", 57 | "bytes", 58 | "smol_str", 59 | ] 60 | 61 | [[package]] 62 | name = "android-tzdata" 63 | version = "0.1.1" 64 | source = "registry+https://github.com/rust-lang/crates.io-index" 65 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 66 | 67 | [[package]] 68 | name = "android_system_properties" 69 | version = "0.1.5" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 72 | dependencies = [ 73 | "libc", 74 | ] 75 | 76 | [[package]] 77 | name = "anyhow" 78 | version = "1.0.75" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" 81 | 82 | [[package]] 83 | name = "ark-ff" 84 | version = "0.3.0" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" 87 | dependencies = [ 88 | "ark-ff-asm 0.3.0", 89 | "ark-ff-macros 0.3.0", 90 | "ark-serialize 0.3.0", 91 | "ark-std 0.3.0", 92 | "derivative", 93 | "num-bigint", 94 | "num-traits", 95 | "paste", 96 | "rustc_version 0.3.3", 97 | "zeroize", 98 | ] 99 | 100 | [[package]] 101 | name = "ark-ff" 102 | version = "0.4.2" 103 | source = "registry+https://github.com/rust-lang/crates.io-index" 104 | checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" 105 | dependencies = [ 106 | "ark-ff-asm 0.4.2", 107 | "ark-ff-macros 0.4.2", 108 | "ark-serialize 0.4.2", 109 | "ark-std 0.4.0", 110 | "derivative", 111 | "digest 0.10.7", 112 | "itertools 0.10.5", 113 | "num-bigint", 114 | "num-traits", 115 | "paste", 116 | "rustc_version 0.4.0", 117 | "zeroize", 118 | ] 119 | 120 | [[package]] 121 | name = "ark-ff-asm" 122 | version = "0.3.0" 123 | source = "registry+https://github.com/rust-lang/crates.io-index" 124 | checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" 125 | dependencies = [ 126 | "quote", 127 | "syn 1.0.109", 128 | ] 129 | 130 | [[package]] 131 | name = "ark-ff-asm" 132 | version = "0.4.2" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" 135 | dependencies = [ 136 | "quote", 137 | "syn 1.0.109", 138 | ] 139 | 140 | [[package]] 141 | name = "ark-ff-macros" 142 | version = "0.3.0" 143 | source = "registry+https://github.com/rust-lang/crates.io-index" 144 | checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" 145 | dependencies = [ 146 | "num-bigint", 147 | "num-traits", 148 | "quote", 149 | "syn 1.0.109", 150 | ] 151 | 152 | [[package]] 153 | name = "ark-ff-macros" 154 | version = "0.4.2" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" 157 | dependencies = [ 158 | "num-bigint", 159 | "num-traits", 160 | "proc-macro2", 161 | "quote", 162 | "syn 1.0.109", 163 | ] 164 | 165 | [[package]] 166 | name = "ark-serialize" 167 | version = "0.3.0" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" 170 | dependencies = [ 171 | "ark-std 0.3.0", 172 | "digest 0.9.0", 173 | ] 174 | 175 | [[package]] 176 | name = "ark-serialize" 177 | version = "0.4.2" 178 | source = "registry+https://github.com/rust-lang/crates.io-index" 179 | checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" 180 | dependencies = [ 181 | "ark-std 0.4.0", 182 | "digest 0.10.7", 183 | "num-bigint", 184 | ] 185 | 186 | [[package]] 187 | name = "ark-std" 188 | version = "0.3.0" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" 191 | dependencies = [ 192 | "num-traits", 193 | "rand", 194 | ] 195 | 196 | [[package]] 197 | name = "ark-std" 198 | version = "0.4.0" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" 201 | dependencies = [ 202 | "num-traits", 203 | "rand", 204 | ] 205 | 206 | [[package]] 207 | name = "arrayvec" 208 | version = "0.7.4" 209 | source = "registry+https://github.com/rust-lang/crates.io-index" 210 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 211 | 212 | [[package]] 213 | name = "ascii-canvas" 214 | version = "3.0.0" 215 | source = "registry+https://github.com/rust-lang/crates.io-index" 216 | checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" 217 | dependencies = [ 218 | "term", 219 | ] 220 | 221 | [[package]] 222 | name = "async-trait" 223 | version = "0.1.73" 224 | source = "registry+https://github.com/rust-lang/crates.io-index" 225 | checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" 226 | dependencies = [ 227 | "proc-macro2", 228 | "quote", 229 | "syn 2.0.38", 230 | ] 231 | 232 | [[package]] 233 | name = "async_io_stream" 234 | version = "0.3.3" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" 237 | dependencies = [ 238 | "futures", 239 | "pharos", 240 | "rustc_version 0.4.0", 241 | ] 242 | 243 | [[package]] 244 | name = "auto_impl" 245 | version = "1.1.0" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" 248 | dependencies = [ 249 | "proc-macro-error", 250 | "proc-macro2", 251 | "quote", 252 | "syn 1.0.109", 253 | ] 254 | 255 | [[package]] 256 | name = "autocfg" 257 | version = "1.1.0" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 260 | 261 | [[package]] 262 | name = "backtrace" 263 | version = "0.3.69" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 266 | dependencies = [ 267 | "addr2line", 268 | "cc", 269 | "cfg-if", 270 | "libc", 271 | "miniz_oxide", 272 | "object", 273 | "rustc-demangle", 274 | ] 275 | 276 | [[package]] 277 | name = "base16ct" 278 | version = "0.2.0" 279 | source = "registry+https://github.com/rust-lang/crates.io-index" 280 | checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 281 | 282 | [[package]] 283 | name = "base64" 284 | version = "0.13.1" 285 | source = "registry+https://github.com/rust-lang/crates.io-index" 286 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 287 | 288 | [[package]] 289 | name = "base64" 290 | version = "0.21.4" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" 293 | 294 | [[package]] 295 | name = "base64ct" 296 | version = "1.6.0" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" 299 | 300 | [[package]] 301 | name = "bech32" 302 | version = "0.9.1" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" 305 | 306 | [[package]] 307 | name = "bit-set" 308 | version = "0.5.3" 309 | source = "registry+https://github.com/rust-lang/crates.io-index" 310 | checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 311 | dependencies = [ 312 | "bit-vec", 313 | ] 314 | 315 | [[package]] 316 | name = "bit-vec" 317 | version = "0.6.3" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 320 | 321 | [[package]] 322 | name = "bitflags" 323 | version = "1.3.2" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 326 | 327 | [[package]] 328 | name = "bitflags" 329 | version = "2.4.0" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" 332 | 333 | [[package]] 334 | name = "bitvec" 335 | version = "1.0.1" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 338 | dependencies = [ 339 | "funty", 340 | "radium", 341 | "tap", 342 | "wyz", 343 | ] 344 | 345 | [[package]] 346 | name = "block-buffer" 347 | version = "0.10.4" 348 | source = "registry+https://github.com/rust-lang/crates.io-index" 349 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 350 | dependencies = [ 351 | "generic-array", 352 | ] 353 | 354 | [[package]] 355 | name = "bs58" 356 | version = "0.5.0" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" 359 | dependencies = [ 360 | "sha2", 361 | "tinyvec", 362 | ] 363 | 364 | [[package]] 365 | name = "bumpalo" 366 | version = "3.14.0" 367 | source = "registry+https://github.com/rust-lang/crates.io-index" 368 | checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" 369 | 370 | [[package]] 371 | name = "byte-slice-cast" 372 | version = "1.2.2" 373 | source = "registry+https://github.com/rust-lang/crates.io-index" 374 | checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" 375 | 376 | [[package]] 377 | name = "byteorder" 378 | version = "1.5.0" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 381 | 382 | [[package]] 383 | name = "bytes" 384 | version = "1.5.0" 385 | source = "registry+https://github.com/rust-lang/crates.io-index" 386 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 387 | dependencies = [ 388 | "serde", 389 | ] 390 | 391 | [[package]] 392 | name = "bzip2" 393 | version = "0.4.4" 394 | source = "registry+https://github.com/rust-lang/crates.io-index" 395 | checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" 396 | dependencies = [ 397 | "bzip2-sys", 398 | "libc", 399 | ] 400 | 401 | [[package]] 402 | name = "bzip2-sys" 403 | version = "0.1.11+1.0.8" 404 | source = "registry+https://github.com/rust-lang/crates.io-index" 405 | checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" 406 | dependencies = [ 407 | "cc", 408 | "libc", 409 | "pkg-config", 410 | ] 411 | 412 | [[package]] 413 | name = "camino" 414 | version = "1.1.6" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" 417 | dependencies = [ 418 | "serde", 419 | ] 420 | 421 | [[package]] 422 | name = "cargo-platform" 423 | version = "0.1.4" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "12024c4645c97566567129c204f65d5815a8c9aecf30fcbe682b2fe034996d36" 426 | dependencies = [ 427 | "serde", 428 | ] 429 | 430 | [[package]] 431 | name = "cargo_metadata" 432 | version = "0.17.0" 433 | source = "registry+https://github.com/rust-lang/crates.io-index" 434 | checksum = "e7daec1a2a2129eeba1644b220b4647ec537b0b5d4bfd6876fcc5a540056b592" 435 | dependencies = [ 436 | "camino", 437 | "cargo-platform", 438 | "semver 1.0.20", 439 | "serde", 440 | "serde_json", 441 | "thiserror", 442 | ] 443 | 444 | [[package]] 445 | name = "cc" 446 | version = "1.0.83" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 449 | dependencies = [ 450 | "jobserver", 451 | "libc", 452 | ] 453 | 454 | [[package]] 455 | name = "cfg-if" 456 | version = "1.0.0" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 459 | 460 | [[package]] 461 | name = "cfmms" 462 | version = "0.6.2" 463 | source = "git+https://github.com/0xKitsune/cfmms-rs.git#e3c79d6576833fb3dfa48dc886d76757d10f171c" 464 | dependencies = [ 465 | "async-trait", 466 | "ethers", 467 | "futures", 468 | "indicatif", 469 | "num-bigfloat", 470 | "regex", 471 | "serde", 472 | "serde_json", 473 | "thiserror", 474 | "tokio", 475 | "uniswap_v3_math", 476 | ] 477 | 478 | [[package]] 479 | name = "chrono" 480 | version = "0.4.31" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" 483 | dependencies = [ 484 | "android-tzdata", 485 | "iana-time-zone", 486 | "js-sys", 487 | "num-traits", 488 | "wasm-bindgen", 489 | "windows-targets 0.48.5", 490 | ] 491 | 492 | [[package]] 493 | name = "cipher" 494 | version = "0.4.4" 495 | source = "registry+https://github.com/rust-lang/crates.io-index" 496 | checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" 497 | dependencies = [ 498 | "crypto-common", 499 | "inout", 500 | ] 501 | 502 | [[package]] 503 | name = "coins-bip32" 504 | version = "0.8.7" 505 | source = "registry+https://github.com/rust-lang/crates.io-index" 506 | checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" 507 | dependencies = [ 508 | "bs58", 509 | "coins-core", 510 | "digest 0.10.7", 511 | "hmac", 512 | "k256", 513 | "serde", 514 | "sha2", 515 | "thiserror", 516 | ] 517 | 518 | [[package]] 519 | name = "coins-bip39" 520 | version = "0.8.7" 521 | source = "registry+https://github.com/rust-lang/crates.io-index" 522 | checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" 523 | dependencies = [ 524 | "bitvec", 525 | "coins-bip32", 526 | "hmac", 527 | "once_cell", 528 | "pbkdf2 0.12.2", 529 | "rand", 530 | "sha2", 531 | "thiserror", 532 | ] 533 | 534 | [[package]] 535 | name = "coins-core" 536 | version = "0.8.7" 537 | source = "registry+https://github.com/rust-lang/crates.io-index" 538 | checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" 539 | dependencies = [ 540 | "base64 0.21.4", 541 | "bech32", 542 | "bs58", 543 | "digest 0.10.7", 544 | "generic-array", 545 | "hex", 546 | "ripemd", 547 | "serde", 548 | "serde_derive", 549 | "sha2", 550 | "sha3", 551 | "thiserror", 552 | ] 553 | 554 | [[package]] 555 | name = "colored" 556 | version = "1.9.4" 557 | source = "registry+https://github.com/rust-lang/crates.io-index" 558 | checksum = "5a5f741c91823341bebf717d4c71bda820630ce065443b58bd1b7451af008355" 559 | dependencies = [ 560 | "is-terminal", 561 | "lazy_static", 562 | "winapi", 563 | ] 564 | 565 | [[package]] 566 | name = "colored" 567 | version = "2.0.4" 568 | source = "registry+https://github.com/rust-lang/crates.io-index" 569 | checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" 570 | dependencies = [ 571 | "is-terminal", 572 | "lazy_static", 573 | "windows-sys 0.48.0", 574 | ] 575 | 576 | [[package]] 577 | name = "console" 578 | version = "0.15.7" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" 581 | dependencies = [ 582 | "encode_unicode", 583 | "lazy_static", 584 | "libc", 585 | "unicode-width", 586 | "windows-sys 0.45.0", 587 | ] 588 | 589 | [[package]] 590 | name = "const-hex" 591 | version = "1.9.1" 592 | source = "registry+https://github.com/rust-lang/crates.io-index" 593 | checksum = "c37be52ef5e3b394db27a2341010685ad5103c72ac15ce2e9420a7e8f93f342c" 594 | dependencies = [ 595 | "cfg-if", 596 | "cpufeatures", 597 | "hex", 598 | "serde", 599 | ] 600 | 601 | [[package]] 602 | name = "const-oid" 603 | version = "0.9.5" 604 | source = "registry+https://github.com/rust-lang/crates.io-index" 605 | checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" 606 | 607 | [[package]] 608 | name = "constant_time_eq" 609 | version = "0.1.5" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" 612 | 613 | [[package]] 614 | name = "core-foundation" 615 | version = "0.9.3" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 618 | dependencies = [ 619 | "core-foundation-sys", 620 | "libc", 621 | ] 622 | 623 | [[package]] 624 | name = "core-foundation-sys" 625 | version = "0.8.4" 626 | source = "registry+https://github.com/rust-lang/crates.io-index" 627 | checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 628 | 629 | [[package]] 630 | name = "cpufeatures" 631 | version = "0.2.9" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" 634 | dependencies = [ 635 | "libc", 636 | ] 637 | 638 | [[package]] 639 | name = "crc32fast" 640 | version = "1.3.2" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 643 | dependencies = [ 644 | "cfg-if", 645 | ] 646 | 647 | [[package]] 648 | name = "crossbeam-deque" 649 | version = "0.8.3" 650 | source = "registry+https://github.com/rust-lang/crates.io-index" 651 | checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" 652 | dependencies = [ 653 | "cfg-if", 654 | "crossbeam-epoch", 655 | "crossbeam-utils", 656 | ] 657 | 658 | [[package]] 659 | name = "crossbeam-epoch" 660 | version = "0.9.15" 661 | source = "registry+https://github.com/rust-lang/crates.io-index" 662 | checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" 663 | dependencies = [ 664 | "autocfg", 665 | "cfg-if", 666 | "crossbeam-utils", 667 | "memoffset", 668 | "scopeguard", 669 | ] 670 | 671 | [[package]] 672 | name = "crossbeam-utils" 673 | version = "0.8.16" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" 676 | dependencies = [ 677 | "cfg-if", 678 | ] 679 | 680 | [[package]] 681 | name = "crunchy" 682 | version = "0.2.2" 683 | source = "registry+https://github.com/rust-lang/crates.io-index" 684 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 685 | 686 | [[package]] 687 | name = "crypto-bigint" 688 | version = "0.5.3" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124" 691 | dependencies = [ 692 | "generic-array", 693 | "rand_core", 694 | "subtle", 695 | "zeroize", 696 | ] 697 | 698 | [[package]] 699 | name = "crypto-common" 700 | version = "0.1.6" 701 | source = "registry+https://github.com/rust-lang/crates.io-index" 702 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 703 | dependencies = [ 704 | "generic-array", 705 | "typenum", 706 | ] 707 | 708 | [[package]] 709 | name = "ctr" 710 | version = "0.9.2" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" 713 | dependencies = [ 714 | "cipher", 715 | ] 716 | 717 | [[package]] 718 | name = "dashmap" 719 | version = "5.5.3" 720 | source = "registry+https://github.com/rust-lang/crates.io-index" 721 | checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" 722 | dependencies = [ 723 | "cfg-if", 724 | "hashbrown 0.14.1", 725 | "lock_api", 726 | "once_cell", 727 | "parking_lot_core", 728 | ] 729 | 730 | [[package]] 731 | name = "data-encoding" 732 | version = "2.4.0" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" 735 | 736 | [[package]] 737 | name = "der" 738 | version = "0.7.8" 739 | source = "registry+https://github.com/rust-lang/crates.io-index" 740 | checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" 741 | dependencies = [ 742 | "const-oid", 743 | "zeroize", 744 | ] 745 | 746 | [[package]] 747 | name = "deranged" 748 | version = "0.3.8" 749 | source = "registry+https://github.com/rust-lang/crates.io-index" 750 | checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" 751 | 752 | [[package]] 753 | name = "derivative" 754 | version = "2.2.0" 755 | source = "registry+https://github.com/rust-lang/crates.io-index" 756 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 757 | dependencies = [ 758 | "proc-macro2", 759 | "quote", 760 | "syn 1.0.109", 761 | ] 762 | 763 | [[package]] 764 | name = "derive_more" 765 | version = "0.99.17" 766 | source = "registry+https://github.com/rust-lang/crates.io-index" 767 | checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" 768 | dependencies = [ 769 | "proc-macro2", 770 | "quote", 771 | "syn 1.0.109", 772 | ] 773 | 774 | [[package]] 775 | name = "diff" 776 | version = "0.1.13" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" 779 | 780 | [[package]] 781 | name = "digest" 782 | version = "0.9.0" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 785 | dependencies = [ 786 | "generic-array", 787 | ] 788 | 789 | [[package]] 790 | name = "digest" 791 | version = "0.10.7" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 794 | dependencies = [ 795 | "block-buffer", 796 | "const-oid", 797 | "crypto-common", 798 | "subtle", 799 | ] 800 | 801 | [[package]] 802 | name = "dirs" 803 | version = "5.0.1" 804 | source = "registry+https://github.com/rust-lang/crates.io-index" 805 | checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" 806 | dependencies = [ 807 | "dirs-sys", 808 | ] 809 | 810 | [[package]] 811 | name = "dirs-next" 812 | version = "2.0.0" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" 815 | dependencies = [ 816 | "cfg-if", 817 | "dirs-sys-next", 818 | ] 819 | 820 | [[package]] 821 | name = "dirs-sys" 822 | version = "0.4.1" 823 | source = "registry+https://github.com/rust-lang/crates.io-index" 824 | checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" 825 | dependencies = [ 826 | "libc", 827 | "option-ext", 828 | "redox_users", 829 | "windows-sys 0.48.0", 830 | ] 831 | 832 | [[package]] 833 | name = "dirs-sys-next" 834 | version = "0.1.2" 835 | source = "registry+https://github.com/rust-lang/crates.io-index" 836 | checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" 837 | dependencies = [ 838 | "libc", 839 | "redox_users", 840 | "winapi", 841 | ] 842 | 843 | [[package]] 844 | name = "dotenv" 845 | version = "0.15.0" 846 | source = "registry+https://github.com/rust-lang/crates.io-index" 847 | checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" 848 | 849 | [[package]] 850 | name = "dunce" 851 | version = "1.0.4" 852 | source = "registry+https://github.com/rust-lang/crates.io-index" 853 | checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" 854 | 855 | [[package]] 856 | name = "ecdsa" 857 | version = "0.16.8" 858 | source = "registry+https://github.com/rust-lang/crates.io-index" 859 | checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" 860 | dependencies = [ 861 | "der", 862 | "digest 0.10.7", 863 | "elliptic-curve", 864 | "rfc6979", 865 | "signature", 866 | "spki", 867 | ] 868 | 869 | [[package]] 870 | name = "either" 871 | version = "1.9.0" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" 874 | 875 | [[package]] 876 | name = "elliptic-curve" 877 | version = "0.13.6" 878 | source = "registry+https://github.com/rust-lang/crates.io-index" 879 | checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914" 880 | dependencies = [ 881 | "base16ct", 882 | "crypto-bigint", 883 | "digest 0.10.7", 884 | "ff", 885 | "generic-array", 886 | "group", 887 | "pkcs8", 888 | "rand_core", 889 | "sec1", 890 | "subtle", 891 | "zeroize", 892 | ] 893 | 894 | [[package]] 895 | name = "ena" 896 | version = "0.14.2" 897 | source = "registry+https://github.com/rust-lang/crates.io-index" 898 | checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" 899 | dependencies = [ 900 | "log", 901 | ] 902 | 903 | [[package]] 904 | name = "encode_unicode" 905 | version = "0.3.6" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" 908 | 909 | [[package]] 910 | name = "encoding_rs" 911 | version = "0.8.33" 912 | source = "registry+https://github.com/rust-lang/crates.io-index" 913 | checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 914 | dependencies = [ 915 | "cfg-if", 916 | ] 917 | 918 | [[package]] 919 | name = "enr" 920 | version = "0.9.1" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" 923 | dependencies = [ 924 | "base64 0.21.4", 925 | "bytes", 926 | "hex", 927 | "k256", 928 | "log", 929 | "rand", 930 | "rlp", 931 | "serde", 932 | "sha3", 933 | "zeroize", 934 | ] 935 | 936 | [[package]] 937 | name = "equivalent" 938 | version = "1.0.1" 939 | source = "registry+https://github.com/rust-lang/crates.io-index" 940 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 941 | 942 | [[package]] 943 | name = "errno" 944 | version = "0.3.5" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" 947 | dependencies = [ 948 | "libc", 949 | "windows-sys 0.48.0", 950 | ] 951 | 952 | [[package]] 953 | name = "eth-keystore" 954 | version = "0.5.0" 955 | source = "registry+https://github.com/rust-lang/crates.io-index" 956 | checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" 957 | dependencies = [ 958 | "aes", 959 | "ctr", 960 | "digest 0.10.7", 961 | "hex", 962 | "hmac", 963 | "pbkdf2 0.11.0", 964 | "rand", 965 | "scrypt", 966 | "serde", 967 | "serde_json", 968 | "sha2", 969 | "sha3", 970 | "thiserror", 971 | "uuid", 972 | ] 973 | 974 | [[package]] 975 | name = "ethabi" 976 | version = "18.0.0" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" 979 | dependencies = [ 980 | "ethereum-types", 981 | "hex", 982 | "once_cell", 983 | "regex", 984 | "serde", 985 | "serde_json", 986 | "sha3", 987 | "thiserror", 988 | "uint", 989 | ] 990 | 991 | [[package]] 992 | name = "ethbloom" 993 | version = "0.13.0" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" 996 | dependencies = [ 997 | "crunchy", 998 | "fixed-hash", 999 | "impl-codec", 1000 | "impl-rlp", 1001 | "impl-serde", 1002 | "scale-info", 1003 | "tiny-keccak", 1004 | ] 1005 | 1006 | [[package]] 1007 | name = "ethereum-types" 1008 | version = "0.14.1" 1009 | source = "registry+https://github.com/rust-lang/crates.io-index" 1010 | checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" 1011 | dependencies = [ 1012 | "ethbloom", 1013 | "fixed-hash", 1014 | "impl-codec", 1015 | "impl-rlp", 1016 | "impl-serde", 1017 | "primitive-types", 1018 | "scale-info", 1019 | "uint", 1020 | ] 1021 | 1022 | [[package]] 1023 | name = "ethers" 1024 | version = "2.0.10" 1025 | source = "registry+https://github.com/rust-lang/crates.io-index" 1026 | checksum = "1ad13497f6e0a24292fc7b408e30d22fe9dc262da1f40d7b542c3a44e7fc0476" 1027 | dependencies = [ 1028 | "ethers-addressbook", 1029 | "ethers-contract", 1030 | "ethers-core", 1031 | "ethers-etherscan", 1032 | "ethers-middleware", 1033 | "ethers-providers", 1034 | "ethers-signers", 1035 | "ethers-solc", 1036 | ] 1037 | 1038 | [[package]] 1039 | name = "ethers-addressbook" 1040 | version = "2.0.10" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | checksum = "c6e9e8acd0ed348403cc73a670c24daba3226c40b98dc1a41903766b3ab6240a" 1043 | dependencies = [ 1044 | "ethers-core", 1045 | "once_cell", 1046 | "serde", 1047 | "serde_json", 1048 | ] 1049 | 1050 | [[package]] 1051 | name = "ethers-contract" 1052 | version = "2.0.10" 1053 | source = "registry+https://github.com/rust-lang/crates.io-index" 1054 | checksum = "d79269278125006bb0552349c03593ffa9702112ca88bc7046cc669f148fb47c" 1055 | dependencies = [ 1056 | "const-hex", 1057 | "ethers-contract-abigen", 1058 | "ethers-contract-derive", 1059 | "ethers-core", 1060 | "ethers-providers", 1061 | "futures-util", 1062 | "once_cell", 1063 | "pin-project", 1064 | "serde", 1065 | "serde_json", 1066 | "thiserror", 1067 | ] 1068 | 1069 | [[package]] 1070 | name = "ethers-contract-abigen" 1071 | version = "2.0.10" 1072 | source = "registry+https://github.com/rust-lang/crates.io-index" 1073 | checksum = "ce95a43c939b2e4e2f3191c5ad4a1f279780b8a39139c9905b43a7433531e2ab" 1074 | dependencies = [ 1075 | "Inflector", 1076 | "const-hex", 1077 | "dunce", 1078 | "ethers-core", 1079 | "ethers-etherscan", 1080 | "eyre", 1081 | "prettyplease", 1082 | "proc-macro2", 1083 | "quote", 1084 | "regex", 1085 | "reqwest", 1086 | "serde", 1087 | "serde_json", 1088 | "syn 2.0.38", 1089 | "toml", 1090 | "walkdir", 1091 | ] 1092 | 1093 | [[package]] 1094 | name = "ethers-contract-derive" 1095 | version = "2.0.10" 1096 | source = "registry+https://github.com/rust-lang/crates.io-index" 1097 | checksum = "8e9ce44906fc871b3ee8c69a695ca7ec7f70e50cb379c9b9cb5e532269e492f6" 1098 | dependencies = [ 1099 | "Inflector", 1100 | "const-hex", 1101 | "ethers-contract-abigen", 1102 | "ethers-core", 1103 | "proc-macro2", 1104 | "quote", 1105 | "serde_json", 1106 | "syn 2.0.38", 1107 | ] 1108 | 1109 | [[package]] 1110 | name = "ethers-core" 1111 | version = "2.0.10" 1112 | source = "registry+https://github.com/rust-lang/crates.io-index" 1113 | checksum = "c0a17f0708692024db9956b31d7a20163607d2745953f5ae8125ab368ba280ad" 1114 | dependencies = [ 1115 | "arrayvec", 1116 | "bytes", 1117 | "cargo_metadata", 1118 | "chrono", 1119 | "const-hex", 1120 | "elliptic-curve", 1121 | "ethabi", 1122 | "generic-array", 1123 | "k256", 1124 | "num_enum", 1125 | "once_cell", 1126 | "open-fastrlp", 1127 | "rand", 1128 | "rlp", 1129 | "serde", 1130 | "serde_json", 1131 | "strum", 1132 | "syn 2.0.38", 1133 | "tempfile", 1134 | "thiserror", 1135 | "tiny-keccak", 1136 | "unicode-xid", 1137 | ] 1138 | 1139 | [[package]] 1140 | name = "ethers-etherscan" 1141 | version = "2.0.10" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "0e53451ea4a8128fbce33966da71132cf9e1040dcfd2a2084fd7733ada7b2045" 1144 | dependencies = [ 1145 | "ethers-core", 1146 | "reqwest", 1147 | "semver 1.0.20", 1148 | "serde", 1149 | "serde_json", 1150 | "thiserror", 1151 | "tracing", 1152 | ] 1153 | 1154 | [[package]] 1155 | name = "ethers-middleware" 1156 | version = "2.0.10" 1157 | source = "registry+https://github.com/rust-lang/crates.io-index" 1158 | checksum = "473f1ccd0c793871bbc248729fa8df7e6d2981d6226e4343e3bbaa9281074d5d" 1159 | dependencies = [ 1160 | "async-trait", 1161 | "auto_impl", 1162 | "ethers-contract", 1163 | "ethers-core", 1164 | "ethers-etherscan", 1165 | "ethers-providers", 1166 | "ethers-signers", 1167 | "futures-channel", 1168 | "futures-locks", 1169 | "futures-util", 1170 | "instant", 1171 | "reqwest", 1172 | "serde", 1173 | "serde_json", 1174 | "thiserror", 1175 | "tokio", 1176 | "tracing", 1177 | "tracing-futures", 1178 | "url", 1179 | ] 1180 | 1181 | [[package]] 1182 | name = "ethers-providers" 1183 | version = "2.0.10" 1184 | source = "registry+https://github.com/rust-lang/crates.io-index" 1185 | checksum = "6838fa110e57d572336178b7c79e94ff88ef976306852d8cb87d9e5b1fc7c0b5" 1186 | dependencies = [ 1187 | "async-trait", 1188 | "auto_impl", 1189 | "base64 0.21.4", 1190 | "bytes", 1191 | "const-hex", 1192 | "enr", 1193 | "ethers-core", 1194 | "futures-channel", 1195 | "futures-core", 1196 | "futures-timer", 1197 | "futures-util", 1198 | "hashers", 1199 | "http", 1200 | "instant", 1201 | "jsonwebtoken", 1202 | "once_cell", 1203 | "pin-project", 1204 | "reqwest", 1205 | "serde", 1206 | "serde_json", 1207 | "thiserror", 1208 | "tokio", 1209 | "tokio-tungstenite", 1210 | "tracing", 1211 | "tracing-futures", 1212 | "url", 1213 | "wasm-bindgen", 1214 | "wasm-bindgen-futures", 1215 | "web-sys", 1216 | "winapi", 1217 | "ws_stream_wasm", 1218 | ] 1219 | 1220 | [[package]] 1221 | name = "ethers-signers" 1222 | version = "2.0.10" 1223 | source = "registry+https://github.com/rust-lang/crates.io-index" 1224 | checksum = "5ea44bec930f12292866166f9ddbea6aa76304850e4d8dcd66dc492b43d00ff1" 1225 | dependencies = [ 1226 | "async-trait", 1227 | "coins-bip32", 1228 | "coins-bip39", 1229 | "const-hex", 1230 | "elliptic-curve", 1231 | "eth-keystore", 1232 | "ethers-core", 1233 | "rand", 1234 | "sha2", 1235 | "thiserror", 1236 | "tracing", 1237 | ] 1238 | 1239 | [[package]] 1240 | name = "ethers-solc" 1241 | version = "2.0.10" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "de34e484e7ae3cab99fbfd013d6c5dc7f9013676a4e0e414d8b12e1213e8b3ba" 1244 | dependencies = [ 1245 | "cfg-if", 1246 | "const-hex", 1247 | "dirs", 1248 | "dunce", 1249 | "ethers-core", 1250 | "glob", 1251 | "home", 1252 | "md-5", 1253 | "num_cpus", 1254 | "once_cell", 1255 | "path-slash", 1256 | "rayon", 1257 | "regex", 1258 | "semver 1.0.20", 1259 | "serde", 1260 | "serde_json", 1261 | "solang-parser", 1262 | "svm-rs", 1263 | "thiserror", 1264 | "tiny-keccak", 1265 | "tokio", 1266 | "tracing", 1267 | "walkdir", 1268 | "yansi", 1269 | ] 1270 | 1271 | [[package]] 1272 | name = "eyre" 1273 | version = "0.6.8" 1274 | source = "registry+https://github.com/rust-lang/crates.io-index" 1275 | checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" 1276 | dependencies = [ 1277 | "indenter", 1278 | "once_cell", 1279 | ] 1280 | 1281 | [[package]] 1282 | name = "fastrand" 1283 | version = "2.0.1" 1284 | source = "registry+https://github.com/rust-lang/crates.io-index" 1285 | checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 1286 | 1287 | [[package]] 1288 | name = "fastrlp" 1289 | version = "0.3.1" 1290 | source = "registry+https://github.com/rust-lang/crates.io-index" 1291 | checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" 1292 | dependencies = [ 1293 | "arrayvec", 1294 | "auto_impl", 1295 | "bytes", 1296 | ] 1297 | 1298 | [[package]] 1299 | name = "fern" 1300 | version = "0.6.2" 1301 | source = "registry+https://github.com/rust-lang/crates.io-index" 1302 | checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee" 1303 | dependencies = [ 1304 | "colored 1.9.4", 1305 | "log", 1306 | ] 1307 | 1308 | [[package]] 1309 | name = "ff" 1310 | version = "0.13.0" 1311 | source = "registry+https://github.com/rust-lang/crates.io-index" 1312 | checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" 1313 | dependencies = [ 1314 | "rand_core", 1315 | "subtle", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "fixed-hash" 1320 | version = "0.8.0" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" 1323 | dependencies = [ 1324 | "byteorder", 1325 | "rand", 1326 | "rustc-hex", 1327 | "static_assertions", 1328 | ] 1329 | 1330 | [[package]] 1331 | name = "fixedbitset" 1332 | version = "0.4.2" 1333 | source = "registry+https://github.com/rust-lang/crates.io-index" 1334 | checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" 1335 | 1336 | [[package]] 1337 | name = "flate2" 1338 | version = "1.0.27" 1339 | source = "registry+https://github.com/rust-lang/crates.io-index" 1340 | checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" 1341 | dependencies = [ 1342 | "crc32fast", 1343 | "miniz_oxide", 1344 | ] 1345 | 1346 | [[package]] 1347 | name = "fnv" 1348 | version = "1.0.7" 1349 | source = "registry+https://github.com/rust-lang/crates.io-index" 1350 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1351 | 1352 | [[package]] 1353 | name = "form_urlencoded" 1354 | version = "1.2.0" 1355 | source = "registry+https://github.com/rust-lang/crates.io-index" 1356 | checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" 1357 | dependencies = [ 1358 | "percent-encoding", 1359 | ] 1360 | 1361 | [[package]] 1362 | name = "fs2" 1363 | version = "0.4.3" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" 1366 | dependencies = [ 1367 | "libc", 1368 | "winapi", 1369 | ] 1370 | 1371 | [[package]] 1372 | name = "funty" 1373 | version = "2.0.0" 1374 | source = "registry+https://github.com/rust-lang/crates.io-index" 1375 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 1376 | 1377 | [[package]] 1378 | name = "futures" 1379 | version = "0.3.28" 1380 | source = "registry+https://github.com/rust-lang/crates.io-index" 1381 | checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" 1382 | dependencies = [ 1383 | "futures-channel", 1384 | "futures-core", 1385 | "futures-executor", 1386 | "futures-io", 1387 | "futures-sink", 1388 | "futures-task", 1389 | "futures-util", 1390 | ] 1391 | 1392 | [[package]] 1393 | name = "futures-channel" 1394 | version = "0.3.28" 1395 | source = "registry+https://github.com/rust-lang/crates.io-index" 1396 | checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" 1397 | dependencies = [ 1398 | "futures-core", 1399 | "futures-sink", 1400 | ] 1401 | 1402 | [[package]] 1403 | name = "futures-core" 1404 | version = "0.3.28" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" 1407 | 1408 | [[package]] 1409 | name = "futures-executor" 1410 | version = "0.3.28" 1411 | source = "registry+https://github.com/rust-lang/crates.io-index" 1412 | checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" 1413 | dependencies = [ 1414 | "futures-core", 1415 | "futures-task", 1416 | "futures-util", 1417 | ] 1418 | 1419 | [[package]] 1420 | name = "futures-io" 1421 | version = "0.3.28" 1422 | source = "registry+https://github.com/rust-lang/crates.io-index" 1423 | checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" 1424 | 1425 | [[package]] 1426 | name = "futures-locks" 1427 | version = "0.7.1" 1428 | source = "registry+https://github.com/rust-lang/crates.io-index" 1429 | checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" 1430 | dependencies = [ 1431 | "futures-channel", 1432 | "futures-task", 1433 | ] 1434 | 1435 | [[package]] 1436 | name = "futures-macro" 1437 | version = "0.3.28" 1438 | source = "registry+https://github.com/rust-lang/crates.io-index" 1439 | checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" 1440 | dependencies = [ 1441 | "proc-macro2", 1442 | "quote", 1443 | "syn 2.0.38", 1444 | ] 1445 | 1446 | [[package]] 1447 | name = "futures-sink" 1448 | version = "0.3.28" 1449 | source = "registry+https://github.com/rust-lang/crates.io-index" 1450 | checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" 1451 | 1452 | [[package]] 1453 | name = "futures-task" 1454 | version = "0.3.28" 1455 | source = "registry+https://github.com/rust-lang/crates.io-index" 1456 | checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" 1457 | 1458 | [[package]] 1459 | name = "futures-timer" 1460 | version = "3.0.2" 1461 | source = "registry+https://github.com/rust-lang/crates.io-index" 1462 | checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" 1463 | dependencies = [ 1464 | "gloo-timers", 1465 | "send_wrapper 0.4.0", 1466 | ] 1467 | 1468 | [[package]] 1469 | name = "futures-util" 1470 | version = "0.3.28" 1471 | source = "registry+https://github.com/rust-lang/crates.io-index" 1472 | checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" 1473 | dependencies = [ 1474 | "futures-channel", 1475 | "futures-core", 1476 | "futures-io", 1477 | "futures-macro", 1478 | "futures-sink", 1479 | "futures-task", 1480 | "memchr", 1481 | "pin-project-lite", 1482 | "pin-utils", 1483 | "slab", 1484 | ] 1485 | 1486 | [[package]] 1487 | name = "fxhash" 1488 | version = "0.2.1" 1489 | source = "registry+https://github.com/rust-lang/crates.io-index" 1490 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 1491 | dependencies = [ 1492 | "byteorder", 1493 | ] 1494 | 1495 | [[package]] 1496 | name = "generic-array" 1497 | version = "0.14.7" 1498 | source = "registry+https://github.com/rust-lang/crates.io-index" 1499 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1500 | dependencies = [ 1501 | "typenum", 1502 | "version_check", 1503 | "zeroize", 1504 | ] 1505 | 1506 | [[package]] 1507 | name = "getrandom" 1508 | version = "0.2.10" 1509 | source = "registry+https://github.com/rust-lang/crates.io-index" 1510 | checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" 1511 | dependencies = [ 1512 | "cfg-if", 1513 | "libc", 1514 | "wasi", 1515 | ] 1516 | 1517 | [[package]] 1518 | name = "gimli" 1519 | version = "0.28.0" 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" 1521 | checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" 1522 | 1523 | [[package]] 1524 | name = "glob" 1525 | version = "0.3.1" 1526 | source = "registry+https://github.com/rust-lang/crates.io-index" 1527 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 1528 | 1529 | [[package]] 1530 | name = "gloo-timers" 1531 | version = "0.2.6" 1532 | source = "registry+https://github.com/rust-lang/crates.io-index" 1533 | checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" 1534 | dependencies = [ 1535 | "futures-channel", 1536 | "futures-core", 1537 | "js-sys", 1538 | "wasm-bindgen", 1539 | ] 1540 | 1541 | [[package]] 1542 | name = "group" 1543 | version = "0.13.0" 1544 | source = "registry+https://github.com/rust-lang/crates.io-index" 1545 | checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" 1546 | dependencies = [ 1547 | "ff", 1548 | "rand_core", 1549 | "subtle", 1550 | ] 1551 | 1552 | [[package]] 1553 | name = "h2" 1554 | version = "0.3.21" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" 1557 | dependencies = [ 1558 | "bytes", 1559 | "fnv", 1560 | "futures-core", 1561 | "futures-sink", 1562 | "futures-util", 1563 | "http", 1564 | "indexmap 1.9.3", 1565 | "slab", 1566 | "tokio", 1567 | "tokio-util", 1568 | "tracing", 1569 | ] 1570 | 1571 | [[package]] 1572 | name = "hashbrown" 1573 | version = "0.12.3" 1574 | source = "registry+https://github.com/rust-lang/crates.io-index" 1575 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1576 | 1577 | [[package]] 1578 | name = "hashbrown" 1579 | version = "0.14.1" 1580 | source = "registry+https://github.com/rust-lang/crates.io-index" 1581 | checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" 1582 | 1583 | [[package]] 1584 | name = "hashers" 1585 | version = "1.0.1" 1586 | source = "registry+https://github.com/rust-lang/crates.io-index" 1587 | checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" 1588 | dependencies = [ 1589 | "fxhash", 1590 | ] 1591 | 1592 | [[package]] 1593 | name = "heck" 1594 | version = "0.4.1" 1595 | source = "registry+https://github.com/rust-lang/crates.io-index" 1596 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1597 | 1598 | [[package]] 1599 | name = "hermit-abi" 1600 | version = "0.3.3" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" 1603 | 1604 | [[package]] 1605 | name = "hex" 1606 | version = "0.4.3" 1607 | source = "registry+https://github.com/rust-lang/crates.io-index" 1608 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1609 | 1610 | [[package]] 1611 | name = "hex-literal" 1612 | version = "0.4.1" 1613 | source = "registry+https://github.com/rust-lang/crates.io-index" 1614 | checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" 1615 | 1616 | [[package]] 1617 | name = "hmac" 1618 | version = "0.12.1" 1619 | source = "registry+https://github.com/rust-lang/crates.io-index" 1620 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1621 | dependencies = [ 1622 | "digest 0.10.7", 1623 | ] 1624 | 1625 | [[package]] 1626 | name = "home" 1627 | version = "0.5.5" 1628 | source = "registry+https://github.com/rust-lang/crates.io-index" 1629 | checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" 1630 | dependencies = [ 1631 | "windows-sys 0.48.0", 1632 | ] 1633 | 1634 | [[package]] 1635 | name = "http" 1636 | version = "0.2.9" 1637 | source = "registry+https://github.com/rust-lang/crates.io-index" 1638 | checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 1639 | dependencies = [ 1640 | "bytes", 1641 | "fnv", 1642 | "itoa", 1643 | ] 1644 | 1645 | [[package]] 1646 | name = "http-body" 1647 | version = "0.4.5" 1648 | source = "registry+https://github.com/rust-lang/crates.io-index" 1649 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 1650 | dependencies = [ 1651 | "bytes", 1652 | "http", 1653 | "pin-project-lite", 1654 | ] 1655 | 1656 | [[package]] 1657 | name = "httparse" 1658 | version = "1.8.0" 1659 | source = "registry+https://github.com/rust-lang/crates.io-index" 1660 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 1661 | 1662 | [[package]] 1663 | name = "httpdate" 1664 | version = "1.0.3" 1665 | source = "registry+https://github.com/rust-lang/crates.io-index" 1666 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1667 | 1668 | [[package]] 1669 | name = "hyper" 1670 | version = "0.14.27" 1671 | source = "registry+https://github.com/rust-lang/crates.io-index" 1672 | checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" 1673 | dependencies = [ 1674 | "bytes", 1675 | "futures-channel", 1676 | "futures-core", 1677 | "futures-util", 1678 | "h2", 1679 | "http", 1680 | "http-body", 1681 | "httparse", 1682 | "httpdate", 1683 | "itoa", 1684 | "pin-project-lite", 1685 | "socket2 0.4.9", 1686 | "tokio", 1687 | "tower-service", 1688 | "tracing", 1689 | "want", 1690 | ] 1691 | 1692 | [[package]] 1693 | name = "hyper-rustls" 1694 | version = "0.24.1" 1695 | source = "registry+https://github.com/rust-lang/crates.io-index" 1696 | checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" 1697 | dependencies = [ 1698 | "futures-util", 1699 | "http", 1700 | "hyper", 1701 | "rustls", 1702 | "tokio", 1703 | "tokio-rustls", 1704 | ] 1705 | 1706 | [[package]] 1707 | name = "iana-time-zone" 1708 | version = "0.1.57" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" 1711 | dependencies = [ 1712 | "android_system_properties", 1713 | "core-foundation-sys", 1714 | "iana-time-zone-haiku", 1715 | "js-sys", 1716 | "wasm-bindgen", 1717 | "windows", 1718 | ] 1719 | 1720 | [[package]] 1721 | name = "iana-time-zone-haiku" 1722 | version = "0.1.2" 1723 | source = "registry+https://github.com/rust-lang/crates.io-index" 1724 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1725 | dependencies = [ 1726 | "cc", 1727 | ] 1728 | 1729 | [[package]] 1730 | name = "idna" 1731 | version = "0.4.0" 1732 | source = "registry+https://github.com/rust-lang/crates.io-index" 1733 | checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" 1734 | dependencies = [ 1735 | "unicode-bidi", 1736 | "unicode-normalization", 1737 | ] 1738 | 1739 | [[package]] 1740 | name = "impl-codec" 1741 | version = "0.6.0" 1742 | source = "registry+https://github.com/rust-lang/crates.io-index" 1743 | checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" 1744 | dependencies = [ 1745 | "parity-scale-codec", 1746 | ] 1747 | 1748 | [[package]] 1749 | name = "impl-rlp" 1750 | version = "0.3.0" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" 1753 | dependencies = [ 1754 | "rlp", 1755 | ] 1756 | 1757 | [[package]] 1758 | name = "impl-serde" 1759 | version = "0.4.0" 1760 | source = "registry+https://github.com/rust-lang/crates.io-index" 1761 | checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" 1762 | dependencies = [ 1763 | "serde", 1764 | ] 1765 | 1766 | [[package]] 1767 | name = "impl-trait-for-tuples" 1768 | version = "0.2.2" 1769 | source = "registry+https://github.com/rust-lang/crates.io-index" 1770 | checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" 1771 | dependencies = [ 1772 | "proc-macro2", 1773 | "quote", 1774 | "syn 1.0.109", 1775 | ] 1776 | 1777 | [[package]] 1778 | name = "indenter" 1779 | version = "0.3.3" 1780 | source = "registry+https://github.com/rust-lang/crates.io-index" 1781 | checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" 1782 | 1783 | [[package]] 1784 | name = "indexmap" 1785 | version = "1.9.3" 1786 | source = "registry+https://github.com/rust-lang/crates.io-index" 1787 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 1788 | dependencies = [ 1789 | "autocfg", 1790 | "hashbrown 0.12.3", 1791 | ] 1792 | 1793 | [[package]] 1794 | name = "indexmap" 1795 | version = "2.0.2" 1796 | source = "registry+https://github.com/rust-lang/crates.io-index" 1797 | checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" 1798 | dependencies = [ 1799 | "equivalent", 1800 | "hashbrown 0.14.1", 1801 | ] 1802 | 1803 | [[package]] 1804 | name = "indicatif" 1805 | version = "0.17.7" 1806 | source = "registry+https://github.com/rust-lang/crates.io-index" 1807 | checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" 1808 | dependencies = [ 1809 | "console", 1810 | "instant", 1811 | "number_prefix", 1812 | "portable-atomic", 1813 | "unicode-width", 1814 | ] 1815 | 1816 | [[package]] 1817 | name = "inout" 1818 | version = "0.1.3" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" 1821 | dependencies = [ 1822 | "generic-array", 1823 | ] 1824 | 1825 | [[package]] 1826 | name = "instant" 1827 | version = "0.1.12" 1828 | source = "registry+https://github.com/rust-lang/crates.io-index" 1829 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1830 | dependencies = [ 1831 | "cfg-if", 1832 | ] 1833 | 1834 | [[package]] 1835 | name = "ipnet" 1836 | version = "2.8.0" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6" 1839 | 1840 | [[package]] 1841 | name = "is-terminal" 1842 | version = "0.4.9" 1843 | source = "registry+https://github.com/rust-lang/crates.io-index" 1844 | checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" 1845 | dependencies = [ 1846 | "hermit-abi", 1847 | "rustix", 1848 | "windows-sys 0.48.0", 1849 | ] 1850 | 1851 | [[package]] 1852 | name = "itertools" 1853 | version = "0.10.5" 1854 | source = "registry+https://github.com/rust-lang/crates.io-index" 1855 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 1856 | dependencies = [ 1857 | "either", 1858 | ] 1859 | 1860 | [[package]] 1861 | name = "itertools" 1862 | version = "0.11.0" 1863 | source = "registry+https://github.com/rust-lang/crates.io-index" 1864 | checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" 1865 | dependencies = [ 1866 | "either", 1867 | ] 1868 | 1869 | [[package]] 1870 | name = "itoa" 1871 | version = "1.0.9" 1872 | source = "registry+https://github.com/rust-lang/crates.io-index" 1873 | checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" 1874 | 1875 | [[package]] 1876 | name = "jobserver" 1877 | version = "0.1.27" 1878 | source = "registry+https://github.com/rust-lang/crates.io-index" 1879 | checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" 1880 | dependencies = [ 1881 | "libc", 1882 | ] 1883 | 1884 | [[package]] 1885 | name = "js-sys" 1886 | version = "0.3.64" 1887 | source = "registry+https://github.com/rust-lang/crates.io-index" 1888 | checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" 1889 | dependencies = [ 1890 | "wasm-bindgen", 1891 | ] 1892 | 1893 | [[package]] 1894 | name = "jsonwebtoken" 1895 | version = "8.3.0" 1896 | source = "registry+https://github.com/rust-lang/crates.io-index" 1897 | checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" 1898 | dependencies = [ 1899 | "base64 0.21.4", 1900 | "pem", 1901 | "ring", 1902 | "serde", 1903 | "serde_json", 1904 | "simple_asn1", 1905 | ] 1906 | 1907 | [[package]] 1908 | name = "k256" 1909 | version = "0.13.1" 1910 | source = "registry+https://github.com/rust-lang/crates.io-index" 1911 | checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" 1912 | dependencies = [ 1913 | "cfg-if", 1914 | "ecdsa", 1915 | "elliptic-curve", 1916 | "once_cell", 1917 | "sha2", 1918 | "signature", 1919 | ] 1920 | 1921 | [[package]] 1922 | name = "keccak" 1923 | version = "0.1.4" 1924 | source = "registry+https://github.com/rust-lang/crates.io-index" 1925 | checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" 1926 | dependencies = [ 1927 | "cpufeatures", 1928 | ] 1929 | 1930 | [[package]] 1931 | name = "lalrpop" 1932 | version = "0.20.0" 1933 | source = "registry+https://github.com/rust-lang/crates.io-index" 1934 | checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" 1935 | dependencies = [ 1936 | "ascii-canvas", 1937 | "bit-set", 1938 | "diff", 1939 | "ena", 1940 | "is-terminal", 1941 | "itertools 0.10.5", 1942 | "lalrpop-util", 1943 | "petgraph", 1944 | "regex", 1945 | "regex-syntax 0.7.5", 1946 | "string_cache", 1947 | "term", 1948 | "tiny-keccak", 1949 | "unicode-xid", 1950 | ] 1951 | 1952 | [[package]] 1953 | name = "lalrpop-util" 1954 | version = "0.20.0" 1955 | source = "registry+https://github.com/rust-lang/crates.io-index" 1956 | checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" 1957 | 1958 | [[package]] 1959 | name = "lazy_static" 1960 | version = "1.4.0" 1961 | source = "registry+https://github.com/rust-lang/crates.io-index" 1962 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1963 | 1964 | [[package]] 1965 | name = "libc" 1966 | version = "0.2.149" 1967 | source = "registry+https://github.com/rust-lang/crates.io-index" 1968 | checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" 1969 | 1970 | [[package]] 1971 | name = "libm" 1972 | version = "0.2.8" 1973 | source = "registry+https://github.com/rust-lang/crates.io-index" 1974 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 1975 | 1976 | [[package]] 1977 | name = "linux-raw-sys" 1978 | version = "0.4.10" 1979 | source = "registry+https://github.com/rust-lang/crates.io-index" 1980 | checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" 1981 | 1982 | [[package]] 1983 | name = "lock_api" 1984 | version = "0.4.10" 1985 | source = "registry+https://github.com/rust-lang/crates.io-index" 1986 | checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" 1987 | dependencies = [ 1988 | "autocfg", 1989 | "scopeguard", 1990 | ] 1991 | 1992 | [[package]] 1993 | name = "log" 1994 | version = "0.4.20" 1995 | source = "registry+https://github.com/rust-lang/crates.io-index" 1996 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 1997 | 1998 | [[package]] 1999 | name = "md-5" 2000 | version = "0.10.6" 2001 | source = "registry+https://github.com/rust-lang/crates.io-index" 2002 | checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" 2003 | dependencies = [ 2004 | "cfg-if", 2005 | "digest 0.10.7", 2006 | ] 2007 | 2008 | [[package]] 2009 | name = "memchr" 2010 | version = "2.6.4" 2011 | source = "registry+https://github.com/rust-lang/crates.io-index" 2012 | checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" 2013 | 2014 | [[package]] 2015 | name = "memoffset" 2016 | version = "0.9.0" 2017 | source = "registry+https://github.com/rust-lang/crates.io-index" 2018 | checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" 2019 | dependencies = [ 2020 | "autocfg", 2021 | ] 2022 | 2023 | [[package]] 2024 | name = "mime" 2025 | version = "0.3.17" 2026 | source = "registry+https://github.com/rust-lang/crates.io-index" 2027 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 2028 | 2029 | [[package]] 2030 | name = "miniz_oxide" 2031 | version = "0.7.1" 2032 | source = "registry+https://github.com/rust-lang/crates.io-index" 2033 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 2034 | dependencies = [ 2035 | "adler", 2036 | ] 2037 | 2038 | [[package]] 2039 | name = "mio" 2040 | version = "0.8.8" 2041 | source = "registry+https://github.com/rust-lang/crates.io-index" 2042 | checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" 2043 | dependencies = [ 2044 | "libc", 2045 | "wasi", 2046 | "windows-sys 0.48.0", 2047 | ] 2048 | 2049 | [[package]] 2050 | name = "new_debug_unreachable" 2051 | version = "1.0.4" 2052 | source = "registry+https://github.com/rust-lang/crates.io-index" 2053 | checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" 2054 | 2055 | [[package]] 2056 | name = "num-bigfloat" 2057 | version = "1.7.0" 2058 | source = "registry+https://github.com/rust-lang/crates.io-index" 2059 | checksum = "5783ebef81e0a6b81e701e022743692ba91af9bd84686595b4f44dbee6c249b9" 2060 | dependencies = [ 2061 | "num-traits", 2062 | "rand", 2063 | "serde", 2064 | ] 2065 | 2066 | [[package]] 2067 | name = "num-bigint" 2068 | version = "0.4.4" 2069 | source = "registry+https://github.com/rust-lang/crates.io-index" 2070 | checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" 2071 | dependencies = [ 2072 | "autocfg", 2073 | "num-integer", 2074 | "num-traits", 2075 | ] 2076 | 2077 | [[package]] 2078 | name = "num-integer" 2079 | version = "0.1.45" 2080 | source = "registry+https://github.com/rust-lang/crates.io-index" 2081 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 2082 | dependencies = [ 2083 | "autocfg", 2084 | "num-traits", 2085 | ] 2086 | 2087 | [[package]] 2088 | name = "num-traits" 2089 | version = "0.2.17" 2090 | source = "registry+https://github.com/rust-lang/crates.io-index" 2091 | checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" 2092 | dependencies = [ 2093 | "autocfg", 2094 | "libm", 2095 | ] 2096 | 2097 | [[package]] 2098 | name = "num_cpus" 2099 | version = "1.16.0" 2100 | source = "registry+https://github.com/rust-lang/crates.io-index" 2101 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 2102 | dependencies = [ 2103 | "hermit-abi", 2104 | "libc", 2105 | ] 2106 | 2107 | [[package]] 2108 | name = "num_enum" 2109 | version = "0.7.0" 2110 | source = "registry+https://github.com/rust-lang/crates.io-index" 2111 | checksum = "70bf6736f74634d299d00086f02986875b3c2d924781a6a2cb6c201e73da0ceb" 2112 | dependencies = [ 2113 | "num_enum_derive", 2114 | ] 2115 | 2116 | [[package]] 2117 | name = "num_enum_derive" 2118 | version = "0.7.0" 2119 | source = "registry+https://github.com/rust-lang/crates.io-index" 2120 | checksum = "56ea360eafe1022f7cc56cd7b869ed57330fb2453d0c7831d99b74c65d2f5597" 2121 | dependencies = [ 2122 | "proc-macro-crate", 2123 | "proc-macro2", 2124 | "quote", 2125 | "syn 2.0.38", 2126 | ] 2127 | 2128 | [[package]] 2129 | name = "number_prefix" 2130 | version = "0.4.0" 2131 | source = "registry+https://github.com/rust-lang/crates.io-index" 2132 | checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" 2133 | 2134 | [[package]] 2135 | name = "object" 2136 | version = "0.32.1" 2137 | source = "registry+https://github.com/rust-lang/crates.io-index" 2138 | checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" 2139 | dependencies = [ 2140 | "memchr", 2141 | ] 2142 | 2143 | [[package]] 2144 | name = "once_cell" 2145 | version = "1.18.0" 2146 | source = "registry+https://github.com/rust-lang/crates.io-index" 2147 | checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" 2148 | 2149 | [[package]] 2150 | name = "open-fastrlp" 2151 | version = "0.1.4" 2152 | source = "registry+https://github.com/rust-lang/crates.io-index" 2153 | checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" 2154 | dependencies = [ 2155 | "arrayvec", 2156 | "auto_impl", 2157 | "bytes", 2158 | "ethereum-types", 2159 | "open-fastrlp-derive", 2160 | ] 2161 | 2162 | [[package]] 2163 | name = "open-fastrlp-derive" 2164 | version = "0.1.1" 2165 | source = "registry+https://github.com/rust-lang/crates.io-index" 2166 | checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" 2167 | dependencies = [ 2168 | "bytes", 2169 | "proc-macro2", 2170 | "quote", 2171 | "syn 1.0.109", 2172 | ] 2173 | 2174 | [[package]] 2175 | name = "option-ext" 2176 | version = "0.2.0" 2177 | source = "registry+https://github.com/rust-lang/crates.io-index" 2178 | checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 2179 | 2180 | [[package]] 2181 | name = "parity-scale-codec" 2182 | version = "3.6.5" 2183 | source = "registry+https://github.com/rust-lang/crates.io-index" 2184 | checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" 2185 | dependencies = [ 2186 | "arrayvec", 2187 | "bitvec", 2188 | "byte-slice-cast", 2189 | "impl-trait-for-tuples", 2190 | "parity-scale-codec-derive", 2191 | "serde", 2192 | ] 2193 | 2194 | [[package]] 2195 | name = "parity-scale-codec-derive" 2196 | version = "3.6.5" 2197 | source = "registry+https://github.com/rust-lang/crates.io-index" 2198 | checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" 2199 | dependencies = [ 2200 | "proc-macro-crate", 2201 | "proc-macro2", 2202 | "quote", 2203 | "syn 1.0.109", 2204 | ] 2205 | 2206 | [[package]] 2207 | name = "parking_lot" 2208 | version = "0.12.1" 2209 | source = "registry+https://github.com/rust-lang/crates.io-index" 2210 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 2211 | dependencies = [ 2212 | "lock_api", 2213 | "parking_lot_core", 2214 | ] 2215 | 2216 | [[package]] 2217 | name = "parking_lot_core" 2218 | version = "0.9.8" 2219 | source = "registry+https://github.com/rust-lang/crates.io-index" 2220 | checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" 2221 | dependencies = [ 2222 | "cfg-if", 2223 | "libc", 2224 | "redox_syscall 0.3.5", 2225 | "smallvec", 2226 | "windows-targets 0.48.5", 2227 | ] 2228 | 2229 | [[package]] 2230 | name = "password-hash" 2231 | version = "0.4.2" 2232 | source = "registry+https://github.com/rust-lang/crates.io-index" 2233 | checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" 2234 | dependencies = [ 2235 | "base64ct", 2236 | "rand_core", 2237 | "subtle", 2238 | ] 2239 | 2240 | [[package]] 2241 | name = "paste" 2242 | version = "1.0.14" 2243 | source = "registry+https://github.com/rust-lang/crates.io-index" 2244 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 2245 | 2246 | [[package]] 2247 | name = "path-slash" 2248 | version = "0.2.1" 2249 | source = "registry+https://github.com/rust-lang/crates.io-index" 2250 | checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" 2251 | 2252 | [[package]] 2253 | name = "pbkdf2" 2254 | version = "0.11.0" 2255 | source = "registry+https://github.com/rust-lang/crates.io-index" 2256 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" 2257 | dependencies = [ 2258 | "digest 0.10.7", 2259 | "hmac", 2260 | "password-hash", 2261 | "sha2", 2262 | ] 2263 | 2264 | [[package]] 2265 | name = "pbkdf2" 2266 | version = "0.12.2" 2267 | source = "registry+https://github.com/rust-lang/crates.io-index" 2268 | checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" 2269 | dependencies = [ 2270 | "digest 0.10.7", 2271 | "hmac", 2272 | ] 2273 | 2274 | [[package]] 2275 | name = "pem" 2276 | version = "1.1.1" 2277 | source = "registry+https://github.com/rust-lang/crates.io-index" 2278 | checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" 2279 | dependencies = [ 2280 | "base64 0.13.1", 2281 | ] 2282 | 2283 | [[package]] 2284 | name = "percent-encoding" 2285 | version = "2.3.0" 2286 | source = "registry+https://github.com/rust-lang/crates.io-index" 2287 | checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" 2288 | 2289 | [[package]] 2290 | name = "pest" 2291 | version = "2.7.4" 2292 | source = "registry+https://github.com/rust-lang/crates.io-index" 2293 | checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" 2294 | dependencies = [ 2295 | "memchr", 2296 | "thiserror", 2297 | "ucd-trie", 2298 | ] 2299 | 2300 | [[package]] 2301 | name = "petgraph" 2302 | version = "0.6.4" 2303 | source = "registry+https://github.com/rust-lang/crates.io-index" 2304 | checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" 2305 | dependencies = [ 2306 | "fixedbitset", 2307 | "indexmap 2.0.2", 2308 | ] 2309 | 2310 | [[package]] 2311 | name = "pharos" 2312 | version = "0.5.3" 2313 | source = "registry+https://github.com/rust-lang/crates.io-index" 2314 | checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" 2315 | dependencies = [ 2316 | "futures", 2317 | "rustc_version 0.4.0", 2318 | ] 2319 | 2320 | [[package]] 2321 | name = "phf" 2322 | version = "0.11.2" 2323 | source = "registry+https://github.com/rust-lang/crates.io-index" 2324 | checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" 2325 | dependencies = [ 2326 | "phf_macros", 2327 | "phf_shared 0.11.2", 2328 | ] 2329 | 2330 | [[package]] 2331 | name = "phf_generator" 2332 | version = "0.11.2" 2333 | source = "registry+https://github.com/rust-lang/crates.io-index" 2334 | checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" 2335 | dependencies = [ 2336 | "phf_shared 0.11.2", 2337 | "rand", 2338 | ] 2339 | 2340 | [[package]] 2341 | name = "phf_macros" 2342 | version = "0.11.2" 2343 | source = "registry+https://github.com/rust-lang/crates.io-index" 2344 | checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" 2345 | dependencies = [ 2346 | "phf_generator", 2347 | "phf_shared 0.11.2", 2348 | "proc-macro2", 2349 | "quote", 2350 | "syn 2.0.38", 2351 | ] 2352 | 2353 | [[package]] 2354 | name = "phf_shared" 2355 | version = "0.10.0" 2356 | source = "registry+https://github.com/rust-lang/crates.io-index" 2357 | checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" 2358 | dependencies = [ 2359 | "siphasher", 2360 | ] 2361 | 2362 | [[package]] 2363 | name = "phf_shared" 2364 | version = "0.11.2" 2365 | source = "registry+https://github.com/rust-lang/crates.io-index" 2366 | checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" 2367 | dependencies = [ 2368 | "siphasher", 2369 | ] 2370 | 2371 | [[package]] 2372 | name = "pin-project" 2373 | version = "1.1.3" 2374 | source = "registry+https://github.com/rust-lang/crates.io-index" 2375 | checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" 2376 | dependencies = [ 2377 | "pin-project-internal", 2378 | ] 2379 | 2380 | [[package]] 2381 | name = "pin-project-internal" 2382 | version = "1.1.3" 2383 | source = "registry+https://github.com/rust-lang/crates.io-index" 2384 | checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" 2385 | dependencies = [ 2386 | "proc-macro2", 2387 | "quote", 2388 | "syn 2.0.38", 2389 | ] 2390 | 2391 | [[package]] 2392 | name = "pin-project-lite" 2393 | version = "0.2.13" 2394 | source = "registry+https://github.com/rust-lang/crates.io-index" 2395 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 2396 | 2397 | [[package]] 2398 | name = "pin-utils" 2399 | version = "0.1.0" 2400 | source = "registry+https://github.com/rust-lang/crates.io-index" 2401 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2402 | 2403 | [[package]] 2404 | name = "pkcs8" 2405 | version = "0.10.2" 2406 | source = "registry+https://github.com/rust-lang/crates.io-index" 2407 | checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 2408 | dependencies = [ 2409 | "der", 2410 | "spki", 2411 | ] 2412 | 2413 | [[package]] 2414 | name = "pkg-config" 2415 | version = "0.3.27" 2416 | source = "registry+https://github.com/rust-lang/crates.io-index" 2417 | checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" 2418 | 2419 | [[package]] 2420 | name = "portable-atomic" 2421 | version = "1.4.3" 2422 | source = "registry+https://github.com/rust-lang/crates.io-index" 2423 | checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b" 2424 | 2425 | [[package]] 2426 | name = "ppv-lite86" 2427 | version = "0.2.17" 2428 | source = "registry+https://github.com/rust-lang/crates.io-index" 2429 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2430 | 2431 | [[package]] 2432 | name = "precomputed-hash" 2433 | version = "0.1.1" 2434 | source = "registry+https://github.com/rust-lang/crates.io-index" 2435 | checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" 2436 | 2437 | [[package]] 2438 | name = "prettyplease" 2439 | version = "0.2.15" 2440 | source = "registry+https://github.com/rust-lang/crates.io-index" 2441 | checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" 2442 | dependencies = [ 2443 | "proc-macro2", 2444 | "syn 2.0.38", 2445 | ] 2446 | 2447 | [[package]] 2448 | name = "primitive-types" 2449 | version = "0.12.2" 2450 | source = "registry+https://github.com/rust-lang/crates.io-index" 2451 | checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" 2452 | dependencies = [ 2453 | "fixed-hash", 2454 | "impl-codec", 2455 | "impl-rlp", 2456 | "impl-serde", 2457 | "scale-info", 2458 | "uint", 2459 | ] 2460 | 2461 | [[package]] 2462 | name = "proc-macro-crate" 2463 | version = "1.3.1" 2464 | source = "registry+https://github.com/rust-lang/crates.io-index" 2465 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 2466 | dependencies = [ 2467 | "once_cell", 2468 | "toml_edit", 2469 | ] 2470 | 2471 | [[package]] 2472 | name = "proc-macro-error" 2473 | version = "1.0.4" 2474 | source = "registry+https://github.com/rust-lang/crates.io-index" 2475 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 2476 | dependencies = [ 2477 | "proc-macro-error-attr", 2478 | "proc-macro2", 2479 | "quote", 2480 | "syn 1.0.109", 2481 | "version_check", 2482 | ] 2483 | 2484 | [[package]] 2485 | name = "proc-macro-error-attr" 2486 | version = "1.0.4" 2487 | source = "registry+https://github.com/rust-lang/crates.io-index" 2488 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 2489 | dependencies = [ 2490 | "proc-macro2", 2491 | "quote", 2492 | "version_check", 2493 | ] 2494 | 2495 | [[package]] 2496 | name = "proc-macro2" 2497 | version = "1.0.69" 2498 | source = "registry+https://github.com/rust-lang/crates.io-index" 2499 | checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" 2500 | dependencies = [ 2501 | "unicode-ident", 2502 | ] 2503 | 2504 | [[package]] 2505 | name = "proptest" 2506 | version = "1.3.1" 2507 | source = "registry+https://github.com/rust-lang/crates.io-index" 2508 | checksum = "7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e" 2509 | dependencies = [ 2510 | "bitflags 2.4.0", 2511 | "lazy_static", 2512 | "num-traits", 2513 | "rand", 2514 | "rand_chacha", 2515 | "rand_xorshift", 2516 | "regex-syntax 0.7.5", 2517 | "unarray", 2518 | ] 2519 | 2520 | [[package]] 2521 | name = "quote" 2522 | version = "1.0.33" 2523 | source = "registry+https://github.com/rust-lang/crates.io-index" 2524 | checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" 2525 | dependencies = [ 2526 | "proc-macro2", 2527 | ] 2528 | 2529 | [[package]] 2530 | name = "radium" 2531 | version = "0.7.0" 2532 | source = "registry+https://github.com/rust-lang/crates.io-index" 2533 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 2534 | 2535 | [[package]] 2536 | name = "rand" 2537 | version = "0.8.5" 2538 | source = "registry+https://github.com/rust-lang/crates.io-index" 2539 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2540 | dependencies = [ 2541 | "libc", 2542 | "rand_chacha", 2543 | "rand_core", 2544 | ] 2545 | 2546 | [[package]] 2547 | name = "rand_chacha" 2548 | version = "0.3.1" 2549 | source = "registry+https://github.com/rust-lang/crates.io-index" 2550 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2551 | dependencies = [ 2552 | "ppv-lite86", 2553 | "rand_core", 2554 | ] 2555 | 2556 | [[package]] 2557 | name = "rand_core" 2558 | version = "0.6.4" 2559 | source = "registry+https://github.com/rust-lang/crates.io-index" 2560 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2561 | dependencies = [ 2562 | "getrandom", 2563 | ] 2564 | 2565 | [[package]] 2566 | name = "rand_xorshift" 2567 | version = "0.3.0" 2568 | source = "registry+https://github.com/rust-lang/crates.io-index" 2569 | checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" 2570 | dependencies = [ 2571 | "rand_core", 2572 | ] 2573 | 2574 | [[package]] 2575 | name = "rayon" 2576 | version = "1.8.0" 2577 | source = "registry+https://github.com/rust-lang/crates.io-index" 2578 | checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" 2579 | dependencies = [ 2580 | "either", 2581 | "rayon-core", 2582 | ] 2583 | 2584 | [[package]] 2585 | name = "rayon-core" 2586 | version = "1.12.0" 2587 | source = "registry+https://github.com/rust-lang/crates.io-index" 2588 | checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" 2589 | dependencies = [ 2590 | "crossbeam-deque", 2591 | "crossbeam-utils", 2592 | ] 2593 | 2594 | [[package]] 2595 | name = "redox_syscall" 2596 | version = "0.2.16" 2597 | source = "registry+https://github.com/rust-lang/crates.io-index" 2598 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 2599 | dependencies = [ 2600 | "bitflags 1.3.2", 2601 | ] 2602 | 2603 | [[package]] 2604 | name = "redox_syscall" 2605 | version = "0.3.5" 2606 | source = "registry+https://github.com/rust-lang/crates.io-index" 2607 | checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 2608 | dependencies = [ 2609 | "bitflags 1.3.2", 2610 | ] 2611 | 2612 | [[package]] 2613 | name = "redox_users" 2614 | version = "0.4.3" 2615 | source = "registry+https://github.com/rust-lang/crates.io-index" 2616 | checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" 2617 | dependencies = [ 2618 | "getrandom", 2619 | "redox_syscall 0.2.16", 2620 | "thiserror", 2621 | ] 2622 | 2623 | [[package]] 2624 | name = "regex" 2625 | version = "1.10.0" 2626 | source = "registry+https://github.com/rust-lang/crates.io-index" 2627 | checksum = "d119d7c7ca818f8a53c300863d4f87566aac09943aef5b355bb83969dae75d87" 2628 | dependencies = [ 2629 | "aho-corasick", 2630 | "memchr", 2631 | "regex-automata", 2632 | "regex-syntax 0.8.1", 2633 | ] 2634 | 2635 | [[package]] 2636 | name = "regex-automata" 2637 | version = "0.4.1" 2638 | source = "registry+https://github.com/rust-lang/crates.io-index" 2639 | checksum = "465c6fc0621e4abc4187a2bda0937bfd4f722c2730b29562e19689ea796c9a4b" 2640 | dependencies = [ 2641 | "aho-corasick", 2642 | "memchr", 2643 | "regex-syntax 0.8.1", 2644 | ] 2645 | 2646 | [[package]] 2647 | name = "regex-syntax" 2648 | version = "0.7.5" 2649 | source = "registry+https://github.com/rust-lang/crates.io-index" 2650 | checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" 2651 | 2652 | [[package]] 2653 | name = "regex-syntax" 2654 | version = "0.8.1" 2655 | source = "registry+https://github.com/rust-lang/crates.io-index" 2656 | checksum = "56d84fdd47036b038fc80dd333d10b6aab10d5d31f4a366e20014def75328d33" 2657 | 2658 | [[package]] 2659 | name = "reqwest" 2660 | version = "0.11.22" 2661 | source = "registry+https://github.com/rust-lang/crates.io-index" 2662 | checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" 2663 | dependencies = [ 2664 | "base64 0.21.4", 2665 | "bytes", 2666 | "encoding_rs", 2667 | "futures-core", 2668 | "futures-util", 2669 | "h2", 2670 | "http", 2671 | "http-body", 2672 | "hyper", 2673 | "hyper-rustls", 2674 | "ipnet", 2675 | "js-sys", 2676 | "log", 2677 | "mime", 2678 | "once_cell", 2679 | "percent-encoding", 2680 | "pin-project-lite", 2681 | "rustls", 2682 | "rustls-pemfile", 2683 | "serde", 2684 | "serde_json", 2685 | "serde_urlencoded", 2686 | "system-configuration", 2687 | "tokio", 2688 | "tokio-rustls", 2689 | "tower-service", 2690 | "url", 2691 | "wasm-bindgen", 2692 | "wasm-bindgen-futures", 2693 | "web-sys", 2694 | "webpki-roots", 2695 | "winreg", 2696 | ] 2697 | 2698 | [[package]] 2699 | name = "revm-playground" 2700 | version = "0.1.0" 2701 | dependencies = [ 2702 | "anyhow", 2703 | "auto_impl", 2704 | "bytes", 2705 | "cfmms", 2706 | "chrono", 2707 | "colored 2.0.4", 2708 | "dashmap", 2709 | "dotenv", 2710 | "ethers", 2711 | "ethers-contract", 2712 | "ethers-core", 2713 | "ethers-providers", 2714 | "fern", 2715 | "futures", 2716 | "hex", 2717 | "hex-literal", 2718 | "log", 2719 | "rand", 2720 | "tokio", 2721 | "tokio-stream", 2722 | ] 2723 | 2724 | [[package]] 2725 | name = "rfc6979" 2726 | version = "0.4.0" 2727 | source = "registry+https://github.com/rust-lang/crates.io-index" 2728 | checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" 2729 | dependencies = [ 2730 | "hmac", 2731 | "subtle", 2732 | ] 2733 | 2734 | [[package]] 2735 | name = "ring" 2736 | version = "0.16.20" 2737 | source = "registry+https://github.com/rust-lang/crates.io-index" 2738 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 2739 | dependencies = [ 2740 | "cc", 2741 | "libc", 2742 | "once_cell", 2743 | "spin", 2744 | "untrusted", 2745 | "web-sys", 2746 | "winapi", 2747 | ] 2748 | 2749 | [[package]] 2750 | name = "ripemd" 2751 | version = "0.1.3" 2752 | source = "registry+https://github.com/rust-lang/crates.io-index" 2753 | checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" 2754 | dependencies = [ 2755 | "digest 0.10.7", 2756 | ] 2757 | 2758 | [[package]] 2759 | name = "rlp" 2760 | version = "0.5.2" 2761 | source = "registry+https://github.com/rust-lang/crates.io-index" 2762 | checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" 2763 | dependencies = [ 2764 | "bytes", 2765 | "rlp-derive", 2766 | "rustc-hex", 2767 | ] 2768 | 2769 | [[package]] 2770 | name = "rlp-derive" 2771 | version = "0.1.0" 2772 | source = "registry+https://github.com/rust-lang/crates.io-index" 2773 | checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" 2774 | dependencies = [ 2775 | "proc-macro2", 2776 | "quote", 2777 | "syn 1.0.109", 2778 | ] 2779 | 2780 | [[package]] 2781 | name = "ruint" 2782 | version = "1.10.1" 2783 | source = "registry+https://github.com/rust-lang/crates.io-index" 2784 | checksum = "95294d6e3a6192f3aabf91c38f56505a625aa495533442744185a36d75a790c4" 2785 | dependencies = [ 2786 | "alloy-rlp", 2787 | "ark-ff 0.3.0", 2788 | "ark-ff 0.4.2", 2789 | "bytes", 2790 | "fastrlp", 2791 | "num-bigint", 2792 | "parity-scale-codec", 2793 | "primitive-types", 2794 | "proptest", 2795 | "rand", 2796 | "rlp", 2797 | "ruint-macro", 2798 | "serde", 2799 | "valuable", 2800 | "zeroize", 2801 | ] 2802 | 2803 | [[package]] 2804 | name = "ruint-macro" 2805 | version = "1.1.0" 2806 | source = "registry+https://github.com/rust-lang/crates.io-index" 2807 | checksum = "e666a5496a0b2186dbcd0ff6106e29e093c15591bde62c20d3842007c6978a09" 2808 | 2809 | [[package]] 2810 | name = "rustc-demangle" 2811 | version = "0.1.23" 2812 | source = "registry+https://github.com/rust-lang/crates.io-index" 2813 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 2814 | 2815 | [[package]] 2816 | name = "rustc-hex" 2817 | version = "2.1.0" 2818 | source = "registry+https://github.com/rust-lang/crates.io-index" 2819 | checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" 2820 | 2821 | [[package]] 2822 | name = "rustc_version" 2823 | version = "0.3.3" 2824 | source = "registry+https://github.com/rust-lang/crates.io-index" 2825 | checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" 2826 | dependencies = [ 2827 | "semver 0.11.0", 2828 | ] 2829 | 2830 | [[package]] 2831 | name = "rustc_version" 2832 | version = "0.4.0" 2833 | source = "registry+https://github.com/rust-lang/crates.io-index" 2834 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2835 | dependencies = [ 2836 | "semver 1.0.20", 2837 | ] 2838 | 2839 | [[package]] 2840 | name = "rustix" 2841 | version = "0.38.18" 2842 | source = "registry+https://github.com/rust-lang/crates.io-index" 2843 | checksum = "5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c" 2844 | dependencies = [ 2845 | "bitflags 2.4.0", 2846 | "errno", 2847 | "libc", 2848 | "linux-raw-sys", 2849 | "windows-sys 0.48.0", 2850 | ] 2851 | 2852 | [[package]] 2853 | name = "rustls" 2854 | version = "0.21.7" 2855 | source = "registry+https://github.com/rust-lang/crates.io-index" 2856 | checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" 2857 | dependencies = [ 2858 | "log", 2859 | "ring", 2860 | "rustls-webpki", 2861 | "sct", 2862 | ] 2863 | 2864 | [[package]] 2865 | name = "rustls-pemfile" 2866 | version = "1.0.3" 2867 | source = "registry+https://github.com/rust-lang/crates.io-index" 2868 | checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" 2869 | dependencies = [ 2870 | "base64 0.21.4", 2871 | ] 2872 | 2873 | [[package]] 2874 | name = "rustls-webpki" 2875 | version = "0.101.6" 2876 | source = "registry+https://github.com/rust-lang/crates.io-index" 2877 | checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" 2878 | dependencies = [ 2879 | "ring", 2880 | "untrusted", 2881 | ] 2882 | 2883 | [[package]] 2884 | name = "rustversion" 2885 | version = "1.0.14" 2886 | source = "registry+https://github.com/rust-lang/crates.io-index" 2887 | checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" 2888 | 2889 | [[package]] 2890 | name = "ryu" 2891 | version = "1.0.15" 2892 | source = "registry+https://github.com/rust-lang/crates.io-index" 2893 | checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" 2894 | 2895 | [[package]] 2896 | name = "salsa20" 2897 | version = "0.10.2" 2898 | source = "registry+https://github.com/rust-lang/crates.io-index" 2899 | checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" 2900 | dependencies = [ 2901 | "cipher", 2902 | ] 2903 | 2904 | [[package]] 2905 | name = "same-file" 2906 | version = "1.0.6" 2907 | source = "registry+https://github.com/rust-lang/crates.io-index" 2908 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2909 | dependencies = [ 2910 | "winapi-util", 2911 | ] 2912 | 2913 | [[package]] 2914 | name = "scale-info" 2915 | version = "2.9.0" 2916 | source = "registry+https://github.com/rust-lang/crates.io-index" 2917 | checksum = "35c0a159d0c45c12b20c5a844feb1fe4bea86e28f17b92a5f0c42193634d3782" 2918 | dependencies = [ 2919 | "cfg-if", 2920 | "derive_more", 2921 | "parity-scale-codec", 2922 | "scale-info-derive", 2923 | ] 2924 | 2925 | [[package]] 2926 | name = "scale-info-derive" 2927 | version = "2.9.0" 2928 | source = "registry+https://github.com/rust-lang/crates.io-index" 2929 | checksum = "912e55f6d20e0e80d63733872b40e1227c0bce1e1ab81ba67d696339bfd7fd29" 2930 | dependencies = [ 2931 | "proc-macro-crate", 2932 | "proc-macro2", 2933 | "quote", 2934 | "syn 1.0.109", 2935 | ] 2936 | 2937 | [[package]] 2938 | name = "scopeguard" 2939 | version = "1.2.0" 2940 | source = "registry+https://github.com/rust-lang/crates.io-index" 2941 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2942 | 2943 | [[package]] 2944 | name = "scrypt" 2945 | version = "0.10.0" 2946 | source = "registry+https://github.com/rust-lang/crates.io-index" 2947 | checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" 2948 | dependencies = [ 2949 | "hmac", 2950 | "pbkdf2 0.11.0", 2951 | "salsa20", 2952 | "sha2", 2953 | ] 2954 | 2955 | [[package]] 2956 | name = "sct" 2957 | version = "0.7.0" 2958 | source = "registry+https://github.com/rust-lang/crates.io-index" 2959 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 2960 | dependencies = [ 2961 | "ring", 2962 | "untrusted", 2963 | ] 2964 | 2965 | [[package]] 2966 | name = "sec1" 2967 | version = "0.7.3" 2968 | source = "registry+https://github.com/rust-lang/crates.io-index" 2969 | checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" 2970 | dependencies = [ 2971 | "base16ct", 2972 | "der", 2973 | "generic-array", 2974 | "pkcs8", 2975 | "subtle", 2976 | "zeroize", 2977 | ] 2978 | 2979 | [[package]] 2980 | name = "semver" 2981 | version = "0.11.0" 2982 | source = "registry+https://github.com/rust-lang/crates.io-index" 2983 | checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" 2984 | dependencies = [ 2985 | "semver-parser", 2986 | ] 2987 | 2988 | [[package]] 2989 | name = "semver" 2990 | version = "1.0.20" 2991 | source = "registry+https://github.com/rust-lang/crates.io-index" 2992 | checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" 2993 | dependencies = [ 2994 | "serde", 2995 | ] 2996 | 2997 | [[package]] 2998 | name = "semver-parser" 2999 | version = "0.10.2" 3000 | source = "registry+https://github.com/rust-lang/crates.io-index" 3001 | checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" 3002 | dependencies = [ 3003 | "pest", 3004 | ] 3005 | 3006 | [[package]] 3007 | name = "send_wrapper" 3008 | version = "0.4.0" 3009 | source = "registry+https://github.com/rust-lang/crates.io-index" 3010 | checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" 3011 | 3012 | [[package]] 3013 | name = "send_wrapper" 3014 | version = "0.6.0" 3015 | source = "registry+https://github.com/rust-lang/crates.io-index" 3016 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 3017 | 3018 | [[package]] 3019 | name = "serde" 3020 | version = "1.0.188" 3021 | source = "registry+https://github.com/rust-lang/crates.io-index" 3022 | checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" 3023 | dependencies = [ 3024 | "serde_derive", 3025 | ] 3026 | 3027 | [[package]] 3028 | name = "serde_derive" 3029 | version = "1.0.188" 3030 | source = "registry+https://github.com/rust-lang/crates.io-index" 3031 | checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" 3032 | dependencies = [ 3033 | "proc-macro2", 3034 | "quote", 3035 | "syn 2.0.38", 3036 | ] 3037 | 3038 | [[package]] 3039 | name = "serde_json" 3040 | version = "1.0.107" 3041 | source = "registry+https://github.com/rust-lang/crates.io-index" 3042 | checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" 3043 | dependencies = [ 3044 | "itoa", 3045 | "ryu", 3046 | "serde", 3047 | ] 3048 | 3049 | [[package]] 3050 | name = "serde_spanned" 3051 | version = "0.6.3" 3052 | source = "registry+https://github.com/rust-lang/crates.io-index" 3053 | checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" 3054 | dependencies = [ 3055 | "serde", 3056 | ] 3057 | 3058 | [[package]] 3059 | name = "serde_urlencoded" 3060 | version = "0.7.1" 3061 | source = "registry+https://github.com/rust-lang/crates.io-index" 3062 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 3063 | dependencies = [ 3064 | "form_urlencoded", 3065 | "itoa", 3066 | "ryu", 3067 | "serde", 3068 | ] 3069 | 3070 | [[package]] 3071 | name = "sha1" 3072 | version = "0.10.6" 3073 | source = "registry+https://github.com/rust-lang/crates.io-index" 3074 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 3075 | dependencies = [ 3076 | "cfg-if", 3077 | "cpufeatures", 3078 | "digest 0.10.7", 3079 | ] 3080 | 3081 | [[package]] 3082 | name = "sha2" 3083 | version = "0.10.8" 3084 | source = "registry+https://github.com/rust-lang/crates.io-index" 3085 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 3086 | dependencies = [ 3087 | "cfg-if", 3088 | "cpufeatures", 3089 | "digest 0.10.7", 3090 | ] 3091 | 3092 | [[package]] 3093 | name = "sha3" 3094 | version = "0.10.8" 3095 | source = "registry+https://github.com/rust-lang/crates.io-index" 3096 | checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" 3097 | dependencies = [ 3098 | "digest 0.10.7", 3099 | "keccak", 3100 | ] 3101 | 3102 | [[package]] 3103 | name = "signal-hook-registry" 3104 | version = "1.4.1" 3105 | source = "registry+https://github.com/rust-lang/crates.io-index" 3106 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 3107 | dependencies = [ 3108 | "libc", 3109 | ] 3110 | 3111 | [[package]] 3112 | name = "signature" 3113 | version = "2.1.0" 3114 | source = "registry+https://github.com/rust-lang/crates.io-index" 3115 | checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" 3116 | dependencies = [ 3117 | "digest 0.10.7", 3118 | "rand_core", 3119 | ] 3120 | 3121 | [[package]] 3122 | name = "simple_asn1" 3123 | version = "0.6.2" 3124 | source = "registry+https://github.com/rust-lang/crates.io-index" 3125 | checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" 3126 | dependencies = [ 3127 | "num-bigint", 3128 | "num-traits", 3129 | "thiserror", 3130 | "time", 3131 | ] 3132 | 3133 | [[package]] 3134 | name = "siphasher" 3135 | version = "0.3.11" 3136 | source = "registry+https://github.com/rust-lang/crates.io-index" 3137 | checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 3138 | 3139 | [[package]] 3140 | name = "slab" 3141 | version = "0.4.9" 3142 | source = "registry+https://github.com/rust-lang/crates.io-index" 3143 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 3144 | dependencies = [ 3145 | "autocfg", 3146 | ] 3147 | 3148 | [[package]] 3149 | name = "smallvec" 3150 | version = "1.11.1" 3151 | source = "registry+https://github.com/rust-lang/crates.io-index" 3152 | checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" 3153 | 3154 | [[package]] 3155 | name = "smol_str" 3156 | version = "0.2.0" 3157 | source = "registry+https://github.com/rust-lang/crates.io-index" 3158 | checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" 3159 | dependencies = [ 3160 | "serde", 3161 | ] 3162 | 3163 | [[package]] 3164 | name = "socket2" 3165 | version = "0.4.9" 3166 | source = "registry+https://github.com/rust-lang/crates.io-index" 3167 | checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" 3168 | dependencies = [ 3169 | "libc", 3170 | "winapi", 3171 | ] 3172 | 3173 | [[package]] 3174 | name = "socket2" 3175 | version = "0.5.4" 3176 | source = "registry+https://github.com/rust-lang/crates.io-index" 3177 | checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" 3178 | dependencies = [ 3179 | "libc", 3180 | "windows-sys 0.48.0", 3181 | ] 3182 | 3183 | [[package]] 3184 | name = "solang-parser" 3185 | version = "0.3.2" 3186 | source = "registry+https://github.com/rust-lang/crates.io-index" 3187 | checksum = "7cb9fa2fa2fa6837be8a2495486ff92e3ffe68a99b6eeba288e139efdd842457" 3188 | dependencies = [ 3189 | "itertools 0.11.0", 3190 | "lalrpop", 3191 | "lalrpop-util", 3192 | "phf", 3193 | "thiserror", 3194 | "unicode-xid", 3195 | ] 3196 | 3197 | [[package]] 3198 | name = "spin" 3199 | version = "0.5.2" 3200 | source = "registry+https://github.com/rust-lang/crates.io-index" 3201 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 3202 | 3203 | [[package]] 3204 | name = "spki" 3205 | version = "0.7.2" 3206 | source = "registry+https://github.com/rust-lang/crates.io-index" 3207 | checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" 3208 | dependencies = [ 3209 | "base64ct", 3210 | "der", 3211 | ] 3212 | 3213 | [[package]] 3214 | name = "static_assertions" 3215 | version = "1.1.0" 3216 | source = "registry+https://github.com/rust-lang/crates.io-index" 3217 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3218 | 3219 | [[package]] 3220 | name = "string_cache" 3221 | version = "0.8.7" 3222 | source = "registry+https://github.com/rust-lang/crates.io-index" 3223 | checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" 3224 | dependencies = [ 3225 | "new_debug_unreachable", 3226 | "once_cell", 3227 | "parking_lot", 3228 | "phf_shared 0.10.0", 3229 | "precomputed-hash", 3230 | ] 3231 | 3232 | [[package]] 3233 | name = "strum" 3234 | version = "0.25.0" 3235 | source = "registry+https://github.com/rust-lang/crates.io-index" 3236 | checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" 3237 | dependencies = [ 3238 | "strum_macros", 3239 | ] 3240 | 3241 | [[package]] 3242 | name = "strum_macros" 3243 | version = "0.25.2" 3244 | source = "registry+https://github.com/rust-lang/crates.io-index" 3245 | checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" 3246 | dependencies = [ 3247 | "heck", 3248 | "proc-macro2", 3249 | "quote", 3250 | "rustversion", 3251 | "syn 2.0.38", 3252 | ] 3253 | 3254 | [[package]] 3255 | name = "subtle" 3256 | version = "2.5.0" 3257 | source = "registry+https://github.com/rust-lang/crates.io-index" 3258 | checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" 3259 | 3260 | [[package]] 3261 | name = "svm-rs" 3262 | version = "0.3.0" 3263 | source = "registry+https://github.com/rust-lang/crates.io-index" 3264 | checksum = "597e3a746727984cb7ea2487b6a40726cad0dbe86628e7d429aa6b8c4c153db4" 3265 | dependencies = [ 3266 | "dirs", 3267 | "fs2", 3268 | "hex", 3269 | "once_cell", 3270 | "reqwest", 3271 | "semver 1.0.20", 3272 | "serde", 3273 | "serde_json", 3274 | "sha2", 3275 | "thiserror", 3276 | "url", 3277 | "zip", 3278 | ] 3279 | 3280 | [[package]] 3281 | name = "syn" 3282 | version = "1.0.109" 3283 | source = "registry+https://github.com/rust-lang/crates.io-index" 3284 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 3285 | dependencies = [ 3286 | "proc-macro2", 3287 | "quote", 3288 | "unicode-ident", 3289 | ] 3290 | 3291 | [[package]] 3292 | name = "syn" 3293 | version = "2.0.38" 3294 | source = "registry+https://github.com/rust-lang/crates.io-index" 3295 | checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" 3296 | dependencies = [ 3297 | "proc-macro2", 3298 | "quote", 3299 | "unicode-ident", 3300 | ] 3301 | 3302 | [[package]] 3303 | name = "system-configuration" 3304 | version = "0.5.1" 3305 | source = "registry+https://github.com/rust-lang/crates.io-index" 3306 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 3307 | dependencies = [ 3308 | "bitflags 1.3.2", 3309 | "core-foundation", 3310 | "system-configuration-sys", 3311 | ] 3312 | 3313 | [[package]] 3314 | name = "system-configuration-sys" 3315 | version = "0.5.0" 3316 | source = "registry+https://github.com/rust-lang/crates.io-index" 3317 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 3318 | dependencies = [ 3319 | "core-foundation-sys", 3320 | "libc", 3321 | ] 3322 | 3323 | [[package]] 3324 | name = "tap" 3325 | version = "1.0.1" 3326 | source = "registry+https://github.com/rust-lang/crates.io-index" 3327 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 3328 | 3329 | [[package]] 3330 | name = "tempfile" 3331 | version = "3.8.0" 3332 | source = "registry+https://github.com/rust-lang/crates.io-index" 3333 | checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" 3334 | dependencies = [ 3335 | "cfg-if", 3336 | "fastrand", 3337 | "redox_syscall 0.3.5", 3338 | "rustix", 3339 | "windows-sys 0.48.0", 3340 | ] 3341 | 3342 | [[package]] 3343 | name = "term" 3344 | version = "0.7.0" 3345 | source = "registry+https://github.com/rust-lang/crates.io-index" 3346 | checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" 3347 | dependencies = [ 3348 | "dirs-next", 3349 | "rustversion", 3350 | "winapi", 3351 | ] 3352 | 3353 | [[package]] 3354 | name = "thiserror" 3355 | version = "1.0.49" 3356 | source = "registry+https://github.com/rust-lang/crates.io-index" 3357 | checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" 3358 | dependencies = [ 3359 | "thiserror-impl", 3360 | ] 3361 | 3362 | [[package]] 3363 | name = "thiserror-impl" 3364 | version = "1.0.49" 3365 | source = "registry+https://github.com/rust-lang/crates.io-index" 3366 | checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" 3367 | dependencies = [ 3368 | "proc-macro2", 3369 | "quote", 3370 | "syn 2.0.38", 3371 | ] 3372 | 3373 | [[package]] 3374 | name = "time" 3375 | version = "0.3.29" 3376 | source = "registry+https://github.com/rust-lang/crates.io-index" 3377 | checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" 3378 | dependencies = [ 3379 | "deranged", 3380 | "itoa", 3381 | "serde", 3382 | "time-core", 3383 | "time-macros", 3384 | ] 3385 | 3386 | [[package]] 3387 | name = "time-core" 3388 | version = "0.1.2" 3389 | source = "registry+https://github.com/rust-lang/crates.io-index" 3390 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 3391 | 3392 | [[package]] 3393 | name = "time-macros" 3394 | version = "0.2.15" 3395 | source = "registry+https://github.com/rust-lang/crates.io-index" 3396 | checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" 3397 | dependencies = [ 3398 | "time-core", 3399 | ] 3400 | 3401 | [[package]] 3402 | name = "tiny-keccak" 3403 | version = "2.0.2" 3404 | source = "registry+https://github.com/rust-lang/crates.io-index" 3405 | checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" 3406 | dependencies = [ 3407 | "crunchy", 3408 | ] 3409 | 3410 | [[package]] 3411 | name = "tinyvec" 3412 | version = "1.6.0" 3413 | source = "registry+https://github.com/rust-lang/crates.io-index" 3414 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 3415 | dependencies = [ 3416 | "tinyvec_macros", 3417 | ] 3418 | 3419 | [[package]] 3420 | name = "tinyvec_macros" 3421 | version = "0.1.1" 3422 | source = "registry+https://github.com/rust-lang/crates.io-index" 3423 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3424 | 3425 | [[package]] 3426 | name = "tokio" 3427 | version = "1.33.0" 3428 | source = "registry+https://github.com/rust-lang/crates.io-index" 3429 | checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" 3430 | dependencies = [ 3431 | "backtrace", 3432 | "bytes", 3433 | "libc", 3434 | "mio", 3435 | "num_cpus", 3436 | "parking_lot", 3437 | "pin-project-lite", 3438 | "signal-hook-registry", 3439 | "socket2 0.5.4", 3440 | "tokio-macros", 3441 | "windows-sys 0.48.0", 3442 | ] 3443 | 3444 | [[package]] 3445 | name = "tokio-macros" 3446 | version = "2.1.0" 3447 | source = "registry+https://github.com/rust-lang/crates.io-index" 3448 | checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" 3449 | dependencies = [ 3450 | "proc-macro2", 3451 | "quote", 3452 | "syn 2.0.38", 3453 | ] 3454 | 3455 | [[package]] 3456 | name = "tokio-rustls" 3457 | version = "0.24.1" 3458 | source = "registry+https://github.com/rust-lang/crates.io-index" 3459 | checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" 3460 | dependencies = [ 3461 | "rustls", 3462 | "tokio", 3463 | ] 3464 | 3465 | [[package]] 3466 | name = "tokio-stream" 3467 | version = "0.1.14" 3468 | source = "registry+https://github.com/rust-lang/crates.io-index" 3469 | checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" 3470 | dependencies = [ 3471 | "futures-core", 3472 | "pin-project-lite", 3473 | "tokio", 3474 | "tokio-util", 3475 | ] 3476 | 3477 | [[package]] 3478 | name = "tokio-tungstenite" 3479 | version = "0.20.1" 3480 | source = "registry+https://github.com/rust-lang/crates.io-index" 3481 | checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" 3482 | dependencies = [ 3483 | "futures-util", 3484 | "log", 3485 | "rustls", 3486 | "tokio", 3487 | "tokio-rustls", 3488 | "tungstenite", 3489 | "webpki-roots", 3490 | ] 3491 | 3492 | [[package]] 3493 | name = "tokio-util" 3494 | version = "0.7.9" 3495 | source = "registry+https://github.com/rust-lang/crates.io-index" 3496 | checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" 3497 | dependencies = [ 3498 | "bytes", 3499 | "futures-core", 3500 | "futures-sink", 3501 | "pin-project-lite", 3502 | "tokio", 3503 | "tracing", 3504 | ] 3505 | 3506 | [[package]] 3507 | name = "toml" 3508 | version = "0.7.8" 3509 | source = "registry+https://github.com/rust-lang/crates.io-index" 3510 | checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" 3511 | dependencies = [ 3512 | "serde", 3513 | "serde_spanned", 3514 | "toml_datetime", 3515 | "toml_edit", 3516 | ] 3517 | 3518 | [[package]] 3519 | name = "toml_datetime" 3520 | version = "0.6.3" 3521 | source = "registry+https://github.com/rust-lang/crates.io-index" 3522 | checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 3523 | dependencies = [ 3524 | "serde", 3525 | ] 3526 | 3527 | [[package]] 3528 | name = "toml_edit" 3529 | version = "0.19.15" 3530 | source = "registry+https://github.com/rust-lang/crates.io-index" 3531 | checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" 3532 | dependencies = [ 3533 | "indexmap 2.0.2", 3534 | "serde", 3535 | "serde_spanned", 3536 | "toml_datetime", 3537 | "winnow", 3538 | ] 3539 | 3540 | [[package]] 3541 | name = "tower-service" 3542 | version = "0.3.2" 3543 | source = "registry+https://github.com/rust-lang/crates.io-index" 3544 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 3545 | 3546 | [[package]] 3547 | name = "tracing" 3548 | version = "0.1.37" 3549 | source = "registry+https://github.com/rust-lang/crates.io-index" 3550 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 3551 | dependencies = [ 3552 | "cfg-if", 3553 | "pin-project-lite", 3554 | "tracing-attributes", 3555 | "tracing-core", 3556 | ] 3557 | 3558 | [[package]] 3559 | name = "tracing-attributes" 3560 | version = "0.1.26" 3561 | source = "registry+https://github.com/rust-lang/crates.io-index" 3562 | checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" 3563 | dependencies = [ 3564 | "proc-macro2", 3565 | "quote", 3566 | "syn 2.0.38", 3567 | ] 3568 | 3569 | [[package]] 3570 | name = "tracing-core" 3571 | version = "0.1.31" 3572 | source = "registry+https://github.com/rust-lang/crates.io-index" 3573 | checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" 3574 | dependencies = [ 3575 | "once_cell", 3576 | ] 3577 | 3578 | [[package]] 3579 | name = "tracing-futures" 3580 | version = "0.2.5" 3581 | source = "registry+https://github.com/rust-lang/crates.io-index" 3582 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 3583 | dependencies = [ 3584 | "pin-project", 3585 | "tracing", 3586 | ] 3587 | 3588 | [[package]] 3589 | name = "try-lock" 3590 | version = "0.2.4" 3591 | source = "registry+https://github.com/rust-lang/crates.io-index" 3592 | checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 3593 | 3594 | [[package]] 3595 | name = "tungstenite" 3596 | version = "0.20.1" 3597 | source = "registry+https://github.com/rust-lang/crates.io-index" 3598 | checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" 3599 | dependencies = [ 3600 | "byteorder", 3601 | "bytes", 3602 | "data-encoding", 3603 | "http", 3604 | "httparse", 3605 | "log", 3606 | "rand", 3607 | "rustls", 3608 | "sha1", 3609 | "thiserror", 3610 | "url", 3611 | "utf-8", 3612 | ] 3613 | 3614 | [[package]] 3615 | name = "typenum" 3616 | version = "1.17.0" 3617 | source = "registry+https://github.com/rust-lang/crates.io-index" 3618 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 3619 | 3620 | [[package]] 3621 | name = "ucd-trie" 3622 | version = "0.1.6" 3623 | source = "registry+https://github.com/rust-lang/crates.io-index" 3624 | checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" 3625 | 3626 | [[package]] 3627 | name = "uint" 3628 | version = "0.9.5" 3629 | source = "registry+https://github.com/rust-lang/crates.io-index" 3630 | checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" 3631 | dependencies = [ 3632 | "byteorder", 3633 | "crunchy", 3634 | "hex", 3635 | "static_assertions", 3636 | ] 3637 | 3638 | [[package]] 3639 | name = "unarray" 3640 | version = "0.1.4" 3641 | source = "registry+https://github.com/rust-lang/crates.io-index" 3642 | checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" 3643 | 3644 | [[package]] 3645 | name = "unicode-bidi" 3646 | version = "0.3.13" 3647 | source = "registry+https://github.com/rust-lang/crates.io-index" 3648 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 3649 | 3650 | [[package]] 3651 | name = "unicode-ident" 3652 | version = "1.0.12" 3653 | source = "registry+https://github.com/rust-lang/crates.io-index" 3654 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 3655 | 3656 | [[package]] 3657 | name = "unicode-normalization" 3658 | version = "0.1.22" 3659 | source = "registry+https://github.com/rust-lang/crates.io-index" 3660 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 3661 | dependencies = [ 3662 | "tinyvec", 3663 | ] 3664 | 3665 | [[package]] 3666 | name = "unicode-width" 3667 | version = "0.1.11" 3668 | source = "registry+https://github.com/rust-lang/crates.io-index" 3669 | checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" 3670 | 3671 | [[package]] 3672 | name = "unicode-xid" 3673 | version = "0.2.4" 3674 | source = "registry+https://github.com/rust-lang/crates.io-index" 3675 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 3676 | 3677 | [[package]] 3678 | name = "uniswap_v3_math" 3679 | version = "0.2.26" 3680 | source = "registry+https://github.com/rust-lang/crates.io-index" 3681 | checksum = "684d41b0464b275f63364477efb9260ea2c53e8203e841edc58422b65cba509e" 3682 | dependencies = [ 3683 | "ethers", 3684 | "ruint", 3685 | "thiserror", 3686 | ] 3687 | 3688 | [[package]] 3689 | name = "untrusted" 3690 | version = "0.7.1" 3691 | source = "registry+https://github.com/rust-lang/crates.io-index" 3692 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 3693 | 3694 | [[package]] 3695 | name = "url" 3696 | version = "2.4.1" 3697 | source = "registry+https://github.com/rust-lang/crates.io-index" 3698 | checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" 3699 | dependencies = [ 3700 | "form_urlencoded", 3701 | "idna", 3702 | "percent-encoding", 3703 | ] 3704 | 3705 | [[package]] 3706 | name = "utf-8" 3707 | version = "0.7.6" 3708 | source = "registry+https://github.com/rust-lang/crates.io-index" 3709 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 3710 | 3711 | [[package]] 3712 | name = "uuid" 3713 | version = "0.8.2" 3714 | source = "registry+https://github.com/rust-lang/crates.io-index" 3715 | checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" 3716 | dependencies = [ 3717 | "getrandom", 3718 | "serde", 3719 | ] 3720 | 3721 | [[package]] 3722 | name = "valuable" 3723 | version = "0.1.0" 3724 | source = "registry+https://github.com/rust-lang/crates.io-index" 3725 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 3726 | 3727 | [[package]] 3728 | name = "version_check" 3729 | version = "0.9.4" 3730 | source = "registry+https://github.com/rust-lang/crates.io-index" 3731 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 3732 | 3733 | [[package]] 3734 | name = "walkdir" 3735 | version = "2.4.0" 3736 | source = "registry+https://github.com/rust-lang/crates.io-index" 3737 | checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" 3738 | dependencies = [ 3739 | "same-file", 3740 | "winapi-util", 3741 | ] 3742 | 3743 | [[package]] 3744 | name = "want" 3745 | version = "0.3.1" 3746 | source = "registry+https://github.com/rust-lang/crates.io-index" 3747 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 3748 | dependencies = [ 3749 | "try-lock", 3750 | ] 3751 | 3752 | [[package]] 3753 | name = "wasi" 3754 | version = "0.11.0+wasi-snapshot-preview1" 3755 | source = "registry+https://github.com/rust-lang/crates.io-index" 3756 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 3757 | 3758 | [[package]] 3759 | name = "wasm-bindgen" 3760 | version = "0.2.87" 3761 | source = "registry+https://github.com/rust-lang/crates.io-index" 3762 | checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" 3763 | dependencies = [ 3764 | "cfg-if", 3765 | "wasm-bindgen-macro", 3766 | ] 3767 | 3768 | [[package]] 3769 | name = "wasm-bindgen-backend" 3770 | version = "0.2.87" 3771 | source = "registry+https://github.com/rust-lang/crates.io-index" 3772 | checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" 3773 | dependencies = [ 3774 | "bumpalo", 3775 | "log", 3776 | "once_cell", 3777 | "proc-macro2", 3778 | "quote", 3779 | "syn 2.0.38", 3780 | "wasm-bindgen-shared", 3781 | ] 3782 | 3783 | [[package]] 3784 | name = "wasm-bindgen-futures" 3785 | version = "0.4.37" 3786 | source = "registry+https://github.com/rust-lang/crates.io-index" 3787 | checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03" 3788 | dependencies = [ 3789 | "cfg-if", 3790 | "js-sys", 3791 | "wasm-bindgen", 3792 | "web-sys", 3793 | ] 3794 | 3795 | [[package]] 3796 | name = "wasm-bindgen-macro" 3797 | version = "0.2.87" 3798 | source = "registry+https://github.com/rust-lang/crates.io-index" 3799 | checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" 3800 | dependencies = [ 3801 | "quote", 3802 | "wasm-bindgen-macro-support", 3803 | ] 3804 | 3805 | [[package]] 3806 | name = "wasm-bindgen-macro-support" 3807 | version = "0.2.87" 3808 | source = "registry+https://github.com/rust-lang/crates.io-index" 3809 | checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" 3810 | dependencies = [ 3811 | "proc-macro2", 3812 | "quote", 3813 | "syn 2.0.38", 3814 | "wasm-bindgen-backend", 3815 | "wasm-bindgen-shared", 3816 | ] 3817 | 3818 | [[package]] 3819 | name = "wasm-bindgen-shared" 3820 | version = "0.2.87" 3821 | source = "registry+https://github.com/rust-lang/crates.io-index" 3822 | checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" 3823 | 3824 | [[package]] 3825 | name = "web-sys" 3826 | version = "0.3.64" 3827 | source = "registry+https://github.com/rust-lang/crates.io-index" 3828 | checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" 3829 | dependencies = [ 3830 | "js-sys", 3831 | "wasm-bindgen", 3832 | ] 3833 | 3834 | [[package]] 3835 | name = "webpki-roots" 3836 | version = "0.25.2" 3837 | source = "registry+https://github.com/rust-lang/crates.io-index" 3838 | checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" 3839 | 3840 | [[package]] 3841 | name = "winapi" 3842 | version = "0.3.9" 3843 | source = "registry+https://github.com/rust-lang/crates.io-index" 3844 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3845 | dependencies = [ 3846 | "winapi-i686-pc-windows-gnu", 3847 | "winapi-x86_64-pc-windows-gnu", 3848 | ] 3849 | 3850 | [[package]] 3851 | name = "winapi-i686-pc-windows-gnu" 3852 | version = "0.4.0" 3853 | source = "registry+https://github.com/rust-lang/crates.io-index" 3854 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3855 | 3856 | [[package]] 3857 | name = "winapi-util" 3858 | version = "0.1.6" 3859 | source = "registry+https://github.com/rust-lang/crates.io-index" 3860 | checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" 3861 | dependencies = [ 3862 | "winapi", 3863 | ] 3864 | 3865 | [[package]] 3866 | name = "winapi-x86_64-pc-windows-gnu" 3867 | version = "0.4.0" 3868 | source = "registry+https://github.com/rust-lang/crates.io-index" 3869 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3870 | 3871 | [[package]] 3872 | name = "windows" 3873 | version = "0.48.0" 3874 | source = "registry+https://github.com/rust-lang/crates.io-index" 3875 | checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" 3876 | dependencies = [ 3877 | "windows-targets 0.48.5", 3878 | ] 3879 | 3880 | [[package]] 3881 | name = "windows-sys" 3882 | version = "0.45.0" 3883 | source = "registry+https://github.com/rust-lang/crates.io-index" 3884 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 3885 | dependencies = [ 3886 | "windows-targets 0.42.2", 3887 | ] 3888 | 3889 | [[package]] 3890 | name = "windows-sys" 3891 | version = "0.48.0" 3892 | source = "registry+https://github.com/rust-lang/crates.io-index" 3893 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3894 | dependencies = [ 3895 | "windows-targets 0.48.5", 3896 | ] 3897 | 3898 | [[package]] 3899 | name = "windows-targets" 3900 | version = "0.42.2" 3901 | source = "registry+https://github.com/rust-lang/crates.io-index" 3902 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 3903 | dependencies = [ 3904 | "windows_aarch64_gnullvm 0.42.2", 3905 | "windows_aarch64_msvc 0.42.2", 3906 | "windows_i686_gnu 0.42.2", 3907 | "windows_i686_msvc 0.42.2", 3908 | "windows_x86_64_gnu 0.42.2", 3909 | "windows_x86_64_gnullvm 0.42.2", 3910 | "windows_x86_64_msvc 0.42.2", 3911 | ] 3912 | 3913 | [[package]] 3914 | name = "windows-targets" 3915 | version = "0.48.5" 3916 | source = "registry+https://github.com/rust-lang/crates.io-index" 3917 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 3918 | dependencies = [ 3919 | "windows_aarch64_gnullvm 0.48.5", 3920 | "windows_aarch64_msvc 0.48.5", 3921 | "windows_i686_gnu 0.48.5", 3922 | "windows_i686_msvc 0.48.5", 3923 | "windows_x86_64_gnu 0.48.5", 3924 | "windows_x86_64_gnullvm 0.48.5", 3925 | "windows_x86_64_msvc 0.48.5", 3926 | ] 3927 | 3928 | [[package]] 3929 | name = "windows_aarch64_gnullvm" 3930 | version = "0.42.2" 3931 | source = "registry+https://github.com/rust-lang/crates.io-index" 3932 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 3933 | 3934 | [[package]] 3935 | name = "windows_aarch64_gnullvm" 3936 | version = "0.48.5" 3937 | source = "registry+https://github.com/rust-lang/crates.io-index" 3938 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 3939 | 3940 | [[package]] 3941 | name = "windows_aarch64_msvc" 3942 | version = "0.42.2" 3943 | source = "registry+https://github.com/rust-lang/crates.io-index" 3944 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 3945 | 3946 | [[package]] 3947 | name = "windows_aarch64_msvc" 3948 | version = "0.48.5" 3949 | source = "registry+https://github.com/rust-lang/crates.io-index" 3950 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 3951 | 3952 | [[package]] 3953 | name = "windows_i686_gnu" 3954 | version = "0.42.2" 3955 | source = "registry+https://github.com/rust-lang/crates.io-index" 3956 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 3957 | 3958 | [[package]] 3959 | name = "windows_i686_gnu" 3960 | version = "0.48.5" 3961 | source = "registry+https://github.com/rust-lang/crates.io-index" 3962 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 3963 | 3964 | [[package]] 3965 | name = "windows_i686_msvc" 3966 | version = "0.42.2" 3967 | source = "registry+https://github.com/rust-lang/crates.io-index" 3968 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 3969 | 3970 | [[package]] 3971 | name = "windows_i686_msvc" 3972 | version = "0.48.5" 3973 | source = "registry+https://github.com/rust-lang/crates.io-index" 3974 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 3975 | 3976 | [[package]] 3977 | name = "windows_x86_64_gnu" 3978 | version = "0.42.2" 3979 | source = "registry+https://github.com/rust-lang/crates.io-index" 3980 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 3981 | 3982 | [[package]] 3983 | name = "windows_x86_64_gnu" 3984 | version = "0.48.5" 3985 | source = "registry+https://github.com/rust-lang/crates.io-index" 3986 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 3987 | 3988 | [[package]] 3989 | name = "windows_x86_64_gnullvm" 3990 | version = "0.42.2" 3991 | source = "registry+https://github.com/rust-lang/crates.io-index" 3992 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 3993 | 3994 | [[package]] 3995 | name = "windows_x86_64_gnullvm" 3996 | version = "0.48.5" 3997 | source = "registry+https://github.com/rust-lang/crates.io-index" 3998 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 3999 | 4000 | [[package]] 4001 | name = "windows_x86_64_msvc" 4002 | version = "0.42.2" 4003 | source = "registry+https://github.com/rust-lang/crates.io-index" 4004 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 4005 | 4006 | [[package]] 4007 | name = "windows_x86_64_msvc" 4008 | version = "0.48.5" 4009 | source = "registry+https://github.com/rust-lang/crates.io-index" 4010 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 4011 | 4012 | [[package]] 4013 | name = "winnow" 4014 | version = "0.5.16" 4015 | source = "registry+https://github.com/rust-lang/crates.io-index" 4016 | checksum = "037711d82167854aff2018dfd193aa0fef5370f456732f0d5a0c59b0f1b4b907" 4017 | dependencies = [ 4018 | "memchr", 4019 | ] 4020 | 4021 | [[package]] 4022 | name = "winreg" 4023 | version = "0.50.0" 4024 | source = "registry+https://github.com/rust-lang/crates.io-index" 4025 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 4026 | dependencies = [ 4027 | "cfg-if", 4028 | "windows-sys 0.48.0", 4029 | ] 4030 | 4031 | [[package]] 4032 | name = "ws_stream_wasm" 4033 | version = "0.7.4" 4034 | source = "registry+https://github.com/rust-lang/crates.io-index" 4035 | checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" 4036 | dependencies = [ 4037 | "async_io_stream", 4038 | "futures", 4039 | "js-sys", 4040 | "log", 4041 | "pharos", 4042 | "rustc_version 0.4.0", 4043 | "send_wrapper 0.6.0", 4044 | "thiserror", 4045 | "wasm-bindgen", 4046 | "wasm-bindgen-futures", 4047 | "web-sys", 4048 | ] 4049 | 4050 | [[package]] 4051 | name = "wyz" 4052 | version = "0.5.1" 4053 | source = "registry+https://github.com/rust-lang/crates.io-index" 4054 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 4055 | dependencies = [ 4056 | "tap", 4057 | ] 4058 | 4059 | [[package]] 4060 | name = "yansi" 4061 | version = "0.5.1" 4062 | source = "registry+https://github.com/rust-lang/crates.io-index" 4063 | checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" 4064 | 4065 | [[package]] 4066 | name = "zeroize" 4067 | version = "1.6.0" 4068 | source = "registry+https://github.com/rust-lang/crates.io-index" 4069 | checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" 4070 | dependencies = [ 4071 | "zeroize_derive", 4072 | ] 4073 | 4074 | [[package]] 4075 | name = "zeroize_derive" 4076 | version = "1.4.2" 4077 | source = "registry+https://github.com/rust-lang/crates.io-index" 4078 | checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" 4079 | dependencies = [ 4080 | "proc-macro2", 4081 | "quote", 4082 | "syn 2.0.38", 4083 | ] 4084 | 4085 | [[package]] 4086 | name = "zip" 4087 | version = "0.6.6" 4088 | source = "registry+https://github.com/rust-lang/crates.io-index" 4089 | checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" 4090 | dependencies = [ 4091 | "aes", 4092 | "byteorder", 4093 | "bzip2", 4094 | "constant_time_eq", 4095 | "crc32fast", 4096 | "crossbeam-utils", 4097 | "flate2", 4098 | "hmac", 4099 | "pbkdf2 0.11.0", 4100 | "sha1", 4101 | "time", 4102 | "zstd", 4103 | ] 4104 | 4105 | [[package]] 4106 | name = "zstd" 4107 | version = "0.11.2+zstd.1.5.2" 4108 | source = "registry+https://github.com/rust-lang/crates.io-index" 4109 | checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" 4110 | dependencies = [ 4111 | "zstd-safe", 4112 | ] 4113 | 4114 | [[package]] 4115 | name = "zstd-safe" 4116 | version = "5.0.2+zstd.1.5.2" 4117 | source = "registry+https://github.com/rust-lang/crates.io-index" 4118 | checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" 4119 | dependencies = [ 4120 | "libc", 4121 | "zstd-sys", 4122 | ] 4123 | 4124 | [[package]] 4125 | name = "zstd-sys" 4126 | version = "2.0.9+zstd.1.5.5" 4127 | source = "registry+https://github.com/rust-lang/crates.io-index" 4128 | checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" 4129 | dependencies = [ 4130 | "cc", 4131 | "pkg-config", 4132 | ] 4133 | -------------------------------------------------------------------------------- /rust/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "revm-playground" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | rand = "0.8.5" 8 | anyhow = "1.0.71" 9 | dashmap = "5.4.0" 10 | hex-literal = "0.4" 11 | hex = "0.4.3" 12 | bytes = "1.4.0" 13 | dotenv = "0.15.0" 14 | auto_impl = { version = "1.1", default-features = false } 15 | 16 | # ethers 17 | ethers-providers = "2.0" 18 | ethers-core = "2.0" 19 | ethers-contract = { version = "2.0", default-features = false } 20 | ethers = {version = "2.0", features = ["abigen", "ws", "rustls"]} 21 | 22 | # async 23 | futures = "0.3.27" 24 | tokio = { version = "1.28", features = ["full"] } 25 | tokio-stream = { version = "0.1", features = ['sync'] } 26 | 27 | # logging 28 | log = "0.4.17" 29 | fern = {version = "0.6.2", features = ["colored"]} 30 | chrono = "0.4.23" 31 | colored = "2.0.0" 32 | 33 | # github 34 | cfmms = { git = "https://github.com/0xKitsune/cfmms-rs.git" } -------------------------------------------------------------------------------- /rust/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod trace; 2 | pub mod utils; 3 | -------------------------------------------------------------------------------- /rust/src/main.rs: -------------------------------------------------------------------------------- 1 | use anyhow::{Ok, Result}; 2 | use fern::colors::{Color, ColoredLevelConfig}; 3 | use log::LevelFilter; 4 | 5 | use revm_playground::trace::mempool_watching; 6 | 7 | // Just some logger setup to prettify console prints 8 | pub fn setup_logger() -> Result<()> { 9 | let colors = ColoredLevelConfig { 10 | trace: Color::Cyan, 11 | debug: Color::Magenta, 12 | info: Color::Green, 13 | warn: Color::Red, 14 | error: Color::BrightRed, 15 | ..ColoredLevelConfig::new() 16 | }; 17 | 18 | fern::Dispatch::new() 19 | .format(move |out, message, record| { 20 | out.finish(format_args!( 21 | "{}[{}] {}", 22 | chrono::Local::now().format("[%H:%M:%S]"), 23 | colors.color(record.level()), 24 | message 25 | )) 26 | }) 27 | .chain(std::io::stdout()) 28 | .level(log::LevelFilter::Error) 29 | .level_for("revm_playground", LevelFilter::Info) 30 | .apply()?; 31 | 32 | Ok(()) 33 | } 34 | 35 | #[tokio::main] 36 | async fn main() -> Result<()> { 37 | dotenv::dotenv().ok(); 38 | setup_logger()?; 39 | 40 | let weth = String::from("0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"); 41 | mempool_watching(weth).await?; 42 | 43 | Ok(()) 44 | } 45 | -------------------------------------------------------------------------------- /rust/src/trace.rs: -------------------------------------------------------------------------------- 1 | use anyhow::{anyhow, Result}; 2 | use cfmms::{ 3 | checkpoint::sync_pools_from_checkpoint, 4 | dex::{Dex, DexVariant}, 5 | pool::Pool, 6 | sync::sync_pairs, 7 | }; 8 | use dashmap::DashMap; 9 | use ethers::{ 10 | abi, 11 | providers::{Provider, Ws}, 12 | types::{Address, BlockNumber, Diff, TraceType, Transaction, H160, H256, U256, U64}, 13 | utils::keccak256, 14 | }; 15 | use ethers_providers::Middleware; 16 | use log::info; 17 | use std::{path::Path, str::FromStr, sync::Arc}; 18 | use tokio::sync::broadcast::{self, Sender}; 19 | use tokio::task::JoinSet; 20 | use tokio_stream::StreamExt; 21 | 22 | use crate::utils::calculate_next_block_base_fee; 23 | 24 | #[derive(Default, Debug, Clone)] 25 | pub struct NewBlock { 26 | pub number: U64, 27 | pub gas_used: U256, 28 | pub gas_limit: U256, 29 | pub base_fee_per_gas: U256, 30 | pub timestamp: U256, 31 | } 32 | 33 | #[derive(Debug, Clone)] 34 | pub enum Event { 35 | NewBlock(NewBlock), 36 | Transaction(Transaction), 37 | } 38 | 39 | async fn trace_state_diff( 40 | provider: Arc>, 41 | tx: &Transaction, 42 | block_number: U64, 43 | pools: &DashMap, 44 | target_address: String, 45 | ) -> Result<()> { 46 | info!( 47 | "Tx #{} received. Checking if it touches: {}", 48 | tx.hash, target_address 49 | ); 50 | 51 | let target_address: Address = target_address.parse().unwrap(); 52 | 53 | let state_diff = provider 54 | .trace_call( 55 | tx, 56 | vec![TraceType::StateDiff], 57 | Some(BlockNumber::from(block_number)), 58 | ) 59 | .await? 60 | .state_diff 61 | .ok_or(anyhow!("state diff does not exist"))? 62 | .0; 63 | 64 | let touched_pools: Vec = state_diff 65 | .keys() 66 | .filter_map(|addr| pools.get(addr).map(|p| (*p.value()).clone())) 67 | .filter(|p| match p { 68 | Pool::UniswapV2(pool) => vec![pool.token_a, pool.token_b].contains(&target_address), 69 | Pool::UniswapV3(pool) => vec![pool.token_a, pool.token_b].contains(&target_address), 70 | }) 71 | .collect(); 72 | 73 | if touched_pools.is_empty() { 74 | return Ok(()); 75 | } 76 | 77 | let target_storage = &state_diff 78 | .get(&target_address) 79 | .ok_or(anyhow!("no target storage"))? 80 | .storage; 81 | 82 | for pool in &touched_pools { 83 | let slot = H256::from(keccak256(abi::encode(&[ 84 | abi::Token::Address(pool.address()), 85 | abi::Token::Uint(U256::from(3)), 86 | ]))); 87 | 88 | if let Some(Diff::Changed(c)) = target_storage.get(&slot) { 89 | let from = U256::from(c.from.to_fixed_bytes()); 90 | let to = U256::from(c.to.to_fixed_bytes()); 91 | 92 | if to > from { 93 | // if to > from, the balance of pool's has increased 94 | // thus, the transaction was a call to swap: -> token 95 | info!( 96 | "(Tx #{}) Balance change: {} -> {} @ Pool {}", 97 | tx.hash, 98 | from, 99 | to, 100 | pool.address() 101 | ); 102 | } 103 | } 104 | } 105 | 106 | Ok(()) 107 | } 108 | 109 | pub async fn mempool_watching(target_address: String) -> Result<()> { 110 | let wss_url: String = std::env::var("WSS_URL").unwrap(); 111 | let provider = Provider::::connect(wss_url).await?; 112 | let provider = Arc::new(provider); 113 | 114 | // Step #1: Using cfmms-rs to sync all pools created on Uniswap V3 115 | let checkpoint_path = ".cfmms-checkpoint.json"; 116 | let checkpoint_exists = Path::new(checkpoint_path).exists(); 117 | 118 | let pools = DashMap::new(); 119 | 120 | let dexes_data = [( 121 | // Uniswap v3 122 | "0x1F98431c8aD98523631AE4a59f267346ea31F984", 123 | DexVariant::UniswapV3, 124 | 12369621u64, 125 | )]; 126 | let dexes: Vec<_> = dexes_data 127 | .into_iter() 128 | .map(|(address, variant, number)| { 129 | Dex::new(H160::from_str(address).unwrap(), variant, number, Some(300)) 130 | }) 131 | .collect(); 132 | 133 | let pools_vec = if checkpoint_exists { 134 | let (_, pools_vec) = 135 | sync_pools_from_checkpoint(checkpoint_path, 100000, provider.clone()).await?; 136 | pools_vec 137 | } else { 138 | sync_pairs(dexes.clone(), provider.clone(), Some(checkpoint_path)).await? 139 | }; 140 | 141 | for pool in pools_vec { 142 | pools.insert(pool.address(), pool); 143 | } 144 | 145 | info!("Uniswap V3 pools synced: {}", pools.len()); 146 | 147 | // Step #2: Stream data asynchronously 148 | let (event_sender, _): (Sender, _) = broadcast::channel(512); 149 | 150 | let mut set = JoinSet::new(); 151 | 152 | // Stream new headers 153 | { 154 | let provider = provider.clone(); 155 | let event_sender = event_sender.clone(); 156 | 157 | set.spawn(async move { 158 | let stream = provider.subscribe_blocks().await.unwrap(); 159 | let mut stream = stream.filter_map(|block| match block.number { 160 | Some(number) => Some(NewBlock { 161 | number, 162 | gas_used: block.gas_used, 163 | gas_limit: block.gas_limit, 164 | base_fee_per_gas: block.base_fee_per_gas.unwrap_or_default(), 165 | timestamp: block.timestamp, 166 | }), 167 | None => None, 168 | }); 169 | 170 | while let Some(block) = stream.next().await { 171 | match event_sender.send(Event::NewBlock(block)) { 172 | Ok(_) => {} 173 | Err(_) => {} 174 | } 175 | } 176 | }); 177 | } 178 | 179 | // Stream pending transactions 180 | { 181 | let provider = provider.clone(); 182 | let event_sender = event_sender.clone(); 183 | 184 | set.spawn(async move { 185 | let stream = provider.subscribe_pending_txs().await.unwrap(); 186 | let mut stream = stream.transactions_unordered(256).fuse(); 187 | 188 | while let Some(result) = stream.next().await { 189 | match result { 190 | Ok(tx) => match event_sender.send(Event::Transaction(tx)) { 191 | Ok(_) => {} 192 | Err(_) => {} 193 | }, 194 | Err(_) => {} 195 | }; 196 | } 197 | }); 198 | } 199 | 200 | // Event handler 201 | { 202 | let mut event_receiver = event_sender.subscribe(); 203 | 204 | set.spawn(async move { 205 | let mut new_block = NewBlock::default(); 206 | 207 | loop { 208 | match event_receiver.recv().await { 209 | Ok(event) => match event { 210 | Event::NewBlock(block) => { 211 | new_block = block; 212 | info!("{:?}", new_block); 213 | } 214 | Event::Transaction(tx) => { 215 | if new_block.number != U64::zero() { 216 | let next_base_fee = calculate_next_block_base_fee( 217 | new_block.gas_used, 218 | new_block.gas_limit, 219 | new_block.base_fee_per_gas, 220 | ); 221 | 222 | // max_fee_per_gas has to be greater than next block's base fee 223 | if tx.max_fee_per_gas.unwrap_or_default() 224 | > U256::from(next_base_fee) 225 | { 226 | match trace_state_diff( 227 | provider.clone(), 228 | &tx, 229 | new_block.number, 230 | &pools, 231 | target_address.clone(), 232 | ) 233 | .await 234 | { 235 | Ok(_) => {} 236 | Err(_) => {} 237 | } 238 | } 239 | } 240 | } 241 | }, 242 | Err(_) => {} 243 | } 244 | } 245 | }); 246 | } 247 | 248 | while let Some(res) = set.join_next().await { 249 | info!("{:?}", res); 250 | } 251 | 252 | Ok(()) 253 | } 254 | -------------------------------------------------------------------------------- /rust/src/utils.rs: -------------------------------------------------------------------------------- 1 | use ethers::types::U256; 2 | use rand::Rng; 3 | 4 | pub fn calculate_next_block_base_fee( 5 | gas_used: U256, 6 | gas_limit: U256, 7 | base_fee_per_gas: U256, 8 | ) -> U256 { 9 | let gas_used = gas_used; 10 | 11 | let mut target_gas_used = gas_limit / 2; 12 | target_gas_used = if target_gas_used == U256::zero() { 13 | U256::one() 14 | } else { 15 | target_gas_used 16 | }; 17 | 18 | let new_base_fee = { 19 | if gas_used > target_gas_used { 20 | base_fee_per_gas 21 | + ((base_fee_per_gas * (gas_used - target_gas_used)) / target_gas_used) 22 | / U256::from(8u64) 23 | } else { 24 | base_fee_per_gas 25 | - ((base_fee_per_gas * (target_gas_used - gas_used)) / target_gas_used) 26 | / U256::from(8u64) 27 | } 28 | }; 29 | 30 | let seed = rand::thread_rng().gen_range(0..9); 31 | new_base_fee + seed 32 | } 33 | --------------------------------------------------------------------------------