From a7a53627d291292d69a026a577307a8fc8623804 Mon Sep 17 00:00:00 2001 From: SwayStar123 <46050679+SwayStar123@users.noreply.github.com> Date: Wed, 24 Jan 2024 22:10:15 +0530 Subject: [PATCH] Bump apps to beta-5 (#753) * init * init * init * Fundraiser bump * TicTacToe bump * diagnosing compiler bug * bug fix * Oracle-bump * OTC-bump * Timelock-bump * update toolchain * wow it actually works * fmt * update rust version? * fix unnecessary hashes * escrow lint * update forc version in ci.yml * update sdk * fmt * contributing book * update versions in readme * update versions in dao readme * update tests * bump * update tests * fmt * readme versions * readme versions * readme versions * update tests * readme versions * merge mport * remove u8 conversion * bump tests * ujpdate tests * fmt * test 1 * update to latest * bump apps to latest toolchain * fmting * add line to toml * fmt 2 * update rust version * latest toolchain * fmt * forc build * Update toolchain * Refactor English Auction Contract for new Native Assets * Update tests for refactored English Auction * Run formatter * Update tests to fuels-rs 0.53.0 * Update Forc.lock * Update to Rust 1.73.0 * Fix Clippy errors * Change to rust v0.74.0 * update version * make clippy happy * Update README versions * Add patch for tests * Update Airdrop Contract * Update tests for fuels-rs v0.53.0 * Update README and SPECIFICATION * Update Forc.lock * Updates based on PR comments * Add comment on assembly code * Update registry contract * Update Registry contract tests * Change set_name_owner() to transfer_name_ownership() * Update README * Add comments * Fix inline docs type * Update to forc v0.48.1 * Update to forc v0.48.1 * Run formatteR * Update README * Update README * Update tests to fuels-rs 0.53.0 * Run rust formatter * it works!! * update to latest * Fix execution error * Fix failure to fetch fuel-core * Resolve PR comments * Update to nightly and format * Update to nightly, fuel-core v0.21.0, and run formatter * update to fuel-core 0.21.0 * Make clippy happy * Make clipply happy * Update README * Update README * Update NFT to forc v0.48.1 * Update token to forc v0.48.1 * Update to forc v0.48.1 * Update .templates * Update .template tests * Update aurora * Update CI * Update nightly date in CI * Update nightly date in CI * Update predicate to froc v0.48.1 * Update tests for fuels-rs v0.53.0 * Remove tx_params comment * Update fuels-rs version in README * Update to forc v0.49.1 * Update airdrop * Update english auction * Update counter script * Update DAO * Update escrow * Update fundraiser * Update tictactoe * Update multisig * update token * Update NFT * Update oracle * Update timelock * Update name registry * Update OTC swap predicate * Update all READMEs * Update template * Run formmater * Update native-asset tests * Update CI * revert book CI updates * Update DI * Update CI * Change ci to cd into contrubiting book * Fix CI * Have CI cd into manifest directories --------- Co-authored-by: bitzoic Co-authored-by: Cameron Carstens <54727135+bitzoic@users.noreply.github.com> --- .devops/.template/project/Cargo.lock | 2385 +++++++---------- .devops/.template/project/Forc.lock | 16 +- .../contracts/template-contract/Cargo.toml | 2 +- .../template-contract/src/data_structures.sw | 2 +- .../template-contract/tests/utils/setup.rs | 17 +- .devops/.template/project/fuel-toolchain.toml | 6 +- .devops/aurora/fuel-toolchain.toml | 6 +- .docs/contributing-book/src/code/Forc.lock | 22 +- .../src/code/fuel-toolchain.toml | 6 +- .github/workflows/ci.yml | 14 +- .github/workflows/gh-pages.yml | 2 +- DAO/README.md | 12 +- DAO/project/Cargo.lock | 704 +++-- DAO/project/Forc.lock | 16 +- DAO/project/contracts/DAO-contract/Cargo.toml | 2 +- .../DAO-contract/src/data_structures.sw | 4 +- .../contracts/DAO-contract/src/events.sw | 4 +- .../contracts/DAO-contract/src/interface.sw | 14 +- .../contracts/DAO-contract/src/main.sw | 117 +- .../tests/utils/interface/core.rs | 10 +- .../tests/utils/interface/info.rs | 6 +- .../DAO-contract/tests/utils/setup.rs | 36 +- DAO/project/fuel-toolchain.toml | 6 +- OTC-swap-predicate/README.md | 12 +- OTC-swap-predicate/project/Cargo.lock | 752 +++--- OTC-swap-predicate/project/Forc.lock | 16 +- .../project/fuel-toolchain.toml | 6 +- .../predicates/swap-predicate/Cargo.toml | 2 +- .../predicates/swap-predicate/src/main.sw | 8 +- .../swap-predicate/tests/utils/mod.rs | 42 +- airdrop/README.md | 15 +- airdrop/project/Cargo.lock | 854 +++--- airdrop/project/Cargo.toml | 1 - airdrop/project/Forc.lock | 29 +- airdrop/project/Forc.toml | 2 +- airdrop/project/SPECIFICATION.md | 18 - .../contracts/asset-contract/Cargo.toml | 15 - .../contracts/asset-contract/Forc.toml | 5 - .../contracts/asset-contract/src/errors.sw | 21 - .../contracts/asset-contract/src/interface.sw | 33 - .../contracts/asset-contract/src/main.sw | 40 - .../tests/functions/constructor.rs | 39 - .../asset-contract/tests/functions/mint_to.rs | 174 -- .../asset-contract/tests/functions/mod.rs | 2 - .../contracts/asset-contract/tests/harness.rs | 2 - .../asset-contract/tests/utils/interface.rs | 29 - .../asset-contract/tests/utils/mod.rs | 2 - .../asset-contract/tests/utils/setup.rs | 65 - .../contracts/distributor-contract/Cargo.toml | 2 +- .../contracts/distributor-contract/Forc.toml | 2 +- .../distributor-contract/src/events.sw | 4 +- .../distributor-contract/src/interface.sw | 11 +- .../distributor-contract/src/main.sw | 74 +- .../tests/functions/core/claim.rs | 210 +- .../tests/functions/core/clawback.rs | 78 +- .../tests/functions/core/constructor.rs | 32 +- .../tests/functions/info/admin.rs | 14 +- .../tests/functions/info/claim_data.rs | 18 +- .../tests/functions/info/end_block.rs | 16 +- .../tests/functions/info/is_active.rs | 14 +- .../tests/functions/info/merkle_root.rs | 14 +- .../tests/functions/info/number_of_leaves.rs | 14 +- .../tests/utils/interface/core.rs | 44 +- .../tests/utils/interface/info.rs | 2 +- .../distributor-contract/tests/utils/setup.rs | 93 +- airdrop/project/fuel-toolchain.toml | 6 +- archive/AMM/project/test-utils/src/setup.rs | 4 +- auctions/english-auction/README.md | 12 +- auctions/english-auction/project/Cargo.lock | 705 +++-- auctions/english-auction/project/Forc.lock | 32 +- auctions/english-auction/project/Forc.toml | 2 +- .../contracts/auction-contract/Cargo.toml | 2 +- .../contracts/auction-contract/Forc.toml | 3 - .../auction-contract/src/data_structures.sw | 4 - .../src/data_structures/auction.sw | 28 +- .../src/data_structures/auction_asset.sw | 134 - .../src/data_structures/nft_asset.sw | 75 - .../src/data_structures/token_asset.sw | 65 - .../src/data_structures/traits.sw | 18 - .../contracts/auction-contract/src/errors.sw | 12 - .../contracts/auction-contract/src/events.sw | 12 +- .../auction-contract/src/interface.sw | 27 +- .../contracts/auction-contract/src/main.sw | 187 +- .../contracts/auction-contract/src/utils.sw | 42 - .../tests/functions/core/bid.rs | 670 +---- .../tests/functions/core/cancel.rs | 99 +- .../tests/functions/core/create.rs | 670 +---- .../tests/functions/core/withdraw.rs | 353 +-- .../tests/functions/info/auction_info.rs | 59 +- .../tests/functions/info/deposit_balance.rs | 157 +- .../tests/functions/info/total_auctions.rs | 126 +- .../tests/utils/interface/core.rs | 165 +- .../tests/utils/interface/info.rs | 4 +- .../auction-contract/tests/utils/setup.rs | 127 +- .../contracts/test-artifacts/NFT/.gitignore | 2 - .../contracts/test-artifacts/NFT/Forc.toml | 8 - .../contracts/test-artifacts/NFT/src/main.sw | 53 - .../project/fuel-toolchain.toml | 6 +- counter-script/README.md | 12 +- counter-script/project/Cargo.lock | 1692 ++++++++++-- counter-script/project/Forc.lock | 32 +- counter-script/project/fuel-toolchain.toml | 6 +- .../scripts/interaction_script/Cargo.toml | 2 +- .../interaction_script/tests/harness.rs | 21 +- escrow/README.md | 12 +- escrow/project/Cargo.lock | 705 +++-- escrow/project/Forc.lock | 16 +- .../contracts/escrow-contract/Cargo.toml | 2 +- .../escrow-contract/src/data_structures.sw | 6 +- .../contracts/escrow-contract/src/events.sw | 2 +- .../escrow-contract/src/interface.sw | 7 +- .../contracts/escrow-contract/src/main.sw | 442 ++- .../tests/functions/core/accept_arbiter.rs | 2 +- .../tests/functions/core/create_escrow.rs | 17 +- .../tests/functions/core/deposit.rs | 6 +- .../tests/functions/core/propose_arbiter.rs | 25 +- .../tests/functions/core/resolve_dispute.rs | 2 +- .../tests/functions/core/return_deposit.rs | 2 +- .../tests/functions/core/take_payment.rs | 44 +- .../functions/core/transfer_to_seller.rs | 2 +- .../functions/core/withdraw_collateral.rs | 30 +- .../tests/functions/info/arbiter_proposal.rs | 4 +- .../tests/functions/info/assets.rs | 4 +- .../tests/functions/info/escrows.rs | 4 +- .../tests/utils/interface/core.rs | 27 +- .../escrow-contract/tests/utils/setup.rs | 43 +- escrow/project/fuel-toolchain.toml | 6 +- fundraiser/README.md | 12 +- fundraiser/project/Cargo.lock | 705 +++-- fundraiser/project/Forc.lock | 16 +- .../contracts/fundraiser-contract/Cargo.toml | 2 +- .../src/data_structures/campaign_info.sw | 6 +- .../fundraiser-contract/src/interface.sw | 13 +- .../contracts/fundraiser-contract/src/main.sw | 150 +- .../tests/utils/interface/core.rs | 12 +- .../tests/utils/interface/info.rs | 4 +- .../fundraiser-contract/tests/utils/setup.rs | 35 +- fundraiser/project/fuel-toolchain.toml | 6 +- games/TicTacToe/README.md | 12 +- games/TicTacToe/project/Cargo.lock | 662 +++-- games/TicTacToe/project/Forc.lock | 16 +- .../contracts/tictactoe-contract/Cargo.toml | 2 +- .../contracts/tictactoe-contract/src/main.sw | 60 +- .../contracts/tictactoe-contract/src/utils.sw | 45 +- .../tests/utils/interface.rs | 6 +- .../tictactoe-contract/tests/utils/setup.rs | 14 +- games/TicTacToe/project/fuel-toolchain.toml | 6 +- multisig-wallet/README.md | 12 +- multisig-wallet/project/Cargo.lock | 640 +++-- multisig-wallet/project/Forc.lock | 22 +- .../contracts/multisig-contract/Cargo.toml | 2 +- .../src/data_structures/hashing.sw | 46 +- .../contracts/multisig-contract/src/events.sw | 2 +- .../multisig-contract/src/interface.sw | 10 +- .../contracts/multisig-contract/src/main.sw | 113 +- .../contracts/multisig-contract/src/utils.sw | 16 +- .../functions/core/execute_transaction.rs | 48 +- .../tests/functions/info/balance.rs | 14 +- .../tests/functions/info/compute_hash.rs | 12 +- .../tests/utils/interface/core.rs | 6 +- .../tests/utils/interface/info.rs | 6 +- .../multisig-contract/tests/utils/setup.rs | 45 +- .../target-contract/src/main.sw | 2 +- multisig-wallet/project/fuel-toolchain.toml | 6 +- name-registry/README.md | 12 +- name-registry/project/Cargo.lock | 824 ++++-- name-registry/project/Forc.lock | 16 +- name-registry/project/SPECIFICATION.md | 16 +- .../contracts/registry-contract/Cargo.toml | 2 +- .../contracts/registry-contract/src/errors.sw | 16 +- .../contracts/registry-contract/src/events.sw | 12 +- .../registry-contract/src/interface.sw | 117 +- .../contracts/registry-contract/src/main.sw | 198 +- .../tests/functions/core/extend.rs | 43 +- .../tests/functions/core/register.rs | 31 +- .../tests/functions/core/set_asset.rs | 12 +- .../tests/functions/core/set_identity.rs | 50 +- .../tests/functions/core/set_owner.rs | 50 +- .../tests/functions/info/expiry.rs | 22 +- .../tests/functions/info/identity.rs | 16 +- .../tests/functions/info/owner.rs | 16 +- .../tests/functions/info/rate.rs | 12 +- .../tests/utils/interface/core.rs | 92 +- .../tests/utils/interface/info.rs | 33 +- .../registry-contract/tests/utils/setup.rs | 26 +- name-registry/project/fuel-toolchain.toml | 6 +- native-assets/NFT/README.md | 8 +- native-assets/NFT/project/Forc.lock | 40 +- .../project/contracts/NFT-contract/Forc.toml | 8 +- .../contracts/NFT-contract/src/main.sw | 95 +- native-assets/NFT/project/fuel-toolchain.toml | 6 +- native-assets/token/README.md | 8 +- native-assets/token/project/Forc.lock | 38 +- .../contracts/token-contract/Forc.toml | 6 +- .../contracts/token-contract/src/main.sw | 85 +- .../token/project/fuel-toolchain.toml | 6 +- oracle/README.md | 12 +- oracle/project/Cargo.lock | 699 +++-- oracle/project/Forc.lock | 16 +- .../contracts/oracle-contract/Cargo.toml | 2 +- oracle/project/fuel-toolchain.toml | 6 +- oracle/project/oracle-node/Cargo.toml | 2 +- oracle/project/oracle-node/src/main.rs | 9 +- .../oracle-node/tests/functions/run.rs | 2 +- oracle/project/utils/Cargo.toml | 2 +- oracle/project/utils/src/lib.rs | 9 +- timelock/README.md | 12 +- timelock/project/Cargo.lock | 709 +++-- timelock/project/Forc.lock | 16 +- .../contracts/timelock-contract/Cargo.toml | 2 +- .../timelock-contract/src/data_structures.sw | 2 +- .../contracts/timelock-contract/src/errors.sw | 16 + .../timelock-contract/src/interface.sw | 25 +- .../contracts/timelock-contract/src/main.sw | 79 +- .../contracts/timelock-contract/src/utils.sw | 23 +- .../timelock-contract/tests/harness.rs | 1 - .../timelock-contract/tests/utils/setup.rs | 7 +- timelock/project/fuel-toolchain.toml | 6 +- 218 files changed, 10567 insertions(+), 9077 deletions(-) delete mode 100644 airdrop/project/contracts/asset-contract/Cargo.toml delete mode 100644 airdrop/project/contracts/asset-contract/Forc.toml delete mode 100644 airdrop/project/contracts/asset-contract/src/errors.sw delete mode 100644 airdrop/project/contracts/asset-contract/src/interface.sw delete mode 100644 airdrop/project/contracts/asset-contract/src/main.sw delete mode 100644 airdrop/project/contracts/asset-contract/tests/functions/constructor.rs delete mode 100644 airdrop/project/contracts/asset-contract/tests/functions/mint_to.rs delete mode 100644 airdrop/project/contracts/asset-contract/tests/functions/mod.rs delete mode 100644 airdrop/project/contracts/asset-contract/tests/harness.rs delete mode 100644 airdrop/project/contracts/asset-contract/tests/utils/interface.rs delete mode 100644 airdrop/project/contracts/asset-contract/tests/utils/mod.rs delete mode 100644 airdrop/project/contracts/asset-contract/tests/utils/setup.rs delete mode 100644 auctions/english-auction/project/contracts/auction-contract/src/data_structures/auction_asset.sw delete mode 100644 auctions/english-auction/project/contracts/auction-contract/src/data_structures/nft_asset.sw delete mode 100644 auctions/english-auction/project/contracts/auction-contract/src/data_structures/token_asset.sw delete mode 100644 auctions/english-auction/project/contracts/auction-contract/src/data_structures/traits.sw delete mode 100644 auctions/english-auction/project/contracts/auction-contract/src/utils.sw delete mode 100644 auctions/english-auction/project/contracts/test-artifacts/NFT/.gitignore delete mode 100644 auctions/english-auction/project/contracts/test-artifacts/NFT/Forc.toml delete mode 100644 auctions/english-auction/project/contracts/test-artifacts/NFT/src/main.sw diff --git a/.devops/.template/project/Cargo.lock b/.devops/.template/project/Cargo.lock index b8346a2d9..1b3469ba4 100644 --- a/.devops/.template/project/Cargo.lock +++ b/.devops/.template/project/Cargo.lock @@ -12,38 +12,65 @@ dependencies = [ "regex", ] +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "aes" -version = "0.7.5" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cipher", "cpufeatures", - "opaque-debug 0.3.0", ] [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "once_cell", "version_check", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -132,7 +159,7 @@ dependencies = [ "async-stream", "async-trait", "base64 0.13.1", - "bytes 1.4.0", + "bytes", "fnv", "futures-util", "http", @@ -141,7 +168,7 @@ dependencies = [ "multer", "num-traits", "once_cell", - "pin-project-lite 0.2.9", + "pin-project-lite", "regex", "serde", "serde_json", @@ -187,7 +214,7 @@ version = "4.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a941b499fead4a3fb5392cabf42446566d18c86313f69f2deab69560394d65f" dependencies = [ - "bytes 1.4.0", + "bytes", "indexmap", "serde", "serde_json", @@ -201,7 +228,7 @@ checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite 0.2.9", + "pin-project-lite", ] [[package]] @@ -212,18 +239,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] name = "async-trait" -version = "0.1.68" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] @@ -249,23 +276,23 @@ checksum = "acee9fd5073ab6b045a275b3e709c163dd36c90685219cb21804a147b58dba43" dependencies = [ "async-trait", "axum-core", - "bitflags", - "bytes 1.4.0", + "bitflags 1.3.2", + "bytes", "futures-util", "http", - "http-body 0.4.5", - "hyper 0.14.25", - "itoa 1.0.6", + "http-body", + "hyper", + "itoa", "matchit", "memchr", "mime", "percent-encoding", - "pin-project-lite 0.2.9", + "pin-project-lite", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", - "tokio 1.27.0", + "tokio", "tower", "tower-http", "tower-layer", @@ -279,42 +306,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc" dependencies = [ "async-trait", - "bytes 1.4.0", + "bytes", "futures-util", "http", - "http-body 0.4.5", + "http-body", "mime", "tower-layer", "tower-service", ] [[package]] -name = "base16ct" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" - -[[package]] -name = "base58" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" - -[[package]] -name = "base58check" -version = "0.1.0" +name = "backtrace" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee2fe4c9a0c84515f136aaae2466744a721af6d63339c18689d9e995d74d99b" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ - "base58", - "sha2 0.8.2", + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "serde", ] [[package]] -name = "base64" -version = "0.12.3" +name = "base16ct" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" @@ -334,27 +355,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" -[[package]] -name = "bech32" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dabbe35f96fb9507f7330793dc490461b2962659ac5d427181e451a623751d1" - [[package]] name = "bech32" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -362,13 +368,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] -name = "bitvec" -version = "0.17.4" +name = "bitflags" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" dependencies = [ - "either", - "radium 0.3.0", + "serde", ] [[package]] @@ -378,78 +383,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", - "radium 0.7.0", + "radium", "tap", "wyz", ] -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding 0.1.5", - "byte-tools", - "byteorder", - "generic-array 0.12.4", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding 0.2.1", - "generic-array 0.14.7", -] - [[package]] name = "block-buffer" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array 0.14.7", + "generic-array", ] [[package]] -name = "block-padding" -version = "0.1.5" +name = "bs58" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" dependencies = [ - "byte-tools", + "sha2", + "tinyvec", ] -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - [[package]] name = "bumpalo" version = "3.12.0" @@ -462,12 +419,6 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - [[package]] name = "byteorder" version = "1.4.3" @@ -476,30 +427,21 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" - -[[package]] -name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] [[package]] name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" - -[[package]] -name = "cfg-if" -version = "0.1.10" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] [[package]] name = "cfg-if" @@ -509,27 +451,26 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", - "serde", - "time 0.1.45", "wasm-bindgen", - "winapi 0.3.9", + "windows-targets 0.48.0", ] [[package]] name = "cipher" -version = "0.3.0" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "generic-array 0.14.7", + "crypto-common", + "inout", ] [[package]] @@ -551,7 +492,7 @@ checksum = "14a1a858f532119338887a4b8e1af9c60de8249cd7bafd68036a489e261e37b6" dependencies = [ "anstream", "anstyle", - "bitflags", + "bitflags 1.3.2", "clap_lex", "strsim", ] @@ -562,10 +503,10 @@ version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] @@ -592,58 +533,53 @@ dependencies = [ [[package]] name = "coins-bip32" -version = "0.7.0" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634c509653de24b439672164bbf56f5f582a2ab0e313d3b0f6af0b7345cf2560" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" dependencies = [ - "bincode", "bs58", "coins-core", - "digest 0.10.6", - "getrandom 0.2.9", - "hmac 0.12.1", + "digest", + "hmac", "k256", - "lazy_static", "serde", - "sha2 0.10.6", + "sha2", "thiserror", ] [[package]] name = "coins-bip39" -version = "0.7.0" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a11892bcac83b4c6e95ab84b5b06c76d9d70ad73548dd07418269c5c7977171" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" dependencies = [ - "bitvec 0.17.4", + "bitvec", "coins-bip32", - "getrandom 0.2.9", - "hex", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "rand 0.8.5", - "sha2 0.10.6", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2", "thiserror", ] [[package]] name = "coins-core" -version = "0.7.0" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c94090a6663f224feae66ab01e41a2555a8296ee07b5f20dab8888bdefc9f617" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" dependencies = [ - "base58check", - "base64 0.12.3", - "bech32 0.7.3", - "blake2", - "digest 0.10.6", - "generic-array 0.14.7", + "base64 0.21.0", + "bech32", + "bs58", + "digest", + "generic-array", "hex", "ripemd", "serde", "serde_derive", - "sha2 0.10.6", - "sha3 0.10.7", + "sha2", + "sha3", "thiserror", ] @@ -666,12 +602,6 @@ dependencies = [ "unreachable", ] -[[package]] -name = "const-oid" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" - [[package]] name = "const-oid" version = "0.9.2" @@ -691,7 +621,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.20", + "time", "version_check", ] @@ -707,7 +637,7 @@ dependencies = [ "publicsuffix", "serde", "serde_json", - "time 0.3.20", + "time", "url", ] @@ -752,13 +682,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" [[package]] -name = "crossbeam-channel" -version = "0.5.8" +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ - "cfg-if 1.0.0", + "autocfg", + "cfg-if", "crossbeam-utils", + "memoffset", + "scopeguard", ] [[package]] @@ -767,7 +711,7 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -778,24 +722,12 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-bigint" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-bigint" -version = "0.4.9" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", + "generic-array", + "rand_core", "subtle", "zeroize", ] @@ -806,20 +738,10 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.7", + "generic-array", "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" -dependencies = [ - "generic-array 0.14.7", - "subtle", -] - [[package]] name = "ct-logs" version = "0.8.0" @@ -831,13 +753,40 @@ dependencies = [ [[package]] name = "ctr" -version = "0.7.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a232f92a03f37dd7d7dd2adc67166c77e9cd88de5b019b9a9eecfaeaf7bfd481" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + [[package]] name = "cxx" version = "1.0.94" @@ -862,7 +811,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] @@ -879,7 +828,7 @@ checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] @@ -889,7 +838,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1afa0591b1021e427e548a1f0f147fe6168f6c7c7f7006bace77f28856051b8" dependencies = [ "cynic-proc-macros", - "reqwest 0.11.16", + "reqwest", "serde", "serde_json", "static_assertions", @@ -994,20 +943,11 @@ dependencies = [ [[package]] name = "der" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" -dependencies = [ - "const-oid 0.7.1", -] - -[[package]] -name = "der" -version = "0.6.1" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ - "const-oid 0.9.2", + "const-oid", "zeroize", ] @@ -1037,29 +977,12 @@ dependencies = [ [[package]] name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", + "const-oid", "crypto-common", "subtle", ] @@ -1072,52 +995,59 @@ checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" [[package]] name = "ecdsa" -version = "0.14.8" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "der 0.6.1", - "elliptic-curve 0.12.3", + "der", + "digest", + "elliptic-curve", "rfc6979", "signature", + "spki", ] [[package]] -name = "either" -version = "1.8.1" +name = "ed25519" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] [[package]] -name = "elliptic-curve" -version = "0.11.12" +name = "ed25519-dalek" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" dependencies = [ - "base16ct", - "crypto-bigint 0.3.2", - "der 0.5.1", - "generic-array 0.14.7", - "rand_core 0.6.4", + "curve25519-dalek", + "ed25519", + "sha2", "subtle", - "zeroize", ] +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + [[package]] name = "elliptic-curve" -version = "0.12.3" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", - "crypto-bigint 0.4.9", - "der 0.6.1", - "digest 0.10.6", + "crypto-bigint", + "digest", "ff", - "generic-array 0.14.7", + "generic-array", "group", "pkcs8", - "rand_core 0.6.4", + "rand_core", "sec1", "subtle", "zeroize", @@ -1129,7 +1059,7 @@ version = "0.8.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1154,47 +1084,42 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] name = "eth-keystore" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d47d900a7dea08593d398104f8288e37858b0ad714c8d08cd03fdb86563e6402" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" dependencies = [ "aes", "ctr", - "digest 0.9.0", + "digest", "hex", - "hmac 0.11.0", - "pbkdf2 0.8.0", - "rand 0.8.5", + "hmac", + "pbkdf2 0.11.0", + "rand", "scrypt", "serde", "serde_json", - "sha2 0.9.9", - "sha3 0.9.1", + "sha2", + "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1202,39 +1127,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9146112ee3ce031aa5aebe3e049e10b1d353b9c7630cc6be488c2c62cc5d9c42" dependencies = [ "futures", - "hyper 0.14.25", + "hyper", "hyper-rustls 0.22.1", "hyper-timeout", "log", "pin-project", - "tokio 1.27.0", + "tokio", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "fastrand" -version = "1.9.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "ff" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "rand_core 0.6.4", + "rand_core", "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1242,7 +1164,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -1262,49 +1184,40 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -dependencies = [ - "bitflags", - "fuchsia-zircon-sys", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" - [[package]] name = "fuel-abi-types" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d99a7aeb41cdabffa38418b00fd57b5571dc58ee5af606e845a088befecd36" +checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ + "itertools 0.10.5", "lazy_static", + "proc-macro2", + "quote", "regex", "serde", + "serde_json", + "syn 2.0.41", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.26.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3711764e2f1489f35a4f69e7f345218c69649fdecc2d3d4515980ad33a30fa" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ + "bitflags 2.4.1", "fuel-types", "serde", + "strum", ] [[package]] name = "fuel-core" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f60830db595a1800f84aba58c939b1481a9a4582325d6552919438b74b07f11" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1318,6 +1231,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1326,49 +1240,48 @@ dependencies = [ "fuel-core-types", "futures", "hex", - "hyper 0.14.25", + "hyper", "itertools 0.10.5", - "num_cpus", + "parking_lot", "postcard", "primitive-types", - "rand 0.8.5", + "rand", "serde", "serde_json", - "strum 0.24.1", - "strum_macros 0.24.3", + "strum", + "strum_macros", "thiserror", - "tokio 1.27.0", + "tokio", "tokio-stream", "tower-http", "tracing", - "tracing-honeycomb", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8ce2b8c389bf5673977bc5650fe6293b7689299be355dfc0442edb15f6cefb9" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", - "bech32 0.9.1", + "bech32", "fuel-core-storage", "fuel-core-types", "hex", "itertools 0.10.5", "postcard", - "rand 0.8.5", "serde", "serde_json", - "serde_with", + "serde_with 1.14.0", "tracing", ] [[package]] name = "fuel-core-client" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed19928a2718d3467f9b63b6403aae2db8bbfbdd585fe92b8c7517f35a86a1fa" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1377,9 +1290,10 @@ dependencies = [ "fuel-core-types", "futures", "hex", - "hyper-rustls 0.22.1", + "hyper-rustls 0.24.2", "itertools 0.10.5", - "reqwest 0.11.16", + "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1389,34 +1303,34 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93be220e7724955ee76142b3d6e3557bd76cb5fada0a73d9948fe2dd8712361f" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", "fuel-core-poa", "fuel-core-types", - "tokio 1.27.0", + "tokio", ] [[package]] name = "fuel-core-database" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be372101189a98c146b8dd749d13e37e67258e23c398ff7d02d55d49c55396f9" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f74b9b8616670f9e7413821bb837111f69214bc7ca741485de42f9a328221172" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1426,36 +1340,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86dcdcdf72d093ff2759aad90be6d3419db773d0bef3bcaab5fbf9d69acb5f7e" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", - "tokio 1.27.0", + "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36fc735e0e6a1a79ee9016d90623e7318ccb1933cab9877701aaf796aa7b6958" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d85cfe2e86dc7d71699872ad2414949bc240fa293fc68a1ed938219e620baa9" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1463,57 +1380,59 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", - "tokio 1.27.0", + "tokio", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-producer" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac19c64e106c58101373c901b63c7cb00b303079637e6907f92656833826326" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", - "tokio 1.27.0", + "tokio", + "tokio-rayon", "tracing", ] [[package]] name = "fuel-core-services" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ec35fe0a6cc34425c73eae01157b243f9644835cd34e5f4e7f3f252effac8f" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", - "parking_lot 0.12.1", - "tokio 1.27.0", + "parking_lot", + "tokio", "tracing", ] [[package]] name = "fuel-core-storage" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5f908cf83134c6c4baefb26941ca9ad5056002c7ca79a47a69fd85baa53704" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c717647aa00bb1e96b27870c903bf53fb54fdd8dec786a92f95d74fdfad3e0" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1522,17 +1441,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", - "parking_lot 0.12.1", - "tokio 1.27.0", + "futures", + "parking_lot", + "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.17.9" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e77617a745c23c0fb34d85b83ed0f2d7fce0ac3385288ee5cae064f66e0f0868" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1546,100 +1467,128 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.26.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0509f3d02b36c9c4bff0d4f342931be9b670cbe3d5a14c45f9ff9b9c7dc39a16" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", - "getrandom 0.2.9", + "k256", "lazy_static", - "rand 0.8.5", + "p256", + "rand", "secp256k1", "serde", - "sha2 0.10.6", + "sha2", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.26.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44387bb9dfb76c68b0d61a8d038b68fd92ee3cb64092b5c67d4e8981be4b5551" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ - "digest 0.10.6", + "derive_more", + "digest", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.6", - "thiserror", + "serde", + "sha2", ] [[package]] name = "fuel-storage" -version = "0.26.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99472cf7ace40449d93491c1298ec4b34432ceff73d3e8037769e9d1fd1b4387" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.26.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c206d767975d7767ba3a84a352ddeb1221504a60ee69795da2b3c80844426726" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", + "hashbrown 0.14.3", "itertools 0.10.5", - "num-integer", - "rand 0.8.5", + "rand", "serde", "serde_json", + "strum", + "strum_macros", ] [[package]] name = "fuel-types" -version = "0.26.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55dd27327b039c3ad8d4dd34f02815d960e1d2f38b5e8d98d12197ddf8759f62" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", - "rand 0.8.5", + "rand", "serde", ] [[package]] name = "fuel-vm" -version = "0.26.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a9c06d45ebfc2eaad5204aadccaf57666ae9f793513192258bfd00fef78071" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", + "hashbrown 0.14.3", "itertools 0.10.5", - "rand 0.8.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", - "sha3 0.10.7", + "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", - "tracing", ] [[package]] name = "fuels" -version = "0.40.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f004d3452af2e93e1e5a28020d6a8eb8d782ff8b91f24805b0c42d846bcb206f" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1649,19 +1598,17 @@ dependencies = [ "fuels-macros", "fuels-programs", "fuels-test-helpers", - "fuels-types", ] [[package]] name = "fuels-accounts" -version = "0.40.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3ca71e9cde34d71d7c5a975ad3cec1c5ec8f50c64c3605413eca8e9441abb2" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes 1.4.0", "chrono", - "elliptic-curve 0.11.12", + "elliptic-curve", "eth-keystore", "fuel-core-client", "fuel-crypto", @@ -1669,152 +1616,121 @@ dependencies = [ "fuel-types", "fuel-vm", "fuels-core", - "fuels-types", "hex", - "itertools 0.10.5", - "rand 0.8.5", - "serde", - "sha2 0.9.9", + "rand", + "semver", "tai64", "thiserror", - "tokio 1.27.0", + "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.40.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43bf07b1ebbdebd8e85bf1ac24665923c4b0e51b9a08ed5d9ddf0431de8c4894" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools 0.10.5", - "lazy_static", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] name = "fuels-core" -version = "0.40.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9576f87f33448bed8c03c9046366813fc0336ed6817006c41ca087fb88af8334" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", + "bech32", + "chrono", + "fuel-abi-types", + "fuel-asm", + "fuel-core-chain-config", + "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", - "fuels-types", + "fuels-macros", "hex", - "itertools 0.10.5", - "sha2 0.9.9", + "itertools 0.12.0", + "serde", + "serde_json", + "sha2", + "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.40.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b042ffb853f97ddade1c728030fd28807f7eb978339a5d959869d13387c25356" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools 0.10.5", - "lazy_static", + "itertools 0.12.0", "proc-macro2", "quote", - "rand 0.8.5", - "regex", - "serde_json", - "syn 1.0.109", + "rand", + "syn 2.0.41", ] [[package]] name = "fuels-programs" -version = "0.40.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "437d2b05aea3114c3ae71047831d95db16108e068112e702289bc5cadb40ae26" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", - "bytes 1.4.0", + "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "fuels-types", - "futures", - "hex", - "itertools 0.10.5", - "proc-macro2", - "rand 0.8.5", - "regex", - "serde", + "itertools 0.12.0", + "rand", "serde_json", - "sha2 0.9.9", - "strum 0.21.0", - "strum_macros 0.21.1", - "thiserror", - "tokio 1.27.0", + "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.40.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f68ed08ff36e4c9a3d1aca5820463c9239efcfef2e7b6d6b8d60cc6a09e5a02" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", - "fuels-types", + "fuels-core", "futures", "hex", "portpicker", - "rand 0.8.5", + "rand", "serde", "serde_json", - "serde_with", + "serde_with 3.4.0", "tempfile", - "tokio 1.27.0", + "tokio", "which", ] -[[package]] -name = "fuels-types" -version = "0.40.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5849dbc89d27ca257dde78ab38b7e9599a716b5e49e2fd7a38369f5994e81975" -dependencies = [ - "bech32 0.9.1", - "chrono", - "fuel-abi-types", - "fuel-asm", - "fuel-core-chain-config", - "fuel-core-client", - "fuel-tx", - "fuel-types", - "fuels-macros", - "hex", - "itertools 0.10.5", - "lazy_static", - "proc-macro2", - "regex", - "serde", - "serde_json", - "strum 0.21.0", - "strum_macros 0.21.1", - "thiserror", -] - [[package]] name = "funty" version = "2.0.0" @@ -1877,7 +1793,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] @@ -1905,20 +1821,11 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.9", + "pin-project-lite", "pin-utils", "slab", ] -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -1927,31 +1834,25 @@ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", + "zeroize", ] [[package]] name = "getrandom" -version = "0.1.16" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi", ] [[package]] -name = "getrandom" -version = "0.2.9" +name = "gimli" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "graphql-parser" @@ -1965,42 +1866,22 @@ dependencies = [ [[package]] name = "group" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core 0.6.4", + "rand_core", "subtle", ] -[[package]] -name = "h2" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535" -dependencies = [ - "bytes 0.5.6", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio 0.2.25", - "tokio-util 0.3.1", - "tracing", - "tracing-futures", -] - [[package]] name = "h2" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f" dependencies = [ - "bytes 1.4.0", + "bytes", "fnv", "futures-core", "futures-sink", @@ -2008,8 +1889,8 @@ dependencies = [ "http", "indexmap", "slab", - "tokio 1.27.0", - "tokio-util 0.7.7", + "tokio", + "tokio-util", "tracing", ] @@ -2037,6 +1918,17 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] + [[package]] name = "heapless" version = "0.7.16" @@ -2051,15 +1943,6 @@ dependencies = [ "stable_deref_trait", ] -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "heck" version = "0.4.1" @@ -2092,21 +1975,20 @@ dependencies = [ [[package]] name = "hmac" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "crypto-mac", - "digest 0.9.0", + "digest", ] [[package]] -name = "hmac" -version = "0.12.1" +name = "home" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" dependencies = [ - "digest 0.10.6", + "windows-sys 0.48.0", ] [[package]] @@ -2115,19 +1997,9 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ - "bytes 1.4.0", + "bytes", "fnv", - "itoa 1.0.6", -] - -[[package]] -name = "http-body" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" -dependencies = [ - "bytes 0.5.6", - "http", + "itoa", ] [[package]] @@ -2136,9 +2008,9 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ - "bytes 1.4.0", + "bytes", "http", - "pin-project-lite 0.2.9", + "pin-project-lite", ] [[package]] @@ -2153,12 +2025,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" -[[package]] -name = "httpdate" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" - [[package]] name = "httpdate" version = "1.0.2" @@ -2167,68 +2033,28 @@ checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" [[package]] name = "hyper" -version = "0.13.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb" -dependencies = [ - "bytes 0.5.6", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.2.7", - "http", - "http-body 0.3.1", - "httparse", - "httpdate 0.3.2", - "itoa 0.4.8", - "pin-project", - "socket2 0.3.19", - "tokio 0.2.25", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "0.14.25" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ - "bytes 1.4.0", + "bytes", "futures-channel", "futures-core", "futures-util", - "h2 0.3.17", + "h2", "http", - "http-body 0.4.5", + "http-body", "httparse", - "httpdate 1.0.2", - "itoa 1.0.6", - "pin-project-lite 0.2.9", + "httpdate", + "itoa", + "pin-project-lite", "socket2 0.4.9", - "tokio 1.27.0", + "tokio", "tower-service", "tracing", "want", ] -[[package]] -name = "hyper-rustls" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6" -dependencies = [ - "bytes 0.5.6", - "futures-util", - "hyper 0.13.10", - "log", - "rustls 0.18.1", - "tokio 0.2.25", - "tokio-rustls 0.14.1", - "webpki 0.21.4", -] - [[package]] name = "hyper-rustls" version = "0.22.1" @@ -2237,14 +2063,13 @@ checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" dependencies = [ "ct-logs", "futures-util", - "hyper 0.14.25", + "hyper", "log", "rustls 0.19.1", - "rustls-native-certs", - "tokio 1.27.0", + "rustls-native-certs 0.5.0", + "tokio", "tokio-rustls 0.22.0", "webpki 0.21.4", - "webpki-roots 0.21.1", ] [[package]] @@ -2254,21 +2079,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" dependencies = [ "http", - "hyper 0.14.25", + "hyper", "rustls 0.20.8", - "tokio 1.27.0", + "tokio", "tokio-rustls 0.23.4", ] +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.10", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", + "webpki-roots 0.25.3", +] + [[package]] name = "hyper-timeout" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper 0.14.25", - "pin-project-lite 0.2.9", - "tokio 1.27.0", + "hyper", + "pin-project-lite", + "tokio", "tokio-io-timeout", ] @@ -2355,12 +2197,12 @@ dependencies = [ ] [[package]] -name = "instant" -version = "0.1.12" +name = "inout" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "cfg-if 1.0.0", + "generic-array", ] [[package]] @@ -2374,15 +2216,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "iovec" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" -dependencies = [ - "libc", -] - [[package]] name = "ipnet" version = "2.7.2" @@ -2397,34 +2230,28 @@ checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", - "rustix", + "rustix 0.37.11", "windows-sys 0.48.0", ] [[package]] name = "itertools" -version = "0.9.0" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.10.5" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" dependencies = [ "either", ] -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - [[package]] name = "itoa" version = "1.0.6" @@ -2442,14 +2269,16 @@ dependencies = [ [[package]] name = "k256" -version = "0.11.6" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "ecdsa", - "elliptic-curve 0.12.3", - "sha2 0.10.6", + "elliptic-curve", + "once_cell", + "sha2", + "signature", ] [[package]] @@ -2461,16 +2290,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "kernel32-sys" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -dependencies = [ - "winapi 0.2.8", - "winapi-build", -] - [[package]] name = "lazy_static" version = "1.4.0" @@ -2479,26 +2298,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.141" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] -name = "libhoney-rust" -version = "0.1.6" +name = "libm" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10229f6f716bca15e59862b9a5cb724a53bf02083a70f8e7d2cd43f226a0e63e" -dependencies = [ - "chrono", - "crossbeam-channel", - "log", - "parking_lot 0.11.2", - "rand 0.8.5", - "reqwest 0.10.10", - "serde", - "serde_json", - "tokio 0.2.25", -] +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "link-cplusplus" @@ -2515,6 +2323,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + [[package]] name = "lock_api" version = "0.4.9" @@ -2531,7 +2345,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -2548,67 +2362,43 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] -name = "mime" -version = "0.3.17" +name = "memoffset" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ - "mime", - "unicase", + "autocfg", ] [[package]] -name = "mio" -version = "0.6.23" +name = "mime" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" -dependencies = [ - "cfg-if 0.1.10", - "fuchsia-zircon", - "fuchsia-zircon-sys", - "iovec", - "kernel32-sys", - "libc", - "log", - "miow", - "net2", - "slab", - "winapi 0.2.8", -] +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] -name = "mio" -version = "0.8.6" +name = "miniz_oxide" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.45.0", + "adler", ] [[package]] -name = "miow" -version = "0.2.2" +name = "mio" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ - "kernel32-sys", - "net2", - "winapi 0.2.8", - "ws2_32-sys", + "libc", + "wasi", + "windows-sys 0.48.0", ] [[package]] @@ -2617,7 +2407,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" dependencies = [ - "bytes 1.4.0", + "bytes", "encoding_rs", "futures-util", "http", @@ -2629,37 +2419,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "net2" -version = "0.2.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "winapi 0.3.9", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi 0.3.9", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.15" @@ -2680,22 +2439,19 @@ dependencies = [ ] [[package]] -name = "once_cell" -version = "1.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" - -[[package]] -name = "opaque-debug" -version = "0.2.3" +name = "object" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "once_cell" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl-probe" @@ -2704,10 +2460,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] -name = "overload" -version = "0.1.1" +name = "p256" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", +] [[package]] name = "parity-scale-codec" @@ -2716,7 +2478,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "637935964ff85a605d114591d4d2c13c5d1ba2806dae97cea6bf180238a749ac" dependencies = [ "arrayvec", - "bitvec 1.0.1", + "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", @@ -2735,17 +2497,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.1" @@ -2753,21 +2504,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.7", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi 0.3.9", + "parking_lot_core", ] [[package]] @@ -2776,7 +2513,7 @@ version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall 0.2.16", "smallvec", @@ -2784,57 +2521,35 @@ dependencies = [ ] [[package]] -name = "password-hash" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e0b28ace46c5a396546bcf443bf422b57049617433d8854227352a4a9b24e7" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "password-hash" -version = "0.4.2" +name = "paste" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "pbkdf2" -version = "0.8.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "base64ct", - "crypto-mac", - "hmac 0.11.0", - "password-hash 0.2.3", - "sha2 0.9.9", + "digest", ] [[package]] name = "pbkdf2" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "digest 0.10.6", - "hmac 0.12.1", - "password-hash 0.4.2", - "sha2 0.10.6", + "digest", + "hmac", ] [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" @@ -2868,15 +2583,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2886,21 +2595,27 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkcs8" -version = "0.9.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.6.1", + "der", "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] @@ -2920,6 +2635,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2943,9 +2667,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2957,8 +2681,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" dependencies = [ "dtoa", - "itoa 1.0.6", - "parking_lot 0.12.1", + "itoa", + "parking_lot", "prometheus-client-derive-text-encode", ] @@ -2969,8 +2693,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e227aeb6c2cfec819e999c4773b35f8c7fa37298a203ff46420095458eee567e" dependencies = [ "dtoa", - "itoa 1.0.6", - "parking_lot 0.12.1", + "itoa", + "parking_lot", "prometheus-client-derive-encode", ] @@ -3014,38 +2738,19 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.26" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" - [[package]] name = "radium" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -3053,18 +2758,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", + "rand_chacha", + "rand_core", ] [[package]] @@ -3074,34 +2769,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", + "rand_core", ] [[package]] name = "rand_core" -version = "0.5.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.1.16", + "getrandom", ] [[package]] -name = "rand_core" -version = "0.6.4" +name = "rayon" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ - "getrandom 0.2.9", + "either", + "rayon-core", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "rayon-core" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "rand_core 0.5.1", + "crossbeam-deque", + "crossbeam-utils", ] [[package]] @@ -3110,71 +2807,46 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] name = "regex" -version = "1.7.3" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", + "regex-automata", "regex-syntax", ] [[package]] -name = "regex-syntax" -version = "0.6.29" +name = "regex-automata" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] -name = "reqwest" -version = "0.10.10" +name = "regex-syntax" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0718f81a8e14c4dbb3b34cf23dc6aaf9ab8a0dfec160c534b3dbca1aaa21f47c" -dependencies = [ - "base64 0.13.1", - "bytes 0.5.6", - "encoding_rs", - "futures-core", - "futures-util", - "http", - "http-body 0.3.1", - "hyper 0.13.10", - "hyper-rustls 0.21.0", - "ipnet", - "js-sys", - "lazy_static", - "log", - "mime", - "mime_guess", - "percent-encoding", - "pin-project-lite 0.2.9", - "rustls 0.18.1", - "serde", - "serde_json", - "serde_urlencoded", - "tokio 0.2.25", - "tokio-rustls 0.14.1", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.20.0", - "winreg 0.7.0", -] +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -3183,16 +2855,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" dependencies = [ "base64 0.21.0", - "bytes 1.4.0", + "bytes", "cookie", "cookie_store", "encoding_rs", "futures-core", "futures-util", - "h2 0.3.17", + "h2", "http", - "http-body 0.4.5", - "hyper 0.14.25", + "http-body", + "hyper", "hyper-rustls 0.23.2", "ipnet", "js-sys", @@ -3200,13 +2872,13 @@ dependencies = [ "mime", "once_cell", "percent-encoding", - "pin-project-lite 0.2.9", + "pin-project-lite", "rustls 0.20.8", "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", - "tokio 1.27.0", + "tokio", "tokio-rustls 0.23.4", "tower-service", "url", @@ -3214,18 +2886,17 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots 0.22.6", - "winreg 0.10.1", + "winreg", ] [[package]] name = "rfc6979" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ - "crypto-bigint 0.4.9", - "hmac 0.12.1", - "zeroize", + "hmac", + "subtle", ] [[package]] @@ -3238,9 +2909,23 @@ dependencies = [ "libc", "once_cell", "spin 0.5.2", - "untrusted", + "untrusted 0.7.1", "web-sys", - "winapi 0.3.9", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +dependencies = [ + "cc", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.48.0", ] [[package]] @@ -3249,9 +2934,15 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest 0.10.6", + "digest", ] +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -3273,25 +2964,25 @@ version = "0.37.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77" dependencies = [ - "bitflags", + "bitflags 1.3.2", "errno", "io-lifetimes", "libc", - "linux-raw-sys", + "linux-raw-sys 0.3.1", "windows-sys 0.48.0", ] [[package]] -name = "rustls" -version = "0.18.1" +name = "rustix" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1126dcf58e93cee7d098dbda643b5f92ed724f1f6a63007c1116eed6700c81" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ - "base64 0.12.3", - "log", - "ring", - "sct 0.6.1", - "webpki 0.21.4", + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys 0.4.12", + "windows-sys 0.52.0", ] [[package]] @@ -3302,7 +2993,7 @@ checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" dependencies = [ "base64 0.13.1", "log", - "ring", + "ring 0.16.20", "sct 0.6.1", "webpki 0.21.4", ] @@ -3314,11 +3005,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ "log", - "ring", + "ring 0.16.20", "sct 0.7.0", "webpki 0.22.0", ] +[[package]] +name = "rustls" +version = "0.21.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +dependencies = [ + "log", + "ring 0.17.7", + "rustls-webpki", + "sct 0.7.0", +] + [[package]] name = "rustls-native-certs" version = "0.5.0" @@ -3331,6 +3034,18 @@ dependencies = [ "security-framework", ] +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + [[package]] name = "rustls-pemfile" version = "1.0.2" @@ -3340,6 +3055,16 @@ dependencies = [ "base64 0.21.0", ] +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.7", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.12" @@ -3354,9 +3079,9 @@ checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "salsa20" -version = "0.8.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecbd2eb639fd7cab5804a0837fe373cc2172d15437e804c054a9fb885cb923b0" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" dependencies = [ "cipher", ] @@ -3370,6 +3095,32 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -3384,16 +3135,14 @@ checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" [[package]] name = "scrypt" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879588d8f90906e73302547e20fffefdd240eb3e0e744e142321f5d49dea0518" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" dependencies = [ - "base64ct", - "hmac 0.11.0", - "password-hash 0.2.3", - "pbkdf2 0.8.0", + "hmac", + "pbkdf2 0.11.0", "salsa20", - "sha2 0.9.9", + "sha2", ] [[package]] @@ -3402,8 +3151,8 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" dependencies = [ - "ring", - "untrusted", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] @@ -3412,19 +3161,19 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ - "ring", - "untrusted", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] name = "sec1" -version = "0.3.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", - "der 0.6.1", - "generic-array 0.14.7", + "der", + "generic-array", "pkcs8", "subtle", "zeroize", @@ -3432,19 +3181,19 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.24.3" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" +checksum = "4124a35fe33ae14259c490fd70fa199a32b9ce9502f2ee6bc4f81ec06fa65894" dependencies = [ - "rand 0.8.5", + "rand", "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.6.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" dependencies = [ "cc", ] @@ -3464,7 +3213,7 @@ version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -3483,37 +3232,37 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.160" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.160" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ - "itoa 1.0.6", + "itoa", "ryu", "serde", ] @@ -3525,7 +3274,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.6", + "itoa", "ryu", "serde", ] @@ -3537,81 +3286,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" dependencies = [ "serde", - "serde_json", - "serde_with_macros", -] - -[[package]] -name = "serde_with_macros" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" -dependencies = [ - "darling 0.13.4", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.0", -] - -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", + "serde_with_macros", ] [[package]] -name = "sha2" -version = "0.9.9" +name = "serde_with" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.0", + "serde", ] [[package]] -name = "sha2" -version = "0.10.6" +name = "serde_with_macros" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.6", + "darling 0.13.4", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "sha3" -version = "0.9.1" +name = "sha2" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug 0.3.0", + "cfg-if", + "cpufeatures", + "digest", ] [[package]] @@ -3620,19 +3327,10 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54c2bb1a323307527314a36bfb73f24febb08ce2b8a554bf4ffd6f51ad15198c" dependencies = [ - "digest 0.10.6", + "digest", "keccak", ] -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static", -] - [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -3644,12 +3342,12 @@ dependencies = [ [[package]] name = "signature" -version = "1.6.4" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ - "digest 0.10.6", - "rand_core 0.6.4", + "digest", + "rand_core", ] [[package]] @@ -3669,23 +3367,22 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "socket2" -version = "0.3.19" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ - "cfg-if 1.0.0", "libc", - "winapi 0.3.9", + "winapi", ] [[package]] name = "socket2" -version = "0.4.9" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "winapi 0.3.9", + "windows-sys 0.48.0", ] [[package]] @@ -3705,12 +3402,12 @@ dependencies = [ [[package]] name = "spki" -version = "0.6.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der 0.6.1", + "der", ] [[package]] @@ -3731,28 +3428,13 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "strum" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" - [[package]] name = "strum" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" - -[[package]] -name = "strum_macros" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "syn 1.0.109", + "strum_macros", ] [[package]] @@ -3761,7 +3443,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck 0.4.1", + "heck", "proc-macro2", "quote", "rustversion", @@ -3787,9 +3469,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.15" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ "proc-macro2", "quote", @@ -3802,6 +3484,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3819,15 +3513,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.5.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fastrand", - "redox_syscall 0.3.5", - "rustix", - "windows-sys 0.45.0", + "redox_syscall 0.4.1", + "rustix 0.38.28", + "windows-sys 0.48.0", ] [[package]] @@ -3835,7 +3529,7 @@ name = "template-contract" version = "0.0.0" dependencies = [ "fuels", - "tokio 1.27.0", + "tokio", ] [[package]] @@ -3849,43 +3543,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.40" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi 0.3.9", + "syn 2.0.41", ] [[package]] @@ -3894,7 +3567,7 @@ version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ - "itoa 1.0.6", + "itoa", "serde", "time-core", "time-macros", @@ -3932,39 +3605,21 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092" -dependencies = [ - "bytes 0.5.6", - "fnv", - "futures-core", - "iovec", - "lazy_static", - "memchr", - "mio 0.6.23", - "num_cpus", - "pin-project-lite 0.1.12", - "slab", -] - -[[package]] -name = "tokio" -version = "1.27.0" +version = "1.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de47a4eecbe11f498978a9b29d792f0d2692d1dd003650c24c76510e3bc001" +checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" dependencies = [ - "autocfg", - "bytes 1.4.0", + "backtrace", + "bytes", "libc", - "mio 0.8.6", + "mio", "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite 0.2.9", + "parking_lot", + "pin-project-lite", "signal-hook-registry", - "socket2 0.4.9", + "socket2 0.5.5", "tokio-macros", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -3973,31 +3628,29 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ - "pin-project-lite 0.2.9", - "tokio 1.27.0", + "pin-project-lite", + "tokio", ] [[package]] name = "tokio-macros" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a573bdc87985e9d6ddeed1b3d864e8a302c847e40d647746df2f1de209d1ce" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] -name = "tokio-rustls" -version = "0.14.1" +name = "tokio-rayon" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" +checksum = "7cf33a76e0b1dd03b778f83244137bd59887abf25c0e87bc3e7071105f457693" dependencies = [ - "futures-core", - "rustls 0.18.1", - "tokio 0.2.25", - "webpki 0.21.4", + "rayon", + "tokio", ] [[package]] @@ -4007,7 +3660,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" dependencies = [ "rustls 0.19.1", - "tokio 1.27.0", + "tokio", "webpki 0.21.4", ] @@ -4018,34 +3671,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ "rustls 0.20.8", - "tokio 1.27.0", + "tokio", "webpki 0.22.0", ] [[package]] -name = "tokio-stream" -version = "0.1.12" +name = "tokio-rustls" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "futures-core", - "pin-project-lite 0.2.9", - "tokio 1.27.0", - "tokio-util 0.7.7", + "rustls 0.21.10", + "tokio", ] [[package]] -name = "tokio-util" -version = "0.3.1" +name = "tokio-stream" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" +checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" dependencies = [ - "bytes 0.5.6", "futures-core", - "futures-sink", - "log", - "pin-project-lite 0.1.12", - "tokio 0.2.25", + "pin-project-lite", + "tokio", + "tokio-util", ] [[package]] @@ -4054,11 +3703,11 @@ version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5427d89453009325de0d8f342c9490009f76e999cb7672d77e46267448f7e6b2" dependencies = [ - "bytes 1.4.0", + "bytes", "futures-core", "futures-sink", - "pin-project-lite 0.2.9", - "tokio 1.27.0", + "pin-project-lite", + "tokio", "tracing", ] @@ -4088,8 +3737,8 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite 0.2.9", - "tokio 1.27.0", + "pin-project-lite", + "tokio", "tower-layer", "tower-service", "tracing", @@ -4101,14 +3750,15 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" dependencies = [ - "bitflags", - "bytes 1.4.0", + "bitflags 1.3.2", + "bytes", "futures-core", "futures-util", "http", - "http-body 0.4.5", + "http-body", "http-range-header", - "pin-project-lite 0.2.9", + "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -4133,9 +3783,9 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "log", - "pin-project-lite 0.2.9", + "pin-project-lite", "tracing-attributes", "tracing-core", ] @@ -4158,20 +3808,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" dependencies = [ "once_cell", - "valuable", -] - -[[package]] -name = "tracing-distributed" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de30b98573d9e63e82996b3c9bf950210ba3f2dcf363f7eec000acebef1a4377" -dependencies = [ - "itertools 0.9.0", - "parking_lot 0.11.2", - "tracing", - "tracing-core", - "tracing-subscriber", ] [[package]] @@ -4186,50 +3822,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tracing-honeycomb" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cced581bc7226c4c3e6d48905f256eef9100c1dc2f9a0e441bdeed825cd831de" -dependencies = [ - "chrono", - "libhoney-rust", - "parking_lot 0.11.2", - "rand 0.7.3", - "serde", - "serde_json", - "sha-1", - "tracing", - "tracing-core", - "tracing-distributed", - "uuid", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" -dependencies = [ - "nu-ansi-term", - "sharded-slab", - "smallvec", - "thread_local", - "tracing-core", - "tracing-log", -] - [[package]] name = "try-lock" version = "0.2.4" @@ -4260,15 +3852,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - [[package]] name = "unicode-bidi" version = "0.3.13" @@ -4290,18 +3873,18 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - [[package]] name = "unicode-width" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -4317,6 +3900,12 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.3.1" @@ -4340,15 +3929,18 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.9", + "getrandom", "serde", ] [[package]] -name = "valuable" -version = "0.1.0" +name = "uuid" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] [[package]] name = "version_check" @@ -4372,18 +3964,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -4396,9 +3976,7 @@ version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ - "cfg-if 1.0.0", - "serde", - "serde_json", + "cfg-if", "wasm-bindgen-macro", ] @@ -4423,7 +4001,7 @@ version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -4474,8 +4052,8 @@ version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" dependencies = [ - "ring", - "untrusted", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] @@ -4484,54 +4062,38 @@ version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f20dea7535251981a9670857150d571846545088359b28e4951d350bdaf179f" -dependencies = [ - "webpki 0.21.4", + "ring 0.16.20", + "untrusted 0.7.1", ] [[package]] name = "webpki-roots" -version = "0.21.1" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "webpki 0.21.4", + "webpki 0.22.0", ] [[package]] name = "webpki-roots" -version = "0.22.6" +version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki 0.22.0", -] +checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix 0.38.28", + "windows-sys 0.48.0", ] -[[package]] -name = "winapi" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" - [[package]] name = "winapi" version = "0.3.9" @@ -4542,12 +4104,6 @@ dependencies = [ "winapi-x86_64-pc-windows-gnu", ] -[[package]] -name = "winapi-build" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" - [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" @@ -4560,7 +4116,7 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] @@ -4611,6 +4167,15 @@ dependencies = [ "windows-targets 0.48.0", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -4641,6 +4206,21 @@ dependencies = [ "windows_x86_64_msvc 0.48.0", ] +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -4653,6 +4233,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -4665,6 +4251,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -4677,6 +4269,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -4689,6 +4287,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -4701,6 +4305,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -4713,6 +4323,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -4725,6 +4341,12 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" version = "0.4.1" @@ -4736,39 +4358,40 @@ dependencies = [ [[package]] name = "winreg" -version = "0.7.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ - "winapi 0.3.9", + "winapi", ] [[package]] -name = "winreg" -version = "0.10.1" +name = "wyz" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" dependencies = [ - "winapi 0.3.9", + "tap", ] [[package]] -name = "ws2_32-sys" -version = "0.2.1" +name = "zerocopy" +version = "0.7.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +checksum = "306dca4455518f1f31635ec308b6b3e4eb1b11758cefafc782827d0aa7acb5c7" dependencies = [ - "winapi 0.2.8", - "winapi-build", + "zerocopy-derive", ] [[package]] -name = "wyz" -version = "0.5.1" +name = "zerocopy-derive" +version = "0.7.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +checksum = "be912bf68235a88fbefd1b73415cb218405958d1655b2ece9035a19920bdf6ba" dependencies = [ - "tap", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] @@ -4788,5 +4411,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] diff --git a/.devops/.template/project/Forc.lock b/.devops/.template/project/Forc.lock index 612dc7943..f6c5dc442 100644 --- a/.devops/.template/project/Forc.lock +++ b/.devops/.template/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'core' -source = 'path+from-root-FDF4A5DCC6ECD181' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.37.0#607ac50176db8bef936f91bacf435d0ea37d041e' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] [[package]] -name = 'template-contract' -source = 'member' -dependencies = ['std'] +name = "template-contract" +source = "member" +dependencies = ["std"] diff --git a/.devops/.template/project/contracts/template-contract/Cargo.toml b/.devops/.template/project/contracts/template-contract/Cargo.toml index 78c4562a7..57a1eb907 100644 --- a/.devops/.template/project/contracts/template-contract/Cargo.toml +++ b/.devops/.template/project/contracts/template-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.40.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/.devops/.template/project/contracts/template-contract/src/data_structures.sw b/.devops/.template/project/contracts/template-contract/src/data_structures.sw index 5ab204198..992872ce5 100644 --- a/.devops/.template/project/contracts/template-contract/src/data_structures.sw +++ b/.devops/.template/project/contracts/template-contract/src/data_structures.sw @@ -1,3 +1,3 @@ library; -mod example; +pub mod example; diff --git a/.devops/.template/project/contracts/template-contract/tests/utils/setup.rs b/.devops/.template/project/contracts/template-contract/tests/utils/setup.rs index f0e0413a7..e8ba6e4fc 100644 --- a/.devops/.template/project/contracts/template-contract/tests/utils/setup.rs +++ b/.devops/.template/project/contracts/template-contract/tests/utils/setup.rs @@ -19,23 +19,20 @@ pub async fn setup() -> (Template, WalletUnlocked) { Some(amount_per_coin), ); - let provider_config = Config { - manual_blocks_enabled: true, // Necessary so the `produce_blocks` API can be used locally - ..Config::local_node() - }; - - let mut wallets = - launch_custom_provider_and_get_wallets(wallet_config, Some(provider_config), None).await; + let mut wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None) + .await + .unwrap(); let wallet = wallets.pop().unwrap(); - let storage_configuration = StorageConfiguration::load_from(TEMPLATE_CONTRACT_STORAGE_PATH); + let storage_configuration = StorageConfiguration::default() + .add_slot_overrides_from_file(TEMPLATE_CONTRACT_STORAGE_PATH); let configuration = - LoadConfiguration::default().set_storage_configuration(storage_configuration.unwrap()); + LoadConfiguration::default().with_storage_configuration(storage_configuration.unwrap()); let id = Contract::load_from(TEMPLATE_CONTRACT_BINARY_PATH, configuration) .unwrap() - .deploy(&wallet, TxParameters::default()) + .deploy(&wallet, TxPolicies::default()) .await .unwrap(); diff --git a/.devops/.template/project/fuel-toolchain.toml b/.devops/.template/project/fuel-toolchain.toml index 184fe8a26..e75c0bb58 100644 --- a/.devops/.template/project/fuel-toolchain.toml +++ b/.devops/.template/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-04-12" +channel = "nightly-2024-01-24" [components] -forc = "0.37.0" -fuel-core = "0.17.9" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/.devops/aurora/fuel-toolchain.toml b/.devops/aurora/fuel-toolchain.toml index e7bdfe4e6..e75c0bb58 100644 --- a/.devops/aurora/fuel-toolchain.toml +++ b/.devops/aurora/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "2023-02-16" +channel = "nightly-2024-01-24" [components] -forc = "0.35.1" -fuel-core = "0.17.2" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/.docs/contributing-book/src/code/Forc.lock b/.docs/contributing-book/src/code/Forc.lock index 894c07528..8aff630b6 100644 --- a/.docs/contributing-book/src/code/Forc.lock +++ b/.docs/contributing-book/src/code/Forc.lock @@ -1,18 +1,18 @@ [[package]] -name = 'bad_documentation' -source = 'member' -dependencies = ['std'] +name = "bad_documentation" +source = "member" +dependencies = ["std"] [[package]] -name = 'connect_four' -source = 'member' -dependencies = ['std'] +name = "connect_four" +source = "member" +dependencies = ["std"] [[package]] -name = 'core' -source = 'path+from-root-EB296BD18C0E4CC4' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.44.1#04a597093e7441898933dd412b8e4dc6ac860cd3' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/.docs/contributing-book/src/code/fuel-toolchain.toml b/.docs/contributing-book/src/code/fuel-toolchain.toml index 60b8a5864..e75c0bb58 100644 --- a/.docs/contributing-book/src/code/fuel-toolchain.toml +++ b/.docs/contributing-book/src/code/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-08-16" +channel = "nightly-2024-01-24" [components] -forc = "0.44.1" -fuel-core = "0.20.4" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 79a5c373c..6c7dd563c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ concurrency: cancel-in-progress: true env: - RUST_VERSION: 1.71.1 + RUST_VERSION: 1.74.0 jobs: lint-toml-files: @@ -73,8 +73,8 @@ jobs: - name: Install Fuel toolchain uses: FuelLabs/action-fuel-toolchain@v0.6.0 with: - toolchain: latest - date: 2023-09-29 + toolchain: nightly + date: 2024-01-24 - name: Check Sway formatting run: | @@ -133,11 +133,11 @@ jobs: - name: Install Fuel toolchain uses: FuelLabs/action-fuel-toolchain@v0.6.0 with: - toolchain: latest - date: 2023-08-16 + toolchain: nightly + date: 2024-01-24 - name: Check Sway formatting - run: forc fmt --check --path ${{ matrix.project }} + run: cd ${{ matrix.project }} && forc fmt --check - name: Build Sway - run: forc build --locked --path ${{ matrix.project }} + run: cd ${{ matrix.project }} && forc build --locked diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index f0ee5f7f8..e7752504c 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -8,7 +8,7 @@ on: - v* env: - RUST_VERSION: 1.63.0 + RUST_VERSION: 1.74.0 jobs: deploy: diff --git a/DAO/README.md b/DAO/README.md index 075f72837..d477884b2 100644 --- a/DAO/README.md +++ b/DAO/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/DAO/project/Cargo.lock b/DAO/project/Cargo.lock index 9e6c10b64..7d44ffab0 100644 --- a/DAO/project/Cargo.lock +++ b/DAO/project/Cargo.lock @@ -66,6 +66,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -240,18 +246,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -329,6 +335,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -384,9 +391,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -428,12 +438,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -463,9 +467,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -484,17 +488,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -539,7 +542,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -569,7 +572,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -586,7 +589,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -605,7 +608,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -648,7 +651,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -665,7 +668,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -798,6 +801,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -983,6 +1013,26 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", +] + [[package]] name = "either" version = "1.9.0" @@ -991,9 +1041,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1034,7 +1084,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1080,12 +1130,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1117,6 +1173,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f69037fe1b785e84986b4f2cbcf647381876a00671d25ceef715d7812dd7e1dd" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1146,23 +1208,28 @@ dependencies = [ [[package]] name = "fuel-abi-types" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d99a7aeb41cdabffa38418b00fd57b5571dc58ee5af606e845a088befecd36" +checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ + "itertools 0.10.5", "lazy_static", + "proc-macro2", + "quote", "regex", "serde", + "serde_json", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1170,9 +1237,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1186,6 +1253,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1195,7 +1263,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1208,22 +1277,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1232,9 +1301,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1244,8 +1313,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1255,9 +1325,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1268,21 +1338,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1292,36 +1362,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1336,15 +1409,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1352,12 +1425,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1366,21 +1440,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1389,17 +1463,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1413,55 +1489,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1471,10 +1565,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1482,31 +1577,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa0bee7463c6bee4920c60315492a25a3026f1a68d15570cef7b470b04ecdf9" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1516,17 +1620,15 @@ dependencies = [ "fuels-macros", "fuels-programs", "fuels-test-helpers", - "fuels-types", ] [[package]] name = "fuels-accounts" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dad265d8fc612aaef2a4c1fa8bb14d77541575a6d2de6d26e66acc94afdaae" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1536,148 +1638,121 @@ dependencies = [ "fuel-types", "fuel-vm", "fuels-core", - "fuels-types", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e7b697abfac23b3505fa3136bb3e910ed664caa58d1efcb6e11644aa95d8aa" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d565f3c3c2974616984149c0440e03aadd600abe29e6268d41ebbdf21ae89915" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", + "bech32 0.9.1", + "chrono", + "fuel-abi-types", + "fuel-asm", + "fuel-core-chain-config", + "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", - "fuels-types", + "fuels-macros", "hex", - "itertools", - "sha2 0.10.7", + "itertools 0.12.0", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396b1007bf06f788b47bc710f53bce2cf5c74c32cf072baeae46abfbba1b5c33" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6c51214d91115708cea3c7ea62e447623305b281c341f5ed6a18a14ab40f8e" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "fuels-types", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cac950d5fb1a182c897135e68337e750dd8a48e35dd3849a9fc2d602eb55035" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", - "fuels-types", + "fuels-core", "futures", "hex", "portpicker", "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", ] -[[package]] -name = "fuels-types" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e94e08cfab823b1a6ed2830fe22067dd7112f0fe5228bec23d4e95cefebcfe" -dependencies = [ - "bech32 0.9.1", - "chrono", - "fuel-abi-types", - "fuel-asm", - "fuel-core-chain-config", - "fuel-core-client", - "fuel-tx", - "fuel-types", - "fuels-macros", - "hex", - "itertools", - "proc-macro2", - "regex", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror", -] - [[package]] name = "funty" version = "2.0.0" @@ -1740,7 +1815,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1793,7 +1868,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1872,6 +1947,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1917,6 +1997,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1974,7 +2063,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2163,6 +2252,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2188,7 +2286,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2209,15 +2307,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2249,9 +2353,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2279,12 +2383,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2306,16 +2410,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -2362,6 +2456,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2406,11 +2512,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2463,14 +2575,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2488,6 +2600,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2514,6 +2632,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2537,9 +2664,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -2608,9 +2735,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2688,11 +2815,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2702,9 +2838,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2713,9 +2849,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2815,11 +2951,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", @@ -2934,6 +3070,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2949,7 +3111,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3039,35 +3201,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.175" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.175" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3098,9 +3260,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3132,9 +3294,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3195,6 +3357,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "spin" version = "0.5.2" @@ -3279,9 +3451,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3294,6 +3466,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3311,46 +3495,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3397,11 +3570,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3410,7 +3582,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3427,13 +3599,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3540,6 +3712,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3579,7 +3752,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3654,6 +3827,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3696,6 +3875,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3717,12 +3905,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3750,7 +3932,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3784,7 +3966,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3845,13 +4027,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -3995,5 +4179,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] diff --git a/DAO/project/Forc.lock b/DAO/project/Forc.lock index d529c1c90..e66371969 100644 --- a/DAO/project/Forc.lock +++ b/DAO/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'DAO-contract' -source = 'member' -dependencies = ['std'] +name = "DAO-contract" +source = "member" +dependencies = ["std"] [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/DAO/project/contracts/DAO-contract/Cargo.toml b/DAO/project/contracts/DAO-contract/Cargo.toml index f822af1d1..d1c6ed9ab 100644 --- a/DAO/project/contracts/DAO-contract/Cargo.toml +++ b/DAO/project/contracts/DAO-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.42.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/DAO/project/contracts/DAO-contract/src/data_structures.sw b/DAO/project/contracts/DAO-contract/src/data_structures.sw index 91fbe4626..2113daa0c 100644 --- a/DAO/project/contracts/DAO-contract/src/data_structures.sw +++ b/DAO/project/contracts/DAO-contract/src/data_structures.sw @@ -20,7 +20,7 @@ pub struct Proposal { /// Coin type is specified by the `asset` below amount: u64, /// Asset Id of the coins to forward - asset: ContractId, + asset: AssetId, /// Stores information about an arbitrary contract function call call_data: CallData, /// Specifies the amount of gas to forward to the arbitrary function call @@ -69,7 +69,7 @@ impl ProposalInfo { ProposalInfo { acceptance_percentage, author, - deadline: duration + height(), + deadline: duration + height().as_u64(), executed: false, no_votes: 0, proposal_transaction, diff --git a/DAO/project/contracts/DAO-contract/src/events.sw b/DAO/project/contracts/DAO-contract/src/events.sw index 54c5b2983..2daf4daeb 100644 --- a/DAO/project/contracts/DAO-contract/src/events.sw +++ b/DAO/project/contracts/DAO-contract/src/events.sw @@ -32,8 +32,8 @@ pub struct ExecuteEvent { pub struct InitializeEvent { /// User who initialized the contract. author: Identity, - /// Contract Id of the token used for DAO governance. - token: ContractId, + /// AssetId of the token used for DAO governance. + token: AssetId, } /// Event for unlocking of governance tokens. diff --git a/DAO/project/contracts/DAO-contract/src/interface.sw b/DAO/project/contracts/DAO-contract/src/interface.sw index 0b33d9a9a..8f2d4feb6 100644 --- a/DAO/project/contracts/DAO-contract/src/interface.sw +++ b/DAO/project/contracts/DAO-contract/src/interface.sw @@ -7,13 +7,13 @@ abi DaoVoting { /// /// # Arguments /// - /// * `gov_token`: [ContractId] - contract id of the token used to vote on governance proposals. + /// * `gov_token`: [AssetId] - AssetId of the token used to vote on governance proposals. /// /// # Reverts /// /// * When the constructor is called more than once. #[storage(read, write)] - fn constructor(gov_token: ContractId); + fn constructor(gov_token: AssetId); /// Create a new proposal. /// @@ -29,7 +29,11 @@ abi DaoVoting { /// * When the acceptance percentage is 0. /// * When the acceptance percentage is greater than 100. #[storage(read, write)] - fn create_proposal(acceptance_percentage: u64, duration: u64, proposal_transaction: Proposal); + fn create_proposal( + acceptance_percentage: u64, + duration: u64, + proposal_transaction: Proposal, + ); /// Deposit governance tokens into contract. /// @@ -168,13 +172,13 @@ abi Info { /// /// # Returns /// - /// * [ContractId] - AssetId of the token used to vote on governance proposals. + /// * [AssetId] - AssetId of the token used to vote on governance proposals. /// /// # Reverts /// /// * When the constructor has not been called to initialize #[storage(read)] - fn governance_token_id() -> ContractId; + fn governance_token_id() -> AssetId; /// Return proposal count /// diff --git a/DAO/project/contracts/DAO-contract/src/main.sw b/DAO/project/contracts/DAO-contract/src/main.sw index 7932abb4e..8beeaf155 100644 --- a/DAO/project/contracts/DAO-contract/src/main.sw +++ b/DAO/project/contracts/DAO-contract/src/main.sw @@ -7,6 +7,7 @@ mod interface; mod utils; use std::{ + asset::transfer, auth::msg_sender, block::height, call_frames::msg_asset_id, @@ -14,7 +15,7 @@ use std::{ msg_amount, this_balance, }, - token::transfer, + hash::Hash, }; use ::data_structures::{Proposal, ProposalInfo, State, Votes}; @@ -43,17 +44,20 @@ storage { /// The initialization state of the contract. state: State = State::NotInitialized, /// Contract Id of the governance token - token: ContractId = ContractId { - value: 0x0000000000000000000000000000000000000000000000000000000000000000, - }, + token: AssetId = AssetId::base_asset_id(), /// The amount of votes a user has used on a proposal votes: StorageMap<(Identity, u64), Votes> = StorageMap {}, } impl DaoVoting for Contract { #[storage(read, write)] - fn constructor(token: ContractId) { - require(storage.state.read() == State::NotInitialized, InitializationError::CannotReinitialize); + fn constructor(token: AssetId) { + require( + storage + .state + .read() == State::NotInitialized, + InitializationError::CannotReinitialize, + ); storage.token.write(token); storage.state.write(State::Initialized); @@ -71,12 +75,24 @@ impl DaoVoting for Contract { proposal_transaction: Proposal, ) { require(0 < duration, CreationError::DurationCannotBeZero); - require(0 < acceptance_percentage && acceptance_percentage <= 100, CreationError::InvalidAcceptancePercentage); + require( + 0 < acceptance_percentage && acceptance_percentage <= 100, + CreationError::InvalidAcceptancePercentage, + ); let author = msg_sender().unwrap(); - let proposal = ProposalInfo::new(acceptance_percentage, author, duration, proposal_transaction); - storage.proposals.insert(storage.proposal_count.read(), proposal); - storage.proposal_count.write(storage.proposal_count.read() + 1); + let proposal = ProposalInfo::new( + acceptance_percentage, + author, + duration, + proposal_transaction, + ); + storage + .proposals + .insert(storage.proposal_count.read(), proposal); + storage + .proposal_count + .write(storage.proposal_count.read() + 1); log(CreateProposalEvent { proposal_info: proposal, @@ -87,13 +103,32 @@ impl DaoVoting for Contract { #[payable] #[storage(read, write)] fn deposit() { - require(storage.state.read() == State::Initialized, InitializationError::ContractNotInitialized); - require(storage.token.read() == msg_asset_id(), UserError::IncorrectAssetSent); + require( + storage + .state + .read() == State::Initialized, + InitializationError::ContractNotInitialized, + ); + require( + storage + .token + .read() == msg_asset_id(), + UserError::IncorrectAssetSent, + ); require(0 < msg_amount(), UserError::AmountCannotBeZero); let user = msg_sender().unwrap(); - storage.balances.insert(user, msg_amount() + storage.balances.get(user).try_read().unwrap_or(0)); + storage + .balances + .insert( + user, + msg_amount() + storage + .balances + .get(user) + .try_read() + .unwrap_or(0), + ); log(DepositEvent { amount: msg_amount(), @@ -112,7 +147,7 @@ impl DaoVoting for Contract { storage.balances.insert(user, prev_balance - amount); // Transfer the asset back to the user - transfer(amount, storage.token.read(), user); + transfer(user, storage.token.read(), amount); log(WithdrawEvent { amount, user }) } @@ -123,7 +158,12 @@ impl DaoVoting for Contract { require(0 < vote_amount, UserError::VoteAmountCannotBeZero); let mut proposal = storage.proposals.get(proposal_id).try_read().unwrap(); - require(proposal.deadline >= height(), ProposalError::ProposalExpired); + require( + proposal + .deadline >= height() + .as_u64(), + ProposalError::ProposalExpired, + ); let user = msg_sender().unwrap(); let user_balance = storage.balances.get(user).try_read().unwrap_or(0); @@ -156,18 +196,32 @@ impl DaoVoting for Contract { let mut proposal = storage.proposals.get(proposal_id).try_read().unwrap(); require(!proposal.executed, ProposalError::ProposalExecuted); - require(proposal.deadline < height(), ProposalError::ProposalStillActive); + require( + proposal + .deadline < height() + .as_u64(), + ProposalError::ProposalStillActive, + ); // TODO figure out how to prevent approval percentage from overflowing // When close to the u64 max // https://github.com/FuelLabs/sway-applications/issues/106 let acceptance_percentage = proposal.yes_votes * 100 / (proposal.yes_votes + proposal.no_votes); - require(proposal.acceptance_percentage <= acceptance_percentage, ProposalError::InsufficientApprovals); + require( + proposal + .acceptance_percentage <= acceptance_percentage, + ProposalError::InsufficientApprovals, + ); proposal.executed = true; storage.proposals.insert(proposal_id, proposal); - asm(call_data: proposal.proposal_transaction.call_data, amount: proposal.proposal_transaction.amount, asset: proposal.proposal_transaction.asset, gas: proposal.proposal_transaction.gas) { + asm( + call_data: proposal.proposal_transaction.call_data, + amount: proposal.proposal_transaction.amount, + asset: proposal.proposal_transaction.asset, + gas: proposal.proposal_transaction.gas, + ) { call call_data amount asset gas; } @@ -184,7 +238,12 @@ impl DaoVoting for Contract { validate_id(proposal_id, storage.proposal_count.read()); let proposal = storage.proposals.get(proposal_id).try_read().unwrap(); - require(proposal.deadline < height(), ProposalError::ProposalStillActive); + require( + proposal + .deadline < height() + .as_u64(), + ProposalError::ProposalStillActive, + ); let user = msg_sender().unwrap(); let votes = storage.votes.get((user, proposal_id)).try_read().unwrap_or(Votes::default()); @@ -192,7 +251,16 @@ impl DaoVoting for Contract { storage.votes.insert((user, proposal_id), Votes::default()); let vote_amount = votes.yes_votes + votes.no_votes; - storage.balances.insert(user, storage.balances.get(user).try_read().unwrap_or(0) + vote_amount); + storage + .balances + .insert( + user, + storage + .balances + .get(user) + .try_read() + .unwrap_or(0) + vote_amount, + ); log(UnlockVotesEvent { id: proposal_id, @@ -226,8 +294,13 @@ impl Info for Contract { } #[storage(read)] - fn governance_token_id() -> ContractId { - require(storage.state.read() == State::Initialized, InitializationError::ContractNotInitialized); + fn governance_token_id() -> AssetId { + require( + storage + .state + .read() == State::Initialized, + InitializationError::ContractNotInitialized, + ); storage.token.read() } diff --git a/DAO/project/contracts/DAO-contract/tests/utils/interface/core.rs b/DAO/project/contracts/DAO-contract/tests/utils/interface/core.rs index aa4833e40..28c7bf110 100644 --- a/DAO/project/contracts/DAO-contract/tests/utils/interface/core.rs +++ b/DAO/project/contracts/DAO-contract/tests/utils/interface/core.rs @@ -1,12 +1,13 @@ use crate::utils::setup::{DaoVoting, Proposal}; use fuels::{ - prelude::{CallParameters, ContractId, TxParameters, WalletUnlocked}, - programs::call_response::FuelCallResponse, + prelude::{CallParameters, TxPolicies, WalletUnlocked}, + programs::{call_response::FuelCallResponse, call_utils::TxDependencyExtension}, + types::AssetId, }; pub(crate) async fn constructor( contract: &DaoVoting, - token: ContractId, + token: AssetId, ) -> FuelCallResponse<()> { contract.methods().constructor(token).call().await.unwrap() } @@ -29,11 +30,10 @@ pub(crate) async fn deposit( contract: &DaoVoting, call_params: CallParameters, ) -> FuelCallResponse<()> { - let tx_params = TxParameters::new(0, 1_000_000, 0); contract .methods() .deposit() - .tx_params(tx_params) + .with_tx_policies(TxPolicies::default().with_script_gas_limit(1_000_000)) .call_params(call_params) .unwrap() .call() diff --git a/DAO/project/contracts/DAO-contract/tests/utils/interface/info.rs b/DAO/project/contracts/DAO-contract/tests/utils/interface/info.rs index 195d407eb..2f30cb58e 100644 --- a/DAO/project/contracts/DAO-contract/tests/utils/interface/info.rs +++ b/DAO/project/contracts/DAO-contract/tests/utils/interface/info.rs @@ -1,7 +1,7 @@ use crate::utils::setup::{DaoVoting, ProposalInfo, Votes}; use fuels::{ - prelude::{Bech32Address, ContractId, WalletUnlocked}, - types::Identity, + prelude::{Bech32Address, WalletUnlocked}, + types::{AssetId, Identity}, }; pub(crate) async fn balance(contract: &DaoVoting) -> u64 { @@ -39,7 +39,7 @@ pub(crate) async fn proposal(contract: &DaoVoting, id: u64) -> P contract.methods().proposal(id).call().await.unwrap().value } -pub(crate) async fn governance_token_id(contract: &DaoVoting) -> ContractId { +pub(crate) async fn governance_token_id(contract: &DaoVoting) -> AssetId { contract .methods() .governance_token_id() diff --git a/DAO/project/contracts/DAO-contract/tests/utils/setup.rs b/DAO/project/contracts/DAO-contract/tests/utils/setup.rs index 1ae454a2e..30a1adeed 100644 --- a/DAO/project/contracts/DAO-contract/tests/utils/setup.rs +++ b/DAO/project/contracts/DAO-contract/tests/utils/setup.rs @@ -1,7 +1,10 @@ -use fuels::prelude::{ - abigen, launch_custom_provider_and_get_wallets, AssetConfig, AssetId, Contract, ContractId, - LoadConfiguration, StorageConfiguration, TxParameters, WalletUnlocked, WalletsConfig, - BASE_ASSET_ID, +use fuels::{ + prelude::{ + abigen, launch_custom_provider_and_get_wallets, AssetConfig, AssetId, Contract, + LoadConfiguration, StorageConfiguration, TxPolicies, WalletUnlocked, WalletsConfig, + BASE_ASSET_ID, + }, + types::ContractId, }; abigen!(Contract( @@ -17,9 +20,9 @@ pub(crate) struct Metadata { const DAO_CONTRACT_BINARY_PATH: &str = "./out/debug/DAO-contract.bin"; const DAO_CONTRACT_STORAGE_PATH: &str = "./out/debug/DAO-contract-storage_slots.json"; -pub(crate) fn proposal_transaction(asset_id: ContractId) -> Proposal { +pub(crate) fn proposal_transaction(asset_id: AssetId) -> Proposal { let call_data = CallData { - id: asset_id, + id: ContractId::from(*asset_id), function_selector: 0, arguments: 0, }; @@ -32,7 +35,7 @@ pub(crate) fn proposal_transaction(asset_id: ContractId) -> Proposal { } } -pub(crate) async fn setup() -> (ContractId, ContractId, Metadata, Metadata, u64) { +pub(crate) async fn setup() -> (AssetId, AssetId, Metadata, Metadata, u64) { let number_of_coins = 1; let coin_amount = 1_000_000; let number_of_wallets = 2; @@ -57,17 +60,20 @@ pub(crate) async fn setup() -> (ContractId, ContractId, Metadata, Metadata, u64) let assets = vec![base_asset, gov_token, other_token]; let wallet_config = WalletsConfig::new_multiple_assets(number_of_wallets, assets); - let mut wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None).await; + let mut wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None) + .await + .unwrap(); let deployer_wallet = wallets.pop().unwrap(); let user_wallet = wallets.pop().unwrap(); - let storage_configuration = StorageConfiguration::load_from(DAO_CONTRACT_STORAGE_PATH); + let storage_configuration = + StorageConfiguration::default().add_slot_overrides_from_file(DAO_CONTRACT_STORAGE_PATH); let configuration = - LoadConfiguration::default().set_storage_configuration(storage_configuration.unwrap()); + LoadConfiguration::default().with_storage_configuration(storage_configuration.unwrap()); let dao_voting_id = Contract::load_from(DAO_CONTRACT_BINARY_PATH, configuration) .unwrap() - .deploy(&deployer_wallet, TxParameters::default()) + .deploy(&deployer_wallet, TxPolicies::default()) .await .unwrap(); @@ -82,11 +88,5 @@ pub(crate) async fn setup() -> (ContractId, ContractId, Metadata, Metadata, u64) let asset_amount = 10; - ( - ContractId::from(*gov_token_id), - ContractId::from(*other_token_id), - deployer, - user, - asset_amount, - ) + (gov_token_id, other_token_id, deployer, user, asset_amount) } diff --git a/DAO/project/fuel-toolchain.toml b/DAO/project/fuel-toolchain.toml index e18eaa133..e75c0bb58 100644 --- a/DAO/project/fuel-toolchain.toml +++ b/DAO/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-13" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/OTC-swap-predicate/README.md b/OTC-swap-predicate/README.md index 24ab3b77d..88985d3a4 100644 --- a/OTC-swap-predicate/README.md +++ b/OTC-swap-predicate/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/OTC-swap-predicate/project/Cargo.lock b/OTC-swap-predicate/project/Cargo.lock index 6fd61352f..5e1c6e88e 100644 --- a/OTC-swap-predicate/project/Cargo.lock +++ b/OTC-swap-predicate/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -232,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.71" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -321,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -376,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -420,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -455,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -476,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -531,7 +534,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -561,7 +564,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -578,7 +581,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -597,7 +600,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -640,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -657,7 +660,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -790,6 +793,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -975,6 +1005,26 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", +] + [[package]] name = "either" version = "1.8.1" @@ -983,9 +1033,9 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1026,7 +1076,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -1072,12 +1122,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1095,12 +1151,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "ff" @@ -1112,6 +1165,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f69037fe1b785e84986b4f2cbcf647381876a00671d25ceef715d7812dd7e1dd" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1141,23 +1200,28 @@ dependencies = [ [[package]] name = "fuel-abi-types" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d99a7aeb41cdabffa38418b00fd57b5571dc58ee5af606e845a088befecd36" +checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ + "itertools 0.10.5", "lazy_static", + "proc-macro2", + "quote", "regex", "serde", + "serde_json", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1165,9 +1229,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1181,6 +1245,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1190,7 +1255,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1203,22 +1269,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1227,9 +1293,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1239,8 +1305,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1250,9 +1317,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1263,21 +1330,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1287,36 +1354,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1331,15 +1401,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1347,12 +1417,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1361,21 +1432,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1384,17 +1455,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1408,55 +1481,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1466,10 +1557,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1477,31 +1569,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa0bee7463c6bee4920c60315492a25a3026f1a68d15570cef7b470b04ecdf9" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1511,17 +1612,15 @@ dependencies = [ "fuels-macros", "fuels-programs", "fuels-test-helpers", - "fuels-types", ] [[package]] name = "fuels-accounts" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dad265d8fc612aaef2a4c1fa8bb14d77541575a6d2de6d26e66acc94afdaae" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1531,148 +1630,121 @@ dependencies = [ "fuel-types", "fuel-vm", "fuels-core", - "fuels-types", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e7b697abfac23b3505fa3136bb3e910ed664caa58d1efcb6e11644aa95d8aa" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d565f3c3c2974616984149c0440e03aadd600abe29e6268d41ebbdf21ae89915" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", + "bech32 0.9.1", + "chrono", + "fuel-abi-types", + "fuel-asm", + "fuel-core-chain-config", + "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", - "fuels-types", + "fuels-macros", "hex", - "itertools", - "sha2 0.10.7", + "itertools 0.12.0", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396b1007bf06f788b47bc710f53bce2cf5c74c32cf072baeae46abfbba1b5c33" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6c51214d91115708cea3c7ea62e447623305b281c341f5ed6a18a14ab40f8e" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "fuels-types", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cac950d5fb1a182c897135e68337e750dd8a48e35dd3849a9fc2d602eb55035" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", - "fuels-types", + "fuels-core", "futures", "hex", "portpicker", "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", ] -[[package]] -name = "fuels-types" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e94e08cfab823b1a6ed2830fe22067dd7112f0fe5228bec23d4e95cefebcfe" -dependencies = [ - "bech32 0.9.1", - "chrono", - "fuel-abi-types", - "fuel-asm", - "fuel-core-chain-config", - "fuel-core-client", - "fuel-tx", - "fuel-types", - "fuels-macros", - "hex", - "itertools", - "proc-macro2", - "regex", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror", -] - [[package]] name = "funty" version = "2.0.0" @@ -1735,7 +1807,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -1788,7 +1860,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1867,6 +1939,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1912,6 +1989,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1969,7 +2055,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2132,26 +2218,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - [[package]] name = "ipnet" version = "2.8.0" @@ -2165,7 +2231,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.4", + "rustix", "windows-sys", ] @@ -2178,6 +2244,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2203,7 +2278,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2224,21 +2299,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] -name = "linux-raw-sys" -version = "0.3.8" +name = "libm" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2270,9 +2345,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2300,12 +2375,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2327,16 +2402,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.15" @@ -2383,6 +2448,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2427,11 +2504,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2484,14 +2567,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2509,6 +2592,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2535,6 +2624,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2558,9 +2656,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -2629,9 +2727,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.31" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2709,11 +2807,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2723,9 +2830,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2734,9 +2841,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2836,28 +2943,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.23" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "errno", - "io-lifetimes", "libc", - "linux-raw-sys 0.3.8", - "windows-sys", -] - -[[package]] -name = "rustix" -version = "0.38.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" -dependencies = [ - "bitflags 2.3.3", - "errno", - "libc", - "linux-raw-sys 0.4.3", + "linux-raw-sys", "windows-sys", ] @@ -2969,6 +3062,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2984,7 +3103,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3074,35 +3193,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.171" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.171" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3133,9 +3252,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3167,9 +3286,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3230,6 +3349,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "spin" version = "0.5.2" @@ -3322,9 +3451,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.26" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3337,6 +3466,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3354,47 +3495,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.6.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ - "autocfg", "cfg-if", "fastrand", - "redox_syscall", - "rustix 0.37.23", + "redox_syscall 0.4.1", + "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3441,11 +3570,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3454,7 +3582,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3471,13 +3599,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -3584,6 +3712,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3623,7 +3752,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -3698,6 +3827,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3740,6 +3875,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3761,12 +3905,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3794,7 +3932,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3828,7 +3966,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3889,13 +4027,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -4039,5 +4179,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] diff --git a/OTC-swap-predicate/project/Forc.lock b/OTC-swap-predicate/project/Forc.lock index ef24bdb69..10b8fdbe0 100644 --- a/OTC-swap-predicate/project/Forc.lock +++ b/OTC-swap-predicate/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] [[package]] -name = 'swap-predicate' -source = 'member' -dependencies = ['std'] +name = "swap-predicate" +source = "member" +dependencies = ["std"] diff --git a/OTC-swap-predicate/project/fuel-toolchain.toml b/OTC-swap-predicate/project/fuel-toolchain.toml index 85312ab11..e75c0bb58 100644 --- a/OTC-swap-predicate/project/fuel-toolchain.toml +++ b/OTC-swap-predicate/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-18" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/OTC-swap-predicate/project/predicates/swap-predicate/Cargo.toml b/OTC-swap-predicate/project/predicates/swap-predicate/Cargo.toml index f22bc8278..99b99f54f 100644 --- a/OTC-swap-predicate/project/predicates/swap-predicate/Cargo.toml +++ b/OTC-swap-predicate/project/predicates/swap-predicate/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.42.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/OTC-swap-predicate/project/predicates/swap-predicate/src/main.sw b/OTC-swap-predicate/project/predicates/swap-predicate/src/main.sw index 5f5ea73df..d9d2c31dc 100644 --- a/OTC-swap-predicate/project/predicates/swap-predicate/src/main.sw +++ b/OTC-swap-predicate/project/predicates/swap-predicate/src/main.sw @@ -2,8 +2,8 @@ predicate; use std::{ inputs::{ + input_coin_owner, input_count, - input_owner, }, outputs::{ Output, @@ -19,7 +19,7 @@ configurable { /// The amount of asset required to unlock the predicate. ASK_AMOUNT: u64 = 42, /// The asset to be paid. - ASK_TOKEN: ContractId = ContractId::from(0x0101010101010101010101010101010101010101010101010101010101010101), + ASK_TOKEN: AssetId = AssetId::from(0x0101010101010101010101010101010101010101010101010101010101010101), /// The receiver to whom the swapped asset will be sent. RECEIVER: Address = Address::from(0x09c0b2d1a486c439a87bcba6b46a7a1a23f3897cc83a94521a96da5c23bc58db), } @@ -38,8 +38,8 @@ fn main() -> bool { // Check if the transaction contains a single input coin from the receiver, to cancel their own order (in addition to this predicate) if input_count() == 2u8 { - if input_owner(0).unwrap() == RECEIVER - || input_owner(1).unwrap() == RECEIVER + if input_coin_owner(0).unwrap() == RECEIVER + || input_coin_owner(1).unwrap() == RECEIVER { return true; }; diff --git a/OTC-swap-predicate/project/predicates/swap-predicate/tests/utils/mod.rs b/OTC-swap-predicate/project/predicates/swap-predicate/tests/utils/mod.rs index fc40ec4ab..ad7788099 100644 --- a/OTC-swap-predicate/project/predicates/swap-predicate/tests/utils/mod.rs +++ b/OTC-swap-predicate/project/predicates/swap-predicate/tests/utils/mod.rs @@ -2,7 +2,7 @@ use fuels::{ accounts::{predicate::Predicate, Account}, prelude::{ abigen, launch_custom_provider_and_get_wallets, Address, AssetConfig, AssetId, - Bech32Address, Config, Provider, ResourceFilter, TxParameters, WalletUnlocked, + Bech32Address, Provider, ResourceFilter, TxPolicies, WalletUnlocked, }, programs::script_calls::ScriptCallHandler, test_helpers::WalletsConfig, @@ -49,15 +49,10 @@ pub async fn test_predicate_spend_with_parameters( ) { let receiver_address = receiver.parse().unwrap(); - let wallets = &launch_custom_provider_and_get_wallets( - configure_wallets(asked_asset), - Some(Config { - utxo_validation: true, - ..Config::local_node() - }), - None, - ) - .await; + let wallets = + &launch_custom_provider_and_get_wallets(configure_wallets(asked_asset), None, None) + .await + .unwrap(); let receiver_wallet = &wallets[0]; let taker_wallet = &wallets[1]; @@ -79,7 +74,7 @@ pub async fn test_predicate_spend_with_parameters( predicate.address(), offered_amount, OFFERED_ASSET, - TxParameters::default(), + TxPolicies::default(), ) .await .unwrap(); @@ -127,7 +122,7 @@ pub async fn test_predicate_spend_with_parameters( // Asked asset coin belonging to the wallet taking the order let input_from_taker = match swap_coin { - CoinType::Coin(_) => Input::resource_signed(swap_coin.clone(), 0), + CoinType::Coin(_) => Input::resource_signed(swap_coin.clone()), _ => panic!("Swap coin resource type does not match"), }; @@ -164,8 +159,7 @@ pub async fn test_predicate_spend_with_parameters( output_to_receiver, output_to_taker, output_asked_change, - ]) - .tx_params(TxParameters::new(0, 10_000_000, 0)); + ]); let _response = script_call.call().await.unwrap(); @@ -196,15 +190,10 @@ pub async fn test_predicate_spend_with_parameters( // Tests that the predicate can be recovered by the owner // `correct_owner` is a boolean flag to set in order to test passing and failing conditions pub async fn recover_predicate_as_owner(correct_owner: bool) { - let wallets = &launch_custom_provider_and_get_wallets( - configure_wallets(BASE_ASSET), - Some(Config { - utxo_validation: true, - ..Config::local_node() - }), - None, - ) - .await; + let wallets = + &launch_custom_provider_and_get_wallets(configure_wallets(BASE_ASSET), None, None) + .await + .unwrap(); let wallet = match correct_owner { true => &wallets[0], @@ -224,7 +213,7 @@ pub async fn recover_predicate_as_owner(correct_owner: bool) { &predicate.address().clone(), offered_amount, OFFERED_ASSET, - TxParameters::default(), + TxPolicies::default(), ) .await .unwrap(); @@ -255,6 +244,9 @@ pub async fn recover_predicate_as_owner(correct_owner: bool) { asset_id: OFFERED_ASSET, }; + let tx_policies = TxPolicies::default() + .with_gas_price(1) + .with_script_gas_limit(10_000_000); let script_call = ScriptCallHandler::::new( vec![], UnresolvedBytes::default(), @@ -264,7 +256,7 @@ pub async fn recover_predicate_as_owner(correct_owner: bool) { ) .with_inputs(vec![input_predicate]) .with_outputs(vec![output_offered_change]) - .tx_params(TxParameters::new(1, 10_000_000, 0)); + .with_tx_policies(tx_policies); let _response = script_call.call().await.unwrap(); diff --git a/airdrop/README.md b/airdrop/README.md index 043200ec2..362ae4221 100644 --- a/airdrop/README.md +++ b/airdrop/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

@@ -37,9 +37,6 @@ The project consists of two smart contracts. airdrop ├── project │   ├── contracts -│   │   ├── asset-contract -│   │   │   ├── src/main.sw -│   │   │   └── tests/harness.rs │   │   └── distributor-contract │   │   ├── src/main.sw │   │   └── tests/harness.rs diff --git a/airdrop/project/Cargo.lock b/airdrop/project/Cargo.lock index 6a2edbad9..f90ade568 100644 --- a/airdrop/project/Cargo.lock +++ b/airdrop/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -109,7 +115,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -119,7 +125,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -140,14 +146,6 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" -[[package]] -name = "asset-contract" -version = "0.0.0" -dependencies = [ - "fuels", - "tokio", -] - [[package]] name = "async-graphql" version = "4.0.16" @@ -240,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -329,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -384,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -428,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -463,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -484,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets 0.48.1", ] [[package]] @@ -539,7 +534,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -569,7 +564,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -586,7 +581,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -605,7 +600,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -648,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -665,7 +660,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -798,6 +793,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -969,7 +991,7 @@ version = "0.0.0" dependencies = [ "fuel-merkle 0.33.0", "fuels", - "sha2 0.10.7", + "sha2 0.10.8", "tokio", ] @@ -993,6 +1015,27 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", + "subtle", +] + [[package]] name = "either" version = "1.9.0" @@ -1001,9 +1044,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1044,7 +1087,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1055,23 +1098,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.1" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] @@ -1090,12 +1122,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1127,6 +1165,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1156,23 +1200,28 @@ dependencies = [ [[package]] name = "fuel-abi-types" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d99a7aeb41cdabffa38418b00fd57b5571dc58ee5af606e845a088befecd36" +checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ + "itertools 0.10.5", "lazy_static", + "proc-macro2", + "quote", "regex", "serde", + "serde_json", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1180,9 +1229,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1196,6 +1245,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1205,7 +1255,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1218,22 +1269,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1242,9 +1293,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1254,8 +1305,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1265,9 +1317,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1278,21 +1330,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1302,36 +1354,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1346,15 +1401,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1362,12 +1417,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1376,21 +1432,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1399,17 +1455,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1423,34 +1481,35 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] [[package]] -name = "fuel-merkle" -version = "0.31.2" +name = "fuel-derive" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" dependencies = [ - "digest 0.10.7", - "fuel-storage 0.31.2", - "hashbrown 0.13.2", - "hex", - "sha2 0.10.7", - "thiserror", + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", ] [[package]] @@ -1463,15 +1522,24 @@ dependencies = [ "fuel-storage 0.33.0", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] [[package]] -name = "fuel-storage" -version = "0.31.2" +name = "fuel-merkle" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" +dependencies = [ + "derive_more", + "digest 0.10.7", + "fuel-storage 0.43.1", + "hashbrown 0.13.2", + "hex", + "serde", + "sha2 0.10.8", +] [[package]] name = "fuel-storage" @@ -1479,19 +1547,27 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f0480dc192e3735de1a8bb0ddaff0bacf20af785529bc585b26e7ac1434e0ba" +[[package]] +name = "fuel-storage" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" + [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", - "fuel-merkle 0.31.2", + "fuel-merkle 0.43.1", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1501,10 +1577,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1512,31 +1589,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", - "fuel-merkle 0.31.2", - "fuel-storage 0.31.2", + "fuel-merkle 0.43.1", + "fuel-storage 0.43.1", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa0bee7463c6bee4920c60315492a25a3026f1a68d15570cef7b470b04ecdf9" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1546,17 +1632,15 @@ dependencies = [ "fuels-macros", "fuels-programs", "fuels-test-helpers", - "fuels-types", ] [[package]] name = "fuels-accounts" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dad265d8fc612aaef2a4c1fa8bb14d77541575a6d2de6d26e66acc94afdaae" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1566,148 +1650,121 @@ dependencies = [ "fuel-types", "fuel-vm", "fuels-core", - "fuels-types", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e7b697abfac23b3505fa3136bb3e910ed664caa58d1efcb6e11644aa95d8aa" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d565f3c3c2974616984149c0440e03aadd600abe29e6268d41ebbdf21ae89915" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", + "bech32 0.9.1", + "chrono", + "fuel-abi-types", + "fuel-asm", + "fuel-core-chain-config", + "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", - "fuels-types", + "fuels-macros", "hex", - "itertools", - "sha2 0.10.7", + "itertools 0.12.0", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396b1007bf06f788b47bc710f53bce2cf5c74c32cf072baeae46abfbba1b5c33" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6c51214d91115708cea3c7ea62e447623305b281c341f5ed6a18a14ab40f8e" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "fuels-types", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cac950d5fb1a182c897135e68337e750dd8a48e35dd3849a9fc2d602eb55035" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", - "fuels-types", + "fuels-core", "futures", "hex", "portpicker", "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", ] -[[package]] -name = "fuels-types" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e94e08cfab823b1a6ed2830fe22067dd7112f0fe5228bec23d4e95cefebcfe" -dependencies = [ - "bech32 0.9.1", - "chrono", - "fuel-abi-types", - "fuel-asm", - "fuel-core-chain-config", - "fuel-core-client", - "fuel-tx", - "fuel-types", - "fuels-macros", - "hex", - "itertools", - "proc-macro2", - "regex", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror", -] - [[package]] name = "funty" version = "2.0.0" @@ -1770,7 +1827,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1823,7 +1880,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1902,6 +1959,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1947,6 +2009,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "http" version = "0.2.9" @@ -2004,7 +2075,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2181,7 +2252,7 @@ checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2193,6 +2264,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2218,7 +2298,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2239,15 +2319,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" @@ -2279,9 +2365,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2309,13 +2395,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "wasi", + "windows-sys 0.48.0", ] [[package]] @@ -2336,16 +2422,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -2392,6 +2468,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2436,11 +2524,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", - "windows-targets", + "windows-targets 0.48.1", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2493,14 +2587,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2518,6 +2612,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2544,6 +2644,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2567,9 +2676,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2638,9 +2747,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2718,11 +2827,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2732,9 +2850,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2743,9 +2861,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2845,15 +2963,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -2961,7 +3079,33 @@ version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", ] [[package]] @@ -2979,7 +3123,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3069,35 +3213,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.175" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.175" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3128,9 +3272,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3162,9 +3306,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3225,6 +3369,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.5.2" @@ -3309,9 +3463,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3324,6 +3478,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3341,46 +3507,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3427,11 +3582,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3440,9 +3594,9 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3457,13 +3611,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3570,6 +3724,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3609,7 +3764,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3684,6 +3839,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3726,6 +3887,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3747,12 +3917,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3780,7 +3944,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3814,7 +3978,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3875,13 +4039,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys 0.48.0", ] [[package]] @@ -3912,7 +4078,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", ] [[package]] @@ -3921,7 +4087,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -3930,13 +4105,28 @@ version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -3945,42 +4135,84 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" version = "0.5.0" @@ -4025,5 +4257,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] diff --git a/airdrop/project/Cargo.toml b/airdrop/project/Cargo.toml index 13457a4b0..bdf1d9ce3 100644 --- a/airdrop/project/Cargo.toml +++ b/airdrop/project/Cargo.toml @@ -1,6 +1,5 @@ [workspace] resolver = "2" members = [ - "./contracts/asset-contract", "./contracts/distributor-contract", ] diff --git a/airdrop/project/Forc.lock b/airdrop/project/Forc.lock index 6402532c3..5e044e4f2 100644 --- a/airdrop/project/Forc.lock +++ b/airdrop/project/Forc.lock @@ -1,26 +1,21 @@ [[package]] -name = 'asset-contract' -source = 'member' -dependencies = ['std'] +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' - -[[package]] -name = 'distributor-contract' -source = 'member' +name = "distributor-contract" +source = "member" dependencies = [ - 'merkle_proof', - 'std', + "merkle_proof", + "std", ] [[package]] -name = 'merkle_proof' -source = 'git+https://github.com/FuelLabs/sway-libs?tag=v0.12.0#063f118a3104adb6a04207ca877993b5ad03a492' -dependencies = ['std'] +name = "merkle_proof" +source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.17.2#5d69f665207158517eba14c35c7d28cb1cb93aa9" +dependencies = ["std"] [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/airdrop/project/Forc.toml b/airdrop/project/Forc.toml index aa96ba5c7..84fb59391 100644 --- a/airdrop/project/Forc.toml +++ b/airdrop/project/Forc.toml @@ -1,2 +1,2 @@ [workspace] -members = ["./contracts/distributor-contract", "./contracts/asset-contract"] +members = ["./contracts/distributor-contract"] diff --git a/airdrop/project/SPECIFICATION.md b/airdrop/project/SPECIFICATION.md index 8d0a2f5ab..0723372f3 100644 --- a/airdrop/project/SPECIFICATION.md +++ b/airdrop/project/SPECIFICATION.md @@ -9,10 +9,6 @@ Table of Contents - [`claim_data()`](#claim_data) - [`end_block()`](#end_block) - [`merkle_root()`](#merkle_root) - - [Simple Asset](#simple-asset) - - [Core Functionality](#core-functionality-1) - - [`constructor()`](#constructor-1) - - [`mint_to()`](#mint_to) - [Sequence Diagram](#sequence-diagram) # Overview @@ -62,20 +58,6 @@ If you are interested in a functional overview then this is the section for you. 1. Returns the stored merkle root used for claim validation -## Simple Asset - -### Core Functionality - -#### `constructor()` - -1. Allows the owner to begin minting the asset and requires - 1. An asset supply be given - 2. A user that will be authorized to mint - -#### `mint_to()` - -TODO - ## Sequence Diagram ![Airdrop Sequence Diagram](../.docs/airdrop-sequence-diagram.png) diff --git a/airdrop/project/contracts/asset-contract/Cargo.toml b/airdrop/project/contracts/asset-contract/Cargo.toml deleted file mode 100644 index 8be920bde..000000000 --- a/airdrop/project/contracts/asset-contract/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[project] -name = "asset-contract" -version = "0.0.0" -authors = ["Fuel Labs "] -edition = "2021" -license = "Apache-2.0" - -[dependencies] -fuels = { version = "0.42.0", features = ["fuel-core-lib"] } -tokio = { version = "1.12", features = ["rt", "macros"] } - -[[test]] -harness = true -name = "integration_tests" -path = "tests/harness.rs" diff --git a/airdrop/project/contracts/asset-contract/Forc.toml b/airdrop/project/contracts/asset-contract/Forc.toml deleted file mode 100644 index 26e918896..000000000 --- a/airdrop/project/contracts/asset-contract/Forc.toml +++ /dev/null @@ -1,5 +0,0 @@ -[project] -authors = ["Fuel Labs "] -entry = "main.sw" -license = "Apache-2.0" -name = "asset-contract" diff --git a/airdrop/project/contracts/asset-contract/src/errors.sw b/airdrop/project/contracts/asset-contract/src/errors.sw deleted file mode 100644 index 25a90093c..000000000 --- a/airdrop/project/contracts/asset-contract/src/errors.sw +++ /dev/null @@ -1,21 +0,0 @@ -library; - -/// Errors related to permissions. -pub enum AccessError { - /// The sender is not permitted to mint tokens. - SenderNotPermittedToMint: (), -} - -/// Errors related to the initialization of the contract. -pub enum InitError { - /// The contract has already been initialized. - AlreadyInitialized: (), - /// The maximum supply of the token must be greater than zero. - AssetSupplyCannotBeZero: (), -} - -/// Errors related to input parameters. -pub enum InputError { - /// The input amount is greater than the maximum supply. - GreaterThanMaximumSupply: (), -} diff --git a/airdrop/project/contracts/asset-contract/src/interface.sw b/airdrop/project/contracts/asset-contract/src/interface.sw deleted file mode 100644 index 9a52f16ce..000000000 --- a/airdrop/project/contracts/asset-contract/src/interface.sw +++ /dev/null @@ -1,33 +0,0 @@ -library; - -abi SimpleAsset { - /// An example constructor which implements an airdrop distributor contract. - /// - /// # Arguments - /// - /// * `asset_supply`: [u64] - The total qualntity of the asset that may ever be minted. - /// * `minter`: [Identity] - The Address or Contract which will be permissioned to mint the asset. - /// - /// # Reverts - /// - /// * When the constructor has already been called. - /// * When the provided `asset_supply` is zero. - #[storage(read, write)] - fn constructor(asset_supply: u64, minter: Identity); - - /// An example function that is to be called by the airdrop distributor contract. - /// - /// The mint function is authorized to be called only by the airdrop contract. - /// - /// # Arguments - /// - /// * `amount`: [u64] - The quantity of the asset that is to be minted. - /// * `to`: [Identity] - The user which should recieve the minted asset. - /// - /// # Reverts - /// - /// * When the sender is not the airdrop contract. - /// * When the amount of the asset to be minted is greater than the total supply. - #[storage(read, write)] - fn mint_to(amount: u64, to: Identity); -} diff --git a/airdrop/project/contracts/asset-contract/src/main.sw b/airdrop/project/contracts/asset-contract/src/main.sw deleted file mode 100644 index 89916d033..000000000 --- a/airdrop/project/contracts/asset-contract/src/main.sw +++ /dev/null @@ -1,40 +0,0 @@ -contract; - -mod errors; -mod interface; - -use ::errors::{AccessError, InitError, InputError}; -use ::interface::SimpleAsset; -use std::{auth::msg_sender, token::mint_to}; - -storage { - /// The current quantity of the asset minted. - asset_minted: u64 = 0, - /// The maximum quantity of the asset ever to be minted. - asset_supply: u64 = 0, - /// The Address or Contract that has permission to mint. - minter: Option = Option::None, -} - -impl SimpleAsset for Contract { - #[storage(read, write)] - fn constructor(asset_supply: u64, minter: Identity) { - // If the asset supply is anything other than 0, we know that the constructor has already - // been called. - require(storage.asset_supply.read() == 0, InitError::AlreadyInitialized); - require(asset_supply != 0, InitError::AssetSupplyCannotBeZero); - - storage.minter.write(Option::Some(minter)); - storage.asset_supply.write(asset_supply); - } - - #[storage(read, write)] - fn mint_to(amount: u64, to: Identity) { - // Ensure that the sender is the minter. - require(storage.minter.read().is_some() && msg_sender().unwrap() == storage.minter.read().unwrap(), AccessError::SenderNotPermittedToMint); - require(amount + storage.asset_minted.read() <= storage.asset_supply.read(), InputError::GreaterThanMaximumSupply); - - storage.asset_minted.write(storage.asset_minted.read() + amount); - mint_to(amount, to); - } -} diff --git a/airdrop/project/contracts/asset-contract/tests/functions/constructor.rs b/airdrop/project/contracts/asset-contract/tests/functions/constructor.rs deleted file mode 100644 index 71cf9d840..000000000 --- a/airdrop/project/contracts/asset-contract/tests/functions/constructor.rs +++ /dev/null @@ -1,39 +0,0 @@ -use crate::utils::{interface::constructor, setup::setup}; -use fuels::types::Identity; - -mod success { - - use super::*; - - #[tokio::test] - async fn initalizes() { - let (deployer, _, total_supply) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - constructor(total_supply, &deployer.simple_asset, identity.clone()).await; - } -} - -mod revert { - - use super::*; - - #[tokio::test] - #[should_panic(expected = "AlreadyInitialized")] - async fn when_initialized_twice() { - let (deployer, _, total_supply) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - constructor(total_supply, &deployer.simple_asset, identity.clone()).await; - constructor(total_supply, &deployer.simple_asset, identity.clone()).await; - } - - #[tokio::test] - #[should_panic(expected = "AssetSupplyCannotBeZero")] - async fn when_asset_supply_zero() { - let (deployer, _, _) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - constructor(0, &deployer.simple_asset, identity.clone()).await; - } -} diff --git a/airdrop/project/contracts/asset-contract/tests/functions/mint_to.rs b/airdrop/project/contracts/asset-contract/tests/functions/mint_to.rs deleted file mode 100644 index 23003663e..000000000 --- a/airdrop/project/contracts/asset-contract/tests/functions/mint_to.rs +++ /dev/null @@ -1,174 +0,0 @@ -use crate::utils::{ - interface::{constructor, mint_to}, - setup::setup, -}; -use fuels::types::Identity; - -mod success { - - use super::*; - use fuels::{accounts::ViewOnlyAccount, prelude::AssetId}; - - #[tokio::test] - async fn mints_to_one_wallet() { - let (deployer, _, total_supply) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - constructor(total_supply, &deployer.simple_asset, identity.clone()).await; - - assert_eq!( - deployer - .wallet - .get_asset_balance(&AssetId::new(*deployer.asset_id)) - .await - .unwrap(), - 0 - ); - - mint_to(total_supply, &deployer.simple_asset, identity.clone()).await; - - assert_eq!( - deployer - .wallet - .get_asset_balance(&AssetId::new(*deployer.asset_id)) - .await - .unwrap(), - total_supply - ); - } - - #[tokio::test] - async fn mints_to_multiple_wallets() { - let (deployer, wallet2, total_supply) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - let wallet2_identity = Identity::Address(wallet2.wallet.address().into()); - - constructor(total_supply, &deployer.simple_asset, identity.clone()).await; - - assert_eq!( - deployer - .wallet - .get_asset_balance(&AssetId::new(*deployer.asset_id)) - .await - .unwrap(), - 0 - ); - mint_to(total_supply - 1, &deployer.simple_asset, identity.clone()).await; - assert_eq!( - deployer - .wallet - .get_asset_balance(&AssetId::new(*deployer.asset_id)) - .await - .unwrap(), - total_supply - 1 - ); - - assert_eq!( - wallet2 - .wallet - .get_asset_balance(&AssetId::new(*deployer.asset_id)) - .await - .unwrap(), - 0 - ); - mint_to(1, &deployer.simple_asset, wallet2_identity.clone()).await; - assert_eq!( - wallet2 - .wallet - .get_asset_balance(&AssetId::new(*wallet2.asset_id)) - .await - .unwrap(), - 1 - ); - } - - #[tokio::test] - async fn mints_all_assets() { - let (deployer, _, total_supply) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - constructor(total_supply, &deployer.simple_asset, identity.clone()).await; - - assert_eq!( - deployer - .wallet - .get_asset_balance(&AssetId::new(*deployer.asset_id)) - .await - .unwrap(), - 0 - ); - - mint_to(total_supply, &deployer.simple_asset, identity.clone()).await; - - assert_eq!( - deployer - .wallet - .get_asset_balance(&AssetId::new(*deployer.asset_id)) - .await - .unwrap(), - total_supply - ); - } -} - -mod revert { - - use super::*; - - #[tokio::test] - #[should_panic(expected = "SenderNotPermittedToMint")] - async fn when_sender_not_minter() { - let (deployer, false_minter, total_supply) = setup().await; - - let minter_identity = Identity::Address(deployer.wallet.address().into()); - let false_minter_identity = Identity::Address(false_minter.wallet.address().into()); - - constructor( - total_supply, - &deployer.simple_asset, - minter_identity.clone(), - ) - .await; - - mint_to( - total_supply, - &false_minter.simple_asset, - false_minter_identity.clone(), - ) - .await; - } - - #[tokio::test] - #[should_panic(expected = "GreaterThanMaximumSupply")] - async fn when_mint_more_than_supply_in_one_transaction() { - let (deployer, _, total_supply) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - constructor(total_supply, &deployer.simple_asset, identity.clone()).await; - - mint_to(total_supply + 1, &deployer.simple_asset, identity.clone()).await; - } - - #[tokio::test] - #[should_panic(expected = "GreaterThanMaximumSupply")] - async fn when_mint_more_than_supply_in_two_transactions() { - let (deployer, _, total_supply) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - constructor(total_supply, &deployer.simple_asset, identity.clone()).await; - - mint_to(total_supply - 1, &deployer.simple_asset, identity.clone()).await; - mint_to(2, &deployer.simple_asset, identity.clone()).await; - } - - #[tokio::test] - #[should_panic(expected = "SenderNotPermittedToMint")] - async fn when_not_initalized() { - let (deployer, _, total_supply) = setup().await; - - let identity = Identity::Address(deployer.wallet.address().into()); - - mint_to(total_supply, &deployer.simple_asset, identity.clone()).await; - } -} diff --git a/airdrop/project/contracts/asset-contract/tests/functions/mod.rs b/airdrop/project/contracts/asset-contract/tests/functions/mod.rs deleted file mode 100644 index 7fbbfff09..000000000 --- a/airdrop/project/contracts/asset-contract/tests/functions/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod constructor; -mod mint_to; diff --git a/airdrop/project/contracts/asset-contract/tests/harness.rs b/airdrop/project/contracts/asset-contract/tests/harness.rs deleted file mode 100644 index 39c936316..000000000 --- a/airdrop/project/contracts/asset-contract/tests/harness.rs +++ /dev/null @@ -1,2 +0,0 @@ -mod functions; -mod utils; diff --git a/airdrop/project/contracts/asset-contract/tests/utils/interface.rs b/airdrop/project/contracts/asset-contract/tests/utils/interface.rs deleted file mode 100644 index 3f22fab0f..000000000 --- a/airdrop/project/contracts/asset-contract/tests/utils/interface.rs +++ /dev/null @@ -1,29 +0,0 @@ -use crate::utils::setup::SimpleAsset; -use fuels::{prelude::WalletUnlocked, programs::call_response::FuelCallResponse, types::Identity}; - -pub(crate) async fn constructor( - asset_supply: u64, - contract: &SimpleAsset, - minter: Identity, -) -> FuelCallResponse<()> { - contract - .methods() - .constructor(asset_supply, minter) - .call() - .await - .unwrap() -} - -pub(crate) async fn mint_to( - amount: u64, - contract: &SimpleAsset, - to: Identity, -) -> FuelCallResponse<()> { - contract - .methods() - .mint_to(amount, to) - .append_variable_outputs(1) - .call() - .await - .unwrap() -} diff --git a/airdrop/project/contracts/asset-contract/tests/utils/mod.rs b/airdrop/project/contracts/asset-contract/tests/utils/mod.rs deleted file mode 100644 index b1878bb6a..000000000 --- a/airdrop/project/contracts/asset-contract/tests/utils/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod interface; -pub mod setup; diff --git a/airdrop/project/contracts/asset-contract/tests/utils/setup.rs b/airdrop/project/contracts/asset-contract/tests/utils/setup.rs deleted file mode 100644 index 6e3a9d69d..000000000 --- a/airdrop/project/contracts/asset-contract/tests/utils/setup.rs +++ /dev/null @@ -1,65 +0,0 @@ -use fuels::prelude::{ - abigen, launch_custom_provider_and_get_wallets, Contract, ContractId, LoadConfiguration, - StorageConfiguration, TxParameters, WalletUnlocked, WalletsConfig, -}; - -abigen!(Contract( - name = "SimpleAsset", - abi = "./contracts/asset-contract/out/debug/asset-contract-abi.json" -)); - -pub(crate) struct Metadata { - pub(crate) asset_id: ContractId, - pub(crate) simple_asset: SimpleAsset, - pub(crate) wallet: WalletUnlocked, -} - -pub(crate) const ASSET_CONTRACT_BINARY_PATH: &str = "./out/debug/asset-contract.bin"; -pub(crate) const ASSET_CONTRACT_STORAGE_PATH: &str = - "./out/debug/asset-contract-storage_slots.json"; - -pub(crate) async fn setup() -> (Metadata, Metadata, u64) { - let number_of_wallets = 2; - let coins_per_wallet = 1; - let coin_amount = 1000000; - - let mut wallets = launch_custom_provider_and_get_wallets( - WalletsConfig::new( - Some(number_of_wallets), - Some(coins_per_wallet), - Some(coin_amount), - ), - None, - None, - ) - .await; - - let wallet1 = wallets.pop().unwrap(); - let wallet2 = wallets.pop().unwrap(); - - let storage_configuration = StorageConfiguration::load_from(ASSET_CONTRACT_STORAGE_PATH); - let configuration = - LoadConfiguration::default().set_storage_configuration(storage_configuration.unwrap()); - - let simple_asset_id = Contract::load_from(ASSET_CONTRACT_BINARY_PATH, configuration) - .unwrap() - .deploy(&wallet1, TxParameters::default()) - .await - .unwrap(); - - let deployer = Metadata { - asset_id: ContractId::new(*simple_asset_id.hash()), - simple_asset: SimpleAsset::new(simple_asset_id.clone(), wallet1.clone()), - wallet: wallet1, - }; - - let user = Metadata { - asset_id: ContractId::new(*simple_asset_id.hash()), - simple_asset: SimpleAsset::new(simple_asset_id, wallet2.clone()), - wallet: wallet2, - }; - - let total_supply = 100; - - (deployer, user, total_supply) -} diff --git a/airdrop/project/contracts/distributor-contract/Cargo.toml b/airdrop/project/contracts/distributor-contract/Cargo.toml index b08e3cb3b..f24a9f99a 100644 --- a/airdrop/project/contracts/distributor-contract/Cargo.toml +++ b/airdrop/project/contracts/distributor-contract/Cargo.toml @@ -7,7 +7,7 @@ license = "Apache-2.0" [dependencies] fuel-merkle = { version = "0.33.0" } -fuels = { version = "0.42.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } sha2 = { version = "0.10.7" } tokio = { version = "1.12", features = ["rt", "macros"] } diff --git a/airdrop/project/contracts/distributor-contract/Forc.toml b/airdrop/project/contracts/distributor-contract/Forc.toml index 196c75faf..8636c1934 100644 --- a/airdrop/project/contracts/distributor-contract/Forc.toml +++ b/airdrop/project/contracts/distributor-contract/Forc.toml @@ -5,4 +5,4 @@ license = "Apache-2.0" name = "distributor-contract" [dependencies] -merkle_proof = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.12.0" } +merkle_proof = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.17.2" } diff --git a/airdrop/project/contracts/distributor-contract/src/events.sw b/airdrop/project/contracts/distributor-contract/src/events.sw index 14dec47b7..5e1410ad8 100644 --- a/airdrop/project/contracts/distributor-contract/src/events.sw +++ b/airdrop/project/contracts/distributor-contract/src/events.sw @@ -20,9 +20,9 @@ pub struct CreateAirdropEvent { /// The user which can claim any left over tokens after the claiming period. admin: Identity, /// The asset which is to be distributed. - asset: ContractId, + asset: AssetId, /// The block at which the claiming period will end. - end_block: u64, + end_block: u32, /// The computed merkle root that will be used to verify claims. merkle_root: b256, /// The total number of leaves in the merkle tree diff --git a/airdrop/project/contracts/distributor-contract/src/interface.sw b/airdrop/project/contracts/distributor-contract/src/interface.sw index 1a95dc259..a11a5493c 100644 --- a/airdrop/project/contracts/distributor-contract/src/interface.sw +++ b/airdrop/project/contracts/distributor-contract/src/interface.sw @@ -52,7 +52,12 @@ abi AirdropDistributor { /// * When no tokens are sent to the airdrop contract. #[payable] #[storage(read, write)] - fn constructor(admin: Identity, claim_time: u64, merkle_root: b256, num_leaves: u64); + fn constructor( + admin: Identity, + claim_time: u32, + merkle_root: b256, + num_leaves: u64, + ); } abi Info { @@ -80,9 +85,9 @@ abi Info { /// /// # Returns /// - /// * [u64] - The block at which the airdrop ends. + /// * [u32] - The block at which the airdrop ends. #[storage(read)] - fn end_block() -> u64; + fn end_block() -> u32; /// Returns whether the airdrop is active and tokens can be claimed. /// diff --git a/airdrop/project/contracts/distributor-contract/src/main.sw b/airdrop/project/contracts/distributor-contract/src/main.sw index aa141152f..8bbda01e8 100644 --- a/airdrop/project/contracts/distributor-contract/src/main.sw +++ b/airdrop/project/contracts/distributor-contract/src/main.sw @@ -11,6 +11,7 @@ use ::events::{ClaimEvent, ClawbackEvent, CreateAirdropEvent}; use ::interface::{AirdropDistributor, Info}; use merkle_proof::binary_merkle_proof::{leaf_digest, verify_proof}; use std::{ + asset::transfer, auth::msg_sender, block::height, call_frames::msg_asset_id, @@ -18,20 +19,23 @@ use std::{ msg_amount, this_balance, }, - hash::sha256, - token::transfer, + hash::{ + Hash, + sha256, + }, + intrinsics::size_of_val, }; storage { /// The Identity which has the ability to clawback unclaimed tokens. admin: Option = Option::None, /// The contract of the tokens which is to be distributed. - asset: Option = Option::None, + asset: Option = Option::None, /// Stores the ClaimState of users that have interacted with the Airdrop Distributor contract. /// Maps (user => claim) claims: StorageMap = StorageMap {}, /// The block at which the claiming period will end. - end_block: u64 = 0, + end_block: u32 = 0, /// The computed merkle root which is to be verified against. merkle_root: Option = Option::None, /// The number of leaves in the merkle tree @@ -42,23 +46,56 @@ impl AirdropDistributor for Contract { #[storage(read, write)] fn claim(amount: u64, key: u64, proof: Vec, to: Identity) { // The claiming period must be open - require(storage.end_block.read() > height(), StateError::ClaimPeriodNotActive); + require( + storage + .end_block + .read() > height(), + StateError::ClaimPeriodNotActive, + ); // Users cannot claim twice let sender = msg_sender().unwrap(); - require(storage.claims.get(sender).try_read().unwrap_or(ClaimState::Unclaimed) == ClaimState::Unclaimed, AccessError::UserAlreadyClaimed); + require( + storage + .claims + .get(sender) + .try_read() + .unwrap_or(ClaimState::Unclaimed) == ClaimState::Unclaimed, + AccessError::UserAlreadyClaimed, + ); // There must be enough tokens left in the contract let asset = storage.asset.read().unwrap(); require(this_balance(asset) >= amount, AccessError::NotEnoughTokens); // Verify the merkle proof against the user and amount - require(verify_proof(key, leaf_digest(sha256((sender, amount))), storage.merkle_root.read().unwrap(), storage.number_of_leaves.read(), proof), VerificationError::MerkleProofFailed); + // TODO: Remove assembly when https://github.com/FuelLabs/sway-libs/issues/186 is resolved + let param = (sender, amount); + let mut result_buffer: b256 = b256::min(); + let leaf = asm(hash: result_buffer, ptr: param, bytes: size_of_val(param)) { + s256 hash ptr bytes; + hash: b256 + }; + require( + verify_proof( + key, + leaf_digest(leaf), + storage + .merkle_root + .read() + .unwrap(), + storage + .number_of_leaves + .read(), + proof, + ), + VerificationError::MerkleProofFailed, + ); storage.claims.insert(sender, ClaimState::Claimed(amount)); // Transfer tokens - transfer(amount, asset, to); + transfer(to, asset, amount); log(ClaimEvent { amount, @@ -70,15 +107,26 @@ impl AirdropDistributor for Contract { #[storage(read)] fn clawback() { let admin = storage.admin.read(); - require(admin.is_some() && admin.unwrap() == msg_sender().unwrap(), AccessError::CallerNotAdmin); - require(storage.end_block.read() <= height(), StateError::ClaimPeriodActive); + require( + admin + .is_some() && admin + .unwrap() == msg_sender() + .unwrap(), + AccessError::CallerNotAdmin, + ); + require( + storage + .end_block + .read() <= height(), + StateError::ClaimPeriodActive, + ); let asset = storage.asset.read().unwrap(); let balance = this_balance(asset); require(balance > 0, AccessError::NotEnoughTokens); // Send the remaining balance of tokens to the admin - transfer(balance, asset, admin.unwrap()); + transfer(admin.unwrap(), asset, balance); log(ClawbackEvent { amount: balance, @@ -90,7 +138,7 @@ impl AirdropDistributor for Contract { #[storage(read, write)] fn constructor( admin: Identity, - claim_time: u64, + claim_time: u32, merkle_root: b256, number_of_leaves: u64, ) { @@ -128,7 +176,7 @@ impl Info for Contract { } #[storage(read)] - fn end_block() -> u64 { + fn end_block() -> u32 { storage.end_block.read() } diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/core/claim.rs b/airdrop/project/contracts/distributor-contract/tests/functions/core/claim.rs index 6f756048d..2ea054f97 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/core/claim.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/core/claim.rs @@ -1,8 +1,7 @@ use crate::utils::{ - interface::core::{airdrop_constructor, asset_constructor, claim, mint_to}, + interface::core::{airdrop_constructor, claim}, setup::{build_tree, build_tree_manual, defaults, get_wallet_balance, setup}, }; -use fuels::prelude::AssetId; mod success { @@ -14,7 +13,7 @@ mod success { #[tokio::test] async fn claims() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; let ( identity_a, _, @@ -26,17 +25,15 @@ mod success { airdrop_leaves, claim_time, _, + original_balance, ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, proof) = build_tree(key, airdrop_leaves.to_vec()).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -45,8 +42,8 @@ mod success { .await; assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance ); assert_eq!( claim_data(&deploy_wallet.airdrop_distributor, identity_a.clone()).await, @@ -74,8 +71,8 @@ mod success { } ); assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - airdrop_leaves[key as usize].1 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance + airdrop_leaves[key as usize].1 ); assert_eq!( claim_data(&deploy_wallet.airdrop_distributor, identity_a.clone()).await, @@ -85,7 +82,7 @@ mod success { #[tokio::test] async fn claims_to_different_wallet() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; let ( identity_a, identity_b, @@ -97,17 +94,15 @@ mod success { airdrop_leaves, claim_time, _, + original_balance, ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, proof) = build_tree(key, airdrop_leaves.to_vec()).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -116,12 +111,12 @@ mod success { .await; assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance ); assert_eq!( - get_wallet_balance(&wallet2.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&wallet2.wallet, &asset_id).await, + original_balance ); assert_eq!( claim_data(&deploy_wallet.airdrop_distributor, identity_a.clone()).await, @@ -153,12 +148,12 @@ mod success { } ); assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance ); assert_eq!( - get_wallet_balance(&wallet2.wallet, &AssetId::new(*asset.asset_id)).await, - airdrop_leaves[key as usize].1 + get_wallet_balance(&wallet2.wallet, &asset_id).await, + original_balance + airdrop_leaves[key as usize].1 ); assert_eq!( claim_data(&deploy_wallet.airdrop_distributor, identity_a.clone()).await, @@ -172,19 +167,27 @@ mod success { #[tokio::test] async fn claims_manual_tree() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, depth) = - defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let ( + _, + _, + _, + minter, + key, + num_leaves, + asset_supply, + airdrop_leaves, + claim_time, + depth, + original_balance, + ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_leaf, proof, root) = build_tree_manual(airdrop_leaves.clone(), depth, key).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -193,8 +196,8 @@ mod success { .await; assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance ); assert_eq!( claim_data( @@ -226,8 +229,8 @@ mod success { } ); assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - airdrop_leaves[key as usize].1 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance + airdrop_leaves[key as usize].1 ); assert_eq!( claim_data( @@ -241,9 +244,20 @@ mod success { #[tokio::test] async fn claims_manual_tree_2_depth() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (identity_a, identity_b, identity_c, minter, key, _, asset_supply, _, claim_time, _) = - defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let ( + identity_a, + identity_b, + identity_c, + minter, + key, + _, + asset_supply, + _, + claim_time, + _, + original_balance, + ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let identity_vec: Vec = vec![identity_a.clone(), identity_b.clone(), identity_c.clone()]; @@ -253,13 +267,10 @@ mod success { let num_leaves = airdrop_leaves.len().try_into().unwrap(); let (_leaf, proof, root) = build_tree_manual(airdrop_leaves.clone(), depth, key).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -268,8 +279,8 @@ mod success { .await; assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance ); assert_eq!( claim_data( @@ -300,8 +311,8 @@ mod success { } ); assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - airdrop_leaves[key as usize].1 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance + airdrop_leaves[key as usize].1 ); assert_eq!( claim_data( @@ -315,9 +326,20 @@ mod success { #[tokio::test] async fn claims_manual_tree_16_depth() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (identity_a, identity_b, identity_c, minter, key, _, asset_supply, _, claim_time, _) = - defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let ( + identity_a, + identity_b, + identity_c, + minter, + key, + _, + asset_supply, + _, + claim_time, + _, + original_balance, + ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let identity_vec: Vec = vec![identity_a.clone(), identity_b.clone(), identity_c.clone()]; @@ -327,13 +349,10 @@ mod success { let num_leaves = airdrop_leaves.len().try_into().unwrap(); let (_leaf, proof, root) = build_tree_manual(airdrop_leaves.clone(), depth, key).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -342,8 +361,8 @@ mod success { .await; assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance ); assert_eq!( claim_data( @@ -374,8 +393,8 @@ mod success { } ); assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - airdrop_leaves[key as usize].1 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance + airdrop_leaves[key as usize].1 ); assert_eq!( claim_data( @@ -395,20 +414,17 @@ mod revert { #[tokio::test] #[should_panic(expected = "ClaimPeriodNotActive")] async fn after_claim_period() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, proof) = build_tree(key, airdrop_leaves.clone()).await; let provider = deploy_wallet.wallet.provider().unwrap(); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -431,19 +447,16 @@ mod revert { #[tokio::test] #[should_panic(expected = "UserAlreadyClaimed")] async fn when_claim_twice() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, proof) = build_tree(key, airdrop_leaves.clone()).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -473,19 +486,27 @@ mod revert { #[tokio::test] #[should_panic(expected = "UserAlreadyClaimed")] async fn when_claim_twice_manual_tree() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, depth) = - defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let ( + _, + _, + _, + minter, + key, + num_leaves, + asset_supply, + airdrop_leaves, + claim_time, + depth, + original_balance, + ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_, proof, root) = build_tree_manual(airdrop_leaves.clone(), depth, key).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -494,8 +515,8 @@ mod revert { .await; assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance ); claim( @@ -508,8 +529,8 @@ mod revert { .await; assert_eq!( - get_wallet_balance(&wallet1.wallet, &AssetId::new(*asset.asset_id)).await, - airdrop_leaves[key as usize].1 + get_wallet_balance(&wallet1.wallet, &asset_id).await, + original_balance + airdrop_leaves[key as usize].1 ); claim( @@ -525,19 +546,16 @@ mod revert { #[tokio::test] #[should_panic(expected = "MerkleProofFailed")] async fn when_failed_merkle_verification() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, proof) = build_tree(key, airdrop_leaves.clone()).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -559,19 +577,16 @@ mod revert { #[tokio::test] #[should_panic(expected = "MerkleProofFailed")] async fn when_failed_merkle_verification_manual_tree() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, depth) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, depth, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_, proof, root) = build_tree_manual(airdrop_leaves.clone(), depth, key).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -594,7 +609,7 @@ mod revert { #[should_panic(expected = "ClaimPeriodNotActive")] async fn when_not_initalized() { let (deploy_wallet, wallet1, wallet2, wallet3, _) = setup().await; - let (_, _, _, _minter, key, _, _, airdrop_leaves, _, _) = + let (_, _, _, _minter, key, _, _, airdrop_leaves, _, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, _root, _leaf, proof) = build_tree(key, airdrop_leaves.clone()).await; @@ -612,19 +627,16 @@ mod revert { #[tokio::test] #[should_panic(expected = "NotEnoughTokens")] async fn when_not_enough_tokens_to_claim() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, _asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, proof) = build_tree(key + 1, airdrop_leaves.clone()).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, 1, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/core/clawback.rs b/airdrop/project/contracts/distributor-contract/tests/functions/core/clawback.rs index 7dad2792f..aa5023638 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/core/clawback.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/core/clawback.rs @@ -1,8 +1,7 @@ use crate::utils::{ - interface::core::{airdrop_constructor, asset_constructor, claim, clawback, mint_to}, + interface::core::{airdrop_constructor, claim, clawback}, setup::{build_tree, defaults, get_wallet_balance, setup}, }; -use fuels::prelude::AssetId; mod success { @@ -10,20 +9,28 @@ mod success { #[tokio::test] async fn returns_all_tokens() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = - defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let ( + _, + _, + _, + minter, + key, + num_leaves, + asset_supply, + airdrop_leaves, + claim_time, + _, + original_balance, + ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, _) = build_tree(key, airdrop_leaves.to_vec()).await; let provider = deploy_wallet.wallet.provider().unwrap(); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -34,21 +41,21 @@ mod success { let _ = provider.produce_blocks(claim_time + 1, Option::None).await; assert_eq!( - get_wallet_balance(&deploy_wallet.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&deploy_wallet.wallet, &asset_id).await, + original_balance - asset_supply ); clawback(&deploy_wallet.airdrop_distributor).await; assert_eq!( - get_wallet_balance(&deploy_wallet.wallet, &AssetId::new(*asset.asset_id)).await, - asset_supply + get_wallet_balance(&deploy_wallet.wallet, &asset_id).await, + original_balance ); } #[tokio::test] async fn returns_unclaimed_tokens() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; let ( identity_a, _, @@ -60,18 +67,16 @@ mod success { airdrop_leaves, claim_time, _, + original_balance, ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, proof) = build_tree(key, airdrop_leaves.to_vec()).await; let provider = deploy_wallet.wallet.provider().unwrap(); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -91,15 +96,15 @@ mod success { let _ = provider.produce_blocks(claim_time + 1, Option::None).await; assert_eq!( - get_wallet_balance(&deploy_wallet.wallet, &AssetId::new(*asset.asset_id)).await, - 0 + get_wallet_balance(&deploy_wallet.wallet, &asset_id).await, + original_balance - asset_supply ); clawback(&deploy_wallet.airdrop_distributor).await; assert_eq!( - get_wallet_balance(&deploy_wallet.wallet, &AssetId::new(*asset.asset_id)).await, - asset_supply - airdrop_leaves[key as usize].1 + get_wallet_balance(&deploy_wallet.wallet, &asset_id).await, + original_balance - airdrop_leaves[key as usize].1 ); } } @@ -111,20 +116,17 @@ mod revert { #[tokio::test] #[should_panic(expected = "CallerNotAdmin")] async fn when_not_admin() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, _) = build_tree(key, airdrop_leaves.to_vec()).await; let provider = deploy_wallet.wallet.provider().unwrap(); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -140,19 +142,16 @@ mod revert { #[tokio::test] #[should_panic(expected = "ClaimPeriodActive")] async fn when_in_claim_period() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, _) = build_tree(key, airdrop_leaves.to_vec()).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -167,7 +166,7 @@ mod revert { #[should_panic(expected = "CallerNotAdmin")] async fn when_not_initalized() { let (deploy_wallet, wallet1, wallet2, wallet3, _) = setup().await; - let (_, _, _, _, key, _, _, airdrop_leaves, _, _) = + let (_, _, _, _, key, _, _, airdrop_leaves, _, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, _, _leaf, _) = build_tree(key, airdrop_leaves.to_vec()).await; @@ -178,20 +177,17 @@ mod revert { #[tokio::test] #[should_panic(expected = "NotEnoughTokens")] async fn when_called_twice() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, _) = build_tree(key, airdrop_leaves.to_vec()).await; let provider = deploy_wallet.wallet.provider().unwrap(); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter, asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/core/constructor.rs b/airdrop/project/contracts/distributor-contract/tests/functions/core/constructor.rs index fe64dd784..51e9caddd 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/core/constructor.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/core/constructor.rs @@ -1,5 +1,5 @@ use crate::utils::{ - interface::core::{airdrop_constructor, asset_constructor, mint_to}, + interface::core::airdrop_constructor, setup::{defaults, setup}, }; use fuels::types::Bits256; @@ -14,21 +14,18 @@ mod success { #[tokio::test] async fn initalizes() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, admin, _, num_leaves, asset_supply, _, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, admin, _, num_leaves, asset_supply, _, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let provider = deploy_wallet.wallet.provider().unwrap(); let root = Bits256([1u8; 32]); - asset_constructor(asset_supply, &asset.asset, admin.clone()).await; - mint_to(asset_supply, &asset.asset, admin.clone()).await; - assert_eq!(end_block(&deploy_wallet.airdrop_distributor).await, 0); let response = airdrop_constructor( admin.clone(), asset_supply, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -44,7 +41,7 @@ mod success { *event, CreateAirdropEvent { admin, - asset: asset.asset_id, + asset: asset_id, end_block: claim_time, merkle_root: root, number_of_leaves: num_leaves @@ -52,7 +49,7 @@ mod success { ); assert_eq!( - (provider.latest_block_height().await.unwrap() as u64) + claim_time, + provider.latest_block_height().await.unwrap() + claim_time, end_block(&deploy_wallet.airdrop_distributor).await, ); assert_eq!( @@ -71,18 +68,15 @@ mod revert { #[tokio::test] #[should_panic(expected = "AlreadyInitialized")] async fn when_already_initalized() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, admin, _, num_leaves, asset_supply, _, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, admin, _, num_leaves, asset_supply, _, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let root = Bits256([1u8; 32]); - asset_constructor(asset_supply, &asset.asset, admin.clone()).await; - mint_to(asset_supply, &asset.asset, admin.clone()).await; - airdrop_constructor( admin.clone(), asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -93,7 +87,7 @@ mod revert { airdrop_constructor( admin, asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -105,15 +99,15 @@ mod revert { #[tokio::test] #[should_panic(expected = "CannotAirdropZeroTokens")] async fn when_no_tokens_provided() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, admin, _, _, _, num_leaves, _, _, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, admin, _, _, _, num_leaves, _, _, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let root = Bits256([1u8; 32]); airdrop_constructor( admin, 0, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/info/admin.rs b/airdrop/project/contracts/distributor-contract/tests/functions/info/admin.rs index 68edaaef1..96f1afccd 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/info/admin.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/info/admin.rs @@ -1,23 +1,17 @@ mod success { use crate::utils::{ - interface::{ - core::{airdrop_constructor, asset_constructor, mint_to}, - info::admin, - }, + interface::{core::airdrop_constructor, info::admin}, setup::{build_tree, defaults, setup}, }; #[tokio::test] async fn returns_admin() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, _) = build_tree(key, airdrop_leaves.clone()).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - assert_eq!( admin(&deploy_wallet.airdrop_distributor,).await, Option::None @@ -26,7 +20,7 @@ mod success { airdrop_constructor( minter.clone(), asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/info/claim_data.rs b/airdrop/project/contracts/distributor-contract/tests/functions/info/claim_data.rs index d6d6626b1..94245f7b6 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/info/claim_data.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/info/claim_data.rs @@ -1,7 +1,7 @@ mod success { use crate::utils::{ interface::{ - core::{airdrop_constructor, asset_constructor, claim, mint_to}, + core::{airdrop_constructor, claim}, info::claim_data, }, setup::ClaimState, @@ -10,7 +10,7 @@ mod success { #[tokio::test] async fn returns_claim_data() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; let ( identity_a, _, @@ -22,17 +22,15 @@ mod success { airdrop_leaves, claim_time, _, + _, ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, proof) = build_tree(key, airdrop_leaves.clone()).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter.clone(), asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -70,7 +68,7 @@ mod success { #[tokio::test] async fn claims_manual_tree() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; let ( identity_a, _, @@ -82,17 +80,15 @@ mod success { airdrop_leaves, claim_time, depth, + _, ) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_, proof, root) = build_tree_manual(airdrop_leaves.clone(), depth, key).await; - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - airdrop_constructor( minter.clone(), asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/info/end_block.rs b/airdrop/project/contracts/distributor-contract/tests/functions/info/end_block.rs index 803e15177..b1a18b67e 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/info/end_block.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/info/end_block.rs @@ -1,31 +1,25 @@ mod success { use crate::utils::{ - interface::{ - core::{airdrop_constructor, asset_constructor, mint_to}, - info::end_block, - }, + interface::{core::airdrop_constructor, info::end_block}, setup::{defaults, setup}, }; use fuels::types::Bits256; #[tokio::test] async fn returns_end_block() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, _, num_leaves, asset_supply, _, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, _, num_leaves, asset_supply, _, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let provider = deploy_wallet.wallet.provider().unwrap(); let root = Bits256([2u8; 32]); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - assert_eq!(0, end_block(&deploy_wallet.airdrop_distributor).await,); airdrop_constructor( minter.clone(), asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, @@ -34,7 +28,7 @@ mod success { .await; assert_eq!( - (provider.latest_block_height().await.unwrap() as u64) + claim_time, + provider.latest_block_height().await.unwrap() + claim_time, end_block(&deploy_wallet.airdrop_distributor).await, ); } diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/info/is_active.rs b/airdrop/project/contracts/distributor-contract/tests/functions/info/is_active.rs index bd2d9257f..e94aa02b0 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/info/is_active.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/info/is_active.rs @@ -1,30 +1,24 @@ mod success { use crate::utils::{ - interface::{ - core::{airdrop_constructor, asset_constructor, mint_to}, - info::is_active, - }, + interface::{core::airdrop_constructor, info::is_active}, setup::{build_tree, defaults, setup}, }; #[tokio::test] async fn returns_active_state() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, key, num_leaves, asset_supply, airdrop_leaves, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let (_tree, root, _leaf, _) = build_tree(key, airdrop_leaves.clone()).await; let provider = deploy_wallet.wallet.provider().unwrap(); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - assert!(!is_active(&deploy_wallet.airdrop_distributor,).await); airdrop_constructor( minter.clone(), asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/info/merkle_root.rs b/airdrop/project/contracts/distributor-contract/tests/functions/info/merkle_root.rs index 51cdaac38..2832fc2d7 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/info/merkle_root.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/info/merkle_root.rs @@ -3,22 +3,16 @@ use crate::utils::{interface::info::merkle_root, setup::setup}; mod success { use super::*; - use crate::utils::{ - interface::core::{airdrop_constructor, asset_constructor, mint_to}, - setup::defaults, - }; + use crate::utils::{interface::core::airdrop_constructor, setup::defaults}; use fuels::types::Bits256; #[tokio::test] async fn returns_root() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, _, num_leaves, asset_supply, _, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, _, num_leaves, asset_supply, _, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let root = Bits256([2u8; 32]); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - assert_eq!( merkle_root(&deploy_wallet.airdrop_distributor).await, Option::None @@ -27,7 +21,7 @@ mod success { airdrop_constructor( minter.clone(), asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, diff --git a/airdrop/project/contracts/distributor-contract/tests/functions/info/number_of_leaves.rs b/airdrop/project/contracts/distributor-contract/tests/functions/info/number_of_leaves.rs index c2d12a2cd..61196fd24 100644 --- a/airdrop/project/contracts/distributor-contract/tests/functions/info/number_of_leaves.rs +++ b/airdrop/project/contracts/distributor-contract/tests/functions/info/number_of_leaves.rs @@ -1,24 +1,18 @@ mod success { use crate::utils::{ - interface::{ - core::{airdrop_constructor, asset_constructor, mint_to}, - info::number_of_leaves, - }, + interface::{core::airdrop_constructor, info::number_of_leaves}, setup::{defaults, setup}, }; use fuels::types::Bits256; #[tokio::test] async fn returns_end_block() { - let (deploy_wallet, wallet1, wallet2, wallet3, asset) = setup().await; - let (_, _, _, minter, _, leaf_count, asset_supply, _, claim_time, _) = + let (deploy_wallet, wallet1, wallet2, wallet3, asset_id) = setup().await; + let (_, _, _, minter, _, leaf_count, asset_supply, _, claim_time, _, _) = defaults(&deploy_wallet, &wallet1, &wallet2, &wallet3).await; let root = Bits256([2u8; 32]); - asset_constructor(asset_supply, &asset.asset, minter.clone()).await; - mint_to(asset_supply, &asset.asset, minter.clone()).await; - assert_eq!( 0, number_of_leaves(&deploy_wallet.airdrop_distributor).await, @@ -27,7 +21,7 @@ mod success { airdrop_constructor( minter.clone(), asset_supply / 2, - asset.asset_id, + asset_id, claim_time, &deploy_wallet.airdrop_distributor, root, diff --git a/airdrop/project/contracts/distributor-contract/tests/utils/interface/core.rs b/airdrop/project/contracts/distributor-contract/tests/utils/interface/core.rs index ed2013e73..d1d1792ac 100644 --- a/airdrop/project/contracts/distributor-contract/tests/utils/interface/core.rs +++ b/airdrop/project/contracts/distributor-contract/tests/utils/interface/core.rs @@ -1,37 +1,10 @@ -use crate::utils::setup::{AirdropDistributor, SimpleAsset}; +use crate::utils::setup::AirdropDistributor; use fuels::{ - prelude::{AssetId, CallParameters, TxParameters, WalletUnlocked}, - programs::call_response::FuelCallResponse, - types::{Bits256, ContractId, Identity}, + prelude::{AssetId, CallParameters, TxPolicies, WalletUnlocked}, + programs::{call_response::FuelCallResponse, call_utils::TxDependencyExtension}, + types::{Bits256, Identity}, }; -pub(crate) async fn asset_constructor( - asset_supply: u64, - contract: &SimpleAsset, - minter: Identity, -) -> FuelCallResponse<()> { - contract - .methods() - .constructor(asset_supply, minter) - .call() - .await - .unwrap() -} - -pub(crate) async fn mint_to( - amount: u64, - contract: &SimpleAsset, - to: Identity, -) -> FuelCallResponse<()> { - contract - .methods() - .mint_to(amount, to) - .append_variable_outputs(1) - .call() - .await - .unwrap() -} - pub(crate) async fn claim( amount: u64, contract: &AirdropDistributor, @@ -63,19 +36,18 @@ pub(crate) async fn clawback( pub(crate) async fn airdrop_constructor( admin: Identity, amount: u64, - asset: ContractId, - claim_time: u64, + asset: AssetId, + claim_time: u32, contract: &AirdropDistributor, merkle_root: Bits256, num_leaves: u64, ) -> FuelCallResponse<()> { - let tx_parameters = TxParameters::default().set_gas_limit(2_000_000); - let call_params = CallParameters::new(amount, AssetId::from(*asset), 1_000_000); + let call_params = CallParameters::new(amount, asset, 1_000_000); contract .methods() .constructor(admin, claim_time, merkle_root, num_leaves) - .tx_params(tx_parameters) + .with_tx_policies(TxPolicies::default().with_script_gas_limit(2_000_000)) .call_params(call_params) .unwrap() .call() diff --git a/airdrop/project/contracts/distributor-contract/tests/utils/interface/info.rs b/airdrop/project/contracts/distributor-contract/tests/utils/interface/info.rs index bb8622c8e..ab7975ca3 100644 --- a/airdrop/project/contracts/distributor-contract/tests/utils/interface/info.rs +++ b/airdrop/project/contracts/distributor-contract/tests/utils/interface/info.rs @@ -21,7 +21,7 @@ pub(crate) async fn claim_data( .value } -pub(crate) async fn end_block(contract: &AirdropDistributor) -> u64 { +pub(crate) async fn end_block(contract: &AirdropDistributor) -> u32 { contract.methods().end_block().call().await.unwrap().value } diff --git a/airdrop/project/contracts/distributor-contract/tests/utils/setup.rs b/airdrop/project/contracts/distributor-contract/tests/utils/setup.rs index 0a59c7c31..c2345e2c9 100644 --- a/airdrop/project/contracts/distributor-contract/tests/utils/setup.rs +++ b/airdrop/project/contracts/distributor-contract/tests/utils/setup.rs @@ -5,8 +5,9 @@ use fuel_merkle::{ use fuels::{ accounts::ViewOnlyAccount, prelude::{ - abigen, launch_custom_provider_and_get_wallets, AssetId, Config, Contract, ContractId, - LoadConfiguration, StorageConfiguration, TxParameters, WalletUnlocked, WalletsConfig, + abigen, launch_custom_provider_and_get_wallets, AssetConfig, AssetId, Contract, + LoadConfiguration, StorageConfiguration, TxPolicies, WalletUnlocked, WalletsConfig, + BASE_ASSET_ID, }, types::{Bits256, Identity}, }; @@ -15,21 +16,10 @@ use sha2::{Digest, Sha256}; pub const NODE: u8 = 0x01; pub const LEAF: u8 = 0x00; -abigen!( - Contract( - name = "AirdropDistributor", - abi = "./contracts/distributor-contract/out/debug/distributor-contract-abi.json" - ), - Contract( - name = "SimpleAsset", - abi = "./contracts/asset-contract/out/debug/asset-contract-abi.json" - ), -); - -pub(crate) struct Asset { - pub(crate) asset: SimpleAsset, - pub(crate) asset_id: ContractId, -} +abigen!(Contract( + name = "AirdropDistributor", + abi = "./contracts/distributor-contract/out/debug/distributor-contract-abi.json" +),); pub(crate) struct Metadata { pub(crate) airdrop_distributor: AirdropDistributor, @@ -63,9 +53,6 @@ impl Node { } } -const ASSET_CONTRACT_BINARY_PATH: &str = "../asset-contract/out/debug/asset-contract.bin"; -const ASSET_CONTRACT_STORAGE_PATH: &str = - "../asset-contract/out/debug/asset-contract-storage_slots.json"; const DISTRIBUTOR_CONTRACT_BINARY_PATH: &str = "./out/debug/distributor-contract.bin"; const DISTRIBUTOR_CONTRACT_STORAGE_PATH: &str = "./out/debug/distributor-contract-storage_slots.json"; @@ -222,6 +209,7 @@ pub(crate) async fn defaults( u64, u64, Vec<(Identity, u64)>, + u32, u64, u64, ) { @@ -233,6 +221,7 @@ pub(crate) async fn defaults( let asset_supply = 10; let claim_time = 15; let depth = 8; + let original_balance = 1_000_000; let identity_vec = vec![identity_a.clone(), identity_b.clone(), identity_c.clone()]; @@ -249,6 +238,7 @@ pub(crate) async fn defaults( airdrop_leaves, claim_time, depth, + original_balance, ) } @@ -269,56 +259,48 @@ pub(crate) async fn leaves_with_depth( return_vec } -pub(crate) async fn setup() -> (Metadata, Metadata, Metadata, Metadata, Asset) { +pub(crate) async fn setup() -> (Metadata, Metadata, Metadata, Metadata, AssetId) { + let number_of_coins = 1; + let coin_amount = 1_000_000; let number_of_wallets = 4; - let coins_per_wallet = 1; - let coin_amount = 1000000; - let config = Config { - manual_blocks_enabled: true, // Necessary so the `produce_blocks` API can be used locally - ..Config::local_node() + + let base_asset = AssetConfig { + id: BASE_ASSET_ID, + num_coins: number_of_coins, + coin_amount, }; - let mut wallets = launch_custom_provider_and_get_wallets( - WalletsConfig::new( - Some(number_of_wallets), - Some(coins_per_wallet), - Some(coin_amount), - ), - Some(config), - None, - ) - .await; + let airdrop_asset_id = AssetId::new([1; 32]); + let airdrop_asset = AssetConfig { + id: airdrop_asset_id, + num_coins: number_of_coins, + coin_amount, + }; + let assets = vec![base_asset, airdrop_asset]; + + let wallet_config = WalletsConfig::new_multiple_assets(number_of_wallets, assets); + let mut wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None) + .await + .unwrap(); let wallet1 = wallets.pop().unwrap(); let wallet2 = wallets.pop().unwrap(); let wallet3 = wallets.pop().unwrap(); let wallet4 = wallets.pop().unwrap(); - let airdrop_distributor_storage_configuration = - StorageConfiguration::load_from(DISTRIBUTOR_CONTRACT_STORAGE_PATH); + let airdrop_distributor_storage_configuration = StorageConfiguration::default() + .add_slot_overrides_from_file(DISTRIBUTOR_CONTRACT_STORAGE_PATH); let airdrop_distributor_configuration = LoadConfiguration::default() - .set_storage_configuration(airdrop_distributor_storage_configuration.unwrap()); - - let simple_asset_storage_configuration = - StorageConfiguration::load_from(ASSET_CONTRACT_STORAGE_PATH); - let simple_asset_configuration = LoadConfiguration::default() - .set_storage_configuration(simple_asset_storage_configuration.unwrap()); + .with_storage_configuration(airdrop_distributor_storage_configuration.unwrap()); let airdrop_distributor_id = Contract::load_from( DISTRIBUTOR_CONTRACT_BINARY_PATH, airdrop_distributor_configuration, ) .unwrap() - .deploy(&wallet1, TxParameters::default()) + .deploy(&wallet1, TxPolicies::default()) .await .unwrap(); - let simple_asset_id = - Contract::load_from(ASSET_CONTRACT_BINARY_PATH, simple_asset_configuration) - .unwrap() - .deploy(&wallet1, TxParameters::default()) - .await - .unwrap(); - let deployer = Metadata { airdrop_distributor: AirdropDistributor::new( airdrop_distributor_id.clone(), @@ -351,12 +333,7 @@ pub(crate) async fn setup() -> (Metadata, Metadata, Metadata, Metadata, Asset) { wallet: wallet4, }; - let asset = Asset { - asset: SimpleAsset::new(simple_asset_id.clone(), wallet1), - asset_id: ContractId::new(*simple_asset_id.hash()), - }; - - (deployer, user1, user2, user3, asset) + (deployer, user1, user2, user3, airdrop_asset_id) } pub(crate) async fn get_wallet_balance(wallet: &WalletUnlocked, asset: &AssetId) -> u64 { diff --git a/airdrop/project/fuel-toolchain.toml b/airdrop/project/fuel-toolchain.toml index 85312ab11..e75c0bb58 100644 --- a/airdrop/project/fuel-toolchain.toml +++ b/airdrop/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-18" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/archive/AMM/project/test-utils/src/setup.rs b/archive/AMM/project/test-utils/src/setup.rs index f4d53d248..1089ee31e 100644 --- a/archive/AMM/project/test-utils/src/setup.rs +++ b/archive/AMM/project/test-utils/src/setup.rs @@ -298,8 +298,8 @@ pub mod scripts { provider, wallet.address(), *asset, - if amounts.is_some() { - *amounts.unwrap().get(asset_index).unwrap() + if let Some(amounts_) = amounts { + *amounts_.get(asset_index).unwrap() } else { MAXIMUM_INPUT_AMOUNT }, diff --git a/auctions/english-auction/README.md b/auctions/english-auction/README.md index 69064c033..22979bc46 100644 --- a/auctions/english-auction/README.md +++ b/auctions/english-auction/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/auctions/english-auction/project/Cargo.lock b/auctions/english-auction/project/Cargo.lock index e0344c67f..aa430c0b9 100644 --- a/auctions/english-auction/project/Cargo.lock +++ b/auctions/english-auction/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -232,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -329,6 +335,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -384,9 +391,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -428,12 +438,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -463,9 +467,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -484,17 +488,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -539,7 +542,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -569,7 +572,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -586,7 +589,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -605,7 +608,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -648,7 +651,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -665,7 +668,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -798,6 +801,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -983,6 +1013,27 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", + "subtle", +] + [[package]] name = "either" version = "1.9.0" @@ -991,9 +1042,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1034,7 +1085,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1080,12 +1131,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1117,6 +1174,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1146,23 +1209,28 @@ dependencies = [ [[package]] name = "fuel-abi-types" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d99a7aeb41cdabffa38418b00fd57b5571dc58ee5af606e845a088befecd36" +checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ + "itertools 0.10.5", "lazy_static", + "proc-macro2", + "quote", "regex", "serde", + "serde_json", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1170,9 +1238,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1186,6 +1254,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1195,7 +1264,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1208,22 +1278,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1232,9 +1302,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1244,8 +1314,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1255,9 +1326,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1268,21 +1339,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1292,36 +1363,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1336,15 +1410,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1352,12 +1426,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1366,21 +1441,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1389,17 +1464,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1413,55 +1490,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1471,10 +1566,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1482,31 +1578,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa0bee7463c6bee4920c60315492a25a3026f1a68d15570cef7b470b04ecdf9" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1516,17 +1621,15 @@ dependencies = [ "fuels-macros", "fuels-programs", "fuels-test-helpers", - "fuels-types", ] [[package]] name = "fuels-accounts" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dad265d8fc612aaef2a4c1fa8bb14d77541575a6d2de6d26e66acc94afdaae" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1536,148 +1639,121 @@ dependencies = [ "fuel-types", "fuel-vm", "fuels-core", - "fuels-types", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e7b697abfac23b3505fa3136bb3e910ed664caa58d1efcb6e11644aa95d8aa" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d565f3c3c2974616984149c0440e03aadd600abe29e6268d41ebbdf21ae89915" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", + "bech32 0.9.1", + "chrono", + "fuel-abi-types", + "fuel-asm", + "fuel-core-chain-config", + "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", - "fuels-types", + "fuels-macros", "hex", - "itertools", - "sha2 0.10.7", + "itertools 0.12.0", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396b1007bf06f788b47bc710f53bce2cf5c74c32cf072baeae46abfbba1b5c33" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6c51214d91115708cea3c7ea62e447623305b281c341f5ed6a18a14ab40f8e" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "fuels-types", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cac950d5fb1a182c897135e68337e750dd8a48e35dd3849a9fc2d602eb55035" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", - "fuels-types", + "fuels-core", "futures", "hex", "portpicker", "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", ] -[[package]] -name = "fuels-types" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e94e08cfab823b1a6ed2830fe22067dd7112f0fe5228bec23d4e95cefebcfe" -dependencies = [ - "bech32 0.9.1", - "chrono", - "fuel-abi-types", - "fuel-asm", - "fuel-core-chain-config", - "fuel-core-client", - "fuel-tx", - "fuel-types", - "fuels-macros", - "hex", - "itertools", - "proc-macro2", - "regex", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror", -] - [[package]] name = "funty" version = "2.0.0" @@ -1740,7 +1816,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1793,7 +1869,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1872,6 +1948,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1917,6 +1998,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1974,7 +2064,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2163,6 +2253,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2188,7 +2287,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2209,15 +2308,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2249,9 +2354,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2279,12 +2384,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2306,16 +2411,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -2362,6 +2457,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2406,11 +2513,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2463,14 +2576,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2488,6 +2601,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2514,6 +2633,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2537,9 +2665,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2608,9 +2736,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2688,11 +2816,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2702,9 +2839,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2713,9 +2850,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2815,11 +2952,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", @@ -2934,6 +3071,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2949,7 +3112,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3039,35 +3202,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.175" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.175" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3098,9 +3261,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3132,9 +3295,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3195,6 +3358,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "spin" version = "0.5.2" @@ -3279,9 +3452,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3294,6 +3467,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3311,46 +3496,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3397,11 +3571,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3410,7 +3583,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3427,13 +3600,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3540,6 +3713,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3579,7 +3753,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3654,6 +3828,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3696,6 +3876,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3717,12 +3906,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3750,7 +3933,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3784,7 +3967,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3845,13 +4028,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -3995,5 +4180,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] diff --git a/auctions/english-auction/project/Forc.lock b/auctions/english-auction/project/Forc.lock index 38194841c..f56173fdd 100644 --- a/auctions/english-auction/project/Forc.lock +++ b/auctions/english-auction/project/Forc.lock @@ -1,29 +1,13 @@ [[package]] -name = 'NFT' -source = 'member' -dependencies = [ - 'nft', - 'std', -] +name = "auction-contract" +source = "member" +dependencies = ["std"] [[package]] -name = 'auction-contract' -source = 'member' -dependencies = [ - 'nft', - 'std', -] +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' - -[[package]] -name = 'nft' -source = 'git+https://github.com/FuelLabs/sway-libs?tag=v0.12.0#063f118a3104adb6a04207ca877993b5ad03a492' -dependencies = ['std'] - -[[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/auctions/english-auction/project/Forc.toml b/auctions/english-auction/project/Forc.toml index fc7a96d9c..a5094337d 100644 --- a/auctions/english-auction/project/Forc.toml +++ b/auctions/english-auction/project/Forc.toml @@ -1,2 +1,2 @@ [workspace] -members = ["./contracts/auction-contract", "./contracts/test-artifacts/NFT"] +members = ["./contracts/auction-contract"] diff --git a/auctions/english-auction/project/contracts/auction-contract/Cargo.toml b/auctions/english-auction/project/contracts/auction-contract/Cargo.toml index 2ee30a124..bebc74496 100644 --- a/auctions/english-auction/project/contracts/auction-contract/Cargo.toml +++ b/auctions/english-auction/project/contracts/auction-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.42.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/auctions/english-auction/project/contracts/auction-contract/Forc.toml b/auctions/english-auction/project/contracts/auction-contract/Forc.toml index b0c40d4c4..667bd6b34 100644 --- a/auctions/english-auction/project/contracts/auction-contract/Forc.toml +++ b/auctions/english-auction/project/contracts/auction-contract/Forc.toml @@ -3,6 +3,3 @@ authors = ["Fuel Labs "] entry = "main.sw" license = "Apache-2.0" name = "auction-contract" - -[dependencies] -nft = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.12.0" } diff --git a/auctions/english-auction/project/contracts/auction-contract/src/data_structures.sw b/auctions/english-auction/project/contracts/auction-contract/src/data_structures.sw index b5bd6e04b..cd86c4a8f 100644 --- a/auctions/english-auction/project/contracts/auction-contract/src/data_structures.sw +++ b/auctions/english-auction/project/contracts/auction-contract/src/data_structures.sw @@ -1,8 +1,4 @@ library; -pub mod traits; -pub mod nft_asset; -pub mod token_asset; -pub mod auction_asset; pub mod state; pub mod auction; diff --git a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/auction.sw b/auctions/english-auction/project/contracts/auction-contract/src/data_structures/auction.sw index 1c9a2de67..22adf0caf 100644 --- a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/auction.sw +++ b/auctions/english-auction/project/contracts/auction-contract/src/data_structures/auction.sw @@ -1,12 +1,14 @@ library; -use ::data_structures::{auction_asset::AuctionAsset, state::State}; +use ::data_structures::state::State; pub struct Auction { /// The asset which will be accepted in return for the selling asset. - bid_asset: AuctionAsset, + bid_asset: AssetId, /// The block at which the auction's bidding period should end. - end_block: u64, + end_block: u32, + /// The current highest bid. + highest_bid: u64, /// The current highest bidder of the auction. highest_bidder: Option, /// The starting price for the auction. @@ -14,7 +16,9 @@ pub struct Auction { /// The price at which the selling asset may be bought outright. reserve_price: Option, /// The asset that is being auctioned off. - sell_asset: AuctionAsset, + sell_asset: AssetId, + /// The amount of the asset that is being auctioned off. + sell_asset_amount: u64, /// The seller of the auction. seller: Identity, /// The state of the auction describing if it is open or closed. @@ -26,27 +30,31 @@ impl Auction { /// /// # Arguments /// - /// * `bid_asset`: [AuctionAsset] - The asset which will be accepted in return for the selling asset. - /// * `end_block`: [u64] - The block at which the auction's bidding period should end. + /// * `bid_asset`: [AssetId] - The asset which will be accepted in return for the selling asset. + /// * `end_block`: [u32] - The block at which the auction's bidding period should end. /// * `initial_price`: [u64] - The starting price for the auction. /// * `reserve_price`: [Option] - The price at which the selling asset may be bought outright. - /// * `sell_asset`: [AuctionAsset] - The asset that is being auctioned off. + /// * `sell_asset`: [AssetId] - The asset that is being auctioned off. + /// * `sell_asset_amount`: [u64] - The amount of the asset that is being auctioned off. /// * `seller`: [Identity] - The seller of the auction. pub fn new( - bid_asset: AuctionAsset, - end_block: u64, + bid_asset: AssetId, + end_block: u32, initial_price: u64, reserve_price: Option, - sell_asset: AuctionAsset, + sell_asset: AssetId, + sell_asset_amount: u64, seller: Identity, ) -> Self { Auction { bid_asset, end_block, + highest_bid: 0, highest_bidder: Option::None, initial_price, reserve_price, sell_asset, + sell_asset_amount, seller, state: State::Open, } diff --git a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/auction_asset.sw b/auctions/english-auction/project/contracts/auction-contract/src/data_structures/auction_asset.sw deleted file mode 100644 index e15370219..000000000 --- a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/auction_asset.sw +++ /dev/null @@ -1,134 +0,0 @@ -library; - -use ::data_structures::{nft_asset::NFTAsset, token_asset::TokenAsset, traits::Asset}; - -/// An enum that represents an asset to be sold at auction. -pub enum AuctionAsset { - /// An NFT asset. - NFTAsset: NFTAsset, - /// A token asset. - TokenAsset: TokenAsset, -} - -impl Asset for AuctionAsset { - /// Returns the amount of assets represented by this AuctionAsset. - /// - /// # Returns - /// - /// * [u64] - The amount of assets represented by this AuctionAsset. - fn amount(self) -> u64 { - match self { - AuctionAsset::NFTAsset(nft_asset) => { - nft_asset.amount() - }, - AuctionAsset::TokenAsset(token_asset) => { - token_asset.amount() - }, - } - } - - /// Returns the AssetId of the asset represented by this AuctionAsset. - /// - /// # Returns - /// - /// * [ContractId] - The AssetId of the asset represented by this AuctionAsset. - fn asset_id(self) -> ContractId { - match self { - AuctionAsset::NFTAsset(nft_asset) => { - nft_asset.asset_id() - }, - AuctionAsset::TokenAsset(token_asset) => { - token_asset.asset_id() - }, - } - } -} - -// Formatting error here as described by: https://github.com/FuelLabs/sway/issues/3131 -impl core::ops::Add for AuctionAsset { - fn add(self, other: Self) -> Self { - match (self, other) { - ( - AuctionAsset::NFTAsset(nft_asset1), - AuctionAsset::NFTAsset(nft_asset2), - ) => { - AuctionAsset::NFTAsset(nft_asset1 + nft_asset2) - } - ( - AuctionAsset::TokenAsset(token_asset1), - AuctionAsset::TokenAsset(token_asset2), - ) => { - AuctionAsset::TokenAsset(token_asset1 + token_asset2) - }, - _ => { - revert(0); - }, - } - } -} - -// Formatting error here as described by: https://github.com/FuelLabs/sway/issues/3131 -impl core::ops::Eq for AuctionAsset { - fn eq(self, other: Self) -> bool { - match (self, other) { - ( - AuctionAsset::NFTAsset(nft_asset1), - AuctionAsset::NFTAsset(nft_asset2), - ) => { - nft_asset1 == nft_asset2 - }, - ( - AuctionAsset::TokenAsset(token_asset1), - AuctionAsset::TokenAsset(token_asset2), - ) => { - token_asset1 == token_asset2 - }, - _ => { - false - }, - } - } -} - -// Formatting error here as described by: https://github.com/FuelLabs/sway/issues/3131 -impl core::ops::Ord for AuctionAsset { - fn gt(self, other: Self) -> bool { - match (self, other) { - ( - AuctionAsset::NFTAsset(nft_asset1), - AuctionAsset::NFTAsset(nft_asset2), - ) => { - nft_asset1 > nft_asset2 - }, - ( - AuctionAsset::TokenAsset(token_asset1), - AuctionAsset::TokenAsset(token_asset2), - ) => { - token_asset1 > token_asset2 - }, - _ => { - revert(0); - }, - } - } - - fn lt(self, other: Self) -> bool { - match (self, other) { - ( - AuctionAsset::NFTAsset(nft_asset1), - AuctionAsset::NFTAsset(nft_asset2), - ) => { - nft_asset1 < nft_asset2 - }, - ( - AuctionAsset::TokenAsset(token_asset1), - AuctionAsset::TokenAsset(token_asset2), - ) => { - token_asset1 < token_asset2 - }, - _ => { - revert(0); - }, - } - } -} diff --git a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/nft_asset.sw b/auctions/english-auction/project/contracts/auction-contract/src/data_structures/nft_asset.sw deleted file mode 100644 index f3464876f..000000000 --- a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/nft_asset.sw +++ /dev/null @@ -1,75 +0,0 @@ -library; - -use ::errors::AssetError; -use ::data_structures::traits::Asset; - -/// Represents an NFT asset. -pub struct NFTAsset { - /// The `ContractId` of the NFT that the struct is representing. - asset_id: ContractId, - /// The token id of the NFT that the struct is representing. - token_id: u64, -} - -impl NFTAsset { - /// Creates a new `NFTAsset` struct. - /// - /// # Arguments - /// - /// * `asset_id`: [ContractId] - The AssetId of the NFT that the struct is representing. - /// * `token_id`: [u64] - The token id of the NFT that the struct is representing. - /// - /// # Returns - /// - /// * [NFTAsset] - The newly created `NFTAsset` struct. - fn new(asset_id: ContractId, token_id: u64) -> Self { - Self { - asset_id, - token_id, - } - } - - /// Returns the token_id of the NFT that the struct is representing. - /// - /// # Returns - /// - /// * [u64] - The token id of the NFT that the struct is representing. - pub fn token_id(self) -> u64 { - self.token_id - } -} - -impl Asset for NFTAsset { - fn amount(self) -> u64 { - // TODO: This should return the number of tokens when StorageVec in structs is supported - 1 - } - - fn asset_id(self) -> ContractId { - self.asset_id - } -} - -impl core::ops::Add for NFTAsset { - fn add(self, other: Self) -> Self { - // TODO: This should be implemented once StorageVec in structs is supported - self - } -} - -impl core::ops::Eq for NFTAsset { - fn eq(self, other: Self) -> bool { - self.asset_id() == other.asset_id() - } -} - -impl core::ops::Ord for NFTAsset { - fn gt(self, other: Self) -> bool { - // TODO: This should be implemented once StorageVec in structs is supported - false - } - fn lt(self, other: Self) -> bool { - // TODO: This should be implemented once StorageVec in structs is supported - false - } -} diff --git a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/token_asset.sw b/auctions/english-auction/project/contracts/auction-contract/src/data_structures/token_asset.sw deleted file mode 100644 index 02a029f95..000000000 --- a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/token_asset.sw +++ /dev/null @@ -1,65 +0,0 @@ -library; - -use ::errors::AssetError; -use ::data_structures::traits::Asset; - -/// Represents a token asset. -pub struct TokenAsset { - /// The amount of the native asset that the struct is representing. - amount: u64, - /// The id of the native asset that the struct is representing. - asset_id: ContractId, -} - -impl TokenAsset { - /// Creates a new `TokenAsset` struct. - /// - /// # Arguments - /// - /// * `amount`: [u64] - The amount of tokens that the struct is representing. - /// * `asset_id`: [ContractId] - The AssetId of the token that the struct is representing. - /// - /// # Returns - /// - /// * [TokenAsset] - The newly created `TokenAsset` struct. - fn new(amount: u64, asset_id: ContractId) -> Self { - Self { - amount, - asset_id, - } - } -} - -impl Asset for TokenAsset { - fn amount(self) -> u64 { - self.amount - } - - fn asset_id(self) -> ContractId { - self.asset_id - } -} - -impl core::ops::Add for TokenAsset { - fn add(self, other: Self) -> Self { - require(self.asset_id() == other.asset_id(), AssetError::AssetsAreNotTheSame); - TokenAsset::new(self.amount() + other.amount(), self.asset_id()) - } -} - -impl core::ops::Eq for TokenAsset { - fn eq(self, other: Self) -> bool { - self.asset_id() == other.asset_id() - } -} - -impl core::ops::Ord for TokenAsset { - fn gt(self, other: Self) -> bool { - require(self.asset_id() == other.asset_id(), AssetError::AssetsAreNotTheSame); - self.amount() > other.amount() - } - fn lt(self, other: Self) -> bool { - require(self.asset_id() == other.asset_id(), AssetError::AssetsAreNotTheSame); - self.amount() < other.amount() - } -} diff --git a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/traits.sw b/auctions/english-auction/project/contracts/auction-contract/src/data_structures/traits.sw deleted file mode 100644 index 843edd9cf..000000000 --- a/auctions/english-auction/project/contracts/auction-contract/src/data_structures/traits.sw +++ /dev/null @@ -1,18 +0,0 @@ -library; - -/// A trait for assets that can be transferred between accounts. -pub trait Asset { - /// Returns the amount of the asset. - /// - /// # Returns - /// - /// * [u64] - The amount of the asset. - fn amount(self) -> u64; - - /// Returns the AssetId of the asset. - /// - /// # Returns - /// - /// * [AssetId] - The AssetId of the asset. - fn asset_id(self) -> ContractId; -} diff --git a/auctions/english-auction/project/contracts/auction-contract/src/errors.sw b/auctions/english-auction/project/contracts/auction-contract/src/errors.sw index 2ad305d38..c0914326e 100644 --- a/auctions/english-auction/project/contracts/auction-contract/src/errors.sw +++ b/auctions/english-auction/project/contracts/auction-contract/src/errors.sw @@ -6,26 +6,14 @@ pub enum AccessError { AuctionIsNotClosed: (), /// The auction is not yet open. AuctionIsNotOpen: (), - /// The NFT transfer is not approved by the owner. - NFTTransferNotApproved: (), /// The sender is not the auction seller. SenderIsNotSeller: (), } -/// Errors related to assets. -pub enum AssetError { - /// The assets are not the same. - AssetsAreNotTheSame: (), -} - /// Errors related to the initialization of the auction. pub enum InitError { /// The auction duration is not provided. AuctionDurationNotProvided: (), - /// The amount of tokens being auctioned cannot be zero. - BidAssetAmountNotZero: (), - /// Only one NFT can be auctioned at a time. - CannotAcceptMoreThanOneNFT: (), /// The initial price cannot be zero. InitialPriceCannotBeZero: (), /// The reserve price cannot be lower than the initial price. diff --git a/auctions/english-auction/project/contracts/auction-contract/src/events.sw b/auctions/english-auction/project/contracts/auction-contract/src/events.sw index 12cb1caff..8b296be3d 100644 --- a/auctions/english-auction/project/contracts/auction-contract/src/events.sw +++ b/auctions/english-auction/project/contracts/auction-contract/src/events.sw @@ -1,6 +1,6 @@ library; -use ::data_structures::{auction::Auction, auction_asset::AuctionAsset}; +use ::data_structures::auction::Auction; /// Event for when an auction is cancelled. pub struct CancelAuctionEvent { @@ -13,9 +13,11 @@ pub struct CreateAuctionEvent { /// The auction id of the auction that was created. auction_id: u64, /// The asset in which bids will be recieved. - bid_asset: AuctionAsset, + bid_asset: AssetId, /// The asset to be sold. - sell_asset: AuctionAsset, + sell_asset: AssetId, + /// The amount of the asset being sold. + sell_asset_amount: u64, } /// Event for when a bid is placed. @@ -31,7 +33,9 @@ pub struct BidEvent { /// Event for when assets are withdrawn. pub struct WithdrawEvent { /// The asset that was withdrawn. - asset: AuctionAsset, + asset: AssetId, + /// The amount of the asset that is withdrawn. + asset_amount: u64, /// The auction id of the auction that was withdrawn from. auction_id: u64, /// The user that withdrew the asset. diff --git a/auctions/english-auction/project/contracts/auction-contract/src/interface.sw b/auctions/english-auction/project/contracts/auction-contract/src/interface.sw index f51c0aef5..7e279f08c 100644 --- a/auctions/english-auction/project/contracts/auction-contract/src/interface.sw +++ b/auctions/english-auction/project/contracts/auction-contract/src/interface.sw @@ -1,6 +1,6 @@ library; -use ::data_structures::{auction::Auction, auction_asset::AuctionAsset}; +use ::data_structures::auction::Auction; abi EnglishAuction { /// Places a bid on the specified auction. @@ -8,7 +8,6 @@ abi EnglishAuction { /// # Arguments /// /// * `auction_id`: [u64] - The id number of the auction. - /// * `bid_asset`: [AuctionAsset] - An asset that is either a `TokenAsset` struct or a `NFTAsset` struct. /// /// # Reverts /// @@ -25,7 +24,7 @@ abi EnglishAuction { /// * When the bidder's total deposits are greater than the reserve price. #[payable] #[storage(read, write)] - fn bid(auction_id: u64, bid_asset: AuctionAsset); + fn bid(auction_id: u64); /// Cancels the specified auction. /// @@ -49,12 +48,11 @@ abi EnglishAuction { /// /// # Arguments /// - /// `bid_asset`: [AuctionAsset] - The asset the seller is willing to accept in return for the selling asset. - /// `duration`: [u64] - The duration of time the auction should be open. + /// `bid_asset`: [AssetId] - The asset the seller is willing to accept in return for the selling asset. + /// `duration`: [u32] - The duration of time the auction should be open. /// `initial_price`: [u64] - The starting price at which the auction should start. /// `reserve_price`: [Option] - The price at which a buyer may purchase the `sell_asset` outright. /// `seller`: [Identity] - The seller for this auction. - /// `sell_asset`: [AuctionAsset] - The enum that contains information about what is being auctioned off. /// /// # Returns /// @@ -72,7 +70,13 @@ abi EnglishAuction { /// * When transfering of the NFT asset to the contract failed. #[payable] #[storage(read, write)] - fn create(bid_asset: AuctionAsset, duration: u64, inital_price: u64, reserve_price: Option, seller: Identity, sell_asset: AuctionAsset) -> u64; + fn create( + bid_asset: AssetId, + duration: u32, + inital_price: u64, + reserve_price: Option, + seller: Identity, + ) -> u64; /// Allows users to withdraw their owed assets if the auction's bid period has ended, the /// reserve has been met, or the auction has been canceled. @@ -115,6 +119,11 @@ abi Info { /// Returns the balance of the user's deposits for the specified auction. /// + /// # Additional Information + /// + /// This amount will represent the bidding asset amount for bidders and the + /// selling asset for the seller. + /// /// # Arguments /// /// * `auction_id`: [u64] - The id number of the auction. @@ -122,9 +131,9 @@ abi Info { /// /// # Returns /// - /// * [Option] - The amount of assets the user has deposited. + /// * [Option] - The amount of assets the user has deposited for that auction. #[storage(read)] - fn deposit_balance(auction_id: u64, identity: Identity) -> Option; + fn deposit_balance(auction_id: u64, identity: Identity) -> Option; /// Returns the total auctions which have been started using this auction contract. /// diff --git a/auctions/english-auction/project/contracts/auction-contract/src/main.sw b/auctions/english-auction/project/contracts/auction-contract/src/main.sw index 3dcf00e60..b4fcc1e73 100644 --- a/auctions/english-auction/project/contracts/auction-contract/src/main.sw +++ b/auctions/english-auction/project/contracts/auction-contract/src/main.sw @@ -4,22 +4,21 @@ mod errors; mod data_structures; mod events; mod interface; -mod utils; -use ::data_structures::{auction::Auction, auction_asset::AuctionAsset, state::State}; +use ::data_structures::{auction::Auction, state::State}; use ::errors::{AccessError, InitError, InputError, UserError}; use ::events::{BidEvent, CancelAuctionEvent, CreateAuctionEvent, WithdrawEvent}; use ::interface::{EnglishAuction, Info}; use std::{ - auth::msg_sender, + asset::transfer, block::height, call_frames::{ contract_id, msg_asset_id, }, context::msg_amount, + hash::Hash, }; -use ::utils::{transfer_asset, transfer_nft}; storage { /// Stores the auction information based on auction ID. @@ -29,7 +28,7 @@ storage { // This issue can be tracked here: https://github.com/FuelLabs/sway/issues/2465 /// Stores the deposits made based on the user and auction ID. /// Map((user, auction id) => deposit) - deposits: StorageMap<(Identity, u64), AuctionAsset> = StorageMap {}, + deposits: StorageMap<(Identity, u64), u64> = StorageMap {}, /// The total number of auctions that have ever been created. total_auctions: u64 = 0, } @@ -37,64 +36,71 @@ storage { impl EnglishAuction for Contract { #[payable] #[storage(read, write)] - fn bid(auction_id: u64, bid_asset: AuctionAsset) { + fn bid(auction_id: u64) { let auction = storage.auctions.get(auction_id).try_read(); require(auction.is_some(), InputError::AuctionDoesNotExist); let mut auction = auction.unwrap(); let sender = msg_sender().unwrap(); + let bid_asset = msg_asset_id(); + let bid_amount = msg_amount(); require(sender != auction.seller, UserError::BidderIsSeller); - require(auction.state == State::Open && auction.end_block >= height(), AccessError::AuctionIsNotOpen); - require(bid_asset == auction.bid_asset, InputError::IncorrectAssetProvided); + require( + auction + .state == State::Open && auction + .end_block >= height(), + AccessError::AuctionIsNotOpen, + ); + require( + bid_asset == auction + .bid_asset, + InputError::IncorrectAssetProvided, + ); // Combine the user's previous deposits and the current bid for the // total deposits to the auction the user has made - let sender_deposit = storage.deposits.get((sender, auction_id)).try_read(); - let total_bid = match sender_deposit { - Option::Some(_) => { - bid_asset + sender_deposit.unwrap() + let total_bid = match storage.deposits.get((sender, auction_id)).try_read() { + Some(sender_deposit) => { + bid_amount + sender_deposit }, - Option::None => { - bid_asset + None => { + bid_amount } }; - match total_bid { - AuctionAsset::NFTAsset(nft_asset) => { - transfer_nft(nft_asset, Identity::ContractId(contract_id())); - // TODO: Remove this once StorageVec is supported in structs - auction.state = State::Closed; - }, - AuctionAsset::TokenAsset(token_asset) => { - require(bid_asset.amount() == msg_amount(), InputError::IncorrectAmountProvided); - require(bid_asset.asset_id() == msg_asset_id(), InputError::IncorrectAssetProvided); - // Ensure this bid is greater than initial bid and the total deposits are greater - // than the current winning bid - // TODO: Move this outside the match statement once StorageVec is supported in structs - // This issue can be tracked here: https://github.com/FuelLabs/sway/issues/2465 - require(token_asset.amount() >= auction.initial_price, InputError::InitialPriceNotMet); - require(token_asset.amount() > auction.bid_asset.amount(), InputError::IncorrectAmountProvided); - } - } + require( + total_bid >= auction + .initial_price, + InputError::InitialPriceNotMet, + ); + require( + total_bid > auction + .highest_bid, + InputError::IncorrectAmountProvided, + ); // Check if reserve has been met if there is one set if auction.reserve_price.is_some() { // The bid cannot be greater than the reserve price - require(auction.reserve_price.unwrap() >= total_bid.amount(), InputError::IncorrectAmountProvided); + let reserve_price = auction.reserve_price.unwrap(); + require( + reserve_price >= total_bid, + InputError::IncorrectAmountProvided, + ); - if auction.reserve_price.unwrap() == total_bid.amount() { + if reserve_price == total_bid { auction.state = State::Closed; } } // Update the auction's information and store the new state auction.highest_bidder = Option::Some(sender); - auction.bid_asset = total_bid; - storage.deposits.insert((sender, auction_id), auction.bid_asset); + auction.highest_bid = total_bid; + storage.deposits.insert((sender, auction_id), total_bid); storage.auctions.insert(auction_id, auction); log(BidEvent { - amount: auction.bid_asset.amount(), + amount: auction.highest_bid, auction_id: auction_id, user: sender, }); @@ -107,8 +113,18 @@ impl EnglishAuction for Contract { require(auction.is_some(), InputError::AuctionDoesNotExist); let mut auction = auction.unwrap(); - require(auction.state == State::Open && auction.end_block >= height(), AccessError::AuctionIsNotOpen); - require(msg_sender().unwrap() == auction.seller, AccessError::SenderIsNotSeller); + require( + auction + .state == State::Open && auction + .end_block >= height(), + AccessError::AuctionIsNotOpen, + ); + require( + msg_sender() + .unwrap() == auction + .seller, + AccessError::SenderIsNotSeller, + ); // Update and store the auction's information auction.highest_bidder = Option::None; @@ -121,63 +137,53 @@ impl EnglishAuction for Contract { #[payable] #[storage(read, write)] fn create( - bid_asset: AuctionAsset, - duration: u64, + bid_asset: AssetId, + duration: u32, initial_price: u64, reserve_price: Option, seller: Identity, - sell_asset: AuctionAsset, ) -> u64 { // Either there is no reserve price or the reserve must be greater than the initial price - require(reserve_price.is_none() || (reserve_price.is_some() && reserve_price.unwrap() >= initial_price), InitError::ReserveLessThanInitialPrice); + require( + reserve_price + .is_none() || (reserve_price + .is_some() && reserve_price + .unwrap() >= initial_price), + InitError::ReserveLessThanInitialPrice, + ); require(duration != 0, InitError::AuctionDurationNotProvided); + require(initial_price != 0, InitError::InitialPriceCannotBeZero); - // TODO: This will be combined once StorageVec is supported in structs - // This issue can be tracked here: https://github.com/FuelLabs/sway/issues/2465 - match bid_asset { - AuctionAsset::TokenAsset(asset) => { - require(asset.amount() == 0, InitError::BidAssetAmountNotZero); - }, - AuctionAsset::NFTAsset(asset) => { - require(asset.token_id() == 0, InitError::BidAssetAmountNotZero); - } - } - - // Ensure that the `sell_asset` struct and what was sent in the transaction match - match sell_asset { - AuctionAsset::TokenAsset(asset) => { - // Selling tokens - // TODO: Move this outside the match statement when StorageVec in structs is supported - // This issue can be tracked here: https://github.com/FuelLabs/sway/issues/2465 - require(initial_price != 0, InitError::InitialPriceCannotBeZero); - require(msg_amount() == asset.amount(), InputError::IncorrectAmountProvided); - require(msg_asset_id() == asset.asset_id(), InputError::IncorrectAssetProvided); - }, - AuctionAsset::NFTAsset(asset) => { - // Selling NFTs - let sender = msg_sender().unwrap(); - // TODO: Remove this when StorageVec in structs is supported - // This issue can be tracked here: https://github.com/FuelLabs/sway/issues/2465 - require(initial_price == 1, InitError::CannotAcceptMoreThanOneNFT); - transfer_nft(asset, Identity::ContractId(contract_id())); - } - } + let sell_asset = msg_asset_id(); + let sell_asset_amount = msg_amount(); + require(sell_asset_amount != 0, InputError::IncorrectAmountProvided); // Setup auction - let auction = Auction::new(bid_asset, duration + height(), initial_price, reserve_price, sell_asset, seller); + let auction = Auction::new( + bid_asset, + duration + height(), + initial_price, + reserve_price, + sell_asset, + sell_asset_amount, + seller, + ); // Store the auction information let total_auctions = storage.total_auctions.read(); - storage.deposits.insert((seller, total_auctions), sell_asset); + storage + .deposits + .insert((seller, total_auctions), sell_asset_amount); storage.auctions.insert(total_auctions, auction); + storage.total_auctions.write(total_auctions + 1); log(CreateAuctionEvent { auction_id: total_auctions, bid_asset, sell_asset, + sell_asset_amount, }); - storage.total_auctions.write(storage.total_auctions.read() + 1); total_auctions } @@ -189,7 +195,12 @@ impl EnglishAuction for Contract { // Cannot withdraw if the auction is still on going let mut auction = auction.unwrap(); - require(auction.state == State::Closed || auction.end_block <= height(), AccessError::AuctionIsNotClosed); + require( + auction + .state == State::Closed || auction + .end_block <= height(), + AccessError::AuctionIsNotClosed, + ); if (auction.end_block <= height() && auction.state == State::Open) { @@ -204,25 +215,27 @@ impl EnglishAuction for Contract { // Make sure the sender still has something to withdraw require(sender_deposit.is_some(), UserError::UserHasAlreadyWithdrawn); assert(storage.deposits.remove((sender, auction_id))); - let mut withdrawn_asset = sender_deposit.unwrap(); + let mut withdrawn_amount = sender_deposit.unwrap(); + let mut withdrawn_asset = auction.bid_asset; // Withdraw owed assets - if ((bidder.is_some() - && sender == bidder.unwrap()) - || (bidder.is_none() - && sender == auction.seller)) - { - transfer_asset(auction.sell_asset, sender); + if ((bidder.is_some() && sender == bidder.unwrap()) || (bidder.is_none() && sender == auction.seller)) { + // Winning bidder or seller withdraws original sold assets + transfer(sender, auction.sell_asset, auction.sell_asset_amount); withdrawn_asset = auction.sell_asset; + withdrawn_amount = auction.sell_asset_amount; } else if (sender == auction.seller) { - transfer_asset(auction.bid_asset, sender); - withdrawn_asset = auction.bid_asset; + // Seller withdraws winning bids + transfer(sender, auction.bid_asset, auction.highest_bid); + withdrawn_amount = auction.highest_bid; } else { - transfer_asset(sender_deposit.unwrap(), sender); + // Bidders withdraw failed bids + transfer(sender, withdrawn_asset, withdrawn_amount); }; log(WithdrawEvent { asset: withdrawn_asset, + asset_amount: withdrawn_amount, auction_id, user: sender, }); @@ -236,7 +249,7 @@ impl Info for Contract { } #[storage(read)] - fn deposit_balance(auction_id: u64, identity: Identity) -> Option { + fn deposit_balance(auction_id: u64, identity: Identity) -> Option { storage.deposits.get((identity, auction_id)).try_read() } diff --git a/auctions/english-auction/project/contracts/auction-contract/src/utils.sw b/auctions/english-auction/project/contracts/auction-contract/src/utils.sw deleted file mode 100644 index f14aeb522..000000000 --- a/auctions/english-auction/project/contracts/auction-contract/src/utils.sw +++ /dev/null @@ -1,42 +0,0 @@ -library; - -use ::data_structures::{auction_asset::AuctionAsset, nft_asset::NFTAsset}; -use ::errors::AccessError; -use std::token::transfer; -use ::nft::NFT; - -/// Transfers assets out of the auction contract to the specified user. -/// -/// # Arguments -/// -/// * `asset`: [AuctionAsset] - The asset that is to be transfered. -/// * `to`: [Identity] - The user which will recieve the asset. -pub fn transfer_asset(asset: AuctionAsset, to: Identity) { - match asset { - AuctionAsset::NFTAsset(asset) => { - transfer_nft(asset, to) - }, - AuctionAsset::TokenAsset(asset) => { - transfer(asset.amount(), asset.asset_id(), to) - }, - } -} - -/// Transfers an NFT from one `Identity` to another. -/// -/// # Arguments -/// -/// * `asset`: [NFTAsset] - The struct which contains the NFT data. -/// * `to`: [Identity] - The user which the NFTs should be transfered to. -/// -/// # Reverts -/// -/// * The NFT transfer failed. -pub fn transfer_nft(asset: NFTAsset, to: Identity) { - let nft_abi = abi(NFT, asset.asset_id().value); - - nft_abi.transfer(to, asset.token_id()); - - let owner = nft_abi.owner_of(asset.token_id()); - require(owner.is_some() && owner.unwrap() == to, AccessError::NFTTransferNotApproved); -} diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/bid.rs b/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/bid.rs index cadb58b6e..b4ed61037 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/bid.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/bid.rs @@ -1,9 +1,6 @@ use crate::utils::{ - interface::core::{ - auction::{bid, create}, - nft::mint, - }, - setup::{defaults_nft, defaults_token, nft_asset, setup, token_asset}, + interface::core::auction::{bid, create}, + setup::{defaults, setup}, }; use fuels::types::Identity; @@ -11,36 +8,29 @@ mod success { use super::*; use crate::utils::{ - interface::{ - core::nft::{approve, mint, set_approval_for_all}, - info::{auction_info, deposit_balance}, - }, - setup::{Auction, AuctionAsset, State}, + interface::info::{auction_info, deposit_balance}, + setup::{Auction, State}, }; #[tokio::test] async fn overrides_bid() { - let (_, seller, buyer1, buyer2, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, buyer2, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); let buyer2_identity = Identity::Address(buyer2.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; - let bid2_asset = token_asset(buy_token_contract_id, initial_price + 1).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -48,15 +38,13 @@ mod success { deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; assert!(buyer1_deposit.is_none()); - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); + let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) + .await + .unwrap(); let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - assert_eq!(auction.bid_asset, bid_asset); + assert_eq!(buyer1_deposit, initial_price); assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); assert_eq!(auction.state, State::Open); @@ -64,42 +52,36 @@ mod success { deposit_balance(auction_id, &buyer2.auction, buyer2_identity.clone()).await; assert!(buyer2_deposit.is_none()); - bid(auction_id, bid2_asset.clone(), &buyer2.auction).await; + bid(auction_id, buy_asset, initial_price + 1, &buyer2.auction).await; - let buyer2_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer2.auction, buyer2_identity.clone()) - .await - .unwrap(); + let buyer2_deposit = deposit_balance(auction_id, &buyer2.auction, buyer2_identity.clone()) + .await + .unwrap(); let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer2_deposit, bid2_asset); - assert_eq!(auction.bid_asset, bid2_asset); + assert_eq!(buyer2_deposit, initial_price + 1); assert_eq!(auction.highest_bidder.unwrap(), buyer2_identity); assert_eq!(auction.state, State::Open); } #[tokio::test] async fn overrides_bid_to_reserve() { - let (_, seller, buyer1, buyer2, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, buyer2, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); let buyer2_identity = Identity::Address(buyer2.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; - let bid2_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -107,15 +89,13 @@ mod success { deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; assert!(buyer1_deposit.is_none()); - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); + let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) + .await + .unwrap(); let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - assert_eq!(auction.bid_asset, bid_asset); + assert_eq!(buyer1_deposit, initial_price); assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); assert_eq!(auction.state, State::Open); @@ -123,40 +103,35 @@ mod success { deposit_balance(auction_id, &buyer2.auction, buyer2_identity.clone()).await; assert!(buyer2_deposit.is_none()); - bid(auction_id, bid2_asset.clone(), &buyer2.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer2.auction).await; - let buyer2_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer2.auction, buyer2_identity.clone()) - .await - .unwrap(); + let buyer2_deposit = deposit_balance(auction_id, &buyer2.auction, buyer2_identity.clone()) + .await + .unwrap(); let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer2_deposit, bid2_asset); - assert_eq!(auction.bid_asset, bid2_asset); + assert_eq!(buyer2_deposit, reserve_price); assert_eq!(auction.highest_bidder.unwrap(), buyer2_identity); assert_eq!(auction.state, State::Closed); } #[tokio::test] async fn places_bid_at_reserve() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -164,42 +139,35 @@ mod success { deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; assert!(buyer1_deposit.is_none()); - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer1.auction).await; - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); + let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) + .await + .unwrap(); let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - assert_eq!(auction.bid_asset, bid_asset); + assert_eq!(buyer1_deposit, reserve_price); assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); assert_eq!(auction.state, State::Closed); } #[tokio::test] async fn places_multiple_bids() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid1_asset = token_asset(buy_token_contract_id, initial_price).await; - let bid2_asset = token_asset(buy_token_contract_id, 1).await; - let total_bid_asset = token_asset(buy_token_contract_id, initial_price + 1).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -207,271 +175,45 @@ mod success { deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; assert!(buyer1_deposit.is_none()); - bid(auction_id, bid1_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); - let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid1_asset); - assert_eq!(auction.bid_asset, bid1_asset); - assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); - assert_eq!(auction.state, State::Open); - - bid(auction_id, bid2_asset.clone(), &buyer1.auction).await; - - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); + let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) + .await + .unwrap(); let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, total_bid_asset); - assert_eq!(auction.bid_asset, total_bid_asset); + assert_eq!(buyer1_deposit, initial_price); assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); assert_eq!(auction.state, State::Open); - } - - #[tokio::test] - async fn places_nft_bid_on_nft_asset() { - let ( - _, - seller, - buyer1, - _, - auction_contract_id, - _, - sell_nft_contract_id, - _, - buy_nft_contract_id, - ) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let bid_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; - - mint(reserve_count, &buyer1.nft, buyer1_identity.clone()).await; - approve(Some(auction_identity.clone()), &buyer1.nft, 0).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let buyer1_deposit = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; - assert!(buyer1_deposit.is_none()); - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); - let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - assert_eq!(auction.bid_asset, bid_asset); - assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); - assert_eq!(auction.state, State::Closed); - } - - #[tokio::test] - async fn places_nft_bid_on_nft_asset_with_approval_for_all() { - let ( - _, - seller, - buyer1, - _, - auction_contract_id, - _, - sell_nft_contract_id, - _, - buy_nft_contract_id, - ) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let bid_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - set_approval_for_all(true, &seller.nft, auction_identity.clone()).await; - mint(reserve_count, &buyer1.nft, buyer1_identity.clone()).await; - set_approval_for_all(true, &buyer1.nft, auction_identity.clone()).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let buyer1_deposit = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; - assert!(buyer1_deposit.is_none()); - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); - let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - assert_eq!(auction.bid_asset, bid_asset); - assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); - assert_eq!(auction.state, State::Closed); - } - - #[tokio::test] - async fn places_nft_bid_on_token_asset() { - let ( - _, - seller, - buyer1, - _, - auction_contract_id, - sell_token_contract_id, - _, - _, - buy_nft_contract_id, - ) = setup().await; - let (_, initial_count, reserve_count, duration) = defaults_nft().await; - let (sell_amount, _, _, _, _) = defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let bid_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(reserve_count, &buyer1.nft, buyer1_identity.clone()).await; - approve(Some(auction_identity.clone()), &buyer1.nft, 0).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let buyer1_deposit = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; - assert!(buyer1_deposit.is_none()); - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); - let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - assert_eq!(auction.bid_asset, bid_asset); - assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); - assert_eq!(auction.state, State::Closed); - } - - #[tokio::test] - async fn places_token_bid_on_nft_asset() { - let ( - _, - seller, - buyer1, - _, - auction_contract_id, - _, - sell_nft_contract_id, - buy_token_contract_id, - _, - ) = setup().await; - let (sell_count, _, _, duration) = defaults_nft().await; - let (_, initial_price, reserve_price, _, _) = defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; + bid(auction_id, buy_asset, 1, &buyer1.auction).await; - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let buyer1_deposit = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; - assert!(buyer1_deposit.is_none()); - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); + let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) + .await + .unwrap(); let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - assert_eq!(auction.bid_asset, bid_asset); + assert_eq!(buyer1_deposit, initial_price + 1); assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); assert_eq!(auction.state, State::Open); } #[tokio::test] - async fn places_token_bid_on_token_asset() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + async fn places_bid() { + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -479,15 +221,14 @@ mod success { deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; assert!(buyer1_deposit.is_none()); - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; - let buyer1_deposit: AuctionAsset = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); + let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) + .await + .unwrap(); let auction: Auction = auction_info(auction_id, &seller.auction).await.unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - assert_eq!(auction.bid_asset, bid_asset); + assert_eq!(buyer1_deposit, initial_price); + assert_eq!(auction.bid_asset, buy_asset); assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); assert_eq!(auction.state, State::Open); } @@ -496,360 +237,187 @@ mod success { mod revert { use super::*; - use fuels::prelude::{AssetId, CallParameters, TxParameters}; #[tokio::test] #[should_panic(expected = "AuctionDoesNotExist")] async fn when_auction_id_does_not_map_to_existing_auction() { - let (_, _, buyer1, _, _, _, _, buy_token_contract_id, _) = setup().await; - let (_, initial_price, _reserve_price, _, _) = defaults_token().await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; + let (_, _, buyer1, _, _, _, buy_asset) = setup().await; + let (_, initial_price, _reserve_price, _, _) = defaults().await; - bid(0, bid_asset.clone(), &buyer1.auction).await; + bid(0, buy_asset, initial_price, &buyer1.auction).await; } #[tokio::test] #[should_panic(expected = "BidderIsSeller")] async fn when_sender_is_the_seller() { - let (_, seller, _buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, _buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &seller.auction).await; + bid(auction_id, buy_asset, initial_price, &seller.auction).await; } #[tokio::test] #[should_panic(expected = "AuctionIsNotOpen")] async fn when_auction_has_closed() { - let (_, seller, buyer1, buyer2, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, buyer2, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price).await; - let bid2_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - bid(auction_id, bid2_asset.clone(), &buyer2.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer2.auction).await; } #[tokio::test] #[should_panic(expected = "AuctionIsNotOpen")] async fn when_bidding_period_has_ended() { - let (deployer, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (deployer, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; let provider = deployer.wallet.provider().unwrap(); let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; let _result = provider.produce_blocks(duration + 1, Option::None).await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; } #[tokio::test] #[should_panic(expected = "IncorrectAssetProvided")] async fn when_asset_provided_not_accepted() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(sell_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - } - - #[ignore] - #[tokio::test] - // TODO: test is not set up to hit the error properly: https://github.com/FuelLabs/sway-applications/issues/330 - #[should_panic(expected = "NFTTransferNotApproved")] - async fn when_bidder_does_not_own_nft() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, _, buy_nft_contract_id) = - setup().await; - let (_, initial_count, reserve_count, duration) = defaults_nft().await; - let (sell_amount, _, _, _, _) = defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let bid_asset = nft_asset(buy_nft_contract_id, 0).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - } - - #[ignore] - #[tokio::test] - // TODO: test is not set up to hit the error properly: https://github.com/FuelLabs/sway-applications/issues/330 - #[should_panic(expected = "NFTTransferNotApproved")] - async fn when_auction_contract_does_not_have_permission_to_transfer_nft() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, _, buy_nft_contract_id) = - setup().await; - let (_, initial_count, reserve_count, duration) = defaults_nft().await; - let (sell_amount, _, _, _, _) = defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let bid_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(reserve_count, &buyer1.nft, buyer1_identity.clone()).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - } - - #[tokio::test] - #[should_panic(expected = "IncorrectAssetProvided")] - async fn when_asset_type_and_struct_mismatch() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new( - initial_price, - AssetId::from(*sell_token_contract_id), - 1_000_000, - ); - - buyer1 - .auction - .methods() - .bid(auction_id, bid_asset.clone()) - .tx_params(tx_params) - .call_params(call_params) - .unwrap() - .call() - .await - .unwrap(); - } - - #[tokio::test] - #[should_panic(expected = "IncorrectAmountProvided")] - async fn when_asset_amount_and_struct_mismatch() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new( - initial_price + 1, - AssetId::from(*buy_token_contract_id), - 1_000_000, - ); - - buyer1 - .auction - .methods() - .bid(auction_id, bid_asset.clone()) - .tx_params(tx_params) - .call_params(call_params) - .unwrap() - .call() - .await - .unwrap(); + bid(auction_id, sell_asset, initial_price, &buyer1.auction).await; } #[tokio::test] #[should_panic(expected = "InitialPriceNotMet")] async fn when_bid_is_less_than_initial_price() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price - 1).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price - 1, &buyer1.auction).await; } #[tokio::test] #[should_panic(expected = "IncorrectAmountProvided")] async fn when_bid_is_less_than_last_bid() { - let (_, seller, buyer1, buyer2, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, buyer2, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; - let bid2_asset = token_asset(buy_token_contract_id, initial_price + 2).await; - let bid3_asset = token_asset(buy_token_contract_id, 1).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - bid(auction_id, bid2_asset.clone(), &buyer2.auction).await; - bid(auction_id, bid3_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price + 2, &buyer2.auction).await; + bid(auction_id, buy_asset, 1, &buyer1.auction).await; } #[tokio::test] #[should_panic(expected = "IncorrectAmountProvided")] async fn when_bid_is_greater_than_reserve_price() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price + 1).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price + 1, &buyer1.auction).await; } } diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/cancel.rs b/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/cancel.rs index 40af28e8d..9e2b6563f 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/cancel.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/cancel.rs @@ -1,6 +1,6 @@ use crate::utils::{ interface::core::auction::{bid, cancel, create}, - setup::{defaults_token, setup, token_asset}, + setup::{defaults, setup}, }; use fuels::types::Identity; @@ -11,28 +11,25 @@ mod success { #[tokio::test] async fn cancels_auction_after_bid() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; cancel(auction_id, &seller.auction).await; @@ -43,34 +40,33 @@ mod success { #[tokio::test] async fn cancels_multiple_auctions() { - let (_, seller, _, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; let auction_id1 = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; let auction_id2 = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -95,23 +91,21 @@ mod success { #[tokio::test] async fn cancels_token_auction() { - let (_, seller, _, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -130,7 +124,7 @@ mod revert { #[tokio::test] #[should_panic(expected = "AuctionDoesNotExist")] async fn when_auction_does_not_exist() { - let (_, seller, _, _, _, _, _, _, _) = setup().await; + let (_, seller, _, _, _, _, _) = setup().await; cancel(0, &seller.auction).await; } @@ -138,24 +132,22 @@ mod revert { #[tokio::test] #[should_panic(expected = "AuctionIsNotOpen")] async fn when_auction_bid_period_has_ended() { - let (deployer, seller, _, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (deployer, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; let provider = deployer.wallet.provider().unwrap(); let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -167,28 +159,25 @@ mod revert { #[tokio::test] #[should_panic(expected = "AuctionIsNotOpen")] async fn when_auction_has_closed() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer1.auction).await; cancel(auction_id, &seller.auction).await; } @@ -196,23 +185,21 @@ mod revert { #[tokio::test] #[should_panic(expected = "AuctionIsNotOpen")] async fn when_auction_already_canceled() { - let (_, seller, _, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -223,23 +210,21 @@ mod revert { #[tokio::test] #[should_panic(expected = "SenderIsNotSeller")] async fn when_sender_is_not_seller() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/create.rs b/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/create.rs index b2bbbe2ef..14eef6ca2 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/create.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/create.rs @@ -1,9 +1,6 @@ use crate::utils::{ - interface::core::{ - auction::create, - nft::{approve, mint}, - }, - setup::{defaults_nft, defaults_token, nft_asset, setup, token_asset}, + interface::core::auction::create, + setup::{defaults, setup}, }; use fuels::types::Identity; @@ -11,246 +8,47 @@ mod success { use super::*; use crate::utils::{ - interface::{ - core::nft::{approve, mint, set_approval_for_all}, - info::auction_info, - }, + interface::info::auction_info, setup::{create_auction_copy, State}, }; #[tokio::test] - async fn creates_multiple_auctions() { - let (deployer, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; + async fn creates_new_auction() { + let (deployer, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; let provider = deployer.wallet.provider().unwrap(); let auction = auction_info(0, &seller.auction).await; assert!(auction.is_none()); - let auction_id1 = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; - let auction1 = auction_info(auction_id1, &seller.auction).await; - assert!(auction1.is_some()); - - let auction1_copy = create_auction_copy( - buy_asset.clone(), - None, - total_duration, - initial_price, - Some(reserve_price), - sell_asset.clone(), - seller_identity.clone(), - State::Open, - ) - .await; - assert_eq!(auction1.unwrap(), auction1_copy); - - let auction_id2 = create( - buy_asset.clone(), + let auction_id = create( + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; - let auction2 = auction_info(auction_id2, &seller.auction).await; - assert!(auction2.is_some()); - - let auction2_copy = create_auction_copy( - buy_asset.clone(), - None, - total_duration, - initial_price, - Some(reserve_price), - sell_asset.clone(), - seller_identity.clone(), - State::Open, - ) - .await; - assert_eq!(auction2.unwrap(), auction2_copy); - } - - #[tokio::test] - async fn creates_new_nft_auction() { - let ( - deployer, - seller, - _, - _, - auction_contract_id, - _, - sell_nft_contract_id, - _, - buy_nft_contract_id, - ) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let provider = deployer.wallet.provider().unwrap(); - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; - - let auction = auction_info(0, &seller.auction).await; - assert!(auction.is_none()); - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; - let auction = auction_info(auction_id, &seller.auction).await; - assert!(auction.is_some()); - - let auction_copy = create_auction_copy( - buy_asset.clone(), - None, - total_duration, - initial_count, - Some(reserve_count), - sell_asset, - seller_identity, - State::Open, - ) - .await; - assert_eq!(auction.unwrap(), auction_copy); - } - - #[tokio::test] - async fn creates_new_nft_auction_with_approval_for_all() { - let ( - deployer, - seller, - _, - _, - auction_contract_id, - _, - sell_nft_contract_id, - _, - buy_nft_contract_id, - ) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let provider = deployer.wallet.provider().unwrap(); - let auction = auction_info(0, &seller.auction).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - set_approval_for_all(true, &seller.nft, auction_identity.clone()).await; - - assert!(auction.is_none()); - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; - let auction = auction_info(auction_id, &seller.auction).await; - assert!(auction.is_some()); - - let auction_copy = create_auction_copy( - buy_asset.clone(), - None, - total_duration, - initial_count, - Some(reserve_count), sell_asset, - seller_identity, - State::Open, - ) - .await; - assert_eq!(auction.unwrap(), auction_copy); - } - - #[tokio::test] - async fn creates_new_nft_auction_with_token_bid_asset() { - let ( - deployer, - seller, - _, - _, - auction_contract_id, - _, - sell_nft_contract_id, - buy_asset_contract_id, - _, - ) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; - let provider = deployer.wallet.provider().unwrap(); - let auction = auction_info(0, &seller.auction).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; - - assert!(auction.is_none()); - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), + sell_amount, ) .await; - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; + let total_duration = provider.latest_block_height().await.unwrap() + duration; let auction = auction_info(auction_id, &seller.auction).await; assert!(auction.is_some()); let auction_copy = create_auction_copy( - buy_asset.clone(), + buy_asset, + 0, None, total_duration, - initial_count, - Some(reserve_count), + initial_price, + Some(reserve_price), sell_asset, + sell_amount, seller_identity, State::Open, ) @@ -259,129 +57,116 @@ mod success { } #[tokio::test] - async fn creates_new_token_auction() { - let (deployer, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; + async fn creates_multiple_auctions() { + let (deployer, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; let provider = deployer.wallet.provider().unwrap(); let auction = auction_info(0, &seller.auction).await; assert!(auction.is_none()); - let auction_id = create( - buy_asset.clone(), + let auction_id1 = create( + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; - let auction = auction_info(auction_id, &seller.auction).await; - assert!(auction.is_some()); + let total_duration = provider.latest_block_height().await.unwrap() + duration; + let auction1 = auction_info(auction_id1, &seller.auction).await; + assert!(auction1.is_some()); - let auction_copy = create_auction_copy( - buy_asset.clone(), + let auction1_copy = create_auction_copy( + buy_asset, + 0, None, total_duration, initial_price, Some(reserve_price), sell_asset, - seller_identity, + sell_amount, + seller_identity.clone(), State::Open, ) .await; - assert_eq!(auction.unwrap(), auction_copy); - } - - #[tokio::test] - async fn creates_new_token_auction_with_nft_bid_asset() { - let (deployer, seller, _, _, _, sell_asset_contract_id, _, _, buy_nft_contract_id) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let provider = deployer.wallet.provider().unwrap(); - - let auction = auction_info(0, &seller.auction).await; - assert!(auction.is_none()); + assert_eq!(auction1.unwrap(), auction1_copy); - let auction_id = create( - buy_asset.clone(), + let auction_id2 = create( + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; - let auction = auction_info(auction_id, &seller.auction).await; - assert!(auction.is_some()); + let total_duration = provider.latest_block_height().await.unwrap() + duration; + let auction2 = auction_info(auction_id2, &seller.auction).await; + assert!(auction2.is_some()); - let auction_copy = create_auction_copy( - buy_asset.clone(), + let auction2_copy = create_auction_copy( + buy_asset, + 0, None, total_duration, initial_price, Some(reserve_price), sell_asset, - seller_identity, + sell_amount, + seller_identity.clone(), State::Open, ) .await; - assert_eq!(auction.unwrap(), auction_copy); + assert_eq!(auction2.unwrap(), auction2_copy); } #[tokio::test] - async fn creates_new_token_auction_without_reserve() { - let (deployer, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, _, duration, _) = defaults_token().await; + async fn creates_new_auction_without_reserve() { + let (deployer, seller, _, _, _, sell_asset, buy_asset) = setup().await; + let (sell_amount, initial_price, _, duration, _) = defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; let provider = deployer.wallet.provider().unwrap(); let auction = auction_info(0, &seller.auction).await; assert!(auction.is_none()); let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, None, seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; + let total_duration = provider.latest_block_height().await.unwrap() + duration; let auction = auction_info(auction_id, &seller.auction).await; assert!(auction.is_some()); let auction_copy = create_auction_copy( - buy_asset.clone(), + buy_asset, + 0, None, total_duration, initial_price, None, sell_asset, + sell_amount, seller_identity, State::Open, ) @@ -390,41 +175,41 @@ mod success { } #[tokio::test] - async fn creates_new_token_auction_with_reserve_equal_to_initial_price() { - let (deployer, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, _, duration, _) = defaults_token().await; + async fn creates_new_auction_with_reserve_equal_to_initial_price() { + let (deployer, seller, _, _, _, sell_asset, buy_asset) = setup().await; + let (sell_amount, initial_price, _, duration, _) = defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; let provider = deployer.wallet.provider().unwrap(); let auction = auction_info(0, &seller.auction).await; assert!(auction.is_none()); let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(initial_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; + let total_duration = provider.latest_block_height().await.unwrap() + duration; let auction = auction_info(auction_id, &seller.auction).await; assert!(auction.is_some()); let auction_copy = create_auction_copy( - buy_asset.clone(), + buy_asset, + 0, None, total_duration, initial_price, Some(initial_price), sell_asset, + sell_amount, seller_identity, State::Open, ) @@ -436,27 +221,24 @@ mod success { mod revert { use super::*; - use fuels::prelude::{AssetId, CallParameters, TxParameters}; #[tokio::test] #[should_panic(expected = "ReserveLessThanInitialPrice")] async fn when_reserve_is_less_than_initial_price() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, _, duration, _) = defaults_token().await; + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; + let (sell_amount, initial_price, _, duration, _) = defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(initial_price - 1), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; } @@ -464,22 +246,20 @@ mod revert { #[tokio::test] #[should_panic(expected = "ReserveLessThanInitialPrice")] async fn when_reserve_is_zero() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, _, duration, _) = defaults_token().await; + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; + let (sell_amount, initial_price, _, duration, _) = defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(0), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; } @@ -487,323 +267,41 @@ mod revert { #[tokio::test] #[should_panic(expected = "AuctionDurationNotProvided")] async fn when_duration_is_zero() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, _, _) = defaults_token().await; + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; + let (sell_amount, initial_price, reserve_price, _, _) = defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; create( - buy_asset.clone(), + buy_asset, &seller.auction, 0, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), - ) - .await; - } - - #[tokio::test] - #[should_panic(expected = "BidAssetAmountNotZero")] - async fn when_bid_token_amount_not_zero() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 1).await; - - create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - } - - #[tokio::test] - #[should_panic(expected = "BidAssetAmountNotZero")] - async fn when_bid_nft_id_not_zero() { - let (_, seller, _, _, _, sell_asset_contract_id, _, _, buy_nft_contract_id) = setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = nft_asset(buy_nft_contract_id, 1).await; - - create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; } #[tokio::test] #[should_panic(expected = "InitialPriceCannotBeZero")] - async fn when_initial_token_price_is_zero() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, _, reserve_price, duration, _) = defaults_token().await; + async fn when_initial_price_is_zero() { + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; + let (sell_amount, _, reserve_price, duration, _) = defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, 0, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), - ) - .await; - } - - #[tokio::test] - #[should_panic(expected = "IncorrectAmountProvided")] - async fn when_token_asset_sent_less_than_sell_struct() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; - - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new( - sell_amount - 1, - AssetId::from(*sell_asset_contract_id), - 1_000_000, - ); - - seller - .auction - .methods() - .create( - buy_asset, - duration, - initial_price, - Some(reserve_price), - seller_identity, - sell_asset.clone(), - ) - .tx_params(tx_params) - .call_params(call_params) - .unwrap() - .call() - .await - .unwrap(); - } - - #[tokio::test] - #[should_panic(expected = "IncorrectAmountProvided")] - async fn when_token_asset_sent_greater_than_sell_struct() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; - - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new( - sell_amount + 1, - AssetId::from(*sell_asset_contract_id), - 1_000_000, - ); - - seller - .auction - .methods() - .create( - buy_asset, - duration, - initial_price, - Some(reserve_price), - seller_identity, - sell_asset.clone(), - ) - .tx_params(tx_params) - .call_params(call_params) - .unwrap() - .call() - .await - .unwrap(); - } - - #[tokio::test] - #[should_panic(expected = "IncorrectAmountProvided")] - async fn when_token_struct_not_correct_type() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let buy_asset = token_asset(buy_asset_contract_id, 0).await; - - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new( - sell_amount, - AssetId::from(*sell_asset_contract_id), - 1_000_000, - ); - - seller - .auction - .methods() - .create( - buy_asset.clone(), - duration, - initial_price, - Some(reserve_price), - seller_identity, - buy_asset.clone(), - ) - .tx_params(tx_params) - .call_params(call_params) - .unwrap() - .call() - .await - .unwrap(); - } - - #[tokio::test] - #[should_panic(expected = "IncorrectAssetProvided")] - async fn when_token_sent_not_correct_type() { - let (_, seller, _buyer1, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; - - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new( + sell_asset, sell_amount, - AssetId::from(*buy_asset_contract_id), - 1_000_000, - ); - - seller - .auction - .methods() - .create( - buy_asset.clone(), - duration, - initial_price, - Some(reserve_price), - seller_identity, - sell_asset.clone(), - ) - .tx_params(tx_params) - .call_params(call_params) - .unwrap() - .call() - .await - .unwrap(); - } - - #[tokio::test] - #[should_panic(expected = "ReserveLessThanInitialPrice")] - async fn when_initial_nft_price_not_one() { - let (_, seller, _, _, auction_contract_id, _, sell_nft_contract_id, _, buy_nft_contract_id) = - setup().await; - let (sell_count, _, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; - - create( - buy_asset.clone(), - &seller.auction, - duration, - 2, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - } - - #[tokio::test] - #[should_panic(expected = "SenderNotOwner")] - async fn when_sender_does_not_own_nft() { - let (_, seller, _, _, auction_contract_id, _, sell_nft_contract_id, _, buy_nft_contract_id) = - setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(sell_count, &seller.nft, auction_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; - - create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - } - - #[ignore] - #[tokio::test] - // TODO: test is not set up to hit the error properly: https://github.com/FuelLabs/sway-applications/issues/330 - #[should_panic(expected = "NFTTransferNotApproved")] - async fn when_auction_not_approved_for_transfer() { - let (_, seller, _, _, _, _, sell_nft_contract_id, _, buy_nft_contract_id) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - - create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), ) .await; } diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/withdraw.rs b/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/withdraw.rs index 069f3793d..6b6d6acc9 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/withdraw.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/functions/core/withdraw.rs @@ -1,47 +1,38 @@ use crate::utils::{ interface::core::auction::{bid, create, withdraw}, - setup::{defaults_token, setup, token_asset}, + setup::{defaults, setup}, }; use fuels::types::Identity; mod success { use super::*; - use crate::utils::{ - interface::{ - core::nft::{approve, mint, owner_of}, - info::deposit_balance, - }, - setup::{defaults_nft, nft_asset}, - }; - use fuels::{accounts::ViewOnlyAccount, prelude::AssetId}; + use crate::utils::interface::info::deposit_balance; + use fuels::accounts::ViewOnlyAccount; #[tokio::test] async fn buyer_withdraws_expired_auction() { - let (deployer, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (deployer, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; let provider = deployer.wallet.provider().unwrap(); let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; let _result = provider.produce_blocks(duration + 1, Option::None).await; @@ -49,257 +40,124 @@ mod success { deposit_balance(auction_id, &seller.auction, buyer1_identity.clone()) .await .unwrap(), - bid_asset + initial_price ); - withdraw(auction_id, &buyer1.auction, sell_asset).await; + withdraw(auction_id, &buyer1.auction).await; assert_eq!( deposit_balance(auction_id, &seller.auction, buyer1_identity.clone()).await, None ); assert_eq!( - buyer1 - .wallet - .get_asset_balance(&AssetId::new(*sell_token_contract_id)) - .await - .unwrap(), + buyer1.wallet.get_asset_balance(&sell_asset).await.unwrap(), sell_amount + initial_wallet_amount ); } - #[tokio::test] - async fn buyer_withdraws_nft() { - let ( - _, - seller, - buyer1, - _, - auction_contract_id, - _, - sell_nft_contract_id, - _, - buy_nft_contract_id, - ) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let bid_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; - mint(reserve_count, &buyer1.nft, buyer1_identity.clone()).await; - approve(Some(auction_identity.clone()), &buyer1.nft, 0).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - - assert_eq!( - deposit_balance(auction_id, &seller.auction, buyer1_identity.clone()) - .await - .unwrap(), - bid_asset - ); - - withdraw(auction_id, &buyer1.auction, sell_asset).await; - - assert_eq!( - deposit_balance(auction_id, &seller.auction, buyer1_identity.clone()).await, - None - ); - assert_eq!(owner_of(&seller.nft, 0).await.unwrap(), buyer1_identity); - } - #[tokio::test] async fn buyer_withdraws_tokens() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer1.auction).await; assert_eq!( deposit_balance(auction_id, &seller.auction, buyer1_identity.clone()) .await .unwrap(), - bid_asset + reserve_price ); - withdraw(auction_id, &buyer1.auction, sell_asset).await; + withdraw(auction_id, &buyer1.auction).await; assert_eq!( deposit_balance(auction_id, &seller.auction, buyer1_identity.clone()).await, None ); assert_eq!( - buyer1 - .wallet - .get_asset_balance(&AssetId::new(*sell_token_contract_id)) - .await - .unwrap(), + buyer1.wallet.get_asset_balance(&sell_asset).await.unwrap(), sell_amount + initial_wallet_amount ); } #[tokio::test] async fn out_bid_withdraws_tokens() { - let (_, seller, buyer1, buyer2, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, buyer2, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid1_asset = token_asset(buy_token_contract_id, initial_price).await; - let bid2_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid1_asset.clone(), &buyer1.auction).await; - bid(auction_id, bid2_asset.clone(), &buyer2.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer2.auction).await; assert_eq!( deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) .await .unwrap(), - bid1_asset + initial_price ); - withdraw(auction_id, &buyer1.auction, bid1_asset).await; + withdraw(auction_id, &buyer1.auction).await; assert_eq!( deposit_balance(auction_id, &seller.auction, buyer1_identity.clone()).await, None ); assert_eq!( - buyer1 - .wallet - .get_asset_balance(&AssetId::new(*buy_token_contract_id)) - .await - .unwrap(), + buyer1.wallet.get_asset_balance(&buy_asset).await.unwrap(), initial_wallet_amount ); } - #[tokio::test] - async fn seller_withdraws_nft() { - let ( - _, - seller, - buyer1, - _, - auction_contract_id, - _, - sell_nft_contract_id, - _, - buy_nft_contract_id, - ) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let bid_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; - mint(reserve_count, &buyer1.nft, buyer1_identity.clone()).await; - approve(Some(auction_identity.clone()), &buyer1.nft, 0).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - - assert_eq!( - deposit_balance(auction_id, &seller.auction, seller_identity.clone()) - .await - .unwrap(), - sell_asset - ); - - withdraw(auction_id, &seller.auction, bid_asset).await; - - assert_eq!( - deposit_balance(auction_id, &seller.auction, seller_identity.clone()).await, - None - ); - assert_eq!(owner_of(&buyer1.nft, 0).await.unwrap(), seller_identity); - } - #[tokio::test] async fn seller_withdraws_no_bids() { - let (deployer, seller, _, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (deployer, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; let provider = deployer.wallet.provider().unwrap(); let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -309,125 +167,112 @@ mod success { deposit_balance(auction_id, &seller.auction, seller_identity.clone()) .await .unwrap(), - sell_asset + sell_amount ); - withdraw(auction_id, &seller.auction, sell_asset).await; + withdraw(auction_id, &seller.auction).await; assert_eq!( deposit_balance(auction_id, &seller.auction, seller_identity.clone()).await, None ); assert_eq!( - seller - .wallet - .get_asset_balance(&AssetId::new(*sell_token_contract_id)) - .await - .unwrap(), + seller.wallet.get_asset_balance(&sell_asset).await.unwrap(), initial_wallet_amount ); } #[tokio::test] async fn seller_withdraws_tokens() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer1.auction).await; assert_eq!( deposit_balance(auction_id, &seller.auction, seller_identity.clone()) .await .unwrap(), - sell_asset + sell_amount ); - withdraw(auction_id, &seller.auction, buy_asset).await; + withdraw(auction_id, &seller.auction).await; assert_eq!( deposit_balance(auction_id, &seller.auction, seller_identity.clone()).await, None ); assert_eq!( - seller - .wallet - .get_asset_balance(&AssetId::new(*buy_token_contract_id)) - .await - .unwrap(), + seller.wallet.get_asset_balance(&buy_asset).await.unwrap(), reserve_price + initial_wallet_amount ); } #[tokio::test] async fn withdraws_multiple_auctions() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id1 = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; let auction_id2 = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id1, bid_asset.clone(), &buyer1.auction).await; - bid(auction_id2, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id1, buy_asset, reserve_price, &buyer1.auction).await; + bid(auction_id2, buy_asset, reserve_price, &buyer1.auction).await; assert_eq!( deposit_balance(auction_id1, &seller.auction, buyer1_identity.clone()) .await .unwrap(), - bid_asset + reserve_price ); assert_eq!( deposit_balance(auction_id2, &seller.auction, buyer1_identity.clone()) .await .unwrap(), - bid_asset + reserve_price ); - withdraw(auction_id1, &buyer1.auction, sell_asset.clone()).await; + withdraw(auction_id1, &buyer1.auction).await; assert_eq!( deposit_balance(auction_id1, &seller.auction, buyer1_identity.clone()).await, @@ -437,18 +282,14 @@ mod success { deposit_balance(auction_id2, &seller.auction, buyer1_identity.clone()) .await .unwrap(), - bid_asset + reserve_price ); assert_eq!( - buyer1 - .wallet - .get_asset_balance(&AssetId::new(*sell_token_contract_id)) - .await - .unwrap(), + buyer1.wallet.get_asset_balance(&sell_asset).await.unwrap(), sell_amount + initial_wallet_amount ); - withdraw(auction_id2, &buyer1.auction, sell_asset.clone()).await; + withdraw(auction_id2, &buyer1.auction).await; assert_eq!( deposit_balance(auction_id1, &seller.auction, buyer1_identity.clone()).await, @@ -459,11 +300,7 @@ mod success { None ); assert_eq!( - buyer1 - .wallet - .get_asset_balance(&AssetId::new(*sell_token_contract_id)) - .await - .unwrap(), + buyer1.wallet.get_asset_balance(&sell_asset).await.unwrap(), (sell_amount * 2) + initial_wallet_amount ); } @@ -476,98 +313,88 @@ mod revert { #[tokio::test] #[should_panic(expected = "AuctionDoesNotExist")] async fn when_auction_id_does_not_exist() { - let (_, _, buyer1, _, _, sell_token_contract_id, _, _, _) = setup().await; - let (sell_amount, _, _, _, _) = defaults_token().await; - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; + let (_, _, buyer1, _, _, _, _) = setup().await; + let (_, _, _, _, _) = defaults().await; - withdraw(0, &buyer1.auction, sell_asset).await; + withdraw(0, &buyer1.auction).await; } #[tokio::test] #[should_panic(expected = "AuctionIsNotClosed")] async fn when_auction_has_not_ended() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; - withdraw(auction_id, &buyer1.auction, sell_asset).await; + withdraw(auction_id, &buyer1.auction).await; } #[tokio::test] #[should_panic(expected = "UserHasAlreadyWithdrawn")] async fn when_sender_withdraws_twice() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer1.auction).await; - withdraw(auction_id, &buyer1.auction, sell_asset.clone()).await; - withdraw(auction_id, &buyer1.auction, sell_asset.clone()).await; + withdraw(auction_id, &buyer1.auction).await; + withdraw(auction_id, &buyer1.auction).await; } #[tokio::test] #[should_panic(expected = "UserHasAlreadyWithdrawn")] async fn when_sender_did_not_deposit_balance() { - let (_, seller, buyer1, buyer2, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, buyer2, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, reserve_price).await; let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, reserve_price, &buyer1.auction).await; - withdraw(auction_id, &buyer2.auction, sell_asset).await; + withdraw(auction_id, &buyer2.auction).await; } } diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/auction_info.rs b/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/auction_info.rs index 384684a6a..86f213d2d 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/auction_info.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/auction_info.rs @@ -4,72 +4,69 @@ mod success { core::auction::{bid, create}, info::auction_info, }, - setup::{create_auction_copy, defaults_token, setup, token_asset, State}, + setup::{create_auction_copy, defaults, setup, State}, }; use fuels::types::Identity; #[tokio::test] async fn returns_auction_info() { - let (deployer, seller, buyer1, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; + let (deployer, seller, buyer1, _buyer2, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; - let bid_asset = token_asset(buy_asset_contract_id, initial_price).await; let provider = deployer.wallet.provider().unwrap(); let auction = auction_info(0, &seller.auction).await; assert!(auction.is_none()); let auction_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - let total_duration = (provider.latest_block_height().await.unwrap() as u64) + duration; + let total_duration = provider.latest_block_height().await.unwrap() + duration; let auction = auction_info(auction_id, &seller.auction).await; assert!(auction.is_some()); let auction_copy = create_auction_copy( - buy_asset.clone(), + buy_asset, + 0, None, total_duration, initial_price, Some(reserve_price), sell_asset, + sell_amount, seller_identity, State::Open, ) .await; assert_eq!(auction.unwrap(), auction_copy); - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; let auction = auction_info(auction_id, &seller.auction).await.unwrap(); assert_eq!(auction.highest_bidder.unwrap(), buyer1_identity); - assert_eq!(auction.bid_asset, bid_asset); + assert_eq!(auction.bid_asset, buy_asset); + assert_eq!(auction.highest_bid, initial_price); } #[tokio::test] async fn returns_multiple_auction_info() { - let (deployer, seller, _buyer1, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; + let (deployer, seller, _buyer1, _buyer2, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; let provider = deployer.wallet.provider().unwrap(); let auction1 = auction_info(0, &seller.auction).await; @@ -78,29 +75,32 @@ mod success { assert!(auction2.is_none()); let auction1_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - let total_duration1 = (provider.latest_block_height().await.unwrap() as u64) + duration; + let total_duration1 = provider.latest_block_height().await.unwrap() + duration; let auction1 = auction_info(auction1_id, &seller.auction).await; let auction2 = auction_info(1, &seller.auction).await; assert!(auction1.is_some()); assert!(auction2.is_none()); let auction1_copy = create_auction_copy( - buy_asset.clone(), + buy_asset, + 0, None, total_duration1, initial_price, Some(reserve_price), - sell_asset.clone(), + sell_asset, + sell_amount, seller_identity.clone(), State::Open, ) @@ -108,17 +108,18 @@ mod success { assert_eq!(auction1.unwrap(), auction1_copy); let auction2_id = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; - let total_duration2 = (provider.latest_block_height().await.unwrap() as u64) + duration; + let total_duration2 = provider.latest_block_height().await.unwrap() + duration; let auction1 = auction_info(auction1_id, &seller.auction).await; let auction2 = auction_info(auction2_id, &seller.auction).await; assert!(auction1.is_some()); @@ -126,12 +127,14 @@ mod success { assert_eq!(auction1.unwrap(), auction1_copy); let auction2_copy = create_auction_copy( - buy_asset.clone(), + buy_asset, + 0, None, total_duration2, initial_price, Some(reserve_price), sell_asset, + sell_amount, seller_identity.clone(), State::Open, ) @@ -141,7 +144,7 @@ mod success { #[tokio::test] async fn returns_none() { - let (_, seller, _, _, _, _, _, _, _) = setup().await; + let (_, seller, _, _, _, _, _) = setup().await; assert!(auction_info(0, &seller.auction).await.is_none()); } diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/deposit_balance.rs b/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/deposit_balance.rs index 35ebbeae9..4958cb918 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/deposit_balance.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/deposit_balance.rs @@ -1,49 +1,78 @@ mod success { use crate::utils::{ interface::{ - core::{ - auction::{bid, create}, - nft::{approve, mint}, - }, + core::auction::{bid, create}, info::deposit_balance, }, - setup::{defaults_nft, defaults_token, nft_asset, setup, token_asset}, + setup::{defaults, setup}, }; use fuels::types::Identity; + #[tokio::test] + async fn returns_deposit_balance() { + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; + let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = + defaults().await; + + assert!(initial_price > 0); + + let seller_identity = Identity::Address(seller.wallet.address().into()); + let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); + + let auction_id = create( + buy_asset, + &seller.auction, + duration, + initial_price, + Some(reserve_price), + seller_identity.clone(), + sell_asset, + sell_amount, + ) + .await; + + let buyer1_deposit = + deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; + assert!(buyer1_deposit.is_none()); + + bid(auction_id, buy_asset, initial_price, &buyer1.auction).await; + + let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) + .await + .unwrap(); + assert_eq!(buyer1_deposit, initial_price); + } + #[tokio::test] async fn returns_mutliple_deposits() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; + let (_, seller, buyer1, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid1_asset = token_asset(buy_token_contract_id, initial_price).await; - let bid2_asset = token_asset(buy_token_contract_id, initial_price + 1).await; let auction_id1 = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; let auction_id2 = create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -54,7 +83,7 @@ mod success { assert!(buyer1_deposit1.is_none()); assert!(buyer1_deposit2.is_none()); - bid(auction_id1, bid1_asset.clone(), &buyer1.auction).await; + bid(auction_id1, buy_asset, initial_price, &buyer1.auction).await; let buyer1_deposit1 = deposit_balance(auction_id1, &buyer1.auction, buyer1_identity.clone()) @@ -62,10 +91,10 @@ mod success { .unwrap(); let buyer1_deposit2 = deposit_balance(auction_id2, &buyer1.auction, buyer1_identity.clone()).await; - assert_eq!(buyer1_deposit1, bid1_asset); + assert_eq!(buyer1_deposit1, initial_price); assert!(buyer1_deposit2.is_none()); - bid(auction_id2, bid2_asset.clone(), &buyer1.auction).await; + bid(auction_id2, buy_asset, initial_price + 1, &buyer1.auction).await; let buyer1_deposit1 = deposit_balance(auction_id1, &buyer1.auction, buyer1_identity.clone()) @@ -75,93 +104,7 @@ mod success { deposit_balance(auction_id2, &buyer1.auction, buyer1_identity.clone()) .await .unwrap(); - assert_eq!(buyer1_deposit1, bid1_asset); - assert_eq!(buyer1_deposit2, bid2_asset); - } - - #[tokio::test] - async fn returns_nft_deposit_balance() { - let ( - _, - seller, - buyer1, - _, - auction_contract_id, - _, - sell_nft_contract_id, - _, - buy_nft_contract_id, - ) = setup().await; - let (sell_count, initial_count, reserve_count, duration) = defaults_nft().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let auction_identity = Identity::ContractId(auction_contract_id); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = nft_asset(buy_nft_contract_id, 0).await; - let bid_asset = nft_asset(buy_nft_contract_id, 0).await; - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; - mint(reserve_count, &buyer1.nft, buyer1_identity.clone()).await; - approve(Some(auction_identity.clone()), &buyer1.nft, 0).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_count, - Some(reserve_count), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let buyer1_deposit = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; - assert!(buyer1_deposit.is_none()); - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - - let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); - assert_eq!(buyer1_deposit, bid_asset); - } - - #[tokio::test] - async fn returns_token_deposit_balance() { - let (_, seller, buyer1, _, _, sell_token_contract_id, _, buy_token_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let buyer1_identity = Identity::Address(buyer1.wallet.address().into()); - let sell_asset = token_asset(sell_token_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_token_contract_id, 0).await; - let bid_asset = token_asset(buy_token_contract_id, initial_price).await; - - let auction_id = create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - let buyer1_deposit = - deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()).await; - assert!(buyer1_deposit.is_none()); - - bid(auction_id, bid_asset.clone(), &buyer1.auction).await; - - let buyer1_deposit = deposit_balance(auction_id, &buyer1.auction, buyer1_identity.clone()) - .await - .unwrap(); - assert_eq!(buyer1_deposit, bid_asset); + assert_eq!(buyer1_deposit1, initial_price); + assert_eq!(buyer1_deposit2, initial_price + 1); } } diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/total_auctions.rs b/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/total_auctions.rs index b5882bfeb..0644e4144 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/total_auctions.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/functions/info/total_auctions.rs @@ -1,106 +1,55 @@ mod success { use crate::utils::{ - interface::{ - core::{ - auction::create, - nft::{approve, mint}, - }, - info::total_auctions, - }, - setup::{defaults_nft, defaults_token, nft_asset, setup, token_asset}, + interface::{core::auction::create, info::total_auctions}, + setup::{defaults, setup}, }; use fuels::types::Identity; #[tokio::test] - async fn returns_auctions_of_different_types() { - let ( - _, - seller, - _, - _, - auction_contract_id, - sell_asset_contract_id, - sell_nft_contract_id, - buy_asset_contract_id, - _, - ) = setup().await; + async fn returns_one_auction() { + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - let (sell_count, _, _, _) = defaults_nft().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let sell_nft = nft_asset(sell_nft_contract_id, 0).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; - let auction_identity = Identity::ContractId(auction_contract_id); - - mint(sell_count, &seller.nft, seller_identity.clone()).await; - approve(Some(auction_identity.clone()), &seller.nft, 0).await; assert_eq!(0, total_auctions(&seller.auction).await); create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; assert_eq!(1, total_auctions(&seller.auction).await); - - create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_nft.clone(), - ) - .await; - - assert_eq!(2, total_auctions(&seller.auction).await); - - create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - assert_eq!(3, total_auctions(&seller.auction).await); } #[tokio::test] async fn returns_expired_auctions() { - let (deployer, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; + let (deployer, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; let provider = deployer.wallet.provider().unwrap(); assert_eq!(0, total_auctions(&seller.auction).await); create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; @@ -113,81 +62,54 @@ mod success { #[tokio::test] async fn returns_multiple_auctions() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; + let (_, seller, _, _, _, sell_asset, buy_asset) = setup().await; let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; + defaults().await; let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; assert_eq!(0, total_auctions(&seller.auction).await); create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; assert_eq!(1, total_auctions(&seller.auction).await); create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; assert_eq!(2, total_auctions(&seller.auction).await); create( - buy_asset.clone(), + buy_asset, &seller.auction, duration, initial_price, Some(reserve_price), seller_identity.clone(), - sell_asset.clone(), + sell_asset, + sell_amount, ) .await; assert_eq!(3, total_auctions(&seller.auction).await); } - - #[tokio::test] - async fn returns_one_auction() { - let (_, seller, _, _, _, sell_asset_contract_id, _, buy_asset_contract_id, _) = - setup().await; - let (sell_amount, initial_price, reserve_price, duration, _initial_wallet_amount) = - defaults_token().await; - - let seller_identity = Identity::Address(seller.wallet.address().into()); - let sell_asset = token_asset(sell_asset_contract_id, sell_amount).await; - let buy_asset = token_asset(buy_asset_contract_id, 0).await; - - assert_eq!(0, total_auctions(&seller.auction).await); - - create( - buy_asset.clone(), - &seller.auction, - duration, - initial_price, - Some(reserve_price), - seller_identity.clone(), - sell_asset.clone(), - ) - .await; - - assert_eq!(1, total_auctions(&seller.auction).await); - } } diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/utils/interface/core.rs b/auctions/english-auction/project/contracts/auction-contract/tests/utils/interface/core.rs index f170d57b8..3666da89a 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/utils/interface/core.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/utils/interface/core.rs @@ -1,7 +1,7 @@ -use crate::utils::setup::{AuctionAsset, EnglishAuction, Nft}; +use crate::utils::setup::EnglishAuction; use fuels::{ - prelude::{AssetId, CallParameters, TxParameters, WalletUnlocked}, - programs::call_response::FuelCallResponse, + prelude::{AssetId, CallParameters, TxPolicies, WalletUnlocked}, + programs::{call_response::FuelCallResponse, call_utils::TxDependencyExtension}, types::Identity, }; @@ -10,36 +10,21 @@ pub(crate) mod auction { pub(crate) async fn bid( auction_id: u64, - bid_asset: AuctionAsset, + bid_asset: AssetId, + bid_amount: u64, contract: &EnglishAuction, ) -> FuelCallResponse<()> { - match bid_asset { - AuctionAsset::NFTAsset(bid_asset) => contract - .methods() - .bid(auction_id, AuctionAsset::NFTAsset(bid_asset.clone())) - .set_contract_ids(&[bid_asset.asset_id.into()]) - .call() - .await - .unwrap(), - AuctionAsset::TokenAsset(bid_asset) => { - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new( - bid_asset.amount, - AssetId::from(*bid_asset.asset_id), - 1_000_000, - ); + let call_params = CallParameters::new(bid_amount, bid_asset, 1_000_000); - contract - .methods() - .bid(auction_id, AuctionAsset::TokenAsset(bid_asset.clone())) - .tx_params(tx_params) - .call_params(call_params) - .unwrap() - .call() - .await - .unwrap() - } - } + contract + .methods() + .bid(auction_id) + .with_tx_policies(TxPolicies::default().with_script_gas_limit(2_000_000)) + .call_params(call_params) + .unwrap() + .call() + .await + .unwrap() } pub(crate) async fn cancel( @@ -49,131 +34,39 @@ pub(crate) mod auction { contract.methods().cancel(auction_id).call().await.unwrap() } + #[allow(clippy::too_many_arguments)] pub(crate) async fn create( - bid_asset: AuctionAsset, + bid_asset: AssetId, contract: &EnglishAuction, - duration: u64, + duration: u32, initial_price: u64, reserve_price: Option, seller: Identity, - sell_asset: AuctionAsset, + sell_asset: AssetId, + sell_amount: u64, ) -> u64 { - match sell_asset { - AuctionAsset::NFTAsset(sell_asset) => { - contract - .methods() - .create( - bid_asset, - duration, - initial_price, - reserve_price, - seller, - AuctionAsset::NFTAsset(sell_asset.clone()), - ) - .set_contract_ids(&[sell_asset.asset_id.into(), sell_asset.asset_id.into()]) - .call() - .await - .unwrap() - .value - } - AuctionAsset::TokenAsset(sell_asset) => { - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new( - sell_asset.amount, - AssetId::from(*sell_asset.asset_id), - 1_000_000, - ); - - contract - .methods() - .create( - bid_asset, - duration, - initial_price, - reserve_price, - seller, - AuctionAsset::TokenAsset(sell_asset.clone()), - ) - .tx_params(tx_params) - .call_params(call_params) - .unwrap() - .call() - .await - .unwrap() - .value - } - } - } - - pub(crate) async fn withdraw( - auction_id: u64, - contract: &EnglishAuction, - withdrawing_asset: AuctionAsset, - ) -> FuelCallResponse<()> { - match withdrawing_asset { - AuctionAsset::NFTAsset(withdrawing_asset) => contract - .methods() - .withdraw(auction_id) - .set_contract_ids(&[withdrawing_asset.asset_id.into()]) - .call() - .await - .unwrap(), - AuctionAsset::TokenAsset(_withdrawing_asset) => contract - .methods() - .withdraw(auction_id) - .append_variable_outputs(1) - .call() - .await - .unwrap(), - } - } -} + let call_params = CallParameters::new(sell_amount, sell_asset, 1_000_000); -pub(crate) mod nft { - use super::*; - - pub(crate) async fn approve( - approved: Option, - contract: &Nft, - token_id: u64, - ) -> FuelCallResponse<()> { contract .methods() - .approve(approved, token_id) - .call() - .await + .create(bid_asset, duration, initial_price, reserve_price, seller) + .with_tx_policies(TxPolicies::default().with_script_gas_limit(2_000_000)) + .call_params(call_params) .unwrap() - } - - pub(crate) async fn mint( - amount: u64, - contract: &Nft, - owner: Identity, - ) -> FuelCallResponse<()> { - contract.methods().mint(amount, owner).call().await.unwrap() - } - - pub(crate) async fn owner_of( - contract: &Nft, - token_id: u64, - ) -> Option { - contract - .methods() - .owner_of(token_id) .call() .await .unwrap() .value } - pub(crate) async fn set_approval_for_all( - approve: bool, - contract: &Nft, - operator: Identity, + pub(crate) async fn withdraw( + auction_id: u64, + contract: &EnglishAuction, ) -> FuelCallResponse<()> { contract .methods() - .set_approval_for_all(approve, operator) + .withdraw(auction_id) + .append_variable_outputs(1) .call() .await .unwrap() diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/utils/interface/info.rs b/auctions/english-auction/project/contracts/auction-contract/tests/utils/interface/info.rs index b1fa3bf09..69436437f 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/utils/interface/info.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/utils/interface/info.rs @@ -1,4 +1,4 @@ -use crate::utils::setup::{Auction, AuctionAsset, EnglishAuction}; +use crate::utils::setup::{Auction, EnglishAuction}; use fuels::{prelude::WalletUnlocked, types::Identity}; pub(crate) async fn auction_info( @@ -18,7 +18,7 @@ pub(crate) async fn deposit_balance( auction_id: u64, contract: &EnglishAuction, identity: Identity, -) -> Option { +) -> Option { contract .methods() .deposit_balance(auction_id, identity) diff --git a/auctions/english-auction/project/contracts/auction-contract/tests/utils/setup.rs b/auctions/english-auction/project/contracts/auction-contract/tests/utils/setup.rs index af1b88e78..fbce94213 100644 --- a/auctions/english-auction/project/contracts/auction-contract/tests/utils/setup.rs +++ b/auctions/english-auction/project/contracts/auction-contract/tests/utils/setup.rs @@ -1,67 +1,53 @@ use fuels::{ prelude::{ - abigen, launch_custom_provider_and_get_wallets, AssetConfig, AssetId, Bech32ContractId, - Config, Contract, ContractId, LoadConfiguration, StorageConfiguration, TxParameters, - WalletUnlocked, WalletsConfig, BASE_ASSET_ID, + abigen, launch_custom_provider_and_get_wallets, AssetConfig, Bech32ContractId, Contract, + ContractId, LoadConfiguration, StorageConfiguration, TxPolicies, WalletUnlocked, + WalletsConfig, BASE_ASSET_ID, }, - types::Identity, + types::{AssetId, Identity}, }; -abigen!( - Contract( - name = "EnglishAuction", - abi = "./contracts/auction-contract/out/debug/auction-contract-abi.json" - ), - Contract( - name = "Nft", - abi = "./contracts/test-artifacts/NFT/out/debug/NFT-abi.json" - ), -); +abigen!(Contract( + name = "EnglishAuction", + abi = "./contracts/auction-contract/out/debug/auction-contract-abi.json" +),); const AUCTION_CONTRACT_BINARY_PATH: &str = "./out/debug/auction-contract.bin"; const AUCTION_CONTRACT_STORAGE_PATH: &str = "./out/debug/auction-contract-storage_slots.json"; -const NFT_CONTRACT_BINARY_PATH: &str = "../test-artifacts/NFT/out/debug/NFT.bin"; -const NFT_CONTRACT_STORAGE_PATH: &str = "../test-artifacts/NFT/out/debug/NFT-storage_slots.json"; pub(crate) struct Metadata { pub(crate) auction: EnglishAuction, - pub(crate) nft: Nft, pub(crate) wallet: WalletUnlocked, } #[allow(clippy::too_many_arguments)] pub(crate) async fn create_auction_copy( - bid_asset: AuctionAsset, + bid_asset: AssetId, + highest_bid: u64, highest_bidder: Option, - end_block: u64, + end_block: u32, initial_price: u64, reserve_price: Option, - sell_asset: AuctionAsset, + sell_asset: AssetId, + sell_asset_amount: u64, seller: Identity, state: State, ) -> Auction { Auction { bid_asset, - highest_bidder, end_block, + highest_bid, + highest_bidder, initial_price, reserve_price, sell_asset, + sell_asset_amount, seller, state, } } -pub(crate) async fn defaults_nft() -> (u64, u64, u64, u64) { - let sell_count = 1; - let initial_count = 1; - let reserve_count = 1; - let duration = 10; - - (sell_count, initial_count, reserve_count, duration) -} - -pub(crate) async fn defaults_token() -> (u64, u64, u64, u64, u64) { +pub(crate) async fn defaults() -> (u64, u64, u64, u32, u64) { let sell_amount = 10; let initial_price = 1; let reserve_price = 10; @@ -77,22 +63,14 @@ pub(crate) async fn defaults_token() -> (u64, u64, u64, u64, u64) { ) } -pub(crate) async fn nft_asset(asset_id: ContractId, token_id: u64) -> AuctionAsset { - let token = NFTAsset { asset_id, token_id }; - - AuctionAsset::NFTAsset(token) -} - pub(crate) async fn setup() -> ( Metadata, Metadata, Metadata, Metadata, ContractId, - ContractId, - ContractId, - ContractId, - ContractId, + AssetId, + AssetId, ) { let number_of_coins = 1; let coin_amount = 1_000_000; @@ -118,13 +96,9 @@ pub(crate) async fn setup() -> ( let assets = vec![base_asset, buy_asset, sell_asset]; let wallet_config = WalletsConfig::new_multiple_assets(number_of_wallets, assets); - - let provider_config = Config { - manual_blocks_enabled: true, // Necessary so the `produce_blocks` API can be used locally - ..Config::local_node() - }; - let mut wallets = - launch_custom_provider_and_get_wallets(wallet_config, Some(provider_config), None).await; + let mut wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None) + .await + .unwrap(); let wallet1 = wallets.pop().unwrap(); let wallet2 = wallets.pop().unwrap(); @@ -132,44 +106,20 @@ pub(crate) async fn setup() -> ( let wallet4 = wallets.pop().unwrap(); let auction_storage_configuration = - StorageConfiguration::load_from(AUCTION_CONTRACT_STORAGE_PATH); - let nft_storage_configuration = StorageConfiguration::load_from(NFT_CONTRACT_STORAGE_PATH); - let buy_nft_storage_configuration = StorageConfiguration::load_from(NFT_CONTRACT_STORAGE_PATH); - + StorageConfiguration::default().add_slot_overrides_from_file(AUCTION_CONTRACT_STORAGE_PATH); let auction_configuration = LoadConfiguration::default() - .set_storage_configuration(auction_storage_configuration.unwrap()); - let nft_configuration = - LoadConfiguration::default().set_storage_configuration(nft_storage_configuration.unwrap()); - let buy_nft_configuration = LoadConfiguration::default() - .set_storage_configuration(buy_nft_storage_configuration.unwrap()) - .set_salt([2u8; 32]); + .with_storage_configuration(auction_storage_configuration.unwrap()); let auction_id = Contract::load_from(AUCTION_CONTRACT_BINARY_PATH, auction_configuration) .unwrap() - .deploy(&wallet1, TxParameters::default()) - .await - .unwrap(); - - let sell_nft_id = Contract::load_from(NFT_CONTRACT_BINARY_PATH, nft_configuration) - .unwrap() - .deploy(&wallet1, TxParameters::default()) - .await - .unwrap(); - let buy_nft_id = Contract::load_from(NFT_CONTRACT_BINARY_PATH, buy_nft_configuration) - .unwrap() - .deploy(&wallet3, TxParameters::default()) + .deploy(&wallet1, TxPolicies::default()) .await .unwrap(); - let deploy_wallet = user(wallet1, auction_id.clone(), sell_nft_id.clone()).await; - let seller = user(wallet2, auction_id.clone(), sell_nft_id.clone()).await; - let buyer1 = user(wallet3, auction_id.clone(), buy_nft_id.clone()).await; - let buyer2 = user( - wallet4, - auction_id.clone(), - ContractId::from(*buy_asset_id).into(), - ) - .await; + let deploy_wallet = user(wallet1, auction_id.clone()).await; + let seller = user(wallet2, auction_id.clone()).await; + let buyer1 = user(wallet3, auction_id.clone()).await; + let buyer2 = user(wallet4, auction_id.clone()).await; ( deploy_wallet, @@ -177,27 +127,14 @@ pub(crate) async fn setup() -> ( buyer1, buyer2, auction_id.into(), - ContractId::from(*sell_asset_id), - sell_nft_id.into(), - ContractId::from(*buy_asset_id), - buy_nft_id.into(), + sell_asset_id, + buy_asset_id, ) } -pub(crate) async fn token_asset(asset_id: ContractId, amount: u64) -> AuctionAsset { - let token = TokenAsset { asset_id, amount }; - - AuctionAsset::TokenAsset(token) -} - -async fn user( - user_wallet: WalletUnlocked, - auction_id: Bech32ContractId, - nft_id: Bech32ContractId, -) -> Metadata { +async fn user(user_wallet: WalletUnlocked, auction_id: Bech32ContractId) -> Metadata { Metadata { auction: EnglishAuction::new(auction_id, user_wallet.clone()), - nft: Nft::new(nft_id, user_wallet.clone()), wallet: user_wallet, } } diff --git a/auctions/english-auction/project/contracts/test-artifacts/NFT/.gitignore b/auctions/english-auction/project/contracts/test-artifacts/NFT/.gitignore deleted file mode 100644 index 5e7f2c026..000000000 --- a/auctions/english-auction/project/contracts/test-artifacts/NFT/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -out -target diff --git a/auctions/english-auction/project/contracts/test-artifacts/NFT/Forc.toml b/auctions/english-auction/project/contracts/test-artifacts/NFT/Forc.toml deleted file mode 100644 index bcede5a6e..000000000 --- a/auctions/english-auction/project/contracts/test-artifacts/NFT/Forc.toml +++ /dev/null @@ -1,8 +0,0 @@ -[project] -authors = ["Fuel Labs "] -entry = "main.sw" -license = "Apache-2.0" -name = "NFT" - -[dependencies] -nft = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.12.0" } diff --git a/auctions/english-auction/project/contracts/test-artifacts/NFT/src/main.sw b/auctions/english-auction/project/contracts/test-artifacts/NFT/src/main.sw deleted file mode 100644 index 38949e0eb..000000000 --- a/auctions/english-auction/project/contracts/test-artifacts/NFT/src/main.sw +++ /dev/null @@ -1,53 +0,0 @@ -contract; - -use nft::{ - approve, - approved, - balance_of, - is_approved_for_all, - mint, - NFT, - owner_of, - set_approval_for_all, - tokens_minted, - transfer, -}; - -impl NFT for Contract { - #[storage(read, write)] - fn approve(approved_identity: Option, token_id: u64) { - approve(approved_identity, token_id); - } - #[storage(read)] - fn approved(token_id: u64) -> Option { - approved(token_id) - } - #[storage(read)] - fn balance_of(owner: Identity) -> u64 { - balance_of(owner) - } - #[storage(read)] - fn is_approved_for_all(operator: Identity, owner: Identity) -> bool { - is_approved_for_all(operator, owner) - } - #[storage(read, write)] - fn mint(amount: u64, to: Identity) { - mint(amount, to); - } - #[storage(read)] - fn owner_of(token_id: u64) -> Option { - owner_of(token_id) - } - #[storage(write)] - fn set_approval_for_all(approval: bool, operator: Identity) { - set_approval_for_all(approval, operator); - } - #[storage(read)] - fn tokens_minted() -> u64 { - tokens_minted() - } - #[storage(read, write)] - fn transfer(to: Identity, token_id: u64) { - transfer(to, token_id); - } -} diff --git a/auctions/english-auction/project/fuel-toolchain.toml b/auctions/english-auction/project/fuel-toolchain.toml index 85312ab11..e75c0bb58 100644 --- a/auctions/english-auction/project/fuel-toolchain.toml +++ b/auctions/english-auction/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-18" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/counter-script/README.md b/counter-script/README.md index 23bcfda03..15ea4a66e 100644 --- a/counter-script/README.md +++ b/counter-script/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/counter-script/project/Cargo.lock b/counter-script/project/Cargo.lock index b221fe439..59d6d60ea 100644 --- a/counter-script/project/Cargo.lock +++ b/counter-script/project/Cargo.lock @@ -40,13 +40,14 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", "once_cell", "version_check", + "zerocopy", ] [[package]] @@ -58,6 +59,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -73,27 +80,176 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + [[package]] name = "anyhow" version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + [[package]] name = "ascii" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" +[[package]] +name = "async-graphql" +version = "4.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9ed522678d412d77effe47b3c82314ac36952a35e6e852093dd48287c421f80" +dependencies = [ + "async-graphql-derive", + "async-graphql-parser", + "async-graphql-value", + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "fnv", + "futures-util", + "http", + "indexmap 1.9.3", + "mime", + "multer", + "num-traits", + "once_cell", + "pin-project-lite", + "regex", + "serde", + "serde_json", + "serde_urlencoded", + "static_assertions", + "tempfile", + "thiserror", + "tracing", + "tracing-futures", +] + +[[package]] +name = "async-graphql-derive" +version = "4.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c121a894495d7d3fc3d4e15e0a9843e422e4d1d9e3c514d8062a1c94b35b005d" +dependencies = [ + "Inflector", + "async-graphql-parser", + "darling 0.14.4", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", + "thiserror", +] + +[[package]] +name = "async-graphql-parser" +version = "4.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b6c386f398145c6180206c1869c2279f5a3d45db5be4e0266148c6ac5c6ad68" +dependencies = [ + "async-graphql-value", + "pest", + "serde", + "serde_json", +] + +[[package]] +name = "async-graphql-value" +version = "4.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a941b499fead4a3fb5392cabf42446566d18c86313f69f2deab69560394d65f" +dependencies = [ + "bytes", + "indexmap 1.9.3", + "serde", + "serde_json", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -111,6 +267,53 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acee9fd5073ab6b045a275b3e709c163dd36c90685219cb21804a147b58dba43" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e5939e02c56fecd5c017c37df4238c0a839fa76b7f97acdd7efb804fd181cc" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "tower-layer", + "tower-service", +] + [[package]] name = "backtrace" version = "0.3.68" @@ -124,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -179,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -190,7 +397,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" dependencies = [ "either", - "radium", + "radium 0.3.0", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium 0.7.0", + "tap", + "wyz", ] [[package]] @@ -211,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -232,6 +445,12 @@ version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + [[package]] name = "byteorder" version = "1.4.3" @@ -240,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -261,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets 0.48.1", ] [[package]] @@ -284,6 +502,46 @@ dependencies = [ "inout", ] +[[package]] +name = "clap" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + [[package]] name = "cobs" version = "0.2.3" @@ -305,7 +563,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -315,14 +573,14 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84f4d04ee18e58356accd644896aeb2094ddeafb6a713e056cef0c0a8e468c15" dependencies = [ - "bitvec", + "bitvec 0.17.4", "coins-bip32", "getrandom", "hmac", "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -341,11 +599,17 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "combine" version = "3.8.1" @@ -378,7 +642,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -395,7 +659,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -439,6 +703,45 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52" +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-bigint" version = "0.5.2" @@ -479,6 +782,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -500,7 +830,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70a1bb05cc554f46079d0fa72abe995a2d32d0737d410a41da75b31e3f7ef768" dependencies = [ "counter", - "darling", + "darling 0.13.4", "graphql-parser", "once_cell", "proc-macro2", @@ -525,8 +855,18 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" dependencies = [ - "darling_core", - "darling_macro", + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", ] [[package]] @@ -543,13 +883,38 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 1.0.109", +] + [[package]] name = "darling_macro" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" dependencies = [ - "darling_core", + "darling_core 0.13.4", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", "quote", "syn 1.0.109", ] @@ -609,6 +974,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + [[package]] name = "ecdsa" version = "0.16.8" @@ -623,6 +994,26 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", +] + [[package]] name = "either" version = "1.9.0" @@ -631,9 +1022,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -657,6 +1048,32 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enum-iterator" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7add3873b5dd076766ee79c8e406ad1a472c385476b9e38849f8eec24f1be689" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -665,7 +1082,7 @@ checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" dependencies = [ "errno-dragonfly", "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -694,12 +1111,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -731,6 +1154,24 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f69037fe1b785e84986b4f2cbcf647381876a00671d25ceef715d7812dd7e1dd" + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + [[package]] name = "fnv" version = "1.0.7" @@ -752,89 +1193,270 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ - "itertools", + "itertools 0.10.5", "lazy_static", "proc-macro2", "quote", "regex", "serde", "serde_json", - "syn 2.0.27", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", ] [[package]] -name = "fuel-core-chain-config" -version = "0.18.3" +name = "fuel-core" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" +dependencies = [ + "anyhow", + "async-graphql", + "async-trait", + "axum", + "clap", + "derive_more", + "enum-iterator", + "fuel-core-chain-config", + "fuel-core-consensus-module", + "fuel-core-database", + "fuel-core-executor", + "fuel-core-importer", + "fuel-core-metrics", + "fuel-core-poa", + "fuel-core-producer", + "fuel-core-services", + "fuel-core-storage", + "fuel-core-txpool", + "fuel-core-types", + "futures", + "hex", + "hyper", + "itertools 0.10.5", + "parking_lot", + "postcard", + "primitive-types", + "rand", + "serde", + "serde_json", + "strum", + "strum_macros", + "thiserror", + "tokio", + "tokio-stream", + "tower-http", + "tracing", + "uuid 1.6.1", +] + +[[package]] +name = "fuel-core-chain-config" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" +dependencies = [ + "anyhow", + "bech32 0.9.1", + "fuel-core-storage", + "fuel-core-types", + "hex", + "itertools 0.10.5", + "postcard", + "serde", + "serde_json", + "serde_with 1.14.0", + "tracing", +] + +[[package]] +name = "fuel-core-client" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" +dependencies = [ + "anyhow", + "cynic", + "derive_more", + "eventsource-client", + "fuel-core-types", + "futures", + "hex", + "hyper-rustls 0.24.1", + "itertools 0.10.5", + "reqwest", + "schemafy_lib", + "serde", + "serde_json", + "tai64", + "thiserror", + "tracing", +] + +[[package]] +name = "fuel-core-consensus-module" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" +dependencies = [ + "anyhow", + "fuel-core-chain-config", + "fuel-core-poa", + "fuel-core-types", + "tokio", +] + +[[package]] +name = "fuel-core-database" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" +dependencies = [ + "anyhow", + "derive_more", + "fuel-core-storage", + "fuel-core-types", +] + +[[package]] +name = "fuel-core-executor" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" +dependencies = [ + "anyhow", + "fuel-core-chain-config", + "fuel-core-storage", + "fuel-core-types", +] + +[[package]] +name = "fuel-core-importer" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" +dependencies = [ + "anyhow", + "derive_more", + "fuel-core-metrics", + "fuel-core-storage", + "fuel-core-types", + "tokio", + "tracing", +] + +[[package]] +name = "fuel-core-metrics" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" +dependencies = [ + "axum", + "once_cell", + "pin-project-lite", + "prometheus-client 0.18.1", + "prometheus-client 0.20.0", + "regex", + "tracing", +] + +[[package]] +name = "fuel-core-poa" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" +dependencies = [ + "anyhow", + "async-trait", + "fuel-core-chain-config", + "fuel-core-services", + "fuel-core-storage", + "fuel-core-types", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "fuel-core-producer" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", - "bech32 0.9.1", + "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "hex", - "itertools", - "postcard", - "rand", - "serde", - "serde_json", - "serde_with 1.14.0", + "tokio", + "tokio-rayon", "tracing", ] [[package]] -name = "fuel-core-client" -version = "0.18.3" +name = "fuel-core-services" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", - "cynic", - "derive_more", - "eventsource-client", - "fuel-core-types", + "async-trait", + "fuel-core-metrics", "futures", - "hex", - "hyper-rustls 0.24.1", - "itertools", - "reqwest", - "serde", - "serde_json", - "tai64", - "thiserror", + "parking_lot", + "tokio", "tracing", ] [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", +] + +[[package]] +name = "fuel-core-txpool" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" +dependencies = [ + "anyhow", + "async-trait", + "fuel-core-chain-config", + "fuel-core-metrics", + "fuel-core-services", + "fuel-core-storage", + "fuel-core-types", + "futures", + "parking_lot", + "tokio", + "tokio-rayon", + "tokio-stream", + "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -848,55 +1470,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.3", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -906,10 +1546,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -917,32 +1558,42 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.3", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa81d69072a9d4ba6fac79d9b5b66348daf95089ecda85a9231e41e5dd45bc85" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ + "fuel-core", "fuel-core-client", "fuel-tx", "fuels-accounts", @@ -954,12 +1605,11 @@ dependencies = [ [[package]] name = "fuels-accounts" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a03259b1ece608c33541477fed7dea07bb3e78f25f85a8a3060f6501d6e982" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -970,117 +1620,106 @@ dependencies = [ "fuel-vm", "fuels-core", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e8ec25373ed1ae06cfe53afc4e3ecd6057aa4ff3a3329e40f42784afe21726b" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b133aff726340284937e3233b8c9dd8429812dd463e4e6f53373ca13e644c99" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", "bech32 0.9.1", "chrono", "fuel-abi-types", "fuel-asm", "fuel-core-chain-config", "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", "fuels-macros", "hex", - "itertools", - "proc-macro2", - "regex", + "itertools 0.12.0", "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", + "sha2 0.10.8", "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef684e13ddc8b16f7828dc98ca309f69a6516068bb307c78b8e64aaf010b397" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e582cc270a794e02e40150f79d2a92830bf5adaaadf4147de02689ae17c287" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3b0f1475beb61ad66163dc57234170b7319aacf79d9147a28c7ff43cc6fd8f0" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ + "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", "futures", @@ -1089,12 +1728,18 @@ dependencies = [ "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futures" version = "0.3.28" @@ -1151,7 +1796,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1204,7 +1849,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1247,7 +1892,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -1278,6 +1923,17 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] + [[package]] name = "heapless" version = "0.7.16" @@ -1322,6 +1978,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "http" version = "0.2.9" @@ -1344,6 +2009,12 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + [[package]] name = "httparse" version = "1.8.0" @@ -1373,7 +2044,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -1486,6 +2157,26 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -1494,6 +2185,17 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", ] [[package]] @@ -1520,6 +2222,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -1545,7 +2256,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -1566,15 +2277,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -1598,11 +2315,26 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] [[package]] name = "mime" @@ -1621,23 +2353,31 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "wasi", + "windows-sys 0.48.0", ] [[package]] -name = "num-integer" -version = "0.1.45" +name = "multer" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" dependencies = [ - "autocfg", - "num-traits", + "bytes", + "encoding_rs", + "futures-util", + "http", + "httparse", + "log", + "memchr", + "mime", + "spin 0.9.8", + "version_check", ] [[package]] @@ -1686,6 +2426,44 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "parking_lot" version = "0.12.1" @@ -1704,11 +2482,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", - "windows-targets", + "windows-targets 0.48.1", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -1734,6 +2518,17 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +[[package]] +name = "pest" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + [[package]] name = "pin-project" version = "1.1.2" @@ -1751,14 +2546,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -1776,6 +2571,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -1802,13 +2603,89 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus-client" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83cd1b99916654a69008fd66b4f9397fbe08e6e51dfe23d4417acf5d3b8cb87c" +dependencies = [ + "dtoa", + "itoa", + "parking_lot", + "prometheus-client-derive-text-encode", +] + +[[package]] +name = "prometheus-client" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e227aeb6c2cfec819e999c4773b35f8c7fa37298a203ff46420095458eee567e" +dependencies = [ + "dtoa", + "itoa", + "parking_lot", + "prometheus-client-derive-encode", +] + +[[package]] +name = "prometheus-client-derive-encode" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "prometheus-client-derive-text-encode" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" dependencies = [ - "unicode-ident", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -1829,9 +2706,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -1842,6 +2719,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.8.5" @@ -1872,6 +2755,26 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "redox_syscall" version = "0.3.5" @@ -1881,11 +2784,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -1895,9 +2807,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -1906,9 +2818,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -1991,6 +2903,12 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + [[package]] name = "rustc_version" version = "0.4.0" @@ -2002,15 +2920,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2118,7 +3036,33 @@ version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", ] [[package]] @@ -2136,7 +3080,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -2226,35 +3170,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.175" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.175" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -2285,9 +3229,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -2298,7 +3242,7 @@ version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" dependencies = [ - "darling", + "darling 0.13.4", "proc-macro2", "quote", "syn 1.0.109", @@ -2319,9 +3263,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -2382,6 +3326,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.5.2" @@ -2466,15 +3420,33 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -2484,17 +3456,23 @@ dependencies = [ "serde", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2507,33 +3485,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -2580,11 +3547,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -2593,9 +3559,9 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2610,13 +3576,23 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", +] + +[[package]] +name = "tokio-rayon" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cf33a76e0b1dd03b778f83244137bd59887abf25c0e87bc3e7071105f457693" +dependencies = [ + "rayon", + "tokio", ] [[package]] @@ -2640,6 +3616,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + [[package]] name = "tokio-util" version = "0.7.8" @@ -2654,6 +3642,66 @@ dependencies = [ "tracing", ] +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "bitflags 1.3.2", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -2667,6 +3715,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if", + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2680,7 +3729,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -2692,6 +3741,18 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "futures", + "futures-task", + "pin-project", + "tracing", +] + [[package]] name = "try-lock" version = "0.2.4" @@ -2704,6 +3765,24 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + [[package]] name = "unicode-bidi" version = "0.3.13" @@ -2725,6 +3804,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -2751,6 +3836,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "uuid" version = "0.8.2" @@ -2761,6 +3852,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -2782,12 +3882,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2815,7 +3909,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -2849,7 +3943,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2910,13 +4004,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys 0.48.0", ] [[package]] @@ -2947,7 +4043,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", ] [[package]] @@ -2956,7 +4052,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -2965,13 +4070,28 @@ version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -2980,42 +4100,93 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67b5f0a4e7a27a64c651977932b9dc5667ca7fc31ac44b03ed37a0cf42fdfff" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" @@ -3025,6 +4196,35 @@ dependencies = [ "winapi", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.7.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d075cf85bbb114e933343e087b92f2146bac0d55b534cbb8188becf0039948e" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86cd5ca076997b97ef09d3ad65efe811fa68c9e874cb636ccb211223a813b0c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "zeroize" version = "1.6.0" @@ -3042,5 +4242,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] diff --git a/counter-script/project/Forc.lock b/counter-script/project/Forc.lock index b530f2980..f4c67feae 100644 --- a/counter-script/project/Forc.lock +++ b/counter-script/project/Forc.lock @@ -1,29 +1,29 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'counter_contract' -source = 'member' +name = "counter_contract" +source = "member" dependencies = [ - 'libraries', - 'std', + "libraries", + "std", ] [[package]] -name = 'interaction_script' -source = 'member' +name = "interaction_script" +source = "member" dependencies = [ - 'libraries', - 'std', + "libraries", + "std", ] [[package]] -name = 'libraries' -source = 'path+from-root-4F344E6D2A50F28B' -dependencies = ['std'] +name = "libraries" +source = "path+from-root-4F344E6D2A50F28B" +dependencies = ["std"] [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/counter-script/project/fuel-toolchain.toml b/counter-script/project/fuel-toolchain.toml index 0fcfb7071..e75c0bb58 100644 --- a/counter-script/project/fuel-toolchain.toml +++ b/counter-script/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-07" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/counter-script/project/scripts/interaction_script/Cargo.toml b/counter-script/project/scripts/interaction_script/Cargo.toml index de75c7430..aeb92c601 100644 --- a/counter-script/project/scripts/interaction_script/Cargo.toml +++ b/counter-script/project/scripts/interaction_script/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" [dependencies] -fuels = "0.43.0" +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/counter-script/project/scripts/interaction_script/tests/harness.rs b/counter-script/project/scripts/interaction_script/tests/harness.rs index ae7a28a03..5dd5ce8fa 100644 --- a/counter-script/project/scripts/interaction_script/tests/harness.rs +++ b/counter-script/project/scripts/interaction_script/tests/harness.rs @@ -1,8 +1,10 @@ use fuels::{ accounts::wallet::WalletUnlocked, - prelude::{abigen, Contract, LoadConfiguration, StorageConfiguration, TxParameters}, + prelude::{ + abigen, launch_provider_and_get_wallet, Contract, LoadConfiguration, StorageConfiguration, + TxPolicies, + }, programs::contract::SettableContract, - test_helpers::launch_provider_and_get_wallet, }; // The following macro will automatically generate some structs for you, to easily interact with contracts and scripts. @@ -29,18 +31,19 @@ pub async fn setup() -> ( InteractionScript, ) { // The `launch_provider_and_get_wallet` function will launch a local provider and create a wallet for you. - let wallet = launch_provider_and_get_wallet().await; + let wallet = launch_provider_and_get_wallet().await.unwrap(); // The following code will load the storage configuration (default storage values) from the contract and create a configuration object. - let storage_configuration = - StorageConfiguration::load_from(STORAGE_CONFIGURATION_PATH).unwrap(); + let storage_configuration = StorageConfiguration::default() + .add_slot_overrides_from_file(STORAGE_CONFIGURATION_PATH) + .unwrap(); let configuration = - LoadConfiguration::default().set_storage_configuration(storage_configuration); + LoadConfiguration::default().with_storage_configuration(storage_configuration); // The following code will deploy the contract and store the returned ContractId in the `id` variable. let id = Contract::load_from(CONTRACT_BIN_PATH, configuration) .unwrap() - .deploy(&wallet, TxParameters::default()) + .deploy(&wallet, TxPolicies::default()) .await .unwrap(); @@ -59,7 +62,7 @@ async fn test_script_clearing_at_end() { // Execute the script with the `clear` parameter set to true. let result = script_instance .main(contract_instance.id(), true) // Passing the main function parameters defined in the sway script code. - .set_contracts(&[&contract_instance]) // Defining the contracts that the script will interact with. + .with_contracts(&[&contract_instance]) // Defining the contracts that the script will interact with. .call() .await .unwrap() @@ -76,7 +79,7 @@ async fn test_script_not_clearing_at_end() { // Execute the script with the `clear` parameter set to false. let result = script_instance .main(contract_instance.id(), false) // Passing the main function parameters defined in the sway script code. - .set_contracts(&[&contract_instance]) // Defining the contracts that the script will interact with. + .with_contracts(&[&contract_instance]) // Defining the contracts that the script will interact with. .call() .await .unwrap() diff --git a/escrow/README.md b/escrow/README.md index 62a417e7a..9e26b70e7 100644 --- a/escrow/README.md +++ b/escrow/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/escrow/project/Cargo.lock b/escrow/project/Cargo.lock index 4c9d40939..a3a366b5f 100644 --- a/escrow/project/Cargo.lock +++ b/escrow/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -232,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -321,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -376,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -420,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -455,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -476,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -531,7 +534,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -561,7 +564,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -578,7 +581,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -597,7 +600,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -640,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -657,7 +660,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -790,6 +793,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -975,6 +1005,27 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", + "subtle", +] + [[package]] name = "either" version = "1.9.0" @@ -983,9 +1034,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1026,7 +1077,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1080,12 +1131,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1117,6 +1174,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1146,23 +1209,28 @@ dependencies = [ [[package]] name = "fuel-abi-types" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d99a7aeb41cdabffa38418b00fd57b5571dc58ee5af606e845a088befecd36" +checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ + "itertools 0.10.5", "lazy_static", + "proc-macro2", + "quote", "regex", "serde", + "serde_json", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1170,9 +1238,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1186,6 +1254,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1195,7 +1264,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1208,22 +1278,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1232,9 +1302,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1244,8 +1314,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1255,9 +1326,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1268,21 +1339,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1292,36 +1363,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1336,15 +1410,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1352,12 +1426,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1366,21 +1441,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1389,17 +1464,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1413,55 +1490,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1471,10 +1566,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1482,31 +1578,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa0bee7463c6bee4920c60315492a25a3026f1a68d15570cef7b470b04ecdf9" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1516,17 +1621,15 @@ dependencies = [ "fuels-macros", "fuels-programs", "fuels-test-helpers", - "fuels-types", ] [[package]] name = "fuels-accounts" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dad265d8fc612aaef2a4c1fa8bb14d77541575a6d2de6d26e66acc94afdaae" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1536,148 +1639,121 @@ dependencies = [ "fuel-types", "fuel-vm", "fuels-core", - "fuels-types", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e7b697abfac23b3505fa3136bb3e910ed664caa58d1efcb6e11644aa95d8aa" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d565f3c3c2974616984149c0440e03aadd600abe29e6268d41ebbdf21ae89915" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", + "bech32 0.9.1", + "chrono", + "fuel-abi-types", + "fuel-asm", + "fuel-core-chain-config", + "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", - "fuels-types", + "fuels-macros", "hex", - "itertools", - "sha2 0.10.7", + "itertools 0.12.0", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396b1007bf06f788b47bc710f53bce2cf5c74c32cf072baeae46abfbba1b5c33" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6c51214d91115708cea3c7ea62e447623305b281c341f5ed6a18a14ab40f8e" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "fuels-types", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cac950d5fb1a182c897135e68337e750dd8a48e35dd3849a9fc2d602eb55035" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", - "fuels-types", + "fuels-core", "futures", "hex", "portpicker", "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", ] -[[package]] -name = "fuels-types" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e94e08cfab823b1a6ed2830fe22067dd7112f0fe5228bec23d4e95cefebcfe" -dependencies = [ - "bech32 0.9.1", - "chrono", - "fuel-abi-types", - "fuel-asm", - "fuel-core-chain-config", - "fuel-core-client", - "fuel-tx", - "fuel-types", - "fuels-macros", - "hex", - "itertools", - "proc-macro2", - "regex", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror", -] - [[package]] name = "funty" version = "2.0.0" @@ -1740,7 +1816,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1793,7 +1869,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1872,6 +1948,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1917,6 +1998,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1974,7 +2064,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2163,6 +2253,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2188,7 +2287,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2209,15 +2308,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2249,9 +2354,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2279,12 +2384,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2306,16 +2411,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -2362,6 +2457,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2406,11 +2513,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2463,14 +2576,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2488,6 +2601,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2514,6 +2633,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2537,9 +2665,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -2608,9 +2736,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2688,11 +2816,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2702,9 +2839,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2713,9 +2850,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2815,11 +2952,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", @@ -2934,6 +3071,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2949,7 +3112,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3039,35 +3202,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.175" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.175" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3098,9 +3261,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3132,9 +3295,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3195,6 +3358,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "spin" version = "0.5.2" @@ -3279,9 +3452,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3294,6 +3467,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3311,46 +3496,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3397,11 +3571,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3410,7 +3583,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3427,13 +3600,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3540,6 +3713,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3579,7 +3753,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3654,6 +3828,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3696,6 +3876,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3717,12 +3906,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3750,7 +3933,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3784,7 +3967,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3845,13 +4028,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -3995,5 +4180,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] diff --git a/escrow/project/Forc.lock b/escrow/project/Forc.lock index fbc067aa1..c11122b38 100644 --- a/escrow/project/Forc.lock +++ b/escrow/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'escrow-contract' -source = 'member' -dependencies = ['std'] +name = "escrow-contract" +source = "member" +dependencies = ["std"] [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/escrow/project/contracts/escrow-contract/Cargo.toml b/escrow/project/contracts/escrow-contract/Cargo.toml index d51646e75..a02302580 100644 --- a/escrow/project/contracts/escrow-contract/Cargo.toml +++ b/escrow/project/contracts/escrow-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.42.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/escrow/project/contracts/escrow-contract/src/data_structures.sw b/escrow/project/contracts/escrow-contract/src/data_structures.sw index 0560a9d42..e6381b444 100644 --- a/escrow/project/contracts/escrow-contract/src/data_structures.sw +++ b/escrow/project/contracts/escrow-contract/src/data_structures.sw @@ -7,7 +7,7 @@ pub struct Arbiter { /// Address identifying the arbiter. address: Identity, /// The asset that the arbiter will be paid in upon resolution. - asset: ContractId, + asset: AssetId, /// The quantity of asset to be taken as payment. fee_amount: u64, } @@ -23,7 +23,7 @@ pub struct Asset { /// Amount of asset the user must deposit. amount: u64, /// The id used to identify the asset for deposit. - id: ContractId, + id: AssetId, } /// Represents the user who is buying the asset. @@ -31,7 +31,7 @@ pub struct Buyer { /// Address identifying the buyer. address: Identity, /// The asset that the user has currently deposited in the contract. - asset: Option, + asset: Option, // Minor data duplication allows us to forego validating unique assets upon escrow creation // otherwise the same asset with different values can be added which, if handled incorrectly, // may allow the user to drain the contract diff --git a/escrow/project/contracts/escrow-contract/src/events.sw b/escrow/project/contracts/escrow-contract/src/events.sw index ca8c38d4f..7abf85db7 100644 --- a/escrow/project/contracts/escrow-contract/src/events.sw +++ b/escrow/project/contracts/escrow-contract/src/events.sw @@ -19,7 +19,7 @@ pub struct CreatedEscrowEvent { /// Event for when a deposit is made. pub struct DepositEvent { /// The asset that the user deposited. - asset: ContractId, + asset: AssetId, /// Unique escrow identifier. identifier: u64, } diff --git a/escrow/project/contracts/escrow-contract/src/interface.sw b/escrow/project/contracts/escrow-contract/src/interface.sw index 4852a570a..be89331b9 100644 --- a/escrow/project/contracts/escrow-contract/src/interface.sw +++ b/escrow/project/contracts/escrow-contract/src/interface.sw @@ -39,7 +39,12 @@ abi Escrow { /// * When the amount of any asset required for deposit is set to 0 #[payable] #[storage(read, write)] - fn create_escrow(arbiter: Arbiter, assets: Vec, buyer: Identity, deadline: u64); + fn create_escrow( + arbiter: Arbiter, + assets: Vec, + buyer: Identity, + deadline: u64, + ); /// Accepts a deposit from the buyer for any of the assets specified in the escrow /// diff --git a/escrow/project/contracts/escrow-contract/src/main.sw b/escrow/project/contracts/escrow-contract/src/main.sw index abb692b56..ef522afa2 100644 --- a/escrow/project/contracts/escrow-contract/src/main.sw +++ b/escrow/project/contracts/escrow-contract/src/main.sw @@ -29,12 +29,13 @@ use events::{ }; use interface::{Escrow, Info}; use std::{ + asset::transfer, auth::msg_sender, block::height, call_frames::msg_asset_id, context::msg_amount, + hash::Hash, storage::storage_vec::*, - token::transfer, }; storage { @@ -61,14 +62,30 @@ impl Escrow for Contract { let mut escrow = storage.escrows.get(identifier).try_read().unwrap(); require(escrow.state == State::Pending, StateError::StateNotPending); - require(msg_sender().unwrap() == escrow.buyer.address, UserError::Unauthorized); + require( + msg_sender() + .unwrap() == escrow + .buyer + .address, + UserError::Unauthorized, + ); let arbiter = storage.arbiter_proposal.get(identifier).try_read(); require(arbiter.is_some(), StateError::ArbiterHasNotBeenProposed); // Upon acceptance we must transfer back the previous fee the seller deposited - transfer(escrow.arbiter.fee_amount, escrow.arbiter.asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + escrow + .arbiter + .asset, + escrow + .arbiter + .fee_amount, + ); escrow.arbiter = arbiter.unwrap(); @@ -91,21 +108,56 @@ impl Escrow for Contract { // not the buyer / seller, the arbiter has a fee that they can take upon resolving a dispute // and the escrow deadline is set in the future require(0 < assets.len(), AssetInputError::UnspecifiedAssets); - require(deadline > height(), DeadlineInputError::MustBeInTheFuture); + require( + deadline > height() + .as_u64(), + DeadlineInputError::MustBeInTheFuture, + ); require(0 < arbiter.fee_amount, ArbiterInputError::FeeCannotBeZero); - require(arbiter.fee_amount == msg_amount(), ArbiterInputError::FeeDoesNotMatchAmountSent); - require(arbiter.asset == msg_asset_id(), ArbiterInputError::AssetDoesNotMatch); + require( + arbiter + .fee_amount == msg_amount(), + ArbiterInputError::FeeDoesNotMatchAmountSent, + ); + require( + arbiter + .asset == msg_asset_id(), + ArbiterInputError::AssetDoesNotMatch, + ); require(arbiter.address != buyer, ArbiterInputError::CannotBeBuyer); - require(arbiter.address != msg_sender().unwrap(), ArbiterInputError::CannotBeSeller); + require( + arbiter + .address != msg_sender() + .unwrap(), + ArbiterInputError::CannotBeSeller, + ); let mut index = 0; while index < assets.len() { - require(0 < assets.get(index).unwrap().amount, AssetInputError::AssetAmountCannotBeZero); + require( + 0 < assets + .get(index) + .unwrap() + .amount, + AssetInputError::AssetAmountCannotBeZero, + ); storage.assets.push(assets.get(index).unwrap()); index += 1; } - let escrow = EscrowInfo::new(arbiter, assets.len(), buyer, deadline, storage.assets.len() - assets.len(), msg_sender().unwrap()); + let escrow = EscrowInfo::new( + arbiter, + assets + .len(), + buyer, + deadline, + storage + .assets + .len() - assets + .len(), + msg_sender() + .unwrap(), + ); storage.escrows.insert(storage.escrow_count.read(), escrow); @@ -124,9 +176,20 @@ impl Escrow for Contract { // and escrow completion let mut escrow = storage.escrows.get(identifier).try_read().unwrap(); - require(escrow.deadline > height(), StateError::EscrowExpired); + require( + escrow + .deadline > height() + .as_u64(), + StateError::EscrowExpired, + ); require(escrow.state == State::Pending, StateError::StateNotPending); - require(msg_sender().unwrap() == escrow.buyer.address, UserError::Unauthorized); + require( + msg_sender() + .unwrap() == escrow + .buyer + .address, + UserError::Unauthorized, + ); require(escrow.buyer.asset.is_none(), StateError::AlreadyDeposited); // TODO: https://github.com/FuelLabs/sway/issues/2014 @@ -135,7 +198,10 @@ impl Escrow for Contract { while index < escrow.asset_count { let asset = storage.assets.get(escrow.first_asset_index + index).unwrap().read(); if asset.id == msg_asset_id() { - require(asset.amount == msg_amount(), DepositError::IncorrectAssetAmount); + require( + asset.amount == msg_amount(), + DepositError::IncorrectAssetAmount, + ); escrow.buyer.asset = Option::Some(msg_asset_id()); escrow.buyer.deposited_amount = msg_amount(); break; @@ -145,7 +211,15 @@ impl Escrow for Contract { } // User must deposit one of the specified assets in the correct amount - require(escrow.buyer.asset.is_some() && 0 < escrow.buyer.deposited_amount, DepositError::IncorrectAssetSent); + require( + escrow + .buyer + .asset + .is_some() && 0 < escrow + .buyer + .deposited_amount, + DepositError::IncorrectAssetSent, + ); storage.escrows.insert(identifier, escrow); @@ -163,8 +237,20 @@ impl Escrow for Contract { require(escrow.state == State::Pending, StateError::StateNotPending); require(!escrow.disputed, StateError::AlreadyDisputed); - require(msg_sender().unwrap() == escrow.buyer.address, UserError::Unauthorized); - require(escrow.buyer.asset.is_some(), StateError::CannotDisputeBeforeDeposit); + require( + msg_sender() + .unwrap() == escrow + .buyer + .address, + UserError::Unauthorized, + ); + require( + escrow + .buyer + .asset + .is_some(), + StateError::CannotDisputeBeforeDeposit, + ); // Lock the escrow escrow.disputed = true; @@ -185,16 +271,46 @@ impl Escrow for Contract { let user = msg_sender().unwrap(); require(user == escrow.seller.address, UserError::Unauthorized); - require(arbiter.address != escrow.buyer.address, ArbiterInputError::CannotBeBuyer); - require(arbiter.address != escrow.seller.address, ArbiterInputError::CannotBeSeller); + require( + arbiter + .address != escrow + .buyer + .address, + ArbiterInputError::CannotBeBuyer, + ); + require( + arbiter + .address != escrow + .seller + .address, + ArbiterInputError::CannotBeSeller, + ); require(0 < arbiter.fee_amount, ArbiterInputError::FeeCannotBeZero); - require(arbiter.fee_amount == msg_amount(), ArbiterInputError::FeeDoesNotMatchAmountSent); - require(arbiter.asset == msg_asset_id(), ArbiterInputError::AssetDoesNotMatch); + require( + arbiter + .fee_amount == msg_amount(), + ArbiterInputError::FeeDoesNotMatchAmountSent, + ); + require( + arbiter + .asset == msg_asset_id(), + ArbiterInputError::AssetDoesNotMatch, + ); // If there is a previous proposal then we must transfer those funds back to the seller let proposal = storage.arbiter_proposal.get(identifier).try_read(); if proposal.is_some() { - transfer(proposal.unwrap().fee_amount, proposal.unwrap().asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + proposal + .unwrap() + .asset, + proposal + .unwrap() + .fee_amount, + ); } storage.arbiter_proposal.insert(identifier, arbiter); @@ -214,25 +330,80 @@ impl Escrow for Contract { require(escrow.state == State::Pending, StateError::StateNotPending); require(escrow.disputed, StateError::NotDisputed); - require(msg_sender().unwrap() == escrow.arbiter.address, UserError::Unauthorized); - require(user == escrow.buyer.address || user == escrow.seller.address, UserInputError::InvalidRecipient); - require(escrow.buyer.asset.is_some() && 0 < escrow.buyer.deposited_amount, StateError::CannotResolveBeforeDeposit); - require(payment_amount <= escrow.arbiter.fee_amount, ArbiterInputError::PaymentTooLarge); + require( + msg_sender() + .unwrap() == escrow + .arbiter + .address, + UserError::Unauthorized, + ); + require( + user == escrow + .buyer + .address || user == escrow + .seller + .address, + UserInputError::InvalidRecipient, + ); + require( + escrow + .buyer + .asset + .is_some() && 0 < escrow + .buyer + .deposited_amount, + StateError::CannotResolveBeforeDeposit, + ); + require( + payment_amount <= escrow + .arbiter + .fee_amount, + ArbiterInputError::PaymentTooLarge, + ); escrow.state = State::Completed; storage.escrows.insert(identifier, escrow); - transfer(escrow.buyer.deposited_amount, escrow.buyer.asset.unwrap(), user); - transfer(payment_amount, escrow.arbiter.asset, escrow.arbiter.address); + transfer( + user, + escrow + .buyer + .asset + .unwrap(), + escrow + .buyer + .deposited_amount, + ); + transfer(escrow.arbiter.address, escrow.arbiter.asset, payment_amount); if payment_amount != escrow.arbiter.fee_amount { - transfer(escrow.arbiter.fee_amount - payment_amount, escrow.arbiter.asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + escrow + .arbiter + .asset, + escrow + .arbiter + .fee_amount - payment_amount, + ); } // If there is a previous proposal then we must transfer those funds back to the seller let proposal = storage.arbiter_proposal.get(identifier).try_read(); if proposal.is_some() { - transfer(proposal.unwrap().fee_amount, proposal.unwrap().asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + proposal + .unwrap() + .asset, + proposal + .unwrap() + .fee_amount, + ); // Not needed as long as the entire contract handles state correctly but leaving it in // for conceptual closure at the slight expense of users assert(storage.arbiter_proposal.remove(identifier)); @@ -251,19 +422,62 @@ impl Escrow for Contract { let mut escrow = storage.escrows.get(identifier).try_read().unwrap(); require(escrow.state == State::Pending, StateError::StateNotPending); - require(msg_sender().unwrap() == escrow.seller.address, UserError::Unauthorized); - require(escrow.buyer.asset.is_some(), StateError::CannotTransferBeforeDeposit); + require( + msg_sender() + .unwrap() == escrow + .seller + .address, + UserError::Unauthorized, + ); + require( + escrow + .buyer + .asset + .is_some(), + StateError::CannotTransferBeforeDeposit, + ); escrow.state = State::Completed; storage.escrows.insert(identifier, escrow); - transfer(escrow.buyer.deposited_amount, escrow.buyer.asset.unwrap(), escrow.buyer.address); - transfer(escrow.arbiter.fee_amount, escrow.arbiter.asset, escrow.seller.address); + transfer( + escrow + .buyer + .address, + escrow + .buyer + .asset + .unwrap(), + escrow + .buyer + .deposited_amount, + ); + transfer( + escrow + .seller + .address, + escrow + .arbiter + .asset, + escrow + .arbiter + .fee_amount, + ); // If there is a previous proposal then we must transfer those funds back to the seller let proposal = storage.arbiter_proposal.get(identifier).try_read(); if proposal.is_some() { - transfer(proposal.unwrap().fee_amount, proposal.unwrap().asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + proposal + .unwrap() + .asset, + proposal + .unwrap() + .fee_amount, + ); // Not needed as long as the entire contract handles state correctly but leaving it in // for conceptual closure at the slight expense of users assert(storage.arbiter_proposal.remove(identifier)); @@ -279,21 +493,69 @@ impl Escrow for Contract { let mut escrow = storage.escrows.get(identifier).try_read().unwrap(); require(escrow.state == State::Pending, StateError::StateNotPending); - require(escrow.deadline < height(), StateError::CannotTakePaymentBeforeDeadline); + require( + escrow + .deadline < height() + .as_u64(), + StateError::CannotTakePaymentBeforeDeadline, + ); require(!escrow.disputed, StateError::CannotTakePaymentDuringDispute); - require(msg_sender().unwrap() == escrow.seller.address, UserError::Unauthorized); - require(escrow.buyer.asset.is_some(), StateError::CannotTransferBeforeDeposit); + require( + msg_sender() + .unwrap() == escrow + .seller + .address, + UserError::Unauthorized, + ); + require( + escrow + .buyer + .asset + .is_some(), + StateError::CannotTransferBeforeDeposit, + ); escrow.state = State::Completed; storage.escrows.insert(identifier, escrow); - transfer(escrow.buyer.deposited_amount, escrow.buyer.asset.unwrap(), escrow.seller.address); - transfer(escrow.arbiter.fee_amount, escrow.arbiter.asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + escrow + .buyer + .asset + .unwrap(), + escrow + .buyer + .deposited_amount, + ); + transfer( + escrow + .seller + .address, + escrow + .arbiter + .asset, + escrow + .arbiter + .fee_amount, + ); // If there is a previous proposal then we must transfer those funds back to the seller let proposal = storage.arbiter_proposal.get(identifier).try_read(); if proposal.is_some() { - transfer(proposal.unwrap().fee_amount, proposal.unwrap().asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + proposal + .unwrap() + .asset, + proposal + .unwrap() + .fee_amount, + ); // Not needed as long as the entire contract handles state correctly but leaving it in // for conceptual closure at the slight expense of users assert(storage.arbiter_proposal.remove(identifier)); @@ -307,19 +569,64 @@ impl Escrow for Contract { let mut escrow = storage.escrows.get(identifier).try_read().unwrap(); require(escrow.state == State::Pending, StateError::StateNotPending); - require(escrow.buyer.asset.is_some() && 0 < escrow.buyer.deposited_amount, StateError::CannotTransferBeforeDeposit); - require(msg_sender().unwrap() == escrow.buyer.address, UserError::Unauthorized); + require( + escrow + .buyer + .asset + .is_some() && 0 < escrow + .buyer + .deposited_amount, + StateError::CannotTransferBeforeDeposit, + ); + require( + msg_sender() + .unwrap() == escrow + .buyer + .address, + UserError::Unauthorized, + ); escrow.state = State::Completed; storage.escrows.insert(identifier, escrow); - transfer(escrow.buyer.deposited_amount, escrow.buyer.asset.unwrap(), escrow.seller.address); - transfer(escrow.arbiter.fee_amount, escrow.arbiter.asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + escrow + .buyer + .asset + .unwrap(), + escrow + .buyer + .deposited_amount, + ); + transfer( + escrow + .seller + .address, + escrow + .arbiter + .asset, + escrow + .arbiter + .fee_amount, + ); // If there is a previous proposal then we must transfer those funds back to the seller let proposal = storage.arbiter_proposal.get(identifier).try_read(); if proposal.is_some() { - transfer(proposal.unwrap().fee_amount, proposal.unwrap().asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + proposal + .unwrap() + .asset, + proposal + .unwrap() + .fee_amount, + ); // Not needed as long as the entire contract handles state correctly but leaving it in // for conceptual closure at the slight expense of users assert(storage.arbiter_proposal.remove(identifier)); @@ -335,19 +642,56 @@ impl Escrow for Contract { let mut escrow = storage.escrows.get(identifier).try_read().unwrap(); require(escrow.state == State::Pending, StateError::StateNotPending); - require(escrow.deadline < height(), StateError::CannotWithdrawBeforeDeadline); - require(msg_sender().unwrap() == escrow.seller.address, UserError::Unauthorized); - require(escrow.buyer.asset.is_none(), StateError::CannotWithdrawAfterDeposit); + require( + escrow + .deadline < height() + .as_u64(), + StateError::CannotWithdrawBeforeDeadline, + ); + require( + msg_sender() + .unwrap() == escrow + .seller + .address, + UserError::Unauthorized, + ); + require( + escrow + .buyer + .asset + .is_none(), + StateError::CannotWithdrawAfterDeposit, + ); escrow.state = State::Completed; storage.escrows.insert(identifier, escrow); - transfer(escrow.arbiter.fee_amount, escrow.arbiter.asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + escrow + .arbiter + .asset, + escrow + .arbiter + .fee_amount, + ); // If there is a previous proposal then we must transfer those funds back to the seller let proposal = storage.arbiter_proposal.get(identifier).try_read(); if proposal.is_some() { - transfer(proposal.unwrap().fee_amount, proposal.unwrap().asset, escrow.seller.address); + transfer( + escrow + .seller + .address, + proposal + .unwrap() + .asset, + proposal + .unwrap() + .fee_amount, + ); // Not needed as long as the entire contract handles state correctly but leaving it in // for conceptual closure at the slight expense of users assert(storage.arbiter_proposal.remove(identifier)); diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/accept_arbiter.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/accept_arbiter.rs index 1cfb55dce..a6eae1a89 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/accept_arbiter.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/accept_arbiter.rs @@ -51,7 +51,7 @@ mod success { asset_amount(&defaults.asset_id, &seller).await ); assert_eq!(arbiter_obj2, escrows(&seller, 0).await.unwrap().arbiter); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); let log = response .decode_logs_with_type::() diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/create_escrow.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/create_escrow.rs index 120bdcfac..46e75c0b9 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/create_escrow.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/create_escrow.rs @@ -2,7 +2,6 @@ use crate::utils::{ interface::core::create_escrow, setup::{create_arbiter, create_asset, setup}, }; -use fuels::prelude::ContractId; mod success { @@ -23,8 +22,8 @@ mod success { asset_amount(&defaults.asset_id, &seller).await ); assert_eq!(0, escrow_count(&seller).await); - assert!(matches!(assets(&seller, 0).await, None)); - assert!(matches!(escrows(&seller, 0).await, None)); + assert!(assets(&seller, 0).await.is_none()); + assert!(escrows(&seller, 0).await.is_none()); let response = create_escrow( defaults.asset_amount, @@ -97,8 +96,8 @@ mod success { asset_amount(&defaults.asset_id, &seller).await ); assert_eq!(0, escrow_count(&seller).await); - assert!(matches!(assets(&seller, 0).await, None)); - assert!(matches!(escrows(&seller, 0).await, None)); + assert!(assets(&seller, 0).await.is_none()); + assert!(escrows(&seller, 0).await.is_none()); let response = create_escrow( defaults.asset_amount, @@ -173,8 +172,8 @@ mod success { asset_amount(&defaults.asset_id, &seller).await ); assert_eq!(0, escrow_count(&seller).await); - assert!(matches!(assets(&seller, 0).await, None)); - assert!(matches!(escrows(&seller, 0).await, None)); + assert!(assets(&seller, 0).await.is_none()); + assert!(escrows(&seller, 0).await.is_none()); let response1 = create_escrow( defaults.asset_amount, @@ -296,6 +295,8 @@ mod success { mod revert { + use fuels::types::AssetId; + use super::*; #[tokio::test] @@ -378,7 +379,7 @@ mod revert { async fn when_asset_used_for_arbiter_fee_is_unequal() { let (arbiter, buyer, seller, defaults) = setup().await; let arbiter_obj = - create_arbiter(&arbiter, ContractId::from([2u8; 32]), defaults.asset_amount).await; + create_arbiter(&arbiter, AssetId::from([2u8; 32]), defaults.asset_amount).await; let asset = create_asset(defaults.asset_amount, defaults.asset_id).await; create_escrow( diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/deposit.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/deposit.rs index 536672d8e..a9ba6b52a 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/deposit.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/deposit.rs @@ -34,7 +34,7 @@ mod success { ); let escrow = escrows(&seller, 0).await.unwrap(); - assert!(matches!(escrow.buyer.asset, None)); + assert!(escrow.buyer.asset.is_none()); assert_eq!(0, escrow.buyer.deposited_amount); let response = deposit(defaults.asset_amount, &defaults.asset_id, &buyer, 0).await; @@ -95,8 +95,8 @@ mod success { let escrow1 = escrows(&seller, 0).await.unwrap(); let escrow2 = escrows(&seller, 0).await.unwrap(); - assert!(matches!(escrow1.buyer.asset, None)); - assert!(matches!(escrow2.buyer.asset, None)); + assert!(escrow1.buyer.asset.is_none()); + assert!(escrow2.buyer.asset.is_none()); assert_eq!(0, escrow1.buyer.deposited_amount); assert_eq!(0, escrow2.buyer.deposited_amount); diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/propose_arbiter.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/propose_arbiter.rs index 05e11d4c6..7f77da591 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/propose_arbiter.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/propose_arbiter.rs @@ -2,7 +2,10 @@ use crate::utils::{ interface::core::{create_escrow, deposit, propose_arbiter}, setup::{create_arbiter, create_asset, setup}, }; -use fuels::prelude::{AssetId, CallParameters, TxParameters}; +use fuels::{ + prelude::{AssetId, CallParameters, TxPolicies}, + programs::call_utils::TxDependencyExtension, +}; mod success { @@ -33,7 +36,7 @@ mod success { defaults.initial_wallet_amount - defaults.asset_amount, asset_amount(&defaults.asset_id, &seller).await ); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); let response = propose_arbiter(arbiter_obj.clone(), &seller, 0).await; @@ -80,7 +83,7 @@ mod success { defaults.initial_wallet_amount - defaults.asset_amount, asset_amount(&defaults.asset_id, &seller).await ); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); let response1 = propose_arbiter(arbiter_obj.clone(), &seller, 0).await; @@ -154,8 +157,8 @@ mod success { defaults.initial_wallet_amount - (2 * defaults.asset_amount), asset_amount(&defaults.asset_id, &seller).await ); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); - assert!(matches!(arbiter_proposal(&seller, 1).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); + assert!(arbiter_proposal(&seller, 1).await.is_none()); let response1 = propose_arbiter(arbiter_obj.clone(), &seller, 0).await; @@ -239,8 +242,8 @@ mod success { defaults.initial_wallet_amount - (2 * defaults.asset_amount), asset_amount(&defaults.asset_id, &seller).await ); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); - assert!(matches!(arbiter_proposal(&seller, 1).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); + assert!(arbiter_proposal(&seller, 1).await.is_none()); let response1 = propose_arbiter(arbiter_obj.clone(), &seller, 0).await; @@ -458,7 +461,7 @@ mod revert { let (arbiter, buyer, seller, defaults) = setup().await; let arbiter_obj = create_arbiter(&arbiter, defaults.asset_id, defaults.asset_amount).await; let asset = create_asset(defaults.asset_amount, defaults.asset_id).await; - let tx_params = TxParameters::new(0, 10_000_000, 0); + let tx_params = TxPolicies::new(Some(0), Some(10_000_000), None, None, None); let call_params = CallParameters::new( arbiter_obj.fee_amount - 1, AssetId::from(*arbiter_obj.asset), @@ -481,7 +484,7 @@ mod revert { .contract .methods() .propose_arbiter(arbiter_obj, 0) - .tx_params(tx_params) + .with_tx_policies(tx_params) .call_params(call_params) .unwrap() .append_variable_outputs(1) @@ -499,7 +502,7 @@ mod revert { let arbiter_obj_unequal = create_arbiter(&arbiter, defaults.asset_id, defaults.asset_amount).await; - let tx_params = TxParameters::new(0, 1_000_000, 0); + let tx_params = TxPolicies::new(Some(0), Some(1_000_000), None, None, None); let call_params = CallParameters::new( arbiter_obj_unequal.fee_amount, AssetId::from(*defaults.other_asset_id), @@ -522,7 +525,7 @@ mod revert { .contract .methods() .propose_arbiter(arbiter_obj_unequal, 0) - .tx_params(tx_params) + .with_tx_policies(tx_params) .call_params(call_params) .unwrap() .append_variable_outputs(1) diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/resolve_dispute.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/resolve_dispute.rs index 5feeaa725..cbaa04b07 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/resolve_dispute.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/resolve_dispute.rs @@ -342,7 +342,7 @@ mod success { defaults.initial_wallet_amount + defaults.asset_amount, asset_amount(&defaults.asset_id, &arbiter).await ); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); assert!(matches!( escrows(&seller, 0).await.unwrap().state, State::Completed diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/return_deposit.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/return_deposit.rs index 3ff0fa570..dc903158e 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/return_deposit.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/return_deposit.rs @@ -110,7 +110,7 @@ mod success { escrows(&seller, 0).await.unwrap().state, State::Completed )); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); let log = response .decode_logs_with_type::() diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/take_payment.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/take_payment.rs index 28480b12d..91a6256c6 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/take_payment.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/take_payment.rs @@ -37,7 +37,12 @@ mod success { deposit(defaults.asset_amount, &defaults.asset_id, &buyer, 0).await; provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); @@ -101,7 +106,12 @@ mod success { deposit(defaults.asset_amount, &defaults.asset_id, &buyer, 0).await; provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); @@ -136,7 +146,7 @@ mod success { escrows(&seller, 0).await.unwrap().state, State::Completed )); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); let log = response .decode_logs_with_type::() @@ -194,7 +204,12 @@ mod success { .await; provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); @@ -330,7 +345,12 @@ mod revert { deposit(defaults.asset_amount, &defaults.asset_id, &buyer, 0).await; provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); @@ -361,7 +381,12 @@ mod revert { deposit(defaults.asset_amount, &defaults.asset_id, &buyer, 0).await; provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); @@ -390,7 +415,12 @@ mod revert { .await; provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/transfer_to_seller.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/transfer_to_seller.rs index 5f83373c9..af10fcee7 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/transfer_to_seller.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/transfer_to_seller.rs @@ -118,7 +118,7 @@ mod success { escrows(&seller, 0).await.unwrap().state, State::Completed )); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); let log = response .decode_logs_with_type::() diff --git a/escrow/project/contracts/escrow-contract/tests/functions/core/withdraw_collateral.rs b/escrow/project/contracts/escrow-contract/tests/functions/core/withdraw_collateral.rs index 23f6a6294..707630b1e 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/core/withdraw_collateral.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/core/withdraw_collateral.rs @@ -44,7 +44,12 @@ mod success { )); provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); @@ -108,7 +113,7 @@ mod success { escrows(&seller, 0).await.unwrap().state, State::Completed )); - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); let log = response .decode_logs_with_type::() @@ -165,7 +170,12 @@ mod success { ); provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); @@ -279,7 +289,12 @@ mod revert { .await; provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); @@ -308,7 +323,12 @@ mod revert { .await; deposit(defaults.asset_amount, &defaults.asset_id, &buyer, 0).await; provider - .produce_blocks((origin_block as u64) + defaults.deadline, None) + .produce_blocks( + ((origin_block as u64) + defaults.deadline) + .try_into() + .unwrap(), + None, + ) .await .unwrap(); diff --git a/escrow/project/contracts/escrow-contract/tests/functions/info/arbiter_proposal.rs b/escrow/project/contracts/escrow-contract/tests/functions/info/arbiter_proposal.rs index a2389db63..452f27c0e 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/info/arbiter_proposal.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/info/arbiter_proposal.rs @@ -11,7 +11,7 @@ mod success { #[tokio::test] async fn returns_none() { let (_arbiter, _buyer, seller, _defaults) = setup().await; - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); } #[tokio::test] @@ -31,7 +31,7 @@ mod success { ) .await; - assert!(matches!(arbiter_proposal(&seller, 0).await, None)); + assert!(arbiter_proposal(&seller, 0).await.is_none()); propose_arbiter(arbiter_obj.clone(), &seller, 0).await; diff --git a/escrow/project/contracts/escrow-contract/tests/functions/info/assets.rs b/escrow/project/contracts/escrow-contract/tests/functions/info/assets.rs index 1073f3df4..586c4e830 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/info/assets.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/info/assets.rs @@ -8,7 +8,7 @@ mod success { #[tokio::test] async fn returns_none() { let (_arbiter, _buyer, seller, _defaults) = setup().await; - assert!(matches!(assets(&seller, 0).await, None)); + assert!(assets(&seller, 0).await.is_none()); } #[tokio::test] @@ -17,7 +17,7 @@ mod success { let arbiter_obj = create_arbiter(&arbiter, defaults.asset_id, defaults.asset_amount).await; let asset = create_asset(defaults.asset_amount, defaults.asset_id).await; - assert!(matches!(assets(&seller, 0).await, None)); + assert!(assets(&seller, 0).await.is_none()); create_escrow( defaults.asset_amount, diff --git a/escrow/project/contracts/escrow-contract/tests/functions/info/escrows.rs b/escrow/project/contracts/escrow-contract/tests/functions/info/escrows.rs index acc7506c6..d4b1af714 100644 --- a/escrow/project/contracts/escrow-contract/tests/functions/info/escrows.rs +++ b/escrow/project/contracts/escrow-contract/tests/functions/info/escrows.rs @@ -8,7 +8,7 @@ mod success { #[tokio::test] async fn returns_none() { let (_arbiter, _buyer, seller, _defaults) = setup().await; - assert!(matches!(escrows(&seller, 0).await, None)); + assert!(escrows(&seller, 0).await.is_none()); } #[tokio::test] @@ -17,7 +17,7 @@ mod success { let arbiter_obj = create_arbiter(&arbiter, defaults.asset_id, defaults.asset_amount).await; let asset = create_asset(defaults.asset_amount, defaults.asset_id).await; - assert!(matches!(escrows(&seller, 0).await, None)); + assert!(escrows(&seller, 0).await.is_none()); create_escrow( defaults.asset_amount, diff --git a/escrow/project/contracts/escrow-contract/tests/utils/interface/core.rs b/escrow/project/contracts/escrow-contract/tests/utils/interface/core.rs index 89241cef0..dd712d66f 100644 --- a/escrow/project/contracts/escrow-contract/tests/utils/interface/core.rs +++ b/escrow/project/contracts/escrow-contract/tests/utils/interface/core.rs @@ -1,7 +1,7 @@ use crate::utils::setup::{Arbiter, Asset, User}; use fuels::{ - prelude::{AssetId, CallParameters, ContractId, TxParameters}, - programs::call_response::FuelCallResponse, + prelude::{AssetId, CallParameters, TxPolicies}, + programs::{call_response::FuelCallResponse, call_utils::TxDependencyExtension}, types::Identity, }; @@ -19,14 +19,14 @@ pub(crate) async fn accept_arbiter(caller: &User, identifier: u64) -> FuelCallRe pub(crate) async fn create_escrow( amount: u64, arbiter: &Arbiter, - asset: &ContractId, + asset: &AssetId, assets: Vec, buyer: &User, caller: &User, deadline: u64, ) -> FuelCallResponse<()> { - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new(amount, AssetId::from(**asset), 1_000_000); + let tx_params = TxPolicies::new(Some(0), Some(2_000_000), None, None, None); + let call_params = CallParameters::new(amount, *asset, 1_000_000); caller .contract @@ -37,7 +37,7 @@ pub(crate) async fn create_escrow( Identity::Address(buyer.wallet.address().into()), deadline, ) - .tx_params(tx_params) + .with_tx_policies(tx_params) .call_params(call_params) .unwrap() .call() @@ -47,18 +47,18 @@ pub(crate) async fn create_escrow( pub(crate) async fn deposit( amount: u64, - asset: &ContractId, + asset: &AssetId, caller: &User, identifier: u64, ) -> FuelCallResponse<()> { - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new(amount, AssetId::from(**asset), 1_000_000); + let tx_params = TxPolicies::new(Some(0), Some(2_000_000), None, None, None); + let call_params = CallParameters::new(amount, *asset, 1_000_000); caller .contract .methods() .deposit(identifier) - .tx_params(tx_params) + .with_tx_policies(tx_params) .call_params(call_params) .unwrap() .call() @@ -81,15 +81,14 @@ pub(crate) async fn propose_arbiter( caller: &User, identifier: u64, ) -> FuelCallResponse<()> { - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = - CallParameters::new(arbiter.fee_amount, AssetId::from(*arbiter.asset), 1_000_000); + let tx_params = TxPolicies::new(Some(0), Some(2_000_000), None, None, None); + let call_params = CallParameters::new(arbiter.fee_amount, arbiter.asset, 1_000_000); caller .contract .methods() .propose_arbiter(arbiter, identifier) - .tx_params(tx_params) + .with_tx_policies(tx_params) .call_params(call_params) .unwrap() .append_variable_outputs(1) diff --git a/escrow/project/contracts/escrow-contract/tests/utils/setup.rs b/escrow/project/contracts/escrow-contract/tests/utils/setup.rs index 9fcacc831..da6a624fa 100644 --- a/escrow/project/contracts/escrow-contract/tests/utils/setup.rs +++ b/escrow/project/contracts/escrow-contract/tests/utils/setup.rs @@ -1,9 +1,9 @@ use fuels::{ accounts::ViewOnlyAccount, prelude::{ - abigen, launch_custom_provider_and_get_wallets, Address, AssetConfig, AssetId, Config, - Contract, ContractId, LoadConfiguration, StorageConfiguration, TxParameters, - WalletUnlocked, WalletsConfig, BASE_ASSET_ID, + abigen, launch_custom_provider_and_get_wallets, Address, AssetConfig, AssetId, Contract, + LoadConfiguration, StorageConfiguration, TxPolicies, WalletUnlocked, WalletsConfig, + BASE_ASSET_ID, }, types::Identity, }; @@ -18,10 +18,10 @@ const ESCROW_CONTRACT_STORAGE_PATH: &str = "./out/debug/escrow-contract-storage_ pub(crate) struct Defaults { pub(crate) asset_amount: u64, - pub(crate) asset_id: ContractId, + pub(crate) asset_id: AssetId, pub(crate) deadline: u64, pub(crate) initial_wallet_amount: u64, - pub(crate) other_asset_id: ContractId, + pub(crate) other_asset_id: AssetId, } pub(crate) struct User { @@ -29,15 +29,11 @@ pub(crate) struct User { pub(crate) wallet: WalletUnlocked, } -pub(crate) async fn asset_amount(asset: &ContractId, user: &User) -> u64 { - user.wallet - .clone() - .get_asset_balance(&AssetId::from(**asset)) - .await - .unwrap() +pub(crate) async fn asset_amount(asset: &AssetId, user: &User) -> u64 { + user.wallet.clone().get_asset_balance(asset).await.unwrap() } -pub(crate) async fn create_arbiter(user: &User, asset: ContractId, fee_amount: u64) -> Arbiter { +pub(crate) async fn create_arbiter(user: &User, asset: AssetId, fee_amount: u64) -> Arbiter { Arbiter { address: Identity::Address(user.wallet.address().into()), asset, @@ -45,7 +41,7 @@ pub(crate) async fn create_arbiter(user: &User, asset: ContractId, fee_amount: u } } -pub(crate) async fn create_asset(amount: u64, id: ContractId) -> Asset { +pub(crate) async fn create_asset(amount: u64, id: AssetId) -> Asset { Asset { amount, id } } @@ -54,7 +50,7 @@ pub(crate) async fn escrow_info( arbiter: Arbiter, asset_count: u64, buyer: &User, - asset: Option, + asset: Option, deposited_amount: u64, deadline: u64, disputed: bool, @@ -109,12 +105,9 @@ pub(crate) async fn setup() -> (User, User, User, Defaults) { let wallet_config = WalletsConfig::new_multiple_assets(number_of_wallets, assets); - let provider_config = Config { - manual_blocks_enabled: true, - ..Config::local_node() - }; - let mut wallets = - launch_custom_provider_and_get_wallets(wallet_config, Some(provider_config), None).await; + let mut wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None) + .await + .unwrap(); let deployer_wallet = wallets.pop().unwrap(); let arbiter_wallet = wallets.pop().unwrap(); @@ -122,12 +115,12 @@ pub(crate) async fn setup() -> (User, User, User, Defaults) { let seller_wallet = wallets.pop().unwrap(); let escrow_storage_configuration = - StorageConfiguration::load_from(ESCROW_CONTRACT_STORAGE_PATH); + StorageConfiguration::default().add_slot_overrides_from_file(ESCROW_CONTRACT_STORAGE_PATH); let escrow_configuration = LoadConfiguration::default() - .set_storage_configuration(escrow_storage_configuration.unwrap()); + .with_storage_configuration(escrow_storage_configuration.unwrap()); let escrow_id = Contract::load_from(ESCROW_CONTRACT_BINARY_PATH, escrow_configuration) .unwrap() - .deploy(&deployer_wallet, TxParameters::default()) + .deploy(&deployer_wallet, TxPolicies::default()) .await .unwrap(); @@ -145,11 +138,11 @@ pub(crate) async fn setup() -> (User, User, User, Defaults) { }; let defaults = Defaults { - asset_id: ContractId::from(*asset_id), + asset_id, asset_amount: 100, deadline: 100, initial_wallet_amount: coin_amount, - other_asset_id: ContractId::from(*other_asset_id), + other_asset_id, }; (arbiter, buyer, seller, defaults) diff --git a/escrow/project/fuel-toolchain.toml b/escrow/project/fuel-toolchain.toml index 85312ab11..e75c0bb58 100644 --- a/escrow/project/fuel-toolchain.toml +++ b/escrow/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-18" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/fundraiser/README.md b/fundraiser/README.md index 569bb1eb5..9722febe4 100644 --- a/fundraiser/README.md +++ b/fundraiser/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/fundraiser/project/Cargo.lock b/fundraiser/project/Cargo.lock index 8b4203127..e48104466 100644 --- a/fundraiser/project/Cargo.lock +++ b/fundraiser/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -232,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] @@ -321,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -376,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -420,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -455,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -476,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -531,7 +534,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] @@ -561,7 +564,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -578,7 +581,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -597,7 +600,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -640,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -657,7 +660,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -790,6 +793,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.40", +] + [[package]] name = "cynic" version = "2.2.8" @@ -975,6 +1005,27 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", + "subtle", +] + [[package]] name = "either" version = "1.9.0" @@ -983,9 +1034,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1026,7 +1077,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] @@ -1072,12 +1123,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1109,6 +1166,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a56f0780318174bad1c127063fd0c5fdfb35398e3cd79ffaab931a6c79df80" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1138,23 +1201,28 @@ dependencies = [ [[package]] name = "fuel-abi-types" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d99a7aeb41cdabffa38418b00fd57b5571dc58ee5af606e845a088befecd36" +checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ + "itertools 0.10.5", "lazy_static", + "proc-macro2", + "quote", "regex", "serde", + "serde_json", + "syn 2.0.40", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1162,9 +1230,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1178,6 +1246,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1187,7 +1256,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1200,22 +1270,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1224,9 +1294,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1236,8 +1306,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1247,9 +1318,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1260,21 +1331,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1284,36 +1355,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1328,15 +1402,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1344,12 +1418,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1358,21 +1433,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1381,17 +1456,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1405,55 +1482,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.40", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1463,10 +1558,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1474,31 +1570,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa0bee7463c6bee4920c60315492a25a3026f1a68d15570cef7b470b04ecdf9" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1508,17 +1613,15 @@ dependencies = [ "fuels-macros", "fuels-programs", "fuels-test-helpers", - "fuels-types", ] [[package]] name = "fuels-accounts" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dad265d8fc612aaef2a4c1fa8bb14d77541575a6d2de6d26e66acc94afdaae" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1528,148 +1631,121 @@ dependencies = [ "fuel-types", "fuel-vm", "fuels-core", - "fuels-types", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e7b697abfac23b3505fa3136bb3e910ed664caa58d1efcb6e11644aa95d8aa" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] name = "fuels-core" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d565f3c3c2974616984149c0440e03aadd600abe29e6268d41ebbdf21ae89915" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", + "bech32 0.9.1", + "chrono", + "fuel-abi-types", + "fuel-asm", + "fuel-core-chain-config", + "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", - "fuels-types", + "fuels-macros", "hex", - "itertools", - "sha2 0.10.7", + "itertools 0.12.0", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396b1007bf06f788b47bc710f53bce2cf5c74c32cf072baeae46abfbba1b5c33" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] name = "fuels-programs" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6c51214d91115708cea3c7ea62e447623305b281c341f5ed6a18a14ab40f8e" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "fuels-types", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cac950d5fb1a182c897135e68337e750dd8a48e35dd3849a9fc2d602eb55035" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", - "fuels-types", + "fuels-core", "futures", "hex", "portpicker", "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", ] -[[package]] -name = "fuels-types" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e94e08cfab823b1a6ed2830fe22067dd7112f0fe5228bec23d4e95cefebcfe" -dependencies = [ - "bech32 0.9.1", - "chrono", - "fuel-abi-types", - "fuel-asm", - "fuel-core-chain-config", - "fuel-core-client", - "fuel-tx", - "fuel-types", - "fuels-macros", - "hex", - "itertools", - "proc-macro2", - "regex", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror", -] - [[package]] name = "fundraiser-contract" version = "0.0.0" @@ -1740,7 +1816,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] @@ -1793,7 +1869,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1872,6 +1948,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1917,6 +1998,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1974,7 +2064,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2163,6 +2253,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2188,7 +2287,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2209,15 +2308,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2249,9 +2354,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2279,12 +2384,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2306,16 +2411,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -2362,6 +2457,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2406,11 +2513,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2463,14 +2576,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2488,6 +2601,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2514,6 +2633,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2537,9 +2665,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2608,9 +2736,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2688,11 +2816,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2702,9 +2839,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2713,9 +2850,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2815,11 +2952,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "9ad981d6c340a49cdc40a1028d9c6084ec7e9fa33fcb839cab656a267071e234" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", @@ -2934,6 +3071,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2949,7 +3112,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3039,35 +3202,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.175" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.175" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3098,9 +3261,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3132,9 +3295,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3195,6 +3358,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "spin" version = "0.5.2" @@ -3279,9 +3452,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "13fa70a4ee923979ffb522cacce59d34421ebdea5625e1073c4326ef9d2dd42e" dependencies = [ "proc-macro2", "quote", @@ -3294,6 +3467,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.40", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3311,46 +3496,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.40", ] [[package]] @@ -3397,11 +3571,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3410,7 +3583,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3427,13 +3600,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] @@ -3540,6 +3713,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3579,7 +3753,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] [[package]] @@ -3654,6 +3828,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3696,6 +3876,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3717,12 +3906,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3750,7 +3933,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", "wasm-bindgen-shared", ] @@ -3784,7 +3967,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3845,13 +4028,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -3995,5 +4180,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.40", ] diff --git a/fundraiser/project/Forc.lock b/fundraiser/project/Forc.lock index 0815f04dc..29d8b1b0e 100644 --- a/fundraiser/project/Forc.lock +++ b/fundraiser/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'fundraiser-contract' -source = 'member' -dependencies = ['std'] +name = "fundraiser-contract" +source = "member" +dependencies = ["std"] [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/fundraiser/project/contracts/fundraiser-contract/Cargo.toml b/fundraiser/project/contracts/fundraiser-contract/Cargo.toml index 5e8a3a876..65dbaa8bd 100644 --- a/fundraiser/project/contracts/fundraiser-contract/Cargo.toml +++ b/fundraiser/project/contracts/fundraiser-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.42.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/fundraiser/project/contracts/fundraiser-contract/src/data_structures/campaign_info.sw b/fundraiser/project/contracts/fundraiser-contract/src/data_structures/campaign_info.sw index 64ca56c98..e55a50db9 100644 --- a/fundraiser/project/contracts/fundraiser-contract/src/data_structures/campaign_info.sw +++ b/fundraiser/project/contracts/fundraiser-contract/src/data_structures/campaign_info.sw @@ -7,7 +7,7 @@ pub struct CampaignInfo { /// The user who has created the campaign. author: Identity, /// The asset that this campaign accepts as a deposit. - asset: ContractId, + asset: AssetId, /// The user to whom the funds will be sent to upon a successful campaign. beneficiary: Identity, // Whether the campaign is currently: Funding, Claimed, Cancelled. @@ -25,7 +25,7 @@ impl CampaignInfo { /// /// # Arguments /// - /// * `asset`: [ContractId] - The asset that this campaign accepts as a deposit. + /// * `asset`: [AssetId] - The asset that this campaign accepts as a deposit. /// * `author`: [Identity] - The user who has created the campaign. /// * `beneficiary`: [Identity] - The user to whom the funds will be sent to upon a successful campaign. /// * `deadline`: [u64] - The end time for the campaign after which it becomes locked. @@ -35,7 +35,7 @@ impl CampaignInfo { /// /// * [CampaignInfo] - The newly created campaign. pub fn new( - asset: ContractId, + asset: AssetId, author: Identity, beneficiary: Identity, deadline: u64, diff --git a/fundraiser/project/contracts/fundraiser-contract/src/interface.sw b/fundraiser/project/contracts/fundraiser-contract/src/interface.sw index 40b523d95..fa46724e2 100644 --- a/fundraiser/project/contracts/fundraiser-contract/src/interface.sw +++ b/fundraiser/project/contracts/fundraiser-contract/src/interface.sw @@ -49,7 +49,7 @@ abi Fundraiser { /// /// # Arguments /// - /// * `asset`: [ContractId] - A coin that the campaign accepts as a pledge. + /// * `asset`: [AssetId] - A coin that the campaign accepts as a pledge. /// * `beneficiary`: [Identity] - The recipient to whom the pledge will be sent to upon a successful campaign. /// * `deadline`: [u64] - Block height used to dictate the end time of a campaign. /// * `target_amount`: [u64] - The amount of `asset` required to deem the campaign a success. @@ -59,7 +59,12 @@ abi Fundraiser { /// * When the `deadline` is not ahead of the current block height. /// * When the `target_amount` is 0. #[storage(read, write)] - fn create_campaign(asset: ContractId, beneficiary: Identity, deadline: u64, target_amount: u64); + fn create_campaign( + asset: AssetId, + beneficiary: Identity, + deadline: u64, + target_amount: u64, + ); /// Allows a user to pledge any amount of the campaign asset towards the campaign goal. /// @@ -134,13 +139,13 @@ abi Info { /// /// # Arguments /// - /// * `asset`: [ContractId] - Uniquie identifier that identifies the asset. + /// * `asset`: [AssetId] - Unique identifier that identifies the asset. /// /// # Returns /// /// * [Option] - Information about the asset. #[storage(read)] - fn asset_info_by_id(asset: ContractId) -> Option; + fn asset_info_by_id(asset: AssetId) -> Option; /// Returns information about the specified campaign. /// diff --git a/fundraiser/project/contracts/fundraiser-contract/src/main.sw b/fundraiser/project/contracts/fundraiser-contract/src/main.sw index 8c8278133..714155f6c 100644 --- a/fundraiser/project/contracts/fundraiser-contract/src/main.sw +++ b/fundraiser/project/contracts/fundraiser-contract/src/main.sw @@ -22,12 +22,13 @@ use ::events::{ UnpledgedEvent, }; use std::{ + asset::transfer, auth::msg_sender, block::height, call_frames::msg_asset_id, constants::BASE_ASSET_ID, context::msg_amount, - token::transfer, + hash::Hash, }; use ::interface::{Fundraiser, Info}; use ::utils::validate_campaign_id; @@ -36,10 +37,10 @@ storage { /// Total number of unique assets used across all campaigns asset_count: u64 = 0, /// Direct look-up for asset data if the user wants to check via a known ID - asset_info: StorageMap = StorageMap {}, + asset_info: StorageMap = StorageMap {}, /// O(1) look-up to allow searching via asset_count /// Map(1...asset_count => asset) - asset_index: StorageMap = StorageMap {}, + asset_index: StorageMap = StorageMap {}, /// The total number of unique campaigns that a user has created /// This should only be incremented /// Cancelling / Claiming should not affect this number @@ -75,14 +76,28 @@ impl Fundraiser for Contract { let mut campaign_info = storage.campaign_info.get(campaign_id).try_read().unwrap(); // Only the creator (author) of the campaign can cancel it - require(campaign_info.author == msg_sender().unwrap(), UserError::UnauthorizedUser); + require( + campaign_info + .author == msg_sender() + .unwrap(), + UserError::UnauthorizedUser, + ); // The campaign can only be cancelled before it has reached its deadline (ended) - require(campaign_info.deadline > height(), CampaignError::CampaignEnded); + require( + campaign_info + .deadline > height() + .as_u64(), + CampaignError::CampaignEnded, + ); // User cannot cancel a campaign that has already been cancelled // Given the logic below this is unnecessary aside from ignoring event spam - require(campaign_info.state != CampaignState::Cancelled, CampaignError::CampaignHasBeenCancelled); + require( + campaign_info + .state != CampaignState::Cancelled, + CampaignError::CampaignHasBeenCancelled, + ); // Mark the campaign as cancelled campaign_info.state = CampaignState::Cancelled; @@ -103,29 +118,59 @@ impl Fundraiser for Contract { let mut campaign_info = storage.campaign_info.get(campaign_id).try_read().unwrap(); // Only the creator (author) of the campaign can initiate the claiming process - require(campaign_info.author == msg_sender().unwrap(), UserError::UnauthorizedUser); + require( + campaign_info + .author == msg_sender() + .unwrap(), + UserError::UnauthorizedUser, + ); // The author should only have the ability to claim after the deadline has been reached // (campaign has naturally ended i.e. has not been cancelled) - require(campaign_info.deadline <= height(), CampaignError::DeadlineNotReached); + require( + campaign_info + .deadline <= height() + .as_u64(), + CampaignError::DeadlineNotReached, + ); // The author can only claim the pledges once the target amount has been reached otherwise // users should be able to withdraw - require(campaign_info.target_amount <= campaign_info.total_pledge, CampaignError::TargetNotReached); + require( + campaign_info + .target_amount <= campaign_info + .total_pledge, + CampaignError::TargetNotReached, + ); // The author can only claim once to prevent the entire contract from being drained - require(campaign_info.state != CampaignState::Claimed, UserError::AlreadyClaimed); + require( + campaign_info + .state != CampaignState::Claimed, + UserError::AlreadyClaimed, + ); // The author cannot claim after they have cancelled the campaign regardless of any other // checks - require(campaign_info.state != CampaignState::Cancelled, CampaignError::CampaignHasBeenCancelled); + require( + campaign_info + .state != CampaignState::Cancelled, + CampaignError::CampaignHasBeenCancelled, + ); // Mark the campaign as claimed and overwrite the previous state with the updated version campaign_info.state = CampaignState::Claimed; storage.campaign_info.insert(campaign_id, campaign_info); // Transfer the total pledged to this campaign to the beneficiary - transfer(campaign_info.total_pledge, campaign_info.asset, campaign_info.beneficiary); + transfer( + campaign_info + .beneficiary, + campaign_info + .asset, + campaign_info + .total_pledge, + ); // We have updated the state of a campaign therefore we must log it log(ClaimedEvent { campaign_id }); @@ -133,13 +178,17 @@ impl Fundraiser for Contract { #[storage(read, write)] fn create_campaign( - asset: ContractId, + asset: AssetId, beneficiary: Identity, deadline: u64, target_amount: u64, ) { // Users cannot interact with a campaign that has already ended (is in the past) - require(deadline > height(), CreationError::DeadlineMustBeInTheFuture); + require( + deadline > height() + .as_u64(), + CreationError::DeadlineMustBeInTheFuture, + ); // A campaign must have a target to reach and therefore 0 is an invalid amount require(0 < target_amount, CreationError::TargetAmountCannotBeZero); @@ -159,7 +208,9 @@ impl Fundraiser for Contract { storage.asset_count.write(storage.asset_count.read() + 1); // Store in index to allow for asset discovery via iteration over numbers - storage.asset_index.insert(storage.asset_count.read(), asset); + storage + .asset_index + .insert(storage.asset_count.read(), asset); } // Use the user's number of created campaigns as an ID / way to index this new campaign @@ -167,13 +218,24 @@ impl Fundraiser for Contract { // We've just created a new campaign so increment the number of created campaigns across all // users and store the new campaign - storage.total_campaigns.write(storage.total_campaigns.read() + 1); - storage.campaign_info.insert(storage.total_campaigns.read(), campaign_info); + storage + .total_campaigns + .write(storage.total_campaigns.read() + 1); + storage + .campaign_info + .insert(storage.total_campaigns.read(), campaign_info); // Increment the number of campaigns this user has created and track the ID for the campaign // they have just created so that data can be easily retrieved without duplicating data - storage.user_campaign_count.insert(author, user_campaign_count + 1); - storage.campaign_history.insert((author, user_campaign_count + 1), Campaign::new(storage.total_campaigns.read())); + storage + .user_campaign_count + .insert(author, user_campaign_count + 1); + storage + .campaign_history + .insert( + (author, user_campaign_count + 1), + Campaign::new(storage.total_campaigns.read()), + ); // We have changed the state by adding a new data structure therefore we log it log(CreatedCampaignEvent { @@ -194,18 +256,31 @@ impl Fundraiser for Contract { // The users should only have the ability to pledge to campaigns that have not reached their // deadline (ended naturally - not been cancelled) - require(campaign_info.deadline > height(), CampaignError::CampaignEnded); + require( + campaign_info + .deadline > height() + .as_u64(), + CampaignError::CampaignEnded, + ); // The campaign specifies an asset that it accepts therefore the user must pledge the correct // asset in order to update the state of the campaign - require(campaign_info.asset == msg_asset_id(), UserError::IncorrectAssetSent); + require( + campaign_info + .asset == msg_asset_id(), + UserError::IncorrectAssetSent, + ); // A user cannot pledge zero since it does not make sense to do so require(0 < msg_amount(), UserError::AmountCannotBeZero); // The user should not be able to continue to pledge if the campaign has been cancelled // Given the logic below it's unnecessary but it makes sense to stop them - require(campaign_info.state != CampaignState::Cancelled, CampaignError::CampaignHasBeenCancelled); + require( + campaign_info + .state != CampaignState::Cancelled, + CampaignError::CampaignHasBeenCancelled, + ); // Use the user's pledges as an ID / way to index this new pledge let user = msg_sender().unwrap(); @@ -222,7 +297,9 @@ impl Fundraiser for Contract { let mut pledge = storage.pledge_history.get((user, pledge_history_index)).try_read().unwrap(); pledge.amount += msg_amount(); - storage.pledge_history.insert((user, pledge_history_index), pledge); + storage + .pledge_history + .insert((user, pledge_history_index), pledge); } else { // Pledging to a new campaign @@ -232,11 +309,18 @@ impl Fundraiser for Contract { // Store the data structure required to look up the campaign they have pledged to, also // track how much they have pledged so that they can withdraw the correct amount. // Moreover, this can be used to show the user how much they have pledged to any campaign - storage.pledge_history.insert((user, pledge_count + 1), Pledge::new(msg_amount(), campaign_id)); + storage + .pledge_history + .insert( + (user, pledge_count + 1), + Pledge::new(msg_amount(), campaign_id), + ); // Since we use the campaign ID to interact with the contract use the ID as a key for // a reverse look-up. Value is the 1st pledge (count) - storage.pledge_history_index.insert((user, campaign_id), pledge_count + 1); + storage + .pledge_history_index + .insert((user, campaign_id), pledge_count + 1); } // The user has pledged therefore we increment the total amount that this campaign has @@ -274,8 +358,12 @@ impl Fundraiser for Contract { // A user should be able to unpledge at any point except if the deadline has been reached // and the author has claimed - if campaign_info.deadline <= height() { - require(campaign_info.state != CampaignState::Claimed, UserError::AlreadyClaimed); + if campaign_info.deadline <= height().as_u64() { + require( + campaign_info + .state != CampaignState::Claimed, + UserError::AlreadyClaimed, + ); } // Check if the user has pledged to the campaign they are attempting to unpledge from @@ -300,7 +388,9 @@ impl Fundraiser for Contract { campaign_info.total_pledge -= amount; // Update the state of their pledge with the new version - storage.pledge_history.insert((user, pledge_history_index), pledge); + storage + .pledge_history + .insert((user, pledge_history_index), pledge); // Update the campaign state with the updated version as well storage.campaign_info.insert(campaign_id, campaign_info); @@ -313,7 +403,7 @@ impl Fundraiser for Contract { storage.asset_info.insert(campaign_info.asset, asset_info); // Transfer back the amount the user has unpledged - transfer(amount, campaign_info.asset, user); + transfer(user, campaign_info.asset, amount); // We have updated the state of a campaign therefore we must log it log(UnpledgedEvent { @@ -336,7 +426,7 @@ impl Info for Contract { } #[storage(read)] - fn asset_info_by_id(asset: ContractId) -> Option { + fn asset_info_by_id(asset: AssetId) -> Option { storage.asset_info.get(asset).try_read() } diff --git a/fundraiser/project/contracts/fundraiser-contract/tests/utils/interface/core.rs b/fundraiser/project/contracts/fundraiser-contract/tests/utils/interface/core.rs index 0b5bdc226..83ffdcac8 100644 --- a/fundraiser/project/contracts/fundraiser-contract/tests/utils/interface/core.rs +++ b/fundraiser/project/contracts/fundraiser-contract/tests/utils/interface/core.rs @@ -1,6 +1,6 @@ use fuels::{ - prelude::{AssetId, CallParameters, ContractId, TxParameters, WalletUnlocked}, - programs::call_response::FuelCallResponse, + prelude::{AssetId, CallParameters, TxPolicies, WalletUnlocked}, + programs::{call_response::FuelCallResponse, call_utils::TxDependencyExtension}, types::Identity, }; @@ -28,7 +28,7 @@ pub(crate) async fn claim_pledges( pub(crate) async fn create_campaign( contract: &Fundraiser, - asset: &ContractId, + asset: &AssetId, beneficiary: &Identity, deadline: u64, target_amount: u64, @@ -47,13 +47,13 @@ pub(crate) async fn pledge( asset: &Coin, amount: u64, ) -> FuelCallResponse<()> { - let tx_params = TxParameters::new(0, 2_000_000, 0); - let call_params = CallParameters::new(amount, AssetId::from(*asset.id), 1_000_000); + let tx_params = TxPolicies::new(Some(0), Some(2_000_000), None, None, None); + let call_params = CallParameters::new(amount, asset.id, 1_000_000); contract .methods() .pledge(id) - .tx_params(tx_params) + .with_tx_policies(tx_params) .call_params(call_params) .unwrap() .call() diff --git a/fundraiser/project/contracts/fundraiser-contract/tests/utils/interface/info.rs b/fundraiser/project/contracts/fundraiser-contract/tests/utils/interface/info.rs index 375b3bdcb..c76e01741 100644 --- a/fundraiser/project/contracts/fundraiser-contract/tests/utils/interface/info.rs +++ b/fundraiser/project/contracts/fundraiser-contract/tests/utils/interface/info.rs @@ -1,6 +1,6 @@ use crate::utils::setup::{AssetInfo, Campaign, CampaignInfo, Fundraiser, Pledge}; use fuels::{ - prelude::{ContractId, WalletUnlocked}, + prelude::{AssetId, WalletUnlocked}, programs::call_response::FuelCallResponse, types::Identity, }; @@ -11,7 +11,7 @@ pub(crate) async fn asset_count(contract: &Fundraiser) -> u64 { pub(crate) async fn asset_info_by_id( contract: &Fundraiser, - asset: &ContractId, + asset: &AssetId, ) -> FuelCallResponse> { contract .methods() diff --git a/fundraiser/project/contracts/fundraiser-contract/tests/utils/setup.rs b/fundraiser/project/contracts/fundraiser-contract/tests/utils/setup.rs index 62a999eba..22ab52af0 100644 --- a/fundraiser/project/contracts/fundraiser-contract/tests/utils/setup.rs +++ b/fundraiser/project/contracts/fundraiser-contract/tests/utils/setup.rs @@ -1,8 +1,8 @@ use fuels::{ prelude::{ abigen, launch_custom_provider_and_get_wallets, AssetConfig, AssetId, Bech32Address, - Config, Contract, ContractId, LoadConfiguration, StorageConfiguration, TxParameters, - WalletUnlocked, WalletsConfig, BASE_ASSET_ID, + Contract, LoadConfiguration, StorageConfiguration, TxPolicies, WalletUnlocked, + WalletsConfig, BASE_ASSET_ID, }, types::Identity, }; @@ -16,11 +16,11 @@ const FUNDRAISER_CONTRACT_BINARY_PATH: &str = "./out/debug/fundraiser-contract.b const FUNDRAISER_CONTRACT_STORAGE_PATH: &str = "./out/debug/fundraiser-contract-storage_slots.json"; pub(crate) struct Coin { - pub(crate) id: ContractId, + pub(crate) id: AssetId, } pub(crate) struct DefaultParameters { - pub(crate) asset_id: ContractId, + pub(crate) asset_id: AssetId, pub(crate) beneficiary: Identity, pub(crate) deadline: u64, pub(crate) initial_wallet_amount: u64, @@ -62,25 +62,22 @@ pub(crate) async fn setup() -> (User, User, Coin, Coin, DefaultParameters) { let wallet_config = WalletsConfig::new_multiple_assets(number_of_wallets, assets); - let provider_config = Config { - manual_blocks_enabled: true, - ..Config::local_node() - }; - let mut wallets = - launch_custom_provider_and_get_wallets(wallet_config, Some(provider_config), None).await; + let mut wallets = launch_custom_provider_and_get_wallets(wallet_config, None, None) + .await + .unwrap(); let deployer_wallet = wallets.pop().unwrap(); let author_wallet = wallets.pop().unwrap(); let user_wallet = wallets.pop().unwrap(); - let fundraiser_storage_configuration = - StorageConfiguration::load_from(FUNDRAISER_CONTRACT_STORAGE_PATH); + let fundraiser_storage_configuration = StorageConfiguration::default() + .add_slot_overrides_from_file(FUNDRAISER_CONTRACT_STORAGE_PATH); let fundraiser_configuration = LoadConfiguration::default() - .set_storage_configuration(fundraiser_storage_configuration.unwrap()); + .with_storage_configuration(fundraiser_storage_configuration.unwrap()); let fundraiser_id = Contract::load_from(FUNDRAISER_CONTRACT_BINARY_PATH, fundraiser_configuration) .unwrap() - .deploy(&deployer_wallet, TxParameters::default()) + .deploy(&deployer_wallet, TxPolicies::default()) .await .unwrap(); @@ -94,16 +91,12 @@ pub(crate) async fn setup() -> (User, User, Coin, Coin, DefaultParameters) { wallet: user_wallet.clone(), }; - let asset = Coin { - id: ContractId::from(*asset_id), - }; + let asset = Coin { id: asset_id }; - let asset2 = Coin { - id: ContractId::from(*asset2_id), - }; + let asset2 = Coin { id: asset2_id }; let defaults = DefaultParameters { - asset_id: ContractId::from(*asset_id), + asset_id, beneficiary: Identity::Address(user_wallet.address().into()), deadline: 100, initial_wallet_amount: coin_amount, diff --git a/fundraiser/project/fuel-toolchain.toml b/fundraiser/project/fuel-toolchain.toml index 85312ab11..e75c0bb58 100644 --- a/fundraiser/project/fuel-toolchain.toml +++ b/fundraiser/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-18" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/games/TicTacToe/README.md b/games/TicTacToe/README.md index a5b737cd5..df692d9fe 100644 --- a/games/TicTacToe/README.md +++ b/games/TicTacToe/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/games/TicTacToe/project/Cargo.lock b/games/TicTacToe/project/Cargo.lock index 8f8eaefc6..addd46cc4 100644 --- a/games/TicTacToe/project/Cargo.lock +++ b/games/TicTacToe/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -232,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.71" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -321,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -376,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -420,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -455,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -476,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -531,7 +534,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -561,7 +564,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -578,7 +581,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -597,7 +600,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -640,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -657,7 +660,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -790,6 +793,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -975,6 +1005,27 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", + "subtle", +] + [[package]] name = "either" version = "1.8.1" @@ -983,9 +1034,9 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1026,7 +1077,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -1072,12 +1123,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1109,6 +1166,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1142,24 +1205,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ - "itertools", + "itertools 0.10.5", "lazy_static", "proc-macro2", "quote", "regex", "serde", "serde_json", - "syn 2.0.26", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1167,9 +1230,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1183,6 +1246,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1192,7 +1256,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1205,22 +1270,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1229,9 +1294,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1241,8 +1306,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1252,9 +1318,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1265,21 +1331,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1289,36 +1355,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1333,15 +1402,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1349,12 +1418,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1363,21 +1433,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1386,17 +1456,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1410,55 +1482,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1468,10 +1558,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1479,31 +1570,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa81d69072a9d4ba6fac79d9b5b66348daf95089ecda85a9231e41e5dd45bc85" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1517,12 +1617,11 @@ dependencies = [ [[package]] name = "fuels-accounts" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a03259b1ece608c33541477fed7dea07bb3e78f25f85a8a3060f6501d6e982" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1533,118 +1632,106 @@ dependencies = [ "fuel-vm", "fuels-core", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e8ec25373ed1ae06cfe53afc4e3ecd6057aa4ff3a3329e40f42784afe21726b" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b133aff726340284937e3233b8c9dd8429812dd463e4e6f53373ca13e644c99" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", "bech32 0.9.1", "chrono", "fuel-abi-types", "fuel-asm", "fuel-core-chain-config", "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", "fuels-macros", "hex", - "itertools", - "proc-macro2", - "regex", + "itertools 0.12.0", "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", + "sha2 0.10.8", "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef684e13ddc8b16f7828dc98ca309f69a6516068bb307c78b8e64aaf010b397" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e582cc270a794e02e40150f79d2a92830bf5adaaadf4147de02689ae17c287" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3b0f1475beb61ad66163dc57234170b7319aacf79d9147a28c7ff43cc6fd8f0" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", "futures", @@ -1653,7 +1740,7 @@ dependencies = [ "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", @@ -1721,7 +1808,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -1774,7 +1861,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1853,6 +1940,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1898,6 +1990,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1955,7 +2056,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2144,6 +2245,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2169,7 +2279,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2190,15 +2300,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2230,9 +2346,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2260,12 +2376,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2287,16 +2403,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.15" @@ -2343,6 +2449,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2387,11 +2505,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2444,14 +2568,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2469,6 +2593,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2495,6 +2625,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2518,9 +2657,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2589,9 +2728,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.31" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2669,11 +2808,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2683,9 +2831,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2694,9 +2842,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2796,11 +2944,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", @@ -2915,6 +3063,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2930,7 +3104,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3020,35 +3194,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.173" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91f70896d6720bc714a4a57d22fc91f1db634680e65c8efe13323f1fa38d53f" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.173" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6250dde8342e0232232be9ca3db7aa40aceb5a3e5dd9bddbc00d99a007cde49" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3079,9 +3253,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3113,9 +3287,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3176,6 +3350,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "spin" version = "0.5.2" @@ -3260,9 +3444,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.26" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3275,6 +3459,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3292,35 +3488,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -3331,17 +3527,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - [[package]] name = "time" version = "0.3.23" @@ -3386,11 +3571,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3399,7 +3583,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3416,13 +3600,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -3529,6 +3713,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3568,7 +3753,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] [[package]] @@ -3643,6 +3828,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3685,6 +3876,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3706,12 +3906,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3739,7 +3933,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3773,7 +3967,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3834,13 +4028,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -3984,5 +4180,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.39", ] diff --git a/games/TicTacToe/project/Forc.lock b/games/TicTacToe/project/Forc.lock index c47820e28..2fb1d1d95 100644 --- a/games/TicTacToe/project/Forc.lock +++ b/games/TicTacToe/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] [[package]] -name = 'tictactoe-contract' -source = 'member' -dependencies = ['std'] +name = "tictactoe-contract" +source = "member" +dependencies = ["std"] diff --git a/games/TicTacToe/project/contracts/tictactoe-contract/Cargo.toml b/games/TicTacToe/project/contracts/tictactoe-contract/Cargo.toml index 824319d63..22196b38d 100644 --- a/games/TicTacToe/project/contracts/tictactoe-contract/Cargo.toml +++ b/games/TicTacToe/project/contracts/tictactoe-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.43.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/games/TicTacToe/project/contracts/tictactoe-contract/src/main.sw b/games/TicTacToe/project/contracts/tictactoe-contract/src/main.sw index 5b9800b38..07d269d37 100644 --- a/games/TicTacToe/project/contracts/tictactoe-contract/src/main.sw +++ b/games/TicTacToe/project/contracts/tictactoe-contract/src/main.sw @@ -11,21 +11,9 @@ use ::data_structures::State; use ::errors::{GameStateError, PlayerError, PositionError}; use ::events::{GameDrawnEvent, GameWonEvent, NewGameEvent}; use ::interface::Game; -use std::auth::msg_sender; +use std::{auth::msg_sender, hash::Hash}; use ::utils::{draw, win_check}; -// This is needed for comparing the position when the cell is not empty. -// We only need to check if there is an Identity in the cell but we don't care about its value. -impl Eq for Option { - fn eq(self, other: Self) -> bool { - match (self, other) { - (Option::None, Option::None) => true, - (Option::Some(T), Option::Some(T)) => true, - _ => false, - } - } -} - storage { /// Keeps track of each player move. board: StorageMap = StorageMap {}, @@ -44,7 +32,12 @@ storage { impl Game for Contract { #[storage(read, write)] fn new_game(player_one: Identity, player_two: Identity) { - require(storage.state.read() == State::Ended, GameStateError::GameHasNotEnded); + require( + storage + .state + .read() == State::Ended, + GameStateError::GameHasNotEnded, + ); storage.player_one.write(Option::Some(player_one)); storage.player_two.write(Option::Some(player_two)); @@ -67,10 +60,28 @@ impl Game for Contract { #[storage(read, write)] fn make_move(position: u64) { - require(storage.state.read() == State::Playing, GameStateError::GameHasEnded); - require(storage.player_turn.read().unwrap() == msg_sender().unwrap(), PlayerError::IncorrectPlayerTurn); + require( + storage + .state + .read() == State::Playing, + GameStateError::GameHasEnded, + ); + require( + storage + .player_turn + .read() + .unwrap() == msg_sender() + .unwrap(), + PlayerError::IncorrectPlayerTurn, + ); require(position < 9, PositionError::InvalidPosition); - require(storage.board.get(position).try_read() == Option::None, PositionError::CellIsNotEmpty); + require( + storage + .board + .get(position) + .try_read() == Option::None, + PositionError::CellIsNotEmpty, + ); storage.board.insert(position, msg_sender().unwrap()); storage.move_counter.write(storage.move_counter.read() + 1); @@ -99,7 +110,20 @@ impl Game for Contract { log(GameWonEvent { player: msg_sender().unwrap(), }); - } else if draw(board, storage.player_one.read().unwrap(), storage.player_two.read().unwrap(), storage.move_counter.read()) + } else if draw( + board, + storage + .player_one + .read() + .unwrap(), + storage + .player_two + .read() + .unwrap(), + storage + .move_counter + .read(), + ) { storage.player_turn.write(Option::None); storage.state.write(State::Ended); diff --git a/games/TicTacToe/project/contracts/tictactoe-contract/src/utils.sw b/games/TicTacToe/project/contracts/tictactoe-contract/src/utils.sw index e85fcb8db..0f39df8b9 100644 --- a/games/TicTacToe/project/contracts/tictactoe-contract/src/utils.sw +++ b/games/TicTacToe/project/contracts/tictactoe-contract/src/utils.sw @@ -2,14 +2,7 @@ library; // A list of all the winning combinations. const MATCHES = [ - [0, 1, 2], - [3, 4, 5], - [6, 7, 8], - [0, 3, 6], - [1, 4, 7], - [2, 5, 8], - [0, 4, 8], - [2, 4, 6], + [0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6], ]; /// Checks if a player has won. @@ -71,18 +64,30 @@ pub fn draw( let marker_two = board.get(MATCHES[i][1]).unwrap(); let marker_three = board.get(MATCHES[i][2]).unwrap(); - if ((marker_one.is_some() - && marker_one.unwrap() == player_one) - && (marker_two.is_some() - && marker_two.unwrap() == player_one) - && (marker_three.is_some() - && marker_three.unwrap() == player_one) - || (marker_one.is_some() - && marker_one.unwrap() == player_two) - && (marker_two.is_some() - && marker_two.unwrap() == player_two) - && (marker_three.is_some() - && marker_three.unwrap() == player_two)) + if ((marker_one + .is_some() + && marker_one + .unwrap() == player_one) + && (marker_two + .is_some() + && marker_two + .unwrap() == player_one) + && (marker_three + .is_some() + && marker_three + .unwrap() == player_one) + || (marker_one + .is_some() + && marker_one + .unwrap() == player_two) + && (marker_two + .is_some() + && marker_two + .unwrap() == player_two) + && (marker_three + .is_some() + && marker_three + .unwrap() == player_two)) { return false; } diff --git a/games/TicTacToe/project/contracts/tictactoe-contract/tests/utils/interface.rs b/games/TicTacToe/project/contracts/tictactoe-contract/tests/utils/interface.rs index 45913a7ca..d5f91cc3b 100644 --- a/games/TicTacToe/project/contracts/tictactoe-contract/tests/utils/interface.rs +++ b/games/TicTacToe/project/contracts/tictactoe-contract/tests/utils/interface.rs @@ -1,6 +1,6 @@ use crate::utils::setup::TicTacToe; use fuels::{ - accounts::wallet::WalletUnlocked, prelude::TxParameters, + accounts::wallet::WalletUnlocked, prelude::TxPolicies, programs::call_response::FuelCallResponse, types::Identity, }; @@ -12,7 +12,7 @@ pub(crate) async fn new_game( contract .methods() .new_game(player_one.clone(), player_two.clone()) - .tx_params(TxParameters::new(0, 2_000_000, 0)) + .with_tx_policies(TxPolicies::default().with_script_gas_limit(2_000_000)) .call() .await .unwrap() @@ -25,7 +25,7 @@ pub(crate) async fn make_move( contract .methods() .make_move(position) - .tx_params(TxParameters::new(0, 2_000_000, 0)) + .with_tx_policies(TxPolicies::default().with_script_gas_limit(2_000_000)) .call() .await .unwrap() diff --git a/games/TicTacToe/project/contracts/tictactoe-contract/tests/utils/setup.rs b/games/TicTacToe/project/contracts/tictactoe-contract/tests/utils/setup.rs index 11128c709..65235c6e5 100644 --- a/games/TicTacToe/project/contracts/tictactoe-contract/tests/utils/setup.rs +++ b/games/TicTacToe/project/contracts/tictactoe-contract/tests/utils/setup.rs @@ -2,7 +2,7 @@ use fuels::{ accounts::wallet::WalletUnlocked, prelude::{ abigen, launch_custom_provider_and_get_wallets, Contract, LoadConfiguration, - StorageConfiguration, TxParameters, WalletsConfig, + StorageConfiguration, TxPolicies, WalletsConfig, }, types::Identity, }; @@ -31,19 +31,21 @@ pub(crate) async fn setup() -> (Player, Player) { Some(amount_per_coin), ); - let mut wallets = launch_custom_provider_and_get_wallets(config, None, None).await; + let mut wallets = launch_custom_provider_and_get_wallets(config, None, None) + .await + .unwrap(); let player_one_wallet = wallets.pop().unwrap(); let player_two_wallet = wallets.pop().unwrap(); - let contract_storage_configuration = - StorageConfiguration::load_from(TICTACTOE_CONTRACT_STORAGE_PATH); + let contract_storage_configuration = StorageConfiguration::default() + .add_slot_overrides_from_file(TICTACTOE_CONTRACT_STORAGE_PATH); let contract_configuration = LoadConfiguration::default() - .set_storage_configuration(contract_storage_configuration.unwrap()); + .with_storage_configuration(contract_storage_configuration.unwrap()); let contract_id = Contract::load_from(TICTACTOE_CONTRACT_BINARY_PATH, contract_configuration) .unwrap() - .deploy(&player_one_wallet, TxParameters::default()) + .deploy(&player_one_wallet, TxPolicies::default()) .await .unwrap(); diff --git a/games/TicTacToe/project/fuel-toolchain.toml b/games/TicTacToe/project/fuel-toolchain.toml index 85312ab11..e75c0bb58 100644 --- a/games/TicTacToe/project/fuel-toolchain.toml +++ b/games/TicTacToe/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-18" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/multisig-wallet/README.md b/multisig-wallet/README.md index 6406771ee..d6eed8e9b 100644 --- a/multisig-wallet/README.md +++ b/multisig-wallet/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/multisig-wallet/project/Cargo.lock b/multisig-wallet/project/Cargo.lock index 3e8f1d33e..f7156bd50 100644 --- a/multisig-wallet/project/Cargo.lock +++ b/multisig-wallet/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -232,7 +238,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -243,7 +249,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -321,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -379,6 +386,9 @@ name = "bitflags" version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -420,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -455,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -479,17 +483,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -534,7 +537,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -564,7 +567,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -581,7 +584,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -600,7 +603,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -643,7 +646,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.25", + "time", "version_check", ] @@ -660,7 +663,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.25", + "time", "url", ] @@ -793,6 +796,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -984,6 +1014,26 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", +] + [[package]] name = "either" version = "1.9.0" @@ -992,9 +1042,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1035,7 +1085,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -1081,12 +1131,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1118,6 +1174,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a56f0780318174bad1c127063fd0c5fdfb35398e3cd79ffaab931a6c79df80" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1151,24 +1213,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ - "itertools", + "itertools 0.10.5", "lazy_static", "proc-macro2", "quote", "regex", "serde", "serde_json", - "syn 2.0.28", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "fuel-types", "serde", "strum", @@ -1176,9 +1238,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1192,6 +1254,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1201,7 +1264,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1214,22 +1278,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1238,9 +1302,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1250,8 +1314,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1261,9 +1326,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1274,21 +1339,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1298,36 +1363,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1342,15 +1410,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1358,12 +1426,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1372,21 +1441,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1395,17 +1464,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1419,55 +1490,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.0", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1477,10 +1566,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1488,31 +1578,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.0", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa81d69072a9d4ba6fac79d9b5b66348daf95089ecda85a9231e41e5dd45bc85" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1526,12 +1625,11 @@ dependencies = [ [[package]] name = "fuels-accounts" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a03259b1ece608c33541477fed7dea07bb3e78f25f85a8a3060f6501d6e982" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1542,118 +1640,106 @@ dependencies = [ "fuel-vm", "fuels-core", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e8ec25373ed1ae06cfe53afc4e3ecd6057aa4ff3a3329e40f42784afe21726b" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b133aff726340284937e3233b8c9dd8429812dd463e4e6f53373ca13e644c99" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", "bech32 0.9.1", "chrono", "fuel-abi-types", "fuel-asm", "fuel-core-chain-config", "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", "fuels-macros", "hex", - "itertools", - "proc-macro2", - "regex", + "itertools 0.12.0", "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", + "sha2 0.10.8", "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef684e13ddc8b16f7828dc98ca309f69a6516068bb307c78b8e64aaf010b397" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e582cc270a794e02e40150f79d2a92830bf5adaaadf4147de02689ae17c287" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3b0f1475beb61ad66163dc57234170b7319aacf79d9147a28c7ff43cc6fd8f0" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", "futures", @@ -1662,7 +1748,7 @@ dependencies = [ "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", @@ -1730,7 +1816,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -1783,7 +1869,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1862,6 +1948,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1907,6 +1998,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -2153,6 +2253,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2178,7 +2287,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2199,15 +2308,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2239,9 +2354,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2269,12 +2384,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2306,16 +2421,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -2362,6 +2467,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2406,11 +2523,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2463,7 +2586,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -2488,6 +2611,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2514,6 +2643,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2537,9 +2675,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -2576,7 +2714,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -2608,9 +2746,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2688,11 +2826,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.3" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2702,9 +2849,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.6" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2713,9 +2860,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2815,9 +2962,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.8" +version = "0.38.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" +checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" dependencies = [ "bitflags 2.4.0", "errno", @@ -2934,6 +3081,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -2949,7 +3122,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3039,35 +3212,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.183" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.183" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.104" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3098,9 +3271,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3132,9 +3305,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3197,9 +3370,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", "windows-sys", @@ -3289,9 +3462,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3304,6 +3477,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3321,46 +3506,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.1" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3408,9 +3582,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.31.0" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40de3a2ba249dcb097e01be5e67a5ff53cf250397715a071a81543e8a832a920" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ "backtrace", "bytes", @@ -3420,7 +3594,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.3", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3437,13 +3611,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -3550,6 +3724,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3589,7 +3764,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] [[package]] @@ -3664,6 +3839,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3706,6 +3887,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3727,12 +3917,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3760,7 +3944,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3794,7 +3978,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3855,13 +4039,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -4005,5 +4191,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.39", ] diff --git a/multisig-wallet/project/Forc.lock b/multisig-wallet/project/Forc.lock index 7a98227f2..50687b62f 100644 --- a/multisig-wallet/project/Forc.lock +++ b/multisig-wallet/project/Forc.lock @@ -1,18 +1,18 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'multisig-contract' -source = 'member' -dependencies = ['std'] +name = "multisig-contract" +source = "member" +dependencies = ["std"] [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] [[package]] -name = 'target-contract' -source = 'member' -dependencies = ['std'] +name = "target-contract" +source = "member" +dependencies = ["std"] diff --git a/multisig-wallet/project/contracts/multisig-contract/Cargo.toml b/multisig-wallet/project/contracts/multisig-contract/Cargo.toml index d7f43d9e3..78a1297f1 100644 --- a/multisig-wallet/project/contracts/multisig-contract/Cargo.toml +++ b/multisig-wallet/project/contracts/multisig-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.43.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } rand = "0.8" sha3 = "0.10.8" tokio = { version = "1.12", features = ["rt", "macros"] } diff --git a/multisig-wallet/project/contracts/multisig-contract/src/data_structures/hashing.sw b/multisig-wallet/project/contracts/multisig-contract/src/data_structures/hashing.sw index d6c1394c0..79ec561c6 100644 --- a/multisig-wallet/project/contracts/multisig-contract/src/data_structures/hashing.sw +++ b/multisig-wallet/project/contracts/multisig-contract/src/data_structures/hashing.sw @@ -1,7 +1,7 @@ library; use ::data_structures::user::User; -use std::{bytes::Bytes, constants::ZERO_B256}; +use std::{bytes::Bytes, constants::ZERO_B256, hash::{Hash, Hasher}}; impl Bytes { /// Converts a generic copy type into [Bytes]. @@ -11,11 +11,11 @@ impl Bytes { bytes.len = 8; asm(buffer, ptr: value, dst: bytes.buf.ptr, len: 8) { - move buffer sp; // Make `buffer` point to the current top of the stack - cfei i8; // Grow stack by 1 word - sw buffer ptr i0; // Save value in register at `ptr` to memory at `buffer` - mcp dst buffer len; // Copy `len` bytes in memory starting from `buffer`, to `dst` - cfsi i8; // Shrink stack by 1 word + move buffer sp; + cfei i8; + sw buffer ptr i0; + mcp dst buffer len; + cfsi i8; } bytes @@ -152,7 +152,7 @@ impl IntoBytes for Transaction { /// Parameters for a transfer. pub struct TransferParams { /// The asset to transfer. - asset_id: ContractId, + asset_id: AssetId, /// The amount to transfer. value: Option, } @@ -164,6 +164,38 @@ pub enum TypeToHash { Weight: Weight, } +impl Hash for User { + fn hash(self, ref mut state: Hasher) { + self.address.hash(state); + self.weight.hash(state); + } +} + +impl Hash for Threshold { + fn hash(self, ref mut state: Hasher) { + self.contract_identifier.hash(state); + self.nonce.hash(state); + self.threshold.hash(state); + } +} + +impl Hash for Transaction { + fn hash(self, ref mut state: Hasher) { + self.contract_identifier.hash(state); + self.nonce.hash(state); + self.target.hash(state); + self.transaction_parameters.into_bytes().hash(state); + } +} + +impl Hash for Weight { + fn hash(self, ref mut state: Hasher) { + self.contract_identifier.hash(state); + self.nonce.hash(state); + self.user.hash(state); + } +} + /// The data to be hashed and signed over when calling `set_weight`. pub struct Weight { /// Unique identifier for the contract which prevents this transaction from being submitted to another diff --git a/multisig-wallet/project/contracts/multisig-contract/src/events.sw b/multisig-wallet/project/contracts/multisig-contract/src/events.sw index 90450f945..dea31f6bd 100644 --- a/multisig-wallet/project/contracts/multisig-contract/src/events.sw +++ b/multisig-wallet/project/contracts/multisig-contract/src/events.sw @@ -8,8 +8,8 @@ pub struct ExecuteTransactionEvent { /// The nonce of the transaction. nonce: u64, /// The parameters of the transaction. - // transaction_parameters: TransactionParameters, // TODO: Uncomment and reorder fields when SDK supports logs with nested Bytes https://github.com/FuelLabs/fuels-rs/issues/1046 /// The target of the transaction. + // transaction_parameters: TransactionParameters, // TODO: Uncomment and reorder fields when SDK supports logs with nested Bytes https://github.com/FuelLabs/fuels-rs/issues/1046 target: Identity, } diff --git a/multisig-wallet/project/contracts/multisig-contract/src/interface.sw b/multisig-wallet/project/contracts/multisig-contract/src/interface.sw index 1e3be8931..6915cf8ea 100644 --- a/multisig-wallet/project/contracts/multisig-contract/src/interface.sw +++ b/multisig-wallet/project/contracts/multisig-contract/src/interface.sw @@ -52,7 +52,11 @@ abi MultiSignatureWallet { /// * Reads: `3` /// * Writes: `2` #[storage(read, write)] - fn execute_transaction(signatures: Vec, target: Identity, transaction_parameters: TransactionParameters); + fn execute_transaction( + signatures: Vec, + target: Identity, + transaction_parameters: TransactionParameters, + ); /// Updates the threshold required for execution. /// @@ -120,12 +124,12 @@ abi Info { /// /// # Arguments /// - /// * `asset_id` : [ContractId] - The contract ID of the asset to check that balance of. + /// * `asset_id` : [AssetId] - The AssetId of the asset to check that balance of. /// /// # Returns /// /// * [u64] - The multisig wallet's balance of `asset_id`. - fn balance(asset_id: ContractId) -> u64; + fn balance(asset_id: AssetId) -> u64; /// Takes a struct comprised of transaction data and hashes it. /// diff --git a/multisig-wallet/project/contracts/multisig-contract/src/main.sw b/multisig-wallet/project/contracts/multisig-contract/src/main.sw index 67a943227..ee9363f77 100644 --- a/multisig-wallet/project/contracts/multisig-contract/src/main.sw +++ b/multisig-wallet/project/contracts/multisig-contract/src/main.sw @@ -21,15 +21,18 @@ use ::data_structures::{ user::User, }; use std::{ + asset::transfer, call_frames::contract_id, context::this_balance, error_signals::FAILED_REQUIRE_SIGNAL, - hash::sha256, + hash::{ + Hash, + sha256, + }, low_level_call::{ call_with_function_selector, CallParams, }, - token::transfer, }; use ::utils::{compute_hash, recover_signer}; @@ -50,7 +53,7 @@ storage { /// Set to the value of the configurable `THRESHOLD`. threshold: u64 = 0, /// Number of approvals per user. - // + /// /// # Additional Information /// /// Maps (user => weight). @@ -66,13 +69,27 @@ impl MultiSignatureWallet for Contract { let mut user_index = 0; let mut total_weight = 0; while user_index < users.len() { - storage.weighting.insert(users.get(user_index).unwrap().address, users.get(user_index).unwrap().weight); + storage + .weighting + .insert( + users + .get(user_index) + .unwrap() + .address, + users + .get(user_index) + .unwrap() + .weight, + ); total_weight += users.get(user_index).unwrap().weight; user_index += 1; } - require(THRESHOLD <= total_weight, InitError::TotalWeightCannotBeLessThanThreshold); + require( + THRESHOLD <= total_weight, + InitError::TotalWeightCannotBeLessThanThreshold, + ); storage.nonce.write(1); storage.threshold.write(THRESHOLD); @@ -99,12 +116,23 @@ impl MultiSignatureWallet for Contract { }; if contract_call_params.transfer_params.value.is_some() { - require(contract_call_params.transfer_params.value.unwrap() <= this_balance(contract_call_params.transfer_params.asset_id), ExecutionError::InsufficientAssetAmount); + require( + contract_call_params + .transfer_params + .value + .unwrap() <= this_balance(contract_call_params.transfer_params.asset_id), + ExecutionError::InsufficientAssetAmount, + ); } let transaction_hash = compute_hash(TypeToHash::Transaction(Transaction::new(contract_id(), nonce, target, transaction_parameters))); let approval_count = count_approvals(signatures, transaction_hash); - require(storage.threshold.read() <= approval_count, ExecutionError::InsufficientApprovals); + require( + storage + .threshold + .read() <= approval_count, + ExecutionError::InsufficientApprovals, + ); storage.nonce.write(nonce + 1); @@ -113,20 +141,42 @@ impl MultiSignatureWallet for Contract { asset_id: contract_call_params.transfer_params.asset_id, gas: contract_call_params.forwarded_gas, }; - call_with_function_selector(target_contract_id, contract_call_params.function_selector, contract_call_params.calldata, contract_call_params.single_value_type_arg, call_params); + call_with_function_selector( + target_contract_id, + contract_call_params + .function_selector, + contract_call_params + .calldata, + contract_call_params + .single_value_type_arg, + call_params, + ); }, TransactionParameters::Transfer(transfer_params) => { - require(transfer_params.value.is_some(), ExecutionError::TransferRequiresAValue); + require( + transfer_params + .value + .is_some(), + ExecutionError::TransferRequiresAValue, + ); let value = transfer_params.value.unwrap(); - require(value <= this_balance(transfer_params.asset_id), ExecutionError::InsufficientAssetAmount); + require( + value <= this_balance(transfer_params.asset_id), + ExecutionError::InsufficientAssetAmount, + ); let transaction_hash = compute_hash(TypeToHash::Transaction(Transaction::new(contract_id(), nonce, target, transaction_parameters))); let approval_count = count_approvals(signatures, transaction_hash); - require(storage.threshold.read() <= approval_count, ExecutionError::InsufficientApprovals); + require( + storage + .threshold + .read() <= approval_count, + ExecutionError::InsufficientApprovals, + ); storage.nonce.write(nonce + 1); - transfer(value, transfer_params.asset_id, target); + transfer(target, transfer_params.asset_id, value); }, } @@ -140,13 +190,21 @@ impl MultiSignatureWallet for Contract { let nonce = storage.nonce.read(); require(nonce != 0, InitError::NotInitialized); require(threshold != 0, InitError::ThresholdCannotBeZero); - require(threshold <= storage.total_weight.read(), InitError::TotalWeightCannotBeLessThanThreshold); + require( + threshold <= storage + .total_weight + .read(), + InitError::TotalWeightCannotBeLessThanThreshold, + ); let transaction_hash = compute_hash(TypeToHash::Threshold(Threshold::new(contract_id(), nonce, threshold))); let approval_count = count_approvals(signatures, transaction_hash); let previous_threshold = storage.threshold.read(); - require(previous_threshold <= approval_count, ExecutionError::InsufficientApprovals); + require( + previous_threshold <= approval_count, + ExecutionError::InsufficientApprovals, + ); storage.nonce.write(nonce + 1); storage.threshold.write(threshold); @@ -166,17 +224,29 @@ impl MultiSignatureWallet for Contract { let approval_count = count_approvals(signatures, transaction_hash); let threshold = storage.threshold.read(); - require(threshold <= approval_count, ExecutionError::InsufficientApprovals); + require( + threshold <= approval_count, + ExecutionError::InsufficientApprovals, + ); let current_weight = storage.weighting.get(user.address).try_read().unwrap_or(0); if current_weight < user.weight { - storage.total_weight.write(storage.total_weight.read() + (user.weight - current_weight)); + storage + .total_weight + .write(storage.total_weight.read() + (user.weight - current_weight)); } else if user.weight < current_weight { - storage.total_weight.write(storage.total_weight.read() - (current_weight - user.weight)); + storage + .total_weight + .write(storage.total_weight.read() - (current_weight - user.weight)); } - require(threshold <= storage.total_weight.read(), InitError::TotalWeightCannotBeLessThanThreshold); + require( + threshold <= storage + .total_weight + .read(), + InitError::TotalWeightCannotBeLessThanThreshold, + ); storage.weighting.insert(user.address, user.weight); storage.nonce.write(nonce + 1); @@ -191,7 +261,7 @@ impl Info for Contract { storage.weighting.get(user).try_read().unwrap_or(0) } - fn balance(asset_id: ContractId) -> u64 { + fn balance(asset_id: AssetId) -> u64 { this_balance(asset_id) } @@ -247,7 +317,10 @@ fn count_approvals(signatures: Vec, transaction_hash: b256) -> u6 while index < signatures.len() { let signer = recover_signer(transaction_hash, signatures.get(index).unwrap()); - require(previous_signer < signer, ExecutionError::IncorrectSignerOrdering); + require( + previous_signer < signer, + ExecutionError::IncorrectSignerOrdering, + ); previous_signer = signer; approval_count += storage.weighting.get(signer).try_read().unwrap_or(0); diff --git a/multisig-wallet/project/contracts/multisig-contract/src/utils.sw b/multisig-wallet/project/contracts/multisig-contract/src/utils.sw index 5c8c8c6ac..1321fb19f 100644 --- a/multisig-wallet/project/contracts/multisig-contract/src/utils.sw +++ b/multisig-wallet/project/contracts/multisig-contract/src/utils.sw @@ -4,6 +4,8 @@ use std::{ call_frames::contract_id, ecr::ec_recover_address, hash::{ + Hash, + Hasher, keccak256, sha256, }, @@ -26,9 +28,9 @@ use ::data_structures::{ user::User, }; -const EIP191_INITIAL_BYTE = 0x19u8; -const EIP191_VERSION_BYTE = 0x45u8; -const ETHEREUM_PREFIX = "\x19Ethereum Signed Message:\n32"; +const EIP191_INITIAL_BYTE = 0x19; +const EIP191_VERSION_BYTE = 0x45; +// const ETHEREUM_PREFIX = "\x19Ethereum Signed Message:\n32"; // TODO: Replace the use of string literal with this constant when compiler bug is fixed. /// Takes a struct comprised of transaction data and hashes it. /// @@ -46,7 +48,7 @@ const ETHEREUM_PREFIX = "\x19Ethereum Signed Message:\n32"; pub fn compute_hash(type_to_hash: TypeToHash) -> b256 { match type_to_hash { TypeToHash::Threshold(threshold) => sha256(threshold), - TypeToHash::Transaction(transaction) => transaction.into_bytes().sha256(), + TypeToHash::Transaction(transaction) => sha256(transaction.into_bytes()), TypeToHash::Weight(weight) => sha256(weight), } } @@ -162,7 +164,9 @@ fn encode_and_pack_signed_data( /// /// * [(u64, u64, u64, u64)] - The [u64]s that comprised `value`. fn decompose(value: b256) -> (u64, u64, u64, u64) { - asm(r1: __addr_of(value)) { r1: (u64, u64, u64, u64) } + asm(r1: __addr_of(value)) { + r1: (u64, u64, u64, u64) + } } /// Applies the prefix "\x19Ethereum Signed Message:\n32" to a message hash. @@ -175,5 +179,5 @@ fn decompose(value: b256) -> (u64, u64, u64, u64) { /// /// * [b256]- The prefixed hash. fn ethereum_prefix(msg_hash: b256) -> b256 { - keccak256((ETHEREUM_PREFIX, msg_hash)) + keccak256(("\x19Ethereum Signed Message:\n32", msg_hash)) //// TODO: Replace the use of string literal with this constant when compiler bug is fixed. } diff --git a/multisig-wallet/project/contracts/multisig-contract/tests/functions/core/execute_transaction.rs b/multisig-wallet/project/contracts/multisig-contract/tests/functions/core/execute_transaction.rs index b7c22cf99..1d329e5ad 100644 --- a/multisig-wallet/project/contracts/multisig-contract/tests/functions/core/execute_transaction.rs +++ b/multisig-wallet/project/contracts/multisig-contract/tests/functions/core/execute_transaction.rs @@ -10,15 +10,12 @@ use crate::utils::{ }; use fuels::{ accounts::{fuel_crypto::Message, Account}, - prelude::{TxParameters, BASE_ASSET_ID}, + prelude::{TxPolicies, BASE_ASSET_ID}, }; mod success { use super::*; - use crate::utils::{ - interface::info::balance, - setup::{base_asset_contract_id, ExecuteTransactionEvent}, - }; + use crate::utils::{interface::info::balance, setup::ExecuteTransactionEvent}; mod transfer { @@ -41,15 +38,13 @@ mod success { deployer.contract.contract_id(), DEFAULT_TRANSFER_AMOUNT, BASE_ASSET_ID, - TxParameters::default(), + TxPolicies::default(), ) .await .unwrap(); // Check balances pre-transfer - let initial_contract_balance = balance(&deployer.contract, base_asset_contract_id()) - .await - .value; + let initial_contract_balance = balance(&deployer.contract, BASE_ASSET_ID).await.value; let initial_receiver_balance = deployer .wallet .provider() @@ -89,9 +84,7 @@ mod success { ); // check balances post-transfer - let final_contract_balance = balance(&deployer.contract, base_asset_contract_id()) - .await - .value; + let final_contract_balance = balance(&deployer.contract, BASE_ASSET_ID).await.value; let final_receiver_balance = deployer .wallet .provider() @@ -191,7 +184,7 @@ mod success { deployer.contract.contract_id(), DEFAULT_TRANSFER_AMOUNT, BASE_ASSET_ID, - TxParameters::default(), + TxPolicies::default(), ) .await .unwrap(); @@ -213,9 +206,7 @@ mod success { .value; // Check balances pre-call - let initial_multisig_balance = balance(&deployer.contract, base_asset_contract_id()) - .await - .value; + let initial_multisig_balance = balance(&deployer.contract, BASE_ASSET_ID).await.value; let initial_target_contract_balance = deployer .wallet .provider() @@ -265,9 +256,15 @@ mod success { .value; // Check balances post-call - let final_multisig_balance = balance(&deployer.contract, base_asset_contract_id()) + // Uncomment when https://github.com/FuelLabs/fuel-core/issues/1535 is resolved + // let final_multisig_balance = balance(&deployer.contract, BASE_ASSET_ID).await.value; + let final_multisig_balance = deployer + .wallet + .provider() + .unwrap() + .get_contract_asset_balance(deployer.contract.contract_id(), BASE_ASSET_ID) .await - .value; + .unwrap(); let final_target_contract_balance = deployer .wallet .provider() @@ -298,7 +295,7 @@ mod success { mod revert { use super::*; - use crate::utils::setup::{base_asset_contract_id, TransactionParameters, TransferParams}; + use crate::utils::setup::{TransactionParameters, TransferParams}; #[tokio::test] #[should_panic(expected = "NotInitialized")] @@ -346,7 +343,7 @@ mod revert { transfer_parameters(&deployer, initial_nonce); transaction.transaction_parameters = TransactionParameters::Transfer(TransferParams { - asset_id: base_asset_contract_id(), + asset_id: BASE_ASSET_ID, value: None, }); @@ -418,7 +415,7 @@ mod revert { deployer.contract.contract_id(), DEFAULT_TRANSFER_AMOUNT, BASE_ASSET_ID, - TxParameters::default(), + TxPolicies::default(), ) .await .unwrap(); @@ -462,7 +459,7 @@ mod revert { deployer.contract.contract_id(), DEFAULT_TRANSFER_AMOUNT, BASE_ASSET_ID, - TxParameters::default(), + TxPolicies::default(), ) .await .unwrap(); @@ -491,7 +488,10 @@ mod revert { mod call { use super::*; - use fuels::types::{Address, Identity}; + use fuels::{ + programs::call_utils::TxDependencyExtension, + types::{Address, Identity}, + }; #[tokio::test] #[should_panic(expected = "CanOnlyCallContracts")] @@ -532,7 +532,7 @@ mod revert { transaction.transaction_parameters, ) .append_variable_outputs(1) - .set_contract_ids(&[target_as_contract_id.clone()]) + .with_contract_ids(&[target_as_contract_id.clone()]) .call() .await .unwrap(); diff --git a/multisig-wallet/project/contracts/multisig-contract/tests/functions/info/balance.rs b/multisig-wallet/project/contracts/multisig-contract/tests/functions/info/balance.rs index 53b19bb1a..601436aad 100644 --- a/multisig-wallet/project/contracts/multisig-contract/tests/functions/info/balance.rs +++ b/multisig-wallet/project/contracts/multisig-contract/tests/functions/info/balance.rs @@ -2,20 +2,18 @@ mod success { use crate::utils::{ interface::info::balance, - setup::{base_asset_contract_id, setup_env, DEFAULT_TRANSFER_AMOUNT, VALID_SIGNER_PK}, + setup::{setup_env, DEFAULT_TRANSFER_AMOUNT, VALID_SIGNER_PK}, }; use fuels::{ accounts::Account, - prelude::{TxParameters, BASE_ASSET_ID}, + prelude::{TxPolicies, BASE_ASSET_ID}, }; #[tokio::test] async fn gets_balance() { let (_private_key, deployer, _non_owner) = setup_env(VALID_SIGNER_PK).await.unwrap(); - let initial_balance = balance(&deployer.contract, base_asset_contract_id()) - .await - .value; + let initial_balance = balance(&deployer.contract, BASE_ASSET_ID).await.value; deployer .wallet @@ -23,14 +21,12 @@ mod success { deployer.contract.contract_id(), DEFAULT_TRANSFER_AMOUNT, BASE_ASSET_ID, - TxParameters::default(), + TxPolicies::default(), ) .await .unwrap(); - let final_balance = balance(&deployer.contract, base_asset_contract_id()) - .await - .value; + let final_balance = balance(&deployer.contract, BASE_ASSET_ID).await.value; assert_eq!(initial_balance, 0); assert_eq!(final_balance, DEFAULT_TRANSFER_AMOUNT); diff --git a/multisig-wallet/project/contracts/multisig-contract/tests/functions/info/compute_hash.rs b/multisig-wallet/project/contracts/multisig-contract/tests/functions/info/compute_hash.rs index a92bd1750..c1e1fe25e 100644 --- a/multisig-wallet/project/contracts/multisig-contract/tests/functions/info/compute_hash.rs +++ b/multisig-wallet/project/contracts/multisig-contract/tests/functions/info/compute_hash.rs @@ -2,14 +2,14 @@ mod success { use crate::utils::{ interface::info::{compute_hash, nonce, threshold}, setup::{ - base_asset_contract_id, default_users, setup_env, ContractCallParams, Threshold, - Transaction, TransactionParameters, TransferParams, TypeToHash, Weight, - DEFAULT_TRANSFER_AMOUNT, VALID_SIGNER_PK, + default_users, setup_env, ContractCallParams, Threshold, Transaction, + TransactionParameters, TransferParams, TypeToHash, Weight, DEFAULT_TRANSFER_AMOUNT, + VALID_SIGNER_PK, }, }; use fuels::{ accounts::fuel_crypto::Hasher, - core::{codec::ABIEncoder, traits::Tokenizable}, + core::{codec::ABIEncoder, constants::BASE_ASSET_ID, traits::Tokenizable}, prelude::Bytes, types::{Bits256, Identity, Token}, }; @@ -55,7 +55,7 @@ mod success { let nonce = nonce(&deployer.contract).await.value; let target = Identity::Address(deployer.wallet.address().try_into().unwrap()); let transaction_parameters = TransactionParameters::Transfer(TransferParams { - asset_id: base_asset_contract_id(), + asset_id: BASE_ASSET_ID, value: Some(DEFAULT_TRANSFER_AMOUNT), }); @@ -106,7 +106,7 @@ mod success { function_selector: Bytes([1u8; 32].to_vec()), single_value_type_arg: false, transfer_params: TransferParams { - asset_id: base_asset_contract_id(), + asset_id: BASE_ASSET_ID, value: Some(DEFAULT_TRANSFER_AMOUNT), }, }); diff --git a/multisig-wallet/project/contracts/multisig-contract/tests/utils/interface/core.rs b/multisig-wallet/project/contracts/multisig-contract/tests/utils/interface/core.rs index 0844f5496..7aa4b200c 100644 --- a/multisig-wallet/project/contracts/multisig-contract/tests/utils/interface/core.rs +++ b/multisig-wallet/project/contracts/multisig-contract/tests/utils/interface/core.rs @@ -1,6 +1,8 @@ use crate::utils::setup::{MultiSig, SignatureInfo, TransactionParameters, User}; use fuels::{ - accounts::wallet::WalletUnlocked, programs::call_response::FuelCallResponse, types::Identity, + accounts::wallet::WalletUnlocked, + programs::{call_response::FuelCallResponse, call_utils::TxDependencyExtension}, + types::Identity, }; pub(crate) async fn constructor( @@ -23,7 +25,7 @@ pub(crate) async fn execute_transaction( match transaction_parameters { TransactionParameters::Call(_) => contract_method_call - .set_contract_ids(&[match target { + .with_contract_ids(&[match target { Identity::ContractId(contract_identifier) => contract_identifier.into(), _ => { panic!("Target must be of type Identity::ContractId"); diff --git a/multisig-wallet/project/contracts/multisig-contract/tests/utils/interface/info.rs b/multisig-wallet/project/contracts/multisig-contract/tests/utils/interface/info.rs index 6c5a541fb..b2c95a297 100644 --- a/multisig-wallet/project/contracts/multisig-contract/tests/utils/interface/info.rs +++ b/multisig-wallet/project/contracts/multisig-contract/tests/utils/interface/info.rs @@ -1,6 +1,6 @@ use fuels::{ - accounts::wallet::WalletUnlocked, prelude::ContractId, - programs::call_response::FuelCallResponse, types::Bits256, + accounts::wallet::WalletUnlocked, prelude::AssetId, programs::call_response::FuelCallResponse, + types::Bits256, }; use crate::utils::setup::{MultiSig, TypeToHash}; @@ -19,7 +19,7 @@ pub(crate) async fn approval_weight( pub(crate) async fn balance( contract: &MultiSig, - asset_id: ContractId, + asset_id: AssetId, ) -> FuelCallResponse { contract.methods().balance(asset_id).call().await.unwrap() } diff --git a/multisig-wallet/project/contracts/multisig-contract/tests/utils/setup.rs b/multisig-wallet/project/contracts/multisig-contract/tests/utils/setup.rs index 3984e1604..f1981253c 100644 --- a/multisig-wallet/project/contracts/multisig-contract/tests/utils/setup.rs +++ b/multisig-wallet/project/contracts/multisig-contract/tests/utils/setup.rs @@ -5,8 +5,8 @@ use fuels::{ }, core::codec::{calldata, fn_selector}, prelude::{ - abigen, setup_single_asset_coins, setup_test_provider, Address, Contract, ContractId, - Error, LoadConfiguration, StorageConfiguration, TxParameters, BASE_ASSET_ID, + abigen, setup_single_asset_coins, setup_test_provider, Address, Contract, Error, + LoadConfiguration, StorageConfiguration, TxPolicies, BASE_ASSET_ID, }, tx::Bytes32, types::{Bits256, Bytes, Identity, B512}, @@ -46,10 +46,6 @@ pub(crate) struct Caller { pub(crate) wallet: WalletUnlocked, } -pub(crate) fn base_asset_contract_id() -> ContractId { - ContractId::new(BASE_ASSET_ID.try_into().unwrap()) -} - pub(crate) fn default_users() -> Vec { let fuel_user_1 = User { address: Bits256::from_hex_str( @@ -72,13 +68,13 @@ pub(crate) async fn deploy_target_contract( deployer_wallet: WalletUnlocked, ) -> Result, Error> { let target_contract_storage_configuration = - StorageConfiguration::load_from(TARGET_CONTRACT_STORAGE_PATH); + StorageConfiguration::default().add_slot_overrides_from_file(TARGET_CONTRACT_STORAGE_PATH); let target_contract_configuration = LoadConfiguration::default() - .set_storage_configuration(target_contract_storage_configuration.unwrap()); + .with_storage_configuration(target_contract_storage_configuration.unwrap()); let target_contract_id = Contract::load_from(TARGET_CONTRACT_BINARY_PATH, target_contract_configuration) .unwrap() - .deploy(&deployer_wallet, TxParameters::default()) + .deploy(&deployer_wallet, TxPolicies::default()) .await?; Ok(TargetContract::new(target_contract_id, deployer_wallet)) @@ -96,7 +92,7 @@ fn eip_191_personal_sign_format(message_hash: Message) -> Message { } fn ethereum_prefix(formatted_message: Message) -> Message { - let prefix = r#"\x19Ethereum Signed Message:\n32"#; + let prefix = r"\x19Ethereum Signed Message:\n32"; let mut eth_prefix_data: Vec = Vec::new(); eth_prefix_data.append(&mut prefix.as_bytes().to_vec()); @@ -171,18 +167,20 @@ pub(crate) async fn setup_env(private_key: &str) -> Result<(SecretKey, Caller, C }) .collect::>(); - let (provider, _socket_addr) = setup_test_provider(all_coins, vec![], None, None).await; + let provider = setup_test_provider(all_coins, vec![], None, None) + .await + .unwrap(); deployer_wallet.set_provider(provider.clone()); non_owner_wallet.set_provider(provider); - let multisig_storage_configuration = - StorageConfiguration::load_from(MULTISIG_CONTRACT_STORAGE_PATH); + let multisig_storage_configuration = StorageConfiguration::default() + .add_slot_overrides_from_file(MULTISIG_CONTRACT_STORAGE_PATH); let multisig_configuration = LoadConfiguration::default() - .set_storage_configuration(multisig_storage_configuration.unwrap()); + .with_storage_configuration(multisig_storage_configuration.unwrap()); let multisig_contract_id = Contract::load_from(MULTISIG_CONTRACT_BINARY_PATH, multisig_configuration) .unwrap() - .deploy(&deployer_wallet, TxParameters::default()) + .deploy(&deployer_wallet, TxPolicies::default()) .await?; let deployer = Caller { @@ -210,7 +208,7 @@ pub(crate) fn transfer_parameters( nonce, target: receiver.clone(), transaction_parameters: TransactionParameters::Transfer(TransferParams { - asset_id: base_asset_contract_id(), + asset_id: BASE_ASSET_ID, value: Some(DEFAULT_TRANSFER_AMOUNT), }), }; @@ -225,15 +223,18 @@ pub(crate) fn call_parameters( with_value: bool, ) -> Transaction { let contract_call_params = ContractCallParams { - calldata: Bytes(calldata!( - Address::from(deployer.wallet.address()), - DEFAULT_CALLDATA_VALUE - )), + calldata: Bytes( + calldata!( + Address::from(deployer.wallet.address()), + DEFAULT_CALLDATA_VALUE + ) + .unwrap(), + ), forwarded_gas: DEFAULT_FORWARDED_GAS, function_selector: Bytes(fn_selector!(update_counter(Address, u64))), single_value_type_arg: false, transfer_params: TransferParams { - asset_id: base_asset_contract_id(), + asset_id: BASE_ASSET_ID, value: None, }, }; @@ -249,7 +250,7 @@ pub(crate) fn call_parameters( transaction.transaction_parameters = TransactionParameters::Call(ContractCallParams { function_selector: Bytes(fn_selector!(update_deposit(Address, u64))), transfer_params: TransferParams { - asset_id: base_asset_contract_id(), + asset_id: BASE_ASSET_ID, value: Some(DEFAULT_TRANSFER_AMOUNT), }, ..contract_call_params diff --git a/multisig-wallet/project/contracts/test-artifacts/target-contract/src/main.sw b/multisig-wallet/project/contracts/test-artifacts/target-contract/src/main.sw index 878d6e44f..8cbac3c9e 100644 --- a/multisig-wallet/project/contracts/test-artifacts/target-contract/src/main.sw +++ b/multisig-wallet/project/contracts/test-artifacts/target-contract/src/main.sw @@ -1,6 +1,6 @@ contract; -use std::context::msg_amount; +use std::{context::msg_amount, hash::Hash}; abi TargetContract { #[storage(write)] diff --git a/multisig-wallet/project/fuel-toolchain.toml b/multisig-wallet/project/fuel-toolchain.toml index d6c71fc3d..e75c0bb58 100644 --- a/multisig-wallet/project/fuel-toolchain.toml +++ b/multisig-wallet/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-07" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.2" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/name-registry/README.md b/name-registry/README.md index 614c249ad..dfd61a985 100644 --- a/name-registry/README.md +++ b/name-registry/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/name-registry/project/Cargo.lock b/name-registry/project/Cargo.lock index 1776b9ccb..001963195 100644 --- a/name-registry/project/Cargo.lock +++ b/name-registry/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -109,7 +115,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -119,7 +125,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -232,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -321,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -376,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -420,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -455,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -476,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets 0.48.1", ] [[package]] @@ -531,7 +534,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -561,7 +564,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -578,7 +581,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -597,7 +600,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -640,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -657,7 +660,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -790,6 +793,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -975,6 +1005,27 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", + "subtle", +] + [[package]] name = "either" version = "1.9.0" @@ -983,9 +1034,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1026,7 +1077,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1037,23 +1088,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.1" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", "libc", + "windows-sys 0.52.0", ] [[package]] @@ -1072,12 +1112,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1109,6 +1155,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1138,23 +1190,28 @@ dependencies = [ [[package]] name = "fuel-abi-types" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47d99a7aeb41cdabffa38418b00fd57b5571dc58ee5af606e845a088befecd36" +checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ + "itertools 0.10.5", "lazy_static", + "proc-macro2", + "quote", "regex", "serde", + "serde_json", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1162,9 +1219,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1178,6 +1235,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1187,7 +1245,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1200,22 +1259,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1224,9 +1283,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1236,8 +1295,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1247,9 +1307,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1260,21 +1320,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1284,36 +1344,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1328,15 +1391,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1344,12 +1407,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1358,21 +1422,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1381,17 +1445,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1405,55 +1471,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1463,10 +1547,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1474,31 +1559,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa0bee7463c6bee4920c60315492a25a3026f1a68d15570cef7b470b04ecdf9" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1508,17 +1602,15 @@ dependencies = [ "fuels-macros", "fuels-programs", "fuels-test-helpers", - "fuels-types", ] [[package]] name = "fuels-accounts" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dad265d8fc612aaef2a4c1fa8bb14d77541575a6d2de6d26e66acc94afdaae" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1528,148 +1620,121 @@ dependencies = [ "fuel-types", "fuel-vm", "fuels-core", - "fuels-types", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97e7b697abfac23b3505fa3136bb3e910ed664caa58d1efcb6e11644aa95d8aa" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d565f3c3c2974616984149c0440e03aadd600abe29e6268d41ebbdf21ae89915" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", + "bech32 0.9.1", + "chrono", + "fuel-abi-types", + "fuel-asm", + "fuel-core-chain-config", + "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", - "fuels-types", + "fuels-macros", "hex", - "itertools", - "sha2 0.10.7", + "itertools 0.12.0", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396b1007bf06f788b47bc710f53bce2cf5c74c32cf072baeae46abfbba1b5c33" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf6c51214d91115708cea3c7ea62e447623305b281c341f5ed6a18a14ab40f8e" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "fuels-types", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.42.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cac950d5fb1a182c897135e68337e750dd8a48e35dd3849a9fc2d602eb55035" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", - "fuels-types", + "fuels-core", "futures", "hex", "portpicker", "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", ] -[[package]] -name = "fuels-types" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e94e08cfab823b1a6ed2830fe22067dd7112f0fe5228bec23d4e95cefebcfe" -dependencies = [ - "bech32 0.9.1", - "chrono", - "fuel-abi-types", - "fuel-asm", - "fuel-core-chain-config", - "fuel-core-client", - "fuel-tx", - "fuel-types", - "fuels-macros", - "hex", - "itertools", - "proc-macro2", - "regex", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror", -] - [[package]] name = "funty" version = "2.0.0" @@ -1732,7 +1797,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -1785,7 +1850,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1864,6 +1929,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1909,6 +1979,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "http" version = "0.2.9" @@ -1966,7 +2045,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2143,7 +2222,7 @@ checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2155,6 +2234,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -2180,7 +2268,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2201,15 +2289,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] name = "lock_api" @@ -2241,9 +2335,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2271,13 +2365,13 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", + "wasi", + "windows-sys 0.48.0", ] [[package]] @@ -2298,16 +2392,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -2354,6 +2438,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.4" @@ -2398,11 +2494,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", - "windows-targets", + "windows-targets 0.48.1", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2455,14 +2557,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2480,6 +2582,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2506,6 +2614,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2529,9 +2646,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -2600,9 +2717,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2680,11 +2797,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2694,9 +2820,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2705,9 +2831,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "registry-contract" @@ -2815,15 +2941,15 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "9470c4bf8246c8daf25f9598dca807fb6510347b1e1cfa55749113850c79d88a" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -2931,7 +3057,33 @@ version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", ] [[package]] @@ -2949,7 +3101,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3039,35 +3191,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.175" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d25439cd7397d044e2748a6fe2432b5e85db703d6d097bd014b3c0ad1ebff0b" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.175" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b23f7ade6f110613c0d63858ddb8b94c1041f550eab58a16b371bdf2c9c80ab4" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.103" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3098,9 +3250,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3132,9 +3284,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3195,6 +3347,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.5.2" @@ -3279,9 +3441,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.27" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3294,6 +3456,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3311,46 +3485,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", + "redox_syscall 0.4.1", "rustix", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3397,11 +3560,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3410,9 +3572,9 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3427,13 +3589,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3540,6 +3702,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3579,7 +3742,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] [[package]] @@ -3654,6 +3817,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3696,6 +3865,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3717,12 +3895,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3750,7 +3922,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3784,7 +3956,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3845,13 +4017,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys 0.48.0", ] [[package]] @@ -3882,7 +4056,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", ] [[package]] @@ -3891,7 +4065,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.1", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -3900,13 +4083,28 @@ version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -3915,42 +4113,84 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" version = "0.5.0" @@ -3995,5 +4235,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.27", + "syn 2.0.39", ] diff --git a/name-registry/project/Forc.lock b/name-registry/project/Forc.lock index a0267bedf..264e0187c 100644 --- a/name-registry/project/Forc.lock +++ b/name-registry/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'registry-contract' -source = 'member' -dependencies = ['std'] +name = "registry-contract" +source = "member" +dependencies = ["std"] [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/name-registry/project/SPECIFICATION.md b/name-registry/project/SPECIFICATION.md index 285a762fa..53a85c11e 100644 --- a/name-registry/project/SPECIFICATION.md +++ b/name-registry/project/SPECIFICATION.md @@ -5,12 +5,12 @@ Table of Contents - [`register()`](#register) - [`extend()`](#extend) - [`set_asset()`](#set_asset) - - [`set_identity()`](#set_identity) - - [`set_owner()`](#set_owner) + - [`set_resolver()`](#set_resolver) + - [`transfer_name_ownership()`](#transfer_name_ownership) - [State Checks](#state-checks) - [`expiry()`](#expiry) - - [`identity()`](#identity) - - [`owner()`](#owner) + - [`resolver()`](#resolver) + - [`name_owner()`](#name_owner) - [`rate()`](#rate) # Overview @@ -49,11 +49,11 @@ Any user can extend the registration duration of a given name Allows an owner to add, remove and alter the cost of an asset that the registry accepts -### `set_identity()` +### `set_resolver()` Allows the owner to change the resolving identity -### `set_owner()` +### `transfer_name_ownership()` Allows the owner to transfer ownership of the registered name @@ -67,13 +67,13 @@ Returns the expiry timestamp of a given name 1. If the name has been registered -### `identity()` +### `resolver()` Returns the identity to which the given name resolves to 1. If the name has been registered -### `owner()` +### `name_owner()` Returns the owner of the given name diff --git a/name-registry/project/contracts/registry-contract/Cargo.toml b/name-registry/project/contracts/registry-contract/Cargo.toml index 3abd7fbd8..9560bc9e5 100644 --- a/name-registry/project/contracts/registry-contract/Cargo.toml +++ b/name-registry/project/contracts/registry-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.42.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/name-registry/project/contracts/registry-contract/src/errors.sw b/name-registry/project/contracts/registry-contract/src/errors.sw index ea4538d2d..bc7f41fa8 100644 --- a/name-registry/project/contracts/registry-contract/src/errors.sw +++ b/name-registry/project/contracts/registry-contract/src/errors.sw @@ -1,22 +1,24 @@ library; pub enum AssetError { - /// Emitted when the amount of asset sent is less than the fee + /// Emitted when the amount of asset sent is less than the fee. InsufficientPayment: (), - /// Emitted when an incorrect asset is sent for payment + /// Emitted when an incorrect asset is sent for payment. IncorrectAssetSent: (), } pub enum AuthorizationError { - /// Emitted when the caller is not the owner of a record or the registry + /// Emitted when the caller is not the owner of a record or the registry. SenderNotOwner: (), } pub enum RegistrationValidityError { - /// Emitted when interacting with a name that has never been registered - NameNotRegistered: (), - /// Emitted when interacting with a name that has expired + /// Emitted when interacting with a name that has expired. NameExpired: (), - /// Emitted when attempting to register a name that has not expired + /// Emitted when interacting with a name that has never been registered. + NameNotRegistered: (), + /// Emitted when attempting to register a name that has not expired. NameNotExpired: (), + /// Emitted when the name length is less than 3 bytes. + NameTooShort: (), } diff --git a/name-registry/project/contracts/registry-contract/src/events.sw b/name-registry/project/contracts/registry-contract/src/events.sw index 64cb73d21..b57a692c6 100644 --- a/name-registry/project/contracts/registry-contract/src/events.sw +++ b/name-registry/project/contracts/registry-contract/src/events.sw @@ -1,9 +1,11 @@ library; +use std::string::String; + /// Event for when an asset is set for payment pub struct AssetRateEvent { /// Asset used for payment - id: ContractId, + asset: AssetId, /// Rate of cost for asset rate: Option, } @@ -11,7 +13,7 @@ pub struct AssetRateEvent { /// The event for when a name has its resolving identity changed pub struct IdentityChangedEvent { /// The name which has its identity being changed - name: str[8], + name: String, /// The new identity which the name will resolve to new_identity: Identity, /// The previous identity which the name resolved to @@ -23,7 +25,7 @@ pub struct NameRegisteredEvent { /// The new expiry for the name expiry: u64, /// The name being registered - name: str[8], + name: String, /// The new owner of the name owner: Identity, /// The identity to which the name resolves to @@ -33,7 +35,7 @@ pub struct NameRegisteredEvent { /// The event for when the owner of a name changes pub struct OwnerChangedEvent { /// The name of which the owner is being changed - name: str[8], + name: String, /// The new owner of the name new_owner: Identity, /// The previous owner of the name @@ -45,7 +47,7 @@ pub struct RegistrationExtendedEvent { /// The duration by which the expiry is extended duration: u64, /// The name in subject - name: str[8], + name: String, /// The new expiry of the name new_expiry: u64, } diff --git a/name-registry/project/contracts/registry-contract/src/interface.sw b/name-registry/project/contracts/registry-contract/src/interface.sw index e549a448c..959d90e92 100644 --- a/name-registry/project/contracts/registry-contract/src/interface.sw +++ b/name-registry/project/contracts/registry-contract/src/interface.sw @@ -1,173 +1,180 @@ library; use ::errors::RegistrationValidityError; +use std::string::String; abi NameRegistry { - /// Extends the duration of ownership for the name + /// Extends the duration of ownership for the name. /// /// # Arguments /// - /// * `name`: [str[8]] - The name to extend the duration of - /// * `duration`: [u64] - The duration to extend by - /// * `payment_asset`: [ContractId] - The asset used to pay for the registration + /// * `name`: [String] - The name to extend the duration of. + /// * `duration`: [u64] - The duration to extend by. /// /// # Reverts /// - /// * If the name is not registered - /// * If the payment is insufficient to cover the cost for the duration - /// * If the incorrect asset is sent + /// * If the name is not registered. + /// * If the payment is insufficient to cover the cost for the duration. + /// * If the incorrect asset is sent. /// /// ### Number of Storage Accesses /// /// * Reads: `2` /// * Writes: `1` #[payable, storage(read, write)] - fn extend(name: str[8], duration: u64, payment_asset: ContractId); + fn extend(name: String, duration: u64); /// Adds an entry into the registry for the given name. /// - /// Assigns the name to the given owner, and resolves the name to the given identity when queried + /// # Additional Information + /// + /// Assigns the name to the given owner, and resolves the name to the given identity when queried. /// /// # Arguments /// - /// * `name`: [str[8]] - The name to register - /// * `duration`: [u64] - The duration to register for - /// * `owner`: [Identity] - The owner of the name, which will be able to control the ownership and the resolving identity of the name - /// * `identity`: [Identity] - The identity to which the name would resolve to when queried - /// * `payment_asset`: [ContractId] - The asset used to pay for the registration + /// * `name`: [String] - The name to register. + /// * `duration`: [u64] - The duration to register for. + /// * `owner`: [Identity] - The owner of the name, which will be able to control the ownership and the resolving identity of the name. + /// * `identity`: [Identity] - The identity to which the name would resolve to when queried. /// /// # Reverts /// - /// * If the name is in the registry and it has not expired - /// * If the payment is insufficient to cover the cost for the duration - /// * If the incorrect asset is sent + /// * If the name is less than 3 bytes long. + /// * If the name is in the registry and it has not expired. + /// * If the payment is insufficient to cover the cost for the duration. + /// * If the incorrect asset is sent. /// /// ### Number of Storage Accesses /// /// * Reads: `2` /// * Writes: `1` #[payable, storage(read, write)] - fn register(name: str[8], duration: u64, owner: Identity, identity: Identity, payment_asset: ContractId); + fn register( + name: String, + duration: u64, + owner: Identity, + identity: Identity, + ); - /// Adds a new asset as a method of payment + /// Adds a new asset as a method of payment. /// /// # Arguments /// - /// * `id`: [ContractId] - Asset for payment - /// * `rate`: [Option] - Rate of cost for asset + /// * `asset`: [AssetId] - Asset for payment. + /// * `rate`: [Option] - Rate of cost for asset. /// /// # Reverts /// - /// * When called by non-owner + /// * When called by non-owner. /// /// ### Number of Storage Accesses /// /// * Writes: `1` #[storage(write)] - fn set_asset(id: ContractId, rate: Option); + fn set_asset(asset: AssetId, rate: Option); - /// Sets the identity to which the name will resolve to + /// Sets the identity to which the name will resolve to. /// /// # Arguments /// - /// * `name`: [str[8]] - The name to set the identity for - /// * `identity`: [Identity] - The identity which the name will resolve to + /// * `name`: [String] - The name to set the identity for. + /// * `identity`: [Identity] - The identity which the name will resolve to. /// /// # Reverts /// - /// * If the name is not registered - /// * If the registration has expired - /// * If the sender is not the owner of the name + /// * If the name is not registered. + /// * If the registration has expired. + /// * If the sender is not the owner of the name. /// /// ### Number of Storage Accesses /// /// * Reads: `1` /// * Writes: `1` #[storage(read, write)] - fn set_identity(name: str[8], identity: Identity); + fn set_resolver(name: String, identity: Identity); - /// Changes the owner of the name + /// Changes the owner of the name. /// /// # Arguments /// - /// * `name`: [str[8]] - The name to transfer the ownership of - /// * `new_owner`: [Identity] - The new owner of the name + /// * `name`: [String] - The name to transfer the ownership of. + /// * `new_owner`: [Identity] - The new owner of the name. /// /// # Reverts /// - /// * If the name is not registered - /// * If the registration has expired - /// * If the sender is not the owner of the name + /// * If the name is not registered. + /// * If the registration has expired. + /// * If the sender is not the owner of the name. /// /// ### Number of Storage Accesses /// /// * Reads: `1` /// * Writes: `1` #[storage(read, write)] - fn set_owner(name: str[8], new_owner: Identity); + fn transfer_name_ownership(name: String, new_owner: Identity); } abi Info { - /// Returns the expiry timestamp of the given name + /// Returns the expiry timestamp of the given name. /// /// # Arguments /// - /// * `name`: [str[8]] - The name to extend the duration of + /// * `name`: [String] - The name to extend the duration of. /// /// # Reverts /// - /// * If the name is not registered - /// * If the registration has expired + /// * If the name is not registered. + /// * If the registration has expired. /// /// ### Number of Storage Accesses /// /// * Reads: `1` #[storage(read)] - fn expiry(name: str[8]) -> Result; + fn expiry(name: String) -> Result; - /// Returns the identity which the name resolves to + /// Returns the identity which the name resolves to. /// /// # Arguments /// - /// * `name`: [str[8]] - The name to which resolve from + /// * `name`: [String] - The name to which resolve from. /// /// # Reverts /// - /// * If the name is not registered - /// * If the registration has expired + /// * If the name is not registered. + /// * If the registration has expired. /// /// ### Number of Storage Accesses /// /// * Reads: `1` #[storage(read)] - fn identity(name: str[8]) -> Result; + fn resolver(name: String) -> Result; - /// Returns the owner of the name + /// Returns the owner of the name. /// /// # Arguments /// - /// * `name`: [str[8]] - The name to which check + /// * `name`: [String] - The name to which check. /// /// # Reverts /// - /// * If the name is not registered - /// * If the registration has expired + /// * If the name is not registered. + /// * If the registration has expired. /// /// ### Number of Storage Accesses /// /// * Reads: `1` #[storage(read)] - fn owner(name: str[8]) -> Result; + fn name_owner(name: String) -> Result; - /// Returns the cost per interval for the asset + /// Returns the cost per interval for the asset. /// /// # Arguments /// - /// * `id`: [ContractId] - Asset for payment + /// * `asset`: [AssetId] - Asset for payment. /// /// ### Number of Storage Accesses /// /// * Reads: `1` #[storage(read)] - fn rate(id: ContractId) -> Option; + fn rate(asset: AssetId) -> Option; } diff --git a/name-registry/project/contracts/registry-contract/src/main.sw b/name-registry/project/contracts/registry-contract/src/main.sw index 3c70f9d4c..d4874568c 100644 --- a/name-registry/project/contracts/registry-contract/src/main.sw +++ b/name-registry/project/contracts/registry-contract/src/main.sw @@ -16,11 +16,16 @@ use ::events::{ }; use ::interface::{Info, NameRegistry}; use std::{ - auth::msg_sender, block::timestamp, call_frames::msg_asset_id, constants::ZERO_B256, context::msg_amount, + hash::{ + Hash, + sha256, + }, + storage::storage_string::*, + string::String, }; configurable { @@ -30,28 +35,39 @@ configurable { storage { /// Cost rate per asset - assets: StorageMap> = StorageMap {}, + assets: StorageMap> = StorageMap {}, /// A mapping of names to records - names: StorageMap = StorageMap {}, + names: StorageMap = StorageMap {}, } -// TODO: Change the static 8 length str with a dynamic string when possible impl NameRegistry for Contract { #[payable] #[storage(read, write)] - fn extend(name: str[8], duration: u64, payment_asset: ContractId) { - let record = storage.names.get(name).try_read(); - require(record.is_some(), RegistrationValidityError::NameNotRegistered); + fn extend(name: String, duration: u64) { + // Get record + let name_hash = sha256(name); + let record = storage.names.get(name_hash).try_read(); + require( + record + .is_some(), + RegistrationValidityError::NameNotRegistered, + ); + // Verify payment + let payment_asset = msg_asset_id(); let rate = storage.assets.get(payment_asset).try_read(); + require(rate.unwrap().is_some(), AssetError::IncorrectAssetSent); + require( + (duration / 100) * rate + .unwrap() + .unwrap() <= msg_amount(), + AssetError::InsufficientPayment, + ); - require(msg_asset_id() == payment_asset && rate.unwrap().is_some(), AssetError::IncorrectAssetSent); - require((duration / 100) * rate.unwrap().unwrap() <= msg_amount(), AssetError::InsufficientPayment); - + // Update stored record let mut record = record.unwrap(); record.expiry = record.expiry + duration; - - storage.names.insert(name, record); + storage.names.insert(name_hash, record); log(RegistrationExtendedEvent { duration, @@ -63,25 +79,44 @@ impl NameRegistry for Contract { #[payable] #[storage(read, write)] fn register( - name: str[8], + name: String, duration: u64, owner: Identity, identity: Identity, - payment_asset: ContractId, ) { - let record = storage.names.get(name).try_read(); + require( + name + .as_bytes() + .len() >= 3, + RegistrationValidityError::NameTooShort, + ); + + // Get record + let name_hash = sha256(name); + let record = storage.names.get(name_hash).try_read(); if record.is_some() { - require(timestamp() > record.unwrap().expiry, RegistrationValidityError::NameNotExpired); + require( + timestamp() > record + .unwrap() + .expiry, + RegistrationValidityError::NameNotExpired, + ); } + // Verify payment + let payment_asset = msg_asset_id(); let rate = storage.assets.get(payment_asset).try_read(); + require(rate.unwrap().is_some(), AssetError::IncorrectAssetSent); + require( + (duration / 100) * rate + .unwrap() + .unwrap() <= msg_amount(), + AssetError::InsufficientPayment, + ); - require(msg_asset_id() == payment_asset && rate.unwrap().is_some(), AssetError::IncorrectAssetSent); - require((duration / 100) * rate.unwrap().unwrap() <= msg_amount(), AssetError::InsufficientPayment); - + // Store record let record = Record::new(timestamp() + duration, identity, owner); - - storage.names.insert(name, record); + storage.names.insert(name_hash, record); log(NameRegisteredEvent { expiry: record.expiry, @@ -92,23 +127,44 @@ impl NameRegistry for Contract { } #[storage(write)] - fn set_asset(id: ContractId, rate: Option) { - require(msg_sender().unwrap() == OWNER, AuthorizationError::SenderNotOwner); - storage.assets.insert(id, rate); - log(AssetRateEvent { id, rate }); + fn set_asset(asset: AssetId, rate: Option) { + require( + msg_sender() + .unwrap() == OWNER, + AuthorizationError::SenderNotOwner, + ); + storage.assets.insert(asset, rate); + log(AssetRateEvent { asset, rate }); } #[storage(read, write)] - fn set_identity(name: str[8], identity: Identity) { - let record = storage.names.get(name).try_read(); - require(record.is_some(), RegistrationValidityError::NameNotRegistered); + fn set_resolver(name: String, identity: Identity) { + // Get record + let name_hash = sha256(name); + let record = storage.names.get(name_hash).try_read(); + require( + record + .is_some(), + RegistrationValidityError::NameNotRegistered, + ); + + // Verify record let previous_record = record.unwrap(); - require(timestamp() < previous_record.expiry, RegistrationValidityError::NameExpired); - require(previous_record.owner == msg_sender().unwrap(), AuthorizationError::SenderNotOwner); + require( + timestamp() < previous_record + .expiry, + RegistrationValidityError::NameExpired, + ); + require( + previous_record + .owner == msg_sender() + .unwrap(), + AuthorizationError::SenderNotOwner, + ); + // Store updated record let new_record = Record::new(previous_record.expiry, identity, previous_record.owner); - - storage.names.insert(name, new_record); + storage.names.insert(name_hash, new_record); log(IdentityChangedEvent { name, @@ -118,16 +174,33 @@ impl NameRegistry for Contract { } #[storage(read, write)] - fn set_owner(name: str[8], owner: Identity) { - let record = storage.names.get(name).try_read(); - require(record.is_some(), RegistrationValidityError::NameNotRegistered); + fn transfer_name_ownership(name: String, owner: Identity) { + // Get record + let name_hash = sha256(name); + let record = storage.names.get(name_hash).try_read(); + require( + record + .is_some(), + RegistrationValidityError::NameNotRegistered, + ); + + // Verify record let previous_record = record.unwrap(); - require(timestamp() < previous_record.expiry, RegistrationValidityError::NameExpired); - require(previous_record.owner == msg_sender().unwrap(), AuthorizationError::SenderNotOwner); + require( + timestamp() < previous_record + .expiry, + RegistrationValidityError::NameExpired, + ); + require( + previous_record + .owner == msg_sender() + .unwrap(), + AuthorizationError::SenderNotOwner, + ); + // Store updated record let new_record = Record::new(previous_record.expiry, previous_record.identity, owner); - - storage.names.insert(name, new_record); + storage.names.insert(name_hash, new_record); log(OwnerChangedEvent { name, @@ -139,49 +212,52 @@ impl NameRegistry for Contract { impl Info for Contract { #[storage(read)] - fn expiry(name: str[8]) -> Result { - match storage.names.get(name).try_read() { - Option::Some(record) => { + fn expiry(name: String) -> Result { + let name_hash = sha256(name); + match storage.names.get(name_hash).try_read() { + Some(record) => { match timestamp() < record.expiry { - true => Result::Ok(record.expiry), - false => Result::Err(RegistrationValidityError::NameExpired), + true => Ok(record.expiry), + false => Err(RegistrationValidityError::NameExpired), } }, - Option::None => Result::Err(RegistrationValidityError::NameNotRegistered), + None => Err(RegistrationValidityError::NameNotRegistered), } } #[storage(read)] - fn identity(name: str[8]) -> Result { - match storage.names.get(name).try_read() { - Option::Some(record) => { + fn resolver(name: String) -> Result { + let name_hash = sha256(name); + match storage.names.get(name_hash).try_read() { + Some(record) => { match timestamp() < record.expiry { - true => Result::Ok(record.identity), - false => Result::Err(RegistrationValidityError::NameExpired), + true => Ok(record.identity), + false => Err(RegistrationValidityError::NameExpired), } }, - Option::None => Result::Err(RegistrationValidityError::NameNotRegistered), + None => Err(RegistrationValidityError::NameNotRegistered), } } #[storage(read)] - fn owner(name: str[8]) -> Result { - match storage.names.get(name).try_read() { - Option::Some(record) => { + fn name_owner(name: String) -> Result { + let name_hash = sha256(name); + match storage.names.get(name_hash).try_read() { + Some(record) => { match timestamp() < record.expiry { - true => Result::Ok(record.owner), - false => Result::Err(RegistrationValidityError::NameExpired), + true => Ok(record.owner), + false => Err(RegistrationValidityError::NameExpired), } }, - Option::None => Result::Err(RegistrationValidityError::NameNotRegistered), + None => Err(RegistrationValidityError::NameNotRegistered), } } #[storage(read)] - fn rate(id: ContractId) -> Option { - match storage.assets.get(id).try_read() { - Option::Some(rate) => rate, - Option::None => Option::None, + fn rate(asset: AssetId) -> Option { + match storage.assets.get(asset).try_read() { + Some(rate) => rate, + None => None, } } } diff --git a/name-registry/project/contracts/registry-contract/tests/functions/core/extend.rs b/name-registry/project/contracts/registry-contract/tests/functions/core/extend.rs index 65ecf514b..824d90ff4 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/core/extend.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/core/extend.rs @@ -2,41 +2,46 @@ use crate::utils::{ interface::core::{register, set_asset}, setup::{setup, EXTEND_DURATION, REGISTER_DURATION}, }; -use fuels::prelude::ContractId; +use fuels::prelude::AssetId; mod success { use super::*; use crate::utils::{ interface::{core::extend_with_time, info::expiry}, - setup::{string_to_ascii, RegistrationExtendedEvent}, + setup::RegistrationExtendedEvent, }; #[tokio::test] #[ignore] async fn can_extend() { let (instance, acc, _wallet2) = setup().await; - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc.name, + acc.name.clone(), REGISTER_DURATION, &acc.identity(), &acc.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; - let previous_expiry = expiry(&instance, &acc.name).await; + let previous_expiry = expiry(&instance, acc.name.clone()).await; // TODO: Breaking changes by SDK prevent retention of time - let (extend_response, latest_block_time) = - extend_with_time(&instance, &acc.name, EXTEND_DURATION, ContractId::zeroed()).await; + let (extend_response, latest_block_time) = extend_with_time( + &instance, + acc.name.clone(), + EXTEND_DURATION, + AssetId::default(), + ) + .await; let log = extend_response .decode_logs_with_type::() .unwrap(); - let new_expiry = expiry(&instance, &acc.name).await; + let new_expiry = expiry(&instance, acc.name.clone()).await; assert_eq!( previous_expiry.value.unwrap() + EXTEND_DURATION, @@ -46,7 +51,7 @@ mod success { log, vec![RegistrationExtendedEvent { duration: EXTEND_DURATION, - name: string_to_ascii(&acc.name), + name: acc.name.clone(), new_expiry: latest_block_time + REGISTER_DURATION + EXTEND_DURATION }] ); @@ -63,26 +68,32 @@ mod revert { #[should_panic(expected = "InsufficientPayment")] async fn cant_extend_insufficient_payment() { let (instance, acc, _wallet2) = setup().await; - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc.name, + acc.name.clone(), REGISTER_DURATION, &acc.identity(), &acc.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; - extend(&instance, &acc.name, u64::MAX, ContractId::zeroed()).await; + extend(&instance, acc.name.clone(), u64::MAX, AssetId::default()).await; } #[tokio::test] #[should_panic(expected = "NameNotRegistered")] async fn cant_extend_name_not_registered() { let (instance, acc, _wallet2) = setup().await; - set_asset(&instance, ContractId::zeroed(), Some(1)).await; - extend(&instance, &acc.name, EXTEND_DURATION, ContractId::zeroed()).await; + set_asset(&instance, AssetId::default(), Some(1)).await; + extend( + &instance, + acc.name.clone(), + EXTEND_DURATION, + AssetId::default(), + ) + .await; } } diff --git a/name-registry/project/contracts/registry-contract/tests/functions/core/register.rs b/name-registry/project/contracts/registry-contract/tests/functions/core/register.rs index f8766a2a2..72921a637 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/core/register.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/core/register.rs @@ -2,29 +2,26 @@ use crate::utils::{ interface::core::set_asset, setup::{setup, REGISTER_DURATION}, }; -use fuels::prelude::ContractId; +use fuels::prelude::AssetId; mod success { use super::*; - use crate::utils::{ - interface::core::register_with_time, - setup::{string_to_ascii, NameRegisteredEvent}, - }; + use crate::utils::{interface::core::register_with_time, setup::NameRegisteredEvent}; #[tokio::test] #[ignore] async fn can_register() { let (instance, acc, _wallet2) = setup().await; - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; // TODO: Breaking changes by SDK prevent retention of time let (response, latest_block_time) = register_with_time( &instance, - &acc.name, + acc.name.clone(), REGISTER_DURATION, &acc.identity(), &acc.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; @@ -36,7 +33,7 @@ mod success { log, vec![NameRegisteredEvent { expiry: latest_block_time + REGISTER_DURATION, - name: string_to_ascii(&acc.name), + name: acc.name.clone(), owner: acc.identity(), identity: acc.identity() }] @@ -54,24 +51,24 @@ mod revert { #[should_panic(expected = "NameNotExpired")] async fn cant_repeat_register() { let (instance, acc, _wallet2) = setup().await; - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc.name, + acc.name.clone(), REGISTER_DURATION, &acc.identity(), &acc.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; register( &instance, - &acc.name, + acc.name.clone(), REGISTER_DURATION, &acc.identity(), &acc.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; } @@ -80,15 +77,15 @@ mod revert { #[should_panic(expected = "InsufficientPayment")] async fn cant_register_max_duration() { let (instance, acc, _wallet2) = setup().await; - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc.name, + acc.name.clone(), u64::MAX, &acc.identity(), &acc.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; } diff --git a/name-registry/project/contracts/registry-contract/tests/functions/core/set_asset.rs b/name-registry/project/contracts/registry-contract/tests/functions/core/set_asset.rs index 972aeddc0..7e379cbac 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/core/set_asset.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/core/set_asset.rs @@ -1,4 +1,5 @@ use crate::utils::{interface::core::set_asset, setup::setup}; +use fuels::prelude::AssetId; mod success { use super::*; @@ -8,12 +9,17 @@ mod success { async fn sets_asset() { let (instance, _account, _wallet2) = setup().await; let rate = Some(5); - let response = set_asset(&instance, instance.contract_id().into(), rate).await; + let response = set_asset( + &instance, + AssetId::new(*instance.contract_id().hash()), + rate, + ) + .await; let log = response.decode_logs_with_type::().unwrap(); assert_eq!( log, vec![AssetRateEvent { - id: instance.contract_id().into(), + asset: AssetId::new(*instance.contract_id().hash()), rate, }] ) @@ -30,7 +36,7 @@ mod revert { let rate = Some(5); set_asset( &instance.with_account(wallet2).unwrap(), - instance.contract_id().into(), + AssetId::new(*instance.contract_id().hash()), rate, ) .await; diff --git a/name-registry/project/contracts/registry-contract/tests/functions/core/set_identity.rs b/name-registry/project/contracts/registry-contract/tests/functions/core/set_identity.rs index c5be869fb..4ab204b8d 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/core/set_identity.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/core/set_identity.rs @@ -3,54 +3,52 @@ use crate::utils::{ setup::{setup, REGISTER_DURATION}, }; use fuels::{ - prelude::{Address, ContractId}, + prelude::{Address, AssetId}, types::Identity, }; mod success { use super::*; - use crate::utils::{ - interface::info::identity, - setup::{string_to_ascii, IdentityChangedEvent}, - }; + use crate::utils::interface::info::identity; #[tokio::test] async fn can_set_identity() { let (instance, acc1, wallet2) = setup().await; let wallet_identity2 = Identity::Address(Address::from(wallet2.address())); - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc1.name, + acc1.name.clone(), REGISTER_DURATION, &acc1.identity(), &acc1.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; - let previous_identity = identity(&instance, &acc1.name).await; + let previous_identity = identity(&instance, acc1.name.clone()).await; assert_eq!(previous_identity.value.unwrap(), acc1.identity(),); - let response = set_identity(&instance, &acc1.name, wallet_identity2.clone()).await; + let _response = set_identity(&instance, acc1.name.clone(), wallet_identity2.clone()).await; - let new_identity = identity(&instance, &acc1.name).await; + let new_identity = identity(&instance, acc1.name.clone()).await; assert_eq!(new_identity.value.unwrap(), wallet_identity2); - let log = response - .decode_logs_with_type::() - .unwrap(); - assert_eq!( - log, - vec![IdentityChangedEvent { - name: string_to_ascii(&acc1.name), - new_identity: wallet_identity2, - previous_identity: acc1.identity(), - }] - ) + // TODO: Enable when nested heap types are supported. + // let log = response + // .decode_logs_with_type::() + // .unwrap(); + // assert_eq!( + // log, + // vec![IdentityChangedEvent { + // name: acc1.name.clone(), + // new_identity: wallet_identity2, + // previous_identity: acc1.identity(), + // }] + // ) } } @@ -65,21 +63,21 @@ mod revert { async fn cant_set_identity() { let (instance, acc1, wallet2) = setup().await; let wallet_identity2 = Identity::Address(Address::from(wallet2.address())); - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc1.name, + acc1.name.clone(), REGISTER_DURATION, &acc1.identity(), &acc1.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; set_identity( &instance.with_account(wallet2).unwrap(), - &acc1.name, + acc1.name.clone(), wallet_identity2.clone(), ) .await; diff --git a/name-registry/project/contracts/registry-contract/tests/functions/core/set_owner.rs b/name-registry/project/contracts/registry-contract/tests/functions/core/set_owner.rs index 3640b34c9..1af32a71e 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/core/set_owner.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/core/set_owner.rs @@ -3,53 +3,51 @@ use crate::utils::{ setup::{setup, REGISTER_DURATION}, }; use fuels::{ - prelude::{Address, ContractId}, + prelude::{Address, AssetId}, types::Identity, }; mod success { use super::*; - use crate::utils::{ - interface::info::owner, - setup::{string_to_ascii, OwnerChangedEvent}, - }; + use crate::utils::interface::info::owner; #[tokio::test] async fn can_set_owner() { let (instance, acc1, wallet2) = setup().await; let wallet_identity2 = Identity::Address(Address::from(wallet2.address())); - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc1.name, + acc1.name.clone(), REGISTER_DURATION, &acc1.identity(), &acc1.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; - let previous_owner = owner(&instance, &acc1.name).await; + let previous_owner = owner(&instance, acc1.name.clone()).await; assert_eq!(previous_owner.value.unwrap(), acc1.identity()); - let response = set_owner(&instance, &acc1.name, wallet_identity2.clone()).await; - let new_owner = owner(&instance, &acc1.name).await; + let _response = set_owner(&instance, acc1.name.clone(), wallet_identity2.clone()).await; + let new_owner = owner(&instance, acc1.name.clone()).await; assert_eq!(new_owner.value.unwrap(), wallet_identity2); - let log = response - .decode_logs_with_type::() - .unwrap(); - assert_eq!( - log, - vec![OwnerChangedEvent { - name: string_to_ascii(&acc1.name), - new_owner: wallet_identity2, - previous_owner: acc1.identity() - }] - ) + // TODO: Enable when nested heap types are supported. + // let log = response + // .decode_logs_with_type::() + // .unwrap(); + // assert_eq!( + // log, + // vec![OwnerChangedEvent { + // name: acc1.name.clone(), + // new_owner: wallet_identity2, + // previous_owner: acc1.identity() + // }] + // ) } } @@ -63,21 +61,21 @@ mod revert { async fn cant_set_owner() { let (instance, acc1, wallet2) = setup().await; let wallet_identity2 = Identity::Address(Address::from(wallet2.address())); - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc1.name, + acc1.name.clone(), REGISTER_DURATION, &acc1.identity(), &acc1.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; set_owner( &instance.with_account(wallet2).unwrap(), - &acc1.name, + acc1.name.clone(), wallet_identity2.clone(), ) .await; diff --git a/name-registry/project/contracts/registry-contract/tests/functions/info/expiry.rs b/name-registry/project/contracts/registry-contract/tests/functions/info/expiry.rs index 3cc1c3927..6ba8b47b9 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/info/expiry.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/info/expiry.rs @@ -6,27 +6,33 @@ mod success { interface::core::{extend, register, set_asset}, setup::{EXTEND_DURATION, REGISTER_DURATION}, }; - use fuels::prelude::ContractId; + use fuels::prelude::AssetId; #[tokio::test] async fn can_get_expiry() { let (instance, acc, _wallet2) = setup().await; - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc.name, + acc.name.clone(), REGISTER_DURATION, &acc.identity(), &acc.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; - let previous_expiry_response = expiry(&instance, &acc.name).await; + let previous_expiry_response = expiry(&instance, acc.name.clone()).await; - extend(&instance, &acc.name, EXTEND_DURATION, ContractId::zeroed()).await; + extend( + &instance, + acc.name.clone(), + EXTEND_DURATION, + AssetId::default(), + ) + .await; - let new_expiry_response = expiry(&instance, &acc.name).await; + let new_expiry_response = expiry(&instance, acc.name.clone()).await; assert_eq!( previous_expiry_response.value.unwrap() + EXTEND_DURATION, @@ -43,7 +49,7 @@ mod revert { async fn cant_get_expiry() { let (instance, acc, _wallet2) = setup().await; - let expiry = expiry(&instance, &acc.name).await; + let expiry = expiry(&instance, acc.name.clone()).await; expiry.value.unwrap(); } } diff --git a/name-registry/project/contracts/registry-contract/tests/functions/info/identity.rs b/name-registry/project/contracts/registry-contract/tests/functions/info/identity.rs index 9434b7d52..4dded6a98 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/info/identity.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/info/identity.rs @@ -7,7 +7,7 @@ mod success { setup::REGISTER_DURATION, }; use fuels::{ - prelude::{Address, ContractId}, + prelude::{Address, AssetId}, types::Identity, }; @@ -15,23 +15,23 @@ mod success { async fn can_get_identity() { let (instance, acc1, wallet2) = setup().await; let wallet_identity2 = Identity::Address(Address::from(wallet2.address())); - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc1.name, + acc1.name.clone(), REGISTER_DURATION, &acc1.identity(), &acc1.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; - let previous_identity = identity(&instance, &acc1.name).await; + let previous_identity = identity(&instance, acc1.name.clone()).await; - set_identity(&instance, &acc1.name, wallet_identity2.clone()).await; + set_identity(&instance, acc1.name.clone(), wallet_identity2.clone()).await; - let new_identity = identity(&instance, &acc1.name).await; + let new_identity = identity(&instance, acc1.name.clone()).await; assert_eq!(previous_identity.value.unwrap(), acc1.identity()); assert_eq!(new_identity.value.unwrap(), wallet_identity2); @@ -48,7 +48,7 @@ mod revert { async fn cant_get_identity_when_not_registered() { let (instance, acc, _wallet2) = setup().await; - let identity = identity(&instance, &acc.name).await; + let identity = identity(&instance, acc.name.clone()).await; identity.value.unwrap(); } } diff --git a/name-registry/project/contracts/registry-contract/tests/functions/info/owner.rs b/name-registry/project/contracts/registry-contract/tests/functions/info/owner.rs index c08789023..def65adf9 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/info/owner.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/info/owner.rs @@ -7,7 +7,7 @@ mod success { setup::REGISTER_DURATION, }; use fuels::{ - prelude::{Address, ContractId}, + prelude::{Address, AssetId}, types::Identity, }; @@ -15,25 +15,25 @@ mod success { async fn can_get_owner() { let (instance, acc1, wallet2) = setup().await; let wallet_identity2 = Identity::Address(Address::from(wallet2.address())); - set_asset(&instance, ContractId::zeroed(), Some(1)).await; + set_asset(&instance, AssetId::default(), Some(1)).await; register( &instance, - &acc1.name, + acc1.name.clone(), REGISTER_DURATION, &acc1.identity(), &acc1.identity(), - ContractId::zeroed(), + AssetId::default(), ) .await; - let previous_owner = owner(&instance, &acc1.name).await; + let previous_owner = owner(&instance, acc1.name.clone()).await; assert_eq!(previous_owner.value.unwrap(), acc1.identity()); - set_owner(&instance, &acc1.name, wallet_identity2.clone()).await; + set_owner(&instance, acc1.name.clone(), wallet_identity2.clone()).await; - let new_owner = owner(&instance, &acc1.name).await; + let new_owner = owner(&instance, acc1.name.clone()).await; assert_eq!(new_owner.value.unwrap(), wallet_identity2); } @@ -48,7 +48,7 @@ mod revert { #[should_panic(expected = "NameNotRegistered")] async fn cant_get_owner() { let (instance, acc, _wallet2) = setup().await; - let owner = owner(&instance, &acc.name).await; + let owner = owner(&instance, acc.name.clone()).await; owner.value.unwrap(); } } diff --git a/name-registry/project/contracts/registry-contract/tests/functions/info/rate.rs b/name-registry/project/contracts/registry-contract/tests/functions/info/rate.rs index d5487b749..da99e25d3 100644 --- a/name-registry/project/contracts/registry-contract/tests/functions/info/rate.rs +++ b/name-registry/project/contracts/registry-contract/tests/functions/info/rate.rs @@ -3,11 +3,12 @@ mod success { interface::{core::set_asset, info::rate}, setup::setup, }; + use fuels::prelude::AssetId; #[tokio::test] async fn asset_not_set_returns_none() { let (instance, _account, _wallet2) = setup().await; - let value = rate(&instance, instance.contract_id().into()).await; + let value = rate(&instance, AssetId::new(*instance.contract_id().hash())).await; assert_eq!(value, None); } @@ -16,9 +17,14 @@ mod success { let (instance, _account, _wallet2) = setup().await; let asset_rate = Some(5); - set_asset(&instance, instance.contract_id().into(), asset_rate).await; + set_asset( + &instance, + AssetId::new(*instance.contract_id().hash()), + asset_rate, + ) + .await; - let value = rate(&instance, instance.contract_id().into()).await; + let value = rate(&instance, AssetId::new(*instance.contract_id().hash())).await; assert_eq!(asset_rate, value); } } diff --git a/name-registry/project/contracts/registry-contract/tests/utils/interface/core.rs b/name-registry/project/contracts/registry-contract/tests/utils/interface/core.rs index 34b79abbe..a06dba744 100644 --- a/name-registry/project/contracts/registry-contract/tests/utils/interface/core.rs +++ b/name-registry/project/contracts/registry-contract/tests/utils/interface/core.rs @@ -1,29 +1,23 @@ use crate::utils::setup::{get_timestamp_and_call, NameRegistry}; use fuels::{ - prelude::{CallParameters, ContractId, TxParameters, WalletUnlocked}, + prelude::{AssetId, CallParameters, TxPolicies, WalletUnlocked}, programs::call_response::FuelCallResponse, - types::{AssetId, Identity, SizedAsciiString}, + types::Identity, }; pub(crate) async fn extend( instance: &NameRegistry, - name: &String, + name: String, duration: u64, - payment_asset: ContractId, + payment_asset: AssetId, ) -> FuelCallResponse<()> { + let call_params = CallParameters::new(100, payment_asset, 1_000_000); + instance .methods() - .extend( - SizedAsciiString::<8>::new(name.to_owned()).unwrap(), - duration, - payment_asset, - ) - .tx_params(TxParameters::new(0, 2_000_000, 0)) - .call_params(CallParameters::new( - 100, - AssetId::from(*payment_asset), - 1_000_000, - )) + .extend(name, duration) + .with_tx_policies(TxPolicies::default().with_script_gas_limit(2_000_000)) + .call_params(call_params) .unwrap() .call() .await @@ -32,19 +26,17 @@ pub(crate) async fn extend( pub(crate) async fn extend_with_time( instance: &NameRegistry, - name: &String, + name: String, duration: u64, - payment_asset: ContractId, + payment_asset: AssetId, ) -> (FuelCallResponse<()>, u64) { + let call_params = CallParameters::new(100, payment_asset, 0); + get_timestamp_and_call( instance .methods() - .extend( - SizedAsciiString::<8>::new(name.to_owned()).unwrap(), - duration, - payment_asset, - ) - .call_params(CallParameters::new(100, AssetId::from(*payment_asset), 0)) + .extend(name, duration) + .call_params(call_params) .unwrap(), ) .await @@ -52,27 +44,19 @@ pub(crate) async fn extend_with_time( pub(crate) async fn register( instance: &NameRegistry, - name: &String, + name: String, duration: u64, owner: &Identity, identity: &Identity, - payment_asset: ContractId, + payment_asset: AssetId, ) -> FuelCallResponse<()> { + let call_params = CallParameters::new(100, payment_asset, 1_000_000); + instance .methods() - .register( - SizedAsciiString::<8>::new(name.to_owned()).unwrap(), - duration, - owner.to_owned(), - identity.to_owned(), - payment_asset, - ) - .tx_params(TxParameters::new(0, 2_000_000, 0)) - .call_params(CallParameters::new( - 100, - AssetId::from(*payment_asset), - 1_000_000, - )) + .register(name, duration, owner.to_owned(), identity.to_owned()) + .with_tx_policies(TxPolicies::default().with_script_gas_limit(2_000_000)) + .call_params(call_params) .unwrap() .call() .await @@ -81,23 +65,19 @@ pub(crate) async fn register( pub(crate) async fn register_with_time( instance: &NameRegistry, - name: &String, + name: String, duration: u64, owner: &Identity, identity: &Identity, - payment_asset: ContractId, + payment_asset: AssetId, ) -> (FuelCallResponse<()>, u64) { + let call_params = CallParameters::new(100, payment_asset, 0); + get_timestamp_and_call( instance .methods() - .register( - SizedAsciiString::<8>::new(name.to_owned()).unwrap(), - duration, - owner.to_owned(), - identity.to_owned(), - payment_asset, - ) - .call_params(CallParameters::new(100, AssetId::from(*payment_asset), 0)) + .register(name, duration, owner.to_owned(), identity.to_owned()) + .call_params(call_params) .unwrap(), ) .await @@ -105,7 +85,7 @@ pub(crate) async fn register_with_time( pub(crate) async fn set_asset( instance: &NameRegistry, - id: ContractId, + id: AssetId, rate: Option, ) -> FuelCallResponse<()> { instance.methods().set_asset(id, rate).call().await.unwrap() @@ -113,15 +93,12 @@ pub(crate) async fn set_asset( pub(crate) async fn set_identity( instance: &NameRegistry, - name: &String, + name: String, identity: Identity, ) -> FuelCallResponse<()> { instance .methods() - .set_identity( - SizedAsciiString::<8>::new(name.to_owned()).unwrap(), - identity, - ) + .set_resolver(name, identity) .call() .await .unwrap() @@ -129,15 +106,12 @@ pub(crate) async fn set_identity( pub(crate) async fn set_owner( instance: &NameRegistry, - name: &String, + name: String, new_owner: Identity, ) -> FuelCallResponse<()> { instance .methods() - .set_owner( - SizedAsciiString::<8>::new(name.to_owned()).unwrap(), - new_owner, - ) + .transfer_name_ownership(name, new_owner) .call() .await .unwrap() diff --git a/name-registry/project/contracts/registry-contract/tests/utils/interface/info.rs b/name-registry/project/contracts/registry-contract/tests/utils/interface/info.rs index 57ad597f7..ffac30946 100644 --- a/name-registry/project/contracts/registry-contract/tests/utils/interface/info.rs +++ b/name-registry/project/contracts/registry-contract/tests/utils/interface/info.rs @@ -1,46 +1,31 @@ use crate::utils::setup::{NameRegistry, RegistrationValidityError}; use fuels::{ - prelude::{ContractId, WalletUnlocked}, + prelude::{AssetId, WalletUnlocked}, programs::call_response::FuelCallResponse, - types::{Identity, SizedAsciiString}, + types::Identity, }; -pub(crate) async fn rate(instance: &NameRegistry, id: ContractId) -> Option { +pub(crate) async fn rate(instance: &NameRegistry, id: AssetId) -> Option { instance.methods().rate(id).call().await.unwrap().value } pub(crate) async fn expiry( instance: &NameRegistry, - name: &String, + name: String, ) -> FuelCallResponse> { - instance - .methods() - .expiry(SizedAsciiString::<8>::new(name.to_owned()).unwrap()) - .call() - .await - .unwrap() + instance.methods().expiry(name).call().await.unwrap() } pub(crate) async fn identity( instance: &NameRegistry, - name: &String, + name: String, ) -> FuelCallResponse> { - instance - .methods() - .identity(SizedAsciiString::<8>::new(name.to_owned()).unwrap()) - .call() - .await - .unwrap() + instance.methods().resolver(name).call().await.unwrap() } pub(crate) async fn owner( instance: &NameRegistry, - name: &String, + name: String, ) -> FuelCallResponse> { - instance - .methods() - .owner(SizedAsciiString::<8>::new(name.to_owned()).unwrap()) - .call() - .await - .unwrap() + instance.methods().name_owner(name).call().await.unwrap() } diff --git a/name-registry/project/contracts/registry-contract/tests/utils/setup.rs b/name-registry/project/contracts/registry-contract/tests/utils/setup.rs index 7ee6c2aa0..1a10cf41d 100644 --- a/name-registry/project/contracts/registry-contract/tests/utils/setup.rs +++ b/name-registry/project/contracts/registry-contract/tests/utils/setup.rs @@ -1,12 +1,13 @@ use core::fmt::Debug; use fuels::{ accounts::Account as FuelAccount, + core::traits::{Parameterize, Tokenizable}, prelude::{ abigen, launch_custom_provider_and_get_wallets, Address, Contract, LoadConfiguration, - StorageConfiguration, TxParameters, WalletUnlocked, WalletsConfig, + StorageConfiguration, TxPolicies, WalletUnlocked, WalletsConfig, }, programs::{call_response::FuelCallResponse, contract::ContractCallHandler}, - types::{traits::Tokenizable, Identity, SizedAsciiString}, + types::Identity, }; abigen!(Contract( @@ -49,22 +50,25 @@ pub(crate) async fn setup() -> (NameRegistry, Account, WalletUnl Some(amount_per_coin), ); - let mut wallets = launch_custom_provider_and_get_wallets(config, None, None).await; + let mut wallets = launch_custom_provider_and_get_wallets(config, None, None) + .await + .unwrap(); let wallet = wallets.pop().unwrap(); let wallet2 = wallets.pop().unwrap(); - let storage_configuration = StorageConfiguration::load_from(CONTRACT_STORAGE_PATH); + let storage_configuration = + StorageConfiguration::default().add_slot_overrides_from_file(CONTRACT_STORAGE_PATH); let configurables = NameRegistryConfigurables::new() - .set_OWNER(Identity::Address(Address::from(wallet.address()))); + .with_OWNER(Identity::Address(Address::from(wallet.address()))); let configuration = LoadConfiguration::default() - .set_storage_configuration(storage_configuration.unwrap()) - .set_configurables(configurables); + .with_storage_configuration(storage_configuration.unwrap()) + .with_configurables(configurables); let id = Contract::load_from(CONTRACT_BINARY_PATH, configuration) .unwrap() - .deploy(&wallet, TxParameters::default()) + .deploy(&wallet, TxPolicies::default()) .await .unwrap(); @@ -73,16 +77,12 @@ pub(crate) async fn setup() -> (NameRegistry, Account, WalletUnl (instance, Account::new(wallet), wallet2) } -pub(crate) fn string_to_ascii(name: &String) -> SizedAsciiString<8> { - SizedAsciiString::<8>::new(name.to_owned()).unwrap() -} - pub(crate) async fn get_timestamp_and_call( handler: ContractCallHandler, ) -> (FuelCallResponse, u64) where T: FuelAccount, - D: Tokenizable + Debug, + D: Tokenizable + Parameterize + Debug, { let call_response = handler.call().await.unwrap(); diff --git a/name-registry/project/fuel-toolchain.toml b/name-registry/project/fuel-toolchain.toml index cb4a978ef..e75c0bb58 100644 --- a/name-registry/project/fuel-toolchain.toml +++ b/name-registry/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-20" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.3" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/native-assets/NFT/README.md b/native-assets/NFT/README.md index 14a1ef1dc..b8ee5ad9b 100644 --- a/native-assets/NFT/README.md +++ b/native-assets/NFT/README.md @@ -6,11 +6,11 @@

- - + + - - + +

diff --git a/native-assets/NFT/project/Forc.lock b/native-assets/NFT/project/Forc.lock index 562051625..c22f12a95 100644 --- a/native-assets/NFT/project/Forc.lock +++ b/native-assets/NFT/project/Forc.lock @@ -2,41 +2,41 @@ name = "NFT-contract" source = "member" dependencies = [ - "src_20", - "src_3", - "src_7", + "asset", + "src20", + "src3", + "src7", + "std", +] + +[[package]] +name = "asset" +source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.18.0#8d196e9379463d4596ac582a20a84ed52ff58c69" +dependencies = [ + "src7", "std", - "token", ] [[package]] name = "core" -source = "path+from-root-AD80769CAE44474A" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = "src_20" -source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.1.2#a3744aa3dcb8c950a433d1fc16645ef9a83dc583" +name = "src20" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.3.3#4198b4b07449ad16104cc8a0501f3013670fdcfd" dependencies = ["std"] [[package]] -name = "src_3" -source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.1.2#a3744aa3dcb8c950a433d1fc16645ef9a83dc583" +name = "src3" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.3.3#4198b4b07449ad16104cc8a0501f3013670fdcfd" dependencies = ["std"] [[package]] -name = "src_7" -source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.1.2#a3744aa3dcb8c950a433d1fc16645ef9a83dc583" +name = "src7" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.3.3#4198b4b07449ad16104cc8a0501f3013670fdcfd" dependencies = ["std"] [[package]] name = "std" -source = "git+https://github.com/fuellabs/sway?tag=v0.46.0#e75f14b03636bc96751a6760304a1a6d3eb5937d" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" dependencies = ["core"] - -[[package]] -name = "token" -source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.15.0#5257dc7f19d1893df749cd84240fee4158a12481" -dependencies = [ - "src_7", - "std", -] diff --git a/native-assets/NFT/project/contracts/NFT-contract/Forc.toml b/native-assets/NFT/project/contracts/NFT-contract/Forc.toml index 44ede9872..d6a27c8a3 100644 --- a/native-assets/NFT/project/contracts/NFT-contract/Forc.toml +++ b/native-assets/NFT/project/contracts/NFT-contract/Forc.toml @@ -5,7 +5,7 @@ license = "Apache-2.0" name = "NFT-contract" [dependencies] -src_20 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.1.2" } -src_3 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.1.2" } -src_7 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.1.2" } -token = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.15.0" } +asset = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.18.0" } +src20 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.3.3" } +src3 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.3.3" } +src7 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.3.3" } diff --git a/native-assets/NFT/project/contracts/NFT-contract/src/main.sw b/native-assets/NFT/project/contracts/NFT-contract/src/main.sw index 20fab21c1..13b21b7a5 100644 --- a/native-assets/NFT/project/contracts/NFT-contract/src/main.sw +++ b/native-assets/NFT/project/contracts/NFT-contract/src/main.sw @@ -3,10 +3,10 @@ contract; mod errors; use errors::{MintError, SetError}; -use src_20::SRC20; -use src_3::SRC3; -use src_7::{Metadata, SRC7}; -use token::{ +use src20::SRC20; +use src3::SRC3; +use src7::{Metadata, SRC7}; +use asset::{ base::{ _name, _set_name, @@ -14,7 +14,7 @@ use token::{ _symbol, _total_assets, _total_supply, - SetTokenAttributes, + SetAssetAttributes, }, metadata::*, mint::{ @@ -241,9 +241,30 @@ impl SRC3 for Contract { fn mint(recipient: Identity, sub_id: SubId, amount: u64) { let asset = AssetId::new(contract_id(), sub_id); require(amount == 1, MintError::CannotMintMoreThanOneNFTWithSubId); - require(storage.total_supply.get(asset).try_read().is_none(), MintError::NFTAlreadyMinted); - require(storage.total_assets.try_read().unwrap_or(0) + amount <= 100_000, MintError::MaxNFTsMinted); - let _ = _mint(storage.total_assets, storage.total_supply, recipient, sub_id, amount); + require( + storage + .total_supply + .get(asset) + .try_read() + .is_none(), + MintError::NFTAlreadyMinted, + ); + require( + storage + .total_assets + .try_read() + .unwrap_or(0) + amount <= 100_000, + MintError::MaxNFTsMinted, + ); + let _ = _mint( + storage + .total_assets, + storage + .total_supply, + recipient, + sub_id, + amount, + ); } /// Burns tokens sent with the given `sub_id`. /// @@ -317,7 +338,7 @@ impl SRC7 for Contract { } } -impl SetTokenAttributes for Contract { +impl SetAssetAttributes for Contract { /// Sets the name of an asset. /// /// # Arguments @@ -337,12 +358,12 @@ impl SetTokenAttributes for Contract { /// # Examples /// /// ```sway - /// use token::SetTokenAttributes; + /// use token::SetAssetAttributes; /// use src20::SRC20; /// use std::string::String; /// /// fn foo(asset: AssetId, contract_id: ContractId) { - /// let set_abi = abi(SetTokenAttributes, contract_id); + /// let set_abi = abi(SetAssetAttributes, contract_id); /// let src_20_abi = abi(SRC20, contract_id); /// let name = String::from_ascii_str("Ether"); /// set_abi.set_name(asset, name); @@ -351,7 +372,14 @@ impl SetTokenAttributes for Contract { /// ``` #[storage(write)] fn set_name(asset: AssetId, name: String) { - require(storage.name.get(asset).read_slice().is_none(), SetError::ValueAlreadySet); + require( + storage + .name + .get(asset) + .read_slice() + .is_none(), + SetError::ValueAlreadySet, + ); _set_name(storage.name, asset, name); } /// Sets the symbol of an asset. @@ -373,12 +401,12 @@ impl SetTokenAttributes for Contract { /// # Examples /// /// ```sway - /// use token::SetTokenAttributes; + /// use token::SetAssetAttributes; /// use src20::SRC20; /// use std::string::String; /// /// fn foo(asset: AssetId, contract_id: ContractId) { - /// let set_abi = abi(SetTokenAttributes, contract_id); + /// let set_abi = abi(SetAssetAttributes, contract_id); /// let src_20_abi = abi(SRC20, contract_id); /// let symbol = String::from_ascii_str("ETH"); /// set_abi.set_symbol(asset, symbol); @@ -387,7 +415,14 @@ impl SetTokenAttributes for Contract { /// ``` #[storage(write)] fn set_symbol(asset: AssetId, symbol: String) { - require(storage.symbol.get(asset).read_slice().is_none(), SetError::ValueAlreadySet); + require( + storage + .symbol + .get(asset) + .read_slice() + .is_none(), + SetError::ValueAlreadySet, + ); _set_symbol(storage.symbol, asset, symbol); } /// This function should never be called. @@ -395,7 +430,7 @@ impl SetTokenAttributes for Contract { /// # Additional Information /// /// NFT decimals are always `0u8` and thus must not be set. - /// This function is an artifact of the SetTokenAttributes ABI definition, + /// This function is an artifact of the SetAssetAttributes ABI definition, /// but does not have a use in this contract as the decimal value is hardcoded. /// /// # Reverts @@ -407,7 +442,7 @@ impl SetTokenAttributes for Contract { } } -impl SetTokenMetadata for Contract { +impl SetAssetMetadata for Contract { /// Stores metadata for a specific asset and key pair. /// /// # Arguments @@ -429,10 +464,10 @@ impl SetTokenMetadata for Contract { /// /// ```sway /// use src_7::{SRC7, Metadata}; - /// use token::metdata::SetTokenMetadata; + /// use token::metdata::SetAssetMetadata; /// /// fn foo(asset: AssetId, key: String, contract_id: ContractId, metadata: Metadata) { - /// let set_abi = abi(SetTokenMetadata, contract_id); + /// let set_abi = abi(SetAssetMetadata, contract_id); /// let src_7_abi = abi(SRC7, contract); /// set_abi.set_metadata(storage.metadata, asset, key, metadata); /// assert(src_7_abi.metadata(asset, key) == metadata); @@ -440,7 +475,13 @@ impl SetTokenMetadata for Contract { /// ``` #[storage(read, write)] fn set_metadata(asset: AssetId, key: String, metadata: Metadata) { - require(storage.metadata.get(asset, key).is_none(), SetError::ValueAlreadySet); + require( + storage + .metadata + .get(asset, key) + .is_none(), + SetError::ValueAlreadySet, + ); _set_metadata(storage.metadata, asset, key, metadata); } } @@ -520,7 +561,7 @@ fn test_total_supply() { fn test_name() { use std::constants::ZERO_B256; let src20_abi = abi(SRC20, CONTRACT_ID); - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let name = String::from_ascii_str("Fuel Token"); @@ -531,7 +572,7 @@ fn test_name() { #[test(should_revert)] fn test_revert_set_name_twice() { use std::constants::ZERO_B256; - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let name = String::from_ascii_str("Fuel Token"); @@ -542,7 +583,7 @@ fn test_revert_set_name_twice() { fn test_symbol() { use std::constants::ZERO_B256; let src20_abi = abi(SRC20, CONTRACT_ID); - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let symbol = String::from_ascii_str("FUEL"); @@ -553,7 +594,7 @@ fn test_symbol() { #[test(should_revert)] fn test_revert_set_symbol_twice() { use std::constants::ZERO_B256; - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let symbol = String::from_ascii_str("FUEL"); @@ -572,7 +613,7 @@ fn test_decimals() { #[test(should_revert)] fn test_revert_set_decimals() { use std::constants::ZERO_B256; - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let decimals = 0u8; @@ -585,7 +626,7 @@ fn test_set_metadata() { let metadata = Metadata::B256(data_b256); let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), ZERO_B256); let src7_abi = abi(SRC7, CONTRACT_ID); - let set_metadata_abi = abi(SetTokenMetadata, CONTRACT_ID); + let set_metadata_abi = abi(SetAssetMetadata, CONTRACT_ID); let key = String::from_ascii_str("my_key"); set_metadata_abi.set_metadata(asset_id, key, metadata); let returned_metadata = src7_abi.metadata(asset_id, key); @@ -598,7 +639,7 @@ fn test_revert_set_metadata_twice() { let data_b256 = 0x0000000000000000000000000000000000000000000000000000000000000001; let metadata = Metadata::B256(data_b256); let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), ZERO_B256); - let set_metadata_abi = abi(SetTokenMetadata, CONTRACT_ID); + let set_metadata_abi = abi(SetAssetMetadata, CONTRACT_ID); let key = String::from_ascii_str("my_key"); set_metadata_abi.set_metadata(asset_id, key, metadata); set_metadata_abi.set_metadata(asset_id, key, metadata); diff --git a/native-assets/NFT/project/fuel-toolchain.toml b/native-assets/NFT/project/fuel-toolchain.toml index 9dbb5f305..e75c0bb58 100644 --- a/native-assets/NFT/project/fuel-toolchain.toml +++ b/native-assets/NFT/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-09-29" +channel = "nightly-2024-01-24" [components] -forc = "0.46.0" -fuel-core = "0.20.5" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/native-assets/token/README.md b/native-assets/token/README.md index 3954c830f..c0ba14e63 100644 --- a/native-assets/token/README.md +++ b/native-assets/token/README.md @@ -6,11 +6,11 @@

- - + + - - + +

diff --git a/native-assets/token/project/Forc.lock b/native-assets/token/project/Forc.lock index cb0c4cab4..9716a6763 100644 --- a/native-assets/token/project/Forc.lock +++ b/native-assets/token/project/Forc.lock @@ -1,41 +1,41 @@ +[[package]] +name = "asset" +source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.18.0#8d196e9379463d4596ac582a20a84ed52ff58c69" +dependencies = [ + "src7", + "std", +] + [[package]] name = "core" -source = "path+from-root-AD80769CAE44474A" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = "src_20" -source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.1.2#a3744aa3dcb8c950a433d1fc16645ef9a83dc583" +name = "src20" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.3.3#4198b4b07449ad16104cc8a0501f3013670fdcfd" dependencies = ["std"] [[package]] -name = "src_3" -source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.1.2#a3744aa3dcb8c950a433d1fc16645ef9a83dc583" +name = "src3" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.3.3#4198b4b07449ad16104cc8a0501f3013670fdcfd" dependencies = ["std"] [[package]] -name = "src_7" -source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.1.2#a3744aa3dcb8c950a433d1fc16645ef9a83dc583" +name = "src7" +source = "git+https://github.com/FuelLabs/sway-standards?tag=v0.3.3#4198b4b07449ad16104cc8a0501f3013670fdcfd" dependencies = ["std"] [[package]] name = "std" -source = "git+https://github.com/fuellabs/sway?tag=v0.46.0#e75f14b03636bc96751a6760304a1a6d3eb5937d" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" dependencies = ["core"] -[[package]] -name = "token" -source = "git+https://github.com/FuelLabs/sway-libs?tag=v0.15.0#5257dc7f19d1893df749cd84240fee4158a12481" -dependencies = [ - "src_7", - "std", -] - [[package]] name = "token-contract" source = "member" dependencies = [ - "src_20", - "src_3", + "asset", + "src20", + "src3", "std", - "token", ] diff --git a/native-assets/token/project/contracts/token-contract/Forc.toml b/native-assets/token/project/contracts/token-contract/Forc.toml index dd30dcf49..cd66a953a 100644 --- a/native-assets/token/project/contracts/token-contract/Forc.toml +++ b/native-assets/token/project/contracts/token-contract/Forc.toml @@ -5,6 +5,6 @@ license = "Apache-2.0" name = "token-contract" [dependencies] -src_20 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.1.2" } -src_3 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.1.2" } -token = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.15.0" } +asset = { git = "https://github.com/FuelLabs/sway-libs", tag = "v0.18.0" } +src20 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.3.3" } +src3 = { git = "https://github.com/FuelLabs/sway-standards", tag = "v0.3.3" } diff --git a/native-assets/token/project/contracts/token-contract/src/main.sw b/native-assets/token/project/contracts/token-contract/src/main.sw index 50022997a..d76299e3b 100644 --- a/native-assets/token/project/contracts/token-contract/src/main.sw +++ b/native-assets/token/project/contracts/token-contract/src/main.sw @@ -3,9 +3,9 @@ contract; mod errors; use errors::{MintError, SetError}; -use src_20::SRC20; -use src_3::SRC3; -use token::{ +use src20::SRC20; +use src3::SRC3; +use asset::{ base::{ _decimals, _name, @@ -15,7 +15,7 @@ use token::{ _symbol, _total_assets, _total_supply, - SetTokenAttributes, + SetAssetAttributes, }, mint::{ _burn, @@ -25,10 +25,15 @@ use token::{ use std::{call_frames::contract_id, hash::Hash, storage::storage_string::*, string::String}; storage { + /// The total number of unique assets minted by this contract. total_assets: u64 = 0, + /// The total number of tokens minted for a particular asset. total_supply: StorageMap = StorageMap {}, + /// The name associated with a particular asset. name: StorageMap = StorageMap {}, + /// The symbol associated with a particular asset. symbol: StorageMap = StorageMap {}, + /// The decimals associated with a particular asset. decimals: StorageMap = StorageMap {}, } @@ -215,8 +220,23 @@ impl SRC3 for Contract { #[storage(read, write)] fn mint(recipient: Identity, sub_id: SubId, amount: u64) { let asset = AssetId::new(contract_id(), sub_id); - require(storage.total_supply.get(asset).try_read().unwrap_or(0) + amount < 100_000_000, MintError::MaxMinted); - let _ = _mint(storage.total_assets, storage.total_supply, recipient, sub_id, amount); + require( + storage + .total_supply + .get(asset) + .try_read() + .unwrap_or(0) + amount < 100_000_000, + MintError::MaxMinted, + ); + let _ = _mint( + storage + .total_assets, + storage + .total_supply, + recipient, + sub_id, + amount, + ); } /// Burns tokens sent with the given `sub_id`. /// @@ -255,7 +275,7 @@ impl SRC3 for Contract { } } -impl SetTokenAttributes for Contract { +impl SetAssetAttributes for Contract { /// Sets the name of an asset. /// /// # Arguments @@ -275,12 +295,12 @@ impl SetTokenAttributes for Contract { /// # Examples /// /// ```sway - /// use token::SetTokenAttributes; + /// use token::SetAssetAttributes; /// use src20::SRC20; /// use std::string::String; /// /// fn foo(asset: AssetId) { - /// let set_abi = abi(SetTokenAttributes, contract_id); + /// let set_abi = abi(SetAssetAttributes, contract_id); /// let src_20_abi = abi(SRC20, contract_id); /// let name = String::from_ascii_str("Ether"); /// set_abi.set_name(storage.name, asset, name); @@ -289,7 +309,14 @@ impl SetTokenAttributes for Contract { /// ``` #[storage(write)] fn set_name(asset: AssetId, name: String) { - require(storage.name.get(asset).read_slice().is_none(), SetError::ValueAlreadySet); + require( + storage + .name + .get(asset) + .read_slice() + .is_none(), + SetError::ValueAlreadySet, + ); _set_name(storage.name, asset, name); } /// Sets the symbol of an asset. @@ -311,12 +338,12 @@ impl SetTokenAttributes for Contract { /// # Examples /// /// ```sway - /// use token::SetTokenAttributes; + /// use token::SetAssetAttributes; /// use src20::SRC20; /// use std::string::String; /// /// fn foo(asset: AssetId) { - /// let set_abi = abi(SetTokenAttributes, contract_id); + /// let set_abi = abi(SetAssetAttributes, contract_id); /// let src_20_abi = abi(SRC20, contract_id); /// let symbol = String::from_ascii_str("ETH"); /// set_abi.set_symbol(storage.name, asset, symbol); @@ -325,7 +352,14 @@ impl SetTokenAttributes for Contract { /// ``` #[storage(write)] fn set_symbol(asset: AssetId, symbol: String) { - require(storage.symbol.get(asset).read_slice().is_none(), SetError::ValueAlreadySet); + require( + storage + .symbol + .get(asset) + .read_slice() + .is_none(), + SetError::ValueAlreadySet, + ); _set_symbol(storage.symbol, asset, symbol); } /// Sets the decimals of an asset. @@ -347,12 +381,12 @@ impl SetTokenAttributes for Contract { /// # Examples /// /// ```sway - /// use token::SetTokenAttributes; + /// use token::SetAssetAttributes; /// use src20::SRC20; /// /// fn foo(asset: AssetId) { /// let decimals = 8u8; - /// let set_abi = abi(SetTokenAttributes, contract_id); + /// let set_abi = abi(SetAssetAttributes, contract_id); /// let src_20_abi = abi(SRC20, contract_id); /// set_abi.set_decimals(asset, decimals); /// assert(src_20_abi.decimals(asset) == decimals); @@ -360,7 +394,14 @@ impl SetTokenAttributes for Contract { /// ``` #[storage(write)] fn set_decimals(asset: AssetId, decimals: u8) { - require(storage.decimals.get(asset).try_read().is_none(), SetError::ValueAlreadySet); + require( + storage + .decimals + .get(asset) + .try_read() + .is_none(), + SetError::ValueAlreadySet, + ); _set_decimals(storage.decimals, asset, decimals); } } @@ -430,7 +471,7 @@ fn test_total_supply() { fn test_name() { use std::constants::ZERO_B256; let src20_abi = abi(SRC20, CONTRACT_ID); - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let name = String::from_ascii_str("Fuel Token"); @@ -441,7 +482,7 @@ fn test_name() { #[test(should_revert)] fn test_revert_set_name_twice() { use std::constants::ZERO_B256; - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let name = String::from_ascii_str("Fuel Token"); @@ -452,7 +493,7 @@ fn test_revert_set_name_twice() { fn test_symbol() { use std::constants::ZERO_B256; let src20_abi = abi(SRC20, CONTRACT_ID); - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let symbol = String::from_ascii_str("FUEL"); @@ -463,7 +504,7 @@ fn test_symbol() { #[test(should_revert)] fn test_revert_set_symbol_twice() { use std::constants::ZERO_B256; - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let symbol = String::from_ascii_str("FUEL"); @@ -474,7 +515,7 @@ fn test_revert_set_symbol_twice() { fn test_decimals() { use std::constants::ZERO_B256; let src20_abi = abi(SRC20, CONTRACT_ID); - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let decimals = 8u8; @@ -486,7 +527,7 @@ fn test_decimals() { fn test_revert_set_decimals_twice() { use std::constants::ZERO_B256; let src20_abi = abi(SRC20, CONTRACT_ID); - let attributes_abi = abi(SetTokenAttributes, CONTRACT_ID); + let attributes_abi = abi(SetAssetAttributes, CONTRACT_ID); let sub_id = ZERO_B256; let asset_id = AssetId::new(ContractId::from(CONTRACT_ID), sub_id); let decimals = 8u8; diff --git a/native-assets/token/project/fuel-toolchain.toml b/native-assets/token/project/fuel-toolchain.toml index 85665980f..e75c0bb58 100644 --- a/native-assets/token/project/fuel-toolchain.toml +++ b/native-assets/token/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-09-29" +channel = "nightly-2024-01-24" [components] -forc = "0.46.0" -fuel-core = "0.20.4" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/oracle/README.md b/oracle/README.md index 05c8461cf..94dd35fff 100644 --- a/oracle/README.md +++ b/oracle/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/oracle/project/Cargo.lock b/oracle/project/Cargo.lock index cd5ae8ae3..07269392c 100644 --- a/oracle/project/Cargo.lock +++ b/oracle/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -232,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.71" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -321,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -376,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -420,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -455,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -476,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -531,7 +534,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -561,7 +564,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -578,7 +581,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -597,7 +600,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -640,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -657,7 +660,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -790,6 +793,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -981,6 +1011,26 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", +] + [[package]] name = "either" version = "1.8.1" @@ -989,9 +1039,9 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1032,7 +1082,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -1078,12 +1128,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1101,12 +1157,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "ff" @@ -1118,6 +1171,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f69037fe1b785e84986b4f2cbcf647381876a00671d25ceef715d7812dd7e1dd" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1173,17 +1232,17 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.24", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1191,9 +1250,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1207,6 +1266,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1217,6 +1277,7 @@ dependencies = [ "hex", "hyper", "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1229,13 +1290,14 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", @@ -1244,7 +1306,6 @@ dependencies = [ "hex", "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1253,9 +1314,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1267,6 +1328,7 @@ dependencies = [ "hyper-rustls 0.24.1", "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1276,9 +1338,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1289,21 +1351,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1313,36 +1375,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1357,15 +1422,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1373,12 +1438,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1387,21 +1453,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1410,17 +1476,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1434,55 +1502,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", + "hashbrown 0.14.0", "itertools 0.10.5", - "num-integer", "rand", "serde", "serde_json", @@ -1492,10 +1578,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1503,31 +1590,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", + "hashbrown 0.14.0", "itertools 0.10.5", - "rand", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa81d69072a9d4ba6fac79d9b5b66348daf95089ecda85a9231e41e5dd45bc85" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1541,12 +1637,11 @@ dependencies = [ [[package]] name = "fuels-accounts" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a03259b1ece608c33541477fed7dea07bb3e78f25f85a8a3060f6501d6e982" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1557,118 +1652,106 @@ dependencies = [ "fuel-vm", "fuels-core", "hex", - "itertools 0.10.5", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e8ec25373ed1ae06cfe53afc4e3ecd6057aa4ff3a3329e40f42784afe21726b" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools 0.10.5", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b133aff726340284937e3233b8c9dd8429812dd463e4e6f53373ca13e644c99" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", "bech32 0.9.1", "chrono", "fuel-abi-types", "fuel-asm", "fuel-core-chain-config", "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", "fuels-macros", "hex", - "itertools 0.10.5", - "proc-macro2", - "regex", + "itertools 0.12.0", "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", + "sha2 0.10.8", "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef684e13ddc8b16f7828dc98ca309f69a6516068bb307c78b8e64aaf010b397" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools 0.10.5", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e582cc270a794e02e40150f79d2a92830bf5adaaadf4147de02689ae17c287" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "hex", - "itertools 0.10.5", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3b0f1475beb61ad66163dc57234170b7319aacf79d9147a28c7ff43cc6fd8f0" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", "futures", @@ -1677,7 +1760,7 @@ dependencies = [ "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", @@ -1745,7 +1828,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -1798,7 +1881,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1877,6 +1960,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1922,6 +2010,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1979,7 +2076,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2155,26 +2252,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - [[package]] name = "ipnet" version = "2.8.0" @@ -2188,7 +2265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.3", + "rustix", "windows-sys", ] @@ -2210,6 +2287,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.8" @@ -2235,7 +2321,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2256,21 +2342,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] -name = "linux-raw-sys" -version = "0.3.8" +name = "libm" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2302,9 +2388,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2332,12 +2418,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2377,16 +2463,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.15" @@ -2450,7 +2526,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -2496,6 +2572,18 @@ dependencies = [ "utils", ] +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.3" @@ -2540,11 +2628,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2597,14 +2691,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2628,6 +2722,12 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2654,6 +2754,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2677,9 +2786,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -2748,9 +2857,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.29" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2828,11 +2937,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2842,9 +2960,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2853,9 +2971,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2958,28 +3076,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys", -] - -[[package]] -name = "rustix" -version = "0.38.3" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.3", + "linux-raw-sys", "windows-sys", ] @@ -3091,6 +3195,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -3106,7 +3236,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3196,35 +3326,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.169" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd51c3db8f9500d531e6c12dd0fd4ad13d133e9117f5aebac3cdbb8b6d9824b0" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.169" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27738cfea0d944ab72c3ed01f3d5f23ec4322af8a1431e40ce630e4c01ea74fd" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.100" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3255,9 +3385,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3289,9 +3419,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3352,6 +3482,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "spin" version = "0.5.2" @@ -3436,9 +3576,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.24" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36ccaf716a23c35ff908f91c971a86a9a71af5998c1d8f10e828d9f55f68ac00" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3451,6 +3591,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3468,47 +3620,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.6.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ - "autocfg", "cfg-if", "fastrand", - "redox_syscall", - "rustix 0.37.23", + "redox_syscall 0.4.1", + "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3555,11 +3695,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3568,7 +3707,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3585,13 +3724,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -3708,6 +3847,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3747,7 +3887,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -3822,6 +3962,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3871,6 +4017,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "vcpkg" version = "0.2.15" @@ -3898,12 +4053,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3931,7 +4080,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3965,7 +4114,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4026,13 +4175,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -4176,5 +4327,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] diff --git a/oracle/project/Forc.lock b/oracle/project/Forc.lock index 8ec083f5c..3f501da09 100644 --- a/oracle/project/Forc.lock +++ b/oracle/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'oracle-contract' -source = 'member' -dependencies = ['std'] +name = "oracle-contract" +source = "member" +dependencies = ["std"] [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] diff --git a/oracle/project/contracts/oracle-contract/Cargo.toml b/oracle/project/contracts/oracle-contract/Cargo.toml index c50dd848a..421de231b 100644 --- a/oracle/project/contracts/oracle-contract/Cargo.toml +++ b/oracle/project/contracts/oracle-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.43.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["full"] } utils = { path = "../../utils" } diff --git a/oracle/project/fuel-toolchain.toml b/oracle/project/fuel-toolchain.toml index d6c71fc3d..e75c0bb58 100644 --- a/oracle/project/fuel-toolchain.toml +++ b/oracle/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-07" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.2" +forc = "0.49.1" +fuel-core = "0.22.0" diff --git a/oracle/project/oracle-node/Cargo.toml b/oracle/project/oracle-node/Cargo.toml index 0dc5d4fd3..7826ed780 100644 --- a/oracle/project/oracle-node/Cargo.toml +++ b/oracle/project/oracle-node/Cargo.toml @@ -9,7 +9,7 @@ license = "Apache-2.0" anyhow = "1.0.71" async-trait = "0.1.71" dotenv = "0.15.0" -fuels = { version = "0.43.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } futures = "0.3" itertools = "0.11" reqwest = { version = "0.11.18", features = ["json"] } diff --git a/oracle/project/oracle-node/src/main.rs b/oracle/project/oracle-node/src/main.rs index ded5120cf..b53398bd5 100644 --- a/oracle/project/oracle-node/src/main.rs +++ b/oracle/project/oracle-node/src/main.rs @@ -1,7 +1,6 @@ use dotenv::dotenv; use fuels::{ accounts::{fuel_crypto::SecretKey, wallet::WalletUnlocked}, - client::FuelClient, prelude::{Bech32ContractId, ContractId, Provider}, tx::ConsensusParameters, }; @@ -43,10 +42,10 @@ fn setup() -> (Oracle, reqwest::Client, Url) { ); let provider = Provider::new( - FuelClient::new(env::var("FUEL_PROVIDER_URL").expect("FUEL_PROVIDER_URL must be set.")) - .unwrap(), - ConsensusParameters::DEFAULT, - ); + env::var("FUEL_PROVIDER_URL").expect("FUEL_PROVIDER_URL must be set."), + ConsensusParameters::default(), + ) + .unwrap(); let key = SecretKey::from_str(&env::var("WALLET_SECRET").expect("WALLET_SECRET must be set.")) .unwrap(); diff --git a/oracle/project/oracle-node/tests/functions/run.rs b/oracle/project/oracle-node/tests/functions/run.rs index 2fa661c3b..d5ab9a7b6 100644 --- a/oracle/project/oracle-node/tests/functions/run.rs +++ b/oracle/project/oracle-node/tests/functions/run.rs @@ -58,7 +58,7 @@ mod success { ptr: 0, len: 0, digest: Default::default(), - data: 101u64.to_be_bytes().to_vec(), + data: Some(101u64.to_be_bytes().to_vec()), pc: 0, is: 0, }]; diff --git a/oracle/project/utils/Cargo.toml b/oracle/project/utils/Cargo.toml index f4b4bc6c2..7036f05f8 100644 --- a/oracle/project/utils/Cargo.toml +++ b/oracle/project/utils/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.43.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } [lib] test = false diff --git a/oracle/project/utils/src/lib.rs b/oracle/project/utils/src/lib.rs index ba1318c1f..77270c85d 100644 --- a/oracle/project/utils/src/lib.rs +++ b/oracle/project/utils/src/lib.rs @@ -1,7 +1,7 @@ use fuels::{ accounts::wallet::{Wallet, WalletUnlocked}, prelude::{ - abigen, launch_custom_provider_and_get_wallets, Contract, LoadConfiguration, TxParameters, + abigen, launch_custom_provider_and_get_wallets, Contract, LoadConfiguration, TxPolicies, WalletsConfig, }, programs::call_response::FuelCallResponse, @@ -53,13 +53,14 @@ pub mod test_helpers { use paths::ORACLE_CONTRACT_BINARY_PATH; pub async fn setup() -> (Metadata, Vec) { - let wallets = - launch_custom_provider_and_get_wallets(WalletsConfig::default(), None, None).await; + let wallets = launch_custom_provider_and_get_wallets(WalletsConfig::default(), None, None) + .await + .unwrap(); let oracle_id = Contract::load_from(ORACLE_CONTRACT_BINARY_PATH, LoadConfiguration::default()) .unwrap() - .deploy(&wallets[0], TxParameters::default()) + .deploy(&wallets[0], TxPolicies::default()) .await .unwrap(); diff --git a/timelock/README.md b/timelock/README.md index d92192ce4..12ce14db1 100644 --- a/timelock/README.md +++ b/timelock/README.md @@ -6,14 +6,14 @@

- - + + - - + + - - + +

diff --git a/timelock/project/Cargo.lock b/timelock/project/Cargo.lock index 1d3b0b2ff..39bf23332 100644 --- a/timelock/project/Cargo.lock +++ b/timelock/project/Cargo.lock @@ -58,6 +58,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -232,18 +238,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "async-trait" -version = "0.1.71" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -321,6 +327,7 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", + "serde", ] [[package]] @@ -376,9 +383,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -420,12 +430,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borrown" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b57b368e638ed60664350ea4f2f3647a0192173478df2736cc255a025a796" - [[package]] name = "bs58" version = "0.4.0" @@ -455,9 +459,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" dependencies = [ "serde", ] @@ -476,17 +480,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -531,7 +534,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -561,7 +564,7 @@ dependencies = [ "k256", "lazy_static", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -578,7 +581,7 @@ dependencies = [ "once_cell", "pbkdf2 0.12.2", "rand", - "sha2 0.10.7", + "sha2 0.10.8", "thiserror", ] @@ -597,7 +600,7 @@ dependencies = [ "ripemd", "serde", "serde_derive", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", ] @@ -640,7 +643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" dependencies = [ "percent-encoding", - "time 0.3.23", + "time", "version_check", ] @@ -657,7 +660,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "time 0.3.23", + "time", "url", ] @@ -790,6 +793,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "platforms", + "rustc_version", + "subtle", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "cynic" version = "2.2.8" @@ -975,6 +1005,26 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7277392b266383ef8396db7fdeb1e77b6c52fed775f5df15bb24f35b72156980" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.10.8", +] + [[package]] name = "either" version = "1.8.1" @@ -983,9 +1033,9 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "e9775b22bc152ad86a0cf23f0f348b884b26add12bf741e7ffc4d4ab2ab4d205" dependencies = [ "base16ct", "crypto-bigint", @@ -1026,7 +1076,7 @@ checksum = "eecf8589574ce9b895052fa12d69af7a233f99e6107f5cb8dd1044f2a17bfdcb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -1072,12 +1122,18 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "thiserror", - "uuid", + "uuid 0.8.2", ] +[[package]] +name = "ethnum" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" + [[package]] name = "eventsource-client" version = "0.10.2" @@ -1095,12 +1151,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "1.9.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "ff" @@ -1112,6 +1165,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f69037fe1b785e84986b4f2cbcf647381876a00671d25ceef715d7812dd7e1dd" + [[package]] name = "fixed-hash" version = "0.8.0" @@ -1145,24 +1204,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8118789261e77d67569859a06a886d53dbf7bd00ea23a18a2dfae26a1f5be25" dependencies = [ - "itertools", + "itertools 0.10.5", "lazy_static", "proc-macro2", "quote", "regex", "serde", "serde_json", - "syn 2.0.24", + "syn 2.0.39", "thiserror", ] [[package]] name = "fuel-asm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1331be83ba8ce8fa9217272b2709bbe29a01daff5fe7ef58ba1b64ec18fe40c0" +checksum = "f2a78a31d8c15dc8139bc8d2074d09be4c8e7ca4735707996ed8bb96f20dd29e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "fuel-types", "serde", "strum", @@ -1170,9 +1229,9 @@ dependencies = [ [[package]] name = "fuel-core" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c978d128cd4cc73675a5424a67c5c0dbb70fbb52bb6e5d1bf38664f966e369d" +checksum = "c545fd12c8b5bbc495fd37a4fdf2548450b07b3fb26ac8ea20a10436c311e1d0" dependencies = [ "anyhow", "async-graphql", @@ -1186,6 +1245,7 @@ dependencies = [ "fuel-core-database", "fuel-core-executor", "fuel-core-importer", + "fuel-core-metrics", "fuel-core-poa", "fuel-core-producer", "fuel-core-services", @@ -1195,7 +1255,8 @@ dependencies = [ "futures", "hex", "hyper", - "itertools", + "itertools 0.10.5", + "parking_lot", "postcard", "primitive-types", "rand", @@ -1208,22 +1269,22 @@ dependencies = [ "tokio-stream", "tower-http", "tracing", + "uuid 1.6.1", ] [[package]] name = "fuel-core-chain-config" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e533fa1f86ae96579f4394205a7dfbad31715043f7119a82aa7a14effaed3a17" +checksum = "84319b8e7a3b422b0f38c6ad4abd29f48b923797b7555c3bb53151322779f9bf" dependencies = [ "anyhow", "bech32 0.9.1", "fuel-core-storage", "fuel-core-types", "hex", - "itertools", + "itertools 0.10.5", "postcard", - "rand", "serde", "serde_json", "serde_with 1.14.0", @@ -1232,9 +1293,9 @@ dependencies = [ [[package]] name = "fuel-core-client" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38a6bf1c0a6e6acf848f4b994e0b91c96c4f443f71d26f437642d135d5d71d3d" +checksum = "ed3555027c1362e8ff1b03783399b0baa62911ffcf4254c533f3f32c98982562" dependencies = [ "anyhow", "cynic", @@ -1244,8 +1305,9 @@ dependencies = [ "futures", "hex", "hyper-rustls 0.24.1", - "itertools", + "itertools 0.10.5", "reqwest", + "schemafy_lib", "serde", "serde_json", "tai64", @@ -1255,9 +1317,9 @@ dependencies = [ [[package]] name = "fuel-core-consensus-module" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10dfa90f07cd210da9e16c61f5405a9d5c71a701848e6f9e01a1568b3b8c0f91" +checksum = "50fd6d90df194b5970bf16681bfad9f917ff3f837e00c6538a8b95d2e0a6fdf9" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1268,21 +1330,21 @@ dependencies = [ [[package]] name = "fuel-core-database" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5b8f8f12e8b7dfa5e68ee32cbecfba2e8aa2a06b930fd181f0b4ae71652484" +checksum = "fb7b7cd46a2de1df8c71b4541bf19e09870965cb6ac72ee564170f9bcc8df909" dependencies = [ "anyhow", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", ] [[package]] name = "fuel-core-executor" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0dc752bfd46dee5ab51fd46f13858b9aa85865ba76d180c9c8e3cc0b25949b" +checksum = "f4a5ed529258ded68048806b150e190ab03dc399bdd5547096525c3419cca188" dependencies = [ "anyhow", "fuel-core-chain-config", @@ -1292,36 +1354,39 @@ dependencies = [ [[package]] name = "fuel-core-importer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0989eb91e18f3541b7a690ed3bca92521939e80f507a08ce0fd6d8bf34cf1eb" +checksum = "acd700b679be3cda7561f46778aa136ba4af1048570e116d8eb1d3e0f0a316a9" dependencies = [ "anyhow", + "derive_more", + "fuel-core-metrics", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tracing", ] [[package]] name = "fuel-core-metrics" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e1a1187a91f1df5808c8416137623f119f058f6c6e2710d43c58744e9fa14" +checksum = "0f87fec36f415dd9cdc2f723f018c30985bbeeadbc7e066e27fc79f3a3e2e6f3" dependencies = [ "axum", - "lazy_static", "once_cell", + "pin-project-lite", "prometheus-client 0.18.1", "prometheus-client 0.20.0", + "regex", + "tracing", ] [[package]] name = "fuel-core-poa" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e15616957477d7c37f5845d58abcb13f8ab9a7f526a499a795bb7b8618c6e238" +checksum = "93ef8dd121e59450d695435af4dea14d60acb41195cdd2dc64d3980aef42fbd9" dependencies = [ "anyhow", "async-trait", @@ -1336,15 +1401,15 @@ dependencies = [ [[package]] name = "fuel-core-producer" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df203c0e56c1827831a363e895aea7c9c642c18f1a57adbdd8ac6c4e115231dc" +checksum = "e85951fa8159a4698a6d523fc44fd3659b9db63800fcfd9619f4283a568296ce" dependencies = [ "anyhow", "async-trait", + "derive_more", "fuel-core-storage", "fuel-core-types", - "thiserror", "tokio", "tokio-rayon", "tracing", @@ -1352,12 +1417,13 @@ dependencies = [ [[package]] name = "fuel-core-services" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ecc615cb429744e1783db0d5b30dd01ec0d73c675f47964e62edc1f01b40ac2" +checksum = "f2a3a0ed906c332d13802209ab5839d81e464abd14307b75f58550cf0de30430" dependencies = [ "anyhow", "async-trait", + "fuel-core-metrics", "futures", "parking_lot", "tokio", @@ -1366,21 +1432,21 @@ dependencies = [ [[package]] name = "fuel-core-storage" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed1d03eb74feb0ea8538ab557e52c7bc4f1a1c3aaafba9076038da256d86920" +checksum = "33b84df7585c184d79c342833321db43c610d38bccf913acdf526e64fd292ab2" dependencies = [ "anyhow", + "derive_more", "fuel-core-types", "fuel-vm", - "thiserror", ] [[package]] name = "fuel-core-txpool" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d563ceae0ed89ed34f78a7835d15a40ef9d35c9b260b622049335e6c8deb884f" +checksum = "943dec1ff13cd4fcd3c0f9ae826be09de1520bab5565916ec91cb31429c59f9a" dependencies = [ "anyhow", "async-trait", @@ -1389,17 +1455,19 @@ dependencies = [ "fuel-core-services", "fuel-core-storage", "fuel-core-types", + "futures", "parking_lot", "tokio", + "tokio-rayon", "tokio-stream", "tracing", ] [[package]] name = "fuel-core-types" -version = "0.18.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059da83a7e012a438c9962cbfe1e1b2d3e04f67a75d5be8899009b6456b04002" +checksum = "91b55088841f6211b3ba452687c301fee4b9d1cf52dc6fc47f940a6681336cff" dependencies = [ "anyhow", "derive_more", @@ -1413,55 +1481,73 @@ dependencies = [ [[package]] name = "fuel-crypto" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3f73571a03523cb92826003753ff1bdd1882767e67801de223ce3ad6133349" +checksum = "33bea0932fec1e3c77be1fd54439ee9947d8d05870631d1c83782e5b1bd8eb0a" dependencies = [ - "borrown", "coins-bip32", "coins-bip39", + "ecdsa", + "ed25519-dalek", "fuel-types", + "k256", "lazy_static", + "p256", "rand", "secp256k1", "serde", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] +[[package]] +name = "fuel-derive" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597adf13a46bdcc1e7e19fa9f9b8743106e5e5a9867a71c50e1bc6c899ba4ae8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "synstructure", +] + [[package]] name = "fuel-merkle" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5646d95e02a63fd59da942fcf5d6217dbd8b6866c1ad3a0232be0913c4d077" +checksum = "5a68333d5e0869ad89fcd4284b2790ba60edd5c0c63cec30713289cc820ed7ab" dependencies = [ + "derive_more", "digest 0.10.7", "fuel-storage", "hashbrown 0.13.2", "hex", - "sha2 0.10.7", - "thiserror", + "serde", + "sha2 0.10.8", ] [[package]] name = "fuel-storage" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b72444da90354b6d1d220b81c6803085689f5e7d53e1d4bd11cfa3d4c5a1b27" +checksum = "9f20bd8cac585ccd5c51478c341b7e9807942d80e1c0e00a9b2cec8a3fb3879b" [[package]] name = "fuel-tx" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04187579ecfbb04a380c60f9eecae1a288dbe463c111dc7dde66fa736445a638" +checksum = "c32cd8e0015a8c6091c43f7149119e1812f2208243921c50f83c72c8055635e1" dependencies = [ + "bitflags 2.4.1", "derivative", + "derive_more", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-types", - "itertools", - "num-integer", + "hashbrown 0.14.0", + "itertools 0.10.5", "rand", "serde", "serde_json", @@ -1471,10 +1557,11 @@ dependencies = [ [[package]] name = "fuel-types" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6543ca2f5124a19b1486507243188a57be64c9914d1908e154a1866eeffb69" +checksum = "ee3eda536ec1c1c7b0e06bf4a2d7b22980a79108c66ab8f81661433b2211e21e" dependencies = [ + "fuel-derive", "hex", "rand", "serde", @@ -1482,31 +1569,40 @@ dependencies = [ [[package]] name = "fuel-vm" -version = "0.31.2" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d42e99fe69e913bbde4900f96efb6ceae13b68d369bf22d4b435571d6ed7d65" +checksum = "fef3adfffe707feb335819119351a8f0c83b2113ab010714e262f60e87959546" dependencies = [ - "bitflags 1.3.2", + "async-trait", + "backtrace", + "bitflags 2.4.1", "derivative", + "derive_more", + "ethnum", "fuel-asm", "fuel-crypto", "fuel-merkle", "fuel-storage", "fuel-tx", "fuel-types", - "itertools", - "rand", + "hashbrown 0.14.0", + "itertools 0.10.5", + "libm", + "paste", + "percent-encoding", + "primitive-types", "serde", "sha3", + "static_assertions", + "strum", "tai64", - "thiserror", ] [[package]] name = "fuels" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa81d69072a9d4ba6fac79d9b5b66348daf95089ecda85a9231e41e5dd45bc85" +checksum = "d8ad2e6a398d3ea13edd540c29d9e6452bc3e690ab763f5373ba960f17cdae4d" dependencies = [ "fuel-core", "fuel-core-client", @@ -1520,12 +1616,11 @@ dependencies = [ [[package]] name = "fuels-accounts" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a03259b1ece608c33541477fed7dea07bb3e78f25f85a8a3060f6501d6e982" +checksum = "fa6f6435a6631577fa20aedbd88c4e59d9f1541a6bbb3a7b63715e40c15790f0" dependencies = [ "async-trait", - "bytes", "chrono", "elliptic-curve", "eth-keystore", @@ -1536,118 +1631,106 @@ dependencies = [ "fuel-vm", "fuels-core", "hex", - "itertools", "rand", - "serde", - "sha2 0.10.7", + "semver", "tai64", "thiserror", "tokio", + "tracing", + "zeroize", ] [[package]] name = "fuels-code-gen" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e8ec25373ed1ae06cfe53afc4e3ecd6057aa4ff3a3329e40f42784afe21726b" +checksum = "7a76d2517cebc47be8723312e80634b6389e0c5db34663bd1360afee504f0cfb" dependencies = [ "Inflector", "fuel-abi-types", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "regex", "serde_json", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "fuels-core" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b133aff726340284937e3233b8c9dd8429812dd463e4e6f53373ca13e644c99" +checksum = "c9a98b3217932b1f8f639fd4c1268923f0862166fecf7a897c3c2bd5bae8706d" dependencies = [ + "async-trait", "bech32 0.9.1", "chrono", "fuel-abi-types", "fuel-asm", "fuel-core-chain-config", "fuel-core-client", + "fuel-crypto", "fuel-tx", "fuel-types", "fuel-vm", "fuels-macros", "hex", - "itertools", - "proc-macro2", - "regex", + "itertools 0.12.0", "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", + "sha2 0.10.8", "thiserror", + "uint", + "zeroize", ] [[package]] name = "fuels-macros" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef684e13ddc8b16f7828dc98ca309f69a6516068bb307c78b8e64aaf010b397" +checksum = "e1cb90a892ac4b1acfd6f383a7505ce5f33764495adcf9c34371bbcabf9a4042" dependencies = [ - "Inflector", - "fuel-abi-types", "fuels-code-gen", - "itertools", + "itertools 0.12.0", "proc-macro2", "quote", "rand", - "regex", - "serde_json", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "fuels-programs" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e582cc270a794e02e40150f79d2a92830bf5adaaadf4147de02689ae17c287" +checksum = "3d9fd3a7722685ba45a6794374f44530732f4f2f43f507eb1ec6fd0656abacf8" dependencies = [ "async-trait", "bytes", "fuel-abi-types", + "fuel-asm", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", - "hex", - "itertools", - "proc-macro2", + "itertools 0.12.0", "rand", - "regex", - "serde", "serde_json", - "sha2 0.10.7", - "strum", - "strum_macros", - "thiserror", "tokio", ] [[package]] name = "fuels-test-helpers" -version = "0.43.0" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3b0f1475beb61ad66163dc57234170b7319aacf79d9147a28c7ff43cc6fd8f0" +checksum = "d5742db9887960bbd58bf0b7cb3b0adaa5e29ce4bd667d1063bbe12491c52852" dependencies = [ "fuel-core", "fuel-core-chain-config", "fuel-core-client", - "fuel-core-types", + "fuel-core-poa", + "fuel-core-services", "fuel-tx", "fuel-types", - "fuel-vm", "fuels-accounts", "fuels-core", "futures", @@ -1656,7 +1739,7 @@ dependencies = [ "rand", "serde", "serde_json", - "serde_with 2.3.3", + "serde_with 3.4.0", "tempfile", "tokio", "which", @@ -1724,7 +1807,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -1777,7 +1860,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1856,6 +1939,11 @@ name = "hashbrown" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] [[package]] name = "heapless" @@ -1901,6 +1989,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.9" @@ -1958,7 +2055,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -2121,26 +2218,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys", -] - [[package]] name = "ipnet" version = "2.8.0" @@ -2154,7 +2231,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ "hermit-abi", - "rustix 0.38.3", + "rustix", "windows-sys", ] @@ -2167,6 +2244,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.8" @@ -2192,7 +2278,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.7", + "sha2 0.10.8", "signature", ] @@ -2213,21 +2299,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] -name = "linux-raw-sys" -version = "0.3.8" +name = "libm" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "linux-raw-sys" -version = "0.4.3" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" [[package]] name = "lock_api" @@ -2259,9 +2345,9 @@ checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" @@ -2289,12 +2375,12 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys", ] @@ -2316,16 +2402,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.15" @@ -2372,6 +2448,18 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.8", +] + [[package]] name = "parity-scale-codec" version = "3.6.3" @@ -2416,11 +2504,17 @@ checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.3.5", "smallvec", "windows-targets", ] +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + [[package]] name = "pbkdf2" version = "0.11.0" @@ -2473,14 +2567,14 @@ checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2498,6 +2592,12 @@ dependencies = [ "spki", ] +[[package]] +name = "platforms" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" + [[package]] name = "portpicker" version = "0.1.1" @@ -2524,6 +2624,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "primeorder" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7dbe9ed3b56368bd99483eb32fe9c17fdd3730aebadc906918ce78d54c7eeb4" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.1" @@ -2547,9 +2656,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.64" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78803b62cbf1f46fde80d7c0e803111524b9877184cfe7c3033659490ac7a7da" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] @@ -2618,9 +2727,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.29" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2698,11 +2807,20 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" -version = "1.9.1" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", @@ -2712,9 +2830,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", @@ -2723,9 +2841,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.3" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" @@ -2825,28 +2943,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys", -] - -[[package]] -name = "rustix" -version = "0.38.3" +version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5ffa1efe7548069688cd7028f32591853cd7b5b756d41bcffd2353e4fc75b4" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.1", "errno", "libc", - "linux-raw-sys 0.4.3", + "linux-raw-sys", "windows-sys", ] @@ -2958,6 +3062,32 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "schemafy_core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41781ae092f4fd52c9287efb74456aea0d3b90032d2ecad272bd14dbbcb0511b" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "schemafy_lib" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e953db32579999ca98c451d80801b6f6a7ecba6127196c5387ec0774c528befa" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "schemafy_core", + "serde", + "serde_derive", + "serde_json", + "syn 1.0.109", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -2973,7 +3103,7 @@ dependencies = [ "hmac", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -3063,35 +3193,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.169" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd51c3db8f9500d531e6c12dd0fd4ad13d133e9117f5aebac3cdbb8b6d9824b0" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.169" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27738cfea0d944ab72c3ed01f3d5f23ec4322af8a1431e40ce630e4c01ea74fd" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.100" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f1e14e89be7aa4c4b78bdbdc9eb5bf8517829a600ae8eaa39a6e1d960b5185c" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -3122,9 +3252,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.3" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "serde", ] @@ -3156,9 +3286,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3219,6 +3349,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "spin" version = "0.5.2" @@ -3303,9 +3443,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.24" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36ccaf716a23c35ff908f91c971a86a9a71af5998c1d8f10e828d9f55f68ac00" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -3318,6 +3458,18 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "285ba80e733fac80aa4270fbcdf83772a79b80aa35c97075320abfee4a915b06" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "unicode-xid", +] + [[package]] name = "tai64" version = "4.0.0" @@ -3335,47 +3487,35 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.6.0" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ - "autocfg", "cfg-if", "fastrand", - "redox_syscall", - "rustix 0.37.23", + "redox_syscall 0.4.1", + "rustix", "windows-sys", ] [[package]] name = "thiserror" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "syn 2.0.39", ] [[package]] @@ -3430,11 +3570,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3443,7 +3582,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.5", "tokio-macros", "windows-sys", ] @@ -3460,13 +3599,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -3573,6 +3712,7 @@ dependencies = [ "http-body", "http-range-header", "pin-project-lite", + "tokio", "tower", "tower-layer", "tower-service", @@ -3612,7 +3752,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] [[package]] @@ -3687,6 +3827,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + [[package]] name = "unreachable" version = "1.0.0" @@ -3729,6 +3875,15 @@ dependencies = [ "serde", ] +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +dependencies = [ + "getrandom", +] + [[package]] name = "version_check" version = "0.9.4" @@ -3750,12 +3905,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3783,7 +3932,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", "wasm-bindgen-shared", ] @@ -3817,7 +3966,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3878,13 +4027,15 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", + "windows-sys", ] [[package]] @@ -4028,5 +4179,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.24", + "syn 2.0.39", ] diff --git a/timelock/project/Forc.lock b/timelock/project/Forc.lock index 8626674f7..aa04a0cf3 100644 --- a/timelock/project/Forc.lock +++ b/timelock/project/Forc.lock @@ -1,13 +1,13 @@ [[package]] -name = 'core' -source = 'path+from-root-9BFE6D5D0CBDF740' +name = "core" +source = "path+from-root-C3992B43B72ADB8C" [[package]] -name = 'std' -source = 'git+https://github.com/fuellabs/sway?tag=v0.42.1#3b66f8e424bd21e3ba467783b10b36e808cfa6ee' -dependencies = ['core'] +name = "std" +source = "git+https://github.com/fuellabs/sway?tag=v0.49.1#2ac7030570f22510b0ac2a7b5ddf7baa20bdc0e1" +dependencies = ["core"] [[package]] -name = 'timelock-contract' -source = 'member' -dependencies = ['std'] +name = "timelock-contract" +source = "member" +dependencies = ["std"] diff --git a/timelock/project/contracts/timelock-contract/Cargo.toml b/timelock/project/contracts/timelock-contract/Cargo.toml index 328f92b0f..fc6814a6c 100644 --- a/timelock/project/contracts/timelock-contract/Cargo.toml +++ b/timelock/project/contracts/timelock-contract/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] -fuels = { version = "0.43.0", features = ["fuel-core-lib"] } +fuels = { version = "0.53.0", features = ["fuel-core-lib"] } tokio = { version = "1.12", features = ["rt", "macros"] } [[test]] diff --git a/timelock/project/contracts/timelock-contract/src/data_structures.sw b/timelock/project/contracts/timelock-contract/src/data_structures.sw index cd288f22e..a7e85d5b2 100644 --- a/timelock/project/contracts/timelock-contract/src/data_structures.sw +++ b/timelock/project/contracts/timelock-contract/src/data_structures.sw @@ -5,7 +5,7 @@ pub struct Asset { /// The quantity of an asset. amount: u64, /// Identifier used to distinguish assets. - id: ContractId, + id: AssetId, } /// Represents the time range in which a transaction may be executed. diff --git a/timelock/project/contracts/timelock-contract/src/errors.sw b/timelock/project/contracts/timelock-contract/src/errors.sw index b11616733..038807c1e 100644 --- a/timelock/project/contracts/timelock-contract/src/errors.sw +++ b/timelock/project/contracts/timelock-contract/src/errors.sw @@ -23,3 +23,19 @@ pub enum TransactionError { /// The order of the values is (start_timestamp, end_timestamp, your_timestamp). TimestampNotInRange: (u64, u64, u64), } + +impl AbiEncode for TransactionError { + fn abi_encode(self, ref mut buffer: Buffer) { + match self { + Self::DuplicateTransaction(value) => { + buffer.push(value); + }, + Self::InvalidTransaction(value) => { + buffer.push(value); + }, + Self::TimestampNotInRange(value) => { + buffer.push(value); + } + } + } +} diff --git a/timelock/project/contracts/timelock-contract/src/interface.sw b/timelock/project/contracts/timelock-contract/src/interface.sw index f8f3c4877..937da7163 100644 --- a/timelock/project/contracts/timelock-contract/src/interface.sw +++ b/timelock/project/contracts/timelock-contract/src/interface.sw @@ -33,7 +33,12 @@ abi Timelock { /// * When the execution occurs outside of the available time range. /// * When the contract does not have enough of the asset to transfer. #[storage(read, write)] - fn execute(recipient: Identity, asset: Option, data: Option, timestamp: u64); + fn execute( + recipient: Identity, + asset: Option, + data: Option, + timestamp: u64, + ); /// Stores a transaction for future execution. /// @@ -50,7 +55,12 @@ abi Timelock { /// * When the transaction id already exists. /// * When the timestamp is outside of the valid MINIMUM_DELAY / MAXIMUM_DELAY range. #[storage(read, write)] - fn queue(recipient: Identity, asset: Option, data: Option, timestamp: u64); + fn queue( + recipient: Identity, + asset: Option, + data: Option, + timestamp: u64, + ); } abi Info { @@ -58,12 +68,12 @@ abi Info { /// /// # Arguments /// - /// * `asset_id`: [ContractId] - The identifier of an asset. + /// * `asset_id`: [AssetId] - The identifier of an asset. /// /// # Returns /// /// * [u64] - The amount of `asset_id` in the contract. - fn balance(asset_id: ContractId) -> u64; + fn balance(asset_id: AssetId) -> u64; /// Returns the delay values. /// @@ -97,5 +107,10 @@ abi Info { /// # Returns /// /// * [b256] - The hash of the transaction arguments. - fn transaction_hash(recipient: Identity, asset: Option, data: Option, timestamp: u64) -> b256; + fn transaction_hash( + recipient: Identity, + asset: Option, + data: Option, + timestamp: u64, + ) -> b256; } diff --git a/timelock/project/contracts/timelock-contract/src/main.sw b/timelock/project/contracts/timelock-contract/src/main.sw index 0b0ea8a3a..ec3bc89e8 100644 --- a/timelock/project/contracts/timelock-contract/src/main.sw +++ b/timelock/project/contracts/timelock-contract/src/main.sw @@ -12,10 +12,11 @@ use ::events::{CancelEvent, ExecuteEvent, QueueEvent}; use ::interface::{Info, Timelock}; use std::{ auth::msg_sender, - block::timestamp as now, + block::timestamp, bytes::Bytes, call_frames::msg_asset_id, context::this_balance, + hash::Hash, }; use ::utils::create_hash; @@ -33,8 +34,19 @@ storage { impl Timelock for Contract { #[storage(read, write)] fn cancel(id: b256) { - require(msg_sender().unwrap() == ADMIN, AccessControlError::AuthorizationError); - require(storage.queue.get(id).try_read().is_some(), TransactionError::InvalidTransaction(id)); + require( + msg_sender() + .unwrap() == ADMIN, + AccessControlError::AuthorizationError, + ); + require( + storage + .queue + .get(id) + .try_read() + .is_some(), + TransactionError::InvalidTransaction(id), + ); assert(storage.queue.remove(id)); @@ -46,22 +58,40 @@ impl Timelock for Contract { recipient: Identity, asset: Option, data: Option, - timestamp: u64, + time: u64, ) { - require(msg_sender().unwrap() == ADMIN, AccessControlError::AuthorizationError); + require( + msg_sender() + .unwrap() == ADMIN, + AccessControlError::AuthorizationError, + ); - let id = create_hash(recipient, asset, data, timestamp); + let id = create_hash(recipient, asset, data, time); let transaction = storage.queue.get(id).try_read(); - require(transaction.is_some(), TransactionError::InvalidTransaction(id)); + require( + transaction + .is_some(), + TransactionError::InvalidTransaction(id), + ); // Timestamp is guaranteed to be in the range because of `fn queue()` // Therefore, the lower bound can be the timestamp itself; but, we must place an upper bound // to prevent going over the MAXIMUM_DELAY - require(timestamp <= now() && now() <= transaction.unwrap().end, TransactionError::TimestampNotInRange((timestamp, transaction.unwrap().end, now()))); + require( + time <= timestamp() && timestamp() <= transaction + .unwrap() + .end, + TransactionError::TimestampNotInRange((time, transaction.unwrap().end, timestamp())), + ); if asset.is_some() { - require(asset.unwrap().amount <= this_balance(asset.unwrap().id), FundingError::InsufficientContractBalance((this_balance(asset.unwrap().id)))); + require( + asset + .unwrap() + .amount <= this_balance(asset.unwrap().id), + FundingError::InsufficientContractBalance((this_balance(asset.unwrap().id))), + ); } assert(storage.queue.remove(id)); @@ -72,7 +102,7 @@ impl Timelock for Contract { data, id, recipient, - timestamp, + timestamp: time, }) } @@ -81,19 +111,30 @@ impl Timelock for Contract { recipient: Identity, asset: Option, data: Option, - timestamp: u64, + time: u64, ) { - require(msg_sender().unwrap() == ADMIN, AccessControlError::AuthorizationError); + require( + msg_sender() + .unwrap() == ADMIN, + AccessControlError::AuthorizationError, + ); - let id = create_hash(recipient, asset, data, timestamp); + let id = create_hash(recipient, asset, data, time); let transaction = storage.queue.get(id).try_read(); - require(transaction.is_none(), TransactionError::DuplicateTransaction(id)); + require( + transaction + .is_none(), + TransactionError::DuplicateTransaction(id), + ); - let start = now() + MINIMUM_DELAY; - let end = now() + MAXIMUM_DELAY; + let start = timestamp() + MINIMUM_DELAY; + let end = timestamp() + MAXIMUM_DELAY; - require(start <= timestamp && timestamp <= end, TransactionError::TimestampNotInRange((start, end, timestamp))); + require( + start <= time && time <= end, + TransactionError::TimestampNotInRange((start, end, time)), + ); storage.queue.insert(id, ExecutionRange { start, end }); @@ -102,13 +143,13 @@ impl Timelock for Contract { data, id, recipient, - timestamp, + timestamp: time, }) } } impl Info for Contract { - fn balance(asset_id: ContractId) -> u64 { + fn balance(asset_id: AssetId) -> u64 { this_balance(asset_id) } diff --git a/timelock/project/contracts/timelock-contract/src/utils.sw b/timelock/project/contracts/timelock-contract/src/utils.sw index 04866a2da..d94c21395 100644 --- a/timelock/project/contracts/timelock-contract/src/utils.sw +++ b/timelock/project/contracts/timelock-contract/src/utils.sw @@ -1,7 +1,28 @@ library; use ::data_structures::Asset; -use std::{bytes::Bytes, hash::sha256}; +use std::{bytes::Bytes, hash::{Hash, Hasher, sha256}}; + +impl Hash for Option { + fn hash(self, ref mut state: Hasher) { + match self { + Some(bytes) => bytes.hash(state), + None => 0.hash(state), + } + } +} + +impl Hash for Option { + fn hash(self, ref mut state: Hasher) { + match self { + Some(asset) => { + asset.amount.hash(state); + asset.id.hash(state); + }, + None => 0.hash(state), + } + } +} /// Creates a transaction id as a hash of the transaction data. /// diff --git a/timelock/project/contracts/timelock-contract/tests/harness.rs b/timelock/project/contracts/timelock-contract/tests/harness.rs index 703a00da7..c83f60b93 100644 --- a/timelock/project/contracts/timelock-contract/tests/harness.rs +++ b/timelock/project/contracts/timelock-contract/tests/harness.rs @@ -1,3 +1,2 @@ -// TODO: Sway Bytes library type is not yet supported so CI fails. We cannot test until it is supported // mod functions; // mod utils; diff --git a/timelock/project/contracts/timelock-contract/tests/utils/setup.rs b/timelock/project/contracts/timelock-contract/tests/utils/setup.rs index 52f53eca7..01d6cb07f 100644 --- a/timelock/project/contracts/timelock-contract/tests/utils/setup.rs +++ b/timelock/project/contracts/timelock-contract/tests/utils/setup.rs @@ -1,7 +1,7 @@ use fuels::{ accounts::wallet::WalletUnlocked, prelude::{ - abigen, launch_custom_provider_and_get_wallets, Contract, LoadConfiguration, TxParameters, + abigen, launch_custom_provider_and_get_wallets, Contract, LoadConfiguration, TxPolicies, WalletsConfig, }, }; @@ -27,14 +27,15 @@ pub async fn setup() -> (Timelock, WalletUnlocked, WalletUnlocke None, None, ) - .await; + .await + .unwrap(); let wallet = wallets.pop().unwrap(); let wallet2 = wallets.pop().unwrap(); let id = Contract::load_from(TIMELOCK_CONTRACT_BINARY_PATH, LoadConfiguration::default()) .unwrap() - .deploy(&wallet, TxParameters::default()) + .deploy(&wallet, TxPolicies::default()) .await .unwrap(); diff --git a/timelock/project/fuel-toolchain.toml b/timelock/project/fuel-toolchain.toml index d6c71fc3d..e75c0bb58 100644 --- a/timelock/project/fuel-toolchain.toml +++ b/timelock/project/fuel-toolchain.toml @@ -1,6 +1,6 @@ [toolchain] -channel = "latest-2023-07-07" +channel = "nightly-2024-01-24" [components] -forc = "0.42.1" -fuel-core = "0.18.2" +forc = "0.49.1" +fuel-core = "0.22.0"