├── .gitignore ├── README.md ├── contract ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── Forc.lock ├── Forc.toml ├── src │ ├── docs_hub_misc.sw │ └── main.sw └── tests │ └── harness.rs └── frontend ├── .gitignore ├── README.md ├── fuels.config.ts ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── index.html ├── logo192.png ├── logo512.png ├── manifest.json └── robots.txt ├── src ├── App.css ├── App.tsx ├── components │ ├── AllItems.tsx │ ├── ItemCard.tsx │ └── ListItem.tsx ├── contracts │ ├── contracts │ │ ├── ContractAbi.d.ts │ │ ├── ContractAbi.hex.ts │ │ ├── common.d.ts │ │ ├── factories │ │ │ └── ContractAbi__factory.ts │ │ └── index.ts │ └── index.ts ├── index.css ├── index.tsx └── react-app-env.d.ts └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Intro to Sway for JS Devs 2 | 3 | If you know JavaScript, you can quickly learn to build full-stack dapps, or decentralized applications, on Fuel with Sway. Once you learn some Sway fundamentals, you'll be ready to start building your own dapp. 4 | 5 | Checkout the full guide here: 6 | https://docs.fuel.network/guides/intro-to-sway/ -------------------------------------------------------------------------------- /contract/.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | target 3 | -------------------------------------------------------------------------------- /contract/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.6" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" 46 | dependencies = [ 47 | "cfg-if", 48 | "once_cell", 49 | "version_check", 50 | "zerocopy", 51 | ] 52 | 53 | [[package]] 54 | name = "aho-corasick" 55 | version = "1.0.4" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" 58 | dependencies = [ 59 | "memchr", 60 | ] 61 | 62 | [[package]] 63 | name = "allocator-api2" 64 | version = "0.2.16" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" 67 | 68 | [[package]] 69 | name = "android-tzdata" 70 | version = "0.1.1" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 73 | 74 | [[package]] 75 | name = "android_system_properties" 76 | version = "0.1.5" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 79 | dependencies = [ 80 | "libc", 81 | ] 82 | 83 | [[package]] 84 | name = "anstream" 85 | version = "0.2.6" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f" 88 | dependencies = [ 89 | "anstyle", 90 | "anstyle-parse", 91 | "anstyle-wincon", 92 | "concolor-override", 93 | "concolor-query", 94 | "is-terminal", 95 | "utf8parse", 96 | ] 97 | 98 | [[package]] 99 | name = "anstyle" 100 | version = "0.3.5" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" 103 | 104 | [[package]] 105 | name = "anstyle-parse" 106 | version = "0.1.1" 107 | source = "registry+https://github.com/rust-lang/crates.io-index" 108 | checksum = "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116" 109 | dependencies = [ 110 | "utf8parse", 111 | ] 112 | 113 | [[package]] 114 | name = "anstyle-wincon" 115 | version = "0.2.0" 116 | source = "registry+https://github.com/rust-lang/crates.io-index" 117 | checksum = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa" 118 | dependencies = [ 119 | "anstyle", 120 | "windows-sys 0.45.0", 121 | ] 122 | 123 | [[package]] 124 | name = "anyhow" 125 | version = "1.0.70" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" 128 | 129 | [[package]] 130 | name = "ascii" 131 | version = "0.9.3" 132 | source = "registry+https://github.com/rust-lang/crates.io-index" 133 | checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" 134 | 135 | [[package]] 136 | name = "async-graphql" 137 | version = "4.0.16" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "d9ed522678d412d77effe47b3c82314ac36952a35e6e852093dd48287c421f80" 140 | dependencies = [ 141 | "async-graphql-derive", 142 | "async-graphql-parser", 143 | "async-graphql-value", 144 | "async-stream", 145 | "async-trait", 146 | "base64 0.13.1", 147 | "bytes", 148 | "fnv", 149 | "futures-util", 150 | "http", 151 | "indexmap", 152 | "mime", 153 | "multer", 154 | "num-traits", 155 | "once_cell", 156 | "pin-project-lite", 157 | "regex", 158 | "serde", 159 | "serde_json", 160 | "serde_urlencoded", 161 | "static_assertions", 162 | "tempfile", 163 | "thiserror", 164 | "tracing", 165 | "tracing-futures", 166 | ] 167 | 168 | [[package]] 169 | name = "async-graphql-derive" 170 | version = "4.0.16" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "c121a894495d7d3fc3d4e15e0a9843e422e4d1d9e3c514d8062a1c94b35b005d" 173 | dependencies = [ 174 | "Inflector", 175 | "async-graphql-parser", 176 | "darling 0.14.4", 177 | "proc-macro-crate", 178 | "proc-macro2", 179 | "quote", 180 | "syn 1.0.109", 181 | "thiserror", 182 | ] 183 | 184 | [[package]] 185 | name = "async-graphql-parser" 186 | version = "4.0.16" 187 | source = "registry+https://github.com/rust-lang/crates.io-index" 188 | checksum = "6b6c386f398145c6180206c1869c2279f5a3d45db5be4e0266148c6ac5c6ad68" 189 | dependencies = [ 190 | "async-graphql-value", 191 | "pest", 192 | "serde", 193 | "serde_json", 194 | ] 195 | 196 | [[package]] 197 | name = "async-graphql-value" 198 | version = "4.0.16" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "7a941b499fead4a3fb5392cabf42446566d18c86313f69f2deab69560394d65f" 201 | dependencies = [ 202 | "bytes", 203 | "indexmap", 204 | "serde", 205 | "serde_json", 206 | ] 207 | 208 | [[package]] 209 | name = "async-stream" 210 | version = "0.3.5" 211 | source = "registry+https://github.com/rust-lang/crates.io-index" 212 | checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" 213 | dependencies = [ 214 | "async-stream-impl", 215 | "futures-core", 216 | "pin-project-lite", 217 | ] 218 | 219 | [[package]] 220 | name = "async-stream-impl" 221 | version = "0.3.5" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" 224 | dependencies = [ 225 | "proc-macro2", 226 | "quote", 227 | "syn 2.0.40", 228 | ] 229 | 230 | [[package]] 231 | name = "async-trait" 232 | version = "0.1.75" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" 235 | dependencies = [ 236 | "proc-macro2", 237 | "quote", 238 | "syn 2.0.40", 239 | ] 240 | 241 | [[package]] 242 | name = "atomic-polyfill" 243 | version = "0.1.11" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28" 246 | dependencies = [ 247 | "critical-section", 248 | ] 249 | 250 | [[package]] 251 | name = "autocfg" 252 | version = "1.1.0" 253 | source = "registry+https://github.com/rust-lang/crates.io-index" 254 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 255 | 256 | [[package]] 257 | name = "axum" 258 | version = "0.5.17" 259 | source = "registry+https://github.com/rust-lang/crates.io-index" 260 | checksum = "acee9fd5073ab6b045a275b3e709c163dd36c90685219cb21804a147b58dba43" 261 | dependencies = [ 262 | "async-trait", 263 | "axum-core", 264 | "bitflags 1.3.2", 265 | "bytes", 266 | "futures-util", 267 | "http", 268 | "http-body", 269 | "hyper", 270 | "itoa", 271 | "matchit", 272 | "memchr", 273 | "mime", 274 | "percent-encoding", 275 | "pin-project-lite", 276 | "serde", 277 | "serde_json", 278 | "serde_urlencoded", 279 | "sync_wrapper", 280 | "tokio", 281 | "tower", 282 | "tower-http", 283 | "tower-layer", 284 | "tower-service", 285 | ] 286 | 287 | [[package]] 288 | name = "axum-core" 289 | version = "0.2.9" 290 | source = "registry+https://github.com/rust-lang/crates.io-index" 291 | checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc" 292 | dependencies = [ 293 | "async-trait", 294 | "bytes", 295 | "futures-util", 296 | "http", 297 | "http-body", 298 | "mime", 299 | "tower-layer", 300 | "tower-service", 301 | ] 302 | 303 | [[package]] 304 | name = "backtrace" 305 | version = "0.3.69" 306 | source = "registry+https://github.com/rust-lang/crates.io-index" 307 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 308 | dependencies = [ 309 | "addr2line", 310 | "cc", 311 | "cfg-if", 312 | "libc", 313 | "miniz_oxide", 314 | "object", 315 | "rustc-demangle", 316 | "serde", 317 | ] 318 | 319 | [[package]] 320 | name = "base16ct" 321 | version = "0.2.0" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" 324 | 325 | [[package]] 326 | name = "base64" 327 | version = "0.13.1" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 330 | 331 | [[package]] 332 | name = "base64" 333 | version = "0.21.0" 334 | source = "registry+https://github.com/rust-lang/crates.io-index" 335 | checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" 336 | 337 | [[package]] 338 | name = "base64ct" 339 | version = "1.6.0" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" 342 | 343 | [[package]] 344 | name = "bech32" 345 | version = "0.9.1" 346 | source = "registry+https://github.com/rust-lang/crates.io-index" 347 | checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" 348 | 349 | [[package]] 350 | name = "bitflags" 351 | version = "1.3.2" 352 | source = "registry+https://github.com/rust-lang/crates.io-index" 353 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 354 | 355 | [[package]] 356 | name = "bitflags" 357 | version = "2.4.0" 358 | source = "registry+https://github.com/rust-lang/crates.io-index" 359 | checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" 360 | dependencies = [ 361 | "serde", 362 | ] 363 | 364 | [[package]] 365 | name = "bitvec" 366 | version = "1.0.1" 367 | source = "registry+https://github.com/rust-lang/crates.io-index" 368 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 369 | dependencies = [ 370 | "funty", 371 | "radium", 372 | "tap", 373 | "wyz", 374 | ] 375 | 376 | [[package]] 377 | name = "block-buffer" 378 | version = "0.10.4" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 381 | dependencies = [ 382 | "generic-array", 383 | ] 384 | 385 | [[package]] 386 | name = "bs58" 387 | version = "0.5.0" 388 | source = "registry+https://github.com/rust-lang/crates.io-index" 389 | checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" 390 | dependencies = [ 391 | "sha2", 392 | "tinyvec", 393 | ] 394 | 395 | [[package]] 396 | name = "bumpalo" 397 | version = "3.12.0" 398 | source = "registry+https://github.com/rust-lang/crates.io-index" 399 | checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" 400 | 401 | [[package]] 402 | name = "byteorder" 403 | version = "1.4.3" 404 | source = "registry+https://github.com/rust-lang/crates.io-index" 405 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 406 | 407 | [[package]] 408 | name = "bytes" 409 | version = "1.5.0" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 412 | dependencies = [ 413 | "serde", 414 | ] 415 | 416 | [[package]] 417 | name = "cc" 418 | version = "1.0.79" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 421 | 422 | [[package]] 423 | name = "cfg-if" 424 | version = "1.0.0" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 427 | 428 | [[package]] 429 | name = "chrono" 430 | version = "0.4.31" 431 | source = "registry+https://github.com/rust-lang/crates.io-index" 432 | checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" 433 | dependencies = [ 434 | "android-tzdata", 435 | "iana-time-zone", 436 | "js-sys", 437 | "num-traits", 438 | "wasm-bindgen", 439 | "windows-targets 0.48.0", 440 | ] 441 | 442 | [[package]] 443 | name = "cipher" 444 | version = "0.4.4" 445 | source = "registry+https://github.com/rust-lang/crates.io-index" 446 | checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" 447 | dependencies = [ 448 | "crypto-common", 449 | "inout", 450 | ] 451 | 452 | [[package]] 453 | name = "clap" 454 | version = "4.2.1" 455 | source = "registry+https://github.com/rust-lang/crates.io-index" 456 | checksum = "046ae530c528f252094e4a77886ee1374437744b2bff1497aa898bbddbbb29b3" 457 | dependencies = [ 458 | "clap_builder", 459 | "clap_derive", 460 | "once_cell", 461 | ] 462 | 463 | [[package]] 464 | name = "clap_builder" 465 | version = "4.2.1" 466 | source = "registry+https://github.com/rust-lang/crates.io-index" 467 | checksum = "223163f58c9a40c3b0a43e1c4b50a9ce09f007ea2cb1ec258a687945b4b7929f" 468 | dependencies = [ 469 | "anstream", 470 | "anstyle", 471 | "bitflags 1.3.2", 472 | "clap_lex", 473 | "strsim", 474 | ] 475 | 476 | [[package]] 477 | name = "clap_derive" 478 | version = "4.2.0" 479 | source = "registry+https://github.com/rust-lang/crates.io-index" 480 | checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" 481 | dependencies = [ 482 | "heck", 483 | "proc-macro2", 484 | "quote", 485 | "syn 2.0.40", 486 | ] 487 | 488 | [[package]] 489 | name = "clap_lex" 490 | version = "0.4.1" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" 493 | 494 | [[package]] 495 | name = "cobs" 496 | version = "0.2.3" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" 499 | 500 | [[package]] 501 | name = "codespan-reporting" 502 | version = "0.11.1" 503 | source = "registry+https://github.com/rust-lang/crates.io-index" 504 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 505 | dependencies = [ 506 | "termcolor", 507 | "unicode-width", 508 | ] 509 | 510 | [[package]] 511 | name = "coins-bip32" 512 | version = "0.8.7" 513 | source = "registry+https://github.com/rust-lang/crates.io-index" 514 | checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" 515 | dependencies = [ 516 | "bs58", 517 | "coins-core", 518 | "digest", 519 | "hmac", 520 | "k256", 521 | "serde", 522 | "sha2", 523 | "thiserror", 524 | ] 525 | 526 | [[package]] 527 | name = "coins-bip39" 528 | version = "0.8.7" 529 | source = "registry+https://github.com/rust-lang/crates.io-index" 530 | checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" 531 | dependencies = [ 532 | "bitvec", 533 | "coins-bip32", 534 | "hmac", 535 | "once_cell", 536 | "pbkdf2 0.12.1", 537 | "rand", 538 | "sha2", 539 | "thiserror", 540 | ] 541 | 542 | [[package]] 543 | name = "coins-core" 544 | version = "0.8.7" 545 | source = "registry+https://github.com/rust-lang/crates.io-index" 546 | checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" 547 | dependencies = [ 548 | "base64 0.21.0", 549 | "bech32", 550 | "bs58", 551 | "digest", 552 | "generic-array", 553 | "hex", 554 | "ripemd", 555 | "serde", 556 | "serde_derive", 557 | "sha2", 558 | "sha3", 559 | "thiserror", 560 | ] 561 | 562 | [[package]] 563 | name = "combine" 564 | version = "3.8.1" 565 | source = "registry+https://github.com/rust-lang/crates.io-index" 566 | checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" 567 | dependencies = [ 568 | "ascii", 569 | "byteorder", 570 | "either", 571 | "memchr", 572 | "unreachable", 573 | ] 574 | 575 | [[package]] 576 | name = "concolor-override" 577 | version = "1.0.0" 578 | source = "registry+https://github.com/rust-lang/crates.io-index" 579 | checksum = "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f" 580 | 581 | [[package]] 582 | name = "concolor-query" 583 | version = "0.3.3" 584 | source = "registry+https://github.com/rust-lang/crates.io-index" 585 | checksum = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf" 586 | dependencies = [ 587 | "windows-sys 0.45.0", 588 | ] 589 | 590 | [[package]] 591 | name = "const-oid" 592 | version = "0.9.2" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" 595 | 596 | [[package]] 597 | name = "convert_case" 598 | version = "0.4.0" 599 | source = "registry+https://github.com/rust-lang/crates.io-index" 600 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 601 | 602 | [[package]] 603 | name = "cookie" 604 | version = "0.16.2" 605 | source = "registry+https://github.com/rust-lang/crates.io-index" 606 | checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" 607 | dependencies = [ 608 | "percent-encoding", 609 | "time", 610 | "version_check", 611 | ] 612 | 613 | [[package]] 614 | name = "cookie_store" 615 | version = "0.16.1" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "2e4b6aa369f41f5faa04bb80c9b1f4216ea81646ed6124d76ba5c49a7aafd9cd" 618 | dependencies = [ 619 | "cookie", 620 | "idna 0.2.3", 621 | "log", 622 | "publicsuffix", 623 | "serde", 624 | "serde_json", 625 | "time", 626 | "url", 627 | ] 628 | 629 | [[package]] 630 | name = "core-foundation" 631 | version = "0.9.3" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 634 | dependencies = [ 635 | "core-foundation-sys", 636 | "libc", 637 | ] 638 | 639 | [[package]] 640 | name = "core-foundation-sys" 641 | version = "0.8.4" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" 644 | 645 | [[package]] 646 | name = "counter" 647 | version = "0.5.7" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "2d458e66999348f56fd3ffcfbb7f7951542075ca8359687c703de6500c1ddccd" 650 | dependencies = [ 651 | "num-traits", 652 | ] 653 | 654 | [[package]] 655 | name = "cpufeatures" 656 | version = "0.2.6" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" 659 | dependencies = [ 660 | "libc", 661 | ] 662 | 663 | [[package]] 664 | name = "critical-section" 665 | version = "1.1.1" 666 | source = "registry+https://github.com/rust-lang/crates.io-index" 667 | checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" 668 | 669 | [[package]] 670 | name = "crossbeam-channel" 671 | version = "0.5.7" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" 674 | dependencies = [ 675 | "cfg-if", 676 | "crossbeam-utils", 677 | ] 678 | 679 | [[package]] 680 | name = "crossbeam-deque" 681 | version = "0.8.3" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" 684 | dependencies = [ 685 | "cfg-if", 686 | "crossbeam-epoch", 687 | "crossbeam-utils", 688 | ] 689 | 690 | [[package]] 691 | name = "crossbeam-epoch" 692 | version = "0.9.15" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" 695 | dependencies = [ 696 | "autocfg", 697 | "cfg-if", 698 | "crossbeam-utils", 699 | "memoffset", 700 | "scopeguard", 701 | ] 702 | 703 | [[package]] 704 | name = "crossbeam-utils" 705 | version = "0.8.15" 706 | source = "registry+https://github.com/rust-lang/crates.io-index" 707 | checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" 708 | dependencies = [ 709 | "cfg-if", 710 | ] 711 | 712 | [[package]] 713 | name = "crunchy" 714 | version = "0.2.2" 715 | source = "registry+https://github.com/rust-lang/crates.io-index" 716 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 717 | 718 | [[package]] 719 | name = "crypto-bigint" 720 | version = "0.5.2" 721 | source = "registry+https://github.com/rust-lang/crates.io-index" 722 | checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" 723 | dependencies = [ 724 | "generic-array", 725 | "rand_core", 726 | "subtle", 727 | "zeroize", 728 | ] 729 | 730 | [[package]] 731 | name = "crypto-common" 732 | version = "0.1.6" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 735 | dependencies = [ 736 | "generic-array", 737 | "typenum", 738 | ] 739 | 740 | [[package]] 741 | name = "ct-logs" 742 | version = "0.8.0" 743 | source = "registry+https://github.com/rust-lang/crates.io-index" 744 | checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" 745 | dependencies = [ 746 | "sct 0.6.1", 747 | ] 748 | 749 | [[package]] 750 | name = "ctr" 751 | version = "0.9.2" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" 754 | dependencies = [ 755 | "cipher", 756 | ] 757 | 758 | [[package]] 759 | name = "curve25519-dalek" 760 | version = "4.0.0" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" 763 | dependencies = [ 764 | "cfg-if", 765 | "cpufeatures", 766 | "curve25519-dalek-derive", 767 | "digest", 768 | "fiat-crypto", 769 | "platforms", 770 | "rustc_version", 771 | "subtle", 772 | ] 773 | 774 | [[package]] 775 | name = "curve25519-dalek-derive" 776 | version = "0.1.0" 777 | source = "registry+https://github.com/rust-lang/crates.io-index" 778 | checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" 779 | dependencies = [ 780 | "proc-macro2", 781 | "quote", 782 | "syn 2.0.40", 783 | ] 784 | 785 | [[package]] 786 | name = "cxx" 787 | version = "1.0.94" 788 | source = "registry+https://github.com/rust-lang/crates.io-index" 789 | checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" 790 | dependencies = [ 791 | "cc", 792 | "cxxbridge-flags", 793 | "cxxbridge-macro", 794 | "link-cplusplus", 795 | ] 796 | 797 | [[package]] 798 | name = "cxx-build" 799 | version = "1.0.94" 800 | source = "registry+https://github.com/rust-lang/crates.io-index" 801 | checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" 802 | dependencies = [ 803 | "cc", 804 | "codespan-reporting", 805 | "once_cell", 806 | "proc-macro2", 807 | "quote", 808 | "scratch", 809 | "syn 2.0.40", 810 | ] 811 | 812 | [[package]] 813 | name = "cxxbridge-flags" 814 | version = "1.0.94" 815 | source = "registry+https://github.com/rust-lang/crates.io-index" 816 | checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" 817 | 818 | [[package]] 819 | name = "cxxbridge-macro" 820 | version = "1.0.94" 821 | source = "registry+https://github.com/rust-lang/crates.io-index" 822 | checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" 823 | dependencies = [ 824 | "proc-macro2", 825 | "quote", 826 | "syn 2.0.40", 827 | ] 828 | 829 | [[package]] 830 | name = "cynic" 831 | version = "2.2.8" 832 | source = "registry+https://github.com/rust-lang/crates.io-index" 833 | checksum = "b1afa0591b1021e427e548a1f0f147fe6168f6c7c7f7006bace77f28856051b8" 834 | dependencies = [ 835 | "cynic-proc-macros", 836 | "reqwest", 837 | "serde", 838 | "serde_json", 839 | "static_assertions", 840 | "thiserror", 841 | ] 842 | 843 | [[package]] 844 | name = "cynic-codegen" 845 | version = "2.2.8" 846 | source = "registry+https://github.com/rust-lang/crates.io-index" 847 | checksum = "70a1bb05cc554f46079d0fa72abe995a2d32d0737d410a41da75b31e3f7ef768" 848 | dependencies = [ 849 | "counter", 850 | "darling 0.13.4", 851 | "graphql-parser", 852 | "once_cell", 853 | "proc-macro2", 854 | "quote", 855 | "strsim", 856 | "syn 1.0.109", 857 | ] 858 | 859 | [[package]] 860 | name = "cynic-proc-macros" 861 | version = "2.2.8" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "aa595c4ed7a5374e0e58c5c34f9d93bd6b7d45062790963bd4b4c3c0bf520c4d" 864 | dependencies = [ 865 | "cynic-codegen", 866 | "syn 1.0.109", 867 | ] 868 | 869 | [[package]] 870 | name = "darling" 871 | version = "0.13.4" 872 | source = "registry+https://github.com/rust-lang/crates.io-index" 873 | checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" 874 | dependencies = [ 875 | "darling_core 0.13.4", 876 | "darling_macro 0.13.4", 877 | ] 878 | 879 | [[package]] 880 | name = "darling" 881 | version = "0.14.4" 882 | source = "registry+https://github.com/rust-lang/crates.io-index" 883 | checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" 884 | dependencies = [ 885 | "darling_core 0.14.4", 886 | "darling_macro 0.14.4", 887 | ] 888 | 889 | [[package]] 890 | name = "darling_core" 891 | version = "0.13.4" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" 894 | dependencies = [ 895 | "fnv", 896 | "ident_case", 897 | "proc-macro2", 898 | "quote", 899 | "strsim", 900 | "syn 1.0.109", 901 | ] 902 | 903 | [[package]] 904 | name = "darling_core" 905 | version = "0.14.4" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" 908 | dependencies = [ 909 | "fnv", 910 | "ident_case", 911 | "proc-macro2", 912 | "quote", 913 | "strsim", 914 | "syn 1.0.109", 915 | ] 916 | 917 | [[package]] 918 | name = "darling_macro" 919 | version = "0.13.4" 920 | source = "registry+https://github.com/rust-lang/crates.io-index" 921 | checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" 922 | dependencies = [ 923 | "darling_core 0.13.4", 924 | "quote", 925 | "syn 1.0.109", 926 | ] 927 | 928 | [[package]] 929 | name = "darling_macro" 930 | version = "0.14.4" 931 | source = "registry+https://github.com/rust-lang/crates.io-index" 932 | checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" 933 | dependencies = [ 934 | "darling_core 0.14.4", 935 | "quote", 936 | "syn 1.0.109", 937 | ] 938 | 939 | [[package]] 940 | name = "der" 941 | version = "0.7.8" 942 | source = "registry+https://github.com/rust-lang/crates.io-index" 943 | checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" 944 | dependencies = [ 945 | "const-oid", 946 | "zeroize", 947 | ] 948 | 949 | [[package]] 950 | name = "derivative" 951 | version = "2.2.0" 952 | source = "registry+https://github.com/rust-lang/crates.io-index" 953 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 954 | dependencies = [ 955 | "proc-macro2", 956 | "quote", 957 | "syn 1.0.109", 958 | ] 959 | 960 | [[package]] 961 | name = "derive_more" 962 | version = "0.99.17" 963 | source = "registry+https://github.com/rust-lang/crates.io-index" 964 | checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" 965 | dependencies = [ 966 | "convert_case", 967 | "proc-macro2", 968 | "quote", 969 | "rustc_version", 970 | "syn 1.0.109", 971 | ] 972 | 973 | [[package]] 974 | name = "digest" 975 | version = "0.10.7" 976 | source = "registry+https://github.com/rust-lang/crates.io-index" 977 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 978 | dependencies = [ 979 | "block-buffer", 980 | "const-oid", 981 | "crypto-common", 982 | "subtle", 983 | ] 984 | 985 | [[package]] 986 | name = "dtoa" 987 | version = "1.0.6" 988 | source = "registry+https://github.com/rust-lang/crates.io-index" 989 | checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" 990 | 991 | [[package]] 992 | name = "ecdsa" 993 | version = "0.16.7" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" 996 | dependencies = [ 997 | "der", 998 | "digest", 999 | "elliptic-curve", 1000 | "rfc6979", 1001 | "signature", 1002 | "spki", 1003 | ] 1004 | 1005 | [[package]] 1006 | name = "ed25519" 1007 | version = "2.2.2" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" 1010 | dependencies = [ 1011 | "signature", 1012 | ] 1013 | 1014 | [[package]] 1015 | name = "ed25519-dalek" 1016 | version = "2.0.0" 1017 | source = "registry+https://github.com/rust-lang/crates.io-index" 1018 | checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" 1019 | dependencies = [ 1020 | "curve25519-dalek", 1021 | "ed25519", 1022 | "sha2", 1023 | ] 1024 | 1025 | [[package]] 1026 | name = "either" 1027 | version = "1.8.1" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" 1030 | 1031 | [[package]] 1032 | name = "elliptic-curve" 1033 | version = "0.13.8" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" 1036 | dependencies = [ 1037 | "base16ct", 1038 | "crypto-bigint", 1039 | "digest", 1040 | "ff", 1041 | "generic-array", 1042 | "group", 1043 | "pkcs8", 1044 | "rand_core", 1045 | "sec1", 1046 | "subtle", 1047 | "zeroize", 1048 | ] 1049 | 1050 | [[package]] 1051 | name = "encoding_rs" 1052 | version = "0.8.32" 1053 | source = "registry+https://github.com/rust-lang/crates.io-index" 1054 | checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" 1055 | dependencies = [ 1056 | "cfg-if", 1057 | ] 1058 | 1059 | [[package]] 1060 | name = "enum-iterator" 1061 | version = "1.4.0" 1062 | source = "registry+https://github.com/rust-lang/crates.io-index" 1063 | checksum = "706d9e7cf1c7664859d79cd524e4e53ea2b67ea03c98cc2870c5e539695d597e" 1064 | dependencies = [ 1065 | "enum-iterator-derive", 1066 | ] 1067 | 1068 | [[package]] 1069 | name = "enum-iterator-derive" 1070 | version = "1.2.0" 1071 | source = "registry+https://github.com/rust-lang/crates.io-index" 1072 | checksum = "355f93763ef7b0ae1c43c4d8eccc9d5848d84ad1a1d8ce61c421d1ac85a19d05" 1073 | dependencies = [ 1074 | "proc-macro2", 1075 | "quote", 1076 | "syn 1.0.109", 1077 | ] 1078 | 1079 | [[package]] 1080 | name = "errno" 1081 | version = "0.3.8" 1082 | source = "registry+https://github.com/rust-lang/crates.io-index" 1083 | checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 1084 | dependencies = [ 1085 | "libc", 1086 | "windows-sys 0.52.0", 1087 | ] 1088 | 1089 | [[package]] 1090 | name = "eth-keystore" 1091 | version = "0.5.0" 1092 | source = "registry+https://github.com/rust-lang/crates.io-index" 1093 | checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" 1094 | dependencies = [ 1095 | "aes", 1096 | "ctr", 1097 | "digest", 1098 | "hex", 1099 | "hmac", 1100 | "pbkdf2 0.11.0", 1101 | "rand", 1102 | "scrypt", 1103 | "serde", 1104 | "serde_json", 1105 | "sha2", 1106 | "sha3", 1107 | "thiserror", 1108 | "uuid 0.8.2", 1109 | ] 1110 | 1111 | [[package]] 1112 | name = "ethnum" 1113 | version = "1.3.2" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "0198b9d0078e0f30dedc7acbb21c974e838fc8fae3ee170128658a98cb2c1c04" 1116 | 1117 | [[package]] 1118 | name = "eventsource-client" 1119 | version = "0.10.2" 1120 | source = "registry+https://github.com/rust-lang/crates.io-index" 1121 | checksum = "9146112ee3ce031aa5aebe3e049e10b1d353b9c7630cc6be488c2c62cc5d9c42" 1122 | dependencies = [ 1123 | "futures", 1124 | "hyper", 1125 | "hyper-rustls 0.22.1", 1126 | "hyper-timeout", 1127 | "log", 1128 | "pin-project", 1129 | "tokio", 1130 | ] 1131 | 1132 | [[package]] 1133 | name = "fastrand" 1134 | version = "2.0.0" 1135 | source = "registry+https://github.com/rust-lang/crates.io-index" 1136 | checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" 1137 | 1138 | [[package]] 1139 | name = "ff" 1140 | version = "0.13.0" 1141 | source = "registry+https://github.com/rust-lang/crates.io-index" 1142 | checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" 1143 | dependencies = [ 1144 | "rand_core", 1145 | "subtle", 1146 | ] 1147 | 1148 | [[package]] 1149 | name = "fiat-crypto" 1150 | version = "0.1.20" 1151 | source = "registry+https://github.com/rust-lang/crates.io-index" 1152 | checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" 1153 | 1154 | [[package]] 1155 | name = "fixed-hash" 1156 | version = "0.8.0" 1157 | source = "registry+https://github.com/rust-lang/crates.io-index" 1158 | checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" 1159 | dependencies = [ 1160 | "static_assertions", 1161 | ] 1162 | 1163 | [[package]] 1164 | name = "fnv" 1165 | version = "1.0.7" 1166 | source = "registry+https://github.com/rust-lang/crates.io-index" 1167 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1168 | 1169 | [[package]] 1170 | name = "form_urlencoded" 1171 | version = "1.1.0" 1172 | source = "registry+https://github.com/rust-lang/crates.io-index" 1173 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 1174 | dependencies = [ 1175 | "percent-encoding", 1176 | ] 1177 | 1178 | [[package]] 1179 | name = "fuel-abi-types" 1180 | version = "0.3.0" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" 1183 | dependencies = [ 1184 | "itertools 0.10.5", 1185 | "lazy_static", 1186 | "proc-macro2", 1187 | "quote", 1188 | "regex", 1189 | "serde", 1190 | "serde_json", 1191 | "syn 2.0.40", 1192 | "thiserror", 1193 | ] 1194 | 1195 | [[package]] 1196 | name = "fuel-asm" 1197 | version = "0.43.1" 1198 | source = "registry+https://github.com/rust-lang/crates.io-index" 1199 | checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" 1200 | dependencies = [ 1201 | "bitflags 2.4.0", 1202 | "fuel-types", 1203 | "serde", 1204 | "strum", 1205 | ] 1206 | 1207 | [[package]] 1208 | name = "fuel-core" 1209 | version = "0.22.0" 1210 | source = "registry+https://github.com/rust-lang/crates.io-index" 1211 | checksum = "b784b66a9dc46393d69967727895db787974a4d6349cc139c940125ede40c681" 1212 | dependencies = [ 1213 | "anyhow", 1214 | "async-graphql", 1215 | "async-trait", 1216 | "axum", 1217 | "clap", 1218 | "derive_more", 1219 | "enum-iterator", 1220 | "fuel-core-chain-config", 1221 | "fuel-core-consensus-module", 1222 | "fuel-core-database", 1223 | "fuel-core-executor", 1224 | "fuel-core-importer", 1225 | "fuel-core-metrics", 1226 | "fuel-core-poa", 1227 | "fuel-core-producer", 1228 | "fuel-core-services", 1229 | "fuel-core-storage", 1230 | "fuel-core-txpool", 1231 | "fuel-core-types", 1232 | "futures", 1233 | "hex", 1234 | "hyper", 1235 | "itertools 0.10.5", 1236 | "postcard", 1237 | "rand", 1238 | "serde", 1239 | "serde_json", 1240 | "strum", 1241 | "strum_macros", 1242 | "thiserror", 1243 | "tokio", 1244 | "tokio-stream", 1245 | "tower-http", 1246 | "tracing", 1247 | "uuid 1.6.1", 1248 | ] 1249 | 1250 | [[package]] 1251 | name = "fuel-core-chain-config" 1252 | version = "0.22.0" 1253 | source = "registry+https://github.com/rust-lang/crates.io-index" 1254 | checksum = "11f2b1fe72649f4eca267dc49f9ef1edfdc4b8f0d6325a8b1ebeb6641b11e1c3" 1255 | dependencies = [ 1256 | "anyhow", 1257 | "bech32", 1258 | "fuel-core-storage", 1259 | "fuel-core-types", 1260 | "hex", 1261 | "itertools 0.10.5", 1262 | "postcard", 1263 | "serde", 1264 | "serde_json", 1265 | "serde_with 1.14.0", 1266 | "tracing", 1267 | ] 1268 | 1269 | [[package]] 1270 | name = "fuel-core-client" 1271 | version = "0.22.0" 1272 | source = "registry+https://github.com/rust-lang/crates.io-index" 1273 | checksum = "609b815dd45f01a012fa237d9ea946dcc67d6858d141bf64cbeb9fb0a80a6474" 1274 | dependencies = [ 1275 | "anyhow", 1276 | "cynic", 1277 | "derive_more", 1278 | "eventsource-client", 1279 | "fuel-core-types", 1280 | "futures", 1281 | "hex", 1282 | "hyper-rustls 0.24.1", 1283 | "itertools 0.10.5", 1284 | "reqwest", 1285 | "schemafy_lib", 1286 | "serde", 1287 | "serde_json", 1288 | "tai64", 1289 | "thiserror", 1290 | "tracing", 1291 | ] 1292 | 1293 | [[package]] 1294 | name = "fuel-core-consensus-module" 1295 | version = "0.22.0" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "0b22705ff15266cd0206aea5e59e881be3606bc221ec29b938a2e630c72420b8" 1298 | dependencies = [ 1299 | "anyhow", 1300 | "fuel-core-chain-config", 1301 | "fuel-core-poa", 1302 | "fuel-core-types", 1303 | "tokio", 1304 | ] 1305 | 1306 | [[package]] 1307 | name = "fuel-core-database" 1308 | version = "0.22.0" 1309 | source = "registry+https://github.com/rust-lang/crates.io-index" 1310 | checksum = "11202dd7027502e663178663ab0a995d2ea93a0d543775d63730f8daa2cd490c" 1311 | dependencies = [ 1312 | "anyhow", 1313 | "derive_more", 1314 | "fuel-core-storage", 1315 | "fuel-core-types", 1316 | ] 1317 | 1318 | [[package]] 1319 | name = "fuel-core-executor" 1320 | version = "0.22.0" 1321 | source = "registry+https://github.com/rust-lang/crates.io-index" 1322 | checksum = "2d1cbcc8e330681305d603c22f736df3fe403bfedf5c122066fb853638286a9c" 1323 | dependencies = [ 1324 | "anyhow", 1325 | "fuel-core-chain-config", 1326 | "fuel-core-storage", 1327 | "fuel-core-types", 1328 | "hex", 1329 | "parking_lot", 1330 | "tracing", 1331 | ] 1332 | 1333 | [[package]] 1334 | name = "fuel-core-importer" 1335 | version = "0.22.0" 1336 | source = "registry+https://github.com/rust-lang/crates.io-index" 1337 | checksum = "db12defb4ed0d3aff3d39138925a0d8467f857254cba5d5e9de9bc273ade25d0" 1338 | dependencies = [ 1339 | "anyhow", 1340 | "derive_more", 1341 | "fuel-core-metrics", 1342 | "fuel-core-storage", 1343 | "fuel-core-types", 1344 | "tokio", 1345 | "tracing", 1346 | ] 1347 | 1348 | [[package]] 1349 | name = "fuel-core-metrics" 1350 | version = "0.22.0" 1351 | source = "registry+https://github.com/rust-lang/crates.io-index" 1352 | checksum = "10d853a839036a1906e8082192268034ace79e5d04dbd935abeaee745c5f5a39" 1353 | dependencies = [ 1354 | "axum", 1355 | "once_cell", 1356 | "pin-project-lite", 1357 | "prometheus-client 0.18.1", 1358 | "prometheus-client 0.20.0", 1359 | "regex", 1360 | "tracing", 1361 | ] 1362 | 1363 | [[package]] 1364 | name = "fuel-core-poa" 1365 | version = "0.22.0" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "3c94a4807d14918f6f2f30c29fd4cfed0c7b7565c01d51c05cffff2881b468f3" 1368 | dependencies = [ 1369 | "anyhow", 1370 | "async-trait", 1371 | "fuel-core-chain-config", 1372 | "fuel-core-services", 1373 | "fuel-core-storage", 1374 | "fuel-core-types", 1375 | "tokio", 1376 | "tokio-stream", 1377 | "tracing", 1378 | ] 1379 | 1380 | [[package]] 1381 | name = "fuel-core-producer" 1382 | version = "0.22.0" 1383 | source = "registry+https://github.com/rust-lang/crates.io-index" 1384 | checksum = "21bbc29241e839c711ee2fcb9729978c1717f02e02459c00216a63e15384b275" 1385 | dependencies = [ 1386 | "anyhow", 1387 | "async-trait", 1388 | "derive_more", 1389 | "fuel-core-storage", 1390 | "fuel-core-types", 1391 | "tokio", 1392 | "tokio-rayon", 1393 | "tracing", 1394 | ] 1395 | 1396 | [[package]] 1397 | name = "fuel-core-services" 1398 | version = "0.22.0" 1399 | source = "registry+https://github.com/rust-lang/crates.io-index" 1400 | checksum = "c0d8ed6f17fc5e42094412ea2af7a9e6a2ec5cd6fe56548ef0e0730938b55c26" 1401 | dependencies = [ 1402 | "anyhow", 1403 | "async-trait", 1404 | "fuel-core-metrics", 1405 | "futures", 1406 | "parking_lot", 1407 | "tokio", 1408 | "tracing", 1409 | ] 1410 | 1411 | [[package]] 1412 | name = "fuel-core-storage" 1413 | version = "0.22.0" 1414 | source = "registry+https://github.com/rust-lang/crates.io-index" 1415 | checksum = "8188ae0d5af2925ca05608b60f69cdc89f9e33b6500f776e7e1ecd2c44d32447" 1416 | dependencies = [ 1417 | "anyhow", 1418 | "derive_more", 1419 | "fuel-core-types", 1420 | "fuel-vm", 1421 | "primitive-types", 1422 | ] 1423 | 1424 | [[package]] 1425 | name = "fuel-core-txpool" 1426 | version = "0.22.0" 1427 | source = "registry+https://github.com/rust-lang/crates.io-index" 1428 | checksum = "ef6228d74e0a2efeda97a7f5f3c31052c3b0e961ca92c6754cbb19c864813f3d" 1429 | dependencies = [ 1430 | "anyhow", 1431 | "async-trait", 1432 | "fuel-core-chain-config", 1433 | "fuel-core-metrics", 1434 | "fuel-core-services", 1435 | "fuel-core-storage", 1436 | "fuel-core-types", 1437 | "futures", 1438 | "parking_lot", 1439 | "tokio", 1440 | "tokio-rayon", 1441 | "tokio-stream", 1442 | "tracing", 1443 | ] 1444 | 1445 | [[package]] 1446 | name = "fuel-core-types" 1447 | version = "0.22.0" 1448 | source = "registry+https://github.com/rust-lang/crates.io-index" 1449 | checksum = "5dd06358708d4c61ef53ad73c26ae55a0ed59ba9096c56b64a1eb56af748e9f0" 1450 | dependencies = [ 1451 | "anyhow", 1452 | "bs58", 1453 | "derive_more", 1454 | "fuel-vm", 1455 | "secrecy", 1456 | "serde", 1457 | "tai64", 1458 | "thiserror", 1459 | "zeroize", 1460 | ] 1461 | 1462 | [[package]] 1463 | name = "fuel-crypto" 1464 | version = "0.43.1" 1465 | source = "registry+https://github.com/rust-lang/crates.io-index" 1466 | checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" 1467 | dependencies = [ 1468 | "coins-bip32", 1469 | "coins-bip39", 1470 | "ecdsa", 1471 | "ed25519-dalek", 1472 | "fuel-types", 1473 | "k256", 1474 | "lazy_static", 1475 | "p256", 1476 | "rand", 1477 | "secp256k1", 1478 | "serde", 1479 | "sha2", 1480 | "zeroize", 1481 | ] 1482 | 1483 | [[package]] 1484 | name = "fuel-derive" 1485 | version = "0.43.1" 1486 | source = "registry+https://github.com/rust-lang/crates.io-index" 1487 | checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" 1488 | dependencies = [ 1489 | "proc-macro2", 1490 | "quote", 1491 | "syn 2.0.40", 1492 | "synstructure", 1493 | ] 1494 | 1495 | [[package]] 1496 | name = "fuel-merkle" 1497 | version = "0.43.1" 1498 | source = "registry+https://github.com/rust-lang/crates.io-index" 1499 | checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" 1500 | dependencies = [ 1501 | "derive_more", 1502 | "digest", 1503 | "fuel-storage", 1504 | "hashbrown 0.13.2", 1505 | "hex", 1506 | "serde", 1507 | "sha2", 1508 | ] 1509 | 1510 | [[package]] 1511 | name = "fuel-storage" 1512 | version = "0.43.1" 1513 | source = "registry+https://github.com/rust-lang/crates.io-index" 1514 | checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" 1515 | 1516 | [[package]] 1517 | name = "fuel-tx" 1518 | version = "0.43.1" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" 1521 | dependencies = [ 1522 | "bitflags 2.4.0", 1523 | "derivative", 1524 | "derive_more", 1525 | "fuel-asm", 1526 | "fuel-crypto", 1527 | "fuel-merkle", 1528 | "fuel-types", 1529 | "hashbrown 0.14.3", 1530 | "itertools 0.10.5", 1531 | "rand", 1532 | "serde", 1533 | "serde_json", 1534 | "strum", 1535 | "strum_macros", 1536 | ] 1537 | 1538 | [[package]] 1539 | name = "fuel-types" 1540 | version = "0.43.1" 1541 | source = "registry+https://github.com/rust-lang/crates.io-index" 1542 | checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" 1543 | dependencies = [ 1544 | "fuel-derive", 1545 | "hex", 1546 | "rand", 1547 | "serde", 1548 | ] 1549 | 1550 | [[package]] 1551 | name = "fuel-vm" 1552 | version = "0.43.1" 1553 | source = "registry+https://github.com/rust-lang/crates.io-index" 1554 | checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" 1555 | dependencies = [ 1556 | "async-trait", 1557 | "backtrace", 1558 | "bitflags 2.4.0", 1559 | "derivative", 1560 | "derive_more", 1561 | "ethnum", 1562 | "fuel-asm", 1563 | "fuel-crypto", 1564 | "fuel-merkle", 1565 | "fuel-storage", 1566 | "fuel-tx", 1567 | "fuel-types", 1568 | "hashbrown 0.14.3", 1569 | "itertools 0.10.5", 1570 | "libm", 1571 | "paste", 1572 | "percent-encoding", 1573 | "primitive-types", 1574 | "serde", 1575 | "sha3", 1576 | "static_assertions", 1577 | "strum", 1578 | "tai64", 1579 | ] 1580 | 1581 | [[package]] 1582 | name = "fuels" 1583 | version = "0.55.0" 1584 | source = "registry+https://github.com/rust-lang/crates.io-index" 1585 | checksum = "2d0761be35fa13d61c0220aa4535d3cc990542032abfc006bef709121a402637" 1586 | dependencies = [ 1587 | "fuel-core", 1588 | "fuel-core-client", 1589 | "fuel-crypto", 1590 | "fuel-tx", 1591 | "fuels-accounts", 1592 | "fuels-core", 1593 | "fuels-macros", 1594 | "fuels-programs", 1595 | "fuels-test-helpers", 1596 | ] 1597 | 1598 | [[package]] 1599 | name = "fuels-accounts" 1600 | version = "0.55.0" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | checksum = "04ddc69fefff879a914aa06b2d7e5396a596399e6db4383015a3d222699f4b31" 1603 | dependencies = [ 1604 | "async-trait", 1605 | "chrono", 1606 | "elliptic-curve", 1607 | "eth-keystore", 1608 | "fuel-core-client", 1609 | "fuel-crypto", 1610 | "fuel-tx", 1611 | "fuel-types", 1612 | "fuels-core", 1613 | "hex", 1614 | "rand", 1615 | "semver", 1616 | "tai64", 1617 | "thiserror", 1618 | "tokio", 1619 | "tracing", 1620 | "zeroize", 1621 | ] 1622 | 1623 | [[package]] 1624 | name = "fuels-code-gen" 1625 | version = "0.55.0" 1626 | source = "registry+https://github.com/rust-lang/crates.io-index" 1627 | checksum = "19daefd4e70d4b6998b6650dea23d982360650f8710e5c7bc6e8a5b91228814d" 1628 | dependencies = [ 1629 | "Inflector", 1630 | "fuel-abi-types", 1631 | "itertools 0.12.0", 1632 | "proc-macro2", 1633 | "quote", 1634 | "regex", 1635 | "serde_json", 1636 | "syn 2.0.40", 1637 | ] 1638 | 1639 | [[package]] 1640 | name = "fuels-core" 1641 | version = "0.55.0" 1642 | source = "registry+https://github.com/rust-lang/crates.io-index" 1643 | checksum = "0389e16906fbb1119006e5c09ce789aeb6d0d8e344372c077ac8484bab8a12b9" 1644 | dependencies = [ 1645 | "async-trait", 1646 | "bech32", 1647 | "chrono", 1648 | "fuel-abi-types", 1649 | "fuel-asm", 1650 | "fuel-core-chain-config", 1651 | "fuel-core-client", 1652 | "fuel-crypto", 1653 | "fuel-tx", 1654 | "fuel-types", 1655 | "fuel-vm", 1656 | "fuels-macros", 1657 | "hex", 1658 | "itertools 0.12.0", 1659 | "serde", 1660 | "serde_json", 1661 | "sha2", 1662 | "thiserror", 1663 | "uint", 1664 | ] 1665 | 1666 | [[package]] 1667 | name = "fuels-macros" 1668 | version = "0.55.0" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "7ce17afcb07246c221da0d5a55d4ffc748d4b49a0fd7058a90b1ad1c6f0023a7" 1671 | dependencies = [ 1672 | "fuels-code-gen", 1673 | "itertools 0.12.0", 1674 | "proc-macro2", 1675 | "quote", 1676 | "rand", 1677 | "syn 2.0.40", 1678 | ] 1679 | 1680 | [[package]] 1681 | name = "fuels-programs" 1682 | version = "0.55.0" 1683 | source = "registry+https://github.com/rust-lang/crates.io-index" 1684 | checksum = "b7898f4e9f3b438de60b55644806bf2718e1c09e0605180c19fb44a8ca0a1165" 1685 | dependencies = [ 1686 | "async-trait", 1687 | "bytes", 1688 | "fuel-abi-types", 1689 | "fuel-asm", 1690 | "fuel-tx", 1691 | "fuel-types", 1692 | "fuels-accounts", 1693 | "fuels-core", 1694 | "itertools 0.12.0", 1695 | "rand", 1696 | "serde_json", 1697 | "tokio", 1698 | ] 1699 | 1700 | [[package]] 1701 | name = "fuels-test-helpers" 1702 | version = "0.55.0" 1703 | source = "registry+https://github.com/rust-lang/crates.io-index" 1704 | checksum = "7620c418f9501713c2cd976f216b9d46ff847a4d681af56e36af17ad26dac14e" 1705 | dependencies = [ 1706 | "fuel-core", 1707 | "fuel-core-chain-config", 1708 | "fuel-core-client", 1709 | "fuel-core-poa", 1710 | "fuel-core-services", 1711 | "fuel-crypto", 1712 | "fuel-tx", 1713 | "fuel-types", 1714 | "fuels-accounts", 1715 | "fuels-core", 1716 | "futures", 1717 | "hex", 1718 | "portpicker", 1719 | "rand", 1720 | "serde", 1721 | "serde_json", 1722 | "serde_with 3.4.0", 1723 | "tempfile", 1724 | "tokio", 1725 | "which", 1726 | ] 1727 | 1728 | [[package]] 1729 | name = "funty" 1730 | version = "2.0.0" 1731 | source = "registry+https://github.com/rust-lang/crates.io-index" 1732 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 1733 | 1734 | [[package]] 1735 | name = "futures" 1736 | version = "0.3.29" 1737 | source = "registry+https://github.com/rust-lang/crates.io-index" 1738 | checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" 1739 | dependencies = [ 1740 | "futures-channel", 1741 | "futures-core", 1742 | "futures-executor", 1743 | "futures-io", 1744 | "futures-sink", 1745 | "futures-task", 1746 | "futures-util", 1747 | ] 1748 | 1749 | [[package]] 1750 | name = "futures-channel" 1751 | version = "0.3.29" 1752 | source = "registry+https://github.com/rust-lang/crates.io-index" 1753 | checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" 1754 | dependencies = [ 1755 | "futures-core", 1756 | "futures-sink", 1757 | ] 1758 | 1759 | [[package]] 1760 | name = "futures-core" 1761 | version = "0.3.29" 1762 | source = "registry+https://github.com/rust-lang/crates.io-index" 1763 | checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" 1764 | 1765 | [[package]] 1766 | name = "futures-executor" 1767 | version = "0.3.29" 1768 | source = "registry+https://github.com/rust-lang/crates.io-index" 1769 | checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" 1770 | dependencies = [ 1771 | "futures-core", 1772 | "futures-task", 1773 | "futures-util", 1774 | ] 1775 | 1776 | [[package]] 1777 | name = "futures-io" 1778 | version = "0.3.29" 1779 | source = "registry+https://github.com/rust-lang/crates.io-index" 1780 | checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" 1781 | 1782 | [[package]] 1783 | name = "futures-macro" 1784 | version = "0.3.29" 1785 | source = "registry+https://github.com/rust-lang/crates.io-index" 1786 | checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" 1787 | dependencies = [ 1788 | "proc-macro2", 1789 | "quote", 1790 | "syn 2.0.40", 1791 | ] 1792 | 1793 | [[package]] 1794 | name = "futures-sink" 1795 | version = "0.3.29" 1796 | source = "registry+https://github.com/rust-lang/crates.io-index" 1797 | checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" 1798 | 1799 | [[package]] 1800 | name = "futures-task" 1801 | version = "0.3.29" 1802 | source = "registry+https://github.com/rust-lang/crates.io-index" 1803 | checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" 1804 | 1805 | [[package]] 1806 | name = "futures-util" 1807 | version = "0.3.29" 1808 | source = "registry+https://github.com/rust-lang/crates.io-index" 1809 | checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" 1810 | dependencies = [ 1811 | "futures-channel", 1812 | "futures-core", 1813 | "futures-io", 1814 | "futures-macro", 1815 | "futures-sink", 1816 | "futures-task", 1817 | "memchr", 1818 | "pin-project-lite", 1819 | "pin-utils", 1820 | "slab", 1821 | ] 1822 | 1823 | [[package]] 1824 | name = "generic-array" 1825 | version = "0.14.7" 1826 | source = "registry+https://github.com/rust-lang/crates.io-index" 1827 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1828 | dependencies = [ 1829 | "typenum", 1830 | "version_check", 1831 | "zeroize", 1832 | ] 1833 | 1834 | [[package]] 1835 | name = "getrandom" 1836 | version = "0.2.8" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" 1839 | dependencies = [ 1840 | "cfg-if", 1841 | "libc", 1842 | "wasi", 1843 | ] 1844 | 1845 | [[package]] 1846 | name = "gimli" 1847 | version = "0.28.0" 1848 | source = "registry+https://github.com/rust-lang/crates.io-index" 1849 | checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" 1850 | 1851 | [[package]] 1852 | name = "graphql-parser" 1853 | version = "0.4.0" 1854 | source = "registry+https://github.com/rust-lang/crates.io-index" 1855 | checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" 1856 | dependencies = [ 1857 | "combine", 1858 | "thiserror", 1859 | ] 1860 | 1861 | [[package]] 1862 | name = "group" 1863 | version = "0.13.0" 1864 | source = "registry+https://github.com/rust-lang/crates.io-index" 1865 | checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" 1866 | dependencies = [ 1867 | "ff", 1868 | "rand_core", 1869 | "subtle", 1870 | ] 1871 | 1872 | [[package]] 1873 | name = "h2" 1874 | version = "0.3.21" 1875 | source = "registry+https://github.com/rust-lang/crates.io-index" 1876 | checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" 1877 | dependencies = [ 1878 | "bytes", 1879 | "fnv", 1880 | "futures-core", 1881 | "futures-sink", 1882 | "futures-util", 1883 | "http", 1884 | "indexmap", 1885 | "slab", 1886 | "tokio", 1887 | "tokio-util", 1888 | "tracing", 1889 | ] 1890 | 1891 | [[package]] 1892 | name = "hash32" 1893 | version = "0.2.1" 1894 | source = "registry+https://github.com/rust-lang/crates.io-index" 1895 | checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" 1896 | dependencies = [ 1897 | "byteorder", 1898 | ] 1899 | 1900 | [[package]] 1901 | name = "hashbrown" 1902 | version = "0.12.3" 1903 | source = "registry+https://github.com/rust-lang/crates.io-index" 1904 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1905 | 1906 | [[package]] 1907 | name = "hashbrown" 1908 | version = "0.13.2" 1909 | source = "registry+https://github.com/rust-lang/crates.io-index" 1910 | checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" 1911 | dependencies = [ 1912 | "ahash", 1913 | ] 1914 | 1915 | [[package]] 1916 | name = "hashbrown" 1917 | version = "0.14.3" 1918 | source = "registry+https://github.com/rust-lang/crates.io-index" 1919 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 1920 | dependencies = [ 1921 | "ahash", 1922 | "allocator-api2", 1923 | "serde", 1924 | ] 1925 | 1926 | [[package]] 1927 | name = "heapless" 1928 | version = "0.7.16" 1929 | source = "registry+https://github.com/rust-lang/crates.io-index" 1930 | checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" 1931 | dependencies = [ 1932 | "atomic-polyfill", 1933 | "hash32", 1934 | "rustc_version", 1935 | "serde", 1936 | "spin 0.9.8", 1937 | "stable_deref_trait", 1938 | ] 1939 | 1940 | [[package]] 1941 | name = "heck" 1942 | version = "0.4.1" 1943 | source = "registry+https://github.com/rust-lang/crates.io-index" 1944 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1945 | 1946 | [[package]] 1947 | name = "hermit-abi" 1948 | version = "0.2.6" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" 1951 | dependencies = [ 1952 | "libc", 1953 | ] 1954 | 1955 | [[package]] 1956 | name = "hermit-abi" 1957 | version = "0.3.1" 1958 | source = "registry+https://github.com/rust-lang/crates.io-index" 1959 | checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" 1960 | 1961 | [[package]] 1962 | name = "hex" 1963 | version = "0.4.3" 1964 | source = "registry+https://github.com/rust-lang/crates.io-index" 1965 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1966 | dependencies = [ 1967 | "serde", 1968 | ] 1969 | 1970 | [[package]] 1971 | name = "hmac" 1972 | version = "0.12.1" 1973 | source = "registry+https://github.com/rust-lang/crates.io-index" 1974 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1975 | dependencies = [ 1976 | "digest", 1977 | ] 1978 | 1979 | [[package]] 1980 | name = "home" 1981 | version = "0.5.5" 1982 | source = "registry+https://github.com/rust-lang/crates.io-index" 1983 | checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" 1984 | dependencies = [ 1985 | "windows-sys 0.48.0", 1986 | ] 1987 | 1988 | [[package]] 1989 | name = "http" 1990 | version = "0.2.9" 1991 | source = "registry+https://github.com/rust-lang/crates.io-index" 1992 | checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" 1993 | dependencies = [ 1994 | "bytes", 1995 | "fnv", 1996 | "itoa", 1997 | ] 1998 | 1999 | [[package]] 2000 | name = "http-body" 2001 | version = "0.4.5" 2002 | source = "registry+https://github.com/rust-lang/crates.io-index" 2003 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 2004 | dependencies = [ 2005 | "bytes", 2006 | "http", 2007 | "pin-project-lite", 2008 | ] 2009 | 2010 | [[package]] 2011 | name = "http-range-header" 2012 | version = "0.3.0" 2013 | source = "registry+https://github.com/rust-lang/crates.io-index" 2014 | checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" 2015 | 2016 | [[package]] 2017 | name = "httparse" 2018 | version = "1.8.0" 2019 | source = "registry+https://github.com/rust-lang/crates.io-index" 2020 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 2021 | 2022 | [[package]] 2023 | name = "httpdate" 2024 | version = "1.0.2" 2025 | source = "registry+https://github.com/rust-lang/crates.io-index" 2026 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 2027 | 2028 | [[package]] 2029 | name = "hyper" 2030 | version = "0.14.27" 2031 | source = "registry+https://github.com/rust-lang/crates.io-index" 2032 | checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" 2033 | dependencies = [ 2034 | "bytes", 2035 | "futures-channel", 2036 | "futures-core", 2037 | "futures-util", 2038 | "h2", 2039 | "http", 2040 | "http-body", 2041 | "httparse", 2042 | "httpdate", 2043 | "itoa", 2044 | "pin-project-lite", 2045 | "socket2 0.4.9", 2046 | "tokio", 2047 | "tower-service", 2048 | "tracing", 2049 | "want", 2050 | ] 2051 | 2052 | [[package]] 2053 | name = "hyper-rustls" 2054 | version = "0.22.1" 2055 | source = "registry+https://github.com/rust-lang/crates.io-index" 2056 | checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" 2057 | dependencies = [ 2058 | "ct-logs", 2059 | "futures-util", 2060 | "hyper", 2061 | "log", 2062 | "rustls 0.19.1", 2063 | "rustls-native-certs 0.5.0", 2064 | "tokio", 2065 | "tokio-rustls 0.22.0", 2066 | "webpki 0.21.4", 2067 | ] 2068 | 2069 | [[package]] 2070 | name = "hyper-rustls" 2071 | version = "0.23.2" 2072 | source = "registry+https://github.com/rust-lang/crates.io-index" 2073 | checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" 2074 | dependencies = [ 2075 | "http", 2076 | "hyper", 2077 | "rustls 0.20.8", 2078 | "tokio", 2079 | "tokio-rustls 0.23.4", 2080 | ] 2081 | 2082 | [[package]] 2083 | name = "hyper-rustls" 2084 | version = "0.24.1" 2085 | source = "registry+https://github.com/rust-lang/crates.io-index" 2086 | checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" 2087 | dependencies = [ 2088 | "futures-util", 2089 | "http", 2090 | "hyper", 2091 | "log", 2092 | "rustls 0.21.6", 2093 | "rustls-native-certs 0.6.3", 2094 | "tokio", 2095 | "tokio-rustls 0.24.1", 2096 | "webpki-roots 0.23.1", 2097 | ] 2098 | 2099 | [[package]] 2100 | name = "hyper-timeout" 2101 | version = "0.4.1" 2102 | source = "registry+https://github.com/rust-lang/crates.io-index" 2103 | checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" 2104 | dependencies = [ 2105 | "hyper", 2106 | "pin-project-lite", 2107 | "tokio", 2108 | "tokio-io-timeout", 2109 | ] 2110 | 2111 | [[package]] 2112 | name = "iana-time-zone" 2113 | version = "0.1.56" 2114 | source = "registry+https://github.com/rust-lang/crates.io-index" 2115 | checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" 2116 | dependencies = [ 2117 | "android_system_properties", 2118 | "core-foundation-sys", 2119 | "iana-time-zone-haiku", 2120 | "js-sys", 2121 | "wasm-bindgen", 2122 | "windows", 2123 | ] 2124 | 2125 | [[package]] 2126 | name = "iana-time-zone-haiku" 2127 | version = "0.1.1" 2128 | source = "registry+https://github.com/rust-lang/crates.io-index" 2129 | checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" 2130 | dependencies = [ 2131 | "cxx", 2132 | "cxx-build", 2133 | ] 2134 | 2135 | [[package]] 2136 | name = "ident_case" 2137 | version = "1.0.1" 2138 | source = "registry+https://github.com/rust-lang/crates.io-index" 2139 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 2140 | 2141 | [[package]] 2142 | name = "idna" 2143 | version = "0.2.3" 2144 | source = "registry+https://github.com/rust-lang/crates.io-index" 2145 | checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" 2146 | dependencies = [ 2147 | "matches", 2148 | "unicode-bidi", 2149 | "unicode-normalization", 2150 | ] 2151 | 2152 | [[package]] 2153 | name = "idna" 2154 | version = "0.3.0" 2155 | source = "registry+https://github.com/rust-lang/crates.io-index" 2156 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 2157 | dependencies = [ 2158 | "unicode-bidi", 2159 | "unicode-normalization", 2160 | ] 2161 | 2162 | [[package]] 2163 | name = "indexmap" 2164 | version = "1.9.3" 2165 | source = "registry+https://github.com/rust-lang/crates.io-index" 2166 | checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" 2167 | dependencies = [ 2168 | "autocfg", 2169 | "hashbrown 0.12.3", 2170 | "serde", 2171 | ] 2172 | 2173 | [[package]] 2174 | name = "inout" 2175 | version = "0.1.3" 2176 | source = "registry+https://github.com/rust-lang/crates.io-index" 2177 | checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" 2178 | dependencies = [ 2179 | "generic-array", 2180 | ] 2181 | 2182 | [[package]] 2183 | name = "io-lifetimes" 2184 | version = "1.0.10" 2185 | source = "registry+https://github.com/rust-lang/crates.io-index" 2186 | checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" 2187 | dependencies = [ 2188 | "hermit-abi 0.3.1", 2189 | "libc", 2190 | "windows-sys 0.48.0", 2191 | ] 2192 | 2193 | [[package]] 2194 | name = "ipnet" 2195 | version = "2.7.2" 2196 | source = "registry+https://github.com/rust-lang/crates.io-index" 2197 | checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" 2198 | 2199 | [[package]] 2200 | name = "is-terminal" 2201 | version = "0.4.6" 2202 | source = "registry+https://github.com/rust-lang/crates.io-index" 2203 | checksum = "256017f749ab3117e93acb91063009e1f1bb56d03965b14c2c8df4eb02c524d8" 2204 | dependencies = [ 2205 | "hermit-abi 0.3.1", 2206 | "io-lifetimes", 2207 | "rustix 0.37.7", 2208 | "windows-sys 0.45.0", 2209 | ] 2210 | 2211 | [[package]] 2212 | name = "itertools" 2213 | version = "0.10.5" 2214 | source = "registry+https://github.com/rust-lang/crates.io-index" 2215 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 2216 | dependencies = [ 2217 | "either", 2218 | ] 2219 | 2220 | [[package]] 2221 | name = "itertools" 2222 | version = "0.12.0" 2223 | source = "registry+https://github.com/rust-lang/crates.io-index" 2224 | checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" 2225 | dependencies = [ 2226 | "either", 2227 | ] 2228 | 2229 | [[package]] 2230 | name = "itoa" 2231 | version = "1.0.6" 2232 | source = "registry+https://github.com/rust-lang/crates.io-index" 2233 | checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" 2234 | 2235 | [[package]] 2236 | name = "js-sys" 2237 | version = "0.3.61" 2238 | source = "registry+https://github.com/rust-lang/crates.io-index" 2239 | checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" 2240 | dependencies = [ 2241 | "wasm-bindgen", 2242 | ] 2243 | 2244 | [[package]] 2245 | name = "k256" 2246 | version = "0.13.1" 2247 | source = "registry+https://github.com/rust-lang/crates.io-index" 2248 | checksum = "cadb76004ed8e97623117f3df85b17aaa6626ab0b0831e6573f104df16cd1bcc" 2249 | dependencies = [ 2250 | "cfg-if", 2251 | "ecdsa", 2252 | "elliptic-curve", 2253 | "once_cell", 2254 | "sha2", 2255 | "signature", 2256 | ] 2257 | 2258 | [[package]] 2259 | name = "keccak" 2260 | version = "0.1.3" 2261 | source = "registry+https://github.com/rust-lang/crates.io-index" 2262 | checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" 2263 | dependencies = [ 2264 | "cpufeatures", 2265 | ] 2266 | 2267 | [[package]] 2268 | name = "lazy_static" 2269 | version = "1.4.0" 2270 | source = "registry+https://github.com/rust-lang/crates.io-index" 2271 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 2272 | 2273 | [[package]] 2274 | name = "libc" 2275 | version = "0.2.151" 2276 | source = "registry+https://github.com/rust-lang/crates.io-index" 2277 | checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" 2278 | 2279 | [[package]] 2280 | name = "libm" 2281 | version = "0.2.8" 2282 | source = "registry+https://github.com/rust-lang/crates.io-index" 2283 | checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" 2284 | 2285 | [[package]] 2286 | name = "link-cplusplus" 2287 | version = "1.0.8" 2288 | source = "registry+https://github.com/rust-lang/crates.io-index" 2289 | checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" 2290 | dependencies = [ 2291 | "cc", 2292 | ] 2293 | 2294 | [[package]] 2295 | name = "linux-raw-sys" 2296 | version = "0.3.1" 2297 | source = "registry+https://github.com/rust-lang/crates.io-index" 2298 | checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" 2299 | 2300 | [[package]] 2301 | name = "linux-raw-sys" 2302 | version = "0.4.12" 2303 | source = "registry+https://github.com/rust-lang/crates.io-index" 2304 | checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" 2305 | 2306 | [[package]] 2307 | name = "lock_api" 2308 | version = "0.4.9" 2309 | source = "registry+https://github.com/rust-lang/crates.io-index" 2310 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 2311 | dependencies = [ 2312 | "autocfg", 2313 | "scopeguard", 2314 | ] 2315 | 2316 | [[package]] 2317 | name = "log" 2318 | version = "0.4.17" 2319 | source = "registry+https://github.com/rust-lang/crates.io-index" 2320 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 2321 | dependencies = [ 2322 | "cfg-if", 2323 | ] 2324 | 2325 | [[package]] 2326 | name = "matches" 2327 | version = "0.1.10" 2328 | source = "registry+https://github.com/rust-lang/crates.io-index" 2329 | checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" 2330 | 2331 | [[package]] 2332 | name = "matchit" 2333 | version = "0.5.0" 2334 | source = "registry+https://github.com/rust-lang/crates.io-index" 2335 | checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" 2336 | 2337 | [[package]] 2338 | name = "memchr" 2339 | version = "2.6.4" 2340 | source = "registry+https://github.com/rust-lang/crates.io-index" 2341 | checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" 2342 | 2343 | [[package]] 2344 | name = "memoffset" 2345 | version = "0.9.0" 2346 | source = "registry+https://github.com/rust-lang/crates.io-index" 2347 | checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" 2348 | dependencies = [ 2349 | "autocfg", 2350 | ] 2351 | 2352 | [[package]] 2353 | name = "mime" 2354 | version = "0.3.17" 2355 | source = "registry+https://github.com/rust-lang/crates.io-index" 2356 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 2357 | 2358 | [[package]] 2359 | name = "miniz_oxide" 2360 | version = "0.7.1" 2361 | source = "registry+https://github.com/rust-lang/crates.io-index" 2362 | checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" 2363 | dependencies = [ 2364 | "adler", 2365 | ] 2366 | 2367 | [[package]] 2368 | name = "mio" 2369 | version = "0.8.10" 2370 | source = "registry+https://github.com/rust-lang/crates.io-index" 2371 | checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" 2372 | dependencies = [ 2373 | "libc", 2374 | "wasi", 2375 | "windows-sys 0.48.0", 2376 | ] 2377 | 2378 | [[package]] 2379 | name = "multer" 2380 | version = "2.1.0" 2381 | source = "registry+https://github.com/rust-lang/crates.io-index" 2382 | checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" 2383 | dependencies = [ 2384 | "bytes", 2385 | "encoding_rs", 2386 | "futures-util", 2387 | "http", 2388 | "httparse", 2389 | "log", 2390 | "memchr", 2391 | "mime", 2392 | "spin 0.9.8", 2393 | "version_check", 2394 | ] 2395 | 2396 | [[package]] 2397 | name = "num-traits" 2398 | version = "0.2.15" 2399 | source = "registry+https://github.com/rust-lang/crates.io-index" 2400 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" 2401 | dependencies = [ 2402 | "autocfg", 2403 | ] 2404 | 2405 | [[package]] 2406 | name = "num_cpus" 2407 | version = "1.15.0" 2408 | source = "registry+https://github.com/rust-lang/crates.io-index" 2409 | checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" 2410 | dependencies = [ 2411 | "hermit-abi 0.2.6", 2412 | "libc", 2413 | ] 2414 | 2415 | [[package]] 2416 | name = "object" 2417 | version = "0.32.0" 2418 | source = "registry+https://github.com/rust-lang/crates.io-index" 2419 | checksum = "77ac5bbd07aea88c60a577a1ce218075ffd59208b2d7ca97adf9bfc5aeb21ebe" 2420 | dependencies = [ 2421 | "memchr", 2422 | ] 2423 | 2424 | [[package]] 2425 | name = "once_cell" 2426 | version = "1.17.1" 2427 | source = "registry+https://github.com/rust-lang/crates.io-index" 2428 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 2429 | 2430 | [[package]] 2431 | name = "openssl-probe" 2432 | version = "0.1.5" 2433 | source = "registry+https://github.com/rust-lang/crates.io-index" 2434 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 2435 | 2436 | [[package]] 2437 | name = "p256" 2438 | version = "0.13.2" 2439 | source = "registry+https://github.com/rust-lang/crates.io-index" 2440 | checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" 2441 | dependencies = [ 2442 | "ecdsa", 2443 | "elliptic-curve", 2444 | "primeorder", 2445 | "sha2", 2446 | ] 2447 | 2448 | [[package]] 2449 | name = "parking_lot" 2450 | version = "0.12.1" 2451 | source = "registry+https://github.com/rust-lang/crates.io-index" 2452 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 2453 | dependencies = [ 2454 | "lock_api", 2455 | "parking_lot_core", 2456 | ] 2457 | 2458 | [[package]] 2459 | name = "parking_lot_core" 2460 | version = "0.9.7" 2461 | source = "registry+https://github.com/rust-lang/crates.io-index" 2462 | checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" 2463 | dependencies = [ 2464 | "cfg-if", 2465 | "libc", 2466 | "redox_syscall 0.2.16", 2467 | "smallvec", 2468 | "windows-sys 0.45.0", 2469 | ] 2470 | 2471 | [[package]] 2472 | name = "paste" 2473 | version = "1.0.14" 2474 | source = "registry+https://github.com/rust-lang/crates.io-index" 2475 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 2476 | 2477 | [[package]] 2478 | name = "pbkdf2" 2479 | version = "0.11.0" 2480 | source = "registry+https://github.com/rust-lang/crates.io-index" 2481 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" 2482 | dependencies = [ 2483 | "digest", 2484 | ] 2485 | 2486 | [[package]] 2487 | name = "pbkdf2" 2488 | version = "0.12.1" 2489 | source = "registry+https://github.com/rust-lang/crates.io-index" 2490 | checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" 2491 | dependencies = [ 2492 | "digest", 2493 | "hmac", 2494 | ] 2495 | 2496 | [[package]] 2497 | name = "percent-encoding" 2498 | version = "2.3.1" 2499 | source = "registry+https://github.com/rust-lang/crates.io-index" 2500 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 2501 | 2502 | [[package]] 2503 | name = "pest" 2504 | version = "2.5.7" 2505 | source = "registry+https://github.com/rust-lang/crates.io-index" 2506 | checksum = "7b1403e8401ad5dedea73c626b99758535b342502f8d1e361f4a2dd952749122" 2507 | dependencies = [ 2508 | "thiserror", 2509 | "ucd-trie", 2510 | ] 2511 | 2512 | [[package]] 2513 | name = "pin-project" 2514 | version = "1.0.12" 2515 | source = "registry+https://github.com/rust-lang/crates.io-index" 2516 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 2517 | dependencies = [ 2518 | "pin-project-internal", 2519 | ] 2520 | 2521 | [[package]] 2522 | name = "pin-project-internal" 2523 | version = "1.0.12" 2524 | source = "registry+https://github.com/rust-lang/crates.io-index" 2525 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 2526 | dependencies = [ 2527 | "proc-macro2", 2528 | "quote", 2529 | "syn 1.0.109", 2530 | ] 2531 | 2532 | [[package]] 2533 | name = "pin-project-lite" 2534 | version = "0.2.13" 2535 | source = "registry+https://github.com/rust-lang/crates.io-index" 2536 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 2537 | 2538 | [[package]] 2539 | name = "pin-utils" 2540 | version = "0.1.0" 2541 | source = "registry+https://github.com/rust-lang/crates.io-index" 2542 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2543 | 2544 | [[package]] 2545 | name = "pkcs8" 2546 | version = "0.10.2" 2547 | source = "registry+https://github.com/rust-lang/crates.io-index" 2548 | checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 2549 | dependencies = [ 2550 | "der", 2551 | "spki", 2552 | ] 2553 | 2554 | [[package]] 2555 | name = "platforms" 2556 | version = "3.1.2" 2557 | source = "registry+https://github.com/rust-lang/crates.io-index" 2558 | checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" 2559 | 2560 | [[package]] 2561 | name = "portpicker" 2562 | version = "0.1.1" 2563 | source = "registry+https://github.com/rust-lang/crates.io-index" 2564 | checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9" 2565 | dependencies = [ 2566 | "rand", 2567 | ] 2568 | 2569 | [[package]] 2570 | name = "postcard" 2571 | version = "1.0.4" 2572 | source = "registry+https://github.com/rust-lang/crates.io-index" 2573 | checksum = "cfa512cd0d087cc9f99ad30a1bf64795b67871edbead083ffc3a4dfafa59aa00" 2574 | dependencies = [ 2575 | "cobs", 2576 | "heapless", 2577 | "serde", 2578 | ] 2579 | 2580 | [[package]] 2581 | name = "ppv-lite86" 2582 | version = "0.2.17" 2583 | source = "registry+https://github.com/rust-lang/crates.io-index" 2584 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2585 | 2586 | [[package]] 2587 | name = "primeorder" 2588 | version = "0.13.2" 2589 | source = "registry+https://github.com/rust-lang/crates.io-index" 2590 | checksum = "3c2fcef82c0ec6eefcc179b978446c399b3cdf73c392c35604e399eee6df1ee3" 2591 | dependencies = [ 2592 | "elliptic-curve", 2593 | ] 2594 | 2595 | [[package]] 2596 | name = "primitive-types" 2597 | version = "0.12.1" 2598 | source = "registry+https://github.com/rust-lang/crates.io-index" 2599 | checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" 2600 | dependencies = [ 2601 | "fixed-hash", 2602 | "uint", 2603 | ] 2604 | 2605 | [[package]] 2606 | name = "proc-macro-crate" 2607 | version = "1.3.1" 2608 | source = "registry+https://github.com/rust-lang/crates.io-index" 2609 | checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" 2610 | dependencies = [ 2611 | "once_cell", 2612 | "toml_edit", 2613 | ] 2614 | 2615 | [[package]] 2616 | name = "proc-macro2" 2617 | version = "1.0.70" 2618 | source = "registry+https://github.com/rust-lang/crates.io-index" 2619 | checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" 2620 | dependencies = [ 2621 | "unicode-ident", 2622 | ] 2623 | 2624 | [[package]] 2625 | name = "prometheus-client" 2626 | version = "0.18.1" 2627 | source = "registry+https://github.com/rust-lang/crates.io-index" 2628 | checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" 2629 | dependencies = [ 2630 | "dtoa", 2631 | "itoa", 2632 | "parking_lot", 2633 | "prometheus-client-derive-text-encode", 2634 | ] 2635 | 2636 | [[package]] 2637 | name = "prometheus-client" 2638 | version = "0.20.0" 2639 | source = "registry+https://github.com/rust-lang/crates.io-index" 2640 | checksum = "e227aeb6c2cfec819e999c4773b35f8c7fa37298a203ff46420095458eee567e" 2641 | dependencies = [ 2642 | "dtoa", 2643 | "itoa", 2644 | "parking_lot", 2645 | "prometheus-client-derive-encode", 2646 | ] 2647 | 2648 | [[package]] 2649 | name = "prometheus-client-derive-encode" 2650 | version = "0.4.2" 2651 | source = "registry+https://github.com/rust-lang/crates.io-index" 2652 | checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" 2653 | dependencies = [ 2654 | "proc-macro2", 2655 | "quote", 2656 | "syn 2.0.40", 2657 | ] 2658 | 2659 | [[package]] 2660 | name = "prometheus-client-derive-text-encode" 2661 | version = "0.3.0" 2662 | source = "registry+https://github.com/rust-lang/crates.io-index" 2663 | checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" 2664 | dependencies = [ 2665 | "proc-macro2", 2666 | "quote", 2667 | "syn 1.0.109", 2668 | ] 2669 | 2670 | [[package]] 2671 | name = "psl-types" 2672 | version = "2.0.11" 2673 | source = "registry+https://github.com/rust-lang/crates.io-index" 2674 | checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" 2675 | 2676 | [[package]] 2677 | name = "publicsuffix" 2678 | version = "2.2.3" 2679 | source = "registry+https://github.com/rust-lang/crates.io-index" 2680 | checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" 2681 | dependencies = [ 2682 | "idna 0.3.0", 2683 | "psl-types", 2684 | ] 2685 | 2686 | [[package]] 2687 | name = "quote" 2688 | version = "1.0.33" 2689 | source = "registry+https://github.com/rust-lang/crates.io-index" 2690 | checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" 2691 | dependencies = [ 2692 | "proc-macro2", 2693 | ] 2694 | 2695 | [[package]] 2696 | name = "radium" 2697 | version = "0.7.0" 2698 | source = "registry+https://github.com/rust-lang/crates.io-index" 2699 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 2700 | 2701 | [[package]] 2702 | name = "rand" 2703 | version = "0.8.5" 2704 | source = "registry+https://github.com/rust-lang/crates.io-index" 2705 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2706 | dependencies = [ 2707 | "libc", 2708 | "rand_chacha", 2709 | "rand_core", 2710 | ] 2711 | 2712 | [[package]] 2713 | name = "rand_chacha" 2714 | version = "0.3.1" 2715 | source = "registry+https://github.com/rust-lang/crates.io-index" 2716 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2717 | dependencies = [ 2718 | "ppv-lite86", 2719 | "rand_core", 2720 | ] 2721 | 2722 | [[package]] 2723 | name = "rand_core" 2724 | version = "0.6.4" 2725 | source = "registry+https://github.com/rust-lang/crates.io-index" 2726 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2727 | dependencies = [ 2728 | "getrandom", 2729 | ] 2730 | 2731 | [[package]] 2732 | name = "rayon" 2733 | version = "1.7.0" 2734 | source = "registry+https://github.com/rust-lang/crates.io-index" 2735 | checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" 2736 | dependencies = [ 2737 | "either", 2738 | "rayon-core", 2739 | ] 2740 | 2741 | [[package]] 2742 | name = "rayon-core" 2743 | version = "1.11.0" 2744 | source = "registry+https://github.com/rust-lang/crates.io-index" 2745 | checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" 2746 | dependencies = [ 2747 | "crossbeam-channel", 2748 | "crossbeam-deque", 2749 | "crossbeam-utils", 2750 | "num_cpus", 2751 | ] 2752 | 2753 | [[package]] 2754 | name = "redox_syscall" 2755 | version = "0.2.16" 2756 | source = "registry+https://github.com/rust-lang/crates.io-index" 2757 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 2758 | dependencies = [ 2759 | "bitflags 1.3.2", 2760 | ] 2761 | 2762 | [[package]] 2763 | name = "redox_syscall" 2764 | version = "0.4.1" 2765 | source = "registry+https://github.com/rust-lang/crates.io-index" 2766 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 2767 | dependencies = [ 2768 | "bitflags 1.3.2", 2769 | ] 2770 | 2771 | [[package]] 2772 | name = "regex" 2773 | version = "1.10.2" 2774 | source = "registry+https://github.com/rust-lang/crates.io-index" 2775 | checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" 2776 | dependencies = [ 2777 | "aho-corasick", 2778 | "memchr", 2779 | "regex-automata", 2780 | "regex-syntax", 2781 | ] 2782 | 2783 | [[package]] 2784 | name = "regex-automata" 2785 | version = "0.4.3" 2786 | source = "registry+https://github.com/rust-lang/crates.io-index" 2787 | checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" 2788 | dependencies = [ 2789 | "aho-corasick", 2790 | "memchr", 2791 | "regex-syntax", 2792 | ] 2793 | 2794 | [[package]] 2795 | name = "regex-syntax" 2796 | version = "0.8.2" 2797 | source = "registry+https://github.com/rust-lang/crates.io-index" 2798 | checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 2799 | 2800 | [[package]] 2801 | name = "reqwest" 2802 | version = "0.11.16" 2803 | source = "registry+https://github.com/rust-lang/crates.io-index" 2804 | checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" 2805 | dependencies = [ 2806 | "base64 0.21.0", 2807 | "bytes", 2808 | "cookie", 2809 | "cookie_store", 2810 | "encoding_rs", 2811 | "futures-core", 2812 | "futures-util", 2813 | "h2", 2814 | "http", 2815 | "http-body", 2816 | "hyper", 2817 | "hyper-rustls 0.23.2", 2818 | "ipnet", 2819 | "js-sys", 2820 | "log", 2821 | "mime", 2822 | "once_cell", 2823 | "percent-encoding", 2824 | "pin-project-lite", 2825 | "rustls 0.20.8", 2826 | "rustls-pemfile", 2827 | "serde", 2828 | "serde_json", 2829 | "serde_urlencoded", 2830 | "tokio", 2831 | "tokio-rustls 0.23.4", 2832 | "tower-service", 2833 | "url", 2834 | "wasm-bindgen", 2835 | "wasm-bindgen-futures", 2836 | "web-sys", 2837 | "webpki-roots 0.22.6", 2838 | "winreg", 2839 | ] 2840 | 2841 | [[package]] 2842 | name = "rfc6979" 2843 | version = "0.4.0" 2844 | source = "registry+https://github.com/rust-lang/crates.io-index" 2845 | checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" 2846 | dependencies = [ 2847 | "hmac", 2848 | "subtle", 2849 | ] 2850 | 2851 | [[package]] 2852 | name = "ring" 2853 | version = "0.16.20" 2854 | source = "registry+https://github.com/rust-lang/crates.io-index" 2855 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 2856 | dependencies = [ 2857 | "cc", 2858 | "libc", 2859 | "once_cell", 2860 | "spin 0.5.2", 2861 | "untrusted", 2862 | "web-sys", 2863 | "winapi", 2864 | ] 2865 | 2866 | [[package]] 2867 | name = "ripemd" 2868 | version = "0.1.3" 2869 | source = "registry+https://github.com/rust-lang/crates.io-index" 2870 | checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" 2871 | dependencies = [ 2872 | "digest", 2873 | ] 2874 | 2875 | [[package]] 2876 | name = "rustc-demangle" 2877 | version = "0.1.23" 2878 | source = "registry+https://github.com/rust-lang/crates.io-index" 2879 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 2880 | 2881 | [[package]] 2882 | name = "rustc_version" 2883 | version = "0.4.0" 2884 | source = "registry+https://github.com/rust-lang/crates.io-index" 2885 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2886 | dependencies = [ 2887 | "semver", 2888 | ] 2889 | 2890 | [[package]] 2891 | name = "rustix" 2892 | version = "0.37.7" 2893 | source = "registry+https://github.com/rust-lang/crates.io-index" 2894 | checksum = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d" 2895 | dependencies = [ 2896 | "bitflags 1.3.2", 2897 | "errno", 2898 | "io-lifetimes", 2899 | "libc", 2900 | "linux-raw-sys 0.3.1", 2901 | "windows-sys 0.45.0", 2902 | ] 2903 | 2904 | [[package]] 2905 | name = "rustix" 2906 | version = "0.38.28" 2907 | source = "registry+https://github.com/rust-lang/crates.io-index" 2908 | checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" 2909 | dependencies = [ 2910 | "bitflags 2.4.0", 2911 | "errno", 2912 | "libc", 2913 | "linux-raw-sys 0.4.12", 2914 | "windows-sys 0.52.0", 2915 | ] 2916 | 2917 | [[package]] 2918 | name = "rustls" 2919 | version = "0.19.1" 2920 | source = "registry+https://github.com/rust-lang/crates.io-index" 2921 | checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" 2922 | dependencies = [ 2923 | "base64 0.13.1", 2924 | "log", 2925 | "ring", 2926 | "sct 0.6.1", 2927 | "webpki 0.21.4", 2928 | ] 2929 | 2930 | [[package]] 2931 | name = "rustls" 2932 | version = "0.20.8" 2933 | source = "registry+https://github.com/rust-lang/crates.io-index" 2934 | checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" 2935 | dependencies = [ 2936 | "log", 2937 | "ring", 2938 | "sct 0.7.0", 2939 | "webpki 0.22.0", 2940 | ] 2941 | 2942 | [[package]] 2943 | name = "rustls" 2944 | version = "0.21.6" 2945 | source = "registry+https://github.com/rust-lang/crates.io-index" 2946 | checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb" 2947 | dependencies = [ 2948 | "log", 2949 | "ring", 2950 | "rustls-webpki 0.101.4", 2951 | "sct 0.7.0", 2952 | ] 2953 | 2954 | [[package]] 2955 | name = "rustls-native-certs" 2956 | version = "0.5.0" 2957 | source = "registry+https://github.com/rust-lang/crates.io-index" 2958 | checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" 2959 | dependencies = [ 2960 | "openssl-probe", 2961 | "rustls 0.19.1", 2962 | "schannel", 2963 | "security-framework", 2964 | ] 2965 | 2966 | [[package]] 2967 | name = "rustls-native-certs" 2968 | version = "0.6.3" 2969 | source = "registry+https://github.com/rust-lang/crates.io-index" 2970 | checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" 2971 | dependencies = [ 2972 | "openssl-probe", 2973 | "rustls-pemfile", 2974 | "schannel", 2975 | "security-framework", 2976 | ] 2977 | 2978 | [[package]] 2979 | name = "rustls-pemfile" 2980 | version = "1.0.2" 2981 | source = "registry+https://github.com/rust-lang/crates.io-index" 2982 | checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" 2983 | dependencies = [ 2984 | "base64 0.21.0", 2985 | ] 2986 | 2987 | [[package]] 2988 | name = "rustls-webpki" 2989 | version = "0.100.2" 2990 | source = "registry+https://github.com/rust-lang/crates.io-index" 2991 | checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab" 2992 | dependencies = [ 2993 | "ring", 2994 | "untrusted", 2995 | ] 2996 | 2997 | [[package]] 2998 | name = "rustls-webpki" 2999 | version = "0.101.4" 3000 | source = "registry+https://github.com/rust-lang/crates.io-index" 3001 | checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" 3002 | dependencies = [ 3003 | "ring", 3004 | "untrusted", 3005 | ] 3006 | 3007 | [[package]] 3008 | name = "rustversion" 3009 | version = "1.0.12" 3010 | source = "registry+https://github.com/rust-lang/crates.io-index" 3011 | checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" 3012 | 3013 | [[package]] 3014 | name = "ryu" 3015 | version = "1.0.13" 3016 | source = "registry+https://github.com/rust-lang/crates.io-index" 3017 | checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" 3018 | 3019 | [[package]] 3020 | name = "salsa20" 3021 | version = "0.10.2" 3022 | source = "registry+https://github.com/rust-lang/crates.io-index" 3023 | checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" 3024 | dependencies = [ 3025 | "cipher", 3026 | ] 3027 | 3028 | [[package]] 3029 | name = "schannel" 3030 | version = "0.1.21" 3031 | source = "registry+https://github.com/rust-lang/crates.io-index" 3032 | checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" 3033 | dependencies = [ 3034 | "windows-sys 0.42.0", 3035 | ] 3036 | 3037 | [[package]] 3038 | name = "schemafy_core" 3039 | version = "0.5.2" 3040 | source = "registry+https://github.com/rust-lang/crates.io-index" 3041 | checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" 3042 | dependencies = [ 3043 | "serde", 3044 | "serde_json", 3045 | ] 3046 | 3047 | [[package]] 3048 | name = "schemafy_lib" 3049 | version = "0.5.2" 3050 | source = "registry+https://github.com/rust-lang/crates.io-index" 3051 | checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" 3052 | dependencies = [ 3053 | "Inflector", 3054 | "proc-macro2", 3055 | "quote", 3056 | "schemafy_core", 3057 | "serde", 3058 | "serde_derive", 3059 | "serde_json", 3060 | "syn 1.0.109", 3061 | ] 3062 | 3063 | [[package]] 3064 | name = "scopeguard" 3065 | version = "1.1.0" 3066 | source = "registry+https://github.com/rust-lang/crates.io-index" 3067 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 3068 | 3069 | [[package]] 3070 | name = "scratch" 3071 | version = "1.0.5" 3072 | source = "registry+https://github.com/rust-lang/crates.io-index" 3073 | checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" 3074 | 3075 | [[package]] 3076 | name = "scrypt" 3077 | version = "0.10.0" 3078 | source = "registry+https://github.com/rust-lang/crates.io-index" 3079 | checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" 3080 | dependencies = [ 3081 | "hmac", 3082 | "pbkdf2 0.11.0", 3083 | "salsa20", 3084 | "sha2", 3085 | ] 3086 | 3087 | [[package]] 3088 | name = "sct" 3089 | version = "0.6.1" 3090 | source = "registry+https://github.com/rust-lang/crates.io-index" 3091 | checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" 3092 | dependencies = [ 3093 | "ring", 3094 | "untrusted", 3095 | ] 3096 | 3097 | [[package]] 3098 | name = "sct" 3099 | version = "0.7.0" 3100 | source = "registry+https://github.com/rust-lang/crates.io-index" 3101 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 3102 | dependencies = [ 3103 | "ring", 3104 | "untrusted", 3105 | ] 3106 | 3107 | [[package]] 3108 | name = "sec1" 3109 | version = "0.7.3" 3110 | source = "registry+https://github.com/rust-lang/crates.io-index" 3111 | checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" 3112 | dependencies = [ 3113 | "base16ct", 3114 | "der", 3115 | "generic-array", 3116 | "pkcs8", 3117 | "subtle", 3118 | "zeroize", 3119 | ] 3120 | 3121 | [[package]] 3122 | name = "secp256k1" 3123 | version = "0.26.0" 3124 | source = "registry+https://github.com/rust-lang/crates.io-index" 3125 | checksum = "4124a35fe33ae14259c490fd70fa199a32b9ce9502f2ee6bc4f81ec06fa65894" 3126 | dependencies = [ 3127 | "rand", 3128 | "secp256k1-sys", 3129 | ] 3130 | 3131 | [[package]] 3132 | name = "secp256k1-sys" 3133 | version = "0.8.1" 3134 | source = "registry+https://github.com/rust-lang/crates.io-index" 3135 | checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" 3136 | dependencies = [ 3137 | "cc", 3138 | ] 3139 | 3140 | [[package]] 3141 | name = "secrecy" 3142 | version = "0.8.0" 3143 | source = "registry+https://github.com/rust-lang/crates.io-index" 3144 | checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" 3145 | dependencies = [ 3146 | "zeroize", 3147 | ] 3148 | 3149 | [[package]] 3150 | name = "security-framework" 3151 | version = "2.8.2" 3152 | source = "registry+https://github.com/rust-lang/crates.io-index" 3153 | checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" 3154 | dependencies = [ 3155 | "bitflags 1.3.2", 3156 | "core-foundation", 3157 | "core-foundation-sys", 3158 | "libc", 3159 | "security-framework-sys", 3160 | ] 3161 | 3162 | [[package]] 3163 | name = "security-framework-sys" 3164 | version = "2.8.0" 3165 | source = "registry+https://github.com/rust-lang/crates.io-index" 3166 | checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" 3167 | dependencies = [ 3168 | "core-foundation-sys", 3169 | "libc", 3170 | ] 3171 | 3172 | [[package]] 3173 | name = "semver" 3174 | version = "1.0.20" 3175 | source = "registry+https://github.com/rust-lang/crates.io-index" 3176 | checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" 3177 | 3178 | [[package]] 3179 | name = "serde" 3180 | version = "1.0.193" 3181 | source = "registry+https://github.com/rust-lang/crates.io-index" 3182 | checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" 3183 | dependencies = [ 3184 | "serde_derive", 3185 | ] 3186 | 3187 | [[package]] 3188 | name = "serde_derive" 3189 | version = "1.0.193" 3190 | source = "registry+https://github.com/rust-lang/crates.io-index" 3191 | checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" 3192 | dependencies = [ 3193 | "proc-macro2", 3194 | "quote", 3195 | "syn 2.0.40", 3196 | ] 3197 | 3198 | [[package]] 3199 | name = "serde_json" 3200 | version = "1.0.108" 3201 | source = "registry+https://github.com/rust-lang/crates.io-index" 3202 | checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" 3203 | dependencies = [ 3204 | "itoa", 3205 | "ryu", 3206 | "serde", 3207 | ] 3208 | 3209 | [[package]] 3210 | name = "serde_urlencoded" 3211 | version = "0.7.1" 3212 | source = "registry+https://github.com/rust-lang/crates.io-index" 3213 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 3214 | dependencies = [ 3215 | "form_urlencoded", 3216 | "itoa", 3217 | "ryu", 3218 | "serde", 3219 | ] 3220 | 3221 | [[package]] 3222 | name = "serde_with" 3223 | version = "1.14.0" 3224 | source = "registry+https://github.com/rust-lang/crates.io-index" 3225 | checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" 3226 | dependencies = [ 3227 | "serde", 3228 | "serde_with_macros", 3229 | ] 3230 | 3231 | [[package]] 3232 | name = "serde_with" 3233 | version = "3.4.0" 3234 | source = "registry+https://github.com/rust-lang/crates.io-index" 3235 | checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" 3236 | dependencies = [ 3237 | "serde", 3238 | ] 3239 | 3240 | [[package]] 3241 | name = "serde_with_macros" 3242 | version = "1.5.2" 3243 | source = "registry+https://github.com/rust-lang/crates.io-index" 3244 | checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" 3245 | dependencies = [ 3246 | "darling 0.13.4", 3247 | "proc-macro2", 3248 | "quote", 3249 | "syn 1.0.109", 3250 | ] 3251 | 3252 | [[package]] 3253 | name = "sha2" 3254 | version = "0.10.8" 3255 | source = "registry+https://github.com/rust-lang/crates.io-index" 3256 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 3257 | dependencies = [ 3258 | "cfg-if", 3259 | "cpufeatures", 3260 | "digest", 3261 | ] 3262 | 3263 | [[package]] 3264 | name = "sha3" 3265 | version = "0.10.6" 3266 | source = "registry+https://github.com/rust-lang/crates.io-index" 3267 | checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" 3268 | dependencies = [ 3269 | "digest", 3270 | "keccak", 3271 | ] 3272 | 3273 | [[package]] 3274 | name = "signal-hook-registry" 3275 | version = "1.4.1" 3276 | source = "registry+https://github.com/rust-lang/crates.io-index" 3277 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 3278 | dependencies = [ 3279 | "libc", 3280 | ] 3281 | 3282 | [[package]] 3283 | name = "signature" 3284 | version = "2.1.0" 3285 | source = "registry+https://github.com/rust-lang/crates.io-index" 3286 | checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" 3287 | dependencies = [ 3288 | "digest", 3289 | "rand_core", 3290 | ] 3291 | 3292 | [[package]] 3293 | name = "slab" 3294 | version = "0.4.8" 3295 | source = "registry+https://github.com/rust-lang/crates.io-index" 3296 | checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" 3297 | dependencies = [ 3298 | "autocfg", 3299 | ] 3300 | 3301 | [[package]] 3302 | name = "smallvec" 3303 | version = "1.10.0" 3304 | source = "registry+https://github.com/rust-lang/crates.io-index" 3305 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 3306 | 3307 | [[package]] 3308 | name = "socket2" 3309 | version = "0.4.9" 3310 | source = "registry+https://github.com/rust-lang/crates.io-index" 3311 | checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" 3312 | dependencies = [ 3313 | "libc", 3314 | "winapi", 3315 | ] 3316 | 3317 | [[package]] 3318 | name = "socket2" 3319 | version = "0.5.5" 3320 | source = "registry+https://github.com/rust-lang/crates.io-index" 3321 | checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" 3322 | dependencies = [ 3323 | "libc", 3324 | "windows-sys 0.48.0", 3325 | ] 3326 | 3327 | [[package]] 3328 | name = "spin" 3329 | version = "0.5.2" 3330 | source = "registry+https://github.com/rust-lang/crates.io-index" 3331 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 3332 | 3333 | [[package]] 3334 | name = "spin" 3335 | version = "0.9.8" 3336 | source = "registry+https://github.com/rust-lang/crates.io-index" 3337 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 3338 | dependencies = [ 3339 | "lock_api", 3340 | ] 3341 | 3342 | [[package]] 3343 | name = "spki" 3344 | version = "0.7.2" 3345 | source = "registry+https://github.com/rust-lang/crates.io-index" 3346 | checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" 3347 | dependencies = [ 3348 | "base64ct", 3349 | "der", 3350 | ] 3351 | 3352 | [[package]] 3353 | name = "stable_deref_trait" 3354 | version = "1.2.0" 3355 | source = "registry+https://github.com/rust-lang/crates.io-index" 3356 | checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" 3357 | 3358 | [[package]] 3359 | name = "static_assertions" 3360 | version = "1.1.0" 3361 | source = "registry+https://github.com/rust-lang/crates.io-index" 3362 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3363 | 3364 | [[package]] 3365 | name = "strsim" 3366 | version = "0.10.0" 3367 | source = "registry+https://github.com/rust-lang/crates.io-index" 3368 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 3369 | 3370 | [[package]] 3371 | name = "strum" 3372 | version = "0.24.1" 3373 | source = "registry+https://github.com/rust-lang/crates.io-index" 3374 | checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" 3375 | dependencies = [ 3376 | "strum_macros", 3377 | ] 3378 | 3379 | [[package]] 3380 | name = "strum_macros" 3381 | version = "0.24.3" 3382 | source = "registry+https://github.com/rust-lang/crates.io-index" 3383 | checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" 3384 | dependencies = [ 3385 | "heck", 3386 | "proc-macro2", 3387 | "quote", 3388 | "rustversion", 3389 | "syn 1.0.109", 3390 | ] 3391 | 3392 | [[package]] 3393 | name = "subtle" 3394 | version = "2.4.1" 3395 | source = "registry+https://github.com/rust-lang/crates.io-index" 3396 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" 3397 | 3398 | [[package]] 3399 | name = "sway-store" 3400 | version = "0.1.0" 3401 | dependencies = [ 3402 | "fuels", 3403 | "tokio", 3404 | ] 3405 | 3406 | [[package]] 3407 | name = "syn" 3408 | version = "1.0.109" 3409 | source = "registry+https://github.com/rust-lang/crates.io-index" 3410 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 3411 | dependencies = [ 3412 | "proc-macro2", 3413 | "quote", 3414 | "unicode-ident", 3415 | ] 3416 | 3417 | [[package]] 3418 | name = "syn" 3419 | version = "2.0.40" 3420 | source = "registry+https://github.com/rust-lang/crates.io-index" 3421 | checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e" 3422 | dependencies = [ 3423 | "proc-macro2", 3424 | "quote", 3425 | "unicode-ident", 3426 | ] 3427 | 3428 | [[package]] 3429 | name = "sync_wrapper" 3430 | version = "0.1.2" 3431 | source = "registry+https://github.com/rust-lang/crates.io-index" 3432 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 3433 | 3434 | [[package]] 3435 | name = "synstructure" 3436 | version = "0.13.0" 3437 | source = "registry+https://github.com/rust-lang/crates.io-index" 3438 | checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" 3439 | dependencies = [ 3440 | "proc-macro2", 3441 | "quote", 3442 | "syn 2.0.40", 3443 | "unicode-xid", 3444 | ] 3445 | 3446 | [[package]] 3447 | name = "tai64" 3448 | version = "4.0.0" 3449 | source = "registry+https://github.com/rust-lang/crates.io-index" 3450 | checksum = "ed7401421025f4132e6c1f7af5e7f8287383969f36e6628016cd509b8d3da9dc" 3451 | dependencies = [ 3452 | "serde", 3453 | ] 3454 | 3455 | [[package]] 3456 | name = "tap" 3457 | version = "1.0.1" 3458 | source = "registry+https://github.com/rust-lang/crates.io-index" 3459 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 3460 | 3461 | [[package]] 3462 | name = "tempfile" 3463 | version = "3.8.1" 3464 | source = "registry+https://github.com/rust-lang/crates.io-index" 3465 | checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" 3466 | dependencies = [ 3467 | "cfg-if", 3468 | "fastrand", 3469 | "redox_syscall 0.4.1", 3470 | "rustix 0.38.28", 3471 | "windows-sys 0.48.0", 3472 | ] 3473 | 3474 | [[package]] 3475 | name = "termcolor" 3476 | version = "1.2.0" 3477 | source = "registry+https://github.com/rust-lang/crates.io-index" 3478 | checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" 3479 | dependencies = [ 3480 | "winapi-util", 3481 | ] 3482 | 3483 | [[package]] 3484 | name = "thiserror" 3485 | version = "1.0.50" 3486 | source = "registry+https://github.com/rust-lang/crates.io-index" 3487 | checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" 3488 | dependencies = [ 3489 | "thiserror-impl", 3490 | ] 3491 | 3492 | [[package]] 3493 | name = "thiserror-impl" 3494 | version = "1.0.50" 3495 | source = "registry+https://github.com/rust-lang/crates.io-index" 3496 | checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" 3497 | dependencies = [ 3498 | "proc-macro2", 3499 | "quote", 3500 | "syn 2.0.40", 3501 | ] 3502 | 3503 | [[package]] 3504 | name = "time" 3505 | version = "0.3.20" 3506 | source = "registry+https://github.com/rust-lang/crates.io-index" 3507 | checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" 3508 | dependencies = [ 3509 | "itoa", 3510 | "serde", 3511 | "time-core", 3512 | "time-macros", 3513 | ] 3514 | 3515 | [[package]] 3516 | name = "time-core" 3517 | version = "0.1.0" 3518 | source = "registry+https://github.com/rust-lang/crates.io-index" 3519 | checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" 3520 | 3521 | [[package]] 3522 | name = "time-macros" 3523 | version = "0.2.8" 3524 | source = "registry+https://github.com/rust-lang/crates.io-index" 3525 | checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" 3526 | dependencies = [ 3527 | "time-core", 3528 | ] 3529 | 3530 | [[package]] 3531 | name = "tinyvec" 3532 | version = "1.6.0" 3533 | source = "registry+https://github.com/rust-lang/crates.io-index" 3534 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 3535 | dependencies = [ 3536 | "tinyvec_macros", 3537 | ] 3538 | 3539 | [[package]] 3540 | name = "tinyvec_macros" 3541 | version = "0.1.1" 3542 | source = "registry+https://github.com/rust-lang/crates.io-index" 3543 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3544 | 3545 | [[package]] 3546 | name = "tokio" 3547 | version = "1.35.0" 3548 | source = "registry+https://github.com/rust-lang/crates.io-index" 3549 | checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" 3550 | dependencies = [ 3551 | "backtrace", 3552 | "bytes", 3553 | "libc", 3554 | "mio", 3555 | "num_cpus", 3556 | "parking_lot", 3557 | "pin-project-lite", 3558 | "signal-hook-registry", 3559 | "socket2 0.5.5", 3560 | "tokio-macros", 3561 | "windows-sys 0.48.0", 3562 | ] 3563 | 3564 | [[package]] 3565 | name = "tokio-io-timeout" 3566 | version = "1.2.0" 3567 | source = "registry+https://github.com/rust-lang/crates.io-index" 3568 | checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" 3569 | dependencies = [ 3570 | "pin-project-lite", 3571 | "tokio", 3572 | ] 3573 | 3574 | [[package]] 3575 | name = "tokio-macros" 3576 | version = "2.2.0" 3577 | source = "registry+https://github.com/rust-lang/crates.io-index" 3578 | checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" 3579 | dependencies = [ 3580 | "proc-macro2", 3581 | "quote", 3582 | "syn 2.0.40", 3583 | ] 3584 | 3585 | [[package]] 3586 | name = "tokio-rayon" 3587 | version = "2.1.0" 3588 | source = "registry+https://github.com/rust-lang/crates.io-index" 3589 | checksum = "7cf33a76e0b1dd03b778f83244137bd59887abf25c0e87bc3e7071105f457693" 3590 | dependencies = [ 3591 | "rayon", 3592 | "tokio", 3593 | ] 3594 | 3595 | [[package]] 3596 | name = "tokio-rustls" 3597 | version = "0.22.0" 3598 | source = "registry+https://github.com/rust-lang/crates.io-index" 3599 | checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" 3600 | dependencies = [ 3601 | "rustls 0.19.1", 3602 | "tokio", 3603 | "webpki 0.21.4", 3604 | ] 3605 | 3606 | [[package]] 3607 | name = "tokio-rustls" 3608 | version = "0.23.4" 3609 | source = "registry+https://github.com/rust-lang/crates.io-index" 3610 | checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" 3611 | dependencies = [ 3612 | "rustls 0.20.8", 3613 | "tokio", 3614 | "webpki 0.22.0", 3615 | ] 3616 | 3617 | [[package]] 3618 | name = "tokio-rustls" 3619 | version = "0.24.1" 3620 | source = "registry+https://github.com/rust-lang/crates.io-index" 3621 | checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" 3622 | dependencies = [ 3623 | "rustls 0.21.6", 3624 | "tokio", 3625 | ] 3626 | 3627 | [[package]] 3628 | name = "tokio-stream" 3629 | version = "0.1.12" 3630 | source = "registry+https://github.com/rust-lang/crates.io-index" 3631 | checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" 3632 | dependencies = [ 3633 | "futures-core", 3634 | "pin-project-lite", 3635 | "tokio", 3636 | "tokio-util", 3637 | ] 3638 | 3639 | [[package]] 3640 | name = "tokio-util" 3641 | version = "0.7.7" 3642 | source = "registry+https://github.com/rust-lang/crates.io-index" 3643 | checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" 3644 | dependencies = [ 3645 | "bytes", 3646 | "futures-core", 3647 | "futures-sink", 3648 | "pin-project-lite", 3649 | "tokio", 3650 | "tracing", 3651 | ] 3652 | 3653 | [[package]] 3654 | name = "toml_datetime" 3655 | version = "0.6.1" 3656 | source = "registry+https://github.com/rust-lang/crates.io-index" 3657 | checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" 3658 | 3659 | [[package]] 3660 | name = "toml_edit" 3661 | version = "0.19.8" 3662 | source = "registry+https://github.com/rust-lang/crates.io-index" 3663 | checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" 3664 | dependencies = [ 3665 | "indexmap", 3666 | "toml_datetime", 3667 | "winnow", 3668 | ] 3669 | 3670 | [[package]] 3671 | name = "tower" 3672 | version = "0.4.13" 3673 | source = "registry+https://github.com/rust-lang/crates.io-index" 3674 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 3675 | dependencies = [ 3676 | "futures-core", 3677 | "futures-util", 3678 | "pin-project", 3679 | "pin-project-lite", 3680 | "tokio", 3681 | "tower-layer", 3682 | "tower-service", 3683 | "tracing", 3684 | ] 3685 | 3686 | [[package]] 3687 | name = "tower-http" 3688 | version = "0.3.5" 3689 | source = "registry+https://github.com/rust-lang/crates.io-index" 3690 | checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" 3691 | dependencies = [ 3692 | "bitflags 1.3.2", 3693 | "bytes", 3694 | "futures-core", 3695 | "futures-util", 3696 | "http", 3697 | "http-body", 3698 | "http-range-header", 3699 | "pin-project-lite", 3700 | "tokio", 3701 | "tower", 3702 | "tower-layer", 3703 | "tower-service", 3704 | "tracing", 3705 | ] 3706 | 3707 | [[package]] 3708 | name = "tower-layer" 3709 | version = "0.3.2" 3710 | source = "registry+https://github.com/rust-lang/crates.io-index" 3711 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 3712 | 3713 | [[package]] 3714 | name = "tower-service" 3715 | version = "0.3.2" 3716 | source = "registry+https://github.com/rust-lang/crates.io-index" 3717 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 3718 | 3719 | [[package]] 3720 | name = "tracing" 3721 | version = "0.1.40" 3722 | source = "registry+https://github.com/rust-lang/crates.io-index" 3723 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 3724 | dependencies = [ 3725 | "log", 3726 | "pin-project-lite", 3727 | "tracing-attributes", 3728 | "tracing-core", 3729 | ] 3730 | 3731 | [[package]] 3732 | name = "tracing-attributes" 3733 | version = "0.1.27" 3734 | source = "registry+https://github.com/rust-lang/crates.io-index" 3735 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 3736 | dependencies = [ 3737 | "proc-macro2", 3738 | "quote", 3739 | "syn 2.0.40", 3740 | ] 3741 | 3742 | [[package]] 3743 | name = "tracing-core" 3744 | version = "0.1.32" 3745 | source = "registry+https://github.com/rust-lang/crates.io-index" 3746 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 3747 | dependencies = [ 3748 | "once_cell", 3749 | ] 3750 | 3751 | [[package]] 3752 | name = "tracing-futures" 3753 | version = "0.2.5" 3754 | source = "registry+https://github.com/rust-lang/crates.io-index" 3755 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 3756 | dependencies = [ 3757 | "futures", 3758 | "futures-task", 3759 | "pin-project", 3760 | "tracing", 3761 | ] 3762 | 3763 | [[package]] 3764 | name = "try-lock" 3765 | version = "0.2.4" 3766 | source = "registry+https://github.com/rust-lang/crates.io-index" 3767 | checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" 3768 | 3769 | [[package]] 3770 | name = "typenum" 3771 | version = "1.16.0" 3772 | source = "registry+https://github.com/rust-lang/crates.io-index" 3773 | checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" 3774 | 3775 | [[package]] 3776 | name = "ucd-trie" 3777 | version = "0.1.5" 3778 | source = "registry+https://github.com/rust-lang/crates.io-index" 3779 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 3780 | 3781 | [[package]] 3782 | name = "uint" 3783 | version = "0.9.5" 3784 | source = "registry+https://github.com/rust-lang/crates.io-index" 3785 | checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" 3786 | dependencies = [ 3787 | "byteorder", 3788 | "crunchy", 3789 | "hex", 3790 | "static_assertions", 3791 | ] 3792 | 3793 | [[package]] 3794 | name = "unicode-bidi" 3795 | version = "0.3.13" 3796 | source = "registry+https://github.com/rust-lang/crates.io-index" 3797 | checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" 3798 | 3799 | [[package]] 3800 | name = "unicode-ident" 3801 | version = "1.0.8" 3802 | source = "registry+https://github.com/rust-lang/crates.io-index" 3803 | checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" 3804 | 3805 | [[package]] 3806 | name = "unicode-normalization" 3807 | version = "0.1.22" 3808 | source = "registry+https://github.com/rust-lang/crates.io-index" 3809 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 3810 | dependencies = [ 3811 | "tinyvec", 3812 | ] 3813 | 3814 | [[package]] 3815 | name = "unicode-width" 3816 | version = "0.1.10" 3817 | source = "registry+https://github.com/rust-lang/crates.io-index" 3818 | checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" 3819 | 3820 | [[package]] 3821 | name = "unicode-xid" 3822 | version = "0.2.4" 3823 | source = "registry+https://github.com/rust-lang/crates.io-index" 3824 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 3825 | 3826 | [[package]] 3827 | name = "unreachable" 3828 | version = "1.0.0" 3829 | source = "registry+https://github.com/rust-lang/crates.io-index" 3830 | checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" 3831 | dependencies = [ 3832 | "void", 3833 | ] 3834 | 3835 | [[package]] 3836 | name = "untrusted" 3837 | version = "0.7.1" 3838 | source = "registry+https://github.com/rust-lang/crates.io-index" 3839 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 3840 | 3841 | [[package]] 3842 | name = "url" 3843 | version = "2.3.1" 3844 | source = "registry+https://github.com/rust-lang/crates.io-index" 3845 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 3846 | dependencies = [ 3847 | "form_urlencoded", 3848 | "idna 0.3.0", 3849 | "percent-encoding", 3850 | ] 3851 | 3852 | [[package]] 3853 | name = "utf8parse" 3854 | version = "0.2.1" 3855 | source = "registry+https://github.com/rust-lang/crates.io-index" 3856 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 3857 | 3858 | [[package]] 3859 | name = "uuid" 3860 | version = "0.8.2" 3861 | source = "registry+https://github.com/rust-lang/crates.io-index" 3862 | checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" 3863 | dependencies = [ 3864 | "getrandom", 3865 | "serde", 3866 | ] 3867 | 3868 | [[package]] 3869 | name = "uuid" 3870 | version = "1.6.1" 3871 | source = "registry+https://github.com/rust-lang/crates.io-index" 3872 | checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" 3873 | dependencies = [ 3874 | "getrandom", 3875 | ] 3876 | 3877 | [[package]] 3878 | name = "version_check" 3879 | version = "0.9.4" 3880 | source = "registry+https://github.com/rust-lang/crates.io-index" 3881 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 3882 | 3883 | [[package]] 3884 | name = "void" 3885 | version = "1.0.2" 3886 | source = "registry+https://github.com/rust-lang/crates.io-index" 3887 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 3888 | 3889 | [[package]] 3890 | name = "want" 3891 | version = "0.3.0" 3892 | source = "registry+https://github.com/rust-lang/crates.io-index" 3893 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 3894 | dependencies = [ 3895 | "log", 3896 | "try-lock", 3897 | ] 3898 | 3899 | [[package]] 3900 | name = "wasi" 3901 | version = "0.11.0+wasi-snapshot-preview1" 3902 | source = "registry+https://github.com/rust-lang/crates.io-index" 3903 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 3904 | 3905 | [[package]] 3906 | name = "wasm-bindgen" 3907 | version = "0.2.84" 3908 | source = "registry+https://github.com/rust-lang/crates.io-index" 3909 | checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" 3910 | dependencies = [ 3911 | "cfg-if", 3912 | "wasm-bindgen-macro", 3913 | ] 3914 | 3915 | [[package]] 3916 | name = "wasm-bindgen-backend" 3917 | version = "0.2.84" 3918 | source = "registry+https://github.com/rust-lang/crates.io-index" 3919 | checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" 3920 | dependencies = [ 3921 | "bumpalo", 3922 | "log", 3923 | "once_cell", 3924 | "proc-macro2", 3925 | "quote", 3926 | "syn 1.0.109", 3927 | "wasm-bindgen-shared", 3928 | ] 3929 | 3930 | [[package]] 3931 | name = "wasm-bindgen-futures" 3932 | version = "0.4.34" 3933 | source = "registry+https://github.com/rust-lang/crates.io-index" 3934 | checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" 3935 | dependencies = [ 3936 | "cfg-if", 3937 | "js-sys", 3938 | "wasm-bindgen", 3939 | "web-sys", 3940 | ] 3941 | 3942 | [[package]] 3943 | name = "wasm-bindgen-macro" 3944 | version = "0.2.84" 3945 | source = "registry+https://github.com/rust-lang/crates.io-index" 3946 | checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" 3947 | dependencies = [ 3948 | "quote", 3949 | "wasm-bindgen-macro-support", 3950 | ] 3951 | 3952 | [[package]] 3953 | name = "wasm-bindgen-macro-support" 3954 | version = "0.2.84" 3955 | source = "registry+https://github.com/rust-lang/crates.io-index" 3956 | checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" 3957 | dependencies = [ 3958 | "proc-macro2", 3959 | "quote", 3960 | "syn 1.0.109", 3961 | "wasm-bindgen-backend", 3962 | "wasm-bindgen-shared", 3963 | ] 3964 | 3965 | [[package]] 3966 | name = "wasm-bindgen-shared" 3967 | version = "0.2.84" 3968 | source = "registry+https://github.com/rust-lang/crates.io-index" 3969 | checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" 3970 | 3971 | [[package]] 3972 | name = "web-sys" 3973 | version = "0.3.61" 3974 | source = "registry+https://github.com/rust-lang/crates.io-index" 3975 | checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" 3976 | dependencies = [ 3977 | "js-sys", 3978 | "wasm-bindgen", 3979 | ] 3980 | 3981 | [[package]] 3982 | name = "webpki" 3983 | version = "0.21.4" 3984 | source = "registry+https://github.com/rust-lang/crates.io-index" 3985 | checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" 3986 | dependencies = [ 3987 | "ring", 3988 | "untrusted", 3989 | ] 3990 | 3991 | [[package]] 3992 | name = "webpki" 3993 | version = "0.22.0" 3994 | source = "registry+https://github.com/rust-lang/crates.io-index" 3995 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 3996 | dependencies = [ 3997 | "ring", 3998 | "untrusted", 3999 | ] 4000 | 4001 | [[package]] 4002 | name = "webpki-roots" 4003 | version = "0.22.6" 4004 | source = "registry+https://github.com/rust-lang/crates.io-index" 4005 | checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" 4006 | dependencies = [ 4007 | "webpki 0.22.0", 4008 | ] 4009 | 4010 | [[package]] 4011 | name = "webpki-roots" 4012 | version = "0.23.1" 4013 | source = "registry+https://github.com/rust-lang/crates.io-index" 4014 | checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" 4015 | dependencies = [ 4016 | "rustls-webpki 0.100.2", 4017 | ] 4018 | 4019 | [[package]] 4020 | name = "which" 4021 | version = "5.0.0" 4022 | source = "registry+https://github.com/rust-lang/crates.io-index" 4023 | checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" 4024 | dependencies = [ 4025 | "either", 4026 | "home", 4027 | "once_cell", 4028 | "rustix 0.38.28", 4029 | "windows-sys 0.48.0", 4030 | ] 4031 | 4032 | [[package]] 4033 | name = "winapi" 4034 | version = "0.3.9" 4035 | source = "registry+https://github.com/rust-lang/crates.io-index" 4036 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 4037 | dependencies = [ 4038 | "winapi-i686-pc-windows-gnu", 4039 | "winapi-x86_64-pc-windows-gnu", 4040 | ] 4041 | 4042 | [[package]] 4043 | name = "winapi-i686-pc-windows-gnu" 4044 | version = "0.4.0" 4045 | source = "registry+https://github.com/rust-lang/crates.io-index" 4046 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 4047 | 4048 | [[package]] 4049 | name = "winapi-util" 4050 | version = "0.1.5" 4051 | source = "registry+https://github.com/rust-lang/crates.io-index" 4052 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 4053 | dependencies = [ 4054 | "winapi", 4055 | ] 4056 | 4057 | [[package]] 4058 | name = "winapi-x86_64-pc-windows-gnu" 4059 | version = "0.4.0" 4060 | source = "registry+https://github.com/rust-lang/crates.io-index" 4061 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 4062 | 4063 | [[package]] 4064 | name = "windows" 4065 | version = "0.48.0" 4066 | source = "registry+https://github.com/rust-lang/crates.io-index" 4067 | checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" 4068 | dependencies = [ 4069 | "windows-targets 0.48.0", 4070 | ] 4071 | 4072 | [[package]] 4073 | name = "windows-sys" 4074 | version = "0.42.0" 4075 | source = "registry+https://github.com/rust-lang/crates.io-index" 4076 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 4077 | dependencies = [ 4078 | "windows_aarch64_gnullvm 0.42.2", 4079 | "windows_aarch64_msvc 0.42.2", 4080 | "windows_i686_gnu 0.42.2", 4081 | "windows_i686_msvc 0.42.2", 4082 | "windows_x86_64_gnu 0.42.2", 4083 | "windows_x86_64_gnullvm 0.42.2", 4084 | "windows_x86_64_msvc 0.42.2", 4085 | ] 4086 | 4087 | [[package]] 4088 | name = "windows-sys" 4089 | version = "0.45.0" 4090 | source = "registry+https://github.com/rust-lang/crates.io-index" 4091 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 4092 | dependencies = [ 4093 | "windows-targets 0.42.2", 4094 | ] 4095 | 4096 | [[package]] 4097 | name = "windows-sys" 4098 | version = "0.48.0" 4099 | source = "registry+https://github.com/rust-lang/crates.io-index" 4100 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 4101 | dependencies = [ 4102 | "windows-targets 0.48.0", 4103 | ] 4104 | 4105 | [[package]] 4106 | name = "windows-sys" 4107 | version = "0.52.0" 4108 | source = "registry+https://github.com/rust-lang/crates.io-index" 4109 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 4110 | dependencies = [ 4111 | "windows-targets 0.52.0", 4112 | ] 4113 | 4114 | [[package]] 4115 | name = "windows-targets" 4116 | version = "0.42.2" 4117 | source = "registry+https://github.com/rust-lang/crates.io-index" 4118 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 4119 | dependencies = [ 4120 | "windows_aarch64_gnullvm 0.42.2", 4121 | "windows_aarch64_msvc 0.42.2", 4122 | "windows_i686_gnu 0.42.2", 4123 | "windows_i686_msvc 0.42.2", 4124 | "windows_x86_64_gnu 0.42.2", 4125 | "windows_x86_64_gnullvm 0.42.2", 4126 | "windows_x86_64_msvc 0.42.2", 4127 | ] 4128 | 4129 | [[package]] 4130 | name = "windows-targets" 4131 | version = "0.48.0" 4132 | source = "registry+https://github.com/rust-lang/crates.io-index" 4133 | checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" 4134 | dependencies = [ 4135 | "windows_aarch64_gnullvm 0.48.0", 4136 | "windows_aarch64_msvc 0.48.0", 4137 | "windows_i686_gnu 0.48.0", 4138 | "windows_i686_msvc 0.48.0", 4139 | "windows_x86_64_gnu 0.48.0", 4140 | "windows_x86_64_gnullvm 0.48.0", 4141 | "windows_x86_64_msvc 0.48.0", 4142 | ] 4143 | 4144 | [[package]] 4145 | name = "windows-targets" 4146 | version = "0.52.0" 4147 | source = "registry+https://github.com/rust-lang/crates.io-index" 4148 | checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 4149 | dependencies = [ 4150 | "windows_aarch64_gnullvm 0.52.0", 4151 | "windows_aarch64_msvc 0.52.0", 4152 | "windows_i686_gnu 0.52.0", 4153 | "windows_i686_msvc 0.52.0", 4154 | "windows_x86_64_gnu 0.52.0", 4155 | "windows_x86_64_gnullvm 0.52.0", 4156 | "windows_x86_64_msvc 0.52.0", 4157 | ] 4158 | 4159 | [[package]] 4160 | name = "windows_aarch64_gnullvm" 4161 | version = "0.42.2" 4162 | source = "registry+https://github.com/rust-lang/crates.io-index" 4163 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 4164 | 4165 | [[package]] 4166 | name = "windows_aarch64_gnullvm" 4167 | version = "0.48.0" 4168 | source = "registry+https://github.com/rust-lang/crates.io-index" 4169 | checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" 4170 | 4171 | [[package]] 4172 | name = "windows_aarch64_gnullvm" 4173 | version = "0.52.0" 4174 | source = "registry+https://github.com/rust-lang/crates.io-index" 4175 | checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 4176 | 4177 | [[package]] 4178 | name = "windows_aarch64_msvc" 4179 | version = "0.42.2" 4180 | source = "registry+https://github.com/rust-lang/crates.io-index" 4181 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 4182 | 4183 | [[package]] 4184 | name = "windows_aarch64_msvc" 4185 | version = "0.48.0" 4186 | source = "registry+https://github.com/rust-lang/crates.io-index" 4187 | checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" 4188 | 4189 | [[package]] 4190 | name = "windows_aarch64_msvc" 4191 | version = "0.52.0" 4192 | source = "registry+https://github.com/rust-lang/crates.io-index" 4193 | checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 4194 | 4195 | [[package]] 4196 | name = "windows_i686_gnu" 4197 | version = "0.42.2" 4198 | source = "registry+https://github.com/rust-lang/crates.io-index" 4199 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 4200 | 4201 | [[package]] 4202 | name = "windows_i686_gnu" 4203 | version = "0.48.0" 4204 | source = "registry+https://github.com/rust-lang/crates.io-index" 4205 | checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" 4206 | 4207 | [[package]] 4208 | name = "windows_i686_gnu" 4209 | version = "0.52.0" 4210 | source = "registry+https://github.com/rust-lang/crates.io-index" 4211 | checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 4212 | 4213 | [[package]] 4214 | name = "windows_i686_msvc" 4215 | version = "0.42.2" 4216 | source = "registry+https://github.com/rust-lang/crates.io-index" 4217 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 4218 | 4219 | [[package]] 4220 | name = "windows_i686_msvc" 4221 | version = "0.48.0" 4222 | source = "registry+https://github.com/rust-lang/crates.io-index" 4223 | checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" 4224 | 4225 | [[package]] 4226 | name = "windows_i686_msvc" 4227 | version = "0.52.0" 4228 | source = "registry+https://github.com/rust-lang/crates.io-index" 4229 | checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 4230 | 4231 | [[package]] 4232 | name = "windows_x86_64_gnu" 4233 | version = "0.42.2" 4234 | source = "registry+https://github.com/rust-lang/crates.io-index" 4235 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 4236 | 4237 | [[package]] 4238 | name = "windows_x86_64_gnu" 4239 | version = "0.48.0" 4240 | source = "registry+https://github.com/rust-lang/crates.io-index" 4241 | checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" 4242 | 4243 | [[package]] 4244 | name = "windows_x86_64_gnu" 4245 | version = "0.52.0" 4246 | source = "registry+https://github.com/rust-lang/crates.io-index" 4247 | checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 4248 | 4249 | [[package]] 4250 | name = "windows_x86_64_gnullvm" 4251 | version = "0.42.2" 4252 | source = "registry+https://github.com/rust-lang/crates.io-index" 4253 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 4254 | 4255 | [[package]] 4256 | name = "windows_x86_64_gnullvm" 4257 | version = "0.48.0" 4258 | source = "registry+https://github.com/rust-lang/crates.io-index" 4259 | checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" 4260 | 4261 | [[package]] 4262 | name = "windows_x86_64_gnullvm" 4263 | version = "0.52.0" 4264 | source = "registry+https://github.com/rust-lang/crates.io-index" 4265 | checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 4266 | 4267 | [[package]] 4268 | name = "windows_x86_64_msvc" 4269 | version = "0.42.2" 4270 | source = "registry+https://github.com/rust-lang/crates.io-index" 4271 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 4272 | 4273 | [[package]] 4274 | name = "windows_x86_64_msvc" 4275 | version = "0.48.0" 4276 | source = "registry+https://github.com/rust-lang/crates.io-index" 4277 | checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" 4278 | 4279 | [[package]] 4280 | name = "windows_x86_64_msvc" 4281 | version = "0.52.0" 4282 | source = "registry+https://github.com/rust-lang/crates.io-index" 4283 | checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 4284 | 4285 | [[package]] 4286 | name = "winnow" 4287 | version = "0.4.1" 4288 | source = "registry+https://github.com/rust-lang/crates.io-index" 4289 | checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" 4290 | dependencies = [ 4291 | "memchr", 4292 | ] 4293 | 4294 | [[package]] 4295 | name = "winreg" 4296 | version = "0.10.1" 4297 | source = "registry+https://github.com/rust-lang/crates.io-index" 4298 | checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" 4299 | dependencies = [ 4300 | "winapi", 4301 | ] 4302 | 4303 | [[package]] 4304 | name = "wyz" 4305 | version = "0.5.1" 4306 | source = "registry+https://github.com/rust-lang/crates.io-index" 4307 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 4308 | dependencies = [ 4309 | "tap", 4310 | ] 4311 | 4312 | [[package]] 4313 | name = "zerocopy" 4314 | version = "0.7.30" 4315 | source = "registry+https://github.com/rust-lang/crates.io-index" 4316 | checksum = "306dca4455518f1f31635ec308b6b3e4eb1b11758cefafc782827d0aa7acb5c7" 4317 | dependencies = [ 4318 | "zerocopy-derive", 4319 | ] 4320 | 4321 | [[package]] 4322 | name = "zerocopy-derive" 4323 | version = "0.7.30" 4324 | source = "registry+https://github.com/rust-lang/crates.io-index" 4325 | checksum = "be912bf68235a88fbefd1b73415cb218405958d1655b2ece9035a19920bdf6ba" 4326 | dependencies = [ 4327 | "proc-macro2", 4328 | "quote", 4329 | "syn 2.0.40", 4330 | ] 4331 | 4332 | [[package]] 4333 | name = "zeroize" 4334 | version = "1.7.0" 4335 | source = "registry+https://github.com/rust-lang/crates.io-index" 4336 | checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" 4337 | dependencies = [ 4338 | "zeroize_derive", 4339 | ] 4340 | 4341 | [[package]] 4342 | name = "zeroize_derive" 4343 | version = "1.4.2" 4344 | source = "registry+https://github.com/rust-lang/crates.io-index" 4345 | checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" 4346 | dependencies = [ 4347 | "proc-macro2", 4348 | "quote", 4349 | "syn 2.0.40", 4350 | ] 4351 | -------------------------------------------------------------------------------- /contract/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "sway-store" 3 | description = "A cargo-generate template for Rust + Sway integration testing." 4 | version = "0.1.0" 5 | edition = "2021" 6 | authors = ["sarahschwartz <58856580+sarahschwartz@users.noreply.github.com>"] 7 | license = "Apache-2.0" 8 | 9 | [dev-dependencies] 10 | fuels = { version = "0.55", features = ["fuel-core-lib"] } 11 | tokio = { version = "1.12", features = ["rt", "macros"] } 12 | 13 | [[test]] 14 | harness = true 15 | name = "integration_tests" 16 | path = "tests/harness.rs" 17 | -------------------------------------------------------------------------------- /contract/Forc.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "contract" 3 | source = "member" 4 | dependencies = ["std"] 5 | 6 | [[package]] 7 | name = "core" 8 | source = "path+from-root-B672DC9E3D340CD2" 9 | 10 | [[package]] 11 | name = "std" 12 | source = "git+https://github.com/fuellabs/sway?tag=v0.49.2#a70c746d27b3300beef896ccd1dcce1299836192" 13 | dependencies = ["core"] 14 | -------------------------------------------------------------------------------- /contract/Forc.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | authors = ["Fuel Labs"] 3 | entry = "main.sw" 4 | license = "Apache-2.0" 5 | name = "contract" 6 | 7 | [dependencies] 8 | -------------------------------------------------------------------------------- /contract/src/docs_hub_misc.sw: -------------------------------------------------------------------------------- 1 | /* ANCHOR: all */ 2 | // ANCHOR: import_single 3 | use std::auth::msg_sender; 4 | // ANCHOR_END: import_single 5 | 6 | // ANCHOR: import_multi 7 | use std::{ 8 | auth::msg_sender, 9 | storage::StorageVec, 10 | } 11 | // ANCHOR_END: import_multi 12 | 13 | // ANCHOR: contract_skeleton 14 | impl SwayStore for Contract { 15 | #[storage(read, write)] 16 | fn list_item(price: u64, metadata: str[20]){ 17 | 18 | } 19 | 20 | #[storage(read, write), payable] 21 | fn buy_item(item_id: u64) { 22 | 23 | } 24 | 25 | #[storage(read)] 26 | fn get_item(item_id: u64) -> Item { 27 | 28 | } 29 | 30 | #[storage(read, write)] 31 | fn initialize_owner() -> Identity { 32 | 33 | } 34 | 35 | #[storage(read)] 36 | fn withdraw_funds(){ 37 | 38 | } 39 | 40 | #[storage(read)] 41 | fn get_count() -> u64{ 42 | 43 | } 44 | } 45 | // ANCHOR_END: contract_skeleton 46 | /* ANCHOR_END: all */ 47 | -------------------------------------------------------------------------------- /contract/src/main.sw: -------------------------------------------------------------------------------- 1 | /* ANCHOR: all */ 2 | // ANCHOR: contract 3 | contract; 4 | // ANCHOR_END: contract 5 | 6 | // ANCHOR: import 7 | use std::{ 8 | auth::msg_sender, 9 | call_frames::msg_asset_id, 10 | constants::BASE_ASSET_ID, 11 | context::{ 12 | msg_amount, 13 | this_balance, 14 | }, 15 | asset::transfer, 16 | hash::Hash 17 | }; 18 | // ANCHOR_END: import 19 | 20 | // ANCHOR: struct 21 | struct Item { 22 | id: u64, 23 | price: u64, 24 | owner: Identity, 25 | metadata: str[20], 26 | total_bought: u64, 27 | } 28 | // ANCHOR_END: struct 29 | 30 | // ANCHOR: abi 31 | abi SwayStore { 32 | // a function to list an item for sale 33 | // takes the price and metadata as args 34 | #[storage(read, write)] 35 | fn list_item(price: u64, metadata: str[20]); 36 | 37 | // a function to buy an item 38 | // takes the item id as the arg 39 | #[storage(read, write), payable] 40 | fn buy_item(item_id: u64); 41 | 42 | // a function to get a certain item 43 | #[storage(read)] 44 | fn get_item(item_id: u64) -> Item; 45 | 46 | // a function to set the contract owner 47 | #[storage(read, write)] 48 | fn initialize_owner() -> Identity; 49 | 50 | // a function to withdraw contract funds 51 | #[storage(read)] 52 | fn withdraw_funds(); 53 | 54 | // return the number of items listed 55 | #[storage(read)] 56 | fn get_count() -> u64; 57 | } 58 | // ANCHOR_END: abi 59 | 60 | // ANCHOR: storage 61 | storage { 62 | // counter for total items listed 63 | item_counter: u64 = 0, 64 | 65 | // ANCHOR: storage_map 66 | // map of item IDs to Items 67 | item_map: StorageMap = StorageMap {}, 68 | // ANCHOR_END: storage_map 69 | 70 | // ANCHOR: storage_option 71 | // owner of the contract 72 | owner: Option = Option::None, 73 | // ANCHOR_END: storage_option 74 | } 75 | // ANCHOR_END: storage 76 | 77 | // ANCHOR: error_handling 78 | enum InvalidError { 79 | IncorrectAssetId: AssetId, 80 | NotEnoughTokens: u64, 81 | OnlyOwner: Identity, 82 | } 83 | // ANCHOR_END: error_handling 84 | 85 | impl SwayStore for Contract { 86 | // ANCHOR: list_item_parent 87 | #[storage(read, write)] 88 | fn list_item(price: u64, metadata: str[20]) { 89 | 90 | // ANCHOR: list_item_increment 91 | // increment the item counter 92 | storage.item_counter.write(storage.item_counter.try_read().unwrap() + 1); 93 | // ANCHOR_END: list_item_increment 94 | 95 | // ANCHOR: list_item_sender 96 | // get the message sender 97 | let sender = msg_sender().unwrap(); 98 | // ANCHOR_END: list_item_sender 99 | 100 | // ANCHOR: list_item_new_item 101 | // configure the item 102 | let new_item: Item = Item { 103 | id: storage.item_counter.try_read().unwrap(), 104 | price: price, 105 | owner: sender, 106 | metadata: metadata, 107 | total_bought: 0, 108 | }; 109 | // ANCHOR_END: list_item_new_item 110 | 111 | // ANCHOR: list_item_insert 112 | // save the new item to storage using the counter value 113 | storage.item_map.insert(storage.item_counter.try_read().unwrap(), new_item); 114 | // ANCHOR_END: list_item_insert 115 | } 116 | // ANCHOR_END: list_item_parent 117 | 118 | // ANCHOR: buy_item_parent 119 | #[storage(read, write), payable] 120 | fn buy_item(item_id: u64) { 121 | // get the asset id for the asset sent 122 | // ANCHOR: buy_item_asset 123 | let asset_id = msg_asset_id(); 124 | // ANCHOR_END: buy_item_asset 125 | 126 | // require that the correct asset was sent 127 | // ANCHOR: buy_item_require_not_base 128 | require(asset_id == BASE_ASSET_ID, InvalidError::IncorrectAssetId(asset_id)); 129 | // ANCHOR_END: buy_item_require_not_base 130 | 131 | // get the amount of coins sent 132 | // ANCHOR: buy_item_msg_amount 133 | let amount = msg_amount(); 134 | // ANCHOR_END: buy_item_msg_amount 135 | 136 | // get the item to buy 137 | // ANCHOR: buy_item_get_item 138 | let mut item = storage.item_map.get(item_id).try_read().unwrap(); 139 | // ANCHOR_END: buy_item_get_item 140 | 141 | // require that the amount is at least the price of the item 142 | // ANCHOR: buy_item_require_ge_amount 143 | require(amount >= item.price, InvalidError::NotEnoughTokens(amount)); 144 | // ANCHOR_END: buy_item_require_ge_amount 145 | 146 | // ANCHOR: buy_item_require_update_storage 147 | // update the total amount bought 148 | item.total_bought += 1; 149 | 150 | // update the item in the storage map 151 | storage.item_map.insert(item_id, item); 152 | // ANCHOR_END: buy_item_require_update_storage 153 | 154 | // ANCHOR: buy_item_require_transferring_payment 155 | // only charge commission if price is more than 0.1 ETH 156 | if amount > 100_000_000 { 157 | // keep a 5% commission 158 | let commission = amount / 20; 159 | let new_amount = amount - commission; 160 | // send the payout minus commission to the seller 161 | transfer(item.owner, asset_id, new_amount); 162 | } else { 163 | // send the full payout to the seller 164 | transfer(item.owner, asset_id, amount); 165 | } 166 | // ANCHOR_END: buy_item_require_transferring_payment 167 | } 168 | // ANCHOR_END: buy_item_parent 169 | 170 | // ANCHOR: get_item 171 | #[storage(read)] 172 | fn get_item(item_id: u64) -> Item { 173 | // returns the item for the given item_id 174 | return storage.item_map.get(item_id).try_read().unwrap(); 175 | } 176 | // ANCHOR_END: get_item 177 | 178 | // ANCHOR: initialize_owner_parent 179 | #[storage(read, write)] 180 | fn initialize_owner() -> Identity { 181 | // ANCHOR: initialize_owner_get_owner 182 | let owner = storage.owner.try_read().unwrap(); 183 | 184 | // make sure the owner has NOT already been initialized 185 | require(owner.is_none(), "owner already initialized"); 186 | // ANCHOR_END: initialize_owner_get_owner 187 | 188 | // ANCHOR: initialize_owner_set_owner 189 | // get the identity of the sender 190 | let sender = msg_sender().unwrap(); 191 | 192 | // set the owner to the sender's identity 193 | storage.owner.write(Option::Some(sender)); 194 | // ANCHOR_END: initialize_owner_set_owner 195 | 196 | // ANCHOR: initialize_owner_return_owner 197 | // return the owner 198 | return sender; 199 | // ANCHOR_END: initialize_owner_return_owner 200 | } 201 | // ANCHOR_END: initialize_owner_parent 202 | 203 | // ANCHOR: withdraw_funds_parent 204 | #[storage(read)] 205 | fn withdraw_funds() { 206 | // ANCHOR: withdraw_funds_set_owner 207 | let owner = storage.owner.try_read().unwrap(); 208 | 209 | // make sure the owner has been initialized 210 | require(owner.is_some(), "owner not initialized"); 211 | // ANCHOR_END: withdraw_funds_set_owner 212 | 213 | // ANCHOR: withdraw_funds_require_owner 214 | let sender = msg_sender().unwrap(); 215 | 216 | // require the sender to be the owner 217 | require(sender == owner.unwrap(), InvalidError::OnlyOwner(sender)); 218 | // ANCHOR_END: withdraw_funds_require_owner 219 | 220 | // ANCHOR: withdraw_funds_require_base_asset 221 | // get the current balance of this contract for the base asset 222 | let amount = this_balance(BASE_ASSET_ID); 223 | 224 | // require the contract balance to be more than 0 225 | require(amount > 0, InvalidError::NotEnoughTokens(amount)); 226 | // ANCHOR_END: withdraw_funds_require_base_asset 227 | 228 | // ANCHOR: withdraw_funds_transfer_owner 229 | // send the amount to the owner 230 | transfer(owner.unwrap(), BASE_ASSET_ID, amount); 231 | // ANCHOR_END: withdraw_funds_transfer_owner 232 | } 233 | // ANCHOR_END: withdraw_funds_parent 234 | 235 | // ANCHOR: get_count_parent 236 | #[storage(read)] 237 | fn get_count() -> u64 { 238 | return storage.item_counter.try_read().unwrap(); 239 | } 240 | // ANCHOR_END: get_count_parent 241 | } 242 | /* ANCHOR_END: all */ 243 | -------------------------------------------------------------------------------- /contract/tests/harness.rs: -------------------------------------------------------------------------------- 1 | // ANCHOR: rs_import 2 | use fuels::{prelude::*, types::{Identity, SizedAsciiString}}; 3 | // ANCHOR_END: rs_import 4 | 5 | // ANCHOR: rs_abi 6 | // Load abi from json 7 | abigen!(Contract(name="SwayStore", abi="out/debug/contract-abi.json")); 8 | // ANCHOR_END: rs_abi 9 | 10 | // ANCHOR: rs_contract_instance_parent 11 | async fn get_contract_instance() -> (SwayStore, ContractId, Vec) { 12 | // Launch a local network and deploy the contract 13 | let wallets = launch_custom_provider_and_get_wallets( 14 | WalletsConfig::new( 15 | Some(3), /* Three wallets */ 16 | Some(1), /* Single coin (UTXO) */ 17 | Some(1_000_000_000), /* Amount per coin */ 18 | ), 19 | None, 20 | None, 21 | ) 22 | .await 23 | .unwrap(); 24 | 25 | let wallet = wallets.get(0).unwrap().clone(); 26 | 27 | // ANCHOR: rs_contract_instance_config 28 | let id = Contract::load_from( 29 | "./out/debug/contract.bin", 30 | LoadConfiguration::default(), 31 | ) 32 | .unwrap() 33 | .deploy(&wallet, TxPolicies::default()) 34 | .await 35 | .unwrap(); 36 | // ANCHOR_END: rs_contract_instance_config 37 | 38 | let instance = SwayStore::new(id.clone(), wallet); 39 | 40 | (instance, id.into(), wallets) 41 | } 42 | // ANCHOR_END: rs_contract_instance_parent 43 | 44 | // ANCHOR: rs_test_set_owner 45 | #[tokio::test] 46 | async fn can_set_owner() { 47 | let (instance, _id, wallets) = get_contract_instance().await; 48 | 49 | // get access to a test wallet 50 | let wallet_1 = wallets.get(0).unwrap(); 51 | 52 | // initialize wallet_1 as the owner 53 | let owner_result = instance 54 | .with_account(wallet_1.clone()) 55 | .unwrap() 56 | .methods() 57 | .initialize_owner() 58 | .call() 59 | .await 60 | .unwrap(); 61 | 62 | // make sure the returned identity matches wallet_1 63 | assert!(Identity::Address(wallet_1.address().into()) == owner_result.value); 64 | } 65 | // ANCHOR_END: rs_test_set_owner 66 | 67 | // ANCHOR: rs_test_set_owner_once 68 | #[tokio::test] 69 | #[should_panic] 70 | async fn can_set_owner_only_once() { 71 | let (instance, _id, wallets) = get_contract_instance().await; 72 | 73 | // get access to some test wallets 74 | let wallet_1 = wallets.get(0).unwrap(); 75 | let wallet_2 = wallets.get(1).unwrap(); 76 | 77 | // initialize wallet_1 as the owner 78 | let _owner_result = instance 79 | .with_account(wallet_1.clone()) 80 | .unwrap() 81 | .methods() 82 | .initialize_owner() 83 | .call() 84 | .await 85 | .unwrap(); 86 | 87 | // this should fail 88 | // try to set the owner from wallet_2 89 | let _fail_owner_result = instance 90 | .with_account(wallet_2.clone()) 91 | .unwrap() 92 | .methods() 93 | .initialize_owner() 94 | .call() 95 | .await 96 | .unwrap(); 97 | } 98 | // ANCHOR_END: rs_test_set_owner_once 99 | 100 | // ANCHOR: rs_test_list_and_buy_item 101 | #[tokio::test] 102 | async fn can_list_and_buy_item() { 103 | let (instance, _id, wallets) = get_contract_instance().await; 104 | // Now you have an instance of your contract you can use to test each function 105 | 106 | // get access to some test wallets 107 | let wallet_1 = wallets.get(0).unwrap(); 108 | let wallet_2 = wallets.get(1).unwrap(); 109 | 110 | // item 1 params 111 | let item_1_metadata: SizedAsciiString<20> = "metadata__url__here_" 112 | .try_into() 113 | .expect("Should have succeeded"); 114 | let item_1_price: u64 = 15; 115 | 116 | // list item 1 from wallet_1 117 | let _item_1_result = instance 118 | .with_account(wallet_1.clone()) 119 | .unwrap() 120 | .methods() 121 | .list_item(item_1_price, item_1_metadata) 122 | .call() 123 | .await 124 | .unwrap(); 125 | 126 | // call params to send the project price in the buy_item fn 127 | let call_params = CallParameters::default().with_amount(item_1_price); 128 | 129 | // buy item 1 from wallet_2 130 | let _item_1_purchase = instance 131 | .with_account(wallet_2.clone()) 132 | .unwrap() 133 | .methods() 134 | .buy_item(1) 135 | .append_variable_outputs(1) 136 | .call_params(call_params) 137 | .unwrap() 138 | .call() 139 | .await 140 | .unwrap(); 141 | 142 | // check the balances of wallet_1 and wallet_2 143 | let balance_1: u64 = wallet_1.get_asset_balance(&BASE_ASSET_ID).await.unwrap(); 144 | let balance_2: u64 = wallet_2.get_asset_balance(&BASE_ASSET_ID).await.unwrap(); 145 | 146 | // make sure the price was transferred from wallet_2 to wallet_1 147 | assert!(balance_1 == 1000000015); 148 | assert!(balance_2 == 999999985); 149 | 150 | let item_1 = instance.methods().get_item(1).call().await.unwrap(); 151 | 152 | assert!(item_1.value.price == item_1_price); 153 | assert!(item_1.value.id == 1); 154 | assert!(item_1.value.total_bought == 1); 155 | } 156 | // ANCHOR_END: rs_test_list_and_buy_item 157 | 158 | // ANCHOR: rs_test_withdraw_funds 159 | #[tokio::test] 160 | async fn can_withdraw_funds() { 161 | let (instance, _id, wallets) = get_contract_instance().await; 162 | // Now you have an instance of your contract you can use to test each function 163 | 164 | // get access to some test wallets 165 | let wallet_1 = wallets.get(0).unwrap(); 166 | let wallet_2 = wallets.get(1).unwrap(); 167 | let wallet_3 = wallets.get(2).unwrap(); 168 | 169 | // initialize wallet_1 as the owner 170 | let owner_result = instance 171 | .with_account(wallet_1.clone()) 172 | .unwrap() 173 | .methods() 174 | .initialize_owner() 175 | .call() 176 | .await 177 | .unwrap(); 178 | 179 | // make sure the returned identity matches wallet_1 180 | assert!(Identity::Address(wallet_1.address().into()) == owner_result.value); 181 | 182 | // item 1 params 183 | let item_1_metadata: SizedAsciiString<20> = "metadata__url__here_" 184 | .try_into() 185 | .expect("Should have succeeded"); 186 | let item_1_price: u64 = 150_000_000; 187 | 188 | // list item 1 from wallet_2 189 | let item_1_result = instance 190 | .with_account(wallet_2.clone()) 191 | .unwrap() 192 | .methods() 193 | .list_item(item_1_price, item_1_metadata) 194 | .call() 195 | .await; 196 | assert!(item_1_result.is_ok()); 197 | 198 | // make sure the item count increased 199 | let count = instance 200 | .methods() 201 | .get_count() 202 | .simulate() 203 | .await 204 | .unwrap(); 205 | assert_eq!(count.value, 1); 206 | 207 | // call params to send the project price in the buy_item fn 208 | let call_params = CallParameters::default().with_amount(item_1_price); 209 | 210 | // buy item 1 from wallet_3 211 | let item_1_purchase = instance 212 | .with_account(wallet_3.clone()) 213 | .unwrap() 214 | .methods() 215 | .buy_item(1) 216 | .append_variable_outputs(1) 217 | .call_params(call_params) 218 | .unwrap() 219 | .call() 220 | .await; 221 | assert!(item_1_purchase.is_ok()); 222 | 223 | // make sure the item's total_bought count increased 224 | let listed_item = instance 225 | .methods() 226 | .get_item(1) 227 | .simulate() 228 | .await 229 | .unwrap(); 230 | assert_eq!(listed_item.value.total_bought, 1); 231 | 232 | // withdraw the balance from the owner's wallet 233 | let withdraw = instance 234 | .with_account(wallet_1.clone()) 235 | .unwrap() 236 | .methods() 237 | .withdraw_funds() 238 | .append_variable_outputs(1) 239 | .call() 240 | .await; 241 | assert!(withdraw.is_ok()); 242 | 243 | // check the balances of wallet_1 and wallet_2 244 | let balance_1: u64 = wallet_1.get_asset_balance(&BASE_ASSET_ID).await.unwrap(); 245 | let balance_2: u64 = wallet_2.get_asset_balance(&BASE_ASSET_ID).await.unwrap(); 246 | let balance_3: u64 = wallet_3.get_asset_balance(&BASE_ASSET_ID).await.unwrap(); 247 | 248 | assert!(balance_1 == 1007500000); 249 | assert!(balance_2 == 1142500000); 250 | assert!(balance_3 == 850000000); 251 | } 252 | // ANCHOR_END: rs_test_withdraw_funds 253 | -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- 1 | # Getting Started with Create React App 2 | 3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 4 | 5 | ## Available Scripts 6 | 7 | In the project directory, you can run: 8 | 9 | ### `npm start` 10 | 11 | Runs the app in the development mode.\ 12 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 13 | 14 | The page will reload if you make edits.\ 15 | You will also see any lint errors in the console. 16 | 17 | ### `npm test` 18 | 19 | Launches the test runner in the interactive watch mode.\ 20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 21 | 22 | ### `npm run build` 23 | 24 | Builds the app for production to the `build` folder.\ 25 | It correctly bundles React in production mode and optimizes the build for the best performance. 26 | 27 | The build is minified and the filenames include the hashes.\ 28 | Your app is ready to be deployed! 29 | 30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 31 | 32 | ### `npm run eject` 33 | 34 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 35 | 36 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 37 | 38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. 39 | 40 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. 41 | 42 | ## Learn More 43 | 44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 45 | 46 | To learn React, check out the [React documentation](https://reactjs.org/). 47 | -------------------------------------------------------------------------------- /frontend/fuels.config.ts: -------------------------------------------------------------------------------- 1 | import { createConfig } from "fuels"; 2 | 3 | export default createConfig({ 4 | contracts: ["../contract"], 5 | output: "./src/contracts", 6 | }); 7 | 8 | /** 9 | * Check the docs: 10 | * https://fuellabs.github.io/fuels-ts/guide/cli/config-file 11 | */ 12 | -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-app", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@fuels/connectors": "^0.1.1", 7 | "@fuels/react": "^0.18.0", 8 | "@tanstack/react-query": "^5.28.9", 9 | "@testing-library/jest-dom": "^5.16.5", 10 | "@testing-library/react": "^13.4.0", 11 | "@testing-library/user-event": "^13.5.0", 12 | "@types/jest": "^27.5.2", 13 | "@types/node": "^16.18.11", 14 | "@types/react": "^18.0.27", 15 | "@types/react-dom": "^18.0.10", 16 | "fuels": "^0.79.0", 17 | "react": "^18.2.0", 18 | "react-dom": "^18.2.0", 19 | "react-scripts": "5.0.1", 20 | "typescript": "^4.9.4", 21 | "web-vitals": "^2.1.4" 22 | }, 23 | "scripts": { 24 | "start": "react-scripts start", 25 | "build": "react-scripts build", 26 | "test": "react-scripts test", 27 | "eject": "react-scripts eject" 28 | }, 29 | "eslintConfig": { 30 | "extends": [ 31 | "react-app", 32 | "react-app/jest" 33 | ] 34 | }, 35 | "browserslist": { 36 | "production": [ 37 | ">0.2%", 38 | "not dead", 39 | "not op_mini all" 40 | ], 41 | "development": [ 42 | "last 1 chrome version", 43 | "last 1 firefox version", 44 | "last 1 safari version" 45 | ] 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/touchasky/intro-to-sway/5664d549c1b750c56f9ee9872dd9e95447608235/frontend/public/favicon.ico -------------------------------------------------------------------------------- /frontend/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | Sway Marketplace 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /frontend/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/touchasky/intro-to-sway/5664d549c1b750c56f9ee9872dd9e95447608235/frontend/public/logo192.png -------------------------------------------------------------------------------- /frontend/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/touchasky/intro-to-sway/5664d549c1b750c56f9ee9872dd9e95447608235/frontend/public/logo512.png -------------------------------------------------------------------------------- /frontend/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /frontend/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /frontend/src/App.css: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_css */ 2 | .App { 3 | text-align: center; 4 | } 5 | 6 | nav > ul { 7 | list-style-type: none; 8 | display: flex; 9 | justify-content: center; 10 | gap: 1rem; 11 | padding-inline-start: 0; 12 | } 13 | 14 | nav > ul > li { 15 | cursor: pointer; 16 | } 17 | 18 | .form-control{ 19 | text-align: left; 20 | font-size: 18px; 21 | display: flex; 22 | flex-direction: column; 23 | margin: 0 auto; 24 | max-width: 400px; 25 | } 26 | 27 | .form-control > input { 28 | margin-bottom: 1rem; 29 | } 30 | 31 | .form-control > button { 32 | cursor: pointer; 33 | background: #054a9f; 34 | color: white; 35 | border: none; 36 | border-radius: 8px; 37 | padding: 10px 0; 38 | font-size: 20px; 39 | } 40 | 41 | .items-container{ 42 | display: flex; 43 | flex-wrap: wrap; 44 | justify-content: center; 45 | gap: 2rem; 46 | margin: 1rem 0; 47 | } 48 | 49 | .item-card{ 50 | box-shadow: 0px 0px 10px 2px rgba(0, 0, 0, 0.2); 51 | border-radius: 8px; 52 | max-width: 300px; 53 | padding: 1rem; 54 | display: flex; 55 | flex-direction: column; 56 | gap: 4px; 57 | } 58 | 59 | .active-tab{ 60 | border-bottom: 4px solid #77b6d8; 61 | } 62 | 63 | button { 64 | cursor: pointer; 65 | background: #054a9f; 66 | border: none; 67 | border-radius: 12px; 68 | padding: 10px 20px; 69 | margin-top: 20px; 70 | font-size: 20px; 71 | color: white; 72 | } 73 | /* ANCHOR_END: fe_css */ 74 | -------------------------------------------------------------------------------- /frontend/src/App.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_app_all */ 2 | // ANCHOR: fe_app_template 3 | import { useState, useMemo } from "react"; 4 | // ANCHOR: fe_import_hooks 5 | import { useConnectUI, useIsConnected, useWallet } from "@fuels/react"; 6 | // ANCHOR_END: fe_import_hooks 7 | import { ContractAbi__factory } from "./contracts"; 8 | import AllItems from "./components/AllItems"; 9 | import ListItem from "./components/ListItem"; 10 | import "./App.css"; 11 | 12 | // ANCHOR: fe_contract_id 13 | const CONTRACT_ID = 14 | "0x3b598fc9103ce3c5c7a29663aee51099b3374958ba1016280caf802fdeb5aad8"; 15 | // ANCHOR_END: fe_contract_id 16 | 17 | function App() { 18 | // ANCHOR_END: fe_app_template 19 | // ANCHOR: fe_state_active 20 | const [active, setActive] = useState<"all-items" | "list-item">("all-items"); 21 | // ANCHOR_END: fe_state_active 22 | // ANCHOR: fe_call_hooks 23 | const { isConnected } = useIsConnected(); 24 | const { connect, isConnecting } = useConnectUI(); 25 | // ANCHOR: fe_wallet 26 | const { wallet } = useWallet(); 27 | // ANCHOR_END: fe_wallet 28 | // ANCHOR_END: fe_call_hooks 29 | 30 | // ANCHOR: fe_use_memo 31 | const contract = useMemo(() => { 32 | if (wallet) { 33 | const contract = ContractAbi__factory.connect(CONTRACT_ID, wallet); 34 | return contract; 35 | } 36 | return null; 37 | }, [wallet]); 38 | // ANCHOR_END: fe_use_memo 39 | 40 | return ( 41 |
42 |
43 |

