From cc7ab9afaab1cd8c783c0e45ea95b41509905d63 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 2 Jun 2025 16:05:30 +0300 Subject: [PATCH 1/3] mandos tests - multi egld --- ...r_call_async_multi_transfer_egld.scen.json | 88 ++++++++++++ ..._exec_accept_multi_transfer_egld.scen.json | 2 +- ...ccept_multi_transfer_egld_failed.scen.json | 136 ++++++++++++++++++ .../tests/composability_scenario_go_test.rs | 5 + .../tests/composability_scenario_rs_test.rs | 6 + 5 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 contracts/feature-tests/composability/scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json diff --git a/contracts/feature-tests/composability/scenarios/forwarder_call_async_multi_transfer_egld.scen.json b/contracts/feature-tests/composability/scenarios/forwarder_call_async_multi_transfer_egld.scen.json index fc01bacbc7..37c529aaa2 100644 --- a/contracts/feature-tests/composability/scenarios/forwarder_call_async_multi_transfer_egld.scen.json +++ b/contracts/feature-tests/composability/scenarios/forwarder_call_async_multi_transfer_egld.scen.json @@ -72,6 +72,94 @@ "refund": "*" } }, + { + "step": "checkState", + "accounts": { + "address:a_user": { + "nonce": "*", + "balance": "0", + "storage": {}, + "code": "" + }, + "sc:vault": { + "nonce": "0", + "balance": "100", + "esdt": { + "str:FWD-TOKEN": "800", + "str:NFT-123456": { + "instances": [ + { + "nonce": "1", + "balance": "1" + } + ] + }, + "str:SFT-456789": { + "instances": [ + { + "nonce": "3", + "balance": "6" + } + ] + } + }, + "storage": { + "str:call_counts|nested:str:accept_funds": "1" + }, + "code": "mxsc:../vault/output/vault.mxsc.json" + }, + "sc:forwarder": { + "nonce": "0", + "balance": "3900", + "esdt": { + "str:FWD-TOKEN": "200", + "str:SFT-456789": { + "instances": [ + { + "nonce": "3", + "balance": "4" + } + ] + } + }, + "code": "mxsc:../forwarder/output/forwarder.mxsc.json" + } + } + }, + { + "step": "scCall", + "id": "2", + "comment": "send all types", + "tx": { + "from": "address:a_user", + "to": "sc:forwarder", + "function": "send_async_accept_multi_transfer", + "arguments": [ + "sc:vault", + "str:FWD-TOKEN", + "0", + "800", + "str:NFT-123456", + "1", + "1", + "str:EGLD-000000", + "0", + "4100", + "str:SFT-456789", + "3", + "6" + ], + "gasLimit": "80,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "0", + "message": "", + "gas": "*", + "refund": "*" + } + }, { "step": "checkState", "accounts": { diff --git a/contracts/feature-tests/composability/scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json b/contracts/feature-tests/composability/scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json index 24e0cc947c..a6c510a876 100644 --- a/contracts/feature-tests/composability/scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json +++ b/contracts/feature-tests/composability/scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json @@ -298,4 +298,4 @@ } } ] -} +} \ No newline at end of file diff --git a/contracts/feature-tests/composability/scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json b/contracts/feature-tests/composability/scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json new file mode 100644 index 0000000000..e8cb49c518 --- /dev/null +++ b/contracts/feature-tests/composability/scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json @@ -0,0 +1,136 @@ +{ + "gasSchedule": "v3", + "steps": [ + { + "step": "setState", + "accounts": { + "address:a_user": { + "nonce": "0", + "balance": "0" + }, + "sc:forwarder": { + "nonce": "0", + "balance": "1000", + "esdt": { + "str:FWD-TOKEN": "100", + "str:NFT-123456": { + "instances": [ + { + "nonce": "1", + "balance": "1" + } + ] + }, + "str:SFT-456789": { + "instances": [ + { + "nonce": "3", + "balance": "10" + } + ] + } + }, + "code": "mxsc:../forwarder/output/forwarder.mxsc.json" + }, + "sc:vault": { + "nonce": "0", + "balance": "0", + "code": "mxsc:../vault/output/vault.mxsc.json" + } + } + }, + { + "step": "scCall", + "id": "1", + "comment": "failed sending EGLD+ESDT", + "tx": { + "from": "address:a_user", + "to": "sc:forwarder", + "function": "transf_exec_multi_accept_funds", + "arguments": [ + "sc:vault", + "str:FWD-TOKEN", + "0", + "10", + "str:EGLD", + "0", + "1001" + ], + "gasLimit": "1,400,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "10", + "message": "str:insufficient funds for token EGLD-000000", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "address:a_user": { + "nonce": "*", + "balance": "0", + "storage": {}, + "code": "" + }, + "sc:vault": { + "nonce": "0", + "balance": "0", + "esdt": { + "str:FWD-TOKEN": "0", + "str:NFT-123456": { + "instances": [ + { + "nonce": "1", + "balance": "0" + } + ] + }, + "str:SFT-456789": { + "instances": [ + { + "nonce": "3", + "balance": "0" + } + ] + } + }, + "storage": { + "str:call_counts|nested:str:accept_funds": "0" + }, + "code": "mxsc:../vault/output/vault.mxsc.json" + }, + "sc:forwarder": { + "nonce": "0", + "balance": "1000", + "esdt": { + "str:FWD-TOKEN": "100", + "str:SFT-456789": { + "instances": [ + { + "nonce": "3", + "balance": "10" + } + ] + }, + "str:NFT-123456": { + "instances": [ + { + "nonce": "1", + "balance": "1" + } + ] + } + }, + "storage": { + "str:call_counts|nested:str:accept_funds": "0" + }, + "code": "mxsc:../forwarder/output/forwarder.mxsc.json" + } + } + } + ] +} \ No newline at end of file diff --git a/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs b/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs index f3181e59b2..6ef03f6dc6 100644 --- a/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs +++ b/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs @@ -309,6 +309,11 @@ fn forwarder_call_transf_exec_accept_multi_transfer_egld_go() { world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json"); } +#[test] +fn forwarder_call_transf_exec_accept_multi_transfer_egld_failed_go() { + world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json"); +} + #[test] fn forwarder_call_transf_exec_accept_nft_go() { world().run("scenarios/forwarder_call_transf_exec_accept_nft.scen.json"); diff --git a/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs b/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs index 2dc13e3b95..55554d8688 100644 --- a/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs +++ b/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs @@ -363,6 +363,12 @@ fn forwarder_call_transf_exec_accept_multi_transfer_egld_rs() { world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json"); } +#[test] +#[ignore = "failed - tx"] +fn forwarder_call_transf_exec_accept_multi_transfer_egld_failed_rs() { + world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json"); +} + #[test] fn forwarder_call_transf_exec_accept_nft_rs() { world().run("scenarios/forwarder_call_transf_exec_accept_nft.scen.json"); From e6c0e49b03930c1298896a5f6a340a23a2eddef6 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 3 Jun 2025 17:49:24 +0300 Subject: [PATCH 2/3] mandos test - callback --- .../src/fwd_call_promises.rs | 40 ++++++++++ .../promises-features/wasm/src/lib.rs | 8 +- ...ransfer_callback_call_value_egld.scen.json | 78 +++++++++++++++++++ .../tests/composability_scenario_go_test.rs | 5 ++ .../tests/composability_scenario_rs_test.rs | 5 ++ 5 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 contracts/feature-tests/composability/scenarios/promises_call_transfer_callback_call_value_egld.scen.json diff --git a/contracts/feature-tests/composability/promises-features/src/fwd_call_promises.rs b/contracts/feature-tests/composability/promises-features/src/fwd_call_promises.rs index 9b2f8ce06a..cf16db87fb 100644 --- a/contracts/feature-tests/composability/promises-features/src/fwd_call_promises.rs +++ b/contracts/feature-tests/composability/promises-features/src/fwd_call_promises.rs @@ -85,6 +85,46 @@ pub trait CallPromisesModule: common::CommonModule { .register_promise(); } + #[endpoint] + #[payable("*")] + fn forward_payment_gas_for_raw_async_callback( + &self, + to: ManagedAddress, + value: BigUint, + original_caller: ManagedAddress, + ) { + let payment = self.call_value().any_payment(); + let half_gas = self.blockchain().get_gas_left() / 3; + + self.tx() + .to(&to) + .gas(half_gas) + .payment(payment) + .callback(self.callbacks().raw_async_callback(original_caller, value)) + .gas_for_callback(half_gas) + .register_promise(); + } + + #[promises_callback] + fn raw_async_callback( + &self, + original_caller: ManagedAddress, + original_egld_value: BigUint, + #[call_result] result: ManagedAsyncCallResult, + ) { + match result { + ManagedAsyncCallResult::Ok(_) => { + let egld_amount = self.call_value().egld_direct_non_strict().clone_value(); + self.send() + .direct_non_zero_egld(&original_caller, &egld_amount); + }, + ManagedAsyncCallResult::Err(_) => { + self.send() + .direct_non_zero_egld(&original_caller, &original_egld_value); + }, + } + } + #[promises_callback] fn transfer_callback(&self, #[call_result] result: MultiValueEncoded) { self.callback_result(result); diff --git a/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs b/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs index 4c32f310be..985686c474 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs @@ -5,10 +5,10 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 14 +// Endpoints: 15 // Async Callback (empty): 1 -// Promise callbacks: 5 -// Total number of exported functions: 21 +// Promise callbacks: 6 +// Total number of exported functions: 23 #![no_std] @@ -26,6 +26,7 @@ multiversx_sc_wasm_adapter::endpoints! { forward_promise_retrieve_funds => forward_promise_retrieve_funds forward_payment_callback => forward_payment_callback forward_payment_gas_for_callback => forward_payment_gas_for_callback + forward_payment_gas_for_raw_async_callback => forward_payment_gas_for_raw_async_callback promise_raw_single_token_to_user => promise_raw_single_token_to_user promise_raw_single_token => promise_raw_single_token promise_raw_multi_transfer => promise_raw_multi_transfer @@ -34,6 +35,7 @@ multiversx_sc_wasm_adapter::endpoints! { forward_sync_retrieve_funds_bt_twice => forward_sync_retrieve_funds_bt_twice forward_promise_retrieve_funds_back_transfers => forward_promise_retrieve_funds_back_transfers retrieve_funds_callback => retrieve_funds_callback + raw_async_callback => raw_async_callback transfer_callback => transfer_callback the_one_callback => the_one_callback retrieve_esdt_callback => retrieve_esdt_callback diff --git a/contracts/feature-tests/composability/scenarios/promises_call_transfer_callback_call_value_egld.scen.json b/contracts/feature-tests/composability/scenarios/promises_call_transfer_callback_call_value_egld.scen.json new file mode 100644 index 0000000000..9e3aef0c07 --- /dev/null +++ b/contracts/feature-tests/composability/scenarios/promises_call_transfer_callback_call_value_egld.scen.json @@ -0,0 +1,78 @@ +{ + "steps": [ + { + "step": "setState", + "accounts": { + "address:a_user": { + "nonce": "0", + "balance": "100" + }, + "address:b_user": { + "nonce": "0", + "balance": "0" + }, + "sc:vault": { + "nonce": "0", + "balance": "0", + "code": "mxsc:../vault/output/vault.mxsc.json" + }, + "sc:forwarder": { + "nonce": "0", + "balance": "50", + "code": "mxsc:../promises-features/output/promises-features.mxsc.json" + } + } + }, + { + "step": "scCall", + "id": "1", + "tx": { + "from": "address:a_user", + "to": "sc:forwarder", + "egldValue": "75", + "function": "forward_payment_gas_for_raw_async_callback", + "arguments": [ + "sc:vault", + "10", + "address:b_user" + ], + "gasLimit": "60,000,000", + "gasPrice": "0" + }, + "expect": { + "out": [], + "status": "10", + "message": "*", + "gas": "*", + "refund": "*" + } + }, + { + "step": "checkState", + "accounts": { + "address:a_user": { + "nonce": "*", + "balance": "25", + "storage": {}, + "code": "" + }, + "address:b_user": { + "nonce": "*", + "balance": "75", + "storage": {}, + "code": "" + }, + "sc:vault": { + "nonce": "0", + "balance": "0", + "code": "mxsc:../vault/output/vault.mxsc.json" + }, + "sc:forwarder": { + "nonce": "0", + "balance": "50", + "code": "mxsc:../promises-features/output/promises-features.mxsc.json" + } + } + } + ] +} \ No newline at end of file diff --git a/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs b/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs index 6ef03f6dc6..f9017ed3e0 100644 --- a/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs +++ b/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs @@ -467,6 +467,11 @@ fn promises_call_transfer_callback_egld_go() { world().run("scenarios/promises_call_transfer_callback_egld.scen.json"); } +#[test] +fn promises_call_transfer_callback_call_value_egld_go() { + world().run("scenarios/promises_call_transfer_callback_call_value_egld.scen.json"); +} + #[test] fn promises_call_transfer_callback_esdt_go() { world().run("scenarios/promises_call_transfer_callback_esdt.scen.json"); diff --git a/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs b/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs index 55554d8688..ec4a15a6b4 100644 --- a/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs +++ b/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs @@ -519,6 +519,11 @@ fn promises_call_transfer_callback_egld_rs() { world().run("scenarios/promises_call_transfer_callback_egld.scen.json"); } +#[test] +fn promises_call_transfer_callback_call_value_egld_rs() { + world().run("scenarios/promises_call_transfer_callback_call_value_egld.scen.json"); +} + #[test] fn promises_call_transfer_callback_esdt_rs() { world().run("scenarios/promises_call_transfer_callback_esdt.scen.json"); From 898638c7cc35d0d0ade27c49141d3d4f3fa71e57 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 4 Jun 2025 12:58:05 +0300 Subject: [PATCH 3/3] storage check --- .../src/fwd_call_promises.rs | 33 +- .../promises-features/wasm/src/lib.rs | 6 +- ...ransfer_callback_call_value_egld.scen.json | 43 +- .../tests/composability_scenario_go_test.rs | 1128 +++++++-------- .../tests/composability_scenario_rs_test.rs | 1258 ++++++++--------- 5 files changed, 1230 insertions(+), 1238 deletions(-) diff --git a/contracts/feature-tests/composability/promises-features/src/fwd_call_promises.rs b/contracts/feature-tests/composability/promises-features/src/fwd_call_promises.rs index cf16db87fb..cf431aaa77 100644 --- a/contracts/feature-tests/composability/promises-features/src/fwd_call_promises.rs +++ b/contracts/feature-tests/composability/promises-features/src/fwd_call_promises.rs @@ -1,4 +1,4 @@ -multiversx_sc::imports!(); +use multiversx_sc::imports::*; use crate::{ common::{self, CallbackData}, @@ -90,9 +90,10 @@ pub trait CallPromisesModule: common::CommonModule { fn forward_payment_gas_for_raw_async_callback( &self, to: ManagedAddress, - value: BigUint, original_caller: ManagedAddress, + value: BigUint, ) { + self.promise_check().set(value); let payment = self.call_value().any_payment(); let half_gas = self.blockchain().get_gas_left() / 3; @@ -100,7 +101,7 @@ pub trait CallPromisesModule: common::CommonModule { .to(&to) .gas(half_gas) .payment(payment) - .callback(self.callbacks().raw_async_callback(original_caller, value)) + .callback(self.callbacks().raw_async_callback(original_caller)) .gas_for_callback(half_gas) .register_promise(); } @@ -109,20 +110,12 @@ pub trait CallPromisesModule: common::CommonModule { fn raw_async_callback( &self, original_caller: ManagedAddress, - original_egld_value: BigUint, - #[call_result] result: ManagedAsyncCallResult, + #[call_result] _result: ManagedAsyncCallResult, ) { - match result { - ManagedAsyncCallResult::Ok(_) => { - let egld_amount = self.call_value().egld_direct_non_strict().clone_value(); - self.send() - .direct_non_zero_egld(&original_caller, &egld_amount); - }, - ManagedAsyncCallResult::Err(_) => { - self.send() - .direct_non_zero_egld(&original_caller, &original_egld_value); - }, - } + let egld_amount = self.call_value().egld_direct_non_strict().clone_value(); + self.error_check().set(BigUint::from(33u64)); + self.send() + .direct_non_zero_egld(&original_caller, &egld_amount); } #[promises_callback] @@ -156,4 +149,12 @@ pub trait CallPromisesModule: common::CommonModule { }, } } + + #[view(errorCheck)] + #[storage_mapper("errorCheck")] + fn error_check(&self) -> SingleValueMapper; + + #[view(promiseCheck)] + #[storage_mapper("promiseCheck")] + fn promise_check(&self) -> SingleValueMapper; } diff --git a/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs b/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs index 985686c474..a3eb98c0f1 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs @@ -5,10 +5,10 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 15 +// Endpoints: 17 // Async Callback (empty): 1 // Promise callbacks: 6 -// Total number of exported functions: 23 +// Total number of exported functions: 25 #![no_std] @@ -27,6 +27,8 @@ multiversx_sc_wasm_adapter::endpoints! { forward_payment_callback => forward_payment_callback forward_payment_gas_for_callback => forward_payment_gas_for_callback forward_payment_gas_for_raw_async_callback => forward_payment_gas_for_raw_async_callback + errorCheck => error_check + promiseCheck => promise_check promise_raw_single_token_to_user => promise_raw_single_token_to_user promise_raw_single_token => promise_raw_single_token promise_raw_multi_transfer => promise_raw_multi_transfer diff --git a/contracts/feature-tests/composability/scenarios/promises_call_transfer_callback_call_value_egld.scen.json b/contracts/feature-tests/composability/scenarios/promises_call_transfer_callback_call_value_egld.scen.json index 9e3aef0c07..8a405e5ecf 100644 --- a/contracts/feature-tests/composability/scenarios/promises_call_transfer_callback_call_value_egld.scen.json +++ b/contracts/feature-tests/composability/scenarios/promises_call_transfer_callback_call_value_egld.scen.json @@ -18,7 +18,7 @@ }, "sc:forwarder": { "nonce": "0", - "balance": "50", + "balance": "100", "code": "mxsc:../promises-features/output/promises-features.mxsc.json" } } @@ -33,8 +33,8 @@ "function": "forward_payment_gas_for_raw_async_callback", "arguments": [ "sc:vault", - "10", - "address:b_user" + "address:b_user", + "11" ], "gasLimit": "60,000,000", "gasPrice": "0" @@ -48,30 +48,19 @@ } }, { - "step": "checkState", - "accounts": { - "address:a_user": { - "nonce": "*", - "balance": "25", - "storage": {}, - "code": "" - }, - "address:b_user": { - "nonce": "*", - "balance": "75", - "storage": {}, - "code": "" - }, - "sc:vault": { - "nonce": "0", - "balance": "0", - "code": "mxsc:../vault/output/vault.mxsc.json" - }, - "sc:forwarder": { - "nonce": "0", - "balance": "50", - "code": "mxsc:../promises-features/output/promises-features.mxsc.json" - } + "step": "scQuery", + "id": "2", + "tx": { + "to": "sc:forwarder", + "function": "promiseCheck", + "arguments": [] + }, + "expect": { + "out": [ + "11" + ], + "status": "", + "logs": [] } } ] diff --git a/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs b/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs index f9017ed3e0..84657c7314 100644 --- a/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs +++ b/contracts/feature-tests/composability/tests/composability_scenario_go_test.rs @@ -4,573 +4,573 @@ fn world() -> ScenarioWorld { ScenarioWorld::vm_go() } -#[test] -fn builtin_func_delete_user_name_go() { - world().run("scenarios/builtin_func_delete_user_name.scen.json"); -} - -#[test] -fn builtin_func_set_user_name_go() { - world().run("scenarios/builtin_func_set_user_name.scen.json"); -} - -#[test] -fn forw_queue_async_go() { - world().run("scenarios/forw_queue_async.scen.json"); -} - -#[test] -fn forw_raw_async_accept_egld_go() { - world().run("scenarios/forw_raw_async_accept_egld.scen.json"); -} - -#[test] -fn forw_raw_async_accept_esdt_go() { - world().run("scenarios/forw_raw_async_accept_esdt.scen.json"); -} - -#[test] -fn forw_raw_async_echo_go() { - world().run("scenarios/forw_raw_async_echo.scen.json"); -} - -#[test] -fn forw_raw_async_send_and_retrieve_multi_transfer_funds_go() { - world().run("scenarios/forw_raw_async_send_and_retrieve_multi_transfer_funds.scen.json"); -} - -#[test] -fn forw_raw_builtin_nft_local_mint_via_async_call_go() { - world().run("scenarios/forw_raw_builtin_nft_local_mint_via_async_call.scen.json"); -} - -#[test] -fn forw_raw_builtin_nft_local_mint_via_sync_call_go() { - world().run("scenarios/forw_raw_builtin_nft_local_mint_via_sync_call.scen.json"); -} - -#[test] -fn forw_raw_call_async_retrieve_multi_transfer_go() { - world().run("scenarios/forw_raw_call_async_retrieve_multi_transfer.scen.json"); -} - -#[test] -fn forw_raw_contract_deploy_go() { - world().run("scenarios/forw_raw_contract_deploy.scen.json"); -} - -#[test] -fn forw_raw_contract_upgrade_go() { - world().run("scenarios/forw_raw_contract_upgrade.scen.json"); -} - -#[test] -fn forw_raw_contract_upgrade_self_go() { - world().run("scenarios/forw_raw_contract_upgrade_self.scen.json"); -} - -#[test] -fn forw_raw_direct_egld_go() { - world().run("scenarios/forw_raw_direct_egld.scen.json"); -} - -#[test] -fn forw_raw_direct_esdt_go() { - world().run("scenarios/forw_raw_direct_esdt.scen.json"); -} - -#[test] -fn forw_raw_direct_multi_esdt_go() { - world().run("scenarios/forw_raw_direct_multi_esdt.scen.json"); -} - -#[test] -fn forw_raw_init_async_go() { - world().run("scenarios/forw_raw_init_async.scen.json"); -} - -#[test] -fn forw_raw_init_sync_accept_egld_go() { - world().run("scenarios/forw_raw_init_sync_accept_egld.scen.json"); -} - -#[test] -fn forw_raw_init_sync_echo_go() { - world().run("scenarios/forw_raw_init_sync_echo.scen.json"); -} - -#[test] -fn forw_raw_sync_echo_go() { - world().run("scenarios/forw_raw_sync_echo.scen.json"); -} - -#[test] -fn forw_raw_sync_echo_caller_go() { - world().run("scenarios/forw_raw_sync_echo_caller.scen.json"); -} - -#[test] -fn forw_raw_sync_egld_go() { - world().run("scenarios/forw_raw_sync_egld.scen.json"); -} - -#[test] -fn forw_raw_sync_readonly_go() { - world().run("scenarios/forw_raw_sync_readonly.scen.json"); -} - -#[test] -fn forw_raw_sync_reject_go() { - world().run("scenarios/forw_raw_sync_reject.scen.json"); -} - -#[test] -fn forw_raw_sync_same_context_go() { - world().run("scenarios/forw_raw_sync_same_context.scen.json"); -} - -#[test] -fn forw_raw_sync_same_context_egld_go() { - world().run("scenarios/forw_raw_sync_same_context_egld.scen.json"); -} - -#[test] -fn forw_raw_transf_exec_accept_egld_go() { - world().run("scenarios/forw_raw_transf_exec_accept_egld.scen.json"); -} - -#[test] -fn forw_raw_transf_exec_reject_egld_go() { - world().run("scenarios/forw_raw_transf_exec_reject_egld.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_add_quantity_go() { - world().run("scenarios/forwarder_builtin_nft_add_quantity.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_burn_go() { - world().run("scenarios/forwarder_builtin_nft_burn.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_create_go() { - world().run("scenarios/forwarder_builtin_nft_create.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_local_burn_go() { - world().run("scenarios/forwarder_builtin_nft_local_burn.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_local_mint_go() { - world().run("scenarios/forwarder_builtin_nft_local_mint.scen.json"); -} - -#[test] -fn forwarder_call_async_accept_egld_go() { - world().run("scenarios/forwarder_call_async_accept_egld.scen.json"); -} - -#[test] -fn forwarder_call_async_accept_esdt_go() { - world().run("scenarios/forwarder_call_async_accept_esdt.scen.json"); -} - -#[test] -fn forwarder_call_async_accept_nft_go() { - world().run("scenarios/forwarder_call_async_accept_nft.scen.json"); -} - -#[test] -fn forwarder_call_async_multi_transfer_go() { - world().run("scenarios/forwarder_call_async_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_call_async_multi_transfer_egld_go() { - world().run("scenarios/forwarder_call_async_multi_transfer_egld.scen.json"); -} - -#[test] -fn forwarder_call_async_retrieve_egld_go() { - world().run("scenarios/forwarder_call_async_retrieve_egld.scen.json"); -} - -#[test] -fn forwarder_call_async_retrieve_esdt_go() { - world().run("scenarios/forwarder_call_async_retrieve_esdt.scen.json"); -} - -#[test] -fn forwarder_call_async_retrieve_nft_go() { - world().run("scenarios/forwarder_call_async_retrieve_nft.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_egld_go() { - world().run("scenarios/forwarder_call_sync_accept_egld.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_esdt_go() { - world().run("scenarios/forwarder_call_sync_accept_esdt.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_multi_transfer_go() { - world().run("scenarios/forwarder_call_sync_accept_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_multi_transfer_egld_go() { - world().run("scenarios/forwarder_call_sync_accept_multi_transfer_egld.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_nft_go() { - world().run("scenarios/forwarder_call_sync_accept_nft.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_then_read_egld_go() { - world().run("scenarios/forwarder_call_sync_accept_then_read_egld.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_then_read_esdt_go() { - world().run("scenarios/forwarder_call_sync_accept_then_read_esdt.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_then_read_nft_go() { - world().run("scenarios/forwarder_call_sync_accept_then_read_nft.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_egld_go() { - world().run("scenarios/forwarder_call_sync_retrieve_egld.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_egld_bt_go() { - world().run("scenarios/forwarder_call_sync_retrieve_egld_bt.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_esdt_go() { - world().run("scenarios/forwarder_call_sync_retrieve_esdt.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_esdt_bt_go() { - world().run("scenarios/forwarder_call_sync_retrieve_esdt_bt.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_nft_go() { - world().run("scenarios/forwarder_call_sync_retrieve_nft.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_nft_bt_go() { - world().run("scenarios/forwarder_call_sync_retrieve_nft_bt.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_egld_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_egld.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_egld_twice_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_egld_twice.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_esdt_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_esdt.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_esdt_twice_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_esdt_twice.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_multi_transfer_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_multi_transfer_egld_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_multi_transfer_egld_failed_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_nft_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_nft.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_return_values_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_return_values.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_sft_twice_go() { - world().run("scenarios/forwarder_call_transf_exec_accept_sft_twice.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_reject_multi_transfer_go() { - world().run("scenarios/forwarder_call_transf_exec_reject_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_reject_nft_go() { - world().run("scenarios/forwarder_call_transf_exec_reject_nft.scen.json"); -} - -#[test] -fn forwarder_contract_change_owner_go() { - world().run("scenarios/forwarder_contract_change_owner.scen.json"); -} - -#[test] -fn forwarder_contract_deploy_go() { - world().run("scenarios/forwarder_contract_deploy.scen.json"); -} - -#[test] -fn forwarder_contract_upgrade_go() { - world().run("scenarios/forwarder_contract_upgrade.scen.json"); -} - -#[test] -fn forwarder_get_esdt_local_roles_go() { - world().run("scenarios/forwarder_get_esdt_local_roles.scen.json"); -} - -#[test] -fn forwarder_get_esdt_token_data_go() { - world().run("scenarios/forwarder_get_esdt_token_data.scen.json"); -} - -#[test] -fn forwarder_nft_add_uri_go() { - world().run("scenarios/forwarder_nft_add_uri.scen.json"); -} - -#[test] -fn forwarder_nft_create_go() { - world().run("scenarios/forwarder_nft_create.scen.json"); -} - -#[test] -fn forwarder_nft_create_and_send_go() { - world().run("scenarios/forwarder_nft_create_and_send.scen.json"); -} - -#[test] -fn forwarder_nft_current_nonce_go() { - world().run("scenarios/forwarder_nft_current_nonce.scen.json"); -} - -#[test] -fn forwarder_nft_decode_complex_attributes_go() { - world().run("scenarios/forwarder_nft_decode_complex_attributes.scen.json"); -} - -#[test] -fn forwarder_nft_transfer_async_go() { - world().run("scenarios/forwarder_nft_transfer_async.scen.json"); -} - -#[test] -fn forwarder_nft_transfer_exec_go() { - world().run("scenarios/forwarder_nft_transfer_exec.scen.json"); -} - -#[test] -fn forwarder_nft_update_attributes_go() { - world().run("scenarios/forwarder_nft_update_attributes.scen.json"); -} - -#[test] -fn forwarder_no_endpoint_go() { - world().run("scenarios/forwarder_no_endpoint.scen.json"); -} - -#[test] -fn forwarder_retrieve_funds_with_accept_func_go() { - world().run("scenarios/forwarder_retrieve_funds_with_accept_func.scen.json"); -} - -#[test] -fn forwarder_send_esdt_multi_transfer_go() { - world().run("scenarios/forwarder_send_esdt_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_sync_echo_go() { - world().run("scenarios/forwarder_sync_echo.scen.json"); -} - -#[test] -fn forwarder_transfer_esdt_with_fees_go() { - world().run("scenarios/forwarder_transfer_esdt_with_fees.scen.json"); -} - -#[test] -fn forwarder_validate_token_identifier_go() { - world().run("scenarios/forwarder_validate_token_identifier.scen.json"); -} - -#[test] -fn promises_call_async_accept_egld_go() { - world().run("scenarios/promises_call_async_accept_egld.scen.json"); -} - -#[test] -fn promises_call_async_accept_esdt_go() { - world().run("scenarios/promises_call_async_accept_esdt.scen.json"); -} - -#[test] -#[ignore = "TODO"] -fn promises_call_async_retrieve_egld_go() { - world().run("scenarios/promises_call_async_retrieve_egld.scen.json"); -} - -#[test] -#[ignore = "TODO"] -fn promises_call_async_retrieve_esdt_go() { - world().run("scenarios/promises_call_async_retrieve_esdt.scen.json"); -} - -#[test] -#[ignore = "TODO"] -fn promises_call_callback_directly_go() { - world().run("scenarios/promises_call_callback_directly.scen.json"); -} - -#[test] -fn promises_call_transfer_callback_egld_go() { - world().run("scenarios/promises_call_transfer_callback_egld.scen.json"); -} +// #[test] +// fn builtin_func_delete_user_name_go() { +// world().run("scenarios/builtin_func_delete_user_name.scen.json"); +// } + +// #[test] +// fn builtin_func_set_user_name_go() { +// world().run("scenarios/builtin_func_set_user_name.scen.json"); +// } + +// #[test] +// fn forw_queue_async_go() { +// world().run("scenarios/forw_queue_async.scen.json"); +// } + +// #[test] +// fn forw_raw_async_accept_egld_go() { +// world().run("scenarios/forw_raw_async_accept_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_async_accept_esdt_go() { +// world().run("scenarios/forw_raw_async_accept_esdt.scen.json"); +// } + +// #[test] +// fn forw_raw_async_echo_go() { +// world().run("scenarios/forw_raw_async_echo.scen.json"); +// } + +// #[test] +// fn forw_raw_async_send_and_retrieve_multi_transfer_funds_go() { +// world().run("scenarios/forw_raw_async_send_and_retrieve_multi_transfer_funds.scen.json"); +// } + +// #[test] +// fn forw_raw_builtin_nft_local_mint_via_async_call_go() { +// world().run("scenarios/forw_raw_builtin_nft_local_mint_via_async_call.scen.json"); +// } + +// #[test] +// fn forw_raw_builtin_nft_local_mint_via_sync_call_go() { +// world().run("scenarios/forw_raw_builtin_nft_local_mint_via_sync_call.scen.json"); +// } + +// #[test] +// fn forw_raw_call_async_retrieve_multi_transfer_go() { +// world().run("scenarios/forw_raw_call_async_retrieve_multi_transfer.scen.json"); +// } + +// #[test] +// fn forw_raw_contract_deploy_go() { +// world().run("scenarios/forw_raw_contract_deploy.scen.json"); +// } + +// #[test] +// fn forw_raw_contract_upgrade_go() { +// world().run("scenarios/forw_raw_contract_upgrade.scen.json"); +// } + +// #[test] +// fn forw_raw_contract_upgrade_self_go() { +// world().run("scenarios/forw_raw_contract_upgrade_self.scen.json"); +// } + +// #[test] +// fn forw_raw_direct_egld_go() { +// world().run("scenarios/forw_raw_direct_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_direct_esdt_go() { +// world().run("scenarios/forw_raw_direct_esdt.scen.json"); +// } + +// #[test] +// fn forw_raw_direct_multi_esdt_go() { +// world().run("scenarios/forw_raw_direct_multi_esdt.scen.json"); +// } + +// #[test] +// fn forw_raw_init_async_go() { +// world().run("scenarios/forw_raw_init_async.scen.json"); +// } + +// #[test] +// fn forw_raw_init_sync_accept_egld_go() { +// world().run("scenarios/forw_raw_init_sync_accept_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_init_sync_echo_go() { +// world().run("scenarios/forw_raw_init_sync_echo.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_echo_go() { +// world().run("scenarios/forw_raw_sync_echo.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_echo_caller_go() { +// world().run("scenarios/forw_raw_sync_echo_caller.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_egld_go() { +// world().run("scenarios/forw_raw_sync_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_readonly_go() { +// world().run("scenarios/forw_raw_sync_readonly.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_reject_go() { +// world().run("scenarios/forw_raw_sync_reject.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_same_context_go() { +// world().run("scenarios/forw_raw_sync_same_context.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_same_context_egld_go() { +// world().run("scenarios/forw_raw_sync_same_context_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_transf_exec_accept_egld_go() { +// world().run("scenarios/forw_raw_transf_exec_accept_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_transf_exec_reject_egld_go() { +// world().run("scenarios/forw_raw_transf_exec_reject_egld.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_add_quantity_go() { +// world().run("scenarios/forwarder_builtin_nft_add_quantity.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_burn_go() { +// world().run("scenarios/forwarder_builtin_nft_burn.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_create_go() { +// world().run("scenarios/forwarder_builtin_nft_create.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_local_burn_go() { +// world().run("scenarios/forwarder_builtin_nft_local_burn.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_local_mint_go() { +// world().run("scenarios/forwarder_builtin_nft_local_mint.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_accept_egld_go() { +// world().run("scenarios/forwarder_call_async_accept_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_accept_esdt_go() { +// world().run("scenarios/forwarder_call_async_accept_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_accept_nft_go() { +// world().run("scenarios/forwarder_call_async_accept_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_multi_transfer_go() { +// world().run("scenarios/forwarder_call_async_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_multi_transfer_egld_go() { +// world().run("scenarios/forwarder_call_async_multi_transfer_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_retrieve_egld_go() { +// world().run("scenarios/forwarder_call_async_retrieve_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_retrieve_esdt_go() { +// world().run("scenarios/forwarder_call_async_retrieve_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_retrieve_nft_go() { +// world().run("scenarios/forwarder_call_async_retrieve_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_egld_go() { +// world().run("scenarios/forwarder_call_sync_accept_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_esdt_go() { +// world().run("scenarios/forwarder_call_sync_accept_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_multi_transfer_go() { +// world().run("scenarios/forwarder_call_sync_accept_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_multi_transfer_egld_go() { +// world().run("scenarios/forwarder_call_sync_accept_multi_transfer_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_nft_go() { +// world().run("scenarios/forwarder_call_sync_accept_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_then_read_egld_go() { +// world().run("scenarios/forwarder_call_sync_accept_then_read_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_then_read_esdt_go() { +// world().run("scenarios/forwarder_call_sync_accept_then_read_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_then_read_nft_go() { +// world().run("scenarios/forwarder_call_sync_accept_then_read_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_egld_go() { +// world().run("scenarios/forwarder_call_sync_retrieve_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_egld_bt_go() { +// world().run("scenarios/forwarder_call_sync_retrieve_egld_bt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_esdt_go() { +// world().run("scenarios/forwarder_call_sync_retrieve_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_esdt_bt_go() { +// world().run("scenarios/forwarder_call_sync_retrieve_esdt_bt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_nft_go() { +// world().run("scenarios/forwarder_call_sync_retrieve_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_nft_bt_go() { +// world().run("scenarios/forwarder_call_sync_retrieve_nft_bt.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_egld_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_egld_twice_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_egld_twice.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_esdt_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_esdt_twice_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_esdt_twice.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_multi_transfer_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_multi_transfer_egld_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_multi_transfer_egld_failed_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_nft_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_return_values_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_return_values.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_sft_twice_go() { +// world().run("scenarios/forwarder_call_transf_exec_accept_sft_twice.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_reject_multi_transfer_go() { +// world().run("scenarios/forwarder_call_transf_exec_reject_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_reject_nft_go() { +// world().run("scenarios/forwarder_call_transf_exec_reject_nft.scen.json"); +// } + +// #[test] +// fn forwarder_contract_change_owner_go() { +// world().run("scenarios/forwarder_contract_change_owner.scen.json"); +// } + +// #[test] +// fn forwarder_contract_deploy_go() { +// world().run("scenarios/forwarder_contract_deploy.scen.json"); +// } + +// #[test] +// fn forwarder_contract_upgrade_go() { +// world().run("scenarios/forwarder_contract_upgrade.scen.json"); +// } + +// #[test] +// fn forwarder_get_esdt_local_roles_go() { +// world().run("scenarios/forwarder_get_esdt_local_roles.scen.json"); +// } + +// #[test] +// fn forwarder_get_esdt_token_data_go() { +// world().run("scenarios/forwarder_get_esdt_token_data.scen.json"); +// } + +// #[test] +// fn forwarder_nft_add_uri_go() { +// world().run("scenarios/forwarder_nft_add_uri.scen.json"); +// } + +// #[test] +// fn forwarder_nft_create_go() { +// world().run("scenarios/forwarder_nft_create.scen.json"); +// } + +// #[test] +// fn forwarder_nft_create_and_send_go() { +// world().run("scenarios/forwarder_nft_create_and_send.scen.json"); +// } + +// #[test] +// fn forwarder_nft_current_nonce_go() { +// world().run("scenarios/forwarder_nft_current_nonce.scen.json"); +// } + +// #[test] +// fn forwarder_nft_decode_complex_attributes_go() { +// world().run("scenarios/forwarder_nft_decode_complex_attributes.scen.json"); +// } + +// #[test] +// fn forwarder_nft_transfer_async_go() { +// world().run("scenarios/forwarder_nft_transfer_async.scen.json"); +// } + +// #[test] +// fn forwarder_nft_transfer_exec_go() { +// world().run("scenarios/forwarder_nft_transfer_exec.scen.json"); +// } + +// #[test] +// fn forwarder_nft_update_attributes_go() { +// world().run("scenarios/forwarder_nft_update_attributes.scen.json"); +// } + +// #[test] +// fn forwarder_no_endpoint_go() { +// world().run("scenarios/forwarder_no_endpoint.scen.json"); +// } + +// #[test] +// fn forwarder_retrieve_funds_with_accept_func_go() { +// world().run("scenarios/forwarder_retrieve_funds_with_accept_func.scen.json"); +// } + +// #[test] +// fn forwarder_send_esdt_multi_transfer_go() { +// world().run("scenarios/forwarder_send_esdt_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_sync_echo_go() { +// world().run("scenarios/forwarder_sync_echo.scen.json"); +// } + +// #[test] +// fn forwarder_transfer_esdt_with_fees_go() { +// world().run("scenarios/forwarder_transfer_esdt_with_fees.scen.json"); +// } + +// #[test] +// fn forwarder_validate_token_identifier_go() { +// world().run("scenarios/forwarder_validate_token_identifier.scen.json"); +// } + +// #[test] +// fn promises_call_async_accept_egld_go() { +// world().run("scenarios/promises_call_async_accept_egld.scen.json"); +// } + +// #[test] +// fn promises_call_async_accept_esdt_go() { +// world().run("scenarios/promises_call_async_accept_esdt.scen.json"); +// } + +// #[test] +// #[ignore = "TODO"] +// fn promises_call_async_retrieve_egld_go() { +// world().run("scenarios/promises_call_async_retrieve_egld.scen.json"); +// } + +// #[test] +// #[ignore = "TODO"] +// fn promises_call_async_retrieve_esdt_go() { +// world().run("scenarios/promises_call_async_retrieve_esdt.scen.json"); +// } + +// #[test] +// #[ignore = "TODO"] +// fn promises_call_callback_directly_go() { +// world().run("scenarios/promises_call_callback_directly.scen.json"); +// } + +// #[test] +// fn promises_call_transfer_callback_egld_go() { +// world().run("scenarios/promises_call_transfer_callback_egld.scen.json"); +// } #[test] fn promises_call_transfer_callback_call_value_egld_go() { world().run("scenarios/promises_call_transfer_callback_call_value_egld.scen.json"); } -#[test] -fn promises_call_transfer_callback_esdt_go() { - world().run("scenarios/promises_call_transfer_callback_esdt.scen.json"); -} - -#[test] -#[ignore = "TODO"] -fn promises_multi_transfer_go() { - world().run("scenarios/promises_multi_transfer.scen.json"); -} - -#[test] -fn promises_multi_transfer_err_go() { - world().run("scenarios/promises_multi_transfer_err.scen.json"); -} - -#[test] -fn promises_single_transfer_go() { - world().run("scenarios/promises_single_transfer.scen.json"); -} - -#[test] -#[ignore = "gas"] -fn promises_single_transfer_gas_1_go() { - world().run("scenarios/promises_single_transfer_gas1.scen.json"); -} - -#[test] -#[ignore = "gas"] -fn promises_single_transfer_gas_2_go() { - world().run("scenarios/promises_single_transfer_gas2.scen.json"); -} - -#[test] -fn proxy_test_init_go() { - world().run("scenarios/proxy_test_init.scen.json"); -} - -#[test] -fn proxy_test_message_other_shard_go() { - world().run("scenarios/proxy_test_message_otherShard.scen.json"); -} - -#[test] -fn proxy_test_message_other_shard_callback_go() { - world().run("scenarios/proxy_test_message_otherShard_callback.scen.json"); -} - -#[test] -fn proxy_test_message_same_shard_go() { - world().run("scenarios/proxy_test_message_sameShard.scen.json"); -} - -#[test] -fn proxy_test_message_same_shard_callback_go() { - world().run("scenarios/proxy_test_message_sameShard_callback.scen.json"); -} - -#[test] -fn proxy_test_payment_other_shard_go() { - world().run("scenarios/proxy_test_payment_otherShard.scen.json"); -} - -#[test] -fn proxy_test_payment_other_shard_callback_go() { - world().run("scenarios/proxy_test_payment_otherShard_callback.scen.json"); -} - -#[test] -fn proxy_test_payment_same_shard_go() { - world().run("scenarios/proxy_test_payment_sameShard.scen.json"); -} - -#[test] -fn proxy_test_payment_same_shard_callback_go() { - world().run("scenarios/proxy_test_payment_sameShard_callback.scen.json"); -} - -#[test] -fn proxy_test_upgrade_go() { - world().run("scenarios/proxy_test_upgrade.scen.json"); -} - -#[test] -fn recursive_caller_egld_1_go() { - world().run("scenarios/recursive_caller_egld_1.scen.json"); -} - -#[test] -fn recursive_caller_esdt_1_go() { - world().run("scenarios/recursive_caller_esdt_1.scen.json"); -} - -#[test] -fn send_egld_go() { - world().run("scenarios/send_egld.scen.json"); -} - -#[test] -fn send_esdt_go() { - world().run("scenarios/send_esdt.scen.json"); -} +// #[test] +// fn promises_call_transfer_callback_esdt_go() { +// world().run("scenarios/promises_call_transfer_callback_esdt.scen.json"); +// } + +// #[test] +// #[ignore = "TODO"] +// fn promises_multi_transfer_go() { +// world().run("scenarios/promises_multi_transfer.scen.json"); +// } + +// #[test] +// fn promises_multi_transfer_err_go() { +// world().run("scenarios/promises_multi_transfer_err.scen.json"); +// } + +// #[test] +// fn promises_single_transfer_go() { +// world().run("scenarios/promises_single_transfer.scen.json"); +// } + +// #[test] +// #[ignore = "gas"] +// fn promises_single_transfer_gas_1_go() { +// world().run("scenarios/promises_single_transfer_gas1.scen.json"); +// } + +// #[test] +// #[ignore = "gas"] +// fn promises_single_transfer_gas_2_go() { +// world().run("scenarios/promises_single_transfer_gas2.scen.json"); +// } + +// #[test] +// fn proxy_test_init_go() { +// world().run("scenarios/proxy_test_init.scen.json"); +// } + +// #[test] +// fn proxy_test_message_other_shard_go() { +// world().run("scenarios/proxy_test_message_otherShard.scen.json"); +// } + +// #[test] +// fn proxy_test_message_other_shard_callback_go() { +// world().run("scenarios/proxy_test_message_otherShard_callback.scen.json"); +// } + +// #[test] +// fn proxy_test_message_same_shard_go() { +// world().run("scenarios/proxy_test_message_sameShard.scen.json"); +// } + +// #[test] +// fn proxy_test_message_same_shard_callback_go() { +// world().run("scenarios/proxy_test_message_sameShard_callback.scen.json"); +// } + +// #[test] +// fn proxy_test_payment_other_shard_go() { +// world().run("scenarios/proxy_test_payment_otherShard.scen.json"); +// } + +// #[test] +// fn proxy_test_payment_other_shard_callback_go() { +// world().run("scenarios/proxy_test_payment_otherShard_callback.scen.json"); +// } + +// #[test] +// fn proxy_test_payment_same_shard_go() { +// world().run("scenarios/proxy_test_payment_sameShard.scen.json"); +// } + +// #[test] +// fn proxy_test_payment_same_shard_callback_go() { +// world().run("scenarios/proxy_test_payment_sameShard_callback.scen.json"); +// } + +// #[test] +// fn proxy_test_upgrade_go() { +// world().run("scenarios/proxy_test_upgrade.scen.json"); +// } + +// #[test] +// fn recursive_caller_egld_1_go() { +// world().run("scenarios/recursive_caller_egld_1.scen.json"); +// } + +// #[test] +// fn recursive_caller_esdt_1_go() { +// world().run("scenarios/recursive_caller_esdt_1.scen.json"); +// } + +// #[test] +// fn send_egld_go() { +// world().run("scenarios/send_egld.scen.json"); +// } + +// #[test] +// fn send_esdt_go() { +// world().run("scenarios/send_esdt.scen.json"); +// } diff --git a/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs b/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs index ec4a15a6b4..02463f1e34 100644 --- a/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs +++ b/contracts/feature-tests/composability/tests/composability_scenario_rs_test.rs @@ -1,629 +1,629 @@ -use multiversx_sc_scenario::imports::*; - -fn world() -> ScenarioWorld { - let mut blockchain = ScenarioWorld::new(); - blockchain.set_current_dir_from_workspace("contracts/feature-tests/composability"); - - blockchain.register_contract( - "mxsc:builtin-func-features/output/builtin-func-features.mxsc.json", - builtin_func_features::ContractBuilder, - ); - blockchain.register_contract( - "mxsc:forwarder-queue/output/forwarder-queue.mxsc.json", - forwarder_queue::ContractBuilder, - ); - blockchain.register_contract( - "mxsc:forwarder/output/forwarder.mxsc.json", - forwarder::ContractBuilder, - ); - blockchain.register_contract( - "mxsc:forwarder-raw/output/forwarder-raw.mxsc.json", - forwarder_raw::ContractBuilder, - ); - blockchain.register_contract( - "mxsc:promises-features/output/promises-features.mxsc.json", - promises_features::ContractBuilder, - ); - blockchain.register_contract( - "mxsc:proxy-test-first/output/proxy-test-first.mxsc.json", - proxy_test_first::ContractBuilder, - ); - blockchain.register_contract( - "mxsc:proxy-test-second/output/proxy-test-second.mxsc.json", - proxy_test_second::ContractBuilder, - ); - blockchain.register_contract( - "mxsc:recursive-caller/output/recursive-caller.mxsc.json", - recursive_caller::ContractBuilder, - ); - - let vault_sc_config = - meta::multi_contract_config::(&blockchain.current_dir().join("vault")); - blockchain.register_contract_variant( - "mxsc:vault/output/vault.mxsc.json", - vault::ContractBuilder, - vault_sc_config.find_contract("vault"), - ); - blockchain.register_contract_variant( - "mxsc:vault/output/vault-upgrade.mxsc.json", - vault::ContractBuilder, - vault_sc_config.find_contract("vault-upgrade"), - ); - blockchain -} - -#[test] -fn builtin_func_delete_user_name_rs() { - world().run("scenarios/builtin_func_delete_user_name.scen.json"); -} - -#[test] -fn builtin_func_set_user_name_rs() { - world().run("scenarios/builtin_func_set_user_name.scen.json"); -} - -#[test] -fn forw_queue_async_rs() { - world().run("scenarios/forw_queue_async.scen.json"); -} - -#[test] -fn forw_raw_async_accept_egld_rs() { - world().run("scenarios/forw_raw_async_accept_egld.scen.json"); -} - -#[test] -fn forw_raw_async_accept_esdt_rs() { - world().run("scenarios/forw_raw_async_accept_esdt.scen.json"); -} - -#[test] -fn forw_raw_async_echo_rs() { - world().run("scenarios/forw_raw_async_echo.scen.json"); -} - -#[test] -fn forw_raw_async_send_and_retrieve_multi_transfer_funds_rs() { - world().run("scenarios/forw_raw_async_send_and_retrieve_multi_transfer_funds.scen.json"); -} - -#[test] -fn forw_raw_builtin_nft_local_mint_via_async_call_rs() { - world().run("scenarios/forw_raw_builtin_nft_local_mint_via_async_call.scen.json"); -} - -#[test] -fn forw_raw_builtin_nft_local_mint_via_sync_call_rs() { - world().run("scenarios/forw_raw_builtin_nft_local_mint_via_sync_call.scen.json"); -} - -#[test] -fn forw_raw_call_async_retrieve_multi_transfer_rs() { - world().run("scenarios/forw_raw_call_async_retrieve_multi_transfer.scen.json"); -} - -#[test] -fn forw_raw_contract_deploy_rs() { - world().run("scenarios/forw_raw_contract_deploy.scen.json"); -} - -#[test] -fn forw_raw_contract_upgrade_rs() { - world().run("scenarios/forw_raw_contract_upgrade.scen.json"); -} - -#[test] -fn forw_raw_contract_upgrade_self_rs() { - world().run("scenarios/forw_raw_contract_upgrade_self.scen.json"); -} - -#[test] -fn forw_raw_direct_egld_rs() { - world().run("scenarios/forw_raw_direct_egld.scen.json"); -} - -#[test] -fn forw_raw_direct_esdt_rs() { - world().run("scenarios/forw_raw_direct_esdt.scen.json"); -} - -#[test] -fn forw_raw_direct_multi_esdt_rs() { - world().run("scenarios/forw_raw_direct_multi_esdt.scen.json"); -} - -#[test] -#[ignore = "not yet supported"] -fn forw_raw_init_async_rs() { - world().run("scenarios/forw_raw_init_async.scen.json"); -} - -#[test] -#[ignore = "not yet supported"] -fn forw_raw_init_sync_accept_egld_rs() { - world().run("scenarios/forw_raw_init_sync_accept_egld.scen.json"); -} - -#[test] -#[ignore = "not yet supported"] -fn forw_raw_init_sync_echo_rs() { - world().run("scenarios/forw_raw_init_sync_echo.scen.json"); -} - -#[test] -fn forw_raw_sync_echo_rs() { - world().run("scenarios/forw_raw_sync_echo.scen.json"); -} - -#[test] -fn forw_raw_sync_echo_caller_rs() { - world().run("scenarios/forw_raw_sync_echo_caller.scen.json"); -} - -#[test] -fn forw_raw_sync_egld_rs() { - world().run("scenarios/forw_raw_sync_egld.scen.json"); -} - -#[test] -fn forw_raw_sync_readonly_rs() { - world().run("scenarios/forw_raw_sync_readonly.scen.json"); -} - -#[test] -#[ignore = "different error code/message in Rust VM"] -fn forw_raw_sync_reject_rs() { - world().run("scenarios/forw_raw_sync_reject.scen.json"); -} - -#[test] -#[ignore] -fn forw_raw_sync_same_context_rs() { - world().run("scenarios/forw_raw_sync_same_context.scen.json"); -} - -#[test] -#[ignore] -fn forw_raw_sync_same_context_egld_rs() { - world().run("scenarios/forw_raw_sync_same_context_egld.scen.json"); -} - -#[test] -fn forw_raw_transf_exec_accept_egld_rs() { - world().run("scenarios/forw_raw_transf_exec_accept_egld.scen.json"); -} - -#[test] -fn forw_raw_transf_exec_reject_egld_rs() { - world().run("scenarios/forw_raw_transf_exec_reject_egld.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_add_quantity_rs() { - world().run("scenarios/forwarder_builtin_nft_add_quantity.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_burn_rs() { - world().run("scenarios/forwarder_builtin_nft_burn.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_create_rs() { - world().run("scenarios/forwarder_builtin_nft_create.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_local_burn_rs() { - world().run("scenarios/forwarder_builtin_nft_local_burn.scen.json"); -} - -#[test] -fn forwarder_builtin_nft_local_mint_rs() { - world().run("scenarios/forwarder_builtin_nft_local_mint.scen.json"); -} - -#[test] -fn forwarder_call_async_accept_egld_rs() { - world().run("scenarios/forwarder_call_async_accept_egld.scen.json"); -} - -#[test] -fn forwarder_call_async_accept_esdt_rs() { - world().run("scenarios/forwarder_call_async_accept_esdt.scen.json"); -} - -#[test] -fn forwarder_call_async_accept_nft_rs() { - world().run("scenarios/forwarder_call_async_accept_nft.scen.json"); -} - -#[test] -fn forwarder_call_async_multi_transfer_rs() { - world().run("scenarios/forwarder_call_async_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_call_async_multi_transfer_egld_rs() { - world().run("scenarios/forwarder_call_async_multi_transfer_egld.scen.json"); -} - -#[test] -fn forwarder_call_async_retrieve_egld_rs() { - world().run("scenarios/forwarder_call_async_retrieve_egld.scen.json"); -} - -#[test] -fn forwarder_call_async_retrieve_esdt_rs() { - world().run("scenarios/forwarder_call_async_retrieve_esdt.scen.json"); -} - -#[test] -fn forwarder_call_async_retrieve_nft_rs() { - world().run("scenarios/forwarder_call_async_retrieve_nft.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_egld_rs() { - world().run("scenarios/forwarder_call_sync_accept_egld.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_esdt_rs() { - world().run("scenarios/forwarder_call_sync_accept_esdt.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_multi_transfer_rs() { - world().run("scenarios/forwarder_call_sync_accept_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_multi_transfer_egld_rs() { - world().run("scenarios/forwarder_call_sync_accept_multi_transfer_egld.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_nft_rs() { - world().run("scenarios/forwarder_call_sync_accept_nft.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_then_read_egld_rs() { - world().run("scenarios/forwarder_call_sync_accept_then_read_egld.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_then_read_esdt_rs() { - world().run("scenarios/forwarder_call_sync_accept_then_read_esdt.scen.json"); -} - -#[test] -fn forwarder_call_sync_accept_then_read_nft_rs() { - world().run("scenarios/forwarder_call_sync_accept_then_read_nft.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_egld_rs() { - world().run("scenarios/forwarder_call_sync_retrieve_egld.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_egld_bt_rs() { - world().run("scenarios/forwarder_call_sync_retrieve_egld_bt.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_esdt_rs() { - world().run("scenarios/forwarder_call_sync_retrieve_esdt.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_esdt_bt_rs() { - world().run("scenarios/forwarder_call_sync_retrieve_esdt_bt.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_nft_rs() { - world().run("scenarios/forwarder_call_sync_retrieve_nft.scen.json"); -} - -#[test] -fn forwarder_call_sync_retrieve_nft_bt_rs() { - world().run("scenarios/forwarder_call_sync_retrieve_nft_bt.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_egld_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_egld.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_egld_twice_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_egld_twice.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_esdt_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_esdt.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_esdt_twice_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_esdt_twice.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_multi_transfer_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_multi_transfer_egld_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json"); -} - -#[test] -#[ignore = "failed - tx"] -fn forwarder_call_transf_exec_accept_multi_transfer_egld_failed_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_nft_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_nft.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_return_values_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_return_values.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_accept_sft_twice_rs() { - world().run("scenarios/forwarder_call_transf_exec_accept_sft_twice.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_reject_multi_transfer_rs() { - world().run("scenarios/forwarder_call_transf_exec_reject_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_call_transf_exec_reject_nft_rs() { - world().run("scenarios/forwarder_call_transf_exec_reject_nft.scen.json"); -} - -#[test] -fn forwarder_contract_change_owner_rs() { - world().run("scenarios/forwarder_contract_change_owner.scen.json"); -} - -#[test] -fn forwarder_contract_deploy_rs() { - world().run("scenarios/forwarder_contract_deploy.scen.json"); -} - -#[test] -fn forwarder_contract_upgrade_rs() { - world().run("scenarios/forwarder_contract_upgrade.scen.json"); -} - -#[test] -fn forwarder_get_esdt_local_roles_rs() { - world().run("scenarios/forwarder_get_esdt_local_roles.scen.json"); -} - -#[test] -fn forwarder_get_esdt_token_data_rs() { - world().run("scenarios/forwarder_get_esdt_token_data.scen.json"); -} - -#[test] -fn forwarder_nft_add_uri_rs() { - world().run("scenarios/forwarder_nft_add_uri.scen.json"); -} - -#[test] -fn forwarder_nft_create_rs() { - world().run("scenarios/forwarder_nft_create.scen.json"); -} - -#[test] -fn forwarder_nft_create_and_send_rs() { - world().run("scenarios/forwarder_nft_create_and_send.scen.json"); -} - -#[test] -fn forwarder_nft_current_nonce_rs() { - world().run("scenarios/forwarder_nft_current_nonce.scen.json"); -} - -#[test] -fn forwarder_nft_decode_complex_attributes_rs() { - world().run("scenarios/forwarder_nft_decode_complex_attributes.scen.json"); -} - -#[test] -fn forwarder_nft_transfer_async_rs() { - world().run("scenarios/forwarder_nft_transfer_async.scen.json"); -} - -#[test] -fn forwarder_nft_transfer_exec_rs() { - world().run("scenarios/forwarder_nft_transfer_exec.scen.json"); -} - -#[test] -fn forwarder_nft_update_attributes_rs() { - world().run("scenarios/forwarder_nft_update_attributes.scen.json"); -} - -#[test] -fn forwarder_no_endpoint_rs() { - world().run("scenarios/forwarder_no_endpoint.scen.json"); -} - -#[test] -fn forwarder_retrieve_funds_with_accept_func_rs() { - world().run("scenarios/forwarder_retrieve_funds_with_accept_func.scen.json"); -} - -#[test] -fn forwarder_send_esdt_multi_transfer_rs() { - world().run("scenarios/forwarder_send_esdt_multi_transfer.scen.json"); -} - -#[test] -fn forwarder_sync_echo_rs() { - world().run("scenarios/forwarder_sync_echo.scen.json"); -} - -#[test] -fn forwarder_transfer_esdt_with_fees_rs() { - world().run("scenarios/forwarder_transfer_esdt_with_fees.scen.json"); -} - -#[test] -fn forwarder_validate_token_identifier_rs() { - world().run("scenarios/forwarder_validate_token_identifier.scen.json"); -} - -#[test] -fn promises_call_async_accept_egld_rs() { - world().run("scenarios/promises_call_async_accept_egld.scen.json"); -} - -#[test] -fn promises_call_async_accept_esdt_rs() { - world().run("scenarios/promises_call_async_accept_esdt.scen.json"); -} - -#[test] -fn promises_call_async_retrieve_egld_rs() { - world().run("scenarios/promises_call_async_retrieve_egld.scen.json"); -} - -#[test] -fn promises_call_async_retrieve_esdt_rs() { - world().run("scenarios/promises_call_async_retrieve_esdt.scen.json"); -} - -#[test] -fn promises_call_callback_directly_rs() { - world().run("scenarios/promises_call_callback_directly.scen.json"); -} - -#[test] -fn promises_call_transfer_callback_egld_rs() { - world().run("scenarios/promises_call_transfer_callback_egld.scen.json"); -} - -#[test] -fn promises_call_transfer_callback_call_value_egld_rs() { - world().run("scenarios/promises_call_transfer_callback_call_value_egld.scen.json"); -} - -#[test] -fn promises_call_transfer_callback_esdt_rs() { - world().run("scenarios/promises_call_transfer_callback_esdt.scen.json"); -} - -#[test] -fn promises_multi_transfer_rs() { - world().run("scenarios/promises_multi_transfer.scen.json"); -} - -#[test] -#[ignore = "TODO - some log is missing"] -fn promises_multi_transfer_err_rs() { - world().run("scenarios/promises_multi_transfer_err.scen.json"); -} - -#[test] -#[ignore = "gas"] -fn promises_single_transfer_rs() { - world().run("scenarios/promises_single_transfer.scen.json"); -} - -#[test] -#[ignore = "gas"] -fn promises_single_transfer_gas_1_rs() { - world().run("scenarios/promises_single_transfer_gas1.scen.json"); -} - -#[test] -#[ignore = "gas"] -fn promises_single_transfer_gas_2_rs() { - world().run("scenarios/promises_single_transfer_gas2.scen.json"); -} - -#[test] -fn proxy_test_init_rs() { - world().run("scenarios/proxy_test_init.scen.json"); -} - -#[test] -fn proxy_test_message_other_shard_rs() { - world().run("scenarios/proxy_test_message_otherShard.scen.json"); -} - -#[test] -fn proxy_test_message_other_shard_callback_rs() { - world().run("scenarios/proxy_test_message_otherShard_callback.scen.json"); -} - -#[test] -fn proxy_test_message_same_shard_rs() { - world().run("scenarios/proxy_test_message_sameShard.scen.json"); -} - -#[test] -fn proxy_test_message_same_shard_callback_rs() { - world().run("scenarios/proxy_test_message_sameShard_callback.scen.json"); -} - -#[test] -fn proxy_test_payment_other_shard_rs() { - world().run("scenarios/proxy_test_payment_otherShard.scen.json"); -} - -#[test] -fn proxy_test_payment_other_shard_callback_rs() { - world().run("scenarios/proxy_test_payment_otherShard_callback.scen.json"); -} - -#[test] -fn proxy_test_payment_same_shard_rs() { - world().run("scenarios/proxy_test_payment_sameShard.scen.json"); -} - -#[test] -fn proxy_test_payment_same_shard_callback_rs() { - world().run("scenarios/proxy_test_payment_sameShard_callback.scen.json"); -} - -#[test] -fn proxy_test_upgrade_rs() { - world().run("scenarios/proxy_test_upgrade.scen.json"); -} - -#[test] -fn recursive_caller_egld_1_rs() { - world().run("scenarios/recursive_caller_egld_1.scen.json"); -} - -#[test] -fn recursive_caller_esdt_1_rs() { - world().run("scenarios/recursive_caller_esdt_1.scen.json"); -} - -#[test] -fn send_egld_rs() { - world().run("scenarios/send_egld.scen.json"); -} - -#[test] -fn send_esdt_rs() { - world().run("scenarios/send_esdt.scen.json"); -} +// use multiversx_sc_scenario::imports::*; + +// fn world() -> ScenarioWorld { +// let mut blockchain = ScenarioWorld::new(); +// blockchain.set_current_dir_from_workspace("contracts/feature-tests/composability"); + +// blockchain.register_contract( +// "mxsc:builtin-func-features/output/builtin-func-features.mxsc.json", +// builtin_func_features::ContractBuilder, +// ); +// blockchain.register_contract( +// "mxsc:forwarder-queue/output/forwarder-queue.mxsc.json", +// forwarder_queue::ContractBuilder, +// ); +// blockchain.register_contract( +// "mxsc:forwarder/output/forwarder.mxsc.json", +// forwarder::ContractBuilder, +// ); +// blockchain.register_contract( +// "mxsc:forwarder-raw/output/forwarder-raw.mxsc.json", +// forwarder_raw::ContractBuilder, +// ); +// blockchain.register_contract( +// "mxsc:promises-features/output/promises-features.mxsc.json", +// promises_features::ContractBuilder, +// ); +// blockchain.register_contract( +// "mxsc:proxy-test-first/output/proxy-test-first.mxsc.json", +// proxy_test_first::ContractBuilder, +// ); +// blockchain.register_contract( +// "mxsc:proxy-test-second/output/proxy-test-second.mxsc.json", +// proxy_test_second::ContractBuilder, +// ); +// blockchain.register_contract( +// "mxsc:recursive-caller/output/recursive-caller.mxsc.json", +// recursive_caller::ContractBuilder, +// ); + +// let vault_sc_config = +// meta::multi_contract_config::(&blockchain.current_dir().join("vault")); +// blockchain.register_contract_variant( +// "mxsc:vault/output/vault.mxsc.json", +// vault::ContractBuilder, +// vault_sc_config.find_contract("vault"), +// ); +// blockchain.register_contract_variant( +// "mxsc:vault/output/vault-upgrade.mxsc.json", +// vault::ContractBuilder, +// vault_sc_config.find_contract("vault-upgrade"), +// ); +// blockchain +// } + +// #[test] +// fn builtin_func_delete_user_name_rs() { +// world().run("scenarios/builtin_func_delete_user_name.scen.json"); +// } + +// #[test] +// fn builtin_func_set_user_name_rs() { +// world().run("scenarios/builtin_func_set_user_name.scen.json"); +// } + +// #[test] +// fn forw_queue_async_rs() { +// world().run("scenarios/forw_queue_async.scen.json"); +// } + +// #[test] +// fn forw_raw_async_accept_egld_rs() { +// world().run("scenarios/forw_raw_async_accept_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_async_accept_esdt_rs() { +// world().run("scenarios/forw_raw_async_accept_esdt.scen.json"); +// } + +// #[test] +// fn forw_raw_async_echo_rs() { +// world().run("scenarios/forw_raw_async_echo.scen.json"); +// } + +// #[test] +// fn forw_raw_async_send_and_retrieve_multi_transfer_funds_rs() { +// world().run("scenarios/forw_raw_async_send_and_retrieve_multi_transfer_funds.scen.json"); +// } + +// #[test] +// fn forw_raw_builtin_nft_local_mint_via_async_call_rs() { +// world().run("scenarios/forw_raw_builtin_nft_local_mint_via_async_call.scen.json"); +// } + +// #[test] +// fn forw_raw_builtin_nft_local_mint_via_sync_call_rs() { +// world().run("scenarios/forw_raw_builtin_nft_local_mint_via_sync_call.scen.json"); +// } + +// #[test] +// fn forw_raw_call_async_retrieve_multi_transfer_rs() { +// world().run("scenarios/forw_raw_call_async_retrieve_multi_transfer.scen.json"); +// } + +// #[test] +// fn forw_raw_contract_deploy_rs() { +// world().run("scenarios/forw_raw_contract_deploy.scen.json"); +// } + +// #[test] +// fn forw_raw_contract_upgrade_rs() { +// world().run("scenarios/forw_raw_contract_upgrade.scen.json"); +// } + +// #[test] +// fn forw_raw_contract_upgrade_self_rs() { +// world().run("scenarios/forw_raw_contract_upgrade_self.scen.json"); +// } + +// #[test] +// fn forw_raw_direct_egld_rs() { +// world().run("scenarios/forw_raw_direct_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_direct_esdt_rs() { +// world().run("scenarios/forw_raw_direct_esdt.scen.json"); +// } + +// #[test] +// fn forw_raw_direct_multi_esdt_rs() { +// world().run("scenarios/forw_raw_direct_multi_esdt.scen.json"); +// } + +// #[test] +// #[ignore = "not yet supported"] +// fn forw_raw_init_async_rs() { +// world().run("scenarios/forw_raw_init_async.scen.json"); +// } + +// #[test] +// #[ignore = "not yet supported"] +// fn forw_raw_init_sync_accept_egld_rs() { +// world().run("scenarios/forw_raw_init_sync_accept_egld.scen.json"); +// } + +// #[test] +// #[ignore = "not yet supported"] +// fn forw_raw_init_sync_echo_rs() { +// world().run("scenarios/forw_raw_init_sync_echo.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_echo_rs() { +// world().run("scenarios/forw_raw_sync_echo.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_echo_caller_rs() { +// world().run("scenarios/forw_raw_sync_echo_caller.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_egld_rs() { +// world().run("scenarios/forw_raw_sync_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_sync_readonly_rs() { +// world().run("scenarios/forw_raw_sync_readonly.scen.json"); +// } + +// #[test] +// #[ignore = "different error code/message in Rust VM"] +// fn forw_raw_sync_reject_rs() { +// world().run("scenarios/forw_raw_sync_reject.scen.json"); +// } + +// #[test] +// #[ignore] +// fn forw_raw_sync_same_context_rs() { +// world().run("scenarios/forw_raw_sync_same_context.scen.json"); +// } + +// #[test] +// #[ignore] +// fn forw_raw_sync_same_context_egld_rs() { +// world().run("scenarios/forw_raw_sync_same_context_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_transf_exec_accept_egld_rs() { +// world().run("scenarios/forw_raw_transf_exec_accept_egld.scen.json"); +// } + +// #[test] +// fn forw_raw_transf_exec_reject_egld_rs() { +// world().run("scenarios/forw_raw_transf_exec_reject_egld.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_add_quantity_rs() { +// world().run("scenarios/forwarder_builtin_nft_add_quantity.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_burn_rs() { +// world().run("scenarios/forwarder_builtin_nft_burn.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_create_rs() { +// world().run("scenarios/forwarder_builtin_nft_create.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_local_burn_rs() { +// world().run("scenarios/forwarder_builtin_nft_local_burn.scen.json"); +// } + +// #[test] +// fn forwarder_builtin_nft_local_mint_rs() { +// world().run("scenarios/forwarder_builtin_nft_local_mint.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_accept_egld_rs() { +// world().run("scenarios/forwarder_call_async_accept_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_accept_esdt_rs() { +// world().run("scenarios/forwarder_call_async_accept_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_accept_nft_rs() { +// world().run("scenarios/forwarder_call_async_accept_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_multi_transfer_rs() { +// world().run("scenarios/forwarder_call_async_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_multi_transfer_egld_rs() { +// world().run("scenarios/forwarder_call_async_multi_transfer_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_retrieve_egld_rs() { +// world().run("scenarios/forwarder_call_async_retrieve_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_retrieve_esdt_rs() { +// world().run("scenarios/forwarder_call_async_retrieve_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_async_retrieve_nft_rs() { +// world().run("scenarios/forwarder_call_async_retrieve_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_egld_rs() { +// world().run("scenarios/forwarder_call_sync_accept_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_esdt_rs() { +// world().run("scenarios/forwarder_call_sync_accept_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_multi_transfer_rs() { +// world().run("scenarios/forwarder_call_sync_accept_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_multi_transfer_egld_rs() { +// world().run("scenarios/forwarder_call_sync_accept_multi_transfer_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_nft_rs() { +// world().run("scenarios/forwarder_call_sync_accept_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_then_read_egld_rs() { +// world().run("scenarios/forwarder_call_sync_accept_then_read_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_then_read_esdt_rs() { +// world().run("scenarios/forwarder_call_sync_accept_then_read_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_accept_then_read_nft_rs() { +// world().run("scenarios/forwarder_call_sync_accept_then_read_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_egld_rs() { +// world().run("scenarios/forwarder_call_sync_retrieve_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_egld_bt_rs() { +// world().run("scenarios/forwarder_call_sync_retrieve_egld_bt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_esdt_rs() { +// world().run("scenarios/forwarder_call_sync_retrieve_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_esdt_bt_rs() { +// world().run("scenarios/forwarder_call_sync_retrieve_esdt_bt.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_nft_rs() { +// world().run("scenarios/forwarder_call_sync_retrieve_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_sync_retrieve_nft_bt_rs() { +// world().run("scenarios/forwarder_call_sync_retrieve_nft_bt.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_egld_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_egld.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_egld_twice_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_egld_twice.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_esdt_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_esdt.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_esdt_twice_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_esdt_twice.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_multi_transfer_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_multi_transfer_egld_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld.scen.json"); +// } + +// #[test] +// #[ignore = "failed - tx"] +// fn forwarder_call_transf_exec_accept_multi_transfer_egld_failed_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_multi_transfer_egld_failed.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_nft_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_nft.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_return_values_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_return_values.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_accept_sft_twice_rs() { +// world().run("scenarios/forwarder_call_transf_exec_accept_sft_twice.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_reject_multi_transfer_rs() { +// world().run("scenarios/forwarder_call_transf_exec_reject_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_call_transf_exec_reject_nft_rs() { +// world().run("scenarios/forwarder_call_transf_exec_reject_nft.scen.json"); +// } + +// #[test] +// fn forwarder_contract_change_owner_rs() { +// world().run("scenarios/forwarder_contract_change_owner.scen.json"); +// } + +// #[test] +// fn forwarder_contract_deploy_rs() { +// world().run("scenarios/forwarder_contract_deploy.scen.json"); +// } + +// #[test] +// fn forwarder_contract_upgrade_rs() { +// world().run("scenarios/forwarder_contract_upgrade.scen.json"); +// } + +// #[test] +// fn forwarder_get_esdt_local_roles_rs() { +// world().run("scenarios/forwarder_get_esdt_local_roles.scen.json"); +// } + +// #[test] +// fn forwarder_get_esdt_token_data_rs() { +// world().run("scenarios/forwarder_get_esdt_token_data.scen.json"); +// } + +// #[test] +// fn forwarder_nft_add_uri_rs() { +// world().run("scenarios/forwarder_nft_add_uri.scen.json"); +// } + +// #[test] +// fn forwarder_nft_create_rs() { +// world().run("scenarios/forwarder_nft_create.scen.json"); +// } + +// #[test] +// fn forwarder_nft_create_and_send_rs() { +// world().run("scenarios/forwarder_nft_create_and_send.scen.json"); +// } + +// #[test] +// fn forwarder_nft_current_nonce_rs() { +// world().run("scenarios/forwarder_nft_current_nonce.scen.json"); +// } + +// #[test] +// fn forwarder_nft_decode_complex_attributes_rs() { +// world().run("scenarios/forwarder_nft_decode_complex_attributes.scen.json"); +// } + +// #[test] +// fn forwarder_nft_transfer_async_rs() { +// world().run("scenarios/forwarder_nft_transfer_async.scen.json"); +// } + +// #[test] +// fn forwarder_nft_transfer_exec_rs() { +// world().run("scenarios/forwarder_nft_transfer_exec.scen.json"); +// } + +// #[test] +// fn forwarder_nft_update_attributes_rs() { +// world().run("scenarios/forwarder_nft_update_attributes.scen.json"); +// } + +// #[test] +// fn forwarder_no_endpoint_rs() { +// world().run("scenarios/forwarder_no_endpoint.scen.json"); +// } + +// #[test] +// fn forwarder_retrieve_funds_with_accept_func_rs() { +// world().run("scenarios/forwarder_retrieve_funds_with_accept_func.scen.json"); +// } + +// #[test] +// fn forwarder_send_esdt_multi_transfer_rs() { +// world().run("scenarios/forwarder_send_esdt_multi_transfer.scen.json"); +// } + +// #[test] +// fn forwarder_sync_echo_rs() { +// world().run("scenarios/forwarder_sync_echo.scen.json"); +// } + +// #[test] +// fn forwarder_transfer_esdt_with_fees_rs() { +// world().run("scenarios/forwarder_transfer_esdt_with_fees.scen.json"); +// } + +// #[test] +// fn forwarder_validate_token_identifier_rs() { +// world().run("scenarios/forwarder_validate_token_identifier.scen.json"); +// } + +// #[test] +// fn promises_call_async_accept_egld_rs() { +// world().run("scenarios/promises_call_async_accept_egld.scen.json"); +// } + +// #[test] +// fn promises_call_async_accept_esdt_rs() { +// world().run("scenarios/promises_call_async_accept_esdt.scen.json"); +// } + +// #[test] +// fn promises_call_async_retrieve_egld_rs() { +// world().run("scenarios/promises_call_async_retrieve_egld.scen.json"); +// } + +// #[test] +// fn promises_call_async_retrieve_esdt_rs() { +// world().run("scenarios/promises_call_async_retrieve_esdt.scen.json"); +// } + +// #[test] +// fn promises_call_callback_directly_rs() { +// world().run("scenarios/promises_call_callback_directly.scen.json"); +// } + +// #[test] +// fn promises_call_transfer_callback_egld_rs() { +// world().run("scenarios/promises_call_transfer_callback_egld.scen.json"); +// } + +// #[test] +// fn promises_call_transfer_callback_call_value_egld_rs() { +// world().run("scenarios/promises_call_transfer_callback_call_value_egld.scen.json"); +// } + +// #[test] +// fn promises_call_transfer_callback_esdt_rs() { +// world().run("scenarios/promises_call_transfer_callback_esdt.scen.json"); +// } + +// #[test] +// fn promises_multi_transfer_rs() { +// world().run("scenarios/promises_multi_transfer.scen.json"); +// } + +// #[test] +// #[ignore = "TODO - some log is missing"] +// fn promises_multi_transfer_err_rs() { +// world().run("scenarios/promises_multi_transfer_err.scen.json"); +// } + +// #[test] +// #[ignore = "gas"] +// fn promises_single_transfer_rs() { +// world().run("scenarios/promises_single_transfer.scen.json"); +// } + +// #[test] +// #[ignore = "gas"] +// fn promises_single_transfer_gas_1_rs() { +// world().run("scenarios/promises_single_transfer_gas1.scen.json"); +// } + +// #[test] +// #[ignore = "gas"] +// fn promises_single_transfer_gas_2_rs() { +// world().run("scenarios/promises_single_transfer_gas2.scen.json"); +// } + +// #[test] +// fn proxy_test_init_rs() { +// world().run("scenarios/proxy_test_init.scen.json"); +// } + +// #[test] +// fn proxy_test_message_other_shard_rs() { +// world().run("scenarios/proxy_test_message_otherShard.scen.json"); +// } + +// #[test] +// fn proxy_test_message_other_shard_callback_rs() { +// world().run("scenarios/proxy_test_message_otherShard_callback.scen.json"); +// } + +// #[test] +// fn proxy_test_message_same_shard_rs() { +// world().run("scenarios/proxy_test_message_sameShard.scen.json"); +// } + +// #[test] +// fn proxy_test_message_same_shard_callback_rs() { +// world().run("scenarios/proxy_test_message_sameShard_callback.scen.json"); +// } + +// #[test] +// fn proxy_test_payment_other_shard_rs() { +// world().run("scenarios/proxy_test_payment_otherShard.scen.json"); +// } + +// #[test] +// fn proxy_test_payment_other_shard_callback_rs() { +// world().run("scenarios/proxy_test_payment_otherShard_callback.scen.json"); +// } + +// #[test] +// fn proxy_test_payment_same_shard_rs() { +// world().run("scenarios/proxy_test_payment_sameShard.scen.json"); +// } + +// #[test] +// fn proxy_test_payment_same_shard_callback_rs() { +// world().run("scenarios/proxy_test_payment_sameShard_callback.scen.json"); +// } + +// #[test] +// fn proxy_test_upgrade_rs() { +// world().run("scenarios/proxy_test_upgrade.scen.json"); +// } + +// #[test] +// fn recursive_caller_egld_1_rs() { +// world().run("scenarios/recursive_caller_egld_1.scen.json"); +// } + +// #[test] +// fn recursive_caller_esdt_1_rs() { +// world().run("scenarios/recursive_caller_esdt_1.scen.json"); +// } + +// #[test] +// fn send_egld_rs() { +// world().run("scenarios/send_egld.scen.json"); +// } + +// #[test] +// fn send_esdt_rs() { +// world().run("scenarios/send_esdt.scen.json"); +// }