From 8bb43510c6e446856c32c986e5539a625d2f6177 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 21 Nov 2023 17:43:21 +0200 Subject: [PATCH 1/4] mandos test update --- .../json/scenariosAdderLog_test.go | 2 +- .../json/scenariosContracts_test.go | 1 + .../json/scenariosFeatures_test.go | 1 + .../scenarios/interactor_trace.scen.json | 80 ++ .../output/crowdfunding-esdt.wasm | Bin 4334 -> 3612 bytes .../scenarios/_generated_fund.scen.json | 132 -- .../scenarios/_generated_init.scen.json | 105 -- .../_generated_query_status.scen.json | 124 -- .../scenarios/_generated_sc_err.scen.json | 147 --- .../crowdfunding-claim-failed.scen.json | 4 +- .../crowdfunding-claim-successful.scen.json | 2 +- test/digital-cash/output/digital-cash.wasm | Bin 10801 -> 10979 bytes .../scenarios/claim-egld.scen.json | 181 ++- .../scenarios/claim-esdt.scen.json | 190 ++- .../scenarios/claim-fees.scen.json | 141 ++ .../scenarios/claim-multi-esdt.scen.json | 205 +++ test/digital-cash/scenarios/forward.scen.json | 207 ++- .../scenarios/fund-egld-and-esdt.scen.json | 407 +++++- .../scenarios/pay-fee-and-fund-egld.scen.json | 126 ++ .../scenarios/pay-fee-and-fund-esdt.scen.json | 148 +++ .../scenarios/set-accounts.scen.json | 61 +- .../whitelist-blacklist-fee-tokens.scen.json | 176 +++ .../scenarios/withdraw-egld.scen.json | 172 ++- .../scenarios/withdraw-esdt.scen.json | 173 ++- .../scenarios/withdraw-multi-esdt.scen.json | 263 ++++ test/erc20-rust/output/erc20.wasm | Bin 2172 -> 2130 bytes test/factorial/output/factorial.wasm | Bin 574 -> 567 bytes .../alloc-features/output/alloc-features.wasm | Bin 26521 -> 19442 bytes .../crypto_elliptic_curves_legacy.scen.json | 1160 ----------------- .../crypto_keccak256_legacy_alloc.scen.json | 65 - .../crypto_ripemd160_legacy.scen.json | 66 - .../crypto_sha256_legacy_alloc.scen.json | 66 - .../crypto_verify_bls_legacy.scen.json | 46 - .../crypto_verify_ed25519_legacy.scen.json | 45 - .../crypto_verify_secp256k1_legacy.scen.json | 121 -- .../scenarios/events_legacy.scen.json | 119 -- .../output/basic-features-storage-bytes.wasm | Bin 0 -> 539 bytes .../basic-features/output/basic-features.wasm | Bin 59751 -> 59193 bytes .../crypto_sha256_legacy_managed.scen.json | 66 - .../scenarios/crypto_verify_ed25519.scen.json | 32 +- ...en.json => get_shard_of_address.scen.json} | 25 +- .../storage_mapper_address_to_id.scen.json | 209 +++ .../output/big-float-features.wasm | Bin 5243 -> 5170 bytes .../big_float_operator_checks.scen.json | 4 +- .../output/forwarder-queue-promises.wasm | Bin 0 -> 13091 bytes .../output/forwarder-queue.wasm | Bin 0 -> 11825 bytes .../forwarder-raw/output/forwarder-raw.wasm | Bin 14879 -> 14879 bytes .../forwarder/output/forwarder-dbg.wasm | Bin 0 -> 95071 bytes .../forwarder/output/forwarder.wasm | Bin 29863 -> 29870 bytes .../output/promises-features.wasm | Bin 11496 -> 12099 bytes .../output/recursive-caller.wasm | Bin 6206 -> 6206 bytes ...arder_call_sync_retrieve_egld_bt.scen.json | 5 +- ...arder_call_sync_retrieve_esdt_bt.scen.json | 5 +- ...warder_call_sync_retrieve_nft_bt.scen.json | 5 +- .../promises_call_async_accept_egld.scen.json | 2 +- .../promises_call_async_accept_esdt.scen.json | 2 +- ...romises_call_async_retrieve_egld.scen.json | 6 +- ...romises_call_async_retrieve_esdt.scen.json | 4 +- .../promises_multi_transfer.scen.json | 4 +- .../promises_single_transfer_gas2.scen.json | 2 +- .../builtin_func_delete_user_name.scen.json | 1 + .../builtin_func_set_user_name.scen.json | 1 + .../scenarios/forw_queue_async.scen.json | 130 ++ .../forw_raw_async_accept_egld.scen.json | 4 +- .../forw_raw_async_accept_esdt.scen.json | 4 +- .../scenarios/forw_raw_async_echo.scen.json | 4 +- .../scenarios/forw_raw_direct_esdt.scen.json | 2 +- .../forw_raw_init_sync_echo.scen.json | 2 +- .../scenarios/forw_raw_sync_echo.scen.json | 6 +- .../forw_raw_sync_echo_caller.scen.json | 6 +- .../scenarios/forw_raw_sync_egld.scen.json | 6 +- .../forw_raw_sync_same_context.scen.json | 2 +- ...forwarder_call_async_accept_egld.scen.json | 2 +- ...forwarder_call_async_accept_esdt.scen.json | 4 +- .../forwarder_call_async_accept_nft.scen.json | 4 +- ...rwarder_call_async_retrieve_egld.scen.json | 6 +- ...rwarder_call_async_retrieve_esdt.scen.json | 4 +- ...orwarder_call_async_retrieve_nft.scen.json | 4 +- .../forwarder_call_sync_accept_egld.scen.json | 2 +- .../forwarder_call_sync_accept_esdt.scen.json | 2 +- ..._call_sync_accept_multi_transfer.scen.json | 2 +- .../forwarder_call_sync_accept_nft.scen.json | 2 +- ..._call_sync_accept_then_read_egld.scen.json | 4 +- ..._call_sync_accept_then_read_esdt.scen.json | 4 +- ...r_call_sync_accept_then_read_nft.scen.json | 4 +- ...orwarder_call_sync_retrieve_egld.scen.json | 5 +- ...orwarder_call_sync_retrieve_esdt.scen.json | 5 +- ...forwarder_call_sync_retrieve_nft.scen.json | 5 +- ...der_call_transf_exec_accept_egld.scen.json | 2 +- ...ll_transf_exec_accept_egld_twice.scen.json | 4 +- ...der_call_transf_exec_accept_esdt.scen.json | 2 +- ...ll_transf_exec_accept_esdt_twice.scen.json | 4 +- ...ransf_exec_accept_multi_transfer.scen.json | 2 +- ...rder_call_transf_exec_accept_nft.scen.json | 2 +- ...transf_exec_accept_return_values.scen.json | 2 +- ...all_transf_exec_accept_sft_twice.scen.json | 4 +- .../forwarder_nft_create_and_send.scen.json | 2 +- .../scenarios/forwarder_sync_echo.scen.json | 6 +- .../recursive_caller_egld_1.scen.json | 4 +- .../recursive_caller_esdt_1.scen.json | 4 +- .../scenarios/send_esdt.scen.json | 2 +- .../output/esdt-system-sc-mock.wasm | Bin 4900 -> 4953 bytes .../output/formatted-message-features.wasm | Bin 4472 -> 4411 bytes .../scenarios/sc_format.scen.json | 30 +- .../output/payable-features.wasm | Bin 4710 -> 5117 bytes .../scenarios/interactor_nft.scen.json | 563 ++++++++ .../interactor_nft_all_roles.scen.json | 526 ++++++++ .../scenarios/interactor_wegld.scen.json | 275 ++++ test/multisig/scenarios/sendEsdt.scen.json | 12 +- .../ping-pong-egld/output/ping-pong-egld.wasm | Bin 6972 -> 6696 bytes ...pong-call-pong-all-interrupted-2.scen.json | 11 +- .../output/multiversx-wegld-swap-sc.wasm | Bin 4532 -> 4382 bytes 112 files changed, 4039 insertions(+), 2752 deletions(-) create mode 100644 test/adder/scenarios/interactor_trace.scen.json delete mode 100644 test/crowdfunding-esdt/scenarios/_generated_fund.scen.json delete mode 100644 test/crowdfunding-esdt/scenarios/_generated_init.scen.json delete mode 100644 test/crowdfunding-esdt/scenarios/_generated_query_status.scen.json delete mode 100644 test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json create mode 100644 test/digital-cash/scenarios/claim-fees.scen.json create mode 100644 test/digital-cash/scenarios/claim-multi-esdt.scen.json create mode 100644 test/digital-cash/scenarios/pay-fee-and-fund-egld.scen.json create mode 100644 test/digital-cash/scenarios/pay-fee-and-fund-esdt.scen.json create mode 100644 test/digital-cash/scenarios/whitelist-blacklist-fee-tokens.scen.json create mode 100644 test/digital-cash/scenarios/withdraw-multi-esdt.scen.json delete mode 100644 test/features/alloc-features/scenarios/crypto_elliptic_curves_legacy.scen.json delete mode 100644 test/features/alloc-features/scenarios/crypto_keccak256_legacy_alloc.scen.json delete mode 100644 test/features/alloc-features/scenarios/crypto_ripemd160_legacy.scen.json delete mode 100644 test/features/alloc-features/scenarios/crypto_sha256_legacy_alloc.scen.json delete mode 100644 test/features/alloc-features/scenarios/crypto_verify_bls_legacy.scen.json delete mode 100644 test/features/alloc-features/scenarios/crypto_verify_ed25519_legacy.scen.json delete mode 100644 test/features/alloc-features/scenarios/crypto_verify_secp256k1_legacy.scen.json delete mode 100644 test/features/alloc-features/scenarios/events_legacy.scen.json create mode 100755 test/features/basic-features/output/basic-features-storage-bytes.wasm delete mode 100644 test/features/basic-features/scenarios/crypto_sha256_legacy_managed.scen.json rename test/features/basic-features/scenarios/{crypto_keccak256_legacy_managed.scen.json => get_shard_of_address.scen.json} (69%) create mode 100644 test/features/basic-features/scenarios/storage_mapper_address_to_id.scen.json create mode 100755 test/features/composability/forwarder-queue/output/forwarder-queue-promises.wasm create mode 100755 test/features/composability/forwarder-queue/output/forwarder-queue.wasm create mode 100755 test/features/composability/forwarder/output/forwarder-dbg.wasm create mode 100644 test/features/composability/scenarios/forw_queue_async.scen.json create mode 100644 test/multisig/scenarios/interactor_nft.scen.json create mode 100644 test/multisig/scenarios/interactor_nft_all_roles.scen.json create mode 100644 test/multisig/scenarios/interactor_wegld.scen.json diff --git a/integrationTests/json/scenariosAdderLog_test.go b/integrationTests/json/scenariosAdderLog_test.go index 912523e97..8a1684ab4 100644 --- a/integrationTests/json/scenariosAdderLog_test.go +++ b/integrationTests/json/scenariosAdderLog_test.go @@ -161,7 +161,7 @@ Clean: true func TestRustAdderLog(t *testing.T) { ScenariosTest(t). - Folder("adder/scenarios"). + Folder("adder/scenarios/adder.scen.json"). WithExecutorLogs(). Run(). CheckNoError(). diff --git a/integrationTests/json/scenariosContracts_test.go b/integrationTests/json/scenariosContracts_test.go index 1df613815..cd2ab902f 100644 --- a/integrationTests/json/scenariosContracts_test.go +++ b/integrationTests/json/scenariosContracts_test.go @@ -60,6 +60,7 @@ func TestCreateAsyncCall(t *testing.T) { func TestMultisig(t *testing.T) { ScenariosTest(t). Folder("multisig/scenarios"). + Exclude("multisig/scenarios/interactor*"). Run(). CheckNoError() } diff --git a/integrationTests/json/scenariosFeatures_test.go b/integrationTests/json/scenariosFeatures_test.go index bea69be2f..dedcd460d 100644 --- a/integrationTests/json/scenariosFeatures_test.go +++ b/integrationTests/json/scenariosFeatures_test.go @@ -23,6 +23,7 @@ func TestRustBasicFeaturesLatest(t *testing.T) { ScenariosTest(t). Folder("features/basic-features/scenarios"). Exclude("features/basic-features/scenarios/storage_mapper_fungible_token.scen.json"). + Exclude("features/basic-features/scenarios/get_shard_of_address.scen.json"). Run(). CheckNoError() } diff --git a/test/adder/scenarios/interactor_trace.scen.json b/test/adder/scenarios/interactor_trace.scen.json new file mode 100644 index 000000000..bb20201ba --- /dev/null +++ b/test/adder/scenarios/interactor_trace.scen.json @@ -0,0 +1,80 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60": { + "nonce": "481", + "balance": "106274669842530000003", + "esdt": { + "str:CAN-14dc0a": "1000", + "str:CAN-2abf4b": "1000", + "str:CAN-6d39e6": "1000", + "str:CAN-ac1592": "1000" + }, + "username": "" + } + } + }, + { + "step": "setState", + "newAddresses": [ + { + "creatorAddress": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "creatorNonce": "481", + "newAddress": "0x0000000000000000050028600ceb73ac22ec0b6f257aff7bed74dffa3ebfed60" + } + ] + }, + { + "step": "scDeploy", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "contractCode": "file:../output/adder.wasm", + "arguments": [ + "0x00" + ], + "gasLimit": "70,000,000", + "gasPrice": "" + }, + "expect": { + "status": "0" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x0000000000000000050028600ceb73ac22ec0b6f257aff7bed74dffa3ebfed60", + "function": "add", + "arguments": [ + "0x07" + ], + "gasLimit": "70,000,000", + "gasPrice": "" + }, + "expect": { + "status": "0" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x0000000000000000050028600ceb73ac22ec0b6f257aff7bed74dffa3ebfed60", + "function": "add", + "arguments": [ + "0x05" + ], + "gasLimit": "70,000,000", + "gasPrice": "" + }, + "expect": { + "status": "0" + } + } + ] +} \ No newline at end of file diff --git a/test/crowdfunding-esdt/output/crowdfunding-esdt.wasm b/test/crowdfunding-esdt/output/crowdfunding-esdt.wasm index 327cb5f04ac13385ffac8ab144dea4ad9339bf78..7a031750fc3fdfa88b148a3ab8624053bc5cce5e 100755 GIT binary patch literal 3612 zcmai1O>7&-6`tAUpR}Ynwj5ca>~zSumXgMalRCEJw6TUVrO0*E0#bt_7imR~BueD2 zyj;rG#Z)T6a4+qxC<-5npqB>7Aw3i*&|A`TPd&Flg8~J5D0=Fli2A*mUCA;6R05YX z@4b0H-+S}+k@>wYXN>XX@+u$j!75{`&cH0N;RCZ{tL|WcB|SmS4hE0R0tX&J`Vk`% zXl#{%z_HI@4^ii{{AE`MyCZAujfEgy(lMUbud!hw4q2jVwOEe!Ua!3o_?<=+g%Qgd ziEh2WzOJLjedf@9IN2}i2h1fxDIutx9UZi+(AiV8`d+MiEKkCIh99ieFIe#Z}*+9H>_559HZ_;KOn z5OV(fL649-1LW$Ru(`e5?&@CbcXwEk=t-r{VsBK9G&gl~dolchzi0BrN$C8p-)Xn} zSTBd$I#_5Sk?r+1s>7u1LQ)3s$4mZto<wR3(dJf3O{T`d8LY?hL5s;b# zr^oJOn;pO1WsMisr{XmHNU4_XZWupm&Z6Ch^ZQ{Gr=UsKNEO*6CkT! z92Dp??J&i+YwWtiB=bBxBp0q?cfBFIc9{1&&a;D;m=fDH_YxD|s%G)YIWv;0ua1t6 z^7EM)5b`2Z%iwUfA{}wL%B5RpH=K-gWk!w1cOg%xYOq|6rub9xp z5H@G*#xX&I?RX^w4aAr@Pr`S>w{i1J#3-rET!z91Ttzyhid!lpu2n1!M45Jq>W@GD z?BmSbWR-c4AWxv`91~^9aJuZNKkOIOgaEJwQu?M4UYQne8N=tu@F-IQP|nntV)GJ@ z_a=>uLY#p3o1mV!I!Y&us<*`J-cPvW;0O8+;9t|zs5xg8iy7r2I;867O2-M z&WvOY1Wtr1cg+r^g0iS0pf?zjQ!hL|tWt_NB#O*KWR8u@MLdTe71Wrx0@Z&;WFsa& z0y5`Pc)551KB6qfD#mTHF0Rn-M?5nS?}+PFZh{|{tm=pQI4FpT3bAQPB?mFWW0vHT~NIV@kmIrR~&1WJXtWKI18yNk5@yMr1yE?0ne)mn81>Q|;ep{~$n zj`F~aC~6!1LT!t0DAcEycxdkC?uf&2tEh3S8r?7T)GFYqf&o!fpA__kRQ)WHNWIF& zM~#Fo0bLjbWxudM%ejU)9o+5O|Lam!Bgfz~x*0p^X23t`dElU%c~vI9OSJ&-QU5hp zGPF^gFdcOcEzB;W5;)Qo(~XkriC4u;%@uFf7-$^596WI|xr#veZwUON3H*~3YxMu>o>Ps$;aAEC0fFO{Bx)uEgoOek1aJ{w@espPn3y6H$KKr*Z+IiA ztGK!F{2pE7i@0EP*DgiPl!04v&2LFRiu^s@unZhtLfAtp=Zi4+W}Zw?)W|Y5Hj;3T!s$06NS6&mTrYXXHSMS z%F!Wd#v$43H=Fo9vEJ_(S1{-#j#>7aUMHKWYtRu!=_WQql(BI#k+!s%pLYD9-IQUo UNh4T`(TL*}pHlxgIvUXDe><0o0RR91 literal 4334 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 C>HNn4 diff --git a/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json b/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json deleted file mode 100644 index c461d43b6..000000000 --- a/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "steps": [ - { - "step": "setState", - "accounts": { - "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { - "nonce": "0", - "balance": "0", - "code": "file:../output/crowdfunding-esdt.wasm", - "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { - "nonce": "0", - "balance": "0", - "storage": { - "str:deadline": "0x093a80", - "str:target": "0x07d0", - "str:tokenIdentifier": "0x43524f57442d313233343536" - }, - "code": "file:../output/crowdfunding-esdt.wasm", - "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", - "developerRewards": "0" - } - } - }, - { - "step": "scCall", - "id": "0", - "tx": { - "from": "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e", - "to": "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb", - "esdtValue": [ - { - "tokenIdentifier": "str:CROWD-123456", - "nonce": "0", - "value": "1000" - } - ], - "function": "fund", - "arguments": [], - "gasLimit": "9223372036854775807", - "gasPrice": "0" - }, - "expect": { - "out": [], - "status": "0", - "message": "str:", - "logs": "*", - "gas": "*", - "refund": "*" - } - } - ] -} diff --git a/test/crowdfunding-esdt/scenarios/_generated_init.scen.json b/test/crowdfunding-esdt/scenarios/_generated_init.scen.json deleted file mode 100644 index 061967ce1..000000000 --- a/test/crowdfunding-esdt/scenarios/_generated_init.scen.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "steps": [ - { - "step": "setState", - "accounts": { - "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { - "nonce": "0", - "balance": "0", - "code": "file:../output/crowdfunding-esdt.wasm", - "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { - "nonce": "0", - "balance": "0", - "storage": { - "str:deadline": "0x093a80", - "str:target": "0x07d0", - "str:tokenIdentifier": "0x43524f57442d313233343536" - }, - "code": "file:../output/crowdfunding-esdt.wasm", - "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", - "developerRewards": "0" - } - } - } - ] -} diff --git a/test/crowdfunding-esdt/scenarios/_generated_query_status.scen.json b/test/crowdfunding-esdt/scenarios/_generated_query_status.scen.json deleted file mode 100644 index 0cf63dff9..000000000 --- a/test/crowdfunding-esdt/scenarios/_generated_query_status.scen.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "steps": [ - { - "step": "setState", - "accounts": { - "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { - "nonce": "0", - "balance": "0", - "code": "file:../output/crowdfunding-esdt.wasm", - "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { - "nonce": "0", - "balance": "0", - "storage": { - "str:deadline": "0x093a80", - "str:target": "0x07d0", - "str:tokenIdentifier": "0x43524f57442d313233343536" - }, - "code": "file:../output/crowdfunding-esdt.wasm", - "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", - "developerRewards": "0" - } - } - }, - { - "step": "scQuery", - "id": "0", - "tx": { - "to": "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb", - "function": "status", - "arguments": [] - }, - "expect": { - "out": [ - "0x" - ], - "status": "0", - "message": "str:", - "logs": "*", - "gas": "*", - "refund": "*" - } - } - ] -} diff --git a/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json b/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json deleted file mode 100644 index 0efef9bd3..000000000 --- a/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "steps": [ - { - "step": "setState", - "accounts": { - "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { - "nonce": "0", - "balance": "0", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { - "nonce": "0", - "balance": "0", - "code": "file:../output/crowdfunding-esdt.wasm", - "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { - "nonce": "0", - "balance": "0", - "storage": { - "str:deadline": "0x093a80", - "str:target": "0x07d0", - "str:tokenIdentifier": "0x43524f57442d313233343536" - }, - "code": "file:../output/crowdfunding-esdt.wasm", - "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", - "developerRewards": "0" - } - } - }, - { - "step": "setState", - "accounts": { - "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { - "nonce": "0", - "balance": "1000", - "esdt": { - "str:CROWD-123456": { - "instances": [ - { - "nonce": "0", - "balance": "1000", - "royalties": "0" - } - ] - } - }, - "developerRewards": "0" - } - } - }, - { - "step": "scCall", - "id": "0", - "tx": { - "from": "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e", - "to": "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb", - "egldValue": "1000", - "function": "fund", - "arguments": [], - "gasLimit": "9223372036854775807", - "gasPrice": "0" - }, - "expect": { - "out": [], - "status": "4", - "message": "str:wrong token", - "logs": "*", - "gas": "*", - "refund": "*" - } - } - ] -} diff --git a/test/crowdfunding-esdt/scenarios/crowdfunding-claim-failed.scen.json b/test/crowdfunding-esdt/scenarios/crowdfunding-claim-failed.scen.json index 7303c38fe..8e619c9d6 100644 --- a/test/crowdfunding-esdt/scenarios/crowdfunding-claim-failed.scen.json +++ b/test/crowdfunding-esdt/scenarios/crowdfunding-claim-failed.scen.json @@ -107,7 +107,7 @@ { "address": "sc:crowdfunding", "endpoint": "str:ESDTTransfer", - "topics": [ + "topics": [ "str:CROWD-123456", "", "250,000,000,000", @@ -138,7 +138,7 @@ { "address": "sc:crowdfunding", "endpoint": "str:ESDTTransfer", - "topics": [ + "topics": [ "str:CROWD-123456", "", "200,000,000,000", diff --git a/test/crowdfunding-esdt/scenarios/crowdfunding-claim-successful.scen.json b/test/crowdfunding-esdt/scenarios/crowdfunding-claim-successful.scen.json index 74134792a..02f3f5f18 100644 --- a/test/crowdfunding-esdt/scenarios/crowdfunding-claim-successful.scen.json +++ b/test/crowdfunding-esdt/scenarios/crowdfunding-claim-successful.scen.json @@ -125,7 +125,7 @@ { "address": "sc:crowdfunding", "endpoint": "str:ESDTTransfer", - "topics": [ + "topics": [ "str:CROWD-123456", "", "500,000,000,000", diff --git a/test/digital-cash/output/digital-cash.wasm b/test/digital-cash/output/digital-cash.wasm index c4b621a66e0e11b7363860c91a3ae82fc8824f3f..1bec0f06e73497c05c454bc5268797cb0a8a3429 100755 GIT binary patch literal 10979 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 Ut%Zek?0r$mPqU)%_i=LjFJ{jmw*UYD diff --git a/test/digital-cash/scenarios/claim-egld.scen.json b/test/digital-cash/scenarios/claim-egld.scen.json index ea6ab57e2..c9c70411c 100644 --- a/test/digital-cash/scenarios/claim-egld.scen.json +++ b/test/digital-cash/scenarios/claim-egld.scen.json @@ -3,101 +3,18 @@ "steps": [ { "step": "externalSteps", - "path": "set-accounts.scen.json" - }, - { - "step": "setState", - "comment": "set block", - "currentBlockInfo": { - "blockTimestamp": "511", - "blockNonce": "5", - "blockRound": "555", - "blockEpoch": "1" - } - }, - { - "step": "setState", - "accounts": { - "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915": { - "nonce": "0", - "balance": "1,000,000" - } - } - }, - { - "step": "scCall", - "id": "fund", - "tx": { - "from": "address:acc1", - "to": "sc:the_digital_cash_contract", - "egldValue": "5", - "function": "fund", - "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91", - "u64:605" - ], - "gasLimit": "500,000,000", - "gasPrice": "0" - }, - "expect": { - "out": [], - "status": "0", - "message": "", - "logs": "*", - "gas": "*", - "refund": "*" - } - }, - { - "step": "checkState", - "accounts": { - "sc:the_digital_cash_contract": { - "nonce": "0", - "balance": "5", - "storage": { - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.mapped|nested:str:EGLD|u64:0": "address:acc1|nested:str:EGLD|u64:0|biguint:5|u64:655", - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.value|u32:1": "nested:str:EGLD|u64:0", - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.node_id|nested:str:EGLD|u64:0": "1", - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.info": "u32:1|u32:1|u32:1|u32:1" - }, - "code": "file:../output/digital-cash.wasm" - }, - "address:acc1": { - "nonce": "1", - "balance": "999,995", - "storage": {} - }, - "address:acc2": { - "nonce": "0", - "balance": "1,000,000", - "esdt": { - "str:CASHTOKEN-123456": "100" - }, - "storage": {} - }, - "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915": { - "nonce": "0", - "balance": "1,000,000", - "storage": {} - }, - "address:digital_cash_owner_address": { - "nonce": "1", - "balance": "0", - "storage": {} - } - } + "path": "fund-egld-and-esdt.scen.json" }, { "step": "scCall", "id": "claim2", "tx": { - "from": "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915", + "from": "address:acc2", "to": "sc:the_digital_cash_contract", "function": "claim", "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d81", - "0xf638006f25df5fc9e24ab265e90326b5edf29189608384ff3a3d47104ae7debb3a0867698680f0b78a73833ceb395932427956bc2427669e8c48ef01e7c37705" + "0xd0474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "0x443c75ceadb9ec42acff7e1b92e0305182279446c1d6c0502959484c147a0430d3f96f0b988e646f6736d5bf8e4a843d8ba7730d6fa7e60f0ef3edd225ce630f" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -125,12 +42,12 @@ "step": "scCall", "id": "claim3", "tx": { - "from": "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915", + "from": "address:acc2", "to": "sc:the_digital_cash_contract", "function": "claim", "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91", - "0xf638006f25df5fc9e24ab265e90326b5edf29189608384ff3a3d47104ae7debb3a0867698680f0b78a73833ceb395932427956bc2427669e8c48ef01e7c37705" + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "0x443c75ceadb9ec42acff7e1b92e0305182279446c1d6c0502959484c147a0430d3f96f0b988e646f6736d5bf8e4a843d8ba7730d6fa7e60f0ef3edd225ce630f" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -149,8 +66,8 @@ "comment": "set block", "currentBlockInfo": { "blockTimestamp": "511", - "blockNonce": "12", - "blockRound": "12", + "blockNonce": "8", + "blockRound": "8", "blockEpoch": "1" } }, @@ -158,12 +75,12 @@ "step": "scCall", "id": "claim4", "tx": { - "from": "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915", + "from": "address:acc2", "to": "sc:the_digital_cash_contract", "function": "claim", "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91", - "0xf638006f25ddf5fc9e24ab265e90326b5edf29189608384ff3a3d47104ae7debb3a0867698680f0b78a73833ceb395932427956bc2427669e8c48ef01e7c37705" + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "0x12bb9e58dad361e9dadd0af1021ce53f9ca12b6580f5b3ab4f9c321ee055a38bcdcf35924eb46aef7a80b22387ded0b837734ac8a57e19ea12c33ef808f996c00" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -181,12 +98,12 @@ "step": "scCall", "id": "claim5", "tx": { - "from": "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915", + "from": "address:acc2", "to": "sc:the_digital_cash_contract", "function": "claim", "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91", - "0xf638006f25df5fc9e24ab265e90326b5edf29189608384ff3a3d47104ae7debb3a0867698680f0b78a73833ceb395932427956bc2427669e8c48ef01e7c37705" + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "0x443c75ceadb9ec42acff7e1b92e0305182279446c1d6c0502959484c147a0430d3f96f0b988e646f6736d5bf8e4a843d8ba7730d6fa7e60f0ef3edd225ce630f" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -205,26 +122,76 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "0", - "storage": {}, + "balance": "2,010", + "esdt": { + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": { + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:collectedFees|nested:str:EGLD": "10" + }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { - "nonce": "1", - "balance": "999,995", + "nonce": "3", + "balance": "998,990", "storage": {} }, "address:acc2": { - "nonce": "0", + "nonce": "7", "balance": "1,000,000", "esdt": { - "str:CASHTOKEN-123456": "100" + "str:CASHTOKEN-123456": "50" }, "storage": {} }, - "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915": { - "nonce": "4", - "balance": "1,000,005", + "address:acc3": { + "nonce": "3", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, "storage": {} }, "address:digital_cash_owner_address": { diff --git a/test/digital-cash/scenarios/claim-esdt.scen.json b/test/digital-cash/scenarios/claim-esdt.scen.json index 540127748..8c0931423 100644 --- a/test/digital-cash/scenarios/claim-esdt.scen.json +++ b/test/digital-cash/scenarios/claim-esdt.scen.json @@ -3,109 +3,18 @@ "steps": [ { "step": "externalSteps", - "path": "set-accounts.scen.json" - }, - { - "step": "setState", - "comment": "set block", - "currentBlockInfo": { - "blockTimestamp": "511", - "blockNonce": "5", - "blockRound": "555", - "blockEpoch": "1" - } - }, - { - "step": "setState", - "accounts": { - "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915": { - "nonce": "0", - "balance": "1,000,000" - } - } - }, - { - "step": "scCall", - "id": "fund", - "tx": { - "from": "address:acc2", - "to": "sc:the_digital_cash_contract", - "esdtValue": [ - { - "tokenIdentifier": "str:CASHTOKEN-123456", - "value": "50" - } - ], - "function": "fund", - "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91", - "u64:605" - ], - "gasLimit": "500,000,000", - "gasPrice": "0" - }, - "expect": { - "out": [], - "status": "0", - "message": "", - "logs": "*", - "gas": "*", - "refund": "*" - } - }, - { - "step": "checkState", - "accounts": { - "sc:the_digital_cash_contract": { - "nonce": "0", - "balance": "0", - "esdt": { - "str:CASHTOKEN-123456": "50" - }, - "storage": { - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.mapped|nested:str:CASHTOKEN-123456|u64:0": "address:acc2|nested:str:CASHTOKEN-123456|u64:0|biguint:50|u64:655", - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.value|u32:1": "nested:str:CASHTOKEN-123456|u64:0", - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.node_id|nested:str:CASHTOKEN-123456|u64:0": "1", - "str:deposit|0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91|str:.info": "u32:1|u32:1|u32:1|u32:1" - }, - "code": "file:../output/digital-cash.wasm" - }, - "address:acc1": { - "nonce": "0", - "balance": "1,000,000", - "storage": {} - }, - "address:acc2": { - "nonce": "1", - "balance": "1,000,000", - "esdt": { - "str:CASHTOKEN-123456": "50" - }, - "storage": {} - }, - "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915": { - "nonce": "0", - "balance": "1,000,000", - "storage": {} - }, - "address:digital_cash_owner_address": { - "nonce": "1", - "balance": "0", - "storage": {} - } - } + "path": "fund-egld-and-esdt.scen.json" }, { "step": "scCall", "id": "claim2", "tx": { - "from": "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915", + "from": "address:acc1", "to": "sc:the_digital_cash_contract", "function": "claim", "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d81", - "0xf638006f25df5fc9e24ab265e90326b5edf29189608384ff3a3d47104ae7debb3a0867698680f0b78a73833ceb395932427956bc2427669e8c48ef01e7c37705" + "0x287bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd", + "0xdd092ec3a8d971daede79da4e5c5c90d66af9f2209a6f6541affa00c46a72fc2596e4db1b1bb226ce76e50730733078ff74a79ff7d0d185054375e0989330600" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -133,12 +42,12 @@ "step": "scCall", "id": "claim3", "tx": { - "from": "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915", + "from": "address:acc1", "to": "sc:the_digital_cash_contract", "function": "claim", "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91", - "0xf638006f25df5fc9e24ab265e90326b5edf29189608384ff3a3d47104ae7debb3a0867698680f0b78a73833ceb395932427956bc2427669e8c48ef01e7c37705" + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd", + "0xdd092ec3a8d971daede79da4e5c5c90d66af9f2209a6f6541affa00c46a72fc2596e4db1b1bb226ce76e50730733078ff74a79ff7d0d185054375e0989330600" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -157,8 +66,8 @@ "comment": "set block", "currentBlockInfo": { "blockTimestamp": "511", - "blockNonce": "12", - "blockRound": "12", + "blockNonce": "9", + "blockRound": "9", "blockEpoch": "1" } }, @@ -166,12 +75,12 @@ "step": "scCall", "id": "claim4", "tx": { - "from": "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915", + "from": "address:acc1", "to": "sc:the_digital_cash_contract", "function": "claim", "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91", - "0xf638006f25ddf5fc9e24ab265e90326b5edf29189608384ff3a3d47104ae7debb3a0867698680f0b78a73833ceb395932427956bc2427669e8c48ef01e7c37705" + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd", + "0x1dd092ec3a8d971daede79da4e5c5c90d66af9f2209a6f6541affa00c46a72fc2596e4db1b1bb226ce76e50730733078ff74a79ff7d0d185054375e0989330600" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -189,12 +98,12 @@ "step": "scCall", "id": "claim5", "tx": { - "from": "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915", + "from": "address:acc1", "to": "sc:the_digital_cash_contract", "function": "claim", "arguments": [ - "0xdfc7efc43c36853ab160e783ad65766043734e30ce46188a448c44e2bbab9d91", - "0xf638006f25df5fc9e24ab265e90326b5edf29189608384ff3a3d47104ae7debb3a0867698680f0b78a73833ceb395932427956bc2427669e8c48ef01e7c37705" + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd", + "0xdd092ec3a8d971daede79da4e5c5c90d66af9f2209a6f6541affa00c46a72fc2596e4db1b1bb226ce76e50730733078ff74a79ff7d0d185054375e0989330600" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -213,28 +122,77 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "0", - "storage": {}, + "balance": "3,010", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": { + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:collectedFees|nested:str:EGLD": "10" + }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { - "nonce": "0", - "balance": "1,000,000", + "nonce": "7", + "balance": "998,000", + "esdt": { + "str:CASHTOKEN-123456": "50" + }, "storage": {} }, "address:acc2": { - "nonce": "1", - "balance": "1,000,000", + "nonce": "3", + "balance": "999,990", "esdt": { "str:CASHTOKEN-123456": "50" }, "storage": {} }, - "0xebfd923cd251f857ed7639e87143ac83f12f423827abc4a0cdde0119c3e37915": { - "nonce": "4", - "balance": "1,000,000", + "address:acc3": { + "nonce": "3", + "balance": "999,000", "esdt": { - "str:CASHTOKEN-123456": "50" + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" }, "storage": {} }, diff --git a/test/digital-cash/scenarios/claim-fees.scen.json b/test/digital-cash/scenarios/claim-fees.scen.json new file mode 100644 index 000000000..f1af0b06c --- /dev/null +++ b/test/digital-cash/scenarios/claim-fees.scen.json @@ -0,0 +1,141 @@ +{ + "name": "claim-fees", + "steps": [ + { + "step": "externalSteps", + "path": "claim-egld.scen.json" + }, + { + "step": "scCall", + "id": "claim-fees-fail", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "claimFees", + "arguments": [], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:Endpoint can only be called by owner", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "setState", + "comment": "set block", + "currentBlockInfo": { + "blockTimestamp": "511", + "blockNonce": "1555", + "blockRound": "1555", + "blockEpoch": "1" + } + }, + { + "step": "scCall", + "id": "claim-fees-ok", + "tx": { + "from": "address:digital_cash_owner_address", + "to": "sc:the_digital_cash_contract", + "function": "claimFees", + "arguments": [], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "2,000", + "esdt": { + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": { + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "3", + "balance": "998,990", + "storage": {} + }, + "address:acc2": { + "nonce": "8", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-123456": "50" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "3", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { + "nonce": "2", + "balance": "10", + "storage": {} + } + } + } + ] +} diff --git a/test/digital-cash/scenarios/claim-multi-esdt.scen.json b/test/digital-cash/scenarios/claim-multi-esdt.scen.json new file mode 100644 index 000000000..301d037ab --- /dev/null +++ b/test/digital-cash/scenarios/claim-multi-esdt.scen.json @@ -0,0 +1,205 @@ +{ + "name": "claim-multi-esdt", + "steps": [ + { + "step": "externalSteps", + "path": "fund-egld-and-esdt.scen.json" + }, + { + "step": "scCall", + "id": "claim2", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "claim", + "arguments": [ + "0x805532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d", + "0x1ac4f6d4d45836d97ffeda83a66aaea7631a3bb3d4063421ccb2b9de9485bdb4c9bd6e44e003f6a9c9eb74379467238204ff579471d203b1878c3f1530592a02" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:non-existent key", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "setState", + "comment": "set block", + "currentBlockInfo": { + "blockTimestamp": "511", + "blockNonce": "1555", + "blockRound": "1555", + "blockEpoch": "1" + } + }, + { + "step": "scCall", + "id": "claim3", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "claim", + "arguments": [ + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d", + "0x1ac4f6d4d45836d97ffeda83a66aaea7631a3bb3d4063421ccb2b9de9485bdb4c9bd6e44e003f6a9c9eb74379467238204ff579471d203b1878c3f1530592a02" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:deposit expired", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "setState", + "comment": "set block", + "currentBlockInfo": { + "blockTimestamp": "511", + "blockNonce": "9", + "blockRound": "9", + "blockEpoch": "1" + } + }, + { + "step": "scCall", + "id": "claim4", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "claim", + "arguments": [ + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d", + "0x11ac4f6d4d45836d97ffeda83a66aaea7631a3bb3d4063421ccb2b9de9485bdb4c9bd6e44e003f6a9c9eb74379467238204ff579471d203b1878c3f1530592a02" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:argument decode error (signature): bad array length", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "claim5", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "claim", + "arguments": [ + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d", + "0x1ac4f6d4d45836d97ffeda83a66aaea7631a3bb3d4063421ccb2b9de9485bdb4c9bd6e44e003f6a9c9eb74379467238204ff579471d203b1878c3f1530592a02" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "3,030", + "esdt": { + "str:CASHTOKEN-123456": "50" + }, + "storage": { + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:collectedFees|nested:str:EGLD": "30" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "3", + "balance": "998,000", + "storage": {} + }, + "address:acc2": { + "nonce": "7", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "3", + "balance": "999,970", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { + "nonce": "1", + "balance": "0", + "storage": {} + } + } + } + ] +} diff --git a/test/digital-cash/scenarios/forward.scen.json b/test/digital-cash/scenarios/forward.scen.json index 012ce6ed2..502b6ea64 100644 --- a/test/digital-cash/scenarios/forward.scen.json +++ b/test/digital-cash/scenarios/forward.scen.json @@ -1,30 +1,115 @@ { - "name": "withdraw-egld", + "name": "forward", "steps": [ { "step": "externalSteps", "path": "fund-egld-and-esdt.scen.json" }, { - "step": "setState", - "comment": "set block", - "currentBlockInfo": { - "blockTimestamp": "511", - "blockNonce": "15", - "blockRound": "15", - "blockEpoch": "0" + "step": "scCall", + "id": "forward-fail", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "forward", + "arguments": [ + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "0xa40e72cdac3580e7203a4c2565c932f7691c35e624bcfd82718d7f559c88f440", + "0x443c75ceadb9ec42acff7e1b92e0305182279446c1d6c0502959484c147a0430d3f96f0b988e646f6736d5bf8e4a843d8ba7730d6fa7e60f0ef3edd225ce630f" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:cannot deposit funds without covering the fee cost first", + "logs": "*", + "gas": "*", + "refund": "*" } }, { "step": "scCall", - "id": "forward-fail", + "id": "deposit-fees-2", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "egldValue": "1,000", + "function": "depositFees", + "arguments": [ + "0xa40e72cdac3580e7203a4c2565c932f7691c35e624bcfd82718d7f559c88f440" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "forward-without-fees-ok", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "forward", + "arguments": [ + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "0xa40e72cdac3580e7203a4c2565c932f7691c35e624bcfd82718d7f559c88f440", + "0x443c75ceadb9ec42acff7e1b92e0305182279446c1d6c0502959484c147a0430d3f96f0b988e646f6736d5bf8e4a843d8ba7730d6fa7e60f0ef3edd225ce630f" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "deposit-fees-4", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "egldValue": "500", + "function": "depositFees", + "arguments": [ + "0x8dc17613990e9b7476401a36d112d1a4d31190dec21e7e9a3c933872a27613ee" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "forward-with-fees-fail", "tx": { "from": "address:acc2", "to": "sc:the_digital_cash_contract", + "egldValue": "500", "function": "forward", "arguments": [ - "0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a", - "address:acc2" + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d", + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d", + "0x1ac4f6d4d45836d97ffeda83a66aaea7631a3bb3d4063421ccb2b9de9485bdb4c9bd6e44e003f6a9c9eb74379467238204ff579471d203b1878c3f1530592a02" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -32,7 +117,7 @@ "expect": { "out": [], "status": "4", - "message": "str:only depositor can forward", + "message": "str:invalid depositor address", "logs": "*", "gas": "*", "refund": "*" @@ -40,14 +125,16 @@ }, { "step": "scCall", - "id": "forward-ok", + "id": "forward-with-fees-ok", "tx": { - "from": "address:acc1", + "from": "address:acc2", "to": "sc:the_digital_cash_contract", + "egldValue": "500", "function": "forward", "arguments": [ - "0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a", - "address:acc2" + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d", + "0x8dc17613990e9b7476401a36d112d1a4d31190dec21e7e9a3c933872a27613ee", + "0x1ac4f6d4d45836d97ffeda83a66aaea7631a3bb3d4063421ccb2b9de9485bdb4c9bd6e44e003f6a9c9eb74379467238204ff579471d203b1878c3f1530592a02" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -65,37 +152,93 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "1,000,000", + "balance": "4,040", "esdt": { - "str:CASHTOKEN-123456": "50" + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" }, "storage": { - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.mapped|nested:str:EGLD|u64:0": "address:acc2|nested:str:EGLD|u64:0|biguint:1,000,000|u64:16", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.value|u32:1": "nested:str:EGLD|u64:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_id|nested:str:EGLD|u64:0": "1", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.info": "u32:1|u32:1|u32:1|u32:1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.mapped|nested:str:CASHTOKEN-123456|u64:0": "address:acc2|nested:str:CASHTOKEN-123456|u64:0|biguint:50|u64:16", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.value|u32:1": "nested:str:CASHTOKEN-123456|u64:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_id|nested:str:CASHTOKEN-123456|u64:0": "1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.info": "u32:1|u32:1|u32:1|u32:1" + "str:deposit|0xa40e72cdac3580e7203a4c2565c932f7691c35e624bcfd82718d7f559c88f440": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x8dc17613990e9b7476401a36d112d1a4d31190dec21e7e9a3c933872a27613ee": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:collectedFees|nested:str:EGLD": "40" }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { - "nonce": "2", - "balance": "0", + "nonce": "3", + "balance": "998,990", "storage": {} }, "address:acc2": { - "nonce": "2", - "balance": "1,000,000", + "nonce": "9", + "balance": "997,000", "esdt": { "str:CASHTOKEN-123456": "50" }, "storage": {} }, + "address:acc3": { + "nonce": "3", + "balance": "999,970", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, "address:digital_cash_owner_address": { "nonce": "1", "balance": "0", diff --git a/test/digital-cash/scenarios/fund-egld-and-esdt.scen.json b/test/digital-cash/scenarios/fund-egld-and-esdt.scen.json index 5af2c949e..b30b5a2b9 100644 --- a/test/digital-cash/scenarios/fund-egld-and-esdt.scen.json +++ b/test/digital-cash/scenarios/fund-egld-and-esdt.scen.json @@ -7,19 +7,66 @@ }, { "step": "scCall", - "id": "fund", + "id": "fail-fund", "tx": { "from": "address:acc1", "to": "sc:the_digital_cash_contract", - "egldValue": "1,000,000", + "egldValue": "1,000", "function": "fund", "arguments": [ - "0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a", + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", "u64:100" ], "gasLimit": "500,000,000", "gasPrice": "0" }, + "expect": { + "out": [], + "status": "4", + "message": "str:fees not covered", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "deposit-fees-1", + "tx": { + "from": "address:acc1", + "to": "sc:the_digital_cash_contract", + "egldValue": "1,000", + "function": "depositFees", + "arguments": [ + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "fund-1", + "tx": { + "from": "address:acc1", + "to": "sc:the_digital_cash_contract", + "egldValue": "1,000", + "function": "fund", + "arguments": [ + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "u64:60" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, "expect": { "out": [], "status": "0", @@ -34,19 +81,36 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "1,000,000", + "balance": "2,000", "storage": { - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.mapped|nested:str:EGLD|u64:0": "address:acc1|nested:str:EGLD|u64:0|biguint:1,000,000|u64:16", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.value|u32:1": "nested:str:EGLD|u64:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_id|nested:str:EGLD|u64:0": "1", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.info": "u32:1|u32:1|u32:1|u32:1" + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { - "nonce": "1", - "balance": "0", + "nonce": "3", + "balance": "998000", "storage": {} }, "address:acc2": { @@ -57,6 +121,16 @@ }, "storage": {} }, + "address:acc3": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-112233": "100", + "str:CASHTOKEN-445566": "100", + "str:CASHTOKEN-778899": "100" + }, + "storage": {} + }, "address:digital_cash_owner_address": { "nonce": "1", "balance": "0", @@ -64,6 +138,29 @@ } } }, + { + "step": "scCall", + "id": "deposit-fees-2", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "egldValue": "1,000", + "function": "depositFees", + "arguments": [ + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, { "step": "scCall", "id": "fund-2", @@ -78,7 +175,7 @@ ], "function": "fund", "arguments": [ - "0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8", + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd", "u64:100" ], "gasLimit": "100,000,000", @@ -97,37 +194,295 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "1,000,000", + "balance": "3,000", "esdt": { - "''CASHTOKEN-123456": "50" + "str:CASHTOKEN-123456": "50" }, "storage": { - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.mapped|nested:str:EGLD|u64:0": "address:acc1|nested:str:EGLD|u64:0|biguint:1,000,000|u64:16", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.value|u32:1": "nested:str:EGLD|u64:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_id|nested:str:EGLD|u64:0": "1", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.info": "u32:1|u32:1|u32:1|u32:1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.mapped|nested:str:CASHTOKEN-123456|u64:0": "address:acc2|nested:str:CASHTOKEN-123456|u64:0|biguint:50|u64:16", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.value|u32:1": "nested:str:CASHTOKEN-123456|u64:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_id|nested:str:CASHTOKEN-123456|u64:0": "1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.info": "u32:1|u32:1|u32:1|u32:1" + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { + "nonce": "3", + "balance": "998,000", + "storage": {} + }, + "address:acc2": { + "nonce": "2", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-123456": "50" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-112233": "100", + "str:CASHTOKEN-445566": "100", + "str:CASHTOKEN-778899": "100" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { "nonce": "1", "balance": "0", "storage": {} + } + } + }, + { + "step": "scCall", + "id": "fund-fail-2", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "esdtValue": [ + { + "tokenIdentifier": "str:CASHTOKEN-123456", + "value": "10" + } + ], + "function": "fund", + "arguments": [ + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd", + "u64:100" + ], + "gasLimit": "100,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:key already used", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "fund-fail-3", + "tx": { + "from": "address:acc3", + "to": "sc:the_digital_cash_contract", + "esdtValue": [ + { + "tokenIdentifier": "str:CASHTOKEN-112233", + "value": "50" + }, + { + "tokenIdentifier": "str:CASHTOKEN-445566", + "value": "50" + }, + { + "tokenIdentifier": "str:CASHTOKEN-778899", + "value": "50" + } + ], + "function": "fund", + "arguments": [ + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd", + "u64:100" + ], + "gasLimit": "100,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:invalid depositor", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "deposit-fees-3", + "tx": { + "from": "address:acc3", + "to": "sc:the_digital_cash_contract", + "egldValue": "1,000", + "function": "depositFees", + "arguments": [ + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "fund-2", + "tx": { + "from": "address:acc3", + "to": "sc:the_digital_cash_contract", + "esdtValue": [ + { + "tokenIdentifier": "str:CASHTOKEN-112233", + "value": "50" + }, + { + "tokenIdentifier": "str:CASHTOKEN-445566", + "value": "50" + }, + { + "tokenIdentifier": "str:CASHTOKEN-778899", + "value": "50" + } + ], + "function": "fund", + "arguments": [ + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d", + "u64:100" + ], + "gasLimit": "100,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "", + "message": "", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "4,000", + "esdt": { + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": { + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "3", + "balance": "998,000", + "storage": {} }, "address:acc2": { - "nonce": "1", - "balance": "1,000,000", + "nonce": "3", + "balance": "999,000", "esdt": { "str:CASHTOKEN-123456": "50" }, "storage": {} }, + "address:acc3": { + "nonce": "3", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, "address:digital_cash_owner_address": { "nonce": "1", "balance": "0", diff --git a/test/digital-cash/scenarios/pay-fee-and-fund-egld.scen.json b/test/digital-cash/scenarios/pay-fee-and-fund-egld.scen.json new file mode 100644 index 000000000..83e5d386e --- /dev/null +++ b/test/digital-cash/scenarios/pay-fee-and-fund-egld.scen.json @@ -0,0 +1,126 @@ +{ + "name": "pay-fee-adn-fund-egld", + "steps": [ + { + "step": "externalSteps", + "path": "whitelist-blacklist-fee-tokens.scen.json" + }, + { + "step": "scCall", + "id": "pay-fee-and-fund-egld-fail", + "tx": { + "from": "address:acc3", + "to": "sc:the_digital_cash_contract", + "egldValue": "10", + "function": "payFeeAndFundEGLD", + "arguments": [ + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "u64:100" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:payment not covering fees", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "pay-fee-and-fund-egld-success", + "tx": { + "from": "address:acc3", + "to": "sc:the_digital_cash_contract", + "egldValue": "1,000", + "function": "payFeeAndFundEGLD", + "arguments": [ + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "u64:100" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "1,000", + "storage": { + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:990", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:10" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:CASHTOKEN-778899": "3", + "str:whitelistedFeeTokens|str:.len": "2", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", + "str:allTimeFeeTokens|str:.len": "3", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", + "str:allTimeFeeTokens|str:.item|u32:3": "str:ESDT-778899", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", + "str:allTimeFeeTokens|str:.index|nested:str:ESDT-778899": "3" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "0", + "balance": "1,000,000", + "storage": {} + }, + "address:acc2": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-123456": "100" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "2", + "balance": "999000", + "esdt": { + "str:CASHTOKEN-112233": "100", + "str:CASHTOKEN-445566": "100", + "str:CASHTOKEN-778899": "100" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { + "nonce": "6", + "balance": "0", + "storage": {} + } + } + } + ] +} diff --git a/test/digital-cash/scenarios/pay-fee-and-fund-esdt.scen.json b/test/digital-cash/scenarios/pay-fee-and-fund-esdt.scen.json new file mode 100644 index 000000000..7bf2184f8 --- /dev/null +++ b/test/digital-cash/scenarios/pay-fee-and-fund-esdt.scen.json @@ -0,0 +1,148 @@ +{ + "name": "pay-fee-and-fund-esdt", + "steps": [ + { + "step": "externalSteps", + "path": "whitelist-blacklist-fee-tokens.scen.json" + }, + { + "step": "scCall", + "id": "pay-fee-and-fund-esdt-fail", + "tx": { + "from": "address:acc3", + "to": "sc:the_digital_cash_contract", + "esdtValue": [ + { + "tokenIdentifier": "str:CASHTOKEN-445566", + "value": "50" + }, + { + "tokenIdentifier": "str:CASHTOKEN-112233", + "value": "50" + } + ], + "function": "payFeeAndFundESDT", + "arguments": [ + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "u64:100" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:invalid fee toke provided", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "pay-fee-and-fund-esdt-success", + "tx": { + "from": "address:acc3", + "to": "sc:the_digital_cash_contract", + "esdtValue": [ + { + "tokenIdentifier": "str:CASHTOKEN-778899", + "value": "50" + }, + { + "tokenIdentifier": "str:CASHTOKEN-112233", + "value": "50" + } + ], + "function": "payFeeAndFundESDT", + "arguments": [ + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60", + "u64:100" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": { + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-112233|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:CASHTOKEN-778899", + "1-nonce": "u64:0", + "2-amount": "biguint:50" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:CASHTOKEN-778899": "3", + "str:whitelistedFeeTokens|str:.len": "2", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", + "str:allTimeFeeTokens|str:.len": "3", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", + "str:allTimeFeeTokens|str:.item|u32:3": "str:ESDT-778899", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", + "str:allTimeFeeTokens|str:.index|nested:str:ESDT-778899": "3" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "0", + "balance": "1,000,000", + "storage": {} + }, + "address:acc2": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-123456": "100" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "2", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "100", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { + "nonce": "6", + "balance": "0", + "storage": {} + } + } + } + ] +} diff --git a/test/digital-cash/scenarios/set-accounts.scen.json b/test/digital-cash/scenarios/set-accounts.scen.json index ad6741019..f010d4059 100644 --- a/test/digital-cash/scenarios/set-accounts.scen.json +++ b/test/digital-cash/scenarios/set-accounts.scen.json @@ -15,6 +15,15 @@ "str:CASHTOKEN-123456": "100" } }, + "address:acc3": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-112233": "100", + "str:CASHTOKEN-445566": "100", + "str:CASHTOKEN-778899": "100" + } + }, "address:digital_cash_owner_address": { "nonce": "0", "balance": "0" @@ -34,7 +43,10 @@ "tx": { "from": "address:digital_cash_owner_address", "contractCode": "file:../output/digital-cash.wasm", - "arguments": [], + "arguments": [ + "10", + "str:EGLD" + ], "gasLimit": "5,000,000", "gasPrice": "0" }, @@ -44,6 +56,53 @@ "gas": "*", "refund": "*" } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "0", + "storage": { + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "0", + "balance": "1,000,000", + "storage": {} + }, + "address:acc2": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-123456": "100" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-112233": "100", + "str:CASHTOKEN-445566": "100", + "str:CASHTOKEN-778899": "100" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { + "nonce": "1", + "balance": "0", + "storage": {} + } + } } ] } diff --git a/test/digital-cash/scenarios/whitelist-blacklist-fee-tokens.scen.json b/test/digital-cash/scenarios/whitelist-blacklist-fee-tokens.scen.json new file mode 100644 index 000000000..bd9f1afd1 --- /dev/null +++ b/test/digital-cash/scenarios/whitelist-blacklist-fee-tokens.scen.json @@ -0,0 +1,176 @@ +{ + "name": "whitelist-blacklist-fee-token", + "steps": [ + { + "step": "externalSteps", + "path": "set-accounts.scen.json" + }, + { + "step": "scCall", + "id": "whitelist-fail", + "tx": { + "from": "address:digital_cash_owner_address", + "to": "sc:the_digital_cash_contract", + "function": "whitelistFeeToken", + "arguments": [ + "biguint:10", + "str:EGLD" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:Token already whitelisted", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "whitelist-success-1", + "tx": { + "from": "address:digital_cash_owner_address", + "to": "sc:the_digital_cash_contract", + "function": "whitelistFeeToken", + "arguments": [ + "3", + "str:CASHTOKEN-778899" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "whitelist-success-2", + "tx": { + "from": "address:digital_cash_owner_address", + "to": "sc:the_digital_cash_contract", + "function": "whitelistFeeToken", + "arguments": [ + "5", + "str:ESDT-778899" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "blacklist-fail", + "tx": { + "from": "address:digital_cash_owner_address", + "to": "sc:the_digital_cash_contract", + "function": "blacklistFeeToken", + "arguments": [ + "str:ESDT-000000" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:Token is not whitelisted", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "blacklist-success", + "tx": { + "from": "address:digital_cash_owner_address", + "to": "sc:the_digital_cash_contract", + "function": "blacklistFeeToken", + "arguments": [ + "str:ESDT-778899" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "0", + "storage": { + "str:fee|nested:str:EGLD": "10", + "str:fee|nested:str:CASHTOKEN-778899": "3", + "str:whitelistedFeeTokens|str:.len": "2", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:whitelistedFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", + "str:allTimeFeeTokens|str:.len": "3", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.item|u32:2": "str:CASHTOKEN-778899", + "str:allTimeFeeTokens|str:.item|u32:3": "str:ESDT-778899", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.index|nested:str:CASHTOKEN-778899": "2", + "str:allTimeFeeTokens|str:.index|nested:str:ESDT-778899": "3" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "0", + "balance": "1,000,000", + "storage": {} + }, + "address:acc2": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-123456": "100" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "0", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-112233": "100", + "str:CASHTOKEN-445566": "100", + "str:CASHTOKEN-778899": "100" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { + "nonce": "6", + "balance": "0", + "storage": {} + } + } + } + ] +} diff --git a/test/digital-cash/scenarios/withdraw-egld.scen.json b/test/digital-cash/scenarios/withdraw-egld.scen.json index 683b12a35..5c4182a16 100644 --- a/test/digital-cash/scenarios/withdraw-egld.scen.json +++ b/test/digital-cash/scenarios/withdraw-egld.scen.json @@ -5,25 +5,15 @@ "step": "externalSteps", "path": "fund-egld-and-esdt.scen.json" }, - { - "step": "setState", - "comment": "set block", - "currentBlockInfo": { - "blockTimestamp": "511", - "blockNonce": "15", - "blockRound": "15", - "blockEpoch": "0" - } - }, { "step": "scCall", - "id": "withdraw-esdt-1", + "id": "withdraw-egld-fail-1", "tx": { "from": "address:acc1", "to": "sc:the_digital_cash_contract", "function": "withdraw", "arguments": [ - "0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a" + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -42,37 +32,92 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "1,000,000", + "balance": "4,000", "esdt": { - "str:CASHTOKEN-123456": "50" + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" }, "storage": { - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.mapped|nested:str:EGLD|u64:0": "address:acc1|nested:str:EGLD|u64:0|biguint:1,000,000|u64:16", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.value|u32:1": "nested:str:EGLD|u64:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_id|nested:str:EGLD|u64:0": "1", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.info": "u32:1|u32:1|u32:1|u32:1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.mapped|nested:str:CASHTOKEN-123456|u64:0": "address:acc2|nested:str:CASHTOKEN-123456|u64:0|biguint:50|u64:16", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.value|u32:1": "nested:str:CASHTOKEN-123456|u64:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_id|nested:str:CASHTOKEN-123456|u64:0": "1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.info": "u32:1|u32:1|u32:1|u32:1" + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { - "nonce": "2", - "balance": "0", + "nonce": "4", + "balance": "998,000", "storage": {} }, "address:acc2": { - "nonce": "1", - "balance": "1,000,000", + "nonce": "3", + "balance": "999,000", "esdt": { "str:CASHTOKEN-123456": "50" }, "storage": {} }, + "address:acc3": { + "nonce": "3", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, "address:digital_cash_owner_address": { "nonce": "1", "balance": "0", @@ -82,7 +127,7 @@ }, { "step": "scCall", - "id": "withdraw-egld-2", + "id": "withdraw-egld-fail-2", "tx": { "from": "address:acc1", "to": "sc:the_digital_cash_contract", @@ -114,13 +159,13 @@ }, { "step": "scCall", - "id": "withdraw-egld-3", + "id": "withdraw-egld-success", "tx": { "from": "address:acc1", "to": "sc:the_digital_cash_contract", "function": "withdraw", "arguments": [ - "0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a" + "0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -139,32 +184,77 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "0", + "balance": "2,000", "esdt": { - "str:CASHTOKEN-123456": "50" + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" }, "storage": { - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.mapped|nested:str:CASHTOKEN-123456|u64:0": "address:acc2|nested:str:CASHTOKEN-123456|u64:0|biguint:50|u64:16", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.value|u32:1": "nested:str:CASHTOKEN-123456|u64:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_id|nested:str:CASHTOKEN-123456|u64:0": "1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.info": "u32:1|u32:1|u32:1|u32:1" + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { - "nonce": "4", + "nonce": "6", "balance": "1,000,000", "storage": {} }, "address:acc2": { - "nonce": "1", - "balance": "1,000,000", + "nonce": "3", + "balance": "999,000", "esdt": { "str:CASHTOKEN-123456": "50" }, "storage": {} }, + "address:acc3": { + "nonce": "3", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, "address:digital_cash_owner_address": { "nonce": "1", "balance": "0", diff --git a/test/digital-cash/scenarios/withdraw-esdt.scen.json b/test/digital-cash/scenarios/withdraw-esdt.scen.json index 2a73b3c01..07d7c821e 100644 --- a/test/digital-cash/scenarios/withdraw-esdt.scen.json +++ b/test/digital-cash/scenarios/withdraw-esdt.scen.json @@ -5,25 +5,15 @@ "step": "externalSteps", "path": "fund-egld-and-esdt.scen.json" }, - { - "step": "setState", - "comment": "set block", - "currentBlockInfo": { - "blockTimestamp": "511", - "blockNonce": "15", - "blockRound": "15", - "blockEpoch": "0" - } - }, { "step": "scCall", - "id": "withdraw-esdt-1", + "id": "withdraw-esdt-fail-1", "tx": { "from": "address:acc2", "to": "sc:the_digital_cash_contract", "function": "withdraw", "arguments": [ - "0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8" + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -42,37 +32,92 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "1,000,000", + "balance": "4,000", "esdt": { - "str:CASHTOKEN-123456": "50" + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" }, "storage": { - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.mapped|nested:str:EGLD|u64:0": "address:acc1|nested:str:EGLD|u64:0|biguint:1,000,000|u64:16", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.value|u32:1": "nested:str:EGLD|u64:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_id|nested:str:EGLD|u64:0": "1", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.info": "u32:1|u32:1|u32:1|u32:1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.mapped|nested:str:CASHTOKEN-123456|u64:0": "address:acc2|nested:str:CASHTOKEN-123456|u64:0|biguint:50|u64:16", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.value|u32:1": "nested:str:CASHTOKEN-123456|u64:0", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.node_id|nested:str:CASHTOKEN-123456|u64:0": "1", - "str:deposit|0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8|str:.info": "u32:1|u32:1|u32:1|u32:1" + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { - "nonce": "1", - "balance": "0", + "nonce": "3", + "balance": "998,000", "storage": {} }, "address:acc2": { - "nonce": "2", - "balance": "1,000,000", + "nonce": "4", + "balance": "999,000", "esdt": { "str:CASHTOKEN-123456": "50" }, "storage": {} }, + "address:acc3": { + "nonce": "3", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, "address:digital_cash_owner_address": { "nonce": "1", "balance": "0", @@ -82,13 +127,13 @@ }, { "step": "scCall", - "id": "withdraw-esdt-2", + "id": "withdraw-esdt-fail-2", "tx": { "from": "address:acc2", "to": "sc:the_digital_cash_contract", "function": "withdraw", "arguments": [ - "0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc7" + "0xe808c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc7" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -114,13 +159,13 @@ }, { "step": "scCall", - "id": "withdraw-esdt-3", + "id": "withdraw-esdt-success", "tx": { "from": "address:acc2", "to": "sc:the_digital_cash_contract", "function": "withdraw", "arguments": [ - "0xe868c2baab2a20b612f1351da5945c52c60f5321c6cde572149db90c9e8fbfc8" + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd" ], "gasLimit": "500,000,000", "gasPrice": "0" @@ -139,32 +184,76 @@ "accounts": { "sc:the_digital_cash_contract": { "nonce": "0", - "balance": "1,000,000", + "balance": "3,000", "esdt": { - "str:CASHTOKEN-123456": "0" + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" }, "storage": { - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.mapped|nested:str:EGLD|u64:0": "address:acc1|nested:str:EGLD|u64:0|biguint:1,000,000|u64:16", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_links|u32:1": "u32:0|u32:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.value|u32:1": "nested:str:EGLD|u64:0", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.node_id|nested:str:EGLD|u64:0": "1", - "str:deposit|0x558fd9b0dd9fed3d3bed883d3b92907743362c56b9728392f84b261f1cc5ae0a|str:.info": "u32:1|u32:1|u32:1|u32:1" + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" }, "code": "file:../output/digital-cash.wasm" }, "address:acc1": { - "nonce": "1", - "balance": "0", + "nonce": "3", + "balance": "998,000", "storage": {} }, "address:acc2": { - "nonce": "4", + "nonce": "6", "balance": "1,000,000", "esdt": { "str:CASHTOKEN-123456": "100" }, "storage": {} }, + "address:acc3": { + "nonce": "3", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, "address:digital_cash_owner_address": { "nonce": "1", "balance": "0", diff --git a/test/digital-cash/scenarios/withdraw-multi-esdt.scen.json b/test/digital-cash/scenarios/withdraw-multi-esdt.scen.json new file mode 100644 index 000000000..fae381c06 --- /dev/null +++ b/test/digital-cash/scenarios/withdraw-multi-esdt.scen.json @@ -0,0 +1,263 @@ +{ + "name": "withdraw-multi-esdt", + "steps": [ + { + "step": "externalSteps", + "path": "fund-egld-and-esdt.scen.json" + }, + { + "step": "scCall", + "id": "withdraw-esdt-1", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "withdraw", + "arguments": [ + "0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:withdrawal has not been available yet", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "4,000", + "esdt": { + "str:CASHTOKEN-123456": "50", + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": { + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d": { + "0-depositor_address": "address:acc3", + "1-esdt_funds": "u32:3|nested:str:CASHTOKEN-112233|u64:0|biguint:50|nested:str:CASHTOKEN-445566|u64:0|biguint:50|nested:str:CASHTOKEN-778899|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:3", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "3", + "balance": "998,000", + "storage": {} + }, + "address:acc2": { + "nonce": "4", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-123456": "50" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "3", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-112233": "50", + "str:CASHTOKEN-445566": "50", + "str:CASHTOKEN-778899": "50" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { + "nonce": "1", + "balance": "0", + "storage": {} + } + } + }, + { + "step": "scCall", + "id": "withdraw-esdt-2", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "withdraw", + "arguments": [ + "0x805532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:non-existent key", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "setState", + "comment": "set block", + "currentBlockInfo": { + "blockTimestamp": "511", + "blockNonce": "300", + "blockRound": "300", + "blockEpoch": "1" + } + }, + { + "step": "scCall", + "id": "withdraw-esdt-3", + "tx": { + "from": "address:acc2", + "to": "sc:the_digital_cash_contract", + "function": "withdraw", + "arguments": [ + "0x885532043a061e0c779e4064b85193f72cffd22c5bcc208c209128e60f21bf0d" + ], + "gasLimit": "500,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "sc:the_digital_cash_contract": { + "nonce": "0", + "balance": "3,000", + "esdt": { + "str:CASHTOKEN-123456": "50" + }, + "storage": { + "str:deposit|0xdb474a3a065d3f0c0a62ae680ef6435e48eb482899d2ae30ff7a3a4b0ef19c60": { + "0-depositor_address": "address:acc1", + "1-esdt_funds": "u32:0", + "2-egld_funds": "biguint:1,000", + "3-valability": "u64:60", + "4-expiration_round": "u64:10", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:deposit|0x487bd4010b50c24a02018345fe5171edf4182e6294325382c75ef4c4409f01bd": { + "0-depositor_address": "address:acc2", + "1-esdt_funds": "u32:1|nested:str:CASHTOKEN-123456|u64:0|biguint:50", + "2-egld_funds": "biguint:0", + "3-valability": "u64:100", + "4-expiration_round": "u64:16", + "5-fees": { + "0-num_token_to_transfer": "u32:1", + "1-value": { + "0-tokenIdentifier": "nested:str:EGLD", + "1-nonce": "u64:0", + "2-amount": "biguint:1,000" + } + } + }, + "str:fee|nested:str:EGLD": "10", + "str:whitelistedFeeTokens|str:.len": "1", + "str:whitelistedFeeTokens|str:.item|u32:1": "str:EGLD", + "str:whitelistedFeeTokens|str:.index|nested:str:EGLD": "1", + "str:allTimeFeeTokens|str:.len": "1", + "str:allTimeFeeTokens|str:.item|u32:1": "str:EGLD", + "str:allTimeFeeTokens|str:.index|nested:str:EGLD": "1" + }, + "code": "file:../output/digital-cash.wasm" + }, + "address:acc1": { + "nonce": "3", + "balance": "998,000", + "storage": {} + }, + "address:acc2": { + "nonce": "6", + "balance": "999,000", + "esdt": { + "str:CASHTOKEN-123456": "50" + }, + "storage": {} + }, + "address:acc3": { + "nonce": "3", + "balance": "1,000,000", + "esdt": { + "str:CASHTOKEN-112233": "100", + "str:CASHTOKEN-445566": "100", + "str:CASHTOKEN-778899": "100" + }, + "storage": {} + }, + "address:digital_cash_owner_address": { + "nonce": "1", + "balance": "0", + "storage": {} + } + } + } + ] +} diff --git a/test/erc20-rust/output/erc20.wasm b/test/erc20-rust/output/erc20.wasm index 3168d8296f53bab70a96d8beaf4ffb79c96a8060..0e05fb4508d5b224a5737fa89920e3d7bf67b975 100755 GIT binary patch literal 2130 zcmZuy&u<$=6n?X7C+m#cOw*9m?yrfPmb8>o3iQCKlhPDWRgePWn6AAO$BDgbcGn5H z;6_N?I3gs3xFIgwdga95z@Gq!0|$gSaUgteb{!I_mb^RjetqBj-e{J>Y#@k8To0aj zrq0K*x8Nx;;?T!XE&I^=DMFbo< zh%2fR3XVrM?&e$Mvw5~_^T(sXBsQZeTjvXuwO-uIwkALY<=L{%y3LRAtrZC-ifEb( zl>7BjyV%bZer~70ZIor!(qypeS~`MpbWfd7hMeu}1UgSrD7lW8Ej*L1*#ys{B#a8j zVwv(m@;s24()-x%6@8bq?+=DW`fNF~kJ4U_s@+24)158b*?FA2AMQKhJ-@Y7saDCK zs#N@{5Wc|A7br_crO(8ctBM$2+GkPwI82jWOK$`n zB&>#=9lATSu@QxNxPjB=3%RkeWy9e{JIt)_&HNfH)ku?>Q$(^Z#8{nckrJ9@0~_=E zLBRhNkBr!9(OnO*@=OutY0^T~n%a|fm|bE8?)#HXwF&E#(GM&4xP7yz8ZD$~PkHc| zuVC_v zgHXqFMqZpO0if!J-Uh8_h`i0UyD`eD8%UdSxX<^Rgcs%{r|JXo( zEQ4LQW6y4y-u3Fh@l1W&RJaq*sO@D)>d>K|I^C4Apwd#aP1g+MyDDp>E^`|#xxf@I zH`QDVaERx6>WZ9mX4qKnhPnd1XUO~w=2A7}JiO*}jAV z&QX{Q;60@s&1>chpa<$Y2JWwTfm(qXi@IBQ>P0n=M5oYOqEd38Wl}E~p)O!}%_XkB z2tMit%Y^gdU_8KpCt$!2=$KF;GcrkCP&d>?dFQCBql$gq*yZL{qWt0M$qQZB`@lXNz+>%;!>fDl_is}hG z-{Jj;=qbhn+B2+cSo_FtF1g`5NT&&!KZf0^u=d4-ekv!#qgc`vCI?q_d_lHskl~*L$$dIhbrYqonnN7GX$%SR+-BC}2y$4RcUQ5)A?C)aJ;2}haLsm(_H zT<;~LegvbAZ8yw&xc=HH)MIWPOi_R+co2lvQ6_O*^6x&MiDTw s)OLEq9=^Aka~=h2`$@;z$VR<5!#BOx;TXL+ildD9-jtPZ4i69i170`OX#fBK literal 2172 zcmZuy&rc*p6n@p+!^}{_PQmhH8FtxXU>DeR-PKi0JW;F*nh-QW;}LqMi(z1C$eYMS``-6zs=!aW3;@`2 zY1bJHfCe_$1=wZuWoQBXx&zvykqw-`+(}o5M?7h_LcjAoj-wcWEF)b%^jkW3=65v?Vgo$$=yzzQy7Lr(U?1&j_&y91_9PrnB~0QLKs{r*Yc;u+&ZUEPi169+t0K7}Vd zjZ(j}-S71}C-6$S;dlJ7so&j$SIc;cqGMXY(^4AyVS>j9UaRC&(iL7W`n_Hp9cfr8 zH8Eh#Zyv%M!#g{HpZYs^;#|gecJ{U3+iCcTcAeqR%JnixP-6msR~Q?JTXhgj0-wQ! z`VEPiVaWkCIH<#lgWmip?NL!`O4RC(1j&R`laBh5Y_6SuOLJl7!UaBR!L4%{o%t+6 znRH$aCj})pyj97hBc_34l1jckgo_CfMG5QPYL%<62zZ(Zm&oO=DDlbMR}d7HFp3jC zo)x4F7Z8{h_%Qk!#>0kznPNUsQG-oyReeV#KOuBpwc)6S7^z9dH*h_VH67NS1(1$p zs+6J(=f#h3dMk~|aHLNEb~XBKmrN^$NY@3!nK^P$@w{*%puB&89$*#85b@>+@3RkE0fkpgBo1PU-zg7wpCx`t)iaP zrH6_wO29^7e;x4{!;EYpbFVS5jPo*y!3&a7wI;84gjo00k5-ijbO3FK&4hYR*{Ri8 zIu{t{=L|0yb5;Jz{Oqlhfo?{DmYUvGxwQPIJdUHVCBuHVp<@~C$=ox6h9BT6_D^KT zJcw8B((GEy?$i9vyu4BqdX06QM$vJoV?PLDog}etwtH=SZxge5=`8ifO|1hRw8I1+ z^LCSbvsSE diff --git a/test/factorial/output/factorial.wasm b/test/factorial/output/factorial.wasm index 4baa4d292bd9a23cc12cbff4af36875311139a69..93419688744fcf53392b5bbbaa0283d3773eae7a 100755 GIT binary patch delta 279 zcmX9%F;2rk5S+a|+ZPUzD-DmE3sr@G zKiT_5-PG;Vebd(KW>rCRmJ(@cPME;ySVe@d&e;9hp3>dbC#6S3(b*Yp$ic%Niw(QZ z3^-Q^^fJSx8ZHw!<+0G$V;j28Y`^KOV0UmLp-XfWMFMd2@a)onLPt-DCmFa*Qh4Re aAz7PvW!=a!L|@30p>C@3%vina`~DAYM>M+t delta 268 zcmXX=F;2rk5S-mR8;3)1mOu!l@FhYD6(uF&kO%_N(i`L`I1<+w(O$j~+@?VA2s*@5 z_=#Bz#m>%XXGZ&>KXrk-=8*ua&e>8EIbeH>-kl9 z@>PXi@BZm&9qQ)cHZ=7-%qpFm=v7n%H{*In2B03Yc&rT_o{ diff --git a/test/features/alloc-features/output/alloc-features.wasm b/test/features/alloc-features/output/alloc-features.wasm index b1fe6da18f72471cae1ddedca7ca9c995aa90b76..fef7b89dfdad54dae07231c4667a5dd60f4a965b 100755 GIT binary patch literal 19442 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 literal 26521 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 diff --git a/test/features/basic-features/scenarios/crypto_sha256_legacy_managed.scen.json b/test/features/basic-features/scenarios/crypto_sha256_legacy_managed.scen.json deleted file mode 100644 index e842da3eb..000000000 --- a/test/features/basic-features/scenarios/crypto_sha256_legacy_managed.scen.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "crypto", - "gasSchedule": "v3", - "steps": [ - { - "step": "setState", - "accounts": { - "sc:basic-features": { - "nonce": "0", - "balance": "0", - "code": "file:../output/basic-features.wasm" - }, - "address:an_account": { - "nonce": "0", - "balance": "0" - } - } - }, - { - "step": "scCall", - "id": "1", - "tx": { - "from": "address:an_account", - "to": "sc:basic-features", - "function": "compute_sha256_legacy_managed", - "arguments": [ - "0x010203" - ], - "gasLimit": "50,000,000", - "gasPrice": "0" - }, - "expect": { - "out": [ - "0x039058c6f2c0cb492c533b0a4d14ef77cc0f78abccced5287d84a1a2011cfb81" - ], - "status": "", - "logs": "*", - "gas": "*", - "refund": "*" - } - }, - { - "step": "scCall", - "id": "2", - "tx": { - "from": "address:an_account", - "to": "sc:basic-features", - "function": "compute_sha256_legacy_managed", - "arguments": [ - "0x0102030405060708" - ], - "gasLimit": "50,000,000", - "gasPrice": "0" - }, - "expect": { - "out": [ - "0x66840dda154e8a113c31dd0ad32f7f3a366a80e8136979d8f5a101d3d29d6f72" - ], - "status": "", - "logs": "*", - "gas": "*", - "refund": "*" - } - } - ] -} diff --git a/test/features/basic-features/scenarios/crypto_verify_ed25519.scen.json b/test/features/basic-features/scenarios/crypto_verify_ed25519.scen.json index c6098826c..d6cd54906 100644 --- a/test/features/basic-features/scenarios/crypto_verify_ed25519.scen.json +++ b/test/features/basic-features/scenarios/crypto_verify_ed25519.scen.json @@ -1,6 +1,4 @@ { - "name": "crypto", - "gasSchedule": "v3", "steps": [ { "step": "setState", @@ -18,7 +16,7 @@ }, { "step": "scCall", - "id": "4", + "id": "verify ok", "tx": { "from": "address:an_account", "to": "sc:basic-features", @@ -32,14 +30,36 @@ "gasPrice": "0" }, "expect": { - "out": [ - "0x01" - ], + "out": [], "status": "", "logs": "*", "gas": "*", "refund": "*" } + }, + { + "step": "scCall", + "id": "verify fail", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "verify_ed25519_signature", + "arguments": [ + "0xf2445fdaca6607728fa06e0610062c3468cad6d54f19549916ef577f69c7eb86", + "0x6d65737361676520746f207369676e", + "str:absolutely-invalid-signature" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "10", + "message": "str:invalid signature", + "logs": "*", + "gas": "*", + "refund": "*" + } } ] } diff --git a/test/features/basic-features/scenarios/crypto_keccak256_legacy_managed.scen.json b/test/features/basic-features/scenarios/get_shard_of_address.scen.json similarity index 69% rename from test/features/basic-features/scenarios/crypto_keccak256_legacy_managed.scen.json rename to test/features/basic-features/scenarios/get_shard_of_address.scen.json index 70070ed71..d8177c1aa 100644 --- a/test/features/basic-features/scenarios/crypto_keccak256_legacy_managed.scen.json +++ b/test/features/basic-features/scenarios/get_shard_of_address.scen.json @@ -1,5 +1,5 @@ { - "name": "crypto", + "name": "get caller", "gasSchedule": "v3", "steps": [ { @@ -18,20 +18,20 @@ }, { "step": "scCall", - "id": "1", + "id": "get_shard_of_address", "tx": { "from": "address:an_account", "to": "sc:basic-features", - "function": "compute_keccak256_legacy_managed", + "function": "get_shard_of_address", "arguments": [ - "0x61" + "sc:basic-features" ], "gasLimit": "50,000,000", "gasPrice": "0" }, "expect": { "out": [ - "0x3ac225168df54212a25c1c01fd35bebfea408fdac2e31ddd6f80a4bbf9a5f1cb" + "2" ], "status": "", "logs": "*", @@ -40,21 +40,18 @@ } }, { - "step": "scCall", - "id": "2", + "step": "scQuery", + "id": "get_shard_of_address_query", "tx": { - "from": "address:an_account", "to": "sc:basic-features", - "function": "compute_keccak256_legacy_managed", + "function": "get_shard_of_address", "arguments": [ - "0x0102030405060708" - ], - "gasLimit": "50,000,000", - "gasPrice": "0" + "sc:basic-features" + ] }, "expect": { "out": [ - "keccak256:0x0102030405060708" + "2" ], "status": "", "logs": "*", diff --git a/test/features/basic-features/scenarios/storage_mapper_address_to_id.scen.json b/test/features/basic-features/scenarios/storage_mapper_address_to_id.scen.json new file mode 100644 index 000000000..975534a92 --- /dev/null +++ b/test/features/basic-features/scenarios/storage_mapper_address_to_id.scen.json @@ -0,0 +1,209 @@ +{ + "name": "storage", + "gasSchedule": "v3", + "steps": [ + { + "step": "setState", + "accounts": { + "sc:basic-features": { + "nonce": "0", + "balance": "0", + "code": "file:../output/basic-features.wasm" + }, + "sc:extra-instance": { + "nonce": "0", + "balance": "0", + "code": "file:../output/basic-features.wasm" + }, + "address:an_account": { + "nonce": "0", + "balance": "0" + } + } + }, + { + "step": "scCall", + "id": "get_id_or_insert", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "address_to_id_mapper_get_id_or_insert", + "arguments": [ + "address:an_account" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [ + "1" + ], + "status": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "get_id", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "address_to_id_mapper_get_id", + "arguments": [ + "address:an_account" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [ + "1" + ], + "status": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "get_id_non_zero", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "address_to_id_mapper_get_id_non_zero", + "arguments": [ + "address:an_account" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [ + "1" + ], + "status": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "get_address", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "address_to_id_mapper_get_address", + "arguments": [ + "1" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [ + "1|address:an_account" + ], + "status": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "contains", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "address_to_id_mapper_contains", + "arguments": [ + "1" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [ + "1" + ], + "status": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "remove_by_id", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "address_to_id_mapper_remove_by_id", + "arguments": [ + "1" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [ + "1|address:an_account" + ], + "status": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "set", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "address_to_id_mapper_set", + "arguments": [ + "address:an_account" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [ + "2" + ], + "status": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "scCall", + "id": "remove_by_address", + "tx": { + "from": "address:an_account", + "to": "sc:basic-features", + "function": "address_to_id_mapper_remove_by_address", + "arguments": [ + "address:an_account" + ], + "gasLimit": "50,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [ + "2" + ], + "status": "", + "logs": "*", + "gas": "*", + "refund": "*" + } + } + ] +} diff --git a/test/features/big-float-features/output/big-float-features.wasm b/test/features/big-float-features/output/big-float-features.wasm index 77368875d4bc18106fc00ac8a6d2698f5b8304b9..aa273f82a0a746d85b4a437ed7b34eb04f1fa197 100755 GIT binary patch delta 1680 zcmah}PmB{~6#w2g({|`AyRW;;TFSysD+_HAc7@%=#XsyU5hW2gkQft;)7i8xjnFmQ zm4uM(bi>7iQJU{yqTca<0jy_D^h`W(#e|r6^g`lEBmQRE9Y;FENhbZh-}}8k^Ywl2 z&*Hbmo26;Z^E~n@-D_misb0WJef3OZ<8-}IZ(j1FYE_Za+=|qtl%}TZ zI#5!kQY0n$uRcWoK8mz?#hN~0Bs3CQazuK<{$$HA@pE&_=$_Tyl6uyyR@M3R#N@^C z=0_`z+iaqYgSyW9m)G14@opBhFHm<9Sv8y9lO3(ELl4Pm`0 z_y8X@HqX0w;`9ev3nOL9S&mUaul{ZvV08W)_h#A$tL#I(O?8{NZ07wJG* z@NRT`$QJgmXn2fEHre-qb^%HI2cTgtse3zfUe1?FU&=Z}eHSnA3+AxzB0j{^JOh*a zCY0r;37zxNfP*{*b0Q3|ze7cnOKe3|&+|U^B4zdm?noIN$$#q>`6!4;%SE)@MQ%dw zxo5jxglov}M&N7aqd7gnMLq@w=eT_iNDA_J9Qkq_c_NN{HI7^yAU#w%Jivl{DUN(4 zj(jbSwByL7L2|apC&8YO8kQ1HK>y#N`Fmt;u`DIl7v#Z=MF$6?r00njaCP!L%X=b2 z;7^Tu#N(>X`3sXVvw>r`f|%gH@COfbG)Q7>21(40`Ye-m%5eD&%<$2$g;^n+a delta 1759 zcma)6&u<$=6rMM`Ue}&9d3NF?*bUt*4me5Mq$Le0P{>=d*F6Qrk^m_G|unrTl7jz26go&TjQ}yll3cW1mF$z zcPyt)SUEUCi5c}vA|aEWSN3;&uTm=;OnBZ##ec_J^XnA@l0T%qVE~C!4%iHt4I)QN z_Y-m%yb7GT@@meTsmMJ!@V}SGcI4;l<_m`y42ZXwHI4d8+qZFHn zVx9AyL%X{~0UzyN&IHk}igXseTg>7qBD(C&Qfn>U4^Tf#otO+8>It5t;E*=N$ouJo zWuGLX>nKQxv-s2?@|i*8)4ik&^=Et8kUTSpJU)nA8ALuih$7LGUX`Clj|n-k13EbJ zV3<@6omZx!tgeCSPp0YWCux@Y$r*JGvwofe<}}cFo}wEfG<1^lu-(u+r9^Wy4g2;N zD0?Yt;Xf2Ao;m}0<))mN-Yc&*QiXl=MTCBe(7gy9Nq6!tL})ic-$v-y2>lbGxzUdH bwb7}hxB+yv>f2D=7`=ArE)(WA?RNWL(cVop diff --git a/test/features/big-float-features/scenarios/big_float_operator_checks.scen.json b/test/features/big-float-features/scenarios/big_float_operator_checks.scen.json index 4fca5f02d..a3a9e8e51 100644 --- a/test/features/big-float-features/scenarios/big_float_operator_checks.scen.json +++ b/test/features/big-float-features/scenarios/big_float_operator_checks.scen.json @@ -17,7 +17,7 @@ }, { "step": "scCall", - "id": "BigFloatAdd - 1", + "id": "BigFloatAdd - 3", "tx": { "from": "address:an_account", "to": "sc:basic-features", @@ -37,7 +37,7 @@ }, { "step": "scCall", - "id": "BigFloatAdd - 2", + "id": "BigFloatAdd - 4", "tx": { "from": "address:an_account", "to": "sc:basic-features", diff --git a/test/features/composability/forwarder-queue/output/forwarder-queue-promises.wasm b/test/features/composability/forwarder-queue/output/forwarder-queue-promises.wasm new file mode 100755 index 0000000000000000000000000000000000000000..5eebbd67dba327fca74bd5a6e1a159172fd171cc GIT binary patch literal 13091 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 CZ47__ literal 0 HcmV?d00001 diff --git a/test/features/composability/forwarder-raw/output/forwarder-raw.wasm b/test/features/composability/forwarder-raw/output/forwarder-raw.wasm index a3bd3052fcc296e373fdbc92dc8976fb66d3aad5..67243f490444be3349f60c5c366af70343fceefa 100755 GIT binary patch delta 326 zcmbPVGQVVl2P>BZCp)7gBO4W z_^h_nx{%5lQ%E{5PO&Ap&OJ&EOWF>YXlXing2$xH;5u}05Nx7PE!q9hx3pl=_b4li zW`xJ+Jtg<>JzT|$@F8ZG->5XKL}lpM@u-i(wOx$gg0mq&$jUj6SD&DVR^o^_NmS{a z)fYLm@gR8*ZTlyADN*WKDi2K@roKquq)pPl=`^%3lG*gv1uM^*g6UkD!Y?@0?qqZ@ h?Lp>_lVc-yMSRGe66cK*V%zAG`_GtAxpBTC{{y$>UgQ7( diff --git a/test/features/composability/forwarder/output/forwarder-dbg.wasm b/test/features/composability/forwarder/output/forwarder-dbg.wasm new file mode 100755 index 0000000000000000000000000000000000000000..b9313b1666ea05c58c2383336e1f787fb3e831e2 GIT binary patch literal 95071 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 SaH6H)o>c@)C;u?~n)xp$2y5^F delta 2354 zcmb7FYiv}<6~1TodVRgum;oDOhh2QH*DSV+y-Q?lVNA4RjLoAq3%02dVDqpYSkfqj zfD_i(h5+#+B+x?>q5Nn?gosMiBDt;9Kqv_zF{-K%H4;q`ZKRe&ZmL41Dy7P!{bubo z{#VsnpF4Bs%$)Ch=iG08I!@=u>0(ZLE(tIG$Sd$a@k{r5h)dI}!d|as2|*?aN)tl= z@-s}~5gy7k)69Hfl8>-LrU{>H8aR`V8YHO>X-F}!Xf!fatuevggwKM z^^agoa;;2^emA?6D8W5BZ&G5kXim8|vyDW*=vUg|07nC1>fxsXftg{VKF3hM8nTpE zK2Mw-aPwvu`W&44JjthRUuyOozZeLm_sB#h**0IDSLDH%KcCmcZw1cInA+4UKO(O1 zhc@-NWb1<}g{d)C3d6QjXB{ScL2BG9qlJc?rJM#cs>7<=$1Nr0J_Eb$R|vR+hLU>< zMUf%;lkgAw%K-mp{sPz!{gu37UW9)<|B=u!a?B*~wiJA&U@qS)=;m`y0k=9ae$VLwpQY{ zZ_CE#Y$eZRhMuAnC)fC$a5-J)`{50|H|%h2WbUk1GAI2=`^gXZL3t^SaWLG(r^54i zQ)C1|??z60=r$j$@JrC)k?)g>t{pMBMD zfu`%#XOMcwGIUFVzpN?YXO?$x!SYuA-STQIWIgr|Ec_t4$o>nVBhr-_mv^};TIL%h zv_Y+Gv|r;V(R_paax~9<7V(W@;m9G9KCqW;-WqH)R81Vjea$zbwdQ>i7VnJ)u&GSt z`JUDIlAAcDLi7#ys2J>+s-zeAKT5j=YHv{=e_6W#ApI+XbeE$mI`RJ8iY@jfeR_0H zkzrrv%sTB|TIbLuUR$>i-uvnnWb~?!k6GxWdwjO8!8=GU$rm`fIs|<3GUu->hCbA; zEF^lHyXu#i+JWDRWxEHbWmB&~B7>K7(GBIqvG+c!*gE^|srWzQMGb|E^>%pR<3)wl zA0Q8=oJ`RGFS>Y@!jFfc{BcOd*F4a$8>s)HL*e|o1chX7T-@M4u zD6}r|x|Uq(=c~;*G{lLPV*aLiMb^ZkItqYU0NB(rcbd!VNVA|d0vl_+3F~fbEEq%} z4I&SZytw)^ikKxQ>COY)CpP*)_fIyC6P@DIZPjR?58DK5lv=~n>KCi#XSVY znOwt_^U2mK==iMm1<19k{ZX73Z;!!VYCm5B2_rQERdwXMN#WAUkeZ_iQxhKPST^^% z)+uzEmf|rZo^s?n9Zy3fV%u6k%(-p9rJcNQyNmG;w}+5STC%X<@YF``mOL|4nkdS~-XLiOwhK0N?J^S6oI{0X@ehT{WPlyDLJ& z{AyQwUIK@wL1BRox9S_Z%7`RS@r-U4F5zyK3FsQY0|VGcd%I^+#(o`TkdWr-#~nG4 z{Je`ri+N}DwYtkpSYoYc@O4^jq@m+`hr%&zfzG@EbLzwIuj>!Wkx Zzd&p8Z}#NlTNI8*XFD|d_dQpw{{m)YPk{gc diff --git a/test/features/composability/promises-features/output/promises-features.wasm b/test/features/composability/promises-features/output/promises-features.wasm index cb72250775f82aa762e675547728c29f3dfb587a..298a16ea1c0d2e1b782eb7f9bdb3e0ddb9f3e3ea 100755 GIT binary patch delta 6076 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 diff --git a/test/features/composability/recursive-caller/output/recursive-caller.wasm b/test/features/composability/recursive-caller/output/recursive-caller.wasm index 58b0a2467933df5359d6543d154fc9e913712d7f..935cf6f5057dd37cabbf20254aba89d758369c7d 100755 GIT binary patch delta 434 zcmXw!KT88a5XE=)E+M&1E|VDlBmr5^5Ceh+qh|^Q&*Tun%0dt!2zF;_t5|6*Ok*Jk zqD2}JuCUP*HZ~%Hg&)Ae(hnf0b0;=$W@jI7e$#LC8#hxxK8(^74AT*4+5soLf^jfS z1tNTs?*LYKWA1UGYI1{hUyadOvdrV#RAi=1i&~P7as09iK>uG?48fDlWR+xXwjNlhZdcyDq6nE#(|s=1%{uh5A>K_gf=DY znNmtb+2||$ch#kcjO5zK40dm0#QU79CzNMkhQ4wu!yOG;da1y%aVc&yfs?~!+Qjc# zQw#plqAoF#qE8{w}Hw>O)geAP$AciuTr#Bc3_}cgzdU4YVupQQh GM&vI>Ggh?# delta 423 zcmXw!J4*vm5QXpTt|6P7O(qZD2$wa)prFB50*biCkjBbF5J3b<3@ch_tVArtUYN#O z6cj{+Ei8N#f}Mz9;SaE|u(21^*%ga>=FFMP@XcNRE`Qk%DO{V{s@19+m1<+Ay1vq= z3!q-GX^-DBDDMQi!H^&f?@@aLFuhA-lM7`+bFAB;F^;Z613EYF<~>E_I6Xuv>Ht9B z?G_HM+D#duO)4EnEul271!bT~bvX+Kx|SI<%hD3q*P(<0?8IR@jdXdR@)p|hKh9~w zpUAKXK9%U)nt(EWSc6oE?K8n`41K7lc&;hx=qTwcUTK|Fpfo4!+A*98Y}B>mI8F2T zoh>TC6D4vQ`jS=>hj=&JurE;+Q6`SiP9hIQx=7?;h+Y#tFhW0xMa$uBF)Xphu}p4q zQTn$ryshzNFUe;{IZhn~K<%`YUVsSQq^G%u=0o(cgfr|0PzLjyHM=QC>3?A3wbGK*_)%MylX{kR8oJK2O%%sY8x3vCaUwfuuTz=srQFKrLGwMBpw0dmW!KraD$=%I%maw%X0J>*cJ>80?YsQdjhONwsO zP|)toKmY!Z?|;nfvbev&8Do5N-wIXj2-T*&4VJi~DAqjUe*k<6~ zUg6uAm9~kK)*)rv^0F1*(wLP3W)ewD+XE(k;Xfpk^m^EDucdMKT$c4RRwByOMq_Jr zHOVd|Z!$rINYV&H+T))(NExu`Sw4fin9(UWVI8QG3)|2!?3jnuQ+koFXFjc4qmX0vYqlI?b z?iXGT)57#`rcDYS^W|eFcu9zoC%BJ5;>W7frNCE{zTn;--{)NHMa{UMFFBK?19HI4 z&Q1^xnEBh=_VxvC6TjkNX(QR_Wj6)$pf+bO`t5#yD`E4>-Y@mig{^e0eWjZ)qq1bJ z-OrQkVv@%cYu2dtlYD72X}06;>pk$CIWXigX$z>DuBG?c*`NvQ8*y`;o!etYFC`o8 zUD;F1%Rnk#Mg>V8E-znA;?3nNaX*n_>eIs~ra2!dUgMf6F{^pFpXOh$3CtztTFeO+ z9s<$)_3eQE>w+1+USptZ7VdNG%={UvOzoQmZ2`2SaB96KjxjAXH#0ddJO7r~Ops?7 z2G{M3R<38+oG5GXnR3T?DxAegb&j!c&&U$ZNw5gZg)-$sO9kp-C{t6U^9d}OpX>zY zpo(f9#Bq}3nO}n>?GT2zfhx0bFH@Cs-u!fE-Uq`Yim~u{E(hvJ1jpfF#O1vC+&ZiI z%icT*G`v%jYV&izd7(QLsI{|@3IB95^y+Lb?IWe=@{R*c$1A(??iTBs_CXRh({hZ zJB)Y48x{D+UA}nlqltcoUUvYEmla(Pt(Q@o{eW|i(o?V3V3m47or0I#?C+S5?y}RI zO!(;T@83dKRdN8EN(X;I>eQq@N63u)|L#81_9`FRZlrauc+r_7t`2-TGDhfZwMh|mE%32g;A6GGN3{S^R142B%0K=Zb_r~l7E&<}=uw>nJ&FVd!aR&^ut3*x9nIDA zK|uIrS)k2^YQdF?h9jEqlJK}gV>9YhyR!q)$z1YkEj#aV!w&SqqD&3Xe5n5 zig;=oo8+T_2vW+pq4R#jVOxi}Qk||zH3OSGb;z)nQ7lr;61LRc5&k>CP0&;pw3jOHj1 z+9-;-F!MP0U=mg7ln_ud)1ZvR|LRt4VMPSLdLt#W@0dF%{{8AP0-}y)iQ8k5Pa8f|+WiwxP_zIv{}9`>Z@1|H2N4_> z%np*ejF!X^BG*)E-m6HpGDQuAOSc;u835jUtW$&C)UnXT=ES?)lHWzUpHg#C1+yvj z9D+mlIXHvP)6tXASW(}`WCl&GE;L<^>8g4fBm^9@8M-_KbDyHY{s`wwLSs^U?uZ9Q zWC95)=?V2Xt(E~2Zh-^IvVjZUJZQIp3)XJrmU#e(;ryJ{1yP031Flj>3oSUi`ut7owN>swJy%$aX4U}vZRwldSTb#r=k*3ot*U_#Lty|#rsiUnBt>yI9#Sa}|KZ+!U9Yx`eO(@n5 zAd|Z`ycU%rM5Qh+htUKjSBN4-I+k7K;$%knP~}dzaxPIxP>v#3VYvAO20u)lhW1mi zBMx?FrHiKyv+zY==V}}|ZTp=V>vs@^<7pW;+u>kHS=H5PYG#xQIIN%fpXcS+^XQh3 zf)g$Gt7Lp{bPyyP4x;Cd+knHOMz1%&L(>e*JvgN3E#XT|8(J07ne!2}?&G7@4VmcS z=-Sr&P%>=J?k%ipUlsl-@Sa95rk@FVp|B{y^ri;#|wB5U|k zW4|Xn;L|C6C2m1^7T?re`+4I+YCju5Bt9DG3uhl+wxi|EthbqDc{}MZ!|G)K)5fQj u{&I%*?*4M@z8a<31$upN*)I-#wi&1GrtUSHTUnO07`+&W-h21&-~SIKD%%SH literal 4900 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 Unw82%l9;M{e+~SPo;`c^9|kSzHUIzs diff --git a/test/features/formatted-message-features/output/formatted-message-features.wasm b/test/features/formatted-message-features/output/formatted-message-features.wasm index f251261a41e874de7d12142755ad6508f64d9e24..49cc0c0f1999588a864b6cbe735c01dda23049c7 100755 GIT binary patch literal 4411 zcmai2Pi#}k8UJS9bK>MB@jwD30d~jUv;>w=+ND{Vwj$#$3v_`+grW+mGRA%c|9j6o zKl4ZJ#wm*^hh1rV=&fpxROK@vqzi*yxVv~g+duG1* z{(rx3#sd{w4M9X=b>b?~RoUs#Re_Jw;Te{qbCvMnH3q?7va`WVV&kgZ0F#R?kmcW; z8OIN9?Q9f-;<{g6tE>mb`pGB?Ba*z~wYE?MQ>Ly}*3Sg-rEo2dD#1Eg;=Zo@DL+2f zuE&*=Yj0ipUa?-kT&%bKM3ZXd+t;uA5m?Up!FqgyMy=&U9jHV6T{~-j3~S5BD9zks z3AZVi$+6O1rKZ{RgL3|E?6+uyH}Z-miZNiNjKv^3RCd0^A*CtFEoo$Ow0R+c6y%J?H0YcduSgpD8M2e-#N5V z0b0NHoVKLF3fF8C&`NelsM|o@eVd$br%S+azF4Z!cXkX$!?`;)JxJrEl<3%ap-?Wy z#RB@l5nchBip|2cV#{~r_$eSTGsR>ws=TBg4jy)gasDx7U-ftW+)&=v(0GJ11 ztmPS$a3le;)J`>*29QSp<1EQl1d8cI&Vd>2n9MsEIDV=b=VmTdMM_iL9$D#NL(3(i z6~bslHH#228^5ImBTs5Cj<`C)%4p!fnnS7CDkImbC7sF&_~=@hFX8qO zqH_~SO=&m?QHR4tPP*ZVZg_&j6TR?|K!gWN>MLk8?)fzIKkIodQT)NSw5}*m##u-#@b*z=K&gfI9WfCbeDAiBHi;zn4dqUcUceP z7vdIzylWWA<^!IfR9>R;f{+~vd_74c#GE|ISObRuM_-1|2lE#+1*r_j)1B|-L?QW{ zQ!bZi!5Qx~{OccK9Lfq!V1RAzw{#UJU~*J0(M00)kYC`k$w`s=F5_KOp4QwA6!~Yi z$8;W~_fqH=M0UXYpAacFxQfy*0CGT%+ry}|7hIX7F#wr3krHG|^C|FA0}_F} zktzT%V(9zsD)^;!3j;8P?nwCih~<8<*w|LB&@N|H(*@4w35!3vFv*wA39dEvs|aiS z-Xn7~;{hPRNN$uk!rDwxsKv^3WQ*3^V4UX{epmtov@GQ~(d(pdN zkJ?Z;+^(BykEVmpEHD6%7T6+B^fEFAbiX80Vg8PA#yK3QQ)t=47!Px}NyG=?)4#wn z2^PL&U&s0>)?)*CnE~}78g0+>dHGOCH~Dpt6rt<6Lh$VQqD0~kI*PA4o6y0kpiE3h zRTND0d=+ZYEqA~zp@!T+B9>?-Nn{@)xTnl6hKSe2h1x$4FeVs*lVkQSQ&-Rkze2oI ze2IC}J%Bwzu&&yxrsuulHih5+vaE{C@#4D|vv>imXv-ef z{6HVpw=3}t9fU#2$D-H>+d*uln~{&$G`n)7E1S3fy|AJ$`K`DcK=R^U(Wm`-J=FSk o7}d)ITN>}76-`9VVo)jRuvBUznPuW%v);rn`Pbyrryc(M9~UU1`2YX_ literal 4472 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 literal 4710 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 diff --git a/test/multisig/scenarios/interactor_nft.scen.json b/test/multisig/scenarios/interactor_nft.scen.json new file mode 100644 index 000000000..f920c34a3 --- /dev/null +++ b/test/multisig/scenarios/interactor_nft.scen.json @@ -0,0 +1,563 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60": { + "nonce": "584", + "balance": "101517394731540000003", + "esdt": { + "str:CAN-14dc0a": "1000", + "str:CAN-2abf4b": "1000", + "str:CAN-6d39e6": "1000", + "str:CAN-ac1592": "1000" + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba": { + "nonce": "239", + "balance": "101639885284140000000", + "esdt": { + "str:TEST-0f54a2": { + "instances": [ + { + "nonce": "1", + "balance": "1" + }, + { + "nonce": "2", + "balance": "1" + } + ] + }, + "str:TEST-48ef66": { + "instances": [ + { + "nonce": "5", + "balance": "1" + }, + { + "nonce": "4", + "balance": "1" + } + ] + }, + "str:TEST-d2b50f": { + "instances": [ + { + "nonce": "1", + "balance": "2" + } + ] + }, + "str:TEST-fb415a": { + "instances": [ + { + "nonce": "3", + "balance": "1" + }, + { + "nonce": "4", + "balance": "1" + }, + { + "nonce": "2", + "balance": "1" + } + ] + } + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17": { + "nonce": "214", + "balance": "1769165693650000000", + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033": { + "nonce": "426", + "balance": "62229302086560000000", + "esdt": { + "str:USDC-091bd3": "9997000000000", + "str:XRF-079f0d": "999999805000000000000000000", + "str:XUSDC-929b9b": "1000000000000000000000000" + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0x00000000000000000500c114ee7698050a4d40c092add8c31d25e99a6e1ec2ee": { + "nonce": "0", + "balance": "175064792195269569513", + "esdt": { + "str:WEGLD-6cf38e": { + "instances": [], + "roles": [ + "ESDTRoleLocalBurn", + "ESDTRoleLocalMint" + ] + } + }, + "username": "", + "storage": { + "0x7772617070656445676c64546f6b656e4964": "0x5745474c442d366366333865" + }, + "code": "0x0061736d0100000001661160000060017f0060027f7f017f60027f7f006000017f60017f017f60037f7f7f0060037f7f7f017f60057f7f7e7f7f017f60047f7f7f7f0060067e7f7f7f7f7f017f60047f7f7f7f017f60027f7e0060017e006000017e60057f7f7f7f7f0060037e7f7f0002cc062303656e760b7369676e616c4572726f72000303656e7618626967496e7447657445787465726e616c42616c616e6365000303656e760a6d4275666665724e6577000403656e760d6d427566666572417070656e64000203656e76096d4275666665724571000203656e76106d616e61676564534341646472657373000103656e761b6d616e61676564457865637574654f6e44657374436f6e74657874000a03656e760f636c65616e52657475726e44617461000003656e760d6d616e6167656443616c6c6572000103656e76136d616e616765644f776e657241646472657373000103656e76126d427566666572476574417267756d656e74000203656e760f6765744e756d417267756d656e7473000403656e76126d427566666572417070656e644279746573000703656e760f6d4275666665725365744279746573000703656e76106d4275666665724765744c656e677468000503656e76196d42756666657246726f6d426967496e74556e7369676e6564000203656e76136d42756666657247657442797465536c696365000b03656e76126d42756666657253746f726167654c6f6164000203656e76126d616e616765645369676e616c4572726f72000103656e760e626967496e74536574496e743634000c03656e760a626967496e745369676e000503656e76136d42756666657253746f7261676553746f7265000203656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000103656e760d6d42756666657246696e697368000503656e7614736d616c6c496e7446696e6973685369676e6564000d03656e761c6d616e616765644765744d756c74694553445443616c6c56616c7565000103656e7609626967496e74436d70000203656e760a6765744761734c656674000e03656e761b6d616e616765645472616e7366657256616c756545786563757465000803656e76136765744e756d455344545472616e7366657273000403656e7612626967496e7447657443616c6c56616c7565000103656e7609626967496e74416464000603656e76226d616e616765644d756c74695472616e73666572455344544e465445786563757465000803656e760f6d42756666657247657442797465730002032c2b0f00040405020310010400010303040503020301050509030306060900040501000000000000000000000005030100110619037f01418080c0000b7f0041e5d1c0000b7f0041f0d1c0000b079b010c066d656d6f7279020004696e69740044146765744c6f636b656445676c6442616c616e63650045156765745772617070656445676c64546f6b656e496400460869735061757365640047057061757365004807756e706175736500490a756e7772617045676c64004a087772617045676c64004b0863616c6c4261636b004c0a5f5f646174615f656e6403010b5f5f686561705f6261736503020abc162b2e000240200120024d0440200220044d0d011024000b1024000b2000200220016b3602042000200120036a3602000b05001043000b2301027f10262200100520001026210041c5d1c00010221a41c5d1c0002000100120000b1b01017f41a483c00041a483c00028020041016b220036020020000b0f01017f10022201200010031a20010b0b0020002001100441004a0b0900200020011000000b1f01017f4167100510262203102b20004167200320012002102610061a10070b08002000420010130b0c01017f10262200100820000b1e01017f1026220010092000102c102804400f0b41f082c00041241000000b1500100b20004604400f0b41cb81c00041191000000b4701017f230041106b2202240020022001410874418080fc077120014118747220014108764180fe03712001411876727236020c20002002410c6a4104100c1a200241106a24000b0d0010311a200020011032102f0b1401017f1026220041d482c0004100100d1a20000b0f01017f102622012000100f1a20010b0d0010311a200020011027102f0b1101017f1026220220002001100d1a20020b09002000200110031a0b5501017f20002d00042101200041003a000402402001410171044041a883c00028020022014191ce004f0d01200028020041ac83c0002001100c1a41a883c000410036020041bcd1c00041003a00000b0f0b1024000bae0102027f017e230041106b2202240020024200370308200010382200100e220141094904402002200241086a41082001103920004100200228020422002002280200220110101a027f41002000450d001a034020000440200041016b210020013100002003420886842103200141016a21010c010b0b02402003420158044041002003a741016b0d021a0c010b41f281c0004112103a000b41010b200241106a24000f0b41e481c000410e103a000b0d0020001026220010111a20000b3b01017f230041106b22042400200441086a41002003200120021023200428020c21012000200428020836020020002001360204200441106a24000b1b01017f418482c00041161034220220002001100c1a20021012000bf20101047f230041106b2203240020032000100e22024118742002410874418080fc07717220024108764180fe03712002411876727236020c20012003410c6a4104103c20012d00042102200141003a00040240024002402002410171220204402000100e22054190ce0041a883c00028020022046b4b0d0220032004200420056a2204103d200041002003280204200328020010101a41a883c00020043602000c010b2001280200200010350b200120023a00040c010b2001103620012802002000103520012d0004200120023a0004410171450d0041a883c000410036020041bcd1c00041003a00000b200341106a24000b800101027f230041106b220324000240024020002d000404404190ce0041a883c00028020022046b2002490d01200341086a2004200220046a2200103d2003280208200328020c20012002103e41a883c00020003602000c020b200028020020012002100c1a0c010b20001036200028020020012002100c1a0b200341106a24000b4001017f230041106b22032400200341086a2001200241ac83c0004190ce001023200328020c21012000200328020836020020002001360204200341106a24000bb00201067f2001200346044020012203410f4b04402000410020006b41037122056a210420050440200221010340200020012d00003a0000200141016a2101200041016a22002004490d000b0b2004200320056b2203417c7122066a21000240200220056a220541037122010440200641004c0d012005417c71220741046a21024100200141037422086b4118712109200728020021010340200420012008762002280200220120097472360200200241046a2102200441046a22042000490d000b0c010b200641004c0d0020052102034020042002280200360200200241046a2102200441046a22042000490d000b0b20034103712103200520066a21020b20030440200020036a21010340200020022d00003a0000200241016a2102200041016a22002001490d000b0b0f0b1043000b1c0041be82c0004113103410374504400f0b419a82c00041121029000b0b0041ac82c000411210340b09002000101441004a0ba60101037f230041106b2201240041be82c00041131034200142808080808080808001420020001b3703080240200045044041d482c00021000c010b4100210003400240024020004108470440200141086a20006a2d00002202450d022002411874411f7520006a220041094f0d01410820006b21022000200141086a6a21000c040b1043000b104d000b200041016a21000c000b000b20002002103410151a200141106a24000b0500104d000b1a01017f10164101102e410010262200100a1a1040200010151a0b0c0010164100102e102510170b0f0010164100102e1040103810181a0b160010164100102e41be82c000411310341037ad10190b0e001016102d4100102e410110420b0e001016102d4100102e410010420bed0302097f017e230041106b220124004100102e103f416b2102024041c4d1c0002d000022000440416b41ffffffff0720001b21020c010b41c4d1c00041013a0000416b101a0b02402002100e4170714110460440410021002002100e2106200141086a2107410121050340200041106a220420064b0d022007420037030020014200370300200220004110200110101a2005044020012902042209423886200942288642808080808080c0ff0083842009421886428080808080e03f8320094208864280808080f01f838484200942088842808080f80f832009421888428080fc07838420094228884280fe038320094238888484842109200128020022004118742000410874418080fc07717220004108764180fe0371200041187672722108200128020c22004118742000410874418080fc07717220004108764180fe037120004118767272210341002105200421000c010b0b1043000b418481c00041221000000b024002400240200950044020081040103822041028450d0120031041450d0220031025101b41004a0d031031220020041033200020031030101c41ea80c000410d10342000102a102c2003420010311031101d1a200141106a24000f0b41d482c000411c1000000b418080c00041101029000b419080c000411c1029000b41ac80c00041231029000beb0301097f230041206b220124000240101e4504404100102e103f41752103024041c0d1c0002d000022000440417541ffffffff0720001b21030c010b41c0d1c00041013a00004175101f0b20031041450d011040103821041031220020041033200020031030101c41f780c000410d10342000102a102c10312107103121081031210520041027210210262200102b20002000200310202001420037020c20012002410874418080fc077120024118747220024108764180fe03712002411876727236020820012000410874418080fc077120004118747220004108764180fe0371200041187672723602142005200141086a4110100c1a200542002007200810211a2001027f41bcd1c0002d0000220045044041bcd1c00041013a000041a883c0004100360200200141ac83c0004190ce00410010392001280200200128020441d482c0004100103e10310c010b41d482c000410010340b360218200120004101733a001c2004200141186a2200103b200142003703082000200141086a22024108103c200310322000103b20012802182100200120012d001c3a000c2001200036020820021036200128020820012d000c044041a883c000410036020041bcd1c00041003a00000b10181a200141206a24000f0b41a681c00041251000000b41cf80c000411b1029000b0300010b0c00419483c000410e1000000b0bb8030200418080c0000ba20357726f6e67206573647420746f6b656e4d75737420706179206d6f7265207468616e203020746f6b656e7321436f6e747261637420646f6573206e6f74206861766520656e6f7567682066756e64735061796d656e74206d757374206265206d6f7265207468616e2030455344544c6f63616c4275726e455344544c6f63616c4d696e74696e636f7272656374206e756d626572206f662045534454207472616e736665727366756e6374696f6e20646f6573206e6f74206163636570742045534454207061796d656e7477726f6e67206e756d626572206f6620617267756d656e7473696e70757420746f6f206c6f6e67696e707574206f7574206f662072616e676573746f72616765206465636f6465206572726f723a20436f6e7472616374206973207061757365647772617070656445676c64546f6b656e496470617573655f6d6f64756c653a70617573656400000066756e6769626c65204553445420746f6b656e206578706563746564456e64706f696e742063616e206f6e6c792062652063616c6c6564206279206f776e657270616e6963206f636375727265640041a483c0000b049cffffff" + } + } + }, + { + "step": "setState", + "newAddresses": [ + { + "creatorAddress": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "creatorNonce": "584", + "newAddress": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60" + } + ] + }, + { + "step": "scDeploy", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "contractCode": "file:../output/multisig.wasm", + "arguments": [ + "0x02", + "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033" + ], + "gasLimit": "70,000,000", + "gasPrice": "" + }, + "expect": { + "status": "0" + } + }, + { + "step": "transfer", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "egldValue": "0,050000000000000000", + "gasLimit": "50,000" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000000010000000000000000000000000000000000000002ffff", + "0xb1a2bc2ec50000", + "0x69737375654e6f6e46756e6769626c65", + "0x54657374436f6c6c656374696f6e31", + "0x54455354434f4c4c31" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + }, + "expect": { + "status": "0" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "setState", + "newTokenIdentifiers": [ + "TESTCOLL1-748f3f" + ] + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "performAction", + "arguments": [ + "0x01" + ], + "gasLimit": "80,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000000010000000000000000000000000000000000000002ffff", + "0x", + "0x7365745370656369616c526f6c65", + "0x54455354434f4c4c312d373438663366", + "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "0x45534454526f6c654e4654437265617465" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "performAction", + "arguments": [ + "0x02" + ], + "gasLimit": "80,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "0x", + "0x455344544e4654437265617465", + "0x54455354434f4c4c312d373438663366", + "0x01", + "0x5465737420636f6c6c656374696f6e206974656d202330", + "0x0bb8", + "0x", + "0x746167733a746573742c727573742d696e7465726163746f72", + "0x68747470733a2f2f697066732e696f2f697066732f516d5979416145663170684a53356d4e3677666f7535646535476270556464427854593156656b4b636a643550432f6e667430302e706e67" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "0x", + "0x455344544e4654437265617465", + "0x54455354434f4c4c312d373438663366", + "0x01", + "0x5465737420636f6c6c656374696f6e206974656d202331", + "0x0bb8", + "0x", + "0x746167733a746573742c727573742d696e7465726163746f72", + "0x68747470733a2f2f697066732e696f2f697066732f516d5979416145663170684a53356d4e3677666f7535646535476270556464427854593156656b4b636a643550432f6e667430312e706e67" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "0x", + "0x455344544e4654437265617465", + "0x54455354434f4c4c312d373438663366", + "0x01", + "0x5465737420636f6c6c656374696f6e206974656d202332", + "0x0bb8", + "0x", + "0x746167733a746573742c727573742d696e7465726163746f72", + "0x68747470733a2f2f697066732e696f2f697066732f516d5979416145663170684a53356d4e3677666f7535646535476270556464427854593156656b4b636a643550432f6e667430322e706e67" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x03" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x03" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x03" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x04" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x04" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x04" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x05" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x05" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "sign", + "arguments": [ + "0x05" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "performAction", + "arguments": [ + "0x03" + ], + "gasLimit": "30,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "performAction", + "arguments": [ + "0x04" + ], + "gasLimit": "30,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005000778538f60be51f1363879297a487329bd6fa37fed60", + "function": "performAction", + "arguments": [ + "0x05" + ], + "gasLimit": "30,000,000", + "gasPrice": "" + } + } + ] +} diff --git a/test/multisig/scenarios/interactor_nft_all_roles.scen.json b/test/multisig/scenarios/interactor_nft_all_roles.scen.json new file mode 100644 index 000000000..8746f7fba --- /dev/null +++ b/test/multisig/scenarios/interactor_nft_all_roles.scen.json @@ -0,0 +1,526 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60": { + "nonce": "619", + "balance": "101110120254850000003", + "esdt": { + "str:CAN-14dc0a": "1000", + "str:CAN-2abf4b": "1000", + "str:CAN-6d39e6": "1000", + "str:CAN-ac1592": "1000" + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba": { + "nonce": "251", + "balance": "101558004165010000000", + "esdt": { + "str:CAMP-3bd1c7": { + "instances": [ + { + "nonce": "26", + "balance": "1" + }, + { + "nonce": "23", + "balance": "1" + }, + { + "nonce": "21", + "balance": "1" + }, + { + "nonce": "25", + "balance": "1" + }, + { + "nonce": "24", + "balance": "1" + }, + { + "nonce": "22", + "balance": "1" + } + ] + }, + "str:TEST-0f54a2": { + "instances": [ + { + "nonce": "9", + "balance": "1" + }, + { + "nonce": "1", + "balance": "1" + }, + { + "nonce": "2", + "balance": "1" + }, + { + "nonce": "6", + "balance": "1" + } + ] + }, + "str:TEST-48ef66": { + "instances": [ + { + "nonce": "5", + "balance": "1" + }, + { + "nonce": "4", + "balance": "1" + } + ] + }, + "str:TEST-d2b50f": { + "instances": [ + { + "nonce": "1", + "balance": "2" + } + ] + }, + "str:TEST-fb415a": { + "instances": [ + { + "nonce": "3", + "balance": "1" + }, + { + "nonce": "2", + "balance": "1" + }, + { + "nonce": "4", + "balance": "1" + } + ] + } + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17": { + "nonce": "222", + "balance": "1767500200900000000", + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033": { + "nonce": "434", + "balance": "62227641093810000000", + "esdt": { + "str:USDC-091bd3": "9997000000000", + "str:XRF-079f0d": "999999805000000000000000000", + "str:XUSDC-929b9b": "1000000000000000000000000" + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0x00000000000000000500c114ee7698050a4d40c092add8c31d25e99a6e1ec2ee": { + "nonce": "0", + "balance": "175064792195269569513", + "esdt": { + "str:WEGLD-6cf38e": { + "instances": [], + "roles": [ + "ESDTRoleLocalBurn", + "ESDTRoleLocalMint" + ] + } + }, + "username": "", + "storage": { + "0x7772617070656445676c64546f6b656e4964": "0x5745474c442d366366333865" + }, + "code": "0x0061736d0100000001661160000060017f0060027f7f017f60027f7f006000017f60017f017f60037f7f7f0060037f7f7f017f60057f7f7e7f7f017f60047f7f7f7f0060067e7f7f7f7f7f017f60047f7f7f7f017f60027f7e0060017e006000017e60057f7f7f7f7f0060037e7f7f0002cc062303656e760b7369676e616c4572726f72000303656e7618626967496e7447657445787465726e616c42616c616e6365000303656e760a6d4275666665724e6577000403656e760d6d427566666572417070656e64000203656e76096d4275666665724571000203656e76106d616e61676564534341646472657373000103656e761b6d616e61676564457865637574654f6e44657374436f6e74657874000a03656e760f636c65616e52657475726e44617461000003656e760d6d616e6167656443616c6c6572000103656e76136d616e616765644f776e657241646472657373000103656e76126d427566666572476574417267756d656e74000203656e760f6765744e756d417267756d656e7473000403656e76126d427566666572417070656e644279746573000703656e760f6d4275666665725365744279746573000703656e76106d4275666665724765744c656e677468000503656e76196d42756666657246726f6d426967496e74556e7369676e6564000203656e76136d42756666657247657442797465536c696365000b03656e76126d42756666657253746f726167654c6f6164000203656e76126d616e616765645369676e616c4572726f72000103656e760e626967496e74536574496e743634000c03656e760a626967496e745369676e000503656e76136d42756666657253746f7261676553746f7265000203656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000103656e760d6d42756666657246696e697368000503656e7614736d616c6c496e7446696e6973685369676e6564000d03656e761c6d616e616765644765744d756c74694553445443616c6c56616c7565000103656e7609626967496e74436d70000203656e760a6765744761734c656674000e03656e761b6d616e616765645472616e7366657256616c756545786563757465000803656e76136765744e756d455344545472616e7366657273000403656e7612626967496e7447657443616c6c56616c7565000103656e7609626967496e74416464000603656e76226d616e616765644d756c74695472616e73666572455344544e465445786563757465000803656e760f6d42756666657247657442797465730002032c2b0f00040405020310010400010303040503020301050509030306060900040501000000000000000000000005030100110619037f01418080c0000b7f0041e5d1c0000b7f0041f0d1c0000b079b010c066d656d6f7279020004696e69740044146765744c6f636b656445676c6442616c616e63650045156765745772617070656445676c64546f6b656e496400460869735061757365640047057061757365004807756e706175736500490a756e7772617045676c64004a087772617045676c64004b0863616c6c4261636b004c0a5f5f646174615f656e6403010b5f5f686561705f6261736503020abc162b2e000240200120024d0440200220044d0d011024000b1024000b2000200220016b3602042000200120036a3602000b05001043000b2301027f10262200100520001026210041c5d1c00010221a41c5d1c0002000100120000b1b01017f41a483c00041a483c00028020041016b220036020020000b0f01017f10022201200010031a20010b0b0020002001100441004a0b0900200020011000000b1f01017f4167100510262203102b20004167200320012002102610061a10070b08002000420010130b0c01017f10262200100820000b1e01017f1026220010092000102c102804400f0b41f082c00041241000000b1500100b20004604400f0b41cb81c00041191000000b4701017f230041106b2202240020022001410874418080fc077120014118747220014108764180fe03712001411876727236020c20002002410c6a4104100c1a200241106a24000b0d0010311a200020011032102f0b1401017f1026220041d482c0004100100d1a20000b0f01017f102622012000100f1a20010b0d0010311a200020011027102f0b1101017f1026220220002001100d1a20020b09002000200110031a0b5501017f20002d00042101200041003a000402402001410171044041a883c00028020022014191ce004f0d01200028020041ac83c0002001100c1a41a883c000410036020041bcd1c00041003a00000b0f0b1024000bae0102027f017e230041106b2202240020024200370308200010382200100e220141094904402002200241086a41082001103920004100200228020422002002280200220110101a027f41002000450d001a034020000440200041016b210020013100002003420886842103200141016a21010c010b0b02402003420158044041002003a741016b0d021a0c010b41f281c0004112103a000b41010b200241106a24000f0b41e481c000410e103a000b0d0020001026220010111a20000b3b01017f230041106b22042400200441086a41002003200120021023200428020c21012000200428020836020020002001360204200441106a24000b1b01017f418482c00041161034220220002001100c1a20021012000bf20101047f230041106b2203240020032000100e22024118742002410874418080fc07717220024108764180fe03712002411876727236020c20012003410c6a4104103c20012d00042102200141003a00040240024002402002410171220204402000100e22054190ce0041a883c00028020022046b4b0d0220032004200420056a2204103d200041002003280204200328020010101a41a883c00020043602000c010b2001280200200010350b200120023a00040c010b2001103620012802002000103520012d0004200120023a0004410171450d0041a883c000410036020041bcd1c00041003a00000b200341106a24000b800101027f230041106b220324000240024020002d000404404190ce0041a883c00028020022046b2002490d01200341086a2004200220046a2200103d2003280208200328020c20012002103e41a883c00020003602000c020b200028020020012002100c1a0c010b20001036200028020020012002100c1a0b200341106a24000b4001017f230041106b22032400200341086a2001200241ac83c0004190ce001023200328020c21012000200328020836020020002001360204200341106a24000bb00201067f2001200346044020012203410f4b04402000410020006b41037122056a210420050440200221010340200020012d00003a0000200141016a2101200041016a22002004490d000b0b2004200320056b2203417c7122066a21000240200220056a220541037122010440200641004c0d012005417c71220741046a21024100200141037422086b4118712109200728020021010340200420012008762002280200220120097472360200200241046a2102200441046a22042000490d000b0c010b200641004c0d0020052102034020042002280200360200200241046a2102200441046a22042000490d000b0b20034103712103200520066a21020b20030440200020036a21010340200020022d00003a0000200241016a2102200041016a22002001490d000b0b0f0b1043000b1c0041be82c0004113103410374504400f0b419a82c00041121029000b0b0041ac82c000411210340b09002000101441004a0ba60101037f230041106b2201240041be82c00041131034200142808080808080808001420020001b3703080240200045044041d482c00021000c010b4100210003400240024020004108470440200141086a20006a2d00002202450d022002411874411f7520006a220041094f0d01410820006b21022000200141086a6a21000c040b1043000b104d000b200041016a21000c000b000b20002002103410151a200141106a24000b0500104d000b1a01017f10164101102e410010262200100a1a1040200010151a0b0c0010164100102e102510170b0f0010164100102e1040103810181a0b160010164100102e41be82c000411310341037ad10190b0e001016102d4100102e410110420b0e001016102d4100102e410010420bed0302097f017e230041106b220124004100102e103f416b2102024041c4d1c0002d000022000440416b41ffffffff0720001b21020c010b41c4d1c00041013a0000416b101a0b02402002100e4170714110460440410021002002100e2106200141086a2107410121050340200041106a220420064b0d022007420037030020014200370300200220004110200110101a2005044020012902042209423886200942288642808080808080c0ff0083842009421886428080808080e03f8320094208864280808080f01f838484200942088842808080f80f832009421888428080fc07838420094228884280fe038320094238888484842109200128020022004118742000410874418080fc07717220004108764180fe0371200041187672722108200128020c22004118742000410874418080fc07717220004108764180fe037120004118767272210341002105200421000c010b0b1043000b418481c00041221000000b024002400240200950044020081040103822041028450d0120031041450d0220031025101b41004a0d031031220020041033200020031030101c41ea80c000410d10342000102a102c2003420010311031101d1a200141106a24000f0b41d482c000411c1000000b418080c00041101029000b419080c000411c1029000b41ac80c00041231029000beb0301097f230041206b220124000240101e4504404100102e103f41752103024041c0d1c0002d000022000440417541ffffffff0720001b21030c010b41c0d1c00041013a00004175101f0b20031041450d011040103821041031220020041033200020031030101c41f780c000410d10342000102a102c10312107103121081031210520041027210210262200102b20002000200310202001420037020c20012002410874418080fc077120024118747220024108764180fe03712002411876727236020820012000410874418080fc077120004118747220004108764180fe0371200041187672723602142005200141086a4110100c1a200542002007200810211a2001027f41bcd1c0002d0000220045044041bcd1c00041013a000041a883c0004100360200200141ac83c0004190ce00410010392001280200200128020441d482c0004100103e10310c010b41d482c000410010340b360218200120004101733a001c2004200141186a2200103b200142003703082000200141086a22024108103c200310322000103b20012802182100200120012d001c3a000c2001200036020820021036200128020820012d000c044041a883c000410036020041bcd1c00041003a00000b10181a200141206a24000f0b41a681c00041251000000b41cf80c000411b1029000b0300010b0c00419483c000410e1000000b0bb8030200418080c0000ba20357726f6e67206573647420746f6b656e4d75737420706179206d6f7265207468616e203020746f6b656e7321436f6e747261637420646f6573206e6f74206861766520656e6f7567682066756e64735061796d656e74206d757374206265206d6f7265207468616e2030455344544c6f63616c4275726e455344544c6f63616c4d696e74696e636f7272656374206e756d626572206f662045534454207472616e736665727366756e6374696f6e20646f6573206e6f74206163636570742045534454207061796d656e7477726f6e67206e756d626572206f6620617267756d656e7473696e70757420746f6f206c6f6e67696e707574206f7574206f662072616e676573746f72616765206465636f6465206572726f723a20436f6e7472616374206973207061757365647772617070656445676c64546f6b656e496470617573655f6d6f64756c653a70617573656400000066756e6769626c65204553445420746f6b656e206578706563746564456e64706f696e742063616e206f6e6c792062652063616c6c6564206279206f776e657270616e6963206f636375727265640041a483c0000b049cffffff" + } + } + }, + { + "step": "setState", + "newAddresses": [ + { + "creatorAddress": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "creatorNonce": "619", + "newAddress": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60" + } + ] + }, + { + "step": "scDeploy", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "contractCode": "file:../output/multisig.wasm", + "arguments": [ + "0x02", + "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033" + ], + "gasLimit": "70,000,000", + "gasPrice": "" + }, + "expect": { + "status": "0" + } + }, + { + "step": "transfer", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "egldValue": "0,050000000000000000", + "gasLimit": "50,000" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000000010000000000000000000000000000000000000002ffff", + "0xb1a2bc2ec50000", + "0x7265676973746572416e64536574416c6c526f6c6573", + "0x54657374436f6c6c656374696f6e31", + "0x54455354434f4c4c31", + "0x4e4654", + "0x" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + }, + "expect": { + "status": "0" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "setState", + "newTokenIdentifiers": [ + "TESTCOLL1-636884" + ] + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "performAction", + "arguments": [ + "0x01" + ], + "gasLimit": "80,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "0x", + "0x455344544e4654437265617465", + "0x54455354434f4c4c312d363336383834", + "0x01", + "0x5465737420636f6c6c656374696f6e206974656d202330", + "0x0bb8", + "0x", + "0x746167733a746573742c727573742d696e7465726163746f72", + "0x68747470733a2f2f697066732e696f2f697066732f516d5979416145663170684a53356d4e3677666f7535646535476270556464427854593156656b4b636a643550432f6e667430302e706e67" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "0x", + "0x455344544e4654437265617465", + "0x54455354434f4c4c312d363336383834", + "0x01", + "0x5465737420636f6c6c656374696f6e206974656d202331", + "0x0bb8", + "0x", + "0x746167733a746573742c727573742d696e7465726163746f72", + "0x68747470733a2f2f697066732e696f2f697066732f516d5979416145663170684a53356d4e3677666f7535646535476270556464427854593156656b4b636a643550432f6e667430312e706e67" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "0x", + "0x455344544e4654437265617465", + "0x54455354434f4c4c312d363336383834", + "0x01", + "0x5465737420636f6c6c656374696f6e206974656d202332", + "0x0bb8", + "0x", + "0x746167733a746573742c727573742d696e7465726163746f72", + "0x68747470733a2f2f697066732e696f2f697066732f516d5979416145663170684a53356d4e3677666f7535646535476270556464427854593156656b4b636a643550432f6e667430322e706e67" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x03" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x03" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x03" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x04" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x04" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "sign", + "arguments": [ + "0x04" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "performAction", + "arguments": [ + "0x02" + ], + "gasLimit": "30,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "performAction", + "arguments": [ + "0x03" + ], + "gasLimit": "30,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x000000000000000005008a3621a73196c9a9539f05be7d3c277346cdc989ed60", + "function": "performAction", + "arguments": [ + "0x04" + ], + "gasLimit": "30,000,000", + "gasPrice": "" + } + } + ] +} \ No newline at end of file diff --git a/test/multisig/scenarios/interactor_wegld.scen.json b/test/multisig/scenarios/interactor_wegld.scen.json new file mode 100644 index 000000000..ea9ed6ff6 --- /dev/null +++ b/test/multisig/scenarios/interactor_wegld.scen.json @@ -0,0 +1,275 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60": { + "nonce": "495", + "balance": "106119141427130000003", + "esdt": { + "str:CAN-14dc0a": "1000", + "str:CAN-2abf4b": "1000", + "str:CAN-6d39e6": "1000", + "str:CAN-ac1592": "1000" + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba": { + "nonce": "188", + "balance": "3715283822100000000", + "esdt": { + "str:TEST-d2b50f": { + "instances": [ + { + "nonce": "1", + "balance": "2" + } + ] + } + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17": { + "nonce": "179", + "balance": "7777023510140000000", + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033": { + "nonce": "394", + "balance": "62236863377210000000", + "esdt": { + "str:USDC-091bd3": "9997000000000", + "str:XRF-079f0d": "999999805000000000000000000", + "str:XUSDC-929b9b": "1000000000000000000000000" + }, + "username": "" + } + } + }, + { + "step": "setState", + "accounts": { + "0x00000000000000000500c114ee7698050a4d40c092add8c31d25e99a6e1ec2ee": { + "nonce": "0", + "balance": "54039792195269569513", + "esdt": { + "str:WEGLD-6cf38e": { + "instances": [], + "roles": [ + "ESDTRoleLocalBurn", + "ESDTRoleLocalMint" + ] + } + }, + "username": "", + "storage": { + "0x7772617070656445676c64546f6b656e4964": "0x5745474c442d366366333865" + }, + "code": "0x0061736d0100000001661160000060017f0060027f7f017f60027f7f006000017f60017f017f60037f7f7f0060037f7f7f017f60057f7f7e7f7f017f60047f7f7f7f0060067e7f7f7f7f7f017f60047f7f7f7f017f60027f7e0060017e006000017e60057f7f7f7f7f0060037e7f7f0002cc062303656e760b7369676e616c4572726f72000303656e7618626967496e7447657445787465726e616c42616c616e6365000303656e760a6d4275666665724e6577000403656e760d6d427566666572417070656e64000203656e76096d4275666665724571000203656e76106d616e61676564534341646472657373000103656e761b6d616e61676564457865637574654f6e44657374436f6e74657874000a03656e760f636c65616e52657475726e44617461000003656e760d6d616e6167656443616c6c6572000103656e76136d616e616765644f776e657241646472657373000103656e76126d427566666572476574417267756d656e74000203656e760f6765744e756d417267756d656e7473000403656e76126d427566666572417070656e644279746573000703656e760f6d4275666665725365744279746573000703656e76106d4275666665724765744c656e677468000503656e76196d42756666657246726f6d426967496e74556e7369676e6564000203656e76136d42756666657247657442797465536c696365000b03656e76126d42756666657253746f726167654c6f6164000203656e76126d616e616765645369676e616c4572726f72000103656e760e626967496e74536574496e743634000c03656e760a626967496e745369676e000503656e76136d42756666657253746f7261676553746f7265000203656e760e636865636b4e6f5061796d656e74000003656e7614626967496e7446696e697368556e7369676e6564000103656e760d6d42756666657246696e697368000503656e7614736d616c6c496e7446696e6973685369676e6564000d03656e761c6d616e616765644765744d756c74694553445443616c6c56616c7565000103656e7609626967496e74436d70000203656e760a6765744761734c656674000e03656e761b6d616e616765645472616e7366657256616c756545786563757465000803656e76136765744e756d455344545472616e7366657273000403656e7612626967496e7447657443616c6c56616c7565000103656e7609626967496e74416464000603656e76226d616e616765644d756c74695472616e73666572455344544e465445786563757465000803656e760f6d42756666657247657442797465730002032c2b0f00040405020310010400010303040503020301050509030306060900040501000000000000000000000005030100110619037f01418080c0000b7f0041e5d1c0000b7f0041f0d1c0000b079b010c066d656d6f7279020004696e69740044146765744c6f636b656445676c6442616c616e63650045156765745772617070656445676c64546f6b656e496400460869735061757365640047057061757365004807756e706175736500490a756e7772617045676c64004a087772617045676c64004b0863616c6c4261636b004c0a5f5f646174615f656e6403010b5f5f686561705f6261736503020abc162b2e000240200120024d0440200220044d0d011024000b1024000b2000200220016b3602042000200120036a3602000b05001043000b2301027f10262200100520001026210041c5d1c00010221a41c5d1c0002000100120000b1b01017f41a483c00041a483c00028020041016b220036020020000b0f01017f10022201200010031a20010b0b0020002001100441004a0b0900200020011000000b1f01017f4167100510262203102b20004167200320012002102610061a10070b08002000420010130b0c01017f10262200100820000b1e01017f1026220010092000102c102804400f0b41f082c00041241000000b1500100b20004604400f0b41cb81c00041191000000b4701017f230041106b2202240020022001410874418080fc077120014118747220014108764180fe03712001411876727236020c20002002410c6a4104100c1a200241106a24000b0d0010311a200020011032102f0b1401017f1026220041d482c0004100100d1a20000b0f01017f102622012000100f1a20010b0d0010311a200020011027102f0b1101017f1026220220002001100d1a20020b09002000200110031a0b5501017f20002d00042101200041003a000402402001410171044041a883c00028020022014191ce004f0d01200028020041ac83c0002001100c1a41a883c000410036020041bcd1c00041003a00000b0f0b1024000bae0102027f017e230041106b2202240020024200370308200010382200100e220141094904402002200241086a41082001103920004100200228020422002002280200220110101a027f41002000450d001a034020000440200041016b210020013100002003420886842103200141016a21010c010b0b02402003420158044041002003a741016b0d021a0c010b41f281c0004112103a000b41010b200241106a24000f0b41e481c000410e103a000b0d0020001026220010111a20000b3b01017f230041106b22042400200441086a41002003200120021023200428020c21012000200428020836020020002001360204200441106a24000b1b01017f418482c00041161034220220002001100c1a20021012000bf20101047f230041106b2203240020032000100e22024118742002410874418080fc07717220024108764180fe03712002411876727236020c20012003410c6a4104103c20012d00042102200141003a00040240024002402002410171220204402000100e22054190ce0041a883c00028020022046b4b0d0220032004200420056a2204103d200041002003280204200328020010101a41a883c00020043602000c010b2001280200200010350b200120023a00040c010b2001103620012802002000103520012d0004200120023a0004410171450d0041a883c000410036020041bcd1c00041003a00000b200341106a24000b800101027f230041106b220324000240024020002d000404404190ce0041a883c00028020022046b2002490d01200341086a2004200220046a2200103d2003280208200328020c20012002103e41a883c00020003602000c020b200028020020012002100c1a0c010b20001036200028020020012002100c1a0b200341106a24000b4001017f230041106b22032400200341086a2001200241ac83c0004190ce001023200328020c21012000200328020836020020002001360204200341106a24000bb00201067f2001200346044020012203410f4b04402000410020006b41037122056a210420050440200221010340200020012d00003a0000200141016a2101200041016a22002004490d000b0b2004200320056b2203417c7122066a21000240200220056a220541037122010440200641004c0d012005417c71220741046a21024100200141037422086b4118712109200728020021010340200420012008762002280200220120097472360200200241046a2102200441046a22042000490d000b0c010b200641004c0d0020052102034020042002280200360200200241046a2102200441046a22042000490d000b0b20034103712103200520066a21020b20030440200020036a21010340200020022d00003a0000200241016a2102200041016a22002001490d000b0b0f0b1043000b1c0041be82c0004113103410374504400f0b419a82c00041121029000b0b0041ac82c000411210340b09002000101441004a0ba60101037f230041106b2201240041be82c00041131034200142808080808080808001420020001b3703080240200045044041d482c00021000c010b4100210003400240024020004108470440200141086a20006a2d00002202450d022002411874411f7520006a220041094f0d01410820006b21022000200141086a6a21000c040b1043000b104d000b200041016a21000c000b000b20002002103410151a200141106a24000b0500104d000b1a01017f10164101102e410010262200100a1a1040200010151a0b0c0010164100102e102510170b0f0010164100102e1040103810181a0b160010164100102e41be82c000411310341037ad10190b0e001016102d4100102e410110420b0e001016102d4100102e410010420bed0302097f017e230041106b220124004100102e103f416b2102024041c4d1c0002d000022000440416b41ffffffff0720001b21020c010b41c4d1c00041013a0000416b101a0b02402002100e4170714110460440410021002002100e2106200141086a2107410121050340200041106a220420064b0d022007420037030020014200370300200220004110200110101a2005044020012902042209423886200942288642808080808080c0ff0083842009421886428080808080e03f8320094208864280808080f01f838484200942088842808080f80f832009421888428080fc07838420094228884280fe038320094238888484842109200128020022004118742000410874418080fc07717220004108764180fe0371200041187672722108200128020c22004118742000410874418080fc07717220004108764180fe037120004118767272210341002105200421000c010b0b1043000b418481c00041221000000b024002400240200950044020081040103822041028450d0120031041450d0220031025101b41004a0d031031220020041033200020031030101c41ea80c000410d10342000102a102c2003420010311031101d1a200141106a24000f0b41d482c000411c1000000b418080c00041101029000b419080c000411c1029000b41ac80c00041231029000beb0301097f230041206b220124000240101e4504404100102e103f41752103024041c0d1c0002d000022000440417541ffffffff0720001b21030c010b41c0d1c00041013a00004175101f0b20031041450d011040103821041031220020041033200020031030101c41f780c000410d10342000102a102c10312107103121081031210520041027210210262200102b20002000200310202001420037020c20012002410874418080fc077120024118747220024108764180fe03712002411876727236020820012000410874418080fc077120004118747220004108764180fe0371200041187672723602142005200141086a4110100c1a200542002007200810211a2001027f41bcd1c0002d0000220045044041bcd1c00041013a000041a883c0004100360200200141ac83c0004190ce00410010392001280200200128020441d482c0004100103e10310c010b41d482c000410010340b360218200120004101733a001c2004200141186a2200103b200142003703082000200141086a22024108103c200310322000103b20012802182100200120012d001c3a000c2001200036020820021036200128020820012d000c044041a883c000410036020041bcd1c00041003a00000b10181a200141206a24000f0b41a681c00041251000000b41cf80c000411b1029000b0300010b0c00419483c000410e1000000b0bb8030200418080c0000ba20357726f6e67206573647420746f6b656e4d75737420706179206d6f7265207468616e203020746f6b656e7321436f6e747261637420646f6573206e6f74206861766520656e6f7567682066756e64735061796d656e74206d757374206265206d6f7265207468616e2030455344544c6f63616c4275726e455344544c6f63616c4d696e74696e636f7272656374206e756d626572206f662045534454207472616e736665727366756e6374696f6e20646f6573206e6f74206163636570742045534454207061796d656e7477726f6e67206e756d626572206f6620617267756d656e7473696e70757420746f6f206c6f6e67696e707574206f7574206f662072616e676573746f72616765206465636f6465206572726f723a20436f6e7472616374206973207061757365647772617070656445676c64546f6b656e496470617573655f6d6f64756c653a70617573656400000066756e6769626c65204553445420746f6b656e206578706563746564456e64706f696e742063616e206f6e6c792062652063616c6c6564206279206f776e657270616e6963206f636375727265640041a483c0000b049cffffff" + } + } + }, + { + "step": "setState", + "newAddresses": [ + { + "creatorAddress": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "creatorNonce": "495", + "newAddress": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60" + } + ] + }, + { + "step": "scDeploy", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "contractCode": "file:../output/multisig.wasm", + "arguments": [ + "0x02", + "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033" + ], + "gasLimit": "70,000,000", + "gasPrice": "" + }, + "expect": { + "status": "0" + } + }, + { + "step": "transfer", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "egldValue": "0,050000000000000000", + "gasLimit": "50,000" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x00000000000000000500c114ee7698050a4d40c092add8c31d25e99a6e1ec2ee", + "0xb1a2bc2ec50000", + "0x7772617045676c64" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "sign", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "performAction", + "arguments": [ + "0x01" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "proposeAsyncCall", + "arguments": [ + "0x00000000000000000500c114ee7698050a4d40c092add8c31d25e99a6e1ec2ee", + "0x", + "0x455344545472616e73666572", + "0x5745474c442d366366333865", + "0x58d15e17628000", + "0x756e7772617045676c64" + ], + "gasLimit": "10,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb2a11555ce521e4944e09ab17549d85b487dcd26c84b5017a39e31a3670889ba", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xb13a017423c366caff8cecfb77a12610a130f4888134122c7937feae0d6d7d17", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0x3af8d9c9423b2577c6252722c1d90212a4111f7203f9744f76fcfa1d0a310033", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "sign", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + }, + { + "step": "scCall", + "id": "", + "tx": { + "from": "0xe32afedc904fe1939746ad973beb383563cf63642ba669b3040f9b9428a5ed60", + "to": "0x0000000000000000050013ee5923031e866a442d3cb543820bf74178bc7fed60", + "function": "performAction", + "arguments": [ + "0x02" + ], + "gasLimit": "15,000,000", + "gasPrice": "" + } + } + ] +} diff --git a/test/multisig/scenarios/sendEsdt.scen.json b/test/multisig/scenarios/sendEsdt.scen.json index 45947d049..e30ae951c 100644 --- a/test/multisig/scenarios/sendEsdt.scen.json +++ b/test/multisig/scenarios/sendEsdt.scen.json @@ -192,14 +192,12 @@ "3", "10" ], - "data": [ - "" - ] + "data": "*" }, { "address": "sc:multisig", "endpoint": "str:MultiESDTNFTTransfer", - "topics": [ + "topics": [ "str:FUNG-TOKEN", "0", "1000", @@ -212,7 +210,7 @@ "address:esdt-owner" ], "data": "*" - }, + }, { "address": "address:esdt-owner", "endpoint": "str:transferValueOnly", @@ -232,9 +230,7 @@ "topics": [ "str:asyncCallSuccess" ], - "data": [ - "" - ] + "data": "*" } ], "gas": "*", diff --git a/test/ping-pong-egld/output/ping-pong-egld.wasm b/test/ping-pong-egld/output/ping-pong-egld.wasm index d233870bc84ebc9d3f3e5ba2e6ff79dcecd09964..7d35c0527221a5088a3795b5f71eb564a762ee63 100755 GIT binary patch literal 6696 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 DCs{E< literal 6972 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 bgQ!(kalJkQ{te>0f>-*8`|*nxWB&giSN+Ut literal 4532 zcma)A-H%&G6+big`fIPfJNanXIH4IkY1xt{ZPT(XX=y!9HtDwc5=kjLUABb)fXfx@dOB@3JD$n@z{q7MF=DwP^I!0zynW+st-IMRJHuh%(b(rsKiG0 zy>sTwoO6EXoZomt;dmg3NL<}%q9&iNpTdXq1e|W68pxIk|c@8l8)7kk5ij zCNRTc6t_vTtdz;tw%k|^!Z_?i?TaT&yFH4=V-l>kFB7lbj9Qa4Iv<~m#_5S9PNSPC zEwRQ@s~?5&H=}eiicf}VNaReq?M{UKel&7>?aKB#eMowvAxO~MLK;&yT z(`bZDHp6}x!*83*MK=w%;l=866tI5_nGjZ-!;7tJQLA?@xe(s6*x3~9a@eh1JbCHT zD2&Ibh#7u!o1C6+h5bq7GPHmtr^E4?=xR!eEtQ-ml0|tQ*RvF!o%GZ0Y*)5$?$o8M zM5x4yvywa2jl1Iv*8SOH#A?^`y3aX~**h^9I&@~`H#22@eaO&m=b^JRPm=|G_jrKt zfSa4V=rUMl_m&$f z+``628y&fUruRg!v2iU5hZ|SIapcK`KkYeslw?CoEzbM=@XuC+Iz$0~G_kz5Dt){O z?QO0~3UZ_j1xrFqm8c6%N>;T90%8^A8G0=!;@wo#O0a{K4%elfs#LWMN=}U^IDk3R zQ9kB9^&}Q_vmSo7tYVZaYYdS)H4d@y=PQGlw4YB1n%zG#)U{M$5oe$`I1qzJJFJT4X2UR<7 z7$x&QGk^5F6SG1X@q1PSn96DZ?ci$QB`r8t zXp}5hvVkxq@>Q1%h+3@q<_90pJa@UC_SY*C#&X)%xy`z-z5(1|9pLg80a&Z8eMAF% zw15yheGP9~q9CkHtm4EFgQ%^)TyIFrc0c`|mg^`n4`{^YyP({U;eQRHxXV&C;r!obO zLDh=diGFv`2V{Q7l(Y-<2quL(c&VXYfI}$w-?~0{f`Ws{5ZYBRLDtyHAJNaMUbRoa zx(iLrl%XDB#>K9`;$3%Q*D7<*9wXFKARcb`QdO-%ac4F7$P*<-NB8P3iE$wH zlxmtuP0EJ34=WtCfP7*;!(Ty*eKpA_@thH06f;rF=u&lZ4M)YAdcNkXW1ux(J;zB@ zlT`{-Qt73AfsVB%x70zO52Q1I%pnr8!h63VO&Is*4tRz;=F$k(&v3qjU+7~94J z?hN@%?Ta{iH+qYZ8Kan^b4Yzb7u7!40%I{X+8{Z4%ab-L=2pv{SjmiPn}L}4Z1vxx&XR3URPc-umSHeDpBKn6XOLLY-KV+#! z;mU^jLxuua+w`(jQ|<%enT^I7C5ZI{!NQ zrNE~NqHzzjiBYJ9GBUx<^#sn4QuBqkbg8-WR@R^QKcl<%AXv@>e|_aHMnyOJ_`uzJ zJXw63wg0`uQ_KARNx?2!!TYBkOJ8{V-o1OZk|jp8DtH`VX2mk%_pF>Sg>tIlU;~f+ zABrA=MDbd>u#Ikh#DLcsa3&5wRJwrJirfz%^vBT}+T#uZ&#M#aQ6tV(JhTZ8DYOZ= z-nPjd*Cxbmf|C)yA@J|Oj4Y7W4>_0nZCZcN+@LtE<}duZ-@bmtuLt?HOz3*<t!jZs0^7OzUS#9%N|B#}1(#k&j3^_JpYgWp zxlNqzHl;P+!-V$HRv-wRykJ1?0|CO+-g<=sP(O$|*Q*!Iced(z5F{`YeEj8jD?Tdo zM!X8xa;)GRAHNx3Ng6M$7kg%T3v`PEo~$VkT~@sA(u|`i#m_R7n_Yt=1_za=iLLS( zWVa=qs|oms-wfE}3$z1WfG@C<({PY~iEy}DZq}p?4+p&s&;6j8g@;2D;RV5ao+Nh% zc-P}Q4Svbv7KiKbd~miKr`@=fj7Cu_)$wF-B^v4Es%8b9&Ms$HCvhw7Cb4cO(OAbx zs>4<*8m3Nd=(=i#f3^ Date: Tue, 21 Nov 2023 18:24:28 +0200 Subject: [PATCH 2/4] test fix --- integrationTests/json/scenariosExecutorLogs_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/integrationTests/json/scenariosExecutorLogs_test.go b/integrationTests/json/scenariosExecutorLogs_test.go index 24230e0f2..454989000 100644 --- a/integrationTests/json/scenariosExecutorLogs_test.go +++ b/integrationTests/json/scenariosExecutorLogs_test.go @@ -198,6 +198,7 @@ func TestMultisigLog(t *testing.T) { expected := ScenariosTest(t). Folder("multisig/scenarios"). + Exclude("multisig/scenarios/interactor*"). WithExecutorFactory(wasmer.ExecutorFactory()). WithExecutorLogs(). Run(). @@ -206,6 +207,7 @@ func TestMultisigLog(t *testing.T) { ScenariosTest(t). Folder("multisig/scenarios"). + Exclude("multisig/scenarios/interactor*"). WithExecutorFactory(wasmer2.ExecutorFactory()). WithExecutorLogs(). Run(). From 4ebd87b5f8637d9095bc634e30dbb0909b52b0c8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 21 Nov 2023 19:41:28 +0200 Subject: [PATCH 3/4] mandos test update --- .../scenarios/_generated_fund.scen.json | 122 +++++++++++++++ .../scenarios/_generated_init.scen.json | 99 +++++++++++++ .../_generated_query_status.scen.json | 115 +++++++++++++++ .../scenarios/_generated_sc_err.scen.json | 139 ++++++++++++++++++ 4 files changed, 475 insertions(+) create mode 100644 test/crowdfunding-esdt/scenarios/_generated_fund.scen.json create mode 100644 test/crowdfunding-esdt/scenarios/_generated_init.scen.json create mode 100644 test/crowdfunding-esdt/scenarios/_generated_query_status.scen.json create mode 100644 test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json diff --git a/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json b/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json new file mode 100644 index 000000000..241aad8e8 --- /dev/null +++ b/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json @@ -0,0 +1,122 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { + "balance": "0", + "code": "file:../output/crowdfunding-esdt.wasm", + "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { + "nonce": "0", + "balance": "0", + "storage": { + "str:deadline": "0x093a80", + "str:target": "0x07d0", + "str:tokenIdentifier": "0x43524f57442d313233343536" + }, + "code": "file:../output/crowdfunding-esdt.wasm", + "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", + "developerRewards": "0" + } + } + }, + { + "step": "scCall", + "id": "0", + "tx": { + "from": "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e", + "to": "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb", + "esdtValue": [ + { + "tokenIdentifier": "str:CROWD-123456", + "value": "1000" + } + ], + "function": "fund", + "arguments": [], + "gasLimit": "10,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "str:" + } + } + ] +} diff --git a/test/crowdfunding-esdt/scenarios/_generated_init.scen.json b/test/crowdfunding-esdt/scenarios/_generated_init.scen.json new file mode 100644 index 000000000..08b369285 --- /dev/null +++ b/test/crowdfunding-esdt/scenarios/_generated_init.scen.json @@ -0,0 +1,99 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { + "balance": "0", + "code": "file:../output/crowdfunding-esdt.wasm", + "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { + "nonce": "0", + "balance": "0", + "storage": { + "str:deadline": "0x093a80", + "str:target": "0x07d0", + "str:tokenIdentifier": "0x43524f57442d313233343536" + }, + "code": "file:../output/crowdfunding-esdt.wasm", + "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", + "developerRewards": "0" + } + } + } + ] +} diff --git a/test/crowdfunding-esdt/scenarios/_generated_query_status.scen.json b/test/crowdfunding-esdt/scenarios/_generated_query_status.scen.json new file mode 100644 index 000000000..c78a0a799 --- /dev/null +++ b/test/crowdfunding-esdt/scenarios/_generated_query_status.scen.json @@ -0,0 +1,115 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { + "balance": "0", + "code": "file:../output/crowdfunding-esdt.wasm", + "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { + "nonce": "0", + "balance": "0", + "storage": { + "str:deadline": "0x093a80", + "str:target": "0x07d0", + "str:tokenIdentifier": "0x43524f57442d313233343536" + }, + "code": "file:../output/crowdfunding-esdt.wasm", + "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", + "developerRewards": "0" + } + } + }, + { + "step": "scQuery", + "id": "0", + "tx": { + "to": "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb", + "function": "status", + "arguments": [] + }, + "expect": { + "out": [ + "0x" + ], + "status": "0", + "message": "str:" + } + } + ] +} diff --git a/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json b/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json new file mode 100644 index 000000000..1d793e0f2 --- /dev/null +++ b/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json @@ -0,0 +1,139 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { + "balance": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { + "balance": "0", + "code": "file:../output/crowdfunding-esdt.wasm", + "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x12771355e46cd47c71ed1721fd5319b383cca3a1f9fce3aa1c8cd3bd37af20d7": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb": { + "nonce": "0", + "balance": "0", + "storage": { + "str:deadline": "0x093a80", + "str:target": "0x07d0", + "str:tokenIdentifier": "0x43524f57442d313233343536" + }, + "code": "file:../output/crowdfunding-esdt.wasm", + "owner": "0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925", + "developerRewards": "0" + } + } + }, + { + "step": "setState", + "accounts": { + "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e": { + "nonce": "0", + "balance": "1000", + "esdt": { + "str:CROWD-123456": { + "instances": [ + { + "nonce": "0", + "balance": "1000", + "royalties": "0", + "attributes": "0x" + } + ] + } + }, + "developerRewards": "0" + } + } + }, + { + "step": "scCall", + "id": "0", + "tx": { + "from": "0x2b32db6c2c0a6235fb1397e8225ea85e0f0e6e8c7b126d0016ccbde0e667151e", + "to": "0x0000000000000000d720a08b839a004c2e6386f5aecc19ec74807d1920cb6aeb", + "egldValue": "1000", + "function": "fund", + "arguments": [], + "gasLimit": "10,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "4", + "message": "str:wrong token" + } + } + ] +} From 502906c27c5f609730ba71a9d6640afc800b533c Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 23 Nov 2023 10:01:04 +0200 Subject: [PATCH 4/4] merged composability scenario-promises into scenarios --- .../json/scenariosContracts_test.go | 2 +- .../json/scenariosExecutorLogs_test.go | 4 ++-- .../json/scenariosFeatures_test.go | 7 ------- .../scenarios/_generated_fund.scen.json | 2 +- .../scenarios/_generated_sc_err.scen.json | 2 +- test/digital-cash/output/digital-cash.wasm | Bin 10979 -> 10979 bytes test/erc20-rust/output/erc20.wasm | Bin 2130 -> 2130 bytes test/factorial/output/factorial.wasm | Bin 567 -> 577 bytes .../alloc-features/output/alloc-features.wasm | Bin 19442 -> 19442 bytes .../basic-features/output/basic-features.wasm | Bin 59193 -> 59193 bytes .../output/big-float-features.wasm | Bin 5170 -> 5170 bytes .../output/forwarder-queue-promises.wasm | Bin 13091 -> 13091 bytes .../output/forwarder-queue.wasm | Bin 11825 -> 11825 bytes .../forwarder-raw/output/forwarder-raw.wasm | Bin 14879 -> 14879 bytes .../forwarder/output/forwarder.wasm | Bin 29870 -> 29894 bytes .../output/promises-features.wasm | Bin 12099 -> 12099 bytes .../output/proxy-test-first.wasm | Bin 6929 -> 6929 bytes .../output/proxy-test-second.wasm | Bin 1970 -> 1970 bytes .../output/recursive-caller.wasm | Bin 6206 -> 6206 bytes ...arder_call_sync_retrieve_egld_bt.scen.json | 0 ...arder_call_sync_retrieve_esdt_bt.scen.json | 0 ...warder_call_sync_retrieve_nft_bt.scen.json | 0 .../promises_call_async_accept_egld.scen.json | 0 .../promises_call_async_accept_esdt.scen.json | 0 ...romises_call_async_retrieve_egld.scen.json | 0 ...romises_call_async_retrieve_esdt.scen.json | 0 .../promises_call_callback_directly.scen.json | 0 .../promises_multi_transfer.scen.json | 0 .../promises_single_transfer.scen.json | 0 .../promises_single_transfer_gas1.scen.json | 0 .../promises_single_transfer_gas2.scen.json | 0 .../vault/output/vault-promises.wasm | Bin 8144 -> 8144 bytes .../composability/vault/output/vault.wasm | Bin 7552 -> 7552 bytes .../output/esdt-system-sc-mock.wasm | Bin 4953 -> 4953 bytes .../output/formatted-message-features.wasm | Bin 4411 -> 4411 bytes test/multisig/output/multisig-full.wasm | Bin 17299 -> 17299 bytes test/multisig/output/multisig-view.wasm | Bin 7699 -> 7699 bytes test/multisig/output/multisig.wasm | Bin 15295 -> 15295 bytes .../ping-pong-egld/output/ping-pong-egld.wasm | Bin 6696 -> 6696 bytes .../output/multiversx-wegld-swap-sc.wasm | Bin 4382 -> 4382 bytes 40 files changed, 5 insertions(+), 12 deletions(-) rename test/features/composability/{scenarios-promises => scenarios}/forwarder_call_sync_retrieve_egld_bt.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/forwarder_call_sync_retrieve_esdt_bt.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/forwarder_call_sync_retrieve_nft_bt.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_call_async_accept_egld.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_call_async_accept_esdt.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_call_async_retrieve_egld.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_call_async_retrieve_esdt.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_call_callback_directly.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_multi_transfer.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_single_transfer.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_single_transfer_gas1.scen.json (100%) rename test/features/composability/{scenarios-promises => scenarios}/promises_single_transfer_gas2.scen.json (100%) diff --git a/integrationTests/json/scenariosContracts_test.go b/integrationTests/json/scenariosContracts_test.go index cd2ab902f..d1b83a964 100644 --- a/integrationTests/json/scenariosContracts_test.go +++ b/integrationTests/json/scenariosContracts_test.go @@ -51,7 +51,7 @@ func TestESDTMultiTransferOnCallback(t *testing.T) { func TestCreateAsyncCall(t *testing.T) { ScenariosTest(t). - Folder("features/composability/scenarios-promises"). + Folder("features/composability/scenarios"). File("promises_single_transfer.scen.json"). Run(). CheckNoError() diff --git a/integrationTests/json/scenariosExecutorLogs_test.go b/integrationTests/json/scenariosExecutorLogs_test.go index 454989000..01264314f 100644 --- a/integrationTests/json/scenariosExecutorLogs_test.go +++ b/integrationTests/json/scenariosExecutorLogs_test.go @@ -149,7 +149,7 @@ func TestCreateAsyncCallLog(t *testing.T) { } expected := ScenariosTest(t). - Folder("features/composability/scenarios-promises"). + Folder("features/composability/scenarios"). File("promises_single_transfer.scen.json"). WithExecutorFactory(wasmer.ExecutorFactory()). WithExecutorLogs(). @@ -158,7 +158,7 @@ func TestCreateAsyncCallLog(t *testing.T) { ExtractLog() ScenariosTest(t). - Folder("features/composability/scenarios-promises"). + Folder("features/composability/scenarios"). File("promises_single_transfer.scen.json"). WithExecutorFactory(wasmer2.ExecutorFactory()). WithExecutorLogs(). diff --git a/integrationTests/json/scenariosFeatures_test.go b/integrationTests/json/scenariosFeatures_test.go index dedcd460d..287179ab5 100644 --- a/integrationTests/json/scenariosFeatures_test.go +++ b/integrationTests/json/scenariosFeatures_test.go @@ -91,13 +91,6 @@ func TestRustComposability(t *testing.T) { CheckNoError() } -func TestRustPromisesFeatures(t *testing.T) { - ScenariosTest(t). - Folder("features/composability/scenarios-promises"). - Run(). - CheckNoError() -} - func TestRustFormattedMessageFeatures(t *testing.T) { ScenariosTest(t). Folder("features/formatted-message-features/scenarios"). diff --git a/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json b/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json index 241aad8e8..afd4bcaea 100644 --- a/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json +++ b/test/crowdfunding-esdt/scenarios/_generated_fund.scen.json @@ -109,7 +109,7 @@ ], "function": "fund", "arguments": [], - "gasLimit": "10,000,000", + "gasLimit": "100,000,000", "gasPrice": "0" }, "expect": { diff --git a/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json b/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json index 1d793e0f2..465bf2bdd 100644 --- a/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json +++ b/test/crowdfunding-esdt/scenarios/_generated_sc_err.scen.json @@ -126,7 +126,7 @@ "egldValue": "1000", "function": "fund", "arguments": [], - "gasLimit": "10,000,000", + "gasLimit": "100,000,000", "gasPrice": "0" }, "expect": { diff --git a/test/digital-cash/output/digital-cash.wasm b/test/digital-cash/output/digital-cash.wasm index 1bec0f06e73497c05c454bc5268797cb0a8a3429..a9f1ce9c5975519d08e753c8d37208649861d192 100755 GIT binary patch delta 236 zcmaDH`Z#ohKhxxVCZ);#ObVMPGEHS0g{XtNSbUY=r{SFfb8ZKf-^w69VJgNOC&fl3M2{` za0@XA$P0uyG6|#zfQ2S2%E~b&Zg!A8!N?n@$OuxU$OM!YnJg;5mpx9A1t=mi`6ign z1ZK}w=mUyF*hY$%8RI6iDOmwYN2R+!agYhgn^l#$8HK?d$2pB0j{E{34NO1@XO(G; MjB%T9sdBOc04K*c;Q#;t diff --git a/test/erc20-rust/output/erc20.wasm b/test/erc20-rust/output/erc20.wasm index 0e05fb4508d5b224a5737fa89920e3d7bf67b975..2affde6e69c2809933a21aca2588c3ea6e493535 100755 GIT binary patch delta 141 zcmca4a7kdogMfq*g8+*H1Gh7b!zu+7Wt;5G zY`VFXnURT6YH~YkB%}1?hpYzt(u#}<433PB^BOrE*#)F0E3g@}ODh6J1f(WMv8f9K h<$6u#%aH~88&%$znbgYba&rX$Qi2f-Nz=0Pc!f&SSB|DXz`fws)FL!^{a z7aAQ}O^Pj(gwMaQ1Qfp?3Gyt(6E{VwSq1!?i)7gt~n}s%ku9J_PWREwGv% zu;MLDa@3pvS>7R3=UhyS3tLl0DW)rdhuN$v**c!0uOlv9ie~9t)OPN1cbXTtB|j54 zGi~6KM`?d#l>1nTG|~2`J%B=8f3+$lL_Hr1JZKu+oKJ7YH#>=GL(BZ(gg)pqsO4p; zLimU-u_k+R0 zcr$eto}qlliO7T#uth>zw%ntaxpx*t;<$IULqWp??u`X7RDYiUy4vv(ebKoR8FQ-q z;~E<_^0CBSk9*}V3t*heT_vhYAAm`EJUtEbw4RRFALA-~3#?Z{@{kFsV-%M-Yo2~d zI~=+_<1!w~q#4g=rr-?S&RA^U%^YI;K(}ufyC18Ybo@Pe($SP;)GM?~!y?`69_7I1 ztQF*t4L7j+#ol~tOTFn|1D;_wmg2&ElXud;W_vCs;sP6)U=Al~Eqe|YskLVh*ILUy zLDze1{{OD$|CDsF*SLSRN7?;ZZ;Tm!>V4N)Fwv(MIH&$RFI5;9%+Nm$e`OYEEti1P z^i6I@xaiAb_z=W>c$$K4Q+W2CUPi^2b7SGD|M*I7YnbKzSMEEmv*n~L%R$zvnr^uB zaF%j?NjOQryTfe1*Vn}Mr+tIGT1J17aiPDD@q>OB3mf7|wa)Kr3l`{){*hq8k(+MT zbnmX0VcPqAR|;U!`)lBN3A5gk3IlJ~D?@LXGYZrdo>t-vHRm7X9nR%bSisfF?Qc%F sNYCY4LOgR)GyHAhMvL@*{sk7iW%zX{c$bH3{KtP|#Nr}9j+j+{0~|mF+yDRo delta 1074 zcmZuwOKcNY6n*!NZ4DV?KcU2S!Z>+0ZeoWxg!+?s5<*^`0OF$n1(#o}kj6>sh$N7} z0@PZ3r0!7LOF?W9i%L|8MUxSN4Igz=0Sj1x)D6&0H?33<;%cAAVeW6ZYEA zYB|7Od{MWyMKH-EC=ffUIBuLE@5&0M#AH;9F{w$ATPSs)KsV} zU1C2z30U}VP-1T&k6VLM*D0Z5qJZ_mPCOGj0Q+rTzgELyDBD<5Ek^mW#-d4e_ZTsN zuOt&bRH1O4mx9&f6I?A7|FTpN`Pa80Sf5tChd#j0;5&Ho zzjA?aL)&>M;BRdS_zb>+ntimPdopg5;u40AFj5E=sR6e%J4_m50Pn_HKk`_ zQvGwBE5DdFd~XP6!KQIO7l$eQHMhb);>e;q;1wIh6nd>jfAOtedX>vrQUBz zlf3W5UbG@hhIxhekybvuYfZr+%ylPV7++ZZWdGRRNcJz?eK3N0&p6>sPdDL}9!r!K z#p7y$7I=v$;om(2-cp3Wrb*NFYfi$DeQ!+?VAg)wdz3@bo>P9H?K<_zH^zhlb)CB9 zVgj4;^|Zmcd{UIerRwxwcQ}hj^36W#Iicy!Hqk>z@N)hb3Etd)8cO!n{#xhvzB^!2 Jk>3Xl&wrB%{;~i7 diff --git a/test/features/basic-features/output/basic-features.wasm b/test/features/basic-features/output/basic-features.wasm index e3110c9bf309b6b1e586942188a289a2379f5726..670f45753c86a134aae8cc522f1e989cd4b57410 100755 GIT binary patch delta 7797 zcma)B34ByV(w};7l1z9ZX^|u_3CWv*oGcg=K0<(y7YIkfAqoh%u;_j$1cS1>pbP3C zf^xY?iu)7d`Bkdt!ogJZ} zp+upfs{HQ=wJT}}MwIZ-hy?kehN|Hzh1tn&w~=Zmvd7>XKV%Ol;u0+@%pO7%5<>i$ zmZ_3m^EQt-<)(w)uUZ!pE%y%3IBlm}-Ur%UBP!$j+DA7kBTd-EbaLu8oy1fUW!}v8 zX)1r&ak#6IO%Cdc*h=Qle$pcAhQw^*(VbEqWfVc0rmH-$V^4k}tB|(x@vJOP?bycA zis)tCCgQoKV>0*c6wgCCx_L>b$^1o^Oxn#UIc|E7^K-URC4ZmO%8>$cLy}+2)$;{b zGG@+l7$gpn_@1od+ALCYA*pwV42h?$S4Q;w=I11f%^k$J9w*KjMouK?~ zR&!HZlvAlI#2}YFLV>OzH|H=K(BXc$O{ttm=MLphIwz-A5;TxP4-<$)VGCP{rupp$ z7Ri=%&f>0#5f9;8@hCa4*2(L-rgH1-0Wpmwv4vo{h2RO&+VGySiTpyB$2hyQ%XySs z1U(f)5#{6x@qHeGo=h37cwOg*?t}F|0ARnQ?ZgRPbHa~er%d2EG9#gbYUof;w`mb* z#ItUjXogO6pMq{R_a_=`&(YPAC{5aJtexyIBE>so;}5$&$!SJ&*KTq_Q{ZAup5rhY z2=tYpJ{K9ocuKb3A1XuPTw8m!iLO9alR`K6d~Co>b|hx7M)8fpG=h)0R5eE@sYk$! zDC4iPM>cF|Gi=7vH{^D2BhKo!fa80#r4PA(kD+vvH}&Wng>AOwftgB$u4%)#Z?80_ z{QK!6j?Q1qeR_?gE1Z}g!{7Dn!Kb^mrmOr@w`Sz#W_ihJ*P#}GxdPi$6^E|0vPFm) zq(Ke2ty%+#nhXB#;%|GjB%PCbCTrlar7AF0T;V}I+eZiV%^8Tn%<7))6M|+aRcWGA zD_gv|02w+z)BQL6WM2R9n>b{cjd%0D9y))N*Vj@mR3{3~5O2;O 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 TGEjtfS@z`u{3T-MObS=~#`WG*r%v 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 diff --git a/test/features/big-float-features/output/big-float-features.wasm b/test/features/big-float-features/output/big-float-features.wasm index aa273f82a0a746d85b4a437ed7b34eb04f1fa197..6e3615c4f3919697fff010b4f3b93cd49d247731 100755 GIT binary patch delta 677 zcmZ{hy-ve06oqXQN`#yAfG85FfIw4PRDMzl<+rHL!o-AFc>*LJAVTTNf`rV*OP~gc zktbkfWn$nJSl~uQsHpCpd_LcEujSLL^=gmrB9{}wvaIw&T-X4MzNxOFE|rZ~-^ps* zWT?0&TXrMSS!L|wRo8Y<$?wR1( zk%=CgpfbUZ0qV~=Wfr$@543t(jW9Lg4*22yw zu(h?a@D*(IY%m7HaI1U2d(O;cPA}*MkMAm(NT`HLMjz_ZIiD2G@0(^$=%x zIRt4bJ6d3VSzz23t|$EdFrDL+iq&mu6_rlBTE&KGxuxjYy_MNeOa0n)bQYmj`h{H@ zp}Fuj5u%PYH!U!yCCVt8d#_S2VUck57iyuO=y0j^2em6$7#s`c%UkLM*doluR)sR( z8}RCgc1ip8=v9@gRO}Lb#SRDj-Hre?f|-A367E`H2Zt7l0~ei1q4~^IWzpnOYcL^xw2un%{r`$HWtzi~;SIxrxx*<39gX<`5X diff --git a/test/features/composability/forwarder-queue/output/forwarder-queue-promises.wasm b/test/features/composability/forwarder-queue/output/forwarder-queue-promises.wasm index 5eebbd67dba327fca74bd5a6e1a159172fd171cc..c6f641cd2ad29406fc7ceca68e3ad11d11e07a78 100755 GIT binary patch delta 547 zcmZWlyKdA_5WO?D*SoUT9-FY3@X)nE%WfcSsu08@F(FjDBt%q10vt$$R?yNyHfiV( z)6%5?39SS&4bV{JBOpSEAE1e#CCqhbBAPRgbMBeBv$?vt`gR9+3{&2LsiKP+IwLh# zx%|TJST&`JE&E;#mbv9W1RKE&KMK5X09t9Jj@OW&ExN%k{bP-PMbB`P zXiI=eRQxpf0XgS19d3YV^TeU?)YZ@wI zJ{P9YksbJu9@8`uId8%AfL zTYQVYqGvz$YDz1rW>|ba_^Jwd@!+n`j~b~4+5nFfjgOk5 zg^JElhvQ^UZge|&R_~QpnHN-Yn_tO%yapPyla2Ig-DDQ^1S>)=r6;2Q$>MpMTZih2 zn;~6J?938`%%*1Qkk8fT8#l0LGDUU%*qnuW@u&F{j+8c)y#cC)H_I84T$M4EcCt5S aAJ6C8pJ2K8-ChCt_0s8qBVOMp=I}395^o*= delta 554 zcmZWl%Wl(95WO?DV@Fo)i5rT`OV{))?5Ow(w~1JkJd zQGiD@nW6^T0HaZpABW$e$6cDO3_$XFi6ahIJ44#wH+1XdlEy6VYpkO-a6)@@O(-g; z*ic90TZ_+DQfTvy%3E0CFdBm%s_@)4p1TIN zK*EO68EEHUqc7;=L%*!FA}_P^PX}Ij(97>1yNVNrlsyLElcLE(rm3T%32OTB{+h$f zzhPY#`KV`kJXw(I+)SQ~bc)L@3o5zaucQ;Ng9hzn)jqA6%A$^7NyL@(c=W%RKTW&V z!7y<%q)UmNS%Q$+R7)KiVXyYe4eYs0QONIW^AP5{wI6V}h$-z2P<6as%#dP1#*`Y# c-k5)MKG*mF-F&BU4`l0=(*sAczD-@hKe^&>UH||9 diff --git a/test/features/composability/forwarder-queue/output/forwarder-queue.wasm b/test/features/composability/forwarder-queue/output/forwarder-queue.wasm index 72152f853aa0ae12b38bffbf5df520042f8b5839..1f5d9fea753057f0f27c305d1f4d380655909186 100755 GIT binary patch delta 572 zcmZutJx?1!5Zzg??RAd3%<*|K#@<5_IF7AY0i7sFaY?{u8>1*n2P7$I;yw-}Qb3}m zLEBrjDJ)?ft|<5y$p0X9r1Z}0MRYVfqj_)MynVy{;r>-oNSo!dEIT9hidaoa#^QJ4 zFa^zcl>Gu!O1X~EH+BIcJ+_}iQwyg;{R^jL+YBpt#T4K(tm=;AL0k9jC;2t3TJubC zmBNT%9&lk;0cZNa@o*a81S`v&_Id`6PaPldnAm%Mnt+^253r|)k3VkhC>~;0@iOB#C|PVz4+lhi+gt!8=v delta 585 zcmZ`#J1+!L6u#%~ti5Y?))}wecSZza)SU|&PIGk2TfFnmkTEQ(HEg6c(`dLhsmG>tcmgad$8LwBa_xl#qQ|B>g(YCluYeP@;*`np7sVMY0w+s-3W9`%eW9#En!2iZiekBs|w>o}N}f`q9B zXP$K3I9t(G&CwJRupFNYIVhRH3Y{m#0!Q%F<#*s+TnaCZCs~kegq85GJ?{>xNJj=g KInj^hzarm9erIL? diff --git a/test/features/composability/forwarder-raw/output/forwarder-raw.wasm b/test/features/composability/forwarder-raw/output/forwarder-raw.wasm index 67243f490444be3349f60c5c366af70343fceefa..73a0b5cb2e5af857b8437fa4b8e3d9ed74fa0728 100755 GIT binary patch delta 453 zcmX|-O)mps6ouzbr`jTn5p5;KXe-lpYRdG(M=CKEM8ZN1LD*T)(uT0EXcHD9lDnx! z;s=Nz?+*|QOA-qUHezYh2pdbcjo6$#=e+0U=Dz1U=R4O4tEaA>=Xs77EC2#8*hH|q z9X4pMbASLWWt|Y9z{-v*JFZI#PD(O6ku(cr@V0GQYy!xOs+Sw%L{8=!5}5b6@Ya3L zrd&Ee8uRV|Hab^`(#~GUVab_6$u-Q1?G;OFnudLxA!oe2pQdFH3;5cxfZH8&sCPcn zTIli#kYhbQiHChQ*fY*U0rSct>5HPmELsC$*hf9EPJ9+P1{2lbGU;J3M9P9H>059U zvN#>`*I2>R&^-CikV5`K?ZzQ>t42pP_2Y7Q4NP_)UIClgEy$b!_!Mr%q^8grt6H2+ zFKfe8e%5X%If$ew`HDnf1HFB_l$843>Ge*RvD`oMM?d{b|5*zb^<>Re+XK-B;*+R{ q_%b?5T#3rW&9Q+7(*WaR&u+Lx6K7)8MmAQYJ>Rhx`kjY(O85mlF@_8P delta 438 zcmX|-%P#|A6vgLGr`i(Kh<2K^j7KwVr>5;p>y=8>!ee2Zq`S$DwKR zA0dVOnc9lI>PCh3E82l`;YBdnZFnARW~(4`DZqztBPKP44qwm`^wzT0N99NDijv(( zhLX=n1lF)Ex<$!R^p&PJx{T#m{~vwFX8*GWEa}OL`)zj{Y2rh}OMGq&5WgETaechI f#!Nx#ZQGu5J53yq|29_RCED{9f1=;HOH2qqNG64z diff --git a/test/features/composability/forwarder/output/forwarder.wasm b/test/features/composability/forwarder/output/forwarder.wasm index 0d89b8086ceaad07b63a62a19f4d8e69c276779e..bfec98354a0634cb07cc6580c9ef49808848ae60 100755 GIT binary patch delta 2028 zcmZ`)drVVj6u;-TwihnckMWk)-WKE~SagUH#PwFBJQOMd!3QFWiY4lN@-R@q#~3(Y zM@h_*nP{ABy3M8AviX`X6yuD#xVX)jxrZ^#KgJ)6b5WO_ue8YiSeu;to%5ahJMVKp z9)zoda4Je42BHq=Pe0I!dLo#l&(`a7k|c_N_4-6H9K3t=Zap0LJ~vpkQw##jAEyWk zFgxo2IRe1L@~tBAUjT_kE_|g^Of1d`e+f1$ibxZQX^iNNi5Y$g)V;eURbbLEUI%y+ zA}8tcg9Q#xNL%E@z_F9eSp^oRDo(APU#j7!S5^8OURP6M6Z(xj7PusGd;&(mDs z!QJWWc%lADAB?O9jX$rNgn+@zc+oZq`fApFo5y4 z65MBt!vz`bp=13;r)%=~QN{rcJiwMrBcn`c*j2Dl-1K1E@cqmLD;@5DMMt7*U=dlq z1vGX=^wr*{MGij6tS1xYQycM0_G|cH>d}w^5M=dGyQCV}0Pe~vOA8A$YqBUX-ixy2 z3xm1j@IXd*U42QErsaruVtP&CN)g(?!CzQ9MMKg*GB%1uBtVd8C z{gO6(XZm;y&OS}q>d)>D`;Rw#db~9`YXGL;%^Ar&<47t=_lV%_`VL^hCiPpL4xLzb*UPomzJc^sk`J)qMp)K@c&*ffKPcuq<7xsL;TJk&SXrSm&XDjsNZ)>Y7pzf zmU$I$4sXxPhAk+U&43mxC`*97xTb7NEGcV-<5lQEi$G8nw^hqp@I_e@>1>{#CUHQ% zKCrYrieA1jzuhn_Qn!-@16e33kM>>U;?eT0f4K#DErM%aVExifL zabvB8&IfA~$^CP+6dpdSO(pN+mz{)OyuB z;WOR`?h#EIW6WB92{z;3%QJL*InV~P)uqvVRoAsb6W*`m-=UxtX4r};E4~@mLD0$= zzKf`X>3h@1D?*5DpEq=68=$j39N$|NMS!2L+7FFbP;aAiQ+>~`JSh3+WYk^f&Z8)*Qu4)gm9|j?5W0V;pMqePbi1yL}!tg*F_(QjqQIyM%Qkep$J>Q zEpK4#$Q%pX6LX#6inI<(ZK72h8rrPY#)Oug{BlAfWpPuY)6@O+|8`R#;kYUe8n$&e2crc)cc?2hnSXsSL#Cbpih z*0u%}qzCY&^lZzsN=F&L6hix>=v#0}DhCa)oe=LnNMw>B z=q*lDilUngo5zXxptqHDb1>0u7{vCHG{mk9TZ}2+3g6s5TzM?M(AH=9k zcmv}dcPX}$oQjAnF}n?AI8ZPiY_S<5*1dtg-2JBPA4xU) zXu~s*1%dd9#4VDTnZ$W=03m$DMm~|3;=tktIV?E3Kn_)uI>_YKRkIuKf?8hwGjAor zUNT_~aM5GlVpKr(7*)8)D(X=Ypm};KY-Ud1hNF?? zb=o;X4(^r|MLWj{#fdo0FV^WCFDOof-s{DwLy_S70>l(MT# zVz;cQ)PeDbY@0WZqsx-CpygnIN4T)eIsU0Z6wkN~Yi6-2SPEIy9dIVe!H$n&*gfde zC)`!mjIbY-&4w(U@fzfr8GC|>9Duw#^E7?Rhi8q(`m0$n)WJ7rCDX&eU$c5t99^GN z3^}sg5BXO4ACO&ho9KT?ZgWLC9hVqMCl%7~y$bk6;%y?7q;YeH%@`v5ylY-Ho#Ebj z1?Z8a%Bi%D7gnawUhb@H9|dKA8G_gb_<*6)EY|Vx`D>xGZGKj=G$?s1*s@?v0i~d( z@HkD-?5HYaQ8hiHU(eVKw-IpLP!$VT9aWzp#_`p;kjtvCL*~_F&^t2r82>h(+D4JfuCp#?_D?^@|%UP$TohVt^&>GuX_(i>5Hb( zc5YgHLwnH6;D+C=pAvgn@&!6cGV5i<6H?^g>s!HZE0)M9I%5M#} X33%3k8~Mk24EV!DN8m}zx3>QP$W$ng diff --git a/test/features/composability/promises-features/output/promises-features.wasm b/test/features/composability/promises-features/output/promises-features.wasm index 298a16ea1c0d2e1b782eb7f9bdb3e0ddb9f3e3ea..192d3b95b847002e17783a61824cd0011af7f4a4 100755 GIT binary patch delta 853 zcmYjOO-NKx6u#%aH#2X1@98yvM^o?o=^Hf*HFe6LcSW6aX3#}}LO67LT^!Cm_xsK{_xpARb_QNQ(Rnp&lQ}@%xCO zIVp9E0+WBeEf`yTCn4=j_~L+<4XqB+^1Jp340+w(i}8a$DOWNo^WvSV&8bC=AQ2MXNJOtVZuQYK)MB{jVPd2M<_YZzc2VYMN`nBWQ37C#m=LB$?M#_EX9 ziLMa=td=$FDFla!U}GVO5RMF4lTiq9naBvsSv{5?z@oT{jp$sLYG>)<_AN~W%X~B81vpVXV_6oMMvXDvr5fRQS_HSn%NQ zP?R8LN%_erGYp)_;Sd>@J!XH%DB=nSVT`g~4z3g`_iPxT|0l?C1cy z&?A3mRYFRZvX0yyu85{lu2}9G7VY2~J16Iu4Jqdpt9SMPm7O$=A|3Z5>;%eYIvvN> zU9W!THls1&ydLywG7s%*c7laBUCNU{6ynbNzzg?MmTAey#fu0E9p40G?3FyjI90j| zhC|Di0lMW1e^A%WRZdv~|KGsyQ-X~~Tq{^H+GXp%05n&#&txn_B1cu(AKdrY_?|73 zp?5gT2%iUA4u;#%?e%aY=HJ50zU-h^D2N%0yoPL95xs=SrRYP9!SXaJKm;G<#G;lP zs<|H(SSWvvK37+KMVY`_Gi`Pz2<&W-3W|+3t$8F{G2u(187k|RQ?UqE?#F7-=H1w7 vXp?_p^EqvTi0wsV5hTod3No delta 888 zcmYLGO-NKx6u#%qo0&JhpE;>zGnRATyiwnn{h&2!P0ZZTbjA@Y3M5L17Lig&pwK3% zq##3(O9W9-5ooKz2ev3A(1NfQ}S{4wm{8IZSvsx);j+rDzw>WlnF0 zvihb!0$W{;4HABg^|$Lx0=8k7Q305AnZ(gFWSC%RN$sds6d+lSn}SJ3p*bQo%&QZI zn|7&OGHgo+m7-TG%I`OH$>k~`VmmX0s;+8HyNd)#!Gydd9B>C|H<2E%vmWR(sojWHsrxU0l~7G2+x^d{9jqESiy`b zdmmW-G5Z<7fch10fj-rM-L(TEBs)h$$m2Az$Ge4&{b~Y>(C5F#{egLFTly_KY0xSR zca!FEzq|TrVDyjLJh|#_EtAogx03f=zO(&W(DEeF2zmcQ;$?72*`9h_f0K&RJLZ8p zR(C!p9BY^b+vllifQp(C_uDH%6C8U7Z~Zv|rwKo8{o%tq5Jv-zrq zob_;l@}}xfzoWlQ_aqe5Ik!L_K6N`N{_0LgO(!BlR5O}+1Ey+jJVTXJjSmT(rU6ob zNiiar$GrerMT``<(ewiHs zvU{MUR-;a5 Cfw$uT diff --git a/test/features/composability/proxy-test-first/output/proxy-test-first.wasm b/test/features/composability/proxy-test-first/output/proxy-test-first.wasm index fb71ecbdc66d8ba3379e3d4b5108b4c5b0580e6a..0c43a7311d9e61160c57a550e97d531d70985bab 100755 GIT binary patch delta 95 zcmbPeHqmT@2Qw2h%Vsa;zf6;3*ko807!(+NH)pUV2#V?|Fe-G>EvUCyW delta 102 zcmbPeHqmT@2Qw23^JXvRzf6-8*+h9H859^C?_A>1U}EswoWYhLD5|HxsK6>agpZ#8l_iVLtXa4RrqFtI2yf+z+>W=CeAb|wK% ODFr40uFW=VWsCrSS|TO@ delta 188 zcmWlSzYf7r6o=0__ueWU+(=5$=pTm0Ahlp1>75Lo!X~;~#T$?_c@0Jnz~BkIfLYQ- zV$crX_f5b2F7-?O_}~Wmr+dI-Oiu41uklO*_=h>V{2{;BM%Z$Bd|k0Y}H_vGLF?&3}gj0#MS99c?y0xn=CPnHtDfWziU0Tw1+XP^k5 xfGd#X7jWF1C8Ww?u*d?cRuhw80suubAR7Px delta 163 zcmdmIu+LyaGUMb{Muo}Aj7poAGIH=tX5=&D;9yW-P+$~rp1g+FQoxm4fI&c83M8Vz z#2_HO*@W*9BP+KfvjETJ-~8_4E((kaOpY8`N_+wiU?xwN62E}c=12h+CSF&d2%mr> vkmMI|-kc?*&ny5^&){g11y;=>;52!qXqK?60y9L=5zMg20;*OMlVAb>o4_97 diff --git a/test/features/composability/scenarios-promises/forwarder_call_sync_retrieve_egld_bt.scen.json b/test/features/composability/scenarios/forwarder_call_sync_retrieve_egld_bt.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/forwarder_call_sync_retrieve_egld_bt.scen.json rename to test/features/composability/scenarios/forwarder_call_sync_retrieve_egld_bt.scen.json diff --git a/test/features/composability/scenarios-promises/forwarder_call_sync_retrieve_esdt_bt.scen.json b/test/features/composability/scenarios/forwarder_call_sync_retrieve_esdt_bt.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/forwarder_call_sync_retrieve_esdt_bt.scen.json rename to test/features/composability/scenarios/forwarder_call_sync_retrieve_esdt_bt.scen.json diff --git a/test/features/composability/scenarios-promises/forwarder_call_sync_retrieve_nft_bt.scen.json b/test/features/composability/scenarios/forwarder_call_sync_retrieve_nft_bt.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/forwarder_call_sync_retrieve_nft_bt.scen.json rename to test/features/composability/scenarios/forwarder_call_sync_retrieve_nft_bt.scen.json diff --git a/test/features/composability/scenarios-promises/promises_call_async_accept_egld.scen.json b/test/features/composability/scenarios/promises_call_async_accept_egld.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_call_async_accept_egld.scen.json rename to test/features/composability/scenarios/promises_call_async_accept_egld.scen.json diff --git a/test/features/composability/scenarios-promises/promises_call_async_accept_esdt.scen.json b/test/features/composability/scenarios/promises_call_async_accept_esdt.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_call_async_accept_esdt.scen.json rename to test/features/composability/scenarios/promises_call_async_accept_esdt.scen.json diff --git a/test/features/composability/scenarios-promises/promises_call_async_retrieve_egld.scen.json b/test/features/composability/scenarios/promises_call_async_retrieve_egld.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_call_async_retrieve_egld.scen.json rename to test/features/composability/scenarios/promises_call_async_retrieve_egld.scen.json diff --git a/test/features/composability/scenarios-promises/promises_call_async_retrieve_esdt.scen.json b/test/features/composability/scenarios/promises_call_async_retrieve_esdt.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_call_async_retrieve_esdt.scen.json rename to test/features/composability/scenarios/promises_call_async_retrieve_esdt.scen.json diff --git a/test/features/composability/scenarios-promises/promises_call_callback_directly.scen.json b/test/features/composability/scenarios/promises_call_callback_directly.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_call_callback_directly.scen.json rename to test/features/composability/scenarios/promises_call_callback_directly.scen.json diff --git a/test/features/composability/scenarios-promises/promises_multi_transfer.scen.json b/test/features/composability/scenarios/promises_multi_transfer.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_multi_transfer.scen.json rename to test/features/composability/scenarios/promises_multi_transfer.scen.json diff --git a/test/features/composability/scenarios-promises/promises_single_transfer.scen.json b/test/features/composability/scenarios/promises_single_transfer.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_single_transfer.scen.json rename to test/features/composability/scenarios/promises_single_transfer.scen.json diff --git a/test/features/composability/scenarios-promises/promises_single_transfer_gas1.scen.json b/test/features/composability/scenarios/promises_single_transfer_gas1.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_single_transfer_gas1.scen.json rename to test/features/composability/scenarios/promises_single_transfer_gas1.scen.json diff --git a/test/features/composability/scenarios-promises/promises_single_transfer_gas2.scen.json b/test/features/composability/scenarios/promises_single_transfer_gas2.scen.json similarity index 100% rename from test/features/composability/scenarios-promises/promises_single_transfer_gas2.scen.json rename to test/features/composability/scenarios/promises_single_transfer_gas2.scen.json diff --git a/test/features/composability/vault/output/vault-promises.wasm b/test/features/composability/vault/output/vault-promises.wasm index 89da5d0a15a280153a4881de123e00554fae5f65..0d0cdc465e08648c9e495bea3396cc69a52a0b8a 100755 GIT binary patch delta 248 zcmca$f5CpkPNvCcnPdfcbDc`l(o&1uGV?NvGZAn(;K-3B;5eC6#GTP`a-fJXo0t^0EhE$9_oCvH8%4wz9VX8ZaRQRJ zMcjerGiWd|0L=$dECOPi4Mo?2%)T$Fz^Dtl8U=Xko bh(P9q3)pYgkxpU+8rm-dv|#fx87*c2wa7Jx delta 248 zcmca$f5CpkP9_1~T&L2swA3QE%)HFv3xo(5U>%5 aK<0!CIBwRFPGSTa+AjmNVDmB=EoK0>RyC0T diff --git a/test/features/composability/vault/output/vault.wasm b/test/features/composability/vault/output/vault.wasm index e44652aa7d2b7f350b7cba1a444ea680157c3b7e..e8fd6d04e1ede220f7186d305787e7a53dd17005 100755 GIT binary patch delta 1026 zcmZuvO>7Kd82-L*r@OPA+4h~?o!Rbee`dzElr&|d+o=}&ZJTaWqVW?E2ZD5~BbuVb zO+(@!xV$HECx|GVHWC~zN-!immlS0R3JsJRK6BO6c`H9R^4 zn8r1DO|TWCiz>b}4)6(tbeZB>`VyV5(o@|&O`^a-qSap(KouZ>zNQdBgBLR+dA&sQh+Sm2I#c4tauDS0xW%Z%DW-R4Steup8GhTetnm`1fbjiqs&X z3X;JX41#HEJGsDBGlw%-i&wFptoaUH8LU;g*8RFYwjT-KAA&&2XpaN>!|T@{NB-%_NC@3a(P+RhzhMO_1K&*R>qrg#3hUsn4mKOO>*l&bz#VPxJY_uQQEl|H;FT`2kWH>~7L-(7r!HWCCq36q5_p{9iaZZ=L8y2LMT+_-1} delta 1019 zcmZvaL2L|B7{}jxJ9cL~)B3uzJKLS@*38&#EZLOO9qktTwvCk%O%M_X(n^<(Xs8l5 z4T%H7;X8?gIEXlCD(gzza1h5{oE&hLNO0kMyA_qVy!YmN-~8YA|9#(LWwEk6A@I6z zaZ30WoU2`GG-l@OGYbc1=1wo1VH!RV4!#pP=v=+qJ3BXfkuI8_M48*sD358n5P}I! zaL)CPNGxVH2emgEPR9$ez~qMEMsOg$9q-2L_){`BhAZe-Fu>+`&lVVeX43r}?P zt*^O!lhC!Q+Dx$VR>wVDG71|5S4ar+%;;oLbkyTefWS~ik$`X`B>lx`;IXdx<~MVi z<3aOr^KI8C=N3kx&#AehtxKEf@iiK_8?rpW<1p1*_cXE;g$XZ4WhX;=Q&&rG2z6Y6 z*Od04J4cEyx)1R&ghZLn^~7abUnchT1yqR!hlxV5EPxasg#NZYfB^H>FyDzMtPHpD ziZxgo@>QdRO04k%+~p_7arg2WYT>$bmt{CnAYs?8=V8H~aJ z*p9J_3w)JI<7Cq2Rcs_{v_44|sMz;Ok3cKx1e!LDK>teicU$uO1qpjKD!@}nEi9)3 zK7wbjYoMD34D=4fD<$h{Ef%u#n;=`D;)8uc+KIvFeBN57BWnohDsY%idrA9qk zvP+cu!45j9qwYGQC8(8S=%#PltM&jYFyO6&q8Fhn3ty$j{!A0)w!|RxwbnE_J-3a3 zGNY}Du<%(=osZ*>o(+jW8lEN>7j=WI(4^8En=|?9c>CP)qRtwO(HetsDAK?_zpfL% zblYkmT5ytJDKCl>9q~@a<278)WHN!t3}*c2Km3>}5oK`th~0qmaG06_46>5LD9I1P m5!hoSRDgOVA5rgp>iwF~4GL{gA&h6YD5lvGx0|Q3Iq@53N4J&$ diff --git a/test/features/esdt-system-sc-mock/output/esdt-system-sc-mock.wasm b/test/features/esdt-system-sc-mock/output/esdt-system-sc-mock.wasm index d6e0fde6a821f06218d6806b10f8de9145c999b8..cda13bb2cafe76814a63ba9a578d63ad648641cf 100755 GIT binary patch delta 355 zcmW-azfJ-{5Qk^>{=f-$J4T5Z2@VGVGyx81FwulFS{M^~1qvH6G!_~Y<262jW?#Y5 z#%%9P*hpb#?F-nrd(G_R+u!e-ReRNbo`-IhWsflT%#&sB%R5xA*it{pdPjuldom!u zsQb>FQ1wEs%!nE7#x6TFP@n#J;|0;lnvl|U?6p8l&4)YF?uE zUHJEv$SUeF90P4KlmcKNsb_^(u`OdK4Q3&v&@hG+7}Mgyh(@}+<_IKBLX~BkCJOIjUMzW2CXF$`&T-NKQ=eR?hZpZ<2?mHgsan vjSWh2G_mNAeJ)UU*d*|6dFw#^#6O{pbrj5C5 z8Xv-4)A$}{?TjIhrwkpzb~QPq9fPPqu|;)8N>v;+v8(o@p~+oG<1L#T7ShN{ho&wy tC@s*?qCJ*eqOSUl2AHV^E!FJfPbiFuHBN0v9a9Ip`igu+(szsB_z&MIL0$j= diff --git a/test/features/formatted-message-features/output/formatted-message-features.wasm b/test/features/formatted-message-features/output/formatted-message-features.wasm index 49cc0c0f1999588a864b6cbe735c01dda23049c7..574c8a25ca61a09bd69e1fbdd442992f7354a56d 100755 GIT binary patch delta 53 zcmdn3v|DL|GUMb_M#;&_j82>D7=2lJIi(aBxYZdM>l_&bxHsQmJIlt%wRssYJ0m0a J=5>6%OaOR=4PyWR delta 53 zcmdn3v|DL|GUH?$MyJWjjFOw{7=2lJxup~sxYZdM>l_&bxHjKlJIlt%xp^5cJ0m04 J=5>6%OaO8X4LJY+ diff --git a/test/multisig/output/multisig-full.wasm b/test/multisig/output/multisig-full.wasm index 1b092f46a0128414f2a0803a820f6394f82d425b..72fecea9ddd4f59a4139bf6af79a54668de265a9 100755 GIT binary patch delta 1115 zcmaKrO=uHQ5XaxV-8M-#Z6`JrZKK^pO`^52tu-`h3VB6HQ>iv>WBtO5h!AfIDxwsz z8nD{hjztiv=tUGoVb2z%7r}xaL=dTX(VO19i8{MUs)D!+v$OC0=KW{hyhlZ#B0Sx$ z`vnLg^lESmm&*nAD{3gCx4S(ap5VtC*K<{k1Ex^kf(h7e)Cf~xKf43;$umI@8tbgn zHAf^Iu-<#`$iT{U)~E*<$4wz%-rr<`F+`K~X$m9KmHHuy;}vrG%vdfcO;F!1yHza? zd%?g&P-4P}OWhQvj7wp7Szo>U7(xANdH&HIAR0ILeD zGXj0y((5l1-aiTJTqF%J zM$e+{kh8uic+q)%lPMC!KNiLKN_N$z5Xi290zai8#@EDYU8_R|?Q7 zaF@+4cif9PZ1rDkIa0%Gj$%bBeVjuccV^w?{!G!2&f6uevdI4e7q`zqp7LEqn6Z|- z=74`r#`kc&i}6dq4b67%WINTJh77&xUJdi~xqEa?rd0f)QUhO$f|4irXw1`aBF#HS ziCMPcWSH$>GS0VPA{hV}p}RdP$kB(MZ7@uAsV9607g8~{Us8iC+|#R?^Fd7kw@2qo U%eRxyAv@eYi9^=S-tSev09u0Tf<+Ob z8n9Y_#wrL_RM3l}um?|8L=S?3BH~39JycJ6^Csf#Ch_Ou9_G#4`M&voR0Jx*{q=ey z2>$eHaDu}j91aJF8lXYF(7K={h!cnU8g&T92 z^nly#whRUs631~fJ;Gox7nBC5?56{?Wdj2+M{@x`z4q64)Cx?rSoz@~Cf$E-tNGSom7fT4vUr+%U`YDpU*6=h%fWfh zyTXl1x*52{T}!rhKqO*SE22{175mhgpS6B)$~atU{chT`GHyOyIioKlFf=xuw+DbyL&Uc)|X!o{0ipEU7P8Jwsz%yCODQFHx(?yb?jHfO{q=?8(aMkw#?MF&$(1HNA-gr~1^2iJ+!{$HUvG_>J){ Pvclt&IA&h%`%(1^NVew9 diff --git a/test/multisig/output/multisig-view.wasm b/test/multisig/output/multisig-view.wasm index 7e83e7cfec07e26000385f481bf223c19ef81781..f5e9ea29d65dbdc963c2629333cad3b981562f24 100755 GIT binary patch delta 147 zcmbPiGudWC6B9EdBiH6urb$eUj+-S|JJ{Kz859@<9452!DomBS8+u~zsc$1hKzojXNoUpV)UQvDCGnsTcko511H~?nPS2>=YUCgcDB delta 166 zcmbPiGudWC6B9ERBje^)rb$eU_M0VGJJ_Y-n3(Dr>y#NB1+tYGRTvZ)ofyoSITRQK z949~Kab=Tc05g~IC{NbljbwD(+{DWP(%a4dn2FJCvXxNx=3hd2jEoMGGe!0@I&9Vy z)R~}hX4LUt=t?4^;}2m}1R*V?1}YFrD%^wf?V06s1`ws!bO5D!cDYnQJXsV&O|BEEY3aWeBXDz^X_HV#@5E3 zBsCorpBvoRrX_Vn{JhR3?TZGzc-s322GH+2gb#hYd_KiiSgQ@J15Mu%T=m^GO={U- ztE`K095NEPWK_dpd}cII{AvVo*tDPrubKhqbymy)z0X72$lYP=e zR0-jDY31%#qT~c(FbObGT7pN*ZqhniWqSZmGCz8(Q+UJj;svWB-b^-3*n~-7D`M87 zJT=m{i-w1i4qM@7hLRJQwNmH~6sb$#SbQVfK9 zi~A(?{j`VcEFDz2%2Ieae6C!MV11&)f1@t$BJ^i?gtQ}(FvW$)2=qALB3`XN3#P~5 zK=+lUAiijbX_o0WxVp2a8(iFL78B9peqswQ)uX0n@PZs!;qR0T*G8$j4W`TB`oH?B z!QJ_OZbS<%MQir{y?_{goH#A`Hu^G2FDmT@#iQno*>#b5J3l=r8V`Bdtf*8rEn&W) zWY{%)ReL5Pm9CtuAg|d$ej&-nV)tW`tZyUdr7D}0b~&m1N-{VQPkBfqE@~dH#Fuk! zd7J+#8xxC=#@C5yn8CriIeLtZx_tm$_`SZJ{GD6rVRc&iI@BMzi_xt|vEsrmc zKS(L6+YKQ3ut!O$UP*lRIpwngLpb8S2YC$mdhxE0`FxTov2GLC9@KpYaLIQIN3?{l zQ`-bnX8nv~QEP$$e57?y{GvtislO3R{x}A70|v2K55tf>pzjBJ-G5fb?{xwDBzvV| zZ>R=y!ClBg5s2eLa4$^Z`(PL+g4KS%#99qu!Ma%zlR+cobsX6oXlw(sWQoP`UvO@T7Q+5_b<|L7YXpf2tr^k;08w4+vx;=DBqgZ5X;tF)Iu_h=mGyh;?rjt()!(A^rB|L&<87w1~S zWW0Ka*n&&-n67BNs!W#n8>zsRF{-YE?$WsWufD8tccot*k;a91Q_Y_X5W|Owlg8Ka z=P9~T$1X1}wQS6$Mdt1McxTJSdM}$4mCR-xn6F9&b{Su^oUk0Ft1PRkX#OHUbI6BV zZ?`&RbrZQFmDv@?t}JzSNe0b{jE6MhpeFD_qEvRP*!)-7nJhvUUnZwu4)blZbQ!B{ o+W`9UTYH)wVrR!1y{Fn#3&nxdAW<>J-Px#%1IyVTQlF}R0dzp!asU7T diff --git a/test/ping-pong-egld/output/ping-pong-egld.wasm b/test/ping-pong-egld/output/ping-pong-egld.wasm index 7d35c0527221a5088a3795b5f71eb564a762ee63..36e43940dc97a416c63209973a2102662e577425 100755 GIT binary patch delta 376 zcmYL@yGjF55Qfj3jk3vJG9h;_c-%x#4A?}82*IVN5$(h&^~0T432*SMQ&>Vpm7esL7N2s zMtcq=st&`D!)3T0+LXgnUE1jR7kWz*0-!4xt~=oN)nM}1VtTc5fSkvExNRIau7kfl~N~ha41%~ba9ZI zT^zI^ijYzN0MSVtoZJKj2mb_pDZ+8w@!fZK{X)NRw+7MN!G68fI=i(YPAiZPj-bFz zPyiIp0c0rA;9hx+q!;@i7HGi1s7^v@pH^!IKaZ$knpRk3d9oA9Hto| zo0e)aE4wVfvG|m31{YoKFb8lr>u^*F^s#7Yz!f$0Jt)(o?#leFFVL=8v?LOpjw+0B ztva|zj*$bOR*hNMqJ}XAB|0@mWPNG0wQ&CbN18YDiEy>FW;kzzh^y%~#9>06lCI A@Bjb+ delta 107 zcmbQIG*4;6Q)VVs=FQKU1({5Z1oXLu85!#ZRFxPUr!;doG6)DrDKK#JL&O*r7zBi* z6d1XA83YW0;tGrc8Up&8b=g{2*^L#LfLw#kJ3s~)Z9c