Sway Marketplace

44 |
45 | {/* // ANCHOR: fe_ui_state_active */} 46 | 62 | {/* // ANCHOR: fe_ui_state_active */} 63 | {/* // ANCHOR: fe_fuel_obj */} 64 |
65 | {isConnected ? ( 66 |
67 | {active === "all-items" && } 68 | {active === "list-item" && } 69 |
70 | ) : ( 71 |
72 | 79 |
80 | )} 81 |
82 | {/* // ANCHOR_END: fe_fuel_obj */} 83 |
84 | ); 85 | } 86 | 87 | export default App; 88 | /* ANCHOR_END: fe_app_all */ 89 | -------------------------------------------------------------------------------- /frontend/src/components/AllItems.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_all_items_all */ 2 | // ANCHOR: fe_all_items_template 3 | import { useState, useEffect } from "react"; 4 | import { ContractAbi } from "../contracts"; 5 | import ItemCard from "./ItemCard"; 6 | import { BN } from "fuels"; 7 | import { ItemOutput } from "../contracts/contracts/ContractAbi"; 8 | 9 | interface AllItemsProps { 10 | contract: ContractAbi | null; 11 | } 12 | 13 | export default function AllItems({ contract }: AllItemsProps) { 14 | // ANCHOR_END: fe_all_items_template 15 | // ANCHOR: fe_all_items_state_variables 16 | const [items, setItems] = useState([]); 17 | const [itemCount, setItemCount] = useState(0); 18 | const [status, setStatus] = useState<"success" | "loading" | "error">( 19 | "loading" 20 | ); 21 | // ANCHOR_END: fe_all_items_state_variables 22 | // ANCHOR: fe_all_items_use_effect 23 | useEffect(() => { 24 | async function getAllItems() { 25 | if (contract !== null) { 26 | try { 27 | let { value } = await contract.functions 28 | .get_count() 29 | .txParams({ 30 | gasPrice: 1, 31 | gasLimit: 100_000, 32 | }) 33 | .get(); 34 | let formattedValue = new BN(value).toNumber(); 35 | setItemCount(formattedValue); 36 | let max = formattedValue + 1; 37 | let tempItems = []; 38 | for (let i = 1; i < max; i++) { 39 | let resp = await contract.functions 40 | .get_item(i) 41 | .txParams({ 42 | gasPrice: 1, 43 | gasLimit: 100_000, 44 | }) 45 | .get(); 46 | tempItems.push(resp.value); 47 | } 48 | setItems(tempItems); 49 | setStatus("success"); 50 | } catch (e) { 51 | setStatus("error"); 52 | console.log("ERROR:", e); 53 | } 54 | } 55 | } 56 | getAllItems(); 57 | }, [contract]); 58 | // ANCHOR_END: fe_all_items_use_effect 59 | // ANCHOR: fe_all_items_cards 60 | return ( 61 |
62 |

