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