diff --git a/Cargo.lock b/Cargo.lock index 4922f3defe..5282e4f053 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,9 +17,9 @@ name = "abi-tester" version = "0.0.0" dependencies = [ "bitflags 2.11.0", - "multiversx-sc", - "multiversx-sc-meta-lib", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -27,15 +27,15 @@ name = "abi-tester-meta" version = "0.0.0" dependencies = [ "abi-tester", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "adder" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -43,7 +43,7 @@ name = "adder-meta" version = "0.0.0" dependencies = [ "adder", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -97,8 +97,8 @@ dependencies = [ name = "alloc-features" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -106,7 +106,7 @@ name = "alloc-features-meta" version = "0.0.0" dependencies = [ "alloc-features", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -243,9 +243,9 @@ name = "basic-features" version = "0.0.0" dependencies = [ "esdt-system-sc-mock", - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -254,12 +254,12 @@ version = "0.0.0" dependencies = [ "basic-features", "clap", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "serde", "serial_test", "system-sc-interact", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -267,7 +267,7 @@ name = "basic-features-meta" version = "0.0.0" dependencies = [ "basic-features", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -276,11 +276,11 @@ version = "0.0.0" dependencies = [ "adder", "clap", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "serde", "serial_test", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -293,16 +293,16 @@ checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" name = "benchmark-common" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "big-float-features" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -310,7 +310,7 @@ name = "big-float-features-meta" version = "0.0.0" dependencies = [ "big-float-features", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -389,9 +389,9 @@ dependencies = [ name = "bonding-curve-contract" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -399,7 +399,7 @@ name = "bonding-curve-contract-meta" version = "0.0.0" dependencies = [ "bonding-curve-contract", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -416,8 +416,8 @@ dependencies = [ name = "builtin-func-features" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -425,7 +425,7 @@ name = "builtin-func-features-meta" version = "0.0.0" dependencies = [ "builtin-func-features", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -551,9 +551,9 @@ dependencies = [ name = "check-pause" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", "num-bigint", ] @@ -562,15 +562,15 @@ name = "check-pause-meta" version = "0.0.0" dependencies = [ "check-pause", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "child" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -578,8 +578,8 @@ name = "child-meta" version = "0.0.0" dependencies = [ "child", - "multiversx-sc", - "multiversx-sc-meta-lib", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -730,8 +730,8 @@ dependencies = [ "forwarder-legacy", "forwarder-raw", "mesh-node", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "proxy-test-first", "proxy-test-second", "recursive-caller", @@ -928,8 +928,8 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" name = "crowdfunding" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -937,8 +937,8 @@ name = "crowdfunding-erc20" version = "0.0.0" dependencies = [ "erc20", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -946,7 +946,7 @@ name = "crowdfunding-erc20-meta" version = "0.0.0" dependencies = [ "crowdfunding-erc20", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -954,7 +954,7 @@ name = "crowdfunding-meta" version = "0.0.0" dependencies = [ "crowdfunding", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -967,8 +967,8 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" name = "crypto-bubbles" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -976,7 +976,7 @@ name = "crypto-bubbles-meta" version = "0.0.0" dependencies = [ "crypto-bubbles", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -993,8 +993,8 @@ dependencies = [ name = "crypto-zombies" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1002,7 +1002,7 @@ name = "crypto-zombies-meta" version = "0.0.0" dependencies = [ "crypto-zombies", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1094,10 +1094,10 @@ name = "delegation-sc-interact" version = "0.0.0" dependencies = [ "clap", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "serde", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -1159,8 +1159,8 @@ dependencies = [ name = "digital-cash" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1168,7 +1168,7 @@ name = "digital-cash-meta" version = "0.0.0" dependencies = [ "digital-cash", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1249,8 +1249,8 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" name = "empty" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "num-bigint", ] @@ -1259,7 +1259,7 @@ name = "empty-meta" version = "0.0.0" dependencies = [ "empty", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1352,8 +1352,8 @@ name = "erc1155" version = "0.0.0" dependencies = [ "erc1155-user-mock", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1361,8 +1361,8 @@ name = "erc1155-marketplace" version = "0.0.0" dependencies = [ "erc1155", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1370,7 +1370,7 @@ name = "erc1155-marketplace-meta" version = "0.0.0" dependencies = [ "erc1155-marketplace", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1378,15 +1378,15 @@ name = "erc1155-meta" version = "0.0.0" dependencies = [ "erc1155", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "erc1155-user-mock" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1394,15 +1394,15 @@ name = "erc1155-user-mock-meta" version = "0.0.0" dependencies = [ "erc1155-user-mock", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "erc20" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1410,15 +1410,15 @@ name = "erc20-meta" version = "0.0.0" dependencies = [ "erc20", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "erc721" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1426,7 +1426,7 @@ name = "erc721-meta" version = "0.0.0" dependencies = [ "erc721", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1444,8 +1444,8 @@ name = "esdt-contract-pair" version = "0.0.0" dependencies = [ "first-contract", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "second-contract", ] @@ -1453,8 +1453,8 @@ dependencies = [ name = "esdt-system-sc-mock" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1462,15 +1462,15 @@ name = "esdt-system-sc-mock-meta" version = "0.0.0" dependencies = [ "esdt-system-sc-mock", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "esdt-transfer-with-fee" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1478,15 +1478,15 @@ name = "esdt-transfer-with-fee-meta" version = "0.0.0" dependencies = [ "esdt-transfer-with-fee", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "exchange-features" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1494,15 +1494,15 @@ name = "exchange-features-meta" version = "0.0.0" dependencies = [ "exchange-features", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "factorial" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1510,14 +1510,14 @@ name = "factorial-meta" version = "0.0.0" dependencies = [ "factorial", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "factory-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "order-book-factory", ] @@ -1554,8 +1554,8 @@ checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" name = "first-contract" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1563,8 +1563,8 @@ name = "first-contract-meta" version = "0.0.0" dependencies = [ "first-contract", - "multiversx-sc", - "multiversx-sc-meta-lib", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1609,8 +1609,8 @@ dependencies = [ name = "formatted-message-features" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1618,23 +1618,23 @@ name = "formatted-message-features-meta" version = "0.0.0" dependencies = [ "formatted-message-features", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "forwarder" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "forwarder-blind" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1643,11 +1643,11 @@ version = "0.0.0" dependencies = [ "clap", "forwarder-blind", - "multiversx-sc", - "multiversx-sc-snippets", + "multiversx-sc 0.65.1", + "multiversx-sc-snippets 0.65.1", "serde", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -1655,7 +1655,7 @@ name = "forwarder-blind-meta" version = "0.0.0" dependencies = [ "forwarder-blind", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1664,18 +1664,18 @@ version = "0.0.0" dependencies = [ "clap", "forwarder", - "multiversx-sc", - "multiversx-sc-snippets", + "multiversx-sc 0.65.1", + "multiversx-sc-snippets 0.65.1", "serde", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] name = "forwarder-legacy" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "vault", ] @@ -1684,7 +1684,7 @@ name = "forwarder-legacy-meta" version = "0.0.0" dependencies = [ "forwarder-legacy", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1692,15 +1692,15 @@ name = "forwarder-meta" version = "0.0.0" dependencies = [ "forwarder", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "forwarder-raw" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1708,16 +1708,16 @@ name = "forwarder-raw-meta" version = "0.0.0" dependencies = [ "forwarder-raw", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "fractional-nfts" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -1725,7 +1725,7 @@ name = "fractional-nfts-meta" version = "0.0.0" dependencies = [ "fractional-nfts", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -1829,7 +1829,7 @@ dependencies = [ "clap", "convert_case 0.11.0", "env_logger", - "multiversx-chain-vm", + "multiversx-chain-vm 0.22.1", "tokio", ] @@ -2143,11 +2143,11 @@ version = "0.0.0" dependencies = [ "clap", "delegation-sc-interact", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "payable-interactor", "serde", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -2660,7 +2660,7 @@ dependencies = [ name = "kitty" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "random", ] @@ -2670,8 +2670,8 @@ version = "0.0.0" dependencies = [ "kitty", "kitty-ownership", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -2679,7 +2679,7 @@ name = "kitty-auction-meta" version = "0.0.0" dependencies = [ "kitty-auction", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -2687,8 +2687,8 @@ name = "kitty-genetic-alg" version = "0.0.0" dependencies = [ "kitty", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "random", ] @@ -2697,7 +2697,7 @@ name = "kitty-genetic-alg-meta" version = "0.0.0" dependencies = [ "kitty-genetic-alg", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -2706,8 +2706,8 @@ version = "0.0.0" dependencies = [ "kitty", "kitty-genetic-alg", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "random", ] @@ -2716,15 +2716,15 @@ name = "kitty-ownership-meta" version = "0.0.0" dependencies = [ "kitty-ownership", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "large-storage" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -2732,7 +2732,7 @@ name = "large-storage-meta" version = "0.0.0" dependencies = [ "large-storage", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -2791,8 +2791,8 @@ name = "linked-list-repeat" version = "0.0.0" dependencies = [ "benchmark-common", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -2800,7 +2800,7 @@ name = "linked-list-repeat-meta" version = "0.0.0" dependencies = [ "linked-list-repeat", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -2819,8 +2819,8 @@ checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" name = "local-esdt-and-nft" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -2828,7 +2828,7 @@ name = "local-esdt-and-nft-meta" version = "0.0.0" dependencies = [ "local-esdt-and-nft", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -2851,8 +2851,8 @@ name = "lottery-erc20" version = "0.0.0" dependencies = [ "erc20", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -2860,15 +2860,15 @@ name = "lottery-erc20-meta" version = "0.0.0" dependencies = [ "lottery-erc20", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "lottery-esdt" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -2876,7 +2876,7 @@ name = "lottery-esdt-meta" version = "0.0.0" dependencies = [ "lottery-esdt", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -2925,13 +2925,29 @@ dependencies = [ "zerocopy-derive", ] +[[package]] +name = "managed-map-benchmark" +version = "0.0.0" +dependencies = [ + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", +] + +[[package]] +name = "managed-map-benchmark-meta" +version = "0.0.0" +dependencies = [ + "managed-map-benchmark", + "multiversx-sc-meta-lib 0.65.1", +] + [[package]] name = "map-repeat" version = "0.0.0" dependencies = [ "benchmark-common", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -2939,7 +2955,7 @@ name = "map-repeat-meta" version = "0.0.0" dependencies = [ "map-repeat", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -2981,19 +2997,19 @@ version = "0.0.0" dependencies = [ "clap", "mesh-node", - "multiversx-sc", - "multiversx-sc-snippets", + "multiversx-sc 0.65.1", + "multiversx-sc-snippets 0.65.1", "serde", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] name = "mesh-node" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "multiversx-sc-wasm-adapter", ] @@ -3002,7 +3018,7 @@ name = "mesh-node-meta" version = "0.0.0" dependencies = [ "mesh-node", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -3048,8 +3064,8 @@ checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" name = "multi-contract-features" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -3057,16 +3073,16 @@ name = "multi-contract-features-meta" version = "0.0.0" dependencies = [ "multi-contract-features", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] name = "multisig" version = "1.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -3075,13 +3091,13 @@ version = "0.0.0" dependencies = [ "clap", "multisig", - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", - "multiversx-sc-snippets", + "multiversx-sc-scenario 0.65.1", + "multiversx-sc-snippets 0.65.1", "serde", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -3089,7 +3105,7 @@ name = "multisig-meta" version = "0.0.0" dependencies = [ "multisig", - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -3109,7 +3125,20 @@ dependencies = [ "bech32", "bitflags 2.11.0", "hex", - "multiversx-sc-codec", + "multiversx-sc-codec 0.25.0", + "serde", +] + +[[package]] +name = "multiversx-chain-core" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "260cd3b8848b79c86ea4dbde4906db6d61d01d9fa9050b2c1d2d9ac549b80a43" +dependencies = [ + "bech32", + "bitflags 2.11.0", + "hex", + "multiversx-sc-codec 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde", ] @@ -3126,6 +3155,21 @@ dependencies = [ "sha3", ] +[[package]] +name = "multiversx-chain-scenario-format" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021dead68c6dc4d112c15e151ca786a2984ff895242eba22e6bc22fddee78135" +dependencies = [ + "bech32", + "hex", + "num-bigint", + "num-traits", + "serde", + "serde_json", + "sha3", +] + [[package]] name = "multiversx-chain-vm" version = "0.22.1" @@ -3138,7 +3182,7 @@ dependencies = [ "itertools 0.14.0", "log", "multiversx-bls", - "multiversx-chain-core", + "multiversx-chain-core 0.22.1", "multiversx-chain-vm-executor", "multiversx-chain-vm-executor-wasmer-experimental", "num-bigint", @@ -3148,7 +3192,32 @@ dependencies = [ "serde", "sha2", "sha3", - "toml", + "toml 1.0.3+spec-1.1.0", +] + +[[package]] +name = "multiversx-chain-vm" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225fef38294f9558e74f334cdd47575aa52a57676641f10648620a38b80c3a70" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "colored 3.1.1", + "ed25519-dalek", + "hex", + "itertools 0.14.0", + "log", + "multiversx-chain-core 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-chain-vm-executor", + "num-bigint", + "num-traits", + "rand 0.10.0", + "rand_seeder", + "serde", + "sha2", + "sha3", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -3180,9 +3249,9 @@ name = "multiversx-price-aggregator-sc" version = "0.65.1" dependencies = [ "getrandom 0.4.1", - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", "rand 0.10.0", ] @@ -3191,8 +3260,8 @@ name = "multiversx-price-aggregator-sc-meta" version = "0.0.0" dependencies = [ "multiversx-price-aggregator-sc", - "multiversx-sc", - "multiversx-sc-meta-lib", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", ] [[package]] @@ -3201,9 +3270,36 @@ version = "0.65.1" dependencies = [ "bitflags 2.11.0", "generic-array 1.3.5", - "multiversx-chain-core", - "multiversx-sc-codec", - "multiversx-sc-derive", + "multiversx-chain-core 0.22.1", + "multiversx-sc-codec 0.25.0", + "multiversx-sc-derive 0.65.1", + "num-traits", + "unwrap-infallible", +] + +[[package]] +name = "multiversx-sc" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bd47427a288d423f2859630f5f640a18b39ee19f1c0da33712fb16b2cb617c3" +dependencies = [ + "bitflags 2.11.0", + "generic-array 1.3.5", + "multiversx-chain-core 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-sc-codec 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-sc-derive 0.65.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits", + "unwrap-infallible", +] + +[[package]] +name = "multiversx-sc-codec" +version = "0.25.0" +dependencies = [ + "arrayvec", + "bitflags 2.11.0", + "multiversx-sc-codec-derive 0.25.0", + "num-bigint", "num-traits", "unwrap-infallible", ] @@ -3211,10 +3307,12 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f003e72dcc896b49fbbfcb410fd3c4984062a85ca0f588b3b6924bda6c09546" dependencies = [ "arrayvec", "bitflags 2.11.0", - "multiversx-sc-codec-derive", + "multiversx-sc-codec-derive 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", "num-bigint", "num-traits", "unwrap-infallible", @@ -3230,11 +3328,23 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "multiversx-sc-codec-derive" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e0fe66b0ed58deb3d1689ad0b1ad2ae6c303a9b8ca437b7ecd2269bb34ebe8" +dependencies = [ + "hex", + "proc-macro2", + "quote", + "syn 2.0.117", +] + [[package]] name = "multiversx-sc-codec-human-readable" version = "0.1.0" dependencies = [ - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", "serde_json", ] @@ -3249,6 +3359,19 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "multiversx-sc-derive" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ab9955471c9df051efd3f18584d16d2f5090179d6f153a3bbdcd64ce327c0c8" +dependencies = [ + "hex", + "proc-macro2", + "quote", + "radix_trie", + "syn 2.0.117", +] + [[package]] name = "multiversx-sc-meta" version = "0.65.1" @@ -3261,11 +3384,11 @@ dependencies = [ "convert_case 0.11.0", "copy_dir", "hex", - "multiversx-sc", - "multiversx-sc-meta-lib", - "multiversx-sc-scenario", - "multiversx-sc-snippets", - "multiversx-sdk", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", + "multiversx-sc-scenario 0.65.1", + "multiversx-sc-snippets 0.65.1", + "multiversx-sdk 0.15.1", "pathdiff", "regex", "reqwest", @@ -3274,7 +3397,7 @@ dependencies = [ "serde", "serde_json", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", "zip", ] @@ -3287,13 +3410,36 @@ dependencies = [ "convert_case 0.11.0", "hex", "lazy_static", - "multiversx-chain-scenario-format", - "multiversx-sc", + "multiversx-chain-scenario-format 0.26.0", + "multiversx-sc 0.65.1", "rustc_version", "semver", "serde", "serde_json", - "toml", + "toml 1.0.3+spec-1.1.0", + "wasmparser 0.245.1", + "wasmprinter", + "wat", +] + +[[package]] +name = "multiversx-sc-meta-lib" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0836b17fa1d00f13ccf8dac7024795aea80ce5db1ec38bf49f1cacef73f70a7a" +dependencies = [ + "clap", + "colored 3.1.1", + "convert_case 0.11.0", + "hex", + "lazy_static", + "multiversx-chain-scenario-format 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-sc 0.65.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version", + "semver", + "serde", + "serde_json", + "toml 1.0.3+spec-1.1.0", "wasmparser 0.245.1", "wasmprinter", "wat", @@ -3303,12 +3449,39 @@ dependencies = [ name = "multiversx-sc-modules" version = "0.65.1" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", +] + +[[package]] +name = "multiversx-sc-scenario" +version = "0.65.1" +dependencies = [ + "base64", + "colored 3.1.1", + "hex", + "hex-literal", + "itertools 0.14.0", + "log", + "multiversx-chain-scenario-format 0.26.0", + "multiversx-chain-vm 0.22.1", + "multiversx-chain-vm-executor", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", + "num-bigint", + "num-traits", + "pathdiff", + "serde", + "serde_json", + "sha2", + "simple-error", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-scenario" version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84404563dad6f98f557f65dcdb6ecaa6b9cfcedf53c85eadea8b1dc9f9116f05" dependencies = [ "base64", "colored 3.1.1", @@ -3316,11 +3489,11 @@ dependencies = [ "hex-literal", "itertools 0.14.0", "log", - "multiversx-chain-scenario-format", - "multiversx-chain-vm", + "multiversx-chain-scenario-format 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-chain-vm 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)", "multiversx-chain-vm-executor", - "multiversx-sc", - "multiversx-sc-meta-lib", + "multiversx-sc 0.65.1 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-sc-meta-lib 0.65.1 (registry+https://github.com/rust-lang/crates.io-index)", "num-bigint", "num-traits", "pathdiff", @@ -3342,11 +3515,32 @@ dependencies = [ "futures", "hex", "log", - "multiversx-chain-scenario-format", - "multiversx-sc-scenario", - "multiversx-sdk", + "multiversx-chain-scenario-format 0.26.0", + "multiversx-sc-scenario 0.65.1", + "multiversx-sdk 0.15.1", "multiversx-sdk-dapp", - "multiversx-sdk-http", + "multiversx-sdk-http 0.15.1", + "serde_json", + "tokio", +] + +[[package]] +name = "multiversx-sc-snippets" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac9d7c3ce00bbc18414d5ae82b15b2b3a25996e60b0a49b8e610841c5862dafa" +dependencies = [ + "anyhow", + "base64", + "colored 3.1.1", + "env_logger", + "futures", + "hex", + "log", + "multiversx-chain-scenario-format 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-sc-scenario 0.65.1 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-sdk 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-sdk-http 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde_json", "tokio", ] @@ -3355,7 +3549,7 @@ dependencies = [ name = "multiversx-sc-wasm-adapter" version = "0.65.1" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", ] [[package]] @@ -3371,7 +3565,7 @@ dependencies = [ "hmac", "itertools 0.14.0", "log", - "multiversx-chain-core", + "multiversx-chain-core 0.22.1", "pbkdf2", "pem", "rand 0.10.0", @@ -3385,6 +3579,33 @@ dependencies = [ "zeroize", ] +[[package]] +name = "multiversx-sdk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e700c431ca2f44af5f88653a567103c438251037ad9f527ca839bedfc3112315" +dependencies = [ + "aes", + "anyhow", + "base64", + "bip39", + "ctr", + "hex", + "hmac", + "itertools 0.14.0", + "log", + "multiversx-chain-core 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)", + "pbkdf2", + "pem", + "scrypt", + "serde", + "serde_json", + "serde_repr", + "sha2", + "sha3", + "zeroize", +] + [[package]] name = "multiversx-sdk-dapp" version = "0.15.1" @@ -3396,7 +3617,7 @@ dependencies = [ "itertools 0.14.0", "js-sys", "log", - "multiversx-sdk", + "multiversx-sdk 0.15.1", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -3410,7 +3631,23 @@ dependencies = [ "hex", "itertools 0.14.0", "log", - "multiversx-sdk", + "multiversx-sdk 0.15.1", + "reqwest", + "serde_json", + "tokio", +] + +[[package]] +name = "multiversx-sdk-http" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1269a0e0b2651ef3542a4cbfc88ba371c46d793d66ce9355214a5ae16d6da43" +dependencies = [ + "anyhow", + "hex", + "itertools 0.14.0", + "log", + "multiversx-sdk 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "reqwest", "serde_json", "tokio", @@ -3420,17 +3657,17 @@ dependencies = [ name = "multiversx-wegld-swap-sc" version = "0.65.1" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "multiversx-wegld-swap-sc-meta" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-meta-lib", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", "multiversx-wegld-swap-sc", ] @@ -3460,7 +3697,7 @@ version = "0.0.0" dependencies = [ "bech32", "hex", - "multiversx-sc", + "multiversx-sc 0.65.1", "num-bigint", "num-traits", ] @@ -3469,15 +3706,15 @@ dependencies = [ name = "nft-minter" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "nft-minter-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "nft-minter", ] @@ -3485,15 +3722,15 @@ dependencies = [ name = "nft-storage-prepay" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "nft-storage-prepay-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "nft-storage-prepay", ] @@ -3501,16 +3738,16 @@ dependencies = [ name = "nft-subscription" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "nft-subscription-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "nft-subscription", ] @@ -3616,7 +3853,7 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" name = "op-test-gen" version = "0.1.0" dependencies = [ - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", "num-bigint", "num-traits", ] @@ -3631,23 +3868,23 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" name = "order-book-factory" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "order-book-pair" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "pair-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "order-book-pair", ] @@ -3655,15 +3892,15 @@ dependencies = [ name = "panic-message-features" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "panic-message-features-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "panic-message-features", ] @@ -3671,16 +3908,16 @@ dependencies = [ name = "parent" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "parent-meta" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-meta-lib", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", "parent", ] @@ -3723,15 +3960,15 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" name = "payable-features" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "payable-features-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "payable-features", ] @@ -3740,12 +3977,12 @@ name = "payable-interactor" version = "0.0.0" dependencies = [ "clap", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "payable-features", "serde", "serial_test", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -3812,7 +4049,7 @@ version = "0.1.0" dependencies = [ "console_log", "log", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "serde", "serde_json", "wasm-bindgen-futures", @@ -3824,8 +4061,8 @@ dependencies = [ name = "ping-pong-egld" version = "0.0.2" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -3833,18 +4070,18 @@ name = "ping-pong-egld-interact" version = "0.0.0" dependencies = [ "clap", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "ping-pong-egld", "serde", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] name = "ping-pong-egld-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "ping-pong-egld", ] @@ -3947,7 +4184,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", ] [[package]] @@ -4010,15 +4247,15 @@ name = "proxy-pause" version = "0.0.0" dependencies = [ "check-pause", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "proxy-pause-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "proxy-pause", ] @@ -4026,15 +4263,15 @@ dependencies = [ name = "proxy-test-first" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "proxy-test-first-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "proxy-test-first", ] @@ -4042,15 +4279,15 @@ dependencies = [ name = "proxy-test-second" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "proxy-test-second-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "proxy-test-second", ] @@ -4099,15 +4336,15 @@ name = "queue-repeat" version = "0.0.0" dependencies = [ "benchmark-common", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "queue-repeat-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "queue-repeat", ] @@ -4290,7 +4527,7 @@ dependencies = [ name = "random" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", ] [[package]] @@ -4323,8 +4560,8 @@ checksum = "0d828df698373f5d00cba2ddaf2b707cdf148ede97c1ce1b3dbcb99a8c00a5ec" name = "recursive-caller" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "vault", ] @@ -4332,7 +4569,7 @@ dependencies = [ name = "recursive-caller-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "recursive-caller", ] @@ -4450,16 +4687,16 @@ dependencies = [ name = "rewards-distribution" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "rewards-distribution-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "rewards-distribution", ] @@ -4527,19 +4764,31 @@ dependencies = [ "regex", ] +[[package]] +name = "rust-interact" +version = "0.0.0" +dependencies = [ + "clap", + "managed-map-benchmark", + "multiversx-sc 0.65.1 (registry+https://github.com/rust-lang/crates.io-index)", + "multiversx-sc-snippets 0.65.1 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", + "toml 0.8.23", +] + [[package]] name = "rust-snippets-generator-test" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "rust-snippets-generator-test-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "rust-snippets-generator-test", ] @@ -4551,8 +4800,8 @@ dependencies = [ "basic-features", "forwarder", "hex", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "num-bigint", "num-traits", "vault", @@ -4562,7 +4811,7 @@ dependencies = [ name = "rust-testing-framework-tester-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "rust-testing-framework-tester", ] @@ -4735,15 +4984,15 @@ dependencies = [ name = "scenario-tester" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "scenario-tester-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "scenario-tester", ] @@ -4783,16 +5032,16 @@ checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" name = "second-contract" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "second-contract-meta" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-meta-lib", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", "second-contract", ] @@ -4823,16 +5072,16 @@ dependencies = [ name = "seed-nft-minter" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "seed-nft-minter-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "seed-nft-minter", ] @@ -4852,15 +5101,15 @@ checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" name = "send-tx-repeat" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "send-tx-repeat-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "send-tx-repeat", ] @@ -4930,6 +5179,15 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + [[package]] name = "serde_spanned" version = "1.0.4" @@ -4982,15 +5240,15 @@ name = "set-repeat" version = "0.0.0" dependencies = [ "benchmark-common", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "set-repeat-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "set-repeat", ] @@ -5073,15 +5331,15 @@ name = "single-value-repeat" version = "0.0.0" dependencies = [ "benchmark-common", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "single-value-repeat-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "single-value-repeat", ] @@ -5133,8 +5391,8 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" name = "std-contract" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", "num-bigint", ] @@ -5142,7 +5400,7 @@ dependencies = [ name = "std-contract-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "std-contract", ] @@ -5150,15 +5408,15 @@ dependencies = [ name = "str-repeat" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "str-repeat-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "str-repeat", ] @@ -5242,10 +5500,10 @@ name = "system-sc-interact" version = "0.0.0" dependencies = [ "clap", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "serde", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -5318,7 +5576,7 @@ dependencies = [ name = "tiny" version = "0.0.0" dependencies = [ - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] @@ -5326,11 +5584,11 @@ name = "tiny-interactor" version = "0.0.0" dependencies = [ "clap", - "multiversx-sc-snippets", + "multiversx-sc-snippets 0.65.1", "serde", "serial_test", "tokio", - "toml", + "toml 1.0.3+spec-1.1.0", ] [[package]] @@ -5372,15 +5630,15 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" name = "token-release" version = "0.0.1" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "token-release-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "token-release", ] @@ -5463,6 +5721,18 @@ dependencies = [ "wasm-bindgen-futures", ] +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + [[package]] name = "toml" version = "1.0.3+spec-1.1.0" @@ -5471,7 +5741,7 @@ checksum = "c7614eaf19ad818347db24addfa201729cf2a9b6fdfd9eb0ab870fcacc606c0c" dependencies = [ "indexmap", "serde_core", - "serde_spanned", + "serde_spanned 1.0.4", "toml_datetime 1.0.0+spec-1.1.0", "toml_parser", "toml_writer", @@ -5483,6 +5753,9 @@ name = "toml_datetime" version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] [[package]] name = "toml_datetime" @@ -5504,6 +5777,20 @@ dependencies = [ "winnow 0.5.40", ] +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned 0.6.9", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.14", +] + [[package]] name = "toml_parser" version = "1.0.9+spec-1.1.0" @@ -5513,6 +5800,12 @@ dependencies = [ "winnow 0.7.14", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "toml_writer" version = "1.0.6+spec-1.1.0" @@ -5599,9 +5892,9 @@ dependencies = [ name = "transfer-role-features" version = "0.0.0" dependencies = [ - "multiversx-sc", + "multiversx-sc 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", "vault", ] @@ -5609,7 +5902,7 @@ dependencies = [ name = "transfer-role-features-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "transfer-role-features", ] @@ -5708,17 +6001,17 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" name = "use-module" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-meta-lib", + "multiversx-sc 0.65.1", + "multiversx-sc-meta-lib 0.65.1", "multiversx-sc-modules", - "multiversx-sc-scenario", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "use-module-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "use-module", ] @@ -5749,15 +6042,15 @@ dependencies = [ name = "vault" version = "0.0.0" dependencies = [ - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "vault-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "vault", ] @@ -5766,15 +6059,15 @@ name = "vec-repeat" version = "0.0.0" dependencies = [ "benchmark-common", - "multiversx-sc", - "multiversx-sc-scenario", + "multiversx-sc 0.65.1", + "multiversx-sc-scenario 0.65.1", ] [[package]] name = "vec-repeat-meta" version = "0.0.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "vec-repeat", ] @@ -6132,7 +6425,7 @@ dependencies = [ name = "wat-gen" version = "0.1.0" dependencies = [ - "multiversx-sc-meta-lib", + "multiversx-sc-meta-lib 0.65.1", "wat", ] @@ -6454,6 +6747,9 @@ name = "winnow" version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +dependencies = [ + "memchr", +] [[package]] name = "wit-bindgen" diff --git a/Cargo.toml b/Cargo.toml index 7b10549eb0..891601906a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -53,6 +53,9 @@ members = [ "contracts/benchmarks/mappers/vec-repeat/meta", "contracts/benchmarks/large-storage", "contracts/benchmarks/large-storage/meta", + "contracts/benchmarks/managed-map-benchmark", + "contracts/benchmarks/managed-map-benchmark/meta", + "contracts/benchmarks/managed-map-benchmark/interactor", "contracts/benchmarks/str-repeat", "contracts/benchmarks/str-repeat/meta", "contracts/benchmarks/send-tx-repeat", diff --git a/contracts/benchmarks/managed-map-benchmark/.gitignore b/contracts/benchmarks/managed-map-benchmark/.gitignore new file mode 100644 index 0000000000..9494cb146e --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/.gitignore @@ -0,0 +1,7 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ +*/target/ + +# The mxpy output +output diff --git a/contracts/benchmarks/managed-map-benchmark/Cargo.toml b/contracts/benchmarks/managed-map-benchmark/Cargo.toml new file mode 100644 index 0000000000..68ec2d344c --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "managed-map-benchmark" +version = "0.0.0" +authors = ["Andrei Marinica "] +edition = "2021" +publish = false + +[lib] +path = "src/mmap_benchmark.rs" + +[dependencies.multiversx-sc] +version = "0.65.1" +path = "../../../framework/base" + +[dev-dependencies.multiversx-sc-scenario] +version = "0.65.1" +path = "../../../framework/scenario" diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/.gitignore b/contracts/benchmarks/managed-map-benchmark/interactor/.gitignore new file mode 100644 index 0000000000..5a64d09a70 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/.gitignore @@ -0,0 +1,2 @@ +# Pem files are used for interactions, but shouldn't be committed +*.pem diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/Cargo.toml b/contracts/benchmarks/managed-map-benchmark/interactor/Cargo.toml new file mode 100644 index 0000000000..9fbd1220e3 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/Cargo.toml @@ -0,0 +1,31 @@ +[package] +name = "rust-interact" +version = "0.0.0" +authors = ["you"] +edition = "2021" +publish = false + +[[bin]] +name = "rust-interact" +path = "src/interactor_main.rs" + +[lib] +path = "src/mm_interactor.rs" + +[dependencies.managed-map-benchmark] +path = ".." + +[dependencies.multiversx-sc-snippets] +version = "0.65.1" + +[dependencies.multiversx-sc] +version = "0.65.1" + +[dependencies] +clap = { version = "4.4.7", features = ["derive"] } +serde = { version = "1.0", features = ["derive"] } +toml = "0.8.6" + +[features] +chain-simulator-tests = [] + diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/config.toml b/contracts/benchmarks/managed-map-benchmark/interactor/config.toml new file mode 100644 index 0000000000..9567053d29 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/config.toml @@ -0,0 +1,9 @@ + +chain_type = 'simulator' +gateway_uri = 'http://localhost:8085' + +# chain_type = 'real' +# gateway_uri = 'https://testnet-gateway.multiversx.com' + +# chain_type = 'real' +# gateway_uri = 'https://testnet-alb-fra.internal-gateway.multiversx.com' diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/src/config.rs b/contracts/benchmarks/managed-map-benchmark/interactor/src/config.rs new file mode 100644 index 0000000000..2d072b4bfb --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/src/config.rs @@ -0,0 +1,51 @@ +#![allow(unused)] + +use serde::Deserialize; +use std::io::Read; + +/// Config file +const CONFIG_FILE: &str = "config.toml"; + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum ChainType { + Real, + Simulator, +} + +/// Contract Interact configuration +#[derive(Debug, Deserialize)] +pub struct Config { + pub gateway_uri: String, + pub chain_type: ChainType, +} + +impl Config { + // Deserializes config from file + pub fn new() -> Self { + let mut file = std::fs::File::open(CONFIG_FILE).unwrap(); + let mut content = String::new(); + file.read_to_string(&mut content).unwrap(); + toml::from_str(&content).unwrap() + } + + pub fn chain_simulator_config() -> Self { + Config { + gateway_uri: "http://localhost:8085".to_owned(), + chain_type: ChainType::Simulator, + } + } + + // Returns the gateway URI + pub fn gateway_uri(&self) -> &str { + &self.gateway_uri + } + + // Returns if chain type is chain simulator + pub fn use_chain_simulator(&self) -> bool { + match self.chain_type { + ChainType::Real => false, + ChainType::Simulator => true, + } + } +} diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/src/interactor_main.rs b/contracts/benchmarks/managed-map-benchmark/interactor/src/interactor_main.rs new file mode 100644 index 0000000000..63dea62afc --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/src/interactor_main.rs @@ -0,0 +1,7 @@ +use multiversx_sc_snippets::imports::*; +use rust_interact::managed_map_benchmark_cli; + +#[tokio::main] +async fn main() { + managed_map_benchmark_cli().await; +} diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/src/mm_interactor.rs b/contracts/benchmarks/managed-map-benchmark/interactor/src/mm_interactor.rs new file mode 100644 index 0000000000..8f58015a2d --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/src/mm_interactor.rs @@ -0,0 +1,172 @@ +#![allow(non_snake_case)] + +pub mod config; +mod proxy; + +use config::Config; +use multiversx_sc_snippets::imports::*; +use serde::{Deserialize, Serialize}; +use std::{ + io::{Read, Write}, + path::Path, +}; + +const STATE_FILE: &str = "state.toml"; + +pub async fn managed_map_benchmark_cli() { + env_logger::init(); + + let mut args = std::env::args(); + let _ = args.next(); + let cmd = args.next().expect("at least one argument required"); + let config = Config::new(); + let mut interact = ContractInteract::new(config).await; + match cmd.as_str() { + "deploy" => interact.deploy().await, + "mm_get" => interact.mm_get().await, + "mm_contains" => interact.mm_contains().await, + "mm_remove" => interact.mm_remove().await, + _ => panic!("unknown command: {}", &cmd), + } +} + +#[derive(Debug, Default, Serialize, Deserialize)] +pub struct State { + contract_address: Option, + repeats: usize, +} + +impl State { + // Deserializes state from file + pub fn load_state() -> Self { + if Path::new(STATE_FILE).exists() { + let mut file = std::fs::File::open(STATE_FILE).unwrap(); + let mut content = String::new(); + file.read_to_string(&mut content).unwrap(); + toml::from_str(&content).unwrap() + } else { + Self::default() + } + } + + /// Sets the contract address + pub fn set_address(&mut self, address: Bech32Address) { + self.contract_address = Some(address); + } + + /// Returns the contract address + pub fn current_address(&self) -> &Bech32Address { + self.contract_address + .as_ref() + .expect("no known contract, deploy first") + } +} + +impl Drop for State { + // Serializes state to file + fn drop(&mut self) { + let mut file = std::fs::File::create(STATE_FILE).unwrap(); + file.write_all(toml::to_string(self).unwrap().as_bytes()) + .unwrap(); + } +} + +pub struct ContractInteract { + interactor: Interactor, + wallet_address: Address, + contract_code: BytesValue, + state: State, +} + +impl ContractInteract { + pub async fn new(config: Config) -> Self { + let mut interactor = Interactor::new(config.gateway_uri()) + .await + .use_chain_simulator(config.use_chain_simulator()); + + interactor.set_current_dir_from_workspace("managed-map-benchmark"); + let wallet_address = interactor.register_wallet(test_wallets::alice()).await; + + // Useful in the chain simulator setting + // generate blocks until ESDTSystemSCAddress is enabled + interactor.generate_blocks_until_epoch(1).await.unwrap(); + + let contract_code = BytesValue::interpret_from( + "mxsc:../output/managed-map-benchmark.mxsc.json", + &InterpreterContext::default(), + ); + + ContractInteract { + interactor, + wallet_address, + contract_code, + state: State::load_state(), + } + } + + pub async fn deploy(&mut self) { + let new_address = self + .interactor + .tx() + .from(&self.wallet_address) + .gas(30_000_000u64) + .typed(proxy::ManagedMapBenchmarkProxy) + .init() + .code(&self.contract_code) + .returns(ReturnsNewBech32Address) + .run() + .await; + self.state.set_address(new_address.clone()); + println!("new address: {new_address}"); + } + + pub async fn mm_get(&mut self) { + let (result_value, gas_used) = self + .interactor + .tx() + .from(&self.wallet_address) + .to(self.state.current_address()) + .typed(proxy::ManagedMapBenchmarkProxy) + .mm_get("key0", self.state.repeats) + .returns(ReturnsResultAs::::new()) + .returns(ReturnsGasUsed) + .run() + .await; + + println!("Result: {result_value}"); + println!("Gas used: {gas_used}"); + } + + pub async fn mm_contains(&mut self) { + let (result_value, gas_used) = self + .interactor + .tx() + .from(&self.wallet_address) + .to(self.state.current_address()) + .typed(proxy::ManagedMapBenchmarkProxy) + .mm_contains("key0", self.state.repeats) + .returns(ReturnsResultUnmanaged) + .returns(ReturnsGasUsed) + .run() + .await; + + println!("Result: {result_value}"); + println!("Gas used: {gas_used}"); + } + + pub async fn mm_remove(&mut self) { + let gas_used = self + .interactor + .tx() + .from(&self.wallet_address) + .to(self.state.current_address()) + .gas(150_000_000u64) + .typed(proxy::ManagedMapBenchmarkProxy) + .mm_remove("key0", self.state.repeats) + .returns(ReturnsGasUsed) + .run() + .await; + + println!("Gas used: {gas_used}"); + } +} diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/src/proxy.rs b/contracts/benchmarks/managed-map-benchmark/interactor/src/proxy.rs new file mode 100644 index 0000000000..3a34ec148a --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/src/proxy.rs @@ -0,0 +1,112 @@ +// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +#![allow(dead_code)] +#![allow(clippy::all)] + +use multiversx_sc::proxy_imports::*; + +pub struct ManagedMapBenchmarkProxy; + +impl TxProxyTrait for ManagedMapBenchmarkProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = ManagedMapBenchmarkProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + ManagedMapBenchmarkProxyMethods { wrapped_tx: tx } + } +} + +pub struct ManagedMapBenchmarkProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl ManagedMapBenchmarkProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init( + self, + ) -> TxTypedDeploy { + self.wrapped_tx + .payment(NotPayable) + .raw_deploy() + .original_result() + } +} + +#[rustfmt::skip] +impl ManagedMapBenchmarkProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn mm_get< + Arg0: ProxyArg>, + Arg1: ProxyArg, + >( + self, + key: Arg0, + repeats: Arg1, + ) -> TxTypedCall> { + self.wrapped_tx + .payment(NotPayable) + .raw_call("mm_get") + .argument(&key) + .argument(&repeats) + .original_result() + } + + pub fn mm_contains< + Arg0: ProxyArg>, + Arg1: ProxyArg, + >( + self, + key: Arg0, + repeats: Arg1, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("mm_contains") + .argument(&key) + .argument(&repeats) + .original_result() + } + + pub fn mm_remove< + Arg0: ProxyArg>, + Arg1: ProxyArg, + >( + self, + remove_key: Arg0, + repeats: Arg1, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("mm_remove") + .argument(&remove_key) + .argument(&repeats) + .original_result() + } +} diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/state.toml b/contracts/benchmarks/managed-map-benchmark/interactor/state.toml new file mode 100644 index 0000000000..d1640db581 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/state.toml @@ -0,0 +1,2 @@ +contract_address = "erd1qqqqqqqqqqqqqpgqkgnuqzpdwhu4kju6ldnargywgtcumswad8sslg3vv0" +repeats = 1 diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/tests/interact_cs_tests.rs b/contracts/benchmarks/managed-map-benchmark/interactor/tests/interact_cs_tests.rs new file mode 100644 index 0000000000..b7c5b1a2ca --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/tests/interact_cs_tests.rs @@ -0,0 +1,15 @@ +use multiversx_sc_snippets::imports::*; +use rust_interact::{config::Config, ContractInteract}; + +// Simple deploy test that runs using the chain simulator configuration. +// In order for this test to work, make sure that the `config.toml` file contains the chain simulator config (or choose it manually) +// The chain simulator should already be installed and running before attempting to run this test. +// The chain-simulator-tests feature should be present in Cargo.toml. +// Can be run with `sc-meta test -c`. +#[tokio::test] +#[cfg_attr(not(feature = "chain-simulator-tests"), ignore)] +async fn deploy_test_managed_map_benchmark_cs() { + let mut interactor = ContractInteract::new(Config::chain_simulator_config()).await; + + interactor.deploy().await; +} diff --git a/contracts/benchmarks/managed-map-benchmark/interactor/tests/interact_tests.rs b/contracts/benchmarks/managed-map-benchmark/interactor/tests/interact_tests.rs new file mode 100644 index 0000000000..a5041e133f --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/interactor/tests/interact_tests.rs @@ -0,0 +1,13 @@ +use multiversx_sc_snippets::imports::*; +use rust_interact::{config::Config, ContractInteract}; + +// Simple deploy test that runs on the real blockchain configuration. +// In order for this test to work, make sure that the `config.toml` file contains the real blockchain config (or choose it manually) +// Can be run with `sc-meta test`. +#[tokio::test] +#[ignore = "run on demand, relies on real blockchain state"] +async fn deploy_test_managed_map_benchmark() { + let mut interactor = ContractInteract::new(Config::new()).await; + + interactor.deploy().await; +} diff --git a/contracts/benchmarks/managed-map-benchmark/meta/Cargo.toml b/contracts/benchmarks/managed-map-benchmark/meta/Cargo.toml new file mode 100644 index 0000000000..bd3a244a43 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/meta/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "managed-map-benchmark-meta" +version = "0.0.0" +authors = ["Andrei Marinica "] +edition = "2021" +publish = false + +[dependencies.managed-map-benchmark] +path = ".." + +[dependencies.multiversx-sc-meta-lib] +version = "0.65.1" +path = "../../../../framework/meta-lib" +default-features = false diff --git a/contracts/benchmarks/managed-map-benchmark/meta/src/main.rs b/contracts/benchmarks/managed-map-benchmark/meta/src/main.rs new file mode 100644 index 0000000000..ac189e9099 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/meta/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + multiversx_sc_meta_lib::cli_main::(); +} diff --git a/contracts/benchmarks/managed-map-benchmark/multiversx.json b/contracts/benchmarks/managed-map-benchmark/multiversx.json new file mode 100644 index 0000000000..7365539625 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/multiversx.json @@ -0,0 +1,3 @@ +{ + "language": "rust" +} \ No newline at end of file diff --git a/contracts/benchmarks/managed-map-benchmark/sc-config.toml b/contracts/benchmarks/managed-map-benchmark/sc-config.toml new file mode 100644 index 0000000000..d1692a34c4 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/sc-config.toml @@ -0,0 +1,5 @@ + + +[[proxy]] +path = "interactor/src/proxy.rs" + diff --git a/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_contains.scen.json b/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_contains.scen.json new file mode 100644 index 0000000000..340ff655c7 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_contains.scen.json @@ -0,0 +1,68 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "sc:mmap-features": { + "nonce": "0", + "balance": "0", + "storage": { + "str:num_entries": "3", + "str:key|u32:0": "str:key0", + "str:value|u32:0": "str:value0", + "str:key|u32:1": "str:key1", + "str:value|u32:1": "", + "str:key|u32:2": "", + "str:value|u32:2": "str:value2" + }, + "code": "mxsc:../output/managed-map-benchmark.mxsc.json" + }, + "address:an-account": { + "nonce": "0" + } + } + }, + { + "step": "scCall", + "id": "get 1", + "tx": { + "from": "address:an-account", + "to": "sc:mmap-features", + "function": "mm_contains", + "arguments": [ + "str:key0", + "1" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "gas": "48666977", + "out": [ + "true" + ] + } + }, + { + "step": "scCall", + "id": "get 1000", + "tx": { + "from": "address:an-account", + "to": "sc:mmap-features", + "function": "mm_contains", + "arguments": [ + "str:key0", + "1000" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "gas": "48666977", + "out": [ + "true" + ] + } + } + ] +} diff --git a/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_get.scen.json b/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_get.scen.json new file mode 100644 index 0000000000..c569ed09d6 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_get.scen.json @@ -0,0 +1,68 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "sc:mmap-features": { + "nonce": "0", + "balance": "0", + "storage": { + "str:num_entries": "3", + "str:key|u32:0": "str:key0", + "str:value|u32:0": "str:value0", + "str:key|u32:1": "str:key1", + "str:value|u32:1": "", + "str:key|u32:2": "", + "str:value|u32:2": "str:value2" + }, + "code": "mxsc:../output/managed-map-benchmark.mxsc.json" + }, + "address:an-account": { + "nonce": "0" + } + } + }, + { + "step": "scCall", + "id": "get 1", + "tx": { + "from": "address:an-account", + "to": "sc:mmap-features", + "function": "mm_get", + "arguments": [ + "str:key0", + "1" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "gas": "48666977", + "out": [ + "str:value0" + ] + } + }, + { + "step": "scCall", + "id": "get 1000", + "tx": { + "from": "address:an-account", + "to": "sc:mmap-features", + "function": "mm_get", + "arguments": [ + "str:key0", + "1000" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "gas": "48666977", + "out": [ + "str:value0" + ] + } + } + ] +} diff --git a/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_remove.scen.json b/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_remove.scen.json new file mode 100644 index 0000000000..e51aa33407 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/scenarios/mmap_remove.scen.json @@ -0,0 +1,66 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "sc:mmap-features": { + "nonce": "0", + "balance": "0", + "storage": { + "str:num_entries": "4", + "str:key|u32:0": "str:key0", + "str:value|u32:0": "str:value0", + "str:key|u32:1": "str:key1", + "str:value|u32:1": "", + "str:key|u32:2": "", + "str:value|u32:2": "str:value2", + "str:key|u32:3": "str:key3", + "str:value|u32:3": "str:value3" + }, + "code": "mxsc:../output/managed-map-benchmark.mxsc.json" + }, + "address:an-account": { + "nonce": "0" + } + } + }, + { + "step": "scCall", + "id": "remove key0 1", + "tx": { + "from": "address:an-account", + "to": "sc:mmap-features", + "function": "mm_remove", + "arguments": [ + "str:key0", + "1" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "gas": "48666977", + "out": [] + } + }, + { + "step": "scCall", + "id": "remove key0 1000", + "tx": { + "from": "address:an-account", + "to": "sc:mmap-features", + "function": "mm_remove", + "arguments": [ + "str:key0", + "1000" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "gas": "48666977", + "out": [] + } + } + ] +} diff --git a/contracts/benchmarks/managed-map-benchmark/src/mmap_benchmark.rs b/contracts/benchmarks/managed-map-benchmark/src/mmap_benchmark.rs new file mode 100644 index 0000000000..23fa8c7cd8 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/src/mmap_benchmark.rs @@ -0,0 +1,42 @@ +#![no_std] + +multiversx_sc::imports!(); + +#[multiversx_sc::contract] +pub trait ManagedMapBenchmark { + #[init] + fn init(&self) {} + + fn create_map(&self) -> ManagedMap { + let mut map = ManagedMap::new(); + map.put(&"key0".into(), &"value0".into()); + map.put(&"key1".into(), &"value1".into()); + map + } + + #[view] + fn mm_get(&self, key: &ManagedBuffer, repeats: usize) -> ManagedBuffer { + let map = self.create_map(); + for _ in 0..repeats { + map.get(key); + } + map.get(key) + } + + #[view] + fn mm_contains(&self, key: &ManagedBuffer, repeats: usize) -> bool { + let map = self.create_map(); + for _ in 0..repeats { + map.contains(key); + } + map.contains(key) + } + + #[endpoint] + fn mm_remove(&self, remove_key: &ManagedBuffer, repeats: usize) { + let mut map = self.create_map(); + for _ in 0..repeats { + map.remove(remove_key); + } + } +} diff --git a/contracts/benchmarks/managed-map-benchmark/tests/managed_map_scenario_go_test.rs b/contracts/benchmarks/managed-map-benchmark/tests/managed_map_scenario_go_test.rs new file mode 100644 index 0000000000..888b0ff87c --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/tests/managed_map_scenario_go_test.rs @@ -0,0 +1,20 @@ +use multiversx_sc_scenario::*; + +fn world() -> ScenarioWorld { + ScenarioWorld::vm_go() +} + +#[test] +fn mmap_contains_go() { + world().run("scenarios/mmap_contains.scen.json"); +} + +#[test] +fn mmap_get_go() { + world().run("scenarios/mmap_get.scen.json"); +} + +#[test] +fn mmap_remove_go() { + world().run("scenarios/mmap_remove.scen.json"); +} diff --git a/contracts/benchmarks/managed-map-benchmark/tests/managed_map_scenario_rs_test.rs b/contracts/benchmarks/managed-map-benchmark/tests/managed_map_scenario_rs_test.rs new file mode 100644 index 0000000000..20cf47f289 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/tests/managed_map_scenario_rs_test.rs @@ -0,0 +1,26 @@ +use multiversx_sc_scenario::*; + +fn world() -> ScenarioWorld { + let mut blockchain = ScenarioWorld::new(); + blockchain.set_current_dir_from_workspace("contracts/benchmarks/managed-map-benchmark"); + blockchain.register_contract( + "mxsc:output/managed-map-benchmark.mxsc.json", + managed_map_benchmark::ContractBuilder, + ); + blockchain +} + +#[test] +fn mmap_contains_rs() { + world().run("scenarios/mmap_contains.scen.json"); +} + +#[test] +fn mmap_get_rs() { + world().run("scenarios/mmap_get.scen.json"); +} + +#[test] +fn mmap_remove_rs() { + world().run("scenarios/mmap_remove.scen.json"); +} diff --git a/contracts/benchmarks/managed-map-benchmark/wasm/Cargo.lock b/contracts/benchmarks/managed-map-benchmark/wasm/Cargo.lock new file mode 100644 index 0000000000..f955ba69ef --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/wasm/Cargo.lock @@ -0,0 +1,204 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + +[[package]] +name = "generic-array" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c8444bc9d71b935156cc0ccab7f622180808af7867b1daae6547d773591703" +dependencies = [ + "typenum", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "managed-map-benchmark" +version = "0.0.0" +dependencies = [ + "multiversx-sc", +] + +[[package]] +name = "managed-map-benchmark-wasm" +version = "0.0.0" +dependencies = [ + "managed-map-benchmark", + "multiversx-sc-wasm-adapter", +] + +[[package]] +name = "multiversx-chain-core" +version = "0.14.0" +dependencies = [ + "bitflags", + "multiversx-sc-codec", +] + +[[package]] +name = "multiversx-sc" +version = "0.57.1" +dependencies = [ + "bitflags", + "generic-array", + "hex-literal", + "multiversx-chain-core", + "multiversx-sc-codec", + "multiversx-sc-derive", + "num-traits", + "unwrap-infallible", +] + +[[package]] +name = "multiversx-sc-codec" +version = "0.22.0" +dependencies = [ + "arrayvec", + "bitflags", + "multiversx-sc-codec-derive", + "unwrap-infallible", +] + +[[package]] +name = "multiversx-sc-codec-derive" +version = "0.22.0" +dependencies = [ + "hex", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "multiversx-sc-derive" +version = "0.57.1" +dependencies = [ + "hex", + "proc-macro2", + "quote", + "radix_trie", + "syn", +] + +[[package]] +name = "multiversx-sc-wasm-adapter" +version = "0.57.1" +dependencies = [ + "multiversx-sc", +] + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" + +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/managed-map-benchmark/wasm/Cargo.toml b/contracts/benchmarks/managed-map-benchmark/wasm/Cargo.toml new file mode 100644 index 0000000000..ca280a2e9e --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/wasm/Cargo.toml @@ -0,0 +1,35 @@ +# Code generated by the multiversx-sc build system. DO NOT EDIT. + +# ########################################## +# ############## AUTO-GENERATED ############# +# ########################################## + +[package] +name = "managed-map-benchmark-wasm" +version = "0.0.0" +edition = "2021" +publish = false + +[lib] +crate-type = ["cdylib"] + +[profile.release] +codegen-units = 1 +opt-level = "z" +lto = true +debug = false +panic = "abort" +overflow-checks = false + +[profile.dev] +panic = "abort" + +[dependencies.managed-map-benchmark] +path = ".." + +[dependencies.multiversx-sc-wasm-adapter] +version = "0.65.1" +path = "../../../../framework/wasm-adapter" + +[workspace] +members = ["."] diff --git a/contracts/benchmarks/managed-map-benchmark/wasm/src/lib.rs b/contracts/benchmarks/managed-map-benchmark/wasm/src/lib.rs new file mode 100644 index 0000000000..13016f1cf2 --- /dev/null +++ b/contracts/benchmarks/managed-map-benchmark/wasm/src/lib.rs @@ -0,0 +1,27 @@ +// Code generated by the multiversx-sc build system. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +// Init: 1 +// Endpoints: 3 +// Async Callback (empty): 1 +// Total number of exported functions: 5 + +#![no_std] + +multiversx_sc_wasm_adapter::allocator!(); +multiversx_sc_wasm_adapter::panic_handler!(); + +multiversx_sc_wasm_adapter::endpoints! { + managed_map_benchmark + ( + init => init + mm_get => mm_get + mm_contains => mm_contains + mm_remove => mm_remove + ) +} + +multiversx_sc_wasm_adapter::async_callback_empty! {}