All Items

63 | {status === "success" && ( 64 |
65 | {itemCount === 0 ? ( 66 |
Uh oh! No items have been listed yet
67 | ) : ( 68 |
69 |
Total items: {itemCount}
70 |
71 | {items.map((item) => ( 72 | 77 | ))} 78 |
79 |
80 | )} 81 |
82 | )} 83 | {status === "error" && ( 84 |
Something went wrong, try reloading the page.
85 | )} 86 | {status === "loading" &&
Loading...
} 87 |
88 | ); 89 | } 90 | // ANCHOR_END: fe_all_items_cards 91 | /* ANCHOR_END: fe_all_items_all */ 92 | -------------------------------------------------------------------------------- /frontend/src/components/ItemCard.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_item_card_all */ 2 | // ANCHOR: fe_item_card_template 3 | import { useState } from "react"; 4 | import { ItemOutput } from "../contracts/contracts/ContractAbi"; 5 | import { ContractAbi } from "../contracts"; 6 | import { BN } from 'fuels'; 7 | 8 | interface ItemCardProps { 9 | contract: ContractAbi | null; 10 | item: ItemOutput; 11 | } 12 | 13 | const assetId = "0x0000000000000000000000000000000000000000000000000000000000000000" 14 | 15 | export default function ItemCard({ item, contract }: ItemCardProps) { 16 | // ANCHOR_END: fe_item_card_template 17 | // ANCHOR: fe_item_card_status 18 | const [status, setStatus] = useState<'success' | 'error' | 'loading' | 'none'>('none'); 19 | // ANCHOR_END: fe_item_card_status 20 | // ANCHOR: fe_item_card_buy_item 21 | async function handleBuyItem() { 22 | if (contract !== null) { 23 | setStatus('loading') 24 | try { 25 | await contract.functions.buy_item(item.id) 26 | .txParams({ 27 | variableOutputs: 1, 28 | gasPrice: 1, 29 | gasLimit: 300_000, 30 | }) 31 | .callParams({ 32 | forward: [item.price, assetId], 33 | }) 34 | .call() 35 | setStatus("success"); 36 | } catch (e) { 37 | console.log("ERROR:", e); 38 | } 39 | } 40 | } 41 | // ANCHOR_END: fe_item_card_buy_item 42 | // ANCHOR: fe_item_cards 43 | return ( 44 |
45 |
Id: {new BN(item.id).toNumber()}
46 |
Metadata: {item.metadata}
47 |
Price: {new BN(item.price).formatUnits()} ETH
48 |

