├── .gitattributes ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── Forc.lock ├── Forc.toml ├── README.md ├── src └── main.sw └── tests ├── artefacts ├── usdc │ ├── debug │ │ ├── token_contract-abi.json │ │ ├── token_contract-storage_slots.json │ │ └── token_contract.bin │ ├── token_contract-abi.json │ ├── token_contract-storage_slots.json │ └── token_contract.bin └── usdt │ ├── token_contract-abi.json │ ├── token_contract-storage_slots.json │ └── token_contract.bin ├── harness.rs ├── local_tests ├── cancel_order.rs ├── create_order.rs ├── fulfill_order.rs ├── main_test.rs └── mod.rs ├── testnet_tests ├── main_test.rs └── mod.rs └── utils ├── local_tests_utils.rs ├── mod.rs └── number_utils.rs /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sw linguist-language=Rust 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | target 3 | .idea 4 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "Inflector" 7 | version = "0.11.4" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" 10 | dependencies = [ 11 | "lazy_static", 12 | "regex", 13 | ] 14 | 15 | [[package]] 16 | name = "aes" 17 | version = "0.7.5" 18 | source = "registry+https://github.com/rust-lang/crates.io-index" 19 | checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" 20 | dependencies = [ 21 | "cfg-if", 22 | "cipher", 23 | "cpufeatures", 24 | "opaque-debug 0.3.0", 25 | ] 26 | 27 | [[package]] 28 | name = "ahash" 29 | version = "0.7.6" 30 | source = "registry+https://github.com/rust-lang/crates.io-index" 31 | checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" 32 | dependencies = [ 33 | "getrandom", 34 | "once_cell", 35 | "version_check", 36 | ] 37 | 38 | [[package]] 39 | name = "aho-corasick" 40 | version = "0.7.20" 41 | source = "registry+https://github.com/rust-lang/crates.io-index" 42 | checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" 43 | dependencies = [ 44 | "memchr", 45 | ] 46 | 47 | [[package]] 48 | name = "android_system_properties" 49 | version = "0.1.5" 50 | source = "registry+https://github.com/rust-lang/crates.io-index" 51 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 52 | dependencies = [ 53 | "libc", 54 | ] 55 | 56 | [[package]] 57 | name = "anyhow" 58 | version = "1.0.68" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" 61 | 62 | [[package]] 63 | name = "arrayvec" 64 | version = "0.7.2" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" 67 | 68 | [[package]] 69 | name = "ascii" 70 | version = "0.9.3" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" 73 | 74 | [[package]] 75 | name = "async-graphql" 76 | version = "4.0.16" 77 | source = "registry+https://github.com/rust-lang/crates.io-index" 78 | checksum = "d9ed522678d412d77effe47b3c82314ac36952a35e6e852093dd48287c421f80" 79 | dependencies = [ 80 | "async-graphql-derive", 81 | "async-graphql-parser", 82 | "async-graphql-value", 83 | "async-stream", 84 | "async-trait", 85 | "base64 0.13.1", 86 | "bytes", 87 | "fnv", 88 | "futures-util", 89 | "http", 90 | "indexmap", 91 | "mime", 92 | "multer", 93 | "num-traits", 94 | "once_cell", 95 | "pin-project-lite", 96 | "regex", 97 | "serde", 98 | "serde_json", 99 | "serde_urlencoded", 100 | "static_assertions", 101 | "tempfile", 102 | "thiserror", 103 | "tracing", 104 | "tracing-futures", 105 | ] 106 | 107 | [[package]] 108 | name = "async-graphql-derive" 109 | version = "4.0.16" 110 | source = "registry+https://github.com/rust-lang/crates.io-index" 111 | checksum = "c121a894495d7d3fc3d4e15e0a9843e422e4d1d9e3c514d8062a1c94b35b005d" 112 | dependencies = [ 113 | "Inflector", 114 | "async-graphql-parser", 115 | "darling 0.14.2", 116 | "proc-macro-crate", 117 | "proc-macro2", 118 | "quote", 119 | "syn", 120 | "thiserror", 121 | ] 122 | 123 | [[package]] 124 | name = "async-graphql-parser" 125 | version = "4.0.16" 126 | source = "registry+https://github.com/rust-lang/crates.io-index" 127 | checksum = "6b6c386f398145c6180206c1869c2279f5a3d45db5be4e0266148c6ac5c6ad68" 128 | dependencies = [ 129 | "async-graphql-value", 130 | "pest", 131 | "serde", 132 | "serde_json", 133 | ] 134 | 135 | [[package]] 136 | name = "async-graphql-value" 137 | version = "4.0.16" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "7a941b499fead4a3fb5392cabf42446566d18c86313f69f2deab69560394d65f" 140 | dependencies = [ 141 | "bytes", 142 | "indexmap", 143 | "serde", 144 | "serde_json", 145 | ] 146 | 147 | [[package]] 148 | name = "async-stream" 149 | version = "0.3.3" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e" 152 | dependencies = [ 153 | "async-stream-impl", 154 | "futures-core", 155 | ] 156 | 157 | [[package]] 158 | name = "async-stream-impl" 159 | version = "0.3.3" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27" 162 | dependencies = [ 163 | "proc-macro2", 164 | "quote", 165 | "syn", 166 | ] 167 | 168 | [[package]] 169 | name = "async-trait" 170 | version = "0.1.60" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "677d1d8ab452a3936018a687b20e6f7cf5363d713b732b8884001317b0e48aa3" 173 | dependencies = [ 174 | "proc-macro2", 175 | "quote", 176 | "syn", 177 | ] 178 | 179 | [[package]] 180 | name = "atty" 181 | version = "0.2.14" 182 | source = "registry+https://github.com/rust-lang/crates.io-index" 183 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 184 | dependencies = [ 185 | "hermit-abi", 186 | "libc", 187 | "winapi", 188 | ] 189 | 190 | [[package]] 191 | name = "autocfg" 192 | version = "1.1.0" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 195 | 196 | [[package]] 197 | name = "axum" 198 | version = "0.5.17" 199 | source = "registry+https://github.com/rust-lang/crates.io-index" 200 | checksum = "acee9fd5073ab6b045a275b3e709c163dd36c90685219cb21804a147b58dba43" 201 | dependencies = [ 202 | "async-trait", 203 | "axum-core", 204 | "bitflags", 205 | "bytes", 206 | "futures-util", 207 | "http", 208 | "http-body", 209 | "hyper", 210 | "itoa", 211 | "matchit", 212 | "memchr", 213 | "mime", 214 | "percent-encoding", 215 | "pin-project-lite", 216 | "serde", 217 | "serde_json", 218 | "serde_urlencoded", 219 | "sync_wrapper", 220 | "tokio", 221 | "tower", 222 | "tower-http", 223 | "tower-layer", 224 | "tower-service", 225 | ] 226 | 227 | [[package]] 228 | name = "axum-core" 229 | version = "0.2.9" 230 | source = "registry+https://github.com/rust-lang/crates.io-index" 231 | checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc" 232 | dependencies = [ 233 | "async-trait", 234 | "bytes", 235 | "futures-util", 236 | "http", 237 | "http-body", 238 | "mime", 239 | "tower-layer", 240 | "tower-service", 241 | ] 242 | 243 | [[package]] 244 | name = "base16ct" 245 | version = "0.1.1" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" 248 | 249 | [[package]] 250 | name = "base58" 251 | version = "0.1.0" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" 254 | 255 | [[package]] 256 | name = "base58check" 257 | version = "0.1.0" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "2ee2fe4c9a0c84515f136aaae2466744a721af6d63339c18689d9e995d74d99b" 260 | dependencies = [ 261 | "base58", 262 | "sha2 0.8.2", 263 | ] 264 | 265 | [[package]] 266 | name = "base64" 267 | version = "0.12.3" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" 270 | 271 | [[package]] 272 | name = "base64" 273 | version = "0.13.1" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 276 | 277 | [[package]] 278 | name = "base64ct" 279 | version = "1.5.3" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" 282 | 283 | [[package]] 284 | name = "bech32" 285 | version = "0.7.3" 286 | source = "registry+https://github.com/rust-lang/crates.io-index" 287 | checksum = "2dabbe35f96fb9507f7330793dc490461b2962659ac5d427181e451a623751d1" 288 | 289 | [[package]] 290 | name = "bech32" 291 | version = "0.9.1" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" 294 | 295 | [[package]] 296 | name = "bincode" 297 | version = "1.3.3" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 300 | dependencies = [ 301 | "serde", 302 | ] 303 | 304 | [[package]] 305 | name = "bitflags" 306 | version = "1.3.2" 307 | source = "registry+https://github.com/rust-lang/crates.io-index" 308 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 309 | 310 | [[package]] 311 | name = "bitvec" 312 | version = "0.17.4" 313 | source = "registry+https://github.com/rust-lang/crates.io-index" 314 | checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" 315 | dependencies = [ 316 | "either", 317 | "radium 0.3.0", 318 | ] 319 | 320 | [[package]] 321 | name = "bitvec" 322 | version = "1.0.1" 323 | source = "registry+https://github.com/rust-lang/crates.io-index" 324 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 325 | dependencies = [ 326 | "funty", 327 | "radium 0.7.0", 328 | "tap", 329 | "wyz", 330 | ] 331 | 332 | [[package]] 333 | name = "blake2" 334 | version = "0.10.6" 335 | source = "registry+https://github.com/rust-lang/crates.io-index" 336 | checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" 337 | dependencies = [ 338 | "digest 0.10.6", 339 | ] 340 | 341 | [[package]] 342 | name = "block-buffer" 343 | version = "0.7.3" 344 | source = "registry+https://github.com/rust-lang/crates.io-index" 345 | checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" 346 | dependencies = [ 347 | "block-padding 0.1.5", 348 | "byte-tools", 349 | "byteorder", 350 | "generic-array 0.12.4", 351 | ] 352 | 353 | [[package]] 354 | name = "block-buffer" 355 | version = "0.9.0" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" 358 | dependencies = [ 359 | "block-padding 0.2.1", 360 | "generic-array 0.14.6", 361 | ] 362 | 363 | [[package]] 364 | name = "block-buffer" 365 | version = "0.10.3" 366 | source = "registry+https://github.com/rust-lang/crates.io-index" 367 | checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" 368 | dependencies = [ 369 | "generic-array 0.14.6", 370 | ] 371 | 372 | [[package]] 373 | name = "block-padding" 374 | version = "0.1.5" 375 | source = "registry+https://github.com/rust-lang/crates.io-index" 376 | checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" 377 | dependencies = [ 378 | "byte-tools", 379 | ] 380 | 381 | [[package]] 382 | name = "block-padding" 383 | version = "0.2.1" 384 | source = "registry+https://github.com/rust-lang/crates.io-index" 385 | checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" 386 | 387 | [[package]] 388 | name = "borrown" 389 | version = "0.1.0" 390 | source = "registry+https://github.com/rust-lang/crates.io-index" 391 | checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" 392 | 393 | [[package]] 394 | name = "bs58" 395 | version = "0.4.0" 396 | source = "registry+https://github.com/rust-lang/crates.io-index" 397 | checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" 398 | 399 | [[package]] 400 | name = "bumpalo" 401 | version = "3.11.1" 402 | source = "registry+https://github.com/rust-lang/crates.io-index" 403 | checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" 404 | 405 | [[package]] 406 | name = "byte-slice-cast" 407 | version = "1.2.2" 408 | source = "registry+https://github.com/rust-lang/crates.io-index" 409 | checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" 410 | 411 | [[package]] 412 | name = "byte-tools" 413 | version = "0.3.1" 414 | source = "registry+https://github.com/rust-lang/crates.io-index" 415 | checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" 416 | 417 | [[package]] 418 | name = "byteorder" 419 | version = "1.4.3" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" 422 | 423 | [[package]] 424 | name = "bytes" 425 | version = "1.3.0" 426 | source = "registry+https://github.com/rust-lang/crates.io-index" 427 | checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" 428 | dependencies = [ 429 | "serde", 430 | ] 431 | 432 | [[package]] 433 | name = "cc" 434 | version = "1.0.78" 435 | source = "registry+https://github.com/rust-lang/crates.io-index" 436 | checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" 437 | 438 | [[package]] 439 | name = "cfg-if" 440 | version = "1.0.0" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 443 | 444 | [[package]] 445 | name = "chrono" 446 | version = "0.4.23" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" 449 | dependencies = [ 450 | "iana-time-zone", 451 | "js-sys", 452 | "num-integer", 453 | "num-traits", 454 | "time", 455 | "wasm-bindgen", 456 | "winapi", 457 | ] 458 | 459 | [[package]] 460 | name = "cipher" 461 | version = "0.3.0" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" 464 | dependencies = [ 465 | "generic-array 0.14.6", 466 | ] 467 | 468 | [[package]] 469 | name = "clap" 470 | version = "3.2.23" 471 | source = "registry+https://github.com/rust-lang/crates.io-index" 472 | checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" 473 | dependencies = [ 474 | "atty", 475 | "bitflags", 476 | "clap_derive", 477 | "clap_lex", 478 | "indexmap", 479 | "once_cell", 480 | "strsim", 481 | "termcolor", 482 | "textwrap", 483 | ] 484 | 485 | [[package]] 486 | name = "clap_derive" 487 | version = "3.2.18" 488 | source = "registry+https://github.com/rust-lang/crates.io-index" 489 | checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" 490 | dependencies = [ 491 | "heck 0.4.0", 492 | "proc-macro-error", 493 | "proc-macro2", 494 | "quote", 495 | "syn", 496 | ] 497 | 498 | [[package]] 499 | name = "clap_lex" 500 | version = "0.2.4" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" 503 | dependencies = [ 504 | "os_str_bytes", 505 | ] 506 | 507 | [[package]] 508 | name = "codespan-reporting" 509 | version = "0.11.1" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 512 | dependencies = [ 513 | "termcolor", 514 | "unicode-width", 515 | ] 516 | 517 | [[package]] 518 | name = "coins-bip32" 519 | version = "0.7.0" 520 | source = "registry+https://github.com/rust-lang/crates.io-index" 521 | checksum = "634c509653de24b439672164bbf56f5f582a2ab0e313d3b0f6af0b7345cf2560" 522 | dependencies = [ 523 | "bincode", 524 | "bs58", 525 | "coins-core", 526 | "digest 0.10.6", 527 | "getrandom", 528 | "hmac 0.12.1", 529 | "k256", 530 | "lazy_static", 531 | "serde", 532 | "sha2 0.10.6", 533 | "thiserror", 534 | ] 535 | 536 | [[package]] 537 | name = "coins-bip39" 538 | version = "0.7.0" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | checksum = "2a11892bcac83b4c6e95ab84b5b06c76d9d70ad73548dd07418269c5c7977171" 541 | dependencies = [ 542 | "bitvec 0.17.4", 543 | "coins-bip32", 544 | "getrandom", 545 | "hex", 546 | "hmac 0.12.1", 547 | "pbkdf2 0.11.0", 548 | "rand", 549 | "sha2 0.10.6", 550 | "thiserror", 551 | ] 552 | 553 | [[package]] 554 | name = "coins-core" 555 | version = "0.7.0" 556 | source = "registry+https://github.com/rust-lang/crates.io-index" 557 | checksum = "c94090a6663f224feae66ab01e41a2555a8296ee07b5f20dab8888bdefc9f617" 558 | dependencies = [ 559 | "base58check", 560 | "base64 0.12.3", 561 | "bech32 0.7.3", 562 | "blake2", 563 | "digest 0.10.6", 564 | "generic-array 0.14.6", 565 | "hex", 566 | "ripemd", 567 | "serde", 568 | "serde_derive", 569 | "sha2 0.10.6", 570 | "sha3 0.10.6", 571 | "thiserror", 572 | ] 573 | 574 | [[package]] 575 | name = "combine" 576 | version = "3.8.1" 577 | source = "registry+https://github.com/rust-lang/crates.io-index" 578 | checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" 579 | dependencies = [ 580 | "ascii", 581 | "byteorder", 582 | "either", 583 | "memchr", 584 | "unreachable", 585 | ] 586 | 587 | [[package]] 588 | name = "const-oid" 589 | version = "0.7.1" 590 | source = "registry+https://github.com/rust-lang/crates.io-index" 591 | checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" 592 | 593 | [[package]] 594 | name = "const-oid" 595 | version = "0.9.1" 596 | source = "registry+https://github.com/rust-lang/crates.io-index" 597 | checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b" 598 | 599 | [[package]] 600 | name = "convert_case" 601 | version = "0.4.0" 602 | source = "registry+https://github.com/rust-lang/crates.io-index" 603 | checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" 604 | 605 | [[package]] 606 | name = "core-foundation" 607 | version = "0.9.3" 608 | source = "registry+https://github.com/rust-lang/crates.io-index" 609 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 610 | dependencies = [ 611 | "core-foundation-sys", 612 | "libc", 613 | ] 614 | 615 | [[package]] 616 | name = "core-foundation-sys" 617 | version = "0.8.3" 618 | source = "registry+https://github.com/rust-lang/crates.io-index" 619 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" 620 | 621 | [[package]] 622 | name = "counter" 623 | version = "0.5.7" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "2d458e66999348f56fd3ffcfbb7f7951542075ca8359687c703de6500c1ddccd" 626 | dependencies = [ 627 | "num-traits", 628 | ] 629 | 630 | [[package]] 631 | name = "cpufeatures" 632 | version = "0.2.5" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" 635 | dependencies = [ 636 | "libc", 637 | ] 638 | 639 | [[package]] 640 | name = "crunchy" 641 | version = "0.2.2" 642 | source = "registry+https://github.com/rust-lang/crates.io-index" 643 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 644 | 645 | [[package]] 646 | name = "crypto-bigint" 647 | version = "0.3.2" 648 | source = "registry+https://github.com/rust-lang/crates.io-index" 649 | checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" 650 | dependencies = [ 651 | "generic-array 0.14.6", 652 | "rand_core", 653 | "subtle", 654 | "zeroize", 655 | ] 656 | 657 | [[package]] 658 | name = "crypto-bigint" 659 | version = "0.4.9" 660 | source = "registry+https://github.com/rust-lang/crates.io-index" 661 | checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" 662 | dependencies = [ 663 | "generic-array 0.14.6", 664 | "rand_core", 665 | "subtle", 666 | "zeroize", 667 | ] 668 | 669 | [[package]] 670 | name = "crypto-common" 671 | version = "0.1.6" 672 | source = "registry+https://github.com/rust-lang/crates.io-index" 673 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 674 | dependencies = [ 675 | "generic-array 0.14.6", 676 | "typenum", 677 | ] 678 | 679 | [[package]] 680 | name = "crypto-mac" 681 | version = "0.11.1" 682 | source = "registry+https://github.com/rust-lang/crates.io-index" 683 | checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" 684 | dependencies = [ 685 | "generic-array 0.14.6", 686 | "subtle", 687 | ] 688 | 689 | [[package]] 690 | name = "ct-logs" 691 | version = "0.8.0" 692 | source = "registry+https://github.com/rust-lang/crates.io-index" 693 | checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" 694 | dependencies = [ 695 | "sct 0.6.1", 696 | ] 697 | 698 | [[package]] 699 | name = "ctr" 700 | version = "0.7.0" 701 | source = "registry+https://github.com/rust-lang/crates.io-index" 702 | checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" 703 | dependencies = [ 704 | "cipher", 705 | ] 706 | 707 | [[package]] 708 | name = "cxx" 709 | version = "1.0.85" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | checksum = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd" 712 | dependencies = [ 713 | "cc", 714 | "cxxbridge-flags", 715 | "cxxbridge-macro", 716 | "link-cplusplus", 717 | ] 718 | 719 | [[package]] 720 | name = "cxx-build" 721 | version = "1.0.85" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0" 724 | dependencies = [ 725 | "cc", 726 | "codespan-reporting", 727 | "once_cell", 728 | "proc-macro2", 729 | "quote", 730 | "scratch", 731 | "syn", 732 | ] 733 | 734 | [[package]] 735 | name = "cxxbridge-flags" 736 | version = "1.0.85" 737 | source = "registry+https://github.com/rust-lang/crates.io-index" 738 | checksum = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59" 739 | 740 | [[package]] 741 | name = "cxxbridge-macro" 742 | version = "1.0.85" 743 | source = "registry+https://github.com/rust-lang/crates.io-index" 744 | checksum = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6" 745 | dependencies = [ 746 | "proc-macro2", 747 | "quote", 748 | "syn", 749 | ] 750 | 751 | [[package]] 752 | name = "cynic" 753 | version = "2.2.1" 754 | source = "registry+https://github.com/rust-lang/crates.io-index" 755 | checksum = "07097754f62237ba04e4c3315d50c0f6e85e6b2b95d57256941c3ec88b03be73" 756 | dependencies = [ 757 | "cynic-proc-macros", 758 | "reqwest", 759 | "serde", 760 | "serde_json", 761 | "static_assertions", 762 | "thiserror", 763 | ] 764 | 765 | [[package]] 766 | name = "cynic-codegen" 767 | version = "2.2.1" 768 | source = "registry+https://github.com/rust-lang/crates.io-index" 769 | checksum = "738b5c475d60eb95d83af1234aba8014f3f934fd166c752339011ac05165457f" 770 | dependencies = [ 771 | "counter", 772 | "darling 0.13.4", 773 | "graphql-parser", 774 | "once_cell", 775 | "proc-macro2", 776 | "quote", 777 | "strsim", 778 | "syn", 779 | ] 780 | 781 | [[package]] 782 | name = "cynic-proc-macros" 783 | version = "2.2.1" 784 | source = "registry+https://github.com/rust-lang/crates.io-index" 785 | checksum = "aa32c5bf6c87846b0332ca4b912881b28c91f8945c972cedeae3fd18eaf65751" 786 | dependencies = [ 787 | "cynic-codegen", 788 | "syn", 789 | ] 790 | 791 | [[package]] 792 | name = "darling" 793 | version = "0.13.4" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" 796 | dependencies = [ 797 | "darling_core 0.13.4", 798 | "darling_macro 0.13.4", 799 | ] 800 | 801 | [[package]] 802 | name = "darling" 803 | version = "0.14.2" 804 | source = "registry+https://github.com/rust-lang/crates.io-index" 805 | checksum = "b0dd3cd20dc6b5a876612a6e5accfe7f3dd883db6d07acfbf14c128f61550dfa" 806 | dependencies = [ 807 | "darling_core 0.14.2", 808 | "darling_macro 0.14.2", 809 | ] 810 | 811 | [[package]] 812 | name = "darling_core" 813 | version = "0.13.4" 814 | source = "registry+https://github.com/rust-lang/crates.io-index" 815 | checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" 816 | dependencies = [ 817 | "fnv", 818 | "ident_case", 819 | "proc-macro2", 820 | "quote", 821 | "strsim", 822 | "syn", 823 | ] 824 | 825 | [[package]] 826 | name = "darling_core" 827 | version = "0.14.2" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | checksum = "a784d2ccaf7c98501746bf0be29b2022ba41fd62a2e622af997a03e9f972859f" 830 | dependencies = [ 831 | "fnv", 832 | "ident_case", 833 | "proc-macro2", 834 | "quote", 835 | "strsim", 836 | "syn", 837 | ] 838 | 839 | [[package]] 840 | name = "darling_macro" 841 | version = "0.13.4" 842 | source = "registry+https://github.com/rust-lang/crates.io-index" 843 | checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" 844 | dependencies = [ 845 | "darling_core 0.13.4", 846 | "quote", 847 | "syn", 848 | ] 849 | 850 | [[package]] 851 | name = "darling_macro" 852 | version = "0.14.2" 853 | source = "registry+https://github.com/rust-lang/crates.io-index" 854 | checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" 855 | dependencies = [ 856 | "darling_core 0.14.2", 857 | "quote", 858 | "syn", 859 | ] 860 | 861 | [[package]] 862 | name = "der" 863 | version = "0.5.1" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" 866 | dependencies = [ 867 | "const-oid 0.7.1", 868 | ] 869 | 870 | [[package]] 871 | name = "der" 872 | version = "0.6.1" 873 | source = "registry+https://github.com/rust-lang/crates.io-index" 874 | checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" 875 | dependencies = [ 876 | "const-oid 0.9.1", 877 | "zeroize", 878 | ] 879 | 880 | [[package]] 881 | name = "derivative" 882 | version = "2.2.0" 883 | source = "registry+https://github.com/rust-lang/crates.io-index" 884 | checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" 885 | dependencies = [ 886 | "proc-macro2", 887 | "quote", 888 | "syn", 889 | ] 890 | 891 | [[package]] 892 | name = "derive_more" 893 | version = "0.99.17" 894 | source = "registry+https://github.com/rust-lang/crates.io-index" 895 | checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" 896 | dependencies = [ 897 | "convert_case", 898 | "proc-macro2", 899 | "quote", 900 | "rustc_version", 901 | "syn", 902 | ] 903 | 904 | [[package]] 905 | name = "digest" 906 | version = "0.8.1" 907 | source = "registry+https://github.com/rust-lang/crates.io-index" 908 | checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" 909 | dependencies = [ 910 | "generic-array 0.12.4", 911 | ] 912 | 913 | [[package]] 914 | name = "digest" 915 | version = "0.9.0" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 918 | dependencies = [ 919 | "generic-array 0.14.6", 920 | ] 921 | 922 | [[package]] 923 | name = "digest" 924 | version = "0.10.6" 925 | source = "registry+https://github.com/rust-lang/crates.io-index" 926 | checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" 927 | dependencies = [ 928 | "block-buffer 0.10.3", 929 | "crypto-common", 930 | "subtle", 931 | ] 932 | 933 | [[package]] 934 | name = "dirs" 935 | version = "4.0.0" 936 | source = "registry+https://github.com/rust-lang/crates.io-index" 937 | checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" 938 | dependencies = [ 939 | "dirs-sys", 940 | ] 941 | 942 | [[package]] 943 | name = "dirs-sys" 944 | version = "0.3.7" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" 947 | dependencies = [ 948 | "libc", 949 | "redox_users", 950 | "winapi", 951 | ] 952 | 953 | [[package]] 954 | name = "dtoa" 955 | version = "1.0.5" 956 | source = "registry+https://github.com/rust-lang/crates.io-index" 957 | checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" 958 | 959 | [[package]] 960 | name = "ecdsa" 961 | version = "0.14.8" 962 | source = "registry+https://github.com/rust-lang/crates.io-index" 963 | checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" 964 | dependencies = [ 965 | "der 0.6.1", 966 | "elliptic-curve 0.12.3", 967 | "rfc6979", 968 | "signature", 969 | ] 970 | 971 | [[package]] 972 | name = "either" 973 | version = "1.8.0" 974 | source = "registry+https://github.com/rust-lang/crates.io-index" 975 | checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" 976 | 977 | [[package]] 978 | name = "elliptic-curve" 979 | version = "0.11.12" 980 | source = "registry+https://github.com/rust-lang/crates.io-index" 981 | checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" 982 | dependencies = [ 983 | "base16ct", 984 | "crypto-bigint 0.3.2", 985 | "der 0.5.1", 986 | "generic-array 0.14.6", 987 | "rand_core", 988 | "subtle", 989 | "zeroize", 990 | ] 991 | 992 | [[package]] 993 | name = "elliptic-curve" 994 | version = "0.12.3" 995 | source = "registry+https://github.com/rust-lang/crates.io-index" 996 | checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" 997 | dependencies = [ 998 | "base16ct", 999 | "crypto-bigint 0.4.9", 1000 | "der 0.6.1", 1001 | "digest 0.10.6", 1002 | "ff", 1003 | "generic-array 0.14.6", 1004 | "group", 1005 | "pkcs8", 1006 | "rand_core", 1007 | "sec1", 1008 | "subtle", 1009 | "zeroize", 1010 | ] 1011 | 1012 | [[package]] 1013 | name = "encoding_rs" 1014 | version = "0.8.31" 1015 | source = "registry+https://github.com/rust-lang/crates.io-index" 1016 | checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" 1017 | dependencies = [ 1018 | "cfg-if", 1019 | ] 1020 | 1021 | [[package]] 1022 | name = "enum-iterator" 1023 | version = "1.2.0" 1024 | source = "registry+https://github.com/rust-lang/crates.io-index" 1025 | checksum = "91a4ec26efacf4aeff80887a175a419493cb6f8b5480d26387eb0bd038976187" 1026 | dependencies = [ 1027 | "enum-iterator-derive", 1028 | ] 1029 | 1030 | [[package]] 1031 | name = "enum-iterator-derive" 1032 | version = "1.1.0" 1033 | source = "registry+https://github.com/rust-lang/crates.io-index" 1034 | checksum = "828de45d0ca18782232dfb8f3ea9cc428e8ced380eb26a520baaacfc70de39ce" 1035 | dependencies = [ 1036 | "proc-macro2", 1037 | "quote", 1038 | "syn", 1039 | ] 1040 | 1041 | [[package]] 1042 | name = "eth-keystore" 1043 | version = "0.3.0" 1044 | source = "registry+https://github.com/rust-lang/crates.io-index" 1045 | checksum = "d47d900a7dea08593d398104f8288e37858b0ad714c8d08cd03fdb86563e6402" 1046 | dependencies = [ 1047 | "aes", 1048 | "ctr", 1049 | "digest 0.9.0", 1050 | "hex", 1051 | "hmac 0.11.0", 1052 | "pbkdf2 0.8.0", 1053 | "rand", 1054 | "scrypt", 1055 | "serde", 1056 | "serde_json", 1057 | "sha2 0.9.9", 1058 | "sha3 0.9.1", 1059 | "thiserror", 1060 | "uuid 0.8.2", 1061 | ] 1062 | 1063 | [[package]] 1064 | name = "eventsource-client" 1065 | version = "0.10.2" 1066 | source = "registry+https://github.com/rust-lang/crates.io-index" 1067 | checksum = "9146112ee3ce031aa5aebe3e049e10b1d353b9c7630cc6be488c2c62cc5d9c42" 1068 | dependencies = [ 1069 | "futures", 1070 | "hyper", 1071 | "hyper-rustls 0.22.1", 1072 | "hyper-timeout", 1073 | "log", 1074 | "pin-project", 1075 | "tokio", 1076 | ] 1077 | 1078 | [[package]] 1079 | name = "fake-simd" 1080 | version = "0.1.2" 1081 | source = "registry+https://github.com/rust-lang/crates.io-index" 1082 | checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" 1083 | 1084 | [[package]] 1085 | name = "fastrand" 1086 | version = "1.8.0" 1087 | source = "registry+https://github.com/rust-lang/crates.io-index" 1088 | checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" 1089 | dependencies = [ 1090 | "instant", 1091 | ] 1092 | 1093 | [[package]] 1094 | name = "ff" 1095 | version = "0.12.1" 1096 | source = "registry+https://github.com/rust-lang/crates.io-index" 1097 | checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" 1098 | dependencies = [ 1099 | "rand_core", 1100 | "subtle", 1101 | ] 1102 | 1103 | [[package]] 1104 | name = "fixed-hash" 1105 | version = "0.8.0" 1106 | source = "registry+https://github.com/rust-lang/crates.io-index" 1107 | checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" 1108 | dependencies = [ 1109 | "byteorder", 1110 | "rand", 1111 | "rustc-hex", 1112 | "static_assertions", 1113 | ] 1114 | 1115 | [[package]] 1116 | name = "fnv" 1117 | version = "1.0.7" 1118 | source = "registry+https://github.com/rust-lang/crates.io-index" 1119 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1120 | 1121 | [[package]] 1122 | name = "form_urlencoded" 1123 | version = "1.1.0" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 1126 | dependencies = [ 1127 | "percent-encoding", 1128 | ] 1129 | 1130 | [[package]] 1131 | name = "fuel-asm" 1132 | version = "0.10.0" 1133 | source = "registry+https://github.com/rust-lang/crates.io-index" 1134 | checksum = "781568e982a90f25bfaf019196ca135fdf58a1826a8e68fbb1af2ad8b3c2a6fc" 1135 | dependencies = [ 1136 | "fuel-types", 1137 | "serde", 1138 | ] 1139 | 1140 | [[package]] 1141 | name = "fuel-block-executor" 1142 | version = "0.15.1" 1143 | source = "registry+https://github.com/rust-lang/crates.io-index" 1144 | checksum = "a9fda2b9586c6b3ad0d022c0faa62590ddc0cb957abc010724d7a6d828eb1fab" 1145 | dependencies = [ 1146 | "anyhow", 1147 | "fuel-chain-config", 1148 | "fuel-core-interfaces", 1149 | "tokio", 1150 | ] 1151 | 1152 | [[package]] 1153 | name = "fuel-block-importer" 1154 | version = "0.15.1" 1155 | source = "registry+https://github.com/rust-lang/crates.io-index" 1156 | checksum = "9e51cd0d94392abebac24a458f61be1ab52cda63280642c3f6070e39f21c8ce6" 1157 | dependencies = [ 1158 | "anyhow", 1159 | "fuel-core-interfaces", 1160 | "parking_lot", 1161 | "tokio", 1162 | ] 1163 | 1164 | [[package]] 1165 | name = "fuel-block-producer" 1166 | version = "0.15.1" 1167 | source = "registry+https://github.com/rust-lang/crates.io-index" 1168 | checksum = "7c37ba4ce09cbbd54382f0ddba0d556602ac66d7bd18d61c66f13281be2fbd4a" 1169 | dependencies = [ 1170 | "anyhow", 1171 | "async-trait", 1172 | "fuel-core-interfaces", 1173 | "parking_lot", 1174 | "thiserror", 1175 | "tokio", 1176 | "tracing", 1177 | ] 1178 | 1179 | [[package]] 1180 | name = "fuel-chain-config" 1181 | version = "0.15.1" 1182 | source = "registry+https://github.com/rust-lang/crates.io-index" 1183 | checksum = "7fe82b229c14d2a57ba7b76f219dcc84b861ff3c7f7584db0a15e94dee293f87" 1184 | dependencies = [ 1185 | "anyhow", 1186 | "bincode", 1187 | "fuel-core-interfaces", 1188 | "fuel-poa-coordinator", 1189 | "hex", 1190 | "itertools", 1191 | "rand", 1192 | "serde", 1193 | "serde_json", 1194 | "serde_with", 1195 | "tracing", 1196 | ] 1197 | 1198 | [[package]] 1199 | name = "fuel-core" 1200 | version = "0.15.1" 1201 | source = "registry+https://github.com/rust-lang/crates.io-index" 1202 | checksum = "233d61bdbb32c0dde8c745fc47b8ef162ac00e5390a876944aed8e177511779c" 1203 | dependencies = [ 1204 | "anyhow", 1205 | "async-graphql", 1206 | "async-trait", 1207 | "axum", 1208 | "bech32 0.9.1", 1209 | "bincode", 1210 | "byteorder", 1211 | "clap", 1212 | "derive_more", 1213 | "dirs", 1214 | "enum-iterator", 1215 | "fuel-block-executor", 1216 | "fuel-block-importer", 1217 | "fuel-block-producer", 1218 | "fuel-chain-config", 1219 | "fuel-core-bft", 1220 | "fuel-core-interfaces", 1221 | "fuel-poa-coordinator", 1222 | "fuel-sync", 1223 | "fuel-txpool", 1224 | "futures", 1225 | "hex", 1226 | "itertools", 1227 | "lazy_static", 1228 | "num_cpus", 1229 | "primitive-types", 1230 | "rand", 1231 | "serde", 1232 | "serde_json", 1233 | "serde_with", 1234 | "strum 0.24.1", 1235 | "strum_macros 0.24.3", 1236 | "tempfile", 1237 | "thiserror", 1238 | "tokio", 1239 | "tokio-stream", 1240 | "tower-http", 1241 | "tower-layer", 1242 | "tracing", 1243 | "tracing-subscriber", 1244 | "url", 1245 | "uuid 1.2.2", 1246 | ] 1247 | 1248 | [[package]] 1249 | name = "fuel-core-bft" 1250 | version = "0.15.1" 1251 | source = "registry+https://github.com/rust-lang/crates.io-index" 1252 | checksum = "1e55b4064ab480bc88979b312c0997238234408c953b0709d19ec0b5694b6c50" 1253 | dependencies = [ 1254 | "anyhow", 1255 | "fuel-core-interfaces", 1256 | "parking_lot", 1257 | "tokio", 1258 | ] 1259 | 1260 | [[package]] 1261 | name = "fuel-core-interfaces" 1262 | version = "0.15.1" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "9894595fb37132a517f7df87dae2926bc5bfc5bc1466f3e287527e7b2d129bd4" 1265 | dependencies = [ 1266 | "anyhow", 1267 | "async-trait", 1268 | "derive_more", 1269 | "fuel-vm", 1270 | "lazy_static", 1271 | "parking_lot", 1272 | "secrecy", 1273 | "serde", 1274 | "tai64", 1275 | "thiserror", 1276 | "tokio", 1277 | "zeroize", 1278 | ] 1279 | 1280 | [[package]] 1281 | name = "fuel-crypto" 1282 | version = "0.6.2" 1283 | source = "registry+https://github.com/rust-lang/crates.io-index" 1284 | checksum = "365c114728301916a58c932c304feb8836c51f65e0153a3f2157bf6cbb4c32ef" 1285 | dependencies = [ 1286 | "borrown", 1287 | "coins-bip32", 1288 | "coins-bip39", 1289 | "fuel-types", 1290 | "lazy_static", 1291 | "rand", 1292 | "secp256k1", 1293 | "serde", 1294 | "sha2 0.10.6", 1295 | "zeroize", 1296 | ] 1297 | 1298 | [[package]] 1299 | name = "fuel-gql-client" 1300 | version = "0.15.1" 1301 | source = "registry+https://github.com/rust-lang/crates.io-index" 1302 | checksum = "2c2c6a001f6944fddbf488d53edaa7d7c5f8b380f18a69c322380d3d01741885" 1303 | dependencies = [ 1304 | "anyhow", 1305 | "clap", 1306 | "cynic", 1307 | "derive_more", 1308 | "eventsource-client", 1309 | "fuel-vm", 1310 | "futures", 1311 | "hex", 1312 | "hyper-rustls 0.22.1", 1313 | "itertools", 1314 | "reqwest", 1315 | "serde", 1316 | "serde_json", 1317 | "tai64", 1318 | "thiserror", 1319 | ] 1320 | 1321 | [[package]] 1322 | name = "fuel-merkle" 1323 | version = "0.4.1" 1324 | source = "registry+https://github.com/rust-lang/crates.io-index" 1325 | checksum = "12e56cc8be0a2ea7cfb30ae4696bf5f658a9447df1b32af699b6273a11fdcfa3" 1326 | dependencies = [ 1327 | "digest 0.10.6", 1328 | "fuel-storage", 1329 | "hashbrown", 1330 | "hex", 1331 | "sha2 0.10.6", 1332 | "thiserror", 1333 | ] 1334 | 1335 | [[package]] 1336 | name = "fuel-metrics" 1337 | version = "0.15.1" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "bbb400bda055e39d7c2ed7405ff1088f7dce0c0eea0bfce4b9bed3bda84da2d8" 1340 | dependencies = [ 1341 | "axum", 1342 | "lazy_static", 1343 | "once_cell", 1344 | "prometheus-client", 1345 | ] 1346 | 1347 | [[package]] 1348 | name = "fuel-poa-coordinator" 1349 | version = "0.15.1" 1350 | source = "registry+https://github.com/rust-lang/crates.io-index" 1351 | checksum = "683746f58abe91007e507a2621860a21ac72cfeb22bf4e23d58689967dfdacca" 1352 | dependencies = [ 1353 | "anyhow", 1354 | "async-trait", 1355 | "fuel-core-interfaces", 1356 | "humantime-serde", 1357 | "parking_lot", 1358 | "serde", 1359 | "tokio", 1360 | "tracing", 1361 | ] 1362 | 1363 | [[package]] 1364 | name = "fuel-storage" 1365 | version = "0.3.0" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "b0f895423d18472d60eb078cf949608ff3fe6e42e91d41b85993b11528d2c4c3" 1368 | 1369 | [[package]] 1370 | name = "fuel-sync" 1371 | version = "0.15.1" 1372 | source = "registry+https://github.com/rust-lang/crates.io-index" 1373 | checksum = "279484394259877d3d742b9fc69271a05e2c203e3480ebbb67adf7aa964dedf1" 1374 | dependencies = [ 1375 | "anyhow", 1376 | "fuel-core-interfaces", 1377 | "parking_lot", 1378 | "tokio", 1379 | ] 1380 | 1381 | [[package]] 1382 | name = "fuel-tx" 1383 | version = "0.23.1" 1384 | source = "registry+https://github.com/rust-lang/crates.io-index" 1385 | checksum = "dffd148866f191397915b4a407455ece148197890ce5cf86d4b3f1eedcc7f35e" 1386 | dependencies = [ 1387 | "bitflags", 1388 | "derivative", 1389 | "fuel-asm", 1390 | "fuel-crypto", 1391 | "fuel-merkle", 1392 | "fuel-types", 1393 | "itertools", 1394 | "num-integer", 1395 | "rand", 1396 | "serde", 1397 | "serde_json", 1398 | ] 1399 | 1400 | [[package]] 1401 | name = "fuel-txpool" 1402 | version = "0.15.1" 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" 1404 | checksum = "e316f4f81c6fbc75706b45962df6a35fe1bc8346f39639078dc3db1d68eb835f" 1405 | dependencies = [ 1406 | "anyhow", 1407 | "async-trait", 1408 | "fuel-chain-config", 1409 | "fuel-core-interfaces", 1410 | "fuel-metrics", 1411 | "parking_lot", 1412 | "thiserror", 1413 | "tokio", 1414 | "tracing", 1415 | ] 1416 | 1417 | [[package]] 1418 | name = "fuel-types" 1419 | version = "0.5.3" 1420 | source = "registry+https://github.com/rust-lang/crates.io-index" 1421 | checksum = "403dcac5f0788a8fbdb6cfa0e5690dd4fe4278648da674d7e430711abf90b570" 1422 | dependencies = [ 1423 | "rand", 1424 | "serde", 1425 | ] 1426 | 1427 | [[package]] 1428 | name = "fuel-vm" 1429 | version = "0.22.7" 1430 | source = "registry+https://github.com/rust-lang/crates.io-index" 1431 | checksum = "6540c62a717f927704b44fd6fa0ea456a86c4e5732aadb191bb428f1b4937fda" 1432 | dependencies = [ 1433 | "fuel-asm", 1434 | "fuel-crypto", 1435 | "fuel-merkle", 1436 | "fuel-storage", 1437 | "fuel-tx", 1438 | "fuel-types", 1439 | "itertools", 1440 | "rand", 1441 | "serde", 1442 | "sha3 0.10.6", 1443 | "tai64", 1444 | "thiserror", 1445 | "tracing", 1446 | ] 1447 | 1448 | [[package]] 1449 | name = "fuels" 1450 | version = "0.32.2" 1451 | source = "registry+https://github.com/rust-lang/crates.io-index" 1452 | checksum = "eceaec3c8c5bc2c9cdbd29e9025d413d7fee87a0c5f9bc1d5f9d781cbd363bec" 1453 | dependencies = [ 1454 | "fuel-core", 1455 | "fuel-gql-client", 1456 | "fuels-abigen-macro", 1457 | "fuels-contract", 1458 | "fuels-core", 1459 | "fuels-signers", 1460 | "fuels-test-helpers", 1461 | "fuels-types", 1462 | ] 1463 | 1464 | [[package]] 1465 | name = "fuels-abigen-macro" 1466 | version = "0.32.2" 1467 | source = "registry+https://github.com/rust-lang/crates.io-index" 1468 | checksum = "077dbf9b23f87b7f61659da074d6e07a0d54ee44f05b0b56bb65beee07272e5f" 1469 | dependencies = [ 1470 | "Inflector", 1471 | "fuels-core", 1472 | "proc-macro2", 1473 | "quote", 1474 | "rand", 1475 | "syn", 1476 | ] 1477 | 1478 | [[package]] 1479 | name = "fuels-contract" 1480 | version = "0.32.2" 1481 | source = "registry+https://github.com/rust-lang/crates.io-index" 1482 | checksum = "ea1b27454217ad4bb99db6796d4239b12cf20959b95ea9f16f9d94bbdbe9edfe" 1483 | dependencies = [ 1484 | "anyhow", 1485 | "bytes", 1486 | "fuel-gql-client", 1487 | "fuel-tx", 1488 | "fuels-core", 1489 | "fuels-signers", 1490 | "fuels-types", 1491 | "futures", 1492 | "hex", 1493 | "itertools", 1494 | "proc-macro2", 1495 | "quote", 1496 | "rand", 1497 | "regex", 1498 | "serde", 1499 | "serde_json", 1500 | "sha2 0.9.9", 1501 | "strum 0.21.0", 1502 | "strum_macros 0.21.1", 1503 | "thiserror", 1504 | "tokio", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "fuels-core" 1509 | version = "0.32.2" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "ce2349a66d10d6e9f214a78572a4470b9fc2e805e49327c3c1ac6870951020b9" 1512 | dependencies = [ 1513 | "Inflector", 1514 | "anyhow", 1515 | "fuel-tx", 1516 | "fuel-types", 1517 | "fuels-types", 1518 | "hex", 1519 | "itertools", 1520 | "lazy_static", 1521 | "proc-macro2", 1522 | "quote", 1523 | "rand", 1524 | "regex", 1525 | "serde", 1526 | "serde_json", 1527 | "sha2 0.9.9", 1528 | "strum 0.21.0", 1529 | "strum_macros 0.21.1", 1530 | "syn", 1531 | "thiserror", 1532 | ] 1533 | 1534 | [[package]] 1535 | name = "fuels-signers" 1536 | version = "0.32.2" 1537 | source = "registry+https://github.com/rust-lang/crates.io-index" 1538 | checksum = "07d6769758c5718026d03bf55557c1cea78ab6672e4c5d8efcfef853d6162cdb" 1539 | dependencies = [ 1540 | "async-trait", 1541 | "bytes", 1542 | "chrono", 1543 | "elliptic-curve 0.11.12", 1544 | "eth-keystore", 1545 | "fuel-crypto", 1546 | "fuel-gql-client", 1547 | "fuel-types", 1548 | "fuels-core", 1549 | "fuels-types", 1550 | "hex", 1551 | "itertools", 1552 | "rand", 1553 | "serde", 1554 | "sha2 0.9.9", 1555 | "thiserror", 1556 | "tokio", 1557 | ] 1558 | 1559 | [[package]] 1560 | name = "fuels-test-helpers" 1561 | version = "0.32.2" 1562 | source = "registry+https://github.com/rust-lang/crates.io-index" 1563 | checksum = "835619f6a7804d6cee64772069aa0e9e30407a9980cddb7d40ab569207ff72f5" 1564 | dependencies = [ 1565 | "anyhow", 1566 | "fuel-chain-config", 1567 | "fuel-core", 1568 | "fuel-core-interfaces", 1569 | "fuel-gql-client", 1570 | "fuel-types", 1571 | "fuels-contract", 1572 | "fuels-core", 1573 | "fuels-signers", 1574 | "fuels-types", 1575 | "hex", 1576 | "portpicker", 1577 | "rand", 1578 | "serde", 1579 | "serde_json", 1580 | "serde_with", 1581 | "tempfile", 1582 | "tokio", 1583 | "which", 1584 | ] 1585 | 1586 | [[package]] 1587 | name = "fuels-types" 1588 | version = "0.32.2" 1589 | source = "registry+https://github.com/rust-lang/crates.io-index" 1590 | checksum = "6c6b7ec28dbf349bbc097e7e45ee711046088fe0365261f16105c842a4db354d" 1591 | dependencies = [ 1592 | "anyhow", 1593 | "bech32 0.9.1", 1594 | "chrono", 1595 | "fuel-chain-config", 1596 | "fuel-gql-client", 1597 | "fuel-tx", 1598 | "hex", 1599 | "itertools", 1600 | "lazy_static", 1601 | "proc-macro2", 1602 | "regex", 1603 | "serde", 1604 | "serde_json", 1605 | "strum 0.21.0", 1606 | "strum_macros 0.21.1", 1607 | "thiserror", 1608 | "tokio", 1609 | ] 1610 | 1611 | [[package]] 1612 | name = "funty" 1613 | version = "2.0.0" 1614 | source = "registry+https://github.com/rust-lang/crates.io-index" 1615 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 1616 | 1617 | [[package]] 1618 | name = "futures" 1619 | version = "0.3.25" 1620 | source = "registry+https://github.com/rust-lang/crates.io-index" 1621 | checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" 1622 | dependencies = [ 1623 | "futures-channel", 1624 | "futures-core", 1625 | "futures-executor", 1626 | "futures-io", 1627 | "futures-sink", 1628 | "futures-task", 1629 | "futures-util", 1630 | ] 1631 | 1632 | [[package]] 1633 | name = "futures-channel" 1634 | version = "0.3.25" 1635 | source = "registry+https://github.com/rust-lang/crates.io-index" 1636 | checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" 1637 | dependencies = [ 1638 | "futures-core", 1639 | "futures-sink", 1640 | ] 1641 | 1642 | [[package]] 1643 | name = "futures-core" 1644 | version = "0.3.25" 1645 | source = "registry+https://github.com/rust-lang/crates.io-index" 1646 | checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" 1647 | 1648 | [[package]] 1649 | name = "futures-executor" 1650 | version = "0.3.25" 1651 | source = "registry+https://github.com/rust-lang/crates.io-index" 1652 | checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" 1653 | dependencies = [ 1654 | "futures-core", 1655 | "futures-task", 1656 | "futures-util", 1657 | ] 1658 | 1659 | [[package]] 1660 | name = "futures-io" 1661 | version = "0.3.25" 1662 | source = "registry+https://github.com/rust-lang/crates.io-index" 1663 | checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" 1664 | 1665 | [[package]] 1666 | name = "futures-macro" 1667 | version = "0.3.25" 1668 | source = "registry+https://github.com/rust-lang/crates.io-index" 1669 | checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" 1670 | dependencies = [ 1671 | "proc-macro2", 1672 | "quote", 1673 | "syn", 1674 | ] 1675 | 1676 | [[package]] 1677 | name = "futures-sink" 1678 | version = "0.3.25" 1679 | source = "registry+https://github.com/rust-lang/crates.io-index" 1680 | checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" 1681 | 1682 | [[package]] 1683 | name = "futures-task" 1684 | version = "0.3.25" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" 1687 | 1688 | [[package]] 1689 | name = "futures-util" 1690 | version = "0.3.25" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" 1693 | dependencies = [ 1694 | "futures-channel", 1695 | "futures-core", 1696 | "futures-io", 1697 | "futures-macro", 1698 | "futures-sink", 1699 | "futures-task", 1700 | "memchr", 1701 | "pin-project-lite", 1702 | "pin-utils", 1703 | "slab", 1704 | ] 1705 | 1706 | [[package]] 1707 | name = "generic-array" 1708 | version = "0.12.4" 1709 | source = "registry+https://github.com/rust-lang/crates.io-index" 1710 | checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" 1711 | dependencies = [ 1712 | "typenum", 1713 | ] 1714 | 1715 | [[package]] 1716 | name = "generic-array" 1717 | version = "0.14.6" 1718 | source = "registry+https://github.com/rust-lang/crates.io-index" 1719 | checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" 1720 | dependencies = [ 1721 | "typenum", 1722 | "version_check", 1723 | ] 1724 | 1725 | [[package]] 1726 | name = "getrandom" 1727 | version = "0.2.8" 1728 | source = "registry+https://github.com/rust-lang/crates.io-index" 1729 | checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" 1730 | dependencies = [ 1731 | "cfg-if", 1732 | "js-sys", 1733 | "libc", 1734 | "wasi 0.11.0+wasi-snapshot-preview1", 1735 | "wasm-bindgen", 1736 | ] 1737 | 1738 | [[package]] 1739 | name = "graphql-parser" 1740 | version = "0.4.0" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" 1743 | dependencies = [ 1744 | "combine", 1745 | "thiserror", 1746 | ] 1747 | 1748 | [[package]] 1749 | name = "group" 1750 | version = "0.12.1" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" 1753 | dependencies = [ 1754 | "ff", 1755 | "rand_core", 1756 | "subtle", 1757 | ] 1758 | 1759 | [[package]] 1760 | name = "h2" 1761 | version = "0.3.15" 1762 | source = "registry+https://github.com/rust-lang/crates.io-index" 1763 | checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" 1764 | dependencies = [ 1765 | "bytes", 1766 | "fnv", 1767 | "futures-core", 1768 | "futures-sink", 1769 | "futures-util", 1770 | "http", 1771 | "indexmap", 1772 | "slab", 1773 | "tokio", 1774 | "tokio-util", 1775 | "tracing", 1776 | ] 1777 | 1778 | [[package]] 1779 | name = "hashbrown" 1780 | version = "0.12.3" 1781 | source = "registry+https://github.com/rust-lang/crates.io-index" 1782 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1783 | dependencies = [ 1784 | "ahash", 1785 | ] 1786 | 1787 | [[package]] 1788 | name = "heck" 1789 | version = "0.3.3" 1790 | source = "registry+https://github.com/rust-lang/crates.io-index" 1791 | checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" 1792 | dependencies = [ 1793 | "unicode-segmentation", 1794 | ] 1795 | 1796 | [[package]] 1797 | name = "heck" 1798 | version = "0.4.0" 1799 | source = "registry+https://github.com/rust-lang/crates.io-index" 1800 | checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" 1801 | 1802 | [[package]] 1803 | name = "hermit-abi" 1804 | version = "0.1.19" 1805 | source = "registry+https://github.com/rust-lang/crates.io-index" 1806 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" 1807 | dependencies = [ 1808 | "libc", 1809 | ] 1810 | 1811 | [[package]] 1812 | name = "hex" 1813 | version = "0.4.3" 1814 | source = "registry+https://github.com/rust-lang/crates.io-index" 1815 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1816 | dependencies = [ 1817 | "serde", 1818 | ] 1819 | 1820 | [[package]] 1821 | name = "hmac" 1822 | version = "0.11.0" 1823 | source = "registry+https://github.com/rust-lang/crates.io-index" 1824 | checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" 1825 | dependencies = [ 1826 | "crypto-mac", 1827 | "digest 0.9.0", 1828 | ] 1829 | 1830 | [[package]] 1831 | name = "hmac" 1832 | version = "0.12.1" 1833 | source = "registry+https://github.com/rust-lang/crates.io-index" 1834 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1835 | dependencies = [ 1836 | "digest 0.10.6", 1837 | ] 1838 | 1839 | [[package]] 1840 | name = "http" 1841 | version = "0.2.8" 1842 | source = "registry+https://github.com/rust-lang/crates.io-index" 1843 | checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" 1844 | dependencies = [ 1845 | "bytes", 1846 | "fnv", 1847 | "itoa", 1848 | ] 1849 | 1850 | [[package]] 1851 | name = "http-body" 1852 | version = "0.4.5" 1853 | source = "registry+https://github.com/rust-lang/crates.io-index" 1854 | checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" 1855 | dependencies = [ 1856 | "bytes", 1857 | "http", 1858 | "pin-project-lite", 1859 | ] 1860 | 1861 | [[package]] 1862 | name = "http-range-header" 1863 | version = "0.3.0" 1864 | source = "registry+https://github.com/rust-lang/crates.io-index" 1865 | checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" 1866 | 1867 | [[package]] 1868 | name = "httparse" 1869 | version = "1.8.0" 1870 | source = "registry+https://github.com/rust-lang/crates.io-index" 1871 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 1872 | 1873 | [[package]] 1874 | name = "httpdate" 1875 | version = "1.0.2" 1876 | source = "registry+https://github.com/rust-lang/crates.io-index" 1877 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" 1878 | 1879 | [[package]] 1880 | name = "humantime" 1881 | version = "2.1.0" 1882 | source = "registry+https://github.com/rust-lang/crates.io-index" 1883 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 1884 | 1885 | [[package]] 1886 | name = "humantime-serde" 1887 | version = "1.1.1" 1888 | source = "registry+https://github.com/rust-lang/crates.io-index" 1889 | checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" 1890 | dependencies = [ 1891 | "humantime", 1892 | "serde", 1893 | ] 1894 | 1895 | [[package]] 1896 | name = "hyper" 1897 | version = "0.14.23" 1898 | source = "registry+https://github.com/rust-lang/crates.io-index" 1899 | checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" 1900 | dependencies = [ 1901 | "bytes", 1902 | "futures-channel", 1903 | "futures-core", 1904 | "futures-util", 1905 | "h2", 1906 | "http", 1907 | "http-body", 1908 | "httparse", 1909 | "httpdate", 1910 | "itoa", 1911 | "pin-project-lite", 1912 | "socket2", 1913 | "tokio", 1914 | "tower-service", 1915 | "tracing", 1916 | "want", 1917 | ] 1918 | 1919 | [[package]] 1920 | name = "hyper-rustls" 1921 | version = "0.22.1" 1922 | source = "registry+https://github.com/rust-lang/crates.io-index" 1923 | checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" 1924 | dependencies = [ 1925 | "ct-logs", 1926 | "futures-util", 1927 | "hyper", 1928 | "log", 1929 | "rustls 0.19.1", 1930 | "rustls-native-certs", 1931 | "tokio", 1932 | "tokio-rustls 0.22.0", 1933 | "webpki 0.21.4", 1934 | "webpki-roots 0.21.1", 1935 | ] 1936 | 1937 | [[package]] 1938 | name = "hyper-rustls" 1939 | version = "0.23.2" 1940 | source = "registry+https://github.com/rust-lang/crates.io-index" 1941 | checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" 1942 | dependencies = [ 1943 | "http", 1944 | "hyper", 1945 | "rustls 0.20.7", 1946 | "tokio", 1947 | "tokio-rustls 0.23.4", 1948 | ] 1949 | 1950 | [[package]] 1951 | name = "hyper-timeout" 1952 | version = "0.4.1" 1953 | source = "registry+https://github.com/rust-lang/crates.io-index" 1954 | checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" 1955 | dependencies = [ 1956 | "hyper", 1957 | "pin-project-lite", 1958 | "tokio", 1959 | "tokio-io-timeout", 1960 | ] 1961 | 1962 | [[package]] 1963 | name = "iana-time-zone" 1964 | version = "0.1.53" 1965 | source = "registry+https://github.com/rust-lang/crates.io-index" 1966 | checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" 1967 | dependencies = [ 1968 | "android_system_properties", 1969 | "core-foundation-sys", 1970 | "iana-time-zone-haiku", 1971 | "js-sys", 1972 | "wasm-bindgen", 1973 | "winapi", 1974 | ] 1975 | 1976 | [[package]] 1977 | name = "iana-time-zone-haiku" 1978 | version = "0.1.1" 1979 | source = "registry+https://github.com/rust-lang/crates.io-index" 1980 | checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" 1981 | dependencies = [ 1982 | "cxx", 1983 | "cxx-build", 1984 | ] 1985 | 1986 | [[package]] 1987 | name = "ident_case" 1988 | version = "1.0.1" 1989 | source = "registry+https://github.com/rust-lang/crates.io-index" 1990 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 1991 | 1992 | [[package]] 1993 | name = "idna" 1994 | version = "0.3.0" 1995 | source = "registry+https://github.com/rust-lang/crates.io-index" 1996 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 1997 | dependencies = [ 1998 | "unicode-bidi", 1999 | "unicode-normalization", 2000 | ] 2001 | 2002 | [[package]] 2003 | name = "impl-codec" 2004 | version = "0.6.0" 2005 | source = "registry+https://github.com/rust-lang/crates.io-index" 2006 | checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" 2007 | dependencies = [ 2008 | "parity-scale-codec", 2009 | ] 2010 | 2011 | [[package]] 2012 | name = "impl-trait-for-tuples" 2013 | version = "0.2.2" 2014 | source = "registry+https://github.com/rust-lang/crates.io-index" 2015 | checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" 2016 | dependencies = [ 2017 | "proc-macro2", 2018 | "quote", 2019 | "syn", 2020 | ] 2021 | 2022 | [[package]] 2023 | name = "indexmap" 2024 | version = "1.9.2" 2025 | source = "registry+https://github.com/rust-lang/crates.io-index" 2026 | checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" 2027 | dependencies = [ 2028 | "autocfg", 2029 | "hashbrown", 2030 | "serde", 2031 | ] 2032 | 2033 | [[package]] 2034 | name = "instant" 2035 | version = "0.1.12" 2036 | source = "registry+https://github.com/rust-lang/crates.io-index" 2037 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 2038 | dependencies = [ 2039 | "cfg-if", 2040 | ] 2041 | 2042 | [[package]] 2043 | name = "ipnet" 2044 | version = "2.7.0" 2045 | source = "registry+https://github.com/rust-lang/crates.io-index" 2046 | checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e" 2047 | 2048 | [[package]] 2049 | name = "itertools" 2050 | version = "0.10.5" 2051 | source = "registry+https://github.com/rust-lang/crates.io-index" 2052 | checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" 2053 | dependencies = [ 2054 | "either", 2055 | ] 2056 | 2057 | [[package]] 2058 | name = "itoa" 2059 | version = "1.0.5" 2060 | source = "registry+https://github.com/rust-lang/crates.io-index" 2061 | checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" 2062 | 2063 | [[package]] 2064 | name = "js-sys" 2065 | version = "0.3.60" 2066 | source = "registry+https://github.com/rust-lang/crates.io-index" 2067 | checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" 2068 | dependencies = [ 2069 | "wasm-bindgen", 2070 | ] 2071 | 2072 | [[package]] 2073 | name = "k256" 2074 | version = "0.11.6" 2075 | source = "registry+https://github.com/rust-lang/crates.io-index" 2076 | checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" 2077 | dependencies = [ 2078 | "cfg-if", 2079 | "ecdsa", 2080 | "elliptic-curve 0.12.3", 2081 | "sha2 0.10.6", 2082 | ] 2083 | 2084 | [[package]] 2085 | name = "keccak" 2086 | version = "0.1.3" 2087 | source = "registry+https://github.com/rust-lang/crates.io-index" 2088 | checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" 2089 | dependencies = [ 2090 | "cpufeatures", 2091 | ] 2092 | 2093 | [[package]] 2094 | name = "lazy_static" 2095 | version = "1.4.0" 2096 | source = "registry+https://github.com/rust-lang/crates.io-index" 2097 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 2098 | 2099 | [[package]] 2100 | name = "libc" 2101 | version = "0.2.138" 2102 | source = "registry+https://github.com/rust-lang/crates.io-index" 2103 | checksum = "db6d7e329c562c5dfab7a46a2afabc8b987ab9a4834c9d1ca04dc54c1546cef8" 2104 | 2105 | [[package]] 2106 | name = "limit_orders" 2107 | version = "0.1.0" 2108 | dependencies = [ 2109 | "fuels", 2110 | "tokio", 2111 | ] 2112 | 2113 | [[package]] 2114 | name = "link-cplusplus" 2115 | version = "1.0.8" 2116 | source = "registry+https://github.com/rust-lang/crates.io-index" 2117 | checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" 2118 | dependencies = [ 2119 | "cc", 2120 | ] 2121 | 2122 | [[package]] 2123 | name = "lock_api" 2124 | version = "0.4.9" 2125 | source = "registry+https://github.com/rust-lang/crates.io-index" 2126 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 2127 | dependencies = [ 2128 | "autocfg", 2129 | "scopeguard", 2130 | ] 2131 | 2132 | [[package]] 2133 | name = "log" 2134 | version = "0.4.17" 2135 | source = "registry+https://github.com/rust-lang/crates.io-index" 2136 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 2137 | dependencies = [ 2138 | "cfg-if", 2139 | ] 2140 | 2141 | [[package]] 2142 | name = "matchers" 2143 | version = "0.1.0" 2144 | source = "registry+https://github.com/rust-lang/crates.io-index" 2145 | checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 2146 | dependencies = [ 2147 | "regex-automata", 2148 | ] 2149 | 2150 | [[package]] 2151 | name = "matchit" 2152 | version = "0.5.0" 2153 | source = "registry+https://github.com/rust-lang/crates.io-index" 2154 | checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" 2155 | 2156 | [[package]] 2157 | name = "memchr" 2158 | version = "2.5.0" 2159 | source = "registry+https://github.com/rust-lang/crates.io-index" 2160 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 2161 | 2162 | [[package]] 2163 | name = "mime" 2164 | version = "0.3.16" 2165 | source = "registry+https://github.com/rust-lang/crates.io-index" 2166 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 2167 | 2168 | [[package]] 2169 | name = "mio" 2170 | version = "0.8.5" 2171 | source = "registry+https://github.com/rust-lang/crates.io-index" 2172 | checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" 2173 | dependencies = [ 2174 | "libc", 2175 | "log", 2176 | "wasi 0.11.0+wasi-snapshot-preview1", 2177 | "windows-sys 0.42.0", 2178 | ] 2179 | 2180 | [[package]] 2181 | name = "multer" 2182 | version = "2.0.4" 2183 | source = "registry+https://github.com/rust-lang/crates.io-index" 2184 | checksum = "6ed4198ce7a4cbd2a57af78d28c6fbb57d81ac5f1d6ad79ac6c5587419cbdf22" 2185 | dependencies = [ 2186 | "bytes", 2187 | "encoding_rs", 2188 | "futures-util", 2189 | "http", 2190 | "httparse", 2191 | "log", 2192 | "memchr", 2193 | "mime", 2194 | "spin 0.9.4", 2195 | "version_check", 2196 | ] 2197 | 2198 | [[package]] 2199 | name = "nu-ansi-term" 2200 | version = "0.46.0" 2201 | source = "registry+https://github.com/rust-lang/crates.io-index" 2202 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 2203 | dependencies = [ 2204 | "overload", 2205 | "winapi", 2206 | ] 2207 | 2208 | [[package]] 2209 | name = "num-integer" 2210 | version = "0.1.45" 2211 | source = "registry+https://github.com/rust-lang/crates.io-index" 2212 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 2213 | dependencies = [ 2214 | "autocfg", 2215 | "num-traits", 2216 | ] 2217 | 2218 | [[package]] 2219 | name = "num-traits" 2220 | version = "0.2.15" 2221 | source = "registry+https://github.com/rust-lang/crates.io-index" 2222 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" 2223 | dependencies = [ 2224 | "autocfg", 2225 | ] 2226 | 2227 | [[package]] 2228 | name = "num_cpus" 2229 | version = "1.14.0" 2230 | source = "registry+https://github.com/rust-lang/crates.io-index" 2231 | checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" 2232 | dependencies = [ 2233 | "hermit-abi", 2234 | "libc", 2235 | ] 2236 | 2237 | [[package]] 2238 | name = "once_cell" 2239 | version = "1.16.0" 2240 | source = "registry+https://github.com/rust-lang/crates.io-index" 2241 | checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" 2242 | 2243 | [[package]] 2244 | name = "opaque-debug" 2245 | version = "0.2.3" 2246 | source = "registry+https://github.com/rust-lang/crates.io-index" 2247 | checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" 2248 | 2249 | [[package]] 2250 | name = "opaque-debug" 2251 | version = "0.3.0" 2252 | source = "registry+https://github.com/rust-lang/crates.io-index" 2253 | checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" 2254 | 2255 | [[package]] 2256 | name = "openssl-probe" 2257 | version = "0.1.5" 2258 | source = "registry+https://github.com/rust-lang/crates.io-index" 2259 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 2260 | 2261 | [[package]] 2262 | name = "os_str_bytes" 2263 | version = "6.4.1" 2264 | source = "registry+https://github.com/rust-lang/crates.io-index" 2265 | checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" 2266 | 2267 | [[package]] 2268 | name = "overload" 2269 | version = "0.1.1" 2270 | source = "registry+https://github.com/rust-lang/crates.io-index" 2271 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 2272 | 2273 | [[package]] 2274 | name = "parity-scale-codec" 2275 | version = "3.2.1" 2276 | source = "registry+https://github.com/rust-lang/crates.io-index" 2277 | checksum = "366e44391a8af4cfd6002ef6ba072bae071a96aafca98d7d448a34c5dca38b6a" 2278 | dependencies = [ 2279 | "arrayvec", 2280 | "bitvec 1.0.1", 2281 | "byte-slice-cast", 2282 | "impl-trait-for-tuples", 2283 | "parity-scale-codec-derive", 2284 | "serde", 2285 | ] 2286 | 2287 | [[package]] 2288 | name = "parity-scale-codec-derive" 2289 | version = "3.1.3" 2290 | source = "registry+https://github.com/rust-lang/crates.io-index" 2291 | checksum = "9299338969a3d2f491d65f140b00ddec470858402f888af98e8642fb5e8965cd" 2292 | dependencies = [ 2293 | "proc-macro-crate", 2294 | "proc-macro2", 2295 | "quote", 2296 | "syn", 2297 | ] 2298 | 2299 | [[package]] 2300 | name = "parking_lot" 2301 | version = "0.12.1" 2302 | source = "registry+https://github.com/rust-lang/crates.io-index" 2303 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 2304 | dependencies = [ 2305 | "lock_api", 2306 | "parking_lot_core", 2307 | ] 2308 | 2309 | [[package]] 2310 | name = "parking_lot_core" 2311 | version = "0.9.5" 2312 | source = "registry+https://github.com/rust-lang/crates.io-index" 2313 | checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" 2314 | dependencies = [ 2315 | "cfg-if", 2316 | "libc", 2317 | "redox_syscall", 2318 | "smallvec", 2319 | "windows-sys 0.42.0", 2320 | ] 2321 | 2322 | [[package]] 2323 | name = "password-hash" 2324 | version = "0.2.3" 2325 | source = "registry+https://github.com/rust-lang/crates.io-index" 2326 | checksum = "77e0b28ace46c5a396546bcf443bf422b57049617433d8854227352a4a9b24e7" 2327 | dependencies = [ 2328 | "base64ct", 2329 | "rand_core", 2330 | "subtle", 2331 | ] 2332 | 2333 | [[package]] 2334 | name = "password-hash" 2335 | version = "0.4.2" 2336 | source = "registry+https://github.com/rust-lang/crates.io-index" 2337 | checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" 2338 | dependencies = [ 2339 | "base64ct", 2340 | "rand_core", 2341 | "subtle", 2342 | ] 2343 | 2344 | [[package]] 2345 | name = "pbkdf2" 2346 | version = "0.8.0" 2347 | source = "registry+https://github.com/rust-lang/crates.io-index" 2348 | checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" 2349 | dependencies = [ 2350 | "base64ct", 2351 | "crypto-mac", 2352 | "hmac 0.11.0", 2353 | "password-hash 0.2.3", 2354 | "sha2 0.9.9", 2355 | ] 2356 | 2357 | [[package]] 2358 | name = "pbkdf2" 2359 | version = "0.11.0" 2360 | source = "registry+https://github.com/rust-lang/crates.io-index" 2361 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" 2362 | dependencies = [ 2363 | "digest 0.10.6", 2364 | "hmac 0.12.1", 2365 | "password-hash 0.4.2", 2366 | "sha2 0.10.6", 2367 | ] 2368 | 2369 | [[package]] 2370 | name = "percent-encoding" 2371 | version = "2.2.0" 2372 | source = "registry+https://github.com/rust-lang/crates.io-index" 2373 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 2374 | 2375 | [[package]] 2376 | name = "pest" 2377 | version = "2.5.1" 2378 | source = "registry+https://github.com/rust-lang/crates.io-index" 2379 | checksum = "cc8bed3549e0f9b0a2a78bf7c0018237a2cdf085eecbbc048e52612438e4e9d0" 2380 | dependencies = [ 2381 | "thiserror", 2382 | "ucd-trie", 2383 | ] 2384 | 2385 | [[package]] 2386 | name = "pin-project" 2387 | version = "1.0.12" 2388 | source = "registry+https://github.com/rust-lang/crates.io-index" 2389 | checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" 2390 | dependencies = [ 2391 | "pin-project-internal", 2392 | ] 2393 | 2394 | [[package]] 2395 | name = "pin-project-internal" 2396 | version = "1.0.12" 2397 | source = "registry+https://github.com/rust-lang/crates.io-index" 2398 | checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" 2399 | dependencies = [ 2400 | "proc-macro2", 2401 | "quote", 2402 | "syn", 2403 | ] 2404 | 2405 | [[package]] 2406 | name = "pin-project-lite" 2407 | version = "0.2.9" 2408 | source = "registry+https://github.com/rust-lang/crates.io-index" 2409 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 2410 | 2411 | [[package]] 2412 | name = "pin-utils" 2413 | version = "0.1.0" 2414 | source = "registry+https://github.com/rust-lang/crates.io-index" 2415 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2416 | 2417 | [[package]] 2418 | name = "pkcs8" 2419 | version = "0.9.0" 2420 | source = "registry+https://github.com/rust-lang/crates.io-index" 2421 | checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" 2422 | dependencies = [ 2423 | "der 0.6.1", 2424 | "spki", 2425 | ] 2426 | 2427 | [[package]] 2428 | name = "portpicker" 2429 | version = "0.1.1" 2430 | source = "registry+https://github.com/rust-lang/crates.io-index" 2431 | checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9" 2432 | dependencies = [ 2433 | "rand", 2434 | ] 2435 | 2436 | [[package]] 2437 | name = "ppv-lite86" 2438 | version = "0.2.17" 2439 | source = "registry+https://github.com/rust-lang/crates.io-index" 2440 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2441 | 2442 | [[package]] 2443 | name = "primitive-types" 2444 | version = "0.12.1" 2445 | source = "registry+https://github.com/rust-lang/crates.io-index" 2446 | checksum = "9f3486ccba82358b11a77516035647c34ba167dfa53312630de83b12bd4f3d66" 2447 | dependencies = [ 2448 | "fixed-hash", 2449 | "impl-codec", 2450 | "uint", 2451 | ] 2452 | 2453 | [[package]] 2454 | name = "proc-macro-crate" 2455 | version = "1.2.1" 2456 | source = "registry+https://github.com/rust-lang/crates.io-index" 2457 | checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" 2458 | dependencies = [ 2459 | "once_cell", 2460 | "thiserror", 2461 | "toml", 2462 | ] 2463 | 2464 | [[package]] 2465 | name = "proc-macro-error" 2466 | version = "1.0.4" 2467 | source = "registry+https://github.com/rust-lang/crates.io-index" 2468 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 2469 | dependencies = [ 2470 | "proc-macro-error-attr", 2471 | "proc-macro2", 2472 | "quote", 2473 | "syn", 2474 | "version_check", 2475 | ] 2476 | 2477 | [[package]] 2478 | name = "proc-macro-error-attr" 2479 | version = "1.0.4" 2480 | source = "registry+https://github.com/rust-lang/crates.io-index" 2481 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 2482 | dependencies = [ 2483 | "proc-macro2", 2484 | "quote", 2485 | "version_check", 2486 | ] 2487 | 2488 | [[package]] 2489 | name = "proc-macro2" 2490 | version = "1.0.49" 2491 | source = "registry+https://github.com/rust-lang/crates.io-index" 2492 | checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" 2493 | dependencies = [ 2494 | "unicode-ident", 2495 | ] 2496 | 2497 | [[package]] 2498 | name = "prometheus-client" 2499 | version = "0.18.1" 2500 | source = "registry+https://github.com/rust-lang/crates.io-index" 2501 | checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" 2502 | dependencies = [ 2503 | "dtoa", 2504 | "itoa", 2505 | "parking_lot", 2506 | "prometheus-client-derive-text-encode", 2507 | ] 2508 | 2509 | [[package]] 2510 | name = "prometheus-client-derive-text-encode" 2511 | version = "0.3.0" 2512 | source = "registry+https://github.com/rust-lang/crates.io-index" 2513 | checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" 2514 | dependencies = [ 2515 | "proc-macro2", 2516 | "quote", 2517 | "syn", 2518 | ] 2519 | 2520 | [[package]] 2521 | name = "quote" 2522 | version = "1.0.23" 2523 | source = "registry+https://github.com/rust-lang/crates.io-index" 2524 | checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" 2525 | dependencies = [ 2526 | "proc-macro2", 2527 | ] 2528 | 2529 | [[package]] 2530 | name = "radium" 2531 | version = "0.3.0" 2532 | source = "registry+https://github.com/rust-lang/crates.io-index" 2533 | checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" 2534 | 2535 | [[package]] 2536 | name = "radium" 2537 | version = "0.7.0" 2538 | source = "registry+https://github.com/rust-lang/crates.io-index" 2539 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 2540 | 2541 | [[package]] 2542 | name = "rand" 2543 | version = "0.8.5" 2544 | source = "registry+https://github.com/rust-lang/crates.io-index" 2545 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2546 | dependencies = [ 2547 | "libc", 2548 | "rand_chacha", 2549 | "rand_core", 2550 | ] 2551 | 2552 | [[package]] 2553 | name = "rand_chacha" 2554 | version = "0.3.1" 2555 | source = "registry+https://github.com/rust-lang/crates.io-index" 2556 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2557 | dependencies = [ 2558 | "ppv-lite86", 2559 | "rand_core", 2560 | ] 2561 | 2562 | [[package]] 2563 | name = "rand_core" 2564 | version = "0.6.4" 2565 | source = "registry+https://github.com/rust-lang/crates.io-index" 2566 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2567 | dependencies = [ 2568 | "getrandom", 2569 | ] 2570 | 2571 | [[package]] 2572 | name = "redox_syscall" 2573 | version = "0.2.16" 2574 | source = "registry+https://github.com/rust-lang/crates.io-index" 2575 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 2576 | dependencies = [ 2577 | "bitflags", 2578 | ] 2579 | 2580 | [[package]] 2581 | name = "redox_users" 2582 | version = "0.4.3" 2583 | source = "registry+https://github.com/rust-lang/crates.io-index" 2584 | checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" 2585 | dependencies = [ 2586 | "getrandom", 2587 | "redox_syscall", 2588 | "thiserror", 2589 | ] 2590 | 2591 | [[package]] 2592 | name = "regex" 2593 | version = "1.7.0" 2594 | source = "registry+https://github.com/rust-lang/crates.io-index" 2595 | checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" 2596 | dependencies = [ 2597 | "aho-corasick", 2598 | "memchr", 2599 | "regex-syntax", 2600 | ] 2601 | 2602 | [[package]] 2603 | name = "regex-automata" 2604 | version = "0.1.10" 2605 | source = "registry+https://github.com/rust-lang/crates.io-index" 2606 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 2607 | dependencies = [ 2608 | "regex-syntax", 2609 | ] 2610 | 2611 | [[package]] 2612 | name = "regex-syntax" 2613 | version = "0.6.28" 2614 | source = "registry+https://github.com/rust-lang/crates.io-index" 2615 | checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" 2616 | 2617 | [[package]] 2618 | name = "remove_dir_all" 2619 | version = "0.5.3" 2620 | source = "registry+https://github.com/rust-lang/crates.io-index" 2621 | checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" 2622 | dependencies = [ 2623 | "winapi", 2624 | ] 2625 | 2626 | [[package]] 2627 | name = "reqwest" 2628 | version = "0.11.13" 2629 | source = "registry+https://github.com/rust-lang/crates.io-index" 2630 | checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" 2631 | dependencies = [ 2632 | "base64 0.13.1", 2633 | "bytes", 2634 | "encoding_rs", 2635 | "futures-core", 2636 | "futures-util", 2637 | "h2", 2638 | "http", 2639 | "http-body", 2640 | "hyper", 2641 | "hyper-rustls 0.23.2", 2642 | "ipnet", 2643 | "js-sys", 2644 | "log", 2645 | "mime", 2646 | "once_cell", 2647 | "percent-encoding", 2648 | "pin-project-lite", 2649 | "rustls 0.20.7", 2650 | "rustls-pemfile", 2651 | "serde", 2652 | "serde_json", 2653 | "serde_urlencoded", 2654 | "tokio", 2655 | "tokio-rustls 0.23.4", 2656 | "tower-service", 2657 | "url", 2658 | "wasm-bindgen", 2659 | "wasm-bindgen-futures", 2660 | "web-sys", 2661 | "webpki-roots 0.22.6", 2662 | "winreg", 2663 | ] 2664 | 2665 | [[package]] 2666 | name = "rfc6979" 2667 | version = "0.3.1" 2668 | source = "registry+https://github.com/rust-lang/crates.io-index" 2669 | checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" 2670 | dependencies = [ 2671 | "crypto-bigint 0.4.9", 2672 | "hmac 0.12.1", 2673 | "zeroize", 2674 | ] 2675 | 2676 | [[package]] 2677 | name = "ring" 2678 | version = "0.16.20" 2679 | source = "registry+https://github.com/rust-lang/crates.io-index" 2680 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 2681 | dependencies = [ 2682 | "cc", 2683 | "libc", 2684 | "once_cell", 2685 | "spin 0.5.2", 2686 | "untrusted", 2687 | "web-sys", 2688 | "winapi", 2689 | ] 2690 | 2691 | [[package]] 2692 | name = "ripemd" 2693 | version = "0.1.3" 2694 | source = "registry+https://github.com/rust-lang/crates.io-index" 2695 | checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" 2696 | dependencies = [ 2697 | "digest 0.10.6", 2698 | ] 2699 | 2700 | [[package]] 2701 | name = "rustc-hex" 2702 | version = "2.1.0" 2703 | source = "registry+https://github.com/rust-lang/crates.io-index" 2704 | checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" 2705 | 2706 | [[package]] 2707 | name = "rustc_version" 2708 | version = "0.4.0" 2709 | source = "registry+https://github.com/rust-lang/crates.io-index" 2710 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2711 | dependencies = [ 2712 | "semver", 2713 | ] 2714 | 2715 | [[package]] 2716 | name = "rustls" 2717 | version = "0.19.1" 2718 | source = "registry+https://github.com/rust-lang/crates.io-index" 2719 | checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" 2720 | dependencies = [ 2721 | "base64 0.13.1", 2722 | "log", 2723 | "ring", 2724 | "sct 0.6.1", 2725 | "webpki 0.21.4", 2726 | ] 2727 | 2728 | [[package]] 2729 | name = "rustls" 2730 | version = "0.20.7" 2731 | source = "registry+https://github.com/rust-lang/crates.io-index" 2732 | checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" 2733 | dependencies = [ 2734 | "log", 2735 | "ring", 2736 | "sct 0.7.0", 2737 | "webpki 0.22.0", 2738 | ] 2739 | 2740 | [[package]] 2741 | name = "rustls-native-certs" 2742 | version = "0.5.0" 2743 | source = "registry+https://github.com/rust-lang/crates.io-index" 2744 | checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" 2745 | dependencies = [ 2746 | "openssl-probe", 2747 | "rustls 0.19.1", 2748 | "schannel", 2749 | "security-framework", 2750 | ] 2751 | 2752 | [[package]] 2753 | name = "rustls-pemfile" 2754 | version = "1.0.1" 2755 | source = "registry+https://github.com/rust-lang/crates.io-index" 2756 | checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" 2757 | dependencies = [ 2758 | "base64 0.13.1", 2759 | ] 2760 | 2761 | [[package]] 2762 | name = "rustversion" 2763 | version = "1.0.11" 2764 | source = "registry+https://github.com/rust-lang/crates.io-index" 2765 | checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" 2766 | 2767 | [[package]] 2768 | name = "ryu" 2769 | version = "1.0.12" 2770 | source = "registry+https://github.com/rust-lang/crates.io-index" 2771 | checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" 2772 | 2773 | [[package]] 2774 | name = "salsa20" 2775 | version = "0.8.1" 2776 | source = "registry+https://github.com/rust-lang/crates.io-index" 2777 | checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" 2778 | dependencies = [ 2779 | "cipher", 2780 | ] 2781 | 2782 | [[package]] 2783 | name = "schannel" 2784 | version = "0.1.20" 2785 | source = "registry+https://github.com/rust-lang/crates.io-index" 2786 | checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" 2787 | dependencies = [ 2788 | "lazy_static", 2789 | "windows-sys 0.36.1", 2790 | ] 2791 | 2792 | [[package]] 2793 | name = "scopeguard" 2794 | version = "1.1.0" 2795 | source = "registry+https://github.com/rust-lang/crates.io-index" 2796 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 2797 | 2798 | [[package]] 2799 | name = "scratch" 2800 | version = "1.0.3" 2801 | source = "registry+https://github.com/rust-lang/crates.io-index" 2802 | checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" 2803 | 2804 | [[package]] 2805 | name = "scrypt" 2806 | version = "0.7.0" 2807 | source = "registry+https://github.com/rust-lang/crates.io-index" 2808 | checksum = "879588d8f90906e73302547e20fffefdd240eb3e0e744e142321f5d49dea0518" 2809 | dependencies = [ 2810 | "base64ct", 2811 | "hmac 0.11.0", 2812 | "password-hash 0.2.3", 2813 | "pbkdf2 0.8.0", 2814 | "salsa20", 2815 | "sha2 0.9.9", 2816 | ] 2817 | 2818 | [[package]] 2819 | name = "sct" 2820 | version = "0.6.1" 2821 | source = "registry+https://github.com/rust-lang/crates.io-index" 2822 | checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" 2823 | dependencies = [ 2824 | "ring", 2825 | "untrusted", 2826 | ] 2827 | 2828 | [[package]] 2829 | name = "sct" 2830 | version = "0.7.0" 2831 | source = "registry+https://github.com/rust-lang/crates.io-index" 2832 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 2833 | dependencies = [ 2834 | "ring", 2835 | "untrusted", 2836 | ] 2837 | 2838 | [[package]] 2839 | name = "sec1" 2840 | version = "0.3.0" 2841 | source = "registry+https://github.com/rust-lang/crates.io-index" 2842 | checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" 2843 | dependencies = [ 2844 | "base16ct", 2845 | "der 0.6.1", 2846 | "generic-array 0.14.6", 2847 | "pkcs8", 2848 | "subtle", 2849 | "zeroize", 2850 | ] 2851 | 2852 | [[package]] 2853 | name = "secp256k1" 2854 | version = "0.24.2" 2855 | source = "registry+https://github.com/rust-lang/crates.io-index" 2856 | checksum = "d9512ffd81e3a3503ed401f79c33168b9148c75038956039166cd750eaa037c3" 2857 | dependencies = [ 2858 | "rand", 2859 | "secp256k1-sys", 2860 | ] 2861 | 2862 | [[package]] 2863 | name = "secp256k1-sys" 2864 | version = "0.6.1" 2865 | source = "registry+https://github.com/rust-lang/crates.io-index" 2866 | checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" 2867 | dependencies = [ 2868 | "cc", 2869 | ] 2870 | 2871 | [[package]] 2872 | name = "secrecy" 2873 | version = "0.8.0" 2874 | source = "registry+https://github.com/rust-lang/crates.io-index" 2875 | checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" 2876 | dependencies = [ 2877 | "zeroize", 2878 | ] 2879 | 2880 | [[package]] 2881 | name = "security-framework" 2882 | version = "2.7.0" 2883 | source = "registry+https://github.com/rust-lang/crates.io-index" 2884 | checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" 2885 | dependencies = [ 2886 | "bitflags", 2887 | "core-foundation", 2888 | "core-foundation-sys", 2889 | "libc", 2890 | "security-framework-sys", 2891 | ] 2892 | 2893 | [[package]] 2894 | name = "security-framework-sys" 2895 | version = "2.6.1" 2896 | source = "registry+https://github.com/rust-lang/crates.io-index" 2897 | checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" 2898 | dependencies = [ 2899 | "core-foundation-sys", 2900 | "libc", 2901 | ] 2902 | 2903 | [[package]] 2904 | name = "semver" 2905 | version = "1.0.16" 2906 | source = "registry+https://github.com/rust-lang/crates.io-index" 2907 | checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" 2908 | 2909 | [[package]] 2910 | name = "serde" 2911 | version = "1.0.151" 2912 | source = "registry+https://github.com/rust-lang/crates.io-index" 2913 | checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0" 2914 | dependencies = [ 2915 | "serde_derive", 2916 | ] 2917 | 2918 | [[package]] 2919 | name = "serde_derive" 2920 | version = "1.0.151" 2921 | source = "registry+https://github.com/rust-lang/crates.io-index" 2922 | checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8" 2923 | dependencies = [ 2924 | "proc-macro2", 2925 | "quote", 2926 | "syn", 2927 | ] 2928 | 2929 | [[package]] 2930 | name = "serde_json" 2931 | version = "1.0.91" 2932 | source = "registry+https://github.com/rust-lang/crates.io-index" 2933 | checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" 2934 | dependencies = [ 2935 | "itoa", 2936 | "ryu", 2937 | "serde", 2938 | ] 2939 | 2940 | [[package]] 2941 | name = "serde_urlencoded" 2942 | version = "0.7.1" 2943 | source = "registry+https://github.com/rust-lang/crates.io-index" 2944 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2945 | dependencies = [ 2946 | "form_urlencoded", 2947 | "itoa", 2948 | "ryu", 2949 | "serde", 2950 | ] 2951 | 2952 | [[package]] 2953 | name = "serde_with" 2954 | version = "1.14.0" 2955 | source = "registry+https://github.com/rust-lang/crates.io-index" 2956 | checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" 2957 | dependencies = [ 2958 | "serde", 2959 | "serde_json", 2960 | "serde_with_macros", 2961 | ] 2962 | 2963 | [[package]] 2964 | name = "serde_with_macros" 2965 | version = "1.5.2" 2966 | source = "registry+https://github.com/rust-lang/crates.io-index" 2967 | checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" 2968 | dependencies = [ 2969 | "darling 0.13.4", 2970 | "proc-macro2", 2971 | "quote", 2972 | "syn", 2973 | ] 2974 | 2975 | [[package]] 2976 | name = "sha2" 2977 | version = "0.8.2" 2978 | source = "registry+https://github.com/rust-lang/crates.io-index" 2979 | checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" 2980 | dependencies = [ 2981 | "block-buffer 0.7.3", 2982 | "digest 0.8.1", 2983 | "fake-simd", 2984 | "opaque-debug 0.2.3", 2985 | ] 2986 | 2987 | [[package]] 2988 | name = "sha2" 2989 | version = "0.9.9" 2990 | source = "registry+https://github.com/rust-lang/crates.io-index" 2991 | checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" 2992 | dependencies = [ 2993 | "block-buffer 0.9.0", 2994 | "cfg-if", 2995 | "cpufeatures", 2996 | "digest 0.9.0", 2997 | "opaque-debug 0.3.0", 2998 | ] 2999 | 3000 | [[package]] 3001 | name = "sha2" 3002 | version = "0.10.6" 3003 | source = "registry+https://github.com/rust-lang/crates.io-index" 3004 | checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" 3005 | dependencies = [ 3006 | "cfg-if", 3007 | "cpufeatures", 3008 | "digest 0.10.6", 3009 | ] 3010 | 3011 | [[package]] 3012 | name = "sha3" 3013 | version = "0.9.1" 3014 | source = "registry+https://github.com/rust-lang/crates.io-index" 3015 | checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" 3016 | dependencies = [ 3017 | "block-buffer 0.9.0", 3018 | "digest 0.9.0", 3019 | "keccak", 3020 | "opaque-debug 0.3.0", 3021 | ] 3022 | 3023 | [[package]] 3024 | name = "sha3" 3025 | version = "0.10.6" 3026 | source = "registry+https://github.com/rust-lang/crates.io-index" 3027 | checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" 3028 | dependencies = [ 3029 | "digest 0.10.6", 3030 | "keccak", 3031 | ] 3032 | 3033 | [[package]] 3034 | name = "sharded-slab" 3035 | version = "0.1.4" 3036 | source = "registry+https://github.com/rust-lang/crates.io-index" 3037 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 3038 | dependencies = [ 3039 | "lazy_static", 3040 | ] 3041 | 3042 | [[package]] 3043 | name = "signal-hook-registry" 3044 | version = "1.4.0" 3045 | source = "registry+https://github.com/rust-lang/crates.io-index" 3046 | checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" 3047 | dependencies = [ 3048 | "libc", 3049 | ] 3050 | 3051 | [[package]] 3052 | name = "signature" 3053 | version = "1.6.4" 3054 | source = "registry+https://github.com/rust-lang/crates.io-index" 3055 | checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" 3056 | dependencies = [ 3057 | "digest 0.10.6", 3058 | "rand_core", 3059 | ] 3060 | 3061 | [[package]] 3062 | name = "slab" 3063 | version = "0.4.7" 3064 | source = "registry+https://github.com/rust-lang/crates.io-index" 3065 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 3066 | dependencies = [ 3067 | "autocfg", 3068 | ] 3069 | 3070 | [[package]] 3071 | name = "smallvec" 3072 | version = "1.10.0" 3073 | source = "registry+https://github.com/rust-lang/crates.io-index" 3074 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 3075 | 3076 | [[package]] 3077 | name = "socket2" 3078 | version = "0.4.7" 3079 | source = "registry+https://github.com/rust-lang/crates.io-index" 3080 | checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" 3081 | dependencies = [ 3082 | "libc", 3083 | "winapi", 3084 | ] 3085 | 3086 | [[package]] 3087 | name = "spin" 3088 | version = "0.5.2" 3089 | source = "registry+https://github.com/rust-lang/crates.io-index" 3090 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 3091 | 3092 | [[package]] 3093 | name = "spin" 3094 | version = "0.9.4" 3095 | source = "registry+https://github.com/rust-lang/crates.io-index" 3096 | checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" 3097 | 3098 | [[package]] 3099 | name = "spki" 3100 | version = "0.6.0" 3101 | source = "registry+https://github.com/rust-lang/crates.io-index" 3102 | checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" 3103 | dependencies = [ 3104 | "base64ct", 3105 | "der 0.6.1", 3106 | ] 3107 | 3108 | [[package]] 3109 | name = "static_assertions" 3110 | version = "1.1.0" 3111 | source = "registry+https://github.com/rust-lang/crates.io-index" 3112 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3113 | 3114 | [[package]] 3115 | name = "strsim" 3116 | version = "0.10.0" 3117 | source = "registry+https://github.com/rust-lang/crates.io-index" 3118 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 3119 | 3120 | [[package]] 3121 | name = "strum" 3122 | version = "0.21.0" 3123 | source = "registry+https://github.com/rust-lang/crates.io-index" 3124 | checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" 3125 | 3126 | [[package]] 3127 | name = "strum" 3128 | version = "0.24.1" 3129 | source = "registry+https://github.com/rust-lang/crates.io-index" 3130 | checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" 3131 | 3132 | [[package]] 3133 | name = "strum_macros" 3134 | version = "0.21.1" 3135 | source = "registry+https://github.com/rust-lang/crates.io-index" 3136 | checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" 3137 | dependencies = [ 3138 | "heck 0.3.3", 3139 | "proc-macro2", 3140 | "quote", 3141 | "syn", 3142 | ] 3143 | 3144 | [[package]] 3145 | name = "strum_macros" 3146 | version = "0.24.3" 3147 | source = "registry+https://github.com/rust-lang/crates.io-index" 3148 | checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" 3149 | dependencies = [ 3150 | "heck 0.4.0", 3151 | "proc-macro2", 3152 | "quote", 3153 | "rustversion", 3154 | "syn", 3155 | ] 3156 | 3157 | [[package]] 3158 | name = "subtle" 3159 | version = "2.4.1" 3160 | source = "registry+https://github.com/rust-lang/crates.io-index" 3161 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" 3162 | 3163 | [[package]] 3164 | name = "syn" 3165 | version = "1.0.107" 3166 | source = "registry+https://github.com/rust-lang/crates.io-index" 3167 | checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" 3168 | dependencies = [ 3169 | "proc-macro2", 3170 | "quote", 3171 | "unicode-ident", 3172 | ] 3173 | 3174 | [[package]] 3175 | name = "sync_wrapper" 3176 | version = "0.1.1" 3177 | source = "registry+https://github.com/rust-lang/crates.io-index" 3178 | checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" 3179 | 3180 | [[package]] 3181 | name = "synstructure" 3182 | version = "0.12.6" 3183 | source = "registry+https://github.com/rust-lang/crates.io-index" 3184 | checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" 3185 | dependencies = [ 3186 | "proc-macro2", 3187 | "quote", 3188 | "syn", 3189 | "unicode-xid", 3190 | ] 3191 | 3192 | [[package]] 3193 | name = "tai64" 3194 | version = "4.0.0" 3195 | source = "registry+https://github.com/rust-lang/crates.io-index" 3196 | checksum = "ed7401421025f4132e6c1f7af5e7f8287383969f36e6628016cd509b8d3da9dc" 3197 | dependencies = [ 3198 | "serde", 3199 | ] 3200 | 3201 | [[package]] 3202 | name = "tap" 3203 | version = "1.0.1" 3204 | source = "registry+https://github.com/rust-lang/crates.io-index" 3205 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 3206 | 3207 | [[package]] 3208 | name = "tempfile" 3209 | version = "3.3.0" 3210 | source = "registry+https://github.com/rust-lang/crates.io-index" 3211 | checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" 3212 | dependencies = [ 3213 | "cfg-if", 3214 | "fastrand", 3215 | "libc", 3216 | "redox_syscall", 3217 | "remove_dir_all", 3218 | "winapi", 3219 | ] 3220 | 3221 | [[package]] 3222 | name = "termcolor" 3223 | version = "1.1.3" 3224 | source = "registry+https://github.com/rust-lang/crates.io-index" 3225 | checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" 3226 | dependencies = [ 3227 | "winapi-util", 3228 | ] 3229 | 3230 | [[package]] 3231 | name = "textwrap" 3232 | version = "0.16.0" 3233 | source = "registry+https://github.com/rust-lang/crates.io-index" 3234 | checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" 3235 | 3236 | [[package]] 3237 | name = "thiserror" 3238 | version = "1.0.38" 3239 | source = "registry+https://github.com/rust-lang/crates.io-index" 3240 | checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" 3241 | dependencies = [ 3242 | "thiserror-impl", 3243 | ] 3244 | 3245 | [[package]] 3246 | name = "thiserror-impl" 3247 | version = "1.0.38" 3248 | source = "registry+https://github.com/rust-lang/crates.io-index" 3249 | checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" 3250 | dependencies = [ 3251 | "proc-macro2", 3252 | "quote", 3253 | "syn", 3254 | ] 3255 | 3256 | [[package]] 3257 | name = "thread_local" 3258 | version = "1.1.4" 3259 | source = "registry+https://github.com/rust-lang/crates.io-index" 3260 | checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" 3261 | dependencies = [ 3262 | "once_cell", 3263 | ] 3264 | 3265 | [[package]] 3266 | name = "time" 3267 | version = "0.1.45" 3268 | source = "registry+https://github.com/rust-lang/crates.io-index" 3269 | checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" 3270 | dependencies = [ 3271 | "libc", 3272 | "wasi 0.10.0+wasi-snapshot-preview1", 3273 | "winapi", 3274 | ] 3275 | 3276 | [[package]] 3277 | name = "tinyvec" 3278 | version = "1.6.0" 3279 | source = "registry+https://github.com/rust-lang/crates.io-index" 3280 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 3281 | dependencies = [ 3282 | "tinyvec_macros", 3283 | ] 3284 | 3285 | [[package]] 3286 | name = "tinyvec_macros" 3287 | version = "0.1.0" 3288 | source = "registry+https://github.com/rust-lang/crates.io-index" 3289 | checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" 3290 | 3291 | [[package]] 3292 | name = "tokio" 3293 | version = "1.23.0" 3294 | source = "registry+https://github.com/rust-lang/crates.io-index" 3295 | checksum = "eab6d665857cc6ca78d6e80303a02cea7a7851e85dfbd77cbdc09bd129f1ef46" 3296 | dependencies = [ 3297 | "autocfg", 3298 | "bytes", 3299 | "libc", 3300 | "memchr", 3301 | "mio", 3302 | "num_cpus", 3303 | "parking_lot", 3304 | "pin-project-lite", 3305 | "signal-hook-registry", 3306 | "socket2", 3307 | "tokio-macros", 3308 | "windows-sys 0.42.0", 3309 | ] 3310 | 3311 | [[package]] 3312 | name = "tokio-io-timeout" 3313 | version = "1.2.0" 3314 | source = "registry+https://github.com/rust-lang/crates.io-index" 3315 | checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" 3316 | dependencies = [ 3317 | "pin-project-lite", 3318 | "tokio", 3319 | ] 3320 | 3321 | [[package]] 3322 | name = "tokio-macros" 3323 | version = "1.8.2" 3324 | source = "registry+https://github.com/rust-lang/crates.io-index" 3325 | checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" 3326 | dependencies = [ 3327 | "proc-macro2", 3328 | "quote", 3329 | "syn", 3330 | ] 3331 | 3332 | [[package]] 3333 | name = "tokio-rustls" 3334 | version = "0.22.0" 3335 | source = "registry+https://github.com/rust-lang/crates.io-index" 3336 | checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" 3337 | dependencies = [ 3338 | "rustls 0.19.1", 3339 | "tokio", 3340 | "webpki 0.21.4", 3341 | ] 3342 | 3343 | [[package]] 3344 | name = "tokio-rustls" 3345 | version = "0.23.4" 3346 | source = "registry+https://github.com/rust-lang/crates.io-index" 3347 | checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" 3348 | dependencies = [ 3349 | "rustls 0.20.7", 3350 | "tokio", 3351 | "webpki 0.22.0", 3352 | ] 3353 | 3354 | [[package]] 3355 | name = "tokio-stream" 3356 | version = "0.1.11" 3357 | source = "registry+https://github.com/rust-lang/crates.io-index" 3358 | checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" 3359 | dependencies = [ 3360 | "futures-core", 3361 | "pin-project-lite", 3362 | "tokio", 3363 | "tokio-util", 3364 | ] 3365 | 3366 | [[package]] 3367 | name = "tokio-util" 3368 | version = "0.7.4" 3369 | source = "registry+https://github.com/rust-lang/crates.io-index" 3370 | checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" 3371 | dependencies = [ 3372 | "bytes", 3373 | "futures-core", 3374 | "futures-sink", 3375 | "pin-project-lite", 3376 | "tokio", 3377 | "tracing", 3378 | ] 3379 | 3380 | [[package]] 3381 | name = "toml" 3382 | version = "0.5.10" 3383 | source = "registry+https://github.com/rust-lang/crates.io-index" 3384 | checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" 3385 | dependencies = [ 3386 | "serde", 3387 | ] 3388 | 3389 | [[package]] 3390 | name = "tower" 3391 | version = "0.4.13" 3392 | source = "registry+https://github.com/rust-lang/crates.io-index" 3393 | checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" 3394 | dependencies = [ 3395 | "futures-core", 3396 | "futures-util", 3397 | "pin-project", 3398 | "pin-project-lite", 3399 | "tokio", 3400 | "tower-layer", 3401 | "tower-service", 3402 | "tracing", 3403 | ] 3404 | 3405 | [[package]] 3406 | name = "tower-http" 3407 | version = "0.3.5" 3408 | source = "registry+https://github.com/rust-lang/crates.io-index" 3409 | checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" 3410 | dependencies = [ 3411 | "bitflags", 3412 | "bytes", 3413 | "futures-core", 3414 | "futures-util", 3415 | "http", 3416 | "http-body", 3417 | "http-range-header", 3418 | "pin-project-lite", 3419 | "tower", 3420 | "tower-layer", 3421 | "tower-service", 3422 | "tracing", 3423 | ] 3424 | 3425 | [[package]] 3426 | name = "tower-layer" 3427 | version = "0.3.2" 3428 | source = "registry+https://github.com/rust-lang/crates.io-index" 3429 | checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" 3430 | 3431 | [[package]] 3432 | name = "tower-service" 3433 | version = "0.3.2" 3434 | source = "registry+https://github.com/rust-lang/crates.io-index" 3435 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 3436 | 3437 | [[package]] 3438 | name = "tracing" 3439 | version = "0.1.37" 3440 | source = "registry+https://github.com/rust-lang/crates.io-index" 3441 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 3442 | dependencies = [ 3443 | "cfg-if", 3444 | "log", 3445 | "pin-project-lite", 3446 | "tracing-attributes", 3447 | "tracing-core", 3448 | ] 3449 | 3450 | [[package]] 3451 | name = "tracing-attributes" 3452 | version = "0.1.23" 3453 | source = "registry+https://github.com/rust-lang/crates.io-index" 3454 | checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" 3455 | dependencies = [ 3456 | "proc-macro2", 3457 | "quote", 3458 | "syn", 3459 | ] 3460 | 3461 | [[package]] 3462 | name = "tracing-core" 3463 | version = "0.1.30" 3464 | source = "registry+https://github.com/rust-lang/crates.io-index" 3465 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 3466 | dependencies = [ 3467 | "once_cell", 3468 | "valuable", 3469 | ] 3470 | 3471 | [[package]] 3472 | name = "tracing-futures" 3473 | version = "0.2.5" 3474 | source = "registry+https://github.com/rust-lang/crates.io-index" 3475 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 3476 | dependencies = [ 3477 | "futures", 3478 | "futures-task", 3479 | "pin-project", 3480 | "tracing", 3481 | ] 3482 | 3483 | [[package]] 3484 | name = "tracing-log" 3485 | version = "0.1.3" 3486 | source = "registry+https://github.com/rust-lang/crates.io-index" 3487 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 3488 | dependencies = [ 3489 | "lazy_static", 3490 | "log", 3491 | "tracing-core", 3492 | ] 3493 | 3494 | [[package]] 3495 | name = "tracing-serde" 3496 | version = "0.1.3" 3497 | source = "registry+https://github.com/rust-lang/crates.io-index" 3498 | checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" 3499 | dependencies = [ 3500 | "serde", 3501 | "tracing-core", 3502 | ] 3503 | 3504 | [[package]] 3505 | name = "tracing-subscriber" 3506 | version = "0.3.16" 3507 | source = "registry+https://github.com/rust-lang/crates.io-index" 3508 | checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" 3509 | dependencies = [ 3510 | "matchers", 3511 | "nu-ansi-term", 3512 | "once_cell", 3513 | "regex", 3514 | "serde", 3515 | "serde_json", 3516 | "sharded-slab", 3517 | "smallvec", 3518 | "thread_local", 3519 | "tracing", 3520 | "tracing-core", 3521 | "tracing-log", 3522 | "tracing-serde", 3523 | ] 3524 | 3525 | [[package]] 3526 | name = "try-lock" 3527 | version = "0.2.3" 3528 | source = "registry+https://github.com/rust-lang/crates.io-index" 3529 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" 3530 | 3531 | [[package]] 3532 | name = "typenum" 3533 | version = "1.16.0" 3534 | source = "registry+https://github.com/rust-lang/crates.io-index" 3535 | checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" 3536 | 3537 | [[package]] 3538 | name = "ucd-trie" 3539 | version = "0.1.5" 3540 | source = "registry+https://github.com/rust-lang/crates.io-index" 3541 | checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" 3542 | 3543 | [[package]] 3544 | name = "uint" 3545 | version = "0.9.5" 3546 | source = "registry+https://github.com/rust-lang/crates.io-index" 3547 | checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" 3548 | dependencies = [ 3549 | "byteorder", 3550 | "crunchy", 3551 | "hex", 3552 | "static_assertions", 3553 | ] 3554 | 3555 | [[package]] 3556 | name = "unicode-bidi" 3557 | version = "0.3.8" 3558 | source = "registry+https://github.com/rust-lang/crates.io-index" 3559 | checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" 3560 | 3561 | [[package]] 3562 | name = "unicode-ident" 3563 | version = "1.0.6" 3564 | source = "registry+https://github.com/rust-lang/crates.io-index" 3565 | checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" 3566 | 3567 | [[package]] 3568 | name = "unicode-normalization" 3569 | version = "0.1.22" 3570 | source = "registry+https://github.com/rust-lang/crates.io-index" 3571 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 3572 | dependencies = [ 3573 | "tinyvec", 3574 | ] 3575 | 3576 | [[package]] 3577 | name = "unicode-segmentation" 3578 | version = "1.10.0" 3579 | source = "registry+https://github.com/rust-lang/crates.io-index" 3580 | checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" 3581 | 3582 | [[package]] 3583 | name = "unicode-width" 3584 | version = "0.1.10" 3585 | source = "registry+https://github.com/rust-lang/crates.io-index" 3586 | checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" 3587 | 3588 | [[package]] 3589 | name = "unicode-xid" 3590 | version = "0.2.4" 3591 | source = "registry+https://github.com/rust-lang/crates.io-index" 3592 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 3593 | 3594 | [[package]] 3595 | name = "unreachable" 3596 | version = "1.0.0" 3597 | source = "registry+https://github.com/rust-lang/crates.io-index" 3598 | checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" 3599 | dependencies = [ 3600 | "void", 3601 | ] 3602 | 3603 | [[package]] 3604 | name = "untrusted" 3605 | version = "0.7.1" 3606 | source = "registry+https://github.com/rust-lang/crates.io-index" 3607 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 3608 | 3609 | [[package]] 3610 | name = "url" 3611 | version = "2.3.1" 3612 | source = "registry+https://github.com/rust-lang/crates.io-index" 3613 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 3614 | dependencies = [ 3615 | "form_urlencoded", 3616 | "idna", 3617 | "percent-encoding", 3618 | ] 3619 | 3620 | [[package]] 3621 | name = "uuid" 3622 | version = "0.8.2" 3623 | source = "registry+https://github.com/rust-lang/crates.io-index" 3624 | checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" 3625 | dependencies = [ 3626 | "getrandom", 3627 | "serde", 3628 | ] 3629 | 3630 | [[package]] 3631 | name = "uuid" 3632 | version = "1.2.2" 3633 | source = "registry+https://github.com/rust-lang/crates.io-index" 3634 | checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c" 3635 | dependencies = [ 3636 | "getrandom", 3637 | ] 3638 | 3639 | [[package]] 3640 | name = "valuable" 3641 | version = "0.1.0" 3642 | source = "registry+https://github.com/rust-lang/crates.io-index" 3643 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 3644 | 3645 | [[package]] 3646 | name = "version_check" 3647 | version = "0.9.4" 3648 | source = "registry+https://github.com/rust-lang/crates.io-index" 3649 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 3650 | 3651 | [[package]] 3652 | name = "void" 3653 | version = "1.0.2" 3654 | source = "registry+https://github.com/rust-lang/crates.io-index" 3655 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 3656 | 3657 | [[package]] 3658 | name = "want" 3659 | version = "0.3.0" 3660 | source = "registry+https://github.com/rust-lang/crates.io-index" 3661 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 3662 | dependencies = [ 3663 | "log", 3664 | "try-lock", 3665 | ] 3666 | 3667 | [[package]] 3668 | name = "wasi" 3669 | version = "0.10.0+wasi-snapshot-preview1" 3670 | source = "registry+https://github.com/rust-lang/crates.io-index" 3671 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" 3672 | 3673 | [[package]] 3674 | name = "wasi" 3675 | version = "0.11.0+wasi-snapshot-preview1" 3676 | source = "registry+https://github.com/rust-lang/crates.io-index" 3677 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 3678 | 3679 | [[package]] 3680 | name = "wasm-bindgen" 3681 | version = "0.2.83" 3682 | source = "registry+https://github.com/rust-lang/crates.io-index" 3683 | checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" 3684 | dependencies = [ 3685 | "cfg-if", 3686 | "wasm-bindgen-macro", 3687 | ] 3688 | 3689 | [[package]] 3690 | name = "wasm-bindgen-backend" 3691 | version = "0.2.83" 3692 | source = "registry+https://github.com/rust-lang/crates.io-index" 3693 | checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" 3694 | dependencies = [ 3695 | "bumpalo", 3696 | "log", 3697 | "once_cell", 3698 | "proc-macro2", 3699 | "quote", 3700 | "syn", 3701 | "wasm-bindgen-shared", 3702 | ] 3703 | 3704 | [[package]] 3705 | name = "wasm-bindgen-futures" 3706 | version = "0.4.33" 3707 | source = "registry+https://github.com/rust-lang/crates.io-index" 3708 | checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" 3709 | dependencies = [ 3710 | "cfg-if", 3711 | "js-sys", 3712 | "wasm-bindgen", 3713 | "web-sys", 3714 | ] 3715 | 3716 | [[package]] 3717 | name = "wasm-bindgen-macro" 3718 | version = "0.2.83" 3719 | source = "registry+https://github.com/rust-lang/crates.io-index" 3720 | checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" 3721 | dependencies = [ 3722 | "quote", 3723 | "wasm-bindgen-macro-support", 3724 | ] 3725 | 3726 | [[package]] 3727 | name = "wasm-bindgen-macro-support" 3728 | version = "0.2.83" 3729 | source = "registry+https://github.com/rust-lang/crates.io-index" 3730 | checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" 3731 | dependencies = [ 3732 | "proc-macro2", 3733 | "quote", 3734 | "syn", 3735 | "wasm-bindgen-backend", 3736 | "wasm-bindgen-shared", 3737 | ] 3738 | 3739 | [[package]] 3740 | name = "wasm-bindgen-shared" 3741 | version = "0.2.83" 3742 | source = "registry+https://github.com/rust-lang/crates.io-index" 3743 | checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" 3744 | 3745 | [[package]] 3746 | name = "web-sys" 3747 | version = "0.3.60" 3748 | source = "registry+https://github.com/rust-lang/crates.io-index" 3749 | checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" 3750 | dependencies = [ 3751 | "js-sys", 3752 | "wasm-bindgen", 3753 | ] 3754 | 3755 | [[package]] 3756 | name = "webpki" 3757 | version = "0.21.4" 3758 | source = "registry+https://github.com/rust-lang/crates.io-index" 3759 | checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" 3760 | dependencies = [ 3761 | "ring", 3762 | "untrusted", 3763 | ] 3764 | 3765 | [[package]] 3766 | name = "webpki" 3767 | version = "0.22.0" 3768 | source = "registry+https://github.com/rust-lang/crates.io-index" 3769 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 3770 | dependencies = [ 3771 | "ring", 3772 | "untrusted", 3773 | ] 3774 | 3775 | [[package]] 3776 | name = "webpki-roots" 3777 | version = "0.21.1" 3778 | source = "registry+https://github.com/rust-lang/crates.io-index" 3779 | checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" 3780 | dependencies = [ 3781 | "webpki 0.21.4", 3782 | ] 3783 | 3784 | [[package]] 3785 | name = "webpki-roots" 3786 | version = "0.22.6" 3787 | source = "registry+https://github.com/rust-lang/crates.io-index" 3788 | checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" 3789 | dependencies = [ 3790 | "webpki 0.22.0", 3791 | ] 3792 | 3793 | [[package]] 3794 | name = "which" 3795 | version = "4.3.0" 3796 | source = "registry+https://github.com/rust-lang/crates.io-index" 3797 | checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" 3798 | dependencies = [ 3799 | "either", 3800 | "libc", 3801 | "once_cell", 3802 | ] 3803 | 3804 | [[package]] 3805 | name = "winapi" 3806 | version = "0.3.9" 3807 | source = "registry+https://github.com/rust-lang/crates.io-index" 3808 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3809 | dependencies = [ 3810 | "winapi-i686-pc-windows-gnu", 3811 | "winapi-x86_64-pc-windows-gnu", 3812 | ] 3813 | 3814 | [[package]] 3815 | name = "winapi-i686-pc-windows-gnu" 3816 | version = "0.4.0" 3817 | source = "registry+https://github.com/rust-lang/crates.io-index" 3818 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3819 | 3820 | [[package]] 3821 | name = "winapi-util" 3822 | version = "0.1.5" 3823 | source = "registry+https://github.com/rust-lang/crates.io-index" 3824 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 3825 | dependencies = [ 3826 | "winapi", 3827 | ] 3828 | 3829 | [[package]] 3830 | name = "winapi-x86_64-pc-windows-gnu" 3831 | version = "0.4.0" 3832 | source = "registry+https://github.com/rust-lang/crates.io-index" 3833 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3834 | 3835 | [[package]] 3836 | name = "windows-sys" 3837 | version = "0.36.1" 3838 | source = "registry+https://github.com/rust-lang/crates.io-index" 3839 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 3840 | dependencies = [ 3841 | "windows_aarch64_msvc 0.36.1", 3842 | "windows_i686_gnu 0.36.1", 3843 | "windows_i686_msvc 0.36.1", 3844 | "windows_x86_64_gnu 0.36.1", 3845 | "windows_x86_64_msvc 0.36.1", 3846 | ] 3847 | 3848 | [[package]] 3849 | name = "windows-sys" 3850 | version = "0.42.0" 3851 | source = "registry+https://github.com/rust-lang/crates.io-index" 3852 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 3853 | dependencies = [ 3854 | "windows_aarch64_gnullvm", 3855 | "windows_aarch64_msvc 0.42.0", 3856 | "windows_i686_gnu 0.42.0", 3857 | "windows_i686_msvc 0.42.0", 3858 | "windows_x86_64_gnu 0.42.0", 3859 | "windows_x86_64_gnullvm", 3860 | "windows_x86_64_msvc 0.42.0", 3861 | ] 3862 | 3863 | [[package]] 3864 | name = "windows_aarch64_gnullvm" 3865 | version = "0.42.0" 3866 | source = "registry+https://github.com/rust-lang/crates.io-index" 3867 | checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" 3868 | 3869 | [[package]] 3870 | name = "windows_aarch64_msvc" 3871 | version = "0.36.1" 3872 | source = "registry+https://github.com/rust-lang/crates.io-index" 3873 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 3874 | 3875 | [[package]] 3876 | name = "windows_aarch64_msvc" 3877 | version = "0.42.0" 3878 | source = "registry+https://github.com/rust-lang/crates.io-index" 3879 | checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" 3880 | 3881 | [[package]] 3882 | name = "windows_i686_gnu" 3883 | version = "0.36.1" 3884 | source = "registry+https://github.com/rust-lang/crates.io-index" 3885 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 3886 | 3887 | [[package]] 3888 | name = "windows_i686_gnu" 3889 | version = "0.42.0" 3890 | source = "registry+https://github.com/rust-lang/crates.io-index" 3891 | checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" 3892 | 3893 | [[package]] 3894 | name = "windows_i686_msvc" 3895 | version = "0.36.1" 3896 | source = "registry+https://github.com/rust-lang/crates.io-index" 3897 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 3898 | 3899 | [[package]] 3900 | name = "windows_i686_msvc" 3901 | version = "0.42.0" 3902 | source = "registry+https://github.com/rust-lang/crates.io-index" 3903 | checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" 3904 | 3905 | [[package]] 3906 | name = "windows_x86_64_gnu" 3907 | version = "0.36.1" 3908 | source = "registry+https://github.com/rust-lang/crates.io-index" 3909 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 3910 | 3911 | [[package]] 3912 | name = "windows_x86_64_gnu" 3913 | version = "0.42.0" 3914 | source = "registry+https://github.com/rust-lang/crates.io-index" 3915 | checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" 3916 | 3917 | [[package]] 3918 | name = "windows_x86_64_gnullvm" 3919 | version = "0.42.0" 3920 | source = "registry+https://github.com/rust-lang/crates.io-index" 3921 | checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" 3922 | 3923 | [[package]] 3924 | name = "windows_x86_64_msvc" 3925 | version = "0.36.1" 3926 | source = "registry+https://github.com/rust-lang/crates.io-index" 3927 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 3928 | 3929 | [[package]] 3930 | name = "windows_x86_64_msvc" 3931 | version = "0.42.0" 3932 | source = "registry+https://github.com/rust-lang/crates.io-index" 3933 | checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" 3934 | 3935 | [[package]] 3936 | name = "winreg" 3937 | version = "0.10.1" 3938 | source = "registry+https://github.com/rust-lang/crates.io-index" 3939 | checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" 3940 | dependencies = [ 3941 | "winapi", 3942 | ] 3943 | 3944 | [[package]] 3945 | name = "wyz" 3946 | version = "0.5.1" 3947 | source = "registry+https://github.com/rust-lang/crates.io-index" 3948 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 3949 | dependencies = [ 3950 | "tap", 3951 | ] 3952 | 3953 | [[package]] 3954 | name = "zeroize" 3955 | version = "1.5.7" 3956 | source = "registry+https://github.com/rust-lang/crates.io-index" 3957 | checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" 3958 | dependencies = [ 3959 | "zeroize_derive", 3960 | ] 3961 | 3962 | [[package]] 3963 | name = "zeroize_derive" 3964 | version = "1.3.3" 3965 | source = "registry+https://github.com/rust-lang/crates.io-index" 3966 | checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" 3967 | dependencies = [ 3968 | "proc-macro2", 3969 | "quote", 3970 | "syn", 3971 | "synstructure", 3972 | ] 3973 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "limit_orders" 3 | description = "A cargo-generate template for Rust + Sway integration testing." 4 | version = "0.1.0" 5 | edition = "2021" 6 | authors = ["alexey "] 7 | license = "Apache-2.0" 8 | 9 | [dev-dependencies] 10 | fuels = { version = "0.32", 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 | -------------------------------------------------------------------------------- /Forc.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = 'core' 3 | source = 'path+from-root-AE2967028D5567DA' 4 | 5 | [[package]] 6 | name = 'limit_orders' 7 | source = 'member' 8 | dependencies = ['std'] 9 | 10 | [[package]] 11 | name = 'std' 12 | source = 'git+https://github.com/fuellabs/sway?tag=v0.31.1#c32b0759d25c0b515cbf535f9fb9b8e6fda38ff2' 13 | dependencies = ['core'] 14 | -------------------------------------------------------------------------------- /Forc.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | authors = ["Alexey"] 3 | entry = "main.sw" 4 | license = "Apache-2.0" 5 | name = "limit_orders" 6 | 7 | [dependencies] 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Limit Order Protocol Smart Contract 2 | 3 | ## Version warning 4 | The master branch contains the latest work-in-progress version of limit orders. It hasn't been audited and may contain severe security issues or may not work at all. 5 | 6 | ## About 7 | 8 | This repository contains a smart contract for Fuel blockchain which allows users to place limit orders, that later could be filled on-chain. Limit order itself is a data structure created off-chain. 9 | 10 | -------------------------------------------------------------------------------- /src/main.sw: -------------------------------------------------------------------------------- 1 | contract; 2 | /* 3 | ███████╗██╗ ██╗ █████╗ ██╗ ██╗ ██████╗ █████╗ ███╗ ██╗ ██████╗ 4 | ██╔════╝██║ ██║██╔══██╗╚██╗ ██╔╝ ██╔════╝ ██╔══██╗████╗ ██║██╔════╝ 5 | ███████╗██║ █╗ ██║███████║ ╚████╔╝ ██║ ███╗███████║██╔██╗ ██║██║ ███╗ 6 | ╚════██║██║███╗██║██╔══██║ ╚██╔╝ ██║ ██║██╔══██║██║╚██╗██║██║ ██║ 7 | ███████║╚███╔███╔╝██║ ██║ ██║ ╚██████╔╝██║ ██║██║ ╚████║╚██████╔╝ 8 | ╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ 9 | */ 10 | 11 | use std::{ 12 | auth::{ 13 | AuthError, 14 | msg_sender, 15 | }, 16 | block::timestamp, 17 | call_frames::msg_asset_id, 18 | context::msg_amount, 19 | revert::require, 20 | storage::StorageVec, 21 | token::transfer_to_address, 22 | logging::log, 23 | }; 24 | 25 | abi StopLoss { 26 | #[storage(read)] 27 | fn order_by_id(id: u64) -> Order; 28 | 29 | #[storage(read, write)] 30 | fn create_order(asset1: ContractId, amount1: u64); 31 | 32 | #[storage(read, write)] 33 | fn cancel_order(id: u64); 34 | 35 | #[storage(read, write)] 36 | fn fulfill_order(id: u64); 37 | } 38 | 39 | enum Status { 40 | Active: (), 41 | Canceled: (), 42 | Completed: (), 43 | } 44 | 45 | pub struct Order { 46 | asset0: ContractId, 47 | amount0: u64, 48 | asset1: ContractId, 49 | amount1: u64, 50 | status: Status, 51 | fulfilled0: u64, 52 | fulfilled1: u64, 53 | owner: Address, 54 | id: u64, 55 | timestamp: u64, 56 | } 57 | 58 | storage { 59 | orders: StorageMap = StorageMap {}, 60 | orders_amount: u64 = 0, 61 | } 62 | 63 | fn get_sender_or_throw() -> Address{ 64 | match msg_sender().unwrap() { 65 | Identity::Address(addr) => addr, 66 | _ => revert(0), 67 | } 68 | } 69 | 70 | fn is_order_active(order: Order) -> bool{ 71 | match order.status{ 72 | Status::Active => true, 73 | _ => false, 74 | } 75 | } 76 | 77 | impl StopLoss for Contract { 78 | #[storage(read)] 79 | fn order_by_id(id: u64) -> Order { 80 | let order = storage.orders.get(id); 81 | require(id > 0 && order.id == id, "Order is not found"); 82 | order 83 | } 84 | 85 | #[storage(read, write)] 86 | fn create_order(asset1: ContractId, amount1: u64) { 87 | let asset0 = msg_asset_id(); 88 | let amount0 = msg_amount(); 89 | 90 | require(amount0 > 0 && amount1 > 0, "Amount cannot be less then 1"); 91 | 92 | let order = Order { 93 | asset0, 94 | amount0, 95 | asset1, 96 | amount1, 97 | fulfilled0: 0, 98 | fulfilled1: 0, 99 | status: Status::Active, 100 | id: storage.orders_amount + 1, 101 | timestamp: timestamp(), 102 | owner: get_sender_or_throw(), 103 | }; 104 | 105 | storage.orders_amount = order.id; 106 | storage.orders.insert(order.id, order); 107 | } 108 | 109 | #[storage(read, write)] 110 | fn cancel_order(id: u64){ 111 | let mut order = storage.orders.get(id); 112 | 113 | require(id > 0 && order.id == id, "Order is not found"); 114 | require(get_sender_or_throw() == order.owner, "Access denied"); 115 | require(is_order_active(order), "The order isn't active"); 116 | 117 | order.status = Status::Canceled; 118 | storage.orders.insert(id, order); 119 | transfer_to_address(order.amount0 - order.fulfilled0, order.asset0, order.owner); 120 | } 121 | 122 | #[storage(read, write)] 123 | fn fulfill_order(id: u64){ 124 | let mut order = storage.orders.get(id); 125 | let paymentAsset = msg_asset_id(); 126 | let paymentAmount = msg_amount(); 127 | 128 | require(id > 0 && order.id == id, "Order is not found"); 129 | require(is_order_active(order), "The order isn't active"); 130 | require(paymentAmount > 0 && paymentAsset == order.asset1, "Invalid payment"); 131 | 132 | let amount0Left = order.amount0 - order.fulfilled0; 133 | let amount1Left = order.amount1 - order.fulfilled1; 134 | let caller = get_sender_or_throw(); 135 | 136 | //If paid more than amount1 - close the order and give cashback 137 | if(paymentAmount >= amount1Left){ 138 | // Give the caller asset1 difference like cashback 139 | transfer_to_address(paymentAmount - amount1Left, order.asset1, caller); 140 | //The caller will receive asset0 how much is left 141 | transfer_to_address(amount0Left, order.asset0, caller); 142 | // The owner will receive asset1 how much is left 143 | transfer_to_address(amount1Left, order.asset1, order.owner); 144 | 145 | order.fulfilled0 = order.fulfilled0 + amount0Left; 146 | order.fulfilled1 = order.fulfilled1 + amount1Left; 147 | order.status = Status::Completed; 148 | storage.orders.insert(id, order); 149 | 150 | } 151 | //If payed less - close order partially 152 | else{ 153 | let amount0 = (order.amount0 * (paymentAmount / order.amount1)); 154 | //The owner will receive paymentAmount1 155 | transfer_to_address(paymentAmount, order.asset1, order.owner); 156 | //The caller will receive a piece of amount0 floored to integer 157 | transfer_to_address(order.amount0, order.asset0, caller); 158 | 159 | order.fulfilled0 = order.fulfilled0 + amount0; 160 | order.fulfilled1 = order.fulfilled1 + paymentAmount; 161 | storage.orders.insert(id, order); 162 | } 163 | } 164 | } 165 | -------------------------------------------------------------------------------- /tests/artefacts/usdc/debug/token_contract-abi.json: -------------------------------------------------------------------------------- 1 | { 2 | "types": [ 3 | { 4 | "typeId": 0, 5 | "type": "()", 6 | "components": [], 7 | "typeParameters": null 8 | }, 9 | { 10 | "typeId": 1, 11 | "type": "b256", 12 | "components": null, 13 | "typeParameters": null 14 | }, 15 | { 16 | "typeId": 2, 17 | "type": "enum Error", 18 | "components": [ 19 | { 20 | "name": "AddressAlreadyMint", 21 | "type": 0, 22 | "typeArguments": null 23 | }, 24 | { 25 | "name": "CannotReinitialize", 26 | "type": 0, 27 | "typeArguments": null 28 | }, 29 | { 30 | "name": "MintIsClosed", 31 | "type": 0, 32 | "typeArguments": null 33 | }, 34 | { 35 | "name": "NotOwner", 36 | "type": 0, 37 | "typeArguments": null 38 | } 39 | ], 40 | "typeParameters": null 41 | }, 42 | { 43 | "typeId": 3, 44 | "type": "str[4]", 45 | "components": null, 46 | "typeParameters": null 47 | }, 48 | { 49 | "typeId": 4, 50 | "type": "str[9]", 51 | "components": null, 52 | "typeParameters": null 53 | }, 54 | { 55 | "typeId": 5, 56 | "type": "struct Address", 57 | "components": [ 58 | { 59 | "name": "value", 60 | "type": 1, 61 | "typeArguments": null 62 | } 63 | ], 64 | "typeParameters": null 65 | }, 66 | { 67 | "typeId": 6, 68 | "type": "struct ContractId", 69 | "components": [ 70 | { 71 | "name": "value", 72 | "type": 1, 73 | "typeArguments": null 74 | } 75 | ], 76 | "typeParameters": null 77 | }, 78 | { 79 | "typeId": 7, 80 | "type": "u64", 81 | "components": null, 82 | "typeParameters": null 83 | }, 84 | { 85 | "typeId": 8, 86 | "type": "u8", 87 | "components": null, 88 | "typeParameters": null 89 | } 90 | ], 91 | "functions": [ 92 | { 93 | "inputs": [ 94 | { 95 | "name": "burn_amount", 96 | "type": 7, 97 | "typeArguments": null 98 | } 99 | ], 100 | "name": "burn_coins", 101 | "output": { 102 | "name": "", 103 | "type": 0, 104 | "typeArguments": null 105 | } 106 | }, 107 | { 108 | "inputs": [], 109 | "name": "decimals", 110 | "output": { 111 | "name": "", 112 | "type": 8, 113 | "typeArguments": null 114 | } 115 | }, 116 | { 117 | "inputs": [], 118 | "name": "get_balance", 119 | "output": { 120 | "name": "", 121 | "type": 7, 122 | "typeArguments": null 123 | } 124 | }, 125 | { 126 | "inputs": [], 127 | "name": "get_mint_amount", 128 | "output": { 129 | "name": "", 130 | "type": 7, 131 | "typeArguments": null 132 | } 133 | }, 134 | { 135 | "inputs": [ 136 | { 137 | "name": "asset_id", 138 | "type": 6, 139 | "typeArguments": null 140 | } 141 | ], 142 | "name": "get_token_balance", 143 | "output": { 144 | "name": "", 145 | "type": 7, 146 | "typeArguments": null 147 | } 148 | }, 149 | { 150 | "inputs": [ 151 | { 152 | "name": "mint_amount", 153 | "type": 7, 154 | "typeArguments": null 155 | }, 156 | { 157 | "name": "owner", 158 | "type": 5, 159 | "typeArguments": null 160 | } 161 | ], 162 | "name": "initialize", 163 | "output": { 164 | "name": "", 165 | "type": 0, 166 | "typeArguments": null 167 | } 168 | }, 169 | { 170 | "inputs": [], 171 | "name": "mint", 172 | "output": { 173 | "name": "", 174 | "type": 0, 175 | "typeArguments": null 176 | } 177 | }, 178 | { 179 | "inputs": [ 180 | { 181 | "name": "mint_amount", 182 | "type": 7, 183 | "typeArguments": null 184 | } 185 | ], 186 | "name": "mint_coins", 187 | "output": { 188 | "name": "", 189 | "type": 0, 190 | "typeArguments": null 191 | } 192 | }, 193 | { 194 | "inputs": [], 195 | "name": "name", 196 | "output": { 197 | "name": "", 198 | "type": 4, 199 | "typeArguments": null 200 | } 201 | }, 202 | { 203 | "inputs": [ 204 | { 205 | "name": "mint_amount", 206 | "type": 7, 207 | "typeArguments": null 208 | } 209 | ], 210 | "name": "set_mint_amount", 211 | "output": { 212 | "name": "", 213 | "type": 0, 214 | "typeArguments": null 215 | } 216 | }, 217 | { 218 | "inputs": [], 219 | "name": "symbol", 220 | "output": { 221 | "name": "", 222 | "type": 3, 223 | "typeArguments": null 224 | } 225 | }, 226 | { 227 | "inputs": [ 228 | { 229 | "name": "coins", 230 | "type": 7, 231 | "typeArguments": null 232 | }, 233 | { 234 | "name": "address", 235 | "type": 5, 236 | "typeArguments": null 237 | } 238 | ], 239 | "name": "transfer_coins", 240 | "output": { 241 | "name": "", 242 | "type": 0, 243 | "typeArguments": null 244 | } 245 | }, 246 | { 247 | "inputs": [ 248 | { 249 | "name": "coins", 250 | "type": 7, 251 | "typeArguments": null 252 | }, 253 | { 254 | "name": "asset_id", 255 | "type": 6, 256 | "typeArguments": null 257 | }, 258 | { 259 | "name": "address", 260 | "type": 5, 261 | "typeArguments": null 262 | } 263 | ], 264 | "name": "transfer_token_to_output", 265 | "output": { 266 | "name": "", 267 | "type": 0, 268 | "typeArguments": null 269 | } 270 | } 271 | ], 272 | "loggedTypes": [ 273 | { 274 | "logId": 0, 275 | "loggedType": { 276 | "name": "", 277 | "type": 2, 278 | "typeArguments": [] 279 | } 280 | }, 281 | { 282 | "logId": 1, 283 | "loggedType": { 284 | "name": "", 285 | "type": 2, 286 | "typeArguments": [] 287 | } 288 | }, 289 | { 290 | "logId": 2, 291 | "loggedType": { 292 | "name": "", 293 | "type": 2, 294 | "typeArguments": [] 295 | } 296 | }, 297 | { 298 | "logId": 3, 299 | "loggedType": { 300 | "name": "", 301 | "type": 2, 302 | "typeArguments": [] 303 | } 304 | }, 305 | { 306 | "logId": 4, 307 | "loggedType": { 308 | "name": "", 309 | "type": 2, 310 | "typeArguments": [] 311 | } 312 | }, 313 | { 314 | "logId": 5, 315 | "loggedType": { 316 | "name": "", 317 | "type": 2, 318 | "typeArguments": [] 319 | } 320 | }, 321 | { 322 | "logId": 6, 323 | "loggedType": { 324 | "name": "", 325 | "type": 2, 326 | "typeArguments": [] 327 | } 328 | }, 329 | { 330 | "logId": 7, 331 | "loggedType": { 332 | "name": "", 333 | "type": 2, 334 | "typeArguments": [] 335 | } 336 | } 337 | ] 338 | } -------------------------------------------------------------------------------- /tests/artefacts/usdc/debug/token_contract-storage_slots.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "key": "6294951dcb0a9111a517be5cf4785670ff4e166fb5ab9c33b17e6881b48e964f", 4 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 5 | }, 6 | { 7 | "key": "b48b753af346966d0d169c0b2e3234611f65d5cfdb57c7b6e7cd6ca93707bee0", 8 | "value": "0000000000000006000000000000000000000000000000000000000000000000" 9 | }, 10 | { 11 | "key": "c9863963fd9e8694e64d3505d0ed61969ed3c05391844a062e72acdc7fe0e566", 12 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 13 | }, 14 | { 15 | "key": "de9090cb50e71c2588c773487d1da7066d0c719849a7e58dc8b6397a25c567c0", 16 | "value": "5553445400000000000000000000000000000000000000000000000000000000" 17 | }, 18 | { 19 | "key": "f383b0ce51358be57daa3b725fe44acdb2d880604e367199080b4379c41bb6ed", 20 | "value": "55534420546f6b656e0000000000000000000000000000000000000000000000" 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/artefacts/usdc/debug/token_contract.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compolabs/limit-orders/4da88eaf35db261cf1bf9f644486ef1ec1192810/tests/artefacts/usdc/debug/token_contract.bin -------------------------------------------------------------------------------- /tests/artefacts/usdc/token_contract-abi.json: -------------------------------------------------------------------------------- 1 | { 2 | "types": [ 3 | { 4 | "typeId": 0, 5 | "type": "()", 6 | "components": [], 7 | "typeParameters": null 8 | }, 9 | { 10 | "typeId": 1, 11 | "type": "b256", 12 | "components": null, 13 | "typeParameters": null 14 | }, 15 | { 16 | "typeId": 2, 17 | "type": "enum Error", 18 | "components": [ 19 | { 20 | "name": "AddressAlreadyMint", 21 | "type": 0, 22 | "typeArguments": null 23 | }, 24 | { 25 | "name": "CannotReinitialize", 26 | "type": 0, 27 | "typeArguments": null 28 | }, 29 | { 30 | "name": "MintIsClosed", 31 | "type": 0, 32 | "typeArguments": null 33 | }, 34 | { 35 | "name": "NotOwner", 36 | "type": 0, 37 | "typeArguments": null 38 | } 39 | ], 40 | "typeParameters": null 41 | }, 42 | { 43 | "typeId": 3, 44 | "type": "str[4]", 45 | "components": null, 46 | "typeParameters": null 47 | }, 48 | { 49 | "typeId": 4, 50 | "type": "str[9]", 51 | "components": null, 52 | "typeParameters": null 53 | }, 54 | { 55 | "typeId": 5, 56 | "type": "struct Address", 57 | "components": [ 58 | { 59 | "name": "value", 60 | "type": 1, 61 | "typeArguments": null 62 | } 63 | ], 64 | "typeParameters": null 65 | }, 66 | { 67 | "typeId": 6, 68 | "type": "struct ContractId", 69 | "components": [ 70 | { 71 | "name": "value", 72 | "type": 1, 73 | "typeArguments": null 74 | } 75 | ], 76 | "typeParameters": null 77 | }, 78 | { 79 | "typeId": 7, 80 | "type": "u64", 81 | "components": null, 82 | "typeParameters": null 83 | }, 84 | { 85 | "typeId": 8, 86 | "type": "u8", 87 | "components": null, 88 | "typeParameters": null 89 | } 90 | ], 91 | "functions": [ 92 | { 93 | "inputs": [ 94 | { 95 | "name": "burn_amount", 96 | "type": 7, 97 | "typeArguments": null 98 | } 99 | ], 100 | "name": "burn_coins", 101 | "output": { 102 | "name": "", 103 | "type": 0, 104 | "typeArguments": null 105 | } 106 | }, 107 | { 108 | "inputs": [], 109 | "name": "decimals", 110 | "output": { 111 | "name": "", 112 | "type": 8, 113 | "typeArguments": null 114 | } 115 | }, 116 | { 117 | "inputs": [], 118 | "name": "get_balance", 119 | "output": { 120 | "name": "", 121 | "type": 7, 122 | "typeArguments": null 123 | } 124 | }, 125 | { 126 | "inputs": [], 127 | "name": "get_mint_amount", 128 | "output": { 129 | "name": "", 130 | "type": 7, 131 | "typeArguments": null 132 | } 133 | }, 134 | { 135 | "inputs": [ 136 | { 137 | "name": "asset_id", 138 | "type": 6, 139 | "typeArguments": null 140 | } 141 | ], 142 | "name": "get_token_balance", 143 | "output": { 144 | "name": "", 145 | "type": 7, 146 | "typeArguments": null 147 | } 148 | }, 149 | { 150 | "inputs": [ 151 | { 152 | "name": "mint_amount", 153 | "type": 7, 154 | "typeArguments": null 155 | }, 156 | { 157 | "name": "owner", 158 | "type": 5, 159 | "typeArguments": null 160 | } 161 | ], 162 | "name": "initialize", 163 | "output": { 164 | "name": "", 165 | "type": 0, 166 | "typeArguments": null 167 | } 168 | }, 169 | { 170 | "inputs": [], 171 | "name": "mint", 172 | "output": { 173 | "name": "", 174 | "type": 0, 175 | "typeArguments": null 176 | } 177 | }, 178 | { 179 | "inputs": [ 180 | { 181 | "name": "mint_amount", 182 | "type": 7, 183 | "typeArguments": null 184 | } 185 | ], 186 | "name": "mint_coins", 187 | "output": { 188 | "name": "", 189 | "type": 0, 190 | "typeArguments": null 191 | } 192 | }, 193 | { 194 | "inputs": [], 195 | "name": "name", 196 | "output": { 197 | "name": "", 198 | "type": 4, 199 | "typeArguments": null 200 | } 201 | }, 202 | { 203 | "inputs": [ 204 | { 205 | "name": "mint_amount", 206 | "type": 7, 207 | "typeArguments": null 208 | } 209 | ], 210 | "name": "set_mint_amount", 211 | "output": { 212 | "name": "", 213 | "type": 0, 214 | "typeArguments": null 215 | } 216 | }, 217 | { 218 | "inputs": [], 219 | "name": "symbol", 220 | "output": { 221 | "name": "", 222 | "type": 3, 223 | "typeArguments": null 224 | } 225 | }, 226 | { 227 | "inputs": [ 228 | { 229 | "name": "coins", 230 | "type": 7, 231 | "typeArguments": null 232 | }, 233 | { 234 | "name": "address", 235 | "type": 5, 236 | "typeArguments": null 237 | } 238 | ], 239 | "name": "transfer_coins", 240 | "output": { 241 | "name": "", 242 | "type": 0, 243 | "typeArguments": null 244 | } 245 | }, 246 | { 247 | "inputs": [ 248 | { 249 | "name": "coins", 250 | "type": 7, 251 | "typeArguments": null 252 | }, 253 | { 254 | "name": "asset_id", 255 | "type": 6, 256 | "typeArguments": null 257 | }, 258 | { 259 | "name": "address", 260 | "type": 5, 261 | "typeArguments": null 262 | } 263 | ], 264 | "name": "transfer_token_to_output", 265 | "output": { 266 | "name": "", 267 | "type": 0, 268 | "typeArguments": null 269 | } 270 | } 271 | ], 272 | "loggedTypes": [ 273 | { 274 | "logId": 0, 275 | "loggedType": { 276 | "name": "", 277 | "type": 2, 278 | "typeArguments": [] 279 | } 280 | }, 281 | { 282 | "logId": 1, 283 | "loggedType": { 284 | "name": "", 285 | "type": 2, 286 | "typeArguments": [] 287 | } 288 | }, 289 | { 290 | "logId": 2, 291 | "loggedType": { 292 | "name": "", 293 | "type": 2, 294 | "typeArguments": [] 295 | } 296 | }, 297 | { 298 | "logId": 3, 299 | "loggedType": { 300 | "name": "", 301 | "type": 2, 302 | "typeArguments": [] 303 | } 304 | }, 305 | { 306 | "logId": 4, 307 | "loggedType": { 308 | "name": "", 309 | "type": 2, 310 | "typeArguments": [] 311 | } 312 | }, 313 | { 314 | "logId": 5, 315 | "loggedType": { 316 | "name": "", 317 | "type": 2, 318 | "typeArguments": [] 319 | } 320 | }, 321 | { 322 | "logId": 6, 323 | "loggedType": { 324 | "name": "", 325 | "type": 2, 326 | "typeArguments": [] 327 | } 328 | }, 329 | { 330 | "logId": 7, 331 | "loggedType": { 332 | "name": "", 333 | "type": 2, 334 | "typeArguments": [] 335 | } 336 | } 337 | ] 338 | } -------------------------------------------------------------------------------- /tests/artefacts/usdc/token_contract-storage_slots.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "key": "6294951dcb0a9111a517be5cf4785670ff4e166fb5ab9c33b17e6881b48e964f", 4 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 5 | }, 6 | { 7 | "key": "b48b753af346966d0d169c0b2e3234611f65d5cfdb57c7b6e7cd6ca93707bee0", 8 | "value": "0000000000000006000000000000000000000000000000000000000000000000" 9 | }, 10 | { 11 | "key": "c9863963fd9e8694e64d3505d0ed61969ed3c05391844a062e72acdc7fe0e566", 12 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 13 | }, 14 | { 15 | "key": "de9090cb50e71c2588c773487d1da7066d0c719849a7e58dc8b6397a25c567c0", 16 | "value": "5553444300000000000000000000000000000000000000000000000000000000" 17 | }, 18 | { 19 | "key": "f383b0ce51358be57daa3b725fe44acdb2d880604e367199080b4379c41bb6ed", 20 | "value": "55534420436f696e200000000000000000000000000000000000000000000000" 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/artefacts/usdc/token_contract.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compolabs/limit-orders/4da88eaf35db261cf1bf9f644486ef1ec1192810/tests/artefacts/usdc/token_contract.bin -------------------------------------------------------------------------------- /tests/artefacts/usdt/token_contract-abi.json: -------------------------------------------------------------------------------- 1 | { 2 | "types": [ 3 | { 4 | "typeId": 0, 5 | "type": "()", 6 | "components": [], 7 | "typeParameters": null 8 | }, 9 | { 10 | "typeId": 1, 11 | "type": "b256", 12 | "components": null, 13 | "typeParameters": null 14 | }, 15 | { 16 | "typeId": 2, 17 | "type": "enum Error", 18 | "components": [ 19 | { 20 | "name": "AddressAlreadyMint", 21 | "type": 0, 22 | "typeArguments": null 23 | }, 24 | { 25 | "name": "CannotReinitialize", 26 | "type": 0, 27 | "typeArguments": null 28 | }, 29 | { 30 | "name": "MintIsClosed", 31 | "type": 0, 32 | "typeArguments": null 33 | }, 34 | { 35 | "name": "NotOwner", 36 | "type": 0, 37 | "typeArguments": null 38 | } 39 | ], 40 | "typeParameters": null 41 | }, 42 | { 43 | "typeId": 3, 44 | "type": "str[4]", 45 | "components": null, 46 | "typeParameters": null 47 | }, 48 | { 49 | "typeId": 4, 50 | "type": "str[9]", 51 | "components": null, 52 | "typeParameters": null 53 | }, 54 | { 55 | "typeId": 5, 56 | "type": "struct Address", 57 | "components": [ 58 | { 59 | "name": "value", 60 | "type": 1, 61 | "typeArguments": null 62 | } 63 | ], 64 | "typeParameters": null 65 | }, 66 | { 67 | "typeId": 6, 68 | "type": "struct ContractId", 69 | "components": [ 70 | { 71 | "name": "value", 72 | "type": 1, 73 | "typeArguments": null 74 | } 75 | ], 76 | "typeParameters": null 77 | }, 78 | { 79 | "typeId": 7, 80 | "type": "u64", 81 | "components": null, 82 | "typeParameters": null 83 | }, 84 | { 85 | "typeId": 8, 86 | "type": "u8", 87 | "components": null, 88 | "typeParameters": null 89 | } 90 | ], 91 | "functions": [ 92 | { 93 | "inputs": [ 94 | { 95 | "name": "burn_amount", 96 | "type": 7, 97 | "typeArguments": null 98 | } 99 | ], 100 | "name": "burn_coins", 101 | "output": { 102 | "name": "", 103 | "type": 0, 104 | "typeArguments": null 105 | } 106 | }, 107 | { 108 | "inputs": [], 109 | "name": "decimals", 110 | "output": { 111 | "name": "", 112 | "type": 8, 113 | "typeArguments": null 114 | } 115 | }, 116 | { 117 | "inputs": [], 118 | "name": "get_balance", 119 | "output": { 120 | "name": "", 121 | "type": 7, 122 | "typeArguments": null 123 | } 124 | }, 125 | { 126 | "inputs": [], 127 | "name": "get_mint_amount", 128 | "output": { 129 | "name": "", 130 | "type": 7, 131 | "typeArguments": null 132 | } 133 | }, 134 | { 135 | "inputs": [ 136 | { 137 | "name": "asset_id", 138 | "type": 6, 139 | "typeArguments": null 140 | } 141 | ], 142 | "name": "get_token_balance", 143 | "output": { 144 | "name": "", 145 | "type": 7, 146 | "typeArguments": null 147 | } 148 | }, 149 | { 150 | "inputs": [ 151 | { 152 | "name": "mint_amount", 153 | "type": 7, 154 | "typeArguments": null 155 | }, 156 | { 157 | "name": "owner", 158 | "type": 5, 159 | "typeArguments": null 160 | } 161 | ], 162 | "name": "initialize", 163 | "output": { 164 | "name": "", 165 | "type": 0, 166 | "typeArguments": null 167 | } 168 | }, 169 | { 170 | "inputs": [], 171 | "name": "mint", 172 | "output": { 173 | "name": "", 174 | "type": 0, 175 | "typeArguments": null 176 | } 177 | }, 178 | { 179 | "inputs": [ 180 | { 181 | "name": "mint_amount", 182 | "type": 7, 183 | "typeArguments": null 184 | } 185 | ], 186 | "name": "mint_coins", 187 | "output": { 188 | "name": "", 189 | "type": 0, 190 | "typeArguments": null 191 | } 192 | }, 193 | { 194 | "inputs": [], 195 | "name": "name", 196 | "output": { 197 | "name": "", 198 | "type": 4, 199 | "typeArguments": null 200 | } 201 | }, 202 | { 203 | "inputs": [ 204 | { 205 | "name": "mint_amount", 206 | "type": 7, 207 | "typeArguments": null 208 | } 209 | ], 210 | "name": "set_mint_amount", 211 | "output": { 212 | "name": "", 213 | "type": 0, 214 | "typeArguments": null 215 | } 216 | }, 217 | { 218 | "inputs": [], 219 | "name": "symbol", 220 | "output": { 221 | "name": "", 222 | "type": 3, 223 | "typeArguments": null 224 | } 225 | }, 226 | { 227 | "inputs": [ 228 | { 229 | "name": "coins", 230 | "type": 7, 231 | "typeArguments": null 232 | }, 233 | { 234 | "name": "address", 235 | "type": 5, 236 | "typeArguments": null 237 | } 238 | ], 239 | "name": "transfer_coins", 240 | "output": { 241 | "name": "", 242 | "type": 0, 243 | "typeArguments": null 244 | } 245 | }, 246 | { 247 | "inputs": [ 248 | { 249 | "name": "coins", 250 | "type": 7, 251 | "typeArguments": null 252 | }, 253 | { 254 | "name": "asset_id", 255 | "type": 6, 256 | "typeArguments": null 257 | }, 258 | { 259 | "name": "address", 260 | "type": 5, 261 | "typeArguments": null 262 | } 263 | ], 264 | "name": "transfer_token_to_output", 265 | "output": { 266 | "name": "", 267 | "type": 0, 268 | "typeArguments": null 269 | } 270 | } 271 | ], 272 | "loggedTypes": [ 273 | { 274 | "logId": 0, 275 | "loggedType": { 276 | "name": "", 277 | "type": 2, 278 | "typeArguments": [] 279 | } 280 | }, 281 | { 282 | "logId": 1, 283 | "loggedType": { 284 | "name": "", 285 | "type": 2, 286 | "typeArguments": [] 287 | } 288 | }, 289 | { 290 | "logId": 2, 291 | "loggedType": { 292 | "name": "", 293 | "type": 2, 294 | "typeArguments": [] 295 | } 296 | }, 297 | { 298 | "logId": 3, 299 | "loggedType": { 300 | "name": "", 301 | "type": 2, 302 | "typeArguments": [] 303 | } 304 | }, 305 | { 306 | "logId": 4, 307 | "loggedType": { 308 | "name": "", 309 | "type": 2, 310 | "typeArguments": [] 311 | } 312 | }, 313 | { 314 | "logId": 5, 315 | "loggedType": { 316 | "name": "", 317 | "type": 2, 318 | "typeArguments": [] 319 | } 320 | }, 321 | { 322 | "logId": 6, 323 | "loggedType": { 324 | "name": "", 325 | "type": 2, 326 | "typeArguments": [] 327 | } 328 | }, 329 | { 330 | "logId": 7, 331 | "loggedType": { 332 | "name": "", 333 | "type": 2, 334 | "typeArguments": [] 335 | } 336 | } 337 | ] 338 | } -------------------------------------------------------------------------------- /tests/artefacts/usdt/token_contract-storage_slots.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "key": "6294951dcb0a9111a517be5cf4785670ff4e166fb5ab9c33b17e6881b48e964f", 4 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 5 | }, 6 | { 7 | "key": "b48b753af346966d0d169c0b2e3234611f65d5cfdb57c7b6e7cd6ca93707bee0", 8 | "value": "0000000000000006000000000000000000000000000000000000000000000000" 9 | }, 10 | { 11 | "key": "c9863963fd9e8694e64d3505d0ed61969ed3c05391844a062e72acdc7fe0e566", 12 | "value": "0000000000000000000000000000000000000000000000000000000000000000" 13 | }, 14 | { 15 | "key": "de9090cb50e71c2588c773487d1da7066d0c719849a7e58dc8b6397a25c567c0", 16 | "value": "5553445400000000000000000000000000000000000000000000000000000000" 17 | }, 18 | { 19 | "key": "f383b0ce51358be57daa3b725fe44acdb2d880604e367199080b4379c41bb6ed", 20 | "value": "55534420546f6b656e0000000000000000000000000000000000000000000000" 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/artefacts/usdt/token_contract.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/compolabs/limit-orders/4da88eaf35db261cf1bf9f644486ef1ec1192810/tests/artefacts/usdt/token_contract.bin -------------------------------------------------------------------------------- /tests/harness.rs: -------------------------------------------------------------------------------- 1 | mod utils; 2 | mod local_tests; 3 | mod testnet_tests; -------------------------------------------------------------------------------- /tests/local_tests/cancel_order.rs: -------------------------------------------------------------------------------- 1 | use fuels::prelude::CallParameters; 2 | use fuels::tx::{Address, AssetId, ContractId}; 3 | 4 | use crate::utils::local_tests_utils::*; 5 | use crate::utils::number_utils::*; 6 | 7 | #[tokio::test] 8 | async fn create_order() { 9 | //--------------- WALLET --------------- 10 | let wallet = init_wallet().await; 11 | let address = Address::from(wallet.address()); 12 | println!("Wallet address {address}\n"); 13 | 14 | //--------------- TOKENS --------------- 15 | let (usdt_instance, usdc_instance) = init_tokens(&wallet).await; 16 | 17 | let usdt_methods = usdt_instance.methods(); 18 | let usdt_asset_id = AssetId::from(*usdt_instance.get_contract_id().hash()); 19 | let usdt_symbol = usdt_methods.symbol().simulate().await.unwrap().value; 20 | let usdt_decimals = usdt_methods.decimals().simulate().await.unwrap().value; 21 | 22 | let usdc_methods = usdc_instance.methods(); 23 | let usdc_asset_id = AssetId::from(*usdc_instance.get_contract_id().hash()); 24 | let usdc_symbol = usdc_methods.symbol().simulate().await.unwrap().value; 25 | let usdc_decimals = usdc_methods.decimals().simulate().await.unwrap().value; 26 | 27 | println!("Asset1\n id: {usdt_asset_id}\n symbol {usdt_symbol}\n decimals {usdt_decimals}\n"); 28 | println!("Asset2\n id: {usdc_asset_id}\n symbol {usdc_symbol}\n decimals {usdt_decimals}\n"); 29 | 30 | print_balances(&wallet).await; 31 | 32 | //--------------- LIMIT ORDERS --------- 33 | let limit_orders_instance = get_limit_orders_contract_instance(&wallet).await; 34 | let dapp_methods = limit_orders_instance.methods(); 35 | 36 | let _res = dapp_methods 37 | .create_order( 38 | ContractId::from(usdc_instance.get_contract_id()), 39 | parse_units(10, usdc_decimals), 40 | ) 41 | .call_params(CallParameters::new( 42 | Some(parse_units(10, usdt_decimals)), 43 | Some(usdt_asset_id), 44 | None, 45 | )) 46 | .append_variable_outputs(1) 47 | .call() 48 | .await; 49 | println!("\n{} Create Order", if _res.is_ok() { "✅" } else { "❌" }); 50 | 51 | let balance = wallet.get_asset_balance(&usdt_asset_id).await.unwrap(); 52 | assert!(balance == parse_units(10000 - 10, usdt_decimals)); 53 | 54 | let _res = dapp_methods 55 | .cancel_order(1) 56 | .append_variable_outputs(1) 57 | .call() 58 | .await; 59 | println!("\n{} Cancel Order", if _res.is_ok() { "✅" } else { "❌" }); 60 | 61 | let balance = wallet.get_asset_balance(&usdt_asset_id).await.unwrap(); 62 | assert!(balance == parse_units(10000, usdt_decimals)); 63 | 64 | let order = dapp_methods.order_by_id(1).simulate().await.unwrap().value; 65 | assert!(order.status == Status::Canceled()); 66 | } 67 | -------------------------------------------------------------------------------- /tests/local_tests/create_order.rs: -------------------------------------------------------------------------------- 1 | use fuels::prelude::CallParameters; 2 | use fuels::tx::{Address, AssetId, ContractId}; 3 | 4 | use crate::utils::local_tests_utils::*; 5 | use crate::utils::number_utils::*; 6 | 7 | #[tokio::test] 8 | async fn create_order() { 9 | //--------------- WALLET --------------- 10 | let wallet = init_wallet().await; 11 | let address = Address::from(wallet.address()); 12 | println!("Wallet address {address}\n"); 13 | 14 | //--------------- TOKENS --------------- 15 | let (usdt_instance, usdc_instance) = init_tokens(&wallet).await; 16 | 17 | let usdt_methods = usdt_instance.methods(); 18 | let usdt_asset_id = AssetId::from(*usdt_instance.get_contract_id().hash()); 19 | let usdt_symbol = usdt_methods.symbol().simulate().await.unwrap().value; 20 | let usdt_decimals = usdt_methods.decimals().simulate().await.unwrap().value; 21 | 22 | let usdc_methods = usdc_instance.methods(); 23 | let usdc_asset_id = AssetId::from(*usdc_instance.get_contract_id().hash()); 24 | let usdc_symbol = usdc_methods.symbol().simulate().await.unwrap().value; 25 | let usdc_decimals = usdc_methods.decimals().simulate().await.unwrap().value; 26 | 27 | println!("Asset1\n id: {usdt_asset_id}\n symbol {usdt_symbol}\n decimals {usdt_decimals}\n"); 28 | println!("Asset2\n id: {usdc_asset_id}\n symbol {usdc_symbol}\n decimals {usdt_decimals}\n"); 29 | 30 | print_balances(&wallet).await; 31 | 32 | //--------------- LIMIT ORDERS --------- 33 | let limit_orders_instance = get_limit_orders_contract_instance(&wallet).await; 34 | let dapp_methods = limit_orders_instance.methods(); 35 | 36 | assert!(dapp_methods.order_by_id(0).simulate().await.is_err()); 37 | assert!(dapp_methods.order_by_id(2).simulate().await.is_err()); 38 | 39 | let _res = dapp_methods 40 | .create_order( 41 | ContractId::from(usdc_instance.get_contract_id()), 42 | parse_units(10, usdc_decimals), 43 | ) 44 | .call_params(CallParameters::new( 45 | Some(parse_units(10, usdt_decimals)), 46 | Some(usdt_asset_id), 47 | None, 48 | )) 49 | .append_variable_outputs(1) 50 | .call() 51 | .await; 52 | println!("\n{} Create Order", if _res.is_ok() { "✅" } else { "❌" }); 53 | 54 | let balance = wallet.get_asset_balance(&usdt_asset_id).await.unwrap(); 55 | assert!(balance == parse_units(10000-10, usdt_decimals)); 56 | 57 | let order = dapp_methods.order_by_id(1).simulate().await.unwrap().value; 58 | assert!(order.amount_0 == parse_units(10, usdt_decimals)); 59 | assert!(order.status == Status::Active()); 60 | } 61 | -------------------------------------------------------------------------------- /tests/local_tests/fulfill_order.rs: -------------------------------------------------------------------------------- 1 | use fuels::prelude::CallParameters; 2 | use fuels::tx::{Address, AssetId, ContractId}; 3 | 4 | use crate::utils::local_tests_utils::*; 5 | use crate::utils::number_utils::*; 6 | 7 | #[tokio::test] 8 | async fn fulfill_order() { 9 | //--------------- WALLET --------------- 10 | let wallet = init_wallet().await; 11 | let address = Address::from(wallet.address()); 12 | println!("Wallet address {address}\n"); 13 | 14 | //--------------- TOKENS --------------- 15 | let (usdt_instance, usdc_instance) = init_tokens(&wallet).await; 16 | 17 | let usdt_methods = usdt_instance.methods(); 18 | let usdt_asset_id = AssetId::from(*usdt_instance.get_contract_id().hash()); 19 | let usdt_symbol = usdt_methods.symbol().simulate().await.unwrap().value; 20 | let usdt_decimals = usdt_methods.decimals().simulate().await.unwrap().value; 21 | 22 | let usdc_methods = usdc_instance.methods(); 23 | let usdc_asset_id = AssetId::from(*usdc_instance.get_contract_id().hash()); 24 | let usdc_symbol = usdc_methods.symbol().simulate().await.unwrap().value; 25 | let usdc_decimals = usdc_methods.decimals().simulate().await.unwrap().value; 26 | 27 | println!("Asset1\n id: {usdt_asset_id}\n symbol {usdt_symbol}\n decimals {usdt_decimals}\n"); 28 | println!("Asset2\n id: {usdc_asset_id}\n symbol {usdc_symbol}\n decimals {usdt_decimals}\n"); 29 | 30 | print_balances(&wallet).await; 31 | 32 | //--------------- LIMIT ORDERS --------- 33 | let limit_orders_instance = get_limit_orders_contract_instance(&wallet).await; 34 | let dapp_methods = limit_orders_instance.methods(); 35 | 36 | let _res = dapp_methods 37 | .create_order( 38 | ContractId::from(usdc_instance.get_contract_id()), 39 | parse_units(10, usdc_decimals), 40 | ) 41 | .call_params(CallParameters::new( 42 | Some(parse_units(10, usdt_decimals)), 43 | Some(usdt_asset_id), 44 | None, 45 | )) 46 | .append_variable_outputs(1) 47 | .call() 48 | .await; 49 | println!("\n{} Create Order", if _res.is_ok() { "✅" } else { "❌" }); 50 | 51 | let balance = wallet.get_asset_balance(&usdt_asset_id).await.unwrap(); 52 | assert!(balance == parse_units(10000 - 10, usdt_decimals)); 53 | 54 | let _res = dapp_methods 55 | .fulfill_order(1) 56 | .call_params(CallParameters::new( 57 | Some(parse_units(10, usdc_decimals)), 58 | Some(usdc_asset_id), 59 | None, 60 | )) 61 | .estimate_tx_dependencies(Option::None) 62 | .await 63 | .unwrap() 64 | .call() 65 | .await; 66 | println!("\n{} Fulfill Order", if _res.is_ok() { "✅" } else { "❌" }); 67 | 68 | let balance = wallet.get_asset_balance(&usdt_asset_id).await.unwrap(); 69 | assert!(balance == parse_units(10000, usdt_decimals)); 70 | 71 | let balance = wallet.get_asset_balance(&usdc_asset_id).await.unwrap(); 72 | assert!(balance == parse_units(10000, usdc_decimals)); 73 | 74 | let order = dapp_methods.order_by_id(1).simulate().await.unwrap().value; 75 | assert!(order.status == Status::Completed()); 76 | } 77 | -------------------------------------------------------------------------------- /tests/local_tests/main_test.rs: -------------------------------------------------------------------------------- 1 | use fuels::prelude::CallParameters; 2 | use fuels::tx::{Address, AssetId, ContractId}; 3 | 4 | use crate::utils::local_tests_utils::*; 5 | use crate::utils::number_utils::*; 6 | 7 | #[tokio::test] 8 | async fn main_test() { 9 | //--------------- WALLET --------------- 10 | let wallet = init_wallet().await; 11 | let address = Address::from(wallet.address()); 12 | println!("Wallet address {address}\n"); 13 | 14 | //--------------- TOKENS --------------- 15 | let (usdt_instance, usdc_instance) = init_tokens(&wallet).await; 16 | 17 | let usdt_methods = usdt_instance.methods(); 18 | let usdt_asset_id = AssetId::from(*usdt_instance.get_contract_id().hash()); 19 | let usdt_symbol = usdt_methods.symbol().simulate().await.unwrap().value; 20 | let usdt_decimals = usdt_methods.decimals().simulate().await.unwrap().value; 21 | 22 | let usdc_methods = usdc_instance.methods(); 23 | let usdc_asset_id = AssetId::from(*usdc_instance.get_contract_id().hash()); 24 | let usdc_symbol = usdc_methods.symbol().simulate().await.unwrap().value; 25 | let usdc_decimals = usdc_methods.decimals().simulate().await.unwrap().value; 26 | 27 | println!("Asset1\n id: {usdt_asset_id}\n symbol {usdt_symbol}\n decimals {usdt_decimals}\n"); 28 | println!("Asset2\n id: {usdt_asset_id}\n symbol {usdc_symbol}\n decimals {usdt_decimals}\n"); 29 | 30 | print_balances(&wallet).await; 31 | 32 | //--------------- LIMIT ORDERS --------- 33 | 34 | let limit_orders_instance = get_limit_orders_contract_instance(&wallet).await; 35 | let dapp_methods = limit_orders_instance.methods(); 36 | 37 | assert!(dapp_methods.order_by_id(2).simulate().await.is_err()); 38 | 39 | let _res = dapp_methods 40 | .create_order( 41 | ContractId::from(usdc_instance.get_contract_id()), 42 | parse_units(10, usdc_decimals), 43 | ) 44 | .call_params(CallParameters::new( 45 | Some(parse_units(10, usdt_decimals)), 46 | Some(usdt_asset_id), 47 | None, 48 | )) 49 | .append_variable_outputs(1) 50 | .call() 51 | .await; 52 | println!("\n{} Create Order", if _res.is_ok() { "✅" } else { "❌" }); 53 | 54 | let balance = wallet.get_asset_balance(&usdt_asset_id).await.unwrap(); 55 | println!( 56 | "USDT balance: {} {usdt_symbol}", 57 | format_units(balance, usdt_decimals) 58 | ); 59 | 60 | let order = dapp_methods.order_by_id(1).simulate().await.unwrap().value; 61 | println!("{:#?}", order); 62 | 63 | let _res = dapp_methods 64 | .cancel_order(order.id) 65 | .append_variable_outputs(1) 66 | .call() 67 | .await; 68 | println!("\n{} Cancel Order", if _res.is_ok() { "✅" } else { "❌" }); 69 | 70 | let order = dapp_methods.order_by_id(1).simulate().await.unwrap().value; 71 | println!("{:#?}", order); 72 | 73 | let balance = wallet.get_asset_balance(&usdt_asset_id).await.unwrap(); 74 | println!( 75 | "USDT balance: {} {usdt_symbol}", 76 | format_units(balance, usdt_decimals) 77 | ); 78 | 79 | let _res = dapp_methods 80 | .create_order( 81 | ContractId::from(usdc_instance.get_contract_id()), 82 | parse_units(10, usdc_decimals), 83 | ) 84 | .call_params(CallParameters::new( 85 | Some(parse_units(10, usdt_decimals)), 86 | Some(usdt_asset_id), 87 | None, 88 | )) 89 | .append_variable_outputs(1) 90 | .call() 91 | .await; 92 | println!("\n{} Create Order", if _res.is_ok() { "✅" } else { "❌" }); 93 | 94 | let order = dapp_methods.order_by_id(2).simulate().await.unwrap().value; 95 | println!("{:#?}", order); 96 | 97 | let _res = dapp_methods 98 | .fulfill_order(2) 99 | .call_params(CallParameters::new( 100 | Some(parse_units(10, usdc_decimals)), 101 | Some(usdc_asset_id), 102 | None, 103 | )) 104 | .append_message_outputs(2) 105 | .append_variable_outputs(2) 106 | .call() 107 | .await; 108 | println!("\n{} Fulfill Order", if _res.is_ok() { "✅" } else { "❌" }); 109 | 110 | let order = dapp_methods.order_by_id(2).simulate().await.unwrap().value; 111 | println!("{:#?}", order); 112 | } 113 | -------------------------------------------------------------------------------- /tests/local_tests/mod.rs: -------------------------------------------------------------------------------- 1 | mod main_test; 2 | mod create_order; 3 | mod cancel_order; 4 | mod fulfill_order; 5 | 6 | -------------------------------------------------------------------------------- /tests/testnet_tests/main_test.rs: -------------------------------------------------------------------------------- 1 | #[tokio::test] 2 | async fn main_test() {} 3 | -------------------------------------------------------------------------------- /tests/testnet_tests/mod.rs: -------------------------------------------------------------------------------- 1 | mod main_test; -------------------------------------------------------------------------------- /tests/utils/local_tests_utils.rs: -------------------------------------------------------------------------------- 1 | use fuels::prelude::*; 2 | 3 | use crate::utils::number_utils::parse_units; 4 | 5 | abigen!(LimitOrdersContract, "out/debug/limit_orders-abi.json"); 6 | abigen!(UsdtContract, "tests/artefacts/usdt/token_contract-abi.json"); 7 | abigen!(UsdcContract, "tests/artefacts/usdc/token_contract-abi.json"); 8 | 9 | pub async fn init_wallet() -> WalletUnlocked { 10 | let mut wallets = launch_custom_provider_and_get_wallets( 11 | WalletsConfig::new( 12 | Some(1), /* Single wallet */ 13 | Some(1), /* Single coin (UTXO) */ 14 | Some(1_000_000_000), /* Amount per coin */ 15 | ), 16 | None, 17 | None, 18 | ) 19 | .await; 20 | wallets.pop().unwrap() 21 | } 22 | 23 | pub async fn init_tokens(wallet: &WalletUnlocked) -> (UsdtContract, UsdcContract){ 24 | let usdt_instance = get_usdt_token_contract_instance(wallet).await; 25 | let usdt_methods = usdt_instance.methods(); 26 | 27 | let usdt_decimals = usdt_methods.decimals().simulate().await.unwrap().value; 28 | let mint_amount = parse_units(10000, usdt_decimals); 29 | 30 | let _res = usdt_methods.initialize(mint_amount, Address::from(wallet.address())).call().await; 31 | let _res = usdt_methods.mint().append_variable_outputs(1).call().await; 32 | 33 | 34 | let usdc_instance = get_usdc_token_contract_instance(wallet).await; 35 | let usdc_methods = usdc_instance.methods(); 36 | 37 | let usdc_decimals = usdc_methods.decimals().simulate().await.unwrap().value; 38 | let mint_amount = parse_units(10000, usdc_decimals); 39 | 40 | let _res = usdc_methods.initialize(mint_amount, Address::from(wallet.address())).call().await; 41 | let _res = usdc_methods.mint().append_variable_outputs(1).call().await; 42 | 43 | (usdt_instance, usdc_instance) 44 | } 45 | 46 | pub async fn get_limit_orders_contract_instance(wallet: &WalletUnlocked) -> LimitOrdersContract{ 47 | let id = Contract::deploy( 48 | "./out/debug/limit_orders.bin", 49 | &wallet, 50 | TxParameters::default(), 51 | StorageConfiguration::with_storage_path(Some( 52 | "./out/debug/limit_orders-storage_slots.json".to_string(), 53 | )), 54 | ) 55 | .await 56 | .unwrap(); 57 | 58 | LimitOrdersContract::new(id, wallet.clone()) 59 | } 60 | 61 | pub async fn get_usdt_token_contract_instance(wallet: &WalletUnlocked) -> UsdtContract{ 62 | let id = Contract::deploy( 63 | "./tests/artefacts/usdt/token_contract.bin", 64 | &wallet, 65 | TxParameters::default(), 66 | StorageConfiguration::with_storage_path(Some( 67 | "./tests/artefacts/usdt/token_contract-storage_slots.json".to_string(), 68 | )), 69 | ) 70 | .await 71 | .unwrap(); 72 | 73 | UsdtContract::new(id, wallet.clone()) 74 | } 75 | 76 | pub async fn get_usdc_token_contract_instance(wallet: &WalletUnlocked) -> UsdcContract{ 77 | let id = Contract::deploy( 78 | "./tests/artefacts/usdc/token_contract.bin", 79 | &wallet, 80 | TxParameters::default(), 81 | StorageConfiguration::with_storage_path(Some( 82 | "./tests/artefacts/usdc/token_contract-storage_slots.json".to_string(), 83 | )), 84 | ) 85 | .await 86 | .unwrap(); 87 | 88 | UsdcContract::new(id, wallet.clone()) 89 | } 90 | 91 | pub async fn print_balances(wallet: &WalletUnlocked) { 92 | let balances = wallet.get_balances().await.unwrap(); 93 | println!("{:#?}\n", balances); 94 | } -------------------------------------------------------------------------------- /tests/utils/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod local_tests_utils; 2 | pub mod number_utils; -------------------------------------------------------------------------------- /tests/utils/number_utils.rs: -------------------------------------------------------------------------------- 1 | pub fn parse_units(num: u64, decimals: u8) -> u64 { 2 | num * 10u64.pow(decimals as u32) 3 | } 4 | 5 | pub fn format_units(num: u64, decimals: u8) -> u64 { 6 | num / 10u64.pow(decimals as u32) 7 | } 8 | --------------------------------------------------------------------------------