Total Bought: {new BN(item.total_bought).toNumber()}

49 | {status === 'success' &&
Purchased ✅
} 50 | {status === 'error' &&
Something went wrong ❌
} 51 | {status === 'none' && } 52 | {status === 'loading' &&
Buying item..
} 53 |
54 | ); 55 | } 56 | // ANCHOR_END: fe_item_cards 57 | /* ANCHOR_END: fe_item_card_all */ 58 | -------------------------------------------------------------------------------- /frontend/src/components/ListItem.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_list_items_all */ 2 | // ANCHOR: fe_list_items_import 3 | import { useState } from "react"; 4 | import { ContractAbi } from "../contracts"; 5 | import { bn } from "fuels"; 6 | // ANCHOR_END: fe_list_items_import 7 | 8 | // ANCHOR: fe_list_items_interface 9 | interface ListItemsProps { 10 | contract: ContractAbi | null; 11 | } 12 | // ANCHOR_END: fe_list_items_interface 13 | 14 | // ANCHOR: fe_list_items_function 15 | export default function ListItem({contract}: ListItemsProps){ 16 | // ANCHOR_END: fe_list_items_function 17 | // ANCHOR: fe_list_items_state_variables 18 | const [metadata, setMetadata] = useState(""); 19 | const [price, setPrice] = useState("0"); 20 | const [status, setStatus] = useState<'success' | 'error' | 'loading' | 'none'>('none'); 21 | // ANCHOR_END: fe_list_items_state_variables 22 | // ANCHOR: fe_list_items_handle_submit 23 | async function handleSubmit(e: React.FormEvent){ 24 | e.preventDefault(); 25 | setStatus('loading') 26 | if(contract !== null){ 27 | try { 28 | const priceInput = bn.parseUnits(price.toString()); 29 | await contract.functions 30 | .list_item(priceInput, metadata) 31 | .txParams({ 32 | gasPrice: 1, 33 | gasLimit: 300_000, 34 | }) 35 | .call(); 36 | setStatus('success') 37 | } catch (e) { 38 | console.log("ERROR:", e); 39 | setStatus('error') 40 | } 41 | } else { 42 | console.log("ERROR: Contract is null"); 43 | } 44 | } 45 | // ANCHOR_END: fe_list_items_handle_submit 46 | // ANCHOR: fe_list_items_form 47 | return ( 48 |
49 |

List an Item

50 | {status === 'none' && 51 |
52 |
53 | 54 | setMetadata(e.target.value)} 61 | /> 62 |
63 | 64 |
65 | 66 | { 75 | setPrice(e.target.value); 76 | }} 77 | /> 78 |
79 | 80 |
81 | 82 |
83 |
84 | } 85 | 86 | {status === 'success' &&
Item successfully listed!
} 87 | {status === 'error' &&
Error listing item. Please try again.
} 88 | {status === 'loading' &&
Listing item...
} 89 | 90 |
91 | ) 92 | } 93 | // ANCHOR_END: fe_list_items_form 94 | /* ANCHOR_END: fe_list_items_all */ 95 | -------------------------------------------------------------------------------- /frontend/src/contracts/contracts/ContractAbi.d.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | 6 | /* 7 | Fuels version: 0.73.0 8 | Forc version: 0.49.2 9 | Fuel-Core version: 0.22.0 10 | */ 11 | 12 | import type { 13 | BigNumberish, 14 | BN, 15 | BytesLike, 16 | Contract, 17 | DecodedValue, 18 | FunctionFragment, 19 | Interface, 20 | InvokeFunction, 21 | } from 'fuels'; 22 | 23 | import type { Enum } from "./common"; 24 | 25 | export type IdentityInput = Enum<{ Address: AddressInput, ContractId: ContractIdInput }>; 26 | export type IdentityOutput = Enum<{ Address: AddressOutput, ContractId: ContractIdOutput }>; 27 | export type InvalidErrorInput = Enum<{ IncorrectAssetId: AssetIdInput, NotEnoughTokens: BigNumberish, OnlyOwner: IdentityInput }>; 28 | export type InvalidErrorOutput = Enum<{ IncorrectAssetId: AssetIdOutput, NotEnoughTokens: BN, OnlyOwner: IdentityOutput }>; 29 | 30 | export type AddressInput = { value: string }; 31 | export type AddressOutput = AddressInput; 32 | export type AssetIdInput = { value: string }; 33 | export type AssetIdOutput = AssetIdInput; 34 | export type ContractIdInput = { value: string }; 35 | export type ContractIdOutput = ContractIdInput; 36 | export type ItemInput = { id: BigNumberish, price: BigNumberish, owner: IdentityInput, metadata: string, total_bought: BigNumberish }; 37 | export type ItemOutput = { id: BN, price: BN, owner: IdentityOutput, metadata: string, total_bought: BN }; 38 | 39 | interface ContractAbiInterface extends Interface { 40 | functions: { 41 | buy_item: FunctionFragment; 42 | get_count: FunctionFragment; 43 | get_item: FunctionFragment; 44 | initialize_owner: FunctionFragment; 45 | list_item: FunctionFragment; 46 | withdraw_funds: FunctionFragment; 47 | }; 48 | 49 | encodeFunctionData(functionFragment: 'buy_item', values: [BigNumberish]): Uint8Array; 50 | encodeFunctionData(functionFragment: 'get_count', values: []): Uint8Array; 51 | encodeFunctionData(functionFragment: 'get_item', values: [BigNumberish]): Uint8Array; 52 | encodeFunctionData(functionFragment: 'initialize_owner', values: []): Uint8Array; 53 | encodeFunctionData(functionFragment: 'list_item', values: [BigNumberish, string]): Uint8Array; 54 | encodeFunctionData(functionFragment: 'withdraw_funds', values: []): Uint8Array; 55 | 56 | decodeFunctionData(functionFragment: 'buy_item', data: BytesLike): DecodedValue; 57 | decodeFunctionData(functionFragment: 'get_count', data: BytesLike): DecodedValue; 58 | decodeFunctionData(functionFragment: 'get_item', data: BytesLike): DecodedValue; 59 | decodeFunctionData(functionFragment: 'initialize_owner', data: BytesLike): DecodedValue; 60 | decodeFunctionData(functionFragment: 'list_item', data: BytesLike): DecodedValue; 61 | decodeFunctionData(functionFragment: 'withdraw_funds', data: BytesLike): DecodedValue; 62 | } 63 | 64 | export class ContractAbi extends Contract { 65 | interface: ContractAbiInterface; 66 | functions: { 67 | buy_item: InvokeFunction<[item_id: BigNumberish], void>; 68 | get_count: InvokeFunction<[], BN>; 69 | get_item: InvokeFunction<[item_id: BigNumberish], ItemOutput>; 70 | initialize_owner: InvokeFunction<[], IdentityOutput>; 71 | list_item: InvokeFunction<[price: BigNumberish, metadata: string], void>; 72 | withdraw_funds: InvokeFunction<[], void>; 73 | }; 74 | } 75 | -------------------------------------------------------------------------------- /frontend/src/contracts/contracts/ContractAbi.hex.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | 6 | /* 7 | Fuels version: 0.73.0 8 | Forc version: 0.49.2 9 | Fuel-Core version: 0.22.0 10 | */ 11 | 12 | export default '0x740000034700000000000000000032e45dfcc00110fff3005d4060495d47f02f13490440764800115d47f03013490440764802805d47f03113490440764802ec5d47f03213490440764803865d47f03313490440764805965d47f03413490440764808d572f0007b36f000001aec500091000a585d50604a50406020504fb03072440020284d04405043b9407244002028413440504bb9405d57f035105553005043b80072440020284124405047b8e07248002028455480a14104605fec00005047b010724800202845348013410000764002515d43f036104103001a54b0005047b1d85fed403b50491008724c0020284904c0504bb628724c0028284914c05047b5481ae920001ae5100020f8330058fbe00250fbe00474000c031a47d000504bb2b85fed4057504d200872580020284d05805043b650724c0028284124c0504bb5681ae900001ae5200020f8330058fbe00250fbe00474000bf31a43d000504bb050724c0020284914c05fec000e5045202872480020284504805043b0505d47b00e5d4bf0081b4914805d4ff009104924c05d4ff00a104924c05d4ff00b1f4924c05d4ff00c194514c05d4ff0081b4d14c05d5bf009104d35805d5bf00a104d35805d5bf00b1f4d3580505bb2e0725c0020285905c05043b9f8725c0020284165c05043b9f8505bb9f8505fb5a81ae920001ae5700020f8330058fbe00250fbe00474000bfd1a4bd000505fb5c81ae930001ae5700020f8330058fbe00250fbe00474000bf51a5fd0005063b7807264002028612640504bb8a07264002028497640505fb820a35d84a1504bb7a0725c0020284965c0505bb820505fb840a35d25a072480020284174805043b3007248002028417480504bb09872580020284905805fed30175fed10185043b0985047b9d872480020284504805d4bb0175d4fb0185d43f00d1b4524005d43f0081b410440264000001a4070005047b9d839411452764400065043b2585fec004b504bb6a072440060284904407400000b5047b1785fec102f5d4bf0081b4924c01041048050491008724c0058284904c0504bb6a072400060284914005043b4e872440060284124405d43b0d41341004076400001360000005043b4e8504100085047b96072480058284504805d43b12d154554007644000113455400505fb2285fec10455fed504a13411000764001a75d43f036104103005d47b136104510405fed11365063b9605047b2005fed404050491008724c0020284904c05043b67872480028284114805047b5881ae900001ae5100020f8330058fbe00250fbe00474000b5d1a43d0005047b9b872480020284504805043b9b85047b32072480020284504805043ba1872480020284114805043ba185047ba18504bb5e85d4ff00e1ae930001ae5200020f8330058fbe00250fbe00474000b7d1a4bd000504fb6085d53f00e1ae940001ae5300020f8330058fbe00250fbe00474000b741a4fd0005053b7c07258002028512580504bb8c07258002028493580504fb860a34d44a1504bb7e0724c0020284914c05047b860504fb880a34d246072440020284134405043b34072440020284134405047b0c872480020284504805d43f00e5fed001d5fec001e5043b0c85047ba3872480020284504805d43b01d5d47b01e5d4bf00d1b4904805d4ff0081b493480264800001a487000504fba38394934d05d4ff0081b45344010452440504fb36072500058284d85005d53f009284535005047ba383b4504905d43f00f154154007640009e5043b96050410010504fb9405047b4c072480028284504805d43b098134100007640000f5d43b09813410040764000025d43f010364000005043b4c0504100085047b11872480020284504805043b41872480020284134803c455400740000855043b4c0504100085047b9207248002028450480504bb9206140000113450000764400061341004076400001360000005043b7701a401000740000025043b7701a400000134500007644000613410040764000025d43f010364000006158010474000001615800061a50000016414580764000025d43f01136400000614143001345000076440014134500407644000e5c47f09013450440764400075c47f0981341044076400001360000005043b7785d43f00e740000025043b7785d43f0145047b710740000025043b7101a4010005047b718740000025043b7181a4000005d47f00e134104407640000174000040614143001345000076440014134500407644000e5c47f09013450440764400075c47f0981341044076400001360000005043b7205d43f00e740000025043b7205d43f0145047b728740000025043b7281a4010005047b730740000025043b7301a4000001345000076440022134500407644001f5d47f014134504401a6000007644001a5d47f00e13410440764000025d43f010364000006140000113450000764400061341004076400001360000005043b7381a401000740000025043b7381a400000134500007644000613410040764000025d43f0103640000061414109740000016141400c5d610005740000023600000061614302134180007640000210514040750000615043b15872440020284124405047b3f872480020284534803d414551740000a05d43f01512415400204d54005043b960504100105053b9405047b49872480028284504805d43b093134100007640000f5d43b09313410040764000025d43f010364000005043b498504100085047b0f872480020284504805043b3d872480020284144803c453400740000855043b498504100085047b9007248002028450480504bb9006140000113450000764400061341004076400001360000005043b7001a401000740000025043b7001a400000134500007644000613410040764000025d43f010364000006158010474000001615800061a54000016415580764000025d43f01136400000614153001345000076440014134500407644000e5c47f09013450440764400075c47f0981341044076400001360000005043b7085d43f00e740000025043b7085d43f0145047b740740000025043b7401a4010005047b748740000025043b7481a4000005d47f00e134104407640000174000040614153001345000076440014134500407644000e5c47f09013450440764400075c47f0981341044076400001360000005043b7505d43f00e740000025043b7505d43f0145047b758740000025043b7581a4010005047b760740000025043b7601a4000001345000076440022134500407644001f5d47f014134504401a6000007644001a5d47f00e13410440764000025d43f010364000006140000113450000764400061341004076400001360000005043b7681a401000740000025043b7681a400000134500007644000613410040764000025d43f0103640000061415109740000016141500c5d610005740000023600000061615302134180007640000210555040750000615043b13872440020284124405047b3b872480020284544803d4154d1240000005043b468724400302841744072440030340014115d43f016364000005043b438724400302843b44072440030340004115d43f016364000001aec5000910002185d43f037104103005d47f037104513007248002028ed04805fec0004504bb028724c0020284914c05d47b0045d4bf0081b4914805d4ff008104924c05d4ff00a104924c05d4ff00b1f4924c05d4ff00c194514c0504fb09872500020284d05005043b1f872500020284135005043b1f8504fb1f85053b0e81ae920001ae5400020f8330058fbe00250fbe004740009cc1a4bd0005053b1081ae810001ae5400020f8330058fbe00250fbe004740009c41a53d0005057b1387258002028552580504bb1b872580020284945805053b178a35154a1504bb1587250002028493500504fb1785053b198a35124e072480020284144805043b0b87248002028414480504bb048724c0020284904c05fec100d5fed100e5043b0485047b1d872480020284504805d43b00d5d47b00e5d4bf00d1b4904805d4ff0081b493480264800001a487000504fb1d8394904d0764000065043b0885fec0011504bb12872440010284904407400000a5043b0785fec100f5d4ff0081b453440104524405d4510005fed1010504bb12872440010284904405043b0d872440010284124405d43b0251341004076400001360000005d43b01c244000001aec5000910004905d40604a5057b3f85d47f03610451300504bb0785fed000f504d200872500020284d1500504fb2a872500028284d2500504bb2281ae930001ae5200020f8330058fbe00250fbe004740009391a4bd000504fb1605fed002c5041300872500020284115005043b2d072440028284134405047b2481ae900001ae5100020f8330058fbe00250fbe004740009291a43d0007244002028ed24405fec00045047b02872480020284504805d43b0045d47f0081b4504405d4bf009104514805d4bf00a104514805d4bf00b1f4514805d4bf00c194104805d4bf0081b4904805d4ff009104924c05d4ff00a104924c05d4ff00b1f4924c0504fb18872500020284fb5005053b4707258002028513580504fb4705053b470505bb2681ae910001ae5600020f8330058fbe00250fbe004740009351a47d000505bb2881ae920001ae5600020f8330058fbe00250fbe0047400092d1a5bd000505fb35872600020285d16005047b3d87260002028456600505bb398a35974615047b37872580020284545805053b398505bb3b8a359152072440020284d64405047b1a8724c0020284564c0504fb04872500020284d15005fed200d5fed000e5043b0485047b45072480020284504805d43b00d5d47b00e5d4bf00d1b4904805d4ff0081b493480264800001a487000504fb450394904d0764000065043b1005fec0020504bb2f872440060284904407400000b5043b0a05fec10145d4ff0081b4534401045244050490008724c0058284914c0504bb2f872440060284904405043b1c872440060284124405d43b05f1341004076400001360000005043b1c8504100085047b3f8724800582845048072400058255500001aec500091000a385067b9685d4ff038104d33005d43f038104103007244002028ed34405fec00045047b02872480020284504805d43b0045d47f0081b4504405d4bf027104514805d4bf00a104514805d4bf00b1f5114805d47f00c196904405d43f0081b41a4005d47f027104104405d47f00a104104405d47f00b1f4104405047b3e07248002028453480504bb9b0724c0020284914c05047b9b0504bb9b0504fb5981ae940001ae5300020f8330058fbe00250fbe004740008b71a4fd0005053b5b81ae900001ae5400020f8330058fbe00250fbe004740008af1a53d0005057b7507258002028553580504fb87072580020284d45805053b7f0a35154e1504fb77072500020284d2500504bb7f05053b810a35134a072480020284544805047b4007248002028454480504bb048724c0020284914c05fed000d5feda00e5043b0485047b99072480020284504805d43b00d5d47b00e5d4bf00d1b4904805d4ff0081b493480264800001a487000504fb990394904d0764000065043b2605fec004c504bb61872440038284904407400000b5043b1985fec10335d4ff0081b4534401045244050490008724c0030284914c0504bb61872440038284904405043b51072440038284124405d43b0c31341004076400001360000005043b510504100085047b8f872480030284504805d43b11f134100401a440000764000015c47f1405d43f03910410300504bb1885fed00315d43f0295fed00325043b250724c0010284124c0134110007640018171400001764000125043b3085fec00615047b3905fec107271480002504fb16872500020284d250050491008725000202849350050490008724c0028284914c0504fb72072440030284d0440740000e06140000113450000764400061341004076400001360000005043b6501a401000740000025043b6501a400000134500007644000613410040764000025d43f010364000006160010374000001616000055043b0785fec000f5047b8d072480028284504801a5c000016417600764000215043b8d05047b4b872480028284504805d43b11a134100407640000c5d43b09713410000764000025d43f010364000005043b3b85fec10775fec107b504bb6a072440028284904407400000a5043b4b8504100085047b3385fec006750491008724c0020284904c0504bb6a072400028284914005047b6c872400028284524007400007b61417200134500007644000d13450040764400075c47f0901341044076400001360000005043b6585d43f014740000025043b6581a4010005047b660740000025043b6601a400000134500007644000b5d47f01413410440764000081ae970001ae4100020f8330058fbe00250fbe0047400080a1a5fd0007500004061417200134500007644000d13450040764400075c47f0901341044076400001360000005043b6685d43f014740000025043b6681a4010005047b670740000025043b6701a40000013410000764000065043b2285fec0045504bb67872440028284904407400000c5043b1205fec102461457203504bb100724c0020284914c050450008724c0020284524c0504bb67872440028284904405043ba1072440028284124405d43b11a134100401a440000764000015c47f140764400d65043ba105047b54872480028284504805d43b1421341004076400001360000005043b548504100085047b92872480020284504805043b9285047b8d0504bb570724c0028284914c05d47b11a1345104076440001360000005047b57050451008504bb948724c0020284914c05047b14872480020284504805043b948504bb7d0724c0020284914c05047b8b0724c0020284504c0a1412460764000a75043b1d05fec103a5fec003e5047b6c872480028284504805043b49072480028284114805d43b0d913410040764000155d43b09213410000764000025d43f010364000005043b490504100085047b1f85fec003f504bb2985fec0053504d200872500020284d050050411008724c0028284124c0504bb6f072400030284914007400000a5043b490504100205047b0d05fec101a50491028724c0008284904c0504bb6f07240003028491400504fb72072400030284d24005043b4e072440030284134405d43b0e41341000076400001360000005d43f038104103005d47f03810451300504bb4e050492008504fb96872500028284d2500504fb2c072500020284d05005fec005c504d302872500020284d1500505bb3605fec106c50456008724c0028284524c05d47b05c5d4bf0081b4914805d4ff027104924c05d4ff00a104924c05d4ff00b1f4924c05d4ff00c196d14c05d47f0081b45b4405d4ff027104514c05d4ff00a104514c05d4ff00b1f4514c0504fb42072500020284d05005043b9d072500020284135005043b9d0504fb9d05053b5d81ae920001ae5400020f8330058fbe00250fbe004740007281a4bd0005053b5f81ae910001ae5400020f8330058fbe00250fbe004740007201a53d0005057b7907268002028552680504bb89072680020284946805053b830a35154a1504bb7b07250002028493500504fb8305053b850a35124e072480020284144805043b4407248002028414480504bb0a0724c0020284904c05fed10185fedb0195043b0a05047b9f072480020284504805d43b0185d47b0195d4bf00d1b4904805d4ff0081b493480264800001a487000504fb9f0394934d05d4ff0081b45344010452440504fb46072500030284d65005d53f027284535005047b9f03b45049072400028256500001ae970001ae4100020f8330058fbe00250fbe004740007051a5fd000750001455043b8d05047ba1072480028284114801ae970001ae4100020f8330058fbe00250fbe004740006f91a5fd000750001515d43f0145d47b04a5d4bb04b340104525d43f016364000001aec5000910010885d40604a5d590000506500085d43f037104103005d47f037104513005d4bf037104923005d4ff037104d33007250002028ed05005fec00045043b02872500020284115005043b21872440020284124405fec00475041002872440020284134405d43b0475d47f0081b4504405d4ff008104514c05d4ff00a104514c05d4ff00b1f4514c05d4ff00c194104c0504fb56872500020284d2500504bbf187250002028493500504bbf18504fbf185053b8201ae910001ae5400020f8330058fbe00250fbe0047400069f1a47d0005053b8401ae810001ae5400020f8330058fbe00250fbe004740006971a53d0005057bab872680020285516805047bd5872680020284546805053bc18a35154615047bad87250002028453500504fbc185053bc38a35114e072440020284944405047b5887248002028454480504bb048724c0020284914c05fec100d5fed000e5043b0485047bef872480020284504805d43b00d5d47b00e5d4bf00d1b4904805d4ff0081b493480264800001a487000504fbef8394904d0764000065043b3805fec0070504bb98872440010284904407400000a5043b2605fec104c5d4ff0081b453440104524405d4510005fed104d504bb98872440010284904405043b78072440010284124405d43b1311341004076400001360000005d43b0f1106d00405d43b0045d47f0081b4504405d4bf008104514805d4bf00a104514805d4bf00b1f4514805d4bf00c19410480504bb5a8724c0020284bb4c0504fbf3872500020284d2500504bbf38504fbf385053b8601ae910001ae5400020f8330058fbe00250fbe0047400063c1a47d0005053b8801ae810001ae5400020f8330058fbe00250fbe004740006341a53d0005057baf872680020285516805047bd7872680020284546805053bc58a35154615047bb187250002028453500504fbc585053bc78a35114e072440020284944405047b5c87248002028454480504bb0d8724c0020284914c05fec101f5fed00205043b0d85047bfb872480020284504805d43b01f5d47b0205d4bf00d1b4904805d4ff0081b493480264800001a487000504fbfb8394934d05d4ff0081b453440104524405f45b0005047bfb83b45049071400001764000125043b4305fec00865047b4d05fec109a71480002504fb1f872500020284d250050491008725000202849350050490008724c0028284914c0504fba8872440030284d0440740000e26140000113450000764400061341004076400001360000005043b9981a401000740000025043b9981a400000134500007644000613410040764000025d43f010364000006160010374000001616000055043b1085fec00215047be1872480028284504801a5c000016417600764000215043be185047b72872480028284504805d43b1c3134100407640000c5d43b0e513410000764000025d43f010364000005043b4f85fec109f5fec10a3504bba0872440028284904407400000a5043b728504100085047b4605fec008c50491008724c0020284904c0504bba0872400028284914005047ba3072400028284524007400007d61417200134500007644000d13450040764400075c47f0901341044076400001360000005043b9a05d43f014740000025043b9a01a4010005047b9c8740000025043b9c81a400000134500007644000b5d47f01413410440764000081ae970001ae4100020f8330058fbe00250fbe004740005b71a5fd0007500004061417200134500007644000d13450040764400075c47f0901341044076400001360000005043b9d05d43f014740000025043b9d01a4010005047b9d8740000025043b9d81a40000013410000764000065043b2e85fec005d504bb9e072440028284904407400000c5043b1b05fec103661457203504bb160724c0020284914c050450008724c0020284524c0504bb9e07244002828490440724010381043b40072440028284124405d43b1c3134100401a440000764000015c47f140764401c9724010381043b4005047b79072480028284504805d43b2071341004076400001360000005043b790504100085047be4072480020284504805043be405047be18504bb7b8724c0028284914c05d47b1c31345104076440001360000005047b7b850451008504bbe60724c0020284914c05047b1d872480020284504805043be60504bbbf8724c0020284914c05047bdf8724c0020284504c0a1412460764001995043b2705fec104e5fec00525047ba3072480028284504805043b70072480028284114805d43b14613410040764000155d43b0e013410000764000025d43f010364000005043b700504100085047b2b85fec0057504bb3905fec0072504d200872500020284d050050411008724c0028284124c0504bba5872400030284914007400000a5043b700504100205047b1805fec103050491028724c0008284904c0504bba587240003028491400504fba8872400030284d24005043b75072440030284134405d43b1511341000076400001360000005d43f037104103005d47f03710451300504bb75050492008724c1060104fb4c072500028284d2500504bb338724c0020284904c05fec006b50492028724c0020284914c05d47b06b5d4bf0081b4914805d4ff008104924c05d4ff00a104924c05d4ff00b1f4924c05d4ff00c194514c0504fb5e872500020284d05005043bf5872500020284135005043bf58504fbf585053b8a01ae920001ae5400020f8330058fbe00250fbe004740004df1a4bd0005053b8c01ae810001ae5400020f8330058fbe00250fbe004740004d71a53d0005057bb387268002028552680504bbd9872680020284946805053bc98a35154a1504bbb587250002028493500504fbc985053bcb8a35124e072480020284144805043b6087248002028414480504bb078724c0020284904c05fec10135fed10145043b0785047bfd872480020284504805d43b0135d47b0145d4bf00d1b4904805d4ff0081b493480264800001a487000504fbfd8394904d0764000065043b3b85fec0077504bb9a872440010284904407400000a5043b2985fec10535d4ff0081b453440104524405d4510005fed1054504bb9a872440010284904405043b7e072440010284124405d43b1351341004076400001360000005d43f036104103005d47f036104513005d6ff037106db3005d4bf03710492300504fb7e0504d3008725010601053b5005057b3d872680008285536805fed607c504d501072680028284d4680504d503872500018284d95005fec0085504fbea072500058284d5500504fb48872500020284d05005fec009550413028724c0020284114c05043b520724400202841b4405fec00a85041002872440020284124405d43b0a85d47f0081b4504405d4bf008104514805d4bf00a104514805d4bf00b1f4514805d4bf00c19410480504bb628724c00202849b4c0504fbf7872500020284d2500504bbf78504fbf785053b8e01ae910001ae5400020f8330058fbe00250fbe004740004561a47d0005053b9001ae810001ae5400020f8330058fbe00250fbe0047400044e1a53d0005057bb7872680020285516805047bdb872680020284546805053bcd8a35154615047bb987250002028453500504fbcd85053bcf8a35114e072440020284944405047b6487248002028454480504bb0a8724c0020284914c05fec10195fed001a5043b0a85047bff872480020284504805d43b0195d47b01a5d4bf00d1b4904805d4ff0081b493480264800001a487000504fbff8394904d0764000065043b3c85fec0079504bb9b872440010284904407400000a5043b2a85fec10555d4ff0081b453440104524405d4510005fed1056504bb9b872440010284904405043b7f072440010284124405d43b1371341004076400001360000005043b7f050410008506bbea05047b310724800082845048050411008504bb48850492028724c0020284124c05043b96072480028284114805047b8001ae900001ae5100020f8330058fbe00250fbe004740003c51a43d0005047be8072480020284504805043be805047b66872480020284504805043bf9872480020284114805043bf985047bf98504bb9205d4ff00e1ae930001ae5200020f8330058fbe00250fbe004740003e51a4bd000504fb9405d53f00e1ae940001ae5300020f8330058fbe00250fbe004740003dc1a4fd0005053bbb87254002028512540504bbdd87254002028493540504fbd18a34d44a1504bbbd8724c0020284914c05047bd18504fbd38a34d246072440020284134405043b68872440020284134405047b13072480020284504805d43f00e5fed002a5fec002b5043b130724410181047b44072480020284504805d43b02a5d47b02b5d4bf00d1b4904805d4ff0081b493480264800001a487000724c1018104fb4c0394934d05d4ff0081b45344010452440504fb6a872500058284da5005d53f00928453500724410181047b4403b450490240000001ae970001ae4100020f8330058fbe00250fbe004740003be1a5fd000750002395043be18724410381047b44072480028284114801ae970001ae4100020f8330058fbe00250fbe004740003b11a5fd000750002461aec500091000c285d43f038104103005d47f038104513007248002028ed04805fec0004504bb028724c0020284914c05d47b0045d4bf0081b4914805d4ff027104924c05d4ff00a104924c05d4ff00b1f4924c05d4ff00c194514c05d4ff0081b4d14c05d53f027104d35005d53f00a104d35005d53f00b1f4d35005053b48872540020285105405043bb8872540020284145405043bb885053bb885057b7481ae920001ae5500020f8330058fbe00250fbe004740003631a4bd0005057b7681ae930001ae5500020f8330058fbe00250fbe0047400035b1a57d000505bb900725c0020285925c0504bb9e0725c0020284955c05057b9a0a35564a1504bb92072540020284945405053b9a05057b9c0a355252072480020284154805043b4a87248002028415480504bb04872500020284905005fed300d5fed100e5043b0485047bb6872480020284504805d43b00d5d47b00e5d4bf00d1b4904805d4ff0081b493480264800001a487000504fbb68394904d0764000065043b3205fec0064504bb78872440038284904407400000b5043b2385fec10475d4ff0081b4534401045244050490008724c0030284914c0504bb78872440038284904405043b66072440038284124405d43b0f11341004076400001360000005043b660504100085047bba872480030284504805d43b175134100405c47f140764000011a4400005d43f03a10410300504bb2285fed00455d43f02e5fed00465043b310724c0010284124c0134110007640023671400001764000125043b3b05fec00765047b4385fec108771480002504fb17872500020284d250050491008725000202849350050490008724c0028284914c0504fb8d072440030284d0440740000e06140000113450000764400061341004076400001360000005043b7c01a401000740000025043b7c01a400000134500007644000613410040764000025d43f010364000006150010374000001615000055043b0785fec000f5047bac072480028284504801a54000016415500764000215043bac05047b60872480028284504805d43b158134100407640000c5d43b0c113410000764000025d43f010364000005043b4605fec108c5fec1090504bb85072440028284904407400000a5043b608504100085047b3e05fec007c50491008724c0020284904c0504bb85072400028284914005047b87872400028284524007400007b61415200134500007644000d13450040764400075c47f0901341044076400001360000005043b7c85d43f014740000025043b7c81a4010005047b810740000025043b8101a400000134500007644000b5d47f01413410440764000081ae950001ae4100020f8330058fbe00250fbe004740002b61a57d0007500004061415200134500007644000d13450040764400075c47f0901341044076400001360000005043b8185d43f014740000025043b8181a4010005047b820740000025043b8201a40000013410000764000065043b2c85fec0059504bb82872440028284904407400000c5043b1105fec102261455203504bb0f0724c0020284914c050450008724c0020284524c0504bb82872440028284904405043bbd872440028284124405d43b158134100401a440000764000015c47f1407644018b5043bbd85047b69872480028284504805d43b17b1341004076400001360000005043b698504100085047bb2872480020284504805043bb285047bac0504bb6c0724c0028284914c05d47b1581345104076440001360000005047b6c050451008504bbb48724c0020284914c05047b13872480020284504805043bb48504bb940724c0020284914c05047ba00724c0020284504c0a14124607640015c5043b2705fec104e5fec00525047b87872480028284504805043b56872480028284114805d43b10f13410040764000155d43b0ad13410000764000025d43f010364000005043b568504100085047b2985fec0053504bb3585fec006b504d200872500020284d050050411008724c0028284124c0504bb8a072400030284914007400000a5043b568504100205047b0c05fec101850491028724c0008284904c0504bb8a07240003028491400504fb8d072400030284d24005043b63072440030284134405d43b11a1341000076400001360000005043b630504100085047bc0072480028284504805043bc005047bba8504bb6e8724c0030284914c05d47b1751345104076440001360000005047b6e850451008504bb198724c0028284904c050412028724c0028284114c05043b59072440050284124405d43b0331341000076400001740000025d43b0b7134100007640001e5d43b0b21341004076400001740000025d43b0b7134100401a44000076400001740000145043b590504100085047bae872480020284504805043b59050410028504100085047bb0872480020284504805043bae85047bb08504bb980724c0020284904c05043ba40724c0020284114c0a1452420740000145043b590504100085047ba8072480020284504805043b59050410028504100085047baa072480020284504805043ba805047baa0504bb960724c0020284904c05043ba20724c0020284114c0a14524205043b3805d4bf0145fed2070504bbc00504d000872500028284d250013451000764400c45d43f035104103001a446000504bb1e8724c0020284914c05047b0a0724c0020284504c05043b2f0724c0020284124c049511400154140005057b4085fec10815fed408613410000764000a95043bba85047b71872480030284504805d43b1751341004076400001360000005043b718504100085047b5e072480028284504805d43b0bc13410000764000115d43b0bc13410040764000025d43f010364000005d43f035104103005047b5e050451008504bb158724c0020284914c05047b4e8724c0020284504c03c494440740000875043b5e0504100085047ba607248002028450480504bba606140000113450000764400061341004076400001360000005043b7d01a401000740000025043b7d01a400000134500007644000613410040764000025d43f010364000006158010474000001615800061a4c000016413580764000025d43f01136400000614133001345000076440014134500407644000e5c47f09013450440764400075c47f0981341044076400001360000005043b7d85d43f00e740000025043b7d85d43f0145047b7e0740000025043b7e01a4010005047b7e8740000025043b7e81a4000005d47f00e134104407640000174000040614133001345000076440014134500407644000e5c47f09013450440764400075c47f0981341044076400001360000005043b7f05d43f00e740000025043b7f05d43f0145047b7f8740000025043b7f81a4010005047b800740000025043b8001a4000001345000076440022134500407644001f5d47f014134504401a5c00007644001a5d47f00e13410440764000025d43f010364000006140000113450000764400061341004076400001360000005043b8081a401000740000025043b8081a400000134500007644000613410040764000025d43f0103640000061413109740000016141300c5d5d00057400000236000000615d33021341700076400002104d3040750000615d43f035104103005047b2087258002028452580504bb4c872580020284905803d453512240000005043b53872440030284154405d47f00b72480030340114125d43f016364000005047b50872480030284504805d43f00c72480030340104525d43f016364000001ae950001ae4100020f8330058fbe00250fbe004740000fc1a57d000750001fa5043bac05047bbd872480028284114801ae950001ae4100020f8330058fbe00250fbe004740000f01a57d000750002065d43f00e5d47b0625d4bb063340104525d43f016364000001af05000910000585ff100005ff110015ff120025ff130035ff140045ff150055ff160065ff170075ff180085ff190095ff3b00a1aec5000910000201a43a0001a6790001a63e0005d4500005d4bf008264800001a4870005f4910005d47f008134510007644002c5d45900213451000764400225d4590025d4ff008104514c05d4d90025d5190005d559001155915407658000174000007264400001a587000155d5000765c000174000001285945401a5160005f6540001a5800005d53f00816516500765000055f6510015f6510021a440000264400007400000f5d519000105144c010514580105525805c5550005e515000105960407500000e5f6520005d47f0085f6510015d47f0085f6510021a44000026440000504100085d47f00d264400001a4470007248002028ed04801a43b0005d4900005d4d00015d5100025d4100035f4520005f4530015f4540025f4500035d43f00d134100007640002c5d41900213410000764000225d4190025d4bf00d104104805d4990025d4d90005d519001155505007654000174000007264000001a547000155940007658000174000001285535001a4d50005f6530001a5400005d4ff00d164d54c0764c00055f6500015f6500021a400000264000007400000f5d4d9000104d3480104d3540105115405c5140005e4d4000105550407500000e5f6510005d43f00d5f6500015d43f00d5f6500021a400000264000001af40000920000201af9800059f050585d43c0005d47c0015d4bc0025d4fc0035d53c0045d57c0055d5bc0065d5fc0075d63c0085d67c0095defc00a920000584af800001af05000910000385ff100005ff110015ff120025ff130035ff140045ff150055ff3b0061aec5000910000601a43a0001a4790001a4be0005d4ff03b104d33001a500000265000001a5070005fed40055fec00065fec00075053b0287254002828ed05401aebb0001ae5400020f8330058fbe00250fbe004750000b25043b04072500020284135005043b0405d4fb0055d53b00742413500724c0020284504c01af51000920000601af9200059f050385d43c0005d47c0015d4bc0025d4fc0035d53c0045d57c0055defc006920000384af800001af05000910000285ff100005ff110015ff120025ff130035ff3b0041aec5000910000201a43a0001a4790001a4be0005fec00005fec00015fec00025fed00031a43b000724c0020284504c01af51000920000201af9200059f050285d43c0005d47c0015d4bc0025d4fc0035defc004920000284af800001af05000910000205ff100005ff110015ff120025ff3b0031aec5000910000001a43a0001a4790001a4be000104104405c47f15015450440764400021af500007400000136000000920000001af9200059f050205d43c0005d47c0015d4bc0025defc003920000204af80000470000000000000000000000000000000000000000000000000000000000000000000000de9090cb50e71c2588c773487d1da7066d0c719849a7e58dc8b6397a25c567c000000000000000080000000000000058000000000000001f00000000000000050000000000000004000000000000002000000000000000030000000005f5e100cccccccccccc0002ffffffffffff00010200000000000000030000000000000000000000000000020000000000000014ffffffffffff00000000000000000000000000000000000000000000000000000000000000000000f383b0ce51358be57daa3b725fe44acdb2d880604e367199080b4379c41bb6edb48b753af346966d0d169c0b2e3234611f65d5cfdb57c7b6e7cd6ca93707bee06f776e657220616c726561647920696e697469616c697a656400000000000000000000000000003001000000000000000000000000000019ff000000000000006f776e6572206e6f7420696e697469616c697a65640000000000000000000015000000002c126e0200000000a4ac6c7e00000000145fc68c000000004915cd1f00000000c50e545d000000004b77848a00000000000032e4000000000000330400000000000033bc00000000000033dc00000000000033fc000000000000343c000000000000339c' -------------------------------------------------------------------------------- /frontend/src/contracts/contracts/common.d.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | 6 | /* 7 | Fuels version: 0.73.0 8 | Forc version: 0.49.2 9 | Fuel-Core version: 0.22.0 10 | */ 11 | 12 | /* 13 | Mimics Sway Enum, requires at least one Key-Value but 14 | does not raise error on multiple pairs. 15 | This is done in the abi-coder 16 | */ 17 | export type Enum }> = Partial & 18 | U[keyof U]; 19 | 20 | /* 21 | Mimics Sway Option and Vectors. 22 | Vectors are treated like arrays in Typescript. 23 | */ 24 | export type Option = T | undefined; 25 | 26 | export type Vec = T[]; 27 | -------------------------------------------------------------------------------- /frontend/src/contracts/contracts/factories/ContractAbi__factory.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | 6 | /* 7 | Fuels version: 0.73.0 8 | Forc version: 0.49.2 9 | Fuel-Core version: 0.22.0 10 | */ 11 | 12 | import { Interface, Contract, ContractFactory } from "fuels"; 13 | import type { Provider, Account, AbstractAddress, BytesLike, DeployContractOptions, StorageSlot } from "fuels"; 14 | import type { ContractAbi, ContractAbiInterface } from "../ContractAbi"; 15 | 16 | const _abi = { 17 | "types": [ 18 | { 19 | "typeId": 0, 20 | "type": "()", 21 | "components": [], 22 | "typeParameters": null 23 | }, 24 | { 25 | "typeId": 1, 26 | "type": "b256", 27 | "components": null, 28 | "typeParameters": null 29 | }, 30 | { 31 | "typeId": 2, 32 | "type": "enum Identity", 33 | "components": [ 34 | { 35 | "name": "Address", 36 | "type": 6, 37 | "typeArguments": null 38 | }, 39 | { 40 | "name": "ContractId", 41 | "type": 8, 42 | "typeArguments": null 43 | } 44 | ], 45 | "typeParameters": null 46 | }, 47 | { 48 | "typeId": 3, 49 | "type": "enum InvalidError", 50 | "components": [ 51 | { 52 | "name": "IncorrectAssetId", 53 | "type": 7, 54 | "typeArguments": null 55 | }, 56 | { 57 | "name": "NotEnoughTokens", 58 | "type": 10, 59 | "typeArguments": null 60 | }, 61 | { 62 | "name": "OnlyOwner", 63 | "type": 2, 64 | "typeArguments": null 65 | } 66 | ], 67 | "typeParameters": null 68 | }, 69 | { 70 | "typeId": 4, 71 | "type": "str", 72 | "components": null, 73 | "typeParameters": null 74 | }, 75 | { 76 | "typeId": 5, 77 | "type": "str[20]", 78 | "components": null, 79 | "typeParameters": null 80 | }, 81 | { 82 | "typeId": 6, 83 | "type": "struct Address", 84 | "components": [ 85 | { 86 | "name": "value", 87 | "type": 1, 88 | "typeArguments": null 89 | } 90 | ], 91 | "typeParameters": null 92 | }, 93 | { 94 | "typeId": 7, 95 | "type": "struct AssetId", 96 | "components": [ 97 | { 98 | "name": "value", 99 | "type": 1, 100 | "typeArguments": null 101 | } 102 | ], 103 | "typeParameters": null 104 | }, 105 | { 106 | "typeId": 8, 107 | "type": "struct ContractId", 108 | "components": [ 109 | { 110 | "name": "value", 111 | "type": 1, 112 | "typeArguments": null 113 | } 114 | ], 115 | "typeParameters": null 116 | }, 117 | { 118 | "typeId": 9, 119 | "type": "struct Item", 120 | "components": [ 121 | { 122 | "name": "id", 123 | "type": 10, 124 | "typeArguments": null 125 | }, 126 | { 127 | "name": "price", 128 | "type": 10, 129 | "typeArguments": null 130 | }, 131 | { 132 | "name": "owner", 133 | "type": 2, 134 | "typeArguments": null 135 | }, 136 | { 137 | "name": "metadata", 138 | "type": 5, 139 | "typeArguments": null 140 | }, 141 | { 142 | "name": "total_bought", 143 | "type": 10, 144 | "typeArguments": null 145 | } 146 | ], 147 | "typeParameters": null 148 | }, 149 | { 150 | "typeId": 10, 151 | "type": "u64", 152 | "components": null, 153 | "typeParameters": null 154 | } 155 | ], 156 | "functions": [ 157 | { 158 | "inputs": [ 159 | { 160 | "name": "item_id", 161 | "type": 10, 162 | "typeArguments": null 163 | } 164 | ], 165 | "name": "buy_item", 166 | "output": { 167 | "name": "", 168 | "type": 0, 169 | "typeArguments": null 170 | }, 171 | "attributes": [ 172 | { 173 | "name": "payable", 174 | "arguments": [] 175 | }, 176 | { 177 | "name": "storage", 178 | "arguments": [ 179 | "read", 180 | "write" 181 | ] 182 | } 183 | ] 184 | }, 185 | { 186 | "inputs": [], 187 | "name": "get_count", 188 | "output": { 189 | "name": "", 190 | "type": 10, 191 | "typeArguments": null 192 | }, 193 | "attributes": [ 194 | { 195 | "name": "storage", 196 | "arguments": [ 197 | "read" 198 | ] 199 | } 200 | ] 201 | }, 202 | { 203 | "inputs": [ 204 | { 205 | "name": "item_id", 206 | "type": 10, 207 | "typeArguments": null 208 | } 209 | ], 210 | "name": "get_item", 211 | "output": { 212 | "name": "", 213 | "type": 9, 214 | "typeArguments": null 215 | }, 216 | "attributes": [ 217 | { 218 | "name": "storage", 219 | "arguments": [ 220 | "read" 221 | ] 222 | } 223 | ] 224 | }, 225 | { 226 | "inputs": [], 227 | "name": "initialize_owner", 228 | "output": { 229 | "name": "", 230 | "type": 2, 231 | "typeArguments": null 232 | }, 233 | "attributes": [ 234 | { 235 | "name": "storage", 236 | "arguments": [ 237 | "read", 238 | "write" 239 | ] 240 | } 241 | ] 242 | }, 243 | { 244 | "inputs": [ 245 | { 246 | "name": "price", 247 | "type": 10, 248 | "typeArguments": null 249 | }, 250 | { 251 | "name": "metadata", 252 | "type": 5, 253 | "typeArguments": null 254 | } 255 | ], 256 | "name": "list_item", 257 | "output": { 258 | "name": "", 259 | "type": 0, 260 | "typeArguments": null 261 | }, 262 | "attributes": [ 263 | { 264 | "name": "storage", 265 | "arguments": [ 266 | "read", 267 | "write" 268 | ] 269 | } 270 | ] 271 | }, 272 | { 273 | "inputs": [], 274 | "name": "withdraw_funds", 275 | "output": { 276 | "name": "", 277 | "type": 0, 278 | "typeArguments": null 279 | }, 280 | "attributes": [ 281 | { 282 | "name": "storage", 283 | "arguments": [ 284 | "read" 285 | ] 286 | } 287 | ] 288 | } 289 | ], 290 | "loggedTypes": [ 291 | { 292 | "logId": 0, 293 | "loggedType": { 294 | "name": "", 295 | "type": 3, 296 | "typeArguments": [] 297 | } 298 | }, 299 | { 300 | "logId": 1, 301 | "loggedType": { 302 | "name": "", 303 | "type": 3, 304 | "typeArguments": [] 305 | } 306 | }, 307 | { 308 | "logId": 2, 309 | "loggedType": { 310 | "name": "", 311 | "type": 4, 312 | "typeArguments": null 313 | } 314 | }, 315 | { 316 | "logId": 3, 317 | "loggedType": { 318 | "name": "", 319 | "type": 4, 320 | "typeArguments": null 321 | } 322 | }, 323 | { 324 | "logId": 4, 325 | "loggedType": { 326 | "name": "", 327 | "type": 3, 328 | "typeArguments": [] 329 | } 330 | }, 331 | { 332 | "logId": 5, 333 | "loggedType": { 334 | "name": "", 335 | "type": 3, 336 | "typeArguments": [] 337 | } 338 | } 339 | ], 340 | "messagesTypes": [], 341 | "configurables": [] 342 | }; 343 | 344 | const _storageSlots: StorageSlot[] = [ 345 | { 346 | "key": "b48b753af346966d0d169c0b2e3234611f65d5cfdb57c7b6e7cd6ca93707bee0", 347 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 348 | }, 349 | { 350 | "key": "b48b753af346966d0d169c0b2e3234611f65d5cfdb57c7b6e7cd6ca93707bee1", 351 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 352 | }, 353 | { 354 | "key": "f383b0ce51358be57daa3b725fe44acdb2d880604e367199080b4379c41bb6ed", 355 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 356 | } 357 | ]; 358 | 359 | export class ContractAbi__factory { 360 | static readonly abi = _abi; 361 | 362 | static readonly storageSlots = _storageSlots; 363 | 364 | static createInterface(): ContractAbiInterface { 365 | return new Interface(_abi) as unknown as ContractAbiInterface 366 | } 367 | 368 | static connect( 369 | id: string | AbstractAddress, 370 | accountOrProvider: Account | Provider 371 | ): ContractAbi { 372 | return new Contract(id, _abi, accountOrProvider) as unknown as ContractAbi 373 | } 374 | 375 | static async deployContract( 376 | bytecode: BytesLike, 377 | wallet: Account, 378 | options: DeployContractOptions = {} 379 | ): Promise { 380 | const factory = new ContractFactory(bytecode, _abi, wallet); 381 | 382 | const { storageSlots } = ContractAbi__factory; 383 | 384 | const contract = await factory.deployContract({ 385 | storageSlots, 386 | ...options, 387 | }); 388 | 389 | return contract as unknown as ContractAbi; 390 | } 391 | } 392 | -------------------------------------------------------------------------------- /frontend/src/contracts/contracts/index.ts: -------------------------------------------------------------------------------- 1 | /* Autogenerated file. Do not edit manually. */ 2 | 3 | /* tslint:disable */ 4 | /* eslint-disable */ 5 | 6 | /* 7 | Fuels version: 0.73.0 8 | Forc version: 0.49.2 9 | Fuel-Core version: 0.22.0 10 | */ 11 | 12 | export type { ContractAbi } from './ContractAbi'; 13 | 14 | export { ContractAbi__factory } from './factories/ContractAbi__factory'; 15 | -------------------------------------------------------------------------------- /frontend/src/contracts/index.ts: -------------------------------------------------------------------------------- 1 | export * from './contracts'; 2 | -------------------------------------------------------------------------------- /frontend/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/index.tsx: -------------------------------------------------------------------------------- 1 | /* ANCHOR: fe_index_all */ 2 | import React from 'react'; 3 | import ReactDOM from 'react-dom/client'; 4 | import './index.css'; 5 | import App from './App'; 6 | import { FuelProvider } from '@fuels/react'; 7 | import { 8 | FuelWalletConnector, 9 | FuelWalletDevelopmentConnector, 10 | FueletWalletConnector, 11 | } from '@fuels/connectors'; 12 | import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; 13 | 14 | const queryClient = new QueryClient(); 15 | 16 | const root = ReactDOM.createRoot( 17 | document.getElementById('root') as HTMLElement 18 | ); 19 | root.render( 20 | 21 | 22 | 31 | 32 | 33 | 34 | 35 | ); 36 | /* ANCHOR: fe_index_all */ 37 | -------------------------------------------------------------------------------- /frontend/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "noFallthroughCasesInSwitch": true, 16 | "module": "esnext", 17 | "moduleResolution": "node", 18 | "resolveJsonModule": true, 19 | "isolatedModules": true, 20 | "noEmit": true, 21 | "jsx": "react-jsx" 22 | }, 23 | "include": [ 24 | "src" 25 | ] 26 | } 27 | --------------------------------------------------------------------------------