From 23dd65a60124df5439e52e40a83a33596a9467eb Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 4 Mar 2024 16:17:36 +0100 Subject: [PATCH 001/185] removed unstable feature for panic --- framework/wasm-adapter/src/lib.rs | 1 - framework/wasm-adapter/src/panic.rs | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/framework/wasm-adapter/src/lib.rs b/framework/wasm-adapter/src/lib.rs index d105af6bcc..4fb63ea0f0 100644 --- a/framework/wasm-adapter/src/lib.rs +++ b/framework/wasm-adapter/src/lib.rs @@ -1,5 +1,4 @@ #![no_std] -#![feature(panic_info_message)] // Allows us to use alloc::vec::Vec; // TODO: get rid of the legacy API and also of this. diff --git a/framework/wasm-adapter/src/panic.rs b/framework/wasm-adapter/src/panic.rs index 164db2fc14..ae1e8f848b 100644 --- a/framework/wasm-adapter/src/panic.rs +++ b/framework/wasm-adapter/src/panic.rs @@ -1,5 +1,6 @@ use crate::api::VmApiImpl; pub use alloc::alloc::Layout; +use alloc::string::ToString; use multiversx_sc::{ api::{ErrorApi, ErrorApiImpl}, types::{ManagedBuffer, ManagedType}, @@ -18,9 +19,10 @@ pub fn panic_fmt(_: &PanicInfo) -> ! { /// Mostly used for debugging, the additional code is normally not deemed to be worth it. pub fn panic_fmt_with_message(panic_info: &PanicInfo) -> ! { let mut panic_msg = ManagedPanicMessage::default(); - if let Some(args) = panic_info.message() { + let message = panic_info.to_string(); + if !message.is_empty() { panic_msg.append_str("panic occurred: "); - let _ = core::fmt::write(&mut panic_msg, *args); + panic_msg.append_str(&message); } else { panic_msg.append_str("unknown panic occurred"); }; From 847a6277462657900d0e2303f7f628ce4fcc7b20 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 4 Mar 2024 18:25:08 +0100 Subject: [PATCH 002/185] format without memory alloc --- framework/wasm-adapter/src/panic.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/framework/wasm-adapter/src/panic.rs b/framework/wasm-adapter/src/panic.rs index ae1e8f848b..8417e9ce88 100644 --- a/framework/wasm-adapter/src/panic.rs +++ b/framework/wasm-adapter/src/panic.rs @@ -1,6 +1,5 @@ use crate::api::VmApiImpl; pub use alloc::alloc::Layout; -use alloc::string::ToString; use multiversx_sc::{ api::{ErrorApi, ErrorApiImpl}, types::{ManagedBuffer, ManagedType}, @@ -19,13 +18,10 @@ pub fn panic_fmt(_: &PanicInfo) -> ! { /// Mostly used for debugging, the additional code is normally not deemed to be worth it. pub fn panic_fmt_with_message(panic_info: &PanicInfo) -> ! { let mut panic_msg = ManagedPanicMessage::default(); - let message = panic_info.to_string(); - if !message.is_empty() { - panic_msg.append_str("panic occurred: "); - panic_msg.append_str(&message); - } else { - panic_msg.append_str("unknown panic occurred"); - }; + panic_msg.append_str("panic occurred: "); + + let _ = core::fmt::write(&mut panic_msg, format_args!("{:?}", panic_info.payload())) + .expect("Failed to write panic payload"); VmApiImpl::error_api_impl().signal_error_from_buffer(panic_msg.buffer.get_handle()) } From 48fb06167ff949044b12a1d92cf43b5234344294 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 5 Mar 2024 10:47:04 +0100 Subject: [PATCH 003/185] writing full panic for now, research ongoing --- framework/wasm-adapter/src/panic.rs | 34 +++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/framework/wasm-adapter/src/panic.rs b/framework/wasm-adapter/src/panic.rs index 8417e9ce88..1c51d8ca86 100644 --- a/framework/wasm-adapter/src/panic.rs +++ b/framework/wasm-adapter/src/panic.rs @@ -2,7 +2,7 @@ use crate::api::VmApiImpl; pub use alloc::alloc::Layout; use multiversx_sc::{ api::{ErrorApi, ErrorApiImpl}, - types::{ManagedBuffer, ManagedType}, + types::{ManagedBuffer, ManagedRef, ManagedType}, }; /// Also used in wasm crate macros. @@ -20,9 +20,31 @@ pub fn panic_fmt_with_message(panic_info: &PanicInfo) -> ! { let mut panic_msg = ManagedPanicMessage::default(); panic_msg.append_str("panic occurred: "); - let _ = core::fmt::write(&mut panic_msg, format_args!("{:?}", panic_info.payload())) + // downcasting the payload (default panic behavior in std) doesn't work in this scenario + // the payload is always a dummy value + // panic runtime is irrelevant for no_std applications + // let payload = if let Some(payload) = panic_info.payload().downcast_ref::<&'static str>() { + // *payload + // } else { + // "unknown panic occurred" + // }; + // panic_msg.append_str(payload); + + // write full panic + core::fmt::write(&mut panic_msg, format_args!("{:?}", panic_info)) .expect("Failed to write panic payload"); + // take str + // let str = format_args!("{:?}", panic_info).as_str(); + + // extract message + // let message = extract_panic_message(full_panic_str); + + // overwrite buf + // match message { + // Some(val) => panic_msg.overwrite(val.as_bytes()), + // None => panic_msg.overwrite(b"unknown panic"), + // } VmApiImpl::error_api_impl().signal_error_from_buffer(panic_msg.buffer.get_handle()) } @@ -35,6 +57,14 @@ impl ManagedPanicMessage { fn append_str(&mut self, s: &str) { self.buffer.append_bytes(s.as_bytes()); } + + fn _overwrite(&mut self, s: &str) { + self.buffer.overwrite(s.as_bytes()); + } + + fn _buffer(&self) -> ManagedRef> { + self.buffer.as_ref() + } } impl core::fmt::Write for ManagedPanicMessage { From 27bec3761c3955d69f82d17419b728210a11f5f1 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 12 Mar 2024 00:01:31 +0100 Subject: [PATCH 004/185] remove never type --- .../alloc-features/src/alloc_features_main.rs | 1 - .../basic-features/src/basic_features_main.rs | 1 - data/codec/src/codec_err_handler.rs | 7 +++++-- data/codec/src/lib.rs | 1 - framework/base/src/contract_base/wrappers/serializer.rs | 5 +++-- framework/base/src/io/arg_error_handler.rs | 5 ++++- framework/base/src/lib.rs | 1 - framework/base/src/storage/storage_get.rs | 9 +++------ framework/base/src/types/io/sc_error_static.rs | 5 +++-- 9 files changed, 18 insertions(+), 17 deletions(-) diff --git a/contracts/feature-tests/alloc-features/src/alloc_features_main.rs b/contracts/feature-tests/alloc-features/src/alloc_features_main.rs index d744d2195c..d5a83a1e70 100644 --- a/contracts/feature-tests/alloc-features/src/alloc_features_main.rs +++ b/contracts/feature-tests/alloc-features/src/alloc_features_main.rs @@ -1,5 +1,4 @@ #![no_std] -#![feature(never_type)] multiversx_sc::imports!(); diff --git a/contracts/feature-tests/basic-features/src/basic_features_main.rs b/contracts/feature-tests/basic-features/src/basic_features_main.rs index 2be5e1a535..2f0cb9a830 100644 --- a/contracts/feature-tests/basic-features/src/basic_features_main.rs +++ b/contracts/feature-tests/basic-features/src/basic_features_main.rs @@ -1,5 +1,4 @@ #![no_std] -#![feature(never_type)] multiversx_sc::imports!(); diff --git a/data/codec/src/codec_err_handler.rs b/data/codec/src/codec_err_handler.rs index c7e6d6d90d..de0b731fa9 100644 --- a/data/codec/src/codec_err_handler.rs +++ b/data/codec/src/codec_err_handler.rs @@ -34,12 +34,15 @@ impl DecodeErrorHandler for DefaultErrorHandler { } } +#[derive(Debug)] +pub enum Never {} + /// An error handler that panics immediately, instead of returning a `Result`. #[derive(Clone, Copy)] pub struct PanicErrorHandler; impl EncodeErrorHandler for PanicErrorHandler { - type HandledErr = !; + type HandledErr = Never; #[inline] fn handle_error(&self, err: EncodeError) -> Self::HandledErr { @@ -48,7 +51,7 @@ impl EncodeErrorHandler for PanicErrorHandler { } impl DecodeErrorHandler for PanicErrorHandler { - type HandledErr = !; + type HandledErr = Never; #[inline] fn handle_error(&self, err: DecodeError) -> Self::HandledErr { diff --git a/data/codec/src/lib.rs b/data/codec/src/lib.rs index cea3384871..df9d6e3f25 100644 --- a/data/codec/src/lib.rs +++ b/data/codec/src/lib.rs @@ -1,6 +1,5 @@ #![no_std] #![feature(try_trait_v2)] -#![feature(never_type)] #![feature(exhaustive_patterns)] #![feature(auto_traits)] #![feature(negative_impls)] diff --git a/framework/base/src/contract_base/wrappers/serializer.rs b/framework/base/src/contract_base/wrappers/serializer.rs index 00c3e9649c..5064f67b38 100644 --- a/framework/base/src/contract_base/wrappers/serializer.rs +++ b/framework/base/src/contract_base/wrappers/serializer.rs @@ -7,6 +7,7 @@ use crate::codec::{ use crate::{ api::{ErrorApi, ErrorApiImpl, ManagedTypeApi}, err_msg, + imports::Never, types::{heap::BoxedBytes, ManagedBuffer, ManagedType}, }; @@ -98,7 +99,7 @@ impl EncodeErrorHandler for ExitCodecErrorHandler where M: ManagedTypeApi + ErrorApi, { - type HandledErr = !; + type HandledErr = Never; fn handle_error(&self, err: EncodeError) -> Self::HandledErr { let mut message_buffer = ManagedBuffer::::new_from_bytes(self.base_message); @@ -111,7 +112,7 @@ impl DecodeErrorHandler for ExitCodecErrorHandler where M: ManagedTypeApi + ErrorApi, { - type HandledErr = !; + type HandledErr = Never; fn handle_error(&self, err: DecodeError) -> Self::HandledErr { let mut message_buffer = ManagedBuffer::::new_from_bytes(self.base_message); diff --git a/framework/base/src/io/arg_error_handler.rs b/framework/base/src/io/arg_error_handler.rs index 3fd6c19c8f..b750f106f1 100644 --- a/framework/base/src/io/arg_error_handler.rs +++ b/framework/base/src/io/arg_error_handler.rs @@ -29,11 +29,14 @@ where } } +#[derive(Debug)] +pub enum Never {} + impl DecodeErrorHandler for ArgErrorHandler where M: ManagedTypeApi + ErrorApi, { - type HandledErr = !; + type HandledErr = Never; #[inline(always)] fn handle_error(&self, err: DecodeError) -> Self::HandledErr { diff --git a/framework/base/src/lib.rs b/framework/base/src/lib.rs index 951e3b5b4f..9c3ecb592c 100644 --- a/framework/base/src/lib.rs +++ b/framework/base/src/lib.rs @@ -1,5 +1,4 @@ #![no_std] -#![feature(never_type)] #![feature(exhaustive_patterns)] #![feature(try_trait_v2)] #![feature(control_flow_enum)] diff --git a/framework/base/src/storage/storage_get.rs b/framework/base/src/storage/storage_get.rs index c4504df70f..790994b896 100644 --- a/framework/base/src/storage/storage_get.rs +++ b/framework/base/src/storage/storage_get.rs @@ -4,12 +4,9 @@ use crate::{ api::{ const_handles, use_raw_handle, ErrorApi, ErrorApiImpl, ManagedBufferApiImpl, ManagedTypeApi, StaticVarApiImpl, StorageReadApi, StorageReadApiImpl, - }, - codec::*, - err_msg, - types::{ + }, codec::*, err_msg, imports::Never, types::{ BigInt, BigUint, ManagedBuffer, ManagedBufferNestedDecodeInput, ManagedRef, ManagedType, - }, + } }; use alloc::boxed::Box; @@ -158,7 +155,7 @@ impl DecodeErrorHandler for StorageGetErrorHandler where M: ManagedTypeApi + ErrorApi, { - type HandledErr = !; + type HandledErr = Never; fn handle_error(&self, err: DecodeError) -> Self::HandledErr { let mut message_buffer = ManagedBuffer::::new_from_bytes(err_msg::STORAGE_DECODE_ERROR); diff --git a/framework/base/src/types/io/sc_error_static.rs b/framework/base/src/types/io/sc_error_static.rs index a63daa1571..9d06a41d64 100644 --- a/framework/base/src/types/io/sc_error_static.rs +++ b/framework/base/src/types/io/sc_error_static.rs @@ -1,6 +1,7 @@ use crate::codec::{self, DecodeError, EncodeError, TopEncodeMulti, TryStaticCast}; use crate::api::{EndpointFinishApi, ErrorApiImpl}; +use crate::imports::Never; use super::SCError; @@ -54,8 +55,8 @@ impl From for StaticSCError { } } -impl From for StaticSCError { - fn from(_: !) -> Self { +impl From for StaticSCError { + fn from(_: Never) -> Self { unreachable!() } } From c0f50ce35d269e9f23cb8c01f2f436acdf606fa4 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 12 Mar 2024 01:04:15 +0100 Subject: [PATCH 005/185] cut path from panic info --- .../scenarios/panic-after-log.scen.json | 2 +- .../scenarios/panic-message.scen.json | 2 +- framework/wasm-adapter/src/panic.rs | 40 ++++--------------- 3 files changed, 9 insertions(+), 35 deletions(-) diff --git a/contracts/feature-tests/panic-message-features/scenarios/panic-after-log.scen.json b/contracts/feature-tests/panic-message-features/scenarios/panic-after-log.scen.json index c652454513..f28323bf54 100644 --- a/contracts/feature-tests/panic-message-features/scenarios/panic-after-log.scen.json +++ b/contracts/feature-tests/panic-message-features/scenarios/panic-after-log.scen.json @@ -30,7 +30,7 @@ "expect": { "out": [], "status": "0x04", - "message": "str:panic occurred: panic after log", + "message": "str:panic occured: PanicInfo { payload: Any { .. }, message: Some(panic after log), location: Location { file: panic_features.rs, line: 22, col: 9 }, can_unwind: true, force_no_backtrace: false }", "logs": [ { "address": "address:an_account", diff --git a/contracts/feature-tests/panic-message-features/scenarios/panic-message.scen.json b/contracts/feature-tests/panic-message-features/scenarios/panic-message.scen.json index 7852b73228..816c4b3eef 100644 --- a/contracts/feature-tests/panic-message-features/scenarios/panic-message.scen.json +++ b/contracts/feature-tests/panic-message-features/scenarios/panic-message.scen.json @@ -32,7 +32,7 @@ "expect": { "out": [], "status": "0x04", - "message": "str:panic occurred: example panic message 123", + "message": "str:panic occured: PanicInfo { payload: Any { .. }, message: Some(panic after log), location: Location { file: panic_features.rs, line: 22, col: 9 }, can_unwind: true, force_no_backtrace: false }", "logs": "*", "gas": "*", "refund": "*" diff --git a/framework/wasm-adapter/src/panic.rs b/framework/wasm-adapter/src/panic.rs index 1c51d8ca86..603c4846e1 100644 --- a/framework/wasm-adapter/src/panic.rs +++ b/framework/wasm-adapter/src/panic.rs @@ -2,7 +2,7 @@ use crate::api::VmApiImpl; pub use alloc::alloc::Layout; use multiversx_sc::{ api::{ErrorApi, ErrorApiImpl}, - types::{ManagedBuffer, ManagedRef, ManagedType}, + types::{ManagedBuffer, ManagedType}, }; /// Also used in wasm crate macros. @@ -20,31 +20,9 @@ pub fn panic_fmt_with_message(panic_info: &PanicInfo) -> ! { let mut panic_msg = ManagedPanicMessage::default(); panic_msg.append_str("panic occurred: "); - // downcasting the payload (default panic behavior in std) doesn't work in this scenario - // the payload is always a dummy value - // panic runtime is irrelevant for no_std applications - // let payload = if let Some(payload) = panic_info.payload().downcast_ref::<&'static str>() { - // *payload - // } else { - // "unknown panic occurred" - // }; - // panic_msg.append_str(payload); - - // write full panic core::fmt::write(&mut panic_msg, format_args!("{:?}", panic_info)) - .expect("Failed to write panic payload"); - - // take str - // let str = format_args!("{:?}", panic_info).as_str(); + .unwrap_or_else(|_| panic_msg.append_str("unable to write panic")); - // extract message - // let message = extract_panic_message(full_panic_str); - - // overwrite buf - // match message { - // Some(val) => panic_msg.overwrite(val.as_bytes()), - // None => panic_msg.overwrite(b"unknown panic"), - // } VmApiImpl::error_api_impl().signal_error_from_buffer(panic_msg.buffer.get_handle()) } @@ -57,19 +35,15 @@ impl ManagedPanicMessage { fn append_str(&mut self, s: &str) { self.buffer.append_bytes(s.as_bytes()); } - - fn _overwrite(&mut self, s: &str) { - self.buffer.overwrite(s.as_bytes()); - } - - fn _buffer(&self) -> ManagedRef> { - self.buffer.as_ref() - } } impl core::fmt::Write for ManagedPanicMessage { fn write_str(&mut self, s: &str) -> core::fmt::Result { - self.append_str(s); + let file_name = match s.rfind('/') { + Some(index) => &s[index + 1..], + None => s, + }; + self.append_str(file_name); Ok(()) } } From 14567b81a31107efef73f3fc78ed7c2dda54b50e Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 12 Mar 2024 01:14:04 +0100 Subject: [PATCH 006/185] remove explicit path from panic info location sign --- framework/wasm-adapter/src/panic.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/framework/wasm-adapter/src/panic.rs b/framework/wasm-adapter/src/panic.rs index 603c4846e1..59a9545835 100644 --- a/framework/wasm-adapter/src/panic.rs +++ b/framework/wasm-adapter/src/panic.rs @@ -35,6 +35,10 @@ impl ManagedPanicMessage { fn append_str(&mut self, s: &str) { self.buffer.append_bytes(s.as_bytes()); } + + fn _overwrite(&mut self, s: &str) { + self.buffer.overwrite(s.as_bytes()); + } } impl core::fmt::Write for ManagedPanicMessage { From 4ac41ee5ac79d6493e9b9c5b1feb4c2d0caf52c3 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 12 Mar 2024 13:14:36 +0100 Subject: [PATCH 007/185] mandos tests change --- .../scenarios/error-message-after-log.txt | 1 + .../panic-message-features/scenarios/error-message.txt | 1 + .../panic-message-features/scenarios/panic-after-log.scen.json | 2 +- .../panic-message-features/scenarios/panic-message.scen.json | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 contracts/feature-tests/panic-message-features/scenarios/error-message-after-log.txt create mode 100644 contracts/feature-tests/panic-message-features/scenarios/error-message.txt diff --git a/contracts/feature-tests/panic-message-features/scenarios/error-message-after-log.txt b/contracts/feature-tests/panic-message-features/scenarios/error-message-after-log.txt new file mode 100644 index 0000000000..09fa24df8b --- /dev/null +++ b/contracts/feature-tests/panic-message-features/scenarios/error-message-after-log.txt @@ -0,0 +1 @@ +panic occured: PanicInfo { payload: Any { .. }, message: Some(panic after log), location: Location { file: "panic_features.rs", line: 22, col: 9 }, can_unwind: true, force_no_backtrace: false } \ No newline at end of file diff --git a/contracts/feature-tests/panic-message-features/scenarios/error-message.txt b/contracts/feature-tests/panic-message-features/scenarios/error-message.txt new file mode 100644 index 0000000000..0c49fcc44d --- /dev/null +++ b/contracts/feature-tests/panic-message-features/scenarios/error-message.txt @@ -0,0 +1 @@ +panic occured: PanicInfo { payload: Any { .. }, message: Some(example panic message 123), location: Location { file: "panic_features.rs", line: 22, col: 9 }, can_unwind: true, force_no_backtrace: false } \ No newline at end of file diff --git a/contracts/feature-tests/panic-message-features/scenarios/panic-after-log.scen.json b/contracts/feature-tests/panic-message-features/scenarios/panic-after-log.scen.json index f28323bf54..91e0efe2f9 100644 --- a/contracts/feature-tests/panic-message-features/scenarios/panic-after-log.scen.json +++ b/contracts/feature-tests/panic-message-features/scenarios/panic-after-log.scen.json @@ -30,7 +30,7 @@ "expect": { "out": [], "status": "0x04", - "message": "str:panic occured: PanicInfo { payload: Any { .. }, message: Some(panic after log), location: Location { file: panic_features.rs, line: 22, col: 9 }, can_unwind: true, force_no_backtrace: false }", + "message": "file:error-message-after-log.txt", "logs": [ { "address": "address:an_account", diff --git a/contracts/feature-tests/panic-message-features/scenarios/panic-message.scen.json b/contracts/feature-tests/panic-message-features/scenarios/panic-message.scen.json index 816c4b3eef..bc8ad34548 100644 --- a/contracts/feature-tests/panic-message-features/scenarios/panic-message.scen.json +++ b/contracts/feature-tests/panic-message-features/scenarios/panic-message.scen.json @@ -32,7 +32,7 @@ "expect": { "out": [], "status": "0x04", - "message": "str:panic occured: PanicInfo { payload: Any { .. }, message: Some(panic after log), location: Location { file: panic_features.rs, line: 22, col: 9 }, can_unwind: true, force_no_backtrace: false }", + "message": "file:error-message.txt", "logs": "*", "gas": "*", "refund": "*" From 2b4c4ac8e555e7edb7bf32828f52678e86d93afc Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 12 Mar 2024 16:06:12 +0100 Subject: [PATCH 008/185] remove exhaustive patterns --- data/codec/src/equivalent/codec_convert.rs | 11 +- data/codec/src/lib.rs | 1 - data/codec/src/single/top_en.rs | 5 +- data/codec/src/test_util.rs | 28 ++++- .../src/contract_base/wrappers/serializer.rs | 30 +++-- .../wrappers/storage_raw_wrapper.rs | 7 +- .../base/src/formatter/formatter_traits.rs | 8 +- framework/base/src/io/arg_nested_tuple.rs | 13 +- framework/base/src/io/finish.rs | 5 +- framework/base/src/lib.rs | 1 - framework/base/src/log_util.rs | 14 ++- framework/base/src/storage/storage_get.rs | 15 ++- .../src/storage/storage_get_from_address.rs | 7 +- framework/base/src/storage/storage_key.rs | 7 +- framework/base/src/storage/storage_set.rs | 7 +- .../src/types/interaction/callback_closure.rs | 5 +- .../types/interaction/contract_call_exec.rs | 6 +- .../src/types/interaction/contract_deploy.rs | 11 +- .../types/interaction/managed_arg_buffer.rs | 22 +++- .../base/src/types/io/sc_error_static.rs | 6 +- framework/base/src/types/io/sc_result.rs | 5 +- .../multi_value/multi_value_encoded.rs | 7 +- .../multi_value/multi_value_encoded_iter.rs | 5 +- .../types/managed/wrapped/esdt_token_data.rs | 8 +- framework/scenario/src/lib.rs | 2 +- .../src/scenario/model/step/sc_call_step.rs | 5 +- .../model/transaction/typed_response.rs | 5 +- .../scenario/tests/hex_call_data_arg_load.rs | 117 ++++++++++++------ 28 files changed, 256 insertions(+), 107 deletions(-) diff --git a/data/codec/src/equivalent/codec_convert.rs b/data/codec/src/equivalent/codec_convert.rs index dadcda2036..533bd60294 100644 --- a/data/codec/src/equivalent/codec_convert.rs +++ b/data/codec/src/equivalent/codec_convert.rs @@ -9,9 +9,14 @@ where Medium: Default + TopDecodeMultiInput + TopEncodeMultiOutput, { let mut medium: Medium = Default::default(); - let Ok(()) = from.multi_encode_or_handle_err(&mut medium, PanicErrorHandler); - let Ok(result) = To::multi_decode_or_handle_err(&mut medium, PanicErrorHandler); - result + match from.multi_encode_or_handle_err(&mut medium, PanicErrorHandler) { + Ok(()) => (), + Err(err) => panic!("panic occured: {:#?}", err), + }; + match To::multi_decode_or_handle_err(&mut medium, PanicErrorHandler) { + Ok(result) => result, + Err(err) => panic!("panic occured: {:#?}", err), + } } #[allow(unused)] diff --git a/data/codec/src/lib.rs b/data/codec/src/lib.rs index df9d6e3f25..6ee069e3d0 100644 --- a/data/codec/src/lib.rs +++ b/data/codec/src/lib.rs @@ -1,6 +1,5 @@ #![no_std] #![feature(try_trait_v2)] -#![feature(exhaustive_patterns)] #![feature(auto_traits)] #![feature(negative_impls)] diff --git a/data/codec/src/single/top_en.rs b/data/codec/src/single/top_en.rs index 2826c7d3d2..71553341bf 100644 --- a/data/codec/src/single/top_en.rs +++ b/data/codec/src/single/top_en.rs @@ -48,6 +48,9 @@ pub fn top_encode_to_vec_u8(obj: &T) -> Result, EncodeErro pub fn top_encode_to_vec_u8_or_panic(obj: &T) -> Vec { let mut bytes = Vec::::new(); - let Ok(()) = obj.top_encode_or_handle_err(&mut bytes, PanicErrorHandler); + match obj.top_encode_or_handle_err(&mut bytes, PanicErrorHandler) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } bytes } diff --git a/data/codec/src/test_util.rs b/data/codec/src/test_util.rs index d8155a082c..588c8aba40 100644 --- a/data/codec/src/test_util.rs +++ b/data/codec/src/test_util.rs @@ -6,7 +6,10 @@ use core::fmt::Debug; /// Do not use in smart contracts! pub fn top_encode_to_vec_u8_or_panic(obj: &T) -> Vec { let mut bytes = Vec::::new(); - let Ok(()) = obj.top_encode_or_handle_err(&mut bytes, PanicErrorHandler); + match obj.top_encode_or_handle_err(&mut bytes, PanicErrorHandler) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + }; bytes } @@ -14,7 +17,10 @@ pub fn top_encode_to_vec_u8_or_panic(obj: &T) -> Vec { /// Do not use in smart contracts! pub fn dep_encode_to_vec_or_panic(obj: &T) -> Vec { let mut bytes = Vec::::new(); - let Ok(()) = obj.dep_encode_or_handle_err(&mut bytes, PanicErrorHandler); + match obj.dep_encode_or_handle_err(&mut bytes, PanicErrorHandler) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + }; bytes } @@ -41,15 +47,21 @@ pub fn check_dep_encode(obj: &T) -> Vec { /// Calls nested decode and panics if an encoding error occurs. /// Do not use in smart contracts! pub fn dep_decode_from_byte_slice_or_panic(input: &[u8]) -> T { - let Ok(result) = dep_decode_from_byte_slice(input, PanicErrorHandler); - result + match dep_decode_from_byte_slice(input, PanicErrorHandler) { + Ok(result) => result, + Err(err) => panic!("panic occured: {:#?}", err), + } } /// Calls both the fast exit and the regular top-decode, /// compares that the outputs are equal, then returns the result. /// To be used in serialization tests. pub fn check_top_decode(bytes: &[u8]) -> T { - let Ok(fast_exit_obj) = T::top_decode_or_handle_err(bytes, PanicErrorHandler); + let fast_exit_obj = match T::top_decode_or_handle_err(bytes, PanicErrorHandler) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; + let result_obj = T::top_decode_or_handle_err(bytes, DefaultErrorHandler).unwrap(); assert_eq!(fast_exit_obj, result_obj); fast_exit_obj @@ -59,7 +71,11 @@ pub fn check_top_decode(bytes: &[u8]) -> T { /// compares that the outputs are equal, then returns the result. /// To be used in serialization tests. pub fn check_dep_decode(bytes: &[u8]) -> T { - let Ok(fast_exit_obj) = dep_decode_from_byte_slice(bytes, PanicErrorHandler); + let fast_exit_obj = match dep_decode_from_byte_slice(bytes, PanicErrorHandler) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; + let result_obj = dep_decode_from_byte_slice(bytes, DefaultErrorHandler).unwrap(); assert_eq!(fast_exit_obj, result_obj); fast_exit_obj diff --git a/framework/base/src/contract_base/wrappers/serializer.rs b/framework/base/src/contract_base/wrappers/serializer.rs index 5064f67b38..2c4ce1ef49 100644 --- a/framework/base/src/contract_base/wrappers/serializer.rs +++ b/framework/base/src/contract_base/wrappers/serializer.rs @@ -31,19 +31,25 @@ where pub fn top_encode_to_managed_buffer(&self, value: &T) -> ManagedBuffer { let mut result = ManagedBuffer::new(); - let Ok(()) = value.top_encode_or_handle_err( + match value.top_encode_or_handle_err( &mut result, ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + }; result } pub fn top_encode_to_boxed_bytes(&self, value: &T) -> BoxedBytes { let mut result = BoxedBytes::empty(); - let Ok(()) = value.top_encode_or_handle_err( + match value.top_encode_or_handle_err( &mut result, ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + }; result } @@ -56,19 +62,23 @@ where buffer: &ManagedBuffer, error_message: &'static [u8], ) -> T { - let Ok(value) = T::top_decode_or_handle_err( + match T::top_decode_or_handle_err( buffer.clone(), // TODO: remove clone ExitCodecErrorHandler::::from(error_message), - ); - value + ) { + Ok(value) => value, + Err(err) => panic!("panic occured: {:#?}", err), + } } pub fn top_decode_from_byte_slice(&self, slice: &[u8]) -> T { - let Ok(value) = T::top_decode_or_handle_err( + match T::top_decode_or_handle_err( slice, ExitCodecErrorHandler::::from(err_msg::SERIALIZER_DECODE_ERROR), - ); - value + ) { + Ok(value) => value, + Err(err) => panic!("panic occured: {:#?}", err), + } } } diff --git a/framework/base/src/contract_base/wrappers/storage_raw_wrapper.rs b/framework/base/src/contract_base/wrappers/storage_raw_wrapper.rs index 0b0280a111..e934d6477d 100644 --- a/framework/base/src/contract_base/wrappers/storage_raw_wrapper.rs +++ b/framework/base/src/contract_base/wrappers/storage_raw_wrapper.rs @@ -63,9 +63,10 @@ where result_buffer.get_handle(), ); - let Ok(value) = - V::top_decode_or_handle_err(result_buffer, StorageGetErrorHandler::::default()); - value + match V::top_decode_or_handle_err(result_buffer, StorageGetErrorHandler::::default()) { + Ok(value) => value, + Err(err) => panic!("panic occured: {:#?}", err), + } } /// Write a serializable value to storage under the given key diff --git a/framework/base/src/formatter/formatter_traits.rs b/framework/base/src/formatter/formatter_traits.rs index 7faa0b00f5..cbabc27f8c 100644 --- a/framework/base/src/formatter/formatter_traits.rs +++ b/framework/base/src/formatter/formatter_traits.rs @@ -90,10 +90,14 @@ pub trait SCCodec { impl SCCodec for T { fn fmt(&self, f: &mut F) { let mut encoded = ManagedBuffer::::new(); - let Ok(()) = self.top_encode_or_handle_err( + + match self.top_encode_or_handle_err( &mut encoded, ExitCodecErrorHandler::::from(err_msg::FORMATTER_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + }; SCLowerHex::fmt(&encoded, f); } } diff --git a/framework/base/src/io/arg_nested_tuple.rs b/framework/base/src/io/arg_nested_tuple.rs index c3838766e3..5caecd9b4c 100644 --- a/framework/base/src/io/arg_nested_tuple.rs +++ b/framework/base/src/io/arg_nested_tuple.rs @@ -71,8 +71,10 @@ where { let mut arg_loader = EndpointSingleArgLoader::::new(index); let h = ArgErrorHandler::::from(arg_id); - let Ok(value) = T::multi_decode_or_handle_err(&mut arg_loader, h); - value + match T::multi_decode_or_handle_err(&mut arg_loader, h) { + Ok(value) => value, + Err(err) => panic!("panic occured: {:#?}", err), + } } #[inline(never)] @@ -83,9 +85,10 @@ where T: TopDecodeMulti, { let h = ArgErrorHandler::::from(arg_id); - let result = T::multi_decode_or_handle_err(loader, h); - let Ok(value) = result; - value + match T::multi_decode_or_handle_err(loader, h) { + Ok(value) => value, + Err(err) => panic!("panic occured: {:#?}", err), + } } /// Models an argument tree of the form `(arg1, (arg2, ... (argn, ())))`, used for retrieving endpoint arguments. diff --git a/framework/base/src/io/finish.rs b/framework/base/src/io/finish.rs index f44cc02c5e..6842d63bb5 100644 --- a/framework/base/src/io/finish.rs +++ b/framework/base/src/io/finish.rs @@ -20,7 +20,10 @@ where { let h = ExitCodecErrorHandler::::from(err_msg::FINISH_ENCODE_ERROR); let mut output = ApiOutputAdapter::::default(); - let Ok(()) = item.multi_encode_or_handle_err(&mut output, h); + match item.multi_encode_or_handle_err(&mut output, h) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } #[derive(Clone)] diff --git a/framework/base/src/lib.rs b/framework/base/src/lib.rs index 9c3ecb592c..5fc3b0e2ed 100644 --- a/framework/base/src/lib.rs +++ b/framework/base/src/lib.rs @@ -1,5 +1,4 @@ #![no_std] -#![feature(exhaustive_patterns)] #![feature(try_trait_v2)] #![feature(control_flow_enum)] #![feature(negative_impls)] diff --git a/framework/base/src/log_util.rs b/framework/base/src/log_util.rs index 4fa4b14963..9a01f2af03 100644 --- a/framework/base/src/log_util.rs +++ b/framework/base/src/log_util.rs @@ -21,10 +21,13 @@ where A: ErrorApi + ManagedTypeApi, T: TopEncodeMulti, { - let Ok(()) = topic.multi_encode_or_handle_err( + match topic.multi_encode_or_handle_err( accumulator, ExitCodecErrorHandler::::from(err_msg::LOG_TOPIC_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } pub fn serialize_log_data(data: T) -> ManagedBuffer @@ -33,10 +36,13 @@ where A: ErrorApi + ManagedTypeApi, { let mut data_buffer = ManagedBuffer::new(); - let Ok(()) = data.top_encode_or_handle_err( + match data.top_encode_or_handle_err( &mut data_buffer, ExitCodecErrorHandler::::from(err_msg::LOG_DATA_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + }; data_buffer } diff --git a/framework/base/src/storage/storage_get.rs b/framework/base/src/storage/storage_get.rs index 790994b896..2d68925846 100644 --- a/framework/base/src/storage/storage_get.rs +++ b/framework/base/src/storage/storage_get.rs @@ -4,9 +4,13 @@ use crate::{ api::{ const_handles, use_raw_handle, ErrorApi, ErrorApiImpl, ManagedBufferApiImpl, ManagedTypeApi, StaticVarApiImpl, StorageReadApi, StorageReadApiImpl, - }, codec::*, err_msg, imports::Never, types::{ + }, + codec::*, + err_msg, + imports::Never, + types::{ BigInt, BigUint, ManagedBuffer, ManagedBufferNestedDecodeInput, ManagedRef, ManagedType, - } + }, }; use alloc::boxed::Box; @@ -110,10 +114,13 @@ where T: TopDecode, A: StorageReadApi + ManagedTypeApi + ErrorApi, { - let Ok(value) = T::top_decode_or_handle_err( + let value = match T::top_decode_or_handle_err( StorageGetInput::new(key), StorageGetErrorHandler::::default(), - ); + ) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; value } diff --git a/framework/base/src/storage/storage_get_from_address.rs b/framework/base/src/storage/storage_get_from_address.rs index 8cfeb531f1..44be1896f0 100644 --- a/framework/base/src/storage/storage_get_from_address.rs +++ b/framework/base/src/storage/storage_get_from_address.rs @@ -126,10 +126,13 @@ where T: TopDecode, A: StorageReadApi + ManagedTypeApi + ErrorApi, { - let Ok(value) = T::top_decode_or_handle_err( + let value = match T::top_decode_or_handle_err( StorageGetFromAddressInput::new(addr, key), StorageGetErrorHandler::::default(), - ); + ) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; value } diff --git a/framework/base/src/storage/storage_key.rs b/framework/base/src/storage/storage_key.rs index 47520108a6..addd91859d 100644 --- a/framework/base/src/storage/storage_key.rs +++ b/framework/base/src/storage/storage_key.rs @@ -60,10 +60,13 @@ where where T: NestedEncode, { - let Ok(()) = item.dep_encode_or_handle_err( + match item.dep_encode_or_handle_err( &mut self.buffer, ExitCodecErrorHandler::::from(err_msg::STORAGE_KEY_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } #[inline] diff --git a/framework/base/src/storage/storage_set.rs b/framework/base/src/storage/storage_set.rs index e988b47351..30381f3e89 100644 --- a/framework/base/src/storage/storage_set.rs +++ b/framework/base/src/storage/storage_set.rs @@ -85,10 +85,13 @@ where T: TopEncode, A: StorageWriteApi + ManagedTypeApi + ErrorApi, { - let Ok(()) = value.top_encode_or_handle_err( + match value.top_encode_or_handle_err( StorageSetOutput::new(key), ExitCodecErrorHandler::::from(err_msg::STORAGE_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } /// Useful for storage mappers. diff --git a/framework/base/src/types/interaction/callback_closure.rs b/framework/base/src/types/interaction/callback_closure.rs index 98b6fece64..e1f748228b 100644 --- a/framework/base/src/types/interaction/callback_closure.rs +++ b/framework/base/src/types/interaction/callback_closure.rs @@ -52,7 +52,10 @@ impl CallbackClosure { pub fn push_endpoint_arg(&mut self, endpoint_arg: &T) { let h = ExitCodecErrorHandler::::from(err_msg::CONTRACT_CALL_ENCODE_ERROR); - let Ok(()) = endpoint_arg.multi_encode_or_handle_err(&mut self.closure_args, h); + match endpoint_arg.multi_encode_or_handle_err(&mut self.closure_args, h) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } pub fn save_to_storage(&self) { diff --git a/framework/base/src/types/interaction/contract_call_exec.rs b/framework/base/src/types/interaction/contract_call_exec.rs index 260897e1a6..b6790206b7 100644 --- a/framework/base/src/types/interaction/contract_call_exec.rs +++ b/framework/base/src/types/interaction/contract_call_exec.rs @@ -226,6 +226,8 @@ where let mut loader = ManagedResultArgLoader::new(raw_result); let arg_id = ArgId::from(&b"sync result"[..]); let h: ArgErrorHandler = ArgErrorHandler::::from(arg_id); - let Ok(result) = RequestedResult::multi_decode_or_handle_err(&mut loader, h); - result + match RequestedResult::multi_decode_or_handle_err(&mut loader, h) { + Ok(result) => result, + Err(err) => panic!("panic occured: {:#?}", err), + } } diff --git a/framework/base/src/types/interaction/contract_deploy.rs b/framework/base/src/types/interaction/contract_deploy.rs index 1c61b7c977..7ae893d2a0 100644 --- a/framework/base/src/types/interaction/contract_deploy.rs +++ b/framework/base/src/types/interaction/contract_deploy.rs @@ -82,7 +82,10 @@ where pub fn push_endpoint_arg(&mut self, endpoint_arg: &T) { let h = ExitCodecErrorHandler::::from(err_msg::CONTRACT_CALL_ENCODE_ERROR); - let Ok(()) = endpoint_arg.multi_encode_or_handle_err(&mut self.arg_buffer, h); + match endpoint_arg.multi_encode_or_handle_err(&mut self.arg_buffer, h) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } fn resolve_gas_limit(&self) -> u64 { @@ -108,8 +111,10 @@ where let mut loader = ManagedResultArgLoader::new(raw_result); let arg_id = ArgId::from(&b"init result"[..]); let h = ArgErrorHandler::::from(arg_id); - let Ok(result) = RequestedResult::multi_decode_or_handle_err(&mut loader, h); - result + match RequestedResult::multi_decode_or_handle_err(&mut loader, h) { + Ok(result) => result, + Err(err) => panic!("panic occured: {:#?}", err), + } } /// Executes immediately, synchronously, and returns Some(Address) of the deployed contract. diff --git a/framework/base/src/types/interaction/managed_arg_buffer.rs b/framework/base/src/types/interaction/managed_arg_buffer.rs index b0cee5db30..30c2ea54f3 100644 --- a/framework/base/src/types/interaction/managed_arg_buffer.rs +++ b/framework/base/src/types/interaction/managed_arg_buffer.rs @@ -180,16 +180,22 @@ where { pub fn push_arg(&mut self, arg: T) { let mut encoded_buffer = ManagedBuffer::new(); - let Ok(()) = arg.top_encode_or_handle_err( + match arg.top_encode_or_handle_err( &mut encoded_buffer, ExitCodecErrorHandler::::from(err_msg::CONTRACT_CALL_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + }; self.push_arg_raw(encoded_buffer); } pub fn push_multi_arg(&mut self, arg: &T) { let h = ExitCodecErrorHandler::::from(err_msg::CONTRACT_CALL_ENCODE_ERROR); - let Ok(()) = arg.multi_encode_or_handle_err(self, h); + match arg.multi_encode_or_handle_err(self, h) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } } @@ -279,7 +285,10 @@ where pub fn serialize_overwrite(&self, dest: &mut ManagedBuffer) { dest.overwrite(&[]); let h = ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR); - let Ok(()) = self.top_encode_or_handle_err(dest, h); + match self.top_encode_or_handle_err(dest, h) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } /// Deserializes self from a managed buffer in-place, without creating a new handle. @@ -289,7 +298,10 @@ where self.clear(); let mut nested_de_input = ManagedBufferNestedDecodeInput::new(source); while nested_de_input.remaining_len() > 0 { - let Ok(item) = ManagedBuffer::dep_decode_or_handle_err(&mut nested_de_input, h); + let item = match ManagedBuffer::dep_decode_or_handle_err(&mut nested_de_input, h) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; self.push_arg_raw(item); } } diff --git a/framework/base/src/types/io/sc_error_static.rs b/framework/base/src/types/io/sc_error_static.rs index 9d06a41d64..6569715131 100644 --- a/framework/base/src/types/io/sc_error_static.rs +++ b/framework/base/src/types/io/sc_error_static.rs @@ -1,7 +1,9 @@ use crate::codec::{self, DecodeError, EncodeError, TopEncodeMulti, TryStaticCast}; -use crate::api::{EndpointFinishApi, ErrorApiImpl}; -use crate::imports::Never; +use crate::{ + api::{EndpointFinishApi, ErrorApiImpl}, + imports::Never, +}; use super::SCError; diff --git a/framework/base/src/types/io/sc_result.rs b/framework/base/src/types/io/sc_result.rs index 6278987b45..c4de593afc 100644 --- a/framework/base/src/types/io/sc_result.rs +++ b/framework/base/src/types/io/sc_result.rs @@ -105,7 +105,10 @@ where FromErr: Into, { fn from_residual(residual: Result) -> Self { - let Err(e) = residual; + let e = match residual { + Ok(_) => panic!("residual is not error"), + Err(err) => err, + }; SCResult::Err(e.into()) } } diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs index ebf8e0cb69..e32165b554 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs @@ -68,10 +68,13 @@ where T: TopEncodeMulti, { pub fn push(&mut self, item: T) { - let Ok(()) = item.multi_encode_or_handle_err( + match item.multi_encode_or_handle_err( &mut self.raw_buffers, ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR), - ); + ) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + } } } diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded_iter.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded_iter.rs index 99ef7fa132..e0e9b1a5e5 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded_iter.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded_iter.rs @@ -54,7 +54,10 @@ where if self.data_loader.has_next() { let arg_id = ArgId::from(&b"var args"[..]); let h = ArgErrorHandler::::from(arg_id); - let Ok(result) = T::multi_decode_or_handle_err(&mut self.data_loader, h); + let result = match T::multi_decode_or_handle_err(&mut self.data_loader, h) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; Some(result) } else { None diff --git a/framework/base/src/types/managed/wrapped/esdt_token_data.rs b/framework/base/src/types/managed/wrapped/esdt_token_data.rs index d4b13afdbe..ac44045e25 100644 --- a/framework/base/src/types/managed/wrapped/esdt_token_data.rs +++ b/framework/base/src/types/managed/wrapped/esdt_token_data.rs @@ -53,10 +53,12 @@ impl EsdtTokenData { } pub fn decode_attributes(&self) -> T { - let Ok(value) = T::top_decode_or_handle_err( + match T::top_decode_or_handle_err( self.attributes.clone(), // TODO: remove clone ExitCodecErrorHandler::::from(DECODE_ATTRIBUTE_ERROR_PREFIX), - ); - value + ) { + Ok(value) => value, + Err(err) => panic!("panic occured: {:#?}", err), + } } } diff --git a/framework/scenario/src/lib.rs b/framework/scenario/src/lib.rs index 0110147ed3..61286a2e50 100644 --- a/framework/scenario/src/lib.rs +++ b/framework/scenario/src/lib.rs @@ -1,5 +1,5 @@ #![allow(clippy::type_complexity)] -#![feature(exhaustive_patterns)] +// #![feature(exhaustive_patterns)] pub mod api; pub mod bech32; diff --git a/framework/scenario/src/scenario/model/step/sc_call_step.rs b/framework/scenario/src/scenario/model/step/sc_call_step.rs index f18bf4c2c5..cf9d2b4026 100644 --- a/framework/scenario/src/scenario/model/step/sc_call_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_call_step.rs @@ -255,7 +255,10 @@ pub fn convert_call_args(arg_buffer: &ManagedArgBuffer) -> Vec(t: T) -> TxExpect { let mut encoded = Vec::>::new(); - let Ok(()) = t.multi_encode_or_handle_err(&mut encoded, PanicErrorHandler); + match t.multi_encode_or_handle_err(&mut encoded, PanicErrorHandler) { + Ok(_) => {}, + Err(err) => panic!("panic occured: {:#?}", err), + }; let mut expect = TxExpect::ok().no_result(); for encoded_res in encoded { let encoded_hex_string = format!("0x{}", hex::encode(encoded_res.as_slice())); diff --git a/framework/scenario/src/scenario/model/transaction/typed_response.rs b/framework/scenario/src/scenario/model/transaction/typed_response.rs index 90bb2e245a..2ab7823c92 100644 --- a/framework/scenario/src/scenario/model/transaction/typed_response.rs +++ b/framework/scenario/src/scenario/model/transaction/typed_response.rs @@ -19,7 +19,10 @@ where pub fn from_raw(raw_response: &TxResponse) -> Self { let result: Result = if raw_response.tx_error.is_success() { let mut result_raw = raw_response.out.clone(); - let Ok(decoded) = T::multi_decode_or_handle_err(&mut result_raw, PanicErrorHandler); + let decoded = match T::multi_decode_or_handle_err(&mut result_raw, PanicErrorHandler) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; Ok(decoded) } else { Err(raw_response.tx_error.clone()) diff --git a/framework/scenario/tests/hex_call_data_arg_load.rs b/framework/scenario/tests/hex_call_data_arg_load.rs index ef5c60ffb1..9b64f4565c 100644 --- a/framework/scenario/tests/hex_call_data_arg_load.rs +++ b/framework/scenario/tests/hex_call_data_arg_load.rs @@ -1,5 +1,3 @@ -#![feature(exhaustive_patterns)] - use multiversx_sc::{ codec::{ multi_types::{MultiValue2, MultiValueVec, OptionalValue}, @@ -14,11 +12,16 @@ use multiversx_sc_scenario::api::StaticApi; fn test_simple_args() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - let Ok(arg1) = i32::multi_decode_or_handle_err(&mut de, PanicErrorHandler); - assert_eq!(arg1, 0x1111i32); - let Ok(arg2) = i32::multi_decode_or_handle_err(&mut de, PanicErrorHandler); - assert_eq!(arg2, 0x2222i32); + match i32::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { + Ok(arg1) => assert_eq!(arg1, 0x1111i32), + Err(err) => panic!("panic occured: {:#?}", err), + } + + match i32::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { + Ok(arg2) => assert_eq!(arg2, 0x2222i32), + Err(err) => panic!("panic occured: {:#?}", err), + } de.assert_no_more_args(PanicErrorHandler).unwrap(); } @@ -27,8 +30,11 @@ fn test_simple_args() { fn test_simple_managed_arg() { let input: &[u8] = b"some_other_func@05"; let mut de = HexCallDataDeserializer::new(input); - let Ok(arg1) = BigUint::::multi_decode_or_handle_err(&mut de, PanicErrorHandler); - assert_eq!(arg1, BigUint::from(5u32)); + + match BigUint::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { + Ok(arg1) => assert_eq!(arg1, BigUint::from(5u32)), + Err(err) => panic!("panic occured: {:#?}", err), + } de.assert_no_more_args(PanicErrorHandler).unwrap(); } @@ -37,8 +43,11 @@ fn test_simple_managed_arg() { fn test_simple_vec_arg() { let input: &[u8] = b"some_other_func@000000020000000300000006"; let mut de = HexCallDataDeserializer::new(input); - let Ok(arg1) = Vec::::multi_decode_or_handle_err(&mut de, PanicErrorHandler); - assert_eq!(arg1, [2usize, 3usize, 6usize].to_vec()); + + match Vec::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { + Ok(arg1) => assert_eq!(arg1, [2usize, 3usize, 6usize].to_vec()), + Err(err) => panic!("panic occured: {:#?}", err), + } de.assert_no_more_args(PanicErrorHandler).unwrap(); } @@ -47,48 +56,67 @@ fn test_simple_vec_arg() { fn test_var_args() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - let Ok(var_arg) = MultiValueVec::::multi_decode_or_handle_err(&mut de, PanicErrorHandler); - let arg_vec = var_arg.into_vec(); - assert_eq!(arg_vec.len(), 2); - assert_eq!(arg_vec[0], 0x1111i32); - assert_eq!(arg_vec[1], 0x2222i32); + + match MultiValueVec::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { + Ok(var_arg) => { + let arg_vec = var_arg.into_vec(); + assert_eq!(arg_vec.len(), 2); + assert_eq!(arg_vec[0], 0x1111i32); + assert_eq!(arg_vec[1], 0x2222i32); + }, + Err(err) => panic!("panic occured: {:#?}", err), + } } #[test] fn test_multi_arg_2() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - let Ok(tuple_arg) = - MultiValue2::::multi_decode_or_handle_err(&mut de, PanicErrorHandler); - let tuple = tuple_arg.into_tuple(); - assert_eq!(tuple.0, 0x1111i32); - assert_eq!(tuple.1, 0x2222i32); + + match MultiValue2::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { + Ok(tuple_arg) => { + let tuple = tuple_arg.into_tuple(); + assert_eq!(tuple.0, 0x1111i32); + assert_eq!(tuple.1, 0x2222i32); + }, + Err(err) => panic!("panic occured: {:#?}", err), + } } #[test] fn test_var_multi_arg_2() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - let Ok(tuple_arg) = MultiValueVec::>::multi_decode_or_handle_err( + + match MultiValueVec::>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ); - let tuple_vec = tuple_arg.into_vec(); - assert_eq!(tuple_vec.len(), 1); - let mut iter = tuple_vec.into_iter(); - let tuple = iter.next().unwrap().into_tuple(); - assert_eq!(tuple.0, 0x1111i32); - assert_eq!(tuple.1, 0x2222i32); + ) { + Ok(tuple_arg) => { + let tuple_vec = tuple_arg.into_vec(); + assert_eq!(tuple_vec.len(), 1); + let mut iter = tuple_vec.into_iter(); + let tuple = iter.next().unwrap().into_tuple(); + assert_eq!(tuple.0, 0x1111i32); + assert_eq!(tuple.1, 0x2222i32); + }, + Err(err) => panic!("panic occured: {:#?}", err), + } } #[test] fn test_opt_multi_arg_2() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - let Ok(opt_tuple_arg) = OptionalValue::>::multi_decode_or_handle_err( + + let opt_tuple_arg = match OptionalValue::>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ); + ) { + Ok(arg) => arg, + Err(err) => panic!("panic occured: {:#?}", err), + }; + match opt_tuple_arg { OptionalValue::Some(tuple_arg) => { let tuple = tuple_arg.into_tuple(); @@ -105,10 +133,15 @@ fn test_opt_multi_arg_2() { fn test_async_call_result_ok() { let input: &[u8] = b"func@@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - let Ok(acr) = AsyncCallResult::>::multi_decode_or_handle_err( + + let acr = match AsyncCallResult::>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ); + ) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; + match acr { AsyncCallResult::Ok(tuple_arg) => { let tuple = tuple_arg.into_tuple(); @@ -125,11 +158,16 @@ fn test_async_call_result_ok() { fn test_async_call_result_ok2() { let input: &[u8] = b"func@00"; let mut de = HexCallDataDeserializer::new(input); - let Ok(acr) = - AsyncCallResult::>>::multi_decode_or_handle_err( + + let acr = + match AsyncCallResult::>>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ); + ) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; + match acr { AsyncCallResult::Ok(var_args) => { assert_eq!(var_args.len(), 0); @@ -144,10 +182,15 @@ fn test_async_call_result_ok2() { fn test_async_call_result_err() { let input: &[u8] = b"func@0123@1111"; let mut de = HexCallDataDeserializer::new(input); - let Ok(acr) = AsyncCallResult::>::multi_decode_or_handle_err( + + let acr = match AsyncCallResult::>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ); + ) { + Ok(val) => val, + Err(err) => panic!("panic occured: {:#?}", err), + }; + match acr { AsyncCallResult::Ok(_) => { panic!("AsyncCallResult::Err expected"); From e429526db11f7a64adc72dd2457aa106ce9784f6 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 12 Mar 2024 16:16:50 +0100 Subject: [PATCH 009/185] remove forgotten comment --- framework/scenario/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/framework/scenario/src/lib.rs b/framework/scenario/src/lib.rs index 61286a2e50..c131ad764c 100644 --- a/framework/scenario/src/lib.rs +++ b/framework/scenario/src/lib.rs @@ -1,5 +1,4 @@ #![allow(clippy::type_complexity)] -// #![feature(exhaustive_patterns)] pub mod api; pub mod bech32; From dc4f13db9a04c5f0926e7a2398ded3eadc8791c5 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Wed, 13 Mar 2024 13:53:36 +0100 Subject: [PATCH 010/185] fix after review, replaced custom never type with rust infallible type --- Cargo.lock | 9 ++ data/codec/Cargo.toml | 1 + data/codec/src/codec_err_handler.rs | 9 +- data/codec/src/equivalent/codec_convert.rs | 13 +- data/codec/src/single/top_en.rs | 7 +- data/codec/src/test_util.rs | 30 ++--- framework/base/Cargo.toml | 1 + .../src/contract_base/wrappers/serializer.rs | 51 ++++---- .../wrappers/storage_raw_wrapper.rs | 8 +- .../base/src/formatter/formatter_traits.rs | 11 +- framework/base/src/io/arg_error_handler.rs | 7 +- framework/base/src/io/arg_nested_tuple.rs | 12 +- framework/base/src/io/finish.rs | 8 +- framework/base/src/log_util.rs | 23 ++-- framework/base/src/storage/storage_get.rs | 15 +-- .../src/storage/storage_get_from_address.rs | 10 +- framework/base/src/storage/storage_key.rs | 10 +- framework/base/src/storage/storage_set.rs | 15 +-- .../src/types/interaction/callback_closure.rs | 9 +- .../types/interaction/contract_call_exec.rs | 7 +- .../src/types/interaction/contract_deploy.rs | 14 +-- .../types/interaction/managed_arg_buffer.rs | 25 ++-- .../base/src/types/io/sc_error_static.rs | 11 +- .../multi_value/multi_value_encoded.rs | 10 +- .../multi_value/multi_value_encoded_iter.rs | 8 +- .../types/managed/wrapped/esdt_token_data.rs | 9 +- framework/scenario/Cargo.toml | 1 + .../src/scenario/model/step/sc_call_step.rs | 7 +- .../model/transaction/typed_response.rs | 7 +- .../scenario/tests/hex_call_data_arg_load.rs | 118 ++++++++---------- 30 files changed, 200 insertions(+), 266 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1e015137d2..06a50bc700 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -1822,6 +1822,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -1831,6 +1832,7 @@ dependencies = [ "arrayvec", "multiversx-sc-codec-derive", "num-bigint", + "unwrap-infallible", ] [[package]] @@ -1911,6 +1913,7 @@ dependencies = [ "serde_json", "sha2 0.10.8", "tokio", + "unwrap-infallible", ] [[package]] @@ -3296,6 +3299,12 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "url" version = "2.5.0" diff --git a/data/codec/Cargo.toml b/data/codec/Cargo.toml index b42b2051b5..260688121e 100644 --- a/data/codec/Cargo.toml +++ b/data/codec/Cargo.toml @@ -25,6 +25,7 @@ optional = true [dependencies] arrayvec = { version = "=0.7.4", default-features = false } num-bigint = { version = "=0.4.4", optional = true } # can only be used in std contexts +unwrap-infallible = "0.1.5" [dev-dependencies.multiversx-sc-codec-derive] path = "../codec-derive" diff --git a/data/codec/src/codec_err_handler.rs b/data/codec/src/codec_err_handler.rs index de0b731fa9..e101d07b6e 100644 --- a/data/codec/src/codec_err_handler.rs +++ b/data/codec/src/codec_err_handler.rs @@ -1,3 +1,5 @@ +use core::convert::Infallible; + use crate::{DecodeError, EncodeError}; pub trait EncodeErrorHandler: Copy { @@ -34,15 +36,12 @@ impl DecodeErrorHandler for DefaultErrorHandler { } } -#[derive(Debug)] -pub enum Never {} - /// An error handler that panics immediately, instead of returning a `Result`. #[derive(Clone, Copy)] pub struct PanicErrorHandler; impl EncodeErrorHandler for PanicErrorHandler { - type HandledErr = Never; + type HandledErr = Infallible; #[inline] fn handle_error(&self, err: EncodeError) -> Self::HandledErr { @@ -51,7 +50,7 @@ impl EncodeErrorHandler for PanicErrorHandler { } impl DecodeErrorHandler for PanicErrorHandler { - type HandledErr = Never; + type HandledErr = Infallible; #[inline] fn handle_error(&self, err: DecodeError) -> Self::HandledErr { diff --git a/data/codec/src/equivalent/codec_convert.rs b/data/codec/src/equivalent/codec_convert.rs index 533bd60294..34b5f28879 100644 --- a/data/codec/src/equivalent/codec_convert.rs +++ b/data/codec/src/equivalent/codec_convert.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use crate::{ CodecFrom, PanicErrorHandler, TopDecodeMultiInput, TopEncodeMulti, TopEncodeMultiOutput, }; @@ -9,14 +11,9 @@ where Medium: Default + TopDecodeMultiInput + TopEncodeMultiOutput, { let mut medium: Medium = Default::default(); - match from.multi_encode_or_handle_err(&mut medium, PanicErrorHandler) { - Ok(()) => (), - Err(err) => panic!("panic occured: {:#?}", err), - }; - match To::multi_decode_or_handle_err(&mut medium, PanicErrorHandler) { - Ok(result) => result, - Err(err) => panic!("panic occured: {:#?}", err), - } + from.multi_encode_or_handle_err(&mut medium, PanicErrorHandler) + .unwrap_infallible(); + To::multi_decode_or_handle_err(&mut medium, PanicErrorHandler).unwrap_infallible() } #[allow(unused)] diff --git a/data/codec/src/single/top_en.rs b/data/codec/src/single/top_en.rs index 71553341bf..dd131ffc1f 100644 --- a/data/codec/src/single/top_en.rs +++ b/data/codec/src/single/top_en.rs @@ -3,6 +3,7 @@ use crate::{ PanicErrorHandler, TopEncodeOutput, }; use alloc::vec::Vec; +use unwrap_infallible::UnwrapInfallible; pub trait TopEncode: Sized { /// Attempt to serialize the value to ouput. @@ -48,9 +49,7 @@ pub fn top_encode_to_vec_u8(obj: &T) -> Result, EncodeErro pub fn top_encode_to_vec_u8_or_panic(obj: &T) -> Vec { let mut bytes = Vec::::new(); - match obj.top_encode_or_handle_err(&mut bytes, PanicErrorHandler) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + obj.top_encode_or_handle_err(&mut bytes, PanicErrorHandler) + .unwrap_infallible(); bytes } diff --git a/data/codec/src/test_util.rs b/data/codec/src/test_util.rs index 588c8aba40..1733fff8b9 100644 --- a/data/codec/src/test_util.rs +++ b/data/codec/src/test_util.rs @@ -1,15 +1,14 @@ use crate::*; use alloc::vec::Vec; use core::fmt::Debug; +use unwrap_infallible::UnwrapInfallible; /// Calls top encode and panics if an encoding error occurs. /// Do not use in smart contracts! pub fn top_encode_to_vec_u8_or_panic(obj: &T) -> Vec { let mut bytes = Vec::::new(); - match obj.top_encode_or_handle_err(&mut bytes, PanicErrorHandler) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - }; + obj.top_encode_or_handle_err(&mut bytes, PanicErrorHandler) + .unwrap_infallible(); bytes } @@ -17,10 +16,8 @@ pub fn top_encode_to_vec_u8_or_panic(obj: &T) -> Vec { /// Do not use in smart contracts! pub fn dep_encode_to_vec_or_panic(obj: &T) -> Vec { let mut bytes = Vec::::new(); - match obj.dep_encode_or_handle_err(&mut bytes, PanicErrorHandler) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - }; + obj.dep_encode_or_handle_err(&mut bytes, PanicErrorHandler) + .unwrap_infallible(); bytes } @@ -47,21 +44,14 @@ pub fn check_dep_encode(obj: &T) -> Vec { /// Calls nested decode and panics if an encoding error occurs. /// Do not use in smart contracts! pub fn dep_decode_from_byte_slice_or_panic(input: &[u8]) -> T { - match dep_decode_from_byte_slice(input, PanicErrorHandler) { - Ok(result) => result, - Err(err) => panic!("panic occured: {:#?}", err), - } + dep_decode_from_byte_slice(input, PanicErrorHandler).unwrap_infallible() } /// Calls both the fast exit and the regular top-decode, /// compares that the outputs are equal, then returns the result. /// To be used in serialization tests. pub fn check_top_decode(bytes: &[u8]) -> T { - let fast_exit_obj = match T::top_decode_or_handle_err(bytes, PanicErrorHandler) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; - + let fast_exit_obj = T::top_decode_or_handle_err(bytes, PanicErrorHandler).unwrap_infallible(); let result_obj = T::top_decode_or_handle_err(bytes, DefaultErrorHandler).unwrap(); assert_eq!(fast_exit_obj, result_obj); fast_exit_obj @@ -71,11 +61,7 @@ pub fn check_top_decode(bytes: &[u8]) -> T { /// compares that the outputs are equal, then returns the result. /// To be used in serialization tests. pub fn check_dep_decode(bytes: &[u8]) -> T { - let fast_exit_obj = match dep_decode_from_byte_slice(bytes, PanicErrorHandler) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; - + let fast_exit_obj = dep_decode_from_byte_slice(bytes, PanicErrorHandler).unwrap_infallible(); let result_obj = dep_decode_from_byte_slice(bytes, DefaultErrorHandler).unwrap(); assert_eq!(fast_exit_obj, result_obj); fast_exit_obj diff --git a/framework/base/Cargo.toml b/framework/base/Cargo.toml index ad2b6e260c..70c27f3db0 100644 --- a/framework/base/Cargo.toml +++ b/framework/base/Cargo.toml @@ -25,6 +25,7 @@ esdt-token-payment-legacy-decode = [] hex-literal = "=0.4.1" bitflags = "=2.4.2" num-traits = { version = "=0.2.17", default-features = false } +unwrap-infallible = "0.1.5" [dependencies.multiversx-sc-derive] version = "=0.47.5" diff --git a/framework/base/src/contract_base/wrappers/serializer.rs b/framework/base/src/contract_base/wrappers/serializer.rs index 2c4ce1ef49..ee2dace3ca 100644 --- a/framework/base/src/contract_base/wrappers/serializer.rs +++ b/framework/base/src/contract_base/wrappers/serializer.rs @@ -1,4 +1,6 @@ -use core::marker::PhantomData; +use core::{convert::Infallible, marker::PhantomData}; + +use unwrap_infallible::UnwrapInfallible; use crate::codec::{ DecodeError, DecodeErrorHandler, EncodeError, EncodeErrorHandler, TopDecode, TopEncode, @@ -7,7 +9,6 @@ use crate::codec::{ use crate::{ api::{ErrorApi, ErrorApiImpl, ManagedTypeApi}, err_msg, - imports::Never, types::{heap::BoxedBytes, ManagedBuffer, ManagedType}, }; @@ -31,25 +32,23 @@ where pub fn top_encode_to_managed_buffer(&self, value: &T) -> ManagedBuffer { let mut result = ManagedBuffer::new(); - match value.top_encode_or_handle_err( - &mut result, - ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - }; + value + .top_encode_or_handle_err( + &mut result, + ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR), + ) + .unwrap_infallible(); result } pub fn top_encode_to_boxed_bytes(&self, value: &T) -> BoxedBytes { let mut result = BoxedBytes::empty(); - match value.top_encode_or_handle_err( - &mut result, - ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - }; + value + .top_encode_or_handle_err( + &mut result, + ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR), + ) + .unwrap_infallible(); result } @@ -62,23 +61,19 @@ where buffer: &ManagedBuffer, error_message: &'static [u8], ) -> T { - match T::top_decode_or_handle_err( + T::top_decode_or_handle_err( buffer.clone(), // TODO: remove clone ExitCodecErrorHandler::::from(error_message), - ) { - Ok(value) => value, - Err(err) => panic!("panic occured: {:#?}", err), - } + ) + .unwrap_infallible() } pub fn top_decode_from_byte_slice(&self, slice: &[u8]) -> T { - match T::top_decode_or_handle_err( + T::top_decode_or_handle_err( slice, ExitCodecErrorHandler::::from(err_msg::SERIALIZER_DECODE_ERROR), - ) { - Ok(value) => value, - Err(err) => panic!("panic occured: {:#?}", err), - } + ) + .unwrap_infallible() } } @@ -109,7 +104,7 @@ impl EncodeErrorHandler for ExitCodecErrorHandler where M: ManagedTypeApi + ErrorApi, { - type HandledErr = Never; + type HandledErr = Infallible; fn handle_error(&self, err: EncodeError) -> Self::HandledErr { let mut message_buffer = ManagedBuffer::::new_from_bytes(self.base_message); @@ -122,7 +117,7 @@ impl DecodeErrorHandler for ExitCodecErrorHandler where M: ManagedTypeApi + ErrorApi, { - type HandledErr = Never; + type HandledErr = Infallible; fn handle_error(&self, err: DecodeError) -> Self::HandledErr { let mut message_buffer = ManagedBuffer::::new_from_bytes(self.base_message); diff --git a/framework/base/src/contract_base/wrappers/storage_raw_wrapper.rs b/framework/base/src/contract_base/wrappers/storage_raw_wrapper.rs index e934d6477d..5a4992c36e 100644 --- a/framework/base/src/contract_base/wrappers/storage_raw_wrapper.rs +++ b/framework/base/src/contract_base/wrappers/storage_raw_wrapper.rs @@ -1,5 +1,7 @@ use core::marker::PhantomData; +use unwrap_infallible::UnwrapInfallible; + use crate::codec::{TopDecode, TopEncode}; use crate::{ @@ -63,10 +65,8 @@ where result_buffer.get_handle(), ); - match V::top_decode_or_handle_err(result_buffer, StorageGetErrorHandler::::default()) { - Ok(value) => value, - Err(err) => panic!("panic occured: {:#?}", err), - } + V::top_decode_or_handle_err(result_buffer, StorageGetErrorHandler::::default()) + .unwrap_infallible() } /// Write a serializable value to storage under the given key diff --git a/framework/base/src/formatter/formatter_traits.rs b/framework/base/src/formatter/formatter_traits.rs index cbabc27f8c..11a24baf96 100644 --- a/framework/base/src/formatter/formatter_traits.rs +++ b/framework/base/src/formatter/formatter_traits.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use crate::codec::TopEncode; use crate::{ @@ -90,14 +92,11 @@ pub trait SCCodec { impl SCCodec for T { fn fmt(&self, f: &mut F) { let mut encoded = ManagedBuffer::::new(); - - match self.top_encode_or_handle_err( + self.top_encode_or_handle_err( &mut encoded, ExitCodecErrorHandler::::from(err_msg::FORMATTER_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - }; + ) + .unwrap_infallible(); SCLowerHex::fmt(&encoded, f); } } diff --git a/framework/base/src/io/arg_error_handler.rs b/framework/base/src/io/arg_error_handler.rs index b750f106f1..10b3fa2560 100644 --- a/framework/base/src/io/arg_error_handler.rs +++ b/framework/base/src/io/arg_error_handler.rs @@ -1,4 +1,4 @@ -use core::marker::PhantomData; +use core::{convert::Infallible, marker::PhantomData}; use crate::{ api::{ErrorApi, ManagedTypeApi}, @@ -29,14 +29,11 @@ where } } -#[derive(Debug)] -pub enum Never {} - impl DecodeErrorHandler for ArgErrorHandler where M: ManagedTypeApi + ErrorApi, { - type HandledErr = Never; + type HandledErr = Infallible; #[inline(always)] fn handle_error(&self, err: DecodeError) -> Self::HandledErr { diff --git a/framework/base/src/io/arg_nested_tuple.rs b/framework/base/src/io/arg_nested_tuple.rs index 5caecd9b4c..fca34c9886 100644 --- a/framework/base/src/io/arg_nested_tuple.rs +++ b/framework/base/src/io/arg_nested_tuple.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use super::{EndpointDynArgLoader, EndpointSingleArgLoader, ManagedResultArgLoader}; use crate::{ api::{ @@ -71,10 +73,7 @@ where { let mut arg_loader = EndpointSingleArgLoader::::new(index); let h = ArgErrorHandler::::from(arg_id); - match T::multi_decode_or_handle_err(&mut arg_loader, h) { - Ok(value) => value, - Err(err) => panic!("panic occured: {:#?}", err), - } + T::multi_decode_or_handle_err(&mut arg_loader, h).unwrap_infallible() } #[inline(never)] @@ -85,10 +84,7 @@ where T: TopDecodeMulti, { let h = ArgErrorHandler::::from(arg_id); - match T::multi_decode_or_handle_err(loader, h) { - Ok(value) => value, - Err(err) => panic!("panic occured: {:#?}", err), - } + T::multi_decode_or_handle_err(loader, h).unwrap_infallible() } /// Models an argument tree of the form `(arg1, (arg2, ... (argn, ())))`, used for retrieving endpoint arguments. diff --git a/framework/base/src/io/finish.rs b/framework/base/src/io/finish.rs index 6842d63bb5..f7f3f402af 100644 --- a/framework/base/src/io/finish.rs +++ b/framework/base/src/io/finish.rs @@ -1,5 +1,7 @@ use core::marker::PhantomData; +use unwrap_infallible::UnwrapInfallible; + use crate::codec::{EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput, TryStaticCast}; use crate::{ @@ -20,10 +22,8 @@ where { let h = ExitCodecErrorHandler::::from(err_msg::FINISH_ENCODE_ERROR); let mut output = ApiOutputAdapter::::default(); - match item.multi_encode_or_handle_err(&mut output, h) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + item.multi_encode_or_handle_err(&mut output, h) + .unwrap_infallible() } #[derive(Clone)] diff --git a/framework/base/src/log_util.rs b/framework/base/src/log_util.rs index 9a01f2af03..0cca3bc2a2 100644 --- a/framework/base/src/log_util.rs +++ b/framework/base/src/log_util.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use crate::codec::{TopEncode, TopEncodeMulti}; use crate::{ @@ -21,13 +23,12 @@ where A: ErrorApi + ManagedTypeApi, T: TopEncodeMulti, { - match topic.multi_encode_or_handle_err( - accumulator, - ExitCodecErrorHandler::::from(err_msg::LOG_TOPIC_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + topic + .multi_encode_or_handle_err( + accumulator, + ExitCodecErrorHandler::::from(err_msg::LOG_TOPIC_ENCODE_ERROR), + ) + .unwrap_infallible(); } pub fn serialize_log_data(data: T) -> ManagedBuffer @@ -36,13 +37,11 @@ where A: ErrorApi + ManagedTypeApi, { let mut data_buffer = ManagedBuffer::new(); - match data.top_encode_or_handle_err( + data.top_encode_or_handle_err( &mut data_buffer, ExitCodecErrorHandler::::from(err_msg::LOG_DATA_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - }; + ) + .unwrap_infallible(); data_buffer } diff --git a/framework/base/src/storage/storage_get.rs b/framework/base/src/storage/storage_get.rs index 2d68925846..9f46ddb27d 100644 --- a/framework/base/src/storage/storage_get.rs +++ b/framework/base/src/storage/storage_get.rs @@ -1,4 +1,4 @@ -use core::marker::PhantomData; +use core::{convert::Infallible, marker::PhantomData}; use crate::{ api::{ @@ -7,12 +7,12 @@ use crate::{ }, codec::*, err_msg, - imports::Never, types::{ BigInt, BigUint, ManagedBuffer, ManagedBufferNestedDecodeInput, ManagedRef, ManagedType, }, }; use alloc::boxed::Box; +use unwrap_infallible::UnwrapInfallible; use super::StorageKey; @@ -114,14 +114,11 @@ where T: TopDecode, A: StorageReadApi + ManagedTypeApi + ErrorApi, { - let value = match T::top_decode_or_handle_err( + T::top_decode_or_handle_err( StorageGetInput::new(key), StorageGetErrorHandler::::default(), - ) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; - value + ) + .unwrap_infallible() } /// Useful for storage mappers. @@ -162,7 +159,7 @@ impl DecodeErrorHandler for StorageGetErrorHandler where M: ManagedTypeApi + ErrorApi, { - type HandledErr = Never; + type HandledErr = Infallible; fn handle_error(&self, err: DecodeError) -> Self::HandledErr { let mut message_buffer = ManagedBuffer::::new_from_bytes(err_msg::STORAGE_DECODE_ERROR); diff --git a/framework/base/src/storage/storage_get_from_address.rs b/framework/base/src/storage/storage_get_from_address.rs index 44be1896f0..ee569c9378 100644 --- a/framework/base/src/storage/storage_get_from_address.rs +++ b/framework/base/src/storage/storage_get_from_address.rs @@ -10,6 +10,7 @@ use crate::{ }, }; use alloc::boxed::Box; +use unwrap_infallible::UnwrapInfallible; use super::{StorageGetErrorHandler, StorageKey}; @@ -126,14 +127,11 @@ where T: TopDecode, A: StorageReadApi + ManagedTypeApi + ErrorApi, { - let value = match T::top_decode_or_handle_err( + T::top_decode_or_handle_err( StorageGetFromAddressInput::new(addr, key), StorageGetErrorHandler::::default(), - ) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; - value + ) + .unwrap_infallible() } /// Useful for storage mappers. diff --git a/framework/base/src/storage/storage_key.rs b/framework/base/src/storage/storage_key.rs index addd91859d..b56358218b 100644 --- a/framework/base/src/storage/storage_key.rs +++ b/framework/base/src/storage/storage_key.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use crate::{ api::{ErrorApi, ManagedTypeApi}, codec::*, @@ -60,13 +62,11 @@ where where T: NestedEncode, { - match item.dep_encode_or_handle_err( + item.dep_encode_or_handle_err( &mut self.buffer, ExitCodecErrorHandler::::from(err_msg::STORAGE_KEY_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + ) + .unwrap_infallible() } #[inline] diff --git a/framework/base/src/storage/storage_set.rs b/framework/base/src/storage/storage_set.rs index 30381f3e89..f6e6f6ef28 100644 --- a/framework/base/src/storage/storage_set.rs +++ b/framework/base/src/storage/storage_set.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use crate::{ api::{ const_handles, use_raw_handle, ErrorApi, ManagedBufferApiImpl, ManagedTypeApi, @@ -85,13 +87,12 @@ where T: TopEncode, A: StorageWriteApi + ManagedTypeApi + ErrorApi, { - match value.top_encode_or_handle_err( - StorageSetOutput::new(key), - ExitCodecErrorHandler::::from(err_msg::STORAGE_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + value + .top_encode_or_handle_err( + StorageSetOutput::new(key), + ExitCodecErrorHandler::::from(err_msg::STORAGE_ENCODE_ERROR), + ) + .unwrap_infallible() } /// Useful for storage mappers. diff --git a/framework/base/src/types/interaction/callback_closure.rs b/framework/base/src/types/interaction/callback_closure.rs index e1f748228b..8022c3bdf6 100644 --- a/framework/base/src/types/interaction/callback_closure.rs +++ b/framework/base/src/types/interaction/callback_closure.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use crate::{ api::{BlockchainApi, ErrorApi, ManagedTypeApi, StorageReadApi, StorageWriteApi}, codec::{ @@ -52,10 +54,9 @@ impl CallbackClosure { pub fn push_endpoint_arg(&mut self, endpoint_arg: &T) { let h = ExitCodecErrorHandler::::from(err_msg::CONTRACT_CALL_ENCODE_ERROR); - match endpoint_arg.multi_encode_or_handle_err(&mut self.closure_args, h) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + endpoint_arg + .multi_encode_or_handle_err(&mut self.closure_args, h) + .unwrap_infallible() } pub fn save_to_storage(&self) { diff --git a/framework/base/src/types/interaction/contract_call_exec.rs b/framework/base/src/types/interaction/contract_call_exec.rs index b6790206b7..a285951ef8 100644 --- a/framework/base/src/types/interaction/contract_call_exec.rs +++ b/framework/base/src/types/interaction/contract_call_exec.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use crate::{ api::{use_raw_handle, StaticVarApiImpl}, codec::TopDecodeMulti, @@ -226,8 +228,5 @@ where let mut loader = ManagedResultArgLoader::new(raw_result); let arg_id = ArgId::from(&b"sync result"[..]); let h: ArgErrorHandler = ArgErrorHandler::::from(arg_id); - match RequestedResult::multi_decode_or_handle_err(&mut loader, h) { - Ok(result) => result, - Err(err) => panic!("panic occured: {:#?}", err), - } + RequestedResult::multi_decode_or_handle_err(&mut loader, h).unwrap_infallible() } diff --git a/framework/base/src/types/interaction/contract_deploy.rs b/framework/base/src/types/interaction/contract_deploy.rs index 7ae893d2a0..c8dcfd1a87 100644 --- a/framework/base/src/types/interaction/contract_deploy.rs +++ b/framework/base/src/types/interaction/contract_deploy.rs @@ -1,5 +1,7 @@ use core::marker::PhantomData; +use unwrap_infallible::UnwrapInfallible; + use crate::codec::{CodecFrom, TopEncodeMulti}; use crate::{ @@ -82,10 +84,9 @@ where pub fn push_endpoint_arg(&mut self, endpoint_arg: &T) { let h = ExitCodecErrorHandler::::from(err_msg::CONTRACT_CALL_ENCODE_ERROR); - match endpoint_arg.multi_encode_or_handle_err(&mut self.arg_buffer, h) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + endpoint_arg + .multi_encode_or_handle_err(&mut self.arg_buffer, h) + .unwrap_infallible() } fn resolve_gas_limit(&self) -> u64 { @@ -111,10 +112,7 @@ where let mut loader = ManagedResultArgLoader::new(raw_result); let arg_id = ArgId::from(&b"init result"[..]); let h = ArgErrorHandler::::from(arg_id); - match RequestedResult::multi_decode_or_handle_err(&mut loader, h) { - Ok(result) => result, - Err(err) => panic!("panic occured: {:#?}", err), - } + RequestedResult::multi_decode_or_handle_err(&mut loader, h).unwrap_infallible() } /// Executes immediately, synchronously, and returns Some(Address) of the deployed contract. diff --git a/framework/base/src/types/interaction/managed_arg_buffer.rs b/framework/base/src/types/interaction/managed_arg_buffer.rs index 30c2ea54f3..8cb70c561e 100644 --- a/framework/base/src/types/interaction/managed_arg_buffer.rs +++ b/framework/base/src/types/interaction/managed_arg_buffer.rs @@ -15,6 +15,7 @@ use crate::{ }; use alloc::vec::Vec; use multiversx_sc_codec::TopEncodeMulti; +use unwrap_infallible::UnwrapInfallible; #[derive(Debug, Default, Clone)] #[repr(transparent)] @@ -180,22 +181,17 @@ where { pub fn push_arg(&mut self, arg: T) { let mut encoded_buffer = ManagedBuffer::new(); - match arg.top_encode_or_handle_err( + arg.top_encode_or_handle_err( &mut encoded_buffer, ExitCodecErrorHandler::::from(err_msg::CONTRACT_CALL_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - }; + ) + .unwrap_infallible(); self.push_arg_raw(encoded_buffer); } pub fn push_multi_arg(&mut self, arg: &T) { let h = ExitCodecErrorHandler::::from(err_msg::CONTRACT_CALL_ENCODE_ERROR); - match arg.multi_encode_or_handle_err(self, h) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + arg.multi_encode_or_handle_err(self, h).unwrap_infallible(); } } @@ -285,10 +281,7 @@ where pub fn serialize_overwrite(&self, dest: &mut ManagedBuffer) { dest.overwrite(&[]); let h = ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR); - match self.top_encode_or_handle_err(dest, h) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + self.top_encode_or_handle_err(dest, h).unwrap_infallible() } /// Deserializes self from a managed buffer in-place, without creating a new handle. @@ -298,10 +291,8 @@ where self.clear(); let mut nested_de_input = ManagedBufferNestedDecodeInput::new(source); while nested_de_input.remaining_len() > 0 { - let item = match ManagedBuffer::dep_decode_or_handle_err(&mut nested_de_input, h) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; + let item = ManagedBuffer::dep_decode_or_handle_err(&mut nested_de_input, h) + .unwrap_infallible(); self.push_arg_raw(item); } } diff --git a/framework/base/src/types/io/sc_error_static.rs b/framework/base/src/types/io/sc_error_static.rs index 6569715131..176fb86162 100644 --- a/framework/base/src/types/io/sc_error_static.rs +++ b/framework/base/src/types/io/sc_error_static.rs @@ -1,9 +1,6 @@ use crate::codec::{self, DecodeError, EncodeError, TopEncodeMulti, TryStaticCast}; -use crate::{ - api::{EndpointFinishApi, ErrorApiImpl}, - imports::Never, -}; +use crate::api::{EndpointFinishApi, ErrorApiImpl}; use super::SCError; @@ -57,12 +54,6 @@ impl From for StaticSCError { } } -impl From for StaticSCError { - fn from(_: Never) -> Self { - unreachable!() - } -} - impl TopEncodeMulti for StaticSCError { fn multi_encode_or_handle_err(&self, output: &mut O, h: H) -> Result<(), H::HandledErr> where diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs index e32165b554..751a606caf 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs @@ -1,3 +1,5 @@ +use unwrap_infallible::UnwrapInfallible; + use crate::{ abi::{TypeAbi, TypeDescriptionContainer, TypeName}, api::{ErrorApi, ManagedTypeApi}, @@ -68,13 +70,11 @@ where T: TopEncodeMulti, { pub fn push(&mut self, item: T) { - match item.multi_encode_or_handle_err( + item.multi_encode_or_handle_err( &mut self.raw_buffers, ExitCodecErrorHandler::::from(err_msg::SERIALIZER_ENCODE_ERROR), - ) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - } + ) + .unwrap_infallible() } } diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded_iter.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded_iter.rs index e0e9b1a5e5..8a88ffeef7 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded_iter.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded_iter.rs @@ -1,5 +1,7 @@ use core::marker::PhantomData; +use unwrap_infallible::UnwrapInfallible; + use crate::codec::{TopDecodeMulti, TopDecodeMultiInput}; use crate::{ @@ -54,10 +56,8 @@ where if self.data_loader.has_next() { let arg_id = ArgId::from(&b"var args"[..]); let h = ArgErrorHandler::::from(arg_id); - let result = match T::multi_decode_or_handle_err(&mut self.data_loader, h) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; + let result = + T::multi_decode_or_handle_err(&mut self.data_loader, h).unwrap_infallible(); Some(result) } else { None diff --git a/framework/base/src/types/managed/wrapped/esdt_token_data.rs b/framework/base/src/types/managed/wrapped/esdt_token_data.rs index ac44045e25..60b2b3178e 100644 --- a/framework/base/src/types/managed/wrapped/esdt_token_data.rs +++ b/framework/base/src/types/managed/wrapped/esdt_token_data.rs @@ -1,4 +1,5 @@ use multiversx_sc_derive::ManagedVecItem; +use unwrap_infallible::UnwrapInfallible; use crate::{ api::ManagedTypeApi, @@ -53,12 +54,10 @@ impl EsdtTokenData { } pub fn decode_attributes(&self) -> T { - match T::top_decode_or_handle_err( + T::top_decode_or_handle_err( self.attributes.clone(), // TODO: remove clone ExitCodecErrorHandler::::from(DECODE_ATTRIBUTE_ERROR_PREFIX), - ) { - Ok(value) => value, - Err(err) => panic!("panic occured: {:#?}", err), - } + ) + .unwrap_infallible() } } diff --git a/framework/scenario/Cargo.toml b/framework/scenario/Cargo.toml index 560cf08281..ea810a231c 100644 --- a/framework/scenario/Cargo.toml +++ b/framework/scenario/Cargo.toml @@ -31,6 +31,7 @@ itertools = "0.12.0" colored = "2.0" clap = { version = "4.4.7", features = ["derive"] } tokio = { version = "1.24", features = ["full"] } +unwrap-infallible = "0.1.5" [[bin]] name = "sc-scenario" diff --git a/framework/scenario/src/scenario/model/step/sc_call_step.rs b/framework/scenario/src/scenario/model/step/sc_call_step.rs index cf9d2b4026..dc12d33212 100644 --- a/framework/scenario/src/scenario/model/step/sc_call_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_call_step.rs @@ -1,4 +1,5 @@ use multiversx_sc::types::H256; +use unwrap_infallible::UnwrapInfallible; use crate::{ api::StaticApi, @@ -255,10 +256,8 @@ pub fn convert_call_args(arg_buffer: &ManagedArgBuffer) -> Vec(t: T) -> TxExpect { let mut encoded = Vec::>::new(); - match t.multi_encode_or_handle_err(&mut encoded, PanicErrorHandler) { - Ok(_) => {}, - Err(err) => panic!("panic occured: {:#?}", err), - }; + t.multi_encode_or_handle_err(&mut encoded, PanicErrorHandler) + .unwrap_infallible(); let mut expect = TxExpect::ok().no_result(); for encoded_res in encoded { let encoded_hex_string = format!("0x{}", hex::encode(encoded_res.as_slice())); diff --git a/framework/scenario/src/scenario/model/transaction/typed_response.rs b/framework/scenario/src/scenario/model/transaction/typed_response.rs index 2ab7823c92..a25974a1b8 100644 --- a/framework/scenario/src/scenario/model/transaction/typed_response.rs +++ b/framework/scenario/src/scenario/model/transaction/typed_response.rs @@ -1,5 +1,6 @@ use super::{Log, TxResponse, TxResponseStatus}; use multiversx_sc::codec::{PanicErrorHandler, TopDecodeMulti}; +use unwrap_infallible::UnwrapInfallible; pub struct TypedResponse where @@ -19,10 +20,8 @@ where pub fn from_raw(raw_response: &TxResponse) -> Self { let result: Result = if raw_response.tx_error.is_success() { let mut result_raw = raw_response.out.clone(); - let decoded = match T::multi_decode_or_handle_err(&mut result_raw, PanicErrorHandler) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; + let decoded = T::multi_decode_or_handle_err(&mut result_raw, PanicErrorHandler) + .unwrap_infallible(); Ok(decoded) } else { Err(raw_response.tx_error.clone()) diff --git a/framework/scenario/tests/hex_call_data_arg_load.rs b/framework/scenario/tests/hex_call_data_arg_load.rs index 9b64f4565c..0001ceb799 100644 --- a/framework/scenario/tests/hex_call_data_arg_load.rs +++ b/framework/scenario/tests/hex_call_data_arg_load.rs @@ -7,21 +7,18 @@ use multiversx_sc::{ HexCallDataDeserializer, }; use multiversx_sc_scenario::api::StaticApi; +use unwrap_infallible::UnwrapInfallible; #[test] fn test_simple_args() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - match i32::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { - Ok(arg1) => assert_eq!(arg1, 0x1111i32), - Err(err) => panic!("panic occured: {:#?}", err), - } + let arg1 = i32::multi_decode_or_handle_err(&mut de, PanicErrorHandler).unwrap_infallible(); + assert_eq!(arg1, 0x1111i32); - match i32::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { - Ok(arg2) => assert_eq!(arg2, 0x2222i32), - Err(err) => panic!("panic occured: {:#?}", err), - } + let arg2 = i32::multi_decode_or_handle_err(&mut de, PanicErrorHandler).unwrap_infallible(); + assert_eq!(arg2, 0x2222i32); de.assert_no_more_args(PanicErrorHandler).unwrap(); } @@ -31,10 +28,9 @@ fn test_simple_managed_arg() { let input: &[u8] = b"some_other_func@05"; let mut de = HexCallDataDeserializer::new(input); - match BigUint::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { - Ok(arg1) => assert_eq!(arg1, BigUint::from(5u32)), - Err(err) => panic!("panic occured: {:#?}", err), - } + let arg1 = BigUint::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) + .unwrap_infallible(); + assert_eq!(arg1, BigUint::from(5u32)); de.assert_no_more_args(PanicErrorHandler).unwrap(); } @@ -44,10 +40,9 @@ fn test_simple_vec_arg() { let input: &[u8] = b"some_other_func@000000020000000300000006"; let mut de = HexCallDataDeserializer::new(input); - match Vec::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { - Ok(arg1) => assert_eq!(arg1, [2usize, 3usize, 6usize].to_vec()), - Err(err) => panic!("panic occured: {:#?}", err), - } + let arg1 = + Vec::::multi_decode_or_handle_err(&mut de, PanicErrorHandler).unwrap_infallible(); + assert_eq!(arg1, [2usize, 3usize, 6usize].to_vec()); de.assert_no_more_args(PanicErrorHandler).unwrap(); } @@ -57,15 +52,13 @@ fn test_var_args() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - match MultiValueVec::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { - Ok(var_arg) => { - let arg_vec = var_arg.into_vec(); - assert_eq!(arg_vec.len(), 2); - assert_eq!(arg_vec[0], 0x1111i32); - assert_eq!(arg_vec[1], 0x2222i32); - }, - Err(err) => panic!("panic occured: {:#?}", err), - } + let var_arg = MultiValueVec::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) + .unwrap_infallible(); + let arg_vec = var_arg.into_vec(); + + assert_eq!(arg_vec.len(), 2); + assert_eq!(arg_vec[0], 0x1111i32); + assert_eq!(arg_vec[1], 0x2222i32); } #[test] @@ -73,14 +66,12 @@ fn test_multi_arg_2() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - match MultiValue2::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) { - Ok(tuple_arg) => { - let tuple = tuple_arg.into_tuple(); - assert_eq!(tuple.0, 0x1111i32); - assert_eq!(tuple.1, 0x2222i32); - }, - Err(err) => panic!("panic occured: {:#?}", err), - } + let tuple_arg = MultiValue2::::multi_decode_or_handle_err(&mut de, PanicErrorHandler) + .unwrap_infallible(); + let tuple = tuple_arg.into_tuple(); + + assert_eq!(tuple.0, 0x1111i32); + assert_eq!(tuple.1, 0x2222i32); } #[test] @@ -88,20 +79,20 @@ fn test_var_multi_arg_2() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - match MultiValueVec::>::multi_decode_or_handle_err( + let tuple_arg = MultiValueVec::>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ) { - Ok(tuple_arg) => { - let tuple_vec = tuple_arg.into_vec(); - assert_eq!(tuple_vec.len(), 1); - let mut iter = tuple_vec.into_iter(); - let tuple = iter.next().unwrap().into_tuple(); - assert_eq!(tuple.0, 0x1111i32); - assert_eq!(tuple.1, 0x2222i32); - }, - Err(err) => panic!("panic occured: {:#?}", err), - } + ) + .unwrap_infallible(); + let tuple_vec = tuple_arg.into_vec(); + + assert_eq!(tuple_vec.len(), 1); + + let mut iter = tuple_vec.into_iter(); + let tuple = iter.next().unwrap().into_tuple(); + + assert_eq!(tuple.0, 0x1111i32); + assert_eq!(tuple.1, 0x2222i32); } #[test] @@ -109,13 +100,11 @@ fn test_opt_multi_arg_2() { let input: &[u8] = b"func@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - let opt_tuple_arg = match OptionalValue::>::multi_decode_or_handle_err( + let opt_tuple_arg = OptionalValue::>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ) { - Ok(arg) => arg, - Err(err) => panic!("panic occured: {:#?}", err), - }; + ) + .unwrap_infallible(); match opt_tuple_arg { OptionalValue::Some(tuple_arg) => { @@ -134,13 +123,11 @@ fn test_async_call_result_ok() { let input: &[u8] = b"func@@1111@2222"; let mut de = HexCallDataDeserializer::new(input); - let acr = match AsyncCallResult::>::multi_decode_or_handle_err( + let acr = AsyncCallResult::>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; + ) + .unwrap_infallible(); match acr { AsyncCallResult::Ok(tuple_arg) => { @@ -159,14 +146,11 @@ fn test_async_call_result_ok2() { let input: &[u8] = b"func@00"; let mut de = HexCallDataDeserializer::new(input); - let acr = - match AsyncCallResult::>>::multi_decode_or_handle_err( - &mut de, - PanicErrorHandler, - ) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; + let acr = AsyncCallResult::>>::multi_decode_or_handle_err( + &mut de, + PanicErrorHandler, + ) + .unwrap_infallible(); match acr { AsyncCallResult::Ok(var_args) => { @@ -183,13 +167,11 @@ fn test_async_call_result_err() { let input: &[u8] = b"func@0123@1111"; let mut de = HexCallDataDeserializer::new(input); - let acr = match AsyncCallResult::>::multi_decode_or_handle_err( + let acr = AsyncCallResult::>::multi_decode_or_handle_err( &mut de, PanicErrorHandler, - ) { - Ok(val) => val, - Err(err) => panic!("panic occured: {:#?}", err), - }; + ) + .unwrap_infallible(); match acr { AsyncCallResult::Ok(_) => { From ba0e1550667bdeced0d4978dc5fef1248f0cb135 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Wed, 13 Mar 2024 16:32:37 +0100 Subject: [PATCH 011/185] panic into unreachable --- framework/base/src/types/io/sc_result.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/base/src/types/io/sc_result.rs b/framework/base/src/types/io/sc_result.rs index c4de593afc..2565956ed0 100644 --- a/framework/base/src/types/io/sc_result.rs +++ b/framework/base/src/types/io/sc_result.rs @@ -106,7 +106,7 @@ where { fn from_residual(residual: Result) -> Self { let e = match residual { - Ok(_) => panic!("residual is not error"), + Ok(_) => unreachable!(), Err(err) => err, }; SCResult::Err(e.into()) From dee6e081c083f69e6574e1ca19d68059f699ed8e Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 8 Apr 2024 16:21:23 +0200 Subject: [PATCH 012/185] send_raw migration and other small impls and modifications --- .../crypto-kitties/kitty-auction/src/lib.rs | 8 +- .../crypto-kitties/kitty-ownership/src/lib.rs | 2 +- .../crypto-zombies/src/zombie_feeding.rs | 2 +- .../examples/multisig/src/multisig_perform.rs | 55 ++++++------ .../examples/order-book/factory/src/lib.rs | 20 +++-- .../first-contract/src/lib.rs | 41 ++++----- .../parent/src/lib.rs | 4 +- .../src/forwarder_raw_alt_init.rs | 17 ++-- .../forwarder-raw/src/forwarder_raw_async.rs | 21 +++-- .../src/forwarder_raw_deploy_upgrade.rs | 6 +- .../forwarder-raw/src/forwarder_raw_sync.rs | 67 ++++++++------ .../composability/forwarder/src/call_async.rs | 42 ++++----- .../composability/forwarder/src/call_sync.rs | 18 ++-- .../forwarder/src/call_transf_exec.rs | 20 ++--- .../composability/forwarder/src/nft.rs | 17 ++-- .../local-esdt-and-nft/src/lib.rs | 18 ++-- .../promises-features/src/call_promises.rs | 10 +-- .../promises-features/src/call_promises_bt.rs | 6 +- .../proxy-test-first/src/proxy-test-first.rs | 10 +-- .../recursive-caller/src/recursive_caller.rs | 5 +- .../composability/vault/src/vault.rs | 16 ++-- .../src/crowdfunding_erc20.rs | 2 +- .../erc1155/src/erc1155.rs | 4 +- .../lottery-erc20/src/lottery.rs | 4 +- .../rust-testing-framework-tester/src/lib.rs | 40 ++++----- .../mappers/token/fungible_token_mapper.rs | 2 +- .../token/non_fungible_token_mapper.rs | 2 +- .../interaction/tx_exec/tx_exec_upgrade.rs | 90 +++++++++++++++++++ .../src/types/interaction/upgrade_call.rs | 9 +- 29 files changed, 331 insertions(+), 227 deletions(-) diff --git a/contracts/examples/crypto-kitties/kitty-auction/src/lib.rs b/contracts/examples/crypto-kitties/kitty-auction/src/lib.rs index 557673bb3d..60a30c382e 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/src/lib.rs +++ b/contracts/examples/crypto-kitties/kitty-auction/src/lib.rs @@ -50,7 +50,7 @@ pub trait KittyAuction { .to(&kitty_ownership_contract_address) .typed(kitty_ownership_proxy::KittyOwnershipProxy) .create_gen_zero_kitty() - .with_callback(self.callbacks().create_gen_zero_kitty_callback()) + .callback(self.callbacks().create_gen_zero_kitty_callback()) .async_call_and_exit(); } @@ -246,7 +246,7 @@ pub trait KittyAuction { .to(&kitty_ownership_contract_address) .typed(kitty_ownership_proxy::KittyOwnershipProxy) .allow_auctioning(&caller, kitty_id) - .with_callback(self.callbacks().allow_auctioning_callback( + .callback(self.callbacks().allow_auctioning_callback( auction_type, kitty_id, starting_price, @@ -283,7 +283,7 @@ pub trait KittyAuction { .to(&kitty_ownership_contract_address) .typed(kitty_ownership_proxy::KittyOwnershipProxy) .transfer(address, kitty_id) - .with_callback(self.callbacks().transfer_callback(kitty_id)) + .callback(self.callbacks().transfer_callback(kitty_id)) .async_call_and_exit(); } } @@ -302,7 +302,7 @@ pub trait KittyAuction { .typed(kitty_ownership_proxy::KittyOwnershipProxy) .approve_siring_and_return_kitty(approved_address, kitty_owner, kitty_id) // not a mistake, same callback for transfer and approveSiringAndReturnKitty - .with_callback(self.callbacks().transfer_callback(kitty_id)) + .callback(self.callbacks().transfer_callback(kitty_id)) .async_call_and_exit(); } } diff --git a/contracts/examples/crypto-kitties/kitty-ownership/src/lib.rs b/contracts/examples/crypto-kitties/kitty-ownership/src/lib.rs index d6e0771fa4..dbde8aed52 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/src/lib.rs +++ b/contracts/examples/crypto-kitties/kitty-ownership/src/lib.rs @@ -341,7 +341,7 @@ pub trait KittyOwnership { .to(&gene_science_contract_address) .typed(kitty_genetic_alg_proxy::KittyGeneticAlgProxy) .generate_kitty_genes(matron, sire) - .with_callback( + .callback( self.callbacks() .generate_kitty_genes_callback(matron_id, caller), ) diff --git a/contracts/examples/crypto-zombies/src/zombie_feeding.rs b/contracts/examples/crypto-zombies/src/zombie_feeding.rs index 7afd7a7be8..56ef89cb7c 100644 --- a/contracts/examples/crypto-zombies/src/zombie_feeding.rs +++ b/contracts/examples/crypto-zombies/src/zombie_feeding.rs @@ -57,7 +57,7 @@ pub trait ZombieFeeding: .to(&crypto_kitties_sc_address) .typed(kitty_ownership_proxy::KittyOwnershipProxy) .get_kitty_by_id_endpoint(kitty_id) - .with_callback(self.callbacks().get_kitty_callback(zombie_id)) + .callback(self.callbacks().get_kitty_callback(zombie_id)) .async_call_and_exit(); } } diff --git a/contracts/examples/multisig/src/multisig_perform.rs b/contracts/examples/multisig/src/multisig_perform.rs index dfa7016340..ef7a3ec257 100644 --- a/contracts/examples/multisig/src/multisig_perform.rs +++ b/contracts/examples/multisig/src/multisig_perform.rs @@ -167,16 +167,15 @@ pub trait MultisigPerformModule: &call_data.endpoint_name, call_data.arguments.as_multi(), ); - let result = self.send_raw().direct_egld_execute( - &call_data.to, - &call_data.egld_amount, - gas, - &call_data.endpoint_name, - &call_data.arguments.into(), - ); - if let Result::Err(e) = result { - sc_panic!(e); - } + + self.tx() + .to(&call_data.to) + .raw_call(call_data.endpoint_name) + .arguments_raw(call_data.arguments.into()) + .gas(gas) + .egld(&call_data.egld_amount) + .transfer_execute(); + OptionalValue::None }, Action::SendAsyncCall(call_data) => { @@ -213,13 +212,17 @@ pub trait MultisigPerformModule: gas_left, arguments.as_multi(), ); - let (new_address, _) = self.send_raw().deploy_from_source_contract( - gas_left, - &amount, - &source, - code_metadata, - &arguments.into(), - ); + let new_address = self + .tx() + .gas(gas_left) + .egld(&amount) + .raw_deploy() + .arguments_raw(arguments.into()) + .from_source(source) + .code_metadata(code_metadata) + .returns(ReturnsNewManagedAddress) + .sync_call(); + OptionalValue::Some(new_address) }, Action::SCUpgradeFromSource { @@ -239,14 +242,16 @@ pub trait MultisigPerformModule: gas_left, arguments.as_multi(), ); - self.send_raw().upgrade_from_source_contract( - &sc_address, - gas_left, - &amount, - &source, - code_metadata, - &arguments.into(), - ); + + self.tx() + .to(&sc_address) + .raw_upgrade() + .arguments_raw(arguments.into()) + .egld(&amount) + .from_source(source) + .code_metadata(code_metadata) + .upgrade_async_call_and_exit(); + OptionalValue::None }, } diff --git a/contracts/examples/order-book/factory/src/lib.rs b/contracts/examples/order-book/factory/src/lib.rs index cac1192361..fb83863ae3 100644 --- a/contracts/examples/order-book/factory/src/lib.rs +++ b/contracts/examples/order-book/factory/src/lib.rs @@ -23,13 +23,19 @@ pub trait Factory { arguments.push_arg(&token_id_pair.first_token_id); arguments.push_arg(&token_id_pair.second_token_id); - let (pair_address, _) = self.send_raw().deploy_from_source_contract( - self.blockchain().get_gas_left(), - &BigUint::zero(), - &self.pair_template_address().get(), - CodeMetadata::DEFAULT, - &arguments, - ); + let gas_left = self.blockchain().get_gas_left(); + let source = self.pair_template_address().get(); + + let pair_address = self + .tx() + .gas(gas_left) + .raw_deploy() + .arguments_raw(arguments) + .from_source(source) + .code_metadata(CodeMetadata::DEFAULT) + .returns(ReturnsNewManagedAddress) + .sync_call(); + self.pairs().insert(token_id_pair, pair_address.clone()); pair_address diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs index dfa6ff75e5..ad089ef4ce 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs @@ -90,14 +90,13 @@ pub trait FirstContract { "Wrong esdt token" ); - let _ = self.send_raw().transfer_esdt_execute( - &second_contract_address, - &expected_token_identifier, - &esdt_value, - self.blockchain().get_gas_left(), - &ManagedBuffer::from(SECOND_CONTRACT_REJECT_ESDT_PAYMENT), - &ManagedArgBuffer::new(), - ); + let gas_left = self.blockchain().get_gas_left(); + self.tx() + .to(&second_contract_address) + .gas(gas_left) + .raw_call(ManagedBuffer::from(SECOND_CONTRACT_REJECT_ESDT_PAYMENT)) + .single_esdt(&expected_token_identifier, 0u64, &esdt_value) + .transfer_execute(); } #[payable("*")] @@ -112,14 +111,13 @@ pub trait FirstContract { "Wrong esdt token" ); - let _ = self.send_raw().transfer_esdt_execute( - &second_contract_address, - &expected_token_identifier, - &esdt_value, - self.blockchain().get_gas_left(), - &ManagedBuffer::from(SECOND_CONTRACT_ACCEPT_ESDT_PAYMENT), - &ManagedArgBuffer::new(), - ); + let gas_left = self.blockchain().get_gas_left(); + self.tx() + .to(&second_contract_address) + .gas(gas_left) + .raw_call(ManagedBuffer::from(SECOND_CONTRACT_ACCEPT_ESDT_PAYMENT)) + .single_esdt(&expected_token_identifier, 0u64, &esdt_value) + .transfer_execute(); } fn call_esdt_second_contract( @@ -138,12 +136,11 @@ pub trait FirstContract { arg_buffer.push_arg_raw(arg); } - self.send_raw().async_call_raw( - to, - &BigUint::zero(), - &ManagedBuffer::from(ESDT_TRANSFER_STRING), - &arg_buffer, - ); + self.tx() + .to(to) + .raw_call(ManagedBuffer::from(ESDT_TRANSFER_STRING)) + .arguments_raw(arg_buffer) + .async_call_and_exit(); } // storage diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/lib.rs b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/lib.rs index d9dfe79d0e..5c4bff50d0 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/lib.rs +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/lib.rs @@ -23,7 +23,7 @@ pub trait Parent { .tx() .raw_deploy() .code(code) - .with_gas_limit(gas_left) + .gas(gas_left) .returns(ReturnsNewManagedAddress) .sync_call(); @@ -46,7 +46,7 @@ pub trait Parent { .typed(child_proxy::ChildProxy) .issue_wrapped_egld(token_display_name, token_ticker, initial_supply) .egld(issue_cost) - .with_gas_limit(ISSUE_EXPECTED_GAS_COST) + .gas(ISSUE_EXPECTED_GAS_COST) .sync_call(); } diff --git a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_alt_init.rs b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_alt_init.rs index 0ded59b36d..f00a10d434 100644 --- a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_alt_init.rs +++ b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_alt_init.rs @@ -54,13 +54,16 @@ pub trait ForwarderRawAlterativeInit: super::forwarder_raw_common::ForwarderRawC ) { let payment = self.call_value().egld_value(); let half_gas = self.blockchain().get_gas_left() / 2; - let result = self.send_raw().execute_on_dest_context_raw( - half_gas, - &to, - &payment, - &endpoint_name, - &args.to_arg_buffer(), - ); + + let result = self + .tx() + .to(&to) + .gas(half_gas) + .egld(payment) + .raw_call(endpoint_name) + .arguments_raw(args.to_arg_buffer()) + .returns(ReturnsRawResult) + .sync_call(); self.execute_on_dest_context_result(result); } diff --git a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_async.rs b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_async.rs index fbd0eec1a4..39638bbe6f 100644 --- a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_async.rs +++ b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_async.rs @@ -98,7 +98,7 @@ pub trait ForwarderRawAsync: super::forwarder_raw_common::ForwarderRawCommon { endpoint_name, args, ) - .with_gas_limit(self.blockchain().get_gas_left() / 2) + .gas(self.blockchain().get_gas_left() / 2) .transfer_execute(); } @@ -118,7 +118,7 @@ pub trait ForwarderRawAsync: super::forwarder_raw_common::ForwarderRawCommon { endpoint_name, args, ) - .with_gas_limit(self.blockchain().get_gas_left() / 2) + .gas(self.blockchain().get_gas_left() / 2) .transfer_execute(); } @@ -132,7 +132,7 @@ pub trait ForwarderRawAsync: super::forwarder_raw_common::ForwarderRawCommon { ) { let (token, payment) = self.call_value().egld_or_single_fungible_esdt(); self.forward_contract_call(to, token, payment, endpoint_name, args) - .with_gas_limit(self.blockchain().get_gas_left() / 2) + .gas(self.blockchain().get_gas_left() / 2) .transfer_execute(); } @@ -153,10 +153,10 @@ pub trait ForwarderRawAsync: super::forwarder_raw_common::ForwarderRawCommon { endpoint_name.clone(), args.clone(), ) - .with_gas_limit(self.blockchain().get_gas_left() / 2) + .gas(self.blockchain().get_gas_left() / 2) .transfer_execute(); self.forward_contract_call(to, token, half_payment, endpoint_name, args) - .with_gas_limit(self.blockchain().get_gas_left() / 2) + .gas(self.blockchain().get_gas_left() / 2) .transfer_execute(); } @@ -175,12 +175,11 @@ pub trait ForwarderRawAsync: super::forwarder_raw_common::ForwarderRawCommon { arg_buffer.push_arg(amount); } - self.send_raw().async_call_raw( - &to, - &BigUint::zero(), - &ManagedBuffer::from(&b"retrieve_multi_funds_async"[..]), - &arg_buffer, - ); + self.tx() + .to(&to) + .raw_call("retrieve_multi_funds_async") + .arguments_raw(arg_buffer) + .async_call_and_exit(); } #[endpoint] diff --git a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_deploy_upgrade.rs b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_deploy_upgrade.rs index b57ac773e2..803119c140 100644 --- a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_deploy_upgrade.rs +++ b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_deploy_upgrade.rs @@ -14,7 +14,7 @@ pub trait ForwarderRawDeployUpgrade { .code(code) .code_metadata(code_metadata) .arguments_raw(args.to_arg_buffer()) - .with_gas_limit(self.blockchain().get_gas_left()) + .gas(self.blockchain().get_gas_left()) .returns(ReturnsNewManagedAddress) .returns(ReturnsRawResult) .sync_call() @@ -33,7 +33,7 @@ pub trait ForwarderRawDeployUpgrade { .from_source(source_contract_address) .code_metadata(code_metadata) .arguments_raw(args.to_arg_buffer()) - .with_gas_limit(self.blockchain().get_gas_left()) + .gas(self.blockchain().get_gas_left()) .returns(ReturnsNewManagedAddress) .sync_call() } @@ -69,7 +69,7 @@ pub trait ForwarderRawDeployUpgrade { .from_source(source_contract_address) .code_metadata(code_metadata) .arguments_raw(args.to_arg_buffer()) - .with_gas_limit(self.blockchain().get_gas_left()) + .gas(self.blockchain().get_gas_left()) .upgrade_async_call_and_exit(); } } diff --git a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_sync.rs b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_sync.rs index 662518d093..a4e98f36a7 100644 --- a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_sync.rs +++ b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_sync.rs @@ -18,7 +18,7 @@ pub trait ForwarderRawSync: super::forwarder_raw_common::ForwarderRawCommon { .egld(payment) .raw_call(endpoint_name) .argument(&args) - .with_gas_limit(half_gas) + .gas(half_gas) .returns(ReturnsRawResult) .sync_call(); @@ -38,22 +38,28 @@ pub trait ForwarderRawSync: super::forwarder_raw_common::ForwarderRawCommon { let half_payment = &*payment / 2u32; let arg_buffer = args.to_arg_buffer(); - let result = self.send_raw().execute_on_dest_context_raw( - one_third_gas, - &to, - &half_payment, - &endpoint_name, - &arg_buffer, - ); + let result = self + .tx() + .to(&to) + .gas(one_third_gas) + .egld(&half_payment) + .raw_call(endpoint_name.clone()) + .arguments_raw(arg_buffer.clone()) + .returns(ReturnsRawResult) + .sync_call(); + self.execute_on_dest_context_result(result); - let result = self.send_raw().execute_on_dest_context_raw( - one_third_gas, - &to, - &half_payment, - &endpoint_name, - &arg_buffer, - ); + let result = self + .tx() + .to(&to) + .gas(one_third_gas) + .egld(&half_payment) + .raw_call(endpoint_name) + .arguments_raw(arg_buffer) + .returns(ReturnsRawResult) + .sync_call(); + self.execute_on_dest_context_result(result); } @@ -67,13 +73,16 @@ pub trait ForwarderRawSync: super::forwarder_raw_common::ForwarderRawCommon { ) { let payment = self.call_value().egld_value(); let half_gas = self.blockchain().get_gas_left() / 2; - let result = self.send_raw().execute_on_same_context_raw( - half_gas, - &to, - &payment, - &endpoint_name, - &args.to_arg_buffer(), - ); + + let result = self + .tx() + .to(&to) + .gas(half_gas) + .egld(payment) + .raw_call(endpoint_name) + .arguments_raw(args.to_arg_buffer()) + .returns(ReturnsRawResult) + .sync_call(); self.execute_on_same_context_result(result); } @@ -86,12 +95,14 @@ pub trait ForwarderRawSync: super::forwarder_raw_common::ForwarderRawCommon { args: MultiValueEncoded, ) { let half_gas = self.blockchain().get_gas_left() / 2; - let result = self.send_raw().execute_on_dest_context_readonly_raw( - half_gas, - &to, - &endpoint_name, - &args.to_arg_buffer(), - ); + let result = self + .tx() + .to(&to) + .gas(half_gas) + .raw_call(endpoint_name) + .arguments_raw(args.to_arg_buffer()) + .returns(ReturnsRawResult) + .sync_call(); self.execute_on_dest_context_result(result); } diff --git a/contracts/feature-tests/composability/forwarder/src/call_async.rs b/contracts/feature-tests/composability/forwarder/src/call_async.rs index 04ba78faab..2de43a6752 100644 --- a/contracts/feature-tests/composability/forwarder/src/call_async.rs +++ b/contracts/feature-tests/composability/forwarder/src/call_async.rs @@ -22,9 +22,8 @@ pub trait ForwarderAsyncCallModule { .to(&to) .typed(vault_proxy::VaultProxy) .echo_arguments(args) - .async_call() - .with_callback(self.callbacks().echo_args_callback()) - .call_and_exit(); + .callback(self.callbacks().echo_args_callback()) + .async_call_and_exit(); } #[callback] @@ -61,7 +60,7 @@ pub trait ForwarderAsyncCallModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer(payment) + .payment(payment) .async_call() .call_and_exit() } @@ -75,11 +74,11 @@ pub trait ForwarderAsyncCallModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer(( - payment.token_identifier, + .egld_or_single_esdt( + &payment.token_identifier, payment.token_nonce, - half_payment, - )) + &half_payment, + ) .async_call() .call_and_exit() } @@ -95,13 +94,12 @@ pub trait ForwarderAsyncCallModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer(( - payment.token_identifier, + .egld_or_single_esdt( + &payment.token_identifier, payment.token_nonce, - amount_to_send, - )) - .async_call() - .call_and_exit() + &amount_to_send, + ) + .async_call_and_exit(); } #[endpoint] @@ -117,7 +115,7 @@ pub trait ForwarderAsyncCallModule { .typed(vault_proxy::VaultProxy) .retrieve_funds(token, token_nonce, amount) .async_call() - .with_callback(self.callbacks().retrieve_funds_callback()) + .callback(self.callbacks().retrieve_funds_callback()) .call_and_exit() } @@ -154,13 +152,12 @@ pub trait ForwarderAsyncCallModule { .to(to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer((token_identifier.clone(), 0u64, amount.clone())) - .async_call() - .with_callback( + .egld_or_single_esdt(token_identifier, 0u64, amount) + .callback( self.callbacks() .send_funds_twice_callback(to, token_identifier, amount), ) - .call_and_exit(); + .async_call_and_exit(); } #[callback] @@ -174,9 +171,8 @@ pub trait ForwarderAsyncCallModule { .to(to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer((token_identifier.clone(), 0u64, cb_amount.clone())) - .async_call() - .call_and_exit(); + .egld_or_single_esdt(token_identifier, 0u64, cb_amount) + .async_call_and_exit(); } #[endpoint] @@ -198,7 +194,7 @@ pub trait ForwarderAsyncCallModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_multi_token_transfer(all_token_payments) + .payment(all_token_payments) .async_call() .call_and_exit(); } diff --git a/contracts/feature-tests/composability/forwarder/src/call_sync.rs b/contracts/feature-tests/composability/forwarder/src/call_sync.rs index 8366f0ae29..13fbcd40db 100644 --- a/contracts/feature-tests/composability/forwarder/src/call_sync.rs +++ b/contracts/feature-tests/composability/forwarder/src/call_sync.rs @@ -14,7 +14,7 @@ pub trait ForwarderSyncCallModule { let result = self .tx() .to(&to) - .with_gas_limit(half_gas) + .gas(half_gas) .typed(vault_proxy::VaultProxy) .echo_arguments(args) .returns(ReturnsResult) @@ -35,7 +35,7 @@ pub trait ForwarderSyncCallModule { let result = self .tx() .to(&to) - .with_gas_limit(one_third_gas) + .gas(one_third_gas) .typed(vault_proxy::VaultProxy) .echo_arguments(args.clone()) .returns(ReturnsResult) @@ -46,7 +46,7 @@ pub trait ForwarderSyncCallModule { let result = self .tx() .to(&to) - .with_gas_limit(one_third_gas) + .gas(one_third_gas) .typed(vault_proxy::VaultProxy) .echo_arguments(args) .returns(ReturnsResult) @@ -67,10 +67,10 @@ pub trait ForwarderSyncCallModule { let result = self .tx() .to(&to) - .with_gas_limit(half_gas) + .gas(half_gas) .typed(vault_proxy::VaultProxy) .accept_funds_echo_payment() - .with_egld_or_single_esdt_transfer(payment) + .payment(payment) .returns(ReturnsResult) .sync_call(); @@ -90,7 +90,7 @@ pub trait ForwarderSyncCallModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer((token_id, 0u64, amount_to_send)) + .egld_or_single_esdt(&token_id, 0u64, &amount_to_send) .returns(ReturnsResult) .sync_call(); } @@ -110,7 +110,7 @@ pub trait ForwarderSyncCallModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer(payment) + .payment(payment) .sync_call(); self.tx() @@ -154,7 +154,7 @@ pub trait ForwarderSyncCallModule { amount, OptionalValue::::Some(b"accept_funds_func".into()), ) - .with_multi_token_transfer(payments.clone_value()) + .payment(payments) .sync_call(); } @@ -180,7 +180,7 @@ pub trait ForwarderSyncCallModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_multi_token_transfer(all_token_payments) + .payment(all_token_payments) .sync_call(); } } diff --git a/contracts/feature-tests/composability/forwarder/src/call_transf_exec.rs b/contracts/feature-tests/composability/forwarder/src/call_transf_exec.rs index 3573987867..952f50275c 100644 --- a/contracts/feature-tests/composability/forwarder/src/call_transf_exec.rs +++ b/contracts/feature-tests/composability/forwarder/src/call_transf_exec.rs @@ -14,7 +14,7 @@ pub trait ForwarderTransferExecuteModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer(payment) + .payment(payment) .transfer_execute(); } @@ -33,7 +33,7 @@ pub trait ForwarderTransferExecuteModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer((token_id, 0u64, amount_to_send)) + .egld_or_single_esdt(&token_id, 0u64, &amount_to_send) .transfer_execute(); } @@ -48,16 +48,16 @@ pub trait ForwarderTransferExecuteModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer((token.clone(), token_nonce, half_payment.clone())) - .with_gas_limit(half_gas) + .egld_or_single_esdt(&token, token_nonce, &half_payment) + .gas(half_gas) .transfer_execute(); self.tx() .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer((token, token_nonce, half_payment)) - .with_gas_limit(half_gas) + .egld_or_single_esdt(&token, token_nonce, &half_payment) + .gas(half_gas) .transfer_execute(); } @@ -77,7 +77,7 @@ pub trait ForwarderTransferExecuteModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_egld_or_single_esdt_transfer(payment) + .payment(payment) .transfer_execute(); let gas_left_after = self.blockchain().get_gas_left(); @@ -110,7 +110,7 @@ pub trait ForwarderTransferExecuteModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_multi_token_transfer(all_token_payments) + .payment(all_token_payments) .transfer_execute() } @@ -133,7 +133,7 @@ pub trait ForwarderTransferExecuteModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_multi_token_transfer(all_token_payments) + .payment(all_token_payments) .transfer_execute() } @@ -156,7 +156,7 @@ pub trait ForwarderTransferExecuteModule { .to(&to) .typed(vault_proxy::VaultProxy) .reject_funds() - .with_multi_token_transfer(all_token_payments) + .payment(all_token_payments) .transfer_execute() } } diff --git a/contracts/feature-tests/composability/forwarder/src/nft.rs b/contracts/feature-tests/composability/forwarder/src/nft.rs index 65e5eb7de1..8eae1e83c5 100644 --- a/contracts/feature-tests/composability/forwarder/src/nft.rs +++ b/contracts/feature-tests/composability/forwarder/src/nft.rs @@ -238,15 +238,14 @@ pub trait ForwarderNftModule: storage::ForwarderStorageModule { function: ManagedBuffer, arguments: MultiValueEncoded, ) { - let _ = self.send_raw().transfer_esdt_nft_execute( - &to, - &token_identifier, - nonce, - &amount, - self.blockchain().get_gas_left(), - &function, - &arguments.to_arg_buffer(), - ); + let gas_left = self.blockchain().get_gas_left(); + self.tx() + .to(&to) + .gas(gas_left) + .raw_call(function) + .arguments_raw(arguments.to_arg_buffer()) + .single_esdt(&token_identifier, nonce, &amount) + .transfer_execute(); } #[endpoint] diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/src/lib.rs b/contracts/feature-tests/composability/local-esdt-and-nft/src/lib.rs index e65fd789b4..2f0bf64dc2 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/src/lib.rs +++ b/contracts/feature-tests/composability/local-esdt-and-nft/src/lib.rs @@ -157,15 +157,15 @@ pub trait LocalEsdtAndEsdtNft { arg_buffer.push_arg_raw(arg); } - let _ = self.send_raw().transfer_esdt_nft_execute( - &to, - &token_identifier, - nonce, - &amount, - self.blockchain().get_gas_left(), - &function, - &arg_buffer, - ); + let gas_left = self.blockchain().get_gas_left(); + + self.tx() + .to(&to) + .gas(gas_left) + .raw_call(function) + .arguments_raw(arg_buffer) + .single_esdt(&token_identifier, nonce, &amount) + .transfer_execute(); } // Semi-Fungible diff --git a/contracts/feature-tests/composability/promises-features/src/call_promises.rs b/contracts/feature-tests/composability/promises-features/src/call_promises.rs index 2b116215cc..92a2c8e0e1 100644 --- a/contracts/feature-tests/composability/promises-features/src/call_promises.rs +++ b/contracts/feature-tests/composability/promises-features/src/call_promises.rs @@ -17,8 +17,8 @@ pub trait CallPromisesModule: common::CommonModule { .to(&to) .typed(vault_proxy::VaultProxy) .accept_funds() - .with_gas_limit(gas_limit) - .with_egld_or_single_esdt_transfer(payment) + .gas(gas_limit) + .payment(payment) .register_promise(); } @@ -36,9 +36,9 @@ pub trait CallPromisesModule: common::CommonModule { .to(&to) .typed(vault_proxy::VaultProxy) .retrieve_funds(token, token_nonce, amount) - .with_gas_limit(gas_limit) - .with_callback(self.callbacks().retrieve_funds_callback()) - .with_extra_gas_for_callback(10_000_000) + .gas(gas_limit) + .callback(self.callbacks().retrieve_funds_callback()) + .gas_for_callback(10_000_000) .register_promise(); } diff --git a/contracts/feature-tests/composability/promises-features/src/call_promises_bt.rs b/contracts/feature-tests/composability/promises-features/src/call_promises_bt.rs index 6f5d85179e..f6cbbfa188 100644 --- a/contracts/feature-tests/composability/promises-features/src/call_promises_bt.rs +++ b/contracts/feature-tests/composability/promises-features/src/call_promises_bt.rs @@ -20,10 +20,10 @@ pub trait CallPromisesBackTransfersModule: common::CommonModule { .to(&to) .typed(vault_proxy::VaultProxy) .retrieve_funds(token, token_nonce, amount) - .with_gas_limit(gas_limit) + .gas(gas_limit) .async_call() - .with_callback(self.callbacks().retrieve_funds_back_transfers_callback()) - .with_extra_gas_for_callback(10_000_000) + .callback(self.callbacks().retrieve_funds_back_transfers_callback()) + .gas_for_callback(10_000_000) .register_promise(); } diff --git a/contracts/feature-tests/composability/proxy-test-first/src/proxy-test-first.rs b/contracts/feature-tests/composability/proxy-test-first/src/proxy-test-first.rs index bc3d648b56..ccc9c45406 100644 --- a/contracts/feature-tests/composability/proxy-test-first/src/proxy-test-first.rs +++ b/contracts/feature-tests/composability/proxy-test-first/src/proxy-test-first.rs @@ -84,9 +84,8 @@ pub trait ProxyTestFirst { .typed(pay_me_proxy::PayMeProxy) .pay_me_with_result(0x56) .egld(payment) - .async_call() - .with_callback(self.callbacks().pay_callback()) - .call_and_exit(); + .callback(self.callbacks().pay_callback()) + .async_call_and_exit(); } #[endpoint(messageOtherContract)] @@ -117,9 +116,8 @@ pub trait ProxyTestFirst { [3u8; 3].to_vec(), &ManagedAddress::from(&HARDCODED_ADDRESS), ) - .async_call() - .with_callback(self.callbacks().message_callback()) - .call_and_exit() + .callback(self.callbacks().message_callback()) + .async_call_and_exit() } #[callback(payCallback)] // although uncommon, custom callback names are possible diff --git a/contracts/feature-tests/composability/recursive-caller/src/recursive_caller.rs b/contracts/feature-tests/composability/recursive-caller/src/recursive_caller.rs index 94f26e7e8d..339a9c7304 100644 --- a/contracts/feature-tests/composability/recursive-caller/src/recursive_caller.rs +++ b/contracts/feature-tests/composability/recursive-caller/src/recursive_caller.rs @@ -26,14 +26,13 @@ pub trait RecursiveCaller { .typed(vault_proxy::VaultProxy) .accept_funds() .egld_or_single_esdt(token_identifier, 0, amount) - .async_call() - .with_callback(self.callbacks().recursive_send_funds_callback( + .callback(self.callbacks().recursive_send_funds_callback( to, token_identifier, amount, counter, )) - .call_and_exit(); + .async_call_and_exit(); } #[callback] diff --git a/contracts/feature-tests/composability/vault/src/vault.rs b/contracts/feature-tests/composability/vault/src/vault.rs index d23123ca01..6984291b06 100644 --- a/contracts/feature-tests/composability/vault/src/vault.rs +++ b/contracts/feature-tests/composability/vault/src/vault.rs @@ -107,16 +107,12 @@ pub trait Vault { let caller = self.blockchain().get_caller(); let func_name = opt_receive_func.into_option().unwrap_or_default(); - self.send_raw() - .transfer_esdt_execute( - &caller, - &token, - &amount, - 50_000_000, - &func_name, - &ManagedArgBuffer::new(), - ) - .unwrap_or_else(|_| sc_panic!("ESDT transfer failed")); + self.tx() + .to(&caller) + .gas(50_000_000u64) + .raw_call(func_name) + .single_esdt(&token, 0u64, &amount) + .transfer_execute(); } #[allow_multiple_var_args] diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/crowdfunding_erc20.rs b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/crowdfunding_erc20.rs index 72b1cf8708..019ec560a5 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/crowdfunding_erc20.rs +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/crowdfunding_erc20.rs @@ -36,7 +36,7 @@ pub trait Crowdfunding { .to(&erc20_address) .typed(erc20_proxy::SimpleErc20TokenProxy) .transfer_from(caller.clone(), cf_contract_address, token_amount.clone()) - .with_callback( + .callback( self.callbacks() .transfer_from_callback(caller, token_amount), ) diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155.rs b/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155.rs index c6e9c5ce9a..725cff90de 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155.rs @@ -354,7 +354,7 @@ pub trait Erc1155 { .to(to.clone()) .typed(erc1155_user_proxy::Erc1155UserProxy) .on_erc1155_received(caller, from.clone(), type_id.clone(), value.clone(), data) - .with_callback(self.callbacks().transfer_callback( + .callback(self.callbacks().transfer_callback( from, to, [type_id].to_vec(), @@ -383,7 +383,7 @@ pub trait Erc1155 { values.to_vec(), data, ) - .with_callback(self.callbacks().transfer_callback( + .callback(self.callbacks().transfer_callback( from, to, type_ids.to_vec(), diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/lottery.rs b/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/lottery.rs index 105b19b166..1bbd1f7370 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/lottery.rs +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/lottery.rs @@ -214,7 +214,7 @@ pub trait Lottery { .to(&erc20_address) .typed(erc20_proxy::SimpleErc20TokenProxy) .transfer_from(caller.clone(), lottery_contract_address, token_amount) - .with_callback( + .callback( self.callbacks() .transfer_from_callback(lottery_name, &caller), ) @@ -285,7 +285,7 @@ pub trait Lottery { .to(&erc20_address) .typed(erc20_proxy::SimpleErc20TokenProxy) .transfer(winner_address, prize) - .with_callback(self.callbacks().distribute_prizes_callback(lottery_name)) + .callback(self.callbacks().distribute_prizes_callback(lottery_name)) .async_call_and_exit(); } diff --git a/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs b/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs index dae11542e4..7a5b181028 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs +++ b/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs @@ -176,13 +176,14 @@ pub trait RustTestingFrameworkTester: dummy_module::DummyModule { #[endpoint] fn call_other_contract_execute_on_dest(&self, other_sc_address: ManagedAddress) -> BigUint { - let call_result = self.send_raw().execute_on_dest_context_raw( - self.blockchain().get_gas_left(), - &other_sc_address, - &BigUint::zero(), - &ManagedBuffer::new_from_bytes(b"getTotalValue"), - &ManagedArgBuffer::new(), - ); + let gas_left = self.blockchain().get_gas_left(); + let call_result = self + .tx() + .to(&other_sc_address) + .gas(gas_left) + .raw_call("getTotalValue") + .returns(ReturnsRawResult) + .sync_call(); if let Some(raw_value) = call_result.try_get(0) { BigUint::from_bytes_be_buffer(&raw_value) } else { @@ -195,12 +196,11 @@ pub trait RustTestingFrameworkTester: dummy_module::DummyModule { let mut args = ManagedArgBuffer::new(); args.push_arg(&value); - self.send_raw().async_call_raw( - &other_sc_address, - &BigUint::zero(), - &ManagedBuffer::new_from_bytes(b"add"), - &args, - ); + self.tx() + .to(&other_sc_address) + .raw_call("call") + .arguments_raw(args) + .async_call_and_exit(); } #[callback_raw] @@ -218,13 +218,13 @@ pub trait RustTestingFrameworkTester: dummy_module::DummyModule { let mut args = ManagedArgBuffer::new(); args.push_arg(value); - let _ = self.send_raw().execute_on_dest_context_raw( - self.blockchain().get_gas_left(), - &other_sc_address, - &BigUint::zero(), - &ManagedBuffer::new_from_bytes(b"addValue"), - &args, - ); + let gas_left = self.blockchain().get_gas_left(); + self.tx() + .to(&other_sc_address) + .gas(gas_left) + .raw_call("addValue") + .arguments_raw(args) + .sync_call(); } #[endpoint(addValue)] diff --git a/framework/base/src/storage/mappers/token/fungible_token_mapper.rs b/framework/base/src/storage/mappers/token/fungible_token_mapper.rs index f24e6139bf..efc322c2eb 100644 --- a/framework/base/src/storage/mappers/token/fungible_token_mapper.rs +++ b/framework/base/src/storage/mappers/token/fungible_token_mapper.rs @@ -184,7 +184,7 @@ where EsdtTokenType::Fungible, num_decimals, ) - .with_callback(callback) + .callback(callback) .async_call_and_exit(); } diff --git a/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs b/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs index 666776e88b..3e886f21de 100644 --- a/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs +++ b/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs @@ -202,7 +202,7 @@ where num_decimals, ) .async_call() - .with_callback(callback) + .callback(callback) .call_and_exit() } diff --git a/framework/base/src/types/interaction/tx_exec/tx_exec_upgrade.rs b/framework/base/src/types/interaction/tx_exec/tx_exec_upgrade.rs index 5a08481640..01a0107d68 100644 --- a/framework/base/src/types/interaction/tx_exec/tx_exec_upgrade.rs +++ b/framework/base/src/types/interaction/tx_exec/tx_exec_upgrade.rs @@ -79,6 +79,41 @@ where } } +impl + Tx< + TxScEnv, + (), + &ManagedAddress, + Payment, + Gas, + UpgradeCall, FromSource>, + RH, + > +where + Api: CallTypeApi, + Payment: TxPaymentEgldOnly>, + Gas: TxGas>, + FromSourceValue: TxFromSourceValue>, + RH: TxEmptyResultHandler>, +{ + /// Launches the upgrade from source async call. + /// + /// TODO: change return type to `!`. + pub fn upgrade_async_call_and_exit(self) { + let gas = self.gas.explicit_or_gas_left(&self.env); + self.payment.with_egld_value(&self.env, |egld_value| { + SendRawWrapper::::new().upgrade_from_source_contract( + self.to, + gas, + egld_value, + &self.data.code_source.0.into_value(&self.env), + self.data.code_metadata, + &self.data.arg_buffer, + ); + }); + } +} + impl Tx, (), ManagedAddress, Payment, Gas, UpgradeCall, ()>, RH> where @@ -133,3 +168,58 @@ where }); } } + +impl + Tx, (), &ManagedAddress, Payment, Gas, UpgradeCall, ()>, RH> +where + Api: CallTypeApi, + Payment: TxPaymentEgldOnly>, + Gas: TxGas>, + RH: TxEmptyResultHandler>, +{ + /// Backwards compatibility, immitates the old API. + /// + /// Note that the data type (the `UpgradeCall`) doesn't have the code set. + /// This is because the old API was passing it as paramter, so we use it from the `code` argument. + /// + /// Also note that the code metadata is taken from the `code_metadata` argument. + /// If another one was previously set in the `Tx` object, that one will be ignored. + pub fn upgrade_contract(self, code: &ManagedBuffer, code_metadata: CodeMetadata) { + let gas = self.gas.explicit_or_gas_left(&self.env); + self.payment.with_egld_value(&self.env, |egld_value| { + SendRawWrapper::::new().upgrade_contract( + self.to, + gas, + egld_value, + code, + code_metadata, + &self.data.arg_buffer, + ); + }); + } + + /// Backwards compatibility, immitates the old API. + /// + /// Note that the data type (the `UpgradeCall`) doesn't have the code set. + /// This is because the old API was passing it as paramter, so we use it from the `code` argument. + /// + /// Also note that the code metadata is taken from the `code_metadata` argument. + /// If another one was previously set in the `Tx` object, that one will be ignored. + pub fn upgrade_from_source( + self, + source_address: &ManagedAddress, + code_metadata: CodeMetadata, + ) { + let gas = self.gas.explicit_or_gas_left(&self.env); + self.payment.with_egld_value(&self.env, |egld_value| { + SendRawWrapper::::new().upgrade_from_source_contract( + self.to, + gas, + egld_value, + source_address, + code_metadata, + &self.data.arg_buffer, + ); + }); + } +} diff --git a/framework/base/src/types/interaction/upgrade_call.rs b/framework/base/src/types/interaction/upgrade_call.rs index d69895f029..c33290e82b 100644 --- a/framework/base/src/types/interaction/upgrade_call.rs +++ b/framework/base/src/types/interaction/upgrade_call.rs @@ -1,8 +1,13 @@ use multiversx_sc_codec::TopEncodeMulti; -use crate::types::{CodeMetadata, ManagedBuffer, ManagedBufferCachedBuilder}; +use crate::{ + proxy_imports::ManagedTypeApi, + types::{CodeMetadata, ManagedBuffer, ManagedBufferCachedBuilder}, +}; -use super::{ManagedArgBuffer, TxCodeSource, TxData, TxEnv}; +use super::{ + FunctionCall, ManagedArgBuffer, TxCodeSource, TxData, TxDataFunctionCall, TxEnv, TxScEnv, +}; /// Holds deploy data: code, code metadata, and arguments. pub struct UpgradeCall From 16ff8d198d0aeba4c209b0e08bbe4d868ea4f790 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 8 Apr 2024 16:41:54 +0200 Subject: [PATCH 013/185] fix mandos --- .../composability/scenarios/forw_raw_sync_echo.scen.json | 9 ++------- .../scenarios/forw_raw_sync_echo_caller.scen.json | 7 ++----- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo.scen.json b/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo.scen.json index 37715399ae..ed599f9492 100644 --- a/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo.scen.json +++ b/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo.scen.json @@ -91,12 +91,7 @@ "gasPrice": "0" }, "expect": { - "out": [ - "1", - "2", - "1", - "2" - ], + "out": [], "status": "0", "logs": [ { @@ -163,4 +158,4 @@ } } ] -} +} \ No newline at end of file diff --git a/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo_caller.scen.json b/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo_caller.scen.json index 50b291e3b4..0bfa9fd894 100644 --- a/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo_caller.scen.json +++ b/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo_caller.scen.json @@ -80,10 +80,7 @@ "gasPrice": "0" }, "expect": { - "out": [ - "sc:forwarder", - "sc:forwarder" - ], + "out": [], "status": "0", "logs": [ { @@ -136,4 +133,4 @@ } } ] -} +} \ No newline at end of file From 978c5629f810318bfef196241e6f06b7b1033842 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 8 Apr 2024 18:28:26 +0300 Subject: [PATCH 014/185] codec - universal_decode_number optimziation --- .../src/impl_for_types/impl_num_signed.rs | 8 ++-- .../src/impl_for_types/impl_num_unsigned.rs | 8 ++-- data/codec/src/num_conv.rs | 41 +++++++++++-------- data/codec/src/single/top_de_input.rs | 9 ++-- data/codec/tests/derive_hygiene.rs | 1 + 5 files changed, 39 insertions(+), 28 deletions(-) diff --git a/data/codec/src/impl_for_types/impl_num_signed.rs b/data/codec/src/impl_for_types/impl_num_signed.rs index 50cb85614e..3596c65e80 100644 --- a/data/codec/src/impl_for_types/impl_num_signed.rs +++ b/data/codec/src/impl_for_types/impl_num_signed.rs @@ -1,7 +1,7 @@ use crate::{ - dep_encode_num_mimic, num_conv::universal_decode_number, DecodeError, DecodeErrorHandler, - EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, NestedEncodeOutput, - TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, + dep_encode_num_mimic, num_conv::universal_decode_number_unchecked, DecodeError, + DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, + NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, }; macro_rules! top_encode_num_signed { @@ -42,7 +42,7 @@ macro_rules! dep_decode_num_signed { { let mut bytes = [0u8; $num_bytes]; input.read_into(&mut bytes[..], h)?; - let num = universal_decode_number(&bytes[..], true) as $ty; + let num = universal_decode_number_unchecked(&bytes[..], true) as $ty; Ok(num) } } diff --git a/data/codec/src/impl_for_types/impl_num_unsigned.rs b/data/codec/src/impl_for_types/impl_num_unsigned.rs index b9e98051fc..aa099628d2 100644 --- a/data/codec/src/impl_for_types/impl_num_unsigned.rs +++ b/data/codec/src/impl_for_types/impl_num_unsigned.rs @@ -1,7 +1,7 @@ use crate::{ - dep_encode_num_mimic, num_conv::universal_decode_number, DecodeError, DecodeErrorHandler, - EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, NestedEncodeOutput, - TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, + dep_encode_num_mimic, num_conv::universal_decode_number_unchecked, DecodeError, + DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, + NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, }; // No reversing needed for u8, because it is a single byte. @@ -102,7 +102,7 @@ macro_rules! dep_decode_num_unsigned { { let mut bytes = [0u8; $num_bytes]; input.read_into(&mut bytes[..], h)?; - let num = universal_decode_number(&bytes[..], false) as $ty; + let num = universal_decode_number_unchecked(&bytes[..], false) as $ty; Ok(num) } } diff --git a/data/codec/src/num_conv.rs b/data/codec/src/num_conv.rs index cfca20180b..38c3ba767f 100644 --- a/data/codec/src/num_conv.rs +++ b/data/codec/src/num_conv.rs @@ -110,23 +110,32 @@ fn fill_buffer_find_offset(x: u64, signed: bool, buffer: &mut TopEncodeNumberBuf /// /// No generics here, we avoid monomorphization to make the SC binary as small as possible. pub fn universal_decode_number(bytes: &[u8], signed: bool) -> u64 { - if bytes.is_empty() { - return 0; - } - let negative = signed && msbit_is_one(bytes[0]); - let mut result = if negative { - // start with all bits set to 1, - // to ensure that if there are fewer bytes than the result type width, - // the leading bits will be 1 instead of 0 - u64::MAX - } else { - 0u64 - }; - for byte in bytes.iter() { - result <<= 8; - result |= *byte as u64; + // it is almost impossible to get a slice longer than 8 + // just a basic overflow/underflow protection + let safe_len = bytes.len() % 9; + universal_decode_number_impl(bytes, safe_len, signed) +} + +/// Same as [`universal_decode_number`], but assumes that the input length does not exceed 8. +pub fn universal_decode_number_unchecked(bytes: &[u8], signed: bool) -> u64 { + universal_decode_number_impl(bytes, bytes.len(), signed) +} + +fn universal_decode_number_impl(bytes: &[u8], len: usize, signed: bool) -> u64 { + let negative = signed && len > 0 && msbit_is_one(bytes[0]); + let skippable_byte = skippable_byte(negative); + + let mut extended_buffer = [skippable_byte; 8]; + let offset = 8 - len; + unsafe { + core::ptr::copy_nonoverlapping( + bytes.as_ptr(), + extended_buffer.as_mut_ptr().add(offset), + len, + ) } - result + + u64::from_be_bytes(extended_buffer) } /// Most significant bit is 1. diff --git a/data/codec/src/single/top_de_input.rs b/data/codec/src/single/top_de_input.rs index 594785c35c..dc74370daf 100644 --- a/data/codec/src/single/top_de_input.rs +++ b/data/codec/src/single/top_de_input.rs @@ -1,6 +1,7 @@ use crate::{ - num_conv::universal_decode_number, transmute::vec_into_boxed_slice, DecodeError, - DecodeErrorHandler, NestedDecodeInput, OwnedBytesNestedDecodeInput, TryStaticCast, + num_conv::{universal_decode_number, universal_decode_number_unchecked}, + transmute::vec_into_boxed_slice, + DecodeError, DecodeErrorHandler, NestedDecodeInput, OwnedBytesNestedDecodeInput, TryStaticCast, }; use alloc::{boxed::Box, vec::Vec}; @@ -38,7 +39,7 @@ pub trait TopDecodeInput: Sized { { let mut buffer = [0u8; 8]; let slice = self.into_max_size_buffer(&mut buffer, h)?; - Ok(universal_decode_number(slice, false)) + Ok(universal_decode_number_unchecked(slice, false)) } /// Retrieves the underlying data as a pre-parsed i64. @@ -51,7 +52,7 @@ pub trait TopDecodeInput: Sized { { let mut buffer = [0u8; 8]; let slice = self.into_max_size_buffer(&mut buffer, h)?; - Ok(universal_decode_number(slice, true) as i64) + Ok(universal_decode_number_unchecked(slice, true) as i64) } #[inline] diff --git a/data/codec/tests/derive_hygiene.rs b/data/codec/tests/derive_hygiene.rs index 4f9cc5e1f9..1ac67e6478 100644 --- a/data/codec/tests/derive_hygiene.rs +++ b/data/codec/tests/derive_hygiene.rs @@ -35,6 +35,7 @@ use crate::Result::{Err, Ok}; // They are not used in the derive, but just to make sure: fn top_encode_number() {} fn universal_decode_number() {} +fn universal_decode_number_unchecked() {} fn dep_decode_from_byte_slice() {} fn dep_encode_to_vec() {} fn top_decode_from_nested_or_handle_err() {} From bdea87726f387a6f8589e1b1ce224e00bfe311ee Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 8 Apr 2024 20:04:30 +0300 Subject: [PATCH 015/185] codec - universal_decode_number optimziation --- data/codec/src/num_conv.rs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/data/codec/src/num_conv.rs b/data/codec/src/num_conv.rs index 38c3ba767f..f68671596e 100644 --- a/data/codec/src/num_conv.rs +++ b/data/codec/src/num_conv.rs @@ -113,27 +113,23 @@ pub fn universal_decode_number(bytes: &[u8], signed: bool) -> u64 { // it is almost impossible to get a slice longer than 8 // just a basic overflow/underflow protection let safe_len = bytes.len() % 9; - universal_decode_number_impl(bytes, safe_len, signed) + + unsafe { universal_decode_number_impl(bytes.as_ptr(), safe_len, signed) } } /// Same as [`universal_decode_number`], but assumes that the input length does not exceed 8. pub fn universal_decode_number_unchecked(bytes: &[u8], signed: bool) -> u64 { - universal_decode_number_impl(bytes, bytes.len(), signed) + unsafe { universal_decode_number_impl(bytes.as_ptr(), bytes.len(), signed) } } -fn universal_decode_number_impl(bytes: &[u8], len: usize, signed: bool) -> u64 { - let negative = signed && len > 0 && msbit_is_one(bytes[0]); +#[inline(never)] +unsafe fn universal_decode_number_impl(bytes: *const u8, len: usize, signed: bool) -> u64 { + let negative = signed && len > 0 && msbit_is_one(*bytes); let skippable_byte = skippable_byte(negative); let mut extended_buffer = [skippable_byte; 8]; - let offset = 8 - len; - unsafe { - core::ptr::copy_nonoverlapping( - bytes.as_ptr(), - extended_buffer.as_mut_ptr().add(offset), - len, - ) - } + let offset = 8usize.wrapping_sub(len); + core::ptr::copy_nonoverlapping(bytes, extended_buffer.as_mut_ptr().add(offset), len); u64::from_be_bytes(extended_buffer) } From bd70cef082c369ba72ca5f905a8789fc24fbd1ee Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 9 Apr 2024 02:47:45 +0200 Subject: [PATCH 016/185] fix after review --- .../first-contract/src/lib.rs | 2 +- .../scenarios/forw_raw_sync_echo.scen.json | 2 +- .../forw_raw_sync_echo_caller.scen.json | 2 +- .../rust-testing-framework-tester/src/lib.rs | 12 +- .../interaction/tx_exec/tx_exec_upgrade.rs | 132 ++++-------------- 5 files changed, 30 insertions(+), 120 deletions(-) diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs index ad089ef4ce..7ce368781a 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs @@ -94,7 +94,7 @@ pub trait FirstContract { self.tx() .to(&second_contract_address) .gas(gas_left) - .raw_call(ManagedBuffer::from(SECOND_CONTRACT_REJECT_ESDT_PAYMENT)) + .raw_call(SECOND_CONTRACT_REJECT_ESDT_PAYMENT) .single_esdt(&expected_token_identifier, 0u64, &esdt_value) .transfer_execute(); } diff --git a/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo.scen.json b/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo.scen.json index ed599f9492..a34e9497fd 100644 --- a/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo.scen.json +++ b/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo.scen.json @@ -158,4 +158,4 @@ } } ] -} \ No newline at end of file +} diff --git a/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo_caller.scen.json b/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo_caller.scen.json index 0bfa9fd894..a964ec9e19 100644 --- a/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo_caller.scen.json +++ b/contracts/feature-tests/composability/scenarios/forw_raw_sync_echo_caller.scen.json @@ -133,4 +133,4 @@ } } ] -} \ No newline at end of file +} diff --git a/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs b/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs index 7a5b181028..8aae4d0b79 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs +++ b/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs @@ -193,13 +193,10 @@ pub trait RustTestingFrameworkTester: dummy_module::DummyModule { #[endpoint] fn call_other_contract_add_async_call(&self, other_sc_address: ManagedAddress, value: BigUint) { - let mut args = ManagedArgBuffer::new(); - args.push_arg(&value); - self.tx() .to(&other_sc_address) - .raw_call("call") - .arguments_raw(args) + .raw_call("add") + .argument(&value) .async_call_and_exit(); } @@ -215,15 +212,12 @@ pub trait RustTestingFrameworkTester: dummy_module::DummyModule { #[endpoint] fn execute_on_dest_add_value(&self, other_sc_address: ManagedAddress, value: BigUint) { - let mut args = ManagedArgBuffer::new(); - args.push_arg(value); - let gas_left = self.blockchain().get_gas_left(); self.tx() .to(&other_sc_address) .gas(gas_left) .raw_call("addValue") - .arguments_raw(args) + .argument(&value) .sync_call(); } diff --git a/framework/base/src/types/interaction/tx_exec/tx_exec_upgrade.rs b/framework/base/src/types/interaction/tx_exec/tx_exec_upgrade.rs index 01a0107d68..74285517c7 100644 --- a/framework/base/src/types/interaction/tx_exec/tx_exec_upgrade.rs +++ b/framework/base/src/types/interaction/tx_exec/tx_exec_upgrade.rs @@ -1,6 +1,7 @@ use crate::{ api::CallTypeApi, contract_base::SendRawWrapper, + proxy_imports::TxToSpecified, tuple_util::NestedTupleFlatten, types::{ Code, CodeMetadata, DeployRawResult, FromSource, ManagedAddress, ManagedBuffer, ManagedVec, @@ -79,100 +80,11 @@ where } } -impl - Tx< - TxScEnv, - (), - &ManagedAddress, - Payment, - Gas, - UpgradeCall, FromSource>, - RH, - > -where - Api: CallTypeApi, - Payment: TxPaymentEgldOnly>, - Gas: TxGas>, - FromSourceValue: TxFromSourceValue>, - RH: TxEmptyResultHandler>, -{ - /// Launches the upgrade from source async call. - /// - /// TODO: change return type to `!`. - pub fn upgrade_async_call_and_exit(self) { - let gas = self.gas.explicit_or_gas_left(&self.env); - self.payment.with_egld_value(&self.env, |egld_value| { - SendRawWrapper::::new().upgrade_from_source_contract( - self.to, - gas, - egld_value, - &self.data.code_source.0.into_value(&self.env), - self.data.code_metadata, - &self.data.arg_buffer, - ); - }); - } -} - -impl - Tx, (), ManagedAddress, Payment, Gas, UpgradeCall, ()>, RH> -where - Api: CallTypeApi, - Payment: TxPaymentEgldOnly>, - Gas: TxGas>, - RH: TxEmptyResultHandler>, -{ - /// Backwards compatibility, immitates the old API. - /// - /// Note that the data type (the `UpgradeCall`) doesn't have the code set. - /// This is because the old API was passing it as paramter, so we use it from the `code` argument. - /// - /// Also note that the code metadata is taken from the `code_metadata` argument. - /// If another one was previously set in the `Tx` object, that one will be ignored. - pub fn upgrade_contract(self, code: &ManagedBuffer, code_metadata: CodeMetadata) { - let gas = self.gas.explicit_or_gas_left(&self.env); - self.payment.with_egld_value(&self.env, |egld_value| { - SendRawWrapper::::new().upgrade_contract( - &self.to, - gas, - egld_value, - code, - code_metadata, - &self.data.arg_buffer, - ); - }); - } - - /// Backwards compatibility, immitates the old API. - /// - /// Note that the data type (the `UpgradeCall`) doesn't have the code set. - /// This is because the old API was passing it as paramter, so we use it from the `code` argument. - /// - /// Also note that the code metadata is taken from the `code_metadata` argument. - /// If another one was previously set in the `Tx` object, that one will be ignored. - pub fn upgrade_from_source( - self, - source_address: &ManagedAddress, - code_metadata: CodeMetadata, - ) { - let gas = self.gas.explicit_or_gas_left(&self.env); - self.payment.with_egld_value(&self.env, |egld_value| { - SendRawWrapper::::new().upgrade_from_source_contract( - &self.to, - gas, - egld_value, - source_address, - code_metadata, - &self.data.arg_buffer, - ); - }); - } -} - -impl - Tx, (), &ManagedAddress, Payment, Gas, UpgradeCall, ()>, RH> +impl + Tx, (), To, Payment, Gas, UpgradeCall, ()>, RH> where Api: CallTypeApi, + To: TxToSpecified>, Payment: TxPaymentEgldOnly>, Gas: TxGas>, RH: TxEmptyResultHandler>, @@ -187,14 +99,16 @@ where pub fn upgrade_contract(self, code: &ManagedBuffer, code_metadata: CodeMetadata) { let gas = self.gas.explicit_or_gas_left(&self.env); self.payment.with_egld_value(&self.env, |egld_value| { - SendRawWrapper::::new().upgrade_contract( - self.to, - gas, - egld_value, - code, - code_metadata, - &self.data.arg_buffer, - ); + self.to.with_value_ref(&self.env, |to| { + SendRawWrapper::::new().upgrade_contract( + to, + gas, + egld_value, + code, + code_metadata, + &self.data.arg_buffer, + ); + }); }); } @@ -212,14 +126,16 @@ where ) { let gas = self.gas.explicit_or_gas_left(&self.env); self.payment.with_egld_value(&self.env, |egld_value| { - SendRawWrapper::::new().upgrade_from_source_contract( - self.to, - gas, - egld_value, - source_address, - code_metadata, - &self.data.arg_buffer, - ); + self.to.with_value_ref(&self.env, |to| { + SendRawWrapper::::new().upgrade_from_source_contract( + to, + gas, + egld_value, + source_address, + code_metadata, + &self.data.arg_buffer, + ); + }); }); } } From 718acb5c4934f924440002a3c97559ece080947e Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Tue, 9 Apr 2024 15:38:06 +0200 Subject: [PATCH 017/185] partial test fix --- .../scenarios/forw_raw_init_sync_echo.scen.json | 5 +---- .../composability/scenarios/forw_raw_sync_readonly.scen.json | 5 +---- .../scenarios/forw_raw_sync_same_context.scen.json | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/contracts/feature-tests/composability/scenarios/forw_raw_init_sync_echo.scen.json b/contracts/feature-tests/composability/scenarios/forw_raw_init_sync_echo.scen.json index 2c1bc8dff7..085233e5a9 100644 --- a/contracts/feature-tests/composability/scenarios/forw_raw_init_sync_echo.scen.json +++ b/contracts/feature-tests/composability/scenarios/forw_raw_init_sync_echo.scen.json @@ -37,10 +37,7 @@ "gasPrice": "0" }, "expect": { - "out": [ - "1", - "2" - ], + "out": [], "status": "", "logs": [ { diff --git a/contracts/feature-tests/composability/scenarios/forw_raw_sync_readonly.scen.json b/contracts/feature-tests/composability/scenarios/forw_raw_sync_readonly.scen.json index f1b53d61ea..0da08b7c08 100644 --- a/contracts/feature-tests/composability/scenarios/forw_raw_sync_readonly.scen.json +++ b/contracts/feature-tests/composability/scenarios/forw_raw_sync_readonly.scen.json @@ -37,10 +37,7 @@ "gasPrice": "0" }, "expect": { - "out": [ - "1", - "2" - ], + "out": [], "status": "", "gas": "*", "refund": "*" diff --git a/contracts/feature-tests/composability/scenarios/forw_raw_sync_same_context.scen.json b/contracts/feature-tests/composability/scenarios/forw_raw_sync_same_context.scen.json index 08b6b3349b..ff8b81238c 100644 --- a/contracts/feature-tests/composability/scenarios/forw_raw_sync_same_context.scen.json +++ b/contracts/feature-tests/composability/scenarios/forw_raw_sync_same_context.scen.json @@ -38,10 +38,7 @@ "gasPrice": "0" }, "expect": { - "out": [ - "1", - "2" - ], + "out": [], "status": "", "logs": [ { From ec71f0acd823c4d46326fc78aa9dd424fb2cfcbc Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 10 Apr 2024 14:05:41 +0300 Subject: [PATCH 018/185] unified syntax - repl deploy --- .../tests/crowdfunding_esdt_blackbox_test.rs | 75 ++++++++++--------- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 5dceba3659..a23ecc3854 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -1,4 +1,4 @@ -use crowdfunding_esdt::{ProxyTrait as _, Status}; +use crowdfunding_esdt::{crowdfunding_esdt_proxy, ProxyTrait as _, Status}; use multiversx_sc_scenario::imports::*; use num_bigint::BigUint; @@ -9,8 +9,13 @@ const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; const CROWDFUNDING_ESDT_ADDRESS_EXPR: &str = "sc:crowdfunding-esdt"; const CROWDFUNDING_ESDT_PATH_EXPR: &str = "mxsc:output/crowdfunding-esdt.mxsc.json"; const FIRST_USER_ADDRESS_EXPR: &str = "address:first-user"; +const FIRST_USER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("first-user"); const OWNER_ADDRESS_EXPR: &str = "address:owner"; +const OWNER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("owner"); const SECOND_USER_ADDRESS_EXPR: &str = "address:second-user"; +const SECOND_USER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("second-user"); +const CODE_EXPR: MxscExpr = MxscExpr("output/crowdfunding-esdt.mxsc.json"); +const SC_CROWDFUNDING_ESDT_EXPR: ScExpr = ScExpr("crowdfunding-esdt"); type CrowdfundingESDTContract = ContractInfo>; @@ -35,20 +40,21 @@ struct CrowdfundingESDTTestState { impl CrowdfundingESDTTestState { fn new() -> Self { let mut world = world(); + let owner_address = "address:owner"; world.set_state_step( SetStateStep::new() - .put_account(OWNER_ADDRESS_EXPR, Account::new().nonce(1)) - .new_address(OWNER_ADDRESS_EXPR, 1, CROWDFUNDING_ESDT_ADDRESS_EXPR) + .put_account(OWNER_ADDRESS_EXPR_REPL, Account::new().nonce(1)) + .new_address(owner_address, 1, CROWDFUNDING_ESDT_ADDRESS_EXPR) .put_account( - FIRST_USER_ADDRESS_EXPR, + FIRST_USER_ADDRESS_EXPR_REPL, Account::new() .nonce(1) .balance("1_000") .esdt_balance(CF_TOKEN_ID_EXPR, "1_000"), ) .put_account( - SECOND_USER_ADDRESS_EXPR, + SECOND_USER_ADDRESS_EXPR_REPL, Account::new() .nonce(1) .esdt_balance(CF_TOKEN_ID_EXPR, "1_000"), @@ -69,32 +75,33 @@ impl CrowdfundingESDTTestState { } } - fn deploy(&mut self) -> &mut Self { - let crowdfunding_esdt_code = self.world.code_expression(CROWDFUNDING_ESDT_PATH_EXPR); - - self.world.sc_deploy( - ScDeployStep::new() - .from(OWNER_ADDRESS_EXPR) - .code(crowdfunding_esdt_code) - .call(self.crowdfunding_esdt_contract.init( - 2_000u32, - CF_DEADLINE, - EgldOrEsdtTokenIdentifier::esdt(CF_TOKEN_ID), - )), - ); - - self + fn deploy(&mut self) { + self.world + .tx() + .from(OWNER_ADDRESS_EXPR_REPL) + .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) + .init( + 2_000u32, + CF_DEADLINE, + EgldOrEsdtTokenIdentifier::esdt(CF_TOKEN_ID), + ) + .code(CODE_EXPR) + .run(); } - fn fund(&mut self, address: &str, amount: &str) -> &mut Self { - self.world.sc_call( - ScCallStep::new() - .from(address) - .esdt_transfer(CF_TOKEN_ID_EXPR, 0, amount) - .call(self.crowdfunding_esdt_contract.fund()), - ); - - self + fn fund(&mut self, address: AddressExpr, amount: u64) { + self.world + .tx() + .from(address) + .to(SC_CROWDFUNDING_ESDT_EXPR) + .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) + .fund() + .single_esdt( + &TokenIdentifier::from(CF_TOKEN_ID_EXPR), + 0u64, + &multiversx_sc::proxy_imports::BigUint::from(amount), + ) + .run(); } fn check_deposit(&mut self, donor: Address, amount: u64) -> &mut Self { @@ -150,7 +157,7 @@ fn test_fund() { let mut state = CrowdfundingESDTTestState::new(); state.deploy(); - state.fund(FIRST_USER_ADDRESS_EXPR, "1000"); + state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000); state.check_deposit(state.first_user_address.clone(), 1_000); } @@ -191,11 +198,11 @@ fn test_successful_cf() { state.deploy(); // first user fund - state.fund(FIRST_USER_ADDRESS_EXPR, "1_000"); + state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1000); state.check_deposit(state.first_user_address.clone(), 1_000); // second user fund - state.fund(SECOND_USER_ADDRESS_EXPR, "1_000"); + state.fund(SECOND_USER_ADDRESS_EXPR_REPL, 1000); state.check_deposit(state.second_user_address.clone(), 1_000); // set block timestamp after deadline @@ -228,11 +235,11 @@ fn test_failed_cf() { state.deploy(); // first user fund - state.fund(FIRST_USER_ADDRESS_EXPR, "300"); + state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 300); state.check_deposit(state.first_user_address.clone(), 300u64); // second user fund - state.fund(SECOND_USER_ADDRESS_EXPR, "600"); + state.fund(SECOND_USER_ADDRESS_EXPR_REPL, 600); state.check_deposit(state.second_user_address.clone(), 600u64); // set block timestamp after deadline From 6302f14c09a601cf2b64dbb656f1de82d1721528 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Wed, 10 Apr 2024 15:11:46 +0200 Subject: [PATCH 019/185] blackbox tests migration for price aggregator --- .../core/price-aggregator/sc-config.toml | 2 + .../tests/price_aggregator_blackbox_test.rs | 129 +++--- .../tests/price_aggregator_proxy.rs | 366 ++++++++++++++++++ .../tests/price_aggregator_stress_blackbox.rs | 103 ++--- 4 files changed, 498 insertions(+), 102 deletions(-) create mode 100644 contracts/core/price-aggregator/sc-config.toml create mode 100644 contracts/core/price-aggregator/tests/price_aggregator_proxy.rs diff --git a/contracts/core/price-aggregator/sc-config.toml b/contracts/core/price-aggregator/sc-config.toml new file mode 100644 index 0000000000..56b3e816a6 --- /dev/null +++ b/contracts/core/price-aggregator/sc-config.toml @@ -0,0 +1,2 @@ +[[proxy]] +path = "tests/price_aggregator_proxy.rs" \ No newline at end of file diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index cc2dc7b994..db64b7749c 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -1,11 +1,13 @@ use multiversx_price_aggregator_sc::{ price_aggregator_data::{OracleStatus, TimestampedPrice, TokenPair}, - ContractObj, PriceAggregator, ProxyTrait as _, MAX_ROUND_DURATION_SECONDS, + ContractObj, PriceAggregator, MAX_ROUND_DURATION_SECONDS, }; -use multiversx_sc_modules::{pause::ProxyTrait, staking::ProxyTrait as _}; +use multiversx_sc_modules::staking::ProxyTrait as _; use multiversx_sc_scenario::imports::*; +mod price_aggregator_proxy; + const DECIMALS: u8 = 0; const EGLD_TICKER: &[u8] = b"EGLD"; const NR_ORACLES: usize = 4; @@ -18,6 +20,9 @@ const STAKE_AMOUNT: u64 = 20; const SUBMISSION_COUNT: usize = 3; const USD_TICKER: &[u8] = b"USDC"; +const PRICE_AGGREGATOR: ScExpr = ScExpr("price-aggregator"); +const OWNER: AddressExpr = AddressExpr("owner"); + type PriceAggregatorContract = ContractInfo>; fn world() -> ScenarioWorld { @@ -44,7 +49,7 @@ impl PriceAggregatorTestState { let mut world = world(); let mut set_state_step = SetStateStep::new() - .put_account(OWNER_ADDRESS_EXPR, Account::new().nonce(1)) + .put_account(OWNER, Account::new().nonce(1)) .new_address(OWNER_ADDRESS_EXPR, 1, PRICE_AGGREGATOR_ADDRESS_EXPR) .block_timestamp(100); @@ -86,59 +91,69 @@ impl PriceAggregatorTestState { .collect::>(), ); - self.world.sc_deploy( - ScDeployStep::new() - .from(OWNER_ADDRESS_EXPR) - .code(price_aggregator_code) - .call(self.price_aggregator_contract.init( - EgldOrEsdtTokenIdentifier::egld(), - STAKE_AMOUNT, - SLASH_AMOUNT, - SLASH_QUORUM, - SUBMISSION_COUNT, - oracles, - )), - ); + self.world + .tx() + .from(OWNER) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .init( + EgldOrEsdtTokenIdentifier::egld(), + STAKE_AMOUNT, + SLASH_AMOUNT, + SLASH_QUORUM, + SUBMISSION_COUNT, + oracles, + ) + .code(price_aggregator_code) + .run(); for address in self.oracles.iter() { - self.world.sc_call( - ScCallStep::new() - .from(address) - .egld_value(STAKE_AMOUNT) - .call(self.price_aggregator_contract.stake()), - ); + self.world + .tx() + .from(&address.to_address()) + .to(PRICE_AGGREGATOR) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .stake() + .egld(STAKE_AMOUNT) + .run(); } self } fn set_pair_decimals(&mut self) { - self.world.sc_call( - ScCallStep::new().from(OWNER_ADDRESS_EXPR).call( - self.price_aggregator_contract - .set_pair_decimals(EGLD_TICKER, USD_TICKER, DECIMALS), - ), - ); + self.world + .tx() + .from(OWNER) + .to(PRICE_AGGREGATOR) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .set_pair_decimals(EGLD_TICKER, USD_TICKER, DECIMALS) + .run(); } fn unpause_endpoint(&mut self) { - self.world.sc_call( - ScCallStep::new() - .from(OWNER_ADDRESS_EXPR) - .call(self.price_aggregator_contract.unpause_endpoint()), - ); + self.world + .tx() + .from(OWNER) + .to(PRICE_AGGREGATOR) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .unpause_endpoint() + .run(); } fn submit(&mut self, from: &AddressValue, submission_timestamp: u64, price: u64) { - self.world.sc_call(ScCallStep::new().from(from).call( - self.price_aggregator_contract.submit( + self.world + .tx() + .from(&from.to_address()) + .to(PRICE_AGGREGATOR) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .submit( EGLD_TICKER, USD_TICKER, submission_timestamp, price, DECIMALS, - ), - )); + ) + .run(); } fn submit_and_expect_err( @@ -148,27 +163,31 @@ impl PriceAggregatorTestState { price: u64, err_message: &str, ) { - self.world.sc_call( - ScCallStep::new() - .from(from) - .call(self.price_aggregator_contract.submit( - EGLD_TICKER, - USD_TICKER, - submission_timestamp, - price, - DECIMALS, - )) - .expect(TxExpect::user_error("str:".to_string() + err_message)), - ); + self.world + .tx() + .from(&from.to_address()) + .to(PRICE_AGGREGATOR) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .submit( + EGLD_TICKER, + USD_TICKER, + submission_timestamp, + price, + DECIMALS, + ) + .with_result(ExpectStatus(4)) + .with_result(ExpectMessage(err_message)) + .run(); } fn vote_slash_member(&mut self, from: &AddressValue, member_to_slash: Address) { - self.world.sc_call( - ScCallStep::new().from(from).call( - self.price_aggregator_contract - .vote_slash_member(member_to_slash), - ), - ); + self.world + .tx() + .from(&from.to_address()) + .to(PRICE_AGGREGATOR) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .vote_slash_member(member_to_slash) + .run(); } } diff --git a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs new file mode 100644 index 0000000000..c7b05acaf5 --- /dev/null +++ b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs @@ -0,0 +1,366 @@ +// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +#![allow(dead_code)] +#![allow(clippy::all)] + +use multiversx_sc::proxy_imports::*; + +pub struct PriceAggregatorProxy; + +impl TxProxyTrait for PriceAggregatorProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = PriceAggregatorProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + PriceAggregatorProxyMethods { wrapped_tx: tx } + } +} + +pub struct PriceAggregatorProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl PriceAggregatorProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + Arg3: CodecInto, + Arg4: CodecInto, + Arg5: CodecInto>>, + >( + self, + staking_token: Arg0, + staking_amount: Arg1, + slash_amount: Arg2, + slash_quorum: Arg3, + submission_count: Arg4, + oracles: Arg5, + ) -> TxProxyDeploy { + self.wrapped_tx + .raw_deploy() + .argument(&staking_token) + .argument(&staking_amount) + .argument(&slash_amount) + .argument(&slash_quorum) + .argument(&submission_count) + .argument(&oracles) + .original_result() + } +} + +#[rustfmt::skip] +impl PriceAggregatorProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn change_amounts< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + staking_amount: Arg0, + slash_amount: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("changeAmounts") + .argument(&staking_amount) + .argument(&slash_amount) + .original_result() + } + + pub fn add_oracles< + Arg0: CodecInto>>, + >( + self, + oracles: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("addOracles") + .argument(&oracles) + .original_result() + } + + /// Also receives submission count, + /// so the owner does not have to update it manually with setSubmissionCount before this call + pub fn remove_oracles< + Arg0: CodecInto, + Arg1: CodecInto>>, + >( + self, + submission_count: Arg0, + oracles: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("removeOracles") + .argument(&submission_count) + .argument(&oracles) + .original_result() + } + + pub fn submit< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto>, + Arg4: CodecInto, + >( + self, + from: Arg0, + to: Arg1, + submission_timestamp: Arg2, + price: Arg3, + decimals: Arg4, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("submit") + .argument(&from) + .argument(&to) + .argument(&submission_timestamp) + .argument(&price) + .argument(&decimals) + .original_result() + } + + pub fn submit_batch< + Arg0: CodecInto, ManagedBuffer, u64, BigUint, u8>>>, + >( + self, + submissions: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("submitBatch") + .argument(&submissions) + .original_result() + } + + pub fn latest_round_data( + self, + ) -> TxProxyCall>> { + self.wrapped_tx + .raw_call("latestRoundData") + .original_result() + } + + pub fn latest_price_feed< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + from: Arg0, + to: Arg1, + ) -> TxProxyCall, ManagedBuffer, u64, BigUint, u8>> { + self.wrapped_tx + .raw_call("latestPriceFeed") + .argument(&from) + .argument(&to) + .original_result() + } + + pub fn latest_price_feed_optional< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + from: Arg0, + to: Arg1, + ) -> TxProxyCall, ManagedBuffer, u64, BigUint, u8>>> { + self.wrapped_tx + .raw_call("latestPriceFeedOptional") + .argument(&from) + .argument(&to) + .original_result() + } + + pub fn set_submission_count< + Arg0: CodecInto, + >( + self, + submission_count: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("setSubmissionCount") + .argument(&submission_count) + .original_result() + } + + pub fn get_oracles( + self, + ) -> TxProxyCall>> { + self.wrapped_tx + .raw_call("getOracles") + .original_result() + } + + pub fn set_pair_decimals< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + >( + self, + from: Arg0, + to: Arg1, + decimals: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("setPairDecimals") + .argument(&from) + .argument(&to) + .argument(&decimals) + .original_result() + } + + pub fn get_pair_decimals< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + from: Arg0, + to: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getPairDecimals") + .argument(&from) + .argument(&to) + .original_result() + } + + pub fn submission_count( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("submission_count") + .original_result() + } + + pub fn pause_endpoint( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("pause") + .original_result() + } + + pub fn unpause_endpoint( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("unpause") + .original_result() + } + + pub fn paused_status( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("isPaused") + .original_result() + } + + pub fn stake( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("stake") + .original_result() + } + + pub fn unstake< + Arg0: CodecInto>, + >( + self, + unstake_amount: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("unstake") + .argument(&unstake_amount) + .original_result() + } + + pub fn vote_slash_member< + Arg0: CodecInto>, + >( + self, + member_to_slash: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("voteSlashMember") + .argument(&member_to_slash) + .original_result() + } + + pub fn cancel_vote_slash_member< + Arg0: CodecInto>, + >( + self, + member_to_slash: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("cancelVoteSlashMember") + .argument(&member_to_slash) + .original_result() + } + + pub fn slash_member< + Arg0: CodecInto>, + >( + self, + member_to_slash: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("slashMember") + .argument(&member_to_slash) + .original_result() + } +} + +#[derive(TopEncode, TopDecode)] +pub struct PriceFeed +where + Api: ManagedTypeApi, +{ + pub round_id: u32, + pub from: ManagedBuffer, + pub to: ManagedBuffer, + pub timestamp: u64, + pub price: BigUint, + pub decimals: u8, +} + +#[derive(TopEncode, TopDecode)] +pub struct NewRoundEvent +where + Api: ManagedTypeApi, +{ + pub price: BigUint, + pub timestamp: u64, + pub decimals: u8, + pub block: u64, + pub epoch: u64, +} diff --git a/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs b/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs index 44650679d3..4c01ab175f 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs @@ -1,8 +1,7 @@ use multiversx_price_aggregator_sc::{ price_aggregator_data::{OracleStatus, TokenPair}, - ContractObj, PriceAggregator, ProxyTrait as _, + ContractObj, PriceAggregator, }; -use multiversx_sc_modules::{pause::ProxyTrait, staking::ProxyTrait as _}; use multiversx_sc_scenario::imports::*; @@ -18,6 +17,8 @@ const STAKE_AMOUNT: u64 = 20; const SUBMISSION_COUNT: usize = 50; const USD_TICKER: &[u8] = b"USDC"; +mod price_aggregator_proxy; + type PriceAggregatorContract = ContractInfo>; fn world() -> ScenarioWorld { @@ -86,65 +87,73 @@ impl PriceAggregatorTestState { .collect::>(), ); - self.world.sc_deploy( - ScDeployStep::new() - .from(OWNER_ADDRESS_EXPR) - .code(price_aggregator_code) - .call(self.price_aggregator_contract.init( - EgldOrEsdtTokenIdentifier::egld(), - STAKE_AMOUNT, - SLASH_AMOUNT, - SLASH_QUORUM, - SUBMISSION_COUNT, - oracles, - )) - .gas_limit("120,000,000"), - ); + self.world + .tx() + .from(AddressExpr("owner")) + .gas(120_000_000u64) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .init( + EgldOrEsdtTokenIdentifier::egld(), + STAKE_AMOUNT, + SLASH_AMOUNT, + SLASH_QUORUM, + SUBMISSION_COUNT, + oracles, + ) + .code(price_aggregator_code) + .run(); for address in self.oracles.iter() { - self.world.sc_call( - ScCallStep::new() - .from(address) - .egld_value(STAKE_AMOUNT) - .call(self.price_aggregator_contract.stake()) - .gas_limit("5,000,000"), - ); + self.world + .tx() + .from(&address.to_address()) + .to(&self.price_aggregator_contract.to_address()) + .gas(5_000_000u64) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .stake() + .egld(STAKE_AMOUNT) + .run(); } self } fn set_pair_decimals(&mut self) { - self.world.sc_call( - ScCallStep::new().from(OWNER_ADDRESS_EXPR).call( - self.price_aggregator_contract - .set_pair_decimals(EGLD_TICKER, USD_TICKER, DECIMALS), - ), - ); + self.world + .tx() + .from(AddressExpr("owner")) + .to(&self.price_aggregator_contract.to_address()) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .set_pair_decimals(EGLD_TICKER, USD_TICKER, DECIMALS) + .run(); } fn unpause_endpoint(&mut self) { - self.world.sc_call( - ScCallStep::new() - .from(OWNER_ADDRESS_EXPR) - .call(self.price_aggregator_contract.unpause_endpoint()) - .gas_limit("5,000,000"), - ); + self.world + .tx() + .from(AddressExpr("owner")) + .to(&self.price_aggregator_contract.to_address()) + .gas(5_000_000u64) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .unpause_endpoint() + .run(); } fn submit(&mut self, from: &AddressValue, submission_timestamp: u64, price: u64) { - self.world.sc_call( - ScCallStep::new() - .from(from) - .call(self.price_aggregator_contract.submit( - EGLD_TICKER, - USD_TICKER, - submission_timestamp, - price, - DECIMALS, - )) - .gas_limit("7,000,000"), - ); + self.world + .tx() + .from(&from.to_address()) + .to(&self.price_aggregator_contract.to_address()) + .gas(7_000_000u64) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .submit( + EGLD_TICKER, + USD_TICKER, + submission_timestamp, + price, + DECIMALS, + ) + .run(); } } From 82f90d746e11c42050897ab8800cf4c7235dd47e Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 15 Apr 2024 12:18:44 +0200 Subject: [PATCH 020/185] cleanup --- .../tests/price_aggregator_blackbox_test.rs | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index db64b7749c..c57e36711e 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -2,7 +2,6 @@ use multiversx_price_aggregator_sc::{ price_aggregator_data::{OracleStatus, TimestampedPrice, TokenPair}, ContractObj, PriceAggregator, MAX_ROUND_DURATION_SECONDS, }; -use multiversx_sc_modules::staking::ProxyTrait as _; use multiversx_sc_scenario::imports::*; @@ -23,8 +22,6 @@ const USD_TICKER: &[u8] = b"USDC"; const PRICE_AGGREGATOR: ScExpr = ScExpr("price-aggregator"); const OWNER: AddressExpr = AddressExpr("owner"); -type PriceAggregatorContract = ContractInfo>; - fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -40,7 +37,6 @@ fn world() -> ScenarioWorld { struct PriceAggregatorTestState { world: ScenarioWorld, oracles: Vec, - price_aggregator_contract: PriceAggregatorContract, price_aggregator_whitebox: WhiteboxContract>, } @@ -67,7 +63,7 @@ impl PriceAggregatorTestState { } world.set_state_step(set_state_step); - let price_aggregator_contract = PriceAggregatorContract::new(PRICE_AGGREGATOR_ADDRESS_EXPR); + // let price_aggregator_contract = PriceAggregatorContract::new(PRICE_AGGREGATOR_ADDRESS_EXPR); let price_aggregator_whitebox = WhiteboxContract::new( PRICE_AGGREGATOR_ADDRESS_EXPR, multiversx_price_aggregator_sc::contract_obj, @@ -76,7 +72,6 @@ impl PriceAggregatorTestState { Self { world, oracles, - price_aggregator_contract, price_aggregator_whitebox, } } @@ -380,13 +375,14 @@ fn test_price_aggregator_slashing() { state.vote_slash_member(&state.oracles[2].clone(), state.oracles[1].to_address()); state.vote_slash_member(&state.oracles[3].clone(), state.oracles[1].to_address()); - state.world.sc_call( - ScCallStep::new().from(&state.oracles[0]).call( - state - .price_aggregator_contract - .slash_member(state.oracles[1].to_address()), - ), - ); + state + .world + .tx() + .from(&state.oracles[0].to_address()) + .to(PRICE_AGGREGATOR) + .typed(price_aggregator_proxy::PriceAggregatorProxy) + .slash_member(state.oracles[1].to_address()) + .run(); // oracle 1 try submit after slashing state.submit_and_expect_err( From 24f35ac75cad8595f977ac5b5f82df9629ca43a6 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 15 Apr 2024 17:46:33 +0200 Subject: [PATCH 021/185] block info builder impl --- framework/scenario/src/facade/world_tx.rs | 1 + .../src/facade/world_tx/block_info_builder.rs | 146 ++++++++++++++++++ .../src/facade/world_tx/scenario_env_exec.rs | 6 +- 3 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 framework/scenario/src/facade/world_tx/block_info_builder.rs diff --git a/framework/scenario/src/facade/world_tx.rs b/framework/scenario/src/facade/world_tx.rs index 2fa69c744e..11a4ed554f 100644 --- a/framework/scenario/src/facade/world_tx.rs +++ b/framework/scenario/src/facade/world_tx.rs @@ -1,5 +1,6 @@ #![allow(unused)] // TEMP +mod block_info_builder; mod scenario_env; mod scenario_env_deploy; mod scenario_env_exec; diff --git a/framework/scenario/src/facade/world_tx/block_info_builder.rs b/framework/scenario/src/facade/world_tx/block_info_builder.rs new file mode 100644 index 0000000000..a03b312255 --- /dev/null +++ b/framework/scenario/src/facade/world_tx/block_info_builder.rs @@ -0,0 +1,146 @@ +use crate::{ + scenario::ScenarioRunner, + scenario_model::{BlockInfo, BytesValue, SetStateStep, U64Value}, + ScenarioWorld, +}; + +pub struct BlockInfoBuilder<'w> { + world: &'w mut ScenarioWorld, + set_state_step: SetStateStep, + current_block: BlockInfo, + previous_block: BlockInfo, +} + +impl<'w> BlockInfoBuilder<'w> { + pub(crate) fn new(world: &'w mut ScenarioWorld) -> BlockInfoBuilder<'w> { + let mut builder = BlockInfoBuilder { + world, + set_state_step: SetStateStep::new(), + current_block: BlockInfo::default(), + previous_block: BlockInfo::default(), + }; + builder + } + + // Forces value drop and commit block info. + pub fn commit(self) {} + + /// Finished and sets all account in the blockchain mock. + fn commit_block_info(&mut self) { + self.add_current_block_info(); + self.world.run_set_state_step(&self.set_state_step); + } + + fn add_current_block_info(&mut self) { + self.set_state_step.previous_block_info = + Box::new(Some(core::mem::take(&mut self.previous_block))); + self.set_state_step.current_block_info = + Box::new(Some(core::mem::take(&mut self.current_block))); + } + + pub fn block_epoch(mut self, block_epoch_expr: N) -> Self + where + U64Value: From, + { + let block_epoch = U64Value::from(block_epoch_expr); + + self.current_block.block_epoch = Some(block_epoch); + self + } + + pub fn block_nonce(mut self, block_nonce_expr: N) -> Self + where + U64Value: From, + { + let block_nonce = U64Value::from(block_nonce_expr); + + self.current_block.block_nonce = Some(block_nonce); + self + } + + pub fn block_round(mut self, block_round_expr: N) -> Self + where + U64Value: From, + { + let block_round = U64Value::from(block_round_expr); + + self.current_block.block_round = Some(block_round); + self + } + + pub fn block_timestamp(mut self, block_timestamp_expr: N) -> Self + where + U64Value: From, + { + let block_timestamp = U64Value::from(block_timestamp_expr); + + self.current_block.block_timestamp = Some(block_timestamp); + self + } + + pub fn block_random_seed(mut self, block_random_seed_expr: B) -> Self + where + BytesValue: From, + { + let block_random_seed = BytesValue::from(block_random_seed_expr); + + self.current_block.block_random_seed = Some(block_random_seed); + self + } + + pub fn prev_block_epoch(mut self, block_epoch_expr: N) -> Self + where + U64Value: From, + { + let prev_block_epoch = U64Value::from(block_epoch_expr); + + self.previous_block.block_epoch = Some(prev_block_epoch); + self + } + + pub fn prev_block_nonce(mut self, block_nonce_expr: N) -> Self + where + U64Value: From, + { + let prev_block_nonce = U64Value::from(block_nonce_expr); + + self.previous_block.block_nonce = Some(prev_block_nonce); + self + } + + pub fn prev_block_round(mut self, block_round_expr: N) -> Self + where + U64Value: From, + { + let prev_block_round = U64Value::from(block_round_expr); + + self.previous_block.block_round = Some(prev_block_round); + self + } + + pub fn prev_block_timestamp(mut self, block_timestamp_expr: N) -> Self + where + U64Value: From, + { + let prev_block_timestamp = U64Value::from(block_timestamp_expr); + + self.previous_block.block_timestamp = Some(prev_block_timestamp); + self + } + + pub fn prev_block_random_seed(mut self, block_random_seed_expr: B) -> Self + where + BytesValue: From, + { + let prev_block_random_seed = BytesValue::from(block_random_seed_expr); + + self.previous_block.block_random_seed = Some(prev_block_random_seed); + self + } +} + +impl Drop for BlockInfoBuilder<'_> { + fn drop(&mut self) { + self.commit_block_info(); + } +} diff --git a/framework/scenario/src/facade/world_tx/scenario_env_exec.rs b/framework/scenario/src/facade/world_tx/scenario_env_exec.rs index 5eef522784..3dcd1de553 100644 --- a/framework/scenario/src/facade/world_tx/scenario_env_exec.rs +++ b/framework/scenario/src/facade/world_tx/scenario_env_exec.rs @@ -21,7 +21,7 @@ use crate::{ ScenarioTxEnv, ScenarioTxRun, ScenarioWorld, }; -use super::ScenarioTxEnvData; +use super::{block_info_builder::BlockInfoBuilder, ScenarioTxEnvData}; /// Environment for executing transactions. pub struct ScenarioEnvExec<'w> { @@ -106,6 +106,10 @@ impl ScenarioWorld { { SetStateBuilder::new(self, address_expr.into()) } + + pub fn block_info(&mut self) -> BlockInfoBuilder<'_> { + BlockInfoBuilder::new(self) + } } pub struct SetStateBuilder<'w> { From df8b61ac0a9a04e74f3cfde27d5544f38cabbd31 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 15 Apr 2024 18:11:07 +0200 Subject: [PATCH 022/185] tx to step fix for esdt payments --- .../src/scenario/model/transaction/tx_esdt.rs | 14 ++++++++++++++ .../src/scenario/tx_to_step/tx_to_step_call.rs | 8 +++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/framework/scenario/src/scenario/model/transaction/tx_esdt.rs b/framework/scenario/src/scenario/model/transaction/tx_esdt.rs index cf17a76a19..67ccf99956 100644 --- a/framework/scenario/src/scenario/model/transaction/tx_esdt.rs +++ b/framework/scenario/src/scenario/model/transaction/tx_esdt.rs @@ -1,3 +1,5 @@ +use multiversx_sc::{api::ManagedTypeApi, types::EsdtTokenPayment}; + use crate::{ scenario::model::{BigUintValue, BytesValue, U64Value}, scenario_format::{ @@ -33,6 +35,18 @@ impl IntoRaw for TxESDT { } } +impl From> for TxESDT { + fn from(value: EsdtTokenPayment) -> Self { + TxESDT { + esdt_token_identifier: BytesValue::from( + value.token_identifier.as_managed_buffer().to_vec(), + ), + nonce: U64Value::from(value.token_nonce), + esdt_value: BigUintValue::from(value.amount), + } + } +} + fn interpret_esdt_token_identifier( esdt_token_identifier: Option, context: &InterpreterContext, diff --git a/framework/scenario/src/scenario/tx_to_step/tx_to_step_call.rs b/framework/scenario/src/scenario/tx_to_step/tx_to_step_call.rs index b155ac66df..d111116a5c 100644 --- a/framework/scenario/src/scenario/tx_to_step/tx_to_step_call.rs +++ b/framework/scenario/src/scenario/tx_to_step/tx_to_step_call.rs @@ -2,7 +2,7 @@ use multiversx_sc::types::{ FunctionCall, RHListExec, Tx, TxEnv, TxFromSpecified, TxGas, TxPayment, TxToSpecified, }; -use crate::scenario_model::{ScCallStep, TxExpect, TxResponse}; +use crate::scenario_model::{ScCallStep, TxESDT, TxExpect, TxResponse}; use super::{address_annotated, gas_annotated, StepWrapper, TxToStep}; @@ -65,6 +65,12 @@ where let full_payment_data = payment.into_full_payment_data(env); if let Some(annotated_egld_payment) = full_payment_data.egld { step.tx.egld_value = annotated_egld_payment.into(); + } else { + step.tx.esdt_value = full_payment_data + .multi_esdt + .iter() + .map(TxESDT::from) + .collect(); } step From 3773481048b6be9169670e462ff568f96525bb32 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 15 Apr 2024 18:14:35 +0200 Subject: [PATCH 023/185] clippy --- framework/scenario/src/facade/world_tx/block_info_builder.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/block_info_builder.rs b/framework/scenario/src/facade/world_tx/block_info_builder.rs index a03b312255..0defeb61d9 100644 --- a/framework/scenario/src/facade/world_tx/block_info_builder.rs +++ b/framework/scenario/src/facade/world_tx/block_info_builder.rs @@ -13,13 +13,12 @@ pub struct BlockInfoBuilder<'w> { impl<'w> BlockInfoBuilder<'w> { pub(crate) fn new(world: &'w mut ScenarioWorld) -> BlockInfoBuilder<'w> { - let mut builder = BlockInfoBuilder { + BlockInfoBuilder { world, set_state_step: SetStateStep::new(), current_block: BlockInfo::default(), previous_block: BlockInfo::default(), - }; - builder + } } // Forces value drop and commit block info. From 9b4d31707cfeaa2bc1d8cb747a4cff08b3e7a96e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 16 Apr 2024 17:30:28 +0300 Subject: [PATCH 024/185] unified syntax - more migrations --- .../src/crowdfunding_esdt.rs | 11 +++-- .../examples/lottery-esdt/src/lottery.rs | 16 +++---- .../examples/nft-minter/src/nft_module.rs | 11 +---- .../forwarder-raw/src/forwarder_raw_async.rs | 5 +- .../local-esdt-and-nft/src/lib.rs | 6 ++- .../erc1155-marketplace/src/lib.rs | 25 +++++----- .../rust-testing-framework-tester/src/lib.rs | 8 +--- .../src/bonding_curve/utils/user_endpoints.rs | 17 +++---- contracts/modules/src/staking.rs | 6 ++- contracts/modules/src/token_merge/mod.rs | 8 ++-- .../tx_payment/tx_payment_single_esdt.rs | 46 +++++++++++++++++++ 11 files changed, 103 insertions(+), 56 deletions(-) diff --git a/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt.rs b/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt.rs index abe8420d82..1dea493562 100644 --- a/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt.rs +++ b/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt.rs @@ -75,8 +75,10 @@ pub trait Crowdfunding { let token_identifier = self.cf_token_identifier().get(); let sc_balance = self.get_current_funds(); - self.send() - .direct(&caller, &token_identifier, 0, &sc_balance); + self.tx() + .to(&caller) + .egld_or_single_esdt(&token_identifier, 0, &sc_balance) + .transfer(); }, Status::Failed => { let caller = self.blockchain().get_caller(); @@ -86,7 +88,10 @@ pub trait Crowdfunding { let token_identifier = self.cf_token_identifier().get(); self.deposit(&caller).clear(); - self.send().direct(&caller, &token_identifier, 0, &deposit); + self.tx() + .to(&caller) + .egld_or_single_esdt(&token_identifier, 0, &deposit) + .transfer(); } }, } diff --git a/contracts/examples/lottery-esdt/src/lottery.rs b/contracts/examples/lottery-esdt/src/lottery.rs index 48a94b14b2..3c5d9040b1 100644 --- a/contracts/examples/lottery-esdt/src/lottery.rs +++ b/contracts/examples/lottery-esdt/src/lottery.rs @@ -291,19 +291,19 @@ pub trait Lottery { &BigUint::from(info.prize_distribution.get(i)), ); - self.send() - .direct(&winner_address, &info.token_identifier, 0, &prize); + self.tx() + .to(&winner_address) + .egld_or_single_esdt(&info.token_identifier, 0, &prize) + .transfer(); info.prize_pool -= prize; } // send leftover to first place let first_place_winner = ticket_holders_mapper.get(winning_tickets[0]); - self.send().direct( - &first_place_winner, - &info.token_identifier, - 0, - &info.prize_pool, - ); + self.tx() + .to(&first_place_winner) + .egld_or_single_esdt(&info.token_identifier, 0, &info.prize_pool) + .transfer(); } fn clear_storage(&self, lottery_name: &ManagedBuffer) { diff --git a/contracts/examples/nft-minter/src/nft_module.rs b/contracts/examples/nft-minter/src/nft_module.rs index 05b937f432..6b324fefee 100644 --- a/contracts/examples/nft-minter/src/nft_module.rs +++ b/contracts/examples/nft-minter/src/nft_module.rs @@ -95,12 +95,7 @@ pub trait NftModule { .transfer(); let owner = self.blockchain().get_owner_address(); - self.send().direct( - &owner, - &payment.token_identifier, - payment.token_nonce, - &payment.amount, - ); + self.tx().to(owner).payment(payment).transfer(); } // views @@ -133,11 +128,9 @@ pub trait NftModule { self.nft_token_id().set(&token_id.unwrap_esdt()); }, ManagedAsyncCallResult::Err(_) => { - let caller = self.blockchain().get_owner_address(); let returned = self.call_value().egld_or_single_esdt(); if returned.token_identifier.is_egld() && returned.amount > 0 { - self.send() - .direct(&caller, &returned.token_identifier, 0, &returned.amount); + self.tx().to(ToCaller).egld(returned.amount).transfer(); } }, } diff --git a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_async.rs b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_async.rs index 55f00f079e..7c26b40c60 100644 --- a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_async.rs +++ b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_async.rs @@ -6,7 +6,10 @@ pub trait ForwarderRawAsync: super::forwarder_raw_common::ForwarderRawCommon { #[payable("*")] fn forward_payment(&self, to: ManagedAddress) { let (token, payment) = self.call_value().egld_or_single_fungible_esdt(); - self.send().direct(&to, &token, 0, &payment); + self.tx() + .to(to) + .egld_or_single_esdt(&token, 0, &payment) + .transfer(); } #[endpoint] diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/src/lib.rs b/contracts/feature-tests/composability/local-esdt-and-nft/src/lib.rs index e65fd789b4..b51fd3ab9c 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/src/lib.rs +++ b/contracts/feature-tests/composability/local-esdt-and-nft/src/lib.rs @@ -138,8 +138,10 @@ pub trait LocalEsdtAndEsdtNft { nonce: u64, amount: BigUint, ) { - self.send() - .transfer_esdt_via_async_call(to, token_identifier, nonce, amount); + self.tx() + .to(to) + .esdt((token_identifier, nonce, amount)) + .async_call_and_exit(); } #[endpoint] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/lib.rs b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/lib.rs index 08c0f09258..7aa633d71c 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/lib.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/lib.rs @@ -108,7 +108,10 @@ pub trait Erc1155Marketplace { let claimable_funds_mapper = self.get_claimable_funds_mapper(); for (token_identifier, amount) in claimable_funds_mapper.iter() { - self.send().direct(&caller, &token_identifier, 0, &amount); + self.tx() + .to(&caller) + .egld_or_single_esdt(&token_identifier, 0, &amount) + .transfer(); self.clear_claimable_funds(&token_identifier); } } @@ -178,12 +181,10 @@ pub trait Erc1155Marketplace { // refund losing bid if !auction.current_winner.is_zero() { - self.send().direct( - &auction.current_winner, - &auction.token_identifier, - 0, - &auction.current_bid, - ); + self.tx() + .to(&auction.current_winner) + .egld_or_single_esdt(&auction.token_identifier, 0, &auction.current_bid) + .transfer(); } // update auction bid and winner @@ -217,12 +218,10 @@ pub trait Erc1155Marketplace { self.add_claimable_funds(&auction.token_identifier, &cut_amount); // send part of the bid to the original owner - self.send().direct( - &auction.original_owner, - &auction.token_identifier, - 0, - &amount_to_send, - ); + self.tx() + .to(&auction.original_owner) + .egld_or_single_esdt(&auction.token_identifier, 0, &amount_to_send) + .transfer(); // send token to winner self.async_transfer_token(type_id, nft_id, auction.current_winner); diff --git a/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs b/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs index dae11542e4..d535041664 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs +++ b/contracts/feature-tests/rust-testing-framework-tester/src/lib.rs @@ -62,14 +62,8 @@ pub trait RustTestingFrameworkTester: dummy_module::DummyModule { #[payable("EGLD")] #[endpoint] fn recieve_egld_half(&self) { - let caller = self.blockchain().get_caller(); let payment_amount = &*self.call_value().egld_value() / 2u32; - self.send().direct( - &caller, - &EgldOrEsdtTokenIdentifier::egld(), - 0, - &payment_amount, - ); + self.tx().to(ToCaller).egld(payment_amount).transfer(); } #[payable("*")] diff --git a/contracts/modules/src/bonding_curve/utils/user_endpoints.rs b/contracts/modules/src/bonding_curve/utils/user_endpoints.rs index d81fc4f2b1..f627d26256 100644 --- a/contracts/modules/src/bonding_curve/utils/user_endpoints.rs +++ b/contracts/modules/src/bonding_curve/utils/user_endpoints.rs @@ -48,8 +48,11 @@ pub trait UserEndpointsModule: storage::StorageModule + events::EventsModule { self.nonce_amount(&offered_token, nonce) .update(|val| *val += sell_amount); - self.send() - .direct(&caller, &payment_token, 0u64, &calculated_price); + self.tx() + .to(&caller) + .egld_or_single_esdt(&payment_token, 0u64, &calculated_price) + .transfer(); + self.token_details(&offered_token) .update(|details| details.add_nonce(nonce)); @@ -116,12 +119,10 @@ pub trait UserEndpointsModule: storage::StorageModule + events::EventsModule { }, }; - self.send().direct( - &caller, - &offered_token, - 0u64, - &(&payment - &calculated_price), - ); + self.tx() + .to(&caller) + .egld_or_single_esdt(&offered_token, 0u64, &(&payment - &calculated_price)) + .transfer(); self.buy_token_event(&caller, &calculated_price); } diff --git a/contracts/modules/src/staking.rs b/contracts/modules/src/staking.rs index 3db2350fb1..e30a457e51 100644 --- a/contracts/modules/src/staking.rs +++ b/contracts/modules/src/staking.rs @@ -90,8 +90,10 @@ pub trait StakingModule { staked_amount_mapper.set(&leftover_amount); let staking_token = self.staking_token().get(); - self.send() - .direct(&caller, &staking_token, 0, &unstake_amount); + self.tx() + .to(caller) + .egld_or_single_esdt(&staking_token, 0, &unstake_amount) + .transfer(); } #[endpoint(voteSlashMember)] diff --git a/contracts/modules/src/token_merge/mod.rs b/contracts/modules/src/token_merge/mod.rs index 2e4fe85668..b940980dfe 100644 --- a/contracts/modules/src/token_merge/mod.rs +++ b/contracts/modules/src/token_merge/mod.rs @@ -74,9 +74,11 @@ pub trait TokenMergeModule: let merged_token_payment = self.create_merged_token(merged_token_id, &all_merged_instances, attr_creator); - let caller = self.blockchain().get_caller(); - self.send() - .direct_non_zero_esdt_payment(&caller, &merged_token_payment); + + self.tx() + .to(ToCaller) + .payment(&merged_token_payment) + .transfer_if_not_empty(); merged_token_payment } diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt.rs index 66e3374aa0..975a5d0d78 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt.rs @@ -46,3 +46,49 @@ where } } } + +impl TxPayment for &EsdtTokenPayment +where + Env: TxEnv, +{ + #[inline] + fn is_no_payment(&self, _env: &Env) -> bool { + self.amount == 0u32 + } + + #[inline] + fn perform_transfer_execute( + self, + env: &Env, + to: &ManagedAddress, + gas_limit: u64, + fc: FunctionCall, + ) { + self.as_refs() + .perform_transfer_execute(env, to, gas_limit, fc); + } + + #[inline] + fn with_normalized( + self, + env: &Env, + from: &From, + to: To, + fc: FunctionCall, + f: F, + ) -> R + where + From: TxFrom, + To: TxToSpecified, + F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + { + self.as_refs().with_normalized(env, from, to, fc, f) + } + + fn into_full_payment_data(self, _env: &Env) -> FullPaymentData { + FullPaymentData { + egld: None, + multi_esdt: MultiEsdtPayment::from_single_item(self.clone()), + } + } +} From 7bb85c9553605d9661219be3e022304fcebf1180 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 16 Apr 2024 20:14:03 +0300 Subject: [PATCH 025/185] check deposit problem --- .../tests/crowdfunding_esdt_blackbox_test.rs | 100 ++++++++++-------- 1 file changed, 55 insertions(+), 45 deletions(-) diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index a23ecc3854..b821b070fb 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -6,7 +6,6 @@ use num_bigint::BigUint; const CF_DEADLINE: u64 = 7 * 24 * 60 * 60; // 1 week in seconds const CF_TOKEN_ID: &[u8] = b"CROWD-123456"; const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; -const CROWDFUNDING_ESDT_ADDRESS_EXPR: &str = "sc:crowdfunding-esdt"; const CROWDFUNDING_ESDT_PATH_EXPR: &str = "mxsc:output/crowdfunding-esdt.mxsc.json"; const FIRST_USER_ADDRESS_EXPR: &str = "address:first-user"; const FIRST_USER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("first-user"); @@ -40,32 +39,31 @@ struct CrowdfundingESDTTestState { impl CrowdfundingESDTTestState { fn new() -> Self { let mut world = world(); - let owner_address = "address:owner"; - - world.set_state_step( - SetStateStep::new() - .put_account(OWNER_ADDRESS_EXPR_REPL, Account::new().nonce(1)) - .new_address(owner_address, 1, CROWDFUNDING_ESDT_ADDRESS_EXPR) - .put_account( - FIRST_USER_ADDRESS_EXPR_REPL, - Account::new() - .nonce(1) - .balance("1_000") - .esdt_balance(CF_TOKEN_ID_EXPR, "1_000"), - ) - .put_account( - SECOND_USER_ADDRESS_EXPR_REPL, - Account::new() - .nonce(1) - .esdt_balance(CF_TOKEN_ID_EXPR, "1_000"), - ), - ); - - let crowdfunding_esdt_contract = - CrowdfundingESDTContract::new(CROWDFUNDING_ESDT_ADDRESS_EXPR); - - let first_user_address = AddressValue::from(FIRST_USER_ADDRESS_EXPR).to_address(); - let second_user_address = AddressValue::from(SECOND_USER_ADDRESS_EXPR).to_address(); + // let owner_address = "address:owner"; + + world + .account(OWNER_ADDRESS_EXPR) + .nonce(1) + .account(FIRST_USER_ADDRESS_EXPR_REPL) + .nonce(1) + .balance("1000") + .esdt_balance(CF_TOKEN_ID_EXPR, "1000") + .account(SECOND_USER_ADDRESS_EXPR_REPL) + .nonce(1) + .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); + + world.set_state_step(SetStateStep::new().new_address( + OWNER_ADDRESS_EXPR, + 1, + SC_CROWDFUNDING_ESDT_EXPR.eval_to_expr().as_str(), + )); + + let crowdfunding_esdt_contract = CrowdfundingESDTContract::new(SC_CROWDFUNDING_ESDT_EXPR); + + let first_user_address = + AddressValue::from(FIRST_USER_ADDRESS_EXPR_REPL.eval_to_expr().as_str()).to_address(); + let second_user_address = + AddressValue::from(SECOND_USER_ADDRESS_EXPR_REPL.eval_to_expr().as_str()).to_address(); Self { world, @@ -96,22 +94,24 @@ impl CrowdfundingESDTTestState { .to(SC_CROWDFUNDING_ESDT_EXPR) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .fund() - .single_esdt( - &TokenIdentifier::from(CF_TOKEN_ID_EXPR), + .egld_or_single_esdt( + &EgldOrEsdtTokenIdentifier::esdt(CF_TOKEN_ID), 0u64, &multiversx_sc::proxy_imports::BigUint::from(amount), ) .run(); } - fn check_deposit(&mut self, donor: Address, amount: u64) -> &mut Self { - self.world.sc_query( - ScQueryStep::new() - .call(self.crowdfunding_esdt_contract.deposit(&donor)) - .expect_value(SingleValue::from(BigUint::from(amount))), - ); + fn check_deposit(&mut self, donor: Address, amount: u64) { + let value = world() + .query() + .to(SC_CROWDFUNDING_ESDT_EXPR) + .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) + .deposit(&donor) + .returns(ReturnsResultConv::::new()) + .run(); - self + assert_eq!(value, amount.into()); } fn check_status(&mut self, expected_value: Status) -> &mut Self { @@ -157,8 +157,8 @@ fn test_fund() { let mut state = CrowdfundingESDTTestState::new(); state.deploy(); - state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000); - state.check_deposit(state.first_user_address.clone(), 1_000); + state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); + state.check_deposit(state.first_user_address.clone(), 1_000u64); } #[test] @@ -198,12 +198,14 @@ fn test_successful_cf() { state.deploy(); // first user fund - state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1000); - state.check_deposit(state.first_user_address.clone(), 1_000); + state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); //.eval_to_expr().as_str(), "1000"); + // state.check_deposit(state.first_user_address.clone(), 1_000); + // state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 1_000); // second user fund state.fund(SECOND_USER_ADDRESS_EXPR_REPL, 1000); - state.check_deposit(state.second_user_address.clone(), 1_000); + // state.check_deposit(SECOND_USER_ADDRESS_EXPR_REPL, 1_000); + // state.check_deposit(state.second_user_address.clone(), 1_000); // set block timestamp after deadline state.set_block_timestamp(CF_DEADLINE + 1); @@ -235,12 +237,20 @@ fn test_failed_cf() { state.deploy(); // first user fund - state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 300); - state.check_deposit(state.first_user_address.clone(), 300u64); + state.fund( + FIRST_USER_ADDRESS_EXPR_REPL, //.eval_to_expr().as_str() + 300, + ); + // state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 300u64); + // state.check_deposit(state.first_user_address.clone(), 300u64); // second user fund - state.fund(SECOND_USER_ADDRESS_EXPR_REPL, 600); - state.check_deposit(state.second_user_address.clone(), 600u64); + state.fund( + SECOND_USER_ADDRESS_EXPR_REPL, //.eval_to_expr().as_str() + 600, + ); + // state.check_deposit(SECOND_USER_ADDRESS_EXPR_REPL, 600u64); + // state.check_deposit(state.second_user_address.clone(), 600u64); // set block timestamp after deadline state.set_block_timestamp(CF_DEADLINE + 1); From b015b41494ff6b62452abec81590a19e85691f04 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 17 Apr 2024 09:46:30 +0300 Subject: [PATCH 026/185] wasm crate comment fix --- contracts/examples/adder/wasm/src/lib.rs | 2 +- .../examples/crypto-zombies/wasm/src/lib.rs | 2 +- contracts/examples/empty/wasm/src/lib.rs | 2 +- contracts/examples/factorial/wasm/src/lib.rs | 2 +- .../multisig/wasm-multisig-full/src/lib.rs | 2 +- contracts/examples/multisig/wasm/src/lib.rs | 2 +- .../examples/ping-pong-egld/wasm/src/lib.rs | 2 +- .../feature-tests/abi-tester/wasm/src/lib.rs | 2 +- .../forwarder-legacy/wasm/Cargo.toml | 32 +++++++ .../forwarder-legacy/wasm/src/lib.rs | 94 +++++++++++++++++++ .../src/lib.rs | 2 +- .../proxy-test-second/wasm/src/lib.rs | 2 +- .../vault/wasm-vault-upgrade/src/lib.rs | 2 +- .../composability/vault/wasm/src/lib.rs | 2 +- .../exchange-features/wasm/src/lib.rs | 3 +- .../scenario-tester/wasm/src/lib.rs | 2 +- .../cmd/contract/sc_config/wasm_crate_gen.rs | 4 +- 17 files changed, 144 insertions(+), 15 deletions(-) create mode 100644 contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml create mode 100644 contracts/feature-tests/composability/forwarder-legacy/wasm/src/lib.rs diff --git a/contracts/examples/adder/wasm/src/lib.rs b/contracts/examples/adder/wasm/src/lib.rs index 38c36e9d2c..f5f1d356c2 100644 --- a/contracts/examples/adder/wasm/src/lib.rs +++ b/contracts/examples/adder/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 2 // Async Callback (empty): 1 -// Total number of exported functions: 4 +// Total number of exported functions: 5 #![no_std] #![allow(internal_features)] diff --git a/contracts/examples/crypto-zombies/wasm/src/lib.rs b/contracts/examples/crypto-zombies/wasm/src/lib.rs index ffc350bc7d..13e3db684c 100644 --- a/contracts/examples/crypto-zombies/wasm/src/lib.rs +++ b/contracts/examples/crypto-zombies/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 17 // Async Callback: 1 -// Total number of exported functions: 19 +// Total number of exported functions: 20 #![no_std] #![allow(internal_features)] diff --git a/contracts/examples/empty/wasm/src/lib.rs b/contracts/examples/empty/wasm/src/lib.rs index 6267772e3b..53a9c2f2f1 100644 --- a/contracts/examples/empty/wasm/src/lib.rs +++ b/contracts/examples/empty/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 0 // Async Callback (empty): 1 -// Total number of exported functions: 2 +// Total number of exported functions: 3 #![no_std] #![allow(internal_features)] diff --git a/contracts/examples/factorial/wasm/src/lib.rs b/contracts/examples/factorial/wasm/src/lib.rs index 0b5b352a7c..969872f107 100644 --- a/contracts/examples/factorial/wasm/src/lib.rs +++ b/contracts/examples/factorial/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 1 // Async Callback (empty): 1 -// Total number of exported functions: 3 +// Total number of exported functions: 4 #![no_std] #![allow(internal_features)] diff --git a/contracts/examples/multisig/wasm-multisig-full/src/lib.rs b/contracts/examples/multisig/wasm-multisig-full/src/lib.rs index bc725882a2..254c27444a 100644 --- a/contracts/examples/multisig/wasm-multisig-full/src/lib.rs +++ b/contracts/examples/multisig/wasm-multisig-full/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 28 // Async Callback: 1 -// Total number of exported functions: 30 +// Total number of exported functions: 31 #![no_std] #![allow(internal_features)] diff --git a/contracts/examples/multisig/wasm/src/lib.rs b/contracts/examples/multisig/wasm/src/lib.rs index 553df1cde9..ab19ce2ad3 100644 --- a/contracts/examples/multisig/wasm/src/lib.rs +++ b/contracts/examples/multisig/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 20 // Async Callback: 1 -// Total number of exported functions: 22 +// Total number of exported functions: 23 #![no_std] #![allow(internal_features)] diff --git a/contracts/examples/ping-pong-egld/wasm/src/lib.rs b/contracts/examples/ping-pong-egld/wasm/src/lib.rs index 32ace34885..b3fb0e62cb 100644 --- a/contracts/examples/ping-pong-egld/wasm/src/lib.rs +++ b/contracts/examples/ping-pong-egld/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 10 // Async Callback (empty): 1 -// Total number of exported functions: 12 +// Total number of exported functions: 13 #![no_std] #![allow(internal_features)] diff --git a/contracts/feature-tests/abi-tester/wasm/src/lib.rs b/contracts/feature-tests/abi-tester/wasm/src/lib.rs index e38197e707..b8183ee1af 100644 --- a/contracts/feature-tests/abi-tester/wasm/src/lib.rs +++ b/contracts/feature-tests/abi-tester/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 27 // Async Callback (empty): 1 -// Total number of exported functions: 29 +// Total number of exported functions: 30 #![no_std] #![allow(internal_features)] diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml new file mode 100644 index 0000000000..58f24599a1 --- /dev/null +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml @@ -0,0 +1,32 @@ +# Code generated by the multiversx-sc build system. DO NOT EDIT. + +# ########################################## +# ############## AUTO-GENERATED ############# +# ########################################## + +[package] +name = "forwarder-legacy-wasm" +version = "0.0.0" +edition = "2021" +publish = false + +[lib] +crate-type = ["cdylib"] + +[profile.release] +codegen-units = 1 +opt-level = "z" +lto = true +debug = false +panic = "abort" +overflow-checks = false + +[dependencies.forwarder-legacy] +path = ".." + +[dependencies.multiversx-sc-wasm-adapter] +version = "0.49.0-alpha.3" +path = "../../../../../framework/wasm-adapter" + +[workspace] +members = ["."] diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/src/lib.rs b/contracts/feature-tests/composability/forwarder-legacy/wasm/src/lib.rs new file mode 100644 index 0000000000..180b626b66 --- /dev/null +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/src/lib.rs @@ -0,0 +1,94 @@ +// Code generated by the multiversx-sc build system. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +// Init: 1 +// Endpoints: 68 +// Async Callback: 1 +// Total number of exported functions: 70 + +#![no_std] +#![allow(internal_features)] +#![feature(lang_items)] + +multiversx_sc_wasm_adapter::allocator!(); +multiversx_sc_wasm_adapter::panic_handler!(); + +multiversx_sc_wasm_adapter::endpoints! { + forwarder_legacy + ( + init => init + send_egld => send_egld + echo_arguments_sync => echo_arguments_sync + echo_arguments_sync_twice => echo_arguments_sync_twice + forward_sync_accept_funds => forward_sync_accept_funds + forward_sync_accept_funds_with_fees => forward_sync_accept_funds_with_fees + forward_sync_accept_funds_then_read => forward_sync_accept_funds_then_read + forward_sync_retrieve_funds => forward_sync_retrieve_funds + forward_sync_retrieve_funds_with_accept_func => forward_sync_retrieve_funds_with_accept_func + accept_funds_func => accept_funds_func + forward_sync_accept_funds_multi_transfer => forward_sync_accept_funds_multi_transfer + echo_args_async => echo_args_async + forward_async_accept_funds => forward_async_accept_funds + forward_async_accept_funds_half_payment => forward_async_accept_funds_half_payment + forward_async_accept_funds_with_fees => forward_async_accept_funds_with_fees + forward_async_retrieve_funds => forward_async_retrieve_funds + send_funds_twice => send_funds_twice + send_async_accept_multi_transfer => send_async_accept_multi_transfer + callback_data => callback_data + callback_data_at_index => callback_data_at_index + clear_callback_data => clear_callback_data + forward_transf_exec_accept_funds => forward_transf_exec_accept_funds + forward_transf_exec_accept_single_esdt => forward_transf_exec_accept_single_esdt + forward_transf_execu_accept_funds_with_fees => forward_transf_execu_accept_funds_with_fees + forward_transf_exec_accept_funds_twice => forward_transf_exec_accept_funds_twice + forward_transf_exec_accept_funds_return_values => forward_transf_exec_accept_funds_return_values + transf_exec_multi_accept_funds => transf_exec_multi_accept_funds + transf_exec_multi_accept_funds_v2 => transf_exec_multi_accept_funds_v2 + forward_transf_exec_reject_funds_multi_transfer => forward_transf_exec_reject_funds_multi_transfer + transf_exec_multi_reject_funds => transf_exec_multi_reject_funds + changeOwnerAddress => change_owner + deploy_contract => deploy_contract + deploy_two_contracts => deploy_two_contracts + deploy_vault_from_source => deploy_vault_from_source + upgradeVault => upgrade_vault + upgrade_vault_from_source => upgrade_vault_from_source + getFungibleEsdtBalance => get_fungible_esdt_balance + getCurrentNftNonce => get_current_nft_nonce + send_esdt => send_esdt + send_esdt_with_fees => send_esdt_with_fees + send_esdt_twice => send_esdt_twice + send_esdt_direct_multi_transfer => send_esdt_direct_multi_transfer + issue_fungible_token => issue_fungible_token + local_mint => local_mint + local_burn => local_burn + get_esdt_local_roles => get_esdt_local_roles + get_esdt_token_data => get_esdt_token_data + is_esdt_frozen => is_esdt_frozen + is_esdt_paused => is_esdt_paused + is_esdt_limited_transfer => is_esdt_limited_transfer + validate_token_identifier => validate_token_identifier + sft_issue => sft_issue + get_nft_balance => get_nft_balance + buy_nft => buy_nft + nft_issue => nft_issue + nft_create => nft_create + nft_create_compact => nft_create_compact + nft_add_uris => nft_add_uris + nft_update_attributes => nft_update_attributes + nft_decode_complex_attributes => nft_decode_complex_attributes + nft_add_quantity => nft_add_quantity + nft_burn => nft_burn + transfer_nft_via_async_call => transfer_nft_via_async_call + transfer_nft_and_execute => transfer_nft_and_execute + create_and_send => create_and_send + setLocalRoles => set_local_roles + unsetLocalRoles => unset_local_roles + lastIssuedToken => last_issued_token + lastErrorMessage => last_error_message + ) +} + +multiversx_sc_wasm_adapter::async_callback! { forwarder_legacy } diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/src/lib.rs b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/src/lib.rs index c81e3182c8..cd1297b69f 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/src/lib.rs +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 0 // Async Callback: 1 -// Total number of exported functions: 2 +// Total number of exported functions: 3 #![no_std] #![allow(internal_features)] diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/src/lib.rs b/contracts/feature-tests/composability/proxy-test-second/wasm/src/lib.rs index bf6cc294c2..d920e6b80c 100644 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 3 // Async Callback (empty): 1 -// Total number of exported functions: 5 +// Total number of exported functions: 6 #![no_std] #![allow(internal_features)] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/src/lib.rs b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/src/lib.rs index 772ffc92ba..1592f8eec6 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/src/lib.rs +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/src/lib.rs @@ -7,7 +7,7 @@ // Upgrade: 1 // Endpoints: 0 // Async Callback (empty): 1 -// Total number of exported functions: 1 +// Total number of exported functions: 2 #![no_std] #![allow(internal_features)] diff --git a/contracts/feature-tests/composability/vault/wasm/src/lib.rs b/contracts/feature-tests/composability/vault/wasm/src/lib.rs index 0c5cd48e03..30a7fadf8b 100644 --- a/contracts/feature-tests/composability/vault/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/vault/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 15 // Async Callback (empty): 1 -// Total number of exported functions: 17 +// Total number of exported functions: 18 #![no_std] #![allow(internal_features)] diff --git a/contracts/feature-tests/exchange-features/wasm/src/lib.rs b/contracts/feature-tests/exchange-features/wasm/src/lib.rs index b0842b89d6..944349b256 100644 --- a/contracts/feature-tests/exchange-features/wasm/src/lib.rs +++ b/contracts/feature-tests/exchange-features/wasm/src/lib.rs @@ -5,7 +5,8 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 3 +// Upgrade: 1 +// Endpoints: 2 // Async Callback (empty): 1 // Total number of exported functions: 5 diff --git a/contracts/feature-tests/scenario-tester/wasm/src/lib.rs b/contracts/feature-tests/scenario-tester/wasm/src/lib.rs index e4a29325bf..ae1ba48ffd 100644 --- a/contracts/feature-tests/scenario-tester/wasm/src/lib.rs +++ b/contracts/feature-tests/scenario-tester/wasm/src/lib.rs @@ -8,7 +8,7 @@ // Upgrade: 1 // Endpoints: 2 // Async Callback (empty): 1 -// Total number of exported functions: 4 +// Total number of exported functions: 5 #![no_std] #![allow(internal_features)] diff --git a/framework/meta/src/cmd/contract/sc_config/wasm_crate_gen.rs b/framework/meta/src/cmd/contract/sc_config/wasm_crate_gen.rs index e4d0230490..4117cc24f8 100644 --- a/framework/meta/src/cmd/contract/sc_config/wasm_crate_gen.rs +++ b/framework/meta/src/cmd/contract/sc_config/wasm_crate_gen.rs @@ -18,6 +18,7 @@ const PREFIX_AUTO_GENERATED: &str = "; const NUM_INIT: usize = 1; +const NUM_UPGRADE: usize = 1; const NUM_ASYNC_CB: usize = 1; const VER_1_71: &str = "1.71.0-nightly"; @@ -117,7 +118,8 @@ impl ContractVariant { total += NUM_INIT; } if !self.abi.upgrade_constructors.is_empty() { - write_stat_comment(wasm_lib_file, "Upgrade:", NUM_INIT); + write_stat_comment(wasm_lib_file, "Upgrade:", NUM_UPGRADE); + total += NUM_UPGRADE; } write_stat_comment(wasm_lib_file, "Endpoints:", self.abi.endpoints.len()); From e6449ff9fa5a3f8a2203d9be0a2e0dc8ebec3685 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 17 Apr 2024 09:48:29 +0300 Subject: [PATCH 027/185] gitignore tweak --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 7c530277be..8295450d89 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ # The root Cargo.lock is kept for dependabot. contracts/**/Cargo.lock !contracts/**/wasm*/Cargo.lock +contracts/**/output*/ data/**/Cargo.lock framework/**/Cargo.lock sdk/**/Cargo.lock From 96e5f0bf47ae49f4369c7efaa013d8d62f26fd6d Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 17 Apr 2024 16:20:21 +0300 Subject: [PATCH 028/185] replace with new syntax --- .../tests/crowdfunding_esdt_blackbox_test.rs | 180 +++++++----------- 1 file changed, 74 insertions(+), 106 deletions(-) diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index b821b070fb..735c2f48f9 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -1,4 +1,4 @@ -use crowdfunding_esdt::{crowdfunding_esdt_proxy, ProxyTrait as _, Status}; +use crowdfunding_esdt::crowdfunding_esdt_proxy; use multiversx_sc_scenario::imports::*; use num_bigint::BigUint; @@ -6,43 +6,33 @@ use num_bigint::BigUint; const CF_DEADLINE: u64 = 7 * 24 * 60 * 60; // 1 week in seconds const CF_TOKEN_ID: &[u8] = b"CROWD-123456"; const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; -const CROWDFUNDING_ESDT_PATH_EXPR: &str = "mxsc:output/crowdfunding-esdt.mxsc.json"; -const FIRST_USER_ADDRESS_EXPR: &str = "address:first-user"; const FIRST_USER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("first-user"); -const OWNER_ADDRESS_EXPR: &str = "address:owner"; const OWNER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("owner"); -const SECOND_USER_ADDRESS_EXPR: &str = "address:second-user"; const SECOND_USER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("second-user"); const CODE_EXPR: MxscExpr = MxscExpr("output/crowdfunding-esdt.mxsc.json"); const SC_CROWDFUNDING_ESDT_EXPR: ScExpr = ScExpr("crowdfunding-esdt"); -type CrowdfundingESDTContract = ContractInfo>; - fn world() -> ScenarioWorld { + let contract_path: &str = "mxsc:output/crowdfunding-esdt.mxsc.json"; + let mut blockchain = ScenarioWorld::new(); blockchain.set_current_dir_from_workspace("contracts/examples/crowdfunding-esdt"); - blockchain.register_contract( - CROWDFUNDING_ESDT_PATH_EXPR, - crowdfunding_esdt::ContractBuilder, - ); + blockchain.register_contract(contract_path, crowdfunding_esdt::ContractBuilder); blockchain } struct CrowdfundingESDTTestState { world: ScenarioWorld, - crowdfunding_esdt_contract: CrowdfundingESDTContract, - first_user_address: Address, - second_user_address: Address, } impl CrowdfundingESDTTestState { fn new() -> Self { let mut world = world(); - // let owner_address = "address:owner"; + let owner_address: &str = "address:owner"; world - .account(OWNER_ADDRESS_EXPR) + .account(owner_address) .nonce(1) .account(FIRST_USER_ADDRESS_EXPR_REPL) .nonce(1) @@ -53,24 +43,12 @@ impl CrowdfundingESDTTestState { .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); world.set_state_step(SetStateStep::new().new_address( - OWNER_ADDRESS_EXPR, + owner_address, 1, SC_CROWDFUNDING_ESDT_EXPR.eval_to_expr().as_str(), )); - let crowdfunding_esdt_contract = CrowdfundingESDTContract::new(SC_CROWDFUNDING_ESDT_EXPR); - - let first_user_address = - AddressValue::from(FIRST_USER_ADDRESS_EXPR_REPL.eval_to_expr().as_str()).to_address(); - let second_user_address = - AddressValue::from(SECOND_USER_ADDRESS_EXPR_REPL.eval_to_expr().as_str()).to_address(); - - Self { - world, - crowdfunding_esdt_contract, - first_user_address, - second_user_address, - } + Self { world } } fn deploy(&mut self) { @@ -102,53 +80,51 @@ impl CrowdfundingESDTTestState { .run(); } - fn check_deposit(&mut self, donor: Address, amount: u64) { - let value = world() + fn check_deposit(&mut self, donor: AddressExpr, amount: u64) { + let value = self + .world .query() .to(SC_CROWDFUNDING_ESDT_EXPR) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) - .deposit(&donor) + .deposit(donor.eval_to_array()) .returns(ReturnsResultConv::::new()) .run(); assert_eq!(value, amount.into()); } - fn check_status(&mut self, expected_value: Status) -> &mut Self { - self.world.sc_query( - ScQueryStep::new() - .call(self.crowdfunding_esdt_contract.status()) - .expect_value(expected_value), - ); + fn check_status(&mut self, expected_value: crowdfunding_esdt_proxy::Status) { + let status = self + .world + .query() + .to(SC_CROWDFUNDING_ESDT_EXPR) + .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) + .status() + .returns(ReturnsResult) + .run(); - self + assert_eq!(status, expected_value); } - fn claim(&mut self, address: &str) -> &mut Self { - self.world.sc_call( - ScCallStep::new() - .from(address) - .call(self.crowdfunding_esdt_contract.claim()), - ); - - self + fn claim(&mut self, address: AddressExpr) { + self.world + .tx() + .from(address) + .to(SC_CROWDFUNDING_ESDT_EXPR) + .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) + .claim() + .run(); } - fn check_esdt_balance(&mut self, address_expr: &str, balance_expr: &str) -> &mut Self { + fn check_esdt_balance(&mut self, address: AddressExpr, balance_expr: &str) { self.world - .check_state_step(CheckStateStep::new().put_account( - address_expr, - CheckAccount::new().esdt_balance(CF_TOKEN_ID_EXPR, balance_expr), - )); - - self + .check_state_account(address) + .esdt_balance(CF_TOKEN_ID_EXPR, balance_expr); } - fn set_block_timestamp(&mut self, block_timestamp_expr: u64) -> &mut Self { + fn set_block_timestamp(&mut self, block_timestamp_expr: u64) { self.world .set_state_step(SetStateStep::new().block_timestamp(block_timestamp_expr)); - - self } } @@ -158,7 +134,7 @@ fn test_fund() { state.deploy(); state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); - state.check_deposit(state.first_user_address.clone(), 1_000u64); + state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); } #[test] @@ -166,7 +142,7 @@ fn test_status() { let mut state = CrowdfundingESDTTestState::new(); state.deploy(); - state.check_status(Status::FundingPeriod); + state.check_status(crowdfunding_esdt_proxy::Status::FundingPeriod); } #[test] @@ -174,22 +150,18 @@ fn test_sc_error() { let mut state = CrowdfundingESDTTestState::new(); state.deploy(); - state.world.sc_call( - ScCallStep::new() - .from(FIRST_USER_ADDRESS_EXPR) - .egld_value("1_000") - .call(state.crowdfunding_esdt_contract.fund()) - .expect(TxExpect::user_error("str:wrong token")), - ); - state.world.sc_query( - ScQueryStep::new() - .call( - state - .crowdfunding_esdt_contract - .deposit(&state.first_user_address), - ) - .expect(TxExpect::ok().result("0x")), - ); + state + .world + .tx() + .from(FIRST_USER_ADDRESS_EXPR_REPL) + .to(SC_CROWDFUNDING_ESDT_EXPR) + .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) + .fund() + .egld(1000) + .with_result(ExpectError(4, "wrong token")) + .run(); + + state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 0); } #[test] @@ -198,37 +170,35 @@ fn test_successful_cf() { state.deploy(); // first user fund - state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); //.eval_to_expr().as_str(), "1000"); - // state.check_deposit(state.first_user_address.clone(), 1_000); - // state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 1_000); + state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); + state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 1_000); // second user fund state.fund(SECOND_USER_ADDRESS_EXPR_REPL, 1000); - // state.check_deposit(SECOND_USER_ADDRESS_EXPR_REPL, 1_000); - // state.check_deposit(state.second_user_address.clone(), 1_000); + state.check_deposit(SECOND_USER_ADDRESS_EXPR_REPL, 1_000); // set block timestamp after deadline state.set_block_timestamp(CF_DEADLINE + 1); // check status successful - state.check_status(Status::Successful); - - // user try claim - state.world.sc_call( - ScCallStep::new() - .from(FIRST_USER_ADDRESS_EXPR) - .call(state.crowdfunding_esdt_contract.claim()) - .expect(TxExpect::user_error( - "str:only owner can claim successful funding", - )), - ); + state.check_status(crowdfunding_esdt_proxy::Status::Successful); + + state + .world + .tx() + .from(FIRST_USER_ADDRESS_EXPR_REPL) + .to(SC_CROWDFUNDING_ESDT_EXPR) + .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) + .claim() + .with_result(ExpectError(4, "only owner can claim successful funding")) + .run(); // owner claim - state.claim(OWNER_ADDRESS_EXPR); + state.claim(OWNER_ADDRESS_EXPR_REPL); - state.check_esdt_balance(OWNER_ADDRESS_EXPR, "2_000"); - state.check_esdt_balance(FIRST_USER_ADDRESS_EXPR, "0"); - state.check_esdt_balance(SECOND_USER_ADDRESS_EXPR, "0"); + state.check_esdt_balance(OWNER_ADDRESS_EXPR_REPL, "2_000"); + state.check_esdt_balance(FIRST_USER_ADDRESS_EXPR_REPL, "0"); + state.check_esdt_balance(SECOND_USER_ADDRESS_EXPR_REPL, "0"); } #[test] @@ -241,30 +211,28 @@ fn test_failed_cf() { FIRST_USER_ADDRESS_EXPR_REPL, //.eval_to_expr().as_str() 300, ); - // state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 300u64); - // state.check_deposit(state.first_user_address.clone(), 300u64); + state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 300u64); // second user fund state.fund( SECOND_USER_ADDRESS_EXPR_REPL, //.eval_to_expr().as_str() 600, ); - // state.check_deposit(SECOND_USER_ADDRESS_EXPR_REPL, 600u64); - // state.check_deposit(state.second_user_address.clone(), 600u64); + state.check_deposit(SECOND_USER_ADDRESS_EXPR_REPL, 600u64); // set block timestamp after deadline state.set_block_timestamp(CF_DEADLINE + 1); // check status failed - state.check_status(Status::Failed); + state.check_status(crowdfunding_esdt_proxy::Status::Failed); // first user claim - state.claim(FIRST_USER_ADDRESS_EXPR); + state.claim(FIRST_USER_ADDRESS_EXPR_REPL); // second user claim - state.claim(SECOND_USER_ADDRESS_EXPR); + state.claim(SECOND_USER_ADDRESS_EXPR_REPL); - state.check_esdt_balance(OWNER_ADDRESS_EXPR, "0"); - state.check_esdt_balance(FIRST_USER_ADDRESS_EXPR, "1_000"); - state.check_esdt_balance(SECOND_USER_ADDRESS_EXPR, "1_000"); + state.check_esdt_balance(OWNER_ADDRESS_EXPR_REPL, "0"); + state.check_esdt_balance(FIRST_USER_ADDRESS_EXPR_REPL, "1_000"); + state.check_esdt_balance(SECOND_USER_ADDRESS_EXPR_REPL, "1_000"); } From f0bf082830b02a3455c66d1bb9715559fa263373 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 17 Apr 2024 16:44:26 +0300 Subject: [PATCH 029/185] reaname const --- .../tests/crowdfunding_esdt_blackbox_test.rs | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 735c2f48f9..cc4235704c 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -6,9 +6,9 @@ use num_bigint::BigUint; const CF_DEADLINE: u64 = 7 * 24 * 60 * 60; // 1 week in seconds const CF_TOKEN_ID: &[u8] = b"CROWD-123456"; const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; -const FIRST_USER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("first-user"); -const OWNER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("owner"); -const SECOND_USER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("second-user"); +const FIRST_USER_ADDRESS: AddressExpr = AddressExpr("first-user"); +const OWNER_ADDRESS: AddressExpr = AddressExpr("owner"); +const SECOND_USER_ADDRESS: AddressExpr = AddressExpr("second-user"); const CODE_EXPR: MxscExpr = MxscExpr("output/crowdfunding-esdt.mxsc.json"); const SC_CROWDFUNDING_ESDT_EXPR: ScExpr = ScExpr("crowdfunding-esdt"); @@ -34,11 +34,11 @@ impl CrowdfundingESDTTestState { world .account(owner_address) .nonce(1) - .account(FIRST_USER_ADDRESS_EXPR_REPL) + .account(FIRST_USER_ADDRESS) .nonce(1) .balance("1000") .esdt_balance(CF_TOKEN_ID_EXPR, "1000") - .account(SECOND_USER_ADDRESS_EXPR_REPL) + .account(SECOND_USER_ADDRESS) .nonce(1) .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); @@ -54,7 +54,7 @@ impl CrowdfundingESDTTestState { fn deploy(&mut self) { self.world .tx() - .from(OWNER_ADDRESS_EXPR_REPL) + .from(OWNER_ADDRESS) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .init( 2_000u32, @@ -133,8 +133,8 @@ fn test_fund() { let mut state = CrowdfundingESDTTestState::new(); state.deploy(); - state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); - state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); + state.fund(FIRST_USER_ADDRESS, 1_000u64); + state.check_deposit(FIRST_USER_ADDRESS, 1_000u64); } #[test] @@ -153,7 +153,7 @@ fn test_sc_error() { state .world .tx() - .from(FIRST_USER_ADDRESS_EXPR_REPL) + .from(FIRST_USER_ADDRESS) .to(SC_CROWDFUNDING_ESDT_EXPR) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .fund() @@ -161,7 +161,7 @@ fn test_sc_error() { .with_result(ExpectError(4, "wrong token")) .run(); - state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 0); + state.check_deposit(FIRST_USER_ADDRESS, 0); } #[test] @@ -170,12 +170,12 @@ fn test_successful_cf() { state.deploy(); // first user fund - state.fund(FIRST_USER_ADDRESS_EXPR_REPL, 1_000u64); - state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 1_000); + state.fund(FIRST_USER_ADDRESS, 1_000u64); + state.check_deposit(FIRST_USER_ADDRESS, 1_000); // second user fund - state.fund(SECOND_USER_ADDRESS_EXPR_REPL, 1000); - state.check_deposit(SECOND_USER_ADDRESS_EXPR_REPL, 1_000); + state.fund(SECOND_USER_ADDRESS, 1000); + state.check_deposit(SECOND_USER_ADDRESS, 1_000); // set block timestamp after deadline state.set_block_timestamp(CF_DEADLINE + 1); @@ -186,7 +186,7 @@ fn test_successful_cf() { state .world .tx() - .from(FIRST_USER_ADDRESS_EXPR_REPL) + .from(FIRST_USER_ADDRESS) .to(SC_CROWDFUNDING_ESDT_EXPR) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .claim() @@ -194,11 +194,11 @@ fn test_successful_cf() { .run(); // owner claim - state.claim(OWNER_ADDRESS_EXPR_REPL); + state.claim(OWNER_ADDRESS); - state.check_esdt_balance(OWNER_ADDRESS_EXPR_REPL, "2_000"); - state.check_esdt_balance(FIRST_USER_ADDRESS_EXPR_REPL, "0"); - state.check_esdt_balance(SECOND_USER_ADDRESS_EXPR_REPL, "0"); + state.check_esdt_balance(OWNER_ADDRESS, "2_000"); + state.check_esdt_balance(FIRST_USER_ADDRESS, "0"); + state.check_esdt_balance(SECOND_USER_ADDRESS, "0"); } #[test] @@ -208,17 +208,17 @@ fn test_failed_cf() { // first user fund state.fund( - FIRST_USER_ADDRESS_EXPR_REPL, //.eval_to_expr().as_str() + FIRST_USER_ADDRESS, //.eval_to_expr().as_str() 300, ); - state.check_deposit(FIRST_USER_ADDRESS_EXPR_REPL, 300u64); + state.check_deposit(FIRST_USER_ADDRESS, 300u64); // second user fund state.fund( - SECOND_USER_ADDRESS_EXPR_REPL, //.eval_to_expr().as_str() + SECOND_USER_ADDRESS, //.eval_to_expr().as_str() 600, ); - state.check_deposit(SECOND_USER_ADDRESS_EXPR_REPL, 600u64); + state.check_deposit(SECOND_USER_ADDRESS, 600u64); // set block timestamp after deadline state.set_block_timestamp(CF_DEADLINE + 1); @@ -227,12 +227,12 @@ fn test_failed_cf() { state.check_status(crowdfunding_esdt_proxy::Status::Failed); // first user claim - state.claim(FIRST_USER_ADDRESS_EXPR_REPL); + state.claim(FIRST_USER_ADDRESS); // second user claim - state.claim(SECOND_USER_ADDRESS_EXPR_REPL); + state.claim(SECOND_USER_ADDRESS); - state.check_esdt_balance(OWNER_ADDRESS_EXPR_REPL, "0"); - state.check_esdt_balance(FIRST_USER_ADDRESS_EXPR_REPL, "1_000"); - state.check_esdt_balance(SECOND_USER_ADDRESS_EXPR_REPL, "1_000"); + state.check_esdt_balance(OWNER_ADDRESS, "0"); + state.check_esdt_balance(FIRST_USER_ADDRESS, "1_000"); + state.check_esdt_balance(SECOND_USER_ADDRESS, "1_000"); } From 0330c4ff7ce73772a134dec81b2f8c647c95db47 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 17 Apr 2024 17:34:05 +0300 Subject: [PATCH 030/185] unified syntax - expect value --- .../adder/tests/adder_blackbox_test.rs | 33 ++++++++------- .../src/types/interaction/expr/sc_expr.rs | 16 ++++++-- .../src/facade/expr/bech32_address.rs | 4 ++ .../scenario/src/facade/result_handlers.rs | 2 + .../facade/result_handlers/expect_value.rs | 40 +++++++++++++++++++ .../src/scenario/model/value/address_value.rs | 20 +++++++++- 6 files changed, 94 insertions(+), 21 deletions(-) create mode 100644 framework/scenario/src/facade/result_handlers/expect_value.rs diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index e52c8c3ddb..1dafca181a 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -1,5 +1,4 @@ use multiversx_sc_scenario::imports::*; -use num_bigint::BigUint; use adder::*; @@ -20,16 +19,12 @@ fn world() -> ScenarioWorld { #[test] fn adder_blackbox() { let mut world = world(); - let owner_address = "address:owner"; - let adder_contract = ContractInfo::>::new("sc:adder"); world.start_trace(); - world.set_state_step( - SetStateStep::new() - .put_account(owner_address, Account::new().nonce(1)) - .new_address(owner_address, 1, "sc:adder"), - ); + world.account(OWNER).nonce(1); + + world.set_state_step(SetStateStep::new().new_address(OWNER, 1, SC_ADDER)); let new_address = world .tx() @@ -40,16 +35,15 @@ fn adder_blackbox() { .returns(ReturnsNewAddress) .run(); - assert_eq!(new_address, adder_contract.to_address()); + assert_eq!(new_address, SC_ADDER.to_address()); - let value = world + world .query() .to(SC_ADDER) .typed(adder_proxy::AdderProxy) .sum() - .returns(ReturnsResultConv::::new()) + .returns(ExpectValue(5u32)) .run(); - assert_eq!(value, BigUint::from(5u32)); world .tx() @@ -59,13 +53,18 @@ fn adder_blackbox() { .add(1u32) .run(); + world + .query() + .to(SC_ADDER) + .typed(adder_proxy::AdderProxy) + .sum() + .returns(ExpectValue(6u32)) + .run(); + world.check_state_step( CheckStateStep::new() - .put_account(owner_address, CheckAccount::new()) - .put_account( - &adder_contract, - CheckAccount::new().check_storage("str:sum", "6"), - ), + .put_account(OWNER, CheckAccount::new()) + .put_account(SC_ADDER, CheckAccount::new().check_storage("str:sum", "6")), ); world.write_scenario_trace("trace1.scen.json"); diff --git a/framework/base/src/types/interaction/expr/sc_expr.rs b/framework/base/src/types/interaction/expr/sc_expr.rs index c84f8df02f..f51ca88051 100644 --- a/framework/base/src/types/interaction/expr/sc_expr.rs +++ b/framework/base/src/types/interaction/expr/sc_expr.rs @@ -1,8 +1,11 @@ use core::ptr; -use crate::types::{ - AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo, - TxToSpecified, +use crate::{ + proxy_imports::Address, + types::{ + AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo, + TxToSpecified, + }, }; const SC_PREFIX: &str = "sc:"; @@ -28,6 +31,13 @@ where } } +impl<'a> ScExpr<'a> { + pub fn to_address(&self) -> Address { + let expr: [u8; 32] = self.eval_to_array(); + expr.into() + } +} + impl<'a, Env> TxFrom for ScExpr<'a> where Env: TxEnv, diff --git a/framework/scenario/src/facade/expr/bech32_address.rs b/framework/scenario/src/facade/expr/bech32_address.rs index 9b7291ad16..abc9d00cff 100644 --- a/framework/scenario/src/facade/expr/bech32_address.rs +++ b/framework/scenario/src/facade/expr/bech32_address.rs @@ -56,6 +56,10 @@ impl Bech32Address { self.bech32.to_owned() } + pub fn to_hex(&self) -> String { + hex::encode(&self.address) + } + pub fn as_address(&self) -> &Address { &self.address } diff --git a/framework/scenario/src/facade/result_handlers.rs b/framework/scenario/src/facade/result_handlers.rs index 24709626ea..1893647b45 100644 --- a/framework/scenario/src/facade/result_handlers.rs +++ b/framework/scenario/src/facade/result_handlers.rs @@ -1,6 +1,7 @@ mod expect_error; mod expect_message; mod expect_status; +mod expect_value; mod returns_message; mod returns_new_bech32_address; mod returns_new_token_identifier; @@ -10,6 +11,7 @@ mod with_tx_raw_response; pub use expect_error::ExpectError; pub use expect_message::ExpectMessage; pub use expect_status::ExpectStatus; +pub use expect_value::ExpectValue; pub use returns_message::ReturnsMessage; pub use returns_new_bech32_address::ReturnsNewBech32Address; pub use returns_new_token_identifier::ReturnsNewTokenIdentifier; diff --git a/framework/scenario/src/facade/result_handlers/expect_value.rs b/framework/scenario/src/facade/result_handlers/expect_value.rs new file mode 100644 index 0000000000..05ebe0f79f --- /dev/null +++ b/framework/scenario/src/facade/result_handlers/expect_value.rs @@ -0,0 +1,40 @@ +use multiversx_sc::{ + codec::{CodecFrom, TopEncodeMulti}, + types::{RHListItem, RHListItemExec, TxEnv}, +}; + +use crate::scenario_model::{BytesValue, CheckValue, TxExpect, TxResponse}; + +/// Verifies that transaction result matches the given value. +/// +/// Can only be used in tests and interactors, not available in contracts. +pub struct ExpectValue(pub T); + +impl RHListItem for ExpectValue +where + Env: TxEnv, + T: TopEncodeMulti, + Original: CodecFrom, +{ + type Returns = (); +} + +impl RHListItemExec for ExpectValue +where + Env: TxEnv, + T: TopEncodeMulti, + Original: CodecFrom, +{ + fn item_tx_expect(&self, mut prev: TxExpect) -> TxExpect { + let mut encoded = Vec::>::new(); + self.0.multi_encode(&mut encoded).expect("encoding error"); + let out_values = encoded + .into_iter() + .map(|value| CheckValue::Equal(BytesValue::from(value))) + .collect(); + prev.out = CheckValue::Equal(out_values); + prev + } + + fn item_process_result(self, _: &TxResponse) -> Self::Returns {} +} diff --git a/framework/scenario/src/scenario/model/value/address_value.rs b/framework/scenario/src/scenario/model/value/address_value.rs index 640451a63c..1315a4fbd5 100644 --- a/framework/scenario/src/scenario/model/value/address_value.rs +++ b/framework/scenario/src/scenario/model/value/address_value.rs @@ -1,6 +1,6 @@ use std::fmt; -use crate::multiversx_sc::types::Address; +use crate::multiversx_sc::types::{Address, AddressExpr, ScExpr}; use crate::{ facade::expr::Bech32Address, @@ -133,3 +133,21 @@ impl From<&str> for AddressValue { AddressValue::interpret_from(from, &InterpreterContext::default()) } } + +impl From for AddressValue { + fn from(from: AddressExpr) -> Self { + AddressValue { + value: from.eval_to_array().into(), + original: ValueSubTree::Str(from.eval_to_expr()), + } + } +} + +impl From> for AddressValue { + fn from(from: ScExpr) -> Self { + AddressValue { + value: from.eval_to_array().into(), + original: ValueSubTree::Str(from.eval_to_expr()), + } + } +} From b4145b07015bcbd65bf3734bcf611f82eadc65f1 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 17 Apr 2024 18:01:26 +0300 Subject: [PATCH 031/185] build fix --- framework/base/src/types/interaction/expr/sc_expr.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/framework/base/src/types/interaction/expr/sc_expr.rs b/framework/base/src/types/interaction/expr/sc_expr.rs index f51ca88051..aa57b1af30 100644 --- a/framework/base/src/types/interaction/expr/sc_expr.rs +++ b/framework/base/src/types/interaction/expr/sc_expr.rs @@ -1,11 +1,8 @@ use core::ptr; -use crate::{ - proxy_imports::Address, - types::{ - AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo, - TxToSpecified, - }, +use crate::types::{ + heap::Address, AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, + TxTo, TxToSpecified, }; const SC_PREFIX: &str = "sc:"; From 43edef0cb8a36f1d59d408b155b5c9f666c70bb5 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 17 Apr 2024 17:44:12 +0300 Subject: [PATCH 032/185] scenario tx file rename --- framework/scenario/src/facade/world_tx.rs | 14 +++++++------- ...{scenario_env_exec.rs => scenario_exec_call.rs} | 0 ...nario_env_deploy.rs => scenario_exec_deploy.rs} | 0 ...cenario_env_query.rs => scenario_query_call.rs} | 0 .../{scenario_env.rs => scenario_tx_env.rs} | 0 5 files changed, 7 insertions(+), 7 deletions(-) rename framework/scenario/src/facade/world_tx/{scenario_env_exec.rs => scenario_exec_call.rs} (100%) rename framework/scenario/src/facade/world_tx/{scenario_env_deploy.rs => scenario_exec_deploy.rs} (100%) rename framework/scenario/src/facade/world_tx/{scenario_env_query.rs => scenario_query_call.rs} (100%) rename framework/scenario/src/facade/world_tx/{scenario_env.rs => scenario_tx_env.rs} (100%) diff --git a/framework/scenario/src/facade/world_tx.rs b/framework/scenario/src/facade/world_tx.rs index 2fa69c744e..005421c933 100644 --- a/framework/scenario/src/facade/world_tx.rs +++ b/framework/scenario/src/facade/world_tx.rs @@ -1,11 +1,11 @@ #![allow(unused)] // TEMP -mod scenario_env; -mod scenario_env_deploy; -mod scenario_env_exec; -mod scenario_env_query; +mod scenario_exec_call; +mod scenario_exec_deploy; +mod scenario_query_call; mod scenario_rh_impl; +mod scenario_tx_env; -pub use scenario_env::{ScenarioTxEnv, ScenarioTxEnvData, ScenarioTxRun}; -pub use scenario_env_exec::ScenarioEnvExec; -pub use scenario_env_query::ScenarioEnvQuery; +pub use scenario_exec_call::ScenarioEnvExec; +pub use scenario_query_call::ScenarioEnvQuery; +pub use scenario_tx_env::{ScenarioTxEnv, ScenarioTxEnvData, ScenarioTxRun}; diff --git a/framework/scenario/src/facade/world_tx/scenario_env_exec.rs b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs similarity index 100% rename from framework/scenario/src/facade/world_tx/scenario_env_exec.rs rename to framework/scenario/src/facade/world_tx/scenario_exec_call.rs diff --git a/framework/scenario/src/facade/world_tx/scenario_env_deploy.rs b/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs similarity index 100% rename from framework/scenario/src/facade/world_tx/scenario_env_deploy.rs rename to framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs diff --git a/framework/scenario/src/facade/world_tx/scenario_env_query.rs b/framework/scenario/src/facade/world_tx/scenario_query_call.rs similarity index 100% rename from framework/scenario/src/facade/world_tx/scenario_env_query.rs rename to framework/scenario/src/facade/world_tx/scenario_query_call.rs diff --git a/framework/scenario/src/facade/world_tx/scenario_env.rs b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs similarity index 100% rename from framework/scenario/src/facade/world_tx/scenario_env.rs rename to framework/scenario/src/facade/world_tx/scenario_tx_env.rs From 02556f8a8b2b216ac3adfcb751690ac4d1587f72 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 17 Apr 2024 18:12:43 +0300 Subject: [PATCH 033/185] scenario exec - rename, reorg, cleanup --- framework/scenario/src/facade/world_tx.rs | 4 +- .../facade/world_tx/scenario_check_state.rs | 227 ++++++++++++++++ .../src/facade/world_tx/scenario_exec_call.rs | 243 +----------------- .../facade/world_tx/scenario_exec_deploy.rs | 14 +- .../facade/world_tx/scenario_query_call.rs | 231 +---------------- .../src/facade/world_tx/scenario_rh_impl.rs | 12 +- .../src/facade/world_tx/scenario_set_state.rs | 239 +++++++++++++++++ .../src/facade/world_tx/scenario_tx_env.rs | 8 +- 8 files changed, 485 insertions(+), 493 deletions(-) create mode 100644 framework/scenario/src/facade/world_tx/scenario_check_state.rs create mode 100644 framework/scenario/src/facade/world_tx/scenario_set_state.rs diff --git a/framework/scenario/src/facade/world_tx.rs b/framework/scenario/src/facade/world_tx.rs index 005421c933..a2d7373a42 100644 --- a/framework/scenario/src/facade/world_tx.rs +++ b/framework/scenario/src/facade/world_tx.rs @@ -1,9 +1,9 @@ -#![allow(unused)] // TEMP - +mod scenario_check_state; mod scenario_exec_call; mod scenario_exec_deploy; mod scenario_query_call; mod scenario_rh_impl; +mod scenario_set_state; mod scenario_tx_env; pub use scenario_exec_call::ScenarioEnvExec; diff --git a/framework/scenario/src/facade/world_tx/scenario_check_state.rs b/framework/scenario/src/facade/world_tx/scenario_check_state.rs new file mode 100644 index 0000000000..ab54d7411f --- /dev/null +++ b/framework/scenario/src/facade/world_tx/scenario_check_state.rs @@ -0,0 +1,227 @@ +use std::collections::{btree_map::Entry, BTreeMap}; + +use multiversx_chain_scenario_format::interpret_trait::{InterpretableFrom, InterpreterContext}; +use multiversx_sc::{codec::test_util::top_encode_to_vec_u8_or_panic, proxy_imports::TopEncode}; + +use crate::{ + scenario::ScenarioRunner, + scenario_model::{ + AddressKey, BigUintValue, BytesKey, BytesValue, CheckAccount, CheckEsdt, CheckEsdtData, + CheckEsdtInstances, CheckEsdtMap, CheckEsdtMapContents, CheckStateStep, CheckStorage, + CheckStorageDetails, CheckValue, U64Value, + }, + ScenarioWorld, +}; + +impl ScenarioWorld { + pub fn check_state_account(&mut self, address: A) -> CheckStateBuilder<'_> + where + AddressKey: From, + { + CheckStateBuilder::new(self, address.into()) + } +} + +pub struct CheckStateBuilder<'w> { + world: &'w mut ScenarioWorld, + check_state_step: CheckStateStep, + current_account: CheckAccount, + current_address: AddressKey, +} + +impl<'w> CheckStateBuilder<'w> { + pub(crate) fn new(world: &'w mut ScenarioWorld, address: AddressKey) -> CheckStateBuilder<'w> { + let mut builder = CheckStateBuilder { + world, + check_state_step: CheckStateStep::new(), + current_account: CheckAccount::new(), + current_address: AddressKey::default(), + }; + builder.reset_account(address); + builder + } + + /// Starts building of a new account. + pub fn check_state_account(mut self, address_expr: A) -> Self + where + AddressKey: From, + { + self.add_current_acount(); + self.reset_account(address_expr.into()); + self + } + + fn add_current_acount(&mut self) { + if let Entry::Vacant(entry) = self + .check_state_step + .accounts + .accounts + .entry(core::mem::take(&mut self.current_address)) + { + entry.insert(core::mem::take(&mut self.current_account)); + }; + } + + fn reset_account(&mut self, address: AddressKey) { + self.current_address = address; + self.current_account = CheckAccount::default(); + } + + /// Finished and sets all account in the blockchain mock. + fn commit_accounts(&mut self) { + self.add_current_acount(); + self.world.run_check_state_step(&self.check_state_step); + } + + /// Forces value drop and commit accounts. + pub fn commit(self) {} + + pub fn nonce(mut self, nonce: V) -> Self + where + U64Value: InterpretableFrom, + { + self.current_account.nonce = CheckValue::Equal(U64Value::interpret_from( + nonce, + &InterpreterContext::default(), + )); + self + } + + pub fn balance(mut self, balance_expr: V) -> Self + where + BigUintValue: InterpretableFrom, + { + self.current_account.balance = CheckValue::Equal(BigUintValue::interpret_from( + balance_expr, + &InterpreterContext::default(), + )); + self + } + + pub fn code(mut self, code_expr: V) -> Self + where + BytesValue: InterpretableFrom, + { + self.current_account.code = CheckValue::Equal(BytesValue::interpret_from( + code_expr, + &InterpreterContext::default(), + )); + self + } + + pub fn code_metadata(mut self, code_metadata_expr: V) -> Self + where + BytesValue: InterpretableFrom, + { + self.current_account.code_metadata = CheckValue::Equal(BytesValue::interpret_from( + code_metadata_expr, + &InterpreterContext::default(), + )); + self + } + + pub fn esdt_balance(mut self, token_id_expr: K, balance_expr: V) -> Self + where + BytesKey: From, + BigUintValue: From, + { + let token_id = BytesKey::from(token_id_expr); + let balance = BigUintValue::from(balance_expr); + + match &mut self.current_account.esdt { + CheckEsdtMap::Unspecified | CheckEsdtMap::Star => { + let mut new_esdt_map = BTreeMap::new(); + let _ = new_esdt_map.insert(token_id, CheckEsdt::Short(balance)); + + let new_check_esdt_map = CheckEsdtMapContents { + contents: new_esdt_map, + other_esdts_allowed: true, + }; + + self.current_account.esdt = CheckEsdtMap::Equal(new_check_esdt_map); + }, + CheckEsdtMap::Equal(check_esdt_map) => { + if check_esdt_map.contents.contains_key(&token_id) { + let prev_entry = check_esdt_map.contents.get_mut(&token_id).unwrap(); + match prev_entry { + CheckEsdt::Short(prev_balance_check) => *prev_balance_check = balance, + CheckEsdt::Full(prev_esdt_check) => match prev_esdt_check.instances { + CheckEsdtInstances::Star => todo!(), + CheckEsdtInstances::Equal(_) => todo!(), + }, + } + } + }, + } + + self + } + + pub fn esdt_nft_balance_and_attributes( + mut self, + token_id_expr: K, + nonce_expr: N, + balance_expr: V, + attributes_expr: Option, + ) -> Self + where + BytesKey: From, + U64Value: From, + BigUintValue: From, + T: TopEncode, + { + let token_id = BytesKey::from(token_id_expr); + + if let CheckEsdtMap::Unspecified = &self.current_account.esdt { + let mut check_esdt = CheckEsdt::Full(CheckEsdtData::default()); + + if let Some(attributes_expr) = attributes_expr { + check_esdt.add_balance_and_attributes_check( + nonce_expr, + balance_expr, + top_encode_to_vec_u8_or_panic(&attributes_expr), + ); + } else { + check_esdt.add_balance_and_attributes_check( + nonce_expr, + balance_expr, + Vec::::new(), + ); + } + + let mut new_esdt_map = BTreeMap::new(); + let _ = new_esdt_map.insert(token_id, check_esdt); + + let new_check_esdt_map = CheckEsdtMapContents { + contents: new_esdt_map, + other_esdts_allowed: true, + }; + + self.current_account.esdt = CheckEsdtMap::Equal(new_check_esdt_map); + } + + self + } + + pub fn check_storage(mut self, key: &str, value: &str) -> Self { + let mut details = match &self.current_account.storage { + CheckStorage::Star => CheckStorageDetails::default(), + CheckStorage::Equal(details) => details.clone(), + }; + details.storages.insert( + BytesKey::interpret_from(key, &InterpreterContext::default()), + CheckValue::Equal(BytesValue::interpret_from( + value, + &InterpreterContext::default(), + )), + ); + self.current_account.storage = CheckStorage::Equal(details); + self + } +} + +impl<'w> Drop for CheckStateBuilder<'w> { + fn drop(&mut self) { + self.commit_accounts(); + } +} diff --git a/framework/scenario/src/facade/world_tx/scenario_exec_call.rs b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs index 5eef522784..e92e38087c 100644 --- a/framework/scenario/src/facade/world_tx/scenario_exec_call.rs +++ b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs @@ -1,23 +1,15 @@ -use std::{collections::btree_map::Entry, ops::Add, path::PathBuf}; - -use multiversx_chain_scenario_format::serde_raw::ValueSubTree; use multiversx_sc::{ tuple_util::NestedTupleFlatten, types::{ - Address, AddressExpr, AnnotatedValue, Code, DeployCall, FunctionCall, ManagedAddress, - ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, TxCodeSource, TxCodeSourceSpecified, - TxCodeValue, TxEnv, TxFromSpecified, TxGas, TxPayment, TxTo, TxToSpecified, + FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, TxEnv, + TxFromSpecified, TxGas, TxPayment, TxToSpecified, }, }; -use serde_json::map::OccupiedEntry; use crate::{ api::StaticApi, - scenario::{tx_to_step::TxToStep, ScenarioRunner}, - scenario_model::{ - Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, - NewAddress, ScCallStep, ScDeployStep, SetStateStep, TxExpect, TxResponse, U64Value, - }, + scenario::tx_to_step::TxToStep, + scenario_model::{TxExpect, TxResponse}, ScenarioTxEnv, ScenarioTxRun, ScenarioWorld, }; @@ -99,231 +91,4 @@ impl ScenarioWorld { step_wrapper.process_result(); self } - - pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_> - where - AddressKey: From, - { - SetStateBuilder::new(self, address_expr.into()) - } -} - -pub struct SetStateBuilder<'w> { - world: &'w mut ScenarioWorld, - set_state_step: SetStateStep, - current_account: Account, - current_address: AddressKey, -} - -impl<'w> SetStateBuilder<'w> { - pub(crate) fn new(world: &'w mut ScenarioWorld, address: AddressKey) -> SetStateBuilder<'w> { - let mut builder = SetStateBuilder { - world, - set_state_step: SetStateStep::new(), - current_address: AddressKey::default(), - current_account: Account::new(), - }; - builder.reset_account(address); - builder - } - - fn add_current_acount(&mut self) { - if let Entry::Vacant(entry) = self - .set_state_step - .accounts - .entry(core::mem::take(&mut self.current_address)) - { - entry.insert(core::mem::take(&mut self.current_account)); - }; - } - - fn reset_account(&mut self, address: AddressKey) { - assert!( - !self - .world - .get_debugger_backend() - .vm_runner - .blockchain_mock - .state - .account_exists(&address.to_vm_address()), - "updating existing accounts currently not supported" - ); - - self.current_address = address; - self.current_account = Account::default(); - } - - /// Starts building of a new account. - pub fn account(mut self, address_expr: A) -> Self - where - AddressKey: From, - { - self.add_current_acount(); - self.reset_account(address_expr.into()); - self - } - - /// Finished and sets all account in the blockchain mock. - fn commit_accounts(&mut self) { - self.add_current_acount(); - self.world.run_set_state_step(&self.set_state_step); - } - - /// Forces value drop and commit accounts. - pub fn commit(self) {} - - pub fn nonce(mut self, nonce: V) -> Self - where - U64Value: From, - { - self.current_account.nonce = Some(U64Value::from(nonce)); - self - } - - pub fn balance(mut self, balance_expr: V) -> Self - where - BigUintValue: From, - { - self.current_account.balance = Some(BigUintValue::from(balance_expr)); - self - } - - pub fn esdt_balance(mut self, token_id_expr: K, balance_expr: V) -> Self - where - BytesKey: From, - BigUintValue: From, - { - let token_id = BytesKey::from(token_id_expr); - let esdt_data_ref = self.get_esdt_data_or_create(&token_id); - esdt_data_ref.set_balance(0u64, balance_expr); - - self - } - - pub fn esdt_nft_balance( - mut self, - token_id_expr: K, - nonce_expr: N, - balance_expr: V, - opt_attributes_expr: Option, - ) -> Self - where - N: Clone, - BytesKey: From, - U64Value: From, - BigUintValue: From, - BytesValue: From, - { - let token_id = BytesKey::from(token_id_expr); - - let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) - .get_mut_esdt_object(); - esdt_obj_ref.set_balance(nonce_expr.clone(), balance_expr); - - if let Some(attributes_expr) = opt_attributes_expr { - esdt_obj_ref.set_token_attributes(nonce_expr, attributes_expr); - } - - self - } - - #[allow(clippy::too_many_arguments)] - pub fn esdt_nft_all_properties( - mut self, - token_id_expr: K, - nonce_expr: N, - balance_expr: V, - opt_attributes_expr: Option, - royalties_expr: N, - creator_expr: Option, - hash_expr: Option, - uris_expr: Vec, - ) -> Self - where - BytesKey: From, - U64Value: From, - BigUintValue: From, - BytesValue: From, - { - let token_id = BytesKey::from(token_id_expr); - - let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) - .get_mut_esdt_object(); - - esdt_obj_ref.set_token_all_properties( - nonce_expr, - balance_expr, - opt_attributes_expr, - royalties_expr, - creator_expr, - hash_expr, - uris_expr, - ); - - self - } - - pub fn esdt_nft_last_nonce(mut self, token_id_expr: K, last_nonce_expr: N) -> Self - where - BytesKey: From, - U64Value: From, - { - let token_id = BytesKey::from(token_id_expr); - - let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) - .get_mut_esdt_object(); - esdt_obj_ref.set_last_nonce(last_nonce_expr); - - self - } - - // TODO: Find a better way to pass roles - pub fn esdt_roles(mut self, token_id_expr: K, roles: Vec) -> Self - where - BytesKey: From, - { - let token_id = BytesKey::from(token_id_expr); - - let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) - .get_mut_esdt_object(); - esdt_obj_ref.set_roles(roles); - - self - } - - fn get_esdt_data_or_create(&mut self, token_id: &BytesKey) -> &mut Esdt { - if !self.current_account.esdt.contains_key(token_id) { - self.current_account - .esdt - .insert(token_id.clone(), Esdt::Full(EsdtObject::default())); - } - - self.current_account.esdt.get_mut(token_id).unwrap() - } - - pub fn code(mut self, code_expr: V) -> Self - where - BytesValue: From, - { - self.current_account.code = Some(BytesValue::from(code_expr)); - self - } - - pub fn owner(mut self, owner_expr: V) -> Self - where - AddressValue: From, - { - self.current_account.owner = Some(AddressValue::from(owner_expr)); - self - } -} - -impl<'w> Drop for SetStateBuilder<'w> { - fn drop(&mut self) { - self.commit_accounts(); - } } diff --git a/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs b/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs index c218f06869..866d4f562f 100644 --- a/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs +++ b/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs @@ -1,20 +1,14 @@ -use std::path::PathBuf; - -use multiversx_chain_scenario_format::serde_raw::ValueSubTree; use multiversx_sc::{ tuple_util::NestedTupleFlatten, types::{ - AnnotatedValue, Code, DeployCall, FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, - Tx, TxBaseWithEnv, TxCodeSource, TxCodeSourceSpecified, TxCodeValue, TxEnv, - TxFromSpecified, TxGas, TxPayment, TxToSpecified, + Code, DeployCall, RHListExec, Tx, TxBaseWithEnv, TxCodeValue, TxFromSpecified, TxGas, + TxPayment, }, }; use crate::{ - api::StaticApi, - scenario::tx_to_step::TxToStep, - scenario_model::{AddressValue, BytesValue, ScCallStep, ScDeployStep, TxResponse}, - ScenarioEnvExec, ScenarioTxEnv, ScenarioTxRun, ScenarioWorld, + scenario::tx_to_step::TxToStep, scenario_model::TxResponse, ScenarioEnvExec, ScenarioTxRun, + ScenarioWorld, }; use super::ScenarioTxEnvData; diff --git a/framework/scenario/src/facade/world_tx/scenario_query_call.rs b/framework/scenario/src/facade/world_tx/scenario_query_call.rs index 387ad0f444..dbcf3130f5 100644 --- a/framework/scenario/src/facade/world_tx/scenario_query_call.rs +++ b/framework/scenario/src/facade/world_tx/scenario_query_call.rs @@ -1,27 +1,15 @@ -use std::{ - collections::{btree_map::Entry, BTreeMap}, - path::PathBuf, -}; - -use multiversx_chain_scenario_format::interpret_trait::{InterpretableFrom, InterpreterContext}; use multiversx_sc::{ - codec::test_util::top_encode_to_vec_u8_or_panic, - proxy_imports::TopEncode, tuple_util::NestedTupleFlatten, types::{ - AnnotatedValue, FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, - TxEnv, TxFromSpecified, TxGas, TxPayment, TxToSpecified, + FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, TxEnv, + TxToSpecified, }, }; use crate::{ api::StaticApi, - scenario::{tx_to_step::TxToQueryStep, ScenarioRunner}, - scenario_model::{ - AddressKey, BigUintValue, BytesKey, BytesValue, CheckAccount, CheckEsdt, CheckEsdtData, - CheckEsdtInstances, CheckEsdtMap, CheckEsdtMapContents, CheckStateStep, CheckStorage, - CheckStorageDetails, CheckValue, TxExpect, TxResponse, U64Value, - }, + scenario::tx_to_step::TxToQueryStep, + scenario_model::{TxExpect, TxResponse}, ScenarioTxEnv, ScenarioTxEnvData, ScenarioTxRun, ScenarioWorld, }; @@ -93,215 +81,4 @@ impl ScenarioWorld { step_wrapper.process_result(); self } - - pub fn check_state_account(&mut self, address: A) -> CheckStateBuilder<'_> - where - AddressKey: From, - { - CheckStateBuilder::new(self, address.into()) - } -} - -pub struct CheckStateBuilder<'w> { - world: &'w mut ScenarioWorld, - check_state_step: CheckStateStep, - current_account: CheckAccount, - current_address: AddressKey, -} - -impl<'w> CheckStateBuilder<'w> { - pub(crate) fn new(world: &'w mut ScenarioWorld, address: AddressKey) -> CheckStateBuilder<'w> { - let mut builder = CheckStateBuilder { - world, - check_state_step: CheckStateStep::new(), - current_account: CheckAccount::new(), - current_address: AddressKey::default(), - }; - builder.reset_account(address); - builder - } - - /// Starts building of a new account. - pub fn check_state_account(mut self, address_expr: A) -> Self - where - AddressKey: From, - { - self.add_current_acount(); - self.reset_account(address_expr.into()); - self - } - - fn add_current_acount(&mut self) { - if let Entry::Vacant(entry) = self - .check_state_step - .accounts - .accounts - .entry(core::mem::take(&mut self.current_address)) - { - entry.insert(core::mem::take(&mut self.current_account)); - }; - } - - fn reset_account(&mut self, address: AddressKey) { - self.current_address = address; - self.current_account = CheckAccount::default(); - } - - /// Finished and sets all account in the blockchain mock. - fn commit_accounts(&mut self) { - self.add_current_acount(); - self.world.run_check_state_step(&self.check_state_step); - } - - /// Forces value drop and commit accounts. - pub fn commit(self) {} - - pub fn nonce(mut self, nonce: V) -> Self - where - U64Value: InterpretableFrom, - { - self.current_account.nonce = CheckValue::Equal(U64Value::interpret_from( - nonce, - &InterpreterContext::default(), - )); - self - } - - pub fn balance(mut self, balance_expr: V) -> Self - where - BigUintValue: InterpretableFrom, - { - self.current_account.balance = CheckValue::Equal(BigUintValue::interpret_from( - balance_expr, - &InterpreterContext::default(), - )); - self - } - - pub fn code(mut self, code_expr: V) -> Self - where - BytesValue: InterpretableFrom, - { - self.current_account.code = CheckValue::Equal(BytesValue::interpret_from( - code_expr, - &InterpreterContext::default(), - )); - self - } - - pub fn code_metadata(mut self, code_metadata_expr: V) -> Self - where - BytesValue: InterpretableFrom, - { - self.current_account.code_metadata = CheckValue::Equal(BytesValue::interpret_from( - code_metadata_expr, - &InterpreterContext::default(), - )); - self - } - - pub fn esdt_balance(mut self, token_id_expr: K, balance_expr: V) -> Self - where - BytesKey: From, - BigUintValue: From, - { - let token_id = BytesKey::from(token_id_expr); - let balance = BigUintValue::from(balance_expr); - - match &mut self.current_account.esdt { - CheckEsdtMap::Unspecified | CheckEsdtMap::Star => { - let mut new_esdt_map = BTreeMap::new(); - let _ = new_esdt_map.insert(token_id, CheckEsdt::Short(balance)); - - let new_check_esdt_map = CheckEsdtMapContents { - contents: new_esdt_map, - other_esdts_allowed: true, - }; - - self.current_account.esdt = CheckEsdtMap::Equal(new_check_esdt_map); - }, - CheckEsdtMap::Equal(check_esdt_map) => { - if check_esdt_map.contents.contains_key(&token_id) { - let prev_entry = check_esdt_map.contents.get_mut(&token_id).unwrap(); - match prev_entry { - CheckEsdt::Short(prev_balance_check) => *prev_balance_check = balance, - CheckEsdt::Full(prev_esdt_check) => match prev_esdt_check.instances { - CheckEsdtInstances::Star => todo!(), - CheckEsdtInstances::Equal(_) => todo!(), - }, - } - } - }, - } - - self - } - - pub fn esdt_nft_balance_and_attributes( - mut self, - token_id_expr: K, - nonce_expr: N, - balance_expr: V, - attributes_expr: Option, - ) -> Self - where - BytesKey: From, - U64Value: From, - BigUintValue: From, - T: TopEncode, - { - let token_id = BytesKey::from(token_id_expr); - - if let CheckEsdtMap::Unspecified = &self.current_account.esdt { - let mut check_esdt = CheckEsdt::Full(CheckEsdtData::default()); - - if let Some(attributes_expr) = attributes_expr { - check_esdt.add_balance_and_attributes_check( - nonce_expr, - balance_expr, - top_encode_to_vec_u8_or_panic(&attributes_expr), - ); - } else { - check_esdt.add_balance_and_attributes_check( - nonce_expr, - balance_expr, - Vec::::new(), - ); - } - - let mut new_esdt_map = BTreeMap::new(); - let _ = new_esdt_map.insert(token_id, check_esdt); - - let new_check_esdt_map = CheckEsdtMapContents { - contents: new_esdt_map, - other_esdts_allowed: true, - }; - - self.current_account.esdt = CheckEsdtMap::Equal(new_check_esdt_map); - } - - self - } - - pub fn check_storage(mut self, key: &str, value: &str) -> Self { - let mut details = match &self.current_account.storage { - CheckStorage::Star => CheckStorageDetails::default(), - CheckStorage::Equal(details) => details.clone(), - }; - details.storages.insert( - BytesKey::interpret_from(key, &InterpreterContext::default()), - CheckValue::Equal(BytesValue::interpret_from( - value, - &InterpreterContext::default(), - )), - ); - self.current_account.storage = CheckStorage::Equal(details); - self - } -} - -impl<'w> Drop for CheckStateBuilder<'w> { - fn drop(&mut self) { - self.commit_accounts(); - } } diff --git a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs index bbf29a0d03..d040f0bc3a 100644 --- a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs +++ b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs @@ -1,18 +1,12 @@ use multiversx_sc::{ codec::{CodecFrom, TopDecodeMulti, TopEncodeMulti}, types::{ - ManagedAddress, RHList, RHListItem, RHListItemExec, ReturnsNewAddress, - ReturnsNewManagedAddress, ReturnsResult, ReturnsResultConv, TxEnv, WithNewAddress, - WithResultConv, + ManagedAddress, RHListItemExec, ReturnsNewAddress, ReturnsNewManagedAddress, ReturnsResult, + ReturnsResultConv, TxEnv, WithNewAddress, WithResultConv, }, }; -use crate::{ - api::StaticApi, - scenario_model::{TxResponse, TypedResponse}, -}; - -use super::ScenarioTxEnvData; +use crate::scenario_model::{TxResponse, TypedResponse}; impl RHListItemExec for ReturnsResult where diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs new file mode 100644 index 0000000000..110b1b9692 --- /dev/null +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -0,0 +1,239 @@ +use std::collections::btree_map::Entry; + +use crate::{ + scenario::ScenarioRunner, + scenario_model::{ + Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, + SetStateStep, U64Value, + }, + ScenarioWorld, +}; + +impl ScenarioWorld { + pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_> + where + AddressKey: From, + { + SetStateBuilder::new(self, address_expr.into()) + } +} + +pub struct SetStateBuilder<'w> { + world: &'w mut ScenarioWorld, + set_state_step: SetStateStep, + current_account: Account, + current_address: AddressKey, +} + +impl<'w> SetStateBuilder<'w> { + pub(crate) fn new(world: &'w mut ScenarioWorld, address: AddressKey) -> SetStateBuilder<'w> { + let mut builder = SetStateBuilder { + world, + set_state_step: SetStateStep::new(), + current_address: AddressKey::default(), + current_account: Account::new(), + }; + builder.reset_account(address); + builder + } + + fn add_current_acount(&mut self) { + if let Entry::Vacant(entry) = self + .set_state_step + .accounts + .entry(core::mem::take(&mut self.current_address)) + { + entry.insert(core::mem::take(&mut self.current_account)); + }; + } + + fn reset_account(&mut self, address: AddressKey) { + assert!( + !self + .world + .get_debugger_backend() + .vm_runner + .blockchain_mock + .state + .account_exists(&address.to_vm_address()), + "updating existing accounts currently not supported" + ); + + self.current_address = address; + self.current_account = Account::default(); + } + + /// Starts building of a new account. + pub fn account(mut self, address_expr: A) -> Self + where + AddressKey: From, + { + self.add_current_acount(); + self.reset_account(address_expr.into()); + self + } + + /// Finished and sets all account in the blockchain mock. + fn commit_accounts(&mut self) { + self.add_current_acount(); + self.world.run_set_state_step(&self.set_state_step); + } + + /// Forces value drop and commit accounts. + pub fn commit(self) {} + + pub fn nonce(mut self, nonce: V) -> Self + where + U64Value: From, + { + self.current_account.nonce = Some(U64Value::from(nonce)); + self + } + + pub fn balance(mut self, balance_expr: V) -> Self + where + BigUintValue: From, + { + self.current_account.balance = Some(BigUintValue::from(balance_expr)); + self + } + + pub fn esdt_balance(mut self, token_id_expr: K, balance_expr: V) -> Self + where + BytesKey: From, + BigUintValue: From, + { + let token_id = BytesKey::from(token_id_expr); + let esdt_data_ref = self.get_esdt_data_or_create(&token_id); + esdt_data_ref.set_balance(0u64, balance_expr); + + self + } + + pub fn esdt_nft_balance( + mut self, + token_id_expr: K, + nonce_expr: N, + balance_expr: V, + opt_attributes_expr: Option, + ) -> Self + where + N: Clone, + BytesKey: From, + U64Value: From, + BigUintValue: From, + BytesValue: From, + { + let token_id = BytesKey::from(token_id_expr); + + let esdt_obj_ref = self + .get_esdt_data_or_create(&token_id) + .get_mut_esdt_object(); + esdt_obj_ref.set_balance(nonce_expr.clone(), balance_expr); + + if let Some(attributes_expr) = opt_attributes_expr { + esdt_obj_ref.set_token_attributes(nonce_expr, attributes_expr); + } + + self + } + + #[allow(clippy::too_many_arguments)] + pub fn esdt_nft_all_properties( + mut self, + token_id_expr: K, + nonce_expr: N, + balance_expr: V, + opt_attributes_expr: Option, + royalties_expr: N, + creator_expr: Option, + hash_expr: Option, + uris_expr: Vec, + ) -> Self + where + BytesKey: From, + U64Value: From, + BigUintValue: From, + BytesValue: From, + { + let token_id = BytesKey::from(token_id_expr); + + let esdt_obj_ref = self + .get_esdt_data_or_create(&token_id) + .get_mut_esdt_object(); + + esdt_obj_ref.set_token_all_properties( + nonce_expr, + balance_expr, + opt_attributes_expr, + royalties_expr, + creator_expr, + hash_expr, + uris_expr, + ); + + self + } + + pub fn esdt_nft_last_nonce(mut self, token_id_expr: K, last_nonce_expr: N) -> Self + where + BytesKey: From, + U64Value: From, + { + let token_id = BytesKey::from(token_id_expr); + + let esdt_obj_ref = self + .get_esdt_data_or_create(&token_id) + .get_mut_esdt_object(); + esdt_obj_ref.set_last_nonce(last_nonce_expr); + + self + } + + // TODO: Find a better way to pass roles + pub fn esdt_roles(mut self, token_id_expr: K, roles: Vec) -> Self + where + BytesKey: From, + { + let token_id = BytesKey::from(token_id_expr); + + let esdt_obj_ref = self + .get_esdt_data_or_create(&token_id) + .get_mut_esdt_object(); + esdt_obj_ref.set_roles(roles); + + self + } + + fn get_esdt_data_or_create(&mut self, token_id: &BytesKey) -> &mut Esdt { + if !self.current_account.esdt.contains_key(token_id) { + self.current_account + .esdt + .insert(token_id.clone(), Esdt::Full(EsdtObject::default())); + } + + self.current_account.esdt.get_mut(token_id).unwrap() + } + + pub fn code(mut self, code_expr: V) -> Self + where + BytesValue: From, + { + self.current_account.code = Some(BytesValue::from(code_expr)); + self + } + + pub fn owner(mut self, owner_expr: V) -> Self + where + AddressValue: From, + { + self.current_account.owner = Some(AddressValue::from(owner_expr)); + self + } +} + +impl<'w> Drop for SetStateBuilder<'w> { + fn drop(&mut self) { + self.commit_accounts(); + } +} diff --git a/framework/scenario/src/facade/world_tx/scenario_tx_env.rs b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs index aac1952a34..d195a7600d 100644 --- a/framework/scenario/src/facade/world_tx/scenario_tx_env.rs +++ b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs @@ -1,12 +1,8 @@ use std::path::PathBuf; -use multiversx_sc::types::{AnnotatedValue, ManagedAddress, ManagedBuffer, TxBaseWithEnv, TxEnv}; +use multiversx_sc::types::{ManagedAddress, ManagedBuffer, TxEnv}; -use crate::{ - api::StaticApi, - scenario_model::{TxExpect, TxResponse}, - ScenarioWorld, -}; +use crate::{api::StaticApi, scenario_model::TxExpect, ScenarioWorld}; /// Designates a tx environment suitable for running scenarios locally. pub trait ScenarioTxEnv: TxEnv { From 9549b7e327c5020a95691e30ed413e4c9010ad69 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 17 Apr 2024 18:23:02 +0300 Subject: [PATCH 034/185] check state refactor --- .../adder/tests/adder_blackbox_test.rs | 8 +++----- .../tests/crowdfunding_esdt_blackbox_test.rs | 2 +- .../scenario-tester/tests/st_blackbox_test.rs | 20 +++++++++---------- .../facade/world_tx/scenario_check_state.rs | 4 ++-- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index 1dafca181a..4b0f740343 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -61,11 +61,9 @@ fn adder_blackbox() { .returns(ExpectValue(6u32)) .run(); - world.check_state_step( - CheckStateStep::new() - .put_account(OWNER, CheckAccount::new()) - .put_account(SC_ADDER, CheckAccount::new().check_storage("str:sum", "6")), - ); + world.check_account(OWNER); + + world.check_account(SC_ADDER).check_storage("str:sum", "6"); world.write_scenario_trace("trace1.scen.json"); } diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index cc4235704c..c3a1e383f3 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -118,7 +118,7 @@ impl CrowdfundingESDTTestState { fn check_esdt_balance(&mut self, address: AddressExpr, balance_expr: &str) { self.world - .check_state_account(address) + .check_account(address) .esdt_balance(CF_TOKEN_ID_EXPR, balance_expr); } diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index ae3e29da45..de877fb76b 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -42,10 +42,10 @@ fn st_blackbox() { .commit(); world - .check_state_account(owner_address) + .check_account(owner_address) .nonce("1") .balance("100") - .check_state_account(other_address) + .check_account(other_address) .nonce("2") .balance("300") .esdt_balance("str:TOKEN-123456", "500") @@ -81,10 +81,10 @@ fn st_blackbox() { .run(); world - .check_state_account(owner_address) + .check_account(owner_address) .nonce("3") .balance("100") - .check_state_account(st_contract) + .check_account(st_contract) .check_storage("str:sum", "6") .commit(); @@ -122,10 +122,10 @@ fn set_state_test() { .commit(); world - .check_state_account(first) + .check_account(first) .nonce(1) .balance("100") - .check_state_account(second) + .check_account(second) .nonce(2) .balance("300") .esdt_balance("str:TOKEN-123456", "500") @@ -139,7 +139,7 @@ fn set_state_test() { .commit(); world - .check_state_account(third) + .check_account(third) .nonce(3) .balance("50") .esdt_nft_balance_and_attributes("str:NFT-123456", "2", "1", Some(Vec::::new())) @@ -156,10 +156,10 @@ fn set_state_test() { .esdt_balance("str:TOKEN-123456", "2"); world - .check_state_account(fourth) + .check_account(fourth) .nonce(4) .balance("400") - .check_state_account(fifth) + .check_account(fifth) .nonce(5) .balance("250") .esdt_balance("str:TOKEN-123456", "2"); @@ -171,7 +171,7 @@ fn set_state_test() { .esdt_balance("str:TOKEN-123456", "60"); world - .check_state_account(sixth) + .check_account(sixth) .nonce(6) .balance("600") .esdt_balance("str:TOKEN-123456", "60"); diff --git a/framework/scenario/src/facade/world_tx/scenario_check_state.rs b/framework/scenario/src/facade/world_tx/scenario_check_state.rs index ab54d7411f..ffb4a2754b 100644 --- a/framework/scenario/src/facade/world_tx/scenario_check_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_check_state.rs @@ -14,7 +14,7 @@ use crate::{ }; impl ScenarioWorld { - pub fn check_state_account(&mut self, address: A) -> CheckStateBuilder<'_> + pub fn check_account(&mut self, address: A) -> CheckStateBuilder<'_> where AddressKey: From, { @@ -42,7 +42,7 @@ impl<'w> CheckStateBuilder<'w> { } /// Starts building of a new account. - pub fn check_state_account(mut self, address_expr: A) -> Self + pub fn check_account(mut self, address_expr: A) -> Self where AddressKey: From, { From a372df542b3922ae98d6a00599571b35b1417981 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 18 Apr 2024 12:03:40 +0300 Subject: [PATCH 035/185] set state - refactor --- framework/scenario/src/facade/world_tx.rs | 1 + .../src/facade/world_tx/scenario_set_state.rs | 256 ++++-------------- .../world_tx/scenario_set_state_account.rs | 173 ++++++++++++ 3 files changed, 234 insertions(+), 196 deletions(-) create mode 100644 framework/scenario/src/facade/world_tx/scenario_set_state_account.rs diff --git a/framework/scenario/src/facade/world_tx.rs b/framework/scenario/src/facade/world_tx.rs index b0a694afbf..236a9b95b6 100644 --- a/framework/scenario/src/facade/world_tx.rs +++ b/framework/scenario/src/facade/world_tx.rs @@ -6,6 +6,7 @@ mod scenario_query_call; mod scenario_rh_impl; mod scenario_set_state; mod scenario_tx_env; +mod scenario_set_state_account; pub use scenario_exec_call::ScenarioEnvExec; pub use scenario_query_call::ScenarioEnvQuery; diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index e59ca32ba6..3cfee4b9cc 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -1,22 +1,22 @@ -use std::collections::btree_map::Entry; - use crate::{ scenario::ScenarioRunner, - scenario_model::{ - Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, - SetStateStep, U64Value, - }, + scenario_model::{Account, AddressKey, SetStateStep}, ScenarioWorld, }; -use super::block_info_builder::BlockInfoBuilder; +use super::{block_info_builder::BlockInfoBuilder, scenario_set_state_account::CurrentAccount}; impl ScenarioWorld { - pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_> + pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_, CurrentAccount> where AddressKey: From, { - SetStateBuilder::new(self, address_expr.into()) + let base = SetStateBuilderBase::new(self); + let item = base.start_account(address_expr.into()); + SetStateBuilder { + base: Some(base), + item, + } } pub fn block_info(&mut self) -> BlockInfoBuilder<'_> { @@ -24,36 +24,36 @@ impl ScenarioWorld { } } -pub struct SetStateBuilder<'w> { - world: &'w mut ScenarioWorld, - set_state_step: SetStateStep, - current_account: Account, - current_address: AddressKey, +pub trait SetStateBuilderItem { + fn commit_to_step(&mut self, step: &mut SetStateStep); } -impl<'w> SetStateBuilder<'w> { - pub(crate) fn new(world: &'w mut ScenarioWorld, address: AddressKey) -> SetStateBuilder<'w> { - let mut builder = SetStateBuilder { +impl SetStateBuilderItem for () { + fn commit_to_step(&mut self, _step: &mut SetStateStep) {} +} + +pub(crate) struct SetStateBuilderBase<'w> { + pub(crate) world: &'w mut ScenarioWorld, + pub(crate) set_state_step: SetStateStep, +} + +pub struct SetStateBuilder<'w, Current> +where + Current: SetStateBuilderItem, +{ + pub(crate) base: Option>, + pub(crate) item: Current, +} + +impl<'w> SetStateBuilderBase<'w> { + fn new(world: &'w mut ScenarioWorld) -> Self { + SetStateBuilderBase { world, set_state_step: SetStateStep::new(), - current_address: AddressKey::default(), - current_account: Account::new(), - }; - builder.reset_account(address); - builder - } - - fn add_current_acount(&mut self) { - if let Entry::Vacant(entry) = self - .set_state_step - .accounts - .entry(core::mem::take(&mut self.current_address)) - { - entry.insert(core::mem::take(&mut self.current_account)); - }; + } } - fn reset_account(&mut self, address: AddressKey) { + fn start_account(&self, address: AddressKey) -> CurrentAccount { assert!( !self .world @@ -65,181 +65,45 @@ impl<'w> SetStateBuilder<'w> { "updating existing accounts currently not supported" ); - self.current_address = address; - self.current_account = Account::default(); + CurrentAccount { + address, + account: Account::default(), + } } +} + +impl<'w> SetStateBuilder<'w, ()> {} +impl<'w, Item> SetStateBuilder<'w, Item> +where + Item: SetStateBuilderItem, +{ /// Starts building of a new account. - pub fn account(mut self, address_expr: A) -> Self + pub fn account(mut self, address_expr: A) -> SetStateBuilder<'w, CurrentAccount> where AddressKey: From, { - self.add_current_acount(); - self.reset_account(address_expr.into()); - self - } - - /// Finished and sets all account in the blockchain mock. - fn commit_accounts(&mut self) { - self.add_current_acount(); - self.world.run_set_state_step(&self.set_state_step); + let mut base = core::mem::take(&mut self.base).unwrap(); + self.item.commit_to_step(&mut base.set_state_step); + let item = base.start_account(address_expr.into()); + SetStateBuilder { + base: Some(base), + item, + } } /// Forces value drop and commit accounts. pub fn commit(self) {} - - pub fn nonce(mut self, nonce: V) -> Self - where - U64Value: From, - { - self.current_account.nonce = Some(U64Value::from(nonce)); - self - } - - pub fn balance(mut self, balance_expr: V) -> Self - where - BigUintValue: From, - { - self.current_account.balance = Some(BigUintValue::from(balance_expr)); - self - } - - pub fn esdt_balance(mut self, token_id_expr: K, balance_expr: V) -> Self - where - BytesKey: From, - BigUintValue: From, - { - let token_id = BytesKey::from(token_id_expr); - let esdt_data_ref = self.get_esdt_data_or_create(&token_id); - esdt_data_ref.set_balance(0u64, balance_expr); - - self - } - - pub fn esdt_nft_balance( - mut self, - token_id_expr: K, - nonce_expr: N, - balance_expr: V, - opt_attributes_expr: Option, - ) -> Self - where - N: Clone, - BytesKey: From, - U64Value: From, - BigUintValue: From, - BytesValue: From, - { - let token_id = BytesKey::from(token_id_expr); - - let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) - .get_mut_esdt_object(); - esdt_obj_ref.set_balance(nonce_expr.clone(), balance_expr); - - if let Some(attributes_expr) = opt_attributes_expr { - esdt_obj_ref.set_token_attributes(nonce_expr, attributes_expr); - } - - self - } - - #[allow(clippy::too_many_arguments)] - pub fn esdt_nft_all_properties( - mut self, - token_id_expr: K, - nonce_expr: N, - balance_expr: V, - opt_attributes_expr: Option, - royalties_expr: N, - creator_expr: Option, - hash_expr: Option, - uris_expr: Vec, - ) -> Self - where - BytesKey: From, - U64Value: From, - BigUintValue: From, - BytesValue: From, - { - let token_id = BytesKey::from(token_id_expr); - - let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) - .get_mut_esdt_object(); - - esdt_obj_ref.set_token_all_properties( - nonce_expr, - balance_expr, - opt_attributes_expr, - royalties_expr, - creator_expr, - hash_expr, - uris_expr, - ); - - self - } - - pub fn esdt_nft_last_nonce(mut self, token_id_expr: K, last_nonce_expr: N) -> Self - where - BytesKey: From, - U64Value: From, - { - let token_id = BytesKey::from(token_id_expr); - - let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) - .get_mut_esdt_object(); - esdt_obj_ref.set_last_nonce(last_nonce_expr); - - self - } - - // TODO: Find a better way to pass roles - pub fn esdt_roles(mut self, token_id_expr: K, roles: Vec) -> Self - where - BytesKey: From, - { - let token_id = BytesKey::from(token_id_expr); - - let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) - .get_mut_esdt_object(); - esdt_obj_ref.set_roles(roles); - - self - } - - fn get_esdt_data_or_create(&mut self, token_id: &BytesKey) -> &mut Esdt { - if !self.current_account.esdt.contains_key(token_id) { - self.current_account - .esdt - .insert(token_id.clone(), Esdt::Full(EsdtObject::default())); - } - - self.current_account.esdt.get_mut(token_id).unwrap() - } - - pub fn code(mut self, code_expr: V) -> Self - where - BytesValue: From, - { - self.current_account.code = Some(BytesValue::from(code_expr)); - self - } - - pub fn owner(mut self, owner_expr: V) -> Self - where - AddressValue: From, - { - self.current_account.owner = Some(AddressValue::from(owner_expr)); - self - } } -impl<'w> Drop for SetStateBuilder<'w> { +impl<'w, Current> Drop for SetStateBuilder<'w, Current> +where + Current: SetStateBuilderItem, +{ fn drop(&mut self) { - self.commit_accounts(); + if let Some(base) = &mut self.base { + self.item.commit_to_step(&mut base.set_state_step); + base.world.run_set_state_step(&base.set_state_step); + } } } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state_account.rs new file mode 100644 index 0000000000..4dc49fd116 --- /dev/null +++ b/framework/scenario/src/facade/world_tx/scenario_set_state_account.rs @@ -0,0 +1,173 @@ +use std::collections::btree_map::Entry; + +use crate::scenario_model::{ + Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, + SetStateStep, U64Value, +}; + +use super::scenario_set_state::{SetStateBuilder, SetStateBuilderItem}; + +pub struct CurrentAccount { + pub(crate) address: AddressKey, + pub(crate) account: Account, +} + +impl SetStateBuilderItem for CurrentAccount { + fn commit_to_step(&mut self, step: &mut SetStateStep) { + if let Entry::Vacant(entry) = step.accounts.entry(core::mem::take(&mut self.address)) { + entry.insert(core::mem::take(&mut self.account)); + }; + } +} + +impl<'w> SetStateBuilder<'w, CurrentAccount> { + pub fn nonce(mut self, nonce: V) -> Self + where + U64Value: From, + { + self.item.account.nonce = Some(U64Value::from(nonce)); + self + } + + pub fn balance(mut self, balance_expr: V) -> Self + where + BigUintValue: From, + { + self.item.account.balance = Some(BigUintValue::from(balance_expr)); + self + } + + pub fn esdt_balance(mut self, token_id_expr: K, balance_expr: V) -> Self + where + BytesKey: From, + BigUintValue: From, + { + let token_id = BytesKey::from(token_id_expr); + let esdt_data_ref = self.get_esdt_data_or_create(&token_id); + esdt_data_ref.set_balance(0u64, balance_expr); + + self + } + + pub fn esdt_nft_balance( + mut self, + token_id_expr: K, + nonce_expr: N, + balance_expr: V, + opt_attributes_expr: Option, + ) -> Self + where + N: Clone, + BytesKey: From, + U64Value: From, + BigUintValue: From, + BytesValue: From, + { + let token_id = BytesKey::from(token_id_expr); + + let esdt_obj_ref = self + .get_esdt_data_or_create(&token_id) + .get_mut_esdt_object(); + esdt_obj_ref.set_balance(nonce_expr.clone(), balance_expr); + + if let Some(attributes_expr) = opt_attributes_expr { + esdt_obj_ref.set_token_attributes(nonce_expr, attributes_expr); + } + + self + } + + #[allow(clippy::too_many_arguments)] + pub fn esdt_nft_all_properties( + mut self, + token_id_expr: K, + nonce_expr: N, + balance_expr: V, + opt_attributes_expr: Option, + royalties_expr: N, + creator_expr: Option, + hash_expr: Option, + uris_expr: Vec, + ) -> Self + where + BytesKey: From, + U64Value: From, + BigUintValue: From, + BytesValue: From, + { + let token_id = BytesKey::from(token_id_expr); + + let esdt_obj_ref = self + .get_esdt_data_or_create(&token_id) + .get_mut_esdt_object(); + + esdt_obj_ref.set_token_all_properties( + nonce_expr, + balance_expr, + opt_attributes_expr, + royalties_expr, + creator_expr, + hash_expr, + uris_expr, + ); + + self + } + + pub fn esdt_nft_last_nonce(mut self, token_id_expr: K, last_nonce_expr: N) -> Self + where + BytesKey: From, + U64Value: From, + { + let token_id = BytesKey::from(token_id_expr); + + let esdt_obj_ref = self + .get_esdt_data_or_create(&token_id) + .get_mut_esdt_object(); + esdt_obj_ref.set_last_nonce(last_nonce_expr); + + self + } + + // TODO: Find a better way to pass roles + pub fn esdt_roles(mut self, token_id_expr: K, roles: Vec) -> Self + where + BytesKey: From, + { + let token_id = BytesKey::from(token_id_expr); + + let esdt_obj_ref = self + .get_esdt_data_or_create(&token_id) + .get_mut_esdt_object(); + esdt_obj_ref.set_roles(roles); + + self + } + + fn get_esdt_data_or_create(&mut self, token_id: &BytesKey) -> &mut Esdt { + if !self.item.account.esdt.contains_key(token_id) { + self.item + .account + .esdt + .insert(token_id.clone(), Esdt::Full(EsdtObject::default())); + } + + self.item.account.esdt.get_mut(token_id).unwrap() + } + + pub fn code(mut self, code_expr: V) -> Self + where + BytesValue: From, + { + self.item.account.code = Some(BytesValue::from(code_expr)); + self + } + + pub fn owner(mut self, owner_expr: V) -> Self + where + AddressValue: From, + { + self.item.account.owner = Some(AddressValue::from(owner_expr)); + self + } +} From cc1d2156d778e0f7b95d2eb4ee353750fc20a4fa Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Thu, 18 Apr 2024 13:06:28 +0300 Subject: [PATCH 036/185] check tx - fix expect message when status is empty --- .../panic-message-features/tests/pmf_blackbox_test.rs | 2 +- .../scenario/src/facade/result_handlers/expect_message.rs | 6 +++++- framework/scenario/src/scenario/model/value/value_check.rs | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs index 28499c0e84..371bf0aeb3 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs @@ -73,9 +73,9 @@ fn tx_expect_error_test() { .to(SC_PMF) .typed(pmf_proxy::PanicMessageFeaturesProxy) .sc_panic() - .with_result(ExpectStatus(4)) .with_result(ExpectMessage("sc_panic! test")) .with_result(ExpectError(4, "sc_panic! test")) + .with_result(ExpectStatus(4)) .run(); } diff --git a/framework/scenario/src/facade/result_handlers/expect_message.rs b/framework/scenario/src/facade/result_handlers/expect_message.rs index 4f46d05b59..af5fa2a429 100644 --- a/framework/scenario/src/facade/result_handlers/expect_message.rs +++ b/framework/scenario/src/facade/result_handlers/expect_message.rs @@ -1,7 +1,7 @@ use multiversx_chain_scenario_format::serde_raw::ValueSubTree; use multiversx_sc::types::{RHListItem, RHListItemExec, TxEnv}; -use crate::scenario_model::{BytesValue, CheckValue, TxExpect, TxResponse}; +use crate::scenario_model::{BytesValue, CheckValue, TxExpect, TxResponse, U64Value}; /// Verifies that transaction result message matches the given one. /// @@ -20,6 +20,10 @@ where Env: TxEnv, { fn item_tx_expect(&self, mut prev: TxExpect) -> TxExpect { + if prev.status.is_equal_to(U64Value::empty()) { + prev.status = CheckValue::Star; + } + let expect_message_expr = BytesValue { value: self.0.to_string().into_bytes(), original: ValueSubTree::Str(format!("str:{}", self.0)), diff --git a/framework/scenario/src/scenario/model/value/value_check.rs b/framework/scenario/src/scenario/model/value/value_check.rs index 5299aa9e1b..9091f73594 100644 --- a/framework/scenario/src/scenario/model/value/value_check.rs +++ b/framework/scenario/src/scenario/model/value/value_check.rs @@ -21,6 +21,10 @@ where pub fn is_star(&self) -> bool { matches!(self, CheckValue::Star) } + + pub fn is_equal_to(&self, _value: T) -> bool { + matches!(self, CheckValue::Equal(_value)) + } } impl InterpretableFrom for CheckValue From 7c291a5961577788fcf223bfd02e0102ba8e4f2e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 18 Apr 2024 18:55:29 +0300 Subject: [PATCH 037/185] set state - integrated block info --- framework/scenario/src/facade/world_tx.rs | 2 +- .../src/facade/world_tx/block_info_builder.rs | 132 ++++++------------ .../src/facade/world_tx/scenario_set_state.rs | 16 ++- 3 files changed, 55 insertions(+), 95 deletions(-) diff --git a/framework/scenario/src/facade/world_tx.rs b/framework/scenario/src/facade/world_tx.rs index 236a9b95b6..9d805cb30d 100644 --- a/framework/scenario/src/facade/world_tx.rs +++ b/framework/scenario/src/facade/world_tx.rs @@ -5,8 +5,8 @@ mod scenario_exec_deploy; mod scenario_query_call; mod scenario_rh_impl; mod scenario_set_state; -mod scenario_tx_env; mod scenario_set_state_account; +mod scenario_tx_env; pub use scenario_exec_call::ScenarioEnvExec; pub use scenario_query_call::ScenarioEnvQuery; diff --git a/framework/scenario/src/facade/world_tx/block_info_builder.rs b/framework/scenario/src/facade/world_tx/block_info_builder.rs index 0defeb61d9..91ac2a0620 100644 --- a/framework/scenario/src/facade/world_tx/block_info_builder.rs +++ b/framework/scenario/src/facade/world_tx/block_info_builder.rs @@ -1,49 +1,55 @@ -use crate::{ - scenario::ScenarioRunner, - scenario_model::{BlockInfo, BytesValue, SetStateStep, U64Value}, - ScenarioWorld, -}; - -pub struct BlockInfoBuilder<'w> { - world: &'w mut ScenarioWorld, - set_state_step: SetStateStep, - current_block: BlockInfo, - previous_block: BlockInfo, +use crate::scenario_model::{BlockInfo, BytesValue, SetStateStep, U64Value}; + +use super::scenario_set_state::{SetStateBuilder, SetStateBuilderItem}; + +pub enum BlockInfoTarget { + Current, + Previous, +} + +pub struct BlockItem { + target: BlockInfoTarget, + block_info: BlockInfo, } -impl<'w> BlockInfoBuilder<'w> { - pub(crate) fn new(world: &'w mut ScenarioWorld) -> BlockInfoBuilder<'w> { - BlockInfoBuilder { - world, - set_state_step: SetStateStep::new(), - current_block: BlockInfo::default(), - previous_block: BlockInfo::default(), +impl BlockItem { + pub fn new_current() -> Self { + BlockItem { + target: BlockInfoTarget::Current, + block_info: BlockInfo::default(), } } - // Forces value drop and commit block info. - pub fn commit(self) {} - - /// Finished and sets all account in the blockchain mock. - fn commit_block_info(&mut self) { - self.add_current_block_info(); - self.world.run_set_state_step(&self.set_state_step); + pub fn new_prev() -> Self { + BlockItem { + target: BlockInfoTarget::Previous, + block_info: BlockInfo::default(), + } } +} - fn add_current_block_info(&mut self) { - self.set_state_step.previous_block_info = - Box::new(Some(core::mem::take(&mut self.previous_block))); - self.set_state_step.current_block_info = - Box::new(Some(core::mem::take(&mut self.current_block))); +impl SetStateBuilderItem for BlockItem { + fn commit_to_step(&mut self, step: &mut SetStateStep) { + let block_info = core::mem::take(&mut self.block_info); + match self.target { + BlockInfoTarget::Current => { + step.current_block_info = Box::new(Some(block_info)); + }, + BlockInfoTarget::Previous => { + step.previous_block_info = Box::new(Some(block_info)); + }, + } } +} +impl<'w> SetStateBuilder<'w, BlockItem> { pub fn block_epoch(mut self, block_epoch_expr: N) -> Self where U64Value: From, { let block_epoch = U64Value::from(block_epoch_expr); - self.current_block.block_epoch = Some(block_epoch); + self.item.block_info.block_epoch = Some(block_epoch); self } @@ -53,7 +59,7 @@ impl<'w> BlockInfoBuilder<'w> { { let block_nonce = U64Value::from(block_nonce_expr); - self.current_block.block_nonce = Some(block_nonce); + self.item.block_info.block_nonce = Some(block_nonce); self } @@ -63,7 +69,7 @@ impl<'w> BlockInfoBuilder<'w> { { let block_round = U64Value::from(block_round_expr); - self.current_block.block_round = Some(block_round); + self.item.block_info.block_round = Some(block_round); self } @@ -73,7 +79,7 @@ impl<'w> BlockInfoBuilder<'w> { { let block_timestamp = U64Value::from(block_timestamp_expr); - self.current_block.block_timestamp = Some(block_timestamp); + self.item.block_info.block_timestamp = Some(block_timestamp); self } @@ -83,63 +89,7 @@ impl<'w> BlockInfoBuilder<'w> { { let block_random_seed = BytesValue::from(block_random_seed_expr); - self.current_block.block_random_seed = Some(block_random_seed); - self - } - - pub fn prev_block_epoch(mut self, block_epoch_expr: N) -> Self - where - U64Value: From, - { - let prev_block_epoch = U64Value::from(block_epoch_expr); - - self.previous_block.block_epoch = Some(prev_block_epoch); - self - } - - pub fn prev_block_nonce(mut self, block_nonce_expr: N) -> Self - where - U64Value: From, - { - let prev_block_nonce = U64Value::from(block_nonce_expr); - - self.previous_block.block_nonce = Some(prev_block_nonce); + self.item.block_info.block_random_seed = Some(block_random_seed); self } - - pub fn prev_block_round(mut self, block_round_expr: N) -> Self - where - U64Value: From, - { - let prev_block_round = U64Value::from(block_round_expr); - - self.previous_block.block_round = Some(prev_block_round); - self - } - - pub fn prev_block_timestamp(mut self, block_timestamp_expr: N) -> Self - where - U64Value: From, - { - let prev_block_timestamp = U64Value::from(block_timestamp_expr); - - self.previous_block.block_timestamp = Some(prev_block_timestamp); - self - } - - pub fn prev_block_random_seed(mut self, block_random_seed_expr: B) -> Self - where - BytesValue: From, - { - let prev_block_random_seed = BytesValue::from(block_random_seed_expr); - - self.previous_block.block_random_seed = Some(prev_block_random_seed); - self - } -} - -impl Drop for BlockInfoBuilder<'_> { - fn drop(&mut self) { - self.commit_block_info(); - } } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 3cfee4b9cc..b1df67bbf5 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -4,7 +4,7 @@ use crate::{ ScenarioWorld, }; -use super::{block_info_builder::BlockInfoBuilder, scenario_set_state_account::CurrentAccount}; +use super::{block_info_builder::BlockItem, scenario_set_state_account::CurrentAccount}; impl ScenarioWorld { pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_, CurrentAccount> @@ -19,8 +19,18 @@ impl ScenarioWorld { } } - pub fn block_info(&mut self) -> BlockInfoBuilder<'_> { - BlockInfoBuilder::new(self) + pub fn current_block(&mut self) -> SetStateBuilder<'_, BlockItem> { + SetStateBuilder { + base: Some(SetStateBuilderBase::new(self)), + item: BlockItem::new_current(), + } + } + + pub fn previous_block(&mut self) -> SetStateBuilder<'_, BlockItem> { + SetStateBuilder { + base: Some(SetStateBuilderBase::new(self)), + item: BlockItem::new_current(), + } } } From 27861624f53d69e94c6e8c29d5358131d2184333 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 18 Apr 2024 19:03:37 +0300 Subject: [PATCH 038/185] set state - refactor --- framework/scenario/src/facade/world_tx.rs | 2 -- .../src/facade/world_tx/scenario_set_state.rs | 19 +++++++++-------- .../scenario_set_account.rs} | 21 +++++++++++++------ .../scenario_set_block.rs} | 14 ++++++------- 4 files changed, 32 insertions(+), 24 deletions(-) rename framework/scenario/src/facade/world_tx/{scenario_set_state_account.rs => scenario_set_state/scenario_set_account.rs} (92%) rename framework/scenario/src/facade/world_tx/{block_info_builder.rs => scenario_set_state/scenario_set_block.rs} (87%) diff --git a/framework/scenario/src/facade/world_tx.rs b/framework/scenario/src/facade/world_tx.rs index 9d805cb30d..a2d7373a42 100644 --- a/framework/scenario/src/facade/world_tx.rs +++ b/framework/scenario/src/facade/world_tx.rs @@ -1,11 +1,9 @@ -mod block_info_builder; mod scenario_check_state; mod scenario_exec_call; mod scenario_exec_deploy; mod scenario_query_call; mod scenario_rh_impl; mod scenario_set_state; -mod scenario_set_state_account; mod scenario_tx_env; pub use scenario_exec_call::ScenarioEnvExec; diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index b1df67bbf5..cc5874d0de 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -1,13 +1,17 @@ +mod scenario_set_account; +mod scenario_set_block; + use crate::{ scenario::ScenarioRunner, - scenario_model::{Account, AddressKey, SetStateStep}, + scenario_model::{AddressKey, SetStateStep}, ScenarioWorld, }; -use super::{block_info_builder::BlockItem, scenario_set_state_account::CurrentAccount}; +use scenario_set_account::AccountItem; +use scenario_set_block::BlockItem; impl ScenarioWorld { - pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_, CurrentAccount> + pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_, AccountItem> where AddressKey: From, { @@ -63,7 +67,7 @@ impl<'w> SetStateBuilderBase<'w> { } } - fn start_account(&self, address: AddressKey) -> CurrentAccount { + fn start_account(&self, address: AddressKey) -> AccountItem { assert!( !self .world @@ -75,10 +79,7 @@ impl<'w> SetStateBuilderBase<'w> { "updating existing accounts currently not supported" ); - CurrentAccount { - address, - account: Account::default(), - } + AccountItem::new(address) } } @@ -89,7 +90,7 @@ where Item: SetStateBuilderItem, { /// Starts building of a new account. - pub fn account(mut self, address_expr: A) -> SetStateBuilder<'w, CurrentAccount> + pub fn account(mut self, address_expr: A) -> SetStateBuilder<'w, AccountItem> where AddressKey: From, { diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs similarity index 92% rename from framework/scenario/src/facade/world_tx/scenario_set_state_account.rs rename to framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index 4dc49fd116..d985cbed66 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -5,14 +5,23 @@ use crate::scenario_model::{ SetStateStep, U64Value, }; -use super::scenario_set_state::{SetStateBuilder, SetStateBuilderItem}; +use super::{SetStateBuilder, SetStateBuilderItem}; -pub struct CurrentAccount { - pub(crate) address: AddressKey, - pub(crate) account: Account, +pub struct AccountItem { + address: AddressKey, + account: Account, } -impl SetStateBuilderItem for CurrentAccount { +impl AccountItem { + pub fn new(address: AddressKey) -> Self { + AccountItem { + address, + account: Account::default(), + } + } +} + +impl SetStateBuilderItem for AccountItem { fn commit_to_step(&mut self, step: &mut SetStateStep) { if let Entry::Vacant(entry) = step.accounts.entry(core::mem::take(&mut self.address)) { entry.insert(core::mem::take(&mut self.account)); @@ -20,7 +29,7 @@ impl SetStateBuilderItem for CurrentAccount { } } -impl<'w> SetStateBuilder<'w, CurrentAccount> { +impl<'w> SetStateBuilder<'w, AccountItem> { pub fn nonce(mut self, nonce: V) -> Self where U64Value: From, diff --git a/framework/scenario/src/facade/world_tx/block_info_builder.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_block.rs similarity index 87% rename from framework/scenario/src/facade/world_tx/block_info_builder.rs rename to framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_block.rs index 91ac2a0620..9b487859e4 100644 --- a/framework/scenario/src/facade/world_tx/block_info_builder.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_block.rs @@ -1,28 +1,28 @@ use crate::scenario_model::{BlockInfo, BytesValue, SetStateStep, U64Value}; -use super::scenario_set_state::{SetStateBuilder, SetStateBuilderItem}; +use super::{SetStateBuilder, SetStateBuilderItem}; -pub enum BlockInfoTarget { +pub enum BlockItemTarget { Current, Previous, } pub struct BlockItem { - target: BlockInfoTarget, + target: BlockItemTarget, block_info: BlockInfo, } impl BlockItem { pub fn new_current() -> Self { BlockItem { - target: BlockInfoTarget::Current, + target: BlockItemTarget::Current, block_info: BlockInfo::default(), } } pub fn new_prev() -> Self { BlockItem { - target: BlockInfoTarget::Previous, + target: BlockItemTarget::Previous, block_info: BlockInfo::default(), } } @@ -32,10 +32,10 @@ impl SetStateBuilderItem for BlockItem { fn commit_to_step(&mut self, step: &mut SetStateStep) { let block_info = core::mem::take(&mut self.block_info); match self.target { - BlockInfoTarget::Current => { + BlockItemTarget::Current => { step.current_block_info = Box::new(Some(block_info)); }, - BlockInfoTarget::Previous => { + BlockItemTarget::Previous => { step.previous_block_info = Box::new(Some(block_info)); }, } From f20cb3b91d45aee63741c21953cab2c46b74f6bd Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 18 Apr 2024 19:19:49 +0300 Subject: [PATCH 039/185] set state - refactor --- .../src/facade/world_tx/scenario_set_state.rs | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index cc5874d0de..30de24fbc2 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -11,30 +11,26 @@ use scenario_set_account::AccountItem; use scenario_set_block::BlockItem; impl ScenarioWorld { + fn empty_builder(&mut self) -> SetStateBuilder<'_, ()> { + SetStateBuilder { + base: Some(SetStateBuilderBase::new(self)), + item: (), + } + } + pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_, AccountItem> where AddressKey: From, { - let base = SetStateBuilderBase::new(self); - let item = base.start_account(address_expr.into()); - SetStateBuilder { - base: Some(base), - item, - } + self.empty_builder().account(address_expr) } pub fn current_block(&mut self) -> SetStateBuilder<'_, BlockItem> { - SetStateBuilder { - base: Some(SetStateBuilderBase::new(self)), - item: BlockItem::new_current(), - } + self.empty_builder().current_block() } pub fn previous_block(&mut self) -> SetStateBuilder<'_, BlockItem> { - SetStateBuilder { - base: Some(SetStateBuilderBase::new(self)), - item: BlockItem::new_current(), - } + self.empty_builder().previous_block() } } @@ -103,6 +99,24 @@ where } } + pub fn current_block(&mut self) -> SetStateBuilder<'w, BlockItem> { + let mut base = core::mem::take(&mut self.base).unwrap(); + self.item.commit_to_step(&mut base.set_state_step); + SetStateBuilder { + base: Some(base), + item: BlockItem::new_current(), + } + } + + pub fn previous_block(&mut self) -> SetStateBuilder<'w, BlockItem> { + let mut base = core::mem::take(&mut self.base).unwrap(); + self.item.commit_to_step(&mut base.set_state_step); + SetStateBuilder { + base: Some(base), + item: BlockItem::new_prev(), + } + } + /// Forces value drop and commit accounts. pub fn commit(self) {} } From 618854a2a5b36d88bccb1b1195a5bed9b5bc5897 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 18 Apr 2024 19:34:42 +0300 Subject: [PATCH 040/185] set state - new address --- .../adder/tests/adder_blackbox_test.rs | 2 +- .../tests/crowdfunding_esdt_blackbox_test.rs | 4 +- .../src/facade/world_tx/scenario_set_state.rs | 44 ++++++++++++++++++- .../scenario_set_new_address.rs | 14 ++++++ .../src/scenario/model/new_address.rs | 2 +- 5 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_new_address.rs diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index 4b0f740343..9c6dc26dd5 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -24,7 +24,7 @@ fn adder_blackbox() { world.account(OWNER).nonce(1); - world.set_state_step(SetStateStep::new().new_address(OWNER, 1, SC_ADDER)); + world.new_address(OWNER, 1, SC_ADDER); let new_address = world .tx() diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index c3a1e383f3..fae306ed35 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -42,11 +42,11 @@ impl CrowdfundingESDTTestState { .nonce(1) .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); - world.set_state_step(SetStateStep::new().new_address( + world.new_address( owner_address, 1, SC_CROWDFUNDING_ESDT_EXPR.eval_to_expr().as_str(), - )); + ); Self { world } } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 30de24fbc2..11fd25a3f6 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -1,14 +1,16 @@ mod scenario_set_account; mod scenario_set_block; +mod scenario_set_new_address; use crate::{ scenario::ScenarioRunner, - scenario_model::{AddressKey, SetStateStep}, + scenario_model::{AddressKey, AddressValue, NewAddress, SetStateStep, U64Value}, ScenarioWorld, }; use scenario_set_account::AccountItem; use scenario_set_block::BlockItem; +use scenario_set_new_address::NewAddressItem; impl ScenarioWorld { fn empty_builder(&mut self) -> SetStateBuilder<'_, ()> { @@ -25,6 +27,21 @@ impl ScenarioWorld { self.empty_builder().account(address_expr) } + pub fn new_address( + &mut self, + creator_address_expr: CA, + creator_nonce_expr: CN, + new_address_expr: NA, + ) -> SetStateBuilder<'_, NewAddressItem> + where + AddressValue: From, + U64Value: From, + AddressValue: From, + { + self.empty_builder() + .new_address(creator_address_expr, creator_nonce_expr, new_address_expr) + } + pub fn current_block(&mut self) -> SetStateBuilder<'_, BlockItem> { self.empty_builder().current_block() } @@ -99,6 +116,31 @@ where } } + pub fn new_address( + mut self, + creator_address_expr: CA, + creator_nonce_expr: CN, + new_address_expr: NA, + ) -> SetStateBuilder<'w, NewAddressItem> + where + AddressValue: From, + U64Value: From, + AddressValue: From, + { + let mut base = core::mem::take(&mut self.base).unwrap(); + self.item.commit_to_step(&mut base.set_state_step); + SetStateBuilder { + base: Some(base), + item: NewAddressItem { + new_address: NewAddress { + creator_address: AddressValue::from(creator_address_expr), + creator_nonce: U64Value::from(creator_nonce_expr), + new_address: AddressValue::from(new_address_expr), + }, + }, + } + } + pub fn current_block(&mut self) -> SetStateBuilder<'w, BlockItem> { let mut base = core::mem::take(&mut self.base).unwrap(); self.item.commit_to_step(&mut base.set_state_step); diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_new_address.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_new_address.rs new file mode 100644 index 0000000000..35a8ae392b --- /dev/null +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_new_address.rs @@ -0,0 +1,14 @@ +use crate::scenario_model::{NewAddress, SetStateStep}; + +use super::SetStateBuilderItem; + +pub struct NewAddressItem { + pub(super) new_address: NewAddress, +} + +impl SetStateBuilderItem for NewAddressItem { + fn commit_to_step(&mut self, step: &mut SetStateStep) { + step.new_addresses + .push(core::mem::take(&mut self.new_address)); + } +} diff --git a/framework/scenario/src/scenario/model/new_address.rs b/framework/scenario/src/scenario/model/new_address.rs index f4893978d1..3ef0ddba2c 100644 --- a/framework/scenario/src/scenario/model/new_address.rs +++ b/framework/scenario/src/scenario/model/new_address.rs @@ -5,7 +5,7 @@ use crate::scenario_format::{ use super::{AddressValue, U64Value}; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Default)] pub struct NewAddress { pub creator_address: AddressValue, pub creator_nonce: U64Value, From 108d73de15ca8e6b79126c5334884b1a0789aecf Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 18 Apr 2024 19:39:41 +0300 Subject: [PATCH 041/185] set state - cleanup --- .../scenario/src/facade/world_tx/scenario_set_state.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 11fd25a3f6..9376050f58 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -59,17 +59,17 @@ impl SetStateBuilderItem for () { fn commit_to_step(&mut self, _step: &mut SetStateStep) {} } -pub(crate) struct SetStateBuilderBase<'w> { - pub(crate) world: &'w mut ScenarioWorld, - pub(crate) set_state_step: SetStateStep, +struct SetStateBuilderBase<'w> { + world: &'w mut ScenarioWorld, + set_state_step: SetStateStep, } pub struct SetStateBuilder<'w, Current> where Current: SetStateBuilderItem, { - pub(crate) base: Option>, - pub(crate) item: Current, + base: Option>, + item: Current, } impl<'w> SetStateBuilderBase<'w> { From cc6febd2570a2d7bbdb75604abca0fa6b4c9e799 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Thu, 18 Apr 2024 23:07:40 +0300 Subject: [PATCH 042/185] unified syntax - migrate multisig blackbox tests --- contracts/examples/adder/sc-config.toml | 3 + .../tests/crowdfunding_esdt_blackbox_test.rs | 20 +- .../examples/multisig/src/adder_proxy.rs | 110 ++++ .../multisig/tests/multisig_blackbox_test.rs | 578 ++++++++++-------- 4 files changed, 441 insertions(+), 270 deletions(-) create mode 100644 contracts/examples/multisig/src/adder_proxy.rs diff --git a/contracts/examples/adder/sc-config.toml b/contracts/examples/adder/sc-config.toml index b56f82b429..091de3f7f6 100644 --- a/contracts/examples/adder/sc-config.toml +++ b/contracts/examples/adder/sc-config.toml @@ -2,3 +2,6 @@ [[proxy]] path = "src/adder_proxy.rs" + +[[proxy]] +path = "../multisig/src/adder_proxy.rs" diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index c3a1e383f3..d7b8d616a0 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -1,7 +1,6 @@ use crowdfunding_esdt::crowdfunding_esdt_proxy; use multiversx_sc_scenario::imports::*; -use num_bigint::BigUint; const CF_DEADLINE: u64 = 7 * 24 * 60 * 60; // 1 week in seconds const CF_TOKEN_ID: &[u8] = b"CROWD-123456"; @@ -29,10 +28,9 @@ struct CrowdfundingESDTTestState { impl CrowdfundingESDTTestState { fn new() -> Self { let mut world = world(); - let owner_address: &str = "address:owner"; world - .account(owner_address) + .account(OWNER_ADDRESS) .nonce(1) .account(FIRST_USER_ADDRESS) .nonce(1) @@ -43,7 +41,7 @@ impl CrowdfundingESDTTestState { .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); world.set_state_step(SetStateStep::new().new_address( - owner_address, + OWNER_ADDRESS.eval_to_expr().as_str(), 1, SC_CROWDFUNDING_ESDT_EXPR.eval_to_expr().as_str(), )); @@ -81,29 +79,23 @@ impl CrowdfundingESDTTestState { } fn check_deposit(&mut self, donor: AddressExpr, amount: u64) { - let value = self - .world + self.world .query() .to(SC_CROWDFUNDING_ESDT_EXPR) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .deposit(donor.eval_to_array()) - .returns(ReturnsResultConv::::new()) + .returns(ExpectValue(amount)) .run(); - - assert_eq!(value, amount.into()); } fn check_status(&mut self, expected_value: crowdfunding_esdt_proxy::Status) { - let status = self - .world + self.world .query() .to(SC_CROWDFUNDING_ESDT_EXPR) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .status() - .returns(ReturnsResult) + .returns(ExpectValue(expected_value)) .run(); - - assert_eq!(status, expected_value); } fn claim(&mut self, address: AddressExpr) { diff --git a/contracts/examples/multisig/src/adder_proxy.rs b/contracts/examples/multisig/src/adder_proxy.rs new file mode 100644 index 0000000000..0b1b663669 --- /dev/null +++ b/contracts/examples/multisig/src/adder_proxy.rs @@ -0,0 +1,110 @@ +// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +#![allow(dead_code)] +#![allow(clippy::all)] + +use multiversx_sc::proxy_imports::*; + +pub struct AdderProxy; + +impl TxProxyTrait for AdderProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = AdderProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + AdderProxyMethods { wrapped_tx: tx } + } +} + +pub struct AdderProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl AdderProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init< + Arg0: CodecInto>, + >( + self, + initial_value: Arg0, + ) -> TxProxyDeploy { + self.wrapped_tx + .raw_deploy() + .argument(&initial_value) + .original_result() + } +} + +#[rustfmt::skip] +impl AdderProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn upgrade< + Arg0: CodecInto>, + >( + self, + initial_value: Arg0, + ) -> TxProxyUpgrade { + self.wrapped_tx + .raw_upgrade() + .argument(&initial_value) + .original_result() + } +} + +#[rustfmt::skip] +impl AdderProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn sum( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getSum") + .original_result() + } + + /// Add desired amount to the storage variable. + pub fn add< + Arg0: CodecInto>, + >( + self, + value: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("add") + .argument(&value) + .original_result() + } +} diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 691c2750db..1529746ec6 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -1,21 +1,23 @@ use multiversx_sc::codec::top_encode_to_vec_u8_or_panic; use multiversx_sc_scenario::imports::*; -use adder::ProxyTrait as _; -use multisig::{ - multisig_perform::ProxyTrait as _, multisig_propose::ProxyTrait as _, user_role::UserRole, - ProxyTrait as _, -}; +use adder::{adder_proxy, ProxyTrait as _}; +use multisig::{multisig_perform::ProxyTrait as _, multisig_proxy}; use num_bigint::BigUint; const ADDER_ADDRESS_EXPR: &str = "sc:adder"; -const ADDER_OWNER_ADDRESS_EXPR: &str = "address:adder-owner"; +const SC_ADDER_EXPR: ScExpr = ScExpr("adder"); +const ADDER_OWNER_ADDRESS_EXPR: AddressExpr = AddressExpr("adder-owner"); const ADDER_PATH_EXPR: &str = "mxsc:test-contracts/adder.mxsc.json"; +const ADDER_CODE_EXPR: MxscExpr = MxscExpr("test-contracts/adder.mxsc.json"); const BOARD_MEMBER_ADDRESS_EXPR: &str = "address:board-member"; +const BOARD_MEMBER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("board-member"); const MULTISIG_ADDRESS_EXPR: &str = "sc:multisig"; +const SC_MULTISIG_EXPR: ScExpr = ScExpr("multisig"); const MULTISIG_PATH_EXPR: &str = "mxsc:output/multisig.mxsc.json"; -const OWNER_ADDRESS_EXPR: &str = "address:owner"; -const PROPOSER_ADDRESS_EXPR: &str = "address:proposer"; +const MULTISIG_CODE_EXPR: MxscExpr = MxscExpr("output/multisig.mxsc.json"); +const OWNER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("owner"); +const PROPOSER_ADDRESS_EXPR: AddressExpr = AddressExpr("proposer"); const PROPOSER_BALANCE_EXPR: &str = "100,000,000"; const QUORUM_SIZE: usize = 1; @@ -33,8 +35,6 @@ fn world() -> ScenarioWorld { struct MultisigTestState { world: ScenarioWorld, - proposer_address: Address, - board_member_address: Address, multisig_contract: MultisigContract, adder_contract: AdderContract, adder_address: Address, @@ -43,29 +43,36 @@ struct MultisigTestState { impl MultisigTestState { fn new() -> Self { let mut world = world(); - world.set_state_step( - SetStateStep::new() - .put_account(OWNER_ADDRESS_EXPR, Account::new().nonce(1)) - .new_address(OWNER_ADDRESS_EXPR, 1, MULTISIG_ADDRESS_EXPR) - .put_account( - PROPOSER_ADDRESS_EXPR, - Account::new().nonce(1).balance(PROPOSER_BALANCE_EXPR), - ) - .put_account(BOARD_MEMBER_ADDRESS_EXPR, Account::new().nonce(1)) - .put_account(ADDER_OWNER_ADDRESS_EXPR, Account::new().nonce(1)) - .new_address(ADDER_OWNER_ADDRESS_EXPR, 1, ADDER_ADDRESS_EXPR), - ); - - let proposer_address = AddressValue::from(PROPOSER_ADDRESS_EXPR).to_address(); - let board_member_address = AddressValue::from(BOARD_MEMBER_ADDRESS_EXPR).to_address(); - let multisig_contract = MultisigContract::new(MULTISIG_ADDRESS_EXPR); - let adder_contract = AdderContract::new(ADDER_ADDRESS_EXPR); - let adder_address = AddressValue::from(ADDER_ADDRESS_EXPR).to_address(); + + world + .account(OWNER_ADDRESS_EXPR_REPL) + .nonce(1) + .account(PROPOSER_ADDRESS_EXPR) + .nonce(1) + .balance(PROPOSER_BALANCE_EXPR) + .account(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .nonce(1) + .account(ADDER_OWNER_ADDRESS_EXPR) + .nonce(1); + + world.set_state_step(SetStateStep::new().new_address( + OWNER_ADDRESS_EXPR_REPL.eval_to_expr().as_str(), + 1, + SC_MULTISIG_EXPR.eval_to_expr().as_str(), + )); + + world.set_state_step(SetStateStep::new().new_address( + ADDER_OWNER_ADDRESS_EXPR.eval_to_expr().as_str(), + 1, + SC_ADDER_EXPR.eval_to_expr().as_str(), + )); + + let multisig_contract = MultisigContract::new(SC_MULTISIG_EXPR.eval_to_expr().as_str()); + let adder_contract = AdderContract::new(SC_ADDER_EXPR.eval_to_expr().as_str()); + let adder_address = AddressValue::from(SC_ADDER_EXPR.eval_to_expr().as_str()).to_address(); Self { world, - proposer_address, - board_member_address, multisig_contract, adder_contract, adder_address, @@ -73,70 +80,76 @@ impl MultisigTestState { } fn deploy_multisig_contract(&mut self) -> &mut Self { - let multisig_code = self.world.code_expression(MULTISIG_PATH_EXPR); - let board_members = MultiValueVec::from(vec![self.board_member_address.clone()]); - - self.world.sc_deploy( - ScDeployStep::new() - .from(OWNER_ADDRESS_EXPR) - .code(multisig_code) - .call(self.multisig_contract.init(QUORUM_SIZE, board_members)), - ); - - let action_id: usize = self.world.sc_call_get_result( - ScCallStep::new().from(BOARD_MEMBER_ADDRESS_EXPR).call( - self.multisig_contract - .propose_add_proposer(self.proposer_address.clone()), - ), - ); + let board_members = + MultiValueVec::from(vec![BOARD_MEMBER_ADDRESS_EXPR_REPL.eval_to_array()]); + + self.world + .tx() + .from(OWNER_ADDRESS_EXPR_REPL) + .typed(multisig_proxy::MultisigProxy) + .init(QUORUM_SIZE, board_members) + .code(MULTISIG_CODE_EXPR) + .run(); + + let action_id: usize = self + .world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_add_proposer(PROPOSER_ADDRESS_EXPR.eval_to_array()) + .returns(ReturnsResult) + .run(); + self.sign(action_id); self.perform(action_id); - self.expect_user_role(&self.proposer_address.clone(), UserRole::Proposer); + self.expect_user_role(PROPOSER_ADDRESS_EXPR, multisig_proxy::UserRole::Proposer); self } - fn deploy_adder_contract(&mut self) -> &mut Self { - let adder_code = self.world.code_expression(ADDER_PATH_EXPR); - - self.world.sc_deploy( - ScDeployStep::new() - .from(ADDER_OWNER_ADDRESS_EXPR) - .code(adder_code) - .call(self.adder_contract.init(5u64)), - ); - - self + fn deploy_adder_contract(&mut self) { + self.world + .tx() + .from(ADDER_OWNER_ADDRESS_EXPR) + .typed(adder_proxy::AdderProxy) + .init(5u64) + .code(ADDER_CODE_EXPR) + .run(); } - fn propose_add_board_member(&mut self, board_member_address: Address) -> usize { + fn propose_add_board_member(&mut self, board_member_address: AddressExpr) -> usize { self.world .tx() - .from(AddressExpr("proposer")) - .call( - self.multisig_contract - .propose_add_board_member(board_member_address), - ) + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_add_board_member(board_member_address.eval_to_array()) .returns(ReturnsResult) .run() } - fn propose_add_proposer(&mut self, proposer_address: Address) -> usize { - self.world.sc_call_get_result( - ScCallStep::new().from(PROPOSER_ADDRESS_EXPR).call( - self.multisig_contract - .propose_add_proposer(proposer_address), - ), - ) + fn propose_add_proposer(&mut self, proposer_address: AddressExpr) -> usize { + self.world + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_add_proposer(proposer_address.eval_to_array()) + .returns(ReturnsResult) + .run() } fn propose_change_quorum(&mut self, new_quorum: usize) -> usize { - self.world.sc_call_get_result( - ScCallStep::new() - .from(PROPOSER_ADDRESS_EXPR) - .call(self.multisig_contract.propose_change_quorum(new_quorum)), - ) + self.world + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_change_quorum(new_quorum) + .returns(ReturnsResult) + .run() } fn propose_transfer_execute( @@ -145,12 +158,14 @@ impl MultisigTestState { egld_amount: u64, contract_call: FunctionCall, ) -> usize { - self.world.sc_call_get_result( - ScCallStep::new().from(PROPOSER_ADDRESS_EXPR).call( - self.multisig_contract - .propose_transfer_execute(to, egld_amount, contract_call), - ), - ) + self.world + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_transfer_execute(to, egld_amount, contract_call) + .returns(ReturnsResult) + .run() } fn propose_async_call( @@ -159,20 +174,25 @@ impl MultisigTestState { egld_amount: u64, contract_call: FunctionCall, ) -> usize { - self.world.sc_call_get_result( - ScCallStep::new().from(PROPOSER_ADDRESS_EXPR).call( - self.multisig_contract - .propose_async_call(to, egld_amount, contract_call), - ), - ) + self.world + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_async_call(to, egld_amount, contract_call) + .returns(ReturnsResult) + .run() } - fn propose_remove_user(&mut self, user_address: Address) -> usize { - self.world.sc_call_get_result( - ScCallStep::new() - .from(PROPOSER_ADDRESS_EXPR) - .call(self.multisig_contract.propose_remove_user(user_address)), - ) + fn propose_remove_user(&mut self, user_address: AddressExpr) -> usize { + self.world + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_remove_user(user_address.eval_to_array()) + .returns(ReturnsResult) + .run() } fn propose_sc_deploy_from_source( @@ -183,14 +203,13 @@ impl MultisigTestState { arguments: MultiValueVec>, ) -> usize { self.world - .sc_call_get_result(ScCallStep::new().from(PROPOSER_ADDRESS_EXPR).call( - self.multisig_contract.propose_sc_deploy_from_source( - amount, - source, - code_metadata, - arguments, - ), - )) + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_sc_deploy_from_source(amount, source, code_metadata, arguments) + .returns(ReturnsResult) + .run() } fn propose_sc_upgrade_from_source( @@ -202,48 +221,58 @@ impl MultisigTestState { arguments: MultiValueVec>, ) -> usize { self.world - .sc_call_get_result(ScCallStep::new().from(PROPOSER_ADDRESS_EXPR).call( - self.multisig_contract.propose_sc_upgrade_from_source( - sc_address, - amount, - source, - code_metadata, - arguments, - ), - )) + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_sc_upgrade_from_source(sc_address, amount, source, code_metadata, arguments) + .returns(ReturnsResult) + .run() } fn perform(&mut self, action_id: usize) { - self.world.sc_call( - ScCallStep::new() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .call(self.multisig_contract.perform_action_endpoint(action_id)), - ); + self.world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .perform_action_endpoint(action_id) + .run(); } fn perform_and_expect_err(&mut self, action_id: usize, err_message: &str) { - self.world.sc_call( - ScCallStep::new() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .call(self.multisig_contract.perform_action_endpoint(action_id)) - .expect(TxExpect::user_error("str:".to_string() + err_message)), - ); + self.world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .perform_action_endpoint(action_id) + .with_result(ExpectError(4, err_message)) + .run(); } fn sign(&mut self, action_id: usize) { - self.world.sc_call( - ScCallStep::new() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .call(self.multisig_contract.sign(action_id)), - ); + self.world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .sign(action_id) + .run(); } - fn expect_user_role(&mut self, user: &Address, expected_user_role: UserRole) { - self.world.sc_query( - ScQueryStep::new() - .call(self.multisig_contract.user_role(user.clone())) - .expect_value(expected_user_role), - ); + fn expect_user_role( + &mut self, + user: AddressExpr, + expected_user_role: multisig_proxy::UserRole, + ) { + self.world + .query() + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .user_role(user.eval_to_array()) + .returns(ExpectValue(expected_user_role)) + .run(); } } @@ -252,28 +281,30 @@ fn test_add_board_member() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - const NEW_BOARD_MEMBER_ADDRESS_EXPR: &str = "address:new-board-member"; - let new_board_member_address = AddressValue::from(NEW_BOARD_MEMBER_ADDRESS_EXPR).to_address(); + let new_board_member_expr: AddressExpr = AddressExpr("new-board-member"); - state.world.set_state_step( - SetStateStep::new().put_account(NEW_BOARD_MEMBER_ADDRESS_EXPR, Account::new().nonce(1)), - ); + state.world.account(new_board_member_expr).nonce(1); - state.expect_user_role(&new_board_member_address, UserRole::None); + state.expect_user_role(new_board_member_expr, multisig_proxy::UserRole::None); - let action_id = state.propose_add_board_member(new_board_member_address.clone()); + let action_id = state.propose_add_board_member(new_board_member_expr); state.sign(action_id); state.perform(action_id); - state.expect_user_role(&new_board_member_address, UserRole::BoardMember); - state.world.sc_query( - ScQueryStep::new() - .call(state.multisig_contract.get_all_board_members()) - .expect_value(MultiValueVec::
::from(vec![ - state.board_member_address.clone(), - new_board_member_address.clone(), - ])), - ); + let expected_value = MultiValueVec::from(vec![ + BOARD_MEMBER_ADDRESS_EXPR_REPL.eval_to_array(), + new_board_member_expr.eval_to_array(), + ]); + + state.expect_user_role(new_board_member_expr, multisig_proxy::UserRole::BoardMember); + state + .world + .query() + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .get_all_board_members() + .returns(ExpectValue(expected_value)) + .run() } #[test] @@ -281,28 +312,33 @@ fn test_add_proposer() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - const NEW_PROPOSER_ADDRESS_EXPR: &str = "address:new-proposer"; - let new_proposer_address = AddressValue::from(NEW_PROPOSER_ADDRESS_EXPR).to_address(); + let new_proposer_address_expr: AddressExpr = AddressExpr("new-proposer"); - state.world.set_state_step( - SetStateStep::new().put_account(NEW_PROPOSER_ADDRESS_EXPR, Account::new().nonce(1)), - ); + state.world.account(new_proposer_address_expr).nonce(1); - state.expect_user_role(&new_proposer_address, UserRole::None); + state.expect_user_role(new_proposer_address_expr, multisig_proxy::UserRole::None); - let action_id = state.propose_add_proposer(new_proposer_address.clone()); + let action_id = state.propose_add_proposer(new_proposer_address_expr); state.sign(action_id); state.perform(action_id); - state.expect_user_role(&new_proposer_address, UserRole::Proposer); - state.world.sc_query( - ScQueryStep::new() - .call(state.multisig_contract.get_all_proposers()) - .expect_value(MultiValueVec::
::from(vec![ - state.proposer_address.clone(), - new_proposer_address.clone(), - ])), + state.expect_user_role( + new_proposer_address_expr, + multisig_proxy::UserRole::Proposer, ); + + let expected_value = MultiValueVec::from(vec![ + PROPOSER_ADDRESS_EXPR.eval_to_array(), + new_proposer_address_expr.eval_to_array(), + ]); + state + .world + .query() + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .get_all_proposers() + .returns(ExpectValue(expected_value)) + .run(); } #[test] @@ -310,18 +346,21 @@ fn test_remove_proposer() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - state.expect_user_role(&state.proposer_address.clone(), UserRole::Proposer); + state.expect_user_role(PROPOSER_ADDRESS_EXPR, multisig_proxy::UserRole::Proposer); - let action_id = state.propose_remove_user(state.proposer_address.clone()); + let action_id = state.propose_remove_user(PROPOSER_ADDRESS_EXPR); state.sign(action_id); state.perform(action_id); - state.expect_user_role(&state.proposer_address.clone(), UserRole::None); - state.world.sc_query( - ScQueryStep::new() - .call(state.multisig_contract.get_all_proposers()) - .expect_value(MultiValueVec::
::new()), - ); + state.expect_user_role(PROPOSER_ADDRESS_EXPR, multisig_proxy::UserRole::None); + state + .world + .query() + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .get_all_proposers() + .returns(ExpectValue(MultiValueVec::
::new())) + .run(); } #[test] @@ -329,7 +368,7 @@ fn test_try_remove_all_board_members() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let action_id = state.propose_remove_user(state.board_member_address.clone()); + let action_id = state.propose_remove_user(BOARD_MEMBER_ADDRESS_EXPR_REPL); state.sign(action_id); state.perform_and_expect_err(action_id, "quorum cannot exceed board size") } @@ -346,45 +385,55 @@ fn test_change_quorum() { state.perform_and_expect_err(action_id, "quorum cannot exceed board size"); // try discard before unsigning - state.world.sc_call( - ScCallStep::new() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .call(state.multisig_contract.discard_action(action_id)) - .expect(TxExpect::user_error( - "str:cannot discard action with valid signatures", - )), - ); + state + .world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .discard_action(action_id) + .with_result(ExpectError( + 4, + "cannot discard action with valid signatures", + )) + .run(); // unsign and discard action - state.world.sc_call( - ScCallStep::new() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .call(state.multisig_contract.unsign(action_id)), - ); + state + .world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .unsign(action_id) + .run(); - state.world.sc_call( - ScCallStep::new() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .call(state.multisig_contract.discard_action(action_id)), - ); + state + .world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .discard_action(action_id) + .run(); // try sign discarded action - state.world.sc_call( - ScCallStep::new() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .call(state.multisig_contract.sign(action_id)) - .expect(TxExpect::user_error("str:action does not exist")), - ); + state + .world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .sign(action_id) + .with_result(ExpectError(4, "action does not exist")) + .run(); // add another board member - const NEW_BOARD_MEMBER_ADDRESS_EXPR: &str = "address:new-board-member"; - let new_board_member_address = AddressValue::from(NEW_BOARD_MEMBER_ADDRESS_EXPR).to_address(); + let new_board_member_address_expr: AddressExpr = AddressExpr("new-board-member"); - state.world.set_state_step( - SetStateStep::new().put_account(NEW_BOARD_MEMBER_ADDRESS_EXPR, Account::new().nonce(1)), - ); + state.world.account(new_board_member_address_expr).nonce(1); - let action_id = state.propose_add_board_member(new_board_member_address); + let action_id = state.propose_add_board_member(new_board_member_address_expr); state.sign(action_id); state.perform(action_id); @@ -399,57 +448,62 @@ fn test_transfer_execute_to_user() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - const NEW_USER_ADDRESS_EXPR: &str = "address:new-user"; - state.world.set_state_step( - SetStateStep::new().put_account(NEW_USER_ADDRESS_EXPR, Account::new().nonce(1)), - ); + let new_user_address_expr: AddressExpr = AddressExpr("new-user"); + state.world.account(new_user_address_expr).nonce(1); - const AMOUNT: &str = "100"; + let amount: u64 = 100; - state.world.sc_call( - ScCallStep::new() - .from(PROPOSER_ADDRESS_EXPR) - .egld_value(AMOUNT) - .call(state.multisig_contract.deposit()), - ); + state + .world + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .deposit() + .egld(amount) + .run(); - state.world.check_state_step( - CheckStateStep::new() - .put_account(MULTISIG_ADDRESS_EXPR, CheckAccount::new().balance(AMOUNT)), - ); + state + .world + .check_account(SC_MULTISIG_EXPR) + .balance(amount.to_string().as_str()); // failed attempt - let new_user_address = AddressValue::from(NEW_USER_ADDRESS_EXPR).to_address(); - - state.world.sc_call( - ScCallStep::new() - .from(PROPOSER_ADDRESS_EXPR) - .call(state.multisig_contract.propose_transfer_execute( - new_user_address.clone(), - 0u64, - FunctionCall::empty(), - )) - .expect(TxExpect::user_error("str:proposed action has no effect")), - ); + state + .world + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_transfer_execute( + new_user_address_expr.eval_to_array(), + 0u64, + FunctionCall::empty(), + ) + .with_result(ExpectError(4, "proposed action has no effect")) + .run(); // propose - let action_id = - state - .world - .sc_call_get_result(ScCallStep::new().from(PROPOSER_ADDRESS_EXPR).call( - state.multisig_contract.propose_transfer_execute( - new_user_address, - AMOUNT.parse::().unwrap(), - FunctionCall::empty(), - ), - )); + let action_id = state + .world + .tx() + .from(PROPOSER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .propose_transfer_execute( + new_user_address_expr.eval_to_array(), + amount, + FunctionCall::empty(), + ) + .returns(ReturnsResult) + .run(); state.sign(action_id); state.perform(action_id); - state.world.check_state_step( - CheckStateStep::new() - .put_account(NEW_USER_ADDRESS_EXPR, CheckAccount::new().balance(AMOUNT)), - ); + state + .world + .check_account(new_user_address_expr) + .balance(amount.to_string().as_str()); } #[test] @@ -457,17 +511,26 @@ fn test_transfer_execute_sc_all() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract().deploy_adder_contract(); - let adder_call = state.adder_contract.add(5u64).into_function_call(); + let adder_call = state + .world + .tx() + .typed(adder_proxy::AdderProxy) + .add(5u64) + .into_function_call(); + let adder_address = AddressValue::from(SC_ADDER_EXPR.eval_to_expr().as_str()).to_address(); - let action_id = state.propose_transfer_execute(state.adder_address.clone(), 0u64, adder_call); + let action_id = state.propose_transfer_execute(adder_address, 0u64, adder_call); state.sign(action_id); state.perform(action_id); - state.world.sc_query( - ScQueryStep::new() - .call(state.adder_contract.sum()) - .expect_value(SingleValue::from(BigUint::from(10u64))), - ); + state + .world + .query() + .to(SC_ADDER_EXPR) + .typed(adder_proxy::AdderProxy) + .sum() + .with_result(ExpectValue(BigUint::from(10u64))) + .run(); } #[test] @@ -481,11 +544,14 @@ fn test_async_call_to_sc() { state.sign(action_id); state.perform(action_id); - state.world.sc_query( - ScQueryStep::new() - .call(state.adder_contract.sum()) - .expect_value(SingleValue::from(BigUint::from(10u64))), - ); + state + .world + .query() + .to(SC_ADDER_EXPR) + .typed(adder_proxy::AdderProxy) + .sum() + .returns(ExpectValue(10u64)) + .run(); } #[test] From 8eb704cc9e811b22d48e3621e6f3e463627a2bea Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Fri, 19 Apr 2024 13:22:17 +0300 Subject: [PATCH 043/185] unified syntax - migrate all tests --- .../tests/crowdfunding_esdt_blackbox_test.rs | 12 +- .../multisig/tests/multisig_blackbox_test.rs | 196 +++++++++--------- .../scenario/src/facade/expr/mxsc_expr.rs | 20 ++ 3 files changed, 128 insertions(+), 100 deletions(-) diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index d7b8d616a0..e47e5ea385 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -12,12 +12,12 @@ const CODE_EXPR: MxscExpr = MxscExpr("output/crowdfunding-esdt.mxsc.json"); const SC_CROWDFUNDING_ESDT_EXPR: ScExpr = ScExpr("crowdfunding-esdt"); fn world() -> ScenarioWorld { - let contract_path: &str = "mxsc:output/crowdfunding-esdt.mxsc.json"; - let mut blockchain = ScenarioWorld::new(); - blockchain.set_current_dir_from_workspace("contracts/examples/crowdfunding-esdt"); - blockchain.register_contract(contract_path, crowdfunding_esdt::ContractBuilder); + blockchain.register_contract( + CODE_EXPR.eval_to_expr().as_str(), + crowdfunding_esdt::ContractBuilder, + ); blockchain } @@ -41,9 +41,9 @@ impl CrowdfundingESDTTestState { .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); world.set_state_step(SetStateStep::new().new_address( - OWNER_ADDRESS.eval_to_expr().as_str(), + OWNER_ADDRESS, 1, - SC_CROWDFUNDING_ESDT_EXPR.eval_to_expr().as_str(), + SC_CROWDFUNDING_ESDT_EXPR, )); Self { world } diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 1529746ec6..22a4219fd4 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -1,43 +1,38 @@ use multiversx_sc::codec::top_encode_to_vec_u8_or_panic; use multiversx_sc_scenario::imports::*; -use adder::{adder_proxy, ProxyTrait as _}; -use multisig::{multisig_perform::ProxyTrait as _, multisig_proxy}; +use adder::adder_proxy; +use multisig::multisig_proxy; use num_bigint::BigUint; -const ADDER_ADDRESS_EXPR: &str = "sc:adder"; const SC_ADDER_EXPR: ScExpr = ScExpr("adder"); const ADDER_OWNER_ADDRESS_EXPR: AddressExpr = AddressExpr("adder-owner"); -const ADDER_PATH_EXPR: &str = "mxsc:test-contracts/adder.mxsc.json"; const ADDER_CODE_EXPR: MxscExpr = MxscExpr("test-contracts/adder.mxsc.json"); -const BOARD_MEMBER_ADDRESS_EXPR: &str = "address:board-member"; -const BOARD_MEMBER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("board-member"); -const MULTISIG_ADDRESS_EXPR: &str = "sc:multisig"; +const BOARD_MEMBER_ADDRESS_EXPR: AddressExpr = AddressExpr("board-member"); const SC_MULTISIG_EXPR: ScExpr = ScExpr("multisig"); -const MULTISIG_PATH_EXPR: &str = "mxsc:output/multisig.mxsc.json"; const MULTISIG_CODE_EXPR: MxscExpr = MxscExpr("output/multisig.mxsc.json"); -const OWNER_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("owner"); +const OWNER_ADDRESS_EXPR: AddressExpr = AddressExpr("owner"); const PROPOSER_ADDRESS_EXPR: AddressExpr = AddressExpr("proposer"); const PROPOSER_BALANCE_EXPR: &str = "100,000,000"; const QUORUM_SIZE: usize = 1; -type MultisigContract = ContractInfo>; -type AdderContract = ContractInfo>; - fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); blockchain.set_current_dir_from_workspace("contracts/examples/multisig"); - blockchain.register_contract(MULTISIG_PATH_EXPR, multisig::ContractBuilder); - blockchain.register_contract(ADDER_PATH_EXPR, adder::ContractBuilder); + blockchain.register_contract( + MULTISIG_CODE_EXPR.eval_to_expr().as_str(), + multisig::ContractBuilder, + ); + blockchain.register_contract( + ADDER_CODE_EXPR.eval_to_expr().as_str(), + adder::ContractBuilder, + ); blockchain } struct MultisigTestState { world: ScenarioWorld, - multisig_contract: MultisigContract, - adder_contract: AdderContract, - adder_address: Address, } impl MultisigTestState { @@ -45,47 +40,37 @@ impl MultisigTestState { let mut world = world(); world - .account(OWNER_ADDRESS_EXPR_REPL) + .account(OWNER_ADDRESS_EXPR) .nonce(1) .account(PROPOSER_ADDRESS_EXPR) .nonce(1) .balance(PROPOSER_BALANCE_EXPR) - .account(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .account(BOARD_MEMBER_ADDRESS_EXPR) .nonce(1) .account(ADDER_OWNER_ADDRESS_EXPR) .nonce(1); world.set_state_step(SetStateStep::new().new_address( - OWNER_ADDRESS_EXPR_REPL.eval_to_expr().as_str(), + OWNER_ADDRESS_EXPR, 1, - SC_MULTISIG_EXPR.eval_to_expr().as_str(), + SC_MULTISIG_EXPR, )); world.set_state_step(SetStateStep::new().new_address( - ADDER_OWNER_ADDRESS_EXPR.eval_to_expr().as_str(), + ADDER_OWNER_ADDRESS_EXPR, 1, - SC_ADDER_EXPR.eval_to_expr().as_str(), + SC_ADDER_EXPR, )); - let multisig_contract = MultisigContract::new(SC_MULTISIG_EXPR.eval_to_expr().as_str()); - let adder_contract = AdderContract::new(SC_ADDER_EXPR.eval_to_expr().as_str()); - let adder_address = AddressValue::from(SC_ADDER_EXPR.eval_to_expr().as_str()).to_address(); - - Self { - world, - multisig_contract, - adder_contract, - adder_address, - } + Self { world } } fn deploy_multisig_contract(&mut self) -> &mut Self { - let board_members = - MultiValueVec::from(vec![BOARD_MEMBER_ADDRESS_EXPR_REPL.eval_to_array()]); + let board_members = MultiValueVec::from(vec![BOARD_MEMBER_ADDRESS_EXPR.eval_to_array()]); self.world .tx() - .from(OWNER_ADDRESS_EXPR_REPL) + .from(OWNER_ADDRESS_EXPR) .typed(multisig_proxy::MultisigProxy) .init(QUORUM_SIZE, board_members) .code(MULTISIG_CODE_EXPR) @@ -94,7 +79,7 @@ impl MultisigTestState { let action_id: usize = self .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .from(BOARD_MEMBER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) .propose_add_proposer(PROPOSER_ADDRESS_EXPR.eval_to_array()) @@ -154,7 +139,7 @@ impl MultisigTestState { fn propose_transfer_execute( &mut self, - to: Address, + to: ScExpr, egld_amount: u64, contract_call: FunctionCall, ) -> usize { @@ -163,14 +148,14 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) - .propose_transfer_execute(to, egld_amount, contract_call) + .propose_transfer_execute(to.eval_to_array(), egld_amount, contract_call) .returns(ReturnsResult) .run() } fn propose_async_call( &mut self, - to: Address, + to: ScExpr, egld_amount: u64, contract_call: FunctionCall, ) -> usize { @@ -179,7 +164,7 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) - .propose_async_call(to, egld_amount, contract_call) + .propose_async_call(to.eval_to_array(), egld_amount, contract_call) .returns(ReturnsResult) .run() } @@ -198,7 +183,7 @@ impl MultisigTestState { fn propose_sc_deploy_from_source( &mut self, amount: u64, - source: Address, + source: ScExpr, code_metadata: CodeMetadata, arguments: MultiValueVec>, ) -> usize { @@ -207,16 +192,16 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) - .propose_sc_deploy_from_source(amount, source, code_metadata, arguments) + .propose_sc_deploy_from_source(amount, source.eval_to_array(), code_metadata, arguments) .returns(ReturnsResult) .run() } fn propose_sc_upgrade_from_source( &mut self, - sc_address: Address, + sc_address: ScExpr, amount: u64, - source: Address, + source: ScExpr, code_metadata: CodeMetadata, arguments: MultiValueVec>, ) -> usize { @@ -225,7 +210,13 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) - .propose_sc_upgrade_from_source(sc_address, amount, source, code_metadata, arguments) + .propose_sc_upgrade_from_source( + sc_address.eval_to_array(), + amount, + source.eval_to_array(), + code_metadata, + arguments, + ) .returns(ReturnsResult) .run() } @@ -233,7 +224,7 @@ impl MultisigTestState { fn perform(&mut self, action_id: usize) { self.world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .from(BOARD_MEMBER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) .perform_action_endpoint(action_id) @@ -243,7 +234,7 @@ impl MultisigTestState { fn perform_and_expect_err(&mut self, action_id: usize, err_message: &str) { self.world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .from(BOARD_MEMBER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) .perform_action_endpoint(action_id) @@ -254,7 +245,7 @@ impl MultisigTestState { fn sign(&mut self, action_id: usize) { self.world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .from(BOARD_MEMBER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) .sign(action_id) @@ -292,7 +283,7 @@ fn test_add_board_member() { state.perform(action_id); let expected_value = MultiValueVec::from(vec![ - BOARD_MEMBER_ADDRESS_EXPR_REPL.eval_to_array(), + BOARD_MEMBER_ADDRESS_EXPR.eval_to_array(), new_board_member_expr.eval_to_array(), ]); @@ -368,7 +359,7 @@ fn test_try_remove_all_board_members() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let action_id = state.propose_remove_user(BOARD_MEMBER_ADDRESS_EXPR_REPL); + let action_id = state.propose_remove_user(BOARD_MEMBER_ADDRESS_EXPR); state.sign(action_id); state.perform_and_expect_err(action_id, "quorum cannot exceed board size") } @@ -388,7 +379,7 @@ fn test_change_quorum() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .from(BOARD_MEMBER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) .discard_action(action_id) @@ -402,7 +393,7 @@ fn test_change_quorum() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .from(BOARD_MEMBER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) .unsign(action_id) @@ -411,7 +402,7 @@ fn test_change_quorum() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .from(BOARD_MEMBER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) .discard_action(action_id) @@ -421,7 +412,7 @@ fn test_change_quorum() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR_REPL) + .from(BOARD_MEMBER_ADDRESS_EXPR) .to(SC_MULTISIG_EXPR) .typed(multisig_proxy::MultisigProxy) .sign(action_id) @@ -517,9 +508,8 @@ fn test_transfer_execute_sc_all() { .typed(adder_proxy::AdderProxy) .add(5u64) .into_function_call(); - let adder_address = AddressValue::from(SC_ADDER_EXPR.eval_to_expr().as_str()).to_address(); - let action_id = state.propose_transfer_execute(adder_address, 0u64, adder_call); + let action_id = state.propose_transfer_execute(SC_ADDER_EXPR, 0u64, adder_call); state.sign(action_id); state.perform(action_id); @@ -538,9 +528,14 @@ fn test_async_call_to_sc() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract().deploy_adder_contract(); - let adder_call = state.adder_contract.add(5u64).into_function_call(); + let adder_call = state + .world + .tx() + .typed(adder_proxy::AdderProxy) + .add(5u64) + .into_function_call(); - let action_id = state.propose_async_call(state.adder_address.clone(), 0u64, adder_call); + let action_id = state.propose_async_call(SC_ADDER_EXPR, 0u64, adder_call); state.sign(action_id); state.perform(action_id); @@ -559,69 +554,82 @@ fn test_deploy_and_upgrade_from_source() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract().deploy_adder_contract(); - const NEW_ADDER_ADDRESS_EXPR: &str = "sc:new-adder"; + let new_adder_address_expr: ScExpr = ScExpr("new-adder"); state.world.set_state_step(SetStateStep::new().new_address( - MULTISIG_ADDRESS_EXPR, + SC_MULTISIG_EXPR, 0, - NEW_ADDER_ADDRESS_EXPR, + new_adder_address_expr, )); - let new_adder_address = AddressValue::from(NEW_ADDER_ADDRESS_EXPR).to_address(); - let action_id = state.propose_sc_deploy_from_source( 0u64, - state.adder_address.clone(), + SC_ADDER_EXPR, CodeMetadata::all(), MultiValueVec::from([top_encode_to_vec_u8_or_panic(&5u64)]), ); state.sign(action_id); - state.world.sc_call( - ScCallStep::new() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .call(state.multisig_contract.perform_action_endpoint(action_id)) - .expect_value(OptionalValue::Some(new_adder_address.clone())), - ); + state + .world + .tx() + .from(BOARD_MEMBER_ADDRESS_EXPR) + .to(SC_MULTISIG_EXPR) + .typed(multisig_proxy::MultisigProxy) + .perform_action_endpoint(action_id) + .returns(ExpectValue(OptionalValue::Some( + new_adder_address_expr.to_address(), + ))) + .run(); - let adder_call = state.adder_contract.add(5u64).into_function_call(); + let adder_call = state + .world + .tx() + .to(SC_ADDER_EXPR) + .typed(adder_proxy::AdderProxy) + .add(5u64) + .into_function_call(); - let action_id = state.propose_transfer_execute(new_adder_address, 0u64, adder_call); + let action_id = state.propose_transfer_execute(new_adder_address_expr, 0u64, adder_call); state.sign(action_id); state.perform(action_id); - let mut new_adder_contract = AdderContract::new(NEW_ADDER_ADDRESS_EXPR); + state + .world + .query() + .to(new_adder_address_expr) + .typed(adder_proxy::AdderProxy) + .sum() + .returns(ExpectValue(BigUint::from(10u64))) + .run(); - state.world.sc_query( - ScQueryStep::new() - .call(new_adder_contract.sum()) - .expect_value(SingleValue::from(BigUint::from(10u64))), - ); + let factorial_address_expr: ScExpr = ScExpr("factorial"); + let factorial_path_expr: MxscExpr = MxscExpr("test-contracts/factorial.mxsc.json"); - const FACTORIAL_ADDRESS_EXPR: &str = "sc:factorial"; - const FACTORIAL_PATH_EXPR: &str = "mxsc:test-contracts/factorial.mxsc.json"; + let factorial_code = state + .world + .code_expression(factorial_path_expr.eval_to_expr().as_str()); - let factorial_code = state.world.code_expression(FACTORIAL_PATH_EXPR); - let factorial_address = AddressValue::from(FACTORIAL_ADDRESS_EXPR).to_address(); + state.world.register_contract( + factorial_path_expr.eval_to_expr().as_str(), + factorial::ContractBuilder, + ); state .world - .register_contract(FACTORIAL_PATH_EXPR, factorial::ContractBuilder); - state.world.set_state_step(SetStateStep::new().put_account( - FACTORIAL_ADDRESS_EXPR, - Account::new().nonce(1).code(factorial_code.clone()), - )); + .account(factorial_address_expr) + .code(factorial_code.clone()); let action_id = state.propose_sc_upgrade_from_source( - state.adder_address.clone(), + SC_ADDER_EXPR, 0u64, - factorial_address, + factorial_address_expr, CodeMetadata::all(), MultiValueVec::new(), ); state.sign(action_id); state.perform(action_id); - state.world.check_state_step( - CheckStateStep::new() - .put_account(ADDER_ADDRESS_EXPR, CheckAccount::new().code(factorial_code)), - ); + state + .world + .check_account(SC_ADDER_EXPR) + .code(factorial_path_expr.eval_to_expr().as_str()); } diff --git a/framework/scenario/src/facade/expr/mxsc_expr.rs b/framework/scenario/src/facade/expr/mxsc_expr.rs index 0946b93327..d130102600 100644 --- a/framework/scenario/src/facade/expr/mxsc_expr.rs +++ b/framework/scenario/src/facade/expr/mxsc_expr.rs @@ -30,3 +30,23 @@ where } impl<'a, Env> TxCodeValue for MxscExpr<'a> where Env: ScenarioTxEnv {} + +impl<'a> MxscExpr<'a> { + pub fn eval_to_expr(&self) -> String { + format!("{MXSC_PREFIX}{}", self.0) + } +} + +#[cfg(test)] +pub mod tests { + use crate::imports::MxscExpr; + + fn assert_eq_eval(expr: &'static str, expected: &str) { + assert_eq!(&MxscExpr(expr).eval_to_expr(), expected); + } + + #[test] + fn test_address_value() { + assert_eq_eval("output/adder.mxsc.json", "mxsc:output/adder.mxsc.json"); + } +} From 73638aa9c3721f6ceff0953ca1b50fd2084b880c Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sun, 21 Apr 2024 17:06:25 +0300 Subject: [PATCH 044/185] unified syntax - sync call same context & readonly --- .../forwarder-raw/src/forwarder_raw_sync.rs | 4 +- .../types/interaction/tx_exec/tx_exec_sync.rs | 66 +++++++++++++++++++ 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_sync.rs b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_sync.rs index a4e98f36a7..799ce0cb83 100644 --- a/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_sync.rs +++ b/contracts/feature-tests/composability/forwarder-raw/src/forwarder_raw_sync.rs @@ -82,7 +82,7 @@ pub trait ForwarderRawSync: super::forwarder_raw_common::ForwarderRawCommon { .raw_call(endpoint_name) .arguments_raw(args.to_arg_buffer()) .returns(ReturnsRawResult) - .sync_call(); + .sync_call_same_context(); self.execute_on_same_context_result(result); } @@ -102,7 +102,7 @@ pub trait ForwarderRawSync: super::forwarder_raw_common::ForwarderRawCommon { .raw_call(endpoint_name) .arguments_raw(args.to_arg_buffer()) .returns(ReturnsRawResult) - .sync_call(); + .sync_call_readonly(); self.execute_on_dest_context_result(result); } diff --git a/framework/base/src/types/interaction/tx_exec/tx_exec_sync.rs b/framework/base/src/types/interaction/tx_exec/tx_exec_sync.rs index 78169a665b..e66e76cf26 100644 --- a/framework/base/src/types/interaction/tx_exec/tx_exec_sync.rs +++ b/framework/base/src/types/interaction/tx_exec/tx_exec_sync.rs @@ -54,6 +54,72 @@ where let tuple_result = result_handler.list_process_result(&sync_raw_result); tuple_result.flatten_unpack() } + + fn execute_sync_call_same_context_raw(self) -> (ManagedVec>, RH) { + let gas_limit = self.gas.gas_value(&self.env); + + let raw_result = self.payment.with_normalized( + &self.env, + &self.from, + self.to, + self.data.into(), + |norm_to, norm_egld, norm_fc| { + SendRawWrapper::::new().execute_on_same_context_raw( + gas_limit, + norm_to, + norm_egld, + &norm_fc.function_name, + &norm_fc.arg_buffer, + ) + }, + ); + + SendRawWrapper::::new().clean_return_data(); + + (raw_result, self.result_handler) + } + + pub fn sync_call_same_context(self) -> ::Unpacked { + let (raw_result, result_handler) = self.execute_sync_call_same_context_raw(); + let sync_raw_result = SyncCallRawResult(raw_result); + let tuple_result = result_handler.list_process_result(&sync_raw_result); + tuple_result.flatten_unpack() + } +} + +impl Tx, (), To, (), Gas, FC, RH> +where + Api: CallTypeApi, + To: TxToSpecified>, + Gas: TxGas>, + FC: TxDataFunctionCall>, + RH: RHListExec, TxScEnv>, + RH::ListReturns: NestedTupleFlatten, +{ + fn execute_sync_call_readonly_raw(self) -> (ManagedVec>, RH) { + let gas_limit = self.gas.gas_value(&self.env); + let function_call = self.data.into(); + + let raw_result = self.to.with_value_ref(&self.env, |to| { + SendRawWrapper::::new().execute_on_dest_context_readonly_raw( + gas_limit, + to, + &function_call.function_name, + &function_call.arg_buffer, + ) + }); + + SendRawWrapper::::new().clean_return_data(); + + (raw_result, self.result_handler) + } + + pub fn sync_call_readonly(self) -> ::Unpacked { + let (raw_result, result_handler) = self.execute_sync_call_readonly_raw(); + let sync_raw_result = SyncCallRawResult(raw_result); + let tuple_result = result_handler.list_process_result(&sync_raw_result); + tuple_result.flatten_unpack() + } } impl From 1114009f96fb759ee634f9642ad7143ac03b6efb Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sun, 21 Apr 2024 20:19:35 +0300 Subject: [PATCH 045/185] cleanup --- .../esdt-contract-pair/first-contract/src/lib.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs index 7ce368781a..2d35ac5ea8 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/src/lib.rs @@ -2,9 +2,9 @@ multiversx_sc::imports!(); -const ESDT_TRANSFER_STRING: &[u8] = b"ESDTTransfer"; -const SECOND_CONTRACT_ACCEPT_ESDT_PAYMENT: &[u8] = b"acceptEsdtPayment"; -const SECOND_CONTRACT_REJECT_ESDT_PAYMENT: &[u8] = b"rejectEsdtPayment"; +const ESDT_TRANSFER_STRING: &str = "ESDTTransfer"; +const SECOND_CONTRACT_ACCEPT_ESDT_PAYMENT: &str = "acceptEsdtPayment"; +const SECOND_CONTRACT_REJECT_ESDT_PAYMENT: &str = "rejectEsdtPayment"; #[multiversx_sc::contract] pub trait FirstContract { @@ -115,7 +115,7 @@ pub trait FirstContract { self.tx() .to(&second_contract_address) .gas(gas_left) - .raw_call(ManagedBuffer::from(SECOND_CONTRACT_ACCEPT_ESDT_PAYMENT)) + .raw_call(SECOND_CONTRACT_ACCEPT_ESDT_PAYMENT) .single_esdt(&expected_token_identifier, 0u64, &esdt_value) .transfer_execute(); } @@ -138,7 +138,7 @@ pub trait FirstContract { self.tx() .to(to) - .raw_call(ManagedBuffer::from(ESDT_TRANSFER_STRING)) + .raw_call(ESDT_TRANSFER_STRING) .arguments_raw(arg_buffer) .async_call_and_exit(); } From 68a6df617e3cbc1ef56e1aa3c6a251fc68d66846 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 22 Apr 2024 13:59:09 +0300 Subject: [PATCH 046/185] cleanup --- contracts/examples/adder/sc-config.toml | 3 - .../examples/multisig/src/adder_proxy.rs | 110 ------------------ 2 files changed, 113 deletions(-) delete mode 100644 contracts/examples/multisig/src/adder_proxy.rs diff --git a/contracts/examples/adder/sc-config.toml b/contracts/examples/adder/sc-config.toml index 091de3f7f6..b56f82b429 100644 --- a/contracts/examples/adder/sc-config.toml +++ b/contracts/examples/adder/sc-config.toml @@ -2,6 +2,3 @@ [[proxy]] path = "src/adder_proxy.rs" - -[[proxy]] -path = "../multisig/src/adder_proxy.rs" diff --git a/contracts/examples/multisig/src/adder_proxy.rs b/contracts/examples/multisig/src/adder_proxy.rs deleted file mode 100644 index 0b1b663669..0000000000 --- a/contracts/examples/multisig/src/adder_proxy.rs +++ /dev/null @@ -1,110 +0,0 @@ -// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. - -//////////////////////////////////////////////////// -////////////////// AUTO-GENERATED ////////////////// -//////////////////////////////////////////////////// - -#![allow(dead_code)] -#![allow(clippy::all)] - -use multiversx_sc::proxy_imports::*; - -pub struct AdderProxy; - -impl TxProxyTrait for AdderProxy -where - Env: TxEnv, - From: TxFrom, - To: TxTo, - Gas: TxGas, -{ - type TxProxyMethods = AdderProxyMethods; - - fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { - AdderProxyMethods { wrapped_tx: tx } - } -} - -pub struct AdderProxyMethods -where - Env: TxEnv, - From: TxFrom, - To: TxTo, - Gas: TxGas, -{ - wrapped_tx: Tx, -} - -#[rustfmt::skip] -impl AdderProxyMethods -where - Env: TxEnv, - Env::Api: VMApi, - From: TxFrom, - Gas: TxGas, -{ - pub fn init< - Arg0: CodecInto>, - >( - self, - initial_value: Arg0, - ) -> TxProxyDeploy { - self.wrapped_tx - .raw_deploy() - .argument(&initial_value) - .original_result() - } -} - -#[rustfmt::skip] -impl AdderProxyMethods -where - Env: TxEnv, - Env::Api: VMApi, - From: TxFrom, - To: TxTo, - Gas: TxGas, -{ - pub fn upgrade< - Arg0: CodecInto>, - >( - self, - initial_value: Arg0, - ) -> TxProxyUpgrade { - self.wrapped_tx - .raw_upgrade() - .argument(&initial_value) - .original_result() - } -} - -#[rustfmt::skip] -impl AdderProxyMethods -where - Env: TxEnv, - Env::Api: VMApi, - From: TxFrom, - To: TxTo, - Gas: TxGas, -{ - pub fn sum( - self, - ) -> TxProxyCall> { - self.wrapped_tx - .raw_call("getSum") - .original_result() - } - - /// Add desired amount to the storage variable. - pub fn add< - Arg0: CodecInto>, - >( - self, - value: Arg0, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("add") - .argument(&value) - .original_result() - } -} From 5f03f836413342ece941d0eaf7c51b3d2ebba9eb Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 22 Apr 2024 14:44:28 +0200 Subject: [PATCH 047/185] optimization for transaction fetching for interactor and small fix for fetching esdt balances --- Cargo.lock | 1 + .../scenario/src/standalone/account_tool.rs | 2 +- framework/snippets/Cargo.toml | 1 + framework/snippets/src/interactor_retrieve.rs | 90 ++++++++----------- sdk/core/src/data/address.rs | 6 ++ sdk/core/src/data/transaction.rs | 14 +-- 6 files changed, 54 insertions(+), 60 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 32adcdf5bf..0b6d17acb1 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -1945,6 +1945,7 @@ dependencies = [ "log", "multiversx-sc-scenario", "multiversx-sdk", + "rand 0.8.5", "tokio", ] diff --git a/framework/scenario/src/standalone/account_tool.rs b/framework/scenario/src/standalone/account_tool.rs index 76ecd693a5..1ea1e2f6b4 100644 --- a/framework/scenario/src/standalone/account_tool.rs +++ b/framework/scenario/src/standalone/account_tool.rs @@ -76,7 +76,7 @@ pub fn set_account( for (_, esdt_balance) in account_esdt.iter() { account_state = account_state.esdt_balance( - esdt_balance.token_identifier.as_str(), + format!("str:{}", esdt_balance.token_identifier).as_str(), esdt_balance.balance.as_str(), ); } diff --git a/framework/snippets/Cargo.toml b/framework/snippets/Cargo.toml index d07d310522..4a2476136f 100644 --- a/framework/snippets/Cargo.toml +++ b/framework/snippets/Cargo.toml @@ -20,6 +20,7 @@ base64 = "0.21.5" log = "0.4.17" env_logger = "0.11" futures = "0.3" +rand = "0.8.5" [dependencies.multiversx-sc-scenario] version = "=0.49.0-alpha.3" diff --git a/framework/snippets/src/interactor_retrieve.rs b/framework/snippets/src/interactor_retrieve.rs index c19392095a..6dfa0c5085 100644 --- a/framework/snippets/src/interactor_retrieve.rs +++ b/framework/snippets/src/interactor_retrieve.rs @@ -1,64 +1,50 @@ use crate::Interactor; use log::info; use multiversx_sdk::data::transaction::TransactionOnNetwork; -use std::time::Duration; +use rand::Rng; +use std::time::{Duration, Instant}; -const TX_GET_RESULTS_NUM_RETRIES: usize = 8; -const EXTRA_WAITING_TIME_MS: Duration = Duration::from_millis(8000); -const WAITING_TIME_MS: Duration = Duration::from_secs(25); -const WAIT: u64 = 1000; +const INITIAL_BACKOFF_DELAY: f32 = 1.4; +const MAX_RETRIES: usize = 8; +const MAX_BACKOFF_DELAY: Duration = Duration::from_secs(6); impl Interactor { /// Retrieves a transaction from the network. pub(crate) async fn retrieve_tx_on_network(&self, tx_hash: String) -> TransactionOnNetwork { - let mut waiting_time_ms = 0; - let mut break_outer = false; - sleep(&mut waiting_time_ms, WAITING_TIME_MS).await; - - let tx = 'outer: loop { - let mut retries = TX_GET_RESULTS_NUM_RETRIES; - let mut wait = WAIT; - loop { - let tx_info_result = self.proxy.get_transaction_info_with_results(&tx_hash).await; - match tx_info_result { - Ok(tx) => { - if break_outer { - break 'outer tx; - } - - // reset waiting time - waiting_time_ms = WAITING_TIME_MS.as_millis() as u64; - - tokio::time::sleep(EXTRA_WAITING_TIME_MS).await; - break_outer = true; - + let mut rng = rand::thread_rng(); + let mut retries = 0; + let mut backoff_delay = Duration::from_secs_f32(INITIAL_BACKOFF_DELAY); + let start_time = Instant::now(); + + loop { + match self.proxy.get_transaction_info_with_results(&tx_hash).await { + Ok(tx) => { + info!("Transaction retrieved successfully: {:#?}", tx); + return tx; + }, + Err(err) => { + retries += 1; + if retries >= MAX_RETRIES { + info!("Transaction failed, max retries exceeded: {}", err); + println!("Transaction failed, max retries exceeded: {}", err); break; - }, - Err(err) => { - assert!( - retries > 0, - "still no answer after {TX_GET_RESULTS_NUM_RETRIES} retries" - ); - - info!( - "tx result fetch error after {} ms: {}", - self.waiting_time_ms, err - ); - retries -= 1; - sleep(&mut waiting_time_ms, Duration::from_millis(wait)).await; - wait *= 2; - }, - } + } + + let backoff_time = backoff_delay + .mul_f32(rng.gen_range(0.8..1.2)) + .min(MAX_BACKOFF_DELAY); + tokio::time::sleep(backoff_time).await; + backoff_delay *= 2; // exponential backoff + }, } - }; - - info!("tx with results: {:#?}", tx); - tx + } + + // retries have been exhausted + let elapsed_time = start_time.elapsed(); + println!( + "Fetching transaction failed and retries exhausted, returning default transaction. Total elapsed time: {:?}", + elapsed_time + ); + TransactionOnNetwork::default() } } - -/// Sleeps for the given duration and adds the duration to the waiting time. -pub async fn sleep(waiting_time_ms: &mut u64, duration: Duration) { - *waiting_time_ms += duration.as_millis() as u64; - tokio::time::sleep(duration).await; -} diff --git a/sdk/core/src/data/address.rs b/sdk/core/src/data/address.rs index 9612157326..8c4af1fb37 100644 --- a/sdk/core/src/data/address.rs +++ b/sdk/core/src/data/address.rs @@ -63,6 +63,12 @@ impl Debug for Address { } } +impl Default for Address { + fn default() -> Self { + Address::from_bytes([0u8; 32]) + } +} + impl Serialize for Address { fn serialize(&self, serializer: S) -> Result where diff --git a/sdk/core/src/data/transaction.rs b/sdk/core/src/data/transaction.rs index 2df6f37d87..ed0a51b8df 100644 --- a/sdk/core/src/data/transaction.rs +++ b/sdk/core/src/data/transaction.rs @@ -48,7 +48,7 @@ pub struct ResponseTxCost { } // TransactionOnNetwork holds a transaction's info entry in a hyper block -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, Default)] #[serde(rename_all = "camelCase")] pub struct TransactionOnNetwork { #[serde(rename = "type")] @@ -67,19 +67,19 @@ pub struct TransactionOnNetwork { pub destination_shard: u32, pub block_nonce: u64, pub block_hash: String, - pub notarized_at_source_in_meta_nonce: u64, + pub notarized_at_source_in_meta_nonce: Option, #[serde(rename = "NotarizedAtSourceInMetaHash")] - pub notarized_at_source_in_meta_hash: String, - pub notarized_at_destination_in_meta_nonce: u64, - pub notarized_at_destination_in_meta_hash: String, + pub notarized_at_source_in_meta_hash: Option, + pub notarized_at_destination_in_meta_nonce: Option, + pub notarized_at_destination_in_meta_hash: Option, pub processing_type_on_destination: String, pub miniblock_type: String, pub miniblock_hash: String, pub timestamp: u64, pub data: Option, pub status: String, - pub hyperblock_nonce: u64, - pub hyperblock_hash: String, + pub hyperblock_nonce: Option, + pub hyperblock_hash: Option, pub smart_contract_results: Option>, pub logs: Option, } From dbf0e2b181536e2cfd7889323a82881884605d57 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 22 Apr 2024 16:47:04 +0200 Subject: [PATCH 048/185] cleanup and extra impls for AddressValue --- .../tests/price_aggregator_blackbox_test.rs | 36 ++++---- .../src/scenario/model/value/address_value.rs | 84 +++++++++++++++++++ 2 files changed, 102 insertions(+), 18 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index c57e36711e..bd73790c0a 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -44,26 +44,24 @@ impl PriceAggregatorTestState { fn new() -> Self { let mut world = world(); - let mut set_state_step = SetStateStep::new() - .put_account(OWNER, Account::new().nonce(1)) - .new_address(OWNER_ADDRESS_EXPR, 1, PRICE_AGGREGATOR_ADDRESS_EXPR) - .block_timestamp(100); + world.account(OWNER).nonce(1); + world.current_block().block_timestamp(100); + + world.set_state_step(SetStateStep::new()).new_address( + OWNER_ADDRESS_EXPR, + 1, + PRICE_AGGREGATOR_ADDRESS_EXPR, + ); let mut oracles = Vec::new(); for i in 1..=NR_ORACLES { let address_expr = format!("address:oracle{}", i); let address_value = AddressValue::from(address_expr.as_str()); - set_state_step = set_state_step.put_account( - address_expr.as_str(), - Account::new().nonce(1).balance(STAKE_AMOUNT), - ); - + world.account(address_expr).nonce(1).balance(STAKE_AMOUNT); oracles.push(address_value); } - world.set_state_step(set_state_step); - // let price_aggregator_contract = PriceAggregatorContract::new(PRICE_AGGREGATOR_ADDRESS_EXPR); let price_aggregator_whitebox = WhiteboxContract::new( PRICE_AGGREGATOR_ADDRESS_EXPR, multiversx_price_aggregator_sc::contract_obj, @@ -104,7 +102,7 @@ impl PriceAggregatorTestState { for address in self.oracles.iter() { self.world .tx() - .from(&address.to_address()) + .from(address) .to(PRICE_AGGREGATOR) .typed(price_aggregator_proxy::PriceAggregatorProxy) .stake() @@ -138,7 +136,7 @@ impl PriceAggregatorTestState { fn submit(&mut self, from: &AddressValue, submission_timestamp: u64, price: u64) { self.world .tx() - .from(&from.to_address()) + .from(from) .to(PRICE_AGGREGATOR) .typed(price_aggregator_proxy::PriceAggregatorProxy) .submit( @@ -160,7 +158,7 @@ impl PriceAggregatorTestState { ) { self.world .tx() - .from(&from.to_address()) + .from(from) .to(PRICE_AGGREGATOR) .typed(price_aggregator_proxy::PriceAggregatorProxy) .submit( @@ -178,7 +176,7 @@ impl PriceAggregatorTestState { fn vote_slash_member(&mut self, from: &AddressValue, member_to_slash: Address) { self.world .tx() - .from(&from.to_address()) + .from(from) .to(PRICE_AGGREGATOR) .typed(price_aggregator_proxy::PriceAggregatorProxy) .vote_slash_member(member_to_slash) @@ -283,7 +281,8 @@ fn test_price_aggregator_submit_round_ok() { let current_timestamp = 110; state .world - .set_state_step(SetStateStep::new().block_timestamp(current_timestamp)); + .current_block() + .block_timestamp(current_timestamp); // submit second state.submit(&state.oracles[1].clone(), 101, 11_000); @@ -340,7 +339,8 @@ fn test_price_aggregator_discarded_round() { let current_timestamp = 100 + MAX_ROUND_DURATION_SECONDS + 1; state .world - .set_state_step(SetStateStep::new().block_timestamp(current_timestamp)); + .current_block() + .block_timestamp(current_timestamp); // submit second - this will discard the previous submission state.submit(&state.oracles[1].clone(), current_timestamp - 1, 11_000); @@ -378,7 +378,7 @@ fn test_price_aggregator_slashing() { state .world .tx() - .from(&state.oracles[0].to_address()) + .from(&state.oracles[0]) .to(PRICE_AGGREGATOR) .typed(price_aggregator_proxy::PriceAggregatorProxy) .slash_member(state.oracles[1].to_address()) diff --git a/framework/scenario/src/scenario/model/value/address_value.rs b/framework/scenario/src/scenario/model/value/address_value.rs index 1315a4fbd5..8564bb6e47 100644 --- a/framework/scenario/src/scenario/model/value/address_value.rs +++ b/framework/scenario/src/scenario/model/value/address_value.rs @@ -1,3 +1,7 @@ +use multiversx_sc::{ + api::ManagedTypeApi, + types::{AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified}, +}; use std::fmt; use crate::multiversx_sc::types::{Address, AddressExpr, ScExpr}; @@ -151,3 +155,83 @@ impl From> for AddressValue { } } } + +impl From<&AddressValue> for ManagedAddress +where + M: ManagedTypeApi, +{ + #[inline] + fn from(address_value: &AddressValue) -> Self { + ManagedAddress::from_address(&address_value.value) + } +} + +impl TxFrom for AddressValue +where + Env: TxEnv, +{ + fn resolve_address(&self, _env: &Env) -> ManagedAddress { + self.into() + } +} + +impl AnnotatedValue> for AddressValue +where + Env: TxEnv, +{ + fn annotation(&self, _env: &Env) -> multiversx_sc::types::ManagedBuffer { + ManagedBuffer::from(self.original.to_string()) + } + + fn to_value(&self, _env: &Env) -> ManagedAddress { + ManagedAddress::from_address(&self.value) + } + + fn into_value(self, _env: &Env) -> ManagedAddress { + ManagedAddress::from_address(&self.value) + } + + fn with_value_ref(&self, _env: &Env, f: F) -> R + where + F: FnOnce(&ManagedAddress) -> R, + { + f(&ManagedAddress::from_address(&self.value)) + } +} + +impl AnnotatedValue> for &AddressValue +where + Env: TxEnv, +{ + fn annotation(&self, _env: &Env) -> multiversx_sc::types::ManagedBuffer { + ManagedBuffer::from(self.original.to_string()) + } + + fn to_value(&self, _env: &Env) -> ManagedAddress { + ManagedAddress::from_address(&self.value) + } + + fn into_value(self, _env: &Env) -> ManagedAddress { + ManagedAddress::from_address(&self.value) + } + + fn with_value_ref(&self, _env: &Env, f: F) -> R + where + F: FnOnce(&ManagedAddress) -> R, + { + f(&ManagedAddress::from_address(&self.value)) + } +} + +impl TxFromSpecified for AddressValue where Env: TxEnv {} + +impl TxFrom for &AddressValue +where + Env: TxEnv, +{ + fn resolve_address(&self, _env: &Env) -> ManagedAddress { + ManagedAddress::from_address(&self.value) + } +} + +impl TxFromSpecified for &AddressValue where Env: TxEnv {} From 4be479b85b6f8d18eff7691efc7aadc35115b0b6 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 22 Apr 2024 18:51:01 +0200 Subject: [PATCH 049/185] #[type_abi] for structs and proxy regen --- contracts/core/price-aggregator/src/events.rs | 3 ++- .../price-aggregator/src/price_aggregator_data.rs | 12 ++++++++---- .../price-aggregator/tests/price_aggregator_proxy.rs | 4 ++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/contracts/core/price-aggregator/src/events.rs b/contracts/core/price-aggregator/src/events.rs index f2212815c9..d485e622db 100644 --- a/contracts/core/price-aggregator/src/events.rs +++ b/contracts/core/price-aggregator/src/events.rs @@ -3,7 +3,8 @@ multiversx_sc::derive_imports!(); use crate::price_aggregator_data::{TimestampedPrice, TokenPair}; -#[derive(TypeAbi, TopEncode)] +#[type_abi] +#[derive(TopEncode)] pub struct NewRoundEvent { price: BigUint, timestamp: u64, diff --git a/contracts/core/price-aggregator/src/price_aggregator_data.rs b/contracts/core/price-aggregator/src/price_aggregator_data.rs index 13249216ba..c348b67d22 100644 --- a/contracts/core/price-aggregator/src/price_aggregator_data.rs +++ b/contracts/core/price-aggregator/src/price_aggregator_data.rs @@ -1,13 +1,15 @@ multiversx_sc::imports!(); multiversx_sc::derive_imports!(); -#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi, Clone)] +#[type_abi] +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, Clone)] pub struct TokenPair { pub from: ManagedBuffer, pub to: ManagedBuffer, } -#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi)] +#[type_abi] +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct PriceFeed { pub round_id: u32, pub from: ManagedBuffer, @@ -17,14 +19,16 @@ pub struct PriceFeed { pub decimals: u8, } -#[derive(TopEncode, TopDecode, TypeAbi, Debug, PartialEq, Eq)] +#[type_abi] +#[derive(TopEncode, TopDecode, Debug, PartialEq, Eq)] pub struct TimestampedPrice { pub price: BigUint, pub timestamp: u64, pub decimals: u8, } -#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi, Debug, PartialEq, Eq)] +#[type_abi] +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, Debug, PartialEq, Eq)] pub struct OracleStatus { pub accepted_submissions: u64, pub total_submissions: u64, diff --git a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs index c7b05acaf5..fbdab94593 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs @@ -340,7 +340,7 @@ where } } -#[derive(TopEncode, TopDecode)] +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct PriceFeed where Api: ManagedTypeApi, @@ -353,7 +353,7 @@ where pub decimals: u8, } -#[derive(TopEncode, TopDecode)] +#[derive(TopEncode)] pub struct NewRoundEvent where Api: ManagedTypeApi, From 99d6177d3d64f17af00ee3f137bded51d33af8b4 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 22 Apr 2024 21:54:36 +0300 Subject: [PATCH 050/185] unified syntax - removed method to_caller --- contracts/feature-tests/composability/vault/src/vault.rs | 2 +- framework/base/src/types/interaction/tx.rs | 9 +-------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/contracts/feature-tests/composability/vault/src/vault.rs b/contracts/feature-tests/composability/vault/src/vault.rs index a14da93521..1fb32cccdd 100644 --- a/contracts/feature-tests/composability/vault/src/vault.rs +++ b/contracts/feature-tests/composability/vault/src/vault.rs @@ -222,7 +222,7 @@ pub trait Vault { )); } - self.tx().to_caller().payment(new_tokens).transfer(); + self.tx().to(ToCaller).payment(new_tokens).transfer(); } #[event("accept_funds")] diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 98d88e499a..c7a72eaa75 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -1,11 +1,9 @@ use crate::{ api::CallTypeApi, - contract_base::BlockchainWrapper, types::{ BigUint, CodeMetadata, EgldOrEsdtTokenIdentifier, EgldOrEsdtTokenPayment, EgldOrEsdtTokenPaymentRefs, EgldOrMultiEsdtPayment, EsdtTokenPayment, EsdtTokenPaymentRefs, - ManagedAddress, ManagedBuffer, ManagedOption, ManagedVec, MultiEsdtPayment, - TokenIdentifier, + ManagedBuffer, ManagedOption, ManagedVec, MultiEsdtPayment, TokenIdentifier, }, }; @@ -151,11 +149,6 @@ where result_handler: self.result_handler, } } - - pub fn to_caller(self) -> Tx, Payment, Gas, Data, RH> { - let caller = BlockchainWrapper::::new().get_caller(); - self.to(caller) - } } impl Tx From a2539b66b3994e98e084658a658fa6e7d2ff77f2 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 22 Apr 2024 23:32:01 +0300 Subject: [PATCH 051/185] unified syntax - migrate rewards distribution --- .../rewards-distribution/sc-config.toml | 5 + .../src/rewards_distribution.rs | 7 +- .../src/rewards_distribution_proxy.rs | 233 +++++++++++++++ .../tests/mock_seed_nft_minter_proxy.rs | 86 ++++++ .../rewards_distribution_blackbox_test.rs | 276 ++++++++---------- 5 files changed, 455 insertions(+), 152 deletions(-) create mode 100644 contracts/examples/rewards-distribution/sc-config.toml create mode 100644 contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs create mode 100644 contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs diff --git a/contracts/examples/rewards-distribution/sc-config.toml b/contracts/examples/rewards-distribution/sc-config.toml new file mode 100644 index 0000000000..888d97a79f --- /dev/null +++ b/contracts/examples/rewards-distribution/sc-config.toml @@ -0,0 +1,5 @@ +[[proxy]] +path = "src/rewards_distribution_proxy.rs" +[[proxy.path-rename]] +from = "multiversx_sc::types::io::operation_completion_status::" +to = "" diff --git a/contracts/examples/rewards-distribution/src/rewards_distribution.rs b/contracts/examples/rewards-distribution/src/rewards_distribution.rs index 880b4ed835..a964d8e63b 100644 --- a/contracts/examples/rewards-distribution/src/rewards_distribution.rs +++ b/contracts/examples/rewards-distribution/src/rewards_distribution.rs @@ -5,6 +5,7 @@ use multiversx_sc_modules::ongoing_operation::{ CONTINUE_OP, DEFAULT_MIN_GAS_TO_SAVE_PROGRESS, STOP_OP, }; +pub mod rewards_distribution_proxy; pub mod seed_nft_minter_proxy; type Epoch = u64; @@ -13,13 +14,15 @@ pub const EPOCHS_IN_WEEK: Epoch = 7; pub const MAX_PERCENTAGE: u64 = 100_000; // 100% pub const DIVISION_SAFETY_CONSTANT: u64 = 1_000_000_000_000; -#[derive(ManagedVecItem, NestedEncode, NestedDecode, TypeAbi)] +#[type_abi] +#[derive(ManagedVecItem, NestedEncode, NestedDecode)] pub struct Bracket { pub index_percent: u64, pub bracket_reward_percent: u64, } -#[derive(ManagedVecItem, NestedEncode, NestedDecode, TypeAbi)] +#[type_abi] +#[derive(ManagedVecItem, NestedEncode, NestedDecode)] pub struct ComputedBracket { pub end_index: u64, pub nft_reward_percent: BigUint, diff --git a/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs b/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs new file mode 100644 index 0000000000..4a02c6c098 --- /dev/null +++ b/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs @@ -0,0 +1,233 @@ +// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +#![allow(dead_code)] +#![allow(clippy::all)] + +use multiversx_sc::proxy_imports::*; + +pub struct RewardsDistributionProxy; + +impl TxProxyTrait for RewardsDistributionProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = RewardsDistributionProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + RewardsDistributionProxyMethods { wrapped_tx: tx } + } +} + +pub struct RewardsDistributionProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl RewardsDistributionProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + seed_nft_minter_address: Arg0, + brackets: Arg1, + ) -> TxProxyDeploy { + self.wrapped_tx + .raw_deploy() + .argument(&seed_nft_minter_address) + .argument(&brackets) + .original_result() + } +} + +#[rustfmt::skip] +impl RewardsDistributionProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn deposit_royalties( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("depositRoyalties") + .original_result() + } + + pub fn raffle( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("raffle") + .original_result() + } + + pub fn claim_rewards< + Arg0: CodecInto, + Arg1: CodecInto, + Arg2: CodecInto, u64>>>, + >( + self, + raffle_id_start: Arg0, + raffle_id_end: Arg1, + reward_tokens: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("claimRewards") + .argument(&raffle_id_start) + .argument(&raffle_id_end) + .argument(&reward_tokens) + .original_result() + } + + pub fn compute_claimable_amount< + Arg0: CodecInto, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto, + >( + self, + raffle_id: Arg0, + reward_token_id: Arg1, + reward_token_nonce: Arg2, + nft_nonce: Arg3, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("computeClaimableAmount") + .argument(&raffle_id) + .argument(&reward_token_id) + .argument(&reward_token_nonce) + .argument(&nft_nonce) + .original_result() + } + + pub fn raffle_id( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getRaffleId") + .original_result() + } + + pub fn completed_raffle_id_count( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getCompletedRaffleIdCount") + .original_result() + } + + pub fn royalties< + Arg0: CodecInto, + Arg1: CodecInto>, + Arg2: CodecInto, + >( + self, + raffle_id: Arg0, + reward_token_id: Arg1, + reward_token_nonce: Arg2, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getRoyalties") + .argument(&raffle_id) + .argument(&reward_token_id) + .argument(&reward_token_nonce) + .original_result() + } + + pub fn nft_reward_percent< + Arg0: CodecInto, + Arg1: CodecInto, + >( + self, + raffle_id: Arg0, + nft_nonce: Arg1, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getNftRewardPercent") + .argument(&raffle_id) + .argument(&nft_nonce) + .original_result() + } + + pub fn was_claimed< + Arg0: CodecInto, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto, + >( + self, + raffle_id: Arg0, + reward_token_id: Arg1, + reward_token_nonce: Arg2, + nft_nonce: Arg3, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getWasClaimed") + .argument(&raffle_id) + .argument(&reward_token_id) + .argument(&reward_token_nonce) + .argument(&nft_nonce) + .original_result() + } + + pub fn seed_nft_minter_address( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getSeedNftMinterAddress") + .original_result() + } + + pub fn brackets( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getBrackets") + .original_result() + } + + pub fn last_raffle_epoch( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getLastRaffleEpoch") + .original_result() + } + + pub fn nft_token_id( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getNftTokenId") + .original_result() + } +} + +#[derive(ManagedVecItem, NestedEncode, NestedDecode)] +pub struct Bracket { + pub index_percent: u64, + pub bracket_reward_percent: u64, +} diff --git a/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs b/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs new file mode 100644 index 0000000000..6fd95b934c --- /dev/null +++ b/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs @@ -0,0 +1,86 @@ +use multiversx_sc::proxy_imports::*; + +pub struct MockSeedNftMinterProxy; + +impl TxProxyTrait for MockSeedNftMinterProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = MockSeedNftMinterProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + MockSeedNftMinterProxyMethods { wrapped_tx: tx } + } +} + +pub struct MockSeedNftMinterProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl MockSeedNftMinterProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init< + Arg0: CodecInto>, + >( + self, + nft_token_id: Arg0, + ) -> TxProxyDeploy { + self.wrapped_tx + .raw_deploy() + .argument(&nft_token_id) + .original_result() + } +} + +#[rustfmt::skip] +impl MockSeedNftMinterProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn set_nft_count< + Arg0: CodecInto, + >( + self, + nft_count: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("setNftCount") + .argument(&nft_count) + .original_result() + } + + pub fn nft_count( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getNftCount") + .original_result() + } + + pub fn nft_token_id( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getNftTokenId") + .original_result() + } +} diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs index 4380f0122f..a670ef91ca 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs @@ -1,37 +1,37 @@ mod mock_seed_nft_minter; +mod mock_seed_nft_minter_proxy; mod utils; use multiversx_sc_scenario::imports::*; use std::iter::zip; -use crate::mock_seed_nft_minter::ProxyTrait as _; use rewards_distribution::{ - Bracket, ContractObj, ProxyTrait as _, RewardsDistribution, DIVISION_SAFETY_CONSTANT, + rewards_distribution_proxy, ContractObj, ProxyTrait as _, RewardsDistribution, + DIVISION_SAFETY_CONSTANT, }; const NFT_TOKEN_ID: &[u8] = b"NFT-123456"; const NFT_TOKEN_ID_EXPR: &str = "str:NFT-123456"; -const ALICE_ADDRESS_EXPR: &str = "address:alice"; -const OWNER_ADDRESS_EXPR: &str = "address:owner"; -const REWARDS_DISTRIBUTION_ADDRESS_EXPR: &str = "sc:rewards-distribution"; -const REWARDS_DISTRIBUTION_PATH_EXPR: &str = "mxsc:output/rewards-distribution.mxsc.json"; -const SEED_NFT_MINTER_ADDRESS_EXPR: &str = "sc:seed-nft-minter"; -const SEED_NFT_MINTER_PATH_EXPR: &str = "mxsc:../seed-nft-minter/output/seed-nft-minter.mxsc.json"; +const ALICE_ADDRESS_EXPR: AddressExpr = AddressExpr("alice"); +const OWNER_ADDRESS_EXPR: AddressExpr = AddressExpr("owner"); +const REWARDS_DISTRIBUTION_ADDRESS_EXPR: ScExpr = ScExpr("rewards-distribution"); +const REWARDS_DISTRIBUTION_PATH_EXPR: MxscExpr = MxscExpr("output/rewards-distribution.mxsc.json"); +const SEED_NFT_MINTER_ADDRESS_EXPR: ScExpr = ScExpr("seed-nft-minter"); +const SEED_NFT_MINTER_PATH_EXPR: MxscExpr = + MxscExpr("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); type RewardsDistributionContract = ContractInfo>; -type SeedNFTMinterContract = ContractInfo>; fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); - blockchain.set_current_dir_from_workspace("contracts/examples/rewards-distribution"); blockchain.register_contract( - REWARDS_DISTRIBUTION_PATH_EXPR, + REWARDS_DISTRIBUTION_PATH_EXPR.eval_to_expr().as_str(), rewards_distribution::ContractBuilder, ); blockchain.register_contract( - SEED_NFT_MINTER_PATH_EXPR, + SEED_NFT_MINTER_PATH_EXPR.eval_to_expr().as_str(), mock_seed_nft_minter::ContractBuilder, ); blockchain @@ -39,8 +39,6 @@ fn world() -> ScenarioWorld { struct RewardsDistributionTestState { world: ScenarioWorld, - seed_nft_minter_address: Address, - seed_nft_minter_contract: SeedNFTMinterContract, rewards_distribution_contract: RewardsDistributionContract, rewards_distribution_whitebox: WhiteboxContract>, } @@ -49,13 +47,8 @@ impl RewardsDistributionTestState { fn new() -> Self { let mut world = world(); - world.set_state_step( - SetStateStep::new().put_account(OWNER_ADDRESS_EXPR, Account::new().nonce(1)), - ); - - let seed_nft_minter_address = AddressValue::from(SEED_NFT_MINTER_ADDRESS_EXPR).to_address(); + world.account(OWNER_ADDRESS_EXPR).nonce(1); - let seed_nft_minter_contract = SeedNFTMinterContract::new(SEED_NFT_MINTER_ADDRESS_EXPR); let rewards_distribution_contract = RewardsDistributionContract::new(REWARDS_DISTRIBUTION_ADDRESS_EXPR); let rewards_distribution_whitebox = WhiteboxContract::new( @@ -65,38 +58,32 @@ impl RewardsDistributionTestState { Self { world, - seed_nft_minter_address, - seed_nft_minter_contract, rewards_distribution_contract, rewards_distribution_whitebox, } } fn deploy_seed_nft_minter_contract(&mut self) -> &mut Self { - let seed_nft_miinter_code = self.world.code_expression(SEED_NFT_MINTER_PATH_EXPR); - - self.world.sc_deploy( - ScDeployStep::new() - .from(OWNER_ADDRESS_EXPR) - .code(seed_nft_miinter_code) - .call( - self.seed_nft_minter_contract - .init(TokenIdentifier::from_esdt_bytes(NFT_TOKEN_ID)), - ), - ); - - self.world.sc_call( - ScCallStep::new() - .from(OWNER_ADDRESS_EXPR) - .call(self.seed_nft_minter_contract.set_nft_count(10_000u64)), - ); + self.world + .tx() + .from(OWNER_ADDRESS_EXPR) + .typed(mock_seed_nft_minter_proxy::MockSeedNftMinterProxy) + .init(TokenIdentifier::from_esdt_bytes(NFT_TOKEN_ID)) + .code(SEED_NFT_MINTER_PATH_EXPR) + .run(); + + self.world + .tx() + .from(OWNER_ADDRESS_EXPR) + .to(SEED_NFT_MINTER_ADDRESS_EXPR) + .typed(mock_seed_nft_minter_proxy::MockSeedNftMinterProxy) + .set_nft_count(10_000u64) + .run(); self } fn deploy_rewards_distribution_contract(&mut self) -> &mut Self { - let rewards_distribution_code = self.world.code_expression(REWARDS_DISTRIBUTION_PATH_EXPR); - let brackets_vec = &[ (10, 2_000), (90, 6_000), @@ -105,22 +92,20 @@ impl RewardsDistributionTestState { (25_000, 35_000), (72_000, 40_000), ]; - let mut brackets = ManagedVec::::new(); + let mut brackets = ManagedVec::new(); for (index_percent, bracket_reward_percent) in brackets_vec.iter().cloned() { - brackets.push(Bracket { + brackets.push(rewards_distribution_proxy::Bracket { index_percent, bracket_reward_percent, }); } - self.world.sc_deploy( - ScDeployStep::new() - .from(OWNER_ADDRESS_EXPR) - .code(rewards_distribution_code) - .call( - self.rewards_distribution_contract - .init(self.seed_nft_minter_address.clone(), brackets), - ), - ); + self.world + .tx() + .from(OWNER_ADDRESS_EXPR) + .typed(rewards_distribution_proxy::RewardsDistributionProxy) + .init(SEED_NFT_MINTER_ADDRESS_EXPR.to_address(), brackets) + .code(REWARDS_DISTRIBUTION_PATH_EXPR) + .run(); self } @@ -130,18 +115,17 @@ impl RewardsDistributionTestState { fn test_compute_brackets() { let mut state = RewardsDistributionTestState::new(); - let rewards_distribution_code = state.world.code_expression(REWARDS_DISTRIBUTION_PATH_EXPR); + let rewards_distribution_code = state + .world + .code_expression(REWARDS_DISTRIBUTION_PATH_EXPR.eval_to_expr().as_str()); - state.world.set_state_step( - SetStateStep::new().put_account( - REWARDS_DISTRIBUTION_ADDRESS_EXPR, - Account::new() - .nonce(1) - .owner(OWNER_ADDRESS_EXPR) - .code(rewards_distribution_code) - .balance("0"), - ), - ); + state + .world + .account(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .nonce(1) + .owner(OWNER_ADDRESS_EXPR) + .code(rewards_distribution_code) + .balance("0"); state.world.whitebox_call( &state.rewards_distribution_whitebox, @@ -182,24 +166,30 @@ fn test_raffle_and_claim() { let mut state = RewardsDistributionTestState::new(); let nft_nonces: [u64; 6] = [1, 2, 3, 4, 5, 6]; - let nft_payments: Vec = nft_nonces - .iter() - .map(|nonce| TxESDT { - esdt_token_identifier: NFT_TOKEN_ID.into(), - nonce: (*nonce).into(), - esdt_value: 1u64.into(), - }) - .collect(); - - let mut alice_account = Account::new().nonce(1).balance("2_070_000_000"); - for nonce in nft_nonces.iter() { - alice_account = - alice_account.esdt_nft_balance(NFT_TOKEN_ID_EXPR, *nonce, "1", Option::<&[u8]>::None); + let mut nft_payments = ManagedVec::new(); + for nonce in nft_nonces.into_iter() { + let payment = EsdtTokenPayment::new(NFT_TOKEN_ID.into(), nonce, 1u64.into()); + nft_payments.push(payment); + } + + { + let mut account_setter = state + .world + .account(ALICE_ADDRESS_EXPR) + .nonce(1) + .balance("2_070_000_000"); + for nft_nonce in nft_nonces { + account_setter = account_setter.esdt_nft_balance( + NFT_TOKEN_ID_EXPR, + nft_nonce, + "1", + Option::<&[u8]>::None, + ); + } } state.world.set_state_step( SetStateStep::new() - .put_account(ALICE_ADDRESS_EXPR, alice_account) .new_address(OWNER_ADDRESS_EXPR, 1, SEED_NFT_MINTER_ADDRESS_EXPR) .new_address(OWNER_ADDRESS_EXPR, 3, REWARDS_DISTRIBUTION_ADDRESS_EXPR), ); @@ -209,12 +199,15 @@ fn test_raffle_and_claim() { .deploy_rewards_distribution_contract(); // deposit royalties - state.world.sc_call( - ScCallStep::new() - .from(ALICE_ADDRESS_EXPR) - .egld_value("2_070_000_000") - .call(state.rewards_distribution_contract.deposit_royalties()), - ); + state + .world + .tx() + .from(ALICE_ADDRESS_EXPR) + .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .typed(rewards_distribution_proxy::RewardsDistributionProxy) + .deposit_royalties() + .egld(2_070_000_000) + .run(); // run the raffle state.world.sc_call( @@ -228,19 +221,16 @@ fn test_raffle_and_claim() { let mut rewards: Vec> = Vec::new(); // post-raffle reward amount frequency checksstate for nonce in 1u64..=10_000u64 { - state.world.sc_call_use_result( - ScCallStep::new().from(ALICE_ADDRESS_EXPR).call( - state - .rewards_distribution_contract - .compute_claimable_amount( - 0u64, - &EgldOrEsdtTokenIdentifier::egld(), - 0u64, - nonce, - ), - ), - |r: TypedResponse>| rewards.push(r.result.unwrap()), - ); + let reward = state + .world + .tx() + .from(ALICE_ADDRESS_EXPR) + .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .typed(rewards_distribution_proxy::RewardsDistributionProxy) + .compute_claimable_amount(0u64, &EgldOrEsdtTokenIdentifier::egld(), 0u64, nonce) + .returns(ReturnsResult) + .run(); + rewards.push(reward); } assert_eq!(rewards.len() as u64, 10_000u64); @@ -272,21 +262,15 @@ fn test_raffle_and_claim() { let expected_rewards = [114_999, 114_999, 114_999, 828_000, 114_999, 114_999]; for (nonce, expected_reward) in std::iter::zip(nft_nonces, expected_rewards) { - state.world.sc_call_use_result( - ScCallStep::new().from(ALICE_ADDRESS_EXPR).call( - state - .rewards_distribution_contract - .compute_claimable_amount( - 0u64, - &EgldOrEsdtTokenIdentifier::egld(), - 0u64, - nonce, - ), - ), - |r: TypedResponse>| { - assert_eq!(r.result.unwrap().to_u64().unwrap(), expected_reward); - }, - ); + state + .world + .tx() + .from(ALICE_ADDRESS_EXPR) + .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .typed(rewards_distribution_proxy::RewardsDistributionProxy) + .compute_claimable_amount(0u64, &EgldOrEsdtTokenIdentifier::egld(), 0u64, nonce) + .returns(ExpectValue(expected_reward)) + .run(); } // claim rewards @@ -295,41 +279,36 @@ fn test_raffle_and_claim() { MultiValue2, u64>, > = MultiValueEncoded::new(); reward_tokens.push((EgldOrEsdtTokenIdentifier::egld(), 0).into()); - state.world.sc_call( - ScCallStep::new() - .from(ALICE_ADDRESS_EXPR) - .multi_esdt_transfer(nft_payments.clone()) - .call( - state - .rewards_distribution_contract - .claim_rewards(0u64, 0u64, reward_tokens), - ), - ); + state + .world + .tx() + .from(ALICE_ADDRESS_EXPR) + .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .typed(rewards_distribution_proxy::RewardsDistributionProxy) + .claim_rewards(0u64, 0u64, reward_tokens) + .with_multi_token_transfer(nft_payments.clone()) + .run(); // check that the rewards were claimed for nonce in nft_nonces.iter() { - state.world.sc_query( - ScQueryStep::new() - .call(state.rewards_distribution_contract.was_claimed( - 0u64, - &EgldOrEsdtTokenIdentifier::egld(), - 0u64, - nonce, - )) - .expect_value(SingleValue::from(true)), - ); + state + .world + .query() + .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .typed(rewards_distribution_proxy::RewardsDistributionProxy) + .was_claimed(0u64, &EgldOrEsdtTokenIdentifier::egld(), 0u64, nonce) + .returns(ExpectValue(true)) + .run(); } // confirm the received amount matches the sum of the queried rewards let alice_balance_after_claim: u64 = expected_rewards.iter().sum(); - let balance_expr = alice_balance_after_claim.to_string(); + let balance_expr: &str = &alice_balance_after_claim.to_string(); state .world - .check_state_step(CheckStateStep::new().put_account( - ALICE_ADDRESS_EXPR, - CheckAccount::new().balance(balance_expr.as_str()), - )); + .check_account(ALICE_ADDRESS_EXPR) + .balance(balance_expr); // a second claim with the same nfts should succeed, but return no more rewards let mut reward_tokens: MultiValueEncoded< @@ -337,21 +316,18 @@ fn test_raffle_and_claim() { MultiValue2, u64>, > = MultiValueEncoded::new(); reward_tokens.push((EgldOrEsdtTokenIdentifier::egld(), 0).into()); - state.world.sc_call( - ScCallStep::new() - .from(ALICE_ADDRESS_EXPR) - .multi_esdt_transfer(nft_payments) - .call( - state - .rewards_distribution_contract - .claim_rewards(0u64, 0u64, reward_tokens), - ), - ); + state + .world + .tx() + .from(ALICE_ADDRESS_EXPR) + .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .typed(rewards_distribution_proxy::RewardsDistributionProxy) + .claim_rewards(0u64, 0u64, reward_tokens) + .with_multi_token_transfer(nft_payments) + .run(); state .world - .check_state_step(CheckStateStep::new().put_account( - ALICE_ADDRESS_EXPR, - CheckAccount::new().balance(balance_expr.as_str()), - )); + .check_account(ALICE_ADDRESS_EXPR) + .balance(balance_expr); } From ccde5de2dd0977a9bb2f74b9d7507081fa20691b Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 22 Apr 2024 23:36:03 +0300 Subject: [PATCH 052/185] fix clippy --- .../tests/mock_seed_nft_minter_proxy.rs | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs b/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs index 6fd95b934c..22d9e055cd 100644 --- a/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs +++ b/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs @@ -67,20 +67,4 @@ where .argument(&nft_count) .original_result() } - - pub fn nft_count( - self, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("getNftCount") - .original_result() - } - - pub fn nft_token_id( - self, - ) -> TxProxyCall> { - self.wrapped_tx - .raw_call("getNftTokenId") - .original_result() - } } From 48cfe2a9712a1d289d1d9a3db42d460cf9ae2e30 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 23 Apr 2024 02:02:03 +0300 Subject: [PATCH 053/185] unified syntax - new address in deploy tx --- .../adder/tests/adder_blackbox_test.rs | 3 +- .../multisig/tests/multisig_blackbox_test.rs | 23 ++++-------- .../scenario-tester/tests/st_blackbox_test.rs | 2 +- framework/base/src/types/interaction/tx.rs | 36 +++++++++++++++---- .../base/src/types/interaction/tx_env.rs | 9 +++++ .../src/facade/world_tx/scenario_exec_call.rs | 30 ++++++++++++++-- .../scenario/tx_to_step/step_annotation.rs | 4 +-- .../scenario/tx_to_step/tx_to_step_call.rs | 4 +-- .../scenario/tx_to_step/tx_to_step_deploy.rs | 2 +- .../scenario/tx_to_step/tx_to_step_query.rs | 2 +- .../tx_to_step/tx_to_step_transfer.rs | 4 +-- 11 files changed, 82 insertions(+), 37 deletions(-) diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index 9c6dc26dd5..9ca51ccbeb 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -24,14 +24,13 @@ fn adder_blackbox() { world.account(OWNER).nonce(1); - world.new_address(OWNER, 1, SC_ADDER); - let new_address = world .tx() .from(OWNER) .typed(adder_proxy::AdderProxy) .init(5u32) .code(CODE_EXPR) + .new_address(SC_ADDER) .returns(ReturnsNewAddress) .run(); diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 22a4219fd4..5be8e9d52b 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -50,18 +50,6 @@ impl MultisigTestState { .account(ADDER_OWNER_ADDRESS_EXPR) .nonce(1); - world.set_state_step(SetStateStep::new().new_address( - OWNER_ADDRESS_EXPR, - 1, - SC_MULTISIG_EXPR, - )); - - world.set_state_step(SetStateStep::new().new_address( - ADDER_OWNER_ADDRESS_EXPR, - 1, - SC_ADDER_EXPR, - )); - Self { world } } @@ -74,6 +62,7 @@ impl MultisigTestState { .typed(multisig_proxy::MultisigProxy) .init(QUORUM_SIZE, board_members) .code(MULTISIG_CODE_EXPR) + .new_address(SC_MULTISIG_EXPR) .run(); let action_id: usize = self @@ -101,6 +90,7 @@ impl MultisigTestState { .typed(adder_proxy::AdderProxy) .init(5u64) .code(ADDER_CODE_EXPR) + .new_address(SC_ADDER_EXPR) .run(); } @@ -555,11 +545,10 @@ fn test_deploy_and_upgrade_from_source() { state.deploy_multisig_contract().deploy_adder_contract(); let new_adder_address_expr: ScExpr = ScExpr("new-adder"); - state.world.set_state_step(SetStateStep::new().new_address( - SC_MULTISIG_EXPR, - 0, - new_adder_address_expr, - )); + + state + .world + .new_address(SC_MULTISIG_EXPR, 0, new_adder_address_expr); let action_id = state.propose_sc_deploy_from_source( 0u64, diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index de877fb76b..1af150a76f 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -51,7 +51,7 @@ fn st_blackbox() { .esdt_balance("str:TOKEN-123456", "500") .commit(); - world.set_state_step(SetStateStep::new().new_address(owner_address, 1, "sc:scenario-tester")); + world.new_address(owner_address, 1, "sc:scenario-tester"); let new_address = world .tx() diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 98d88e499a..ca5beddb0a 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -12,12 +12,13 @@ use crate::{ use multiversx_sc_codec::TopEncodeMulti; use super::{ - contract_deploy::UNSPECIFIED_GAS_LIMIT, Code, ContractCallBase, ContractCallNoPayment, - ContractCallWithEgld, ContractDeploy, DeployCall, Egld, EgldPayment, ExplicitGas, FromSource, - FunctionCall, ManagedArgBuffer, OriginalResultMarker, RHList, RHListAppendNoRet, - RHListAppendRet, RHListItem, TxCodeSource, TxCodeValue, TxData, TxDataFunctionCall, - TxEgldValue, TxEnv, TxFrom, TxFromSourceValue, TxGas, TxGasValue, TxPayment, TxPaymentEgldOnly, - TxProxyTrait, TxResultHandler, TxScEnv, TxTo, TxToSpecified, UpgradeCall, + contract_deploy::UNSPECIFIED_GAS_LIMIT, AnnotatedValue, Code, ContractCallBase, + ContractCallNoPayment, ContractCallWithEgld, ContractDeploy, DeployCall, Egld, EgldPayment, + ExplicitGas, FromSource, FunctionCall, ManagedArgBuffer, OriginalResultMarker, RHList, + RHListAppendNoRet, RHListAppendRet, RHListItem, TxCodeSource, TxCodeValue, TxData, + TxDataFunctionCall, TxEgldValue, TxEnv, TxEnvMockDeployAddress, TxFrom, TxFromSourceValue, + TxFromSpecified, TxGas, TxGasValue, TxPayment, TxPaymentEgldOnly, TxProxyTrait, + TxResultHandler, TxScEnv, TxTo, TxToSpecified, UpgradeCall, }; #[must_use] @@ -827,6 +828,29 @@ where } } +impl + Tx, RH> +where + Env: TxEnvMockDeployAddress, + From: TxFromSpecified, + To: TxTo, + Payment: TxPaymentEgldOnly, + Gas: TxGas, + CodeSource: TxCodeSource, + RH: TxResultHandler, +{ + /// Sets the new mock address to be used for the newly deployed contract. + /// + /// Only allowed in tests. + pub fn new_address(mut self, new_address: NA) -> Self + where + NA: AnnotatedValue>, + { + self.env.mock_deploy_new_address(&self.from, new_address); + self + } +} + impl Tx, RH> where diff --git a/framework/base/src/types/interaction/tx_env.rs b/framework/base/src/types/interaction/tx_env.rs index 16fd0da683..11e7b91e6a 100644 --- a/framework/base/src/types/interaction/tx_env.rs +++ b/framework/base/src/types/interaction/tx_env.rs @@ -3,6 +3,8 @@ use crate::{ types::{ManagedAddress, ManagedBuffer}, }; +use super::{AnnotatedValue, TxFromSpecified}; + pub trait TxEnv: Sized { type Api: CallTypeApi; @@ -15,3 +17,10 @@ pub trait TxEnv: Sized { fn default_gas_value(&self) -> u64; } + +pub trait TxEnvMockDeployAddress: TxEnv { + fn mock_deploy_new_address(&mut self, from: &From, new_address: NA) + where + From: TxFromSpecified, + NA: AnnotatedValue>; +} diff --git a/framework/scenario/src/facade/world_tx/scenario_exec_call.rs b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs index e92e38087c..dd258da3b4 100644 --- a/framework/scenario/src/facade/world_tx/scenario_exec_call.rs +++ b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs @@ -2,14 +2,14 @@ use multiversx_sc::{ tuple_util::NestedTupleFlatten, types::{ FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, TxEnv, - TxFromSpecified, TxGas, TxPayment, TxToSpecified, + TxEnvMockDeployAddress, TxFromSpecified, TxGas, TxPayment, TxToSpecified, }, }; use crate::{ api::StaticApi, - scenario::tx_to_step::TxToStep, - scenario_model::{TxExpect, TxResponse}, + scenario::tx_to_step::{address_annotated, TxToStep}, + scenario_model::{SetStateStep, TxExpect, TxResponse}, ScenarioTxEnv, ScenarioTxRun, ScenarioWorld, }; @@ -39,6 +39,30 @@ impl<'w> TxEnv for ScenarioEnvExec<'w> { } } +impl<'w> TxEnvMockDeployAddress for ScenarioEnvExec<'w> { + fn mock_deploy_new_address(&mut self, from: &From, new_address: NA) + where + From: TxFromSpecified, + NA: multiversx_sc::types::AnnotatedValue>, + { + let from_value = address_annotated(self, from); + let sender_nonce = self + .world + .get_state() + .accounts + .get(&from_value.to_vm_address()) + .expect("sender does not exist") + .nonce; + let new_address_value = address_annotated(self, &new_address); + + self.world.set_state_step(SetStateStep::new().new_address( + from_value, + sender_nonce, + new_address_value, + )); + } +} + impl<'w> ScenarioTxEnv for ScenarioEnvExec<'w> { fn env_data(&self) -> &ScenarioTxEnvData { &self.data diff --git a/framework/scenario/src/scenario/tx_to_step/step_annotation.rs b/framework/scenario/src/scenario/tx_to_step/step_annotation.rs index 2defb50786..c341427ab7 100644 --- a/framework/scenario/src/scenario/tx_to_step/step_annotation.rs +++ b/framework/scenario/src/scenario/tx_to_step/step_annotation.rs @@ -3,14 +3,14 @@ use multiversx_sc::types::{AnnotatedValue, Code, ManagedAddress, TxCodeValue, Tx use crate::scenario_model::{AddressValue, BytesValue, U64Value}; -pub fn address_annotated(env: &Env, from: Addr) -> AddressValue +pub fn address_annotated(env: &Env, from: &Addr) -> AddressValue where Env: TxEnv, Addr: AnnotatedValue>, { let annotation = from.annotation(env).to_string(); AddressValue { - value: from.into_value(env).to_address(), + value: from.to_value(env).to_address(), original: ValueSubTree::Str(annotation), } } diff --git a/framework/scenario/src/scenario/tx_to_step/tx_to_step_call.rs b/framework/scenario/src/scenario/tx_to_step/tx_to_step_call.rs index d111116a5c..7daa8ac810 100644 --- a/framework/scenario/src/scenario/tx_to_step/tx_to_step_call.rs +++ b/framework/scenario/src/scenario/tx_to_step/tx_to_step_call.rs @@ -53,8 +53,8 @@ where Gas: TxGas, { let mut step = ScCallStep::new() - .from(address_annotated(env, from)) - .to(address_annotated(env, to)) + .from(address_annotated(env, &from)) + .to(address_annotated(env, &to)) .function(data.function_name.to_string().as_str()); for arg in data.arg_buffer.iter_buffers() { step.tx.arguments.push(arg.to_vec().into()); diff --git a/framework/scenario/src/scenario/tx_to_step/tx_to_step_deploy.rs b/framework/scenario/src/scenario/tx_to_step/tx_to_step_deploy.rs index 3221de4b45..4e49be51b4 100644 --- a/framework/scenario/src/scenario/tx_to_step/tx_to_step_deploy.rs +++ b/framework/scenario/src/scenario/tx_to_step/tx_to_step_deploy.rs @@ -46,7 +46,7 @@ where CodeValue: TxCodeValue, { let mut step = ScDeployStep::new() - .from(address_annotated(env, from)) + .from(address_annotated(env, &from)) .code(code_annotated(env, data.code_source)); for arg in data.arg_buffer.iter_buffers() { step.tx.arguments.push(arg.to_vec().into()); diff --git a/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs b/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs index 9cfbb5d39e..aaeb3b70c3 100644 --- a/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs +++ b/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs @@ -30,7 +30,7 @@ where To: TxToSpecified, { let mut step = ScQueryStep::new() - .to(address_annotated(env, to)) + .to(address_annotated(env, &to)) .function(data.function_name.to_string().as_str()); for arg in data.arg_buffer.iter_buffers() { step.tx.arguments.push(arg.to_vec().into()); diff --git a/framework/scenario/src/scenario/tx_to_step/tx_to_step_transfer.rs b/framework/scenario/src/scenario/tx_to_step/tx_to_step_transfer.rs index 637d840e4e..d2bf9636c9 100644 --- a/framework/scenario/src/scenario/tx_to_step/tx_to_step_transfer.rs +++ b/framework/scenario/src/scenario/tx_to_step/tx_to_step_transfer.rs @@ -40,8 +40,8 @@ where Gas: TxGas, { let mut step = TransferStep::new() - .from(address_annotated(env, from)) - .to(address_annotated(env, to)); + .from(address_annotated(env, &from)) + .to(address_annotated(env, &to)); step.tx.gas_limit = gas_annotated(env, gas); From ffcf2e665c71606171278e6142918af366307c25 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 23 Apr 2024 11:32:59 +0300 Subject: [PATCH 054/185] remove redundant balance set --- .../tests/rewards_distribution_blackbox_test.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs index a670ef91ca..9958a518ca 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs @@ -124,8 +124,7 @@ fn test_compute_brackets() { .account(REWARDS_DISTRIBUTION_ADDRESS_EXPR) .nonce(1) .owner(OWNER_ADDRESS_EXPR) - .code(rewards_distribution_code) - .balance("0"); + .code(rewards_distribution_code); state.world.whitebox_call( &state.rewards_distribution_whitebox, From 9037d847753ee324434145c1800f99c1fd535ee3 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 23 Apr 2024 15:55:45 +0300 Subject: [PATCH 055/185] sc 0.49.0-alpha.4, sdk 0.4.0-alpha.4 --- CHANGELOG.md | 4 ++++ Cargo.lock | 20 +++++++++---------- contracts/benchmarks/large-storage/Cargo.toml | 4 ++-- .../benchmarks/large-storage/meta/Cargo.toml | 2 +- .../benchmarks/large-storage/wasm/Cargo.toml | 2 +- .../mappers/benchmark-common/Cargo.toml | 4 ++-- .../mappers/linked-list-repeat/Cargo.toml | 4 ++-- .../linked-list-repeat/meta/Cargo.toml | 2 +- .../linked-list-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/map-repeat/Cargo.toml | 4 ++-- .../mappers/map-repeat/meta/Cargo.toml | 2 +- .../mappers/map-repeat/wasm/Cargo.toml | 2 +- .../mappers/queue-repeat/Cargo.toml | 4 ++-- .../mappers/queue-repeat/meta/Cargo.toml | 2 +- .../mappers/queue-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/set-repeat/Cargo.toml | 4 ++-- .../mappers/set-repeat/meta/Cargo.toml | 2 +- .../mappers/set-repeat/wasm/Cargo.toml | 2 +- .../mappers/single-value-repeat/Cargo.toml | 4 ++-- .../single-value-repeat/meta/Cargo.toml | 2 +- .../single-value-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/vec-repeat/Cargo.toml | 4 ++-- .../mappers/vec-repeat/meta/Cargo.toml | 2 +- .../mappers/vec-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/send-tx-repeat/Cargo.toml | 4 ++-- .../benchmarks/send-tx-repeat/meta/Cargo.toml | 2 +- .../benchmarks/send-tx-repeat/wasm/Cargo.toml | 2 +- contracts/benchmarks/str-repeat/Cargo.toml | 4 ++-- .../benchmarks/str-repeat/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../benchmarks/str-repeat/wasm/Cargo.toml | 2 +- contracts/core/price-aggregator/Cargo.toml | 8 ++++---- .../core/price-aggregator/meta/Cargo.toml | 4 ++-- .../core/price-aggregator/wasm/Cargo.toml | 2 +- contracts/core/wegld-swap/Cargo.toml | 8 ++++---- contracts/core/wegld-swap/meta/Cargo.toml | 4 ++-- contracts/core/wegld-swap/wasm/Cargo.toml | 2 +- contracts/examples/adder/Cargo.toml | 4 ++-- contracts/examples/adder/interact/Cargo.toml | 2 +- contracts/examples/adder/meta/Cargo.toml | 2 +- contracts/examples/adder/wasm/Cargo.toml | 2 +- .../bonding-curve-contract/Cargo.toml | 6 +++--- .../bonding-curve-contract/meta/Cargo.toml | 2 +- .../bonding-curve-contract/wasm/Cargo.toml | 2 +- contracts/examples/check-pause/Cargo.toml | 6 +++--- .../examples/check-pause/meta/Cargo.toml | 2 +- .../examples/check-pause/wasm/Cargo.toml | 2 +- .../examples/crowdfunding-esdt/Cargo.toml | 4 ++-- .../crowdfunding-esdt/meta/Cargo.toml | 2 +- .../crowdfunding-esdt/wasm/Cargo.toml | 2 +- contracts/examples/crypto-bubbles/Cargo.toml | 4 ++-- .../examples/crypto-bubbles/meta/Cargo.toml | 2 +- .../examples/crypto-bubbles/wasm/Cargo.toml | 2 +- .../crypto-kitties/common/kitty/Cargo.toml | 2 +- .../crypto-kitties/common/random/Cargo.toml | 2 +- .../crypto-kitties/kitty-auction/Cargo.toml | 4 ++-- .../kitty-auction/meta/Cargo.toml | 2 +- .../kitty-auction/wasm/Cargo.toml | 2 +- .../kitty-genetic-alg/Cargo.toml | 4 ++-- .../kitty-genetic-alg/meta/Cargo.toml | 2 +- .../kitty-genetic-alg/wasm/Cargo.toml | 2 +- .../crypto-kitties/kitty-ownership/Cargo.toml | 4 ++-- .../kitty-ownership/meta/Cargo.toml | 2 +- .../kitty-ownership/wasm/Cargo.toml | 2 +- contracts/examples/crypto-zombies/Cargo.toml | 4 ++-- .../examples/crypto-zombies/meta/Cargo.toml | 2 +- .../examples/crypto-zombies/wasm/Cargo.toml | 2 +- contracts/examples/digital-cash/Cargo.toml | 4 ++-- .../examples/digital-cash/meta/Cargo.toml | 2 +- .../examples/digital-cash/wasm/Cargo.toml | 2 +- contracts/examples/empty/Cargo.toml | 4 ++-- contracts/examples/empty/meta/Cargo.toml | 2 +- contracts/examples/empty/wasm/Cargo.toml | 2 +- .../esdt-transfer-with-fee/Cargo.toml | 4 ++-- .../esdt-transfer-with-fee/meta/Cargo.toml | 2 +- .../esdt-transfer-with-fee/wasm/Cargo.toml | 2 +- contracts/examples/factorial/Cargo.toml | 4 ++-- contracts/examples/factorial/meta/Cargo.toml | 2 +- contracts/examples/factorial/wasm/Cargo.toml | 2 +- contracts/examples/fractional-nfts/Cargo.toml | 6 +++--- .../examples/fractional-nfts/meta/Cargo.toml | 2 +- .../examples/fractional-nfts/wasm/Cargo.toml | 2 +- contracts/examples/lottery-esdt/Cargo.toml | 4 ++-- .../examples/lottery-esdt/meta/Cargo.toml | 2 +- .../examples/lottery-esdt/wasm/Cargo.toml | 2 +- contracts/examples/multisig/Cargo.toml | 8 ++++---- .../examples/multisig/interact/Cargo.toml | 6 +++--- contracts/examples/multisig/meta/Cargo.toml | 2 +- .../multisig/wasm-multisig-full/Cargo.toml | 2 +- .../multisig/wasm-multisig-view/Cargo.toml | 2 +- contracts/examples/multisig/wasm/Cargo.toml | 2 +- contracts/examples/nft-minter/Cargo.toml | 4 ++-- contracts/examples/nft-minter/meta/Cargo.toml | 2 +- contracts/examples/nft-minter/wasm/Cargo.toml | 2 +- .../examples/nft-storage-prepay/Cargo.toml | 4 ++-- .../nft-storage-prepay/meta/Cargo.toml | 2 +- .../nft-storage-prepay/wasm/Cargo.toml | 2 +- .../examples/nft-subscription/Cargo.toml | 6 +++--- .../examples/nft-subscription/meta/Cargo.toml | 2 +- .../examples/nft-subscription/wasm/Cargo.toml | 2 +- .../examples/order-book/factory/Cargo.toml | 4 ++-- .../order-book/factory/meta/Cargo.toml | 2 +- .../order-book/factory/wasm/Cargo.toml | 2 +- contracts/examples/order-book/pair/Cargo.toml | 4 ++-- .../examples/order-book/pair/meta/Cargo.toml | 2 +- .../examples/order-book/pair/wasm/Cargo.toml | 2 +- contracts/examples/ping-pong-egld/Cargo.toml | 4 ++-- .../examples/ping-pong-egld/meta/Cargo.toml | 2 +- .../examples/ping-pong-egld/wasm/Cargo.toml | 2 +- contracts/examples/proxy-pause/Cargo.toml | 4 ++-- .../examples/proxy-pause/meta/Cargo.toml | 2 +- .../examples/proxy-pause/wasm/Cargo.toml | 2 +- .../examples/rewards-distribution/Cargo.toml | 6 +++--- .../rewards-distribution/meta/Cargo.toml | 2 +- .../rewards-distribution/wasm/Cargo.toml | 2 +- contracts/examples/seed-nft-minter/Cargo.toml | 6 +++--- .../examples/seed-nft-minter/meta/Cargo.toml | 2 +- .../examples/seed-nft-minter/wasm/Cargo.toml | 2 +- contracts/examples/token-release/Cargo.toml | 4 ++-- .../examples/token-release/meta/Cargo.toml | 2 +- .../examples/token-release/wasm/Cargo.toml | 2 +- contracts/feature-tests/abi-tester/Cargo.toml | 6 +++--- .../abi_tester_expected_main.abi.json | 2 +- .../abi_tester_expected_view.abi.json | 2 +- .../feature-tests/abi-tester/meta/Cargo.toml | 2 +- .../abi-tester/wasm-abi-tester-ev/Cargo.toml | 2 +- .../feature-tests/abi-tester/wasm/Cargo.toml | 2 +- .../feature-tests/alloc-features/Cargo.toml | 4 ++-- .../alloc-features/meta/Cargo.toml | 2 +- .../wasm-alloc-mem-fail/Cargo.toml | 2 +- .../wasm-alloc-mem-leaking/Cargo.toml | 2 +- .../alloc-features/wasm/Cargo.toml | 2 +- .../feature-tests/basic-features/Cargo.toml | 6 +++--- .../basic-features/interact/Cargo.toml | 2 +- .../basic-features/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../basic-features/wasm/Cargo.toml | 2 +- .../big-float-features/Cargo.toml | 4 ++-- .../big-float-features/meta/Cargo.toml | 2 +- .../big-float-features/wasm/Cargo.toml | 2 +- .../feature-tests/composability/Cargo.toml | 4 ++-- .../builtin-func-features/Cargo.toml | 4 ++-- .../builtin-func-features/meta/Cargo.toml | 2 +- .../builtin-func-features/wasm/Cargo.toml | 2 +- .../esdt-contract-pair/Cargo.toml | 4 ++-- .../first-contract/Cargo.toml | 4 ++-- .../first-contract/meta/Cargo.toml | 4 ++-- .../first-contract/wasm/Cargo.toml | 2 +- .../second-contract/Cargo.toml | 4 ++-- .../second-contract/meta/Cargo.toml | 4 ++-- .../second-contract/wasm/Cargo.toml | 2 +- .../Cargo.toml | 4 ++-- .../child/Cargo.toml | 4 ++-- .../child/meta/Cargo.toml | 4 ++-- .../child/wasm/Cargo.toml | 2 +- .../parent/Cargo.toml | 4 ++-- .../parent/meta/Cargo.toml | 4 ++-- .../parent/wasm/Cargo.toml | 2 +- .../composability/forwarder-legacy/Cargo.toml | 4 ++-- .../forwarder-legacy/meta/Cargo.toml | 2 +- .../forwarder-legacy/wasm/Cargo.toml | 2 +- .../composability/forwarder-queue/Cargo.toml | 6 +++--- .../forwarder-queue/meta/Cargo.toml | 2 +- .../wasm-forwarder-queue-promises/Cargo.toml | 2 +- .../forwarder-queue/wasm/Cargo.toml | 2 +- .../composability/forwarder-raw/Cargo.toml | 4 ++-- .../forwarder-raw/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../forwarder-raw/wasm/Cargo.toml | 2 +- .../composability/forwarder/Cargo.toml | 4 ++-- .../composability/forwarder/meta/Cargo.toml | 2 +- .../composability/forwarder/wasm/Cargo.toml | 2 +- .../composability/interact/Cargo.toml | 4 ++-- .../local-esdt-and-nft/Cargo.toml | 4 ++-- .../local-esdt-and-nft/meta/Cargo.toml | 2 +- .../local-esdt-and-nft/wasm/Cargo.toml | 2 +- .../promises-features/Cargo.toml | 2 +- .../promises-features/meta/Cargo.toml | 2 +- .../promises-features/wasm/Cargo.toml | 2 +- .../composability/proxy-test-first/Cargo.toml | 4 ++-- .../proxy-test-first/meta/Cargo.toml | 2 +- .../proxy-test-first/wasm/Cargo.toml | 2 +- .../proxy-test-second/Cargo.toml | 4 ++-- .../proxy-test-second/meta/Cargo.toml | 2 +- .../proxy-test-second/wasm/Cargo.toml | 2 +- .../composability/recursive-caller/Cargo.toml | 4 ++-- .../recursive-caller/meta/Cargo.toml | 2 +- .../recursive-caller/wasm/Cargo.toml | 2 +- .../transfer-role-features/Cargo.toml | 6 +++--- .../transfer-role-features/meta/Cargo.toml | 2 +- .../transfer-role-features/wasm/Cargo.toml | 2 +- .../composability/vault/Cargo.toml | 4 ++-- .../composability/vault/meta/Cargo.toml | 2 +- .../vault/wasm-vault-promises/Cargo.toml | 2 +- .../vault/wasm-vault-upgrade/Cargo.toml | 2 +- .../composability/vault/wasm/Cargo.toml | 2 +- .../crowdfunding-erc20/Cargo.toml | 4 ++-- .../crowdfunding-erc20/meta/Cargo.toml | 2 +- .../crowdfunding-erc20/wasm/Cargo.toml | 2 +- .../erc1155-marketplace/Cargo.toml | 4 ++-- .../erc1155-marketplace/meta/Cargo.toml | 2 +- .../erc1155-marketplace/wasm/Cargo.toml | 2 +- .../erc1155-user-mock/Cargo.toml | 4 ++-- .../erc1155-user-mock/meta/Cargo.toml | 2 +- .../erc1155-user-mock/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc1155/Cargo.toml | 4 ++-- .../erc1155/meta/Cargo.toml | 2 +- .../erc1155/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc20/Cargo.toml | 4 ++-- .../erc-style-contracts/erc20/meta/Cargo.toml | 2 +- .../erc-style-contracts/erc20/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc721/Cargo.toml | 4 ++-- .../erc721/meta/Cargo.toml | 2 +- .../erc721/wasm/Cargo.toml | 2 +- .../lottery-erc20/Cargo.toml | 4 ++-- .../lottery-erc20/meta/Cargo.toml | 2 +- .../lottery-erc20/wasm/Cargo.toml | 2 +- .../esdt-system-sc-mock/Cargo.toml | 4 ++-- .../esdt-system-sc-mock/meta/Cargo.toml | 2 +- .../esdt-system-sc-mock/wasm/Cargo.toml | 2 +- .../exchange-features/Cargo.toml | 4 ++-- .../exchange-features/meta/Cargo.toml | 2 +- .../exchange-features/wasm/Cargo.toml | 2 +- .../formatted-message-features/Cargo.toml | 4 ++-- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- .../managed-map-features/Cargo.toml | 4 ++-- .../managed-map-features/meta/Cargo.toml | 2 +- .../managed-map-features/wasm/Cargo.toml | 2 +- .../multi-contract-features/Cargo.toml | 4 ++-- .../multi-contract-features/meta/Cargo.toml | 2 +- .../wasm-multi-contract-alt-impl/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../multi-contract-features/wasm/Cargo.toml | 2 +- .../panic-message-features/Cargo.toml | 4 ++-- .../panic-message-features/meta/Cargo.toml | 2 +- .../panic-message-features/wasm/Cargo.toml | 2 +- .../feature-tests/payable-features/Cargo.toml | 4 ++-- .../payable-features/meta/Cargo.toml | 2 +- .../payable-features/wasm/Cargo.toml | 2 +- .../rust-snippets-generator-test/Cargo.toml | 4 ++-- .../interact-rs/Cargo.toml | 2 +- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- .../rust-testing-framework-tester/Cargo.toml | 4 ++-- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- .../feature-tests/scenario-tester/Cargo.toml | 4 ++-- .../scenario-tester/meta/Cargo.toml | 2 +- .../scenario-tester/wasm/Cargo.toml | 2 +- contracts/feature-tests/use-module/Cargo.toml | 8 ++++---- .../feature-tests/use-module/meta/Cargo.toml | 2 +- .../use-module/meta/abi/Cargo.toml | 4 ++-- .../use_module_expected_main.abi.json | 2 +- .../use_module_expected_view.abi.json | 2 +- .../wasm-use-module-view/Cargo.toml | 2 +- .../feature-tests/use-module/wasm/Cargo.toml | 2 +- contracts/modules/Cargo.toml | 4 ++-- framework/base/Cargo.toml | 4 ++-- framework/base/src/types/interaction/tx.rs | 3 ++- framework/derive/Cargo.toml | 2 +- framework/meta/Cargo.toml | 4 ++-- framework/scenario/Cargo.toml | 8 ++++---- framework/snippets/Cargo.toml | 6 +++--- framework/wasm-adapter/Cargo.toml | 4 ++-- sdk/core/Cargo.toml | 2 +- tools/mxpy-snippet-generator/Cargo.toml | 2 +- tools/rust-debugger/format-tests/Cargo.toml | 4 ++-- 271 files changed, 400 insertions(+), 395 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32de5c4b7d..c936792ccb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,10 @@ They are: - `multiversx-chain-scenario-format`, in short `scenario-format`, scenario JSON serializer/deserializer, 1 crate. - `multiversx-sdk`, in short `sdk`, allows communication with the chain(s), 1 crate. + +## [sc 0.49.0-alpha.4, sdk 0.4.0-alpha.4] - 2024-04-23 +Fourth pre-release, contains many interactor improvements, including improved tx polling. + ## [sc 0.49.0-alpha.3] - 2024-04-13 Third pre-release of the unified syntax, includes backwards compatibility fixes and testing set state/check state. diff --git a/Cargo.lock b/Cargo.lock index 0b6d17acb1..4ecc1b6d04 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -1815,7 +1815,7 @@ checksum = "b59072fa0624b55ae5ae3fa6bfa91515bbeb4ac440214bc4a509e2c8806d6e9f" [[package]] name = "multiversx-price-aggregator-sc" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "arrayvec", "getrandom 0.2.12", @@ -1836,7 +1836,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "bitflags 2.4.2", "hex-literal", @@ -1866,7 +1866,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -1877,7 +1877,7 @@ dependencies = [ [[package]] name = "multiversx-sc-meta" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "clap", "colored", @@ -1903,14 +1903,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-scenario" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "base64", "bech32", @@ -1936,7 +1936,7 @@ dependencies = [ [[package]] name = "multiversx-sc-snippets" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "base64", "env_logger", @@ -1951,14 +1951,14 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sdk" -version = "0.3.2" +version = "0.4.0-alpha.4" dependencies = [ "anyhow", "base64", @@ -1982,7 +1982,7 @@ dependencies = [ [[package]] name = "multiversx-wegld-swap-sc" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", "multiversx-sc-modules", diff --git a/contracts/benchmarks/large-storage/Cargo.toml b/contracts/benchmarks/large-storage/Cargo.toml index e937ae69a1..238cfc0286 100644 --- a/contracts/benchmarks/large-storage/Cargo.toml +++ b/contracts/benchmarks/large-storage/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/large_storage.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/large-storage/meta/Cargo.toml b/contracts/benchmarks/large-storage/meta/Cargo.toml index a8861c9cfc..5ab3b3f4ea 100644 --- a/contracts/benchmarks/large-storage/meta/Cargo.toml +++ b/contracts/benchmarks/large-storage/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.toml b/contracts/benchmarks/large-storage/wasm/Cargo.toml index c177dffe51..ee513468bf 100644 --- a/contracts/benchmarks/large-storage/wasm/Cargo.toml +++ b/contracts/benchmarks/large-storage/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/benchmark-common/Cargo.toml b/contracts/benchmarks/mappers/benchmark-common/Cargo.toml index 16074cce04..3143c4c059 100644 --- a/contracts/benchmarks/mappers/benchmark-common/Cargo.toml +++ b/contracts/benchmarks/mappers/benchmark-common/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml index 92aa9e00a0..390e9c729a 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml index 67c262e06a..f719432fba 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml index 225bb4bc46..5218df0664 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/map-repeat/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/Cargo.toml index f554b0b088..53a9c8cb30 100644 --- a/contracts/benchmarks/mappers/map-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml index e5bf0384e1..b8d61cf474 100644 --- a/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml index a5ff1b5db3..6153f35d8f 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/queue-repeat/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/Cargo.toml index a04e9481a2..7eae0e8177 100644 --- a/contracts/benchmarks/mappers/queue-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml index 3add869333..ef5d420e27 100644 --- a/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml index ccbefcb68d..2ebeda1f2e 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/set-repeat/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/Cargo.toml index c1d4afd20a..ebf2958e90 100644 --- a/contracts/benchmarks/mappers/set-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml index c93fb7908e..269df5be03 100644 --- a/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml index 4b90afe784..aa37b34c3e 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml index 2d8e92e82a..34e3426254 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml index a125bba2c5..8487ef015b 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml index 411ec9a1ca..3ac2ae3b96 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/vec-repeat/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/Cargo.toml index d812225d87..8c7b4a9d8e 100644 --- a/contracts/benchmarks/mappers/vec-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml index cec4fc321f..fc6c8ebd33 100644 --- a/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml index f360097a23..8779eaa521 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/send-tx-repeat/Cargo.toml b/contracts/benchmarks/send-tx-repeat/Cargo.toml index 64789aa2d0..440bfa0946 100644 --- a/contracts/benchmarks/send-tx-repeat/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/send_tx_repeat.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml b/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml index fca6291503..fb2c8f50cf 100644 --- a/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml index 62ea6206bf..f42955ebbd 100644 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/Cargo.toml b/contracts/benchmarks/str-repeat/Cargo.toml index d000c531d5..0d46d631dd 100644 --- a/contracts/benchmarks/str-repeat/Cargo.toml +++ b/contracts/benchmarks/str-repeat/Cargo.toml @@ -12,10 +12,10 @@ path = "src/str_repeat.rs" managed-buffer-builder-cached = ["multiversx-sc/managed-buffer-builder-cached"] [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/str-repeat/meta/Cargo.toml b/contracts/benchmarks/str-repeat/meta/Cargo.toml index 4b7f1c6022..dbf074583d 100644 --- a/contracts/benchmarks/str-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/str-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml index 64863e4645..b840dd0a3b 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml index 36033c9f95..53db7f0b4a 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml @@ -26,7 +26,7 @@ path = ".." features = ["managed-buffer-builder-cached"] [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.toml b/contracts/benchmarks/str-repeat/wasm/Cargo.toml index a62bedbaca..fa54772480 100644 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/core/price-aggregator/Cargo.toml b/contracts/core/price-aggregator/Cargo.toml index 5ac8cd49db..aad9c4ce9c 100644 --- a/contracts/core/price-aggregator/Cargo.toml +++ b/contracts/core/price-aggregator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-price-aggregator-sc" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" authors = [ "Claudiu-Marcel Bruda ", "MultiversX ", @@ -19,15 +19,15 @@ edition = "2021" path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dependencies] diff --git a/contracts/core/price-aggregator/meta/Cargo.toml b/contracts/core/price-aggregator/meta/Cargo.toml index 17751a1628..5b01eac017 100644 --- a/contracts/core/price-aggregator/meta/Cargo.toml +++ b/contracts/core/price-aggregator/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/core/price-aggregator/wasm/Cargo.toml b/contracts/core/price-aggregator/wasm/Cargo.toml index d402bd0d78..c4d502a4ca 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.toml +++ b/contracts/core/price-aggregator/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/core/wegld-swap/Cargo.toml b/contracts/core/wegld-swap/Cargo.toml index f889200683..d61623cc64 100644 --- a/contracts/core/wegld-swap/Cargo.toml +++ b/contracts/core/wegld-swap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-wegld-swap-sc" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" authors = [ "Dorin Iancu ", @@ -20,13 +20,13 @@ edition = "2021" path = "src/wegld.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/core/wegld-swap/meta/Cargo.toml b/contracts/core/wegld-swap/meta/Cargo.toml index b4cd52cd9f..2956444fc8 100644 --- a/contracts/core/wegld-swap/meta/Cargo.toml +++ b/contracts/core/wegld-swap/meta/Cargo.toml @@ -11,10 +11,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/core/wegld-swap/wasm/Cargo.toml b/contracts/core/wegld-swap/wasm/Cargo.toml index b9fa10fa9f..f21e9e13cb 100644 --- a/contracts/core/wegld-swap/wasm/Cargo.toml +++ b/contracts/core/wegld-swap/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/adder/Cargo.toml b/contracts/examples/adder/Cargo.toml index e4bb857c31..489904d6d6 100644 --- a/contracts/examples/adder/Cargo.toml +++ b/contracts/examples/adder/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/adder.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/adder/interact/Cargo.toml b/contracts/examples/adder/interact/Cargo.toml index d955f0bfb6..3cd72a5e2b 100644 --- a/contracts/examples/adder/interact/Cargo.toml +++ b/contracts/examples/adder/interact/Cargo.toml @@ -18,5 +18,5 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/snippets" diff --git a/contracts/examples/adder/meta/Cargo.toml b/contracts/examples/adder/meta/Cargo.toml index 1581fb0874..3e56ed66d7 100644 --- a/contracts/examples/adder/meta/Cargo.toml +++ b/contracts/examples/adder/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/adder/wasm/Cargo.toml b/contracts/examples/adder/wasm/Cargo.toml index 613d0060ce..a759e0edf8 100644 --- a/contracts/examples/adder/wasm/Cargo.toml +++ b/contracts/examples/adder/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/bonding-curve-contract/Cargo.toml b/contracts/examples/bonding-curve-contract/Cargo.toml index 03d2d06db9..4a9d90bddc 100644 --- a/contracts/examples/bonding-curve-contract/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/bonding_curve_contract.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/bonding-curve-contract/meta/Cargo.toml b/contracts/examples/bonding-curve-contract/meta/Cargo.toml index 9678ba1852..dbcdbc57e0 100644 --- a/contracts/examples/bonding-curve-contract/meta/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml index c7487594f9..bf4f7f2d5b 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/check-pause/Cargo.toml b/contracts/examples/check-pause/Cargo.toml index 1838cf3cd0..355224e160 100644 --- a/contracts/examples/check-pause/Cargo.toml +++ b/contracts/examples/check-pause/Cargo.toml @@ -12,14 +12,14 @@ path = "src/check_pause.rs" num-bigint = "0.4" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/check-pause/meta/Cargo.toml b/contracts/examples/check-pause/meta/Cargo.toml index 85b2e19f06..21465dc7ed 100644 --- a/contracts/examples/check-pause/meta/Cargo.toml +++ b/contracts/examples/check-pause/meta/Cargo.toml @@ -9,6 +9,6 @@ authors = ["Alin Cruceat "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/check-pause/wasm/Cargo.toml b/contracts/examples/check-pause/wasm/Cargo.toml index 7545ebf696..0602c3b653 100644 --- a/contracts/examples/check-pause/wasm/Cargo.toml +++ b/contracts/examples/check-pause/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crowdfunding-esdt/Cargo.toml b/contracts/examples/crowdfunding-esdt/Cargo.toml index 9a9f88f258..498b1999b6 100644 --- a/contracts/examples/crowdfunding-esdt/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/crowdfunding_esdt.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/examples/crowdfunding-esdt/meta/Cargo.toml b/contracts/examples/crowdfunding-esdt/meta/Cargo.toml index 3fa9486d89..191c2d0a28 100644 --- a/contracts/examples/crowdfunding-esdt/meta/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml index 88e4c7b4c5..93c39e692f 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-bubbles/Cargo.toml b/contracts/examples/crypto-bubbles/Cargo.toml index 992a7df997..6e841be6b9 100644 --- a/contracts/examples/crypto-bubbles/Cargo.toml +++ b/contracts/examples/crypto-bubbles/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/crypto_bubbles.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/crypto-bubbles/meta/Cargo.toml b/contracts/examples/crypto-bubbles/meta/Cargo.toml index 6966cd9bff..60b167f206 100644 --- a/contracts/examples/crypto-bubbles/meta/Cargo.toml +++ b/contracts/examples/crypto-bubbles/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.toml b/contracts/examples/crypto-bubbles/wasm/Cargo.toml index 7ed5a2fe05..cbfe399baf 100644 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.toml +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/common/kitty/Cargo.toml b/contracts/examples/crypto-kitties/common/kitty/Cargo.toml index 2f81bfefd2..d83a9fdd5d 100644 --- a/contracts/examples/crypto-kitties/common/kitty/Cargo.toml +++ b/contracts/examples/crypto-kitties/common/kitty/Cargo.toml @@ -9,7 +9,7 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/base" [dependencies.random] diff --git a/contracts/examples/crypto-kitties/common/random/Cargo.toml b/contracts/examples/crypto-kitties/common/random/Cargo.toml index 1471748b18..bfab4a12d7 100644 --- a/contracts/examples/crypto-kitties/common/random/Cargo.toml +++ b/contracts/examples/crypto-kitties/common/random/Cargo.toml @@ -8,5 +8,5 @@ edition = "2021" path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/base" diff --git a/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml index f8481bac43..ce7971579f 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml @@ -17,9 +17,9 @@ version = "0.0.0" path = "../kitty-ownership" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml index 07c6da37c1..938f83ffd6 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml index 59dd92f035..5234956e51 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml index 82976fe38b..3027dad875 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml @@ -18,9 +18,9 @@ version = "0.0.0" path = "../common/random" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml index 662321fef8..c0e781f92f 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml index e1b8fc8e9f..f4a92c4b71 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml index 1804881778..642afa1862 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml @@ -21,9 +21,9 @@ version = "0.0.0" path = "../kitty-genetic-alg" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml index 8c5c36e49e..8937e968d2 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml index 533db13539..def5af05df 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-zombies/Cargo.toml b/contracts/examples/crypto-zombies/Cargo.toml index d3ab2af074..3888d9ecb7 100644 --- a/contracts/examples/crypto-zombies/Cargo.toml +++ b/contracts/examples/crypto-zombies/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dependencies.kitty] diff --git a/contracts/examples/crypto-zombies/meta/Cargo.toml b/contracts/examples/crypto-zombies/meta/Cargo.toml index 8d208fd522..2d94d2d074 100644 --- a/contracts/examples/crypto-zombies/meta/Cargo.toml +++ b/contracts/examples/crypto-zombies/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.toml b/contracts/examples/crypto-zombies/wasm/Cargo.toml index 12124bb027..d99df32433 100644 --- a/contracts/examples/crypto-zombies/wasm/Cargo.toml +++ b/contracts/examples/crypto-zombies/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/digital-cash/Cargo.toml b/contracts/examples/digital-cash/Cargo.toml index a38a59b831..05df36f381 100644 --- a/contracts/examples/digital-cash/Cargo.toml +++ b/contracts/examples/digital-cash/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/digital_cash.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/digital-cash/meta/Cargo.toml b/contracts/examples/digital-cash/meta/Cargo.toml index 42c42bdd13..a54b5f1ea3 100644 --- a/contracts/examples/digital-cash/meta/Cargo.toml +++ b/contracts/examples/digital-cash/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/digital-cash/wasm/Cargo.toml b/contracts/examples/digital-cash/wasm/Cargo.toml index f46d4873a3..fd23cf19e3 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.toml +++ b/contracts/examples/digital-cash/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/empty/Cargo.toml b/contracts/examples/empty/Cargo.toml index 1ef8b5c4c2..ff22118a94 100644 --- a/contracts/examples/empty/Cargo.toml +++ b/contracts/examples/empty/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/empty.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/examples/empty/meta/Cargo.toml b/contracts/examples/empty/meta/Cargo.toml index 4405415a13..80e2c84bdf 100644 --- a/contracts/examples/empty/meta/Cargo.toml +++ b/contracts/examples/empty/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/empty/wasm/Cargo.toml b/contracts/examples/empty/wasm/Cargo.toml index ac45db4841..61cf8db541 100644 --- a/contracts/examples/empty/wasm/Cargo.toml +++ b/contracts/examples/empty/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/esdt-transfer-with-fee/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/Cargo.toml index 05712405c8..10ef50f36c 100644 --- a/contracts/examples/esdt-transfer-with-fee/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/esdt_transfer_with_fee.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml index 3b7d671fa5..a40832325b 100644 --- a/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml index 607cf21443..07cb085e0f 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/factorial/Cargo.toml b/contracts/examples/factorial/Cargo.toml index d58309586d..49724f1760 100644 --- a/contracts/examples/factorial/Cargo.toml +++ b/contracts/examples/factorial/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/factorial.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/factorial/meta/Cargo.toml b/contracts/examples/factorial/meta/Cargo.toml index 2ed75a17e5..2a5a7f7a8f 100644 --- a/contracts/examples/factorial/meta/Cargo.toml +++ b/contracts/examples/factorial/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/factorial/wasm/Cargo.toml b/contracts/examples/factorial/wasm/Cargo.toml index fe4e508dc9..4625a90cc9 100644 --- a/contracts/examples/factorial/wasm/Cargo.toml +++ b/contracts/examples/factorial/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/fractional-nfts/Cargo.toml b/contracts/examples/fractional-nfts/Cargo.toml index 8c11b19fdc..ec60d9d32a 100644 --- a/contracts/examples/fractional-nfts/Cargo.toml +++ b/contracts/examples/fractional-nfts/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/fractional_nfts.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/fractional-nfts/meta/Cargo.toml b/contracts/examples/fractional-nfts/meta/Cargo.toml index ecb2f5f2f1..d7a32ed9b1 100644 --- a/contracts/examples/fractional-nfts/meta/Cargo.toml +++ b/contracts/examples/fractional-nfts/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.toml b/contracts/examples/fractional-nfts/wasm/Cargo.toml index f20930d2ad..47c9c4a88c 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.toml +++ b/contracts/examples/fractional-nfts/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/lottery-esdt/Cargo.toml b/contracts/examples/lottery-esdt/Cargo.toml index e7eb4659ab..c4d7d29cd3 100644 --- a/contracts/examples/lottery-esdt/Cargo.toml +++ b/contracts/examples/lottery-esdt/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lottery.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/lottery-esdt/meta/Cargo.toml b/contracts/examples/lottery-esdt/meta/Cargo.toml index 8233b7c512..b2cd28df5c 100644 --- a/contracts/examples/lottery-esdt/meta/Cargo.toml +++ b/contracts/examples/lottery-esdt/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.toml b/contracts/examples/lottery-esdt/wasm/Cargo.toml index 69c7b818d5..5da7483f04 100644 --- a/contracts/examples/lottery-esdt/wasm/Cargo.toml +++ b/contracts/examples/lottery-esdt/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/Cargo.toml b/contracts/examples/multisig/Cargo.toml index bcce2fa6d0..035057ec58 100644 --- a/contracts/examples/multisig/Cargo.toml +++ b/contracts/examples/multisig/Cargo.toml @@ -9,15 +9,15 @@ publish = false path = "src/multisig.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies.adder] @@ -27,7 +27,7 @@ path = "../adder" path = "../factorial" [dev-dependencies.multiversx-wegld-swap-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../core/wegld-swap" [dev-dependencies] diff --git a/contracts/examples/multisig/interact/Cargo.toml b/contracts/examples/multisig/interact/Cargo.toml index 2f1e91bbdd..32869be20c 100644 --- a/contracts/examples/multisig/interact/Cargo.toml +++ b/contracts/examples/multisig/interact/Cargo.toml @@ -18,13 +18,13 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../contracts/modules" [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/snippets" [dependencies.multiversx-sc-scenario] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/examples/multisig/meta/Cargo.toml b/contracts/examples/multisig/meta/Cargo.toml index 5c26bd8270..0e29c29265 100644 --- a/contracts/examples/multisig/meta/Cargo.toml +++ b/contracts/examples/multisig/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml index 5f9c065231..a2d98375aa 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml index 699aee56ba..2c6a48b470 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/wasm/Cargo.toml b/contracts/examples/multisig/wasm/Cargo.toml index 6001a724d2..f2202ffdb1 100644 --- a/contracts/examples/multisig/wasm/Cargo.toml +++ b/contracts/examples/multisig/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-minter/Cargo.toml b/contracts/examples/nft-minter/Cargo.toml index c5918b6f7b..eb2ec96156 100644 --- a/contracts/examples/nft-minter/Cargo.toml +++ b/contracts/examples/nft-minter/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-minter/meta/Cargo.toml b/contracts/examples/nft-minter/meta/Cargo.toml index 9b562d0350..cee7821359 100644 --- a/contracts/examples/nft-minter/meta/Cargo.toml +++ b/contracts/examples/nft-minter/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-minter/wasm/Cargo.toml b/contracts/examples/nft-minter/wasm/Cargo.toml index 1243696a1c..241a4215e2 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.toml +++ b/contracts/examples/nft-minter/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-storage-prepay/Cargo.toml b/contracts/examples/nft-storage-prepay/Cargo.toml index 87521e853e..136281df96 100644 --- a/contracts/examples/nft-storage-prepay/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/Cargo.toml @@ -10,9 +10,9 @@ path = "src/nft_storage_prepay.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-storage-prepay/meta/Cargo.toml b/contracts/examples/nft-storage-prepay/meta/Cargo.toml index 5682886f56..c1ddf2adc1 100644 --- a/contracts/examples/nft-storage-prepay/meta/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/meta/Cargo.toml @@ -11,6 +11,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml index 229c6a4717..99a5c3c1a6 100644 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-subscription/Cargo.toml b/contracts/examples/nft-subscription/Cargo.toml index b26f94c434..be7a39917e 100644 --- a/contracts/examples/nft-subscription/Cargo.toml +++ b/contracts/examples/nft-subscription/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-subscription/meta/Cargo.toml b/contracts/examples/nft-subscription/meta/Cargo.toml index 8b62235f45..d122df52df 100644 --- a/contracts/examples/nft-subscription/meta/Cargo.toml +++ b/contracts/examples/nft-subscription/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-subscription/wasm/Cargo.toml b/contracts/examples/nft-subscription/wasm/Cargo.toml index ca9a314ce2..532cc400e4 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.toml +++ b/contracts/examples/nft-subscription/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/order-book/factory/Cargo.toml b/contracts/examples/order-book/factory/Cargo.toml index 9fb1974147..9a4978df8a 100644 --- a/contracts/examples/order-book/factory/Cargo.toml +++ b/contracts/examples/order-book/factory/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/examples/order-book/factory/meta/Cargo.toml b/contracts/examples/order-book/factory/meta/Cargo.toml index c5fe703a4a..3518de30d2 100644 --- a/contracts/examples/order-book/factory/meta/Cargo.toml +++ b/contracts/examples/order-book/factory/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/order-book/factory/wasm/Cargo.toml b/contracts/examples/order-book/factory/wasm/Cargo.toml index 06ae5207f1..1ee94f9d8e 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.toml +++ b/contracts/examples/order-book/factory/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/order-book/pair/Cargo.toml b/contracts/examples/order-book/pair/Cargo.toml index 3b5064a83b..a93917179a 100644 --- a/contracts/examples/order-book/pair/Cargo.toml +++ b/contracts/examples/order-book/pair/Cargo.toml @@ -8,9 +8,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/examples/order-book/pair/meta/Cargo.toml b/contracts/examples/order-book/pair/meta/Cargo.toml index 99e08d3bf3..6f4ba52f4e 100644 --- a/contracts/examples/order-book/pair/meta/Cargo.toml +++ b/contracts/examples/order-book/pair/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/order-book/pair/wasm/Cargo.toml b/contracts/examples/order-book/pair/wasm/Cargo.toml index 61aef735af..dd343a9dfc 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.toml +++ b/contracts/examples/order-book/pair/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/ping-pong-egld/Cargo.toml b/contracts/examples/ping-pong-egld/Cargo.toml index 674b90d665..fc86298452 100644 --- a/contracts/examples/ping-pong-egld/Cargo.toml +++ b/contracts/examples/ping-pong-egld/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/ping_pong.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/ping-pong-egld/meta/Cargo.toml b/contracts/examples/ping-pong-egld/meta/Cargo.toml index 98bcbcba8c..a8bc467391 100644 --- a/contracts/examples/ping-pong-egld/meta/Cargo.toml +++ b/contracts/examples/ping-pong-egld/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.toml b/contracts/examples/ping-pong-egld/wasm/Cargo.toml index c7dcdf0380..8438778f1b 100644 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.toml +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/proxy-pause/Cargo.toml b/contracts/examples/proxy-pause/Cargo.toml index 9accf4aeea..382dfd9f27 100644 --- a/contracts/examples/proxy-pause/Cargo.toml +++ b/contracts/examples/proxy-pause/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/proxy_pause.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies.check-pause] diff --git a/contracts/examples/proxy-pause/meta/Cargo.toml b/contracts/examples/proxy-pause/meta/Cargo.toml index 6dcc4e30ab..4be34a41ba 100644 --- a/contracts/examples/proxy-pause/meta/Cargo.toml +++ b/contracts/examples/proxy-pause/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = [ "you",] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/proxy-pause/wasm/Cargo.toml b/contracts/examples/proxy-pause/wasm/Cargo.toml index ca38a58a94..939f828e70 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.toml +++ b/contracts/examples/proxy-pause/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/rewards-distribution/Cargo.toml b/contracts/examples/rewards-distribution/Cargo.toml index e52b38c28c..d518ea5586 100644 --- a/contracts/examples/rewards-distribution/Cargo.toml +++ b/contracts/examples/rewards-distribution/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/rewards_distribution.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/rewards-distribution/meta/Cargo.toml b/contracts/examples/rewards-distribution/meta/Cargo.toml index 746938fde8..bfddb43d6f 100644 --- a/contracts/examples/rewards-distribution/meta/Cargo.toml +++ b/contracts/examples/rewards-distribution/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = ["Claudiu-Marcel Bruda "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.toml b/contracts/examples/rewards-distribution/wasm/Cargo.toml index 3cee3848c2..a62cac8525 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.toml +++ b/contracts/examples/rewards-distribution/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/seed-nft-minter/Cargo.toml b/contracts/examples/seed-nft-minter/Cargo.toml index f1c0ccd1c5..a57db6b6dc 100644 --- a/contracts/examples/seed-nft-minter/Cargo.toml +++ b/contracts/examples/seed-nft-minter/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/seed_nft_minter.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/seed-nft-minter/meta/Cargo.toml b/contracts/examples/seed-nft-minter/meta/Cargo.toml index b62a153697..af481426af 100644 --- a/contracts/examples/seed-nft-minter/meta/Cargo.toml +++ b/contracts/examples/seed-nft-minter/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = ["Claudiu-Marcel Bruda "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.toml b/contracts/examples/seed-nft-minter/wasm/Cargo.toml index ebf2f8df94..e6a61820c9 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.toml +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/token-release/Cargo.toml b/contracts/examples/token-release/Cargo.toml index 01ff068282..7c7c810787 100644 --- a/contracts/examples/token-release/Cargo.toml +++ b/contracts/examples/token-release/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/token_release.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/examples/token-release/meta/Cargo.toml b/contracts/examples/token-release/meta/Cargo.toml index e2afb339ec..68be5330b2 100644 --- a/contracts/examples/token-release/meta/Cargo.toml +++ b/contracts/examples/token-release/meta/Cargo.toml @@ -10,7 +10,7 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/token-release/wasm/Cargo.toml b/contracts/examples/token-release/wasm/Cargo.toml index 064f98b3c8..bce00fce24 100644 --- a/contracts/examples/token-release/wasm/Cargo.toml +++ b/contracts/examples/token-release/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/abi-tester/Cargo.toml b/contracts/feature-tests/abi-tester/Cargo.toml index c19e464f3e..714c488750 100644 --- a/contracts/feature-tests/abi-tester/Cargo.toml +++ b/contracts/feature-tests/abi-tester/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/abi_tester.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/meta" diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json index 33e1e2787e..a9bcc8d151 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0-alpha.3" + "version": "0.49.0-alpha.4" } }, "docs": [ diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json index 478b195d18..fcc5546404 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0-alpha.3" + "version": "0.49.0-alpha.4" } }, "docs": [ diff --git a/contracts/feature-tests/abi-tester/meta/Cargo.toml b/contracts/feature-tests/abi-tester/meta/Cargo.toml index 9b7c4a08c9..7edae725e5 100644 --- a/contracts/feature-tests/abi-tester/meta/Cargo.toml +++ b/contracts/feature-tests/abi-tester/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml index 8bfa480843..963ef8f870 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.toml b/contracts/feature-tests/abi-tester/wasm/Cargo.toml index 65a7038c2b..f5700ad92e 100644 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/Cargo.toml b/contracts/feature-tests/alloc-features/Cargo.toml index 1b07610469..3dd34d56a7 100644 --- a/contracts/feature-tests/alloc-features/Cargo.toml +++ b/contracts/feature-tests/alloc-features/Cargo.toml @@ -9,12 +9,12 @@ publish = false path = "src/alloc_features_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/alloc-features/meta/Cargo.toml b/contracts/feature-tests/alloc-features/meta/Cargo.toml index c3ad60f909..3ed3b16104 100644 --- a/contracts/feature-tests/alloc-features/meta/Cargo.toml +++ b/contracts/feature-tests/alloc-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml index 59084bf018..130a20cf6e 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml index 7c0ebffec7..aa66bcb1cb 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.toml b/contracts/feature-tests/alloc-features/wasm/Cargo.toml index 784dd52e8b..0a8f7e641a 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/basic-features/Cargo.toml b/contracts/feature-tests/basic-features/Cargo.toml index c6ba72f9b7..f3633e8bd1 100644 --- a/contracts/feature-tests/basic-features/Cargo.toml +++ b/contracts/feature-tests/basic-features/Cargo.toml @@ -9,15 +9,15 @@ publish = false path = "src/basic_features_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/basic-features/interact/Cargo.toml b/contracts/feature-tests/basic-features/interact/Cargo.toml index 81e892886e..ef0209cab4 100644 --- a/contracts/feature-tests/basic-features/interact/Cargo.toml +++ b/contracts/feature-tests/basic-features/interact/Cargo.toml @@ -18,5 +18,5 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/snippets" diff --git a/contracts/feature-tests/basic-features/meta/Cargo.toml b/contracts/feature-tests/basic-features/meta/Cargo.toml index 30215e3488..670da00dbd 100644 --- a/contracts/feature-tests/basic-features/meta/Cargo.toml +++ b/contracts/feature-tests/basic-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml index bcbd853f58..7d1cc921f4 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.toml b/contracts/feature-tests/basic-features/wasm/Cargo.toml index d348b58457..cf42ff107a 100644 --- a/contracts/feature-tests/basic-features/wasm/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = true path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/big-float-features/Cargo.toml b/contracts/feature-tests/big-float-features/Cargo.toml index 7f39fd1c2b..ae27c92b74 100644 --- a/contracts/feature-tests/big-float-features/Cargo.toml +++ b/contracts/feature-tests/big-float-features/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/big_float_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/big-float-features/meta/Cargo.toml b/contracts/feature-tests/big-float-features/meta/Cargo.toml index 07f567b2f3..603f584ece 100644 --- a/contracts/feature-tests/big-float-features/meta/Cargo.toml +++ b/contracts/feature-tests/big-float-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.toml b/contracts/feature-tests/big-float-features/wasm/Cargo.toml index 04f16e8c5c..13c3fb8bdc 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.toml +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/Cargo.toml b/contracts/feature-tests/composability/Cargo.toml index d2c31be93d..5d372b4128 100644 --- a/contracts/feature-tests/composability/Cargo.toml +++ b/contracts/feature-tests/composability/Cargo.toml @@ -36,9 +36,9 @@ path = "recursive-caller" path = "vault" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/composability/builtin-func-features/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/Cargo.toml index 988a74e311..58c9d24215 100644 --- a/contracts/feature-tests/composability/builtin-func-features/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/builtin_func_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml index 8809391c73..3c33b8d81d 100644 --- a/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml index 6e67682cd7..63dbe95fcb 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml index cf497b77d8..63b7e46395 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml @@ -12,9 +12,9 @@ path = "first-contract" path = "second-contract" [dev-dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml index 95b8bb3e7a..49c6e25659 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml index b688de7b7e..ccf10c89ad 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml index 5eea19a304..57c15b6fe2 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml index ee50706ffe..89fe5071b8 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml @@ -10,10 +10,10 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml index a2c8472890..8788acf4ac 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml index dccf91ee2d..aa93fcf9d7 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml index 6beeb65885..c90b451b29 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml @@ -16,9 +16,9 @@ path = "parent" path = "child" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml index 7d56002e94..a084afe56c 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml @@ -10,9 +10,9 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml index 2e59dd11f1..a1b68d9807 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml index 111c39dc04..b9678d7c3e 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml index 3719359f0d..7fbc51b49a 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml index 0f9b09b643..8e9105a3ad 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml index 49cce44ba0..62fb2dc77c 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml index b7be9a2b09..8d985f30c1 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml @@ -12,10 +12,10 @@ path = "src/forwarder_legacy_main.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml index de2b7deb4f..de74469420 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml index 58f24599a1..3ce5ef1de3 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-queue/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/Cargo.toml index 807a48e584..accf0696e9 100644 --- a/contracts/feature-tests/composability/forwarder-queue/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/forwarder_queue.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" optional = true [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml index 3ccbf42df7..6347cdc858 100644 --- a/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml index df35b3e625..ea15c56706 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml index 2caa94fdf6..ae6dab9b35 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/Cargo.toml index 4ff47c8dcc..98838bf0e4 100644 --- a/contracts/feature-tests/composability/forwarder-raw/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/forwarder_raw.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml index 7db4c8cc8b..221d44e4eb 100644 --- a/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml index 0691deeb91..208dcd4d05 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml index 87467a5713..5b4c266c48 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml index 49a2aaccc5..63cfbfed3b 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder/Cargo.toml b/contracts/feature-tests/composability/forwarder/Cargo.toml index 43287d2f99..6790cc028c 100644 --- a/contracts/feature-tests/composability/forwarder/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/forwarder_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder/meta/Cargo.toml index 373e719d27..a6b2ad50fa 100644 --- a/contracts/feature-tests/composability/forwarder/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml index 840717266b..2395849caf 100644 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/interact/Cargo.toml b/contracts/feature-tests/composability/interact/Cargo.toml index eee6ad38e7..97cd3f93f5 100644 --- a/contracts/feature-tests/composability/interact/Cargo.toml +++ b/contracts/feature-tests/composability/interact/Cargo.toml @@ -24,9 +24,9 @@ path = "../forwarder-queue" path = "../promises-features" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../contracts/modules" [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/snippets" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml index f5d6597a04..b969ae9c8b 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml @@ -10,9 +10,9 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml index 197d6d771a..d9aa379fde 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml index d5fa591652..89dfb08625 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/promises-features/Cargo.toml b/contracts/feature-tests/composability/promises-features/Cargo.toml index b36abd2473..d8f4c2ed7e 100644 --- a/contracts/feature-tests/composability/promises-features/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = "src/promises_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" diff --git a/contracts/feature-tests/composability/promises-features/meta/Cargo.toml b/contracts/feature-tests/composability/promises-features/meta/Cargo.toml index c74045ba74..16159a0190 100644 --- a/contracts/feature-tests/composability/promises-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml index 38a99b57d1..cdb0aa0d3e 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/proxy-test-first/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/Cargo.toml index 2ac10d9906..6a9fcceaaf 100644 --- a/contracts/feature-tests/composability/proxy-test-first/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/Cargo.toml @@ -12,10 +12,10 @@ path = "src/proxy-test-first.rs" hex-literal = "0.4.1" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml index de0d156d9a..02488e11e3 100644 --- a/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml index 3288ee5579..88a44946b0 100644 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/proxy-test-second/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/Cargo.toml index be7e7245e3..d3d878969d 100644 --- a/contracts/feature-tests/composability/proxy-test-second/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/proxy-test-second.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml index 559e0ab0b2..dcfd56990b 100644 --- a/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml index 99fb50fdae..b93eb8a20f 100644 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/recursive-caller/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/Cargo.toml index 5af4f6b07d..bd7b5fa4af 100644 --- a/contracts/feature-tests/composability/recursive-caller/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/Cargo.toml @@ -12,9 +12,9 @@ path = "src/recursive_caller.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml index 96bc818532..4b2f4f93b8 100644 --- a/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml index a72b6b1e24..d12fc3c8c6 100644 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/transfer-role-features/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/Cargo.toml index b79e8d56b0..9f1da71c0b 100644 --- a/contracts/feature-tests/composability/transfer-role-features/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/Cargo.toml @@ -12,13 +12,13 @@ path = "src/lib.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml index 79476b840c..3100fcd04c 100644 --- a/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml index ef7b1f1428..6a49bd9d5c 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/Cargo.toml b/contracts/feature-tests/composability/vault/Cargo.toml index e31b239684..58201feda6 100644 --- a/contracts/feature-tests/composability/vault/Cargo.toml +++ b/contracts/feature-tests/composability/vault/Cargo.toml @@ -10,9 +10,9 @@ path = "src/vault.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/vault/meta/Cargo.toml b/contracts/feature-tests/composability/vault/meta/Cargo.toml index 8d1b082bab..e7d99c51cc 100644 --- a/contracts/feature-tests/composability/vault/meta/Cargo.toml +++ b/contracts/feature-tests/composability/vault/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml index b09fa9bbe9..9d3799aedb 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml index 3014a523c9..d0e8dd308b 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.toml b/contracts/feature-tests/composability/vault/wasm/Cargo.toml index c298a50dbd..7b8ee74e2c 100644 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml index 3c19ea4d30..f3e9127598 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml @@ -12,10 +12,10 @@ path = "src/crowdfunding_erc20.rs" path = "../erc20" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml index 1c7cafcd1d..fdee90fda9 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml index 33abc78a59..20285a8b66 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml index 3ca5de7c09..630c24b5f2 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml @@ -13,10 +13,10 @@ path = "src/lib.rs" path = "../erc1155" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml index df8110b562..64f519f9a3 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml index 6a20d7350e..b4b0a71b4c 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml index f9bfaf993c..27c5f2d2a6 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml index 6671d757bb..d662e3f8e9 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml index a7a481f28c..0af2d54c37 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml index e9b17b91f2..1566019c49 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml @@ -9,12 +9,12 @@ publish = false path = "src/erc1155.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" [dev-dependencies.erc1155-user-mock] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml index cac8f568a7..8cad0e03b2 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml index 76b0cf4614..6299d90bcb 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml index 83ed113938..8d12e823b9 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/erc20.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml index 359adb0799..0db234389f 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml index 5dcd945afd..060cf6a1a1 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml index a10fafd483..b0aff72a5c 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml @@ -10,9 +10,9 @@ path = "src/erc721.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml index 1a13e5b8ac..05ee5b504e 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml index 62f50069de..c18d25cd9b 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml index 044e9c98ee..3995505b5a 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml @@ -12,10 +12,10 @@ path = "src/lottery.rs" path = "../erc20" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml index 2325b11301..81e598d14e 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml index 86bf125ffb..0bcd0316c2 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml index d6a741ce2a..8e8b693ebe 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/esdt_system_sc_mock.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml index 703b7a9353..425d3ee8eb 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml index e95c73f7c7..690f09686b 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/exchange-features/Cargo.toml b/contracts/feature-tests/exchange-features/Cargo.toml index d88b0bfe55..2963251bb9 100644 --- a/contracts/feature-tests/exchange-features/Cargo.toml +++ b/contracts/feature-tests/exchange-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/exchange_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/exchange-features/meta/Cargo.toml b/contracts/feature-tests/exchange-features/meta/Cargo.toml index a136b96009..a5bb2c339e 100644 --- a/contracts/feature-tests/exchange-features/meta/Cargo.toml +++ b/contracts/feature-tests/exchange-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.toml b/contracts/feature-tests/exchange-features/wasm/Cargo.toml index b5faf4bc2a..9aed886551 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.toml +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/formatted-message-features/Cargo.toml b/contracts/feature-tests/formatted-message-features/Cargo.toml index 449928d8e1..3ae3030b5d 100644 --- a/contracts/feature-tests/formatted-message-features/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/formatted_message_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/formatted-message-features/meta/Cargo.toml b/contracts/feature-tests/formatted-message-features/meta/Cargo.toml index 4a1af3ce58..1dbe41b175 100644 --- a/contracts/feature-tests/formatted-message-features/meta/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = [ "you",] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml index ad6413abb0..8230ed884b 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/managed-map-features/Cargo.toml b/contracts/feature-tests/managed-map-features/Cargo.toml index 2d0005c680..552cbb84b0 100644 --- a/contracts/feature-tests/managed-map-features/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/mmap_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/managed-map-features/meta/Cargo.toml b/contracts/feature-tests/managed-map-features/meta/Cargo.toml index 58b74efc31..91c7eb646a 100644 --- a/contracts/feature-tests/managed-map-features/meta/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml index e9281f9976..5762a40856 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/Cargo.toml b/contracts/feature-tests/multi-contract-features/Cargo.toml index ef65d67f43..213f19e779 100644 --- a/contracts/feature-tests/multi-contract-features/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/Cargo.toml @@ -12,9 +12,9 @@ path = "src/multi_contract_features.rs" example_feature = [] [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/multi-contract-features/meta/Cargo.toml b/contracts/feature-tests/multi-contract-features/meta/Cargo.toml index 6ebca90110..866bfa5da1 100644 --- a/contracts/feature-tests/multi-contract-features/meta/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml index e8162e6df5..1f77f836ed 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml index bfa63ab7ea..f6ebe4edb9 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml @@ -26,7 +26,7 @@ path = ".." features = ["example_feature"] [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml index 82a1d0906f..28a8f95c7c 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml index 462466dc27..ba28d1f0d1 100644 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/panic-message-features/Cargo.toml b/contracts/feature-tests/panic-message-features/Cargo.toml index 5a51dbe4ab..11eb995356 100644 --- a/contracts/feature-tests/panic-message-features/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/panic_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/panic-message-features/meta/Cargo.toml b/contracts/feature-tests/panic-message-features/meta/Cargo.toml index 6f1b4f7b20..7e1007837d 100644 --- a/contracts/feature-tests/panic-message-features/meta/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml index a8bb519333..3b0455e096 100644 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/payable-features/Cargo.toml b/contracts/feature-tests/payable-features/Cargo.toml index f393b769a0..7973c85f03 100644 --- a/contracts/feature-tests/payable-features/Cargo.toml +++ b/contracts/feature-tests/payable-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/payable_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/payable-features/meta/Cargo.toml b/contracts/feature-tests/payable-features/meta/Cargo.toml index b0e53733be..bc934da0cf 100644 --- a/contracts/feature-tests/payable-features/meta/Cargo.toml +++ b/contracts/feature-tests/payable-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.toml b/contracts/feature-tests/payable-features/wasm/Cargo.toml index e8005d93c3..8cd5e49030 100644 --- a/contracts/feature-tests/payable-features/wasm/Cargo.toml +++ b/contracts/feature-tests/payable-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml index 25e0ba5e4d..4f4fb8ba56 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml index 654a8d30d2..c84332da38 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml @@ -13,7 +13,7 @@ path = "src/interactor_main.rs" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/snippets" # [workspace] diff --git a/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml index dd54362752..5260217e43 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml index 6be0e2b462..38946bc17a 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml index 83b382a1b6..aa9942a6d7 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" publish = false [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" features = [ "alloc" ] @@ -17,7 +17,7 @@ path = "../../examples/adder" path = "../../feature-tests/basic-features" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml index d8ebeebdfe..7e63f066fa 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml index 844da5b804..26a2d8d271 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/scenario-tester/Cargo.toml b/contracts/feature-tests/scenario-tester/Cargo.toml index eb15243aa1..33c6f5cdcc 100644 --- a/contracts/feature-tests/scenario-tester/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/scenario-tester/meta/Cargo.toml b/contracts/feature-tests/scenario-tester/meta/Cargo.toml index 551bd6efe7..2d689e8a13 100644 --- a/contracts/feature-tests/scenario-tester/meta/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/scenario-tester/wasm/Cargo.toml b/contracts/feature-tests/scenario-tester/wasm/Cargo.toml index 026d4b7463..fc67b3c6dc 100644 --- a/contracts/feature-tests/scenario-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/use-module/Cargo.toml b/contracts/feature-tests/use-module/Cargo.toml index f55b44c58c..24efcdf34c 100644 --- a/contracts/feature-tests/use-module/Cargo.toml +++ b/contracts/feature-tests/use-module/Cargo.toml @@ -9,17 +9,17 @@ publish = false path = "src/use_module.rs" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../contracts/modules" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/scenario" [dev-dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../framework/meta" diff --git a/contracts/feature-tests/use-module/meta/Cargo.toml b/contracts/feature-tests/use-module/meta/Cargo.toml index bfbc356ab4..bd6cec3fee 100644 --- a/contracts/feature-tests/use-module/meta/Cargo.toml +++ b/contracts/feature-tests/use-module/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/use-module/meta/abi/Cargo.toml b/contracts/feature-tests/use-module/meta/abi/Cargo.toml index f4a72800b6..7d3415622f 100644 --- a/contracts/feature-tests/use-module/meta/abi/Cargo.toml +++ b/contracts/feature-tests/use-module/meta/abi/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/use-module/use_module_expected_main.abi.json b/contracts/feature-tests/use-module/use_module_expected_main.abi.json index fedbb5c8c4..372d1ca170 100644 --- a/contracts/feature-tests/use-module/use_module_expected_main.abi.json +++ b/contracts/feature-tests/use-module/use_module_expected_main.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0-alpha.3" + "version": "0.49.0-alpha.4" } }, "docs": [ diff --git a/contracts/feature-tests/use-module/use_module_expected_view.abi.json b/contracts/feature-tests/use-module/use_module_expected_view.abi.json index 75b41e0f02..7b0ae08a4f 100644 --- a/contracts/feature-tests/use-module/use_module_expected_view.abi.json +++ b/contracts/feature-tests/use-module/use_module_expected_view.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0-alpha.3" + "version": "0.49.0-alpha.4" } }, "docs": [ diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml index a5c2d575ab..62a866a3e3 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/use-module/wasm/Cargo.toml b/contracts/feature-tests/use-module/wasm/Cargo.toml index f95cab10e3..f514309260 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/modules/Cargo.toml b/contracts/modules/Cargo.toml index 338ab2ae7d..924bbab515 100644 --- a/contracts/modules/Cargo.toml +++ b/contracts/modules/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-modules" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" edition = "2021" authors = ["MultiversX "] @@ -17,5 +17,5 @@ categories = ["no-std", "wasm", "cryptography::cryptocurrencies"] alloc = ["multiversx-sc/alloc"] [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../framework/base" diff --git a/framework/base/Cargo.toml b/framework/base/Cargo.toml index 9537ff48ee..ab11b368e2 100644 --- a/framework/base/Cargo.toml +++ b/framework/base/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] @@ -28,7 +28,7 @@ bitflags = "=2.4.2" num-traits = { version = "=0.2.17", default-features = false } [dependencies.multiversx-sc-derive] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" path = "../derive" [dependencies.multiversx-sc-codec] diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 075a78d50a..4b079db48e 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -3,7 +3,8 @@ use crate::{ types::{ BigUint, CodeMetadata, EgldOrEsdtTokenIdentifier, EgldOrEsdtTokenPayment, EgldOrEsdtTokenPaymentRefs, EgldOrMultiEsdtPayment, EsdtTokenPayment, EsdtTokenPaymentRefs, - ManagedBuffer, ManagedOption, ManagedVec, MultiEsdtPayment, TokenIdentifier, + ManagedAddress, ManagedBuffer, ManagedOption, ManagedVec, MultiEsdtPayment, + TokenIdentifier, }, }; diff --git a/framework/derive/Cargo.toml b/framework/derive/Cargo.toml index b15e244e7d..c9c1c4635c 100644 --- a/framework/derive/Cargo.toml +++ b/framework/derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-derive" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] diff --git a/framework/meta/Cargo.toml b/framework/meta/Cargo.toml index f0c8b354f7..805f3e7942 100644 --- a/framework/meta/Cargo.toml +++ b/framework/meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-meta" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" edition = "2021" authors = [ @@ -52,7 +52,7 @@ pathdiff = { version = "0.2.1", optional = true } common-path = { version = "1.0.0", optional = true } [dependencies.multiversx-sc] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" path = "../base" features = ["alloc", "num-bigint"] diff --git a/framework/scenario/Cargo.toml b/framework/scenario/Cargo.toml index 59aa246985..d946575a3c 100644 --- a/framework/scenario/Cargo.toml +++ b/framework/scenario/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-scenario" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" edition = "2021" authors = [ @@ -40,12 +40,12 @@ path = "src/main.rs" run-go-tests = [] [dependencies.multiversx-sc] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" features = ["alloc", "num-bigint"] path = "../base" [dependencies.multiversx-sc-meta] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" path = "../meta" [dependencies.multiversx-chain-scenario-format] @@ -60,5 +60,5 @@ version = "=0.8.3" path = "../../vm" [dependencies.multiversx-sdk] -version = "=0.3.2" +version = "=0.4.0-alpha.4" path = "../../sdk/core" diff --git a/framework/snippets/Cargo.toml b/framework/snippets/Cargo.toml index 4a2476136f..954ebb2ea9 100644 --- a/framework/snippets/Cargo.toml +++ b/framework/snippets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-snippets" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" edition = "2021" authors = ["MultiversX "] @@ -23,9 +23,9 @@ futures = "0.3" rand = "0.8.5" [dependencies.multiversx-sc-scenario] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" path = "../scenario" [dependencies.multiversx-sdk] -version = "=0.3.2" +version = "=0.4.0-alpha.4" path = "../../sdk/core" diff --git a/framework/wasm-adapter/Cargo.toml b/framework/wasm-adapter/Cargo.toml index 148d6d74ee..8db81d396e 100644 --- a/framework/wasm-adapter/Cargo.toml +++ b/framework/wasm-adapter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" edition = "2021" authors = [ @@ -22,5 +22,5 @@ categories = [ ] [dependencies.multiversx-sc] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" path = "../base" diff --git a/sdk/core/Cargo.toml b/sdk/core/Cargo.toml index c3f7aefd73..88b496cd3d 100644 --- a/sdk/core/Cargo.toml +++ b/sdk/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sdk" -version = "0.3.2" +version = "0.4.0-alpha.4" edition = "2021" authors = [ diff --git a/tools/mxpy-snippet-generator/Cargo.toml b/tools/mxpy-snippet-generator/Cargo.toml index 029658ccf8..8390f16c01 100644 --- a/tools/mxpy-snippet-generator/Cargo.toml +++ b/tools/mxpy-snippet-generator/Cargo.toml @@ -10,7 +10,7 @@ name = "mxpy-snippet-generator" path = "src/mxpy_snippet_generator.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.3" +version = "0.49.0-alpha.4" path = "../../framework/base" [dependencies] diff --git a/tools/rust-debugger/format-tests/Cargo.toml b/tools/rust-debugger/format-tests/Cargo.toml index 3a6a5987c1..b44925e9d1 100644 --- a/tools/rust-debugger/format-tests/Cargo.toml +++ b/tools/rust-debugger/format-tests/Cargo.toml @@ -9,11 +9,11 @@ name = "format-tests" path = "src/format_tests.rs" [dependencies.multiversx-sc] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" path = "../../../framework/base" [dependencies.multiversx-sc-scenario] -version = "=0.49.0-alpha.3" +version = "=0.49.0-alpha.4" path = "../../../framework/scenario" [dependencies.multiversx-chain-vm] From 30d58a8d6e3cec01d09b9a9de0b83adcbf572d79 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 23 Apr 2024 16:12:57 +0300 Subject: [PATCH 056/185] Cargo.lock update --- .../benchmarks/large-storage/wasm/Cargo.lock | 6 +- .../linked-list-repeat/wasm/Cargo.lock | 6 +- .../mappers/map-repeat/wasm/Cargo.lock | 6 +- .../mappers/queue-repeat/wasm/Cargo.lock | 6 +- .../mappers/set-repeat/wasm/Cargo.lock | 6 +- .../single-value-repeat/wasm/Cargo.lock | 6 +- .../mappers/vec-repeat/wasm/Cargo.lock | 6 +- .../benchmarks/send-tx-repeat/wasm/Cargo.lock | 6 +- .../Cargo.lock | 6 +- .../Cargo.lock | 6 +- .../benchmarks/str-repeat/wasm/Cargo.lock | 6 +- .../core/price-aggregator/wasm/Cargo.lock | 10 +- contracts/examples/adder/wasm/Cargo.lock | 6 +- .../bonding-curve-contract/wasm/Cargo.lock | 8 +- .../examples/check-pause/wasm/Cargo.lock | 8 +- .../crowdfunding-esdt/wasm/Cargo.lock | 6 +- .../examples/crypto-bubbles/wasm/Cargo.lock | 6 +- .../kitty-auction/wasm/Cargo.lock | 6 +- .../kitty-genetic-alg/wasm/Cargo.lock | 6 +- .../kitty-ownership/wasm/Cargo.lock | 6 +- .../examples/crypto-zombies/wasm/Cargo.lock | 7 +- .../examples/digital-cash/wasm/Cargo.lock | 6 +- contracts/examples/empty/wasm/Cargo.lock | 6 +- .../esdt-transfer-with-fee/wasm/Cargo.lock | 6 +- contracts/examples/factorial/wasm/Cargo.lock | 6 +- .../examples/fractional-nfts/wasm/Cargo.lock | 8 +- .../examples/lottery-esdt/wasm/Cargo.lock | 6 +- .../multisig/wasm-multisig-full/Cargo.lock | 8 +- .../multisig/wasm-multisig-view/Cargo.lock | 8 +- contracts/examples/multisig/wasm/Cargo.lock | 8 +- contracts/examples/nft-minter/wasm/Cargo.lock | 6 +- .../nft-storage-prepay/wasm/Cargo.lock | 6 +- .../examples/nft-subscription/wasm/Cargo.lock | 8 +- .../order-book/factory/wasm/Cargo.lock | 6 +- .../examples/order-book/pair/wasm/Cargo.lock | 6 +- .../examples/ping-pong-egld/wasm/Cargo.lock | 6 +- .../examples/proxy-pause/wasm/Cargo.lock | 6 +- .../rewards-distribution/wasm/Cargo.lock | 8 +- .../examples/seed-nft-minter/wasm/Cargo.lock | 8 +- .../examples/token-release/wasm/Cargo.lock | 6 +- .../abi-tester/wasm-abi-tester-ev/Cargo.lock | 6 +- .../feature-tests/abi-tester/wasm/Cargo.lock | 6 +- .../wasm-alloc-mem-fail/Cargo.lock | 6 +- .../wasm-alloc-mem-leaking/Cargo.lock | 6 +- .../alloc-features/wasm/Cargo.lock | 6 +- .../Cargo.lock | 8 +- .../basic-features/wasm/Cargo.lock | 8 +- .../big-float-features/wasm/Cargo.lock | 6 +- .../builtin-func-features/wasm/Cargo.lock | 6 +- .../first-contract/wasm/Cargo.lock | 6 +- .../second-contract/wasm/Cargo.lock | 6 +- .../child/wasm/Cargo.lock | 6 +- .../parent/wasm/Cargo.lock | 14 +- .../forwarder-legacy/wasm/Cargo.lock | 178 ++++++++++++++++++ .../wasm-forwarder-queue-promises/Cargo.lock | 14 +- .../forwarder-queue/wasm/Cargo.lock | 14 +- .../Cargo.lock | 6 +- .../Cargo.lock | 6 +- .../forwarder-raw/wasm/Cargo.lock | 6 +- .../composability/forwarder/wasm/Cargo.lock | 14 +- .../local-esdt-and-nft/wasm/Cargo.lock | 6 +- .../promises-features/wasm/Cargo.lock | 14 +- .../proxy-test-first/wasm/Cargo.lock | 6 +- .../proxy-test-second/wasm/Cargo.lock | 6 +- .../recursive-caller/wasm/Cargo.lock | 6 +- .../transfer-role-features/wasm/Cargo.lock | 8 +- .../vault/wasm-vault-promises/Cargo.lock | 6 +- .../vault/wasm-vault-upgrade/Cargo.lock | 6 +- .../composability/vault/wasm/Cargo.lock | 6 +- .../crowdfunding-erc20/wasm/Cargo.lock | 6 +- .../erc1155-marketplace/wasm/Cargo.lock | 6 +- .../erc1155-user-mock/wasm/Cargo.lock | 6 +- .../erc1155/wasm/Cargo.lock | 6 +- .../erc-style-contracts/erc20/wasm/Cargo.lock | 6 +- .../erc721/wasm/Cargo.lock | 6 +- .../lottery-erc20/wasm/Cargo.lock | 6 +- .../esdt-system-sc-mock/wasm/Cargo.lock | 6 +- .../exchange-features/wasm/Cargo.lock | 6 +- .../wasm/Cargo.lock | 6 +- .../managed-map-features/wasm/Cargo.lock | 6 +- .../wasm-multi-contract-alt-impl/Cargo.lock | 6 +- .../Cargo.lock | 6 +- .../Cargo.lock | 6 +- .../multi-contract-features/wasm/Cargo.lock | 6 +- .../panic-message-features/wasm/Cargo.lock | 6 +- .../payable-features/wasm/Cargo.lock | 6 +- .../wasm/Cargo.lock | 6 +- .../wasm/Cargo.lock | 6 +- .../scenario-tester/wasm/Cargo.lock | 6 +- .../wasm-use-module-view/Cargo.lock | 8 +- .../feature-tests/use-module/wasm/Cargo.lock | 8 +- 91 files changed, 464 insertions(+), 327 deletions(-) create mode 100644 contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.lock b/contracts/benchmarks/large-storage/wasm/Cargo.lock index cb13777edf..6708e4f729 100755 --- a/contracts/benchmarks/large-storage/wasm/Cargo.lock +++ b/contracts/benchmarks/large-storage/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock index 78ff5aef10..d31c788662 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock index 3ee28394b7..9142220cb1 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock index 4df3ab54da..83c707f963 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock index 4f8e72b115..7ad0062925 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock index fdfa32de28..03db275999 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock index f51214f9f1..bd459c71c4 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock index 13533956e8..83d1d9a328 100755 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock index 4683a2b046..2196d6249d 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock index f750a8d328..e25c06bd30 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.lock b/contracts/benchmarks/str-repeat/wasm/Cargo.lock index e2b54817be..8df220c83a 100755 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/core/price-aggregator/wasm/Cargo.lock b/contracts/core/price-aggregator/wasm/Cargo.lock index 9e64d41b47..e8278c9e49 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.lock +++ b/contracts/core/price-aggregator/wasm/Cargo.lock @@ -86,7 +86,7 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "multiversx-price-aggregator-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "arrayvec", "getrandom", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -134,7 +134,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -145,14 +145,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/adder/wasm/Cargo.lock b/contracts/examples/adder/wasm/Cargo.lock index 1aea528c2d..94b2bd585c 100755 --- a/contracts/examples/adder/wasm/Cargo.lock +++ b/contracts/examples/adder/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.2" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.2" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.2" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock index 0fa9693639..6091dfa920 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/check-pause/wasm/Cargo.lock b/contracts/examples/check-pause/wasm/Cargo.lock index 1d886bba04..c1e288a067 100644 --- a/contracts/examples/check-pause/wasm/Cargo.lock +++ b/contracts/examples/check-pause/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock index 9a14efccc8..d2c12aee7e 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.lock b/contracts/examples/crypto-bubbles/wasm/Cargo.lock index 6af31b83b6..083af51877 100755 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.lock +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock index 82fd08dc78..b9cc0ec1cf 100755 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -113,7 +113,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -124,7 +124,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock index 95368370cb..eb39c5f440 100755 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock @@ -65,7 +65,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock index d497d47054..99fec426ee 100755 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -104,7 +104,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -115,7 +115,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.lock b/contracts/examples/crypto-zombies/wasm/Cargo.lock index 656ebf0e03..66258245b1 100755 --- a/contracts/examples/crypto-zombies/wasm/Cargo.lock +++ b/contracts/examples/crypto-zombies/wasm/Cargo.lock @@ -26,7 +26,6 @@ version = "0.0.0" dependencies = [ "kitty", "multiversx-sc", - "random", ] [[package]] @@ -65,7 +64,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -94,7 +93,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -105,7 +104,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/digital-cash/wasm/Cargo.lock b/contracts/examples/digital-cash/wasm/Cargo.lock index 602c7d856b..cfa4657a3c 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.lock +++ b/contracts/examples/digital-cash/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/empty/wasm/Cargo.lock b/contracts/examples/empty/wasm/Cargo.lock index 5a87b422d2..e8fb6ec964 100755 --- a/contracts/examples/empty/wasm/Cargo.lock +++ b/contracts/examples/empty/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock index cee7278178..87ca70552e 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/factorial/wasm/Cargo.lock b/contracts/examples/factorial/wasm/Cargo.lock index 4dff18babf..a60c60b3f9 100755 --- a/contracts/examples/factorial/wasm/Cargo.lock +++ b/contracts/examples/factorial/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.lock b/contracts/examples/fractional-nfts/wasm/Cargo.lock index f95919526e..188bb02f09 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.lock +++ b/contracts/examples/fractional-nfts/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.lock b/contracts/examples/lottery-esdt/wasm/Cargo.lock index 6f1cace25d..fe712bd8bd 100755 --- a/contracts/examples/lottery-esdt/wasm/Cargo.lock +++ b/contracts/examples/lottery-esdt/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock index 953a8551f3..124322c53e 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock index df77559d67..8e31c2566b 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm/Cargo.lock b/contracts/examples/multisig/wasm/Cargo.lock index d72aa67e30..0ec303cb70 100755 --- a/contracts/examples/multisig/wasm/Cargo.lock +++ b/contracts/examples/multisig/wasm/Cargo.lock @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-minter/wasm/Cargo.lock b/contracts/examples/nft-minter/wasm/Cargo.lock index ce0b2650f9..47ea0d8306 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.lock +++ b/contracts/examples/nft-minter/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock index 319176681e..7513e4a0f6 100755 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-subscription/wasm/Cargo.lock b/contracts/examples/nft-subscription/wasm/Cargo.lock index 2244415577..e89f4e2eb7 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.lock +++ b/contracts/examples/nft-subscription/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/order-book/factory/wasm/Cargo.lock b/contracts/examples/order-book/factory/wasm/Cargo.lock index 60c0b2cabd..8c1f3b9084 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.lock +++ b/contracts/examples/order-book/factory/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/order-book/pair/wasm/Cargo.lock b/contracts/examples/order-book/pair/wasm/Cargo.lock index 14b8551309..7a899b10a5 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.lock +++ b/contracts/examples/order-book/pair/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.lock b/contracts/examples/ping-pong-egld/wasm/Cargo.lock index a86f53d6dd..bae852197d 100755 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.lock +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/proxy-pause/wasm/Cargo.lock b/contracts/examples/proxy-pause/wasm/Cargo.lock index 73d7607641..161bc13f68 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.lock +++ b/contracts/examples/proxy-pause/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.lock b/contracts/examples/rewards-distribution/wasm/Cargo.lock index d5303f9494..886ab12580 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.lock +++ b/contracts/examples/rewards-distribution/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.lock b/contracts/examples/seed-nft-minter/wasm/Cargo.lock index d322f26404..9241783954 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.lock +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/token-release/wasm/Cargo.lock b/contracts/examples/token-release/wasm/Cargo.lock index 0d4d728f3e..aa56882a90 100644 --- a/contracts/examples/token-release/wasm/Cargo.lock +++ b/contracts/examples/token-release/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock index a99ecaccaf..99a94c03ec 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.lock b/contracts/feature-tests/abi-tester/wasm/Cargo.lock index db59638442..e0be6b9819 100755 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock index 1a3bc7da70..7588f39311 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock index b32efb0d4a..c98821ddb9 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.lock b/contracts/feature-tests/alloc-features/wasm/Cargo.lock index 6a0f3330d7..17c1644f6e 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock index f5d8794bb9..d78191614a 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.lock b/contracts/feature-tests/basic-features/wasm/Cargo.lock index bfb8c41ea7..a87d0db4a0 100755 --- a/contracts/feature-tests/basic-features/wasm/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.lock b/contracts/feature-tests/big-float-features/wasm/Cargo.lock index 40beaf8d03..894e6a71d8 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.lock +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock index bb57eeb64e..44ac5b066c 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock index a2c55964c7..a1a6b4e57c 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock index 99cd973235..b085b55d5a 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock index b7b7846eb2..fd4281c8c4 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock index fd4d0794e8..1cc5525f78 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock @@ -20,13 +20,6 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" -[[package]] -name = "child" -version = "0.0.0" -dependencies = [ - "multiversx-sc", -] - [[package]] name = "endian-type" version = "0.1.2" @@ -47,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -76,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -87,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] @@ -114,7 +107,6 @@ dependencies = [ name = "parent" version = "0.0.0" dependencies = [ - "child", "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock new file mode 100644 index 0000000000..6f2efbb4a7 --- /dev/null +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock @@ -0,0 +1,178 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "bitflags" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" + +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + +[[package]] +name = "forwarder-legacy" +version = "0.0.0" +dependencies = [ + "multiversx-sc", + "vault", +] + +[[package]] +name = "forwarder-legacy-wasm" +version = "0.0.0" +dependencies = [ + "forwarder-legacy", + "multiversx-sc-wasm-adapter", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "multiversx-sc" +version = "0.49.0-alpha.4" +dependencies = [ + "bitflags", + "hex-literal", + "multiversx-sc-codec", + "multiversx-sc-derive", + "num-traits", +] + +[[package]] +name = "multiversx-sc-codec" +version = "0.18.6" +dependencies = [ + "arrayvec", + "multiversx-sc-codec-derive", +] + +[[package]] +name = "multiversx-sc-codec-derive" +version = "0.18.6" +dependencies = [ + "hex", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "multiversx-sc-derive" +version = "0.49.0-alpha.4" +dependencies = [ + "hex", + "proc-macro2", + "quote", + "radix_trie", + "syn", +] + +[[package]] +name = "multiversx-sc-wasm-adapter" +version = "0.49.0-alpha.4" +dependencies = [ + "multiversx-sc", +] + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "proc-macro2" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "syn" +version = "2.0.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "vault" +version = "0.0.0" +dependencies = [ + "multiversx-sc", +] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock index 9ce03493b3..0ae3a27158 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock @@ -31,7 +31,6 @@ name = "forwarder-queue" version = "0.0.0" dependencies = [ "multiversx-sc", - "vault", ] [[package]] @@ -56,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] @@ -169,10 +168,3 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "vault" -version = "0.0.0" -dependencies = [ - "multiversx-sc", -] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock index dbef7fe1c4..860461a0f0 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock @@ -31,7 +31,6 @@ name = "forwarder-queue" version = "0.0.0" dependencies = [ "multiversx-sc", - "vault", ] [[package]] @@ -56,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] @@ -169,10 +168,3 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "vault" -version = "0.0.0" -dependencies = [ - "multiversx-sc", -] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock index 1b3b56c133..8c45f982fd 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock index dcb63c28ef..0dcd90a47b 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock index 4b56a477a5..9c2550453a 100755 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock index 14ba905f98..9394670d78 100755 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock @@ -31,7 +31,6 @@ name = "forwarder" version = "0.0.0" dependencies = [ "multiversx-sc", - "vault", ] [[package]] @@ -56,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -85,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -96,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] @@ -169,10 +168,3 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "vault" -version = "0.0.0" -dependencies = [ - "multiversx-sc", -] diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock index cf8b7eaeb8..306d6ca1f6 100755 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock index 1cce0c20ac..dcfdbef311 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] @@ -117,7 +117,6 @@ name = "promises-features" version = "0.0.0" dependencies = [ "multiversx-sc", - "vault", ] [[package]] @@ -169,10 +168,3 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "vault" -version = "0.0.0" -dependencies = [ - "multiversx-sc", -] diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock index 2616a0e326..fe997fa86f 100755 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock index cb41667a6d..a0b07ff2f6 100755 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock index d2e41ac725..00977f8bbd 100755 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock index bbbb12c9f9..2bed78bf9a 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock index e86afd77c4..d710aceb72 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock index 0b7112be8c..5e2cc3f66c 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.lock b/contracts/feature-tests/composability/vault/wasm/Cargo.lock index 6d0b58aed6..297c3796f0 100755 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock index ad10f006f4..0bc315e9fb 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock @@ -63,7 +63,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock index 0a96032377..dd889a0faa 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock @@ -63,7 +63,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock index a6f053b5c8..3a434c71fb 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock index 90f97cfb61..7caccdf499 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock index c7d25eb4e2..7982edf7d2 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock index b91f78bb52..bd877a1118 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock index 36b9febca3..8990616f04 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock index d52e047711..7dd4fb648b 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.lock b/contracts/feature-tests/exchange-features/wasm/Cargo.lock index 09349d87e7..61605d1f7f 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.lock +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock index 9dbe2ad726..753027d794 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock index a555da68eb..cab5358a51 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock index 3997752036..c9c7649dc8 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock index 13230fc27c..76a09ced3b 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock index b1fa6d8b6b..93f165d078 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock index 2815c003c8..615ffffd84 100755 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock index ddf9332c59..dc78f4d79f 100755 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.lock b/contracts/feature-tests/payable-features/wasm/Cargo.lock index 3ffdf49ece..ef5d30915a 100755 --- a/contracts/feature-tests/payable-features/wasm/Cargo.lock +++ b/contracts/feature-tests/payable-features/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock index b8d98314e7..6e9141b444 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock index f95eb564c3..baaa27b189 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/scenario-tester/wasm/Cargo.lock b/contracts/feature-tests/scenario-tester/wasm/Cargo.lock index dd7e298064..c92359d81b 100755 --- a/contracts/feature-tests/scenario-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/scenario-tester/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.2" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.2" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.2" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock index 969d71832f..eaf5904701 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/use-module/wasm/Cargo.lock b/contracts/feature-tests/use-module/wasm/Cargo.lock index c97622bd31..5ff85f74d5 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "bitflags", "hex-literal", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.49.0-alpha.4" dependencies = [ "multiversx-sc", ] From 50a269eba275e668453a9adf152b547003141a11 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 23 Apr 2024 20:27:12 +0300 Subject: [PATCH 057/185] impl tx_hash - data not stored --- .../rewards-distribution/src/proxy.rs | 233 ++++++++++++++++++ .../src/rewards_distribution.rs | 2 +- .../rewards_distribution_blackbox_test.rs | 25 +- framework/base/src/types/interaction/tx.rs | 32 ++- .../base/src/types/interaction/tx_env.rs | 6 + .../src/facade/world_tx/scenario_exec_call.rs | 14 +- .../src/facade/world_tx/scenario_tx_env.rs | 8 +- .../interactor_tx/interactor_prepare_async.rs | 1 + 8 files changed, 305 insertions(+), 16 deletions(-) create mode 100644 contracts/examples/rewards-distribution/src/proxy.rs diff --git a/contracts/examples/rewards-distribution/src/proxy.rs b/contracts/examples/rewards-distribution/src/proxy.rs new file mode 100644 index 0000000000..4a02c6c098 --- /dev/null +++ b/contracts/examples/rewards-distribution/src/proxy.rs @@ -0,0 +1,233 @@ +// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +#![allow(dead_code)] +#![allow(clippy::all)] + +use multiversx_sc::proxy_imports::*; + +pub struct RewardsDistributionProxy; + +impl TxProxyTrait for RewardsDistributionProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = RewardsDistributionProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + RewardsDistributionProxyMethods { wrapped_tx: tx } + } +} + +pub struct RewardsDistributionProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl RewardsDistributionProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + seed_nft_minter_address: Arg0, + brackets: Arg1, + ) -> TxProxyDeploy { + self.wrapped_tx + .raw_deploy() + .argument(&seed_nft_minter_address) + .argument(&brackets) + .original_result() + } +} + +#[rustfmt::skip] +impl RewardsDistributionProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn deposit_royalties( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("depositRoyalties") + .original_result() + } + + pub fn raffle( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("raffle") + .original_result() + } + + pub fn claim_rewards< + Arg0: CodecInto, + Arg1: CodecInto, + Arg2: CodecInto, u64>>>, + >( + self, + raffle_id_start: Arg0, + raffle_id_end: Arg1, + reward_tokens: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("claimRewards") + .argument(&raffle_id_start) + .argument(&raffle_id_end) + .argument(&reward_tokens) + .original_result() + } + + pub fn compute_claimable_amount< + Arg0: CodecInto, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto, + >( + self, + raffle_id: Arg0, + reward_token_id: Arg1, + reward_token_nonce: Arg2, + nft_nonce: Arg3, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("computeClaimableAmount") + .argument(&raffle_id) + .argument(&reward_token_id) + .argument(&reward_token_nonce) + .argument(&nft_nonce) + .original_result() + } + + pub fn raffle_id( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getRaffleId") + .original_result() + } + + pub fn completed_raffle_id_count( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getCompletedRaffleIdCount") + .original_result() + } + + pub fn royalties< + Arg0: CodecInto, + Arg1: CodecInto>, + Arg2: CodecInto, + >( + self, + raffle_id: Arg0, + reward_token_id: Arg1, + reward_token_nonce: Arg2, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getRoyalties") + .argument(&raffle_id) + .argument(&reward_token_id) + .argument(&reward_token_nonce) + .original_result() + } + + pub fn nft_reward_percent< + Arg0: CodecInto, + Arg1: CodecInto, + >( + self, + raffle_id: Arg0, + nft_nonce: Arg1, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getNftRewardPercent") + .argument(&raffle_id) + .argument(&nft_nonce) + .original_result() + } + + pub fn was_claimed< + Arg0: CodecInto, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto, + >( + self, + raffle_id: Arg0, + reward_token_id: Arg1, + reward_token_nonce: Arg2, + nft_nonce: Arg3, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getWasClaimed") + .argument(&raffle_id) + .argument(&reward_token_id) + .argument(&reward_token_nonce) + .argument(&nft_nonce) + .original_result() + } + + pub fn seed_nft_minter_address( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getSeedNftMinterAddress") + .original_result() + } + + pub fn brackets( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getBrackets") + .original_result() + } + + pub fn last_raffle_epoch( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getLastRaffleEpoch") + .original_result() + } + + pub fn nft_token_id( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getNftTokenId") + .original_result() + } +} + +#[derive(ManagedVecItem, NestedEncode, NestedDecode)] +pub struct Bracket { + pub index_percent: u64, + pub bracket_reward_percent: u64, +} diff --git a/contracts/examples/rewards-distribution/src/rewards_distribution.rs b/contracts/examples/rewards-distribution/src/rewards_distribution.rs index 880b4ed835..eb69173c62 100644 --- a/contracts/examples/rewards-distribution/src/rewards_distribution.rs +++ b/contracts/examples/rewards-distribution/src/rewards_distribution.rs @@ -5,8 +5,8 @@ use multiversx_sc_modules::ongoing_operation::{ CONTINUE_OP, DEFAULT_MIN_GAS_TO_SAVE_PROGRESS, STOP_OP, }; +pub mod proxy; pub mod seed_nft_minter_proxy; - type Epoch = u64; pub const EPOCHS_IN_WEEK: Epoch = 7; diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs index 4380f0122f..e70f273015 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs @@ -6,18 +6,24 @@ use std::iter::zip; use crate::mock_seed_nft_minter::ProxyTrait as _; use rewards_distribution::{ - Bracket, ContractObj, ProxyTrait as _, RewardsDistribution, DIVISION_SAFETY_CONSTANT, + proxy, Bracket, ContractObj, ProxyTrait as _, RewardsDistribution, DIVISION_SAFETY_CONSTANT, }; const NFT_TOKEN_ID: &[u8] = b"NFT-123456"; const NFT_TOKEN_ID_EXPR: &str = "str:NFT-123456"; const ALICE_ADDRESS_EXPR: &str = "address:alice"; +const ALICE_ADDRESS_EXPR_REPL: AddressExpr = AddressExpr("alice"); const OWNER_ADDRESS_EXPR: &str = "address:owner"; const REWARDS_DISTRIBUTION_ADDRESS_EXPR: &str = "sc:rewards-distribution"; +const REWARDS_DISTRIBUTION_ADDRESS_EXPR_REPL: ScExpr = ScExpr("rewards-distribution"); const REWARDS_DISTRIBUTION_PATH_EXPR: &str = "mxsc:output/rewards-distribution.mxsc.json"; +const REWARDS_DISTRIBUTION_PATH_EXPR_REPL: MxscExpr = + MxscExpr("output/rewards-distribution.mxsc.json"); const SEED_NFT_MINTER_ADDRESS_EXPR: &str = "sc:seed-nft-minter"; const SEED_NFT_MINTER_PATH_EXPR: &str = "mxsc:../seed-nft-minter/output/seed-nft-minter.mxsc.json"; +const SEED_NFT_MINTER_PATH_EXPR_REPL: MxscExpr = + MxscExpr("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); type RewardsDistributionContract = ContractInfo>; type SeedNFTMinterContract = ContractInfo>; @@ -216,14 +222,17 @@ fn test_raffle_and_claim() { .call(state.rewards_distribution_contract.deposit_royalties()), ); + let vect = &[0u8; 32]; // run the raffle - state.world.sc_call( - ScCallStep::new() - .from(ALICE_ADDRESS_EXPR) - .tx_hash(&[0u8; 32]) // blockchain rng is deterministic, so we can use a fixed hash - .call(state.rewards_distribution_contract.raffle()) - .expect_value(OperationCompletionStatus::Completed), - ); + state + .world + .tx() + .from(ALICE_ADDRESS_EXPR_REPL) + .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR_REPL) + .typed(proxy::RewardsDistributionProxy) + .raffle() + .tx_hash(ManagedBuffer::from(vect)) + .run(); let mut rewards: Vec> = Vec::new(); // post-raffle reward amount frequency checksstate diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 075a78d50a..e5313ef198 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -3,7 +3,8 @@ use crate::{ types::{ BigUint, CodeMetadata, EgldOrEsdtTokenIdentifier, EgldOrEsdtTokenPayment, EgldOrEsdtTokenPaymentRefs, EgldOrMultiEsdtPayment, EsdtTokenPayment, EsdtTokenPaymentRefs, - ManagedBuffer, ManagedOption, ManagedVec, MultiEsdtPayment, TokenIdentifier, + ManagedAddress, ManagedBuffer, ManagedOption, ManagedVec, MultiEsdtPayment, + TokenIdentifier, }, }; @@ -14,9 +15,9 @@ use super::{ ContractCallNoPayment, ContractCallWithEgld, ContractDeploy, DeployCall, Egld, EgldPayment, ExplicitGas, FromSource, FunctionCall, ManagedArgBuffer, OriginalResultMarker, RHList, RHListAppendNoRet, RHListAppendRet, RHListItem, TxCodeSource, TxCodeValue, TxData, - TxDataFunctionCall, TxEgldValue, TxEnv, TxEnvMockDeployAddress, TxFrom, TxFromSourceValue, - TxFromSpecified, TxGas, TxGasValue, TxPayment, TxPaymentEgldOnly, TxProxyTrait, - TxResultHandler, TxScEnv, TxTo, TxToSpecified, UpgradeCall, + TxDataFunctionCall, TxEgldValue, TxEnv, TxEnvMockDeployAddress, TxEnvWithTxHash, TxFrom, + TxFromSourceValue, TxFromSpecified, TxGas, TxGasValue, TxPayment, TxPaymentEgldOnly, + TxProxyTrait, TxResultHandler, TxScEnv, TxTo, TxToSpecified, UpgradeCall, }; #[must_use] @@ -844,6 +845,29 @@ where } } +impl Tx +where + Env: TxEnvWithTxHash, + From: TxFromSpecified, + To: TxTo, + Payment: TxPaymentEgldOnly, + Gas: TxGas, + Data: TxDataFunctionCall, + RH: TxResultHandler, +{ + /// Sets the new mock address to be used for the newly deployed contract. + /// + /// Only allowed in tests. + pub fn tx_hash(mut self, tx_hash: TH) -> Self + where + TH: AnnotatedValue>, + { + self.env.set_tx_hash(tx_hash); + let str = "str"; + self + } +} + impl Tx, RH> where diff --git a/framework/base/src/types/interaction/tx_env.rs b/framework/base/src/types/interaction/tx_env.rs index 11e7b91e6a..d8f82c4309 100644 --- a/framework/base/src/types/interaction/tx_env.rs +++ b/framework/base/src/types/interaction/tx_env.rs @@ -24,3 +24,9 @@ pub trait TxEnvMockDeployAddress: TxEnv { From: TxFromSpecified, NA: AnnotatedValue>; } + +pub trait TxEnvWithTxHash: TxEnv { + fn set_tx_hash(&mut self, tx_hash: TH) + where + TH: AnnotatedValue>; +} diff --git a/framework/scenario/src/facade/world_tx/scenario_exec_call.rs b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs index dd258da3b4..159e065817 100644 --- a/framework/scenario/src/facade/world_tx/scenario_exec_call.rs +++ b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs @@ -2,14 +2,14 @@ use multiversx_sc::{ tuple_util::NestedTupleFlatten, types::{ FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, TxEnv, - TxEnvMockDeployAddress, TxFromSpecified, TxGas, TxPayment, TxToSpecified, + TxEnvMockDeployAddress, TxEnvWithTxHash, TxFromSpecified, TxGas, TxPayment, TxToSpecified, }, }; use crate::{ api::StaticApi, scenario::tx_to_step::{address_annotated, TxToStep}, - scenario_model::{SetStateStep, TxExpect, TxResponse}, + scenario_model::{BytesValue, SetStateStep, TxExpect, TxResponse}, ScenarioTxEnv, ScenarioTxRun, ScenarioWorld, }; @@ -88,6 +88,16 @@ where } } +impl<'w> TxEnvWithTxHash for ScenarioEnvExec<'w> { + fn set_tx_hash(&mut self, tx_hash: TH) + where + TH: multiversx_sc::types::AnnotatedValue>, + { + let bytes_tx_hash = BytesValue::from(tx_hash.into_value(&self).to_vec()); + self.data.tx_hash = Some(bytes_tx_hash); + } +} + impl ScenarioWorld { pub fn tx(&mut self) -> TxBaseWithEnv> { let data = self.new_env_data(); diff --git a/framework/scenario/src/facade/world_tx/scenario_tx_env.rs b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs index d195a7600d..33bd562ea6 100644 --- a/framework/scenario/src/facade/world_tx/scenario_tx_env.rs +++ b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs @@ -2,7 +2,11 @@ use std::path::PathBuf; use multiversx_sc::types::{ManagedAddress, ManagedBuffer, TxEnv}; -use crate::{api::StaticApi, scenario_model::TxExpect, ScenarioWorld}; +use crate::{ + api::StaticApi, + scenario_model::{BytesValue, TxExpect}, + ScenarioWorld, +}; /// Designates a tx environment suitable for running scenarios locally. pub trait ScenarioTxEnv: TxEnv { @@ -13,6 +17,7 @@ pub trait ScenarioTxEnv: TxEnv { #[derive(Default, Debug, Clone)] pub struct ScenarioTxEnvData { pub context_path: PathBuf, + pub tx_hash: Option, } impl TxEnv for ScenarioTxEnvData { @@ -43,6 +48,7 @@ impl ScenarioWorld { pub(crate) fn new_env_data(&self) -> ScenarioTxEnvData { ScenarioTxEnvData { context_path: self.current_dir.clone(), + tx_hash: None, } } } diff --git a/framework/snippets/src/interactor_tx/interactor_prepare_async.rs b/framework/snippets/src/interactor_tx/interactor_prepare_async.rs index 167c7d9f27..43ca7c403c 100644 --- a/framework/snippets/src/interactor_tx/interactor_prepare_async.rs +++ b/framework/snippets/src/interactor_tx/interactor_prepare_async.rs @@ -6,6 +6,7 @@ impl Interactor { pub(crate) fn new_env_data(&self) -> ScenarioTxEnvData { ScenarioTxEnvData { context_path: self.current_dir.clone(), + tx_hash: None, } } } From 85903ebf37486641a46ba2bf88f2c3dc0cb1058f Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 23 Apr 2024 20:37:36 +0300 Subject: [PATCH 058/185] cleanup --- framework/base/src/types/interaction/tx.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index e5313ef198..3535222de0 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -863,7 +863,6 @@ where TH: AnnotatedValue>, { self.env.set_tx_hash(tx_hash); - let str = "str"; self } } From c40217625a223f42edb809115ffac0a431774670 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 23 Apr 2024 22:17:17 +0300 Subject: [PATCH 059/185] impl tx_hash --- framework/base/src/types/interaction/tx.rs | 12 ++++++------ framework/base/src/types/interaction/tx_env.rs | 6 ++---- .../src/facade/world_tx/scenario_exec_call.rs | 17 ++++++++--------- .../src/facade/world_tx/scenario_exec_deploy.rs | 1 + .../src/facade/world_tx/scenario_tx_env.rs | 10 +++------- 5 files changed, 20 insertions(+), 26 deletions(-) diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 3535222de0..36b9a27d77 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -1,7 +1,7 @@ use crate::{ api::CallTypeApi, types::{ - BigUint, CodeMetadata, EgldOrEsdtTokenIdentifier, EgldOrEsdtTokenPayment, + heap::H256, BigUint, CodeMetadata, EgldOrEsdtTokenIdentifier, EgldOrEsdtTokenPayment, EgldOrEsdtTokenPaymentRefs, EgldOrMultiEsdtPayment, EsdtTokenPayment, EsdtTokenPaymentRefs, ManagedAddress, ManagedBuffer, ManagedOption, ManagedVec, MultiEsdtPayment, TokenIdentifier, @@ -845,10 +845,10 @@ where } } -impl Tx +impl Tx where Env: TxEnvWithTxHash, - From: TxFromSpecified, + From_: TxFromSpecified, To: TxTo, Payment: TxPaymentEgldOnly, Gas: TxGas, @@ -858,11 +858,11 @@ where /// Sets the new mock address to be used for the newly deployed contract. /// /// Only allowed in tests. - pub fn tx_hash(mut self, tx_hash: TH) -> Self + pub fn tx_hash(mut self, tx_hash: H) -> Self where - TH: AnnotatedValue>, + H256: From, { - self.env.set_tx_hash(tx_hash); + self.env.set_tx_hash(H256::from(tx_hash)); self } } diff --git a/framework/base/src/types/interaction/tx_env.rs b/framework/base/src/types/interaction/tx_env.rs index d8f82c4309..37e18d7dec 100644 --- a/framework/base/src/types/interaction/tx_env.rs +++ b/framework/base/src/types/interaction/tx_env.rs @@ -1,6 +1,6 @@ use crate::{ api::CallTypeApi, - types::{ManagedAddress, ManagedBuffer}, + types::{heap::H256, ManagedAddress, ManagedBuffer}, }; use super::{AnnotatedValue, TxFromSpecified}; @@ -26,7 +26,5 @@ pub trait TxEnvMockDeployAddress: TxEnv { } pub trait TxEnvWithTxHash: TxEnv { - fn set_tx_hash(&mut self, tx_hash: TH) - where - TH: AnnotatedValue>; + fn set_tx_hash(&mut self, tx_hash: H256); } diff --git a/framework/scenario/src/facade/world_tx/scenario_exec_call.rs b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs index 159e065817..42a29ef378 100644 --- a/framework/scenario/src/facade/world_tx/scenario_exec_call.rs +++ b/framework/scenario/src/facade/world_tx/scenario_exec_call.rs @@ -1,15 +1,16 @@ use multiversx_sc::{ tuple_util::NestedTupleFlatten, types::{ - FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, TxEnv, - TxEnvMockDeployAddress, TxEnvWithTxHash, TxFromSpecified, TxGas, TxPayment, TxToSpecified, + heap::H256, FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, + TxEnv, TxEnvMockDeployAddress, TxEnvWithTxHash, TxFromSpecified, TxGas, TxPayment, + TxToSpecified, }, }; use crate::{ api::StaticApi, scenario::tx_to_step::{address_annotated, TxToStep}, - scenario_model::{BytesValue, SetStateStep, TxExpect, TxResponse}, + scenario_model::{SetStateStep, TxExpect, TxResponse}, ScenarioTxEnv, ScenarioTxRun, ScenarioWorld, }; @@ -83,18 +84,16 @@ where fn run(self) -> Self::Returns { let mut step_wrapper = self.tx_to_step(); + step_wrapper.step.explicit_tx_hash = core::mem::take(&mut step_wrapper.env.data.tx_hash); step_wrapper.env.world.sc_call(&mut step_wrapper.step); step_wrapper.process_result() } } impl<'w> TxEnvWithTxHash for ScenarioEnvExec<'w> { - fn set_tx_hash(&mut self, tx_hash: TH) - where - TH: multiversx_sc::types::AnnotatedValue>, - { - let bytes_tx_hash = BytesValue::from(tx_hash.into_value(&self).to_vec()); - self.data.tx_hash = Some(bytes_tx_hash); + fn set_tx_hash(&mut self, tx_hash: H256) { + assert!(self.data.tx_hash.is_none(), "tx hash set twice"); + self.data.tx_hash = Some(tx_hash); } } diff --git a/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs b/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs index 866d4f562f..40fbbaa878 100644 --- a/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs +++ b/framework/scenario/src/facade/world_tx/scenario_exec_deploy.rs @@ -35,6 +35,7 @@ where fn run(self) -> Self::Returns { let mut step_wrapper = self.tx_to_step(); + step_wrapper.step.explicit_tx_hash = core::mem::take(&mut step_wrapper.env.data.tx_hash); step_wrapper.env.world.sc_deploy(&mut step_wrapper.step); step_wrapper.process_result() } diff --git a/framework/scenario/src/facade/world_tx/scenario_tx_env.rs b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs index 33bd562ea6..7613f94116 100644 --- a/framework/scenario/src/facade/world_tx/scenario_tx_env.rs +++ b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs @@ -1,12 +1,8 @@ use std::path::PathBuf; -use multiversx_sc::types::{ManagedAddress, ManagedBuffer, TxEnv}; +use multiversx_sc::types::{ManagedAddress, ManagedBuffer, TxEnv, H256}; -use crate::{ - api::StaticApi, - scenario_model::{BytesValue, TxExpect}, - ScenarioWorld, -}; +use crate::{api::StaticApi, scenario_model::TxExpect, ScenarioWorld}; /// Designates a tx environment suitable for running scenarios locally. pub trait ScenarioTxEnv: TxEnv { @@ -17,7 +13,7 @@ pub trait ScenarioTxEnv: TxEnv { #[derive(Default, Debug, Clone)] pub struct ScenarioTxEnvData { pub context_path: PathBuf, - pub tx_hash: Option, + pub tx_hash: Option, } impl TxEnv for ScenarioTxEnvData { From 551e3ef00810f312051a3d4c51bedeecfb448a52 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 23 Apr 2024 23:08:01 +0300 Subject: [PATCH 060/185] fix test --- .../tests/rewards_distribution_blackbox_test.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs index e70f273015..135af91f3f 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs @@ -18,12 +18,8 @@ const OWNER_ADDRESS_EXPR: &str = "address:owner"; const REWARDS_DISTRIBUTION_ADDRESS_EXPR: &str = "sc:rewards-distribution"; const REWARDS_DISTRIBUTION_ADDRESS_EXPR_REPL: ScExpr = ScExpr("rewards-distribution"); const REWARDS_DISTRIBUTION_PATH_EXPR: &str = "mxsc:output/rewards-distribution.mxsc.json"; -const REWARDS_DISTRIBUTION_PATH_EXPR_REPL: MxscExpr = - MxscExpr("output/rewards-distribution.mxsc.json"); const SEED_NFT_MINTER_ADDRESS_EXPR: &str = "sc:seed-nft-minter"; const SEED_NFT_MINTER_PATH_EXPR: &str = "mxsc:../seed-nft-minter/output/seed-nft-minter.mxsc.json"; -const SEED_NFT_MINTER_PATH_EXPR_REPL: MxscExpr = - MxscExpr("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); type RewardsDistributionContract = ContractInfo>; type SeedNFTMinterContract = ContractInfo>; @@ -222,7 +218,6 @@ fn test_raffle_and_claim() { .call(state.rewards_distribution_contract.deposit_royalties()), ); - let vect = &[0u8; 32]; // run the raffle state .world @@ -231,7 +226,7 @@ fn test_raffle_and_claim() { .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR_REPL) .typed(proxy::RewardsDistributionProxy) .raffle() - .tx_hash(ManagedBuffer::from(vect)) + .tx_hash(&[0u8; 32]) .run(); let mut rewards: Vec> = Vec::new(); From 776dd0579375e852619e1d105e424a88e035de24 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 24 Apr 2024 06:29:40 +0300 Subject: [PATCH 061/185] cleanup --- framework/base/src/types/interaction/tx.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 36b9a27d77..486e4ade83 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -845,22 +845,22 @@ where } } -impl Tx +impl Tx where Env: TxEnvWithTxHash, - From_: TxFromSpecified, + From: TxFromSpecified, To: TxTo, Payment: TxPaymentEgldOnly, Gas: TxGas, Data: TxDataFunctionCall, RH: TxResultHandler, { - /// Sets the new mock address to be used for the newly deployed contract. + /// Sets the mock transaction hash to be used in a test. /// /// Only allowed in tests. pub fn tx_hash(mut self, tx_hash: H) -> Self where - H256: From, + H256: core::convert::From, { self.env.set_tx_hash(H256::from(tx_hash)); self From 30e33686ddc8c76224097b1f0861a4c8445e2f97 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 24 Apr 2024 06:36:00 +0300 Subject: [PATCH 062/185] comment --- .../tests/rewards_distribution_blackbox_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs index 135af91f3f..e01c9dafcf 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs @@ -226,7 +226,7 @@ fn test_raffle_and_claim() { .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR_REPL) .typed(proxy::RewardsDistributionProxy) .raffle() - .tx_hash(&[0u8; 32]) + .tx_hash([0u8; 32]) // blockchain rng is deterministic, so we can use a fixed hash .run(); let mut rewards: Vec> = Vec::new(); From 30c422f46525b7ba5ea2500e241702650b32426f Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 12 Apr 2024 15:55:23 +0300 Subject: [PATCH 063/185] moved legacy contract_deploy.rs --- .../src/types/interaction/contract_call_legacy.rs | 7 +++++++ .../contract_call_legacy/contract_call_exec.rs | 7 +------ .../contract_call_no_payment.rs | 5 ++--- .../{ => contract_call_legacy}/contract_deploy.rs | 12 +++++------- framework/base/src/types/interaction/mod.rs | 2 -- framework/base/src/types/interaction/tx.rs | 14 +++++++------- 6 files changed, 22 insertions(+), 25 deletions(-) rename framework/base/src/types/interaction/{ => contract_call_legacy}/contract_deploy.rs (93%) diff --git a/framework/base/src/types/interaction/contract_call_legacy.rs b/framework/base/src/types/interaction/contract_call_legacy.rs index d5ae5e04ed..22ebc84d7d 100644 --- a/framework/base/src/types/interaction/contract_call_legacy.rs +++ b/framework/base/src/types/interaction/contract_call_legacy.rs @@ -6,6 +6,7 @@ mod contract_call_with_any_payment; mod contract_call_with_egld; mod contract_call_with_egld_or_single_esdt; mod contract_call_with_multi_esdt; +mod contract_deploy; pub use contract_call_no_payment::ContractCallNoPayment; pub use contract_call_trait::{ContractCall, ContractCallBase}; @@ -13,3 +14,9 @@ pub use contract_call_with_any_payment::ContractCallWithAnyPayment; pub use contract_call_with_egld::ContractCallWithEgld; pub use contract_call_with_egld_or_single_esdt::ContractCallWithEgldOrSingleEsdt; pub use contract_call_with_multi_esdt::ContractCallWithMultiEsdt; +pub use contract_deploy::{new_contract_deploy, ContractDeploy}; + +/// Using max u64 to represent maximum possible gas, +/// so that the value zero is not reserved and can be specified explicitly. +/// Leaving the gas limit unspecified will replace it with `api.get_gas_left()`. +pub(crate) const UNSPECIFIED_GAS_LIMIT: u64 = u64::MAX; diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_exec.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_exec.rs index 6ec1d82009..6928ee862b 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_exec.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_exec.rs @@ -9,14 +9,9 @@ use crate::{ }, }; -use super::{ContractCallNoPayment, ContractCallWithEgld}; +use super::{ContractCallNoPayment, ContractCallWithEgld, UNSPECIFIED_GAS_LIMIT}; use crate::api::managed_types::handles::HandleConstraints; -/// Using max u64 to represent maximum possible gas, -/// so that the value zero is not reserved and can be specified explicitly. -/// Leaving the gas limit unspecified will replace it with `api.get_gas_left()`. -pub(super) const UNSPECIFIED_GAS_LIMIT: u64 = u64::MAX; - impl ContractCallWithEgld where SA: CallTypeApi + 'static, diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs index 2f39ff78f9..db5d0c8561 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs @@ -12,10 +12,9 @@ use crate::{ }; use super::{ - contract_call_exec::UNSPECIFIED_GAS_LIMIT, contract_call_trait::ContractCallBase, - contract_call_with_egld::ContractCallWithEgld, + contract_call_trait::ContractCallBase, contract_call_with_egld::ContractCallWithEgld, contract_call_with_multi_esdt::ContractCallWithMultiEsdt, ContractCall, - ContractCallWithAnyPayment, ContractCallWithEgldOrSingleEsdt, + ContractCallWithAnyPayment, ContractCallWithEgldOrSingleEsdt, UNSPECIFIED_GAS_LIMIT, }; /// Holds metadata for calling another contract, without payments. diff --git a/framework/base/src/types/interaction/contract_deploy.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs similarity index 93% rename from framework/base/src/types/interaction/contract_deploy.rs rename to framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs index 1fbfa1f017..bdc15e5509 100644 --- a/framework/base/src/types/interaction/contract_deploy.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs @@ -7,15 +7,13 @@ use crate::{ contract_base::{ExitCodecErrorHandler, SendRawWrapper}, err_msg, io::{ArgErrorHandler, ArgId, ManagedResultArgLoader}, - types::{BigUint, CodeMetadata, ManagedAddress, ManagedBuffer, ManagedOption, ManagedVec}, + types::{ + BigUint, CodeMetadata, ManagedAddress, ManagedArgBuffer, ManagedBuffer, ManagedOption, + ManagedVec, + }, }; -use super::ManagedArgBuffer; - -/// Using max u64 to represent maximum possible gas, -/// so that the value zero is not reserved and can be specified explicitly. -/// Leaving the gas limit unspecified will replace it with `api.get_gas_left()`. -pub(crate) const UNSPECIFIED_GAS_LIMIT: u64 = u64::MAX; +use super::UNSPECIFIED_GAS_LIMIT; #[must_use] pub struct ContractDeploy diff --git a/framework/base/src/types/interaction/mod.rs b/framework/base/src/types/interaction/mod.rs index e05d420cdf..739e91a1ec 100644 --- a/framework/base/src/types/interaction/mod.rs +++ b/framework/base/src/types/interaction/mod.rs @@ -5,7 +5,6 @@ mod back_transfers; mod callback_closure; mod callback_selector_result; mod contract_call_legacy; -mod contract_deploy; mod deploy_call; mod expr; mod function_call; @@ -37,7 +36,6 @@ pub use callback_closure::{ }; pub use callback_selector_result::CallbackSelectorResult; pub use contract_call_legacy::*; -pub use contract_deploy::{new_contract_deploy, ContractDeploy}; pub use deploy_call::*; pub use expr::*; pub use function_call::FunctionCall; diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 486e4ade83..7fc12c896b 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -11,13 +11,13 @@ use crate::{ use multiversx_sc_codec::TopEncodeMulti; use super::{ - contract_deploy::UNSPECIFIED_GAS_LIMIT, AnnotatedValue, Code, ContractCallBase, - ContractCallNoPayment, ContractCallWithEgld, ContractDeploy, DeployCall, Egld, EgldPayment, - ExplicitGas, FromSource, FunctionCall, ManagedArgBuffer, OriginalResultMarker, RHList, - RHListAppendNoRet, RHListAppendRet, RHListItem, TxCodeSource, TxCodeValue, TxData, - TxDataFunctionCall, TxEgldValue, TxEnv, TxEnvMockDeployAddress, TxEnvWithTxHash, TxFrom, - TxFromSourceValue, TxFromSpecified, TxGas, TxGasValue, TxPayment, TxPaymentEgldOnly, - TxProxyTrait, TxResultHandler, TxScEnv, TxTo, TxToSpecified, UpgradeCall, + AnnotatedValue, Code, ContractCallBase, ContractCallNoPayment, ContractCallWithEgld, + ContractDeploy, DeployCall, Egld, EgldPayment, ExplicitGas, FromSource, FunctionCall, + ManagedArgBuffer, OriginalResultMarker, RHList, RHListAppendNoRet, RHListAppendRet, RHListItem, + TxCodeSource, TxCodeValue, TxData, TxDataFunctionCall, TxEgldValue, TxEnv, + TxEnvMockDeployAddress, TxEnvWithTxHash, TxFrom, TxFromSourceValue, TxFromSpecified, TxGas, + TxGasValue, TxPayment, TxPaymentEgldOnly, TxProxyTrait, TxResultHandler, TxScEnv, TxTo, + TxToSpecified, UpgradeCall, UNSPECIFIED_GAS_LIMIT, }; #[must_use] From 652732bc139dbdf274e99e7ee3d4336bd4d930b3 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 24 Apr 2024 07:20:41 +0300 Subject: [PATCH 064/185] moved legacy AsyncCall objects --- framework/base/src/types/interaction/contract_call_legacy.rs | 4 ++++ .../interaction/{ => contract_call_legacy}/async_call.rs | 4 +--- .../{ => contract_call_legacy}/async_call_promises.rs | 4 +--- framework/base/src/types/interaction/mod.rs | 4 ---- 4 files changed, 6 insertions(+), 10 deletions(-) rename framework/base/src/types/interaction/{ => contract_call_legacy}/async_call.rs (86%) rename framework/base/src/types/interaction/{ => contract_call_legacy}/async_call_promises.rs (95%) diff --git a/framework/base/src/types/interaction/contract_call_legacy.rs b/framework/base/src/types/interaction/contract_call_legacy.rs index 22ebc84d7d..5be09c0a36 100644 --- a/framework/base/src/types/interaction/contract_call_legacy.rs +++ b/framework/base/src/types/interaction/contract_call_legacy.rs @@ -1,3 +1,5 @@ +mod async_call; +mod async_call_promises; mod contract_call_convert; mod contract_call_exec; mod contract_call_no_payment; @@ -8,6 +10,8 @@ mod contract_call_with_egld_or_single_esdt; mod contract_call_with_multi_esdt; mod contract_deploy; +pub use async_call::AsyncCall; +pub use async_call_promises::AsyncCallPromises; pub use contract_call_no_payment::ContractCallNoPayment; pub use contract_call_trait::{ContractCall, ContractCallBase}; pub use contract_call_with_any_payment::ContractCallWithAnyPayment; diff --git a/framework/base/src/types/interaction/async_call.rs b/framework/base/src/types/interaction/contract_call_legacy/async_call.rs similarity index 86% rename from framework/base/src/types/interaction/async_call.rs rename to framework/base/src/types/interaction/contract_call_legacy/async_call.rs index 5c3b60a41f..62396de515 100644 --- a/framework/base/src/types/interaction/async_call.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/async_call.rs @@ -1,10 +1,8 @@ use crate::{ api::{CallTypeApi, StorageWriteApi}, - types::{CallbackClosure, EgldPayment, ManagedAddress}, + types::{CallbackClosure, EgldPayment, FunctionCall, ManagedAddress, Tx, TxScEnv}, }; -use super::{FunctionCall, Tx, TxScEnv}; - pub type AsyncCall = Tx< TxScEnv, (), diff --git a/framework/base/src/types/interaction/async_call_promises.rs b/framework/base/src/types/interaction/contract_call_legacy/async_call_promises.rs similarity index 95% rename from framework/base/src/types/interaction/async_call_promises.rs rename to framework/base/src/types/interaction/contract_call_legacy/async_call_promises.rs index ea03c0e777..be22afd129 100644 --- a/framework/base/src/types/interaction/async_call_promises.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/async_call_promises.rs @@ -1,11 +1,9 @@ use crate::{ api::CallTypeApi, contract_base::SendRawWrapper, - types::{BigUint, CallbackClosure, ManagedAddress, ManagedBuffer}, + types::{BigUint, CallbackClosure, FunctionCall, ManagedAddress, ManagedBuffer}, }; -use super::FunctionCall; - /// Will be renamed to `AsyncCall` and `AsyncCall` to `AsyncCallLegacy` when the promises end up on the mainnet. #[must_use] pub struct AsyncCallPromises diff --git a/framework/base/src/types/interaction/mod.rs b/framework/base/src/types/interaction/mod.rs index 739e91a1ec..b55bb02954 100644 --- a/framework/base/src/types/interaction/mod.rs +++ b/framework/base/src/types/interaction/mod.rs @@ -1,6 +1,4 @@ mod annotated; -mod async_call; -mod async_call_promises; mod back_transfers; mod callback_closure; mod callback_selector_result; @@ -28,8 +26,6 @@ mod typed_function_call; mod upgrade_call; pub use annotated::*; -pub use async_call::AsyncCall; -pub use async_call_promises::AsyncCallPromises; pub use back_transfers::BackTransfers; pub use callback_closure::{ new_callback_call, CallbackClosure, CallbackClosureForDeser, CallbackClosureMatcher, From a39cc62b984b4f5a4bd4e306e67b2c79234759e9 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 24 Apr 2024 07:26:17 +0300 Subject: [PATCH 065/185] deprecated TypedFunctionCall --- .../base/src/types/interaction/contract_call_legacy.rs | 2 ++ .../{ => contract_call_legacy}/typed_function_call.rs | 8 +++----- framework/base/src/types/interaction/mod.rs | 2 -- 3 files changed, 5 insertions(+), 7 deletions(-) rename framework/base/src/types/interaction/{ => contract_call_legacy}/typed_function_call.rs (73%) diff --git a/framework/base/src/types/interaction/contract_call_legacy.rs b/framework/base/src/types/interaction/contract_call_legacy.rs index 5be09c0a36..8532f6de09 100644 --- a/framework/base/src/types/interaction/contract_call_legacy.rs +++ b/framework/base/src/types/interaction/contract_call_legacy.rs @@ -9,6 +9,7 @@ mod contract_call_with_egld; mod contract_call_with_egld_or_single_esdt; mod contract_call_with_multi_esdt; mod contract_deploy; +mod typed_function_call; pub use async_call::AsyncCall; pub use async_call_promises::AsyncCallPromises; @@ -19,6 +20,7 @@ pub use contract_call_with_egld::ContractCallWithEgld; pub use contract_call_with_egld_or_single_esdt::ContractCallWithEgldOrSingleEsdt; pub use contract_call_with_multi_esdt::ContractCallWithMultiEsdt; pub use contract_deploy::{new_contract_deploy, ContractDeploy}; +pub use typed_function_call::TypedFunctionCall; /// Using max u64 to represent maximum possible gas, /// so that the value zero is not reserved and can be specified explicitly. diff --git a/framework/base/src/types/interaction/typed_function_call.rs b/framework/base/src/types/interaction/contract_call_legacy/typed_function_call.rs similarity index 73% rename from framework/base/src/types/interaction/typed_function_call.rs rename to framework/base/src/types/interaction/contract_call_legacy/typed_function_call.rs index 39679247fc..835ae8995b 100644 --- a/framework/base/src/types/interaction/typed_function_call.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/typed_function_call.rs @@ -1,12 +1,10 @@ use core::marker::PhantomData; use crate::api::ManagedTypeApi; +use crate::types::FunctionCall; -use super::FunctionCall; - -/// Encodes a function call on the blockchain, together with the original result type. -/// -/// Can be used as a multi-argument, to embed a call within a call. +/// Old attempt at grouping FunctionCall + OriginalTypeMarker. +#[deprecated(since = "0.49.0", note = "Not clear if it still used anywhere, will delete soon.")] pub struct TypedFunctionCall where Api: ManagedTypeApi, diff --git a/framework/base/src/types/interaction/mod.rs b/framework/base/src/types/interaction/mod.rs index b55bb02954..2b0913a101 100644 --- a/framework/base/src/types/interaction/mod.rs +++ b/framework/base/src/types/interaction/mod.rs @@ -22,7 +22,6 @@ mod tx_result_handler; mod tx_rh_list; mod tx_rh_original_result; mod tx_to; -mod typed_function_call; mod upgrade_call; pub use annotated::*; @@ -50,7 +49,6 @@ pub use tx_result_handler::*; pub use tx_rh_list::*; pub use tx_rh_original_result::*; pub use tx_to::*; -pub use typed_function_call::*; pub use upgrade_call::*; pub type TxScBase = TxBaseWithEnv>; From 118d3780385b89bcd30647372bda18e0feac0d67 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 24 Apr 2024 09:39:52 +0300 Subject: [PATCH 066/185] tx_data dir --- .../contract_call_legacy/typed_function_call.rs | 8 +++++--- framework/base/src/types/interaction/mod.rs | 8 -------- framework/base/src/types/interaction/tx_data.rs | 12 +++++++++++- .../types/interaction/{ => tx_data}/deploy_call.rs | 4 ++-- .../types/interaction/{ => tx_data}/function_call.rs | 12 +++++------- .../interaction/{ => tx_data}/tx_code_source.rs | 4 +--- .../types/interaction/{ => tx_data}/upgrade_call.rs | 7 ++++--- 7 files changed, 28 insertions(+), 27 deletions(-) rename framework/base/src/types/interaction/{ => tx_data}/deploy_call.rs (93%) rename framework/base/src/types/interaction/{ => tx_data}/function_call.rs (93%) rename framework/base/src/types/interaction/{ => tx_data}/tx_code_source.rs (93%) rename framework/base/src/types/interaction/{ => tx_data}/upgrade_call.rs (93%) diff --git a/framework/base/src/types/interaction/contract_call_legacy/typed_function_call.rs b/framework/base/src/types/interaction/contract_call_legacy/typed_function_call.rs index 835ae8995b..8589a0dc28 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/typed_function_call.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/typed_function_call.rs @@ -1,10 +1,12 @@ use core::marker::PhantomData; -use crate::api::ManagedTypeApi; -use crate::types::FunctionCall; +use crate::{api::ManagedTypeApi, types::FunctionCall}; /// Old attempt at grouping FunctionCall + OriginalTypeMarker. -#[deprecated(since = "0.49.0", note = "Not clear if it still used anywhere, will delete soon.")] +#[deprecated( + since = "0.49.0", + note = "Not clear if it still used anywhere, will delete soon." +)] pub struct TypedFunctionCall where Api: ManagedTypeApi, diff --git a/framework/base/src/types/interaction/mod.rs b/framework/base/src/types/interaction/mod.rs index 2b0913a101..e36cac1edb 100644 --- a/framework/base/src/types/interaction/mod.rs +++ b/framework/base/src/types/interaction/mod.rs @@ -3,14 +3,11 @@ mod back_transfers; mod callback_closure; mod callback_selector_result; mod contract_call_legacy; -mod deploy_call; mod expr; -mod function_call; mod managed_arg_buffer; mod markers; pub mod system_proxy; mod tx; -mod tx_code_source; mod tx_data; mod tx_env; mod tx_exec; @@ -22,7 +19,6 @@ mod tx_result_handler; mod tx_rh_list; mod tx_rh_original_result; mod tx_to; -mod upgrade_call; pub use annotated::*; pub use back_transfers::BackTransfers; @@ -31,13 +27,10 @@ pub use callback_closure::{ }; pub use callback_selector_result::CallbackSelectorResult; pub use contract_call_legacy::*; -pub use deploy_call::*; pub use expr::*; -pub use function_call::FunctionCall; pub use managed_arg_buffer::ManagedArgBuffer; pub use markers::*; pub use tx::*; -pub use tx_code_source::*; pub use tx_data::*; pub use tx_env::*; pub use tx_exec::*; @@ -49,6 +42,5 @@ pub use tx_result_handler::*; pub use tx_rh_list::*; pub use tx_rh_original_result::*; pub use tx_to::*; -pub use upgrade_call::*; pub type TxScBase = TxBaseWithEnv>; diff --git a/framework/base/src/types/interaction/tx_data.rs b/framework/base/src/types/interaction/tx_data.rs index 7ea227deaa..dc6db88135 100644 --- a/framework/base/src/types/interaction/tx_data.rs +++ b/framework/base/src/types/interaction/tx_data.rs @@ -1,9 +1,19 @@ +mod deploy_call; +mod function_call; +mod tx_code_source; +mod upgrade_call; + +pub use deploy_call::DeployCall; +pub use function_call::FunctionCall; +pub use tx_code_source::*; +pub use upgrade_call::UpgradeCall; + use crate::{ formatter::SCLowerHex, types::{ManagedBuffer, ManagedBufferBuilder}, }; -use super::{FunctionCall, TxEnv}; +use super::TxEnv; pub trait TxData where diff --git a/framework/base/src/types/interaction/deploy_call.rs b/framework/base/src/types/interaction/tx_data/deploy_call.rs similarity index 93% rename from framework/base/src/types/interaction/deploy_call.rs rename to framework/base/src/types/interaction/tx_data/deploy_call.rs index ad087d34b8..a742901736 100644 --- a/framework/base/src/types/interaction/deploy_call.rs +++ b/framework/base/src/types/interaction/tx_data/deploy_call.rs @@ -1,8 +1,8 @@ use multiversx_sc_codec::TopEncodeMulti; -use crate::types::{CodeMetadata, ManagedBuffer, ManagedBufferCachedBuilder}; +use crate::types::{CodeMetadata, ManagedArgBuffer, ManagedBuffer, ManagedBufferCachedBuilder}; -use super::{ManagedArgBuffer, TxCodeSource, TxData, TxEnv}; +use super::{TxCodeSource, TxData, TxEnv}; /// Holds deploy data: code, code metadata, and arguments. pub struct DeployCall diff --git a/framework/base/src/types/interaction/function_call.rs b/framework/base/src/types/interaction/tx_data/function_call.rs similarity index 93% rename from framework/base/src/types/interaction/function_call.rs rename to framework/base/src/types/interaction/tx_data/function_call.rs index 1d78735a79..9242e141cf 100644 --- a/framework/base/src/types/interaction/function_call.rs +++ b/framework/base/src/types/interaction/tx_data/function_call.rs @@ -10,13 +10,11 @@ use crate::{ ESDT_TRANSFER_FUNC_NAME, }, types::{ - EsdtTokenPayment, EsdtTokenPaymentRefs, ManagedAddress, ManagedBuffer, ManagedVec, - MultiValueEncoded, + ContractCallNoPayment, EsdtTokenPayment, EsdtTokenPaymentRefs, ManagedAddress, + ManagedArgBuffer, ManagedBuffer, ManagedVec, MultiValueEncoded, TypedFunctionCall, }, }; -use super::{ContractCallNoPayment, ManagedArgBuffer, TypedFunctionCall}; - /// Encodes a function call on the blockchain, composed of a function name and its encoded arguments. /// /// Can be used as a multi-argument, to embed a call within a call. @@ -160,7 +158,7 @@ where Api: ManagedTypeApi, { /// Constructs `ESDTTransfer` builtin function call. - pub(super) fn convert_to_single_transfer_fungible_call( + pub(crate) fn convert_to_single_transfer_fungible_call( self, payment: EsdtTokenPaymentRefs<'_, Api>, ) -> FunctionCall { @@ -177,7 +175,7 @@ where /// arg1 - nonce /// arg2 - quantity to transfer /// arg3 - destination address - pub(super) fn convert_to_single_transfer_nft_call( + pub(crate) fn convert_to_single_transfer_nft_call( self, to: &ManagedAddress, payment: EsdtTokenPaymentRefs<'_, Api>, @@ -191,7 +189,7 @@ where } /// Constructs `MultiESDTNFTTransfer` builtin function call. - pub(super) fn convert_to_multi_transfer_esdt_call( + pub(crate) fn convert_to_multi_transfer_esdt_call( self, to: &ManagedAddress, payments: &ManagedVec>, diff --git a/framework/base/src/types/interaction/tx_code_source.rs b/framework/base/src/types/interaction/tx_data/tx_code_source.rs similarity index 93% rename from framework/base/src/types/interaction/tx_code_source.rs rename to framework/base/src/types/interaction/tx_data/tx_code_source.rs index d7013a9cde..e7bb0817ea 100644 --- a/framework/base/src/types/interaction/tx_code_source.rs +++ b/framework/base/src/types/interaction/tx_data/tx_code_source.rs @@ -1,6 +1,4 @@ -use crate::types::{ManagedAddress, ManagedBuffer}; - -use super::{AnnotatedValue, TxEnv}; +use crate::types::{AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv}; pub trait TxCodeSource where diff --git a/framework/base/src/types/interaction/upgrade_call.rs b/framework/base/src/types/interaction/tx_data/upgrade_call.rs similarity index 93% rename from framework/base/src/types/interaction/upgrade_call.rs rename to framework/base/src/types/interaction/tx_data/upgrade_call.rs index d69895f029..591e8accb5 100644 --- a/framework/base/src/types/interaction/upgrade_call.rs +++ b/framework/base/src/types/interaction/tx_data/upgrade_call.rs @@ -1,8 +1,9 @@ use multiversx_sc_codec::TopEncodeMulti; -use crate::types::{CodeMetadata, ManagedBuffer, ManagedBufferCachedBuilder}; - -use super::{ManagedArgBuffer, TxCodeSource, TxData, TxEnv}; +use crate::types::{ + CodeMetadata, ManagedArgBuffer, ManagedBuffer, ManagedBufferCachedBuilder, TxCodeSource, + TxData, TxEnv, +}; /// Holds deploy data: code, code metadata, and arguments. pub struct UpgradeCall From 8926fd81fa1c2c0cc82b28d20770ee0703f0112a Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 24 Apr 2024 09:43:15 +0300 Subject: [PATCH 067/185] result hadnlers reorg --- framework/base/src/types/interaction/mod.rs | 6 ++---- .../{tx_result_handler.rs => result_handlers.rs} | 0 .../{tx_result_handler => result_handlers}/returns_bt.rs | 0 .../returns_new_address.rs | 0 .../returns_new_managed_address.rs | 0 .../returns_raw_result.rs | 0 .../returns_result.rs | 0 .../returns_result_conv.rs | 0 .../with_new_address.rs | 0 .../with_raw_result.rs | 0 .../{tx_result_handler => result_handlers}/with_result.rs | 0 .../with_result_conv.rs | 0 framework/base/src/types/interaction/tx_rh_list.rs | 2 ++ .../interaction/{ => tx_rh_list}/tx_rh_original_result.rs | 2 +- 14 files changed, 5 insertions(+), 5 deletions(-) rename framework/base/src/types/interaction/{tx_result_handler.rs => result_handlers.rs} (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/returns_bt.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/returns_new_address.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/returns_new_managed_address.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/returns_raw_result.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/returns_result.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/returns_result_conv.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/with_new_address.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/with_raw_result.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/with_result.rs (100%) rename framework/base/src/types/interaction/{tx_result_handler => result_handlers}/with_result_conv.rs (100%) rename framework/base/src/types/interaction/{ => tx_rh_list}/tx_rh_original_result.rs (92%) diff --git a/framework/base/src/types/interaction/mod.rs b/framework/base/src/types/interaction/mod.rs index e36cac1edb..e73cf9491b 100644 --- a/framework/base/src/types/interaction/mod.rs +++ b/framework/base/src/types/interaction/mod.rs @@ -6,6 +6,7 @@ mod contract_call_legacy; mod expr; mod managed_arg_buffer; mod markers; +mod result_handlers; pub mod system_proxy; mod tx; mod tx_data; @@ -15,9 +16,7 @@ mod tx_from; mod tx_gas; mod tx_payment; mod tx_proxy; -mod tx_result_handler; mod tx_rh_list; -mod tx_rh_original_result; mod tx_to; pub use annotated::*; @@ -30,6 +29,7 @@ pub use contract_call_legacy::*; pub use expr::*; pub use managed_arg_buffer::ManagedArgBuffer; pub use markers::*; +pub use result_handlers::*; pub use tx::*; pub use tx_data::*; pub use tx_env::*; @@ -38,9 +38,7 @@ pub use tx_from::*; pub use tx_gas::*; pub use tx_payment::*; pub use tx_proxy::*; -pub use tx_result_handler::*; pub use tx_rh_list::*; -pub use tx_rh_original_result::*; pub use tx_to::*; pub type TxScBase = TxBaseWithEnv>; diff --git a/framework/base/src/types/interaction/tx_result_handler.rs b/framework/base/src/types/interaction/result_handlers.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler.rs rename to framework/base/src/types/interaction/result_handlers.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/returns_bt.rs b/framework/base/src/types/interaction/result_handlers/returns_bt.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/returns_bt.rs rename to framework/base/src/types/interaction/result_handlers/returns_bt.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/returns_new_address.rs b/framework/base/src/types/interaction/result_handlers/returns_new_address.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/returns_new_address.rs rename to framework/base/src/types/interaction/result_handlers/returns_new_address.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/returns_new_managed_address.rs b/framework/base/src/types/interaction/result_handlers/returns_new_managed_address.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/returns_new_managed_address.rs rename to framework/base/src/types/interaction/result_handlers/returns_new_managed_address.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/returns_raw_result.rs b/framework/base/src/types/interaction/result_handlers/returns_raw_result.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/returns_raw_result.rs rename to framework/base/src/types/interaction/result_handlers/returns_raw_result.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/returns_result.rs b/framework/base/src/types/interaction/result_handlers/returns_result.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/returns_result.rs rename to framework/base/src/types/interaction/result_handlers/returns_result.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/returns_result_conv.rs b/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/returns_result_conv.rs rename to framework/base/src/types/interaction/result_handlers/returns_result_conv.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/with_new_address.rs b/framework/base/src/types/interaction/result_handlers/with_new_address.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/with_new_address.rs rename to framework/base/src/types/interaction/result_handlers/with_new_address.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/with_raw_result.rs b/framework/base/src/types/interaction/result_handlers/with_raw_result.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/with_raw_result.rs rename to framework/base/src/types/interaction/result_handlers/with_raw_result.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/with_result.rs b/framework/base/src/types/interaction/result_handlers/with_result.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/with_result.rs rename to framework/base/src/types/interaction/result_handlers/with_result.rs diff --git a/framework/base/src/types/interaction/tx_result_handler/with_result_conv.rs b/framework/base/src/types/interaction/result_handlers/with_result_conv.rs similarity index 100% rename from framework/base/src/types/interaction/tx_result_handler/with_result_conv.rs rename to framework/base/src/types/interaction/result_handlers/with_result_conv.rs diff --git a/framework/base/src/types/interaction/tx_rh_list.rs b/framework/base/src/types/interaction/tx_rh_list.rs index b4ca45bc58..7c4ccf74bd 100644 --- a/framework/base/src/types/interaction/tx_rh_list.rs +++ b/framework/base/src/types/interaction/tx_rh_list.rs @@ -1,7 +1,9 @@ mod tx_rh_list_cons; mod tx_rh_list_exec; mod tx_rh_list_item; +mod tx_rh_original_result; pub use tx_rh_list_cons::*; pub use tx_rh_list_exec::*; pub use tx_rh_list_item::*; +pub use tx_rh_original_result::OriginalResultMarker; diff --git a/framework/base/src/types/interaction/tx_rh_original_result.rs b/framework/base/src/types/interaction/tx_rh_list/tx_rh_original_result.rs similarity index 92% rename from framework/base/src/types/interaction/tx_rh_original_result.rs rename to framework/base/src/types/interaction/tx_rh_list/tx_rh_original_result.rs index cfbe36aef8..175f5c6404 100644 --- a/framework/base/src/types/interaction/tx_rh_original_result.rs +++ b/framework/base/src/types/interaction/tx_rh_list/tx_rh_original_result.rs @@ -1,6 +1,6 @@ use core::marker::PhantomData; -use super::{TxEmptyResultHandler, TxEnv, TxResultHandler}; +use crate::types::{TxEmptyResultHandler, TxEnv, TxResultHandler}; /// Contains no data. /// From 48d81ea90c138d671e1b7d470f0a606edc0c7b0f Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 24 Apr 2024 11:32:52 +0300 Subject: [PATCH 068/185] cleanup --- .../rewards-distribution/src/proxy.rs | 233 ------------------ .../rewards_distribution_blackbox_test.rs | 15 +- 2 files changed, 4 insertions(+), 244 deletions(-) delete mode 100644 contracts/examples/rewards-distribution/src/proxy.rs diff --git a/contracts/examples/rewards-distribution/src/proxy.rs b/contracts/examples/rewards-distribution/src/proxy.rs deleted file mode 100644 index 4a02c6c098..0000000000 --- a/contracts/examples/rewards-distribution/src/proxy.rs +++ /dev/null @@ -1,233 +0,0 @@ -// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. - -//////////////////////////////////////////////////// -////////////////// AUTO-GENERATED ////////////////// -//////////////////////////////////////////////////// - -#![allow(dead_code)] -#![allow(clippy::all)] - -use multiversx_sc::proxy_imports::*; - -pub struct RewardsDistributionProxy; - -impl TxProxyTrait for RewardsDistributionProxy -where - Env: TxEnv, - From: TxFrom, - To: TxTo, - Gas: TxGas, -{ - type TxProxyMethods = RewardsDistributionProxyMethods; - - fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { - RewardsDistributionProxyMethods { wrapped_tx: tx } - } -} - -pub struct RewardsDistributionProxyMethods -where - Env: TxEnv, - From: TxFrom, - To: TxTo, - Gas: TxGas, -{ - wrapped_tx: Tx, -} - -#[rustfmt::skip] -impl RewardsDistributionProxyMethods -where - Env: TxEnv, - Env::Api: VMApi, - From: TxFrom, - Gas: TxGas, -{ - pub fn init< - Arg0: CodecInto>, - Arg1: CodecInto>, - >( - self, - seed_nft_minter_address: Arg0, - brackets: Arg1, - ) -> TxProxyDeploy { - self.wrapped_tx - .raw_deploy() - .argument(&seed_nft_minter_address) - .argument(&brackets) - .original_result() - } -} - -#[rustfmt::skip] -impl RewardsDistributionProxyMethods -where - Env: TxEnv, - Env::Api: VMApi, - From: TxFrom, - To: TxTo, - Gas: TxGas, -{ - pub fn deposit_royalties( - self, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("depositRoyalties") - .original_result() - } - - pub fn raffle( - self, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("raffle") - .original_result() - } - - pub fn claim_rewards< - Arg0: CodecInto, - Arg1: CodecInto, - Arg2: CodecInto, u64>>>, - >( - self, - raffle_id_start: Arg0, - raffle_id_end: Arg1, - reward_tokens: Arg2, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("claimRewards") - .argument(&raffle_id_start) - .argument(&raffle_id_end) - .argument(&reward_tokens) - .original_result() - } - - pub fn compute_claimable_amount< - Arg0: CodecInto, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto, - >( - self, - raffle_id: Arg0, - reward_token_id: Arg1, - reward_token_nonce: Arg2, - nft_nonce: Arg3, - ) -> TxProxyCall> { - self.wrapped_tx - .raw_call("computeClaimableAmount") - .argument(&raffle_id) - .argument(&reward_token_id) - .argument(&reward_token_nonce) - .argument(&nft_nonce) - .original_result() - } - - pub fn raffle_id( - self, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("getRaffleId") - .original_result() - } - - pub fn completed_raffle_id_count( - self, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("getCompletedRaffleIdCount") - .original_result() - } - - pub fn royalties< - Arg0: CodecInto, - Arg1: CodecInto>, - Arg2: CodecInto, - >( - self, - raffle_id: Arg0, - reward_token_id: Arg1, - reward_token_nonce: Arg2, - ) -> TxProxyCall> { - self.wrapped_tx - .raw_call("getRoyalties") - .argument(&raffle_id) - .argument(&reward_token_id) - .argument(&reward_token_nonce) - .original_result() - } - - pub fn nft_reward_percent< - Arg0: CodecInto, - Arg1: CodecInto, - >( - self, - raffle_id: Arg0, - nft_nonce: Arg1, - ) -> TxProxyCall> { - self.wrapped_tx - .raw_call("getNftRewardPercent") - .argument(&raffle_id) - .argument(&nft_nonce) - .original_result() - } - - pub fn was_claimed< - Arg0: CodecInto, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto, - >( - self, - raffle_id: Arg0, - reward_token_id: Arg1, - reward_token_nonce: Arg2, - nft_nonce: Arg3, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("getWasClaimed") - .argument(&raffle_id) - .argument(&reward_token_id) - .argument(&reward_token_nonce) - .argument(&nft_nonce) - .original_result() - } - - pub fn seed_nft_minter_address( - self, - ) -> TxProxyCall> { - self.wrapped_tx - .raw_call("getSeedNftMinterAddress") - .original_result() - } - - pub fn brackets( - self, - ) -> TxProxyCall> { - self.wrapped_tx - .raw_call("getBrackets") - .original_result() - } - - pub fn last_raffle_epoch( - self, - ) -> TxProxyCall { - self.wrapped_tx - .raw_call("getLastRaffleEpoch") - .original_result() - } - - pub fn nft_token_id( - self, - ) -> TxProxyCall> { - self.wrapped_tx - .raw_call("getNftTokenId") - .original_result() - } -} - -#[derive(ManagedVecItem, NestedEncode, NestedDecode)] -pub struct Bracket { - pub index_percent: u64, - pub bracket_reward_percent: u64, -} diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs index 919bf04f91..a375614dab 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs @@ -6,8 +6,7 @@ use multiversx_sc_scenario::imports::*; use std::iter::zip; use rewards_distribution::{ - rewards_distribution_proxy, ContractObj, ProxyTrait as _, RewardsDistribution, - DIVISION_SAFETY_CONSTANT, + rewards_distribution_proxy, ContractObj, RewardsDistribution, DIVISION_SAFETY_CONSTANT, }; const NFT_TOKEN_ID: &[u8] = b"NFT-123456"; @@ -21,8 +20,6 @@ const SEED_NFT_MINTER_ADDRESS_EXPR: ScExpr = ScExpr("seed-nft-minter"); const SEED_NFT_MINTER_PATH_EXPR: MxscExpr = MxscExpr("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); -type RewardsDistributionContract = ContractInfo>; - fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -39,7 +36,6 @@ fn world() -> ScenarioWorld { struct RewardsDistributionTestState { world: ScenarioWorld, - rewards_distribution_contract: RewardsDistributionContract, rewards_distribution_whitebox: WhiteboxContract>, } @@ -49,8 +45,6 @@ impl RewardsDistributionTestState { world.account(OWNER_ADDRESS_EXPR).nonce(1); - let rewards_distribution_contract = - RewardsDistributionContract::new(REWARDS_DISTRIBUTION_ADDRESS_EXPR); let rewards_distribution_whitebox = WhiteboxContract::new( REWARDS_DISTRIBUTION_ADDRESS_EXPR, rewards_distribution::contract_obj, @@ -58,7 +52,6 @@ impl RewardsDistributionTestState { Self { world, - rewards_distribution_contract, rewards_distribution_whitebox, } } @@ -212,9 +205,9 @@ fn test_raffle_and_claim() { state .world .tx() - .from(ALICE_ADDRESS_EXPR_REPL) - .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR_REPL) - .typed(proxy::RewardsDistributionProxy) + .from(ALICE_ADDRESS_EXPR) + .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .typed(rewards_distribution_proxy::RewardsDistributionProxy) .raffle() .tx_hash([0u8; 32]) // blockchain rng is deterministic, so we can use a fixed hash .run(); From 53dd069a1ee3c8621e84e8da01c4e7a6820c9948 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 24 Apr 2024 11:34:03 +0300 Subject: [PATCH 069/185] rename test --- ..._blackbox_test.rs => rewards_distribution_integration_test.rs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename contracts/examples/rewards-distribution/tests/{rewards_distribution_blackbox_test.rs => rewards_distribution_integration_test.rs} (100%) diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs similarity index 100% rename from contracts/examples/rewards-distribution/tests/rewards_distribution_blackbox_test.rs rename to contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs From b5ffe043d3c161254c2840a2a7dc455ced9606f9 Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Wed, 24 Apr 2024 13:12:25 +0300 Subject: [PATCH 070/185] coverage renderer panics if we try to render a file that is not in root --- framework/meta/src/cmd/standalone/test_coverage/render.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/meta/src/cmd/standalone/test_coverage/render.rs b/framework/meta/src/cmd/standalone/test_coverage/render.rs index 3b0d8d1307..58d65adc06 100644 --- a/framework/meta/src/cmd/standalone/test_coverage/render.rs +++ b/framework/meta/src/cmd/standalone/test_coverage/render.rs @@ -70,7 +70,7 @@ fn render_files(output: &mut String, files: &[FileSummary], root: &str) { fn render_file(output: &mut String, file: &FileSummary, root: &str) { let summary = &file.summary; - let filename = file.filename.strip_prefix(root).unwrap(); + let filename = file.filename.strip_prefix(root).unwrap_or(&file.filename); writeln_output_str( output, From 95fa5c72c0be98fac1ed4714ad2514fef5962cfd Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 24 Apr 2024 15:45:23 +0300 Subject: [PATCH 071/185] impl create account raw and set egld balance --- .../src/facade/world_tx/scenario_set_state.rs | 14 +++++++++++++- .../scenario_set_state/scenario_set_account.rs | 8 ++++++++ .../src/whitebox_legacy/contract_obj_wrapper.rs | 4 ++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 9376050f58..87c2672538 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -4,7 +4,7 @@ mod scenario_set_new_address; use crate::{ scenario::ScenarioRunner, - scenario_model::{AddressKey, AddressValue, NewAddress, SetStateStep, U64Value}, + scenario_model::{AddressKey, AddressValue, BigUintValue, NewAddress, SetStateStep, U64Value}, ScenarioWorld, }; @@ -42,6 +42,18 @@ impl ScenarioWorld { .new_address(creator_address_expr, creator_nonce_expr, new_address_expr) } + pub fn create_account_raw( + &mut self, + address: CA, + egld_balance: V, + ) -> SetStateBuilder<'_, AccountItem> + where + AddressKey: From, + BigUintValue: From, + { + self.empty_builder().account(address).balance(egld_balance) + } + pub fn current_block(&mut self) -> SetStateBuilder<'_, BlockItem> { self.empty_builder().current_block() } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index d985cbed66..70c5369659 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -179,4 +179,12 @@ impl<'w> SetStateBuilder<'w, AccountItem> { self.item.account.owner = Some(AddressValue::from(owner_expr)); self } + + pub fn set_egld_balance(mut self, balance: V) -> Self + where + BigUintValue: From, + { + self.item.account.balance = Some(BigUintValue::from(balance)); + self + } } diff --git a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs index edb4f8f019..2091ce6b46 100644 --- a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs +++ b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs @@ -180,7 +180,7 @@ impl BlockchainStateWrapper { impl BlockchainStateWrapper { pub fn create_user_account(&mut self, egld_balance: &num_bigint::BigUint) -> Address { let address = self.address_factory.new_address(); - self.create_account_raw(&address, egld_balance, None, None, None); + self.world.create_account_raw(&address, egld_balance); address } @@ -190,7 +190,7 @@ impl BlockchainStateWrapper { address: &Address, egld_balance: &num_bigint::BigUint, ) { - self.create_account_raw(address, egld_balance, None, None, None); + self.world.create_account_raw(address, egld_balance); } pub fn create_sc_account( From d9d7b9f5d7d1f184c97853a708e4ffd696a07703 Mon Sep 17 00:00:00 2001 From: Fusee Date: Wed, 24 Apr 2024 18:06:12 +0200 Subject: [PATCH 072/185] added reset function on the StaticApi --- .../scenario/src/api/impl_vh/static_api.rs | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/framework/scenario/src/api/impl_vh/static_api.rs b/framework/scenario/src/api/impl_vh/static_api.rs index 7834227314..ca1d8602e5 100644 --- a/framework/scenario/src/api/impl_vh/static_api.rs +++ b/framework/scenario/src/api/impl_vh/static_api.rs @@ -1,3 +1,4 @@ +use std::sync::Mutex; use multiversx_chain_vm::{ executor::VMHooks, vm_hooks::{StaticApiVMHooksHandler, VMHooksDispatcher, VMHooksHandler}, @@ -14,9 +15,9 @@ fn new_static_api_vh() -> VMHooksDispatcher { } thread_local! { - static STATIC_API_VH_CELL: VMHooksDispatcher = new_static_api_vh(); + static STATIC_API_VH_CELL: Mutex = Mutex::new(new_static_api_vh()); - static STATIC_API_STATIC_CELL: StaticVarData = StaticVarData::default(); + static STATIC_API_STATIC_CELL: Mutex = Mutex::new(StaticVarData::default()); } #[derive(Clone)] @@ -29,14 +30,20 @@ impl VMHooksApiBackend for StaticApiBackend { where F: FnOnce(&dyn VMHooks) -> R, { - STATIC_API_VH_CELL.with(|vh| f(vh)) + STATIC_API_VH_CELL.with(|vh_mutex| { + let vh = vh_mutex.lock().unwrap(); + f(&*vh) + }) } fn with_static_data(f: F) -> R where F: FnOnce(&StaticVarData) -> R, { - STATIC_API_STATIC_CELL.with(|data| f(data)) + STATIC_API_STATIC_CELL.with(|data_mutex| { + let data = data_mutex.lock().unwrap(); + f(&data) + }) } } @@ -50,6 +57,18 @@ impl StaticApi { pub fn is_current_address_placeholder(address: &Address) -> bool { address.as_array() == StaticApiVMHooksHandler::CURRENT_ADDRESS_PLACEHOLDER.as_array() } + + pub fn reset() { + STATIC_API_VH_CELL.with(|vh_mutex| { + let mut vh = vh_mutex.lock().unwrap(); + *vh = new_static_api_vh() + }); + + STATIC_API_STATIC_CELL.with(|data_mutex| { + let mut data = data_mutex.lock().unwrap(); + *data = StaticVarData::default() + }) + } } impl std::fmt::Debug for StaticApi { From 19dac1826e461d68018e84634dca42500f49bcfe Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Thu, 25 Apr 2024 15:03:58 +0300 Subject: [PATCH 073/185] set nft properties --- .../src/facade/world_tx/scenario_set_state.rs | 83 ++++++++++++++++++- .../scenario_set_account.rs | 7 -- .../whitebox_legacy/contract_obj_wrapper.rs | 46 ++++------ 3 files changed, 95 insertions(+), 41 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 87c2672538..83030e8d52 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -8,6 +8,8 @@ use crate::{ ScenarioWorld, }; +use multiversx_chain_vm::world_mock::EsdtInstanceMetadata; +use multiversx_sc::codec::TopEncode; use scenario_set_account::AccountItem; use scenario_set_block::BlockItem; use scenario_set_new_address::NewAddressItem; @@ -42,18 +44,93 @@ impl ScenarioWorld { .new_address(creator_address_expr, creator_nonce_expr, new_address_expr) } - pub fn create_account_raw( + pub fn create_account_raw( &mut self, - address: CA, + address: A, egld_balance: V, ) -> SetStateBuilder<'_, AccountItem> where - AddressKey: From, + AddressKey: From, BigUintValue: From, { self.empty_builder().account(address).balance(egld_balance) } + pub fn set_egld_balance(&mut self, address: A, balance: V) + where + AddressKey: From, + BigUintValue: From, + { + let vm_address = AddressKey::from(address).to_vm_address(); + let accounts = &mut self.get_mut_state().accounts; + for (vm_address_key, account) in accounts.iter_mut() { + if vm_address_key == &vm_address { + account.egld_balance = BigUintValue::from(balance).value.clone(); + } + } + } + + pub fn set_esdt_balance(&mut self, address: A, token_id: &[u8], balance: V) + where + AddressKey: From, + BigUintValue: From, + { + // let token_id = BytesKey::from(token_id); + let accounts = &mut self.get_mut_state().accounts; + for (vm_address, account) in accounts.iter_mut() { + if vm_address == &AddressKey::from(address).to_vm_address() { + account.esdt.set_esdt_balance( + token_id.to_vec(), + 0, + &BigUintValue::from(balance).value.clone(), + EsdtInstanceMetadata::default(), + ) + } + } + } + + pub fn set_nft_balance_all_properties( + &mut self, + address: A, + token_id: &[u8], + nonce: NR, + balance: V, + attributes: &T, + royalties: NR, + creator: Option, + name: Option<&[u8]>, + hash: Option<&[u8]>, + uris: &[Vec], + ) where + AddressKey: From, + BigUintValue: From, + U64Value: From, + { + let mut esdt_attributes = Vec::new(); + let _ = attributes.top_encode(&mut esdt_attributes); + let accounts = &mut self.get_mut_state().accounts; + for (vm_address, account) in accounts.iter_mut() { + if vm_address == &AddressKey::from(address).to_vm_address() { + account.esdt.set_esdt_balance( + token_id.to_vec(), + U64Value::from(nonce).value, + &BigUintValue::from(balance).value.clone(), + EsdtInstanceMetadata { + creator: match creator { + Some(c) => Some(AddressKey::from(c).to_vm_address()), + None => None, + }, + attributes: esdt_attributes.clone(), + royalties: U64Value::from(royalties).value, + name: name.unwrap_or_default().to_vec(), + hash: hash.map(|h| h.to_vec()), + uri: uris.to_vec(), + }, + ) + } + } + } + pub fn current_block(&mut self) -> SetStateBuilder<'_, BlockItem> { self.empty_builder().current_block() } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index 70c5369659..a695fa155a 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -180,11 +180,4 @@ impl<'w> SetStateBuilder<'w, AccountItem> { self } - pub fn set_egld_balance(mut self, balance: V) -> Self - where - BigUintValue: From, - { - self.item.account.balance = Some(BigUintValue::from(balance)); - self - } } diff --git a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs index 2091ce6b46..26edf73aed 100644 --- a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs +++ b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs @@ -344,19 +344,7 @@ impl BlockchainStateWrapper { } pub fn set_egld_balance(&mut self, address: &Address, balance: &num_bigint::BigUint) { - let vm_address = to_vm_address(address); - match self.world.get_mut_state().accounts.get_mut(&vm_address) { - Some(acc) => { - acc.egld_balance = balance.clone(); - - self.add_mandos_set_account(address); - }, - - None => panic!( - "set_egld_balance: Account {:?} does not exist", - address_to_hex(address) - ), - } + self.world.set_egld_balance(address, balance); } pub fn set_esdt_balance( @@ -365,23 +353,7 @@ impl BlockchainStateWrapper { token_id: &[u8], balance: &num_bigint::BigUint, ) { - let vm_address = to_vm_address(address); - match self.world.get_mut_state().accounts.get_mut(&vm_address) { - Some(acc) => { - acc.esdt.set_esdt_balance( - token_id.to_vec(), - 0, - balance, - EsdtInstanceMetadata::default(), - ); - - self.add_mandos_set_account(address); - }, - None => panic!( - "set_esdt_balance: Account {:?} does not exist", - address_to_hex(address) - ), - } + self.world.set_esdt_balance(address, token_id, balance); } pub fn set_nft_balance( @@ -392,7 +364,7 @@ impl BlockchainStateWrapper { balance: &num_bigint::BigUint, attributes: &T, ) { - self.set_nft_balance_all_properties( + self.world.set_nft_balance_all_properties( address, token_id, nonce, @@ -404,6 +376,18 @@ impl BlockchainStateWrapper { None, &[], ); + // self.set_nft_balance_all_properties( + // address, + // token_id, + // nonce, + // balance, + // attributes, + // 0, + // None, + // None, + // None, + // &[], + // ); } pub fn set_developer_rewards( From fbd49fcd745fb4dff55296be541ca807b5ab33dc Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Thu, 25 Apr 2024 17:54:52 +0300 Subject: [PATCH 074/185] impl set developer rewards --- .../src/facade/world_tx/scenario_set_state.rs | 25 +++++-- .../whitebox_legacy/contract_obj_wrapper.rs | 68 ++++--------------- 2 files changed, 31 insertions(+), 62 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 83030e8d52..3a8e5d2b30 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -4,7 +4,10 @@ mod scenario_set_new_address; use crate::{ scenario::ScenarioRunner, - scenario_model::{AddressKey, AddressValue, BigUintValue, NewAddress, SetStateStep, U64Value}, + scenario_model::{ + AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, NewAddress, SetStateStep, + U64Value, + }, ScenarioWorld, }; @@ -75,7 +78,6 @@ impl ScenarioWorld { AddressKey: From, BigUintValue: From, { - // let token_id = BytesKey::from(token_id); let accounts = &mut self.get_mut_state().accounts; for (vm_address, account) in accounts.iter_mut() { if vm_address == &AddressKey::from(address).to_vm_address() { @@ -89,6 +91,7 @@ impl ScenarioWorld { } } + #[allow(clippy::too_many_arguments)] pub fn set_nft_balance_all_properties( &mut self, address: A, @@ -116,10 +119,7 @@ impl ScenarioWorld { U64Value::from(nonce).value, &BigUintValue::from(balance).value.clone(), EsdtInstanceMetadata { - creator: match creator { - Some(c) => Some(AddressKey::from(c).to_vm_address()), - None => None, - }, + creator: creator.map(|c| AddressKey::from(c).to_vm_address()), attributes: esdt_attributes.clone(), royalties: U64Value::from(royalties).value, name: name.unwrap_or_default().to_vec(), @@ -131,6 +131,19 @@ impl ScenarioWorld { } } + pub fn set_developer_rewards(&mut self, address: A, developer_rewards: V) + where + AddressKey: From, + BigUintValue: From, + { + let accounts = &mut self.get_mut_state().accounts; + for (vm_address, account) in accounts.iter_mut() { + if vm_address == &AddressKey::from(address).to_vm_address() { + account.developer_rewards = BigUintValue::from(developer_rewards).value.clone(); + } + } + } + pub fn current_block(&mut self) -> SetStateBuilder<'_, BlockItem> { self.empty_builder().current_block() } diff --git a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs index 26edf73aed..e7503cdcd6 100644 --- a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs +++ b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs @@ -16,7 +16,6 @@ use multiversx_chain_scenario_format::interpret_trait::InterpretableFrom; use multiversx_chain_vm::{ tx_mock::{TxContext, TxContextStack, TxFunctionName, TxResult}, types::VMAddress, - world_mock::EsdtInstanceMetadata, }; use multiversx_sc::types::H256; use num_traits::Zero; @@ -376,18 +375,6 @@ impl BlockchainStateWrapper { None, &[], ); - // self.set_nft_balance_all_properties( - // address, - // token_id, - // nonce, - // balance, - // attributes, - // 0, - // None, - // None, - // None, - // &[], - // ); } pub fn set_developer_rewards( @@ -395,18 +382,8 @@ impl BlockchainStateWrapper { address: &Address, developer_rewards: num_bigint::BigUint, ) { - let vm_address: VMAddress = to_vm_address(address); - match self.world.get_mut_state().accounts.get_mut(&vm_address) { - Some(acc) => { - acc.developer_rewards = developer_rewards; - - self.add_mandos_set_account(address); - }, - None => panic!( - "set_developer_rewards: Account {:?} does not exist", - address_to_hex(address) - ), - } + self.world + .set_developer_rewards(address, &developer_rewards); } #[allow(clippy::too_many_arguments)] @@ -423,30 +400,9 @@ impl BlockchainStateWrapper { hash: Option<&[u8]>, uris: &[Vec], ) { - let vm_address = to_vm_address(address); - match self.world.get_mut_state().accounts.get_mut(&vm_address) { - Some(acc) => { - acc.esdt.set_esdt_balance( - token_id.to_vec(), - nonce, - balance, - EsdtInstanceMetadata { - creator: creator.map(to_vm_address), - attributes: serialize_attributes(attributes), - royalties, - name: name.unwrap_or_default().to_vec(), - hash: hash.map(|h| h.to_vec()), - uri: uris.to_vec(), - }, - ); - - self.add_mandos_set_account(address); - }, - None => panic!( - "set_nft_balance: Account {:?} does not exist", - address_to_hex(address) - ), - } + self.world.set_nft_balance_all_properties( + address, token_id, nonce, balance, attributes, royalties, creator, name, hash, uris, + ); } pub fn set_esdt_local_roles( @@ -840,14 +796,14 @@ fn address_to_hex(address: &Address) -> String { hex::encode(address.as_bytes()) } -fn serialize_attributes(attributes: &T) -> Vec { - let mut serialized_attributes = Vec::new(); - if let Result::Err(err) = attributes.top_encode(&mut serialized_attributes) { - panic!("Failed to encode attributes: {err:?}") - } +// fn serialize_attributes(attributes: &T) -> Vec { +// let mut serialized_attributes = Vec::new(); +// if let Result::Err(err) = attributes.top_encode(&mut serialized_attributes) { +// panic!("Failed to encode attributes: {err:?}") +// } - serialized_attributes -} +// serialized_attributes +// } fn print_token_balance_raw( token_nonce: u64, From 050eb243985e567a1517e4f95d5cf544e2dfc4ad Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 25 Apr 2024 22:38:59 +0300 Subject: [PATCH 075/185] ScearioWorld register contract new file --- framework/scenario/src/facade.rs | 1 + .../scenario/src/facade/scenario_world.rs | 104 ----------------- .../src/facade/scenario_world_register.rs | 110 ++++++++++++++++++ 3 files changed, 111 insertions(+), 104 deletions(-) create mode 100644 framework/scenario/src/facade/scenario_world_register.rs diff --git a/framework/scenario/src/facade.rs b/framework/scenario/src/facade.rs index 77a00e4792..75a688a36a 100644 --- a/framework/scenario/src/facade.rs +++ b/framework/scenario/src/facade.rs @@ -3,6 +3,7 @@ mod debugger_backend; pub mod expr; pub mod result_handlers; mod scenario_world; +mod scenario_world_register; mod scenario_world_runner; mod scenario_world_steps; mod scenario_world_steps_deprecated; diff --git a/framework/scenario/src/facade/scenario_world.rs b/framework/scenario/src/facade/scenario_world.rs index d760c1743a..f5b05024bd 100644 --- a/framework/scenario/src/facade/scenario_world.rs +++ b/framework/scenario/src/facade/scenario_world.rs @@ -1,17 +1,7 @@ -use multiversx_chain_scenario_format::interpret_trait::InterpretableFrom; use multiversx_chain_vm::world_mock::BlockchainState; -use multiversx_sc_meta::cmd::contract::sc_config::ContractVariant; use crate::{ - api::DebugApi, - debug_executor::ContractContainer, - multiversx_sc::{ - api, - contract_base::{CallableContractBuilder, ContractAbiProvider}, - }, scenario::{run_trace::ScenarioTrace, run_vm::ScenarioVMRunner}, - scenario_format::{interpret_trait::InterpreterContext, value_interpreter::interpret_string}, - scenario_model::BytesValue, vm_go_tool::run_mx_scenario_go, }; use multiversx_sc_meta::find_workspace::find_current_workspace; @@ -126,100 +116,6 @@ impl ScenarioWorld { &self.current_dir } - pub fn interpreter_context(&self) -> InterpreterContext { - InterpreterContext::default() - .with_dir(self.current_dir.clone()) - .with_allowed_missing_files() - } - - /// Convenient way of creating a code expression based on the current context - /// (i.e. with the paths resolved, as configured). - pub fn code_expression(&self, path: &str) -> BytesValue { - BytesValue::interpret_from(path, &self.interpreter_context()) - } - - pub fn register_contract_container( - &mut self, - expression: &str, - contract_container: ContractContainer, - ) { - let contract_bytes = interpret_string(expression, &self.interpreter_context()); - self.get_mut_debugger_backend() - .vm_runner - .contract_map_ref - .lock() - .register_contract(contract_bytes, contract_container); - } - - /// Links a contract path in a test to a contract implementation. - pub fn register_contract( - &mut self, - expression: &str, - contract_builder: B, - ) { - self.register_contract_container( - expression, - ContractContainer::new(contract_builder.new_contract_obj::(), None, false), - ) - } - - #[deprecated( - since = "0.37.0", - note = "Got renamed to `register_contract`, but not completely removed, in order to ease test migration. Please replace with `register_contract`." - )] - pub fn register_contract_builder( - &mut self, - expression: &str, - contract_builder: B, - ) { - self.register_contract(expression, contract_builder) - } - - /// Links a contract path in a test to a multi-contract output. - /// - /// This simulates the effects of building such a contract with only part of the endpoints. - pub fn register_partial_contract( - &mut self, - expression: &str, - contract_builder: B, - sub_contract_name: &str, - ) where - Abi: ContractAbiProvider, - B: CallableContractBuilder, - { - let multi_contract_config = - multiversx_sc_meta::multi_contract_config::(self.current_dir.as_path()); - let contract_variant = multi_contract_config.find_contract(sub_contract_name); - self.register_contract_variant(expression, contract_builder, contract_variant); - } - - /// Links a contract path in a test to a multi-contract output. - /// - /// This simulates the effects of building such a contract with only part of the endpoints. - pub fn register_contract_variant( - &mut self, - expression: &str, - contract_builder: B, - contract_variant: &ContractVariant, - ) where - B: CallableContractBuilder, - { - let contract_obj = if contract_variant.settings.external_view { - contract_builder.new_contract_obj::>() - } else { - contract_builder.new_contract_obj::() - }; - - self.register_contract_container( - expression, - ContractContainer::new( - contract_obj, - Some(contract_variant.all_exported_function_names()), - contract_variant.settings.panic_message, - ), - ); - } - /// Exports current scenario to a JSON file, as created. pub fn write_scenario_trace>(&mut self, file_path: P) { if let Some(trace) = &mut self.get_mut_debugger_backend().trace { diff --git a/framework/scenario/src/facade/scenario_world_register.rs b/framework/scenario/src/facade/scenario_world_register.rs new file mode 100644 index 0000000000..9833cd7da1 --- /dev/null +++ b/framework/scenario/src/facade/scenario_world_register.rs @@ -0,0 +1,110 @@ +use crate::{ + api::DebugApi, + debug_executor::ContractContainer, + multiversx_sc::{ + api, + contract_base::{CallableContractBuilder, ContractAbiProvider}, + }, + scenario_format::{interpret_trait::InterpreterContext, value_interpreter::interpret_string}, + scenario_model::BytesValue, + ScenarioWorld, +}; +use multiversx_chain_scenario_format::interpret_trait::InterpretableFrom; + +use multiversx_sc_meta::cmd::contract::sc_config::ContractVariant; + +impl ScenarioWorld { + pub fn interpreter_context(&self) -> InterpreterContext { + InterpreterContext::default() + .with_dir(self.current_dir.clone()) + .with_allowed_missing_files() + } + + /// Convenient way of creating a code expression based on the current context + /// (i.e. with the paths resolved, as configured). + pub fn code_expression(&self, path: &str) -> BytesValue { + BytesValue::interpret_from(path, &self.interpreter_context()) + } + + pub fn register_contract_container( + &mut self, + expression: &str, + contract_container: ContractContainer, + ) { + let contract_bytes = interpret_string(expression, &self.interpreter_context()); + self.get_mut_debugger_backend() + .vm_runner + .contract_map_ref + .lock() + .register_contract(contract_bytes, contract_container); + } + + /// Links a contract path in a test to a contract implementation. + pub fn register_contract( + &mut self, + expression: &str, + contract_builder: B, + ) { + self.register_contract_container( + expression, + ContractContainer::new(contract_builder.new_contract_obj::(), None, false), + ) + } + + #[deprecated( + since = "0.37.0", + note = "Got renamed to `register_contract`, but not completely removed, in order to ease test migration. Please replace with `register_contract`." + )] + pub fn register_contract_builder( + &mut self, + expression: &str, + contract_builder: B, + ) { + self.register_contract(expression, contract_builder) + } + + /// Links a contract path in a test to a multi-contract output. + /// + /// This simulates the effects of building such a contract with only part of the endpoints. + pub fn register_partial_contract( + &mut self, + expression: &str, + contract_builder: B, + sub_contract_name: &str, + ) where + Abi: ContractAbiProvider, + B: CallableContractBuilder, + { + let multi_contract_config = + multiversx_sc_meta::multi_contract_config::(self.current_dir.as_path()); + let contract_variant = multi_contract_config.find_contract(sub_contract_name); + self.register_contract_variant(expression, contract_builder, contract_variant); + } + + /// Links a contract path in a test to a multi-contract output. + /// + /// This simulates the effects of building such a contract with only part of the endpoints. + pub fn register_contract_variant( + &mut self, + expression: &str, + contract_builder: B, + contract_variant: &ContractVariant, + ) where + B: CallableContractBuilder, + { + let contract_obj = if contract_variant.settings.external_view { + contract_builder.new_contract_obj::>() + } else { + contract_builder.new_contract_obj::() + }; + + self.register_contract_container( + expression, + ContractContainer::new( + contract_obj, + Some(contract_variant.all_exported_function_names()), + contract_variant.settings.panic_message, + ), + ); + } +} From 2cafacf0ae9675d28f640bd9abb4c2715c201870 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 25 Apr 2024 23:53:07 +0300 Subject: [PATCH 076/185] register_contract generic code source --- .../adder/tests/adder_blackbox_test.rs | 4 +- .../tests/crowdfunding_esdt_blackbox_test.rs | 21 ++-------- .../multisig/tests/multisig_blackbox_test.rs | 17 +++----- framework/scenario/src/facade/expr.rs | 2 + .../scenario/src/facade/expr/file_expr.rs | 42 ++++++++++++++----- .../scenario/src/facade/expr/mxsc_expr.rs | 31 ++++++++------ .../src/facade/expr/register_code_source.rs | 28 +++++++++++++ .../src/facade/scenario_world_register.rs | 14 ++++--- .../src/facade/world_tx/scenario_tx_env.rs | 9 ++++ 9 files changed, 107 insertions(+), 61 deletions(-) create mode 100644 framework/scenario/src/facade/expr/register_code_source.rs diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index 9ca51ccbeb..e5370fc61d 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -2,8 +2,6 @@ use multiversx_sc_scenario::imports::*; use adder::*; -const ADDER_PATH_EXPR: &str = "mxsc:output/adder.mxsc.json"; - const OWNER: AddressExpr = AddressExpr("owner"); const SC_ADDER: ScExpr = ScExpr("adder"); const CODE_EXPR: MxscExpr = MxscExpr("output/adder.mxsc.json"); @@ -12,7 +10,7 @@ fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); blockchain.set_current_dir_from_workspace("contracts/examples/adder"); - blockchain.register_contract(ADDER_PATH_EXPR, adder::ContractBuilder); + blockchain.register_contract(CODE_EXPR, adder::ContractBuilder); blockchain } diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 04ea60cf3e..7b5c5805a9 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -14,10 +14,7 @@ const SC_CROWDFUNDING_ESDT_EXPR: ScExpr = ScExpr("crowdfunding-esdt"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); - blockchain.register_contract( - CODE_EXPR.eval_to_expr().as_str(), - crowdfunding_esdt::ContractBuilder, - ); + blockchain.register_contract(CODE_EXPR, crowdfunding_esdt::ContractBuilder); blockchain } @@ -40,11 +37,7 @@ impl CrowdfundingESDTTestState { .nonce(1) .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); - world.new_address( - OWNER_ADDRESS, - 1, - SC_CROWDFUNDING_ESDT_EXPR.eval_to_expr().as_str(), - ); + world.new_address(OWNER_ADDRESS, 1, SC_CROWDFUNDING_ESDT_EXPR); Self { world } } @@ -199,17 +192,11 @@ fn test_failed_cf() { state.deploy(); // first user fund - state.fund( - FIRST_USER_ADDRESS, //.eval_to_expr().as_str() - 300, - ); + state.fund(FIRST_USER_ADDRESS, 300); state.check_deposit(FIRST_USER_ADDRESS, 300u64); // second user fund - state.fund( - SECOND_USER_ADDRESS, //.eval_to_expr().as_str() - 600, - ); + state.fund(SECOND_USER_ADDRESS, 600); state.check_deposit(SECOND_USER_ADDRESS, 600u64); // set block timestamp after deadline diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 5be8e9d52b..d276fb8067 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -20,14 +20,8 @@ fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); blockchain.set_current_dir_from_workspace("contracts/examples/multisig"); - blockchain.register_contract( - MULTISIG_CODE_EXPR.eval_to_expr().as_str(), - multisig::ContractBuilder, - ); - blockchain.register_contract( - ADDER_CODE_EXPR.eval_to_expr().as_str(), - adder::ContractBuilder, - ); + blockchain.register_contract(MULTISIG_CODE_EXPR, multisig::ContractBuilder); + blockchain.register_contract(ADDER_CODE_EXPR, adder::ContractBuilder); blockchain } @@ -597,10 +591,9 @@ fn test_deploy_and_upgrade_from_source() { .world .code_expression(factorial_path_expr.eval_to_expr().as_str()); - state.world.register_contract( - factorial_path_expr.eval_to_expr().as_str(), - factorial::ContractBuilder, - ); + state + .world + .register_contract(factorial_path_expr, factorial::ContractBuilder); state .world diff --git a/framework/scenario/src/facade/expr.rs b/framework/scenario/src/facade/expr.rs index 6ea8595740..de36abef97 100644 --- a/framework/scenario/src/facade/expr.rs +++ b/framework/scenario/src/facade/expr.rs @@ -2,8 +2,10 @@ mod bech32_address; mod file_expr; mod mxsc_expr; mod num_expr; +mod register_code_source; pub use bech32_address::Bech32Address; pub use file_expr::FileExpr; pub use mxsc_expr::MxscExpr; pub use num_expr::NumExpr; +pub use register_code_source::RegisterCodeSource; diff --git a/framework/scenario/src/facade/expr/file_expr.rs b/framework/scenario/src/facade/expr/file_expr.rs index f197ce4e16..4430046a7c 100644 --- a/framework/scenario/src/facade/expr/file_expr.rs +++ b/framework/scenario/src/facade/expr/file_expr.rs @@ -1,25 +1,45 @@ use multiversx_chain_scenario_format::{ interpret_trait::InterpreterContext, value_interpreter::interpret_string, }; -use multiversx_sc::types::{AnnotatedValue, ManagedBuffer}; +use multiversx_sc::types::{AnnotatedValue, ManagedBuffer, TxCodeValue}; -use crate::{api::StaticApi, ScenarioTxEnvData}; +use crate::{ScenarioTxEnv, ScenarioTxEnvData}; + +use super::RegisterCodeSource; const FILE_PREFIX: &str = "file:"; #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub struct FileExpr<'a>(pub &'a str); -impl<'a> AnnotatedValue> for FileExpr<'a> { - fn annotation(&self, _env: &ScenarioTxEnvData) -> ManagedBuffer { - let mut result = ManagedBuffer::new_from_bytes(FILE_PREFIX.as_bytes()); - result.append_bytes(self.0.as_bytes()); - result +impl<'a> FileExpr<'a> { + pub fn eval_to_expr(&self) -> String { + format!("{FILE_PREFIX}{}", self.0) + } + + pub fn resolve_contents(&self, context: &InterpreterContext) -> Vec { + interpret_string(&format!("{FILE_PREFIX}{}", self.0), context) + } +} + +impl<'a, Env> AnnotatedValue> for FileExpr<'a> +where + Env: ScenarioTxEnv, +{ + fn annotation(&self, _env: &Env) -> ManagedBuffer { + self.eval_to_expr().into() + } + + fn to_value(&self, env: &Env) -> ManagedBuffer { + self.resolve_contents(&env.env_data().interpreter_context()) + .into() } +} + +impl<'a, Env> TxCodeValue for FileExpr<'a> where Env: ScenarioTxEnv {} - fn to_value(&self, env: &ScenarioTxEnvData) -> ManagedBuffer { - let context = InterpreterContext::new().with_dir(env.context_path.clone()); - let value = interpret_string(&format!("{FILE_PREFIX}{}", self.0), &context); - value.into() +impl<'a> RegisterCodeSource for FileExpr<'a> { + fn into_code(self, env_data: ScenarioTxEnvData) -> Vec { + self.resolve_contents(&env_data.interpreter_context()) } } diff --git a/framework/scenario/src/facade/expr/mxsc_expr.rs b/framework/scenario/src/facade/expr/mxsc_expr.rs index d130102600..886fb91503 100644 --- a/framework/scenario/src/facade/expr/mxsc_expr.rs +++ b/framework/scenario/src/facade/expr/mxsc_expr.rs @@ -3,37 +3,44 @@ use multiversx_chain_scenario_format::{ }; use multiversx_sc::types::{AnnotatedValue, ManagedBuffer, TxCodeValue}; -use crate::ScenarioTxEnv; +use crate::{ScenarioTxEnv, ScenarioTxEnvData}; + +use super::RegisterCodeSource; const MXSC_PREFIX: &str = "mxsc:"; #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub struct MxscExpr<'a>(pub &'a str); +impl<'a> MxscExpr<'a> { + pub fn eval_to_expr(&self) -> String { + format!("{MXSC_PREFIX}{}", self.0) + } + + pub fn resolve_contents(&self, context: &InterpreterContext) -> Vec { + interpret_string(&format!("{MXSC_PREFIX}{}", self.0), context) + } +} + impl<'a, Env> AnnotatedValue> for MxscExpr<'a> where Env: ScenarioTxEnv, { fn annotation(&self, _env: &Env) -> ManagedBuffer { - let mut result = ManagedBuffer::new_from_bytes(MXSC_PREFIX.as_bytes()); - result.append_bytes(self.0.as_bytes()); - result + self.eval_to_expr().into() } fn to_value(&self, env: &Env) -> ManagedBuffer { - let context = InterpreterContext::new() - .with_dir(env.env_data().context_path.clone()) - .with_allowed_missing_files(); - let value = interpret_string(&format!("{MXSC_PREFIX}{}", self.0), &context); - value.into() + self.resolve_contents(&env.env_data().interpreter_context()) + .into() } } impl<'a, Env> TxCodeValue for MxscExpr<'a> where Env: ScenarioTxEnv {} -impl<'a> MxscExpr<'a> { - pub fn eval_to_expr(&self) -> String { - format!("{MXSC_PREFIX}{}", self.0) +impl<'a> RegisterCodeSource for MxscExpr<'a> { + fn into_code(self, env_data: ScenarioTxEnvData) -> Vec { + self.resolve_contents(&env_data.interpreter_context()) } } diff --git a/framework/scenario/src/facade/expr/register_code_source.rs b/framework/scenario/src/facade/expr/register_code_source.rs new file mode 100644 index 0000000000..d586498a0f --- /dev/null +++ b/framework/scenario/src/facade/expr/register_code_source.rs @@ -0,0 +1,28 @@ +use multiversx_chain_scenario_format::value_interpreter::interpret_string; + +use crate::ScenarioTxEnvData; + +/// Used when registering a contract for debugging. +/// +/// Any type that implements this trait can be passed to the `register_contract` method, and to its variants. +pub trait RegisterCodeSource { + fn into_code(self, env_data: ScenarioTxEnvData) -> Vec; +} + +impl RegisterCodeSource for &str { + fn into_code(self, env_data: ScenarioTxEnvData) -> Vec { + interpret_string(self, &env_data.interpreter_context()) + } +} + +impl RegisterCodeSource for String { + fn into_code(self, env_data: ScenarioTxEnvData) -> Vec { + self.as_str().into_code(env_data) + } +} + +impl RegisterCodeSource for &String { + fn into_code(self, env_data: ScenarioTxEnvData) -> Vec { + self.as_str().into_code(env_data) + } +} diff --git a/framework/scenario/src/facade/scenario_world_register.rs b/framework/scenario/src/facade/scenario_world_register.rs index 9833cd7da1..4fccdec3e6 100644 --- a/framework/scenario/src/facade/scenario_world_register.rs +++ b/framework/scenario/src/facade/scenario_world_register.rs @@ -5,7 +5,7 @@ use crate::{ api, contract_base::{CallableContractBuilder, ContractAbiProvider}, }, - scenario_format::{interpret_trait::InterpreterContext, value_interpreter::interpret_string}, + scenario_format::interpret_trait::InterpreterContext, scenario_model::BytesValue, ScenarioWorld, }; @@ -13,6 +13,8 @@ use multiversx_chain_scenario_format::interpret_trait::InterpretableFrom; use multiversx_sc_meta::cmd::contract::sc_config::ContractVariant; +use super::expr::RegisterCodeSource; + impl ScenarioWorld { pub fn interpreter_context(&self) -> InterpreterContext { InterpreterContext::default() @@ -28,10 +30,10 @@ impl ScenarioWorld { pub fn register_contract_container( &mut self, - expression: &str, + expression: impl RegisterCodeSource, contract_container: ContractContainer, ) { - let contract_bytes = interpret_string(expression, &self.interpreter_context()); + let contract_bytes = expression.into_code(self.new_env_data()); self.get_mut_debugger_backend() .vm_runner .contract_map_ref @@ -42,7 +44,7 @@ impl ScenarioWorld { /// Links a contract path in a test to a contract implementation. pub fn register_contract( &mut self, - expression: &str, + expression: impl RegisterCodeSource, contract_builder: B, ) { self.register_contract_container( @@ -68,7 +70,7 @@ impl ScenarioWorld { /// This simulates the effects of building such a contract with only part of the endpoints. pub fn register_partial_contract( &mut self, - expression: &str, + expression: impl RegisterCodeSource, contract_builder: B, sub_contract_name: &str, ) where @@ -86,7 +88,7 @@ impl ScenarioWorld { /// This simulates the effects of building such a contract with only part of the endpoints. pub fn register_contract_variant( &mut self, - expression: &str, + expression: impl RegisterCodeSource, contract_builder: B, contract_variant: &ContractVariant, ) where diff --git a/framework/scenario/src/facade/world_tx/scenario_tx_env.rs b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs index 7613f94116..91aa212fc3 100644 --- a/framework/scenario/src/facade/world_tx/scenario_tx_env.rs +++ b/framework/scenario/src/facade/world_tx/scenario_tx_env.rs @@ -1,5 +1,6 @@ use std::path::PathBuf; +use multiversx_chain_scenario_format::interpret_trait::InterpreterContext; use multiversx_sc::types::{ManagedAddress, ManagedBuffer, TxEnv, H256}; use crate::{api::StaticApi, scenario_model::TxExpect, ScenarioWorld}; @@ -34,6 +35,14 @@ impl TxEnv for ScenarioTxEnvData { } } +impl ScenarioTxEnvData { + pub fn interpreter_context(&self) -> InterpreterContext { + InterpreterContext::default() + .with_dir(self.context_path.clone()) + .with_allowed_missing_files() + } +} + impl ScenarioTxEnv for ScenarioTxEnvData { fn env_data(&self) -> &ScenarioTxEnvData { self From 9d85f0adc6910ef7cfe4b02efc75a253b1644802 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 26 Apr 2024 02:33:03 +0300 Subject: [PATCH 077/185] expr refactor: address --- .../tests/price_aggregator_blackbox_test.rs | 2 +- .../tests/price_aggregator_stress_blackbox.rs | 7 +- .../adder/tests/adder_blackbox_test.rs | 2 +- .../tests/crowdfunding_esdt_blackbox_test.rs | 6 +- .../multisig/tests/multisig_blackbox_test.rs | 16 ++--- .../tests/pmf_blackbox_test.rs | 2 +- .../tests/st_blackbox_chained_test.rs | 4 +- .../tests/st_blackbox_legacy_proxy_test.rs | 2 +- .../scenario-tester/tests/st_blackbox_test.rs | 4 +- framework/base/src/imports.rs | 1 + framework/base/src/macros.rs | 7 ++ .../types/interaction/expr/address_expr.rs | 66 +++++++++++-------- .../src/types/interaction/expr/sc_expr.rs | 4 ++ .../src/scenario/model/value/address_key.rs | 2 +- .../src/scenario/model/value/address_value.rs | 2 +- 15 files changed, 75 insertions(+), 52 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index bd73790c0a..50b486210f 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -20,7 +20,7 @@ const SUBMISSION_COUNT: usize = 3; const USD_TICKER: &[u8] = b"USDC"; const PRICE_AGGREGATOR: ScExpr = ScExpr("price-aggregator"); -const OWNER: AddressExpr = AddressExpr("owner"); +const_address_expr!(OWNER = "owner"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs b/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs index 4c01ab175f..6d47282622 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs @@ -9,6 +9,7 @@ const DECIMALS: u8 = 0; const EGLD_TICKER: &[u8] = b"EGLD"; const NR_ORACLES: usize = 50; const OWNER_ADDRESS_EXPR: &str = "address:owner"; +const_address_expr!(OWNER = "owner"); const PRICE_AGGREGATOR_ADDRESS_EXPR: &str = "sc:price-aggregator"; const PRICE_AGGREGATOR_PATH_EXPR: &str = "mxsc:../output/multiversx-price-aggregator-sc.mxsc.json"; const SLASH_AMOUNT: u64 = 10; @@ -89,7 +90,7 @@ impl PriceAggregatorTestState { self.world .tx() - .from(AddressExpr("owner")) + .from(OWNER) .gas(120_000_000u64) .typed(price_aggregator_proxy::PriceAggregatorProxy) .init( @@ -121,7 +122,7 @@ impl PriceAggregatorTestState { fn set_pair_decimals(&mut self) { self.world .tx() - .from(AddressExpr("owner")) + .from(OWNER) .to(&self.price_aggregator_contract.to_address()) .typed(price_aggregator_proxy::PriceAggregatorProxy) .set_pair_decimals(EGLD_TICKER, USD_TICKER, DECIMALS) @@ -131,7 +132,7 @@ impl PriceAggregatorTestState { fn unpause_endpoint(&mut self) { self.world .tx() - .from(AddressExpr("owner")) + .from(OWNER) .to(&self.price_aggregator_contract.to_address()) .gas(5_000_000u64) .typed(price_aggregator_proxy::PriceAggregatorProxy) diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index e5370fc61d..d0d2a00103 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -2,7 +2,7 @@ use multiversx_sc_scenario::imports::*; use adder::*; -const OWNER: AddressExpr = AddressExpr("owner"); +const_address_expr!(OWNER = "owner"); const SC_ADDER: ScExpr = ScExpr("adder"); const CODE_EXPR: MxscExpr = MxscExpr("output/adder.mxsc.json"); diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 7b5c5805a9..ad198ad50e 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -5,9 +5,9 @@ use multiversx_sc_scenario::imports::*; const CF_DEADLINE: u64 = 7 * 24 * 60 * 60; // 1 week in seconds const CF_TOKEN_ID: &[u8] = b"CROWD-123456"; const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; -const FIRST_USER_ADDRESS: AddressExpr = AddressExpr("first-user"); -const OWNER_ADDRESS: AddressExpr = AddressExpr("owner"); -const SECOND_USER_ADDRESS: AddressExpr = AddressExpr("second-user"); +const_address_expr!(FIRST_USER_ADDRESS = "first-user"); +const_address_expr!(OWNER_ADDRESS = "owner"); +const_address_expr!(SECOND_USER_ADDRESS = "second-user"); const CODE_EXPR: MxscExpr = MxscExpr("output/crowdfunding-esdt.mxsc.json"); const SC_CROWDFUNDING_ESDT_EXPR: ScExpr = ScExpr("crowdfunding-esdt"); diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index d276fb8067..fc1ab1fa52 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -6,13 +6,13 @@ use multisig::multisig_proxy; use num_bigint::BigUint; const SC_ADDER_EXPR: ScExpr = ScExpr("adder"); -const ADDER_OWNER_ADDRESS_EXPR: AddressExpr = AddressExpr("adder-owner"); +const_address_expr!(ADDER_OWNER_ADDRESS_EXPR = "adder-owner"); const ADDER_CODE_EXPR: MxscExpr = MxscExpr("test-contracts/adder.mxsc.json"); -const BOARD_MEMBER_ADDRESS_EXPR: AddressExpr = AddressExpr("board-member"); +const_address_expr!(BOARD_MEMBER_ADDRESS_EXPR = "board-member"); const SC_MULTISIG_EXPR: ScExpr = ScExpr("multisig"); const MULTISIG_CODE_EXPR: MxscExpr = MxscExpr("output/multisig.mxsc.json"); -const OWNER_ADDRESS_EXPR: AddressExpr = AddressExpr("owner"); -const PROPOSER_ADDRESS_EXPR: AddressExpr = AddressExpr("proposer"); +const_address_expr!(OWNER_ADDRESS_EXPR = "owner"); +const_address_expr!(PROPOSER_ADDRESS_EXPR = "proposer"); const PROPOSER_BALANCE_EXPR: &str = "100,000,000"; const QUORUM_SIZE: usize = 1; @@ -256,7 +256,7 @@ fn test_add_board_member() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let new_board_member_expr: AddressExpr = AddressExpr("new-board-member"); + let new_board_member_expr: AddressExpr = AddressExpr::new("new-board-member"); state.world.account(new_board_member_expr).nonce(1); @@ -287,7 +287,7 @@ fn test_add_proposer() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let new_proposer_address_expr: AddressExpr = AddressExpr("new-proposer"); + let new_proposer_address_expr = AddressExpr::new("new-proposer"); state.world.account(new_proposer_address_expr).nonce(1); @@ -404,7 +404,7 @@ fn test_change_quorum() { .run(); // add another board member - let new_board_member_address_expr: AddressExpr = AddressExpr("new-board-member"); + let new_board_member_address_expr = AddressExpr::new("new-board-member"); state.world.account(new_board_member_address_expr).nonce(1); @@ -423,7 +423,7 @@ fn test_transfer_execute_to_user() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let new_user_address_expr: AddressExpr = AddressExpr("new-user"); + let new_user_address_expr = AddressExpr::new("new-user"); state.world.account(new_user_address_expr).nonce(1); let amount: u64 = 100; diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs index 371bf0aeb3..a768279a71 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs @@ -2,7 +2,7 @@ mod pmf_proxy; use multiversx_sc_scenario::imports::*; -const OWNER: AddressExpr = AddressExpr("owner"); +const_address_expr!(OWNER = "owner"); const SC_PMF: ScExpr = ScExpr("pmf"); const CODE_EXPR: &str = "mxsc:output/panic-message-features.mxsc.json"; diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs index 165e4c62f3..94a330ebea 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs @@ -27,7 +27,7 @@ fn st_blackbox_chained() { .new_address(owner_address, 1, "sc:adder"), ) .chain_deploy(|tx| { - tx.from(AddressExpr("owner")) + tx.from(AddressExpr::new("owner")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .init(5u32) .code(MxscExpr("output/scenario-tester.mxsc.json")) @@ -44,7 +44,7 @@ fn st_blackbox_chained() { })) }) .chain_call(|tx| { - tx.from(AddressExpr("owner")) + tx.from(AddressExpr::new("owner")) .to(ScExpr("adder")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .add(3u32) diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs index 09e8e87c17..1fa7d00839 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs @@ -5,7 +5,7 @@ use scenario_tester::*; const ADDER_PATH_EXPR: &str = "mxsc:output/adder.mxsc.json"; -const OWNER: AddressExpr = AddressExpr("owner"); +const_address_expr!(OWNER = "owner"); const CODE_EXPR: MxscExpr = MxscExpr("output/adder.mxsc.json"); fn world() -> ScenarioWorld { diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 1af150a76f..c8a6044dde 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -5,8 +5,8 @@ use scenario_tester::*; const SC_SCENARIO_TESTER_PATH_EXPR: &str = "mxsc:output/scenario-tester.mxsc.json"; -const OWNER: AddressExpr = AddressExpr("owner"); -const OTHER: AddressExpr = AddressExpr("other"); +const_address_expr!(OWNER = "owner"); +const_address_expr!(OTHER = "other"); const SC_SCENARIO_TESTER: ScExpr = ScExpr("scenario-tester"); const CODE_EXPR: MxscExpr = MxscExpr("output/scenario-tester.mxsc.json"); diff --git a/framework/base/src/imports.rs b/framework/base/src/imports.rs index 016aa7bb4e..41677ee71e 100644 --- a/framework/base/src/imports.rs +++ b/framework/base/src/imports.rs @@ -6,6 +6,7 @@ pub use crate::{ multi_types::*, CodecFrom, CodecFromSelf, CodecInto, DecodeError, Empty, IntoMultiValue, NestedDecode, NestedEncode, TopDecode, TopEncode, }, + const_address_expr, contract_base::{ContractBase, ProxyObjBase, ProxyObjNew}, err_msg, io::*, diff --git a/framework/base/src/macros.rs b/framework/base/src/macros.rs index 55d023ad79..ddc9331f9f 100644 --- a/framework/base/src/macros.rs +++ b/framework/base/src/macros.rs @@ -210,3 +210,10 @@ macro_rules! extract_address { .unwrap_or_sc_panic(multiversx_sc::err_msg::RECIPIENT_ADDRESS_NOT_SET) }}; } + +#[macro_export] +macro_rules! const_address_expr { + ($const_name:ident = $name:expr) => { + const $const_name: AddressExpr = AddressExpr::new($name); + }; +} diff --git a/framework/base/src/types/interaction/expr/address_expr.rs b/framework/base/src/types/interaction/expr/address_expr.rs index dddfa5b53c..764c3ea3e3 100644 --- a/framework/base/src/types/interaction/expr/address_expr.rs +++ b/framework/base/src/types/interaction/expr/address_expr.rs @@ -7,16 +7,46 @@ use crate::types::{ const ADDRESS_PREFIX: &str = "address:"; +/// Encodes a dummy address, to be used for tests. +/// +/// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. +/// For this reason, its inner structure is subject to change. #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct AddressExpr(pub &'static str); +pub struct AddressExpr<'a> { + name: &'a str, +} + +impl<'a> AddressExpr<'a> { + pub const fn new(name: &'a str) -> Self { + AddressExpr { name } + } -impl AnnotatedValue> for AddressExpr + pub const fn eval_to_array(&self) -> [u8; 32] { + let result = [b'_'; 32]; + let expr_bytes = self.name.as_bytes(); + let mut len = expr_bytes.len(); + if len > 32 { + len = 32; + } + unsafe { + ptr::copy_nonoverlapping(expr_bytes.as_ptr(), result.as_ptr() as *mut u8, len); + } + result + } + + #[cfg(feature = "alloc")] + pub fn eval_to_expr(&self) -> alloc::string::String { + alloc::format!("{ADDRESS_PREFIX}{}", self.name) + } +} + +impl<'a, Env> AnnotatedValue> for AddressExpr<'a> where Env: TxEnv, { fn annotation(&self, _env: &Env) -> ManagedBuffer { let mut result = ManagedBuffer::new_from_bytes(ADDRESS_PREFIX.as_bytes()); - result.append_bytes(self.0.as_bytes()); + result.append_bytes(self.name.as_bytes()); result } @@ -26,7 +56,7 @@ where } } -impl TxFrom for AddressExpr +impl<'a, Env> TxFrom for AddressExpr<'a> where Env: TxEnv, { @@ -35,36 +65,16 @@ where expr.into() } } -impl TxFromSpecified for AddressExpr where Env: TxEnv {} -impl TxTo for AddressExpr where Env: TxEnv {} -impl TxToSpecified for AddressExpr where Env: TxEnv {} - -impl AddressExpr { - pub const fn eval_to_array(&self) -> [u8; 32] { - let result = [b'_'; 32]; - let expr_bytes = self.0.as_bytes(); - let mut len = expr_bytes.len(); - if len > 32 { - len = 32; - } - unsafe { - ptr::copy_nonoverlapping(expr_bytes.as_ptr(), result.as_ptr() as *mut u8, len); - } - result - } - - #[cfg(feature = "alloc")] - pub fn eval_to_expr(&self) -> alloc::string::String { - alloc::format!("{ADDRESS_PREFIX}{}", self.0) - } -} +impl<'a, Env> TxFromSpecified for AddressExpr<'a> where Env: TxEnv {} +impl<'a, Env> TxTo for AddressExpr<'a> where Env: TxEnv {} +impl<'a, Env> TxToSpecified for AddressExpr<'a> where Env: TxEnv {} #[cfg(test)] pub mod tests { use super::*; fn assert_eq_eval(expr: &'static str, expected: &[u8; 32]) { - assert_eq!(&AddressExpr(expr).eval_to_array(), expected); + assert_eq!(&AddressExpr::new(expr).eval_to_array(), expected); } #[test] diff --git a/framework/base/src/types/interaction/expr/sc_expr.rs b/framework/base/src/types/interaction/expr/sc_expr.rs index aa57b1af30..0c43ccddcc 100644 --- a/framework/base/src/types/interaction/expr/sc_expr.rs +++ b/framework/base/src/types/interaction/expr/sc_expr.rs @@ -9,6 +9,10 @@ const SC_PREFIX: &str = "sc:"; const VM_TYPE_LEN: usize = 2; const DEFAULT_VM_TYPE: &[u8] = &[5, 0]; +/// Encodes a dummy address, to be used for tests. +/// +/// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. +/// For this reason, its inner structure is subject to change. #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub struct ScExpr<'a>(pub &'a str); diff --git a/framework/scenario/src/scenario/model/value/address_key.rs b/framework/scenario/src/scenario/model/value/address_key.rs index d705439b1d..ddb6169a66 100644 --- a/framework/scenario/src/scenario/model/value/address_key.rs +++ b/framework/scenario/src/scenario/model/value/address_key.rs @@ -135,7 +135,7 @@ impl From for AddressKey { } } -impl From for AddressKey { +impl From> for AddressKey { fn from(from: AddressExpr) -> Self { AddressKey { value: from.eval_to_array().into(), diff --git a/framework/scenario/src/scenario/model/value/address_value.rs b/framework/scenario/src/scenario/model/value/address_value.rs index 8564bb6e47..57499a8463 100644 --- a/framework/scenario/src/scenario/model/value/address_value.rs +++ b/framework/scenario/src/scenario/model/value/address_value.rs @@ -138,7 +138,7 @@ impl From<&str> for AddressValue { } } -impl From for AddressValue { +impl From> for AddressValue { fn from(from: AddressExpr) -> Self { AddressValue { value: from.eval_to_array().into(), From 65208e1e3b1cd3d15283ff6596cbf4de36509f00 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 26 Apr 2024 02:33:56 +0300 Subject: [PATCH 078/185] expr refactor: sc --- .../tests/price_aggregator_blackbox_test.rs | 2 +- .../adder/tests/adder_blackbox_test.rs | 2 +- .../tests/crowdfunding_esdt_blackbox_test.rs | 2 +- .../multisig/tests/multisig_blackbox_test.rs | 8 +++---- .../tests/pmf_blackbox_test.rs | 2 +- .../tests/st_blackbox_chained_test.rs | 4 ++-- .../scenario-tester/tests/st_blackbox_test.rs | 2 +- framework/base/src/imports.rs | 2 +- framework/base/src/macros.rs | 14 +++++++++++++ .../types/interaction/expr/address_expr.rs | 2 +- .../src/types/interaction/expr/sc_expr.rs | 21 +++++++++++++------ 11 files changed, 42 insertions(+), 19 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index 50b486210f..e65bf545ea 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -19,7 +19,7 @@ const STAKE_AMOUNT: u64 = 20; const SUBMISSION_COUNT: usize = 3; const USD_TICKER: &[u8] = b"USDC"; -const PRICE_AGGREGATOR: ScExpr = ScExpr("price-aggregator"); +const_sc_expr!(PRICE_AGGREGATOR = "price-aggregator"); const_address_expr!(OWNER = "owner"); fn world() -> ScenarioWorld { diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index d0d2a00103..d1a754bf87 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -3,7 +3,7 @@ use multiversx_sc_scenario::imports::*; use adder::*; const_address_expr!(OWNER = "owner"); -const SC_ADDER: ScExpr = ScExpr("adder"); +const_sc_expr!(SC_ADDER = "adder"); const CODE_EXPR: MxscExpr = MxscExpr("output/adder.mxsc.json"); fn world() -> ScenarioWorld { diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index ad198ad50e..79144f716a 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -9,7 +9,7 @@ const_address_expr!(FIRST_USER_ADDRESS = "first-user"); const_address_expr!(OWNER_ADDRESS = "owner"); const_address_expr!(SECOND_USER_ADDRESS = "second-user"); const CODE_EXPR: MxscExpr = MxscExpr("output/crowdfunding-esdt.mxsc.json"); -const SC_CROWDFUNDING_ESDT_EXPR: ScExpr = ScExpr("crowdfunding-esdt"); +const_sc_expr!(SC_CROWDFUNDING_ESDT_EXPR = "crowdfunding-esdt"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index fc1ab1fa52..79dde417ac 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -5,11 +5,11 @@ use adder::adder_proxy; use multisig::multisig_proxy; use num_bigint::BigUint; -const SC_ADDER_EXPR: ScExpr = ScExpr("adder"); +const_sc_expr!(SC_ADDER_EXPR = "adder"); const_address_expr!(ADDER_OWNER_ADDRESS_EXPR = "adder-owner"); const ADDER_CODE_EXPR: MxscExpr = MxscExpr("test-contracts/adder.mxsc.json"); const_address_expr!(BOARD_MEMBER_ADDRESS_EXPR = "board-member"); -const SC_MULTISIG_EXPR: ScExpr = ScExpr("multisig"); +const_sc_expr!(SC_MULTISIG_EXPR = "multisig"); const MULTISIG_CODE_EXPR: MxscExpr = MxscExpr("output/multisig.mxsc.json"); const_address_expr!(OWNER_ADDRESS_EXPR = "owner"); const_address_expr!(PROPOSER_ADDRESS_EXPR = "proposer"); @@ -538,7 +538,7 @@ fn test_deploy_and_upgrade_from_source() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract().deploy_adder_contract(); - let new_adder_address_expr: ScExpr = ScExpr("new-adder"); + let new_adder_address_expr = ScExpr::new("new-adder"); state .world @@ -584,7 +584,7 @@ fn test_deploy_and_upgrade_from_source() { .returns(ExpectValue(BigUint::from(10u64))) .run(); - let factorial_address_expr: ScExpr = ScExpr("factorial"); + let factorial_address_expr: ScExpr = ScExpr::new("factorial"); let factorial_path_expr: MxscExpr = MxscExpr("test-contracts/factorial.mxsc.json"); let factorial_code = state diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs index a768279a71..f18abeb9e2 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs @@ -3,7 +3,7 @@ mod pmf_proxy; use multiversx_sc_scenario::imports::*; const_address_expr!(OWNER = "owner"); -const SC_PMF: ScExpr = ScExpr("pmf"); +const_sc_expr!(SC_PMF = "pmf"); const CODE_EXPR: &str = "mxsc:output/panic-message-features.mxsc.json"; fn world() -> ScenarioWorld { diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs index 94a330ebea..d2fdfdae22 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs @@ -36,7 +36,7 @@ fn st_blackbox_chained() { })) }) .chain_query(|tx| { - tx.to(ScExpr("adder")) + tx.to(ScExpr::new("adder")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .sum() .with_result(WithResultConv::new(|value: BigUint| { @@ -45,7 +45,7 @@ fn st_blackbox_chained() { }) .chain_call(|tx| { tx.from(AddressExpr::new("owner")) - .to(ScExpr("adder")) + .to(ScExpr::new("adder")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .add(3u32) .with_result(WithRawTxResponse(|response| { diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index c8a6044dde..f7b303944b 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -7,7 +7,7 @@ const SC_SCENARIO_TESTER_PATH_EXPR: &str = "mxsc:output/scenario-tester.mxsc.jso const_address_expr!(OWNER = "owner"); const_address_expr!(OTHER = "other"); -const SC_SCENARIO_TESTER: ScExpr = ScExpr("scenario-tester"); +const_sc_expr!(SC_SCENARIO_TESTER = "scenario-tester"); const CODE_EXPR: MxscExpr = MxscExpr("output/scenario-tester.mxsc.json"); fn world() -> ScenarioWorld { diff --git a/framework/base/src/imports.rs b/framework/base/src/imports.rs index 41677ee71e..6bd58a66ac 100644 --- a/framework/base/src/imports.rs +++ b/framework/base/src/imports.rs @@ -6,7 +6,7 @@ pub use crate::{ multi_types::*, CodecFrom, CodecFromSelf, CodecInto, DecodeError, Empty, IntoMultiValue, NestedDecode, NestedEncode, TopDecode, TopEncode, }, - const_address_expr, + const_address_expr, const_sc_expr, contract_base::{ContractBase, ProxyObjBase, ProxyObjNew}, err_msg, io::*, diff --git a/framework/base/src/macros.rs b/framework/base/src/macros.rs index ddc9331f9f..d8f11d945f 100644 --- a/framework/base/src/macros.rs +++ b/framework/base/src/macros.rs @@ -217,3 +217,17 @@ macro_rules! const_address_expr { const $const_name: AddressExpr = AddressExpr::new($name); }; } + +#[macro_export] +macro_rules! const_sc_expr { + ($const_name:ident = $name:expr) => { + const $const_name: ScExpr = ScExpr::new($name); + }; +} + +#[macro_export] +macro_rules! const_expr { + ($const_name:ident = address $name:expr) => { + const $const_name: ScExpr = ScExpr::new($name); + }; +} diff --git a/framework/base/src/types/interaction/expr/address_expr.rs b/framework/base/src/types/interaction/expr/address_expr.rs index 764c3ea3e3..5310809d2c 100644 --- a/framework/base/src/types/interaction/expr/address_expr.rs +++ b/framework/base/src/types/interaction/expr/address_expr.rs @@ -8,7 +8,7 @@ use crate::types::{ const ADDRESS_PREFIX: &str = "address:"; /// Encodes a dummy address, to be used for tests. -/// +/// /// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. /// For this reason, its inner structure is subject to change. #[derive(Clone, Copy, Debug, PartialEq, Eq)] diff --git a/framework/base/src/types/interaction/expr/sc_expr.rs b/framework/base/src/types/interaction/expr/sc_expr.rs index 0c43ccddcc..0a9579e379 100644 --- a/framework/base/src/types/interaction/expr/sc_expr.rs +++ b/framework/base/src/types/interaction/expr/sc_expr.rs @@ -9,12 +9,21 @@ const SC_PREFIX: &str = "sc:"; const VM_TYPE_LEN: usize = 2; const DEFAULT_VM_TYPE: &[u8] = &[5, 0]; -/// Encodes a dummy address, to be used for tests. +/// Encodes a dummy SC address, to be used for tests. /// /// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. /// For this reason, its inner structure is subject to change. #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct ScExpr<'a>(pub &'a str); + +pub struct ScExpr<'a> { + name: &'a str, +} + +impl<'a> ScExpr<'a> { + pub const fn new(name: &'a str) -> Self { + ScExpr { name } + } +} impl<'a, Env> AnnotatedValue> for ScExpr<'a> where @@ -22,7 +31,7 @@ where { fn annotation(&self, _env: &Env) -> ManagedBuffer { let mut result = ManagedBuffer::new_from_bytes(SC_PREFIX.as_bytes()); - result.append_bytes(self.0.as_bytes()); + result.append_bytes(self.name.as_bytes()); result } @@ -55,7 +64,7 @@ impl<'a, Env> TxToSpecified for ScExpr<'a> where Env: TxEnv {} impl<'a> ScExpr<'a> { pub const fn eval_to_array(&self) -> [u8; 32] { let result = *b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00______________________"; - let expr_bytes = self.0.as_bytes(); + let expr_bytes = self.name.as_bytes(); let mut len = expr_bytes.len(); if len > 22 { len = 22; @@ -77,7 +86,7 @@ impl<'a> ScExpr<'a> { #[cfg(feature = "alloc")] pub fn eval_to_expr(&self) -> alloc::string::String { - alloc::format!("{SC_PREFIX}{}", self.0) + alloc::format!("{SC_PREFIX}{}", self.name) } } @@ -86,7 +95,7 @@ pub mod tests { use super::*; fn assert_eq_eval(expr: &'static str, expected: &[u8; 32]) { - assert_eq!(&ScExpr(expr).eval_to_array(), expected); + assert_eq!(&ScExpr::new(expr).eval_to_array(), expected); } #[test] From c3d1a30a1637033a00b17e783d9692a5cd5a7caf Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 26 Apr 2024 02:43:47 +0300 Subject: [PATCH 079/185] expr refactor: mxsc --- .../examples/adder/tests/adder_blackbox_test.rs | 2 +- .../tests/crowdfunding_esdt_blackbox_test.rs | 2 +- .../multisig/tests/multisig_blackbox_test.rs | 6 +++--- .../tests/st_blackbox_chained_test.rs | 2 +- .../tests/st_blackbox_legacy_proxy_test.rs | 2 +- .../scenario-tester/tests/st_blackbox_test.rs | 2 +- framework/base/src/imports.rs | 2 +- framework/base/src/macros.rs | 6 +++--- .../base/src/types/interaction/expr/sc_expr.rs | 1 - framework/scenario/src/facade/expr/mxsc_expr.rs | 16 ++++++++++++---- 10 files changed, 24 insertions(+), 17 deletions(-) diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index d1a754bf87..b4afcff8c8 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -4,7 +4,7 @@ use adder::*; const_address_expr!(OWNER = "owner"); const_sc_expr!(SC_ADDER = "adder"); -const CODE_EXPR: MxscExpr = MxscExpr("output/adder.mxsc.json"); +const_mxsc_expr!(CODE_EXPR = "output/adder.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 79144f716a..22359032e7 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -8,7 +8,7 @@ const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; const_address_expr!(FIRST_USER_ADDRESS = "first-user"); const_address_expr!(OWNER_ADDRESS = "owner"); const_address_expr!(SECOND_USER_ADDRESS = "second-user"); -const CODE_EXPR: MxscExpr = MxscExpr("output/crowdfunding-esdt.mxsc.json"); +const_mxsc_expr!(CODE_EXPR = "output/crowdfunding-esdt.mxsc.json"); const_sc_expr!(SC_CROWDFUNDING_ESDT_EXPR = "crowdfunding-esdt"); fn world() -> ScenarioWorld { diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 79dde417ac..32457bcbec 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -7,10 +7,10 @@ use num_bigint::BigUint; const_sc_expr!(SC_ADDER_EXPR = "adder"); const_address_expr!(ADDER_OWNER_ADDRESS_EXPR = "adder-owner"); -const ADDER_CODE_EXPR: MxscExpr = MxscExpr("test-contracts/adder.mxsc.json"); +const_mxsc_expr!(ADDER_CODE_EXPR = "test-contracts/adder.mxsc.json"); const_address_expr!(BOARD_MEMBER_ADDRESS_EXPR = "board-member"); const_sc_expr!(SC_MULTISIG_EXPR = "multisig"); -const MULTISIG_CODE_EXPR: MxscExpr = MxscExpr("output/multisig.mxsc.json"); +const_mxsc_expr!(MULTISIG_CODE_EXPR = "output/multisig.mxsc.json"); const_address_expr!(OWNER_ADDRESS_EXPR = "owner"); const_address_expr!(PROPOSER_ADDRESS_EXPR = "proposer"); const PROPOSER_BALANCE_EXPR: &str = "100,000,000"; @@ -585,7 +585,7 @@ fn test_deploy_and_upgrade_from_source() { .run(); let factorial_address_expr: ScExpr = ScExpr::new("factorial"); - let factorial_path_expr: MxscExpr = MxscExpr("test-contracts/factorial.mxsc.json"); + let factorial_path_expr: MxscExpr = MxscExpr::new("test-contracts/factorial.mxsc.json"); let factorial_code = state .world diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs index d2fdfdae22..4587e96fd5 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs @@ -30,7 +30,7 @@ fn st_blackbox_chained() { tx.from(AddressExpr::new("owner")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .init(5u32) - .code(MxscExpr("output/scenario-tester.mxsc.json")) + .code(MxscExpr::new("output/scenario-tester.mxsc.json")) .with_result(WithNewAddress::new(|new_address| { assert_eq!(new_address.to_address(), st_contract.to_address()); })) diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs index 1fa7d00839..9dda2aa2d1 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs @@ -6,7 +6,7 @@ use scenario_tester::*; const ADDER_PATH_EXPR: &str = "mxsc:output/adder.mxsc.json"; const_address_expr!(OWNER = "owner"); -const CODE_EXPR: MxscExpr = MxscExpr("output/adder.mxsc.json"); +const_mxsc_expr!(CODE_EXPR = "output/adder.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index f7b303944b..70e291d4a2 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -8,7 +8,7 @@ const SC_SCENARIO_TESTER_PATH_EXPR: &str = "mxsc:output/scenario-tester.mxsc.jso const_address_expr!(OWNER = "owner"); const_address_expr!(OTHER = "other"); const_sc_expr!(SC_SCENARIO_TESTER = "scenario-tester"); -const CODE_EXPR: MxscExpr = MxscExpr("output/scenario-tester.mxsc.json"); +const_mxsc_expr!(CODE_EXPR = "output/scenario-tester.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/framework/base/src/imports.rs b/framework/base/src/imports.rs index 6bd58a66ac..ef16187edf 100644 --- a/framework/base/src/imports.rs +++ b/framework/base/src/imports.rs @@ -6,7 +6,7 @@ pub use crate::{ multi_types::*, CodecFrom, CodecFromSelf, CodecInto, DecodeError, Empty, IntoMultiValue, NestedDecode, NestedEncode, TopDecode, TopEncode, }, - const_address_expr, const_sc_expr, + const_address_expr, const_mxsc_expr, const_sc_expr, contract_base::{ContractBase, ProxyObjBase, ProxyObjNew}, err_msg, io::*, diff --git a/framework/base/src/macros.rs b/framework/base/src/macros.rs index d8f11d945f..8e20d6b459 100644 --- a/framework/base/src/macros.rs +++ b/framework/base/src/macros.rs @@ -226,8 +226,8 @@ macro_rules! const_sc_expr { } #[macro_export] -macro_rules! const_expr { - ($const_name:ident = address $name:expr) => { - const $const_name: ScExpr = ScExpr::new($name); +macro_rules! const_mxsc_expr { + ($const_name:ident = $name:expr) => { + const $const_name: MxscExpr = MxscExpr::new($name); }; } diff --git a/framework/base/src/types/interaction/expr/sc_expr.rs b/framework/base/src/types/interaction/expr/sc_expr.rs index 0a9579e379..c4d48351ee 100644 --- a/framework/base/src/types/interaction/expr/sc_expr.rs +++ b/framework/base/src/types/interaction/expr/sc_expr.rs @@ -14,7 +14,6 @@ const DEFAULT_VM_TYPE: &[u8] = &[5, 0]; /// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. /// For this reason, its inner structure is subject to change. #[derive(Clone, Copy, Debug, PartialEq, Eq)] - pub struct ScExpr<'a> { name: &'a str, } diff --git a/framework/scenario/src/facade/expr/mxsc_expr.rs b/framework/scenario/src/facade/expr/mxsc_expr.rs index 886fb91503..0f4be9f05d 100644 --- a/framework/scenario/src/facade/expr/mxsc_expr.rs +++ b/framework/scenario/src/facade/expr/mxsc_expr.rs @@ -10,15 +10,23 @@ use super::RegisterCodeSource; const MXSC_PREFIX: &str = "mxsc:"; #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct MxscExpr<'a>(pub &'a str); +pub struct MxscExpr<'a> { + path: &'a str, +} + +impl<'a> MxscExpr<'a> { + pub const fn new(path: &'a str) -> Self { + MxscExpr { path } + } +} impl<'a> MxscExpr<'a> { pub fn eval_to_expr(&self) -> String { - format!("{MXSC_PREFIX}{}", self.0) + format!("{MXSC_PREFIX}{}", self.path) } pub fn resolve_contents(&self, context: &InterpreterContext) -> Vec { - interpret_string(&format!("{MXSC_PREFIX}{}", self.0), context) + interpret_string(&format!("{MXSC_PREFIX}{}", self.path), context) } } @@ -49,7 +57,7 @@ pub mod tests { use crate::imports::MxscExpr; fn assert_eq_eval(expr: &'static str, expected: &str) { - assert_eq!(&MxscExpr(expr).eval_to_expr(), expected); + assert_eq!(&MxscExpr::new(expr).eval_to_expr(), expected); } #[test] From 6055b7cb2f566f1624e7f54202abba8ba754d261 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 26 Apr 2024 14:13:51 +0300 Subject: [PATCH 080/185] expr refactor: rename, reverted macros --- .../tests/price_aggregator_blackbox_test.rs | 4 +- .../tests/price_aggregator_stress_blackbox.rs | 2 +- .../adder/tests/adder_blackbox_test.rs | 6 +-- .../tests/crowdfunding_esdt_blackbox_test.rs | 18 +++---- .../multisig/tests/multisig_blackbox_test.rs | 48 +++++++++---------- .../rewards_distribution_integration_test.rs | 15 +++--- .../tests/pmf_blackbox_test.rs | 4 +- .../tests/st_blackbox_chained_test.rs | 10 ++-- .../tests/st_blackbox_legacy_proxy_test.rs | 4 +- .../scenario-tester/tests/st_blackbox_test.rs | 8 ++-- framework/base/src/imports.rs | 1 - framework/base/src/macros.rs | 21 -------- framework/base/src/types/interaction/expr.rs | 8 ++-- .../expr/{address_expr.rs => test_address.rs} | 18 +++---- .../expr/{sc_expr.rs => test_sc_address.rs} | 22 ++++----- framework/scenario/src/facade/expr.rs | 8 ++-- .../expr/{file_expr.rs => file_path.rs} | 10 ++-- .../expr/{mxsc_expr.rs => mxsc_path.rs} | 18 +++---- .../src/scenario/model/value/address_key.rs | 10 ++-- .../src/scenario/model/value/address_value.rs | 10 ++-- 20 files changed, 112 insertions(+), 133 deletions(-) rename framework/base/src/types/interaction/expr/{address_expr.rs => test_address.rs} (85%) rename framework/base/src/types/interaction/expr/{sc_expr.rs => test_sc_address.rs} (84%) rename framework/scenario/src/facade/expr/{file_expr.rs => file_path.rs} (85%) rename framework/scenario/src/facade/expr/{mxsc_expr.rs => mxsc_path.rs} (81%) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index e65bf545ea..c1d8056769 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -19,8 +19,8 @@ const STAKE_AMOUNT: u64 = 20; const SUBMISSION_COUNT: usize = 3; const USD_TICKER: &[u8] = b"USDC"; -const_sc_expr!(PRICE_AGGREGATOR = "price-aggregator"); -const_address_expr!(OWNER = "owner"); +const PRICE_AGGREGATOR: TestScAddress = TestScAddress::new("price-aggregator"); +const OWNER: TestAddress = TestAddress::new("owner"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs b/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs index 6d47282622..46ddf296d3 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs @@ -9,7 +9,7 @@ const DECIMALS: u8 = 0; const EGLD_TICKER: &[u8] = b"EGLD"; const NR_ORACLES: usize = 50; const OWNER_ADDRESS_EXPR: &str = "address:owner"; -const_address_expr!(OWNER = "owner"); +const OWNER: TestAddress = TestAddress::new("owner"); const PRICE_AGGREGATOR_ADDRESS_EXPR: &str = "sc:price-aggregator"; const PRICE_AGGREGATOR_PATH_EXPR: &str = "mxsc:../output/multiversx-price-aggregator-sc.mxsc.json"; const SLASH_AMOUNT: u64 = 10; diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index b4afcff8c8..59b47ba405 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -2,9 +2,9 @@ use multiversx_sc_scenario::imports::*; use adder::*; -const_address_expr!(OWNER = "owner"); -const_sc_expr!(SC_ADDER = "adder"); -const_mxsc_expr!(CODE_EXPR = "output/adder.mxsc.json"); +const OWNER: TestAddress = TestAddress::new("owner"); +const SC_ADDER: TestScAddress = TestScAddress::new("adder"); +const CODE_EXPR: MxscPath = MxscPath::new("output/adder.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 22359032e7..d44541751d 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -5,11 +5,11 @@ use multiversx_sc_scenario::imports::*; const CF_DEADLINE: u64 = 7 * 24 * 60 * 60; // 1 week in seconds const CF_TOKEN_ID: &[u8] = b"CROWD-123456"; const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; -const_address_expr!(FIRST_USER_ADDRESS = "first-user"); -const_address_expr!(OWNER_ADDRESS = "owner"); -const_address_expr!(SECOND_USER_ADDRESS = "second-user"); -const_mxsc_expr!(CODE_EXPR = "output/crowdfunding-esdt.mxsc.json"); -const_sc_expr!(SC_CROWDFUNDING_ESDT_EXPR = "crowdfunding-esdt"); +const FIRST_USER_ADDRESS: TestAddress = TestAddress::new("first-user"); +const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); +const SECOND_USER_ADDRESS: TestAddress = TestAddress::new("second-user"); +const CODE_EXPR: MxscPath = MxscPath::new("output/crowdfunding-esdt.mxsc.json"); +const SC_CROWDFUNDING_ESDT_EXPR: TestScAddress = TestScAddress::new("crowdfunding-esdt"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -56,7 +56,7 @@ impl CrowdfundingESDTTestState { .run(); } - fn fund(&mut self, address: AddressExpr, amount: u64) { + fn fund(&mut self, address: TestAddress, amount: u64) { self.world .tx() .from(address) @@ -71,7 +71,7 @@ impl CrowdfundingESDTTestState { .run(); } - fn check_deposit(&mut self, donor: AddressExpr, amount: u64) { + fn check_deposit(&mut self, donor: TestAddress, amount: u64) { self.world .query() .to(SC_CROWDFUNDING_ESDT_EXPR) @@ -91,7 +91,7 @@ impl CrowdfundingESDTTestState { .run(); } - fn claim(&mut self, address: AddressExpr) { + fn claim(&mut self, address: TestAddress) { self.world .tx() .from(address) @@ -101,7 +101,7 @@ impl CrowdfundingESDTTestState { .run(); } - fn check_esdt_balance(&mut self, address: AddressExpr, balance_expr: &str) { + fn check_esdt_balance(&mut self, address: TestAddress, balance_expr: &str) { self.world .check_account(address) .esdt_balance(CF_TOKEN_ID_EXPR, balance_expr); diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 32457bcbec..05d8171bff 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -5,14 +5,14 @@ use adder::adder_proxy; use multisig::multisig_proxy; use num_bigint::BigUint; -const_sc_expr!(SC_ADDER_EXPR = "adder"); -const_address_expr!(ADDER_OWNER_ADDRESS_EXPR = "adder-owner"); -const_mxsc_expr!(ADDER_CODE_EXPR = "test-contracts/adder.mxsc.json"); -const_address_expr!(BOARD_MEMBER_ADDRESS_EXPR = "board-member"); -const_sc_expr!(SC_MULTISIG_EXPR = "multisig"); -const_mxsc_expr!(MULTISIG_CODE_EXPR = "output/multisig.mxsc.json"); -const_address_expr!(OWNER_ADDRESS_EXPR = "owner"); -const_address_expr!(PROPOSER_ADDRESS_EXPR = "proposer"); +const SC_ADDER_EXPR: TestScAddress = TestScAddress::new("adder"); +const ADDER_OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("adder-owner"); +const ADDER_CODE_EXPR: MxscPath = MxscPath::new("test-contracts/adder.mxsc.json"); +const BOARD_MEMBER_ADDRESS_EXPR: TestAddress = TestAddress::new("board-member"); +const SC_MULTISIG_EXPR: TestScAddress = TestScAddress::new("multisig"); +const MULTISIG_CODE_EXPR: MxscPath = MxscPath::new("output/multisig.mxsc.json"); +const OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("owner"); +const PROPOSER_ADDRESS_EXPR: TestAddress = TestAddress::new("proposer"); const PROPOSER_BALANCE_EXPR: &str = "100,000,000"; const QUORUM_SIZE: usize = 1; @@ -88,7 +88,7 @@ impl MultisigTestState { .run(); } - fn propose_add_board_member(&mut self, board_member_address: AddressExpr) -> usize { + fn propose_add_board_member(&mut self, board_member_address: TestAddress) -> usize { self.world .tx() .from(PROPOSER_ADDRESS_EXPR) @@ -99,7 +99,7 @@ impl MultisigTestState { .run() } - fn propose_add_proposer(&mut self, proposer_address: AddressExpr) -> usize { + fn propose_add_proposer(&mut self, proposer_address: TestAddress) -> usize { self.world .tx() .from(PROPOSER_ADDRESS_EXPR) @@ -123,7 +123,7 @@ impl MultisigTestState { fn propose_transfer_execute( &mut self, - to: ScExpr, + to: TestScAddress, egld_amount: u64, contract_call: FunctionCall, ) -> usize { @@ -139,7 +139,7 @@ impl MultisigTestState { fn propose_async_call( &mut self, - to: ScExpr, + to: TestScAddress, egld_amount: u64, contract_call: FunctionCall, ) -> usize { @@ -153,7 +153,7 @@ impl MultisigTestState { .run() } - fn propose_remove_user(&mut self, user_address: AddressExpr) -> usize { + fn propose_remove_user(&mut self, user_address: TestAddress) -> usize { self.world .tx() .from(PROPOSER_ADDRESS_EXPR) @@ -167,7 +167,7 @@ impl MultisigTestState { fn propose_sc_deploy_from_source( &mut self, amount: u64, - source: ScExpr, + source: TestScAddress, code_metadata: CodeMetadata, arguments: MultiValueVec>, ) -> usize { @@ -183,9 +183,9 @@ impl MultisigTestState { fn propose_sc_upgrade_from_source( &mut self, - sc_address: ScExpr, + sc_address: TestScAddress, amount: u64, - source: ScExpr, + source: TestScAddress, code_metadata: CodeMetadata, arguments: MultiValueVec>, ) -> usize { @@ -238,7 +238,7 @@ impl MultisigTestState { fn expect_user_role( &mut self, - user: AddressExpr, + user: TestAddress, expected_user_role: multisig_proxy::UserRole, ) { self.world @@ -256,7 +256,7 @@ fn test_add_board_member() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let new_board_member_expr: AddressExpr = AddressExpr::new("new-board-member"); + let new_board_member_expr: TestAddress = TestAddress::new("new-board-member"); state.world.account(new_board_member_expr).nonce(1); @@ -287,7 +287,7 @@ fn test_add_proposer() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let new_proposer_address_expr = AddressExpr::new("new-proposer"); + let new_proposer_address_expr = TestAddress::new("new-proposer"); state.world.account(new_proposer_address_expr).nonce(1); @@ -404,7 +404,7 @@ fn test_change_quorum() { .run(); // add another board member - let new_board_member_address_expr = AddressExpr::new("new-board-member"); + let new_board_member_address_expr = TestAddress::new("new-board-member"); state.world.account(new_board_member_address_expr).nonce(1); @@ -423,7 +423,7 @@ fn test_transfer_execute_to_user() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let new_user_address_expr = AddressExpr::new("new-user"); + let new_user_address_expr = TestAddress::new("new-user"); state.world.account(new_user_address_expr).nonce(1); let amount: u64 = 100; @@ -538,7 +538,7 @@ fn test_deploy_and_upgrade_from_source() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract().deploy_adder_contract(); - let new_adder_address_expr = ScExpr::new("new-adder"); + let new_adder_address_expr = TestScAddress::new("new-adder"); state .world @@ -584,8 +584,8 @@ fn test_deploy_and_upgrade_from_source() { .returns(ExpectValue(BigUint::from(10u64))) .run(); - let factorial_address_expr: ScExpr = ScExpr::new("factorial"); - let factorial_path_expr: MxscExpr = MxscExpr::new("test-contracts/factorial.mxsc.json"); + let factorial_address_expr: TestScAddress = TestScAddress::new("factorial"); + let factorial_path_expr: MxscPath = MxscPath::new("test-contracts/factorial.mxsc.json"); let factorial_code = state .world diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs index a375614dab..4843386494 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs @@ -12,13 +12,14 @@ use rewards_distribution::{ const NFT_TOKEN_ID: &[u8] = b"NFT-123456"; const NFT_TOKEN_ID_EXPR: &str = "str:NFT-123456"; -const ALICE_ADDRESS_EXPR: AddressExpr = AddressExpr("alice"); -const OWNER_ADDRESS_EXPR: AddressExpr = AddressExpr("owner"); -const REWARDS_DISTRIBUTION_ADDRESS_EXPR: ScExpr = ScExpr("rewards-distribution"); -const REWARDS_DISTRIBUTION_PATH_EXPR: MxscExpr = MxscExpr("output/rewards-distribution.mxsc.json"); -const SEED_NFT_MINTER_ADDRESS_EXPR: ScExpr = ScExpr("seed-nft-minter"); -const SEED_NFT_MINTER_PATH_EXPR: MxscExpr = - MxscExpr("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); +const ALICE_ADDRESS_EXPR: TestAddress = TestAddress::new("alice"); +const OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("owner"); +const REWARDS_DISTRIBUTION_ADDRESS_EXPR: TestScAddress = TestScAddress::new("rewards-distribution"); +const REWARDS_DISTRIBUTION_PATH_EXPR: MxscPath = + MxscPath::new("output/rewards-distribution.mxsc.json"); +const SEED_NFT_MINTER_ADDRESS_EXPR: TestScAddress = TestScAddress::new("seed-nft-minter"); +const SEED_NFT_MINTER_PATH_EXPR: MxscPath = + MxscPath::new("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs index f18abeb9e2..550679fff4 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs @@ -2,8 +2,8 @@ mod pmf_proxy; use multiversx_sc_scenario::imports::*; -const_address_expr!(OWNER = "owner"); -const_sc_expr!(SC_PMF = "pmf"); +const OWNER: TestAddress = TestAddress::new("owner"); +const SC_PMF: TestScAddress = TestScAddress::new("pmf"); const CODE_EXPR: &str = "mxsc:output/panic-message-features.mxsc.json"; fn world() -> ScenarioWorld { diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs index 4587e96fd5..5183d72923 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs @@ -27,16 +27,16 @@ fn st_blackbox_chained() { .new_address(owner_address, 1, "sc:adder"), ) .chain_deploy(|tx| { - tx.from(AddressExpr::new("owner")) + tx.from(TestAddress::new("owner")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .init(5u32) - .code(MxscExpr::new("output/scenario-tester.mxsc.json")) + .code(MxscPath::new("output/scenario-tester.mxsc.json")) .with_result(WithNewAddress::new(|new_address| { assert_eq!(new_address.to_address(), st_contract.to_address()); })) }) .chain_query(|tx| { - tx.to(ScExpr::new("adder")) + tx.to(TestScAddress::new("adder")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .sum() .with_result(WithResultConv::new(|value: BigUint| { @@ -44,8 +44,8 @@ fn st_blackbox_chained() { })) }) .chain_call(|tx| { - tx.from(AddressExpr::new("owner")) - .to(ScExpr::new("adder")) + tx.from(TestAddress::new("owner")) + .to(TestScAddress::new("adder")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .add(3u32) .with_result(WithRawTxResponse(|response| { diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs index 9dda2aa2d1..7dfd815d55 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs @@ -5,8 +5,8 @@ use scenario_tester::*; const ADDER_PATH_EXPR: &str = "mxsc:output/adder.mxsc.json"; -const_address_expr!(OWNER = "owner"); -const_mxsc_expr!(CODE_EXPR = "output/adder.mxsc.json"); +const OWNER: TestAddress = TestAddress::new("owner"); +const CODE_EXPR: MxscPath = MxscPath::new("output/adder.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 70e291d4a2..203868331f 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -5,10 +5,10 @@ use scenario_tester::*; const SC_SCENARIO_TESTER_PATH_EXPR: &str = "mxsc:output/scenario-tester.mxsc.json"; -const_address_expr!(OWNER = "owner"); -const_address_expr!(OTHER = "other"); -const_sc_expr!(SC_SCENARIO_TESTER = "scenario-tester"); -const_mxsc_expr!(CODE_EXPR = "output/scenario-tester.mxsc.json"); +const OWNER: TestAddress = TestAddress::new("owner"); +const OTHER: TestAddress = TestAddress::new("other"); +const SC_SCENARIO_TESTER: TestScAddress = TestScAddress::new("scenario-tester"); +const CODE_EXPR: MxscPath = MxscPath::new("output/scenario-tester.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/framework/base/src/imports.rs b/framework/base/src/imports.rs index ef16187edf..016aa7bb4e 100644 --- a/framework/base/src/imports.rs +++ b/framework/base/src/imports.rs @@ -6,7 +6,6 @@ pub use crate::{ multi_types::*, CodecFrom, CodecFromSelf, CodecInto, DecodeError, Empty, IntoMultiValue, NestedDecode, NestedEncode, TopDecode, TopEncode, }, - const_address_expr, const_mxsc_expr, const_sc_expr, contract_base::{ContractBase, ProxyObjBase, ProxyObjNew}, err_msg, io::*, diff --git a/framework/base/src/macros.rs b/framework/base/src/macros.rs index 8e20d6b459..55d023ad79 100644 --- a/framework/base/src/macros.rs +++ b/framework/base/src/macros.rs @@ -210,24 +210,3 @@ macro_rules! extract_address { .unwrap_or_sc_panic(multiversx_sc::err_msg::RECIPIENT_ADDRESS_NOT_SET) }}; } - -#[macro_export] -macro_rules! const_address_expr { - ($const_name:ident = $name:expr) => { - const $const_name: AddressExpr = AddressExpr::new($name); - }; -} - -#[macro_export] -macro_rules! const_sc_expr { - ($const_name:ident = $name:expr) => { - const $const_name: ScExpr = ScExpr::new($name); - }; -} - -#[macro_export] -macro_rules! const_mxsc_expr { - ($const_name:ident = $name:expr) => { - const $const_name: MxscExpr = MxscExpr::new($name); - }; -} diff --git a/framework/base/src/types/interaction/expr.rs b/framework/base/src/types/interaction/expr.rs index c43da390f9..48939cbf00 100644 --- a/framework/base/src/types/interaction/expr.rs +++ b/framework/base/src/types/interaction/expr.rs @@ -1,5 +1,5 @@ -mod address_expr; -mod sc_expr; +mod test_address; +mod test_sc_address; -pub use address_expr::AddressExpr; -pub use sc_expr::ScExpr; +pub use test_address::TestAddress; +pub use test_sc_address::TestScAddress; diff --git a/framework/base/src/types/interaction/expr/address_expr.rs b/framework/base/src/types/interaction/expr/test_address.rs similarity index 85% rename from framework/base/src/types/interaction/expr/address_expr.rs rename to framework/base/src/types/interaction/expr/test_address.rs index 5310809d2c..0d3278c67c 100644 --- a/framework/base/src/types/interaction/expr/address_expr.rs +++ b/framework/base/src/types/interaction/expr/test_address.rs @@ -12,13 +12,13 @@ const ADDRESS_PREFIX: &str = "address:"; /// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. /// For this reason, its inner structure is subject to change. #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct AddressExpr<'a> { +pub struct TestAddress<'a> { name: &'a str, } -impl<'a> AddressExpr<'a> { +impl<'a> TestAddress<'a> { pub const fn new(name: &'a str) -> Self { - AddressExpr { name } + TestAddress { name } } pub const fn eval_to_array(&self) -> [u8; 32] { @@ -40,7 +40,7 @@ impl<'a> AddressExpr<'a> { } } -impl<'a, Env> AnnotatedValue> for AddressExpr<'a> +impl<'a, Env> AnnotatedValue> for TestAddress<'a> where Env: TxEnv, { @@ -56,7 +56,7 @@ where } } -impl<'a, Env> TxFrom for AddressExpr<'a> +impl<'a, Env> TxFrom for TestAddress<'a> where Env: TxEnv, { @@ -65,16 +65,16 @@ where expr.into() } } -impl<'a, Env> TxFromSpecified for AddressExpr<'a> where Env: TxEnv {} -impl<'a, Env> TxTo for AddressExpr<'a> where Env: TxEnv {} -impl<'a, Env> TxToSpecified for AddressExpr<'a> where Env: TxEnv {} +impl<'a, Env> TxFromSpecified for TestAddress<'a> where Env: TxEnv {} +impl<'a, Env> TxTo for TestAddress<'a> where Env: TxEnv {} +impl<'a, Env> TxToSpecified for TestAddress<'a> where Env: TxEnv {} #[cfg(test)] pub mod tests { use super::*; fn assert_eq_eval(expr: &'static str, expected: &[u8; 32]) { - assert_eq!(&AddressExpr::new(expr).eval_to_array(), expected); + assert_eq!(&TestAddress::new(expr).eval_to_array(), expected); } #[test] diff --git a/framework/base/src/types/interaction/expr/sc_expr.rs b/framework/base/src/types/interaction/expr/test_sc_address.rs similarity index 84% rename from framework/base/src/types/interaction/expr/sc_expr.rs rename to framework/base/src/types/interaction/expr/test_sc_address.rs index c4d48351ee..4c93024420 100644 --- a/framework/base/src/types/interaction/expr/sc_expr.rs +++ b/framework/base/src/types/interaction/expr/test_sc_address.rs @@ -14,17 +14,17 @@ const DEFAULT_VM_TYPE: &[u8] = &[5, 0]; /// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. /// For this reason, its inner structure is subject to change. #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct ScExpr<'a> { +pub struct TestScAddress<'a> { name: &'a str, } -impl<'a> ScExpr<'a> { +impl<'a> TestScAddress<'a> { pub const fn new(name: &'a str) -> Self { - ScExpr { name } + TestScAddress { name } } } -impl<'a, Env> AnnotatedValue> for ScExpr<'a> +impl<'a, Env> AnnotatedValue> for TestScAddress<'a> where Env: TxEnv, { @@ -40,14 +40,14 @@ where } } -impl<'a> ScExpr<'a> { +impl<'a> TestScAddress<'a> { pub fn to_address(&self) -> Address { let expr: [u8; 32] = self.eval_to_array(); expr.into() } } -impl<'a, Env> TxFrom for ScExpr<'a> +impl<'a, Env> TxFrom for TestScAddress<'a> where Env: TxEnv, { @@ -56,11 +56,11 @@ where expr.into() } } -impl<'a, Env> TxFromSpecified for ScExpr<'a> where Env: TxEnv {} -impl<'a, Env> TxTo for ScExpr<'a> where Env: TxEnv {} -impl<'a, Env> TxToSpecified for ScExpr<'a> where Env: TxEnv {} +impl<'a, Env> TxFromSpecified for TestScAddress<'a> where Env: TxEnv {} +impl<'a, Env> TxTo for TestScAddress<'a> where Env: TxEnv {} +impl<'a, Env> TxToSpecified for TestScAddress<'a> where Env: TxEnv {} -impl<'a> ScExpr<'a> { +impl<'a> TestScAddress<'a> { pub const fn eval_to_array(&self) -> [u8; 32] { let result = *b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00______________________"; let expr_bytes = self.name.as_bytes(); @@ -94,7 +94,7 @@ pub mod tests { use super::*; fn assert_eq_eval(expr: &'static str, expected: &[u8; 32]) { - assert_eq!(&ScExpr::new(expr).eval_to_array(), expected); + assert_eq!(&TestScAddress::new(expr).eval_to_array(), expected); } #[test] diff --git a/framework/scenario/src/facade/expr.rs b/framework/scenario/src/facade/expr.rs index de36abef97..2ca60a5192 100644 --- a/framework/scenario/src/facade/expr.rs +++ b/framework/scenario/src/facade/expr.rs @@ -1,11 +1,11 @@ mod bech32_address; -mod file_expr; -mod mxsc_expr; +mod file_path; +mod mxsc_path; mod num_expr; mod register_code_source; pub use bech32_address::Bech32Address; -pub use file_expr::FileExpr; -pub use mxsc_expr::MxscExpr; +pub use file_path::FilePath; +pub use mxsc_path::MxscPath; pub use num_expr::NumExpr; pub use register_code_source::RegisterCodeSource; diff --git a/framework/scenario/src/facade/expr/file_expr.rs b/framework/scenario/src/facade/expr/file_path.rs similarity index 85% rename from framework/scenario/src/facade/expr/file_expr.rs rename to framework/scenario/src/facade/expr/file_path.rs index 4430046a7c..8d779a6fd1 100644 --- a/framework/scenario/src/facade/expr/file_expr.rs +++ b/framework/scenario/src/facade/expr/file_path.rs @@ -10,9 +10,9 @@ use super::RegisterCodeSource; const FILE_PREFIX: &str = "file:"; #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct FileExpr<'a>(pub &'a str); +pub struct FilePath<'a>(pub &'a str); -impl<'a> FileExpr<'a> { +impl<'a> FilePath<'a> { pub fn eval_to_expr(&self) -> String { format!("{FILE_PREFIX}{}", self.0) } @@ -22,7 +22,7 @@ impl<'a> FileExpr<'a> { } } -impl<'a, Env> AnnotatedValue> for FileExpr<'a> +impl<'a, Env> AnnotatedValue> for FilePath<'a> where Env: ScenarioTxEnv, { @@ -36,9 +36,9 @@ where } } -impl<'a, Env> TxCodeValue for FileExpr<'a> where Env: ScenarioTxEnv {} +impl<'a, Env> TxCodeValue for FilePath<'a> where Env: ScenarioTxEnv {} -impl<'a> RegisterCodeSource for FileExpr<'a> { +impl<'a> RegisterCodeSource for FilePath<'a> { fn into_code(self, env_data: ScenarioTxEnvData) -> Vec { self.resolve_contents(&env_data.interpreter_context()) } diff --git a/framework/scenario/src/facade/expr/mxsc_expr.rs b/framework/scenario/src/facade/expr/mxsc_path.rs similarity index 81% rename from framework/scenario/src/facade/expr/mxsc_expr.rs rename to framework/scenario/src/facade/expr/mxsc_path.rs index 0f4be9f05d..465eb5f097 100644 --- a/framework/scenario/src/facade/expr/mxsc_expr.rs +++ b/framework/scenario/src/facade/expr/mxsc_path.rs @@ -10,17 +10,17 @@ use super::RegisterCodeSource; const MXSC_PREFIX: &str = "mxsc:"; #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct MxscExpr<'a> { +pub struct MxscPath<'a> { path: &'a str, } -impl<'a> MxscExpr<'a> { +impl<'a> MxscPath<'a> { pub const fn new(path: &'a str) -> Self { - MxscExpr { path } + MxscPath { path } } } -impl<'a> MxscExpr<'a> { +impl<'a> MxscPath<'a> { pub fn eval_to_expr(&self) -> String { format!("{MXSC_PREFIX}{}", self.path) } @@ -30,7 +30,7 @@ impl<'a> MxscExpr<'a> { } } -impl<'a, Env> AnnotatedValue> for MxscExpr<'a> +impl<'a, Env> AnnotatedValue> for MxscPath<'a> where Env: ScenarioTxEnv, { @@ -44,9 +44,9 @@ where } } -impl<'a, Env> TxCodeValue for MxscExpr<'a> where Env: ScenarioTxEnv {} +impl<'a, Env> TxCodeValue for MxscPath<'a> where Env: ScenarioTxEnv {} -impl<'a> RegisterCodeSource for MxscExpr<'a> { +impl<'a> RegisterCodeSource for MxscPath<'a> { fn into_code(self, env_data: ScenarioTxEnvData) -> Vec { self.resolve_contents(&env_data.interpreter_context()) } @@ -54,10 +54,10 @@ impl<'a> RegisterCodeSource for MxscExpr<'a> { #[cfg(test)] pub mod tests { - use crate::imports::MxscExpr; + use crate::imports::MxscPath; fn assert_eq_eval(expr: &'static str, expected: &str) { - assert_eq!(&MxscExpr::new(expr).eval_to_expr(), expected); + assert_eq!(&MxscPath::new(expr).eval_to_expr(), expected); } #[test] diff --git a/framework/scenario/src/scenario/model/value/address_key.rs b/framework/scenario/src/scenario/model/value/address_key.rs index ddb6169a66..b5308e87a1 100644 --- a/framework/scenario/src/scenario/model/value/address_key.rs +++ b/framework/scenario/src/scenario/model/value/address_key.rs @@ -1,4 +1,4 @@ -use multiversx_sc::types::{Address, AddressExpr, ScExpr}; +use multiversx_sc::types::{Address, TestAddress, TestScAddress}; use super::{value_from_slice, AddressValue}; use crate::{ @@ -135,8 +135,8 @@ impl From for AddressKey { } } -impl From> for AddressKey { - fn from(from: AddressExpr) -> Self { +impl From> for AddressKey { + fn from(from: TestAddress) -> Self { AddressKey { value: from.eval_to_array().into(), original: from.eval_to_expr(), @@ -144,8 +144,8 @@ impl From> for AddressKey { } } -impl From> for AddressKey { - fn from(from: ScExpr) -> Self { +impl From> for AddressKey { + fn from(from: TestScAddress) -> Self { AddressKey { value: from.eval_to_array().into(), original: from.eval_to_expr(), diff --git a/framework/scenario/src/scenario/model/value/address_value.rs b/framework/scenario/src/scenario/model/value/address_value.rs index 57499a8463..831574c26b 100644 --- a/framework/scenario/src/scenario/model/value/address_value.rs +++ b/framework/scenario/src/scenario/model/value/address_value.rs @@ -4,7 +4,7 @@ use multiversx_sc::{ }; use std::fmt; -use crate::multiversx_sc::types::{Address, AddressExpr, ScExpr}; +use crate::multiversx_sc::types::{Address, TestAddress, TestScAddress}; use crate::{ facade::expr::Bech32Address, @@ -138,8 +138,8 @@ impl From<&str> for AddressValue { } } -impl From> for AddressValue { - fn from(from: AddressExpr) -> Self { +impl From> for AddressValue { + fn from(from: TestAddress) -> Self { AddressValue { value: from.eval_to_array().into(), original: ValueSubTree::Str(from.eval_to_expr()), @@ -147,8 +147,8 @@ impl From> for AddressValue { } } -impl From> for AddressValue { - fn from(from: ScExpr) -> Self { +impl From> for AddressValue { + fn from(from: TestScAddress) -> Self { AddressValue { value: from.eval_to_array().into(), original: ValueSubTree::Str(from.eval_to_expr()), From b47133cf476dbcd858b35cdfec19db0acaa65af1 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 26 Apr 2024 14:22:23 +0300 Subject: [PATCH 081/185] expr refactor: rename --- .../tests/price_aggregator_blackbox_test.rs | 2 +- .../adder/tests/adder_blackbox_test.rs | 2 +- .../tests/crowdfunding_esdt_blackbox_test.rs | 2 +- .../multisig/tests/multisig_blackbox_test.rs | 18 +++++++-------- .../rewards_distribution_integration_test.rs | 4 ++-- .../tests/pmf_blackbox_test.rs | 2 +- .../tests/st_blackbox_chained_test.rs | 4 ++-- .../scenario-tester/tests/st_blackbox_test.rs | 2 +- framework/base/src/types/interaction/expr.rs | 2 +- .../types/interaction/expr/test_sc_address.rs | 22 +++++++++---------- .../src/scenario/model/value/address_key.rs | 6 ++--- .../src/scenario/model/value/address_value.rs | 6 ++--- 12 files changed, 36 insertions(+), 36 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index c1d8056769..00a997399a 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -19,7 +19,7 @@ const STAKE_AMOUNT: u64 = 20; const SUBMISSION_COUNT: usize = 3; const USD_TICKER: &[u8] = b"USDC"; -const PRICE_AGGREGATOR: TestScAddress = TestScAddress::new("price-aggregator"); +const PRICE_AGGREGATOR: TestSCAddress = TestSCAddress::new("price-aggregator"); const OWNER: TestAddress = TestAddress::new("owner"); fn world() -> ScenarioWorld { diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index 59b47ba405..61daec8c25 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -3,7 +3,7 @@ use multiversx_sc_scenario::imports::*; use adder::*; const OWNER: TestAddress = TestAddress::new("owner"); -const SC_ADDER: TestScAddress = TestScAddress::new("adder"); +const SC_ADDER: TestSCAddress = TestSCAddress::new("adder"); const CODE_EXPR: MxscPath = MxscPath::new("output/adder.mxsc.json"); fn world() -> ScenarioWorld { diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index d44541751d..0109329c4c 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -9,7 +9,7 @@ const FIRST_USER_ADDRESS: TestAddress = TestAddress::new("first-user"); const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const SECOND_USER_ADDRESS: TestAddress = TestAddress::new("second-user"); const CODE_EXPR: MxscPath = MxscPath::new("output/crowdfunding-esdt.mxsc.json"); -const SC_CROWDFUNDING_ESDT_EXPR: TestScAddress = TestScAddress::new("crowdfunding-esdt"); +const SC_CROWDFUNDING_ESDT_EXPR: TestSCAddress = TestSCAddress::new("crowdfunding-esdt"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 05d8171bff..8d1e81f6cf 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -5,11 +5,11 @@ use adder::adder_proxy; use multisig::multisig_proxy; use num_bigint::BigUint; -const SC_ADDER_EXPR: TestScAddress = TestScAddress::new("adder"); +const SC_ADDER_EXPR: TestSCAddress = TestSCAddress::new("adder"); const ADDER_OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("adder-owner"); const ADDER_CODE_EXPR: MxscPath = MxscPath::new("test-contracts/adder.mxsc.json"); const BOARD_MEMBER_ADDRESS_EXPR: TestAddress = TestAddress::new("board-member"); -const SC_MULTISIG_EXPR: TestScAddress = TestScAddress::new("multisig"); +const SC_MULTISIG_EXPR: TestSCAddress = TestSCAddress::new("multisig"); const MULTISIG_CODE_EXPR: MxscPath = MxscPath::new("output/multisig.mxsc.json"); const OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("owner"); const PROPOSER_ADDRESS_EXPR: TestAddress = TestAddress::new("proposer"); @@ -123,7 +123,7 @@ impl MultisigTestState { fn propose_transfer_execute( &mut self, - to: TestScAddress, + to: TestSCAddress, egld_amount: u64, contract_call: FunctionCall, ) -> usize { @@ -139,7 +139,7 @@ impl MultisigTestState { fn propose_async_call( &mut self, - to: TestScAddress, + to: TestSCAddress, egld_amount: u64, contract_call: FunctionCall, ) -> usize { @@ -167,7 +167,7 @@ impl MultisigTestState { fn propose_sc_deploy_from_source( &mut self, amount: u64, - source: TestScAddress, + source: TestSCAddress, code_metadata: CodeMetadata, arguments: MultiValueVec>, ) -> usize { @@ -183,9 +183,9 @@ impl MultisigTestState { fn propose_sc_upgrade_from_source( &mut self, - sc_address: TestScAddress, + sc_address: TestSCAddress, amount: u64, - source: TestScAddress, + source: TestSCAddress, code_metadata: CodeMetadata, arguments: MultiValueVec>, ) -> usize { @@ -538,7 +538,7 @@ fn test_deploy_and_upgrade_from_source() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract().deploy_adder_contract(); - let new_adder_address_expr = TestScAddress::new("new-adder"); + let new_adder_address_expr = TestSCAddress::new("new-adder"); state .world @@ -584,7 +584,7 @@ fn test_deploy_and_upgrade_from_source() { .returns(ExpectValue(BigUint::from(10u64))) .run(); - let factorial_address_expr: TestScAddress = TestScAddress::new("factorial"); + let factorial_address_expr: TestSCAddress = TestSCAddress::new("factorial"); let factorial_path_expr: MxscPath = MxscPath::new("test-contracts/factorial.mxsc.json"); let factorial_code = state diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs index 4843386494..d540805eaf 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs @@ -14,10 +14,10 @@ const NFT_TOKEN_ID_EXPR: &str = "str:NFT-123456"; const ALICE_ADDRESS_EXPR: TestAddress = TestAddress::new("alice"); const OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("owner"); -const REWARDS_DISTRIBUTION_ADDRESS_EXPR: TestScAddress = TestScAddress::new("rewards-distribution"); +const REWARDS_DISTRIBUTION_ADDRESS_EXPR: TestSCAddress = TestSCAddress::new("rewards-distribution"); const REWARDS_DISTRIBUTION_PATH_EXPR: MxscPath = MxscPath::new("output/rewards-distribution.mxsc.json"); -const SEED_NFT_MINTER_ADDRESS_EXPR: TestScAddress = TestScAddress::new("seed-nft-minter"); +const SEED_NFT_MINTER_ADDRESS_EXPR: TestSCAddress = TestSCAddress::new("seed-nft-minter"); const SEED_NFT_MINTER_PATH_EXPR: MxscPath = MxscPath::new("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs index 550679fff4..5dbd41fc01 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs @@ -3,7 +3,7 @@ mod pmf_proxy; use multiversx_sc_scenario::imports::*; const OWNER: TestAddress = TestAddress::new("owner"); -const SC_PMF: TestScAddress = TestScAddress::new("pmf"); +const SC_PMF: TestSCAddress = TestSCAddress::new("pmf"); const CODE_EXPR: &str = "mxsc:output/panic-message-features.mxsc.json"; fn world() -> ScenarioWorld { diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs index 5183d72923..439dc586de 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs @@ -36,7 +36,7 @@ fn st_blackbox_chained() { })) }) .chain_query(|tx| { - tx.to(TestScAddress::new("adder")) + tx.to(TestSCAddress::new("adder")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .sum() .with_result(WithResultConv::new(|value: BigUint| { @@ -45,7 +45,7 @@ fn st_blackbox_chained() { }) .chain_call(|tx| { tx.from(TestAddress::new("owner")) - .to(TestScAddress::new("adder")) + .to(TestSCAddress::new("adder")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .add(3u32) .with_result(WithRawTxResponse(|response| { diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 203868331f..db1e011dcc 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -7,7 +7,7 @@ const SC_SCENARIO_TESTER_PATH_EXPR: &str = "mxsc:output/scenario-tester.mxsc.jso const OWNER: TestAddress = TestAddress::new("owner"); const OTHER: TestAddress = TestAddress::new("other"); -const SC_SCENARIO_TESTER: TestScAddress = TestScAddress::new("scenario-tester"); +const SC_SCENARIO_TESTER: TestSCAddress = TestSCAddress::new("scenario-tester"); const CODE_EXPR: MxscPath = MxscPath::new("output/scenario-tester.mxsc.json"); fn world() -> ScenarioWorld { diff --git a/framework/base/src/types/interaction/expr.rs b/framework/base/src/types/interaction/expr.rs index 48939cbf00..ca1e1c44b1 100644 --- a/framework/base/src/types/interaction/expr.rs +++ b/framework/base/src/types/interaction/expr.rs @@ -2,4 +2,4 @@ mod test_address; mod test_sc_address; pub use test_address::TestAddress; -pub use test_sc_address::TestScAddress; +pub use test_sc_address::TestSCAddress; diff --git a/framework/base/src/types/interaction/expr/test_sc_address.rs b/framework/base/src/types/interaction/expr/test_sc_address.rs index 4c93024420..3f603160b1 100644 --- a/framework/base/src/types/interaction/expr/test_sc_address.rs +++ b/framework/base/src/types/interaction/expr/test_sc_address.rs @@ -14,17 +14,17 @@ const DEFAULT_VM_TYPE: &[u8] = &[5, 0]; /// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. /// For this reason, its inner structure is subject to change. #[derive(Clone, Copy, Debug, PartialEq, Eq)] -pub struct TestScAddress<'a> { +pub struct TestSCAddress<'a> { name: &'a str, } -impl<'a> TestScAddress<'a> { +impl<'a> TestSCAddress<'a> { pub const fn new(name: &'a str) -> Self { - TestScAddress { name } + TestSCAddress { name } } } -impl<'a, Env> AnnotatedValue> for TestScAddress<'a> +impl<'a, Env> AnnotatedValue> for TestSCAddress<'a> where Env: TxEnv, { @@ -40,14 +40,14 @@ where } } -impl<'a> TestScAddress<'a> { +impl<'a> TestSCAddress<'a> { pub fn to_address(&self) -> Address { let expr: [u8; 32] = self.eval_to_array(); expr.into() } } -impl<'a, Env> TxFrom for TestScAddress<'a> +impl<'a, Env> TxFrom for TestSCAddress<'a> where Env: TxEnv, { @@ -56,11 +56,11 @@ where expr.into() } } -impl<'a, Env> TxFromSpecified for TestScAddress<'a> where Env: TxEnv {} -impl<'a, Env> TxTo for TestScAddress<'a> where Env: TxEnv {} -impl<'a, Env> TxToSpecified for TestScAddress<'a> where Env: TxEnv {} +impl<'a, Env> TxFromSpecified for TestSCAddress<'a> where Env: TxEnv {} +impl<'a, Env> TxTo for TestSCAddress<'a> where Env: TxEnv {} +impl<'a, Env> TxToSpecified for TestSCAddress<'a> where Env: TxEnv {} -impl<'a> TestScAddress<'a> { +impl<'a> TestSCAddress<'a> { pub const fn eval_to_array(&self) -> [u8; 32] { let result = *b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00______________________"; let expr_bytes = self.name.as_bytes(); @@ -94,7 +94,7 @@ pub mod tests { use super::*; fn assert_eq_eval(expr: &'static str, expected: &[u8; 32]) { - assert_eq!(&TestScAddress::new(expr).eval_to_array(), expected); + assert_eq!(&TestSCAddress::new(expr).eval_to_array(), expected); } #[test] diff --git a/framework/scenario/src/scenario/model/value/address_key.rs b/framework/scenario/src/scenario/model/value/address_key.rs index b5308e87a1..f54e05b2f3 100644 --- a/framework/scenario/src/scenario/model/value/address_key.rs +++ b/framework/scenario/src/scenario/model/value/address_key.rs @@ -1,4 +1,4 @@ -use multiversx_sc::types::{Address, TestAddress, TestScAddress}; +use multiversx_sc::types::{Address, TestAddress, TestSCAddress}; use super::{value_from_slice, AddressValue}; use crate::{ @@ -144,8 +144,8 @@ impl From> for AddressKey { } } -impl From> for AddressKey { - fn from(from: TestScAddress) -> Self { +impl From> for AddressKey { + fn from(from: TestSCAddress) -> Self { AddressKey { value: from.eval_to_array().into(), original: from.eval_to_expr(), diff --git a/framework/scenario/src/scenario/model/value/address_value.rs b/framework/scenario/src/scenario/model/value/address_value.rs index 831574c26b..fdde631ede 100644 --- a/framework/scenario/src/scenario/model/value/address_value.rs +++ b/framework/scenario/src/scenario/model/value/address_value.rs @@ -4,7 +4,7 @@ use multiversx_sc::{ }; use std::fmt; -use crate::multiversx_sc::types::{Address, TestAddress, TestScAddress}; +use crate::multiversx_sc::types::{Address, TestAddress, TestSCAddress}; use crate::{ facade::expr::Bech32Address, @@ -147,8 +147,8 @@ impl From> for AddressValue { } } -impl From> for AddressValue { - fn from(from: TestScAddress) -> Self { +impl From> for AddressValue { + fn from(from: TestSCAddress) -> Self { AddressValue { value: from.eval_to_array().into(), original: ValueSubTree::Str(from.eval_to_expr()), From 3b81210db4192dc9e2c301a163b20e118cc83815 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 26 Apr 2024 14:31:08 +0300 Subject: [PATCH 082/185] expr refactor: rename in tests --- .../tests/price_aggregator_blackbox_test.rs | 26 +-- .../adder/tests/adder_blackbox_test.rs | 32 ++-- .../tests/crowdfunding_esdt_blackbox_test.rs | 22 +-- .../multisig/tests/multisig_blackbox_test.rs | 180 +++++++++--------- .../rewards_distribution_integration_test.rs | 79 ++++---- .../tests/pmf_blackbox_test.rs | 8 +- .../scenario-tester/tests/st_blackbox_test.rs | 22 +-- 7 files changed, 185 insertions(+), 184 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index 00a997399a..5eca754439 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -19,8 +19,8 @@ const STAKE_AMOUNT: u64 = 20; const SUBMISSION_COUNT: usize = 3; const USD_TICKER: &[u8] = b"USDC"; -const PRICE_AGGREGATOR: TestSCAddress = TestSCAddress::new("price-aggregator"); -const OWNER: TestAddress = TestAddress::new("owner"); +const PRICE_AGGREGATOR_ADDRESS: TestSCAddress = TestSCAddress::new("price-aggregator"); +const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -44,7 +44,7 @@ impl PriceAggregatorTestState { fn new() -> Self { let mut world = world(); - world.account(OWNER).nonce(1); + world.account(OWNER_ADDRESS).nonce(1); world.current_block().block_timestamp(100); world.set_state_step(SetStateStep::new()).new_address( @@ -86,7 +86,7 @@ impl PriceAggregatorTestState { self.world .tx() - .from(OWNER) + .from(OWNER_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .init( EgldOrEsdtTokenIdentifier::egld(), @@ -103,7 +103,7 @@ impl PriceAggregatorTestState { self.world .tx() .from(address) - .to(PRICE_AGGREGATOR) + .to(PRICE_AGGREGATOR_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .stake() .egld(STAKE_AMOUNT) @@ -116,8 +116,8 @@ impl PriceAggregatorTestState { fn set_pair_decimals(&mut self) { self.world .tx() - .from(OWNER) - .to(PRICE_AGGREGATOR) + .from(OWNER_ADDRESS) + .to(PRICE_AGGREGATOR_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .set_pair_decimals(EGLD_TICKER, USD_TICKER, DECIMALS) .run(); @@ -126,8 +126,8 @@ impl PriceAggregatorTestState { fn unpause_endpoint(&mut self) { self.world .tx() - .from(OWNER) - .to(PRICE_AGGREGATOR) + .from(OWNER_ADDRESS) + .to(PRICE_AGGREGATOR_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .unpause_endpoint() .run(); @@ -137,7 +137,7 @@ impl PriceAggregatorTestState { self.world .tx() .from(from) - .to(PRICE_AGGREGATOR) + .to(PRICE_AGGREGATOR_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .submit( EGLD_TICKER, @@ -159,7 +159,7 @@ impl PriceAggregatorTestState { self.world .tx() .from(from) - .to(PRICE_AGGREGATOR) + .to(PRICE_AGGREGATOR_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .submit( EGLD_TICKER, @@ -177,7 +177,7 @@ impl PriceAggregatorTestState { self.world .tx() .from(from) - .to(PRICE_AGGREGATOR) + .to(PRICE_AGGREGATOR_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .vote_slash_member(member_to_slash) .run(); @@ -379,7 +379,7 @@ fn test_price_aggregator_slashing() { .world .tx() .from(&state.oracles[0]) - .to(PRICE_AGGREGATOR) + .to(PRICE_AGGREGATOR_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .slash_member(state.oracles[1].to_address()) .run(); diff --git a/contracts/examples/adder/tests/adder_blackbox_test.rs b/contracts/examples/adder/tests/adder_blackbox_test.rs index 61daec8c25..a0064a65d0 100644 --- a/contracts/examples/adder/tests/adder_blackbox_test.rs +++ b/contracts/examples/adder/tests/adder_blackbox_test.rs @@ -2,15 +2,15 @@ use multiversx_sc_scenario::imports::*; use adder::*; -const OWNER: TestAddress = TestAddress::new("owner"); -const SC_ADDER: TestSCAddress = TestSCAddress::new("adder"); -const CODE_EXPR: MxscPath = MxscPath::new("output/adder.mxsc.json"); +const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); +const ADDER_ADDRESS: TestSCAddress = TestSCAddress::new("adder"); +const CODE_PATH: MxscPath = MxscPath::new("output/adder.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); blockchain.set_current_dir_from_workspace("contracts/examples/adder"); - blockchain.register_contract(CODE_EXPR, adder::ContractBuilder); + blockchain.register_contract(CODE_PATH, adder::ContractBuilder); blockchain } @@ -20,23 +20,23 @@ fn adder_blackbox() { world.start_trace(); - world.account(OWNER).nonce(1); + world.account(OWNER_ADDRESS).nonce(1); let new_address = world .tx() - .from(OWNER) + .from(OWNER_ADDRESS) .typed(adder_proxy::AdderProxy) .init(5u32) - .code(CODE_EXPR) - .new_address(SC_ADDER) + .code(CODE_PATH) + .new_address(ADDER_ADDRESS) .returns(ReturnsNewAddress) .run(); - assert_eq!(new_address, SC_ADDER.to_address()); + assert_eq!(new_address, ADDER_ADDRESS.to_address()); world .query() - .to(SC_ADDER) + .to(ADDER_ADDRESS) .typed(adder_proxy::AdderProxy) .sum() .returns(ExpectValue(5u32)) @@ -44,23 +44,25 @@ fn adder_blackbox() { world .tx() - .from(OWNER) - .to(SC_ADDER) + .from(OWNER_ADDRESS) + .to(ADDER_ADDRESS) .typed(adder_proxy::AdderProxy) .add(1u32) .run(); world .query() - .to(SC_ADDER) + .to(ADDER_ADDRESS) .typed(adder_proxy::AdderProxy) .sum() .returns(ExpectValue(6u32)) .run(); - world.check_account(OWNER); + world.check_account(OWNER_ADDRESS); - world.check_account(SC_ADDER).check_storage("str:sum", "6"); + world + .check_account(ADDER_ADDRESS) + .check_storage("str:sum", "6"); world.write_scenario_trace("trace1.scen.json"); } diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 0109329c4c..b46225a396 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -8,13 +8,13 @@ const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; const FIRST_USER_ADDRESS: TestAddress = TestAddress::new("first-user"); const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const SECOND_USER_ADDRESS: TestAddress = TestAddress::new("second-user"); -const CODE_EXPR: MxscPath = MxscPath::new("output/crowdfunding-esdt.mxsc.json"); -const SC_CROWDFUNDING_ESDT_EXPR: TestSCAddress = TestSCAddress::new("crowdfunding-esdt"); +const CODE_PATH: MxscPath = MxscPath::new("output/crowdfunding-esdt.mxsc.json"); +const CROWDFUNDING_ADDRESS: TestSCAddress = TestSCAddress::new("crowdfunding-esdt"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); - blockchain.register_contract(CODE_EXPR, crowdfunding_esdt::ContractBuilder); + blockchain.register_contract(CODE_PATH, crowdfunding_esdt::ContractBuilder); blockchain } @@ -37,7 +37,7 @@ impl CrowdfundingESDTTestState { .nonce(1) .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); - world.new_address(OWNER_ADDRESS, 1, SC_CROWDFUNDING_ESDT_EXPR); + world.new_address(OWNER_ADDRESS, 1, CROWDFUNDING_ADDRESS); Self { world } } @@ -52,7 +52,7 @@ impl CrowdfundingESDTTestState { CF_DEADLINE, EgldOrEsdtTokenIdentifier::esdt(CF_TOKEN_ID), ) - .code(CODE_EXPR) + .code(CODE_PATH) .run(); } @@ -60,7 +60,7 @@ impl CrowdfundingESDTTestState { self.world .tx() .from(address) - .to(SC_CROWDFUNDING_ESDT_EXPR) + .to(CROWDFUNDING_ADDRESS) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .fund() .egld_or_single_esdt( @@ -74,7 +74,7 @@ impl CrowdfundingESDTTestState { fn check_deposit(&mut self, donor: TestAddress, amount: u64) { self.world .query() - .to(SC_CROWDFUNDING_ESDT_EXPR) + .to(CROWDFUNDING_ADDRESS) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .deposit(donor.eval_to_array()) .returns(ExpectValue(amount)) @@ -84,7 +84,7 @@ impl CrowdfundingESDTTestState { fn check_status(&mut self, expected_value: crowdfunding_esdt_proxy::Status) { self.world .query() - .to(SC_CROWDFUNDING_ESDT_EXPR) + .to(CROWDFUNDING_ADDRESS) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .status() .returns(ExpectValue(expected_value)) @@ -95,7 +95,7 @@ impl CrowdfundingESDTTestState { self.world .tx() .from(address) - .to(SC_CROWDFUNDING_ESDT_EXPR) + .to(CROWDFUNDING_ADDRESS) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .claim() .run(); @@ -139,7 +139,7 @@ fn test_sc_error() { .world .tx() .from(FIRST_USER_ADDRESS) - .to(SC_CROWDFUNDING_ESDT_EXPR) + .to(CROWDFUNDING_ADDRESS) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .fund() .egld(1000) @@ -172,7 +172,7 @@ fn test_successful_cf() { .world .tx() .from(FIRST_USER_ADDRESS) - .to(SC_CROWDFUNDING_ESDT_EXPR) + .to(CROWDFUNDING_ADDRESS) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) .claim() .with_result(ExpectError(4, "only owner can claim successful funding")) diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 8d1e81f6cf..7444700e31 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -5,14 +5,14 @@ use adder::adder_proxy; use multisig::multisig_proxy; use num_bigint::BigUint; -const SC_ADDER_EXPR: TestSCAddress = TestSCAddress::new("adder"); -const ADDER_OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("adder-owner"); -const ADDER_CODE_EXPR: MxscPath = MxscPath::new("test-contracts/adder.mxsc.json"); -const BOARD_MEMBER_ADDRESS_EXPR: TestAddress = TestAddress::new("board-member"); -const SC_MULTISIG_EXPR: TestSCAddress = TestSCAddress::new("multisig"); -const MULTISIG_CODE_EXPR: MxscPath = MxscPath::new("output/multisig.mxsc.json"); -const OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("owner"); -const PROPOSER_ADDRESS_EXPR: TestAddress = TestAddress::new("proposer"); +const ADDER_ADDRESS: TestSCAddress = TestSCAddress::new("adder"); +const ADDER_OWNER_ADDRESS: TestAddress = TestAddress::new("adder-owner"); +const ADDER_CODE_PATH: MxscPath = MxscPath::new("test-contracts/adder.mxsc.json"); +const BOARD_MEMBER_ADDRESS: TestAddress = TestAddress::new("board-member"); +const MULTISIG_ADDRESS: TestSCAddress = TestSCAddress::new("multisig"); +const MULTISIG_CODE_PATH: MxscPath = MxscPath::new("output/multisig.mxsc.json"); +const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); +const PROPOSER_ADDRESS: TestAddress = TestAddress::new("proposer"); const PROPOSER_BALANCE_EXPR: &str = "100,000,000"; const QUORUM_SIZE: usize = 1; @@ -20,8 +20,8 @@ fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); blockchain.set_current_dir_from_workspace("contracts/examples/multisig"); - blockchain.register_contract(MULTISIG_CODE_EXPR, multisig::ContractBuilder); - blockchain.register_contract(ADDER_CODE_EXPR, adder::ContractBuilder); + blockchain.register_contract(MULTISIG_CODE_PATH, multisig::ContractBuilder); + blockchain.register_contract(ADDER_CODE_PATH, adder::ContractBuilder); blockchain } @@ -34,45 +34,45 @@ impl MultisigTestState { let mut world = world(); world - .account(OWNER_ADDRESS_EXPR) + .account(OWNER_ADDRESS) .nonce(1) - .account(PROPOSER_ADDRESS_EXPR) + .account(PROPOSER_ADDRESS) .nonce(1) .balance(PROPOSER_BALANCE_EXPR) - .account(BOARD_MEMBER_ADDRESS_EXPR) + .account(BOARD_MEMBER_ADDRESS) .nonce(1) - .account(ADDER_OWNER_ADDRESS_EXPR) + .account(ADDER_OWNER_ADDRESS) .nonce(1); Self { world } } fn deploy_multisig_contract(&mut self) -> &mut Self { - let board_members = MultiValueVec::from(vec![BOARD_MEMBER_ADDRESS_EXPR.eval_to_array()]); + let board_members = MultiValueVec::from(vec![BOARD_MEMBER_ADDRESS.eval_to_array()]); self.world .tx() - .from(OWNER_ADDRESS_EXPR) + .from(OWNER_ADDRESS) .typed(multisig_proxy::MultisigProxy) .init(QUORUM_SIZE, board_members) - .code(MULTISIG_CODE_EXPR) - .new_address(SC_MULTISIG_EXPR) + .code(MULTISIG_CODE_PATH) + .new_address(MULTISIG_ADDRESS) .run(); let action_id: usize = self .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_add_proposer(PROPOSER_ADDRESS_EXPR.eval_to_array()) + .propose_add_proposer(PROPOSER_ADDRESS.eval_to_array()) .returns(ReturnsResult) .run(); self.sign(action_id); self.perform(action_id); - self.expect_user_role(PROPOSER_ADDRESS_EXPR, multisig_proxy::UserRole::Proposer); + self.expect_user_role(PROPOSER_ADDRESS, multisig_proxy::UserRole::Proposer); self } @@ -80,19 +80,19 @@ impl MultisigTestState { fn deploy_adder_contract(&mut self) { self.world .tx() - .from(ADDER_OWNER_ADDRESS_EXPR) + .from(ADDER_OWNER_ADDRESS) .typed(adder_proxy::AdderProxy) .init(5u64) - .code(ADDER_CODE_EXPR) - .new_address(SC_ADDER_EXPR) + .code(ADDER_CODE_PATH) + .new_address(ADDER_ADDRESS) .run(); } fn propose_add_board_member(&mut self, board_member_address: TestAddress) -> usize { self.world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_add_board_member(board_member_address.eval_to_array()) .returns(ReturnsResult) @@ -102,8 +102,8 @@ impl MultisigTestState { fn propose_add_proposer(&mut self, proposer_address: TestAddress) -> usize { self.world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_add_proposer(proposer_address.eval_to_array()) .returns(ReturnsResult) @@ -113,8 +113,8 @@ impl MultisigTestState { fn propose_change_quorum(&mut self, new_quorum: usize) -> usize { self.world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_change_quorum(new_quorum) .returns(ReturnsResult) @@ -129,8 +129,8 @@ impl MultisigTestState { ) -> usize { self.world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_transfer_execute(to.eval_to_array(), egld_amount, contract_call) .returns(ReturnsResult) @@ -145,8 +145,8 @@ impl MultisigTestState { ) -> usize { self.world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_async_call(to.eval_to_array(), egld_amount, contract_call) .returns(ReturnsResult) @@ -156,8 +156,8 @@ impl MultisigTestState { fn propose_remove_user(&mut self, user_address: TestAddress) -> usize { self.world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_remove_user(user_address.eval_to_array()) .returns(ReturnsResult) @@ -173,8 +173,8 @@ impl MultisigTestState { ) -> usize { self.world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_sc_deploy_from_source(amount, source.eval_to_array(), code_metadata, arguments) .returns(ReturnsResult) @@ -191,8 +191,8 @@ impl MultisigTestState { ) -> usize { self.world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_sc_upgrade_from_source( sc_address.eval_to_array(), @@ -208,8 +208,8 @@ impl MultisigTestState { fn perform(&mut self, action_id: usize) { self.world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .perform_action_endpoint(action_id) .run(); @@ -218,8 +218,8 @@ impl MultisigTestState { fn perform_and_expect_err(&mut self, action_id: usize, err_message: &str) { self.world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .perform_action_endpoint(action_id) .with_result(ExpectError(4, err_message)) @@ -229,8 +229,8 @@ impl MultisigTestState { fn sign(&mut self, action_id: usize) { self.world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .sign(action_id) .run(); @@ -243,7 +243,7 @@ impl MultisigTestState { ) { self.world .query() - .to(SC_MULTISIG_EXPR) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .user_role(user.eval_to_array()) .returns(ExpectValue(expected_user_role)) @@ -267,7 +267,7 @@ fn test_add_board_member() { state.perform(action_id); let expected_value = MultiValueVec::from(vec![ - BOARD_MEMBER_ADDRESS_EXPR.eval_to_array(), + BOARD_MEMBER_ADDRESS.eval_to_array(), new_board_member_expr.eval_to_array(), ]); @@ -275,7 +275,7 @@ fn test_add_board_member() { state .world .query() - .to(SC_MULTISIG_EXPR) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .get_all_board_members() .returns(ExpectValue(expected_value)) @@ -303,13 +303,13 @@ fn test_add_proposer() { ); let expected_value = MultiValueVec::from(vec![ - PROPOSER_ADDRESS_EXPR.eval_to_array(), + PROPOSER_ADDRESS.eval_to_array(), new_proposer_address_expr.eval_to_array(), ]); state .world .query() - .to(SC_MULTISIG_EXPR) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .get_all_proposers() .returns(ExpectValue(expected_value)) @@ -321,17 +321,17 @@ fn test_remove_proposer() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - state.expect_user_role(PROPOSER_ADDRESS_EXPR, multisig_proxy::UserRole::Proposer); + state.expect_user_role(PROPOSER_ADDRESS, multisig_proxy::UserRole::Proposer); - let action_id = state.propose_remove_user(PROPOSER_ADDRESS_EXPR); + let action_id = state.propose_remove_user(PROPOSER_ADDRESS); state.sign(action_id); state.perform(action_id); - state.expect_user_role(PROPOSER_ADDRESS_EXPR, multisig_proxy::UserRole::None); + state.expect_user_role(PROPOSER_ADDRESS, multisig_proxy::UserRole::None); state .world .query() - .to(SC_MULTISIG_EXPR) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .get_all_proposers() .returns(ExpectValue(MultiValueVec::
::new())) @@ -343,7 +343,7 @@ fn test_try_remove_all_board_members() { let mut state = MultisigTestState::new(); state.deploy_multisig_contract(); - let action_id = state.propose_remove_user(BOARD_MEMBER_ADDRESS_EXPR); + let action_id = state.propose_remove_user(BOARD_MEMBER_ADDRESS); state.sign(action_id); state.perform_and_expect_err(action_id, "quorum cannot exceed board size") } @@ -363,8 +363,8 @@ fn test_change_quorum() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .discard_action(action_id) .with_result(ExpectError( @@ -377,8 +377,8 @@ fn test_change_quorum() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .unsign(action_id) .run(); @@ -386,8 +386,8 @@ fn test_change_quorum() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .discard_action(action_id) .run(); @@ -396,8 +396,8 @@ fn test_change_quorum() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .sign(action_id) .with_result(ExpectError(4, "action does not exist")) @@ -431,8 +431,8 @@ fn test_transfer_execute_to_user() { state .world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .deposit() .egld(amount) @@ -440,15 +440,15 @@ fn test_transfer_execute_to_user() { state .world - .check_account(SC_MULTISIG_EXPR) + .check_account(MULTISIG_ADDRESS) .balance(amount.to_string().as_str()); // failed attempt state .world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_transfer_execute( new_user_address_expr.eval_to_array(), @@ -462,8 +462,8 @@ fn test_transfer_execute_to_user() { let action_id = state .world .tx() - .from(PROPOSER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(PROPOSER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .propose_transfer_execute( new_user_address_expr.eval_to_array(), @@ -493,14 +493,14 @@ fn test_transfer_execute_sc_all() { .add(5u64) .into_function_call(); - let action_id = state.propose_transfer_execute(SC_ADDER_EXPR, 0u64, adder_call); + let action_id = state.propose_transfer_execute(ADDER_ADDRESS, 0u64, adder_call); state.sign(action_id); state.perform(action_id); state .world .query() - .to(SC_ADDER_EXPR) + .to(ADDER_ADDRESS) .typed(adder_proxy::AdderProxy) .sum() .with_result(ExpectValue(BigUint::from(10u64))) @@ -519,14 +519,14 @@ fn test_async_call_to_sc() { .add(5u64) .into_function_call(); - let action_id = state.propose_async_call(SC_ADDER_EXPR, 0u64, adder_call); + let action_id = state.propose_async_call(ADDER_ADDRESS, 0u64, adder_call); state.sign(action_id); state.perform(action_id); state .world .query() - .to(SC_ADDER_EXPR) + .to(ADDER_ADDRESS) .typed(adder_proxy::AdderProxy) .sum() .returns(ExpectValue(10u64)) @@ -542,11 +542,11 @@ fn test_deploy_and_upgrade_from_source() { state .world - .new_address(SC_MULTISIG_EXPR, 0, new_adder_address_expr); + .new_address(MULTISIG_ADDRESS, 0, new_adder_address_expr); let action_id = state.propose_sc_deploy_from_source( 0u64, - SC_ADDER_EXPR, + ADDER_ADDRESS, CodeMetadata::all(), MultiValueVec::from([top_encode_to_vec_u8_or_panic(&5u64)]), ); @@ -554,8 +554,8 @@ fn test_deploy_and_upgrade_from_source() { state .world .tx() - .from(BOARD_MEMBER_ADDRESS_EXPR) - .to(SC_MULTISIG_EXPR) + .from(BOARD_MEMBER_ADDRESS) + .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) .perform_action_endpoint(action_id) .returns(ExpectValue(OptionalValue::Some( @@ -566,7 +566,7 @@ fn test_deploy_and_upgrade_from_source() { let adder_call = state .world .tx() - .to(SC_ADDER_EXPR) + .to(ADDER_ADDRESS) .typed(adder_proxy::AdderProxy) .add(5u64) .into_function_call(); @@ -584,26 +584,26 @@ fn test_deploy_and_upgrade_from_source() { .returns(ExpectValue(BigUint::from(10u64))) .run(); - let factorial_address_expr: TestSCAddress = TestSCAddress::new("factorial"); - let factorial_path_expr: MxscPath = MxscPath::new("test-contracts/factorial.mxsc.json"); + let factorial_address: TestSCAddress = TestSCAddress::new("factorial"); + let factorial_path: MxscPath = MxscPath::new("test-contracts/factorial.mxsc.json"); let factorial_code = state .world - .code_expression(factorial_path_expr.eval_to_expr().as_str()); + .code_expression(factorial_path.eval_to_expr().as_str()); state .world - .register_contract(factorial_path_expr, factorial::ContractBuilder); + .register_contract(factorial_path, factorial::ContractBuilder); state .world - .account(factorial_address_expr) + .account(factorial_address) .code(factorial_code.clone()); let action_id = state.propose_sc_upgrade_from_source( - SC_ADDER_EXPR, + ADDER_ADDRESS, 0u64, - factorial_address_expr, + factorial_address, CodeMetadata::all(), MultiValueVec::new(), ); @@ -612,6 +612,6 @@ fn test_deploy_and_upgrade_from_source() { state .world - .check_account(SC_ADDER_EXPR) - .code(factorial_path_expr.eval_to_expr().as_str()); + .check_account(ADDER_ADDRESS) + .code(factorial_path.eval_to_expr().as_str()); } diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs index d540805eaf..8acc4bada8 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs @@ -12,24 +12,23 @@ use rewards_distribution::{ const NFT_TOKEN_ID: &[u8] = b"NFT-123456"; const NFT_TOKEN_ID_EXPR: &str = "str:NFT-123456"; -const ALICE_ADDRESS_EXPR: TestAddress = TestAddress::new("alice"); -const OWNER_ADDRESS_EXPR: TestAddress = TestAddress::new("owner"); -const REWARDS_DISTRIBUTION_ADDRESS_EXPR: TestSCAddress = TestSCAddress::new("rewards-distribution"); -const REWARDS_DISTRIBUTION_PATH_EXPR: MxscPath = - MxscPath::new("output/rewards-distribution.mxsc.json"); -const SEED_NFT_MINTER_ADDRESS_EXPR: TestSCAddress = TestSCAddress::new("seed-nft-minter"); -const SEED_NFT_MINTER_PATH_EXPR: MxscPath = +const ALICE_ADDRESS: TestAddress = TestAddress::new("alice"); +const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); +const REWARDS_DISTRIBUTION_ADDRESS: TestSCAddress = TestSCAddress::new("rewards-distribution"); +const REWARDS_DISTRIBUTION_PATH: MxscPath = MxscPath::new("output/rewards-distribution.mxsc.json"); +const SEED_NFT_MINTER_ADDRESS: TestSCAddress = TestSCAddress::new("seed-nft-minter"); +const SEED_NFT_MINTER_PATH: MxscPath = MxscPath::new("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); blockchain.register_contract( - REWARDS_DISTRIBUTION_PATH_EXPR.eval_to_expr().as_str(), + REWARDS_DISTRIBUTION_PATH.eval_to_expr().as_str(), rewards_distribution::ContractBuilder, ); blockchain.register_contract( - SEED_NFT_MINTER_PATH_EXPR.eval_to_expr().as_str(), + SEED_NFT_MINTER_PATH.eval_to_expr().as_str(), mock_seed_nft_minter::ContractBuilder, ); blockchain @@ -44,10 +43,10 @@ impl RewardsDistributionTestState { fn new() -> Self { let mut world = world(); - world.account(OWNER_ADDRESS_EXPR).nonce(1); + world.account(OWNER_ADDRESS).nonce(1); let rewards_distribution_whitebox = WhiteboxContract::new( - REWARDS_DISTRIBUTION_ADDRESS_EXPR, + REWARDS_DISTRIBUTION_ADDRESS, rewards_distribution::contract_obj, ); @@ -60,16 +59,16 @@ impl RewardsDistributionTestState { fn deploy_seed_nft_minter_contract(&mut self) -> &mut Self { self.world .tx() - .from(OWNER_ADDRESS_EXPR) + .from(OWNER_ADDRESS) .typed(mock_seed_nft_minter_proxy::MockSeedNftMinterProxy) .init(TokenIdentifier::from_esdt_bytes(NFT_TOKEN_ID)) - .code(SEED_NFT_MINTER_PATH_EXPR) + .code(SEED_NFT_MINTER_PATH) .run(); self.world .tx() - .from(OWNER_ADDRESS_EXPR) - .to(SEED_NFT_MINTER_ADDRESS_EXPR) + .from(OWNER_ADDRESS) + .to(SEED_NFT_MINTER_ADDRESS) .typed(mock_seed_nft_minter_proxy::MockSeedNftMinterProxy) .set_nft_count(10_000u64) .run(); @@ -95,10 +94,10 @@ impl RewardsDistributionTestState { } self.world .tx() - .from(OWNER_ADDRESS_EXPR) + .from(OWNER_ADDRESS) .typed(rewards_distribution_proxy::RewardsDistributionProxy) - .init(SEED_NFT_MINTER_ADDRESS_EXPR.to_address(), brackets) - .code(REWARDS_DISTRIBUTION_PATH_EXPR) + .init(SEED_NFT_MINTER_ADDRESS.to_address(), brackets) + .code(REWARDS_DISTRIBUTION_PATH) .run(); self @@ -111,18 +110,18 @@ fn test_compute_brackets() { let rewards_distribution_code = state .world - .code_expression(REWARDS_DISTRIBUTION_PATH_EXPR.eval_to_expr().as_str()); + .code_expression(REWARDS_DISTRIBUTION_PATH.eval_to_expr().as_str()); state .world - .account(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .account(REWARDS_DISTRIBUTION_ADDRESS) .nonce(1) - .owner(OWNER_ADDRESS_EXPR) + .owner(OWNER_ADDRESS) .code(rewards_distribution_code); state.world.whitebox_call( &state.rewards_distribution_whitebox, - ScCallStep::new().from(OWNER_ADDRESS_EXPR), + ScCallStep::new().from(OWNER_ADDRESS), |sc| { let brackets = utils::to_brackets(&[ (10, 2_000), @@ -168,7 +167,7 @@ fn test_raffle_and_claim() { { let mut account_setter = state .world - .account(ALICE_ADDRESS_EXPR) + .account(ALICE_ADDRESS) .nonce(1) .balance("2_070_000_000"); for nft_nonce in nft_nonces { @@ -183,8 +182,8 @@ fn test_raffle_and_claim() { state.world.set_state_step( SetStateStep::new() - .new_address(OWNER_ADDRESS_EXPR, 1, SEED_NFT_MINTER_ADDRESS_EXPR) - .new_address(OWNER_ADDRESS_EXPR, 3, REWARDS_DISTRIBUTION_ADDRESS_EXPR), + .new_address(OWNER_ADDRESS, 1, SEED_NFT_MINTER_ADDRESS) + .new_address(OWNER_ADDRESS, 3, REWARDS_DISTRIBUTION_ADDRESS), ); state @@ -195,8 +194,8 @@ fn test_raffle_and_claim() { state .world .tx() - .from(ALICE_ADDRESS_EXPR) - .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .from(ALICE_ADDRESS) + .to(REWARDS_DISTRIBUTION_ADDRESS) .typed(rewards_distribution_proxy::RewardsDistributionProxy) .deposit_royalties() .egld(2_070_000_000) @@ -206,8 +205,8 @@ fn test_raffle_and_claim() { state .world .tx() - .from(ALICE_ADDRESS_EXPR) - .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .from(ALICE_ADDRESS) + .to(REWARDS_DISTRIBUTION_ADDRESS) .typed(rewards_distribution_proxy::RewardsDistributionProxy) .raffle() .tx_hash([0u8; 32]) // blockchain rng is deterministic, so we can use a fixed hash @@ -219,8 +218,8 @@ fn test_raffle_and_claim() { let reward = state .world .tx() - .from(ALICE_ADDRESS_EXPR) - .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .from(ALICE_ADDRESS) + .to(REWARDS_DISTRIBUTION_ADDRESS) .typed(rewards_distribution_proxy::RewardsDistributionProxy) .compute_claimable_amount(0u64, &EgldOrEsdtTokenIdentifier::egld(), 0u64, nonce) .returns(ReturnsResult) @@ -260,8 +259,8 @@ fn test_raffle_and_claim() { state .world .tx() - .from(ALICE_ADDRESS_EXPR) - .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .from(ALICE_ADDRESS) + .to(REWARDS_DISTRIBUTION_ADDRESS) .typed(rewards_distribution_proxy::RewardsDistributionProxy) .compute_claimable_amount(0u64, &EgldOrEsdtTokenIdentifier::egld(), 0u64, nonce) .returns(ExpectValue(expected_reward)) @@ -277,8 +276,8 @@ fn test_raffle_and_claim() { state .world .tx() - .from(ALICE_ADDRESS_EXPR) - .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .from(ALICE_ADDRESS) + .to(REWARDS_DISTRIBUTION_ADDRESS) .typed(rewards_distribution_proxy::RewardsDistributionProxy) .claim_rewards(0u64, 0u64, reward_tokens) .with_multi_token_transfer(nft_payments.clone()) @@ -289,7 +288,7 @@ fn test_raffle_and_claim() { state .world .query() - .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .to(REWARDS_DISTRIBUTION_ADDRESS) .typed(rewards_distribution_proxy::RewardsDistributionProxy) .was_claimed(0u64, &EgldOrEsdtTokenIdentifier::egld(), 0u64, nonce) .returns(ExpectValue(true)) @@ -302,7 +301,7 @@ fn test_raffle_and_claim() { state .world - .check_account(ALICE_ADDRESS_EXPR) + .check_account(ALICE_ADDRESS) .balance(balance_expr); // a second claim with the same nfts should succeed, but return no more rewards @@ -314,8 +313,8 @@ fn test_raffle_and_claim() { state .world .tx() - .from(ALICE_ADDRESS_EXPR) - .to(REWARDS_DISTRIBUTION_ADDRESS_EXPR) + .from(ALICE_ADDRESS) + .to(REWARDS_DISTRIBUTION_ADDRESS) .typed(rewards_distribution_proxy::RewardsDistributionProxy) .claim_rewards(0u64, 0u64, reward_tokens) .with_multi_token_transfer(nft_payments) @@ -323,6 +322,6 @@ fn test_raffle_and_claim() { state .world - .check_account(ALICE_ADDRESS_EXPR) + .check_account(ALICE_ADDRESS) .balance(balance_expr); } diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs index 5dbd41fc01..e8ad3c2a33 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_blackbox_test.rs @@ -2,7 +2,7 @@ mod pmf_proxy; use multiversx_sc_scenario::imports::*; -const OWNER: TestAddress = TestAddress::new("owner"); +const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const SC_PMF: TestSCAddress = TestSCAddress::new("pmf"); const CODE_EXPR: &str = "mxsc:output/panic-message-features.mxsc.json"; @@ -20,7 +20,7 @@ fn setup() -> ScenarioWorld { world.set_state_step( SetStateStep::new() - .put_account(OWNER, Account::new().nonce(1)) + .put_account(OWNER_ADDRESS, Account::new().nonce(1)) .put_account(SC_PMF, Account::new().code(code)), ); @@ -34,7 +34,7 @@ fn tx_returns_error_test() { let (status, message) = world .tx() - .from(OWNER) + .from(OWNER_ADDRESS) .to(SC_PMF) .typed(pmf_proxy::PanicMessageFeaturesProxy) .sc_panic() @@ -69,7 +69,7 @@ fn tx_expect_error_test() { world .tx() - .from(OWNER) + .from(OWNER_ADDRESS) .to(SC_PMF) .typed(pmf_proxy::PanicMessageFeaturesProxy) .sc_panic() diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index db1e011dcc..0c62e96110 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -5,10 +5,10 @@ use scenario_tester::*; const SC_SCENARIO_TESTER_PATH_EXPR: &str = "mxsc:output/scenario-tester.mxsc.json"; -const OWNER: TestAddress = TestAddress::new("owner"); -const OTHER: TestAddress = TestAddress::new("other"); -const SC_SCENARIO_TESTER: TestSCAddress = TestSCAddress::new("scenario-tester"); -const CODE_EXPR: MxscPath = MxscPath::new("output/scenario-tester.mxsc.json"); +const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); +const OTHER_ADDRESS: TestAddress = TestAddress::new("other"); +const SC_SCENARIO_TESTER_ADDRESS: TestSCAddress = TestSCAddress::new("scenario-tester"); +const CODE_PATH: MxscPath = MxscPath::new("output/scenario-tester.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -55,17 +55,17 @@ fn st_blackbox() { let new_address = world .tx() - .from(OWNER) + .from(OWNER_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .init(5u32) - .code(CODE_EXPR) + .code(CODE_PATH) .returns(ReturnsNewAddress) .run(); assert_eq!(new_address, st_contract.to_address()); let value = world .query() - .to(SC_SCENARIO_TESTER) + .to(SC_SCENARIO_TESTER_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .sum() .returns(ReturnsResultConv::::new()) @@ -74,8 +74,8 @@ fn st_blackbox() { world .tx() - .from(OWNER) - .to(SC_SCENARIO_TESTER) + .from(OWNER_ADDRESS) + .to(SC_SCENARIO_TESTER_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .add(1u32) .run(); @@ -90,8 +90,8 @@ fn st_blackbox() { world .tx() - .from(OTHER) - .to(SC_SCENARIO_TESTER) + .from(OTHER_ADDRESS) + .to(SC_SCENARIO_TESTER_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .add(1u32) .run(); From 796af0984d69aa0100af336ac59e762677ec7f31 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Fri, 26 Apr 2024 18:24:17 +0300 Subject: [PATCH 083/185] set local roles --- .../src/facade/world_tx/scenario_set_state.rs | 29 ++++++++++++--- .../scenario_set_account.rs | 1 - .../whitebox_legacy/contract_obj_wrapper.rs | 36 ++----------------- 3 files changed, 26 insertions(+), 40 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 3a8e5d2b30..3c9575ad5c 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -4,15 +4,12 @@ mod scenario_set_new_address; use crate::{ scenario::ScenarioRunner, - scenario_model::{ - AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, NewAddress, SetStateStep, - U64Value, - }, + scenario_model::{AddressKey, AddressValue, BigUintValue, NewAddress, SetStateStep, U64Value}, ScenarioWorld, }; use multiversx_chain_vm::world_mock::EsdtInstanceMetadata; -use multiversx_sc::codec::TopEncode; +use multiversx_sc::{codec::TopEncode, types::EsdtLocalRole}; use scenario_set_account::AccountItem; use scenario_set_block::BlockItem; use scenario_set_new_address::NewAddressItem; @@ -144,6 +141,28 @@ impl ScenarioWorld { } } + pub fn set_esdt_local_roles( + &mut self, + address: A, + token_id: &[u8], + roles: &[EsdtLocalRole], + ) where + AddressKey: From, + { + let accounts = &mut self.get_mut_state().accounts; + for (vm_address, account) in accounts.iter_mut() { + if vm_address == &AddressKey::from(address).to_vm_address() { + account.esdt.set_roles( + token_id.to_vec(), + roles + .iter() + .map(|role| role.as_role_name().to_vec()) + .collect(), + ); + } + } + } + pub fn current_block(&mut self) -> SetStateBuilder<'_, BlockItem> { self.empty_builder().current_block() } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index a695fa155a..d985cbed66 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -179,5 +179,4 @@ impl<'w> SetStateBuilder<'w, AccountItem> { self.item.account.owner = Some(AddressValue::from(owner_expr)); self } - } diff --git a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs index e7503cdcd6..26ee6bc1d4 100644 --- a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs +++ b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs @@ -287,15 +287,7 @@ impl BlockchainStateWrapper { _sc_identifier: Option>, _sc_mandos_path_expr: Option>, ) { - let vm_address = to_vm_address(address); - if self.world.get_state().account_exists(&vm_address) { - panic!("Address already used: {:?}", address_to_hex(address)); - } - - let account = Account::new().balance(egld_balance); - - self.world - .set_state_step(SetStateStep::new().put_account(address, account)); + self.world.create_account_raw(address, egld_balance); } // Has to be used before perfoming a deploy from a SC @@ -411,22 +403,7 @@ impl BlockchainStateWrapper { token_id: &[u8], roles: &[EsdtLocalRole], ) { - let vm_address = to_vm_address(address); - match self.world.get_mut_state().accounts.get_mut(&vm_address) { - Some(acc) => { - let mut roles_raw = Vec::new(); - for role in roles { - roles_raw.push(role.as_role_name().to_vec()); - } - acc.esdt.set_roles(token_id.to_vec(), roles_raw); - - self.add_mandos_set_account(address); - }, - None => panic!( - "set_esdt_local_roles: Account {:?} does not exist", - address_to_hex(address) - ), - } + self.world.set_esdt_local_roles(address, token_id, roles); } pub fn set_block_epoch(&mut self, block_epoch: u64) { @@ -796,15 +773,6 @@ fn address_to_hex(address: &Address) -> String { hex::encode(address.as_bytes()) } -// fn serialize_attributes(attributes: &T) -> Vec { -// let mut serialized_attributes = Vec::new(); -// if let Result::Err(err) = attributes.top_encode(&mut serialized_attributes) { -// panic!("Failed to encode attributes: {err:?}") -// } - -// serialized_attributes -// } - fn print_token_balance_raw( token_nonce: u64, token_balance: &num_bigint::BigUint, From 5a2cae8355985af209b55fae08b4293b35c7384e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 26 Apr 2024 18:57:40 +0300 Subject: [PATCH 084/185] set state via AnnotatedValue - account address --- .../tests/price_aggregator_blackbox_test.rs | 24 +++++------ .../scenario-tester/tests/st_blackbox_test.rs | 40 +++++++++---------- .../facade/world_tx/scenario_check_state.rs | 24 +++++++---- .../src/facade/world_tx/scenario_set_state.rs | 38 +++++++++++------- .../scenario/tx_to_step/step_annotation.rs | 12 ++++++ 5 files changed, 80 insertions(+), 58 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs index 5eca754439..05c9b161f7 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_blackbox_test.rs @@ -10,9 +10,6 @@ mod price_aggregator_proxy; const DECIMALS: u8 = 0; const EGLD_TICKER: &[u8] = b"EGLD"; const NR_ORACLES: usize = 4; -const OWNER_ADDRESS_EXPR: &str = "address:owner"; -const PRICE_AGGREGATOR_ADDRESS_EXPR: &str = "sc:price-aggregator"; -const PRICE_AGGREGATOR_PATH_EXPR: &str = "mxsc:output/multiversx-price-aggregator-sc.mxsc.json"; const SLASH_AMOUNT: u64 = 10; const SLASH_QUORUM: usize = 3; const STAKE_AMOUNT: u64 = 20; @@ -21,13 +18,15 @@ const USD_TICKER: &[u8] = b"USDC"; const PRICE_AGGREGATOR_ADDRESS: TestSCAddress = TestSCAddress::new("price-aggregator"); const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); +const PRICE_AGGREGATOR_PATH: MxscPath = + MxscPath::new("output/multiversx-price-aggregator-sc.mxsc.json"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); blockchain.set_current_dir_from_workspace("contracts/core/price-aggregator"); blockchain.register_contract( - PRICE_AGGREGATOR_PATH_EXPR, + PRICE_AGGREGATOR_PATH, multiversx_price_aggregator_sc::ContractBuilder, ); @@ -48,22 +47,23 @@ impl PriceAggregatorTestState { world.current_block().block_timestamp(100); world.set_state_step(SetStateStep::new()).new_address( - OWNER_ADDRESS_EXPR, + OWNER_ADDRESS, 1, - PRICE_AGGREGATOR_ADDRESS_EXPR, + PRICE_AGGREGATOR_ADDRESS, ); let mut oracles = Vec::new(); for i in 1..=NR_ORACLES { - let address_expr = format!("address:oracle{}", i); - let address_value = AddressValue::from(address_expr.as_str()); + let address_name = format!("oracle{i}"); + let address = TestAddress::new(&address_name); + let address_value = AddressValue::from(address); - world.account(address_expr).nonce(1).balance(STAKE_AMOUNT); + world.account(address).nonce(1).balance(STAKE_AMOUNT); oracles.push(address_value); } let price_aggregator_whitebox = WhiteboxContract::new( - PRICE_AGGREGATOR_ADDRESS_EXPR, + PRICE_AGGREGATOR_ADDRESS, multiversx_price_aggregator_sc::contract_obj, ); @@ -75,8 +75,6 @@ impl PriceAggregatorTestState { } fn deploy(&mut self) -> &mut Self { - let price_aggregator_code = self.world.code_expression(PRICE_AGGREGATOR_PATH_EXPR); - let oracles = MultiValueVec::from( self.oracles .iter() @@ -96,7 +94,7 @@ impl PriceAggregatorTestState { SUBMISSION_COUNT, oracles, ) - .code(price_aggregator_code) + .code(PRICE_AGGREGATOR_PATH) .run(); for address in self.oracles.iter() { diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 0c62e96110..fc2dc44fde 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -7,7 +7,7 @@ const SC_SCENARIO_TESTER_PATH_EXPR: &str = "mxsc:output/scenario-tester.mxsc.jso const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const OTHER_ADDRESS: TestAddress = TestAddress::new("other"); -const SC_SCENARIO_TESTER_ADDRESS: TestSCAddress = TestSCAddress::new("scenario-tester"); +const ST_ADDRESS: TestSCAddress = TestSCAddress::new("scenario-tester"); const CODE_PATH: MxscPath = MxscPath::new("output/scenario-tester.mxsc.json"); fn world() -> ScenarioWorld { @@ -24,34 +24,30 @@ fn world() -> ScenarioWorld { #[test] fn st_blackbox() { let mut world = world(); - let owner_address = "address:owner"; - let other_address = "address:other"; - - let st_contract = ContractInfo::>::new("sc:scenario-tester"); world.start_trace(); world - .account(owner_address) + .account(OWNER_ADDRESS) .nonce(1) .balance("100") - .account(other_address) + .account(OTHER_ADDRESS) .nonce(2) .balance("300") .esdt_balance("str:TOKEN-123456", "500") .commit(); world - .check_account(owner_address) + .check_account(OWNER_ADDRESS) .nonce("1") .balance("100") - .check_account(other_address) + .check_account(OTHER_ADDRESS) .nonce("2") .balance("300") .esdt_balance("str:TOKEN-123456", "500") .commit(); - world.new_address(owner_address, 1, "sc:scenario-tester"); + world.new_address(OWNER_ADDRESS, 1, ST_ADDRESS); let new_address = world .tx() @@ -61,11 +57,11 @@ fn st_blackbox() { .code(CODE_PATH) .returns(ReturnsNewAddress) .run(); - assert_eq!(new_address, st_contract.to_address()); + assert_eq!(new_address, ST_ADDRESS.to_address()); let value = world .query() - .to(SC_SCENARIO_TESTER_ADDRESS) + .to(ST_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .sum() .returns(ReturnsResultConv::::new()) @@ -75,23 +71,23 @@ fn st_blackbox() { world .tx() .from(OWNER_ADDRESS) - .to(SC_SCENARIO_TESTER_ADDRESS) + .to(ST_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .add(1u32) .run(); world - .check_account(owner_address) + .check_account(OWNER_ADDRESS) .nonce("3") .balance("100") - .check_account(st_contract) + .check_account(ST_ADDRESS) .check_storage("str:sum", "6") .commit(); world .tx() .from(OTHER_ADDRESS) - .to(SC_SCENARIO_TESTER_ADDRESS) + .to(ST_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .add(1u32) .run(); @@ -102,12 +98,12 @@ fn st_blackbox() { #[test] fn set_state_test() { let mut world = world(); - let first = "address:first"; - let second = "address:second"; - let third = "address:third"; - let fourth = "address:fourth"; - let fifth = "address:fifth"; - let sixth = "address:sixth"; + let first = TestAddress::new("first"); + let second = TestAddress::new("second"); + let third = TestAddress::new("third"); + let fourth = TestAddress::new("fourth"); + let fifth = TestAddress::new("fifth"); + let sixth = TestAddress::new("sixth"); world.start_trace(); diff --git a/framework/scenario/src/facade/world_tx/scenario_check_state.rs b/framework/scenario/src/facade/world_tx/scenario_check_state.rs index ffb4a2754b..7c63ddd0b6 100644 --- a/framework/scenario/src/facade/world_tx/scenario_check_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_check_state.rs @@ -1,24 +1,30 @@ use std::collections::{btree_map::Entry, BTreeMap}; use multiversx_chain_scenario_format::interpret_trait::{InterpretableFrom, InterpreterContext}; -use multiversx_sc::{codec::test_util::top_encode_to_vec_u8_or_panic, proxy_imports::TopEncode}; +use multiversx_sc::{ + codec::test_util::top_encode_to_vec_u8_or_panic, + proxy_imports::TopEncode, + types::{AnnotatedValue, ManagedAddress}, +}; use crate::{ - scenario::ScenarioRunner, + api::StaticApi, + scenario::{tx_to_step::address_annotated, ScenarioRunner}, scenario_model::{ AddressKey, BigUintValue, BytesKey, BytesValue, CheckAccount, CheckEsdt, CheckEsdtData, CheckEsdtInstances, CheckEsdtMap, CheckEsdtMapContents, CheckStateStep, CheckStorage, CheckStorageDetails, CheckValue, U64Value, }, - ScenarioWorld, + ScenarioTxEnvData, ScenarioWorld, }; impl ScenarioWorld { pub fn check_account(&mut self, address: A) -> CheckStateBuilder<'_> where - AddressKey: From, + A: AnnotatedValue>, { - CheckStateBuilder::new(self, address.into()) + let address_value = address_annotated(&self.new_env_data(), &address); + CheckStateBuilder::new(self, address_value.into()) } } @@ -42,12 +48,14 @@ impl<'w> CheckStateBuilder<'w> { } /// Starts building of a new account. - pub fn check_account(mut self, address_expr: A) -> Self + pub fn check_account(mut self, address: A) -> Self where - AddressKey: From, + A: AnnotatedValue>, { self.add_current_acount(); - self.reset_account(address_expr.into()); + let env = self.world.new_env_data(); + let address_value = address_annotated(&env, &address); + self.reset_account(address_value.into()); self } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 9376050f58..8bfccc3a43 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -3,11 +3,16 @@ mod scenario_set_block; mod scenario_set_new_address; use crate::{ - scenario::ScenarioRunner, - scenario_model::{AddressKey, AddressValue, NewAddress, SetStateStep, U64Value}, - ScenarioWorld, + imports::StaticApi, + scenario::{ + tx_to_step::{address_annotated, u64_annotated}, + ScenarioRunner, + }, + scenario_model::{AddressKey, NewAddress, SetStateStep}, + ScenarioTxEnvData, ScenarioWorld, }; +use multiversx_sc::types::{AnnotatedValue, ManagedAddress}; use scenario_set_account::AccountItem; use scenario_set_block::BlockItem; use scenario_set_new_address::NewAddressItem; @@ -22,7 +27,7 @@ impl ScenarioWorld { pub fn account(&mut self, address_expr: A) -> SetStateBuilder<'_, AccountItem> where - AddressKey: From, + A: AnnotatedValue>, { self.empty_builder().account(address_expr) } @@ -34,9 +39,9 @@ impl ScenarioWorld { new_address_expr: NA, ) -> SetStateBuilder<'_, NewAddressItem> where - AddressValue: From, - U64Value: From, - AddressValue: From, + CA: AnnotatedValue>, + CN: AnnotatedValue, + NA: AnnotatedValue>, { self.empty_builder() .new_address(creator_address_expr, creator_nonce_expr, new_address_expr) @@ -105,11 +110,13 @@ where /// Starts building of a new account. pub fn account(mut self, address_expr: A) -> SetStateBuilder<'w, AccountItem> where - AddressKey: From, + A: AnnotatedValue>, { let mut base = core::mem::take(&mut self.base).unwrap(); + let env = base.world.new_env_data(); + let address_value = address_annotated(&env, &address_expr); self.item.commit_to_step(&mut base.set_state_step); - let item = base.start_account(address_expr.into()); + let item = base.start_account(address_value.into()); SetStateBuilder { base: Some(base), item, @@ -123,19 +130,20 @@ where new_address_expr: NA, ) -> SetStateBuilder<'w, NewAddressItem> where - AddressValue: From, - U64Value: From, - AddressValue: From, + CA: AnnotatedValue>, + CN: AnnotatedValue, + NA: AnnotatedValue>, { let mut base = core::mem::take(&mut self.base).unwrap(); self.item.commit_to_step(&mut base.set_state_step); + let env = base.world.new_env_data(); SetStateBuilder { base: Some(base), item: NewAddressItem { new_address: NewAddress { - creator_address: AddressValue::from(creator_address_expr), - creator_nonce: U64Value::from(creator_nonce_expr), - new_address: AddressValue::from(new_address_expr), + creator_address: address_annotated(&env, &creator_address_expr), + creator_nonce: u64_annotated(&env, &creator_nonce_expr), + new_address: address_annotated(&env, &new_address_expr), }, }, } diff --git a/framework/scenario/src/scenario/tx_to_step/step_annotation.rs b/framework/scenario/src/scenario/tx_to_step/step_annotation.rs index c341427ab7..3e0901b838 100644 --- a/framework/scenario/src/scenario/tx_to_step/step_annotation.rs +++ b/framework/scenario/src/scenario/tx_to_step/step_annotation.rs @@ -15,6 +15,18 @@ where } } +pub fn u64_annotated(env: &Env, from: &Num) -> U64Value +where + Env: TxEnv, + Num: AnnotatedValue, +{ + let annotation = from.annotation(env).to_string(); + U64Value { + value: from.to_value(env), + original: ValueSubTree::Str(annotation), + } +} + pub fn code_annotated(env: &Env, code: Code) -> BytesValue where Env: TxEnv, From 1276f1756b83c211cf5b5f20cb89a1b14ef00cf8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 26 Apr 2024 20:22:18 +0300 Subject: [PATCH 085/185] set state via AnnotatedValue - balance, nonce --- .../tests/crowdfunding_esdt_blackbox_test.rs | 2 +- .../multisig/tests/multisig_blackbox_test.rs | 11 ++--- .../rewards_distribution_integration_test.rs | 7 ++-- .../scenario-tester/tests/st_blackbox_test.rs | 40 +++++++++---------- .../annotated/annotated_impl_big_uint.rs | 13 ++++++ .../facade/world_tx/scenario_check_state.rs | 31 +++++++------- .../src/facade/world_tx/scenario_set_state.rs | 4 ++ .../scenario_set_account.rs | 23 +++++++---- .../scenario/tx_to_step/step_annotation.rs | 38 ++++++++++++++---- 9 files changed, 108 insertions(+), 61 deletions(-) diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index b46225a396..318c2f020b 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -31,7 +31,7 @@ impl CrowdfundingESDTTestState { .nonce(1) .account(FIRST_USER_ADDRESS) .nonce(1) - .balance("1000") + .balance(1000) .esdt_balance(CF_TOKEN_ID_EXPR, "1000") .account(SECOND_USER_ADDRESS) .nonce(1) diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 7444700e31..714adf2f9e 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -13,7 +13,7 @@ const MULTISIG_ADDRESS: TestSCAddress = TestSCAddress::new("multisig"); const MULTISIG_CODE_PATH: MxscPath = MxscPath::new("output/multisig.mxsc.json"); const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const PROPOSER_ADDRESS: TestAddress = TestAddress::new("proposer"); -const PROPOSER_BALANCE_EXPR: &str = "100,000,000"; +const PROPOSER_BALANCE: u64 = 100_000_000; const QUORUM_SIZE: usize = 1; fn world() -> ScenarioWorld { @@ -38,7 +38,7 @@ impl MultisigTestState { .nonce(1) .account(PROPOSER_ADDRESS) .nonce(1) - .balance(PROPOSER_BALANCE_EXPR) + .balance(PROPOSER_BALANCE) .account(BOARD_MEMBER_ADDRESS) .nonce(1) .account(ADDER_OWNER_ADDRESS) @@ -438,10 +438,7 @@ fn test_transfer_execute_to_user() { .egld(amount) .run(); - state - .world - .check_account(MULTISIG_ADDRESS) - .balance(amount.to_string().as_str()); + state.world.check_account(MULTISIG_ADDRESS).balance(amount); // failed attempt state @@ -478,7 +475,7 @@ fn test_transfer_execute_to_user() { state .world .check_account(new_user_address_expr) - .balance(amount.to_string().as_str()); + .balance(amount); } #[test] diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs index 8acc4bada8..a99ecf7559 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs @@ -169,7 +169,7 @@ fn test_raffle_and_claim() { .world .account(ALICE_ADDRESS) .nonce(1) - .balance("2_070_000_000"); + .balance(2_070_000_000); for nft_nonce in nft_nonces { account_setter = account_setter.esdt_nft_balance( NFT_TOKEN_ID_EXPR, @@ -297,12 +297,11 @@ fn test_raffle_and_claim() { // confirm the received amount matches the sum of the queried rewards let alice_balance_after_claim: u64 = expected_rewards.iter().sum(); - let balance_expr: &str = &alice_balance_after_claim.to_string(); state .world .check_account(ALICE_ADDRESS) - .balance(balance_expr); + .balance(alice_balance_after_claim); // a second claim with the same nfts should succeed, but return no more rewards let mut reward_tokens: MultiValueEncoded< @@ -323,5 +322,5 @@ fn test_raffle_and_claim() { state .world .check_account(ALICE_ADDRESS) - .balance(balance_expr); + .balance(alice_balance_after_claim); } diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index fc2dc44fde..ca32c471e4 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -30,20 +30,20 @@ fn st_blackbox() { world .account(OWNER_ADDRESS) .nonce(1) - .balance("100") + .balance(100) .account(OTHER_ADDRESS) .nonce(2) - .balance("300") + .balance(300) .esdt_balance("str:TOKEN-123456", "500") .commit(); world .check_account(OWNER_ADDRESS) - .nonce("1") - .balance("100") + .nonce(1) + .balance(100) .check_account(OTHER_ADDRESS) - .nonce("2") - .balance("300") + .nonce(2) + .balance(300) .esdt_balance("str:TOKEN-123456", "500") .commit(); @@ -78,8 +78,8 @@ fn st_blackbox() { world .check_account(OWNER_ADDRESS) - .nonce("3") - .balance("100") + .nonce(3) + .balance(100) .check_account(ST_ADDRESS) .check_storage("str:sum", "6") .commit(); @@ -110,34 +110,34 @@ fn set_state_test() { world .account(first) .nonce(1) - .balance("100") + .balance(100) .account(second) .nonce(2) - .balance("300") + .balance(300) .esdt_balance("str:TOKEN-123456", "500") .commit(); world .check_account(first) .nonce(1) - .balance("100") + .balance(100) .check_account(second) .nonce(2) - .balance("300") + .balance(300) .esdt_balance("str:TOKEN-123456", "500") .commit(); world .account(third) .nonce(3) - .balance("50") + .balance(50) .esdt_nft_balance("str:NFT-123456", "2", "1", Some(Vec::::new())) .commit(); world .check_account(third) .nonce(3) - .balance("50") + .balance(50) .esdt_nft_balance_and_attributes("str:NFT-123456", "2", "1", Some(Vec::::new())) .commit(); @@ -145,30 +145,30 @@ fn set_state_test() { world .account(fourth) .nonce(4) - .balance("400") + .balance(400) .account(fifth) .nonce(5) - .balance("250") + .balance(250) .esdt_balance("str:TOKEN-123456", "2"); world .check_account(fourth) .nonce(4) - .balance("400") + .balance(400) .check_account(fifth) .nonce(5) - .balance("250") + .balance(250) .esdt_balance("str:TOKEN-123456", "2"); world .account(sixth) .nonce(6) - .balance("600") + .balance(600) .esdt_balance("str:TOKEN-123456", "60"); world .check_account(sixth) .nonce(6) - .balance("600") + .balance(600) .esdt_balance("str:TOKEN-123456", "60"); } diff --git a/framework/base/src/types/interaction/annotated/annotated_impl_big_uint.rs b/framework/base/src/types/interaction/annotated/annotated_impl_big_uint.rs index ea2250399d..685af7fdb3 100644 --- a/framework/base/src/types/interaction/annotated/annotated_impl_big_uint.rs +++ b/framework/base/src/types/interaction/annotated/annotated_impl_big_uint.rs @@ -87,6 +87,19 @@ where } } +impl AnnotatedValue> for i32 +where + Env: TxEnv, +{ + fn annotation(&self, _env: &Env) -> ManagedBuffer { + BigUint::from(*self as u64).to_display() + } + + fn to_value(&self, _env: &Env) -> BigUint { + BigUint::from(*self as u64) + } +} + impl AnnotatedValue> for () where Env: TxEnv, diff --git a/framework/scenario/src/facade/world_tx/scenario_check_state.rs b/framework/scenario/src/facade/world_tx/scenario_check_state.rs index 7c63ddd0b6..fd7d640e10 100644 --- a/framework/scenario/src/facade/world_tx/scenario_check_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_check_state.rs @@ -4,12 +4,15 @@ use multiversx_chain_scenario_format::interpret_trait::{InterpretableFrom, Inter use multiversx_sc::{ codec::test_util::top_encode_to_vec_u8_or_panic, proxy_imports::TopEncode, - types::{AnnotatedValue, ManagedAddress}, + types::{AnnotatedValue, BigUint, ManagedAddress}, }; use crate::{ api::StaticApi, - scenario::{tx_to_step::address_annotated, ScenarioRunner}, + scenario::{ + tx_to_step::{address_annotated, big_uint_annotated, u64_annotated}, + ScenarioRunner, + }, scenario_model::{ AddressKey, BigUintValue, BytesKey, BytesValue, CheckAccount, CheckEsdt, CheckEsdtData, CheckEsdtInstances, CheckEsdtMap, CheckEsdtMapContents, CheckStateStep, CheckStorage, @@ -47,13 +50,17 @@ impl<'w> CheckStateBuilder<'w> { builder } + fn new_env_data(&self) -> ScenarioTxEnvData { + self.world.new_env_data() + } + /// Starts building of a new account. pub fn check_account(mut self, address: A) -> Self where A: AnnotatedValue>, { self.add_current_acount(); - let env = self.world.new_env_data(); + let env = self.new_env_data(); let address_value = address_annotated(&env, &address); self.reset_account(address_value.into()); self @@ -86,23 +93,19 @@ impl<'w> CheckStateBuilder<'w> { pub fn nonce(mut self, nonce: V) -> Self where - U64Value: InterpretableFrom, + V: AnnotatedValue, { - self.current_account.nonce = CheckValue::Equal(U64Value::interpret_from( - nonce, - &InterpreterContext::default(), - )); + let env = self.new_env_data(); + self.current_account.nonce = CheckValue::Equal(u64_annotated(&env, &nonce)); self } - pub fn balance(mut self, balance_expr: V) -> Self + pub fn balance(mut self, balance: V) -> Self where - BigUintValue: InterpretableFrom, + V: AnnotatedValue>, { - self.current_account.balance = CheckValue::Equal(BigUintValue::interpret_from( - balance_expr, - &InterpreterContext::default(), - )); + let env = self.new_env_data(); + self.current_account.balance = CheckValue::Equal(big_uint_annotated(&env, &balance)); self } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 8bfccc3a43..b4c3fc6681 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -107,6 +107,10 @@ impl<'w, Item> SetStateBuilder<'w, Item> where Item: SetStateBuilderItem, { + fn new_env_data(&self) -> ScenarioTxEnvData { + self.base.as_ref().unwrap().world.new_env_data() + } + /// Starts building of a new account. pub fn account(mut self, address_expr: A) -> SetStateBuilder<'w, AccountItem> where diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index d985cbed66..e817b09c57 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -1,8 +1,15 @@ use std::collections::btree_map::Entry; -use crate::scenario_model::{ - Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, - SetStateStep, U64Value, +use multiversx_sc::types::{AnnotatedValue, BigUint}; + +use crate::{ + imports::StaticApi, + scenario::tx_to_step::{big_uint_annotated, u64_annotated}, + scenario_model::{ + Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, + SetStateStep, U64Value, + }, + ScenarioTxEnvData, }; use super::{SetStateBuilder, SetStateBuilderItem}; @@ -32,17 +39,19 @@ impl SetStateBuilderItem for AccountItem { impl<'w> SetStateBuilder<'w, AccountItem> { pub fn nonce(mut self, nonce: V) -> Self where - U64Value: From, + V: AnnotatedValue, { - self.item.account.nonce = Some(U64Value::from(nonce)); + let env = self.new_env_data(); + self.item.account.nonce = Some(u64_annotated(&env, &nonce)); self } pub fn balance(mut self, balance_expr: V) -> Self where - BigUintValue: From, + V: AnnotatedValue>, { - self.item.account.balance = Some(BigUintValue::from(balance_expr)); + let env = self.new_env_data(); + self.item.account.balance = Some(big_uint_annotated(&env, &balance_expr)); self } diff --git a/framework/scenario/src/scenario/tx_to_step/step_annotation.rs b/framework/scenario/src/scenario/tx_to_step/step_annotation.rs index 3e0901b838..186d835344 100644 --- a/framework/scenario/src/scenario/tx_to_step/step_annotation.rs +++ b/framework/scenario/src/scenario/tx_to_step/step_annotation.rs @@ -1,7 +1,9 @@ use multiversx_chain_scenario_format::serde_raw::ValueSubTree; -use multiversx_sc::types::{AnnotatedValue, Code, ManagedAddress, TxCodeValue, TxEnv, TxGas}; +use multiversx_sc::types::{ + AnnotatedValue, BigUint, Code, ManagedAddress, ManagedBuffer, TxCodeValue, TxEnv, TxGas, +}; -use crate::scenario_model::{AddressValue, BytesValue, U64Value}; +use crate::scenario_model::{AddressValue, BigUintValue, BytesValue, U64Value}; pub fn address_annotated(env: &Env, from: &Addr) -> AddressValue where @@ -15,10 +17,10 @@ where } } -pub fn u64_annotated(env: &Env, from: &Num) -> U64Value +pub fn u64_annotated(env: &Env, from: &T) -> U64Value where Env: TxEnv, - Num: AnnotatedValue, + T: AnnotatedValue, { let annotation = from.annotation(env).to_string(); U64Value { @@ -27,18 +29,38 @@ where } } -pub fn code_annotated(env: &Env, code: Code) -> BytesValue +pub fn big_uint_annotated(env: &Env, from: &T) -> BigUintValue where Env: TxEnv, - CodeValue: TxCodeValue, + T: AnnotatedValue>, { - let annotation = code.0.annotation(env).to_string(); + let annotation = from.annotation(env).to_string(); + BigUintValue { + value: from.to_value(env).to_alloc(), + original: ValueSubTree::Str(annotation), + } +} + +pub fn bytes_annotated(env: &Env, value: T) -> BytesValue +where + Env: TxEnv, + T: AnnotatedValue>, +{ + let annotation = value.annotation(env).to_string(); BytesValue { - value: code.0.into_value(env).to_vec(), + value: value.into_value(env).to_vec(), original: ValueSubTree::Str(annotation), } } +pub fn code_annotated(env: &Env, code: Code) -> BytesValue +where + Env: TxEnv, + CodeValue: TxCodeValue, +{ + bytes_annotated(env, code.0) +} + pub fn gas_annotated(env: &Env, gas: Gas) -> U64Value where Env: TxEnv, From 88fb5535319864452c74639178ea296711c1fd0c Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 27 Apr 2024 13:09:33 +0300 Subject: [PATCH 086/185] simplified small number nested encode/decode --- data/codec/src/impl_for_types/impl_num_signed.rs | 15 ++++++++++++--- .../codec/src/impl_for_types/impl_num_unsigned.rs | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/data/codec/src/impl_for_types/impl_num_signed.rs b/data/codec/src/impl_for_types/impl_num_signed.rs index 50cb85614e..f7901fc599 100644 --- a/data/codec/src/impl_for_types/impl_num_signed.rs +++ b/data/codec/src/impl_for_types/impl_num_signed.rs @@ -1,5 +1,5 @@ use crate::{ - dep_encode_num_mimic, num_conv::universal_decode_number, DecodeError, DecodeErrorHandler, + dep_encode_num_mimic, DecodeError, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, }; @@ -42,7 +42,7 @@ macro_rules! dep_decode_num_signed { { let mut bytes = [0u8; $num_bytes]; input.read_into(&mut bytes[..], h)?; - let num = universal_decode_number(&bytes[..], true) as $ty; + let num = <$ty>::from_be_bytes(bytes); Ok(num) } } @@ -52,9 +52,18 @@ macro_rules! dep_decode_num_signed { dep_decode_num_signed!(i8, 1); dep_decode_num_signed!(i16, 2); dep_decode_num_signed!(i32, 4); -dep_decode_num_signed!(isize, 4); dep_decode_num_signed!(i64, 8); +impl NestedDecode for isize { + fn dep_decode_or_handle_err(input: &mut I, h: H) -> Result + where + I: NestedDecodeInput, + H: DecodeErrorHandler, + { + i32::dep_decode_or_handle_err(input, h).map(|num| num as isize) + } +} + macro_rules! top_decode_num_signed { ($ty:ty, $bounds_ty:ty) => { impl TopDecode for $ty { diff --git a/data/codec/src/impl_for_types/impl_num_unsigned.rs b/data/codec/src/impl_for_types/impl_num_unsigned.rs index b9e98051fc..b6515d6e36 100644 --- a/data/codec/src/impl_for_types/impl_num_unsigned.rs +++ b/data/codec/src/impl_for_types/impl_num_unsigned.rs @@ -1,5 +1,5 @@ use crate::{ - dep_encode_num_mimic, num_conv::universal_decode_number, DecodeError, DecodeErrorHandler, + dep_encode_num_mimic, DecodeError, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, }; @@ -102,7 +102,7 @@ macro_rules! dep_decode_num_unsigned { { let mut bytes = [0u8; $num_bytes]; input.read_into(&mut bytes[..], h)?; - let num = universal_decode_number(&bytes[..], false) as $ty; + let num = <$ty>::from_be_bytes(bytes); Ok(num) } } @@ -111,9 +111,18 @@ macro_rules! dep_decode_num_unsigned { dep_decode_num_unsigned!(u16, 2); dep_decode_num_unsigned!(u32, 4); -dep_decode_num_unsigned!(usize, 4); dep_decode_num_unsigned!(u64, 8); +impl NestedDecode for usize { + fn dep_decode_or_handle_err(input: &mut I, h: H) -> Result + where + I: NestedDecodeInput, + H: DecodeErrorHandler, + { + u32::dep_decode_or_handle_err(input, h).map(|num| num as usize) + } +} + macro_rules! top_decode_num_unsigned { ($ty:ty, $bounds_ty:ty) => { impl TopDecode for $ty { From 04a10d98b598081fb2f33f20bc49a8ad93b327c2 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sun, 28 Apr 2024 01:31:39 +0300 Subject: [PATCH 087/185] abi fix - OperationCompletionStatus --- .../abi_tester_expected_main.abi.json | 27 +++++++++++++++++++ .../abi_tester_expected_view.abi.json | 17 ++++++++++++ .../feature-tests/abi-tester/src/abi_proxy.rs | 18 +++++++++++-- .../abi-tester/src/abi_tester.rs | 5 ++++ .../feature-tests/abi-tester/wasm/src/lib.rs | 5 ++-- .../types/io/operation_completion_status.rs | 4 +++ 6 files changed, 72 insertions(+), 4 deletions(-) diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json index a9bcc8d151..77d8423bfb 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json @@ -379,6 +379,16 @@ } ] }, + { + "name": "operation_completion_status", + "mutability": "readonly", + "inputs": [], + "outputs": [ + { + "type": "OperationCompletionStatus" + } + ] + }, { "name": "payable_egld", "mutability": "mutable", @@ -926,6 +936,23 @@ "type": "OnlyShowsUpAsNested10" } ] + }, + "OperationCompletionStatus": { + "type": "explicit-enum", + "variants": [ + { + "docs": [ + "indicates that operation was completed" + ], + "name": "completed" + }, + { + "docs": [ + "indicates that operation was interrupted prematurely, due to low gas" + ], + "name": "interrupted" + } + ] } } } diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json index fcc5546404..f678f60c87 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json @@ -587,6 +587,23 @@ "type": "OnlyShowsUpAsNested10" } ] + }, + "OperationCompletionStatus": { + "type": "explicit-enum", + "variants": [ + { + "docs": [ + "indicates that operation was completed" + ], + "name": "completed" + }, + { + "docs": [ + "indicates that operation was interrupted prematurely, due to low gas" + ], + "name": "interrupted" + } + ] } } } diff --git a/contracts/feature-tests/abi-tester/src/abi_proxy.rs b/contracts/feature-tests/abi-tester/src/abi_proxy.rs index 66548a21d8..feea268d49 100644 --- a/contracts/feature-tests/abi-tester/src/abi_proxy.rs +++ b/contracts/feature-tests/abi-tester/src/abi_proxy.rs @@ -340,6 +340,14 @@ where .original_result() } + pub fn operation_completion_status( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("operation_completion_status") + .original_result() + } + pub fn payable_egld( self, ) -> TxProxyCall { @@ -415,7 +423,10 @@ pub enum AbiEnum { Nothing, Something(i32), SomethingMore(u8, OnlyShowsUpAsNested08), - SomeStruct { a: u16, b: OnlyShowsUpAsNested09 }, + SomeStruct { + a: u16, + b: OnlyShowsUpAsNested09, + }, } #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] @@ -506,5 +517,8 @@ pub enum ExplicitDiscriminantMixed { Unit, Tuple(u16), Five, - Struct { a: u8, b: u16 }, + Struct { + a: u8, + b: u16, + }, } diff --git a/contracts/feature-tests/abi-tester/src/abi_tester.rs b/contracts/feature-tests/abi-tester/src/abi_tester.rs index 1d7226c0f9..22b4c2e26d 100644 --- a/contracts/feature-tests/abi-tester/src/abi_tester.rs +++ b/contracts/feature-tests/abi-tester/src/abi_tester.rs @@ -165,6 +165,11 @@ pub trait AbiTester { None } + #[view] + fn operation_completion_status(&self) -> OperationCompletionStatus { + OperationCompletionStatus::Completed + } + #[endpoint] #[payable("EGLD")] fn payable_egld(&self) {} diff --git a/contracts/feature-tests/abi-tester/wasm/src/lib.rs b/contracts/feature-tests/abi-tester/wasm/src/lib.rs index b8183ee1af..cf9aa68978 100644 --- a/contracts/feature-tests/abi-tester/wasm/src/lib.rs +++ b/contracts/feature-tests/abi-tester/wasm/src/lib.rs @@ -6,9 +6,9 @@ // Init: 1 // Upgrade: 1 -// Endpoints: 27 +// Endpoints: 28 // Async Callback (empty): 1 -// Total number of exported functions: 30 +// Total number of exported functions: 31 #![no_std] #![allow(internal_features)] @@ -46,6 +46,7 @@ multiversx_sc_wasm_adapter::endpoints! { item_for_ref => item_for_ref item_for_slice => item_for_slice item_for_option => item_for_option + operation_completion_status => operation_completion_status payable_egld => payable_egld payable_some_token => payable_some_token payable_any_token => payable_any_token diff --git a/framework/base/src/types/io/operation_completion_status.rs b/framework/base/src/types/io/operation_completion_status.rs index b69af9624a..7e8327f392 100644 --- a/framework/base/src/types/io/operation_completion_status.rs +++ b/framework/base/src/types/io/operation_completion_status.rs @@ -80,6 +80,10 @@ impl TypeAbi for OperationCompletionStatus { TypeName::from("OperationCompletionStatus") } + fn type_name_rust() -> TypeName { + TypeName::from("OperationCompletionStatus") + } + fn provide_type_descriptions(accumulator: &mut TDC) { let type_names = Self::type_names(); From c8dfdbe3ebd01c3ae5280f3e07ff933f1606ad35 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sun, 28 Apr 2024 02:37:42 +0300 Subject: [PATCH 088/185] set state via AnnotatedValue - fungible ESDT --- .../tests/crowdfunding_esdt_blackbox_test.rs | 32 +++++------ .../scenario-tester/tests/st_blackbox_test.rs | 17 +++--- .../base/src/types/interaction/annotated.rs | 1 + .../annotated_impl_token_identifier.rs | 56 +++++++++++++++++++ framework/base/src/types/interaction/expr.rs | 2 + .../interaction/expr/test_token_identifier.rs | 50 +++++++++++++++++ .../facade/world_tx/scenario_check_state.rs | 25 +++++---- .../scenario_set_account.rs | 23 ++++---- .../scenario/tx_to_step/step_annotation.rs | 17 +++++- 9 files changed, 176 insertions(+), 47 deletions(-) create mode 100644 framework/base/src/types/interaction/annotated/annotated_impl_token_identifier.rs create mode 100644 framework/base/src/types/interaction/expr/test_token_identifier.rs diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 318c2f020b..8b895e42a3 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -3,8 +3,7 @@ use crowdfunding_esdt::crowdfunding_esdt_proxy; use multiversx_sc_scenario::imports::*; const CF_DEADLINE: u64 = 7 * 24 * 60 * 60; // 1 week in seconds -const CF_TOKEN_ID: &[u8] = b"CROWD-123456"; -const CF_TOKEN_ID_EXPR: &str = "str:CROWD-123456"; +const CF_TOKEN_ID: TestTokenIdentifier = TestTokenIdentifier::new("CROWD-123456"); const FIRST_USER_ADDRESS: TestAddress = TestAddress::new("first-user"); const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const SECOND_USER_ADDRESS: TestAddress = TestAddress::new("second-user"); @@ -26,18 +25,18 @@ impl CrowdfundingESDTTestState { fn new() -> Self { let mut world = world(); + world.account(OWNER_ADDRESS).nonce(1); + world - .account(OWNER_ADDRESS) - .nonce(1) .account(FIRST_USER_ADDRESS) .nonce(1) .balance(1000) - .esdt_balance(CF_TOKEN_ID_EXPR, "1000") + .esdt_balance(CF_TOKEN_ID, 1000); + + world .account(SECOND_USER_ADDRESS) .nonce(1) - .esdt_balance(CF_TOKEN_ID_EXPR, "1000"); - - world.new_address(OWNER_ADDRESS, 1, CROWDFUNDING_ADDRESS); + .esdt_balance(CF_TOKEN_ID, 1000); Self { world } } @@ -53,6 +52,7 @@ impl CrowdfundingESDTTestState { EgldOrEsdtTokenIdentifier::esdt(CF_TOKEN_ID), ) .code(CODE_PATH) + .new_address(CROWDFUNDING_ADDRESS) .run(); } @@ -101,10 +101,10 @@ impl CrowdfundingESDTTestState { .run(); } - fn check_esdt_balance(&mut self, address: TestAddress, balance_expr: &str) { + fn check_esdt_balance(&mut self, address: TestAddress, balance: u64) { self.world .check_account(address) - .esdt_balance(CF_TOKEN_ID_EXPR, balance_expr); + .esdt_balance(CF_TOKEN_ID, balance); } fn set_block_timestamp(&mut self, block_timestamp_expr: u64) { @@ -181,9 +181,9 @@ fn test_successful_cf() { // owner claim state.claim(OWNER_ADDRESS); - state.check_esdt_balance(OWNER_ADDRESS, "2_000"); - state.check_esdt_balance(FIRST_USER_ADDRESS, "0"); - state.check_esdt_balance(SECOND_USER_ADDRESS, "0"); + state.check_esdt_balance(OWNER_ADDRESS, 2000); + state.check_esdt_balance(FIRST_USER_ADDRESS, 0); + state.check_esdt_balance(SECOND_USER_ADDRESS, 0); } #[test] @@ -211,7 +211,7 @@ fn test_failed_cf() { // second user claim state.claim(SECOND_USER_ADDRESS); - state.check_esdt_balance(OWNER_ADDRESS, "0"); - state.check_esdt_balance(FIRST_USER_ADDRESS, "1_000"); - state.check_esdt_balance(SECOND_USER_ADDRESS, "1_000"); + state.check_esdt_balance(OWNER_ADDRESS, 0); + state.check_esdt_balance(FIRST_USER_ADDRESS, 1000); + state.check_esdt_balance(SECOND_USER_ADDRESS, 1000); } diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index ca32c471e4..62630a0289 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -9,6 +9,7 @@ const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const OTHER_ADDRESS: TestAddress = TestAddress::new("other"); const ST_ADDRESS: TestSCAddress = TestSCAddress::new("scenario-tester"); const CODE_PATH: MxscPath = MxscPath::new("output/scenario-tester.mxsc.json"); +const TOKEN_ID: TestTokenIdentifier = TestTokenIdentifier::new("TOKEN-123456"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -34,7 +35,7 @@ fn st_blackbox() { .account(OTHER_ADDRESS) .nonce(2) .balance(300) - .esdt_balance("str:TOKEN-123456", "500") + .esdt_balance(TOKEN_ID, 500) .commit(); world @@ -44,7 +45,7 @@ fn st_blackbox() { .check_account(OTHER_ADDRESS) .nonce(2) .balance(300) - .esdt_balance("str:TOKEN-123456", "500") + .esdt_balance(TOKEN_ID, 500) .commit(); world.new_address(OWNER_ADDRESS, 1, ST_ADDRESS); @@ -114,7 +115,7 @@ fn set_state_test() { .account(second) .nonce(2) .balance(300) - .esdt_balance("str:TOKEN-123456", "500") + .esdt_balance(TOKEN_ID, 500) .commit(); world @@ -124,7 +125,7 @@ fn set_state_test() { .check_account(second) .nonce(2) .balance(300) - .esdt_balance("str:TOKEN-123456", "500") + .esdt_balance(TOKEN_ID, 500) .commit(); world @@ -149,7 +150,7 @@ fn set_state_test() { .account(fifth) .nonce(5) .balance(250) - .esdt_balance("str:TOKEN-123456", "2"); + .esdt_balance(TOKEN_ID, 2); world .check_account(fourth) @@ -158,17 +159,17 @@ fn set_state_test() { .check_account(fifth) .nonce(5) .balance(250) - .esdt_balance("str:TOKEN-123456", "2"); + .esdt_balance(TOKEN_ID, 2); world .account(sixth) .nonce(6) .balance(600) - .esdt_balance("str:TOKEN-123456", "60"); + .esdt_balance(TOKEN_ID, 60); world .check_account(sixth) .nonce(6) .balance(600) - .esdt_balance("str:TOKEN-123456", "60"); + .esdt_balance(TOKEN_ID, 60); } diff --git a/framework/base/src/types/interaction/annotated.rs b/framework/base/src/types/interaction/annotated.rs index 5586168651..015aa4e648 100644 --- a/framework/base/src/types/interaction/annotated.rs +++ b/framework/base/src/types/interaction/annotated.rs @@ -1,6 +1,7 @@ mod annotated_impl_big_uint; mod annotated_impl_managed_address; mod annotated_impl_managed_buffer; +mod annotated_impl_token_identifier; mod annotated_impl_u64; use crate::{ diff --git a/framework/base/src/types/interaction/annotated/annotated_impl_token_identifier.rs b/framework/base/src/types/interaction/annotated/annotated_impl_token_identifier.rs new file mode 100644 index 0000000000..c689024632 --- /dev/null +++ b/framework/base/src/types/interaction/annotated/annotated_impl_token_identifier.rs @@ -0,0 +1,56 @@ +use crate::{ + proxy_imports::ManagedBufferBuilder, + types::{ManagedBuffer, TokenIdentifier}, +}; + +use super::{AnnotatedValue, TxEnv}; + +impl AnnotatedValue> for TokenIdentifier +where + Env: TxEnv, +{ + fn annotation(&self, env: &Env) -> ManagedBuffer { + (&self).annotation(env) + } + + fn to_value(&self, _env: &Env) -> TokenIdentifier { + self.clone() + } + + fn into_value(self, _env: &Env) -> TokenIdentifier { + self + } + + fn with_value_ref(&self, _env: &Env, f: F) -> R + where + F: FnOnce(&TokenIdentifier) -> R, + { + f(self) + } +} + +impl AnnotatedValue> for &TokenIdentifier +where + Env: TxEnv, +{ + fn annotation(&self, _env: &Env) -> ManagedBuffer { + let mut annot = ManagedBufferBuilder::::new_from_slice("str:".as_bytes()); + annot.append_managed_buffer(self.as_managed_buffer()); + annot.into_managed_buffer() + } + + fn to_value(&self, _env: &Env) -> TokenIdentifier { + (*self).clone() + } + + fn into_value(self, _env: &Env) -> TokenIdentifier { + (*self).clone() + } + + fn with_value_ref(&self, _env: &Env, f: F) -> R + where + F: FnOnce(&TokenIdentifier) -> R, + { + f(self) + } +} diff --git a/framework/base/src/types/interaction/expr.rs b/framework/base/src/types/interaction/expr.rs index ca1e1c44b1..9ecbd18112 100644 --- a/framework/base/src/types/interaction/expr.rs +++ b/framework/base/src/types/interaction/expr.rs @@ -1,5 +1,7 @@ mod test_address; mod test_sc_address; +mod test_token_identifier; pub use test_address::TestAddress; pub use test_sc_address::TestSCAddress; +pub use test_token_identifier::TestTokenIdentifier; diff --git a/framework/base/src/types/interaction/expr/test_token_identifier.rs b/framework/base/src/types/interaction/expr/test_token_identifier.rs new file mode 100644 index 0000000000..62c03d8177 --- /dev/null +++ b/framework/base/src/types/interaction/expr/test_token_identifier.rs @@ -0,0 +1,50 @@ +use crate::{ + api::ManagedTypeApi, + types::{AnnotatedValue, ManagedBuffer, TokenIdentifier, TxEnv}, +}; + +const STR_PREFIX: &str = "str:"; + +/// Encodes a dummy address, to be used for tests. +/// +/// It is designed to be usable from contracts (especiall test contracts), with a minimal footprint. +/// For this reason, its inner structure is subject to change. +#[derive(Clone, Copy, Debug, PartialEq, Eq)] +pub struct TestTokenIdentifier<'a> { + name: &'a str, +} + +impl<'a> TestTokenIdentifier<'a> { + pub const fn new(name: &'a str) -> Self { + TestTokenIdentifier { name } + } + + #[cfg(feature = "alloc")] + pub fn eval_to_expr(&self) -> alloc::string::String { + alloc::format!("{STR_PREFIX}{}", self.name) + } +} + +impl<'a, Env> AnnotatedValue> for TestTokenIdentifier<'a> +where + Env: TxEnv, +{ + fn annotation(&self, _env: &Env) -> ManagedBuffer { + let mut result = ManagedBuffer::new_from_bytes(STR_PREFIX.as_bytes()); + result.append_bytes(self.name.as_bytes()); + result + } + + fn to_value(&self, _env: &Env) -> TokenIdentifier { + self.name.into() + } +} + +impl<'a, Api> From> for TokenIdentifier +where + Api: ManagedTypeApi, +{ + fn from(value: TestTokenIdentifier<'a>) -> Self { + TokenIdentifier::from_esdt_bytes(value.name) + } +} diff --git a/framework/scenario/src/facade/world_tx/scenario_check_state.rs b/framework/scenario/src/facade/world_tx/scenario_check_state.rs index fd7d640e10..011aca29b3 100644 --- a/framework/scenario/src/facade/world_tx/scenario_check_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_check_state.rs @@ -4,13 +4,15 @@ use multiversx_chain_scenario_format::interpret_trait::{InterpretableFrom, Inter use multiversx_sc::{ codec::test_util::top_encode_to_vec_u8_or_panic, proxy_imports::TopEncode, - types::{AnnotatedValue, BigUint, ManagedAddress}, + types::{AnnotatedValue, BigUint, ManagedAddress, TokenIdentifier}, }; use crate::{ api::StaticApi, scenario::{ - tx_to_step::{address_annotated, big_uint_annotated, u64_annotated}, + tx_to_step::{ + address_annotated, big_uint_annotated, token_identifier_annotated, u64_annotated, + }, ScenarioRunner, }, scenario_model::{ @@ -131,18 +133,19 @@ impl<'w> CheckStateBuilder<'w> { self } - pub fn esdt_balance(mut self, token_id_expr: K, balance_expr: V) -> Self + pub fn esdt_balance(mut self, token_id: K, balance: V) -> Self where - BytesKey: From, - BigUintValue: From, + K: AnnotatedValue>, + V: AnnotatedValue>, { - let token_id = BytesKey::from(token_id_expr); - let balance = BigUintValue::from(balance_expr); + let env = self.new_env_data(); + let token_id_key = token_identifier_annotated(&env, token_id); + let balance_value = big_uint_annotated(&env, &balance); match &mut self.current_account.esdt { CheckEsdtMap::Unspecified | CheckEsdtMap::Star => { let mut new_esdt_map = BTreeMap::new(); - let _ = new_esdt_map.insert(token_id, CheckEsdt::Short(balance)); + let _ = new_esdt_map.insert(token_id_key, CheckEsdt::Short(balance_value)); let new_check_esdt_map = CheckEsdtMapContents { contents: new_esdt_map, @@ -152,10 +155,10 @@ impl<'w> CheckStateBuilder<'w> { self.current_account.esdt = CheckEsdtMap::Equal(new_check_esdt_map); }, CheckEsdtMap::Equal(check_esdt_map) => { - if check_esdt_map.contents.contains_key(&token_id) { - let prev_entry = check_esdt_map.contents.get_mut(&token_id).unwrap(); + if check_esdt_map.contents.contains_key(&token_id_key) { + let prev_entry = check_esdt_map.contents.get_mut(&token_id_key).unwrap(); match prev_entry { - CheckEsdt::Short(prev_balance_check) => *prev_balance_check = balance, + CheckEsdt::Short(prev_balance_check) => *prev_balance_check = balance_value, CheckEsdt::Full(prev_esdt_check) => match prev_esdt_check.instances { CheckEsdtInstances::Star => todo!(), CheckEsdtInstances::Equal(_) => todo!(), diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index e817b09c57..ecba63090e 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -1,10 +1,10 @@ use std::collections::btree_map::Entry; -use multiversx_sc::types::{AnnotatedValue, BigUint}; +use multiversx_sc::types::{AnnotatedValue, BigUint, TokenIdentifier}; use crate::{ imports::StaticApi, - scenario::tx_to_step::{big_uint_annotated, u64_annotated}, + scenario::tx_to_step::{big_uint_annotated, token_identifier_annotated, u64_annotated}, scenario_model::{ Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, SetStateStep, U64Value, @@ -46,23 +46,26 @@ impl<'w> SetStateBuilder<'w, AccountItem> { self } - pub fn balance(mut self, balance_expr: V) -> Self + pub fn balance(mut self, balance: V) -> Self where V: AnnotatedValue>, { let env = self.new_env_data(); - self.item.account.balance = Some(big_uint_annotated(&env, &balance_expr)); + self.item.account.balance = Some(big_uint_annotated(&env, &balance)); self } - pub fn esdt_balance(mut self, token_id_expr: K, balance_expr: V) -> Self + pub fn esdt_balance(mut self, token_id: K, balance: V) -> Self where - BytesKey: From, - BigUintValue: From, + K: AnnotatedValue>, + V: AnnotatedValue>, { - let token_id = BytesKey::from(token_id_expr); - let esdt_data_ref = self.get_esdt_data_or_create(&token_id); - esdt_data_ref.set_balance(0u64, balance_expr); + let env = self.new_env_data(); + let token_id_key = token_identifier_annotated(&env, token_id); + let balance_value = big_uint_annotated(&env, &balance); + + let esdt_data_ref = self.get_esdt_data_or_create(&token_id_key); + esdt_data_ref.set_balance(0u64, balance_value); self } diff --git a/framework/scenario/src/scenario/tx_to_step/step_annotation.rs b/framework/scenario/src/scenario/tx_to_step/step_annotation.rs index 186d835344..2a5a2dac51 100644 --- a/framework/scenario/src/scenario/tx_to_step/step_annotation.rs +++ b/framework/scenario/src/scenario/tx_to_step/step_annotation.rs @@ -1,9 +1,10 @@ use multiversx_chain_scenario_format::serde_raw::ValueSubTree; use multiversx_sc::types::{ - AnnotatedValue, BigUint, Code, ManagedAddress, ManagedBuffer, TxCodeValue, TxEnv, TxGas, + AnnotatedValue, BigUint, Code, ManagedAddress, ManagedBuffer, TokenIdentifier, TxCodeValue, + TxEnv, TxGas, }; -use crate::scenario_model::{AddressValue, BigUintValue, BytesValue, U64Value}; +use crate::scenario_model::{AddressValue, BigUintValue, BytesKey, BytesValue, U64Value}; pub fn address_annotated(env: &Env, from: &Addr) -> AddressValue where @@ -53,6 +54,18 @@ where } } +pub fn token_identifier_annotated(env: &Env, value: T) -> BytesKey +where + Env: TxEnv, + T: AnnotatedValue>, +{ + let annotation = value.annotation(env).to_string(); + BytesKey { + value: value.into_value(env).into_managed_buffer().to_vec(), + original: annotation, + } +} + pub fn code_annotated(env: &Env, code: Code) -> BytesValue where Env: TxEnv, From 04707803afd27d5426f385a8a8d0566b2a925237 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sun, 28 Apr 2024 17:13:10 +0300 Subject: [PATCH 089/185] set state via AnnotatedValue - esdt_nft_balance --- .../rewards_distribution_integration_test.rs | 13 ++---- .../scenario-tester/tests/st_blackbox_test.rs | 3 +- .../annotated_impl_managed_buffer.rs | 13 ++++++ .../types/interaction/expr/test_address.rs | 23 +++++++++-- .../types/interaction/expr/test_sc_address.rs | 23 +++++++++-- .../interaction/expr/test_token_identifier.rs | 14 +++++++ .../scenario_set_account.rs | 41 ++++++++++--------- 7 files changed, 94 insertions(+), 36 deletions(-) diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs index a99ecf7559..03ef580983 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs @@ -9,9 +9,6 @@ use rewards_distribution::{ rewards_distribution_proxy, ContractObj, RewardsDistribution, DIVISION_SAFETY_CONSTANT, }; -const NFT_TOKEN_ID: &[u8] = b"NFT-123456"; -const NFT_TOKEN_ID_EXPR: &str = "str:NFT-123456"; - const ALICE_ADDRESS: TestAddress = TestAddress::new("alice"); const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const REWARDS_DISTRIBUTION_ADDRESS: TestSCAddress = TestSCAddress::new("rewards-distribution"); @@ -19,6 +16,7 @@ const REWARDS_DISTRIBUTION_PATH: MxscPath = MxscPath::new("output/rewards-distri const SEED_NFT_MINTER_ADDRESS: TestSCAddress = TestSCAddress::new("seed-nft-minter"); const SEED_NFT_MINTER_PATH: MxscPath = MxscPath::new("../seed-nft-minter/output/seed-nft-minter.mxsc.json"); +const NFT_TOKEN_ID: TestTokenIdentifier = TestTokenIdentifier::new("NFT-123456"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -61,7 +59,7 @@ impl RewardsDistributionTestState { .tx() .from(OWNER_ADDRESS) .typed(mock_seed_nft_minter_proxy::MockSeedNftMinterProxy) - .init(TokenIdentifier::from_esdt_bytes(NFT_TOKEN_ID)) + .init(NFT_TOKEN_ID) .code(SEED_NFT_MINTER_PATH) .run(); @@ -171,12 +169,7 @@ fn test_raffle_and_claim() { .nonce(1) .balance(2_070_000_000); for nft_nonce in nft_nonces { - account_setter = account_setter.esdt_nft_balance( - NFT_TOKEN_ID_EXPR, - nft_nonce, - "1", - Option::<&[u8]>::None, - ); + account_setter = account_setter.esdt_nft_balance(NFT_TOKEN_ID, nft_nonce, 1, ()); } } diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 62630a0289..0eecb8682c 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -10,6 +10,7 @@ const OTHER_ADDRESS: TestAddress = TestAddress::new("other"); const ST_ADDRESS: TestSCAddress = TestSCAddress::new("scenario-tester"); const CODE_PATH: MxscPath = MxscPath::new("output/scenario-tester.mxsc.json"); const TOKEN_ID: TestTokenIdentifier = TestTokenIdentifier::new("TOKEN-123456"); +const NFT_ID: TestTokenIdentifier = TestTokenIdentifier::new("NFT-123456"); fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); @@ -132,7 +133,7 @@ fn set_state_test() { .account(third) .nonce(3) .balance(50) - .esdt_nft_balance("str:NFT-123456", "2", "1", Some(Vec::::new())) + .esdt_nft_balance(NFT_ID, 2, 1, ()) .commit(); world diff --git a/framework/base/src/types/interaction/annotated/annotated_impl_managed_buffer.rs b/framework/base/src/types/interaction/annotated/annotated_impl_managed_buffer.rs index b8d4fc8fd7..547e88fefb 100644 --- a/framework/base/src/types/interaction/annotated/annotated_impl_managed_buffer.rs +++ b/framework/base/src/types/interaction/annotated/annotated_impl_managed_buffer.rs @@ -25,3 +25,16 @@ where f(self) } } + +impl AnnotatedValue> for () +where + Env: TxEnv, +{ + fn annotation(&self, _env: &Env) -> ManagedBuffer { + ManagedBuffer::new() + } + + fn to_value(&self, _env: &Env) -> ManagedBuffer { + ManagedBuffer::new() + } +} diff --git a/framework/base/src/types/interaction/expr/test_address.rs b/framework/base/src/types/interaction/expr/test_address.rs index 0d3278c67c..b01840ce06 100644 --- a/framework/base/src/types/interaction/expr/test_address.rs +++ b/framework/base/src/types/interaction/expr/test_address.rs @@ -1,8 +1,13 @@ use core::ptr; -use crate::types::{ - AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo, - TxToSpecified, +use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; + +use crate::{ + api::ManagedTypeApi, + types::{ + AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo, + TxToSpecified, + }, }; const ADDRESS_PREFIX: &str = "address:"; @@ -69,6 +74,18 @@ impl<'a, Env> TxFromSpecified for TestAddress<'a> where Env: TxEnv {} impl<'a, Env> TxTo for TestAddress<'a> where Env: TxEnv {} impl<'a, Env> TxToSpecified for TestAddress<'a> where Env: TxEnv {} +impl<'a> TopEncode for TestAddress<'a> { + fn top_encode_or_handle_err(&self, output: O, h: H) -> Result<(), H::HandledErr> + where + O: TopEncodeOutput, + H: EncodeErrorHandler, + { + self.eval_to_array().top_encode_or_handle_err(output, h) + } +} + +impl<'a, Api> CodecFrom> for ManagedAddress where Api: ManagedTypeApi {} + #[cfg(test)] pub mod tests { use super::*; diff --git a/framework/base/src/types/interaction/expr/test_sc_address.rs b/framework/base/src/types/interaction/expr/test_sc_address.rs index 3f603160b1..973ab80d92 100644 --- a/framework/base/src/types/interaction/expr/test_sc_address.rs +++ b/framework/base/src/types/interaction/expr/test_sc_address.rs @@ -1,8 +1,13 @@ use core::ptr; -use crate::types::{ - heap::Address, AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, - TxTo, TxToSpecified, +use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; + +use crate::{ + api::ManagedTypeApi, + types::{ + heap::Address, AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, + TxFromSpecified, TxTo, TxToSpecified, + }, }; const SC_PREFIX: &str = "sc:"; @@ -89,6 +94,18 @@ impl<'a> TestSCAddress<'a> { } } +impl<'a> TopEncode for TestSCAddress<'a> { + fn top_encode_or_handle_err(&self, output: O, h: H) -> Result<(), H::HandledErr> + where + O: TopEncodeOutput, + H: EncodeErrorHandler, + { + self.eval_to_array().top_encode_or_handle_err(output, h) + } +} + +impl<'a, Api> CodecFrom> for ManagedAddress where Api: ManagedTypeApi {} + #[cfg(test)] pub mod tests { use super::*; diff --git a/framework/base/src/types/interaction/expr/test_token_identifier.rs b/framework/base/src/types/interaction/expr/test_token_identifier.rs index 62c03d8177..b22854b507 100644 --- a/framework/base/src/types/interaction/expr/test_token_identifier.rs +++ b/framework/base/src/types/interaction/expr/test_token_identifier.rs @@ -1,3 +1,5 @@ +use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; + use crate::{ api::ManagedTypeApi, types::{AnnotatedValue, ManagedBuffer, TokenIdentifier, TxEnv}, @@ -48,3 +50,15 @@ where TokenIdentifier::from_esdt_bytes(value.name) } } + +impl<'a> TopEncode for TestTokenIdentifier<'a> { + fn top_encode_or_handle_err(&self, output: O, h: H) -> Result<(), H::HandledErr> + where + O: TopEncodeOutput, + H: EncodeErrorHandler, + { + self.name.top_encode_or_handle_err(output, h) + } +} + +impl<'a, Api> CodecFrom> for TokenIdentifier where Api: ManagedTypeApi {} diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index ecba63090e..82c64ba988 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -1,10 +1,12 @@ use std::collections::btree_map::Entry; -use multiversx_sc::types::{AnnotatedValue, BigUint, TokenIdentifier}; +use multiversx_sc::types::{AnnotatedValue, BigUint, ManagedBuffer, TokenIdentifier}; use crate::{ imports::StaticApi, - scenario::tx_to_step::{big_uint_annotated, token_identifier_annotated, u64_annotated}, + scenario::tx_to_step::{ + big_uint_annotated, bytes_annotated, token_identifier_annotated, u64_annotated, + }, scenario_model::{ Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, SetStateStep, U64Value, @@ -37,9 +39,9 @@ impl SetStateBuilderItem for AccountItem { } impl<'w> SetStateBuilder<'w, AccountItem> { - pub fn nonce(mut self, nonce: V) -> Self + pub fn nonce(mut self, nonce: N) -> Self where - V: AnnotatedValue, + N: AnnotatedValue, { let env = self.new_env_data(); self.item.account.nonce = Some(u64_annotated(&env, &nonce)); @@ -72,28 +74,29 @@ impl<'w> SetStateBuilder<'w, AccountItem> { pub fn esdt_nft_balance( mut self, - token_id_expr: K, - nonce_expr: N, - balance_expr: V, - opt_attributes_expr: Option, + token_id: K, + nonce: N, + balance: V, + attributes_expr: T, ) -> Self where - N: Clone, - BytesKey: From, - U64Value: From, - BigUintValue: From, - BytesValue: From, + K: AnnotatedValue>, + N: AnnotatedValue, + V: AnnotatedValue>, + T: AnnotatedValue>, { - let token_id = BytesKey::from(token_id_expr); + let env = self.new_env_data(); + let token_id_key = token_identifier_annotated(&env, token_id); + let nonce_value = u64_annotated(&env, &nonce); + let balance_value = big_uint_annotated(&env, &balance); let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) + .get_esdt_data_or_create(&token_id_key) .get_mut_esdt_object(); - esdt_obj_ref.set_balance(nonce_expr.clone(), balance_expr); + esdt_obj_ref.set_balance(nonce_value.clone(), balance_value); - if let Some(attributes_expr) = opt_attributes_expr { - esdt_obj_ref.set_token_attributes(nonce_expr, attributes_expr); - } + let attributes_value = bytes_annotated(&env, attributes_expr); + esdt_obj_ref.set_token_attributes(nonce_value, attributes_value); self } From 2799dcddea0a2ae4380d20d0d148a48beab00e2f Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sun, 28 Apr 2024 17:24:33 +0300 Subject: [PATCH 090/185] set state via AnnotatedValue - esdt_nft_balance_and_attributes --- .../scenario-tester/tests/st_blackbox_test.rs | 2 +- .../facade/world_tx/scenario_check_state.rs | 55 +++++++++---------- .../scenario_set_account.rs | 4 +- 3 files changed, 28 insertions(+), 33 deletions(-) diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 0eecb8682c..9f0b9091d3 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -140,7 +140,7 @@ fn set_state_test() { .check_account(third) .nonce(3) .balance(50) - .esdt_nft_balance_and_attributes("str:NFT-123456", "2", "1", Some(Vec::::new())) + .esdt_nft_balance_and_attributes(NFT_ID, 2, 1, ()) .commit(); // using no commit should drop the value naturally diff --git a/framework/scenario/src/facade/world_tx/scenario_check_state.rs b/framework/scenario/src/facade/world_tx/scenario_check_state.rs index 011aca29b3..047ea428a4 100644 --- a/framework/scenario/src/facade/world_tx/scenario_check_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_check_state.rs @@ -1,24 +1,23 @@ use std::collections::{btree_map::Entry, BTreeMap}; use multiversx_chain_scenario_format::interpret_trait::{InterpretableFrom, InterpreterContext}; -use multiversx_sc::{ - codec::test_util::top_encode_to_vec_u8_or_panic, - proxy_imports::TopEncode, - types::{AnnotatedValue, BigUint, ManagedAddress, TokenIdentifier}, +use multiversx_sc::types::{ + AnnotatedValue, BigUint, ManagedAddress, ManagedBuffer, TokenIdentifier, }; use crate::{ api::StaticApi, scenario::{ tx_to_step::{ - address_annotated, big_uint_annotated, token_identifier_annotated, u64_annotated, + address_annotated, big_uint_annotated, bytes_annotated, token_identifier_annotated, + u64_annotated, }, ScenarioRunner, }, scenario_model::{ - AddressKey, BigUintValue, BytesKey, BytesValue, CheckAccount, CheckEsdt, CheckEsdtData, + AddressKey, BytesKey, BytesValue, CheckAccount, CheckEsdt, CheckEsdtData, CheckEsdtInstances, CheckEsdtMap, CheckEsdtMapContents, CheckStateStep, CheckStorage, - CheckStorageDetails, CheckValue, U64Value, + CheckStorageDetails, CheckValue, }, ScenarioTxEnvData, ScenarioWorld, }; @@ -173,38 +172,34 @@ impl<'w> CheckStateBuilder<'w> { pub fn esdt_nft_balance_and_attributes( mut self, - token_id_expr: K, - nonce_expr: N, - balance_expr: V, - attributes_expr: Option, + token_id: K, + nonce: N, + balance: V, + attributes: T, ) -> Self where - BytesKey: From, - U64Value: From, - BigUintValue: From, - T: TopEncode, + K: AnnotatedValue>, + N: AnnotatedValue, + V: AnnotatedValue>, + T: AnnotatedValue>, { - let token_id = BytesKey::from(token_id_expr); + let env = self.new_env_data(); + let token_id_key = token_identifier_annotated(&env, token_id); + let nonce_value = u64_annotated(&env, &nonce); + let balance_value = big_uint_annotated(&env, &balance); + let attributes_value = bytes_annotated(&env, attributes); if let CheckEsdtMap::Unspecified = &self.current_account.esdt { let mut check_esdt = CheckEsdt::Full(CheckEsdtData::default()); - if let Some(attributes_expr) = attributes_expr { - check_esdt.add_balance_and_attributes_check( - nonce_expr, - balance_expr, - top_encode_to_vec_u8_or_panic(&attributes_expr), - ); - } else { - check_esdt.add_balance_and_attributes_check( - nonce_expr, - balance_expr, - Vec::::new(), - ); - } + check_esdt.add_balance_and_attributes_check( + nonce_value, + balance_value, + attributes_value, + ); let mut new_esdt_map = BTreeMap::new(); - let _ = new_esdt_map.insert(token_id, check_esdt); + let _ = new_esdt_map.insert(token_id_key, check_esdt); let new_check_esdt_map = CheckEsdtMapContents { contents: new_esdt_map, diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index 82c64ba988..e61dcd1052 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -77,7 +77,7 @@ impl<'w> SetStateBuilder<'w, AccountItem> { token_id: K, nonce: N, balance: V, - attributes_expr: T, + attributes: T, ) -> Self where K: AnnotatedValue>, @@ -89,13 +89,13 @@ impl<'w> SetStateBuilder<'w, AccountItem> { let token_id_key = token_identifier_annotated(&env, token_id); let nonce_value = u64_annotated(&env, &nonce); let balance_value = big_uint_annotated(&env, &balance); + let attributes_value = bytes_annotated(&env, attributes); let esdt_obj_ref = self .get_esdt_data_or_create(&token_id_key) .get_mut_esdt_object(); esdt_obj_ref.set_balance(nonce_value.clone(), balance_value); - let attributes_value = bytes_annotated(&env, attributes_expr); esdt_obj_ref.set_token_attributes(nonce_value, attributes_value); self From e066ac9baf87d9407b684de5add6e885b312bbca Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sun, 28 Apr 2024 17:41:42 +0300 Subject: [PATCH 091/185] set state via AnnotatedValue - code, owner --- .../scenario_set_account.rs | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index e61dcd1052..ce238d34b9 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -1,15 +1,18 @@ use std::collections::btree_map::Entry; -use multiversx_sc::types::{AnnotatedValue, BigUint, ManagedBuffer, TokenIdentifier}; +use multiversx_sc::types::{ + AnnotatedValue, BigUint, ManagedAddress, ManagedBuffer, TokenIdentifier, +}; use crate::{ imports::StaticApi, scenario::tx_to_step::{ - big_uint_annotated, bytes_annotated, token_identifier_annotated, u64_annotated, + address_annotated, big_uint_annotated, bytes_annotated, token_identifier_annotated, + u64_annotated, }, scenario_model::{ - Account, AddressKey, AddressValue, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, - SetStateStep, U64Value, + Account, AddressKey, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, SetStateStep, + U64Value, }, ScenarioTxEnvData, }; @@ -179,19 +182,23 @@ impl<'w> SetStateBuilder<'w, AccountItem> { self.item.account.esdt.get_mut(token_id).unwrap() } - pub fn code(mut self, code_expr: V) -> Self + pub fn code(mut self, code: C) -> Self where - BytesValue: From, + C: AnnotatedValue>, { - self.item.account.code = Some(BytesValue::from(code_expr)); + let env = self.new_env_data(); + let code_value = bytes_annotated(&env, code); + self.item.account.code = Some(code_value); self } - pub fn owner(mut self, owner_expr: V) -> Self + pub fn owner(mut self, owner: V) -> Self where - AddressValue: From, + V: AnnotatedValue>, { - self.item.account.owner = Some(AddressValue::from(owner_expr)); + let env = self.new_env_data(); + let owner_value = address_annotated(&env, &owner); + self.item.account.owner = Some(owner_value); self } } From 352ec3de9bf1fe7c24d947662e03a4d23b29e228 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 29 Apr 2024 13:00:03 +0300 Subject: [PATCH 092/185] set state via AnnotatedValue - esdt_nft_all_properties, esdt_nft_last_nonce, esdt_roles --- .../scenario_set_account.rs | 82 +++++++++++-------- 1 file changed, 47 insertions(+), 35 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index ce238d34b9..0c14dc6b16 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -10,10 +10,7 @@ use crate::{ address_annotated, big_uint_annotated, bytes_annotated, token_identifier_annotated, u64_annotated, }, - scenario_model::{ - Account, AddressKey, BigUintValue, BytesKey, BytesValue, Esdt, EsdtObject, SetStateStep, - U64Value, - }, + scenario_model::{Account, AddressKey, BytesKey, Esdt, EsdtObject, SetStateStep}, ScenarioTxEnvData, }; @@ -107,64 +104,79 @@ impl<'w> SetStateBuilder<'w, AccountItem> { #[allow(clippy::too_many_arguments)] pub fn esdt_nft_all_properties( mut self, - token_id_expr: K, - nonce_expr: N, - balance_expr: V, - opt_attributes_expr: Option, - royalties_expr: N, - creator_expr: Option, - hash_expr: Option, - uris_expr: Vec, + token_id: K, + nonce: N, + balance: V, + attributes: T, + royalties: N, + creator: T, + hash: T, + uris: Vec, ) -> Self where - BytesKey: From, - U64Value: From, - BigUintValue: From, - BytesValue: From, + K: AnnotatedValue>, + N: AnnotatedValue, + V: AnnotatedValue>, + T: AnnotatedValue>, { - let token_id = BytesKey::from(token_id_expr); + let env = self.new_env_data(); + let token_id_key = token_identifier_annotated(&env, token_id); + let nonce_value = u64_annotated(&env, &nonce); + let royalties_value = u64_annotated(&env, &royalties); + let balance_value = big_uint_annotated(&env, &balance); + let attributes_value = bytes_annotated(&env, attributes); + let creator_value = bytes_annotated(&env, creator); + let hash_value = bytes_annotated(&env, hash); + let mut uris_value = Vec::new(); + for uri in uris { + let uri_value = bytes_annotated(&env, uri); + uris_value.push(uri_value); + } let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) + .get_esdt_data_or_create(&token_id_key) .get_mut_esdt_object(); esdt_obj_ref.set_token_all_properties( - nonce_expr, - balance_expr, - opt_attributes_expr, - royalties_expr, - creator_expr, - hash_expr, - uris_expr, + nonce_value, + balance_value, + Some(attributes_value), + royalties_value, + Some(creator_value), + Some(hash_value), + uris_value, ); self } - pub fn esdt_nft_last_nonce(mut self, token_id_expr: K, last_nonce_expr: N) -> Self + pub fn esdt_nft_last_nonce(mut self, token_id: K, last_nonce: N) -> Self where - BytesKey: From, - U64Value: From, + K: AnnotatedValue>, + N: AnnotatedValue, { - let token_id = BytesKey::from(token_id_expr); + let env = self.new_env_data(); + let token_id_key = token_identifier_annotated(&env, token_id); + let nonce_value = u64_annotated(&env, &last_nonce); let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) + .get_esdt_data_or_create(&token_id_key) .get_mut_esdt_object(); - esdt_obj_ref.set_last_nonce(last_nonce_expr); + esdt_obj_ref.set_last_nonce(nonce_value); self } // TODO: Find a better way to pass roles - pub fn esdt_roles(mut self, token_id_expr: K, roles: Vec) -> Self + pub fn esdt_roles(mut self, token_id: K, roles: Vec) -> Self where - BytesKey: From, + K: AnnotatedValue>, { - let token_id = BytesKey::from(token_id_expr); + let env = self.new_env_data(); + let token_id_key = token_identifier_annotated(&env, token_id); let esdt_obj_ref = self - .get_esdt_data_or_create(&token_id) + .get_esdt_data_or_create(&token_id_key) .get_mut_esdt_object(); esdt_obj_ref.set_roles(roles); From f18b36ec7947ed36a4e375408e4feef4473cc69e Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 29 Apr 2024 13:03:35 +0300 Subject: [PATCH 093/185] set block via AnnotatedValue - block_epoch, block_nonce, block_round, block_timestamp, block_random_seed --- .../scenario_set_state/scenario_set_block.rs | 54 +++++++++++-------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_block.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_block.rs index 9b487859e4..3ef0d06cca 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_block.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_block.rs @@ -1,4 +1,11 @@ -use crate::scenario_model::{BlockInfo, BytesValue, SetStateStep, U64Value}; +use multiversx_sc::types::{AnnotatedValue, ManagedBuffer}; + +use crate::{ + imports::StaticApi, + scenario::tx_to_step::{bytes_annotated, u64_annotated}, + scenario_model::{BlockInfo, SetStateStep}, + ScenarioTxEnvData, +}; use super::{SetStateBuilder, SetStateBuilderItem}; @@ -43,53 +50,58 @@ impl SetStateBuilderItem for BlockItem { } impl<'w> SetStateBuilder<'w, BlockItem> { - pub fn block_epoch(mut self, block_epoch_expr: N) -> Self + pub fn block_epoch(mut self, block_epoch: N) -> Self where - U64Value: From, + N: AnnotatedValue, { - let block_epoch = U64Value::from(block_epoch_expr); + let env = self.new_env_data(); + let block_epoch_value = u64_annotated(&env, &block_epoch); - self.item.block_info.block_epoch = Some(block_epoch); + self.item.block_info.block_epoch = Some(block_epoch_value); self } - pub fn block_nonce(mut self, block_nonce_expr: N) -> Self + pub fn block_nonce(mut self, block_nonce: N) -> Self where - U64Value: From, + N: AnnotatedValue, { - let block_nonce = U64Value::from(block_nonce_expr); + let env = self.new_env_data(); + let block_nonce_value = u64_annotated(&env, &block_nonce); - self.item.block_info.block_nonce = Some(block_nonce); + self.item.block_info.block_nonce = Some(block_nonce_value); self } - pub fn block_round(mut self, block_round_expr: N) -> Self + pub fn block_round(mut self, block_round: N) -> Self where - U64Value: From, + N: AnnotatedValue, { - let block_round = U64Value::from(block_round_expr); + let env = self.new_env_data(); + let block_round_value = u64_annotated(&env, &block_round); - self.item.block_info.block_round = Some(block_round); + self.item.block_info.block_round = Some(block_round_value); self } - pub fn block_timestamp(mut self, block_timestamp_expr: N) -> Self + pub fn block_timestamp(mut self, block_timestamp: N) -> Self where - U64Value: From, + N: AnnotatedValue, { - let block_timestamp = U64Value::from(block_timestamp_expr); + let env = self.new_env_data(); + let block_timestamp_value = u64_annotated(&env, &block_timestamp); - self.item.block_info.block_timestamp = Some(block_timestamp); + self.item.block_info.block_timestamp = Some(block_timestamp_value); self } - pub fn block_random_seed(mut self, block_random_seed_expr: B) -> Self + pub fn block_random_seed(mut self, block_random_seed: B) -> Self where - BytesValue: From, + B: AnnotatedValue>, { - let block_random_seed = BytesValue::from(block_random_seed_expr); + let env = self.new_env_data(); + let block_random_seed_value = bytes_annotated(&env, block_random_seed); - self.item.block_info.block_random_seed = Some(block_random_seed); + self.item.block_info.block_random_seed = Some(block_random_seed_value); self } } From c8bda97430318b4a4e0b1b09a4da252949c21585 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 29 Apr 2024 13:04:14 +0300 Subject: [PATCH 094/185] check state via AnnotatedValue - code --- .../multisig/tests/multisig_blackbox_test.rs | 2 +- .../src/facade/world_tx/scenario_check_state.rs | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 714adf2f9e..7d439a00fc 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -610,5 +610,5 @@ fn test_deploy_and_upgrade_from_source() { state .world .check_account(ADDER_ADDRESS) - .code(factorial_path.eval_to_expr().as_str()); + .code(factorial_path); } diff --git a/framework/scenario/src/facade/world_tx/scenario_check_state.rs b/framework/scenario/src/facade/world_tx/scenario_check_state.rs index 047ea428a4..e79756ad1d 100644 --- a/framework/scenario/src/facade/world_tx/scenario_check_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_check_state.rs @@ -110,14 +110,14 @@ impl<'w> CheckStateBuilder<'w> { self } - pub fn code(mut self, code_expr: V) -> Self + pub fn code(mut self, code: V) -> Self where - BytesValue: InterpretableFrom, + V: AnnotatedValue>, { - self.current_account.code = CheckValue::Equal(BytesValue::interpret_from( - code_expr, - &InterpreterContext::default(), - )); + let env = self.new_env_data(); + let code_value = bytes_annotated(&env, code); + + self.current_account.code = CheckValue::Equal(code_value); self } From 64cfb775ff7fc36602f5c0cb37c54eb1799141c5 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 29 Apr 2024 13:10:24 +0200 Subject: [PATCH 095/185] api fetch optimization, test reorg and unit test --- .../scenario/model/transaction/tx_response.rs | 2380 --------------- framework/scenario/tests/tx_response_tests.rs | 2661 +++++++++++++++++ framework/snippets/src/interactor_retrieve.rs | 25 +- 3 files changed, 2682 insertions(+), 2384 deletions(-) create mode 100644 framework/scenario/tests/tx_response_tests.rs diff --git a/framework/scenario/src/scenario/model/transaction/tx_response.rs b/framework/scenario/src/scenario/model/transaction/tx_response.rs index d4171c6590..1465885476 100644 --- a/framework/scenario/src/scenario/model/transaction/tx_response.rs +++ b/framework/scenario/src/scenario/model/transaction/tx_response.rs @@ -254,2383 +254,3 @@ impl TxResponse { } } } - -#[cfg(test)] -mod tests { - use crate::scenario_model::TxResponse; - use multiversx_sc::types::Address; - use multiversx_sdk::data::transaction::{TransactionInfo, TransactionOnNetwork}; - - #[test] - fn test_deployed_address() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCDeployment", - "processingTypeOnDestination": "SCDeployment", - "hash": "07a176d1734d1901d396be344f97e1d80f076269e9559f9b2110f6f11c4f74de", - "nonce": 427, - "round": 2190715, - "epoch": 887, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gq4hu", - "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "data": "MDA2MTczNmQwMTAwMDAwMDAxOTgwMTE5NjAwMjdmN2YwMDYwMDE3ZjAxN2Y2MDAwMDA2MDAwMDE3ZjYwMDI3ZjdmMDE3ZjYwMDM3ZjdmN2YwMDYwMDE3ZjAwNjAwNDdmN2Y3ZjdmMDA2MDA1N2Y3ZjdmN2Y3ZjAwNjAwMzdmN2Y3ZjAxN2Y2MDA0N2Y3ZjdmN2YwMTdmNjAwMjdmN2UwMDYwMDE3ZjAxN2U2MDAyN2Y3ZjAxN2U2MDA1N2Y3ZjdlN2Y3ZjAxN2Y2MDA2N2U3ZjdmN2Y3ZjdmMDE3ZjYwMDE3ZTAwNjAwMDAxN2U2MDAxN2UwMTdmNjAwNDdmN2Y3ZTdmMDA2MDA1N2U3ZjdmN2Y3ZjAxN2Y2MDA0N2Y3ZjdmN2UwMDYwMDE3ZTAxN2U2MDA0N2Y3ZTdmN2YwMDYwMDI3ZTdmMDAwMmMxMDcyOTAzNjU2ZTc2MTI2ZDYxNmU2MTY3NjU2NDUzNjk2NzZlNjE2YzQ1NzI3MjZmNzIwMDA2MDM2NTZlNzYwZTYyNjk2NzQ5NmU3NDUzNjU3NDQ5NmU3NDM2MzQwMDBiMDM2NTZlNzYwOTYyNjk2NzQ5NmU3NDQxNjQ2NDAwMDUwMzY1NmU3NjBiNzM2OTY3NmU2MTZjNDU3MjcyNmY3MjAwMDAwMzY1NmU3NjBhNmQ0Mjc1NjY2NjY1NzI0ZTY1NzcwMDAzMDM2NTZlNzYwZDZkNDI3NTY2NjY2NTcyNDE3MDcwNjU2ZTY0MDAwNDAzNjU2ZTc2MDk2ZDQyNzU2NjY2NjU3MjQ1NzEwMDA0MDM2NTZlNzYwZDZkNDI3NTY2NjY2NTcyNDY2OTZlNjk3MzY4MDAwMTAzNjU2ZTc2MjI2ZDYxNmU2MTY3NjU2NDRkNzU2Yzc0Njk1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ0ZTQ2NTQ0NTc4NjU2Mzc1NzQ2NTAwMGUwMzY1NmU3NjFiNmQ2MTZlNjE2NzY1NjQ0NTc4NjU2Mzc1NzQ2NTRmNmU0NDY1NzM3NDQzNmY2ZTc0NjU3ODc0MDAwZjAzNjU2ZTc2MGQ2ZDYxNmU2MTY3NjU2NDQzNjE2YzZjNjU3MjAwMDYwMzY1NmU3NjEwNmQ2MTZlNjE2NzY1NjQ1MzQzNDE2NDY0NzI2NTczNzMwMDA2MDM2NTZlNzYxMzZkNjE2ZTYxNjc2NTY0NGY3NzZlNjU3MjQxNjQ2NDcyNjU3MzczMDAwNjAzNjU2ZTc2MWM2ZDYxNmU2MTY3NjU2NDQ3NjU3NDRkNzU2Yzc0Njk0NTUzNDQ1NDQzNjE2YzZjNTY2MTZjNzU2NTAwMDYwMzY1NmU3NjEyNmQ0Mjc1NjY2NjY1NzI0NzY1NzQ0MTcyNjc3NTZkNjU2ZTc0MDAwNDAzNjU2ZTc2MTI2ZDQyNzU2NjY2NjU3MjQxNzA3MDY1NmU2NDQyNzk3NDY1NzMwMDA5MDM2NTZlNzYxOTYyNjk2NzQ5NmU3NDQ3NjU3NDU1NmU3MzY5Njc2ZTY1NjQ0MTcyNjc3NTZkNjU2ZTc0MDAwMDAzNjU2ZTc2MWI3MzZkNjE2YzZjNDk2ZTc0NDc2NTc0NTU2ZTczNjk2NzZlNjU2NDQxNzI2Nzc1NmQ2NTZlNzQwMDBjMDM2NTZlNzYxMDZkNDI3NTY2NjY2NTcyNDc2NTc0NGM2NTZlNjc3NDY4MDAwMTAzNjU2ZTc2MGY2NzY1NzQ0ZTc1NmQ0MTcyNjc3NTZkNjU2ZTc0NzMwMDAzMDM2NTZlNzYxNjczNmQ2MTZjNmM0OTZlNzQ0NjY5NmU2OTczNjg1NTZlNzM2OTY3NmU2NTY0MDAxMDAzNjU2ZTc2MDk2MjY5Njc0OTZlNzQ1Mzc1NjIwMDA1MDM2NTZlNzYwYTY3NjU3NDQ3NjE3MzRjNjU2Njc0MDAxMTAzNjU2ZTc2MGY2MzZjNjU2MTZlNTI2NTc0NzU3MjZlNDQ2MTc0NjEwMDAyMDM2NTZlNzYwZjZkNDI3NTY2NjY2NTcyNTM2NTc0NDI3OTc0NjU3MzAwMDkwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NDM2ZDcwMDAwNDAzNjU2ZTc2MGE2MjY5Njc0OTZlNzQ1NDQ0Njk3NjAwMDUwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NGQ3NTZjMDAwNTAzNjU2ZTc2MTk2ZDQyNzU2NjY2NjU3MjQ2NzI2ZjZkNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjE3NmQ0Mjc1NjY2NjY1NzI1NDZmNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NTA2Zjc3MDAwNTAzNjU2ZTc2MTQ2ZDQyNzU2NjY2NjU3MjQzNmY3MDc5NDI3OTc0NjU1MzZjNjk2MzY1MDAwYTAzNjU2ZTc2MTI2ZDQyNzU2NjY2NjU3MjUzNzQ2ZjcyNjE2NzY1NGM2ZjYxNjQwMDA0MDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU1Mzc0NmY3MjY1MDAwNDAzNjU2ZTc2MGU2MzY4NjU2MzZiNGU2ZjUwNjE3OTZkNjU2ZTc0MDAwMjAzNjU2ZTc2MTc2ZDYxNmU2MTY3NjU2NDQ3NjU3NDQyNjE2MzZiNTQ3MjYxNmU3MzY2NjU3MjczMDAwMDAzNjU2ZTc2MGY2ZDYxNmU2MTY3NjU2NDU3NzI2OTc0NjU0YzZmNjcwMDAwMDM2NTZlNzYxNDYyNjk2NzQ5NmU3NDQ2Njk2ZTY5NzM2ODU1NmU3MzY5Njc2ZTY1NjQwMDA2MDM2NTZlNzYwNjY2Njk2ZTY5NzM2ODAwMDAwMzY1NmU3NjBhNjI2OTY3NDk2ZTc0NTM2OTY3NmUwMDAxMDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNDc2NTc0NDI3OTc0NjU1MzZjNjk2MzY1MDAwYTAzZDMwMWQxMDEwMTAzMDgwMjAxMTIwMTA0MDAwMTA3MDYwNjA2MDAwNDAxMDkwMTAwMDEwMDAwMDAwMDEzMDMwMDE0MDMwMzAzMDIwMzAxMDcwNDAwMDMwOTAxMDkwOTA5MDAwNzA3MDEwMDA2MDYwMTA2MDYwYzA1MDEwODA1MDAwMTBiMDAwODA3MTUwNzA4MDgwMDBhMDAxNjAxMDEwNjAxMDAwMDAwMDUwMDAwMDEwMzAwMDYwMTAwMTcwNTA1MGEwNzA0MDAwNDBhMDAwNDA0MDQwMDA0MDQwNDA0MDQwMTAxMDAwNDBkMDcwNzA3MDgwYTAwMDUwMTAxMDUwNTA2MDEwMTAwMGIwYjAxMDEwMTAxMDEwNTBkMDEwNTAwMDAwMDA1MDUwMDAwMDAwMDAwMGMwNzA3MDcwNzAwMDAwODE4MDMwMzAzMDAwMzAzMDAwMTA0MDcwMzAzMDMwMzAxMDEwMzAzMDMwMzAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwODA4MDUwMzAxMDAwMzA2MTYwMzdmMDE0MTgwODAwODBiN2YwMDQxZTlkYjA4MGI3ZjAwNDFmMGRiMDgwYjA3YzcwNTIwMDY2ZDY1NmQ2ZjcyNzkwMjAwMDQ2OTZlNjk3NDAwZGIwMTA3NzU3MDY3NzI2MTY0NjUwMGRjMDEwNzY0NjU3MDZmNzM2OTc0MDBkZDAxMDg3NzY5NzQ2ODY0NzI2MTc3MDBkZTAxMDg2MzZmNmQ3MDZmNzU2ZTY0MDBkZjAxMGU2NzY1NzQ1NDZmNzQ2MTZjNDE3MzczNjU3NDczMDBlMDAxMGY2NzY1NzQ1NjYxNzU2Yzc0NDE2NDY0NzI2NTczNzMwMGUxMDExNzY3NjU3NDQxNzM3MzY1NzQ1NDZmNmI2NTZlNDk2NDY1NmU3NDY5NjY2OTY1NzIwMGUyMDExZDY3NjU3NDRkNmY2ZTY1Nzk0ZDYxNzI2YjY1NzQ1NDZmNmI2NTZlNDk2NDY1NmU3NDY5NjY2OTY1NzIwMGUzMDEyMjY3NjU3NDRkNmY2ZTY1Nzk0ZDYxNzI2YjY1NzQ1NTZlNjQ2NTcyNmM3OTY5NmU2NzQ5NjQ2NTZlNzQ2OTY2Njk2NTcyMDBlNDAxMWY2NzY1NzQ0MjZmNmY3Mzc0NjU3MjUzNzQ2MTZiNjU2NDU0NmY2YjY1NmU0OTY0NjU2ZTc0Njk2NjY5NjU3MjAwZTUwMTE0Njc2NTc0NDM2ZjZlNzQ3MjZmNmM2YzY1NzI0MTY0NjQ3MjY1NzM3MzAwZTYwMTE1Njc2NTc0NGQ2ZjZlNjU3OTRkNjE3MjZiNjU3NDQxNjQ2NDcyNjU3MzczMDBlNzAxMWQ2NzY1NzQ1NzcyNjE3MDcwNjU2NDQ1Njc2YzY0NDM2ZjZlNzQ3MjYxNjM3NDQxNjQ2NDcyNjU3MzczMDBlODAxMWQ2NzY1NzQ1NzcyNjE3MDcwNjU2NDQ1Njc2YzY0NTQ2ZjZiNjU2ZTQ5NjQ2NTZlNzQ2OTY2Njk2NTcyMDBlOTAxMTE2NzY1NzQ0MjZmNmY3Mzc0NjU3MjQxNjQ2NDcyNjU3MzczMDBlYTAxMTk2NzY1NzQ0MzZmNmQ3MDZmNzU2ZTY0NTg0NTc4NjM2ODYxNmU2NzY1NTM3NzYxNzA3MzAwZWIwMTE3Njc2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQxNzM2ODczNzc2MTcwNTM3NzYxNzA3MzAwZWMwMTE2Njc2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQ2NjU2NTczNTA2NTcyNjM2NTZlNzQwMGVkMDExOTY3NjU3NDUwNjU3MjY2NmY3MjZkNjE2ZTYzNjU0NjY1NjU3MzUwNjU3MjYzNjU2ZTc0MDBlZTAxMGU3Mzc0NjE2YjY1NDk2ZTQyNmY2ZjczNzQ2NTcyMDBlZjAxMWI3MjY1NjI2MTZjNjE2ZTYzNjU1MDZmNzI3NDY2NmY2YzY5NmY0OTZlNDI2ZjZmNzM3NDY1NzIwMGYwMDExMjc1NmU3Mzc0NjE2YjY1NDY3MjZmNmQ0MjZmNmY3Mzc0NjU3MjAwZjEwMTE4NjM2YzYxNjk2ZDRkNzU2Yzc0Njk3MDZjNjU0NjcyNmY2ZDQyNmY2ZjczNzQ2NTcyMDBmMjAxMTk3MzY1NzQ1MDY1NzI2NjZmNzI2ZDYxNmU2MzY1NDY2NTY1NzM1MDY1NzI2MzY1NmU3NDAwZjMwMTE2NzM2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQ2NjU2NTczNTA2NTcyNjM2NTZlNzQwMGY0MDExMDczNjU3NDQzNmY2ZDcwNmY3NTZlNjQ1Mzc3NjE3MDczMDBmNTAxMGQ2NzY1NzQ0ZTYxNzQ3NTcyNjE2YzQxNTA1OTAwZjYwMTA4NjM2MTZjNmM0MjYxNjM2YjAwZjcwMTBhNWY1ZjY0NjE3NDYxNWY2NTZlNjQwMzAxMGI1ZjVmNjg2NTYxNzA1ZjYyNjE3MzY1MDMwMjBhOWFhOTAxZDEwMTE2MDEwMTdmMTAyYTIyMDE0MjAwMTAwMTIwMDEyMDAxMjAwMDEwMDIyMDAxMGIxOTAxMDE3ZjQxYzg4ZDA4NDFjODhkMDgyODAyMDA0MTAxNmIyMjAwMzYwMjAwMjAwMDBiMmUwMDAyNDAyMDAxMjAwMjRkMDQ0MDIwMDIyMDA0NGQwZDAxMTAyYzAwMGIxMDJjMDAwYjIwMDAyMDAyMjAwMTZiMzYwMjA0MjAwMDIwMDEyMDAzNmEzNjAyMDAwYjBiMDA0MWI4OGQwODQxMGUxMDAzMDAwYjEzMDEwMTdmMTAyYTIyMDEyMDAwYWQ0MmZmMDE4MzEwMDEyMDAxMGIyMTAxMDE3ZjEwMmEyMTAxMjAwMDQyMDA1MzA0NDA0MWIyODUwODQxMTExMDAzMDAwYjIwMDEyMDAwMTAwMTIwMDEwYjBmMDEwMTdmMTAwNDIyMDEyMDAwMTAwNTFhMjAwMTBiMGIwMDIwMDAyMDAxMTAwNjQxMDA0YTBiMmQwMTAxN2YyMzAwNDEyMDZiMjIwMjI0MDAyMDAyMjAwMDEwMzI0MWMwODAwODQxMDgxMDMzMjAwMjIwMDEzNjAyMTgyMDAyMTAzNDIwMDI0MTIwNmEyNDAwMGIxOTAwMjAwMDQxZmVmZmZmZmYwNzQ2MDQ0MDQxYzg4MDA4NDExOTEwMDMwMDBiMjAwMDBiMmEwMDIwMDIyMDAzMTA0ZDIxMDIxMDQzMjEwMzIwMDA0MjdmMzcwMzA4MjAwMDIwMDMzNjAyMDQyMDAwMjAwMjM2MDIwMDIwMDAyMDAxMzYwMjEwMGI3ZDAxMDM3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDAyOTAzMDgxMDcxMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUyMTAyMTAxNzQxMDAyMTAwMjAwMjEwMTIyMTAzMjAwMTQxMDAzNjAyMGMyMDAxMjAwMjM2MDIwNDIwMDEyMDAzNDEwMjc2MjIwMjM2MDIwODAzNDAyMDAwMjAwMjRmNDUwNDQwMjAwMTQxMDQ2YTEwNzUxYTIwMDEyODAyMDgyMTAyMjAwMTI4MDIwYzIxMDAwYzAxMGIwYjIwMDE0MTEwNmEyNDAwMGIzNjAxMDI3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDE0MTA4NmExMDM2MjAwMTI4MDIwODIxMDIyMDAwMjAwMTJkMDAwYzQxMDE3MTNhMDAwNDIwMDAyMDAyMzYwMjAwMjAwMTQxMTA2YTI0MDAwYjZkMDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMjAwMDAyN2Y0MWUwZGIwODJkMDAwMDIyMDI0NTA0NDA0MWUwZGIwODQxMDEzYTAwMDA0MWRjZGIwODQxMDAzNjAyMDAyMDAxNDEwODZhNDEwMDEwOWYwMTIwMDEyODAyMDgyMDAxMjgwMjBjNDFiODhkMDg0MTAwMTA1NzEwNDMwYzAxMGI0MWI4OGQwODQxMDAxMDRkMGIzNjAyMDAyMDAwMjAwMjQxMDE3MzNhMDAwNDIwMDE0MTEwNmEyNDAwMGIwYjAwMjAwMDIwMDExMDM4MTAwNzFhMGI0OTAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAxM2EwMDBjMjAwMjIwMDAzNjAyMDgyMDAyNDEwODZhMTBhNTAxMjAwMjI4MDIwODIwMDIyZDAwMGMwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAyNDExMDZhMjQwMDBiMGUwMDIwMDA0MThhODUwODQxMGIxMDNhMTAzYjBiMTMwMDIwMDAyMDAwMjAwMTIwMDIxMDUyMjAwMTIwMDIxMDg1MDEwYjBkMDAyMDAwMTAyYTIyMDAxMDFkMWEyMDAwMGIwYTAwMjAwMDEwM2QyMDAxMTAzZTBiMGYwMTAxN2YxMDJhMjIwMTIwMDAxMDFjMWEyMDAxMGI1MTAxMDI3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwMTAxMjIyMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwYTMwMTIwMDEyMDAwMTBiZDAxMjAwMjQxMTA2YTI0MDAwYjBhMDAyMDAwMTAzZDIwMDExMDQwMGI1MTAxMDI3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwMTAxMjIyMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwMGYxYTIwMDEyMDAwMTA4YjAxMjAwMjQxMTA2YTI0MDAwYjA5MDAyMDAwMjAwMTEwMDMwMDBiNTAwMTA0N2YxMDQzMjEwNjEwNDMyMTA3MjMwMDQxMTA2YjIyMDQyNDAwMTA0MzIxMDUyMDAxMTAyZjIxMDEyMDA0MjAwMzEwMjkzNjAyMGMyMDA0MjAwMjM3MDMwMDIwMDQyMDAxMzYwMjA4MjAwNTIwMDQxMDQ0MjAwMDIwMDU0MjAwMjAwNjIwMDcxMDA4MWEyMDA0NDExMDZhMjQwMDBiMTMwMTAxN2YxMDJhMjIwMDQxYjg4ZDA4NDEwMDEwMTgxYTIwMDAwYmQyMDEwMjAyN2YwMTdlMjMwMDQxMTA2YjIyMDMyNDAwMjAwMzIwMDEyODAyMDgyMjAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIzNjAyMDAyMDAzMjAwMTI4MDIwYzIyMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjM2MDIwYzIwMDMyMDAxMjkwMzAwMjIwNDQyMzg4NjIwMDQ0MjgwZmUwMzgzNDIyODg2ODQyMDA0NDI4MDgwZmMwNzgzNDIxODg2MjAwNDQyODA4MDgwZjgwZjgzNDIwODg2ODQ4NDIwMDQ0MjA4ODg0MjgwODA4MGY4MGY4MzIwMDQ0MjE4ODg0MjgwODBmYzA3ODM4NDIwMDQ0MjI4ODg0MjgwZmUwMzgzMjAwNDQyMzg4ODg0ODQ4NDM3MDIwNDIwMDAyMDAzNDExMDEwMGYxYTIwMDM0MTEwNmEyNDAwMGIxNTAwMjAwMDIwMDEyMDAyMjAwMzIwMDQxMDJhMjIwMTEwMDkxYTIwMDEwYjBjMDEwMTdmMTAyYTIyMDAxMDBhMjAwMDBiMGMwMTAxN2YxMDJhMjIwMDEwMGIyMDAwMGIwYzAxMDE3ZjEwMmEyMjAwMTAwYzIwMDAwYjE1MDAxMDQ4MTA0NjEwMzAwNDQwMGYwYjQxOTI4ZDA4NDEyNDEwMDMwMDBiMmIwMTAxN2Y0MWU4ZGIwODJkMDAwMDIyMDAwNDQwNDE2YjQxZmZmZmZmZmYwNzIwMDAxYjBmMGI0MWU4ZGIwODQxMDEzYTAwMDA0MTZiMTAwZDQxNmIwYjBkMDAyMDAwMTAyYTIyMDAxMDBlMWEyMDAwMGIyZTAxMDE3ZjQxZDU4MzA4NDExNzEwNGQyMjA0MjAwMDIwMDExMDBmMWEyMDA0NDFlYzgzMDg0MTAzMTAwZjFhMjAwNDIwMDIyMDAzMTAwZjFhMjAwNDEwMDAwMDBiMTEwMTAxN2YxMDJhMjIwMjIwMDAyMDAxMTAxODFhMjAwMjBiNDYwMTAxN2YyMzAwNDExMDZiMjIwMjI0MDAyMDAyMjAwMTQxMTg3NDIwMDE0MTgwZmUwMzcxNDEwODc0NzIyMDAxNDEwODc2NDE4MGZlMDM3MTIwMDE0MTE4NzY3MjcyMzYwMjBjMjAwMDIwMDI0MTBjNmE0MTA0MTAwZjFhMjAwMjQxMTA2YTI0MDAwYjBlMDEwMTdmNDEwMDEwMmEyMjAwMTAxMDIwMDAwYjFmMDAyMDAwMTA0YjIyMDAxMDEyNDEyMDQ3MDQ0MDIwMDEyMDAyNDFiMDg2MDg0MTEwMTA0YzAwMGIyMDAwMGJkOTAzMDEwOTdmMjMwMDQxNDA2YTIyMDEyNDAwMjAwMDEwNGIyMTAyMTA0MzIxMDYyMDAyMTAxMjIxMDAyMDAxNDEyNDZhNDEwMDNhMDAwMDIwMDE0MTIwNmEyMDAwMzYwMjAwMjAwMTIwMDIzNjAyMWMyMDAxMjAwMDM2MDIxODIwMDE0MTAwMzYwMjE0NDEwMDIxMDIwMzdmMjAwMDIwMDI0NjA0N2YyMDAxMmQwMDI0MDQ0MDQxZGNkYjA4NDEwMDM2MDIwMDQxZTBkYjA4NDEwMDNhMDAwMDBiMjAwMTQxNDA2YjI0MDAyMDA2MDUyMDAxNDExNDZhMjIwMDQxOTc4NzA4NDExNjEwM2EyMTA0MjAwMDQxOTc4NzA4NDExNjEwNTIyMTAwMTA0MzIxMDMwMzQwMjAwMDA0NDAyMDAxNDExNDZhMjIwNTQxOTc4NzA4NDExNjEwNTIyMTA3MjAwNTQxOTc4NzA4NDExNjEwNTMyMTA4MjAwNTQxOTc4NzA4NDExNjEwM2EyMTA5NDEwMDIxMDIwMjQwMDI0MDAyNDAyMDA1NDE5Nzg3MDg0MTE2MTA1NDQxZmYwMTcxMGUwMjAyMDEwMDBiNDE5Nzg3MDg0MTE2NDFlZDg2MDg0MTBkMTA0YzAwMGI0MTAxMjEwMjBiMjAwMTIwMDIzYTAwMzQyMDAxMjAwOTM2MDIzMDIwMDEyMDA4MzYwMjJjMjAwMTIwMDczNjAyMjgyMDAzMjAwMTQxMjg2YTEwNTUyMDAwNDEwMTZiMjEwMDBjMDEwYjBiMjAwMTQyMDAzNzAzMjgyMDAxMjAwNDQxMTg3NDIwMDQ0MTgwZmUwMzcxNDEwODc0NzIyMDA0NDEwODc2NDE4MGZlMDM3MTIwMDQ0MTE4NzY3MjcyMzYwMjNjMjAwMTQxMDg2YTIwMDE0MTI4NmEyMjAwNDEwMDQxMDQxMDU2MjAwMTI4MDIwODIwMDEyODAyMGMyMDAxNDEzYzZhMjIwMjQxMDQxMDU3MjAwMTIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIzYzIwMDEyMDAwNDEwNDQxMDgxMDU2MjAwMTI4MDIwMDIwMDEyODAyMDQyMDAyNDEwNDEwNTcyMDA2MjAwMDQxMDgxMDBmMWEyMDAxMjgwMjE0MjEwMjIwMDEyODAyMTgyMTAwMGMwMTBiMGIwYjM3MDIwMTdmMDE3ZTIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTAwMzYwMjBjMjAwMDIwMDM0MTBjNmEyMjAwNDEwNDIwMDEyMDAyMTBjNTAxMjAwMDQxMDQxMGIxMDEyMDAzNDExMDZhMjQwMGE3MGIwZDAwMjAwMDQxMjAyMDAxMjAwMjEwODUwMTBiMzAwMTAxN2YyMzAwNDExMDZiMjIwMzI0MDAyMDAzNDEwMDNhMDAwZjIwMDAyMDAzNDEwZjZhNDEwMTIwMDEyMDAyMTBjNTAxMjAwMzJkMDAwZjIwMDM0MTEwNmEyNDAwMGJmNjAyMDEwNTdmMjMwMDQxZDAwMDZiMjIwMjI0MDAyMDAyNDIwMDM3MDAzNTIwMDI0MjAwMzcwMzMwMjAwMjIwMDEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyNDAyMDAyNDEyODZhMjAwMjQxMzA2YTIyMDU0MTAwNDEwNDEwOWIwMTIwMDIyODAyMjgyMDAyMjgwMjJjMjAwMjQxNDA2YjIyMDQ0MTA0MTA1NzIwMDI0MWM4MDA2YTQxMDAzYTAwMDAyMDAyNDIwMDM3MDM0MDIwMDIyMDAxMjgwMjA0MjIwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMzYwMjRjMjAwMjQxMjA2YTIwMDQ0MTAwNDEwNDEwOWMwMTIwMDIyODAyMjAyMDAyMjgwMjI0MjAwMjQxY2MwMDZhMjIwNjQxMDQxMDU3MjAwMjIwMDE0MTA4NmEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyNGMyMDAyNDExODZhMjAwNDQxMDQ0MTA4MTA5YzAxMjAwMjI4MDIxODIwMDIyODAyMWMyMDA2NDEwNDEwNTcyMDAyMjAwMTQxMGM2YTJkMDAwMDNhMDA0YzIwMDI0MTEwNmEyMDA0NDEwODQxMDkxMDljMDEyMDAyMjgwMjEwMjAwMjI4MDIxNDIwMDY0MTAxMTA1NzIwMDI0MTA4NmEyMDA1NDEwNDQxMGQxMDliMDEyMDAyMjgwMjA4MjAwMjI4MDIwYzIwMDQ0MTA5MTA1NzIwMDAyMDA1NDEwZDEwMGYxYTIwMDI0MWQwMDA2YTI0MDAwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwODEwZjkwMTBiYjUwMjAxMDY3ZjIwMDEyMDAzNDYwNDQwMjAwMTIyMDM0MTEwNGYwNDQwMjAwMDQxMDAyMDAwNmI0MTAzNzEyMjA0NmEyMTA1MjAwNDA0NDAyMDAyMjEwMTAzNDAyMDAwMjAwMTJkMDAwMDNhMDAwMDIwMDE0MTAxNmEyMTAxMjAwMDQxMDE2YTIyMDAyMDA1NDkwZDAwMGIwYjIwMDUyMDAzMjAwNDZiMjIwMzQxN2M3MTIyMDY2YTIxMDAwMjQwMjAwMjIwMDQ2YTIyMDQ0MTAzNzEwNDQwMjAwNjQxMDA0YzBkMDEyMDA0NDEwMzc0MjIwMTQxMTg3MTIxMDcyMDA0NDE3YzcxMjIwODQxMDQ2YTIxMDI0MTAwMjAwMTZiNDExODcxMjEwOTIwMDgyODAyMDAyMTAxMDM0MDIwMDUyMDAxMjAwNzc2MjAwMjI4MDIwMDIyMDEyMDA5NzQ3MjM2MDIwMDIwMDI0MTA0NmEyMTAyMjAwNTQxMDQ2YTIyMDUyMDAwNDkwZDAwMGIwYzAxMGIyMDA2NDEwMDRjMGQwMDIwMDQyMTAyMDM0MDIwMDUyMDAyMjgwMjAwMzYwMjAwMjAwMjQxMDQ2YTIxMDIyMDA1NDEwNDZhMjIwNTIwMDA0OTBkMDAwYjBiMjAwMzQxMDM3MTIxMDMyMDA0MjAwNjZhMjEwMjBiMjAwMzA0NDAyMDAwMjAwMzZhMjEwMTAzNDAyMDAwMjAwMjJkMDAwMDNhMDAwMDIwMDI0MTAxNmEyMTAyMjAwMDQxMDE2YTIyMDAyMDAxNDkwZDAwMGIwYjBmMGIxMDJjMDAwYmEyMDMwMTA3N2YyMzAwNDE0MDZhMjIwMTI0MDAyMDAwMTA0YjIxMDIxMDQzMjEwNTIwMDIxMDEyMjEwMDIwMDE0MTJjNmE0MTAwM2EwMDAwMjAwMTQxMjg2YTIwMDAzNjAyMDAyMDAxMjAwMjM2MDIyNDIwMDEyMDAwMzYwMjIwMjAwMTQxMDAzNjAyMWM0MTAwMjEwMjAzN2YyMDAwMjAwMjQ2MDQ3ZjIwMDEyZDAwMmMwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAxNDE0MDZiMjQwMDIwMDUwNTIwMDE0MTFjNmEyMjAwNDFhZDg3MDg0MTE4MTAzYTIxMDMyMDAwNDFhZDg3MDg0MTE4MTA1MjIxMDAxMDQzMjEwMjAzNDAyMDAwMDQ0MDIwMDE0MTFjNmEyMjA0NDFhZDg3MDg0MTE4MTA1MjIxMDYyMDA0NDFhZDg3MDg0MTE4MTA1MzIxMDcyMDA0NDFhZDg3MDg0MTE4MTAzYTIxMDQyMDAxMjAwNjM2MDIzODIwMDEyMDA0MzYwMjM0MjAwMTIwMDczNjAyMzAyMDAyMjAwMTQxMzA2YTEwNTkyMDAwNDEwMTZiMjEwMDBjMDEwYjBiMjAwMTQyMDAzNzAzMzAyMDAxMjAwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMzYwMjNjMjAwMTQxMTA2YTIwMDE0MTMwNmEyMjAwNDEwMDQxMDQxMDU2MjAwMTI4MDIxMDIwMDEyODAyMTQyMDAxNDEzYzZhMjIwMzQxMDQxMDU3MjAwMTIwMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjM2MDIzYzIwMDE0MTA4NmEyMDAwNDEwNDQxMDgxMDU2MjAwMTI4MDIwODIwMDEyODAyMGMyMDAzNDEwNDEwNTcyMDA1MjAwMDQxMDgxMDBmMWEyMDAxMjgwMjFjMjEwMjIwMDEyODAyMjAyMTAwMGMwMTBiMGIwYmI4MDIwMTA0N2YyMzAwNDE0MDZhMjIwMjI0MDAyMDAyNDEyODZhNDEwMDM2MDIwMDIwMDI0MjAwMzcwMzIwMjAwMjIwMDEyODAyMDgyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyMzAyMDAyNDExODZhMjAwMjQxMjA2YTIyMDU0MTAwNDEwNDEwOWEwMTIwMDIyODAyMTgyMDAyMjgwMjFjMjAwMjQxMzA2YTIyMDQ0MTA0MTA1NzIwMDI0MjAwMzcwMzMwMjAwMjIwMDEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyM2MyMDAyNDExMDZhMjAwNDQxMDA0MTA0MTA1NjIwMDIyODAyMTAyMDAyMjgwMjE0MjAwMjQxM2M2YTIyMDM0MTA0MTA1NzIwMDIyMDAxMjgwMjA0MjIwMTQxMTg3NDIwMDE0MTgwZmUwMzcxNDEwODc0NzIyMDAxNDEwODc2NDE4MGZlMDM3MTIwMDE0MTE4NzY3MjcyMzYwMjNjMjAwMjQxMDg2YTIwMDQ0MTA0NDEwODEwNTYyMDAyMjgwMjA4MjAwMjI4MDIwYzIwMDM0MTA0MTA1NzIwMDIyMDA1NDEwNDQxMGMxMDlhMDEyMDAyMjgwMjAwMjAwMjI4MDIwNDIwMDQ0MTA4MTA1NzIwMDAyMDA1NDEwYzEwMGYxYTIwMDI0MTQwNmIyNDAwMGIxNDAwMTAxMzIwMDA0NjA0NDAwZjBiNDE5Mjg0MDg0MTE5MTAwMzAwMGIwOTAwMjAwMDEwNWMxMDA3MWEwYjFkMDAyMDAwMTBhNzAxMjIwMDEwMTI0MTIwNDcwNDQwNDFiMDg2MDg0MTEwMTA4ODAxMDAwYjIwMDAwYjBhMDAyMDAwMTBhNzAxMTAwNzFhMGIwODAwMjAwMDEwNWYxMDE0MGI2MTAyMDI3ZjAxN2UyMzAwNDExMDZiMjIwMTI0MDAyMDAxNDIwMDM3MDMwODIwMDAxMGE3MDEyMjAwMTAxMjIyMDI0MTA5NGYwNDQwNDE5NTg1MDg0MTBlMTA4ODAxMDAwYjIwMDEyMDAxNDEwODZhMjAwMjEwYjAwMTIwMDA0MTAwMjAwMTI4MDIwMDIyMDAyMDAxMjgwMjA0MjIwMjEwOGEwMTFhMjAwMDIwMDIxMGIxMDEyMDAxNDExMDZhMjQwMDBiMWYwMDIwMDAyMDAxMjAwMjEwMTUyMDAwMTA2MTQxZmYwMTcxMDQ0MDBmMGI0MWFiODQwODQxMzAxMDAzMDAwYjE1MDA0MTAyNDEwMTIwMDAxMDI3MjIwMDFiNDEwMDIwMDA0MTAwNGUxYjBiZjgwMTAxMDQ3ZjIzMDA0MWQwMDA2YjIyMDUyNDAwMjAwNTIwMDQzNjAyMjgyMDA1NDEyMDZhNDFkYjg0MDg0MTE0MTA2MzIwMDUyODAyMjAyMTA3MjAwNTI4MDIyNDIyMDYyMDAzMTA2NDIwMDQxMDY1MjEwMzEwNDMyMjA4MjAwM2FkMTA2NjIwMDYyMDA4MTA0ZTIwMDUyMDA0MTAxMjM2MDIzNDIwMDU0MTAwMzYwMjMwMjAwNTIwMDU0MTI4NmEzNjAyMmMwMzQwMjAwNTQxMzg2YTIwMDU0MTJjNmExMDY3MjAwNTI5MDMzODUwMDQ0MDIwMDUyMDA3MjAwNjIwMDEyMDAyMTA2ODIwMDUyODAyMDQyMTAxMjAwMDIwMDUyODAyMDAzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MWQwMDA2YTI0MDAwNTIwMDUyODAyNGMyMTAzMjAwNTQxMTg2YTIwMDcyMDA2MjAwNTI4MDI0ODEwNjkyMDA1NDExMDZhMjAwNTI4MDIxODIwMDUyODAyMWMyMDA1MjkwMzQwMTA2YTIwMDU0MTA4NmEyMDA1MjgwMjEwMjAwNTI4MDIxNDIwMDMxMDZiMjAwNTI4MDIwYzIxMDYyMDA1MjgwMjA4MjEwNzBjMDEwYjBiMGIxODAwMjAwMTIwMDIxMDRkMjEwMTIwMDAxMDQzMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjEwMDAxMDQzMWEyMDAwMjAwMTI4MDIwMDEwMmYxMDRlMGIwOTAwMjAwMDEwMTI0MTA0NzYwYjM4MDEwMTdmMjMwMDQxMTA2YjIyMDIyNDAwMjAwMjQyMDAzNzAzMDgyMDAyMjAwMTQxMDAyMDAyNDEwODZhMTA4MjAxMjAwMDIwMDIyODAyMDAyMDAyMjgwMjA0MTAxODFhMjAwMjQxMTA2YTI0MDAwYmE3MDEwMjA1N2YwMTdlMjMwMDQxMjA2YjIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjA0NDExMDZhMjIwNTIwMDEyODAyMDg0ZDA0N2UyMDAxMjgwMjAwMjAwMjQxMTA2YTQyMDAzNzAzMDAyMDAyNDIwMDM3MDMwODI4MDIwMDIwMDQyMDAyNDEwODZhMjIwMzQxMTAxMDZmMWEyMDAyNDEwMDM2MDIxYzIwMDMyMDAyNDExYzZhMjIwNjEwOTgwMTIxMDQyMDAzMjAwNjEwOTkwMTIxMDcyMDAwNDExNDZhMjAwMjQxMDg2YTIwMDI0MTFjNmExMDk4MDEzNjAyMDAyMDAwNDExMDZhMjAwNDM2MDIwMDIwMDAyMDA3MzcwMzA4MjAwMTIwMDUzNjAyMDQ0MjAxMDU0MjAwMGIzNzAzMDAyMDAyNDEyMDZhMjQwMDBiOTEwMTAxMDM3ZjIzMDA0MTEwNmIyMjA1MjQwMDAyNDAyMDAzMTAxMjQ1MGQwMDIwMDIyMDAzMTA2ZTIwMDQxMDEyMjEwNjQxMDAyMTAzMDM0MDIwMDM0MTA0NmEyMjA3MjAwNjRiMGQwMTIwMDU0MTAwMzYwMjBjMjAwNDIwMDMyMDA1NDEwYzZhNDEwNDEwNmYxYTIwMDIyMDA1MjgwMjBjMjIwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMTA2ZTIwMDcyMTAzMGMwMDBiMDAwYjIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAyMDA1NDExMDZhMjQwMDBiMTYwMDIwMDIyMDAzMTA2ZTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjIwMDEwMTdmMTA0MzIyMDQyMDAzMTA2NjIwMDIyMDA0MTA0ZTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjE2MDAyMDAzMjAwMjEwNzAyMDAwMjAwMjM2MDIwNDIwMDAyMDAxMzYwMjAwMGJhMzAxMDEwMjdmMjMwMDQxMzA2YjIyMDUyNDAwMjAwNTQxMjg2YTQxZWY4NDA4NDEwZjEwNjMyMDA1NDEyMDZhMjAwNTI4MDIyODIwMDUyODAyMmMyMDA0MjgwMjA4MTA2OTIwMDU0MTE4NmEyMDA1MjgwMjIwMjAwNTI4MDIyNDIwMDQyOTAzMDAxMDZhMjAwNTQxMTA2YTIwMDUyODAyMTgyMDA1MjgwMjFjMjAwNDI4MDIwYzEwNmIyMDA1MjgwMjEwMjEwNDIwMDUyODAyMTQyMTA2MTA0MzFhMjAwNjIwMDMxMDJmMTA0ZTIwMDU0MTA4NmEyMDA0MjAwNjIwMDEyMDAyMTA2ODIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTMwNmEyNDAwMGI3MTAxMDE3ZjIzMDA0MTIwNmIyMjA1MjQwMDIwMDU0MTE4NmE0MWZlODQwODQxMGMxMDYzMjAwNTQxMTA2YTIwMDUyODAyMTgyMDA1MjgwMjFjMjAwMzEwNjkyMDA1NDEwODZhMjAwNTI4MDIxMDIwMDUyODAyMTQyMDA0MTA2YjIwMDUyMDA1MjgwMjA4MjAwNTI4MDIwYzIwMDEyMDAyMTA2ODIwMDUyODAyMDQyMTAxMjAwMDIwMDUyODAyMDAzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTIwNmEyNDAwMGIwZDAwMTA0MzFhMjAwMDIwMDExMDJmMTA0ZTBiMGQwMDIwMDAyMDAxMjAwMjIwMDMxMDhhMDEwYjBkMDAxMDQzMWEyMDAxMjAwMDEwM2QxMDRlMGIwZjAwMjAwMDQyN2Y1MTA0N2UxMDE2MDUyMDAwMGIwYjMwMDEwMTdlMjAwMDI5MDMwODIyMDE0MjdmNTEwNDdlMTAxNjA1MjAwMTBiMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUxMDE3MTA3MzBiM2IwMTAyN2YyMzAwNDExMDZiMjIwMTI0MDAyMDAwMTAxMjIxMDIyMDAxNDEwMDM2MDIwYzIwMDEyMDAwMzYwMjA0MjAwMTIwMDI0MTAyNzYzNjAyMDgyMDAxNDEwNDZhMTA3NTEwM2IyMDAxNDExMDZhMjQwMDBiMjQwMDIwMDAyOTAzMDgxMDcxMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUxMDE3MTAxMjFhMGI3ZDAxMDM3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDAyODAyMDgyMTAzMjAwMTQxMDAzNjAyMGMyMDAwMjgwMjAwMjAwMzQxMDI3NDIwMDE0MTBjNmE0MTA0MTA2ZjQ1MDQ0MDIwMDEyODAyMGMyMTAyMjAwMDIwMDM0MTAxNmEzNjAyMDgyMDAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIxMDJmMjAwMTQxMTA2YTI0MDAwZjBiNDE4YTg1MDg0MTBiNDFlZjgzMDg0MTExMTA0YzAwMGI5MDAyMDIwMjdmMDE3ZTIzMDA0MWQwMDA2YjIyMDIyNDAwMjAwMTI5MDMwODIyMDQ0MjdmNTEwNDdlMTAxNjA1MjAwNDBiMjAwMTI4MDIxMDIwMDEyODAyMTgyMDAxMjgwMjAwMjAwMTI4MDIwNDEwNDUyMTAxMTAxNzIwMDExMDEyMjEwMzIwMDI0MTAwMzYwMjE0MjAwMjIwMDEzNjAyMGMyMDAyMjAwMzQxMDI3NjM2MDIxMDIwMDI0MTBjNmExMDc1MjIwMzEwMTIyMTAxMjAwMjQxM2M2YTQxMDAzYTAwMDAyMDAyNDEzODZhMjAwMTM2MDIwMDIwMDIyMDAzMzYwMjM0MjAwMjIwMDEzNjAyMzAyMDAyNDEwMDM2MDIyYzIwMDI0MTQwNmIyMDAyNDEyYzZhMTA3NzIwMDIyODAyMzAyMDAyMjgwMjJjNDYwNDQwMjAwMjQxMjA2YTIyMDEyMDAyNDFjODAwNmEyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDM0MDM3MDMxODIwMDIyZDAwM2MwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAwMjAwMjI5MDMxODM3MDMwMDIwMDA0MTA4NmEyMDAxMjkwMzAwMzcwMzAwMjAwMjQxZDAwMDZhMjQwMDBmMGI0MThhODUwODQxMGI0MTk1ODUwODQxMGUxMDRjMDAwYjMwMDIwMTdmMDE3ZTIwMDE0MThhODUwODQxMGIxMDNhMjEwMjIwMDExMGJlMDEyMTAzMjAwMDIwMDExMDM5MzYwMjBjMjAwMDIwMDIzNjAyMDgyMDAwMjAwMzM3MDMwMDBiMTAwMDEwNDMxYTIwMDAyMDAxMjgwMjAwMTAzZDEwNGUwYjBlMDAyMDAxNDUwNDQwMjAwMjIwMDAxMDcwMGIwYjgxMDEwMTA1N2YyMzAwNDExMDZiMjIwMzI0MDAxMDQzMTAyZjIxMDQyMDAxMjgwMjAwMTAxMjIxMDUwMzQwMjAwNTIwMDI0MTA0NmEyMjA2NGYwNDQwMjAwMzQxMDAzNjAyMGMyMDAxMjgwMjAwMjAwMjIwMDM0MTBjNmE0MTA0MTA2ZjFhMjAwMzI4MDIwYzIyMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjIwMDQxMDNmMjAwNjIxMDIwYzAxMGIwYjIwMDAyMDA0MTA0ZTIwMDM0MTEwNmEyNDAwMGI4MjAxMDEwNTdmMjMwMDQxMTA2YjIyMDMyNDAwMTA0MzEwMmYyMTA0MjAwMTI4MDIwMDEwMTIyMTA1MDM0MDIwMDUyMDAyNDEwNDZhMjIwNjRmMDQ0MDIwMDM0MTAwMzYwMjBjMjAwMTI4MDIwMDIwMDIyMDAzNDEwYzZhNDEwNDEwNmYxYTIwMDQyMDAzMjgwMjBjMjIwMjQxMTg3NDIwMDI0MTgwZmUwMzcxNDEwODc0NzIyMDAyNDEwODc2NDE4MGZlMDM3MTIwMDI0MTE4NzY3MjcyMTAwNTFhMjAwNjIxMDIwYzAxMGIwYjIwMDAyMDA0MTA0ZTIwMDM0MTEwNmEyNDAwMGI0ZDAxMDI3ZjIzMDA0MTIwNmIyMjAxMjQwMDEwN2QyMTAyMjAwMTQxMTA2YTIwMDA0MTEwNmEyOTAzMDAzNzAzMDAyMDAxNDEwODZhMjAwMDQxMDg2YTI5MDMwMDM3MDMwMDIwMDEyMDAyMzYwMjE4MjAwMTIwMDAyOTAzMDAzNzAzMDAyMDAxMTA3MjIwMDE0MTIwNmEyNDAwMGIwZTAxMDE3ZjEwMmEyMjAwNDIwMDEwMDEyMDAwMGI0ZjAxMDI3ZjIzMDA0MTIwNmIyMjAyMjQwMDEwN2QyMTAzMjAwMjQxMTA2YTIwMDE0MTEwNmEyOTAzMDAzNzAzMDAyMDAyNDEwODZhMjAwMTQxMDg2YTI5MDMwMDM3MDMwMDIwMDIyMDAzMzYwMjE4MjAwMjIwMDEyOTAzMDAzNzAzMDAyMDAwMjAwMjEwNzYyMDAyNDEyMDZhMjQwMDBiNGQwMTAyN2YyMzAwNDEyMDZiMjIwMTI0MDAxMDdkMjEwMjIwMDE0MTEwNmEyMDAwNDExMDZhMjkwMzAwMzcwMzAwMjAwMTQxMDg2YTIwMDA0MTA4NmEyOTAzMDAzNzAzMDAyMDAxMjAwMjM2MDIxODIwMDEyMDAwMjkwMzAwMzcwMzAwMjAwMTEwMzQyMDAxNDEyMDZhMjQwMDBiNzYwMjA1N2YwMTdlMjMwMDQxMTA2YjIyMDEyNDAwMTA3ZDIxMDIyMDAwMjgwMjEwMjEwMzIwMDAyODAyMDQyMTA0MjAwMDI4MDIwMDIxMDUyMDAwMjkwMzA4MjIwNjQyN2Y1MTA0N2UxMDE2MDUyMDA2MGIyMDAzMjAwMjIwMDUyMDA0MTA0NTIxMDAxMDE3MjAwMDEwMTIyMTAyMjAwMTQxMDAzNjAyMGMyMDAxMjAwMDM2MDIwNDIwMDEyMDAyNDEwMjc2MzYwMjA4MjAwMTQxMDQ2YTEwNzUxMDJmMjAwMTQxMTA2YTI0MDAwYjQ3MDEwMjdmMjMwMDQxMTA2YjIyMDIyNDAwMTA0MzIxMDMyMDAyNDIwMDM3MDMwODIwMDIyMDAxYWQ0MmZmMDE4MzQxMDEyMDAyNDEwODZhMTA4MjAxMjAwMzIwMDIyODAyMDAyMDAyMjgwMjA0MTAxODFhMjAwMDIwMDMxMDRlMjAwMjQxMTA2YTI0MDAwYjhmMDIwMjA0N2YwMTdlMjAwMzIwMDE0MjM4ODYyMDAxNDI4MGZlMDM4MzQyMjg4Njg0MjAwMTQyODA4MGZjMDc4MzQyMTg4NjIwMDE0MjgwODA4MGY4MGY4MzQyMDg4Njg0ODQyMDAxNDIwODg4NDI4MDgwODBmODBmODMyMDAxNDIxODg4NDI4MDgwZmMwNzgzODQyMDAxNDIzODg4MjIwODIwMDE0MjI4ODg0MjgwZmUwMzgzODQ4NDg0MzcwMDAwMDI0MDIwMDE1MDA0NDA0MWI4OGQwODIxMDMwYzAxMGIyMDAyMDQ0MDIwMDE0MjdmNTEwNDQwMjAwMzQxMDc2YTIxMDM0MTAxMjEwNDBjMDIwYjIwMDhhN2MwMjIwNTQxMDc3NTIxMDYyMDA1NDEwMDQ4MjEwNTBiMjAwNjQxZmYwMTcxMjEwNjAzNDAwMjQwMDI0MDIwMDQ0MTA4NDcwNDQwMjAwMzIwMDQ2YTJkMDAwMDIyMDcyMDA2NDYwZDAyMjAwMjQ1MjAwNzQxMDc3NjIwMDU0NjcyNDUwNDQwMjAwNDQxMDE2YjIyMDQ0MTA5NGYwZDAyMGIyMDAzMjAwNDZhMjEwMzQxMDgyMDA0NmIyMTA0MGMwNDBiMTAyYzAwMGIxMDJjMDAwYjIwMDQ0MTAxNmEyMTA0MGMwMDBiMDAwYjIwMDAyMDA0MzYwMjA0MjAwMDIwMDMzNjAyMDAwYmEzMDEwMjAzN2YwMTdlMjMwMDQxMTA2YjIyMDMyNDAwMDI3ZjIwMDIyOTAzMDA1MDA0NDAyMDAxMjgwMjEwMjEwNDIwMDMyMDAxMjgwMjAwMjAwMTI4MDIwNDIwMDIyODAyMDgyMDAyMjgwMjBjMTA2ZDIwMDMyODAyMDAyMTA1MjAwMzI4MDIwNDBjMDEwYjEwNDcyMTA0MjAwMzQxMDg2YTIwMDEyODAyMDAyMDAxMjgwMjA0MjAwMTI4MDIxMDIwMDIxMDZjMjAwMzI4MDIwODIxMDUyMDAzMjgwMjBjMGIyMTAyMjAwMTI5MDMwODIxMDYyMDAwMTA3ZDM2MDIxODIwMDAyMDA0MzYwMjEwMjAwMDIwMDYzNzAzMDgyMDAwMjAwMjM2MDIwNDIwMDAyMDA1MzYwMjAwMjAwMzQxMTA2YTI0MDAwYjNmMDEwMTdmMTA0MzIxMDMyMDAwMjAwMTI5MDMwMDM3MDMwMDIwMDA0MTEwNmEyMDAxNDExMDZhMjkwMzAwMzcwMzAwMjAwMDQxMDg2YTIwMDE0MTA4NmEyOTAzMDAzNzAzMDAyMDAzMjAwMjEwNDQyMDAwMjAwMzM2MDIxODBiNTIwMTAyN2YyMzAwNDExMDZiMjIwNDI0MDAyMDA0NDEwODZhMjAwMDI4MDIwODIwMDAyODAyMDAyMjA1MjAwMTEwODYwMTIwMDQyODAyMDg0MTAxNDYwNDQwMjAwNDI4MDIwYzIwMDAyMDAxMjAwNTZhMzYwMjAwMjAwNDQxMTA2YTI0MDAwZjBiMjAwMjIwMDM0MWEzODUwODQxMGYxMDRjMDAwYjFmMDAyMDAxMjAwMjIwMDMxMDA0MjIwMTEwMWYyMTAyMjAwMDIwMDEzNjAyMDQyMDAwMjAwMjQ1MzYwMjAwMGI0ZjAxMDM3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MTA4NmEyMDAwMjgwMjA4MjAwMDI4MDIwMDIyMDMyMDAxMTA4NjAxMjAwMjI4MDIwODQxMDE0NjA0NDAyMDAyMjgwMjBjMjAwMDIwMDEyMDAzNmEzNjAyMDAyMDAyNDExMDZhMjQwMDBmMGI0MWEzODUwODQxMGYxMDg4MDEwMDBiMWEwMTAxN2Y0MWYxODUwODQxMTYxMDRkMjIwMjIwMDAyMDAxMTAwZjFhMjAwMjEwMDAwMDBiMTUwMDQxN2YyMDAwMjAwMTEwMTkyMjAwNDEwMDQ3MjAwMDQxMDA0ODFiMGIwZjAwMjAwMDIwMDEyMDAzMjAwMjEwMjg0MTAwNDcwYjA5MDAyMDAwMjAwMTEwMDUxYTBiMGMwMDIwMDAyMDAwMjAwMTEwMDIyMDAwMGIwYzAwMjAwMDIwMDAyMDAxMTAxYTIwMDAwYjBjMDAyMDAwMjAwMDIwMDExMDFiMjAwMDBiMGEwMDIwMDAyMDAwMjAwMTEwMDIwYjBjMDAyMDAwMjAwMDIwMDExMDYwMjAwMDBiMTAwMTAxN2YxMDJhMjIwMjIwMDAyMDAxMTAwMjIwMDIwYjEwMDEwMTdmMTAyYTIyMDIyMDAwMjAwMTEwMWIyMDAyMGIxMDAxMDE3ZjEwMmEyMjAyMjAwMDIwMDExMDYwMjAwMjBiMTkwMTAxN2YxMDJhMjEwMjQxNzIyMDAxYWQxMDAxMjAwMjIwMDA0MTcyMTAxZTIwMDIwYjBlMDEwMTdmMTA0MzIyMDEyMDAwMTA0NDIwMDEwYjRjMDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMTA0MzIxMDIyMDAxMjAwMDQxMTg3NDIwMDA0MTgwZmUwMzcxNDEwODc0NzIyMDAwNDEwODc2NDE4MGZlMDM3MTIwMDA0MTE4NzY3MjcyMzYwMjBjMjAwMjIwMDE0MTBjNmE0MTA0MTAwZjFhMjAwMTQxMTA2YTI0MDAyMDAyMGI4NDAxMDIwNDdmMDE3ZTIzMDA0MTIwNmIyMjAyMjQwMDIwMDI0MTEwNmE0MjAwMzcwMzAwMjAwMjQyMDAzNzAzMDgyMDAxNDEwMDIwMDI0MTA4NmEyMjAzNDExMDEwNmYyMDAyNDEwMDM2MDIxYzIwMDMyMDAyNDExYzZhMjIwNDEwOTgwMTIxMDUyMDAzMjAwNDEwOTkwMTIxMDYyMDAyNDEwODZhMjAwMjQxMWM2YTEwOTgwMTIxMDMwNDQwNDFjMzg1MDg0MTFkMTAwMzAwMGIyMDAwMjAwMzM2MDIwYzIwMDAyMDA1MzYwMjA4MjAwMDIwMDYzNzAzMDAyMDAyNDEyMDZhMjQwMDBiNzQwMTAxN2YyMzAwNDExMDZiMjIwMjI0MDAyMDAyNDEwMDM2MDIwYzIwMDIyMDAwNDExMDIwMDEyODAyMDAyMjAwMjAwMDQxMDQ2YTIyMDAxMDlkMDEyMDAyNDEwYzZhNDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDEyMDAwMzYwMjAwMjAwMjI4MDIwYzIxMDAyMDAyNDExMDZhMjQwMDIwMDA0MTE4NzQyMDAwNDE4MGZlMDM3MTQxMDg3NDcyMjAwMDQxMDg3NjQxODBmZTAzNzEyMDAwNDExODc2NzI3MjBiYTgwMTAyMDE3ZTAxN2YyMzAwNDExMDZiMjIwMzI0MDAyMDAzNDIwMDM3MDMwODIwMDMyMDAwNDExMDIwMDEyODAyMDAyMjAwMjAwMDQxMDg2YTIyMDAxMDlkMDEyMDAzNDEwODZhNDEwODIwMDMyODAyMDAyMDAzMjgwMjA0MTA1NzIwMDEyMDAwMzYwMjAwMjAwMzI5MDMwODIxMDIyMDAzNDExMDZhMjQwMDIwMDI0MjM4ODYyMDAyNDI4MGZlMDM4MzQyMjg4Njg0MjAwMjQyODA4MGZjMDc4MzQyMTg4NjIwMDI0MjgwODA4MGY4MGY4MzQyMDg4Njg0ODQyMDAyNDIwODg4NDI4MDgwODBmODBmODMyMDAyNDIxODg4NDI4MDgwZmMwNzgzODQyMDAyNDIyODg4NDI4MGZlMDM4MzIwMDI0MjM4ODg4NDg0ODQwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwYzEwZjkwMTBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTBkMTBmOTAxMGIwZjAwMjAwMDIwMDEyMDAyMjAwMzQxMDkxMGY5MDEwYjJmMDAwMjQwMjAwMzIwMDQ0ZDA0NDAyMDAyMjAwNDQ5MGQwMTIwMDAyMDA0MjAwMzZiMzYwMjA0MjAwMDIwMDEyMDAzNmEzNjAyMDAwZjBiMTAyYzAwMGIxMDJjMDAwYmI0MDEwMTAzN2YyMzAwNDExMDZiMjIwNDI0MDAwMjdmMDI0MDIwMDAyZDAwMDg0NTA0NDAyMDAwMjgwMjAwMjIwNTEwMTIyMjA2NDE5MGNlMDA0YjBkMDE0MWUwZGIwODJkMDAwMDBkMDE0MWRjZGIwODIwMDYzNjAyMDA0MWUwZGIwODQxMDEzYTAwMDAyMDA0NDEwODZhMjAwNjEwOWYwMTIwMDU0MTAwMjAwNDI4MDIwODIwMDQyODAyMGMxMDZmMWEyMDAwNDEwMTNhMDAwODBiNDEwMTIwMDEyMDAzNmEyMjAwNDFkY2RiMDgyODAyMDA0YjBkMDExYTIwMDQyMDAxMjAwMDEwYTAwMTIwMDIyMDAzMjAwNDI4MDIwMDIwMDQyODAyMDQxMDU3NDEwMDBjMDEwYjIwMDA0MTAwM2EwMDA4MjAwNTIwMDEyMDAyMjAwMzEwNmYwYjIwMDQ0MTEwNmEyNDAwMGIzZTAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MTA4NmE0MWNjOGQwODQxOTBjZTAwMjAwMTEwZDAwMTIwMDIyODAyMGMyMTAxMjAwMDIwMDIyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDI0MTEwNmEyNDAwMGIzMjAwMDI0MDIwMDEyMDAyNGQwNDQwMjAwMjQxOTBjZTAwNGQwZDAxMTAyYzAwMGIxMDJjMDAwYjIwMDAyMDAyMjAwMTZiMzYwMjA0MjAwMDIwMDE0MWNjOGQwODZhMzYwMjAwMGIxOTAwMjAwMDQxZmVmZmZmZmYwNzQ2MDQ0MDQxZTA4NTA4NDEwZDEwMDMwMDBiMjAwMDBiNGQwMTAxN2YyMzAwNDExMDZiMjIwMTI0MDAyMDAwMTAxMjQxMDQ0NjA0NDAyMDAxNDEwMDM2MDIwYzIwMDA0MTAwMjAwMTQxMGM2YTQxMDQxMDhhMDExYTQxZmVmZmZmZmYwNzIwMDAyMDAxMjgwMjBjNDFjNThlYjFhMjA0NDYxYjIxMDAwYjIwMDE0MTEwNmEyNDAwMjAwMDBiODAwMTAxMDI3ZjIzMDA0MTEwNmIyMjAzMjQwMDAyNDAwMjQwMjAwMDJkMDAwNDA0NDA0MTkwY2UwMDQxZGNkYjA4MjgwMjAwMjIwNDZiMjAwMjQ5MGQwMTIwMDM0MTA4NmEyMDA0MjAwMjIwMDQ2YTIyMDAxMGE0MDEyMDAzMjgwMjA4MjAwMzI4MDIwYzIwMDEyMDAyMTA1NzQxZGNkYjA4MjAwMDM2MDIwMDBjMDIwYjIwMDAyODAyMDAyMDAxMjAwMjEwMGYxYTBjMDEwYjIwMDAxMGE1MDEyMDAwMjgwMjAwMjAwMTIwMDIxMDBmMWEwYjIwMDM0MTEwNmEyNDAwMGIzZjAxMDE3ZjIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTA4NmEyMDAxMjAwMjQxY2M4ZDA4NDE5MGNlMDAxMDJiMjAwMzI4MDIwYzIxMDEyMDAwMjAwMzI4MDIwODM2MDIwMDIwMDAyMDAxMzYwMjA0MjAwMzQxMTA2YTI0MDAwYjU4MDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMjAwMDJkMDAwNDIwMDA0MTAwM2EwMDA0MDQ0MDIwMDE0MTA4NmE0MTAwNDFkY2RiMDgyODAyMDAxMGEwMDEyMDAwMjgwMjAwMjAwMTI4MDIwODIwMDEyODAyMGMxMDBmMWE0MWRjZGIwODQxMDAzNjAyMDA0MWUwZGIwODQxMDAzYTAwMDAwYjIwMDE0MTEwNmEyNDAwMGIwZDAwMjAwMDQxNjcxMDIwMWE0MTY3MTAxMjBiMGQwMDIwMDAxMDJhMjIwMDEwMjAxYTIwMDAwYjEyMDAyMDAwMTBhNjAxNDUwNDQwMjAwMDIwMDExMDIxMWEwYjBiMTIwMDIwMDAxMGE2MDE0NTA0NDAyMDAwMjAwMTEwYWEwMTBiMGIzODAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MjAwMzcwMzA4MjAwMjIwMDE0MTAwMjAwMjQxMDg2YTEwODIwMTIwMDAyMDAyMjgwMjAwMjAwMjI4MDIwNDEwYjgwMTIwMDI0MTEwNmEyNDAwMGIwYTAwMjAwMDEwYTcwMTEwYTIwMTBiYjkwMTAxMDQ3ZjIzMDA0MTIwNmIyMjAxMjQwMDIwMDAxMGE3MDEyMTAyMTA0MzIxMDQyMDAyMTAxMjIxMDAyMDAxNDExMDZhNDEwMDNhMDAwMDIwMDE0MTBjNmEyMDAwMzYwMjAwMjAwMTIwMDIzNjAyMDgyMDAxMjAwMDM2MDIwNDIwMDE0MTAwMzYwMjAwMDM3ZjIwMDAyMDAzNDYwNDdmMjAwMTJkMDAxMDA0NDA0MWRjZGIwODQxMDAzNjAyMDA0MWUwZGIwODQxMDAzYTAwMDAwYjIwMDE0MTIwNmEyNDAwMjAwNDA1MjAwMTEwYWQwMTIxMDAyMDAxMTBhZTAxMjEwMjIwMDExMGFmMDEyMTAzMjAwMTIwMDAzNjAyMWMyMDAxMjAwMzM2MDIxODIwMDEyMDAyMzYwMjE0MjAwNDIwMDE0MTE0NmExMDU5MjAwMTI4MDIwMDIxMDMyMDAxMjgwMjA0MjEwMDBjMDEwYjBiMGIzMzAyMDE3ZjAxN2UyMzAwNDExMDZiMjIwMTI0MDAyMDAxNDEwMDM2MDIwYzIwMDAyMDAxNDEwYzZhMjIwMDQxMDQxMGIzMDEyMDAwNDEwNDEwYjEwMTIwMDE0MTEwNmEyNDAwYTcwYjA5MDAyMDAwNDEyMDEwODcwMTBiMGMwMDIwMDAyMDAwMTBhZDAxMTA4NzAxMGIzYTAxMDE3ZjIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTA4NmEyMDAxNDEwODIwMDIxMGQwMDEyMDAzMjgwMjBjMjEwMTIwMDAyMDAzMjgwMjA4MzYwMjAwMjAwMDIwMDEzNjAyMDQyMDAzNDExMDZhMjQwMDBiMzQwMTAxN2UwMjQwMjAwMTQ1MGQwMDAzNDAyMDAxNDUwZDAxMjAwMTQxMDE2YjIxMDEyMDAwMzEwMDAwMjAwMjQyMDg4Njg0MjEwMjIwMDA0MTAxNmEyMTAwMGMwMDBiMDAwYjIwMDIwYmZkMDEwMTA2N2YyMzAwNDEzMDZiMjIwMTI0MDAyMDAwMTBhNzAxMjEwMjEwNDMyMTA0MjAwMjEwMTIyMTAwMjAwMTQxMTg2YTQxMDAzYTAwMDAyMDAxNDExNDZhMjAwMDM2MDIwMDIwMDEyMDAyMzYwMjEwMjAwMTIwMDAzNjAyMGMyMDAxNDEwMDM2MDIwODAzN2YyMDAwMjAwMzQ2MDQ3ZjIwMDEyZDAwMTgwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAxNDEzMDZhMjQwMDIwMDQwNTIwMDE0MTA4NmEyMjAyMTBhZDAxMjEwMzIwMDIxMGFlMDEyMTA1MjAwMjEwYWYwMTIxMDY0MTAwMjEwMDIwMDE0MTAwM2EwMDJmMjAwMjIwMDE0MTJmNmE0MTAxMTBiMzAxMDI0MDAyNDAwMjQwMjAwMTJkMDAyZjBlMDIwMjAxMDAwYjQxZWQ4NjA4NDEwZDEwODgwMTAwMGI0MTAxMjEwMDBiMjAwMTIwMDAzYTAwMjgyMDAxMjAwNjM2MDIyNDIwMDEyMDA1MzYwMjIwMjAwMTIwMDMzNjAyMWMyMDA0MjAwMTQxMWM2YTEwNTUyMDAxMjgwMjA4MjEwMzIwMDEyODAyMGMyMTAwMGMwMTBiMGIwYjJkMDAyMDAwNDEwODZhMjAwMDI4MDIwMDIwMDEyMDAyMTA5ZTAxMDQ0MDQxYTM4NTA4NDEwZjEwODgwMTAwMGIyMDAwMjAwMDI4MDIwMDIwMDI2YTM2MDIwMDBiODcwMTAxMDE3ZjIzMDA0MTMwNmIyMjAyMjQwMDIwMDIyMDAxMzYwMjA4MjAwMjEwMzUyMDAyMjAwMjJkMDAwNDNhMDAxMDIwMDIyMDAyMjgwMjAwMzYwMjBjMjAwMjIwMDExMDEyMzYwMjFjMjAwMjQxMDAzNjAyMTgyMDAyMjAwMjQxMDg2YTM2MDIxNDAzNDAyMDAyNDEyMDZhMjAwMjQxMTQ2YTEwYjUwMTIwMDIyZDAwMmM0MTAyNDY0NTA0NDAyMDAyNDEyMDZhMjAwMjQxMGM2YTEwYjYwMTBjMDEwYjBiMjAwMDIwMDIyODAyMGMyMDAyMmQwMDEwMTBiNzAxMjAwMjQxMzA2YTI0MDAwYmM1MDMwMTA3N2YyMzAwNDFkMDAwNmIyMjAyMjQwMDAyNDAyMDAxMjgwMjA0MjIwNDQxMGQ2YTIyMDgyMDAxMjgwMjA4NGQwNDQwMjAwMTI4MDIwMDIwMDI0MjAwMzcwMDM1MjAwMjQyMDAzNzAzMzAyODAyMDAyMDA0MjAwMjQxMzA2YTIyMDM0MTBkMTA2ZjFhMjAwMjQxMDAzNjAyNDAyMDAyNDEyODZhMjAwMzQxMDA0MTA0MTBiZjAxMjAwMjQxNDA2YjIyMDU0MTA0MjAwMjI4MDIyODIwMDIyODAyMmMxMDU3MjAwMjI4MDI0MDIxMDQyMDAyNDFjODAwNmE0MTAwM2EwMDAwMjAwMjQyMDAzNzAzNDAyMDAyNDEyMDZhMjAwMzQxMDQ0MTBkMTBiZjAxMjAwNTQxMDkyMDAyMjgwMjIwMjAwMjI4MDIyNDEwNTcyMDAyNDEwMDM2MDI0YzIwMDI0MTE4NmEyMDA1NDEwMDQxMDQxMGMwMDEyMDAyNDFjYzAwNmEyMjA3NDEwNDIwMDIyODAyMTgyMDAyMjgwMjFjMTA1NzIwMDIyODAyNGMyMTAzMjAwMjQxMDAzNjAyNGMyMDAyNDExMDZhMjAwNTQxMDQ0MTA4MTBjMDAxMjAwNzQxMDQyMDAyMjgwMjEwMjAwMjI4MDIxNDEwNTcyMDAyMjgwMjRjMjEwNjIwMDI0MTAwM2EwMDRjMjAwMjQxMDg2YTIwMDU0MTA4NDEwOTEwYzAwMTIwMDc0MTAxMjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMDIwMDIyZDAwNGM0MTAwNDczYTAwMGMyMDAwMjAwNjQxMTg3NDIwMDY0MTgwZmUwMzcxNDEwODc0NzIyMDA2NDEwODc2NDE4MGZlMDM3MTIwMDY0MTE4NzY3MjcyMzYwMjA4MjAwMDIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwNDIwMDAyMDA0NDExODc0MjAwNDQxODBmZTAzNzE0MTA4NzQ3MjIwMDQ0MTA4NzY0MTgwZmUwMzcxMjAwNDQxMTg3NjcyNzIzNjAyMDAyMDAxMjAwODM2MDIwNDBjMDEwYjIwMDA0MTAyM2EwMDBjMGIyMDAyNDFkMDAwNmEyNDAwMGI0ZDAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDAyODAyMDAyMDAxMTBiYzAxMjAwMTIwMDAyODAyMDQxMGJkMDEyMDAwNDEwODZhMjgwMjAwMjAwMTEwM2UyMDAyMjAwMDQxMGM2YTJkMDAwMDNhMDAwZjIwMDEyMDAyNDEwZjZhNDEwMTEwYTMwMTIwMDI0MTEwNmEyNDAwMGIwZDAwMjAwMDIwMDEyMDAyMTAzODEwMjExYTBiMGQwMDIwMDAyMDAxMjAwMjEwNGQxMDIxMWEwYjg3MDEwMTAxN2YyMzAwNDEzMDZiMjIwMjI0MDAyMDAyMjAwMTM2MDIwODIwMDIxMDM1MjAwMjIwMDIyZDAwMDQzYTAwMTAyMDAyMjAwMjI4MDIwMDM2MDIwYzIwMDIyMDAxMTAxMjM2MDIxYzIwMDI0MTAwMzYwMjE4MjAwMjIwMDI0MTA4NmEzNjAyMTQyMDAyNDEyNDZhMjEwMTAzNDAyMDAyNDEyMDZhMjAwMjQxMTQ2YTEwYmEwMTIwMDIyODAyMjAwNDQwMjAwMTIwMDI0MTBjNmExMGJiMDEwYzAxMGIwYjIwMDAyMDAyMjgwMjBjMjAwMjJkMDAxMDEwYjcwMTIwMDI0MTMwNmEyNDAwMGI4OTAzMDEwNjdmMjMwMDQxNDA2YTIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjAzNDEwYzZhMjIwNjIwMDEyODAyMDg0ZDA0N2YyMDAxMjgwMjAwMjAwMjQxMjg2YTQxMDAzNjAyMDAyMDAyNDIwMDM3MDMyMDI4MDIwMDIwMDMyMDAyNDEyMDZhMjIwMzQxMGMxMDZmMWEyMDAyNDEwMDM2MDIzMDIwMDI0MTE4NmEyMDAzNDEwMDQxMDQxMGMxMDEyMDAyNDEzMDZhMjIwNTQxMDQyMDAyMjgwMjE4MjAwMjI4MDIxYzEwNTcyMDAyMjgwMjMwMjEwNDIwMDI0MjAwMzcwMzMwMjAwMjQxMTA2YTIwMDM0MTA0NDEwYzEwYzEwMTIwMDU0MTA4MjAwMjI4MDIxMDIwMDIyODAyMTQxMDU3MjAwMjQxMDAzNjAyM2MyMDAyNDEwODZhMjAwNTQxMDA0MTA0MTBjMjAxMjAwMjQxM2M2YTIyMDc0MTA0MjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMjI4MDIzYzIxMDMyMDAyNDEwMDM2MDIzYzIwMDIyMDA1NDEwNDQxMDgxMGMyMDEyMDA3NDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDIyODAyM2MyMTA1MjAwMDQxMGM2YTIwMDQ0MTE4NzQyMDA0NDE4MGZlMDM3MTQxMDg3NDcyMjAwNDQxMDg3NjQxODBmZTAzNzEyMDA0NDExODc2NzI3MjM2MDIwMDIwMDAyMDAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyMDQyMDAxMjAwNjM2MDIwNDIwMDA0MTA4NmEyMDA1NDExODc0MjAwNTQxODBmZTAzNzE0MTA4NzQ3MjIwMDU0MTA4NzY0MTgwZmUwMzcxMjAwNTQxMTg3NjcyNzIzNjAyMDA0MTAxMDU0MTAwMGIzNjAyMDAyMDAyNDE0MDZiMjQwMDBiMWYwMDIwMDAyODAyMDgyMDAxMTBiYzAxMjAwMTIwMDAyODAyMDAxMGJkMDEyMDAwMjgwMjA0MjAwMTEwM2UwYjQ2MDEwMTdmMjMwMDQxMTA2YjIyMDIyNDAwMjAwMjIwMDA0MTE4NzQyMDAwNDE4MGZlMDM3MTQxMDg3NDcyMjAwMDQxMDg3NjQxODBmZTAzNzEyMDAwNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwYTMwMTIwMDI0MTEwNmEyNDAwMGI4MTAxMDEwMzdmMjMwMDQxMTA2YjIyMDIyNDAwMDI0MDAyNDAyMDAwMmQwMDA0MDQ0MDIwMDExMDEyMjIwNDQxOTBjZTAwNDFkY2RiMDgyODAyMDAyMjAzNmI0YjBkMDEyMDAyNDEwODZhMjAwMzIwMDMyMDA0NmEyMjAwMTBhNDAxMjAwMTQxMDAyMDAyMjgwMjA4MjAwMjI4MDIwYzEwNmYxYTQxZGNkYjA4MjAwMDM2MDIwMDBjMDIwYjIwMDAyODAyMDAyMDAxMTA4YjAxMGMwMTBiMjAwMDEwYTUwMTIwMDAyODAyMDAyMDAxMTA4YjAxMGIyMDAyNDExMDZhMjQwMDBiMzgwMjAxN2YwMTdlMjMwMDQxMTA2YjIyMDEyNDAwMjAwMTQyMDAzNzAzMDgyMDAwMjAwMTQxMDg2YTIyMDA0MTA4NDE4YTg1MDg0MTBiMTBjNTAxMjAwMDQxMDgxMGIxMDEyMDAxNDExMDZhMjQwMDBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTBkMTBmODAxMGIwZjAwMjAwMDIwMDEyMDAyMjAwMzQxMDkxMGY4MDEwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwYzEwZjgwMTBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTA4MTBmODAxMGI4MDAyMDEwNTdmMjMwMDQxMjA2YjIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjAzNDEwODZhMjIwNTIwMDEyODAyMDg0ZDA0N2YyMDAxMjgwMjAwMjAwMjQyMDAzNzAzMTAyODAyMDAyMDAzMjAwMjQxMTA2YTIyMDM0MTA4MTA2ZjFhMjAwMjQxMDAzNjAyMWMyMDAyNDEwODZhMjAwMzQxMDA0MTA0MTBjMjAxMjAwMjQxMWM2YTIyMDY0MTA0MjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMjI4MDIxYzIxMDQyMDAyNDEwMDM2MDIxYzIwMDIyMDAzNDEwNDQxMDgxMGMyMDEyMDA2NDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDIyODAyMWMyMTAzMjAwMDIwMDQ0MTE4NzQyMDA0NDE4MGZlMDM3MTQxMDg3NDcyMjAwNDQxMDg3NjQxODBmZTAzNzEyMDA0NDExODc2NzI3MjM2MDIwNDIwMDEyMDA1MzYwMjA0MjAwMDQxMDg2YTIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwMDQxMDEwNTQxMDAwYjM2MDIwMDIwMDI0MTIwNmEyNDAwMGI4YTAxMDEwNDdmMjMwMDQxMTA2YjIyMDMyNDAwMjAwMTI4MDIwNDIyMDI0MTA0NmEyMjA0MjAwMTI4MDIwODRiMDQ3ZjQxMDAwNTIwMDEyODAyMDAyMDAzNDEwMDM2MDIwYzI4MDIwMDIwMDIyMDAzNDEwYzZhNDEwNDEwNmYxYTIwMDMyODAyMGMyMTAyMjAwMTIwMDQzNjAyMDQyMDAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIyMTAyNDEwMTBiMjEwMTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAyMDAzNDExMDZhMjQwMDBiMzAwMDIwMDA0MTA4NmEyMDAwMjgwMjAwMjAwMTIwMDIxMDllMDEwNDQwMjAwMzIwMDQ0MWEzODUwODQxMGYxMDRjMDAwYjIwMDAyMDAwMjgwMjAwMjAwMjZhMzYwMjAwMGI3ODAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwNDIzODg2MjAwMDQyODBmZTAzODM0MjI4ODY4NDIwMDA0MjgwODBmYzA3ODM0MjE4ODYyMDAwNDI4MDgwODBmODBmODM0MjA4ODY4NDg0MjAwMDQyMDg4ODQyODA4MDgwZjgwZjgzMjAwMDQyMTg4ODQyODA4MGZjMDc4Mzg0MjAwMDQyMjg4ODQyODBmZTAzODMyMDAwNDIzODg4ODQ4NDg0MzcwMzA4MjAwMTIwMDI0MTA4NmE0MTA4MTBhMzAxMjAwMjQxMTA2YTI0MDAwYmQ2MDEwMTA2N2YyMzAwNDE0MDZhMjIwMDI0MDAxMGM4MDExMDVjMjEwMTIwMDAxMGM5MDExMDVjMzYwMjA4MjAwMDEwNDczNjAyMGMyMDAwNDEyODZhMjIwMjIwMDExMDMyNDFmNzgwMDg0MTEwMTAzMzIwMDAyODAyMmMyMjAxMjAwMDQxMDg2YTEwNjQyMDAxMjAwMDQxMGM2YTEwNjQyMDAwNDEyMDZhMjIwMTIwMDA0MTM4NmEyMjAzMjkwMzAwMzcwMzAwMjAwMDQxMTg2YTIyMDQyMDAwNDEzMDZhMjIwNTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzI4MzcwMzEwMjAwMDIwMDA0MTEwNmExMDdjMzYwMjA0MjAwMjEwYzkwMTEwNWMxMDMyNDFmNTgxMDg0MTE4MTAzMzIwMDAyODAyMmMyMDAwNDEwNDZhMTA3ODIwMDEyMDAzMjkwMzAwMzcwMzAwMjAwNDIwMDUyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDMyODM3MDMxMDIwMDA0MTEwNmExMDdjMjAwMDQxNDA2YjI0MDAwYjBhMDA0MTk1ODgwODQxMTIxMDRkMGIwYTAwNDE4MTg4MDg0MTE0MTA0ZDBiYTkwMzAyMDU3ZjAxN2UyMzAwNDE4MDAxNmIyMjAyMjQwMDEwY2IwMTEwYWIwMTIxMDMyMDAxMjgwMjBjMjEwNDIwMDEyOTAzMDAyMTA3MjAwMTI4MDIwODIxMDEwMjQwMjAwMzQxZmVmZmZmZmYwNzQ2MDQ0MDIwMDE0MWZlZmZmZmZmMDc0NjBkMDEyMDAxMTBhMTAxMjEwMTIwMDIyMDA0MzYwMjE0MjAwMjIwMDczNzAzMDgyMDAyMjAwMTM2MDIxMDEwY2MwMTEwNWMyMTAzMjAwNDEwMjkyMTA0MjAwMjQxZTAwMDZhMjIwMTIwMDMxMDMyNDFhMTgwMDg0MTBhMTAzMzIwMDI0MTQwNmIyMjAzMjAwMTIwMDI0MTA4NmExMDg0MDEyMDAxMjAwMzEwY2QwMTIwMDExMDM0NDIwMDIxMDc0MWZlZmZmZmZmMDcyMTAxMGIyMDAyNDFlMDAwNmEyMDAwMTAzMjQxYzA4MTA4NDExMjEwMzMyMDAyMjgwMjY0MWEyMDAyNDEyODZhMjIwMDIwMDI0MWYwMDA2YTIyMDUyOTAzMDAzNzAzMDAyMDAyNDEyMDZhMjIwMzIwMDI0MWU4MDA2YTIyMDYyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDM2MDM3MDMxODAyNDAyMDAxNDFmZWZmZmZmZjA3NDcwNDQwMjAwNTIwMDAyOTAzMDAzNzAzMDAyMDA2MjAwMzI5MDMwMDM3MDMwMDIwMDIyMDAyMjkwMzE4MzcwMzYwMjAwMjEwN2QzNjAyNzgyMDAxMTBhMTAxMjEwMDIwMDIyMDA0MzYwMjNjMjAwMjIwMDczNzAzMzAyMDAyMjAwMDM2MDIzODIwMDI0MTQwNmIyMDAyNDFlMDAwNmEyMDAyNDEzMDZhMTA4MzAxMGMwMTBiMjAwMjQxZDAwMDZhMjAwMDI5MDMwMDM3MDMwMDIwMDI0MWM4MDA2YTIwMDMyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDMxODM3MDM0MDIwMDIyMDA0MzYwMjU4MGIyMDAyNDFlMDAwNmEyMDAyNDE0MDZiMTA3NjIwMDI0MTgwMDE2YTI0MDAwZjBiNDFjYTg4MDg0MTFmMTA0MTAwMGIwYTAwNDFlODhjMDg0MTIyMTA0ZDBiMGEwMDQxZmE4NjA4NDExZDEwNGQwYmZmMDIwMjAzN2YwMjdlMjMwMDQxZDAwMDZiMjIwMjI0MDAyMDAyNDEzMDZhMjIwNDIwMDE0MTEwNmEyOTAzMDAzNzAzMDAyMDAyNDEyODZhMjIwMzIwMDE0MTA4NmEyOTAzMDAzNzAzMDAyMDAyMjAwMTI5MDMwMDM3MDMyMDIwMDIxMDdkMzYwMjM4MDI0MDAyNDAwMjQwMDI0MDIwMDEyODAyMTgyMjAxMTA2NTBlMDIwMTAyMDAwYjEwNDcyMTAzMjAwMjQxMDg2YTIwMDIyODAyMjAyMDAyMjgwMjI0MjAwNDIwMDExMDYyMjAwMjI5MDMwODIxMDUyMDAyMjkwMzI4MjEwNjIwMDAxMDdkMzYwMjE4MjAwMDIwMDMzNjAyMTAyMDAwMjAwNjM3MDMwODIwMDAyMDA1MzcwMzAwMGMwMjBiMjAwMDIwMDIyOTAzMjAzNzAzMDAyMDAwNDExODZhMjAwMjQxMzg2YTI5MDMwMDM3MDMwMDIwMDA0MTEwNmEyMDA0MjkwMzAwMzcwMzAwMjAwMDQxMDg2YTIwMDMyOTAzMDAzNzAzMDAwYzAxMGIyMDAyNDE0MDZiMjAwMTEwOTcwMTAyN2YyMDAyMjkwMzQwNTAwNDQwMjAwMjI4MDIzMDIxMDEyMDAyNDExMDZhMjAwMjI4MDIyMDIwMDIyODAyMjQyMDAyMjgwMjQ4MjAwMjI4MDI0YzEwNmQyMDAyMjgwMjEwMjEwMzIwMDIyODAyMTQwYzAxMGIxMDQ3MjEwMTIwMDI0MTE4NmEyMDAyMjgwMjIwMjAwMjI4MDIyNDIwMDIyODAyMzAyMDAyNDE0MDZiMTA2YzIwMDIyODAyMTgyMTAzMjAwMjI4MDIxYzBiMjEwNDIwMDIyOTAzMjgyMTA1MjAwMDEwN2QzNjAyMTgyMDAwMjAwMTM2MDIxMDIwMDAyMDA1MzcwMzA4MjAwMDIwMDQzNjAyMDQyMDAwMjAwMzM2MDIwMDBiMjAwMjQxZDAwMDZhMjQwMDBiMGQwMDIwMDAxMDYxNDFmZjAxNzE0MTAxNGIwYjE3MDAyMDAwMjgwMjAwMjAwMTI4MDIwMDEwODkwMTQxZmYwMTcxNDFmZjAxNDYwYjNiMDEwMTdmMjMwMDQxMTA2YjIyMDQyNDAwMjAwNDQxMDg2YTQxMDAyMDAzMjAwMTIwMDIxMDJiMjAwNDI4MDIwYzIxMDEyMDAwMjAwNDI4MDIwODM2MDIwMDIwMDAyMDAxMzYwMjA0MjAwNDQxMTA2YTI0MDAwYjBhMDA0MWJkODgwODQxMGQxMDRkMGIwYTAwNDFmMjg3MDg0MTBmMTA0ZDBiMGEwMDQxZGQ4NzA4NDExNTEwNGQwYjBhMDA0MWE3ODgwODQxMTYxMDRkMGIxOTAxMDE3ZjQxOTc4NzA4NDExNjEwNGQyMTAxMjAwMDI4MDIwMDIwMDExMDQwMjAwMTBiMTkwMTAxN2Y0MWFkODcwODQxMTgxMDRkMjEwMTIwMDAyODAyMDAyMDAxMTA0MDIwMDEwYjBhMDA0MWM1ODcwODQxMTgxMDRkMGIwYTAwNDE4ZjhjMDg0MTFkMTA0ZDBiMGEwMDQxYWM4YzA4NDExZDEwNGQwYjBhMDA0MWM5OGMwODQxMWYxMDRkMGJhNzA1MDIwZDdmMDI3ZTIzMDA0MTQwNmEyMjAwMjQwMDEwMjI0MTBhMTA1YTQxMDA0MWJkODgwODQxMGQxMDUwMjEwOTQxMDExMDRiMjEwMjQxMDI0MTk1ODgwODQxMTIxMDUwMjEwYTQxMDM0MTgxODgwODQxMTQxMDUwMjEwNTQxMDQ0MWYyODcwODQxMGYxMDUwMjEwNjQxMDUxMDExMjEwZDQxMDYxMDExMjEwZTQxMDcxMDU4MjEwNzQxMDgxMDUxMjEwODQxMDk0MWZhODYwODQxMWQxMDUwMjEwNDIwMDAyMDA4MzYwMjEwMjAwMDIwMDczNjAyMGMyMDA1MTAyZjEwMzIyMTAxNDFlNjgxMDg0MTBmMTA0ZDIxMDMxMDQzMjEwYjEwN2QyMTBjMTAxNjIwMDEyMDBjMjAwMzIwMGIxMDQ1MjEwMTEwMTcyMDAxMTAxMjIxMDMyMDAwNDEwMDM2MDIzMDIwMDAyMDAxMzYwMjI4MjAwMDIwMDM0MTAyNzYzNjAyMmMyMDAwNDEyODZhMjIwMzEwNzUxMDJmMTBhMjAxMjEwMTIwMDMyMDA0MTAyZjEwMmYxMDMyNDFhYjgwMDg0MTE1MTAzMzIwMDMxMDgwMDEyMTAzMDI0MDAyNDAyMDAxNDFmZWZmZmZmZjA3NDcwNDQwMjAwMTEwMmYxMGExMDEyMDAyMTAzMDBkMDE0MWU5ODgwODQxZDEwMDEwNDEwMDBiMjAwMjIwMDMxMDMwNDUwZDAxMGIxMGNjMDEyMDA0MTBhODAxMTBkOTAxMjAwMzEwYTgwMTAyNDAxMGNiMDEyMjA0MTBhNjAxMGQwMDIwMDE0MWZlZmZmZmZmMDc0NzA0NDAyMDA0MjAwMTEwMjExYTBjMDEwYjIwMDQ0MWVkODUwODQxMDQxMGI4MDEwYjEwZDEwMTIwMDkxMGE4MDExMGQ0MDEyMDAyMTBhODAxMTBjODAxMjAwYTEwYTgwMTEwYzkwMTIwMDUxMDJmMTBhODAxMTBkODAxMjAwMDQxMjg2YTIyMDEyMDA1MTAzMjQxYjY4MTA4NDEwYTEwMzMyMDAxMTA4MDAxMTBhODAxMTBkMjAxMjAwNjEwMmYxMGE4MDExMGRhMDEyMDAxMjAwNjEwMzI0MTg2ODMwODQxMGYxMDMzMjAwMTEwODAwMTEwYTgwMTIwMDAyMDA3MTAxMjM2MDIxYzIwMDA0MTAwMzYwMjE4MjAwMDIwMDA0MTBjNmEzNjAyMTQwMzQwMDI0MDIwMDA0MTI4NmEyMDAwNDExNDZhMTBjMzAxMjAwMDI4MDIyODQ1MDQ0MDIwMDAyMDA4MTAxMjM2MDIxYzIwMDA0MTAwMzYwMjE4MjAwMDIwMDA0MTEwNmEzNjAyMTQwMzQwMjAwMDQxMjg2YTIwMDA0MTE0NmExMGMzMDEyMDAwMjgwMjI4NDUwZDAyMjAwMDIwMDAyODAyMzAyMjAxMzYwMjI0MjAwMDIwMDAyODAyMmMzNjAyMjAyMDAwNDEyMDZhMTBkNTAxMjIwMjEwYTYwMTBkMDAyMDAyMjAwMTEwYjQwMTBjMDAwYjAwMGIyMDAwMjAwMDI4MDIzMDIyMDEzNjAyMjQyMDAwMjAwMDI4MDIyYzM2MDIyMDIwMDA0MTIwNmExMGQ2MDEyMjAyMTBhNjAxMGQwMTIwMDIyMDAxMTBiOTAxMGMwMTBiMGIxMGQzMDEyMDBkMTBhOTAxMTBkNzAxMjAwZTEwYTkwMTIwMDA0MTQwNmIyNDAwMGYwYjQxYmE4OTA4NDFjODAwMTA0MTAwMGIwODAwMTAyMjQxMDAxMDVhMGJjNzAxMDEwNTdmMjMwMDQxMzA2YjIyMDAyNDAwNDEwMDEwNWEwMjQwMDI0MDEwNDYxMGQxMDExMDVjMTAzMDA0NDAxMDQ2MTBkMTAxMTA1YzEwMzA0NTBkMDEyMDAwMTA0YTIyMDEzNjAyMDgxMGQ0MDExMGE3MDEyMTAyMTBjOTAxMTA1YzIxMDMyMDAwMjAwMTEwMTIzNjAyMTQyMDAwNDEwMDM2MDIxMDIwMDAyMDAwNDEwODZhMzYwMjBjMjAwMDQxMjA2YTIxMDEwMzQwMDI0MDIwMDA0MTE4NmEyMDAwNDEwYzZhMTA2NzIwMDAyOTAzMTg1MDBkMDAyMDAwMjgwMjJjMjAwMDI4MDIyODIwMDIxMDMwNDUwZDA0MTBjZTAxNDUwZDA0MjAwMzEwMmYyMDAxMTBjYTAxMGMwMTBiMGIyMDAwNDEzMDZhMjQwMDBmMGI0MTgyOGEwODQxMTYxMDQxMDAwYjQxODI4YTA4NDExNjEwNDEwMDBiNDE5ODhhMDg0MTBkMTA0MTAwMGJjNzA3MDIwOTdmMDE3ZTIzMDA0MTgwMDE2YjIyMDAyNDAwMTAyMjQxMDExMDVhMjAwMDEwNGYzNjAyMmMxMGQxMDExMDVjMjEwMTAyNDAwMjQwMDI0MDEwNDYyMjA3MjAwMTEwMzAwNDQwMjAwMDEwYzkwMTEwNWMyMjAxMzYwMjM0MjAwMDQxZTAwMDZhMjIwMjIwMDExMDJmMTAzMjQxOGQ4MjA4NDExODEwMzMyMDAwMjgwMjY0MjAwMDQxMmM2YTEwNzgyMDAwNDFkODAwNmEyMjAxMjAwMDQxZjAwMDZhMjIwNjI5MDMwMDM3MDMwMDIwMDA0MWQwMDA2YTIyMDMyMDAwNDFlODAwNmEyMjA0MjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNjAzNzAzNDgyMDAwNDFjODAwNmEyMjA1MTA3YzIxMDgyMDAyMTBjODAxMTA1YzEwMzI0MWUxODAwODQxMGExMDMzMjAwMDI4MDI2NDIyMDIyMDAwNDEzNDZhMTA2NDIwMDI0MTAwMjAwODEwNzkyMDAxMjAwNjI5MDMwMDM3MDMwMDIwMDMyMDA0MjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNjAzNzAzNDgyMDAwNDEzODZhMjAwNTEwN2UyMDAwMjgwMjQ0MTBjZTAxNDUwZDAxMjAwMDI4MDIzNDEwMzIyMTAxNDFhNTgyMDg0MTA2MTA0ZDIxMDQxMDQzMjIwMzQxMDEyMDAwMTA3OTEwNDMyMjAyMjAwMDQxMzg2YTEwNDQyMDAwMjAwMTM2MDI3MDIwMDA0MjdmMzcwMzY4MjAwMDIwMDMzNjAyNjQyMDAwMjAwNDM2MDI2MDIwMDAxMDdkMjIwNTM2MDI3ODAyNDAwMjQwMDI0MDAyNDAyMDAyMTA2NTBlMDIwMjAwMDEwYjIwMDA0MWM4MDA2YTIwMDIxMDk3MDEwMjdmMjAwMDI5MDM0ODUwMDQ0MDIwMDA0MTE4NmEyMDA0MjAwMzIwMDAyODAyNTAyMDAwMjgwMjU0MTA2ZDIwMDAyODAyMTgyMTA0MjAwMDI4MDIxYzBjMDEwYjEwNDcyMDAwNDEyMDZhMjAwNDIwMDMyMDAxMjAwMDQxYzgwMDZhMTA2YzIwMDAyODAyMjAyMTA0MjEwMTIwMDAyODAyMjQwYjIxMDMxMDdkMjEwNTBjMDEwYjEwNDcyMTAxMjAwMDQxMTA2YTIwMDQyMDAzMjAwNjIwMDIxMDYyMjAwMDI5MDM2ODIxMDkyMDAwMjgwMjE0MjEwMzIwMDAyODAyMTAyMTA0MTA3ZDIxMDUyMDA5NDI3ZjUyMGQwMTBiMTAxNjIxMDkwYjIwMDkyMDAxMjAwNTIwMDQyMDAzMTA0NTIxMDExMDE3MjAwMTEwMTIyMTAyMjAwMDQxMDAzNjAyNTAyMDAwMjAwMTM2MDI0ODIwMDAyMDAyNDEwMjc2MzYwMjRjMjAwMDQxYzgwMDZhMTA3NTIyMDIxMDEyMjEwMTIwMDA0MWYwMDA2YTQxMDAzYTAwMDAyMDAwNDFlYzAwNmEyMDAxMzYwMjAwMjAwMDIwMDIzNjAyNjgyMDAwMjAwMTM2MDI2NDIwMDA0MTAwMzYwMjYwMjAwMDQxZTAwMDZhMjIwMTQxOGE4NTA4NDEwYjEwM2ExMGEyMDEyMTAyMjAwMTEwYmUwMTIxMDkyMDAxMTAzOTIxMDEyMDAwMjgwMjY0MjAwMDI4MDI2MDQ3MGQwMjIwMDAyZDAwNzAwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIwMjQwMjAwMjQxZmVmZmZmZmYwNzQ3MDQ0MDIwMDIxMGExMDEyMTAzMGMwMTBiMTBkOTAxMTBhNzAxMjEwMzEwY2MwMTEwNWMyMDAxMTAyOTEwMzE0MjAwMjEwOTBiMjAwMTEwY2UwMTQ1MGQwMzIwMDcyMDAzMjAwOTIwMDExMDQyMjAwMDIwMDEzNjAyNmMyMDAwMjAwMzM2MDI2ODIwMDAyMDA5MzcwMzYwMjAwMDIwMDA0MWUwMDA2YTEwOTUwMTIyMDEzNjAyMzAyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDNjMjAwMDIwMDAyODAyMDgzNjAyMzgyMDAwMjAwMTEwMTIzNjAyNTAyMDAwNDEwMDM2MDI0YzIwMDAyMDAwNDEzMDZhMzYwMjQ4MDM0MDIwMDA0MWUwMDA2YTIwMDA0MWM4MDA2YTEwNjcyMDAwMjkwMzYwNTA0NTA0NDAyMDAwMjgwMjc0MjAwMDI4MDI3MDIwMDA0MTM4NmEyMjAxMTAzZTIwMDAyOTAzNjgyMDAxMTBjNjAxMjAwMTEwM2MwYzAxMGIwYjIwMDAyODAyMzgyMDAwMmQwMDNjMTAzNzIwMDA0MTgwMDE2YTI0MDAwZjBiNDE4MjhhMDg0MTE2MTA0MTAwMGI0MWU3OGEwODQxMWYxMDQxMDAwYjQxOGE4NTA4NDEwYjQxOTU4NTA4NDEwZTEwNGMwMDBiNDE4NjhiMDg0MTFhMTA0MTAwMGJmMzFkMDIxNjdmMDI3ZTIzMDA0MWEwMDI2YjIyMDAyNDAwMTAyMjQxMDAxMDVhMTBjODAxMTA1YzIxMDEyMDAwMTBjOTAxMTA1YzIyMTQxMDJmMTA5NjAxMzYwMmYwMDEyMDAwMTA0MzM2MDJhMDAxMjAwMDQxODAwMjZhMjIwOTIwMDExMDMyNDFlYjgwMDg0MTBjMTAzMzIwMDAyODAyODQwMjIyMDE0MTAwMTA4MTAxMjAwMTQxMDExMDgxMDEyMDAxNDEwMDEwODEwMTIwMDEyMDAwNDFmMDAxNmEyMjExMTA3YjIwMDEyMDAwNDFhMDAxNmEyMjA3MTA3YjIwMDA0MWUwMDE2YTIyMDUyMDAwNDE5MDAyNmEyMjA0MjkwMzAwMzcwMzAwMjAwMDQxZDgwMTZhMjIwMjIwMDA0MTg4MDI2YTIyMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEyMDAwNDFkMDAxNmEyMjA2MTA3ZjEwZDIwMTEwNWMyMTAxMjAwMDIwMTQxMDJmMTA5NjAxMzYwMmYwMDEyMDAwMTA0MzM2MDJhMDAxMjAwOTIwMDExMDMyNDFlYjgwMDg0MTBjMTAzMzIwMDAyODAyODQwMjIyMDE0MTAwMTA4MTAxMjAwMTIwMTExMDdiMjAwMTIwMDcxMDdiMjAwMTQxMDEyMDAwMTA3OTIwMDUyMDA0MjkwMzAwMzcwMzAwMjAwMjIwMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEyMDA2MTA3ZjEwMmEyMjAzMTAyYTIyMDYxMDIzMjAwNjEwY2UwMTA0NDAxMGNjMDExMDVjMjAwNjEwMjkxMDMxMTBkOTAxMTBhNzAxMjEwMTIwMDAyMDA2MzYwMjhjMDIyMDAwNDIwMDM3MDM4MDAyMjAwMDIwMDEzNjAyODgwMjIwMDMyMDAwNDE4MDAyNmExMDQ0MGIyMDAwMjAwMzM2MDI5MDAxMDI0MDAyNDAwMjQwMjAwMzEwNjUwNDQwMTBkNDAxMTBhNzAxMjEwZTEwN2QyMTBkMjAwMDIwMDAyODAyOTAwMTEwMTIzNjAyOWMwMTIwMDA0MTAwMzYwMjk4MDEyMDAwMjAwMDQxOTAwMTZhMzYwMjk0MDEyMDAwNDE5MDAyNmEyMTBhMjAwMDQxYzAwMTZhMjEwZjIwMDA0MWE4MDE2YTIxMTUwMzQwMjAwMDQxYTAwMTZhMjAwMDQxOTQwMTZhMTA2NzIwMDAyOTAzYTAwMTUwMDQ0MDQyODA4MDkwYmJiYWQ2YWRmMDBkMTAyZTIxMDEyMDBkMTBkMzAxMTA1ZjEwMmUxMDkyMDEyMDAxMTA4ZDAxMjIwNTIwMGQxMGQ3MDExMDVmMTAyZTEwOTIwMTIwMDExMDhkMDEyMjA2MTA5MTAxMjAwZDEwODkwMTQxZmYwMTcxNDEwMjQ5MGQwNTIwMGQyMDA1MTA5MzAxMjAwNjEwOTAwMTIxMDIyMDBlMTAyZjIxMDEyMDAwMjAwMjEwMjkzNjAyOGMwMjIwMDA0MjAwMzcwMzgwMDIyMDAwMjAwMTM2MDI4ODAyMjAxNDIwMDA0MTgwMDI2YTEwY2EwMTIwMGUxMDJmMjEwMTIwMDUxMGNlMDEwNDQwMTA0NjIwMDE0MjAwMjAwNTEwNDIwYjIwMDYxMGNlMDEwNDQwMTA0ODIwMGU0MjAwMjAwNjEwNDIwYjEwNDMyMTA0MTA0MzEwMmYyMTA2MjAwMTQxZmVmZmZmZmYwNzQ2MGQwMzIwMDEyMDA2MTA0MDBjMDQwYjIwMGYyMDE1NDEwODZhMjkwMzAwMzcwMzAwMjAwMDIwMTUyOTAzMDAzNzAzYjgwMTIwMGYxMGQ2MDExMGFjMDEyMTEyMjAwZjEwZDUwMTEwYjIwMTIxMTMyMDBmMjgwMjAwMjEwYzIwMDAyODAyYzQwMTIxMDQyMDAwMjkwM2I4MDEyMTE2MjAxMjEwMTIyMTAxMjAxMzEwMTI0MTBkNmUyMDAxNDEwYzZlNmEyMTExNDEwMDIxMDEwMzQwMDI0MDAyNDAyMDAxMjAxMTQ3MDQ0MDIwMDE0MTAxNmEyMTA2NDEwMDIxMDIyMDEyMTAxMjIxMDUwMjQwMDI0MDAzNDAyMDAyNDEwYzZhMjIwMzIwMDU0YjBkMDEyMDAwNDE4ODAyNmEyMjA5NDEwMDM2MDIwMDIwMDA0MjAwMzcwMzgwMDIyMDEyMjAwMjIwMDA0MTgwMDI2YTIyMDI0MTBjMTA4YTAxMWEyMDAwNDEwMDM2MDJkMDAxMjAwMDQxODgwMTZhMjAwMjQxMDA0MTA0MTBjMTAxMjAwMDQxZDAwMTZhMjIwNzQxMDQyMDAwMjgwMjg4MDEyMDAwMjgwMjhjMDExMDU3MjAwMDI4MDJkMDAxMjEwODIwMDA0MjAwMzcwM2QwMDEyMDAwNDE4MDAxNmEyMDAyNDEwNDQxMGMxMGMxMDEyMDA3NDEwODIwMDAyODAyODAwMTIwMDAyODAyODQwMTEwNTcyMDAwNDEwMDM2MDJmMDAxMjAwMDQxZjgwMDZhMjAwNzQxMDA0MTA0MTBjMjAxMjAwMDQxZjAwMTZhMjIwMjQxMDQyMDAwMjgwMjc4MjAwMDI4MDI3YzEwNTcyMDAwMjgwMmYwMDEyMTBiMjAwMDQxMDAzNjAyZjAwMTIwMDA0MWYwMDA2YTIwMDc0MTA0NDEwODEwYzIwMTIwMDI0MTA0MjAwMDI4MDI3MDIwMDAyODAyNzQxMDU3MjAwMzIxMDIyMDA4NDExODc0MjAwODQxODBmZTAzNzE0MTA4NzQ3MjIwMDg0MTA4NzY0MTgwZmUwMzcxMjAwODQxMTg3NjcyNzIyMDAxNDcwZDAwMGIyMDAwMjgwMmYwMDEyMTAzMjAwYjQxMTg3NDIwMGI0MTgwZmUwMzcxNDEwODc0NzIyMDBiNDEwODc2NDE4MGZlMDM3MTIwMGI0MTE4NzY3MjcyMTAyZjIxMDEyMDAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIyMjA3MTAyZjIxMDU0MTAxMTAyZDIwMDA0MTgwMDI2YTIyMDMyMDAxMTAzMjQxZDk4NjA4NDExNDEwMzMyMDAwMjgwMjg0MDIyMjAxMjAwNTEwNmUyMDAxMTA3MDIwMDA0MWUwMDE2YTIyMDIyMDBhMjkwMzAwMzcwMzAwMjAwMDQxZDgwMTZhMjIwMTIwMDkyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDExMDQzMjEwNTIwMDAyMDA0MzYwMjhjMDIyMDAwMjAwYzM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDUyMDAzMTA0NDIwMGEyMDAyMjkwMzAwMzcwMzAwMjAwOTIwMDEyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDNkMDAxMzcwMzgwMDIyMDAwMTA3ZDM2MDI5ODAyMDI0MDAyNDAwMjQwMDI0MDIwMDUxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDEyMDAwNDFlODAwNmEyMDAwMjgwMjgwMDIyMDAwMjgwMjg0MDIyMDBhMjAwNTEwNjIyMDAwMjkwMzY4MjExNzIwMDAyOTAzODgwMjIxMTYyMDAwMTA3ZDM2MDJlODAxMjAwMDIwMDEzNjAyZTAwMTIwMDAyMDE2MzcwM2Q4MDEyMDAwMjAxNzM3MDNkMDAxMGMwMjBiMjAwMDQxZTgwMTZhMjAwMDQxOTgwMjZhMjkwMzAwMzcwMzAwMjAwMjIwMGEyOTAzMDAzNzAzMDAyMDAxMjAwOTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzgwMDIzNzAzZDAwMTBjMDEwYjIwMDA0MWYwMDE2YTIyMDEyMDA1MTA5NzAxMjAwMDQxZDAwMTZhMjAwMDQxODAwMjZhMjAwMTEwODMwMTBiMjAwMDQxODAwMjZhMjAwMDQxZDAwMTZhMTA3NjIwMDAyODAyODgwMjIyMGMyMDA3MTAzMDQ1MGQwMTIwMDAyODAyOGMwMjIxMDQyMDAwMjkwMzgwMDIyMTE2MjAwNjIxMDEwYzA1MGI0MTAwMjEwMjIwMTMxMDEyMjEwNTAzNDAyMDAyNDEwZDZhMjIwMzIwMDU0YjBkMDMyMDAwNDIwMDM3MDA4NTAyMjAwMDQyMDAzNzAzODAwMjIwMTMyMDAyMjAwMDQxODAwMjZhMjIwMjQxMGQxMDhhMDExYTIwMDA0MTAwMzYwMmQwMDEyMDAwNDFlMDAwNmEyMDAyNDEwMDQxMDQxMGJmMDEyMDAwNDFkMDAxNmEyMjA4NDEwNDIwMDAyODAyNjAyMDAwMjgwMjY0MTA1NzIwMDAyODAyZDAwMTIxMDkyMDAwNDFkODAxNmEyMjBiNDEwMDNhMDAwMDIwMDA0MjAwMzcwM2QwMDEyMDAwNDFkODAwNmEyMDAyNDEwNDQxMGQxMGJmMDEyMDA4NDEwOTIwMDAyODAyNTgyMDAwMjgwMjVjMTA1NzIwMDA0MTAwMzYwMmYwMDEyMDAwNDFkMDAwNmEyMDA4NDEwMDQxMDQxMGMwMDEyMDAwNDFmMDAxNmEyMjAyNDEwNDIwMDAyODAyNTAyMDAwMjgwMjU0MTA1NzIwMDAyODAyZjAwMTIxMTAyMDAwNDEwMDM2MDJmMDAxMjAwMDQxYzgwMDZhMjAwODQxMDQ0MTA4MTBjMDAxMjAwMjQxMDQyMDAwMjgwMjQ4MjAwMDI4MDI0YzEwNTcyMDAwMjgwMmYwMDEyMTA3MjAwMDQxMDAzYTAwZjAwMTIwMDA0MTQwNmIyMDA4NDEwODQxMDkxMGMwMDEyMDAyNDEwMTIwMDAyODAyNDAyMDAwMjgwMjQ0MTA1NzIwMDMyMTAyMjAwOTQxMTg3NDIwMDk0MTgwZmUwMzcxNDEwODc0NzIyMDA5NDEwODc2NDE4MGZlMDM3MTIwMDk0MTE4NzY3MjcyMjAwMTQ3MGQwMDBiMjAwMDJkMDBmMDAxMjAwNzQxMTg3NDIwMDc0MTgwZmUwMzcxNDEwODc0NzIyMDA3NDEwODc2NDE4MGZlMDM3MTIwMDc0MTE4NzY3MjcyMjEwODIwMGMxMDJmMjEwOTIwMDQxMDI5MjEwNzIwMTA0MTE4NzQyMDEwNDE4MGZlMDM3MTQxMDg3NDcyMjAxMDQxMDg3NjQxODBmZTAzNzEyMDEwNDExODc2NzI3MjEwMmYyMTA1NDUwNDQwNDEwMTEwMmQyMDAwNDE4MDAyNmEyMjAxMjAwNTEwMzI0MWE4ODYwODQxMDgxMDMzMjAwMDI4MDI4NDAyMTA3MDIwMDA0MWUwMDE2YTIyMDIyMDBhMjkwMzAwMzcwMzAwMjAwYjIwMDA0MTg4MDI2YTIyMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDExMDQzMjEwNDIwMDAyMDA3MzYwMjhjMDIyMDAwMjAwOTM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDQyMDAxMTA0NDIwMGEyMDAyMjkwMzAwMzcwMzAwMjAwMzIwMGIyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDNkMDAxMzcwMzgwMDIyMDAwMTA3ZDM2MDI5ODAyMDI0MDAyNDAwMjQwMDI0MDIwMDQxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDEyMDAwNDExMDZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwYTIwMDQxMDYyMjAwMDI5MDMxMDIxMTcyMDAwMjkwMzg4MDIyMTE2MjAwMDEwN2QzNjAyZTgwMTIwMDAyMDAxMzYwMmUwMDEyMDAwMjAxNjM3MDNkODAxMjAwMDIwMTczNzAzZDAwMTBjMDIwYjIwMDA0MWU4MDE2YTIwMDA0MTk4MDI2YTI5MDMwMDM3MDMwMDIwMDIyMDBhMjkwMzAwMzcwMzAwMjAwYjIwMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEwYzAxMGIyMDAwNDFmMDAxNmEyMDA0MTA5NzAxMDI3ZjIwMDAyOTAzZjAwMTUwMDQ0MDIwMDAyODAyOTAwMjIxMDMyMDAwNDExODZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwMDI4MDJmODAxMjAwMDI4MDJmYzAxMTA2ZDIwMDAyODAyMWMyMTAyMjAwMDI4MDIxODBjMDEwYjEwNDcyMTAzMjAwMDQxMjA2YTIwMDAyODAyODAwMjIwMDAyODAyODQwMjIwMDAyODAyOTAwMjIwMDA0MWYwMDE2YTEwNmMyMDAwMjgwMjI0MjEwMjIwMDAyODAyMjAwYjIxMDEyMDAwMjkwMzg4MDIyMTE2MjAwMDEwN2QzNjAyZTgwMTIwMDAyMDAzMzYwMmUwMDEyMDAwMjAxNjM3MDNkODAxMjAwMDIwMDIzNjAyZDQwMTIwMDAyMDAxMzYwMmQwMDEwYjIwMDA0MWQwMDE2YTEwNzIyMTAzMjAwODEwMmYyMTAxMjAwMDIwMDMzNjAyOGMwMjIwMDA0MjAwMzcwMzgwMDIyMDAwMjAwMTM2MDI4ODAyMjAwMDQxODAwMjZhMTA5NTAxMjEwMTBjMDQwYjIwMDgxMDJmMjEwNDQxMDExMDJkMjAwNTEwMzIyMTAzNDFhODg2MDg0MTA4MTA0ZDIxMDExMDQzMjIwNTIwMDQxMDZlMjAwNTEwNzAxMDQzMjEwNDIwMDAyMDA3MzYwMjhjMDIyMDAwMjAwOTM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDQyMDAwNDE4MDAyNmExMDQ0MjAwMDIwMDMzNjAyOTAwMjIwMDA0MjdmMzcwMzg4MDIyMDAwMjAwNTM2MDI4NDAyMjAwMDIwMDEzNjAyODAwMjIwMDAxMDdkMzYwMjk4MDIwMjdmMDI3ZTAyNDAwMjQwMDI0MDIwMDQxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDIyMDAwNDEyODZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwYTIwMDQxMDYyMjAwMDI4MDIyYzIxMDMyMDAwMjgwMjI4MjEwMTIwMDAyOTAzODgwMjBjMDIwYjIwMDAyODAyOTAwMjIxMDIyMDAwMjkwMzg4MDIyMTE2MjAwMDI4MDI4NDAyMjEwMzIwMDAyODAyODAwMjIxMDEyMDAwMjgwMjk4MDIwYzAyMGIyMDAwNDFkMDAxNmEyMDA0MTA5NzAxMDI3ZjIwMDAyOTAzZDAwMTUwMDQ0MDIwMDAyODAyOTAwMjIxMDIyMDAwNDEzMDZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwMDI4MDJkODAxMjAwMDI4MDJkYzAxMTA2ZDIwMDAyODAyMzQyMTAzMjAwMDI4MDIzMDBjMDEwYjEwNDcyMTAyMjAwMDQxMzg2YTIwMDAyODAyODAwMjIwMDAyODAyODQwMjIwMDAyODAyOTAwMjIwMDA0MWQwMDE2YTEwNmMyMDAwMjgwMjNjMjEwMzIwMDAyODAyMzgwYjIxMDEyMDAwMjkwMzg4MDIwYjIxMTYxMDdkMGIyMTA0MjAxNjQyN2Y1MTA0N2UxMDE2MDUyMDE2MGIyMDAyMjAwNDIwMDEyMDAzMTA0NTIxMDMxMDE3NDEwMDIxMDIyMDAzMTAxMjIxMDEyMDAwNDEwMDM2MDJmODAxMjAwMDIwMDMzNjAyZjAwMTIwMDAyMDAxNDEwMjc2MzYwMmY0MDEyMDAwNDFmMDAxNmExMDc1MTAyZjIxMDQxMDQzMjEwMTIwMDQxMDEyMjEwMzIwMDA0MTAwM2EwMDkwMDIyMDAwMjAwMzM2MDI4YzAyMjAwMDIwMDQzNjAyODgwMjIwMDAyMDAzMzYwMjg0MDIyMDAwNDEwMDM2MDI4MDAyMDM0MDIwMDIyMDAzNDYwNDQwMjAwMDJkMDA5MDAyNDUwZDA1NDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGMwNTA1MjAwMDQxZDAwMTZhMjIwMzIwMDA0MTgwMDI2YTEwNzcyMDAxMjAwMzEwNDQyMDAwMjgwMjgwMDIyMTAyMjAwMDI4MDI4NDAyMjEwMzBjMDEwYjAwMGIwMDBiNDFjMDg2MDg0MTE5MTA0MTAwMGIyMDBjMjAwZTEwMzAwNDQwMjAwZDIwMDQxMDhmMDEwYzA0MGI0MWQ0OGEwODQxMTMxMDQxMDAwYjIwMDA0MTA4NmExMDM2MjAwMDIwMDAyZDAwMGMzYTAwODQwMjIwMDAyMDAwMjgwMjA4MzYwMjgwMDIyMDAwNDE4MDAyNmEyMjA2NDE4MDgwMDg0MTIxMTBhMzAxMjMwMDQxNDA2YTIyMDMyNDAwMjAwMzQxMDAyMDAzNmI0MTAzNzEyMjA0NmEyMTA3MjAwNDA0NDAyMDAzMjEwMjAzNDAyMDAyNDEwMDNhMDAwMDIwMDI0MTAxNmEyMjAyMjAwNzQ5MGQwMDBiMGIyMDA3NDFjMDAwMjAwNDZiMjIwNTQxN2M3MTIyMDQ2YTIxMDIyMDA0NDEwMDRhMDQ0MDAzNDAyMDA3NDEwMDM2MDIwMDIwMDc0MTA0NmEyMjA3MjAwMjQ5MGQwMDBiMGIyMDA1NDEwMzcxMjIwNDA0NDAyMDAyMjAwNDZhMjEwNDAzNDAyMDAyNDEwMDNhMDAwMDIwMDI0MTAxNmEyMjAyMjAwNDQ5MGQwMDBiMGIyMDA2MjAwMzAyN2YyMDAxMDQ0MDIwMDFhZDIxMTY0MTNmMjEwMTAyNDAwMzQwMjAxNjUwMGQwMTIwMDE0MTNmNGQwNDQwMjAwMTIwMDM2YTIwMTYyMDE2NDIwYTgwMjIxNjQyMGE3ZTdkYTc0MTMwNzIzYTAwMDAyMDAxNDEwMTZiMjEwMTBjMDEwYjBiMTAyYzAwMGIyMDAxNDEwMTZhMGMwMTBiMjAwMzQxMzAzYTAwM2Y0MTNmMGIyMjAxNmE0MWMwMDAyMDAxNmIxMGEzMDEyMDAzNDE0MDZiMjQwMDIwMDAyODAyODAwMjIwMDAyZDAwODQwMjEwMzgxMDAwMDAwYjIwMDAyMDAxMzYwMmNjMDExMDdkMjEwMjEwN2QyMTA0MjAwMDIwMDExMDEyMzYwMmQ4MDEyMDAwNDEwMDM2MDJkNDAxMjAwMDIwMDA0MWNjMDE2YTM2MDJkMDAxMDI0MDAzNDAwMjQwMjAwMDQxODAwMjZhMjAwMDQxZDAwMTZhMTA2NzIwMDAyOTAzODAwMjUwMGQwMDIwMDAyODAyOTQwMjIxMDUyMDAyMjEwMzIwMDAyODAyOTAwMjIyMDEyMDBjMTAzMDQ1MDQ0MDIwMDQyMTAzMjAwMTIwMDgxMDMwNDUwZDAzMGIyMDAzMjAwNTEwOGYwMTBjMDEwYjBiMjAwODEwMmYyMTBjNDIwMDIxMTYyMDA2MjEwMTBjMDEwYjBiMGI0MTg3ODYwODQxMjExMDQxMDAwYjQxYTU4YTA4NDExNTEwNDEwMDBiMjAwMDQxODA4MDgwMjAzNjAyZDAwMTIwMDYyMDAwNDFkMDAxNmE0MTA0MTAwZjFhMjAwNjQxZWQ4NTA4NDEwNDEwMGYxYTBiMjAwMDQyMDAzNzAzZDAwMTIwMDYyMDAwNDFkMDAxNmEyMjAzNDEwODEwMGYxYTIwMDUyMDA2MTAzZjIwMDQyMDA2MTA0ZTEwYzcwMTEwNDMyMjAxNDE4YThkMDg0MTA4MTA0ZDEwNGUyMDAyMTA0MzEwMmYyMjAyMTAzZjIwMDIxMDNmMjAwMTIwMDIxMDI0MjAwMDIwMDQzNjAyZDAwMTIwMDAyMDA0MTAxMjM2MDI4ODAyMjAwMDQxMDAzNjAyODQwMjIwMDAyMDAzMzYwMjgwMDIwMzQwMjAwMDIwMDA0MTgwMDI2YTEwYzQwMTIwMDAyODAyMDAwNDQwMjAwMDI4MDIwNDEwMDcxYTBjMDEwYjBiMjAwMDQxYTAwMjZhMjQwMDBmMGI0MWJhOGEwODQxMWExMDQxMDAwYjBkMDAxMDIyNDEwMDEwNWExMGM3MDExMDI1MGIwZDAwMTAyMjQxMDAxMDVhMTBkMTAxMTA1YjBiMGQwMDEwMjI0MTAwMTA1YTEwZDQwMTEwNWQwYjBkMDAxMDIyNDEwMDEwNWExMGQ4MDExMDVkMGIyYTAxMDE3ZjEwMjI0MTAwMTA1YTEwY2IwMTEwYWIwMTIyMDA0MWZlZmZmZmZmMDc0NzA0NDAyMDAwMTAwNzFhMGYwYjQxZWQ4NTA4NDEwNDEwMjYwYjBkMDAxMDIyNDEwMDEwNWExMGRhMDExMDVkMGIwZDAwMTAyMjQxMDAxMDVhMTBjODAxMTA1YjBiMGQwMDEwMjI0MTAwMTA1YTEwYzkwMTEwNWIwYjBkMDAxMDIyNDEwMDEwNWExMGNjMDExMDViMGIwZDAwMTAyMjQxMDAxMDVhMTBkOTAxMTA1ZDBiMGQwMDEwMjI0MTAwMTA1YTEwZDIwMTEwNWIwYmExMDEwMTAyN2YyMzAwNDE0MDZhMjIwMDI0MDAxMDIyNDEwMTEwNWEyMDAwNDEwMDEwNGIzNjAyMTQyMDAwMjAwMDQxMTQ2YTEwZDYwMTEwYWMwMTIyMDEzNjAyMTgyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDIwMjAwMDIwMDAyODAyMDgzNjAyMWMyMDAwMjAwMTEwMTIzNjAyMmMyMDAwNDEwMDM2MDIyODIwMDAyMDAwNDExODZhMzYwMjI0MjAwMDQxMzQ2YTIxMDEwMzQwMjAwMDQxMzA2YTIwMDA0MTI0NmExMGJhMDEyMDAwMjgwMjMwMDQ0MDIwMDEyMDAwNDExYzZhMTBiYjAxMGMwMTBiMGIyMDAwMjgwMjFjMjAwMDJkMDAyMDEwMzcyMDAwNDE0MDZiMjQwMDBiYTAwMTAxMDI3ZjIzMDA0MTQwNmEyMjAwMjQwMDEwMjI0MTAxMTA1YTIwMDA0MTAwMTA0YjM2MDIxNDIwMDAyMDAwNDExNDZhMTBkNTAxMTBiMjAxMjIwMTM2MDIxODIwMDA0MTA4NmExMDM1MjAwMDIwMDAyZDAwMGMzYTAwMjAyMDAwMjAwMDI4MDIwODM2MDIxYzIwMDAyMDAxMTAxMjM2MDIyYzIwMDA0MTAwMzYwMjI4MjAwMDIwMDA0MTE4NmEzNjAyMjQwMzQwMjAwMDQxMzA2YTIwMDA0MTI0NmExMGI1MDEyMDAwMmQwMDNjNDEwMjQ3MDQ0MDIwMDA0MTMwNmEyMDAwNDExYzZhMTBiNjAxMGMwMTBiMGIyMDAwMjgwMjFjMjAwMDJkMDAyMDEwMzcyMDAwNDE0MDZiMjQwMDBiMGQwMDEwMjI0MTAwMTA1YTEwZDMwMTEwNWUwYjBkMDAxMDIyNDEwMDEwNWExMGQ3MDExMDVlMGJlMzAzMDIwNTdmMDI3ZTIzMDA0MTkwMDE2YjIyMDAyNDAwMTA0OTQxMDAxMDVhMjAwMDEwNGEyMjAxMzYwMjE0MDI0MDIwMDExMDY1NDEwMTQ2MDQ0MDIwMDExMDEyMjEwMTIwMDA0MTAwMzYwMjM0MjAwMDIwMDEzNjAyMzAyMDAwNDEwMDM2MDIyYzIwMDAyMDAwNDExNDZhMzYwMjI4MjAwMDQxM2M2YTIxMDIyMDAwNDFmNDAwNmEyMTAzMjAwMDQxZjgwMDZhMjEwMTAzNDAyMDAwNDFmMDAwNmEyMDAwNDEyODZhMTA2NzIwMDAyOTAzNzA1MDBkMDIyMDAwNDFlMDAwNmEyMDAxNDEwODZhMjkwMzAwMjIwNTM3MDMwMDIwMDAyMDAxMjkwMzAwMjIwNjM3MDM1ODIwMDAyMDAwMjgwMjM0MjIwNDQxMDE2YTM2MDIzNDIwMDM0MTA4NmEyMDA1MzcwMjAwMjAwMzIwMDYzNzAyMDAyMDAwNDE0MDZiMjAwMTI5MDIwMDM3MDMwMDIwMDA0MWM4MDA2YTIwMDA0MTgwMDE2YTI4MDIwMDM2MDIwMDIwMDAyMDAwMjkwMjcwMzcwMzM4MjAwNDQ1MDQ0MDIwMDA0MTIwNmEyMDAyNDEwODZhMjkwMjAwMzcwMzAwMjAwMDIwMDIyOTAyMDAzNzAzMTgwYzAxMGIwYjEwMmMwMDBiNDFiMzgzMDg0MTIyMTAwMzAwMGIyMDAwNDEwODZhMjIwMTIwMDA0MTIwNmEyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDMxODM3MDMwMDEwZGEwMTEwYTcwMTIxMDIyMDAxMjgwMjAwMjAwMjEwMzA0NTA0NDA0MTk4OGEwODQxMGQxMDQxMDAwYjEwZDIwMTEwNWMyMTAyMjAwMDEwNDMzNjAyMTgyMDAwMTA0MzM2MDIyODIwMDA0MWYwMDA2YTIyMDEyMDAyMTAzMjQxYTc4MzA4NDEwNTEwMzMyMDAwMjgwMjc0MjIwMjIwMDA0MTE4NmExMDdiMjAwMjIwMDA0MTI4NmExMDdhMjAwMDQxZTgwMDZhMjAwMDQxODAwMTZhMjkwMzAwMzcwMzAwMjAwMDQxZTAwMDZhMjAwMDQxZjgwMDZhMjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNzAzNzAzNTgyMDAwNDEzODZhMjIwMjIwMDA0MWQ4MDA2YTIwMDAxMDg0MDEyMDAxMjAwMjEwY2QwMTIwMDExMDc0MjAwMDQxOTAwMTZhMjQwMDBiOGMwMTAxMDI3ZjIzMDA0MTQwNmEyMjAwMjQwMDEwNDk0MTAwMTA1YTEwZDIwMTEwNWMyMTAxMjAwMDEwNDMzNjAyMDAyMDAwMTA0MzM2MDIwNDIwMDA0MTA4NmEyMDAxMTAzMjQxOTU4MzA4NDExMjEwMzMyMDAwMjgwMjBjMjIwMTIwMDAxMDdiMjAwMTIwMDA0MTA0NmExMDdhMjAwMDQxMzA2YTIwMDA0MTE4NmEyOTAzMDAzNzAzMDAyMDAwNDEyODZhMjAwMDQxMTA2YTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzA4MzcwMzIwMjAwMDEwN2QzNjAyMzgyMDAwNDEyMDZhMTA3NDIwMDA0MTQwNmIyNDAwMGJmZjAxMDIwNTdmMDE3ZTIzMDA0MTMwNmIyMjAwMjQwMDEwMjIxMDQ5NDEwMTEwNWEyMDAwMTA0ZjM2MDIxMDEwZDIwMTEwNWMyMDAwMTA0MzM2MDIxNDIwMDAxMDQzMzYwMjE4MTAzMjIxMDI0MWFjODMwODQxMDcxMDRkMjEwMzEwNDMyMjAxMjAwMDQxMTA2YTEwNzgyMDAxMjAwMDQxMTQ2YTEwN2IyMDAxMjAwMDQxMTg2YTEwN2ExMDdkMjEwNDEwMTYyMDAyMjAwNDIwMDMyMDAxMTA0NTIxMDExMDE3MjAwMTEwMTIyMTAyMjAwMDQxMDAzNjAyMjQyMDAwMjAwMTM2MDIxYzIwMDAyMDAyNDEwMjc2MzYwMjIwMjAwMDQxMWM2YTEwNzUyMTAxMjAwMDQyMDAzNzAzMjgyMDAxMTAxMjIyMDI0MTA5NDkwNDQwMDI0MDIwMDA0MTA4NmEyMDAwNDEyODZhMjAwMjEwYjAwMTIwMDE0MTAwMjAwMDI4MDIwODIyMDEyMDAwMjgwMjBjMjIwMjEwOGEwMTFhMjAwMTIwMDIxMGIxMDEyMjA1NDI4MDgwODA4MDEwNWEwZDAwMjAwNTEwMTQyMDAwNDEzMDZhMjQwMDBmMGIwYjQxOGE4NTA4NDEwYjQxOTU4NTA4NDEwZTEwNGMwMDBiOTgwMzAyMDU3ZjAxN2UyMzAwNDFlMDAwNmIyMjAwMjQwMDEwMjIxMDQ5NDFlNGRiMDgxMDEzMzYwMjAwNDFlNGRiMDgyODAyMDA0MTAwNDgwNDQwNDFlZjgzMDg0MTExMTAwMzAwMGIyMDAwNDEwMDM2MDIzODEwNDMyMTAzMjAwMDQxMzg2YTIyMDQyODAyMDAyMTAxMDM0MDQxZTRkYjA4MjgwMjAwMjAwMTRhMDQ0MDIwMDQyMDAxNDEwMTZhMjIwMjM2MDIwMDIwMDMyMDAxMTA0YjEwNGUyMDAyMjEwMTBjMDEwYjBiMjAwMzIxMDE0MWU0ZGIwODI4MDIwMDIwMDAyODAyMzg0YTA0NDA0MTgwODQwODQxMTIxMDAzMDAwYjIwMDAyMDAxMzYwMjFjMjAwNDEwZDIwMTEwNWMxMDMyNDFmOTgyMDg0MTBkMTAzMzIwMDAyMDAxMTAxMjM2MDI1YzIwMDA0MTAwMzYwMjU4MjAwMDIwMDA0MTFjNmEzNjAyNTQyMDAwMjgwMjNjMjEwMTAzNDAyMDAwNDExMDZhMjAwMDQxZDQwMDZhMTBjNDAxMjAwMDI4MDIxMDA0NDAyMDAxMjAwMDI4MDIxNDEwNmUwYzAxMGIwYjIwMDA0MTI4NmEyMDAwNDE0MDZiMjkwMzAwMzcwMzAwMjAwMDQxMzA2YTIwMDA0MWM4MDA2YTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzM4MzcwMzIwMjAwMDQxMzg2YTIwMDA0MTIwNmExMDdlMDI0MDIwMDAyODAyNDQyMjAxMTBjZTAxNDUwNDQwMjAwMDI4MDI0MDIxMDIwYzAxMGIxMDQ2MjAwMDI4MDI0MDIyMDI0MjAwMjAwMTEwNDIwYjIwMDAyOTAzMzgyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDNjMjAwMDIwMDAyODAyMDgzNjAyMzgyMDAyMjAwMDQxMzg2YTIyMDIxMDNlMjAwMjEwYzYwMTIwMDEyMDAyMTAzYzIwMDAyODAyMzgyMDAwMmQwMDNjMTAzNzIwMDA0MWUwMDA2YTI0MDAwYjMxMDEwMTdlMTAyMjEwNDk0MTAxMTA1YTQxMDAxMDExMjIwMDQyODE4MDkwYmJiYWQ2YWRmMDBkNWEwNDQwNDFlZjhiMDg0MTIwMTA0MTAwMGIxMGQ3MDEyMDAwMTBhYTAxMGIzMTAxMDE3ZTEwMjIxMDQ5NDEwMTEwNWE0MTAwMTAxMTIyMDA0MjgxODA5MGJiYmFkNmFkZjAwZDVhMDQ0MDQxZDI4YjA4NDExZDEwNDEwMDBiMTBkMzAxMjAwMDEwYWEwMTBiZTMwMTAxMDM3ZjIzMDA0MTMwNmIyMjAwMjQwMDEwMjIxMDQ5NDEwMjEwNWE0MTAwMTA1ODIxMDEyMDAwNDEwMTEwNTEyMjAyMzYwMjBjMjAwMDIwMDEzNjAyMDgyMDAwMjAwMTEwMTIzNjAyMTgyMDAwNDEwMDM2MDIxNDIwMDAyMDAwNDEwODZhMzYwMjEwMDM0MDIwMDA0MTFjNmEyMDAwNDExMDZhMTBjMzAxMjAwMDI4MDIxYzA0NDAyMDAwMjAwMDI4MDIyNDIyMDEzNjAyMmMyMDAwMjAwMDI4MDIyMDM2MDIyODIwMDA0MTI4NmExMGQ2MDEyMDAxMTBiOTAxMGMwMTA1MjAwMDIwMDIxMDEyMzYwMjE4MjAwMDQxMDAzNjAyMTQyMDAwMjAwMDQxMGM2YTM2MDIxMDAzNDAyMDAwNDExYzZhMjAwMDQxMTA2YTEwYzMwMTIwMDAyODAyMWMwNDQwMjAwMDIwMDAyODAyMjQyMjAxMzYwMjJjMjAwMDIwMDAyODAyMjAzNjAyMjgyMDAwNDEyODZhMTBkNTAxMjAwMTEwYjQwMTBjMDEwYjBiMjAwMDQxMzA2YTI0MDAwYjBiMGJhYTA3MDIwYjdmMDE3ZTIzMDA0MTMwNmIyMjAwMjQwMDEwMjI0MTAwMTA1YTEwYzkwMTEwNWMyMjA5MTAyZjEwMzIyMTAxNDFkMjgxMDg0MTE0MTA0ZDIxMDIxMDQzMjEwNjEwN2QyMTA3MTAxNjIwMDEyMDA3MjAwMjIwMDYxMDQ1MjEwMTEwMTcyMDAxMTAxMjIxMDIyMDAwNDEwMDM2MDIxMDIwMDAyMDAxMzYwMjA4MjAwMDIwMDI0MTAyNzYzNjAyMGMyMDAwNDEwODZhMTA3NTIyMDIxMDEyMjEwMTIwMDA0MTI4NmE0MTAwM2EwMDAwMjAwMDQxMjQ2YTIwMDEzNjAyMDAyMDAwMjAwMjM2MDIyMDIwMDAyMDAxMzYwMjFjMjAwMDQxMDAzNjAyMTgwMjQwMDI3ZjAyNDAwMjQwMjAwMTQ1MGQwMDAyNDAwMjQwMDI0MDIwMDA0MTE4NmE0MThhODUwODQxMGIxMDU0NDFmZjAxNzEwZTAyMDIwMTAwMGI0MThhODUwODQxMGI0MWVkODYwODQxMGQxMDRjMDAwYjQxMDEyMTAzMjAwMDQxMTg2YTQxOGE4NTA4NDEwYjEwNTMyMTAxMGIyMDAwMjgwMjFjMjAwMDI4MDIxODQ3MGQwMzIwMDAyZDAwMjgwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAzNDUwZDAwMjAwMDQxMTg2YTIyMDQyMDAxMTAyZjEwMzI0MWU0ODIwODQxMTUxMDMzMjAwMDIwMDQxMDdjMjIwMzM2MDIwMDIwMDQyMDAxMTAyZjEwMzI0MWIyODIwODQxMGIxMDMzMjAwMDQxMTg2YTEwN2M0MmJlOGE4NjBmMTAyZTEwOGUwMTIxMDYyMDA0MjAwMTEwMmYxMDMyNDFjOTgyMDg0MTBkMTAzMzIwMDA0MTE4NmExMDdjMjAwMzEwOTIwMTQyYmU4YTg2MGYxMDJlMTA4ZTAxNDEwYTEwMmQ0MTEyMTA5NDAxMTA4ZDAxMjEwNzIwMDQyMDAxMTAyZjEwMzI0MWJkODIwODQxMGMxMDMzMjAwMDQxMTg2YTEwN2M0MTBhMTAyZDQxMTIxMDk0MDEyMDAzMTA5MDAxMTA4ZTAxNDJiZThhODYwZjEwMmUxMDhlMDE0MTBhMTAyZDQxMTIxMDk0MDExMDhkMDEyMTBhMjAwNDIwMDkxMDJmMjIwMjEwMmYxMDMyNDE4NzgxMDg0MTBmMTAzMzIwMDAyMDAwNDExODZhMTA3YzIyMDUzNjAyMTQyMDA0MjAwMjEwMmYxMDMyNDFhYjgyMDg0MTA3MTAzMzIwMDA0MTE4NmExMDdjMjEwODIwMDQyMDAyMTAzMjQxYTY4MTA4NDExMDEwMzMyMDAwNDExODZhMTA3YzIxMDIyMDAwMjAwODIwMDUxMDkxMDEyMDAyMTA5MDAxMzYwMjA4MjAwNDIwMDExMDMyNDFkNjgyMDg0MTBlMTAzMzIwMDAyODAyMWMyMjAxMjAwMDQxMTQ2YTEwNzgyMDAxMjAwMDQxMDg2YTEwNzgyMDAwMjgwMjI4MjEwMjIwMDAyODAyMTgyMTA1MjAwMDI5MDMyMDEwN2QyMTA4MTA3MTIwMDIyMDA4MjAwNTIwMDExMDQ1MjEwMTEwMTcyMDAwMjAwMTEwNzMzNjAyMDQ0MjgwODA5MGJiYmFkNmFkZjAwZDEwMmUyMTAyMjAwMDEwN2QzNjAyMTgyMDAwNDEwNDZhMjAwNDEwY2YwMTIxMDUxMDdkMjIwMTIwMDUwZDAyMWEyMDAxMjAwMDI4MDIwNDEwODkwMTQxMDE2YTQxZmYwMTcxNDEwMTRkMDQ0MDIwMDA0MTA0NmEyMDAwMTBjZjAxMGQwMjIwMDAyODAyMDAyMTAzMGIyMDAwMjgwMjA0MjAwMzEwOTMwMTIwMGExMDhlMDEyMTAxNDEwYTEwMmQ0MTEyMTA5NDAxMjAwMDI4MDIwMDEwOTAwMTIxMDMyMDA2MjAwMjEwOTIwMTIwMDcyMDAyMTA5MjAxMTA4YzAxMjAwMTIwMDIxMDhlMDEyMDAzMTA4ZDAxMTA4YzAxMGMwMjBiNDFhMDhiMDg0MTMyMTA0MTAwMGIyMDAwMjgwMjA0MjAwNzEwOTIwMTIxMDEyMDA2MjAwMjEwOTIwMTIwMDEyMDAyMTA4ZTAxMjAwMDI4MDIwMDEwOGQwMTEwOGMwMTBiMjEwMTIwMDA0MTE4NmEyMjAzMjAwOTEwMzI0MTk2ODEwODQxMTAxMDMzMjAwMzEwN2MyMTAyNDEwYTEwMmQ0MTEyMTA5NDAxMjEwMzIwMDAyODAyMDQyMDAxMTA5MjAxMjAwMzIwMDIxMDkzMDExMDhlMDEyMDAzNDEwMzEwOTQwMTEwOGQwMTEwMjUyMDAwNDEzMDZhMjQwMDBmMGI0MThhODUwODQxMGI0MTk1ODUwODQxMGUxMDRjMDAwYjAzMDAwMTBiM2MwMTAxN2YyMzAwNDExMDZiMjIwNTI0MDAyMDA1NDEwODZhMjAwMTIwMDQyMDAyMjAwMzEwOWQwMTIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTEwNmEyNDAwMGIzYjAxMDE3ZjIzMDA0MTEwNmIyMjA1MjQwMDIwMDU0MTA4NmEyMDAyMjAwMzIwMDEyMDA0MTAyYjIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTEwNmEyNDAwMGIwYmRhMGQwMjAwNDE4MDgwMDgwYmM2MGQ0ZTZmMjA3Mzc3NjE3MDIwNmY3MDY1NzI2MTc0Njk2ZjZlMjA2NjZmNzU2ZTY0MjA2MTc0MjA2OTZlNjQ2NTc4MjA3NTZlNzc3MjYxNzA0NTY3NmM2NDY3NjU3NDU3NzI2MTcwNzA2NTY0NDU2NzZjNjQ1NDZmNmI2NTZlNDk2NDc3NzI2MTcwNDU2NzZjNjQ3MjY1NjM2OTcwNjk2NTZlNzQyMDYxNjQ2NDcyNjU3MzczMjA2ZTZmNzQyMDczNjU3NDY1Nzg2OTc0NGQ2MTcyNmI2NTc0NjM2YzYxNjk2ZDUyNjU3NzYxNzI2NDczNjc2NTc0NDE2MzYzNmY3NTZlNzQ1NDZmNmI2NTZlNzM2NzY1NzQ1NDZmNzQ2MTZjNDI2ZjcyNzI2Zjc3NzM2NzY1NzQ1MjY1NzM2NTcyNzY2NTQ2NjE2Mzc0NmY3MjY3NjU3NDU0NmY3NDYxNmM1MjY1NzM2NTcyNzY2NTczNjc2NTc0NTQ2ZjZiNjU2ZTQ5NjQ2ZDY5NmU3NDQxNmU2NDQ1NmU3NDY1NzI0ZDYxNzI2YjY1NzQ2NzY1NzQ0OTZlNzQ2NTcyNjU3Mzc0NTI2MTc0NjU0ZDZmNjQ2NTZjNjc2NTc0NTU2ZTY0NjU3MjZjNzk2OTZlNjc0OTY0NzQ2ZjZiNjU2ZTczNTQ2ZjU1NmU2NDY1NzI2Yzc5Njk2ZTY3NDE2ZDZmNzU2ZTc0NzU2ZTY0NjU3MjZjNzk2OTZlNjc0MTZkNmY3NTZlNzQ1NDZmNTQ2ZjZiNjU2ZTczNzI2NTY0NjU2NTZkNjc2NTc0NDM2MTczNjg2NzY1NzQ0MjYxNzM2NTUyNjE3NDY1Njc2NTc0NGM2MTczNzQ1MzZjNmY3MDY1Njc2NTc0NDY2OTcyNzM3NDUzNmM2ZjcwNjU2NzY1NzQ1NTc0Njk2YzY5N2E2MTc0Njk2ZjZlNjc2NTc0NGY3MDc0Njk2ZDYxNmM1NTc0Njk2YzY5N2E2MTc0Njk2ZjZlNjM2YzYxNjk2ZDRkNzU2Yzc0Njk3MDZjNjU2NzY1NzQ1Mzc0NjE2YjY1NTQ2ZjZiNjU2ZTQ5NjQ3MjY1NjI2MTZjNjE2ZTYzNjU1MDZmNzI3NDY2NmY2YzY5NmY3Mzc0NjE2YjY1NzU2ZTczNzQ2MTZiNjU2OTZlNjM2ZjcyNzI2NTYzNzQyMDZlNzU2ZDYyNjU3MjIwNmY2NjIwNDU1MzQ0NTQyMDc0NzI2MTZlNzM2NjY1NzI3MzYxNzI2Nzc1NmQ2NTZlNzQyMDY0NjU2MzZmNjQ2NTIwNjU3MjcyNmY3MjIwMjgyOTNhMjA3NDZmNmYyMDY2NjU3NzIwNjE3MjY3NzU2ZDY1NmU3NDczNzQ2ZjZmMjA2ZDYxNmU3OTIwNjE3MjY3NzU2ZDY1NmU3NDczNzc3MjZmNmU2NzIwNmU3NTZkNjI2NTcyMjA2ZjY2MjA2MTcyNjc3NTZkNjU2ZTc0NzM2MzYxNmU2ZTZmNzQyMDczNzU2Mjc0NzI2MTYzNzQyMDYyNjU2MzYxNzU3MzY1MjA3MjY1NzM3NTZjNzQyMDc3NmY3NTZjNjQyMDYyNjUyMDZlNjU2NzYxNzQ2OTc2NjU0ZDc1NmM3NDY5NDU1MzQ0NTQ0ZTQ2NTQ1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ0ZTQ2NTQ1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ1NDcyNjE2ZTczNjY2NTcyNzM3OTZlNjMyMDcyNjU3Mzc1NmM3NDY5NmU3MDc1NzQyMDc0NmY2ZjIwNmM2ZjZlNjc2OTZlNzA3NTc0MjA3NDZmNmYyMDczNjg2ZjcyNzQ2MzYxNzM3NDIwNzQ2ZjIwNjkzNjM0MjA2NTcyNzI2ZjcyNGQ2MTZlNjE2NzY1NjQ1NjY1NjMyMDY5NmU2NDY1NzgyMDZmNzU3NDIwNmY2NjIwNzI2MTZlNjc2NTQ1NTM0NDU0MjA2NTc4NzA2NTYzNzQ2NTY0NDU0NzRjNDQ3Mzc0NmY3MjYxNjc2NTIwNjQ2NTYzNmY2NDY1MjA2NTcyNzI2ZjcyM2EyMDc1NmU2YjZlNmY3NzZlMjA3MjY1NjM2NTY5NzY2NTY0MjA3NDZmNmI2NTZlMjA2MTY2NzQ2NTcyMjA3Mzc3NjE3MDY1Nzg2MzY4NjE2ZTY3NjU2MjYxNjQyMDYxNzI3MjYxNzkyMDZjNjU2ZTY3NzQ2ODc3NzI2ZjZlNjcyMDcyNjU3NDc1NzI2ZTY1NjQyMDczNzc2MTcwMjA3NDZmNmI2NTZlNzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NDY5NmU3NjYxNmM2OTY0MjA3NjYxNmM3NTY1Nzc3MjYxNzA3MDY1NjQ1ZjY1Njc2YzY0NWY2MzZmNmU3NDcyNjE2Mzc0NWY2MTY0NjQ3MjY1NzM3MzYzNmY2ZDcwNmY3NTZlNjQ1ZjYxNzM2ODczNzc2MTcwNWY3Mzc3NjE3MDczNjM2ZjZkNzA2Zjc1NmU2NDVmNzg2NTc4NjM2ODYxNmU2NzY1NWY3Mzc3NjE3MDczNzA2NTcyNjY2ZjcyNmQ2MTZlNjM2NTVmNjY2NTY1NzM1ZjcwNjU3MjYzNjU2ZTc0NjM2ZjZkNzA2Zjc1NmU2NDVmNjY2NTY1NzM1ZjcwNjU3MjYzNjU2ZTc0NjI2ZjZmNzM3NDY1NzI1ZjYxNjQ2NDcyNjU3MzczNmQ2ZjZlNjU3OTVmNmQ2MTcyNmI2NTc0NWY2MTY0NjQ3MjY1NzM3MzYzNmY2ZTc0NzI2ZjZjNmM2NTcyNWY2MTY0NjQ3MjY1NzM3MzYxNzM3MzY1NzQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNzY2MTc1NmM3NDVmNjE2NDY0NzI2NTczNzM3MDYxNzk2ZDY1NmU3NDIwNzM2ODZmNzU2YzY0MjA2MjY1MjA2MTZlMjA0NTUzNDQ1NDIwNzQ2ZjZiNjU2ZTU0Njg2NTIwNjE3MzczNjU3NDIwNzQ2ZjZiNjU2ZTIwNjk2NDY1NmU3NDY5NjY2OTY1NzIyMDYxNmU2NDIwNzQ2ODY1MjA2ZDZmNmU2NTc5MjA2ZDYxNzI2YjY1NzQyMDc1NmU2NDY1NzI2Yzc5Njk2ZTY3MjA2OTY0NjU2ZTc0Njk2NjY5NjU3MjIwNjQ2ZjZlMjc3NDIwNmQ2MTc0NjM2ODU3Njg2NTZlMjA3NDYxNzI2NzY1NzQ2OTZlNjcyMDYxNmUyMDQ1NDc0YzQ0MjA2ZDYxNzI2YjY1NzQyMDc0Njg2NTIwNjE3MzczNjU3NDIwNzQ2ZjZiNjU2ZTIwNjk2NDY1NmU3NDY5NjY2OTY1NzIyMDczNjg2Zjc1NmM2NDIwNjI2NTIwNTc0NTQ3NGM0NDQzNjE2YzZjNjU3MjIwNzM2ODZmNzU2YzY0MjA2MjY1MjA3NjYxNzU2Yzc0Nzc3MjZmNmU2NzIwNzA2MTc5NmQ2NTZlNzQ2ZTZmMjA3MjY1Nzc2MTcyNjQyMDc0NmYyMDYzNmY2ZDcwNmY3NTZlNjQ2ZTZmMjA2YzY1NjY3NDIwNjE2ZDZmNzU2ZTc0MjA3NDZmMjA2MzZmNmQ3MDZmNzU2ZTY0Nzc3MjZmNmU2NzIwNzM3NzYxNzA3MDY1NjQyMDc0NmY2YjY1NmU2ZTZmMjA2NTc4Njk3NDIwNmQ2MTcyNmI2NTc0MjA3MDYxNzk2ZDY1NmU3NDIwNzI2NTYzNjU2OTc2NjU2NDZlNmYyMDcyNjU2NDY1NjU2ZDIwNzA2MTc5NmQ2NTZlNzQyMDcyNjU2MzY1Njk3NjY1NjQ0ZTZmMjA2OTZlNzQ2NTcyNjU3Mzc0MjA3MjYxNzQ2NTIwNmQ2ZjY0NjU2YzIwNzA3MjY1NzM2NTZlNzQyMDZmNmUyMDc0Njg2NTIwNmQ2ZjZlNjU3OTIwNmQ2MTcyNmI2NTc0NmU2NTc3MjA2MzZmNmQ3MDZmNzU2ZTY0MjA2NjY1NjU3MzIwNjU3ODYzNjU2NTY0MjAzMTMwMzAyNTZlNjU3NzIwNzA2NTcyNjY2ZjcyNmQ2MTZlNjM2NTIwNjY2NTY1NzMyMDY1Nzg2MzY1NjU2NDIwMzEzMDMwMjU2ZDZmNmU2NTc5NWY2ZDYxNzI2YjY1NzQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNzc3MjYxNzA3MDY1NjQ1ZjY1Njc2YzY0NWY3NDZmNmI2NTZlNWY2OTY0NjU2ZTc0Njk2NjY5NjU3MjYyNmY2ZjczNzQ2NTcyNWY3Mzc0NjE2YjY1NjQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNmQ2ZjZlNjU3OTVmNmQ2MTcyNmI2NTc0NWY3NTZlNjQ2NTcyNmM3OTY5NmU2NzVmNjk2NDY1NmU3NDY5NjY2OTY1NzI2MzZmNmQ3MDZmNzU2ZTY0NDU2ZTY0NzA2ZjY5NmU3NDIwNjM2MTZlMjA2ZjZlNmM3OTIwNjI2NTIwNjM2MTZjNmM2NTY0MjA2Mjc5MjA2Zjc3NmU2NTcyMDAwMDcwNjE2ZTY5NjMyMDZmNjM2Mzc1NzI3MjY1NjQwMDQxYzg4ZDA4MGIwNDljZmZmZmZmQDA1MDBAMDEwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDU3NDU0NzRjNDQyZDYxMzIzODYzMzUzOUAwMDAwMDAwMDAwMDAwMDAwMDUwMGEzYjY2NjkwMmQ1ZjRiYmYwZmY5Mzc0OGZiOTE1YWViNDMxMjRjYmY2NTA5QDAwMDAwMDAwMDAwMDAwMDAwNTAwMzJkZTRmNDBmMTdhMmY0MWM0ZTQwYzIxZjU5NmUzNmE4NDY5OTRlMzY1MDlAMDAwMDAwMDAwMDAwMDAwMDA1MDBmODgzNjY4NmY3YzZjMGYxM2Q3Mjc1MTUxYjc4ZjU5ZjhmMmY3MjlhNjUwOUBAQEBAMDAwMDAwMDAwMDAwMDAwMDA1MDAwYjFlNWIyNDQzMjUwOTU4NDlmNGUzNzEzNDY2MWQ1YmZkY2Q5MjVlN2NlYg==", - "signature": "edf0ec99b6f60414fa5e36d40cfb1d0075d01fd7c4ad7ba59bbe62b8b48eb892beb0c18bba203ff32b83827c3953847b190cdc89a4806f4615565dc2b3b5940f", - "sourceShard": 1, - "destinationShard": 1, - "blockNonce": 2127577, - "blockHash": "e3aea17b5345b45f61b233834d3b4ba0ac6f2b7d53eb3f1b1cf2bf0534ba567f", - "notarizedAtSourceInMetaNonce": 2129029, - "NotarizedAtSourceInMetaHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", - "notarizedAtDestinationInMetaNonce": 2129029, - "notarizedAtDestinationInMetaHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", - "miniblockType": "TxBlock", - "miniblockHash": "cc7e81e68269c2c633daf997fd2d52fc82d8ba3bb699d7e75250008bd9b7aa29", - "hyperblockNonce": 2129029, - "hyperblockHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", - "timestamp": 1707144290, - "status": "success", - "operation": "scDeploy", - "initiallyPaidFee": "82333950000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - let opt_address = tx_response.new_deployed_address.map(|e| { - multiversx_sdk::data::address::Address::from_bytes(*e.as_array()) - .to_bech32_string() - .unwrap() - }); - - let expected = - Some("erd1qqqqqqqqqqqqqpgqwpdf84ggxzqzmr2zmw959q4nlf9nz562q33sak25ze".to_string()); - - assert_eq!(opt_address, expected) - } - - #[test] - fn test_deployed_address_should_be_none_if_not_a_sc_deployment_tx() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "BuiltInFunctionCall", - "processingTypeOnDestination": "SCInvoking", - "hash": "238ad6dbe75dab1d53caeb9cabd584aabc6fc113c849a983afef5a5e439ce9e5", - "nonce": 13, - "round": 2192628, - "epoch": 888, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqydwpdrplefjlwp3sp9xmn3vevdxdelfkwmfsw6e5xw", - "sender": "erd179xw6t04ug48m74jzyw9zq028hv66jhqayelzpzvgds0ptnzmckq2jf07f", - "gasPrice": 1000000000, - "gasLimit": 20000000, - "data": "RVNEVFRyYW5zZmVyQDRmNTU1MjRmMmQ2NDM4MzEzNzMxNjZAMDI0NmQyZDBiNmI1ZjBANjI3NTc5QDFiYzE2ZDY3NGVjODAwMDA=", - "signature": "ce984b4d785ccc7aca4b1cdea57ddcd568a502209f81e6b5bc678e1dd52b78d764fe46ea3ff77b926eb9f70eb52ae8f3f2afa2e9d0efa82655e361641458b900", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 2129490, - "blockHash": "0ab10909b27565c5b7b59e8e1ee4a68d7046f49225fcde4c12d4b1ea3f512b8a", - "notarizedAtSourceInMetaNonce": 2130938, - "NotarizedAtSourceInMetaHash": "0c545160fd37f09f0196505b9cd2e730596bcd99438978a5bb415b9e1be1849d", - "notarizedAtDestinationInMetaNonce": 2130942, - "notarizedAtDestinationInMetaHash": "1ddd6b7aeeff824b5d11f2936a6284e470fc5abe41e34a8df229b719dc1a537d", - "miniblockType": "TxBlock", - "miniblockHash": "dc8ae41e1ae321c0fccbeb807194d11ff6e0f4ed71163764d850f1daaa60bd22", - "hyperblockNonce": 2130942, - "hyperblockHash": "1ddd6b7aeeff824b5d11f2936a6284e470fc5abe41e34a8df229b719dc1a537d", - "timestamp": 1707155768, - "status": "success", - "tokens": [ - "OURO-d8171f" - ], - "esdtValues": [ - "640821212132848" - ], - "operation": "ESDTTransfer", - "function": "buy", - "initiallyPaidFee": "359390000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - let opt_address = tx_response.new_deployed_address; - - let expected: Option
= None; - - assert_eq!(opt_address, expected) - } - - #[test] - fn test_with_tx_that_has_sc_result() { - // transaction data from the devnet, an artificial "10" result has been appended on the original result - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "BuiltInFunctionCall", - "processingTypeOnDestination": "SCInvoking", - "hash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "nonce": 30, - "round": 7639115, - "epoch": 6333, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "sender": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "gasPrice": 1000000000, - "gasLimit": 25500000, - "gasUsed": 15297149, - "data": "RVNEVFRyYW5zZmVyQDQ4NTQ0ZDJkNjY2NTMxNjYzNjM5QDBkZTBiNmIzYTc2NDAwMDBANzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NEA1NzQ1NDc0YzQ0MmQ2NDM3NjMzNjYyNjJAMDM3Yzc3OGZjY2U5YzU1Yg==", - "signature": "e912fae4b7a9e51ddf316a5e82a0f457d453a62e3c17477f5d6175e1b33c5e92ddb187d65f54cf3131a0603321290279a0456c20778039f2ab09b54e33c60f0d", - "sourceShard": 2, - "destinationShard": 1, - "blockNonce": 7585351, - "blockHash": "e456f38f11fec78ed26d5fda068e912739dceedb2e5ce559bf17614b8386c039", - "notarizedAtSourceInMetaNonce": 7601495, - "NotarizedAtSourceInMetaHash": "e28c6011d4b3f73f3945cae70ff251e675dfea331a70077c5ab3310e3101af17", - "notarizedAtDestinationInMetaNonce": 7601499, - "notarizedAtDestinationInMetaHash": "333d4266614e981cc1c5654f85ef496038a8cddac46dfc0ad0b7c44c37ab489d", - "miniblockType": "TxBlock", - "miniblockHash": "13e041f32fde79ebf1abdcfe692e99516f9ec6778dcb917251b440daa7f1210a", - "hyperblockNonce": 7601499, - "hyperblockHash": "333d4266614e981cc1c5654f85ef496038a8cddac46dfc0ad0b7c44c37ab489d", - "timestamp": 1694386290, - "smartContractResults": [ - { - "hash": "a23faa3c80bae0b968f007ff0fad3afdec05b4e71d749c3d583dec10c6eb05a2", - "nonce": 0, - "value": 0, - "receiver": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "data": "ESDTTransfer@5745474c442d643763366262@03856446ff9a304b", - "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "identifier": "ESDTTransfer", - "topics": [ - "V0VHTEQtZDdjNmJi", - "", - "A4VkRv+aMEs=", - "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=" - ], - "data": null - }, - { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=" - ], - "data": "QDZmNmI=" - }, - { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "identifier": "completedTxEvent", - "topics": [ - "1AWL08E9sLFIMsfFj+Fj2y9Xn/ZUQ4BYa4on2ItKUHA=" - ], - "data": null - } - ] - }, - "tokens": [ - "WEGLD-d7c6bb" - ], - "esdtValues": [ - "253719210115084363" - ], - "operation": "ESDTTransfer" - }, - { - "hash": "b7b4d15917fd215399d8e772c3c4e732008baaedc2b8172f71c91708ba7523f0", - "nonce": 31, - "value": 102028510000000, - "receiver": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "data": "@6f6b@0000000c5745474c442d64376336626200000000000000000000000803856446ff9a304b@10", - "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "events": [ - { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "identifier": "completedTxEvent", - "topics": [ - "1AWL08E9sLFIMsfFj+Fj2y9Xn/ZUQ4BYa4on2ItKUHA=" - ], - "data": null - } - ] - }, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "05a766ca05d2053d1c0fbeb1797116474a06c86402a3bfd6c132c9a24cfa1bb0", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "data": "swapTokensFixedInput@5745474c442d643763366262@037c778fcce9c55b", - "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "gasLimit": 25050500, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "function": "swapTokensFixedInput" - }, - { - "hash": "4e639c80822d5d7780c8326d683fa9cd6d59649d14122dfabc5a96dda36da527", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", - "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "data": "ESDTTransfer@5745474c442d643763366262@e7730d1ef1b0@737761704e6f466565416e64466f7277617264@4d45582d646332383963@0000000000000000000000000000000000000000000000000000000000000000", - "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "tokens": [ - "WEGLD-d7c6bb" - ], - "esdtValues": [ - "254481327387056" - ], - "operation": "ESDTTransfer", - "function": "swapNoFeeAndForward" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "events": [ - { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "identifier": "ESDTTransfer", - "topics": [ - "SFRNLWZlMWY2OQ==", - "", - "DeC2s6dkAAA=", - "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "identifier": "ESDTTransfer", - "topics": [ - "V0VHTEQtZDdjNmJi", - "", - "53MNHvGw", - "AAAAAAAAAAAFAOcoOHa5zr9eiFpjeVvIJxVDpaz7fOs=" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", - "identifier": "ESDTLocalBurn", - "topics": [ - "TUVYLWRjMjg5Yw==", - "", - "AuMDPq1jy03x" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", - "identifier": "swapNoFeeAndForward", - "topics": [ - "c3dhcF9ub19mZWVfYW5kX2ZvcndhcmQ=", - "TUVYLWRjMjg5Yw==", - "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=", - "GL0=" - ], - "data": "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOsAAAAMV0VHTEQtZDdjNmJiAAAABudzDR7xsAAAAApNRVgtZGMyODljAAAACQLjAz6tY8tN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzvkcAAAAAAAAYvQAAAABk/khy" - }, - { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "identifier": "ESDTTransfer", - "topics": [ - "V0VHTEQtZDdjNmJi", - "", - "A4VkRv+aMEs=", - "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "identifier": "swapTokensFixedInput", - "topics": [ - "c3dhcA==", - "SFRNLWZlMWY2OQ==", - "V0VHTEQtZDdjNmJi", - "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=", - "GL0=" - ], - "data": "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOYAAAAKSFRNLWZlMWY2OQAAAAgN4Lazp2QAAAAAAAxXRUdMRC1kN2M2YmIAAAAIA4VkRv+aMEsAAAAHA41+pMaAAAAAAAoofxtJRPkr8X9kAAAACgpOPCsHUu261HUAAAAAAHO+RwAAAAAAABi9AAAAAGT+SHI=" - } - ] - }, - "status": "success", - "tokens": [ - "HTM-fe1f69" - ], - "esdtValues": [ - "1000000000000000000" - ], - "operation": "ESDTTransfer", - "function": "swapTokensFixedInput", - "initiallyPaidFee": "502005000000000", - "fee": "399976490000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![ - hex::decode("0000000c5745474c442d64376336626200000000000000000000000803856446ff9a304b") - .unwrap(), - hex::decode("10").unwrap(), - ]; - - assert_eq!(tx_response.out, expected) - } - - #[test] - fn test_with_tx_that_has_no_sc_result() { - // transaction data from the devnet - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "6afac3ec13c89cc56154d06efdb457a24f58361699eee00a48202a8f8adc8c8a", - "nonce": 17, - "round": 7548071, - "epoch": 6257, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "cmV0dXJuVHdvVTY0", - "signature": "f3a3ca96a78c90c9cf1b08541e1777010f0176a5e1e525e631155b2784932cbfd74c9168d03ba201fd5434d1a1b4789895ddade9883eca2ee9e0bce18468fb00", - "sourceShard": 0, - "destinationShard": 0, - "blockNonce": 7502091, - "blockHash": "5ec66c651cb1514cba200e7e80a4491880f0db678ce7631c397872e3842f0aa2", - "notarizedAtSourceInMetaNonce": 7510505, - "NotarizedAtSourceInMetaHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", - "notarizedAtDestinationInMetaNonce": 7510505, - "notarizedAtDestinationInMetaHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", - "miniblockType": "TxBlock", - "miniblockHash": "fb150e515449c9b658879ed06f256b429239cbe78ec2c2821deb4b283ff21554", - "hyperblockNonce": 7510505, - "hyperblockHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", - "timestamp": 1693840026, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk5OTMyMDAwLCBnYXMgdXNlZCA9IDE4NDE2NjU=" - ], - "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" - }, - { - "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "identifier": "completedTxEvent", - "topics": [ - "avrD7BPInMVhVNBu/bRXok9YNhaZ7uAKSCAqj4rcjIo=" - ], - "data": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "returnTwoU64", - "initiallyPaidFee": "6067320000000000", - "fee": "6067320000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![ - hex::decode("0a").unwrap(), - hex::decode("0218711a00").unwrap(), - ]; - - assert_eq!(tx_response.out, expected) - } - - #[test] - fn test_with_multi_contract_same_shard_tx_that_has_no_sc_result() { - // transaction data from the devnet - // context : user -> A --call--> B, B returns a MultiValue2, A returns the B's returned value - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "e914857f1bfd003ba411bae372266703e5f706fa412c378feb37faa5e18c3d73", - "nonce": 49, - "round": 7646960, - "epoch": 6339, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "Y2FsbEFub3RoZXJDb250cmFjdFJldHVyblR3b1U2NEAwMDAwMDAwMDAwMDAwMDAwMDUwMEFDRkY2QjdBNEVCODEwMUE4REU3RkY3RjVEMkMwQkYzRTRENjNGNDdBNzND", - "signature": "53cc6496647287d735bd7950f4ec79d7b51f884defda1d6d840d722b7d0d869900ccecc01602da7a7c717955e8d4ed0711b92acd980d64ed6eebd6eaed0c4608", - "sourceShard": 0, - "destinationShard": 0, - "blockNonce": 7600794, - "blockHash": "77eb0904e56d6dd596c0d72821cf33b326fde383e72903ca4df5c2f200b0ea75", - "notarizedAtSourceInMetaNonce": 7609344, - "NotarizedAtSourceInMetaHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", - "notarizedAtDestinationInMetaNonce": 7609344, - "notarizedAtDestinationInMetaHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", - "miniblockType": "TxBlock", - "miniblockHash": "03219ac7427f7511687f0768c722c759c1b1428b2664b44a0cbe2072154851ee", - "hyperblockNonce": 7609344, - "hyperblockHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", - "timestamp": 1694433360, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk5ODA2MDAwLCBnYXMgdXNlZCA9IDM4NDcyNDA=" - ], - "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" - }, - { - "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", - "identifier": "completedTxEvent", - "topics": [ - "6RSFfxv9ADukEbrjciZnA+X3BvpBLDeP6zf6peGMPXM=" - ], - "data": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "callAnotherContractReturnTwoU64", - "initiallyPaidFee": "6192060000000000", - "fee": "6192060000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![ - hex::decode("0a").unwrap(), - hex::decode("0218711a00").unwrap(), - ]; - - assert_eq!(tx_response.out, expected) - } - - #[test] - fn test_with_multi_contract_cross_shard_tx_that_has_no_callback() { - // transaction data from the devnet - // context : user -> A --async call--> B, no callback - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", - "nonce": 51, - "round": 7647523, - "epoch": 6340, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0Tm9DYWxsYmFja0AwMDAwMDAwMDAwMDAwMDAwMDUwMEFDRkY2QjdBNEVCODEwMUE4REU3RkY3RjVEMkMwQkYzRTRENjNGNDdBNzND", - "signature": "0fc30cddaa8e5365662a14344e3434cbccf287f357be99b3ed4add182f64dded774ec0d095ab1589e7c6c07e00de3b7239efc96eb2e0e97b48c1ef87084cec01", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 7593758, - "blockHash": "a828c0ca58ef1c8aff60e512ab59f18204f1915d4a6c8285cfceb1c5725b88e8", - "notarizedAtSourceInMetaNonce": 7609903, - "NotarizedAtSourceInMetaHash": "4e90fe45c2fdccd5cf6977c1422e5f4ffa41c4e9f31fb4a50c20455f87df1e99", - "notarizedAtDestinationInMetaNonce": 7609907, - "notarizedAtDestinationInMetaHash": "10b8666a44411c3babbe20af7154fb3d47efcb1cb10d955523ec68fece26e517", - "miniblockType": "TxBlock", - "miniblockHash": "4ff4bb1ac88911d617c9b0342aeb5158db78490c2fe414cad08adcc584a77be7", - "hyperblockNonce": 7609907, - "hyperblockHash": "10b8666a44411c3babbe20af7154fb3d47efcb1cb10d955523ec68fece26e517", - "timestamp": 1694436738, - "smartContractResults": [ - { - "hash": "462b56a1530e6070dc7c15f755e51a97a6972c8cd7891f3be4635b93211890c5", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "data": "@00@0a@0218711a00", - "prevTxHash": "41d56fdacf3e14de67e821427c732b62ebfa07c82d2e5db6de75fe3a1c828d9b", - "originalTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", - "gasLimit": 595637825, - "gasPrice": 1000000000, - "callType": 2, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1NjM3ODI1LCBnYXMgdXNlZCA9IDIxNjE3NzA=" - ], - "data": "QDZmNmI=" - }, - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "completedTxEvent", - "topics": [ - "QdVv2s8+FN5n6CFCfHMrYuv6B8gtLl223nX+OhyCjZs=" - ], - "data": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "41d56fdacf3e14de67e821427c732b62ebfa07c82d2e5db6de75fe3a1c828d9b", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "data": "returnTwoU64@4f3c60", - "prevTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", - "originalTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", - "gasLimit": 597479490, - "gasPrice": 1000000000, - "callType": 1, - "operation": "transfer", - "function": "returnTwoU64" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" - ], - "data": "QDZmNmI=" - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "asyncCallAnotherContractReturnTwoU64NoCallback", - "initiallyPaidFee": "6214335000000000", - "fee": "6214335000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![]; - - assert_eq!(tx_response.out, expected) - } - - #[test] - fn test_with_multi_contract_cross_shard_tx_that_has_non_returning_callback() { - // transaction data from the devnet - // context : user -> A --async call--> B --callback--> A, the callback returns () - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", - "nonce": 52, - "round": 7647560, - "epoch": 6340, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0V2l0aE5vblJldHVybmluZ0NhbGxiYWNrQDAwMDAwMDAwMDAwMDAwMDAwNTAwQUNGRjZCN0E0RUI4MTAxQThERTdGRjdGNUQyQzBCRjNFNEQ2M0Y0N0E3M0M=", - "signature": "3918fce429b2059b2321b709011079755dbb835e12839278ee510e4741180540e80c6111eea1d3312b2c63446de08b20e01f6040358fa94d1633c355bb65bc0f", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 7593795, - "blockHash": "c17e727f90025225670b7852ea9807c67753c9b3f21b6ec7cc40077e3849a8b7", - "notarizedAtSourceInMetaNonce": 7609940, - "NotarizedAtSourceInMetaHash": "c67b5c550986cfd6c94d00f4b90234eb38ee196ff0d79a00d916f3bd24be272c", - "notarizedAtDestinationInMetaNonce": 7609944, - "notarizedAtDestinationInMetaHash": "d59b7398d962ce3119679af59d5d74e10083e62c3ee2b15421cc0d607979ca18", - "miniblockType": "TxBlock", - "miniblockHash": "2977affeffeb6cf41117bed442662021cb713528cdb1d0dce4537b01caeb8e0b", - "hyperblockNonce": 7609944, - "hyperblockHash": "d59b7398d962ce3119679af59d5d74e10083e62c3ee2b15421cc0d607979ca18", - "timestamp": 1694436960, - "smartContractResults": [ - { - "hash": "fe7474188d5ca4b84c7577f03fc778d22d53c070dfcb05a9cda840229d30e4d3", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "data": "returnTwoU64@4f3c60", - "prevTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", - "originalTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", - "gasLimit": 596979545, - "gasPrice": 1000000000, - "callType": 1, - "operation": "transfer", - "function": "returnTwoU64" - }, - { - "hash": "948dc6702b376d1e043db8de2f87ca12907c342f54cfad7dfebadf59145ca3ac", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "data": "@00@0a@0218711a00", - "prevTxHash": "fe7474188d5ca4b84c7577f03fc778d22d53c070dfcb05a9cda840229d30e4d3", - "originalTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", - "gasLimit": 595137880, - "gasPrice": 1000000000, - "callType": 2, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1MTM3ODgwLCBnYXMgdXNlZCA9IDIyODg1NTA=" - ], - "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" - }, - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "completedTxEvent", - "topics": [ - "/nR0GI1cpLhMdXfwP8d40i1TwHDfywWpzahAIp0w5NM=" - ], - "data": null - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" - ], - "data": "QDZmNmI=" - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "asyncCallAnotherContractReturnTwoU64WithNonReturningCallback", - "initiallyPaidFee": "6235125000000000", - "fee": "6235125000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![]; - - assert_eq!(tx_response.out, expected) - } - - #[test] - fn test_with_multi_contract_cross_shard_tx_that_has_returning_callback() { - // transaction data from the devnet - // context : user -> A --async call--> B --callback--> A, the callback returns a MultiValue2 - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", - "nonce": 53, - "round": 7647583, - "epoch": 6340, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0V2l0aFJldHVybmluZ0NhbGxiYWNrQDAwMDAwMDAwMDAwMDAwMDAwNTAwQUNGRjZCN0E0RUI4MTAxQThERTdGRjdGNUQyQzBCRjNFNEQ2M0Y0N0E3M0M=", - "signature": "858958d4aaf9cb0220ab2933edad3f65e1cb4c58aa7940cb0f40b489d0bd9fdf5c4736a40d6e813743ee622bb91e9f86eacf01b9a31e0ff53f9c84f13c500304", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 7593818, - "blockHash": "b19f97110ca38d3cb15f802a00ab403491b0e5804ebc701527ab50064dc06825", - "notarizedAtSourceInMetaNonce": 7609963, - "NotarizedAtSourceInMetaHash": "4d9db6de610ca778114d44fe91dd036fac7c375c373ae9e77130d3fb9efc8391", - "notarizedAtDestinationInMetaNonce": 7609967, - "notarizedAtDestinationInMetaHash": "a4573d388c31860f9bd6f9507b65d1b3130e445abcada538f10704feba4614e7", - "miniblockType": "TxBlock", - "miniblockHash": "530f5fa3c7af474a187caca8dcea02a7a155017414147871d083bed5c49ec8f5", - "hyperblockNonce": 7609967, - "hyperblockHash": "a4573d388c31860f9bd6f9507b65d1b3130e445abcada538f10704feba4614e7", - "timestamp": 1694437098, - "smartContractResults": [ - { - "hash": "065291164a8acd27c26b5a8f09664810081fda18cd54fca635196cf9b200297a", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "data": "returnTwoU64@4f3c60", - "prevTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", - "originalTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", - "gasLimit": 596994205, - "gasPrice": 1000000000, - "callType": 1, - "operation": "transfer", - "function": "returnTwoU64" - }, - { - "hash": "bc31cb153ae615204625df84fe9ae3a159aa412b7342f3dca958dd5517a08197", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "data": "@00@0a@0218711a00", - "prevTxHash": "065291164a8acd27c26b5a8f09664810081fda18cd54fca635196cf9b200297a", - "originalTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", - "gasLimit": 595152540, - "gasPrice": 1000000000, - "callType": 2, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1MTUyNTQwLCBnYXMgdXNlZCA9IDIyODgwMTU=" - ], - "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" - }, - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "completedTxEvent", - "topics": [ - "BlKRFkqKzSfCa1qPCWZIEAgf2hjNVPymNRls+bIAKXo=" - ], - "data": null - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" - ], - "data": "QDZmNmI=" - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "asyncCallAnotherContractReturnTwoU64WithReturningCallback", - "initiallyPaidFee": "6230670000000000", - "fee": "6230670000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![]; - - assert_eq!(tx_response.out, expected) - } - - #[test] - fn test_process_issued_token_identifier_fungible() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "nonce": 61, - "round": 173598, - "epoch": 72, - "value": "50000000000000000", - "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "sender": "erd1x39tc3q3nn72ecjnmcz7x0qp09kp97t080x99dgyhx7zh95j0n4szskhlv", - "gasPrice": 1000000000, - "gasLimit": 100000000, - "gasUsed": 100000000, - "data": "aXNzdWVMcFRva2VuQDAwMDAwMDAwMDAwMDAwMDAwNTAwMTM5ZWQ3YWU0YWEwMzc5MmU2YmNiMzMyMzk0YTQwZmU3NDZlZWZhNDdjZWJANDU0NzRjNDQ0ZDQ1NTg0YzUwQDQ1NDc0YzQ0NGQ0NTU4", - "signature": "b5049d2906adc1305a6a8d0f42749254ca6259c6996d9a35e7dc7528b3c87b48a421879aff70bc6d81483a7559b75e5dcf9be499dcb7d57aa9f25c79ac2ad40d", - "sourceShard": 1, - "destinationShard": 1, - "blockNonce": 173354, - "blockHash": "09d85ac264a54e12e7613395211c53fe0ee5a7d3b7111bf5fec1d02794caaacd", - "notarizedAtSourceInMetaNonce": 173321, - "NotarizedAtSourceInMetaHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", - "notarizedAtDestinationInMetaNonce": 173321, - "notarizedAtDestinationInMetaHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", - "miniblockType": "TxBlock", - "miniblockHash": "7f45eee4e35ffc1fbce66b92e4dd2aeae2acb092416aa5aa775b96493256b81d", - "hyperblockNonce": 173321, - "hyperblockHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", - "timestamp": 1695041588, - "smartContractResults": [ - { - "hash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "data": "issue@45474c444d45584c50@45474c444d4558@03e8@12@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e4d696e74@74727565@63616e4275726e@74727565@63616e4368616e67654f776e6572@74727565@63616e55706772616465@74727565@63616e4164645370656369616c526f6c6573@74727565@65ba30", - "prevTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 89624222, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1x39tc3q3nn72ecjnmcz7x0qp09kp97t080x99dgyhx7zh95j0n4szskhlv", - "operation": "transfer", - "function": "issue" - }, - { - "hash": "2a452ff652791d79be5f6933fb583cc5503e876893e54b3b51381a92aa2e904d", - "nonce": 0, - "value": 0, - "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetBurnRoleForAll@45474c444d45582d393563366435", - "prevTxHash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "events": [ - { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "identifier": "completedTxEvent", - "topics": [ - "vOPQ3OsLPlyMV4DX2jdVw/dJLVUWhdSTpzv2br02dUs=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTTransfer@45474c444d45582d393563366435@03e8@00", - "prevTxHash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 39624222, - "gasPrice": 1000000000, - "callType": 2, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "identifier": "ESDTTransfer", - "topics": [ - "RUdMRE1FWC05NWM2ZDU=", - "", - "A+g=", - "AAAAAAAAAAAFAO+ux8+3RD51ieGHV10Z68X293CYfOs=" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "identifier": "completedTxEvent", - "topics": [ - "vOPQ3OsLPlyMV4DX2jdVw/dJLVUWhdSTpzv2br02dUs=" - ], - "data": null, - "additionalData": null - } - ] - }, - "tokens": [ - "EGLDMEX-95c6d5" - ], - "esdtValues": [ - "1000" - ], - "operation": "ESDTTransfer", - "function": "\u0000" - }, - { - "hash": "c9dfc4de3c3cee319123087a4f5dd03cc051e728ec6070707a63ea977b535227", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "data": "\u0000", - "prevTxHash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 39424222, - "gasPrice": 1000000000, - "callType": 2, - "operation": "transfer", - "function": "\u0000" - }, - { - "hash": "609c3a8e1903680fef1f6d9e47527b1b5c1259664b868af600162120ce0b8192", - "nonce": 1, - "value": 300925400000000, - "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "data": "@6f6b", - "prevTxHash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "identifier": "transferValueOnly", - "topics": [ - "AAAAAAAAAAAFAO+ux8+3RD51ieGHV10Z68X293CYfOs=", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", - "saK8LsUAAA==" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "identifier": "writeLog", - "topics": [ - "NEq8RBGc/KziU94F4zwBeWwS+W87zFK1BLm8K5aSfOs=" - ], - "data": "QDZmNmI=", - "additionalData": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "issueLpToken", - "initiallyPaidFee": "1214335000000000", - "fee": "1214335000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = Some("EGLDMEX-95c6d5".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) - } - - #[test] - fn test_process_issued_token_identifier_semi_fungible() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "nonce": 65, - "round": 8422527, - "epoch": 584, - "value": "50000000000000000", - "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "sender": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", - "gasPrice": 1000000000, - "gasLimit": 80000000, - "gasUsed": 80000000, - "data": "aXNzdWVUb2tlbkA0NDZmNzA2NTU0NjU3Mzc0QDQ0NGY1MDQ1NTQ0NTUzNTQ=", - "signature": "0191848976e930996f6c62d4921e732f9b0ada8b41ca3b5b63d6bfd304fd44c2a1e8e6643479618ba4a764a36e87f53882b4f707600d5b7d476f2fdd2bac040e", - "sourceShard": 0, - "destinationShard": 0, - "blockNonce": 8420241, - "blockHash": "4d302220f6015876c95e7961b770cc67f8ab63c5f0ab69b4d6c2fb15c8bc23bd", - "notarizedAtSourceInMetaNonce": 8403647, - "NotarizedAtSourceInMetaHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", - "notarizedAtDestinationInMetaNonce": 8403647, - "notarizedAtDestinationInMetaHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", - "miniblockType": "TxBlock", - "miniblockHash": "b7b8fc9f3b81d7daae1113cbf73457e16ee31f3a864ef3729a1a21f3a929e112", - "hyperblockNonce": 8403647, - "hyperblockHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", - "timestamp": 1646652762, - "smartContractResults": [ - { - "hash": "9aecf3bd5dd5c706a28d1cc7059ac20db74340f136816f667dbefcc58daa3aba", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "data": "issueSemiFungible@446f706554657374@444f504554455354@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e4368616e67654f776e6572@74727565@63616e55706772616465@74727565@63616e4164645370656369616c526f6c6573@74727565@5ca148", - "prevTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "gasLimit": 75958360, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", - "operation": "transfer", - "function": "issueSemiFungible" - }, - { - "hash": "aacfe9088bb9d2d5b3fbe9cab2b2f1c6a7e9cbab2f1a41020e2c819fc9b43570", - "nonce": 66, - "value": 0, - "receiver": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", - "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "data": "@6f6b", - "prevTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer" - }, - { - "hash": "3f6f0f3de9e942884e7e1592823a7db7ce935a3f9d3359d8c1ee98a5645332d8", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@444f5045544553542d373732303063", - "prevTxHash": "9aecf3bd5dd5c706a28d1cc7059ac20db74340f136816f667dbefcc58daa3aba", - "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "gasLimit": 25958360, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "identifier": "completedTxEvent", - "topics": [ - "muzzvV3VxwaijRzHBZrCDbdDQPE2gW9mfb78xY2qOro=" - ], - "data": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "c6e4f7c5da455009fb4f6967ce8a273a97b826aa617fa798ffd0cf17bde6b97a", - "nonce": 1, - "value": 225516180000000, - "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "data": "@6f6b", - "prevTxHash": "3f6f0f3de9e942884e7e1592823a7db7ce935a3f9d3359d8c1ee98a5645332d8", - "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "identifier": "transferValueOnly", - "topics": [ - "AAAAAAAAAAAFAH6d74PDz8xLqvowrlOA5lVDBMUghBg=", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", - "saK8LsUAAA==" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "identifier": "writeLog", - "topics": [ - "NFD3vy7whM1YgLyLL6nEojWMeUDt2MMJRRM9qTgahBg=" - ], - "data": "QDZmNmI=" - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "issueToken", - "initiallyPaidFee": "914840000000000", - "fee": "914840000000000", - "chainID": "1", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = Some("DOPETEST-77200c".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) - } - - #[test] - fn test_process_issued_token_identifier_non_fungible() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "nonce": 16, - "round": 820170, - "epoch": 341, - "value": "50000000000000000", - "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "sender": "erd162knt53z7m0f9jjms9wxphr3q9d7zu4ky85xs2cc0ekrqz7k4fdq85lkuc", - "gasPrice": 1000000000, - "gasLimit": 200000000, - "gasUsed": 200000000, - "data": "aXNzdWVUb2tlbkA2NzY1NmU2NTdhNzk3M0A0NzQ1NGU=", - "signature": "e80d45f4de419799a2bbff1cae1235521c8eef1853ee45b02f95c2da74ce50d241bf75b6ab0c650245562700862ea9759caad40f3e381ac0c4d82cfe56e67c09", - "sourceShard": 2, - "destinationShard": 2, - "blockNonce": 819313, - "blockHash": "a1db4ef13f07b86678000df9cc78f244d83dcc35ae51de545f333bf616930d39", - "notarizedAtSourceInMetaNonce": 819396, - "NotarizedAtSourceInMetaHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", - "notarizedAtDestinationInMetaNonce": 819396, - "notarizedAtDestinationInMetaHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", - "miniblockType": "TxBlock", - "miniblockHash": "afdb278522181aeb9b12f08840e6c534e398e6af9c7f757548308e300e7ec4e9", - "hyperblockNonce": 819396, - "hyperblockHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", - "timestamp": 1698921020, - "smartContractResults": [ - { - "hash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "data": "issueNonFungible@67656e657a7973@47454e@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e5472616e736665724e4654437265617465526f6c65@74727565@63616e4368616e67654f776e6572@66616c7365@63616e55706772616465@66616c7365@63616e4164645370656369616c526f6c6573@74727565@5e30e4", - "prevTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 196098365, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd162knt53z7m0f9jjms9wxphr3q9d7zu4ky85xs2cc0ekrqz7k4fdq85lkuc", - "operation": "transfer", - "function": "issueNonFungible" - }, - { - "hash": "98afe82512c79f1caaf171bd5919ee469d11ba0c4f725aefcab834278c0f1e58", - "nonce": 0, - "value": 0, - "receiver": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetBurnRoleForAll@47454e2d383638353933", - "prevTxHash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", - "events": [ - { - "address": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", - "identifier": "completedTxEvent", - "topics": [ - "b+DMACgCrxdE85Tu5KaSJLXndZYdg4bgTnpbkkL3/2U=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "data": "setSpecialRole@47454e2d383638353933@00000000000000000500de51fa8943c26e6933419f9bb7ceb79b7ff4f7bbaa5a@45534454526f6c654e4654437265617465@5e30e4", - "prevTxHash": "112d18ec0364b4700b1bfb3df517c80dba547a53373ece2a9e71acd5266e7b64", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 142399698, - "gasPrice": 1000000000, - "callType": 1, - "operation": "transfer", - "function": "setSpecialRole" - }, - { - "hash": "112d18ec0364b4700b1bfb3df517c80dba547a53373ece2a9e71acd5266e7b64", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@47454e2d383638353933", - "prevTxHash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 146098365, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=" - ], - "data": "QDZmNmI=", - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "db5d74970374337956fa61fb4fd90057b3f6a82ea3e259b389934b71a1652e5f", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetRole@47454e2d383638353933@45534454526f6c654e4654437265617465", - "prevTxHash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "ESDTSetRole", - "topics": [ - "R0VOLTg2ODU5Mw==", - "", - "", - "RVNEVFJvbGVORlRDcmVhdGU=" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "completedTxEvent", - "topics": [ - "g0lK2TaXOLV0pyZsv7Es5jzPY0lQzWsOwWEHuPtC+PY=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "ESDTSetRole", - "function": "ESDTSetRole" - }, - { - "hash": "a6a665f47977a59c4c2baf460281fc938e04ae0f87ac2e78040a14ae27822701", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00", - "prevTxHash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 92399698, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gOTIzOTk2OTgsIGdhcyB1c2VkID0gMzE0MTg4MA==" - ], - "data": "QDZmNmI=", - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "completedTxEvent", - "topics": [ - "g0lK2TaXOLV0pyZsv7Es5jzPY0lQzWsOwWEHuPtC+PY=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "transferValueOnly", - "topics": [ - "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", - "saK8LsUAAA==" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "writeLog", - "topics": [ - "0q010iL23pLKW4FcYNxxAVvhcrYh6GgrGH5sMAvWqlo=" - ], - "data": "QDZmNmI=", - "additionalData": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "issueToken", - "initiallyPaidFee": "2097020000000000", - "fee": "2097020000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = Some("GEN-868593".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) - } - - #[test] - fn test_process_issued_token_identifier_meta_esdt() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "nonce": 419, - "round": 1787093, - "epoch": 744, - "value": "50000000000000000", - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 157220928, - "data": "ZGVwbG95QXNoc3dhcExQQUNTdHJhdGVneUA0MTRjNTAyZDYzNjE2NTYxNjMzNUA0MTU0NTMyZDM0NjMzMDM5MzIzMEAwM2U4QDAzZThAQDNiOWFjYTAwQDAwMDAwMDAwMDAwMDAwMDAwNTAwOTU3MzkwYWVkYTQzMmY1MmE0MTFkNTE5NzRmZTkzZDQwZDI3NzMzZTA0NjNAMDAwMDAwMDAwMDAwMDAwMDA1MDBkMTJjYzczY2JkYTZmMjY1OWM5NTllNWQ1NzU4YWY5MmNhMTM4NDg2NTIzM0AwMDAwMDAwMDAwMDAwMDAwMDUwMDUxZGY3MTc1OGNmMmFjYTViNDZkZWQ4MTU1OGI1NTE1ZGMyOWYzZjM1MjMzQEAwMDAwMDAwMDAwMDAwMDAwMDUwMDdlNGExZGZjNDM3Y2VkNDlkYjlmMTYzNzk4NDE2Yjg0YWMyMWQ0Yzk3Y2ViMDAwMDAwMGM1NzQ1NDc0YzQ0MmQ2MTMyMzg2MzM1MzkwMDAwMDAwMDAwMDAwMDAwMDUwMGE4YmE5ZTY4NjI2YmJjOTkzZmQ3OTVlOGJiNmY0Nzk0M2IyZjVmZmE3Y2ViMDAwMDAwMGE1NTU0NGIyZDMxMzQ2NDM1Mzc2NEAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwNTAwNTFkZjcxNzU4Y2YyYWNhNWI0NmRlZDgxNTU4YjU1MTVkYzI5ZjNmMzUyMzMwMDAwMDAwYjQyNTU1MzQ0MmQ2NDM0NjMzMDMxMzQwMDAwMDAwMDAwQDAxODZhMEAyNzEw", - "signature": "4648af0b96eb430e4986b9fb760549742de09c809b46b984e5d995c898d80c25bfc0717c30da34bd89cd3005d98ee895afa39ee588b7b74b4807c63cbeade807", - "sourceShard": 1, - "destinationShard": 1, - "blockNonce": 1785520, - "blockHash": "8f926a5d79fa84bc69949a21bfbba17447091a8a074ac172fa0b88e4475a1214", - "notarizedAtSourceInMetaNonce": 1785568, - "NotarizedAtSourceInMetaHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", - "notarizedAtDestinationInMetaNonce": 1785568, - "notarizedAtDestinationInMetaHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", - "miniblockType": "TxBlock", - "miniblockHash": "b85d82db6d69cbc1911b3455d2837eeb3170b391926efa2eacb4d9c8e3c96ee4", - "hyperblockNonce": 1785568, - "hyperblockHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", - "timestamp": 1704722558, - "smartContractResults": [ - { - "hash": "ea9a96c079e66249e6b73c0341991dad96ca81f855f2fc4abe0d432be117a882", - "nonce": 420, - "value": 4427790720000000, - "receiver": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "@6f6b", - "prevTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "registerMetaESDT@415453417368537761704c5041435661756c74@4156415348@12@63616e467265657a65@66616c7365@63616e57697065@66616c7365@63616e5061757365@66616c7365@63616e5472616e736665724e4654437265617465526f6c65@66616c7365@63616e4368616e67654f776e6572@66616c7365@63616e55706772616465@66616c7365@63616e4164645370656369616c526f6c6573@74727565@9eb30a87c92674ab1469700c0b385b3850e86de80f87dec6cf3213c7e379a646@408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43@03eb4a30", - "prevTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "gasLimit": 125751600, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "operation": "transfer", - "function": "registerMetaESDT" - }, - { - "hash": "290f85d7ec2f7d5797510290358e9e0f76bb880451efaacb0d69280b8d94c67a", - "nonce": 0, - "value": 0, - "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetBurnRoleForAll@41564153482d376438623564", - "prevTxHash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", - "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "logs": { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "events": [ - { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "identifier": "completedTxEvent", - "topics": [ - "YIKXUTKiydgZff0PmFK0VK00R0Duvb35P2ILJ5arcjs=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "1aa62a6251edd216bd4e5ae59f7e676d5d2f88597685e0ec0e25ac4434bfccdb", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@41564153482d376438623564@d0644194444642fd16ee156307f6fda0e8f8baf4c496e1a1dc85e027ecc08a4a@9eb30a87c92674ab1469700c0b385b3850e86de80f87dec6cf3213c7e379a646@408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43@00", - "prevTxHash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", - "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "gasLimit": 75751600, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNzU3NTE2MDAsIGdhcyB1c2VkID0gNDE3NjA1OQ==" - ], - "data": "QDZmNmI=", - "additionalData": [ - "QDZmNmI=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "completedTxEvent", - "topics": [ - "YIKXUTKiydgZff0PmFK0VK00R0Duvb35P2ILJ5arcjs=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" - ], - "data": "RGVwbG95RnJvbVNvdXJjZQ==", - "additionalData": [ - "RGVwbG95RnJvbVNvdXJjZQ==", - "aW5pdA==", - "QUxQLWNhZWFjNQ==", - "QVRTLTRjMDkyMA==", - "A+g=", - "A+g=", - "", - "O5rKAA==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=" - ], - "data": "RGVwbG95RnJvbVNvdXJjZQ==", - "additionalData": [ - "RGVwbG95RnJvbVNvdXJjZQ==", - "aW5pdA==", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", - "AAAAAAAAAAAFAJVzkK7aQy9SpBHVGXT+k9QNJ3M+BGM=", - "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=", - "AAAAAAAAAAAFAFHfcXWM8qyltG3tgVWLVRXcKfPzUjM=", - "", - "AAAAAAAAAAAFAH5KHfxDfO1J258WN5hBa4SsIdTJfOsAAAAMV0VHTEQtYTI4YzU5AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOsAAAAKVVRLLTE0ZDU3ZA==", - "AAAAAQAAAAAAAAAABQBR33F1jPKspbRt7YFVi1UV3Cnz81IzAAAAC0JVU0QtZDRjMDE0AAAAAAA=", - "AYag", - "JxA=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "Z2V0RmFybWluZ1Rva2VuSWQ=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "Z2V0RmFybVRva2VuSWQ=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "Z2V0UmV3YXJkVG9rZW5JZA==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "saK8LsUAAA==", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" - ], - "data": "QXN5bmNDYWxs", - "additionalData": [ - "QXN5bmNDYWxs", - "cmVnaXN0ZXJNZXRhRVNEVA==", - "QVRTQXNoU3dhcExQQUNWYXVsdA==", - "QVZBU0g=", - "Eg==", - "Y2FuRnJlZXpl", - "ZmFsc2U=", - "Y2FuV2lwZQ==", - "ZmFsc2U=", - "Y2FuUGF1c2U=", - "ZmFsc2U=", - "Y2FuVHJhbnNmZXJORlRDcmVhdGVSb2xl", - "ZmFsc2U=", - "Y2FuQ2hhbmdlT3duZXI=", - "ZmFsc2U=", - "Y2FuVXBncmFkZQ==", - "ZmFsc2U=", - "Y2FuQWRkU3BlY2lhbFJvbGVz", - "dHJ1ZQ==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", - "identifier": "SCDeploy", - "topics": [ - "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=", - "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", - "fvRqbue54Womde/CN2IkRGkrx8tsU+xkLvi3+uwMkhY=" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "identifier": "SCDeploy", - "topics": [ - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", - "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", - "E3blQfRJfCKLWDr06Od703DSZenIzq8KND+xUjmGY/M=" - ], - "data": null, - "additionalData": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "deployAshswapLPACStrategy", - "initiallyPaidFee": "6936045000000000", - "fee": "2508254280000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = Some("AVASH-7d8b5d".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) - } - - #[test] - fn test_set_special_roles_should_not_process_issued_token_identifier() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "nonce": 420, - "round": 1787109, - "epoch": 744, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 129636807, - "data": "ZmluaXNoVmF1bHREZXBsb3ltZW50cw==", - "signature": "dca943ef1a788bfa6cb0e9aa3900b8340e4908075cbfefaa2a66688f6f0c0fed349edb2eb48eec427cd9098822fba875e4d66072fbdb44cb7f4c1a416736e20c", - "sourceShard": 1, - "destinationShard": 1, - "blockNonce": 1785536, - "blockHash": "93ca539e81612768b67a85b7135f7c104e76bec031a758a6b1782910ae49dd8f", - "notarizedAtSourceInMetaNonce": 1785584, - "NotarizedAtSourceInMetaHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", - "notarizedAtDestinationInMetaNonce": 1785584, - "notarizedAtDestinationInMetaHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", - "miniblockType": "TxBlock", - "miniblockHash": "f8c60565af746e92d2c9c09a92734e5eb8da7e42c67a86854c93b349bfe287eb", - "hyperblockNonce": 1785584, - "hyperblockHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", - "timestamp": 1704722654, - "smartContractResults": [ - { - "hash": "c3ce9c364de3823ffae250c2bfb40aaf2b18f771ed4bd37bf788ad83a2c651f3", - "nonce": 421, - "value": 4703631930000000, - "receiver": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "@6f6b", - "prevTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "setSpecialRole@41564153482d376438623564@00000000000000000500d00cc0e63887ff6b792d34234a44e7ac6b575d4b0463@45534454526f6c654e4654437265617465@45534454526f6c654e46544164645175616e74697479@45534454526f6c654e46544275726e@0192c6db2c69f50b6968fb22ac558337a851719519cfd1e6bbf79a07bbcf18bc@cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0@03eb4a30", - "prevTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 125751600, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "operation": "transfer", - "function": "setSpecialRole" - }, - { - "hash": "d6a5824a60b6c9050462c3f5a02ace00c36e8b4ba1958d132bd394e2ed1e7226", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetRole@41564153482d376438623564@45534454526f6c654e4654437265617465@45534454526f6c654e46544164645175616e74697479@45534454526f6c654e46544275726e", - "prevTxHash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "identifier": "ESDTSetRole", - "topics": [ - "QVZBU0gtN2Q4YjVk", - "", - "", - "RVNEVFJvbGVORlRDcmVhdGU=", - "RVNEVFJvbGVORlRBZGRRdWFudGl0eQ==", - "RVNEVFJvbGVORlRCdXJu" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "identifier": "completedTxEvent", - "topics": [ - "UPnCWhQCzm2Hrp+JBlnIpnRiKS5HHgLHTWT/e6GZXmA=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "ESDTSetRole", - "function": "ESDTSetRole" - }, - { - "hash": "bf1b8b4b301ff548368dfd972896489d5e2a088d5cbdfa1bfe2421cc7f641f7a", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@a68d44c751eba85db0713db8dc9c10c78749189ec0d6f1af5fc67bb656c1254b@0192c6db2c69f50b6968fb22ac558337a851719519cfd1e6bbf79a07bbcf18bc@cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0@00", - "prevTxHash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 75751600, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "c2V0U2hhcmVUb2tlbklkZW50aWZpZXI=", - "QVZBU0gtN2Q4YjVk" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "c2V0U3RyYXRlZ3lBZGRyZXNz", - "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "completedTxEvent", - "topics": [ - "UPnCWhQCzm2Hrp+JBlnIpnRiKS5HHgLHTWT/e6GZXmA=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "9d75a398545f488d4764149245e6ec3101debfce99477c353ac11c3239acd897", - "nonce": 1, - "value": 648519550000000, - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "@6f6b", - "prevTxHash": "bf1b8b4b301ff548368dfd972896489d5e2a088d5cbdfa1bfe2421cc7f641f7a", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" - ], - "data": "QXN5bmNDYWxs", - "additionalData": [ - "QXN5bmNDYWxs", - "c2V0U3BlY2lhbFJvbGU=", - "QVZBU0gtN2Q4YjVk", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", - "RVNEVFJvbGVORlRDcmVhdGU=", - "RVNEVFJvbGVORlRBZGRRdWFudGl0eQ==", - "RVNEVFJvbGVORlRCdXJu" - ] - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "finishVaultDeployments", - "initiallyPaidFee": "6082170000000000", - "fee": "1378538070000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = None; - - assert_eq!(tx_response.new_issued_token_identifier, expected) - } - - #[test] - fn test_multisig_issue_nft_and_set_all_roles() { - let data = r#" -{ - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "nonce": 53, - "round": 3050972, - "epoch": 1246, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "sender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "gasPrice": 1000000000, - "gasLimit": 80000000, - "gasUsed": 80000000, - "data": "cGVyZm9ybUFjdGlvbkAwMQ==", - "signature": "cb67645595cee5f7967d8d85af05bb7db73e80d9b97611796819249d87cd174b69b4abfc2a3fbe52df1aec965bdea921f7eb34d2b1118aa480699ad1dc85790a", - "sourceShard": 0, - "destinationShard": 0, - "blockNonce": 2984930, - "blockHash": "644ae8703b826a23e89429953919ec37f875e34a547ea9f7edd53fb71a99c746", - "notarizedAtSourceInMetaNonce": 2988311, - "NotarizedAtSourceInMetaHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", - "notarizedAtDestinationInMetaNonce": 2988311, - "notarizedAtDestinationInMetaHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", - "miniblockType": "TxBlock", - "miniblockHash": "c5a73671bc1d37835ddd15b926157721bc83203ec4e00cd48ae0d46015cb5f0b", - "hyperblockNonce": 2988311, - "hyperblockHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", - "timestamp": 1712305832, - "smartContractResults": [ - { - "hash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "data": "registerAndSetAllRoles@54657374436f6c6c656374696f6e31@54455354434f4c4c31@4e4654@@98fa4ff554b9c6990ce577fbb816a271f690dcbd6b148f6583fe7692868ae538@08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd@5e2338", - "prevTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 73052300, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "operation": "transfer", - "function": "registerAndSetAllRoles" - }, - { - "hash": "5ae4f74e134e4fa63c8b92e06ff12b2a4b544233d01d80db6a922af35ee55356", - "nonce": 1, - "value": 196430610000000, - "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "sender": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "data": "@6f6b", - "prevTxHash": "c4a24b01b48d32308636310e2d335d6ed1f34dcbdfc1133aed7995e78e831c18", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "7589c1ad622d8a9ab2f186731fc82aeeab0aea5a8198cb94b6eba85a966e7962", - "nonce": 0, - "value": 0, - "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetBurnRoleForAll@54455354434f4c4c312d356161383063", - "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "logs": { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", - "events": [ - { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", - "identifier": "completedTxEvent", - "topics": [ - "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" - ] - } - ] - }, - "operation": "transfer" - }, - { - "hash": "86d1ec3365ea1311dbde2f2366de4ea8627d7e49c29a974578c0869b66903cbc", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetRole@54455354434f4c4c312d356161383063@45534454526f6c654e4654437265617465@45534454526f6c654e46544275726e@45534454526f6c654e465455706461746541747472696275746573@45534454526f6c654e4654416464555249", - "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "ESDTSetRole", - "topics": [ - "VEVTVENPTEwxLTVhYTgwYw==", - "", - "", - "RVNEVFJvbGVORlRDcmVhdGU=", - "RVNEVFJvbGVORlRCdXJu", - "RVNEVFJvbGVORlRVcGRhdGVBdHRyaWJ1dGVz", - "RVNEVFJvbGVORlRBZGRVUkk=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "completedTxEvent", - "topics": [ - "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" - ] - } - ] - }, - "operation": "ESDTSetRole", - "function": "ESDTSetRole" - }, - { - "hash": "c4a24b01b48d32308636310e2d335d6ed1f34dcbdfc1133aed7995e78e831c18", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@54455354434f4c4c312d356161383063@3ec73c55022548038bbe06c0639156b3db70b7c770955e340f14fcfcd45df06a@98fa4ff554b9c6990ce577fbb816a271f690dcbd6b148f6583fe7692868ae538@08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd@00", - "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 23052300, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "callBack", - "topics": [ - "YXN5bmNDYWxsU3VjY2Vzcw==", - "VEVTVENPTEwxLTVhYTgwYw==" - ], - "additionalData": [ - "" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "completedTxEvent", - "topics": [ - "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" - ] - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "performAction", - "topics": [ - "c3RhcnRQZXJmb3JtQWN0aW9u" - ], - "data": "AAAAAQYAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAL//wAAAAexorwuxQAAAAAAFnJlZ2lzdGVyQW5kU2V0QWxsUm9sZXMAAAAEAAAAD1Rlc3RDb2xsZWN0aW9uMQAAAAlURVNUQ09MTDEAAAADTkZUAAAAAAAAAATjKv7ckE/hk5dGrZc76zg1Y89jZCumabMED5uUKKXtYLE6AXQjw2bK/4zs+3ehJhChMPSIgTQSLHk3/q4NbX0XOvjZyUI7JXfGJSciwdkCEqQRH3ID+XRPdvz6HQoxADOyoRVVzlIeSUTgmrF1SdhbSH3NJshLUBejnjGjZwiJug==", - "additionalData": [ - "AAAAAQYAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAL//wAAAAexorwuxQAAAAAAFnJlZ2lzdGVyQW5kU2V0QWxsUm9sZXMAAAAEAAAAD1Rlc3RDb2xsZWN0aW9uMQAAAAlURVNUQ09MTDEAAAADTkZUAAAAAAAAAATjKv7ckE/hk5dGrZc76zg1Y89jZCumabMED5uUKKXtYLE6AXQjw2bK/4zs+3ehJhChMPSIgTQSLHk3/q4NbX0XOvjZyUI7JXfGJSciwdkCEqQRH3ID+XRPdvz6HQoxADOyoRVVzlIeSUTgmrF1SdhbSH3NJshLUBejnjGjZwiJug==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "performAction", - "topics": [ - "cGVyZm9ybUFzeW5jQ2FsbA==", - "AQ==", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", - "saK8LsUAAA==", - "BGa4HQ==", - "cmVnaXN0ZXJBbmRTZXRBbGxSb2xlcw==", - "VGVzdENvbGxlY3Rpb24x", - "VEVTVENPTEwx", - "TkZU", - "" - ], - "additionalData": [ - "" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "transferValueOnly", - "topics": [ - "saK8LsUAAA==", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" - ], - "data": "QXN5bmNDYWxs", - "additionalData": [ - "QXN5bmNDYWxs", - "cmVnaXN0ZXJBbmRTZXRBbGxSb2xlcw==", - "VGVzdENvbGxlY3Rpb24x", - "VEVTVENPTEwx", - "TkZU", - "" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "writeLog", - "topics": [ - "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" - ], - "data": "QDZmNmI=", - "additionalData": [ - "QDZmNmI=" - ] - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "performAction", - "initiallyPaidFee": "873260000000000", - "fee": "873260000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected = Some("TESTCOLL1-5aa80c".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) - } -} diff --git a/framework/scenario/tests/tx_response_tests.rs b/framework/scenario/tests/tx_response_tests.rs new file mode 100644 index 0000000000..a1d9da5a34 --- /dev/null +++ b/framework/scenario/tests/tx_response_tests.rs @@ -0,0 +1,2661 @@ +use multiversx_sc::types::Address; +use multiversx_sc_scenario::scenario_model::{is_out_scr, TxResponse}; +use multiversx_sdk::data::transaction::{TransactionInfo, TransactionOnNetwork}; + +#[test] +fn test_transaction_multiple_sc_results() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "BuiltInFunctionCall", + "processingTypeOnDestination": "SCInvoking", + "hash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "nonce": 236, + "round": 3353069, + "epoch": 1371, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "sender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "gasPrice": 1000000000, + "gasLimit": 100000000, + "gasUsed": 12767998, + "data": "RVNEVFRyYW5zZmVyQDU1NTQ0YjJkMzEzNDY0MzUzNzY0QDhhYzcyMzA0ODllODAwMDBANzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NEA1NzQ1NDc0YzQ0MmQ2MTMyMzg2MzM1MzlAZThkNGE1MTAwMA==", + "signature": "caed340339e3ae17a92783f5f08f96ac875885e44c25510cd11251ce23f22994985a6605c4d36f841b7110288a5e928f624f150a66a9de8ade36b68028a9af09", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 3288476, + "blockHash": "0e70ea5fb26c58b1029c84e24eb9a661272b6253d30c668af91f167bfd67b2b0", + "notarizedAtSourceInMetaNonce": 3290316, + "NotarizedAtSourceInMetaHash": "8200662ca3ade8fa8e1dd3a4184b0a74d4c43de8f4153170a506f60c94ad3e8b", + "notarizedAtDestinationInMetaNonce": 3290320, + "notarizedAtDestinationInMetaHash": "e5f332a8f2070fd1c4ff90f5dc1ee691f36e4ecb9cb5c37e8e7c8595036c3792", + "miniblockType": "TxBlock", + "miniblockHash": "d271ad87c6cf8653cc950272f3ee5e976820ada80468518fa35fe45b6e33dca8", + "hyperblockNonce": 3290320, + "hyperblockHash": "e5f332a8f2070fd1c4ff90f5dc1ee691f36e4ecb9cb5c37e8e7c8595036c3792", + "timestamp": 1714118414, + "smartContractResults": [ + { + "hash": "c0e63f1018ece1036e3e6dc405553e5f6badfe0f5d2a104f4cd4457a872d02f9", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "data": "swapTokensFixedInput@5745474c442d613238633539@e8d4a51000", + "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "gasLimit": 99559500, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "operation": "transfer", + "function": "swapTokensFixedInput" + }, + { + "hash": "40078cec63b6e0d0d9522ea5e6d2d0cb6f21ebae981f354de3dc3545ac2928ad", + "nonce": 0, + "value": 0, + "receiver": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "data": "ESDTTransfer@5745474c442d613238633539@9b35e4dd3902b9", + "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "logs": { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtYTI4YzU5", + "", + "mzXk3TkCuQ==", + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" + ], + "data": null, + "additionalData": [ + "", + "RVNEVFRyYW5zZmVy", + "V0VHTEQtYTI4YzU5", + "mzXk3TkCuQ==" + ] + }, + { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=" + ], + "data": "QDZmNmI=", + "additionalData": [ + "QDZmNmI=" + ] + }, + { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "identifier": "completedTxEvent", + "topics": [ + "xtxxjFbIeVFW2Ef0+XaPKxl2pRbTkP3OD1uLrRrDzOU=" + ], + "data": null, + "additionalData": null + } + ] + }, + "tokens": [ + "WEGLD-a28c59" + ], + "esdtValues": [ + "43687878470468281" + ], + "operation": "ESDTTransfer" + }, + { + "hash": "26487a550721b8282ceafe603bb4d53ee93929ffd9ded39b08e7422adb4d8795", + "nonce": 237, + "value": 872320020000000, + "receiver": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "data": "@6f6b@0000000c5745474c442d6132386335390000000000000000000000079b35e4dd3902b9", + "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "events": [ + { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "identifier": "completedTxEvent", + "topics": [ + "xtxxjFbIeVFW2Ef0+XaPKxl2pRbTkP3OD1uLrRrDzOU=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "798ba4333a7cedb62f811d942dedb8c0c09bf9945a0d2ccede2eaed967eba135", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqw88ux2l44eufvwz2uhvduhq03g8pxc4j0n4s0frzjz", + "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "data": "ESDTTransfer@55544b2d313464353764@2d79883d2000@6465706f7369745377617046656573", + "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "tokens": [ + "UTK-14d57d" + ], + "esdtValues": [ + "50000000000000" + ], + "operation": "ESDTTransfer", + "function": "depositSwapFees" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "events": [ + { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "identifier": "ESDTTransfer", + "topics": [ + "VVRLLTE0ZDU3ZA==", + "", + "iscjBInoAAA=", + "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=" + ], + "data": null, + "additionalData": [ + "", + "RVNEVFRyYW5zZmVy", + "VVRLLTE0ZDU3ZA==", + "iscjBInoAAA=", + "c3dhcFRva2Vuc0ZpeGVkSW5wdXQ=", + "V0VHTEQtYTI4YzU5", + "6NSlEAA=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "identifier": "ESDTTransfer", + "topics": [ + "VVRLLTE0ZDU3ZA==", + "", + "LXmIPSAA", + "AAAAAAAAAAAFAHHPwyv1rniWOErl2N5cD4oOE2KyfOs=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "RVNEVFRyYW5zZmVy", + "VVRLLTE0ZDU3ZA==", + "LXmIPSAA", + "ZGVwb3NpdFN3YXBGZWVz" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqw88ux2l44eufvwz2uhvduhq03g8pxc4j0n4s0frzjz", + "identifier": "depositSwapFees", + "topics": [ + "ZGVwb3NpdF9zd2FwX2ZlZXNfZXZlbnQ=", + "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=", + "ug==", + "AAAAClVUSy0xNGQ1N2QAAAAAAAAAAAAAAAYteYg9IAA=" + ], + "data": null, + "additionalData": [ + "" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtYTI4YzU5", + "", + "mzXk3TkCuQ==", + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" + ], + "data": "RGlyZWN0Q2FsbA==", + "additionalData": [ + "RGlyZWN0Q2FsbA==", + "RVNEVFRyYW5zZmVy", + "V0VHTEQtYTI4YzU5", + "mzXk3TkCuQ==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "identifier": "swapTokensFixedInput", + "topics": [ + "c3dhcA==", + "VVRLLTE0ZDU3ZA==", + "V0VHTEQtYTI4YzU5", + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=", + "BVs=" + ], + "data": "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WAAAAAKVVRLLTE0ZDU3ZAAAAAiKxyMEiegAAAAAAAxXRUdMRC1hMjhjNTkAAAAHmzXk3TkCuQAAAAcjhvJvwQAAAAAACwGBykedC25GCD5kAAAACgGwxHNBlOj27dQAAAAAADItnAAAAAAAAAVbAAAAAGYrXw4=", + "additionalData": [ + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WAAAAAKVVRLLTE0ZDU3ZAAAAAiKxyMEiegAAAAAAAxXRUdMRC1hMjhjNTkAAAAHmzXk3TkCuQAAAAcjhvJvwQAAAAAACwGBykedC25GCD5kAAAACgGwxHNBlOj27dQAAAAAADItnAAAAAAAAAVbAAAAAGYrXw4=" + ] + } + ] + }, + "status": "success", + "tokens": [ + "UTK-14d57d" + ], + "esdtValues": [ + "10000000000000000000" + ], + "operation": "ESDTTransfer", + "function": "swapTokensFixedInput", + "initiallyPaidFee": "1238095000000000", + "fee": "365774980000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" + }"#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + assert_eq!(tx_response.api_scrs.len(), 4usize); + assert!(is_out_scr(&tx_response.api_scrs.get(2).unwrap())); +} + +#[test] +fn test_deployed_address() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCDeployment", + "processingTypeOnDestination": "SCDeployment", + "hash": "07a176d1734d1901d396be344f97e1d80f076269e9559f9b2110f6f11c4f74de", + "nonce": 427, + "round": 2190715, + "epoch": 887, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gq4hu", + "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "data": "MDA2MTczNmQwMTAwMDAwMDAxOTgwMTE5NjAwMjdmN2YwMDYwMDE3ZjAxN2Y2MDAwMDA2MDAwMDE3ZjYwMDI3ZjdmMDE3ZjYwMDM3ZjdmN2YwMDYwMDE3ZjAwNjAwNDdmN2Y3ZjdmMDA2MDA1N2Y3ZjdmN2Y3ZjAwNjAwMzdmN2Y3ZjAxN2Y2MDA0N2Y3ZjdmN2YwMTdmNjAwMjdmN2UwMDYwMDE3ZjAxN2U2MDAyN2Y3ZjAxN2U2MDA1N2Y3ZjdlN2Y3ZjAxN2Y2MDA2N2U3ZjdmN2Y3ZjdmMDE3ZjYwMDE3ZTAwNjAwMDAxN2U2MDAxN2UwMTdmNjAwNDdmN2Y3ZTdmMDA2MDA1N2U3ZjdmN2Y3ZjAxN2Y2MDA0N2Y3ZjdmN2UwMDYwMDE3ZTAxN2U2MDA0N2Y3ZTdmN2YwMDYwMDI3ZTdmMDAwMmMxMDcyOTAzNjU2ZTc2MTI2ZDYxNmU2MTY3NjU2NDUzNjk2NzZlNjE2YzQ1NzI3MjZmNzIwMDA2MDM2NTZlNzYwZTYyNjk2NzQ5NmU3NDUzNjU3NDQ5NmU3NDM2MzQwMDBiMDM2NTZlNzYwOTYyNjk2NzQ5NmU3NDQxNjQ2NDAwMDUwMzY1NmU3NjBiNzM2OTY3NmU2MTZjNDU3MjcyNmY3MjAwMDAwMzY1NmU3NjBhNmQ0Mjc1NjY2NjY1NzI0ZTY1NzcwMDAzMDM2NTZlNzYwZDZkNDI3NTY2NjY2NTcyNDE3MDcwNjU2ZTY0MDAwNDAzNjU2ZTc2MDk2ZDQyNzU2NjY2NjU3MjQ1NzEwMDA0MDM2NTZlNzYwZDZkNDI3NTY2NjY2NTcyNDY2OTZlNjk3MzY4MDAwMTAzNjU2ZTc2MjI2ZDYxNmU2MTY3NjU2NDRkNzU2Yzc0Njk1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ0ZTQ2NTQ0NTc4NjU2Mzc1NzQ2NTAwMGUwMzY1NmU3NjFiNmQ2MTZlNjE2NzY1NjQ0NTc4NjU2Mzc1NzQ2NTRmNmU0NDY1NzM3NDQzNmY2ZTc0NjU3ODc0MDAwZjAzNjU2ZTc2MGQ2ZDYxNmU2MTY3NjU2NDQzNjE2YzZjNjU3MjAwMDYwMzY1NmU3NjEwNmQ2MTZlNjE2NzY1NjQ1MzQzNDE2NDY0NzI2NTczNzMwMDA2MDM2NTZlNzYxMzZkNjE2ZTYxNjc2NTY0NGY3NzZlNjU3MjQxNjQ2NDcyNjU3MzczMDAwNjAzNjU2ZTc2MWM2ZDYxNmU2MTY3NjU2NDQ3NjU3NDRkNzU2Yzc0Njk0NTUzNDQ1NDQzNjE2YzZjNTY2MTZjNzU2NTAwMDYwMzY1NmU3NjEyNmQ0Mjc1NjY2NjY1NzI0NzY1NzQ0MTcyNjc3NTZkNjU2ZTc0MDAwNDAzNjU2ZTc2MTI2ZDQyNzU2NjY2NjU3MjQxNzA3MDY1NmU2NDQyNzk3NDY1NzMwMDA5MDM2NTZlNzYxOTYyNjk2NzQ5NmU3NDQ3NjU3NDU1NmU3MzY5Njc2ZTY1NjQ0MTcyNjc3NTZkNjU2ZTc0MDAwMDAzNjU2ZTc2MWI3MzZkNjE2YzZjNDk2ZTc0NDc2NTc0NTU2ZTczNjk2NzZlNjU2NDQxNzI2Nzc1NmQ2NTZlNzQwMDBjMDM2NTZlNzYxMDZkNDI3NTY2NjY2NTcyNDc2NTc0NGM2NTZlNjc3NDY4MDAwMTAzNjU2ZTc2MGY2NzY1NzQ0ZTc1NmQ0MTcyNjc3NTZkNjU2ZTc0NzMwMDAzMDM2NTZlNzYxNjczNmQ2MTZjNmM0OTZlNzQ0NjY5NmU2OTczNjg1NTZlNzM2OTY3NmU2NTY0MDAxMDAzNjU2ZTc2MDk2MjY5Njc0OTZlNzQ1Mzc1NjIwMDA1MDM2NTZlNzYwYTY3NjU3NDQ3NjE3MzRjNjU2Njc0MDAxMTAzNjU2ZTc2MGY2MzZjNjU2MTZlNTI2NTc0NzU3MjZlNDQ2MTc0NjEwMDAyMDM2NTZlNzYwZjZkNDI3NTY2NjY2NTcyNTM2NTc0NDI3OTc0NjU3MzAwMDkwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NDM2ZDcwMDAwNDAzNjU2ZTc2MGE2MjY5Njc0OTZlNzQ1NDQ0Njk3NjAwMDUwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NGQ3NTZjMDAwNTAzNjU2ZTc2MTk2ZDQyNzU2NjY2NjU3MjQ2NzI2ZjZkNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjE3NmQ0Mjc1NjY2NjY1NzI1NDZmNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NTA2Zjc3MDAwNTAzNjU2ZTc2MTQ2ZDQyNzU2NjY2NjU3MjQzNmY3MDc5NDI3OTc0NjU1MzZjNjk2MzY1MDAwYTAzNjU2ZTc2MTI2ZDQyNzU2NjY2NjU3MjUzNzQ2ZjcyNjE2NzY1NGM2ZjYxNjQwMDA0MDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU1Mzc0NmY3MjY1MDAwNDAzNjU2ZTc2MGU2MzY4NjU2MzZiNGU2ZjUwNjE3OTZkNjU2ZTc0MDAwMjAzNjU2ZTc2MTc2ZDYxNmU2MTY3NjU2NDQ3NjU3NDQyNjE2MzZiNTQ3MjYxNmU3MzY2NjU3MjczMDAwMDAzNjU2ZTc2MGY2ZDYxNmU2MTY3NjU2NDU3NzI2OTc0NjU0YzZmNjcwMDAwMDM2NTZlNzYxNDYyNjk2NzQ5NmU3NDQ2Njk2ZTY5NzM2ODU1NmU3MzY5Njc2ZTY1NjQwMDA2MDM2NTZlNzYwNjY2Njk2ZTY5NzM2ODAwMDAwMzY1NmU3NjBhNjI2OTY3NDk2ZTc0NTM2OTY3NmUwMDAxMDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNDc2NTc0NDI3OTc0NjU1MzZjNjk2MzY1MDAwYTAzZDMwMWQxMDEwMTAzMDgwMjAxMTIwMTA0MDAwMTA3MDYwNjA2MDAwNDAxMDkwMTAwMDEwMDAwMDAwMDEzMDMwMDE0MDMwMzAzMDIwMzAxMDcwNDAwMDMwOTAxMDkwOTA5MDAwNzA3MDEwMDA2MDYwMTA2MDYwYzA1MDEwODA1MDAwMTBiMDAwODA3MTUwNzA4MDgwMDBhMDAxNjAxMDEwNjAxMDAwMDAwMDUwMDAwMDEwMzAwMDYwMTAwMTcwNTA1MGEwNzA0MDAwNDBhMDAwNDA0MDQwMDA0MDQwNDA0MDQwMTAxMDAwNDBkMDcwNzA3MDgwYTAwMDUwMTAxMDUwNTA2MDEwMTAwMGIwYjAxMDEwMTAxMDEwNTBkMDEwNTAwMDAwMDA1MDUwMDAwMDAwMDAwMGMwNzA3MDcwNzAwMDAwODE4MDMwMzAzMDAwMzAzMDAwMTA0MDcwMzAzMDMwMzAxMDEwMzAzMDMwMzAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwODA4MDUwMzAxMDAwMzA2MTYwMzdmMDE0MTgwODAwODBiN2YwMDQxZTlkYjA4MGI3ZjAwNDFmMGRiMDgwYjA3YzcwNTIwMDY2ZDY1NmQ2ZjcyNzkwMjAwMDQ2OTZlNjk3NDAwZGIwMTA3NzU3MDY3NzI2MTY0NjUwMGRjMDEwNzY0NjU3MDZmNzM2OTc0MDBkZDAxMDg3NzY5NzQ2ODY0NzI2MTc3MDBkZTAxMDg2MzZmNmQ3MDZmNzU2ZTY0MDBkZjAxMGU2NzY1NzQ1NDZmNzQ2MTZjNDE3MzczNjU3NDczMDBlMDAxMGY2NzY1NzQ1NjYxNzU2Yzc0NDE2NDY0NzI2NTczNzMwMGUxMDExNzY3NjU3NDQxNzM3MzY1NzQ1NDZmNmI2NTZlNDk2NDY1NmU3NDY5NjY2OTY1NzIwMGUyMDExZDY3NjU3NDRkNmY2ZTY1Nzk0ZDYxNzI2YjY1NzQ1NDZmNmI2NTZlNDk2NDY1NmU3NDY5NjY2OTY1NzIwMGUzMDEyMjY3NjU3NDRkNmY2ZTY1Nzk0ZDYxNzI2YjY1NzQ1NTZlNjQ2NTcyNmM3OTY5NmU2NzQ5NjQ2NTZlNzQ2OTY2Njk2NTcyMDBlNDAxMWY2NzY1NzQ0MjZmNmY3Mzc0NjU3MjUzNzQ2MTZiNjU2NDU0NmY2YjY1NmU0OTY0NjU2ZTc0Njk2NjY5NjU3MjAwZTUwMTE0Njc2NTc0NDM2ZjZlNzQ3MjZmNmM2YzY1NzI0MTY0NjQ3MjY1NzM3MzAwZTYwMTE1Njc2NTc0NGQ2ZjZlNjU3OTRkNjE3MjZiNjU3NDQxNjQ2NDcyNjU3MzczMDBlNzAxMWQ2NzY1NzQ1NzcyNjE3MDcwNjU2NDQ1Njc2YzY0NDM2ZjZlNzQ3MjYxNjM3NDQxNjQ2NDcyNjU3MzczMDBlODAxMWQ2NzY1NzQ1NzcyNjE3MDcwNjU2NDQ1Njc2YzY0NTQ2ZjZiNjU2ZTQ5NjQ2NTZlNzQ2OTY2Njk2NTcyMDBlOTAxMTE2NzY1NzQ0MjZmNmY3Mzc0NjU3MjQxNjQ2NDcyNjU3MzczMDBlYTAxMTk2NzY1NzQ0MzZmNmQ3MDZmNzU2ZTY0NTg0NTc4NjM2ODYxNmU2NzY1NTM3NzYxNzA3MzAwZWIwMTE3Njc2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQxNzM2ODczNzc2MTcwNTM3NzYxNzA3MzAwZWMwMTE2Njc2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQ2NjU2NTczNTA2NTcyNjM2NTZlNzQwMGVkMDExOTY3NjU3NDUwNjU3MjY2NmY3MjZkNjE2ZTYzNjU0NjY1NjU3MzUwNjU3MjYzNjU2ZTc0MDBlZTAxMGU3Mzc0NjE2YjY1NDk2ZTQyNmY2ZjczNzQ2NTcyMDBlZjAxMWI3MjY1NjI2MTZjNjE2ZTYzNjU1MDZmNzI3NDY2NmY2YzY5NmY0OTZlNDI2ZjZmNzM3NDY1NzIwMGYwMDExMjc1NmU3Mzc0NjE2YjY1NDY3MjZmNmQ0MjZmNmY3Mzc0NjU3MjAwZjEwMTE4NjM2YzYxNjk2ZDRkNzU2Yzc0Njk3MDZjNjU0NjcyNmY2ZDQyNmY2ZjczNzQ2NTcyMDBmMjAxMTk3MzY1NzQ1MDY1NzI2NjZmNzI2ZDYxNmU2MzY1NDY2NTY1NzM1MDY1NzI2MzY1NmU3NDAwZjMwMTE2NzM2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQ2NjU2NTczNTA2NTcyNjM2NTZlNzQwMGY0MDExMDczNjU3NDQzNmY2ZDcwNmY3NTZlNjQ1Mzc3NjE3MDczMDBmNTAxMGQ2NzY1NzQ0ZTYxNzQ3NTcyNjE2YzQxNTA1OTAwZjYwMTA4NjM2MTZjNmM0MjYxNjM2YjAwZjcwMTBhNWY1ZjY0NjE3NDYxNWY2NTZlNjQwMzAxMGI1ZjVmNjg2NTYxNzA1ZjYyNjE3MzY1MDMwMjBhOWFhOTAxZDEwMTE2MDEwMTdmMTAyYTIyMDE0MjAwMTAwMTIwMDEyMDAxMjAwMDEwMDIyMDAxMGIxOTAxMDE3ZjQxYzg4ZDA4NDFjODhkMDgyODAyMDA0MTAxNmIyMjAwMzYwMjAwMjAwMDBiMmUwMDAyNDAyMDAxMjAwMjRkMDQ0MDIwMDIyMDA0NGQwZDAxMTAyYzAwMGIxMDJjMDAwYjIwMDAyMDAyMjAwMTZiMzYwMjA0MjAwMDIwMDEyMDAzNmEzNjAyMDAwYjBiMDA0MWI4OGQwODQxMGUxMDAzMDAwYjEzMDEwMTdmMTAyYTIyMDEyMDAwYWQ0MmZmMDE4MzEwMDEyMDAxMGIyMTAxMDE3ZjEwMmEyMTAxMjAwMDQyMDA1MzA0NDA0MWIyODUwODQxMTExMDAzMDAwYjIwMDEyMDAwMTAwMTIwMDEwYjBmMDEwMTdmMTAwNDIyMDEyMDAwMTAwNTFhMjAwMTBiMGIwMDIwMDAyMDAxMTAwNjQxMDA0YTBiMmQwMTAxN2YyMzAwNDEyMDZiMjIwMjI0MDAyMDAyMjAwMDEwMzI0MWMwODAwODQxMDgxMDMzMjAwMjIwMDEzNjAyMTgyMDAyMTAzNDIwMDI0MTIwNmEyNDAwMGIxOTAwMjAwMDQxZmVmZmZmZmYwNzQ2MDQ0MDQxYzg4MDA4NDExOTEwMDMwMDBiMjAwMDBiMmEwMDIwMDIyMDAzMTA0ZDIxMDIxMDQzMjEwMzIwMDA0MjdmMzcwMzA4MjAwMDIwMDMzNjAyMDQyMDAwMjAwMjM2MDIwMDIwMDAyMDAxMzYwMjEwMGI3ZDAxMDM3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDAyOTAzMDgxMDcxMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUyMTAyMTAxNzQxMDAyMTAwMjAwMjEwMTIyMTAzMjAwMTQxMDAzNjAyMGMyMDAxMjAwMjM2MDIwNDIwMDEyMDAzNDEwMjc2MjIwMjM2MDIwODAzNDAyMDAwMjAwMjRmNDUwNDQwMjAwMTQxMDQ2YTEwNzUxYTIwMDEyODAyMDgyMTAyMjAwMTI4MDIwYzIxMDAwYzAxMGIwYjIwMDE0MTEwNmEyNDAwMGIzNjAxMDI3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDE0MTA4NmExMDM2MjAwMTI4MDIwODIxMDIyMDAwMjAwMTJkMDAwYzQxMDE3MTNhMDAwNDIwMDAyMDAyMzYwMjAwMjAwMTQxMTA2YTI0MDAwYjZkMDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMjAwMDAyN2Y0MWUwZGIwODJkMDAwMDIyMDI0NTA0NDA0MWUwZGIwODQxMDEzYTAwMDA0MWRjZGIwODQxMDAzNjAyMDAyMDAxNDEwODZhNDEwMDEwOWYwMTIwMDEyODAyMDgyMDAxMjgwMjBjNDFiODhkMDg0MTAwMTA1NzEwNDMwYzAxMGI0MWI4OGQwODQxMDAxMDRkMGIzNjAyMDAyMDAwMjAwMjQxMDE3MzNhMDAwNDIwMDE0MTEwNmEyNDAwMGIwYjAwMjAwMDIwMDExMDM4MTAwNzFhMGI0OTAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAxM2EwMDBjMjAwMjIwMDAzNjAyMDgyMDAyNDEwODZhMTBhNTAxMjAwMjI4MDIwODIwMDIyZDAwMGMwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAyNDExMDZhMjQwMDBiMGUwMDIwMDA0MThhODUwODQxMGIxMDNhMTAzYjBiMTMwMDIwMDAyMDAwMjAwMTIwMDIxMDUyMjAwMTIwMDIxMDg1MDEwYjBkMDAyMDAwMTAyYTIyMDAxMDFkMWEyMDAwMGIwYTAwMjAwMDEwM2QyMDAxMTAzZTBiMGYwMTAxN2YxMDJhMjIwMTIwMDAxMDFjMWEyMDAxMGI1MTAxMDI3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwMTAxMjIyMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwYTMwMTIwMDEyMDAwMTBiZDAxMjAwMjQxMTA2YTI0MDAwYjBhMDAyMDAwMTAzZDIwMDExMDQwMGI1MTAxMDI3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwMTAxMjIyMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwMGYxYTIwMDEyMDAwMTA4YjAxMjAwMjQxMTA2YTI0MDAwYjA5MDAyMDAwMjAwMTEwMDMwMDBiNTAwMTA0N2YxMDQzMjEwNjEwNDMyMTA3MjMwMDQxMTA2YjIyMDQyNDAwMTA0MzIxMDUyMDAxMTAyZjIxMDEyMDA0MjAwMzEwMjkzNjAyMGMyMDA0MjAwMjM3MDMwMDIwMDQyMDAxMzYwMjA4MjAwNTIwMDQxMDQ0MjAwMDIwMDU0MjAwMjAwNjIwMDcxMDA4MWEyMDA0NDExMDZhMjQwMDBiMTMwMTAxN2YxMDJhMjIwMDQxYjg4ZDA4NDEwMDEwMTgxYTIwMDAwYmQyMDEwMjAyN2YwMTdlMjMwMDQxMTA2YjIyMDMyNDAwMjAwMzIwMDEyODAyMDgyMjAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIzNjAyMDAyMDAzMjAwMTI4MDIwYzIyMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjM2MDIwYzIwMDMyMDAxMjkwMzAwMjIwNDQyMzg4NjIwMDQ0MjgwZmUwMzgzNDIyODg2ODQyMDA0NDI4MDgwZmMwNzgzNDIxODg2MjAwNDQyODA4MDgwZjgwZjgzNDIwODg2ODQ4NDIwMDQ0MjA4ODg0MjgwODA4MGY4MGY4MzIwMDQ0MjE4ODg0MjgwODBmYzA3ODM4NDIwMDQ0MjI4ODg0MjgwZmUwMzgzMjAwNDQyMzg4ODg0ODQ4NDM3MDIwNDIwMDAyMDAzNDExMDEwMGYxYTIwMDM0MTEwNmEyNDAwMGIxNTAwMjAwMDIwMDEyMDAyMjAwMzIwMDQxMDJhMjIwMTEwMDkxYTIwMDEwYjBjMDEwMTdmMTAyYTIyMDAxMDBhMjAwMDBiMGMwMTAxN2YxMDJhMjIwMDEwMGIyMDAwMGIwYzAxMDE3ZjEwMmEyMjAwMTAwYzIwMDAwYjE1MDAxMDQ4MTA0NjEwMzAwNDQwMGYwYjQxOTI4ZDA4NDEyNDEwMDMwMDBiMmIwMTAxN2Y0MWU4ZGIwODJkMDAwMDIyMDAwNDQwNDE2YjQxZmZmZmZmZmYwNzIwMDAxYjBmMGI0MWU4ZGIwODQxMDEzYTAwMDA0MTZiMTAwZDQxNmIwYjBkMDAyMDAwMTAyYTIyMDAxMDBlMWEyMDAwMGIyZTAxMDE3ZjQxZDU4MzA4NDExNzEwNGQyMjA0MjAwMDIwMDExMDBmMWEyMDA0NDFlYzgzMDg0MTAzMTAwZjFhMjAwNDIwMDIyMDAzMTAwZjFhMjAwNDEwMDAwMDBiMTEwMTAxN2YxMDJhMjIwMjIwMDAyMDAxMTAxODFhMjAwMjBiNDYwMTAxN2YyMzAwNDExMDZiMjIwMjI0MDAyMDAyMjAwMTQxMTg3NDIwMDE0MTgwZmUwMzcxNDEwODc0NzIyMDAxNDEwODc2NDE4MGZlMDM3MTIwMDE0MTE4NzY3MjcyMzYwMjBjMjAwMDIwMDI0MTBjNmE0MTA0MTAwZjFhMjAwMjQxMTA2YTI0MDAwYjBlMDEwMTdmNDEwMDEwMmEyMjAwMTAxMDIwMDAwYjFmMDAyMDAwMTA0YjIyMDAxMDEyNDEyMDQ3MDQ0MDIwMDEyMDAyNDFiMDg2MDg0MTEwMTA0YzAwMGIyMDAwMGJkOTAzMDEwOTdmMjMwMDQxNDA2YTIyMDEyNDAwMjAwMDEwNGIyMTAyMTA0MzIxMDYyMDAyMTAxMjIxMDAyMDAxNDEyNDZhNDEwMDNhMDAwMDIwMDE0MTIwNmEyMDAwMzYwMjAwMjAwMTIwMDIzNjAyMWMyMDAxMjAwMDM2MDIxODIwMDE0MTAwMzYwMjE0NDEwMDIxMDIwMzdmMjAwMDIwMDI0NjA0N2YyMDAxMmQwMDI0MDQ0MDQxZGNkYjA4NDEwMDM2MDIwMDQxZTBkYjA4NDEwMDNhMDAwMDBiMjAwMTQxNDA2YjI0MDAyMDA2MDUyMDAxNDExNDZhMjIwMDQxOTc4NzA4NDExNjEwM2EyMTA0MjAwMDQxOTc4NzA4NDExNjEwNTIyMTAwMTA0MzIxMDMwMzQwMjAwMDA0NDAyMDAxNDExNDZhMjIwNTQxOTc4NzA4NDExNjEwNTIyMTA3MjAwNTQxOTc4NzA4NDExNjEwNTMyMTA4MjAwNTQxOTc4NzA4NDExNjEwM2EyMTA5NDEwMDIxMDIwMjQwMDI0MDAyNDAyMDA1NDE5Nzg3MDg0MTE2MTA1NDQxZmYwMTcxMGUwMjAyMDEwMDBiNDE5Nzg3MDg0MTE2NDFlZDg2MDg0MTBkMTA0YzAwMGI0MTAxMjEwMjBiMjAwMTIwMDIzYTAwMzQyMDAxMjAwOTM2MDIzMDIwMDEyMDA4MzYwMjJjMjAwMTIwMDczNjAyMjgyMDAzMjAwMTQxMjg2YTEwNTUyMDAwNDEwMTZiMjEwMDBjMDEwYjBiMjAwMTQyMDAzNzAzMjgyMDAxMjAwNDQxMTg3NDIwMDQ0MTgwZmUwMzcxNDEwODc0NzIyMDA0NDEwODc2NDE4MGZlMDM3MTIwMDQ0MTE4NzY3MjcyMzYwMjNjMjAwMTQxMDg2YTIwMDE0MTI4NmEyMjAwNDEwMDQxMDQxMDU2MjAwMTI4MDIwODIwMDEyODAyMGMyMDAxNDEzYzZhMjIwMjQxMDQxMDU3MjAwMTIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIzYzIwMDEyMDAwNDEwNDQxMDgxMDU2MjAwMTI4MDIwMDIwMDEyODAyMDQyMDAyNDEwNDEwNTcyMDA2MjAwMDQxMDgxMDBmMWEyMDAxMjgwMjE0MjEwMjIwMDEyODAyMTgyMTAwMGMwMTBiMGIwYjM3MDIwMTdmMDE3ZTIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTAwMzYwMjBjMjAwMDIwMDM0MTBjNmEyMjAwNDEwNDIwMDEyMDAyMTBjNTAxMjAwMDQxMDQxMGIxMDEyMDAzNDExMDZhMjQwMGE3MGIwZDAwMjAwMDQxMjAyMDAxMjAwMjEwODUwMTBiMzAwMTAxN2YyMzAwNDExMDZiMjIwMzI0MDAyMDAzNDEwMDNhMDAwZjIwMDAyMDAzNDEwZjZhNDEwMTIwMDEyMDAyMTBjNTAxMjAwMzJkMDAwZjIwMDM0MTEwNmEyNDAwMGJmNjAyMDEwNTdmMjMwMDQxZDAwMDZiMjIwMjI0MDAyMDAyNDIwMDM3MDAzNTIwMDI0MjAwMzcwMzMwMjAwMjIwMDEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyNDAyMDAyNDEyODZhMjAwMjQxMzA2YTIyMDU0MTAwNDEwNDEwOWIwMTIwMDIyODAyMjgyMDAyMjgwMjJjMjAwMjQxNDA2YjIyMDQ0MTA0MTA1NzIwMDI0MWM4MDA2YTQxMDAzYTAwMDAyMDAyNDIwMDM3MDM0MDIwMDIyMDAxMjgwMjA0MjIwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMzYwMjRjMjAwMjQxMjA2YTIwMDQ0MTAwNDEwNDEwOWMwMTIwMDIyODAyMjAyMDAyMjgwMjI0MjAwMjQxY2MwMDZhMjIwNjQxMDQxMDU3MjAwMjIwMDE0MTA4NmEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyNGMyMDAyNDExODZhMjAwNDQxMDQ0MTA4MTA5YzAxMjAwMjI4MDIxODIwMDIyODAyMWMyMDA2NDEwNDEwNTcyMDAyMjAwMTQxMGM2YTJkMDAwMDNhMDA0YzIwMDI0MTEwNmEyMDA0NDEwODQxMDkxMDljMDEyMDAyMjgwMjEwMjAwMjI4MDIxNDIwMDY0MTAxMTA1NzIwMDI0MTA4NmEyMDA1NDEwNDQxMGQxMDliMDEyMDAyMjgwMjA4MjAwMjI4MDIwYzIwMDQ0MTA5MTA1NzIwMDAyMDA1NDEwZDEwMGYxYTIwMDI0MWQwMDA2YTI0MDAwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwODEwZjkwMTBiYjUwMjAxMDY3ZjIwMDEyMDAzNDYwNDQwMjAwMTIyMDM0MTEwNGYwNDQwMjAwMDQxMDAyMDAwNmI0MTAzNzEyMjA0NmEyMTA1MjAwNDA0NDAyMDAyMjEwMTAzNDAyMDAwMjAwMTJkMDAwMDNhMDAwMDIwMDE0MTAxNmEyMTAxMjAwMDQxMDE2YTIyMDAyMDA1NDkwZDAwMGIwYjIwMDUyMDAzMjAwNDZiMjIwMzQxN2M3MTIyMDY2YTIxMDAwMjQwMjAwMjIwMDQ2YTIyMDQ0MTAzNzEwNDQwMjAwNjQxMDA0YzBkMDEyMDA0NDEwMzc0MjIwMTQxMTg3MTIxMDcyMDA0NDE3YzcxMjIwODQxMDQ2YTIxMDI0MTAwMjAwMTZiNDExODcxMjEwOTIwMDgyODAyMDAyMTAxMDM0MDIwMDUyMDAxMjAwNzc2MjAwMjI4MDIwMDIyMDEyMDA5NzQ3MjM2MDIwMDIwMDI0MTA0NmEyMTAyMjAwNTQxMDQ2YTIyMDUyMDAwNDkwZDAwMGIwYzAxMGIyMDA2NDEwMDRjMGQwMDIwMDQyMTAyMDM0MDIwMDUyMDAyMjgwMjAwMzYwMjAwMjAwMjQxMDQ2YTIxMDIyMDA1NDEwNDZhMjIwNTIwMDA0OTBkMDAwYjBiMjAwMzQxMDM3MTIxMDMyMDA0MjAwNjZhMjEwMjBiMjAwMzA0NDAyMDAwMjAwMzZhMjEwMTAzNDAyMDAwMjAwMjJkMDAwMDNhMDAwMDIwMDI0MTAxNmEyMTAyMjAwMDQxMDE2YTIyMDAyMDAxNDkwZDAwMGIwYjBmMGIxMDJjMDAwYmEyMDMwMTA3N2YyMzAwNDE0MDZhMjIwMTI0MDAyMDAwMTA0YjIxMDIxMDQzMjEwNTIwMDIxMDEyMjEwMDIwMDE0MTJjNmE0MTAwM2EwMDAwMjAwMTQxMjg2YTIwMDAzNjAyMDAyMDAxMjAwMjM2MDIyNDIwMDEyMDAwMzYwMjIwMjAwMTQxMDAzNjAyMWM0MTAwMjEwMjAzN2YyMDAwMjAwMjQ2MDQ3ZjIwMDEyZDAwMmMwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAxNDE0MDZiMjQwMDIwMDUwNTIwMDE0MTFjNmEyMjAwNDFhZDg3MDg0MTE4MTAzYTIxMDMyMDAwNDFhZDg3MDg0MTE4MTA1MjIxMDAxMDQzMjEwMjAzNDAyMDAwMDQ0MDIwMDE0MTFjNmEyMjA0NDFhZDg3MDg0MTE4MTA1MjIxMDYyMDA0NDFhZDg3MDg0MTE4MTA1MzIxMDcyMDA0NDFhZDg3MDg0MTE4MTAzYTIxMDQyMDAxMjAwNjM2MDIzODIwMDEyMDA0MzYwMjM0MjAwMTIwMDczNjAyMzAyMDAyMjAwMTQxMzA2YTEwNTkyMDAwNDEwMTZiMjEwMDBjMDEwYjBiMjAwMTQyMDAzNzAzMzAyMDAxMjAwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMzYwMjNjMjAwMTQxMTA2YTIwMDE0MTMwNmEyMjAwNDEwMDQxMDQxMDU2MjAwMTI4MDIxMDIwMDEyODAyMTQyMDAxNDEzYzZhMjIwMzQxMDQxMDU3MjAwMTIwMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjM2MDIzYzIwMDE0MTA4NmEyMDAwNDEwNDQxMDgxMDU2MjAwMTI4MDIwODIwMDEyODAyMGMyMDAzNDEwNDEwNTcyMDA1MjAwMDQxMDgxMDBmMWEyMDAxMjgwMjFjMjEwMjIwMDEyODAyMjAyMTAwMGMwMTBiMGIwYmI4MDIwMTA0N2YyMzAwNDE0MDZhMjIwMjI0MDAyMDAyNDEyODZhNDEwMDM2MDIwMDIwMDI0MjAwMzcwMzIwMjAwMjIwMDEyODAyMDgyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyMzAyMDAyNDExODZhMjAwMjQxMjA2YTIyMDU0MTAwNDEwNDEwOWEwMTIwMDIyODAyMTgyMDAyMjgwMjFjMjAwMjQxMzA2YTIyMDQ0MTA0MTA1NzIwMDI0MjAwMzcwMzMwMjAwMjIwMDEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyM2MyMDAyNDExMDZhMjAwNDQxMDA0MTA0MTA1NjIwMDIyODAyMTAyMDAyMjgwMjE0MjAwMjQxM2M2YTIyMDM0MTA0MTA1NzIwMDIyMDAxMjgwMjA0MjIwMTQxMTg3NDIwMDE0MTgwZmUwMzcxNDEwODc0NzIyMDAxNDEwODc2NDE4MGZlMDM3MTIwMDE0MTE4NzY3MjcyMzYwMjNjMjAwMjQxMDg2YTIwMDQ0MTA0NDEwODEwNTYyMDAyMjgwMjA4MjAwMjI4MDIwYzIwMDM0MTA0MTA1NzIwMDIyMDA1NDEwNDQxMGMxMDlhMDEyMDAyMjgwMjAwMjAwMjI4MDIwNDIwMDQ0MTA4MTA1NzIwMDAyMDA1NDEwYzEwMGYxYTIwMDI0MTQwNmIyNDAwMGIxNDAwMTAxMzIwMDA0NjA0NDAwZjBiNDE5Mjg0MDg0MTE5MTAwMzAwMGIwOTAwMjAwMDEwNWMxMDA3MWEwYjFkMDAyMDAwMTBhNzAxMjIwMDEwMTI0MTIwNDcwNDQwNDFiMDg2MDg0MTEwMTA4ODAxMDAwYjIwMDAwYjBhMDAyMDAwMTBhNzAxMTAwNzFhMGIwODAwMjAwMDEwNWYxMDE0MGI2MTAyMDI3ZjAxN2UyMzAwNDExMDZiMjIwMTI0MDAyMDAxNDIwMDM3MDMwODIwMDAxMGE3MDEyMjAwMTAxMjIyMDI0MTA5NGYwNDQwNDE5NTg1MDg0MTBlMTA4ODAxMDAwYjIwMDEyMDAxNDEwODZhMjAwMjEwYjAwMTIwMDA0MTAwMjAwMTI4MDIwMDIyMDAyMDAxMjgwMjA0MjIwMjEwOGEwMTFhMjAwMDIwMDIxMGIxMDEyMDAxNDExMDZhMjQwMDBiMWYwMDIwMDAyMDAxMjAwMjEwMTUyMDAwMTA2MTQxZmYwMTcxMDQ0MDBmMGI0MWFiODQwODQxMzAxMDAzMDAwYjE1MDA0MTAyNDEwMTIwMDAxMDI3MjIwMDFiNDEwMDIwMDA0MTAwNGUxYjBiZjgwMTAxMDQ3ZjIzMDA0MWQwMDA2YjIyMDUyNDAwMjAwNTIwMDQzNjAyMjgyMDA1NDEyMDZhNDFkYjg0MDg0MTE0MTA2MzIwMDUyODAyMjAyMTA3MjAwNTI4MDIyNDIyMDYyMDAzMTA2NDIwMDQxMDY1MjEwMzEwNDMyMjA4MjAwM2FkMTA2NjIwMDYyMDA4MTA0ZTIwMDUyMDA0MTAxMjM2MDIzNDIwMDU0MTAwMzYwMjMwMjAwNTIwMDU0MTI4NmEzNjAyMmMwMzQwMjAwNTQxMzg2YTIwMDU0MTJjNmExMDY3MjAwNTI5MDMzODUwMDQ0MDIwMDUyMDA3MjAwNjIwMDEyMDAyMTA2ODIwMDUyODAyMDQyMTAxMjAwMDIwMDUyODAyMDAzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MWQwMDA2YTI0MDAwNTIwMDUyODAyNGMyMTAzMjAwNTQxMTg2YTIwMDcyMDA2MjAwNTI4MDI0ODEwNjkyMDA1NDExMDZhMjAwNTI4MDIxODIwMDUyODAyMWMyMDA1MjkwMzQwMTA2YTIwMDU0MTA4NmEyMDA1MjgwMjEwMjAwNTI4MDIxNDIwMDMxMDZiMjAwNTI4MDIwYzIxMDYyMDA1MjgwMjA4MjEwNzBjMDEwYjBiMGIxODAwMjAwMTIwMDIxMDRkMjEwMTIwMDAxMDQzMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjEwMDAxMDQzMWEyMDAwMjAwMTI4MDIwMDEwMmYxMDRlMGIwOTAwMjAwMDEwMTI0MTA0NzYwYjM4MDEwMTdmMjMwMDQxMTA2YjIyMDIyNDAwMjAwMjQyMDAzNzAzMDgyMDAyMjAwMTQxMDAyMDAyNDEwODZhMTA4MjAxMjAwMDIwMDIyODAyMDAyMDAyMjgwMjA0MTAxODFhMjAwMjQxMTA2YTI0MDAwYmE3MDEwMjA1N2YwMTdlMjMwMDQxMjA2YjIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjA0NDExMDZhMjIwNTIwMDEyODAyMDg0ZDA0N2UyMDAxMjgwMjAwMjAwMjQxMTA2YTQyMDAzNzAzMDAyMDAyNDIwMDM3MDMwODI4MDIwMDIwMDQyMDAyNDEwODZhMjIwMzQxMTAxMDZmMWEyMDAyNDEwMDM2MDIxYzIwMDMyMDAyNDExYzZhMjIwNjEwOTgwMTIxMDQyMDAzMjAwNjEwOTkwMTIxMDcyMDAwNDExNDZhMjAwMjQxMDg2YTIwMDI0MTFjNmExMDk4MDEzNjAyMDAyMDAwNDExMDZhMjAwNDM2MDIwMDIwMDAyMDA3MzcwMzA4MjAwMTIwMDUzNjAyMDQ0MjAxMDU0MjAwMGIzNzAzMDAyMDAyNDEyMDZhMjQwMDBiOTEwMTAxMDM3ZjIzMDA0MTEwNmIyMjA1MjQwMDAyNDAyMDAzMTAxMjQ1MGQwMDIwMDIyMDAzMTA2ZTIwMDQxMDEyMjEwNjQxMDAyMTAzMDM0MDIwMDM0MTA0NmEyMjA3MjAwNjRiMGQwMTIwMDU0MTAwMzYwMjBjMjAwNDIwMDMyMDA1NDEwYzZhNDEwNDEwNmYxYTIwMDIyMDA1MjgwMjBjMjIwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMTA2ZTIwMDcyMTAzMGMwMDBiMDAwYjIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAyMDA1NDExMDZhMjQwMDBiMTYwMDIwMDIyMDAzMTA2ZTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjIwMDEwMTdmMTA0MzIyMDQyMDAzMTA2NjIwMDIyMDA0MTA0ZTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjE2MDAyMDAzMjAwMjEwNzAyMDAwMjAwMjM2MDIwNDIwMDAyMDAxMzYwMjAwMGJhMzAxMDEwMjdmMjMwMDQxMzA2YjIyMDUyNDAwMjAwNTQxMjg2YTQxZWY4NDA4NDEwZjEwNjMyMDA1NDEyMDZhMjAwNTI4MDIyODIwMDUyODAyMmMyMDA0MjgwMjA4MTA2OTIwMDU0MTE4NmEyMDA1MjgwMjIwMjAwNTI4MDIyNDIwMDQyOTAzMDAxMDZhMjAwNTQxMTA2YTIwMDUyODAyMTgyMDA1MjgwMjFjMjAwNDI4MDIwYzEwNmIyMDA1MjgwMjEwMjEwNDIwMDUyODAyMTQyMTA2MTA0MzFhMjAwNjIwMDMxMDJmMTA0ZTIwMDU0MTA4NmEyMDA0MjAwNjIwMDEyMDAyMTA2ODIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTMwNmEyNDAwMGI3MTAxMDE3ZjIzMDA0MTIwNmIyMjA1MjQwMDIwMDU0MTE4NmE0MWZlODQwODQxMGMxMDYzMjAwNTQxMTA2YTIwMDUyODAyMTgyMDA1MjgwMjFjMjAwMzEwNjkyMDA1NDEwODZhMjAwNTI4MDIxMDIwMDUyODAyMTQyMDA0MTA2YjIwMDUyMDA1MjgwMjA4MjAwNTI4MDIwYzIwMDEyMDAyMTA2ODIwMDUyODAyMDQyMTAxMjAwMDIwMDUyODAyMDAzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTIwNmEyNDAwMGIwZDAwMTA0MzFhMjAwMDIwMDExMDJmMTA0ZTBiMGQwMDIwMDAyMDAxMjAwMjIwMDMxMDhhMDEwYjBkMDAxMDQzMWEyMDAxMjAwMDEwM2QxMDRlMGIwZjAwMjAwMDQyN2Y1MTA0N2UxMDE2MDUyMDAwMGIwYjMwMDEwMTdlMjAwMDI5MDMwODIyMDE0MjdmNTEwNDdlMTAxNjA1MjAwMTBiMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUxMDE3MTA3MzBiM2IwMTAyN2YyMzAwNDExMDZiMjIwMTI0MDAyMDAwMTAxMjIxMDIyMDAxNDEwMDM2MDIwYzIwMDEyMDAwMzYwMjA0MjAwMTIwMDI0MTAyNzYzNjAyMDgyMDAxNDEwNDZhMTA3NTEwM2IyMDAxNDExMDZhMjQwMDBiMjQwMDIwMDAyOTAzMDgxMDcxMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUxMDE3MTAxMjFhMGI3ZDAxMDM3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDAyODAyMDgyMTAzMjAwMTQxMDAzNjAyMGMyMDAwMjgwMjAwMjAwMzQxMDI3NDIwMDE0MTBjNmE0MTA0MTA2ZjQ1MDQ0MDIwMDEyODAyMGMyMTAyMjAwMDIwMDM0MTAxNmEzNjAyMDgyMDAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIxMDJmMjAwMTQxMTA2YTI0MDAwZjBiNDE4YTg1MDg0MTBiNDFlZjgzMDg0MTExMTA0YzAwMGI5MDAyMDIwMjdmMDE3ZTIzMDA0MWQwMDA2YjIyMDIyNDAwMjAwMTI5MDMwODIyMDQ0MjdmNTEwNDdlMTAxNjA1MjAwNDBiMjAwMTI4MDIxMDIwMDEyODAyMTgyMDAxMjgwMjAwMjAwMTI4MDIwNDEwNDUyMTAxMTAxNzIwMDExMDEyMjEwMzIwMDI0MTAwMzYwMjE0MjAwMjIwMDEzNjAyMGMyMDAyMjAwMzQxMDI3NjM2MDIxMDIwMDI0MTBjNmExMDc1MjIwMzEwMTIyMTAxMjAwMjQxM2M2YTQxMDAzYTAwMDAyMDAyNDEzODZhMjAwMTM2MDIwMDIwMDIyMDAzMzYwMjM0MjAwMjIwMDEzNjAyMzAyMDAyNDEwMDM2MDIyYzIwMDI0MTQwNmIyMDAyNDEyYzZhMTA3NzIwMDIyODAyMzAyMDAyMjgwMjJjNDYwNDQwMjAwMjQxMjA2YTIyMDEyMDAyNDFjODAwNmEyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDM0MDM3MDMxODIwMDIyZDAwM2MwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAwMjAwMjI5MDMxODM3MDMwMDIwMDA0MTA4NmEyMDAxMjkwMzAwMzcwMzAwMjAwMjQxZDAwMDZhMjQwMDBmMGI0MThhODUwODQxMGI0MTk1ODUwODQxMGUxMDRjMDAwYjMwMDIwMTdmMDE3ZTIwMDE0MThhODUwODQxMGIxMDNhMjEwMjIwMDExMGJlMDEyMTAzMjAwMDIwMDExMDM5MzYwMjBjMjAwMDIwMDIzNjAyMDgyMDAwMjAwMzM3MDMwMDBiMTAwMDEwNDMxYTIwMDAyMDAxMjgwMjAwMTAzZDEwNGUwYjBlMDAyMDAxNDUwNDQwMjAwMjIwMDAxMDcwMGIwYjgxMDEwMTA1N2YyMzAwNDExMDZiMjIwMzI0MDAxMDQzMTAyZjIxMDQyMDAxMjgwMjAwMTAxMjIxMDUwMzQwMjAwNTIwMDI0MTA0NmEyMjA2NGYwNDQwMjAwMzQxMDAzNjAyMGMyMDAxMjgwMjAwMjAwMjIwMDM0MTBjNmE0MTA0MTA2ZjFhMjAwMzI4MDIwYzIyMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjIwMDQxMDNmMjAwNjIxMDIwYzAxMGIwYjIwMDAyMDA0MTA0ZTIwMDM0MTEwNmEyNDAwMGI4MjAxMDEwNTdmMjMwMDQxMTA2YjIyMDMyNDAwMTA0MzEwMmYyMTA0MjAwMTI4MDIwMDEwMTIyMTA1MDM0MDIwMDUyMDAyNDEwNDZhMjIwNjRmMDQ0MDIwMDM0MTAwMzYwMjBjMjAwMTI4MDIwMDIwMDIyMDAzNDEwYzZhNDEwNDEwNmYxYTIwMDQyMDAzMjgwMjBjMjIwMjQxMTg3NDIwMDI0MTgwZmUwMzcxNDEwODc0NzIyMDAyNDEwODc2NDE4MGZlMDM3MTIwMDI0MTE4NzY3MjcyMTAwNTFhMjAwNjIxMDIwYzAxMGIwYjIwMDAyMDA0MTA0ZTIwMDM0MTEwNmEyNDAwMGI0ZDAxMDI3ZjIzMDA0MTIwNmIyMjAxMjQwMDEwN2QyMTAyMjAwMTQxMTA2YTIwMDA0MTEwNmEyOTAzMDAzNzAzMDAyMDAxNDEwODZhMjAwMDQxMDg2YTI5MDMwMDM3MDMwMDIwMDEyMDAyMzYwMjE4MjAwMTIwMDAyOTAzMDAzNzAzMDAyMDAxMTA3MjIwMDE0MTIwNmEyNDAwMGIwZTAxMDE3ZjEwMmEyMjAwNDIwMDEwMDEyMDAwMGI0ZjAxMDI3ZjIzMDA0MTIwNmIyMjAyMjQwMDEwN2QyMTAzMjAwMjQxMTA2YTIwMDE0MTEwNmEyOTAzMDAzNzAzMDAyMDAyNDEwODZhMjAwMTQxMDg2YTI5MDMwMDM3MDMwMDIwMDIyMDAzMzYwMjE4MjAwMjIwMDEyOTAzMDAzNzAzMDAyMDAwMjAwMjEwNzYyMDAyNDEyMDZhMjQwMDBiNGQwMTAyN2YyMzAwNDEyMDZiMjIwMTI0MDAxMDdkMjEwMjIwMDE0MTEwNmEyMDAwNDExMDZhMjkwMzAwMzcwMzAwMjAwMTQxMDg2YTIwMDA0MTA4NmEyOTAzMDAzNzAzMDAyMDAxMjAwMjM2MDIxODIwMDEyMDAwMjkwMzAwMzcwMzAwMjAwMTEwMzQyMDAxNDEyMDZhMjQwMDBiNzYwMjA1N2YwMTdlMjMwMDQxMTA2YjIyMDEyNDAwMTA3ZDIxMDIyMDAwMjgwMjEwMjEwMzIwMDAyODAyMDQyMTA0MjAwMDI4MDIwMDIxMDUyMDAwMjkwMzA4MjIwNjQyN2Y1MTA0N2UxMDE2MDUyMDA2MGIyMDAzMjAwMjIwMDUyMDA0MTA0NTIxMDAxMDE3MjAwMDEwMTIyMTAyMjAwMTQxMDAzNjAyMGMyMDAxMjAwMDM2MDIwNDIwMDEyMDAyNDEwMjc2MzYwMjA4MjAwMTQxMDQ2YTEwNzUxMDJmMjAwMTQxMTA2YTI0MDAwYjQ3MDEwMjdmMjMwMDQxMTA2YjIyMDIyNDAwMTA0MzIxMDMyMDAyNDIwMDM3MDMwODIwMDIyMDAxYWQ0MmZmMDE4MzQxMDEyMDAyNDEwODZhMTA4MjAxMjAwMzIwMDIyODAyMDAyMDAyMjgwMjA0MTAxODFhMjAwMDIwMDMxMDRlMjAwMjQxMTA2YTI0MDAwYjhmMDIwMjA0N2YwMTdlMjAwMzIwMDE0MjM4ODYyMDAxNDI4MGZlMDM4MzQyMjg4Njg0MjAwMTQyODA4MGZjMDc4MzQyMTg4NjIwMDE0MjgwODA4MGY4MGY4MzQyMDg4Njg0ODQyMDAxNDIwODg4NDI4MDgwODBmODBmODMyMDAxNDIxODg4NDI4MDgwZmMwNzgzODQyMDAxNDIzODg4MjIwODIwMDE0MjI4ODg0MjgwZmUwMzgzODQ4NDg0MzcwMDAwMDI0MDIwMDE1MDA0NDA0MWI4OGQwODIxMDMwYzAxMGIyMDAyMDQ0MDIwMDE0MjdmNTEwNDQwMjAwMzQxMDc2YTIxMDM0MTAxMjEwNDBjMDIwYjIwMDhhN2MwMjIwNTQxMDc3NTIxMDYyMDA1NDEwMDQ4MjEwNTBiMjAwNjQxZmYwMTcxMjEwNjAzNDAwMjQwMDI0MDIwMDQ0MTA4NDcwNDQwMjAwMzIwMDQ2YTJkMDAwMDIyMDcyMDA2NDYwZDAyMjAwMjQ1MjAwNzQxMDc3NjIwMDU0NjcyNDUwNDQwMjAwNDQxMDE2YjIyMDQ0MTA5NGYwZDAyMGIyMDAzMjAwNDZhMjEwMzQxMDgyMDA0NmIyMTA0MGMwNDBiMTAyYzAwMGIxMDJjMDAwYjIwMDQ0MTAxNmEyMTA0MGMwMDBiMDAwYjIwMDAyMDA0MzYwMjA0MjAwMDIwMDMzNjAyMDAwYmEzMDEwMjAzN2YwMTdlMjMwMDQxMTA2YjIyMDMyNDAwMDI3ZjIwMDIyOTAzMDA1MDA0NDAyMDAxMjgwMjEwMjEwNDIwMDMyMDAxMjgwMjAwMjAwMTI4MDIwNDIwMDIyODAyMDgyMDAyMjgwMjBjMTA2ZDIwMDMyODAyMDAyMTA1MjAwMzI4MDIwNDBjMDEwYjEwNDcyMTA0MjAwMzQxMDg2YTIwMDEyODAyMDAyMDAxMjgwMjA0MjAwMTI4MDIxMDIwMDIxMDZjMjAwMzI4MDIwODIxMDUyMDAzMjgwMjBjMGIyMTAyMjAwMTI5MDMwODIxMDYyMDAwMTA3ZDM2MDIxODIwMDAyMDA0MzYwMjEwMjAwMDIwMDYzNzAzMDgyMDAwMjAwMjM2MDIwNDIwMDAyMDA1MzYwMjAwMjAwMzQxMTA2YTI0MDAwYjNmMDEwMTdmMTA0MzIxMDMyMDAwMjAwMTI5MDMwMDM3MDMwMDIwMDA0MTEwNmEyMDAxNDExMDZhMjkwMzAwMzcwMzAwMjAwMDQxMDg2YTIwMDE0MTA4NmEyOTAzMDAzNzAzMDAyMDAzMjAwMjEwNDQyMDAwMjAwMzM2MDIxODBiNTIwMTAyN2YyMzAwNDExMDZiMjIwNDI0MDAyMDA0NDEwODZhMjAwMDI4MDIwODIwMDAyODAyMDAyMjA1MjAwMTEwODYwMTIwMDQyODAyMDg0MTAxNDYwNDQwMjAwNDI4MDIwYzIwMDAyMDAxMjAwNTZhMzYwMjAwMjAwNDQxMTA2YTI0MDAwZjBiMjAwMjIwMDM0MWEzODUwODQxMGYxMDRjMDAwYjFmMDAyMDAxMjAwMjIwMDMxMDA0MjIwMTEwMWYyMTAyMjAwMDIwMDEzNjAyMDQyMDAwMjAwMjQ1MzYwMjAwMGI0ZjAxMDM3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MTA4NmEyMDAwMjgwMjA4MjAwMDI4MDIwMDIyMDMyMDAxMTA4NjAxMjAwMjI4MDIwODQxMDE0NjA0NDAyMDAyMjgwMjBjMjAwMDIwMDEyMDAzNmEzNjAyMDAyMDAyNDExMDZhMjQwMDBmMGI0MWEzODUwODQxMGYxMDg4MDEwMDBiMWEwMTAxN2Y0MWYxODUwODQxMTYxMDRkMjIwMjIwMDAyMDAxMTAwZjFhMjAwMjEwMDAwMDBiMTUwMDQxN2YyMDAwMjAwMTEwMTkyMjAwNDEwMDQ3MjAwMDQxMDA0ODFiMGIwZjAwMjAwMDIwMDEyMDAzMjAwMjEwMjg0MTAwNDcwYjA5MDAyMDAwMjAwMTEwMDUxYTBiMGMwMDIwMDAyMDAwMjAwMTEwMDIyMDAwMGIwYzAwMjAwMDIwMDAyMDAxMTAxYTIwMDAwYjBjMDAyMDAwMjAwMDIwMDExMDFiMjAwMDBiMGEwMDIwMDAyMDAwMjAwMTEwMDIwYjBjMDAyMDAwMjAwMDIwMDExMDYwMjAwMDBiMTAwMTAxN2YxMDJhMjIwMjIwMDAyMDAxMTAwMjIwMDIwYjEwMDEwMTdmMTAyYTIyMDIyMDAwMjAwMTEwMWIyMDAyMGIxMDAxMDE3ZjEwMmEyMjAyMjAwMDIwMDExMDYwMjAwMjBiMTkwMTAxN2YxMDJhMjEwMjQxNzIyMDAxYWQxMDAxMjAwMjIwMDA0MTcyMTAxZTIwMDIwYjBlMDEwMTdmMTA0MzIyMDEyMDAwMTA0NDIwMDEwYjRjMDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMTA0MzIxMDIyMDAxMjAwMDQxMTg3NDIwMDA0MTgwZmUwMzcxNDEwODc0NzIyMDAwNDEwODc2NDE4MGZlMDM3MTIwMDA0MTE4NzY3MjcyMzYwMjBjMjAwMjIwMDE0MTBjNmE0MTA0MTAwZjFhMjAwMTQxMTA2YTI0MDAyMDAyMGI4NDAxMDIwNDdmMDE3ZTIzMDA0MTIwNmIyMjAyMjQwMDIwMDI0MTEwNmE0MjAwMzcwMzAwMjAwMjQyMDAzNzAzMDgyMDAxNDEwMDIwMDI0MTA4NmEyMjAzNDExMDEwNmYyMDAyNDEwMDM2MDIxYzIwMDMyMDAyNDExYzZhMjIwNDEwOTgwMTIxMDUyMDAzMjAwNDEwOTkwMTIxMDYyMDAyNDEwODZhMjAwMjQxMWM2YTEwOTgwMTIxMDMwNDQwNDFjMzg1MDg0MTFkMTAwMzAwMGIyMDAwMjAwMzM2MDIwYzIwMDAyMDA1MzYwMjA4MjAwMDIwMDYzNzAzMDAyMDAyNDEyMDZhMjQwMDBiNzQwMTAxN2YyMzAwNDExMDZiMjIwMjI0MDAyMDAyNDEwMDM2MDIwYzIwMDIyMDAwNDExMDIwMDEyODAyMDAyMjAwMjAwMDQxMDQ2YTIyMDAxMDlkMDEyMDAyNDEwYzZhNDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDEyMDAwMzYwMjAwMjAwMjI4MDIwYzIxMDAyMDAyNDExMDZhMjQwMDIwMDA0MTE4NzQyMDAwNDE4MGZlMDM3MTQxMDg3NDcyMjAwMDQxMDg3NjQxODBmZTAzNzEyMDAwNDExODc2NzI3MjBiYTgwMTAyMDE3ZTAxN2YyMzAwNDExMDZiMjIwMzI0MDAyMDAzNDIwMDM3MDMwODIwMDMyMDAwNDExMDIwMDEyODAyMDAyMjAwMjAwMDQxMDg2YTIyMDAxMDlkMDEyMDAzNDEwODZhNDEwODIwMDMyODAyMDAyMDAzMjgwMjA0MTA1NzIwMDEyMDAwMzYwMjAwMjAwMzI5MDMwODIxMDIyMDAzNDExMDZhMjQwMDIwMDI0MjM4ODYyMDAyNDI4MGZlMDM4MzQyMjg4Njg0MjAwMjQyODA4MGZjMDc4MzQyMTg4NjIwMDI0MjgwODA4MGY4MGY4MzQyMDg4Njg0ODQyMDAyNDIwODg4NDI4MDgwODBmODBmODMyMDAyNDIxODg4NDI4MDgwZmMwNzgzODQyMDAyNDIyODg4NDI4MGZlMDM4MzIwMDI0MjM4ODg4NDg0ODQwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwYzEwZjkwMTBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTBkMTBmOTAxMGIwZjAwMjAwMDIwMDEyMDAyMjAwMzQxMDkxMGY5MDEwYjJmMDAwMjQwMjAwMzIwMDQ0ZDA0NDAyMDAyMjAwNDQ5MGQwMTIwMDAyMDA0MjAwMzZiMzYwMjA0MjAwMDIwMDEyMDAzNmEzNjAyMDAwZjBiMTAyYzAwMGIxMDJjMDAwYmI0MDEwMTAzN2YyMzAwNDExMDZiMjIwNDI0MDAwMjdmMDI0MDIwMDAyZDAwMDg0NTA0NDAyMDAwMjgwMjAwMjIwNTEwMTIyMjA2NDE5MGNlMDA0YjBkMDE0MWUwZGIwODJkMDAwMDBkMDE0MWRjZGIwODIwMDYzNjAyMDA0MWUwZGIwODQxMDEzYTAwMDAyMDA0NDEwODZhMjAwNjEwOWYwMTIwMDU0MTAwMjAwNDI4MDIwODIwMDQyODAyMGMxMDZmMWEyMDAwNDEwMTNhMDAwODBiNDEwMTIwMDEyMDAzNmEyMjAwNDFkY2RiMDgyODAyMDA0YjBkMDExYTIwMDQyMDAxMjAwMDEwYTAwMTIwMDIyMDAzMjAwNDI4MDIwMDIwMDQyODAyMDQxMDU3NDEwMDBjMDEwYjIwMDA0MTAwM2EwMDA4MjAwNTIwMDEyMDAyMjAwMzEwNmYwYjIwMDQ0MTEwNmEyNDAwMGIzZTAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MTA4NmE0MWNjOGQwODQxOTBjZTAwMjAwMTEwZDAwMTIwMDIyODAyMGMyMTAxMjAwMDIwMDIyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDI0MTEwNmEyNDAwMGIzMjAwMDI0MDIwMDEyMDAyNGQwNDQwMjAwMjQxOTBjZTAwNGQwZDAxMTAyYzAwMGIxMDJjMDAwYjIwMDAyMDAyMjAwMTZiMzYwMjA0MjAwMDIwMDE0MWNjOGQwODZhMzYwMjAwMGIxOTAwMjAwMDQxZmVmZmZmZmYwNzQ2MDQ0MDQxZTA4NTA4NDEwZDEwMDMwMDBiMjAwMDBiNGQwMTAxN2YyMzAwNDExMDZiMjIwMTI0MDAyMDAwMTAxMjQxMDQ0NjA0NDAyMDAxNDEwMDM2MDIwYzIwMDA0MTAwMjAwMTQxMGM2YTQxMDQxMDhhMDExYTQxZmVmZmZmZmYwNzIwMDAyMDAxMjgwMjBjNDFjNThlYjFhMjA0NDYxYjIxMDAwYjIwMDE0MTEwNmEyNDAwMjAwMDBiODAwMTAxMDI3ZjIzMDA0MTEwNmIyMjAzMjQwMDAyNDAwMjQwMjAwMDJkMDAwNDA0NDA0MTkwY2UwMDQxZGNkYjA4MjgwMjAwMjIwNDZiMjAwMjQ5MGQwMTIwMDM0MTA4NmEyMDA0MjAwMjIwMDQ2YTIyMDAxMGE0MDEyMDAzMjgwMjA4MjAwMzI4MDIwYzIwMDEyMDAyMTA1NzQxZGNkYjA4MjAwMDM2MDIwMDBjMDIwYjIwMDAyODAyMDAyMDAxMjAwMjEwMGYxYTBjMDEwYjIwMDAxMGE1MDEyMDAwMjgwMjAwMjAwMTIwMDIxMDBmMWEwYjIwMDM0MTEwNmEyNDAwMGIzZjAxMDE3ZjIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTA4NmEyMDAxMjAwMjQxY2M4ZDA4NDE5MGNlMDAxMDJiMjAwMzI4MDIwYzIxMDEyMDAwMjAwMzI4MDIwODM2MDIwMDIwMDAyMDAxMzYwMjA0MjAwMzQxMTA2YTI0MDAwYjU4MDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMjAwMDJkMDAwNDIwMDA0MTAwM2EwMDA0MDQ0MDIwMDE0MTA4NmE0MTAwNDFkY2RiMDgyODAyMDAxMGEwMDEyMDAwMjgwMjAwMjAwMTI4MDIwODIwMDEyODAyMGMxMDBmMWE0MWRjZGIwODQxMDAzNjAyMDA0MWUwZGIwODQxMDAzYTAwMDAwYjIwMDE0MTEwNmEyNDAwMGIwZDAwMjAwMDQxNjcxMDIwMWE0MTY3MTAxMjBiMGQwMDIwMDAxMDJhMjIwMDEwMjAxYTIwMDAwYjEyMDAyMDAwMTBhNjAxNDUwNDQwMjAwMDIwMDExMDIxMWEwYjBiMTIwMDIwMDAxMGE2MDE0NTA0NDAyMDAwMjAwMTEwYWEwMTBiMGIzODAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MjAwMzcwMzA4MjAwMjIwMDE0MTAwMjAwMjQxMDg2YTEwODIwMTIwMDAyMDAyMjgwMjAwMjAwMjI4MDIwNDEwYjgwMTIwMDI0MTEwNmEyNDAwMGIwYTAwMjAwMDEwYTcwMTEwYTIwMTBiYjkwMTAxMDQ3ZjIzMDA0MTIwNmIyMjAxMjQwMDIwMDAxMGE3MDEyMTAyMTA0MzIxMDQyMDAyMTAxMjIxMDAyMDAxNDExMDZhNDEwMDNhMDAwMDIwMDE0MTBjNmEyMDAwMzYwMjAwMjAwMTIwMDIzNjAyMDgyMDAxMjAwMDM2MDIwNDIwMDE0MTAwMzYwMjAwMDM3ZjIwMDAyMDAzNDYwNDdmMjAwMTJkMDAxMDA0NDA0MWRjZGIwODQxMDAzNjAyMDA0MWUwZGIwODQxMDAzYTAwMDAwYjIwMDE0MTIwNmEyNDAwMjAwNDA1MjAwMTEwYWQwMTIxMDAyMDAxMTBhZTAxMjEwMjIwMDExMGFmMDEyMTAzMjAwMTIwMDAzNjAyMWMyMDAxMjAwMzM2MDIxODIwMDEyMDAyMzYwMjE0MjAwNDIwMDE0MTE0NmExMDU5MjAwMTI4MDIwMDIxMDMyMDAxMjgwMjA0MjEwMDBjMDEwYjBiMGIzMzAyMDE3ZjAxN2UyMzAwNDExMDZiMjIwMTI0MDAyMDAxNDEwMDM2MDIwYzIwMDAyMDAxNDEwYzZhMjIwMDQxMDQxMGIzMDEyMDAwNDEwNDEwYjEwMTIwMDE0MTEwNmEyNDAwYTcwYjA5MDAyMDAwNDEyMDEwODcwMTBiMGMwMDIwMDAyMDAwMTBhZDAxMTA4NzAxMGIzYTAxMDE3ZjIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTA4NmEyMDAxNDEwODIwMDIxMGQwMDEyMDAzMjgwMjBjMjEwMTIwMDAyMDAzMjgwMjA4MzYwMjAwMjAwMDIwMDEzNjAyMDQyMDAzNDExMDZhMjQwMDBiMzQwMTAxN2UwMjQwMjAwMTQ1MGQwMDAzNDAyMDAxNDUwZDAxMjAwMTQxMDE2YjIxMDEyMDAwMzEwMDAwMjAwMjQyMDg4Njg0MjEwMjIwMDA0MTAxNmEyMTAwMGMwMDBiMDAwYjIwMDIwYmZkMDEwMTA2N2YyMzAwNDEzMDZiMjIwMTI0MDAyMDAwMTBhNzAxMjEwMjEwNDMyMTA0MjAwMjEwMTIyMTAwMjAwMTQxMTg2YTQxMDAzYTAwMDAyMDAxNDExNDZhMjAwMDM2MDIwMDIwMDEyMDAyMzYwMjEwMjAwMTIwMDAzNjAyMGMyMDAxNDEwMDM2MDIwODAzN2YyMDAwMjAwMzQ2MDQ3ZjIwMDEyZDAwMTgwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAxNDEzMDZhMjQwMDIwMDQwNTIwMDE0MTA4NmEyMjAyMTBhZDAxMjEwMzIwMDIxMGFlMDEyMTA1MjAwMjEwYWYwMTIxMDY0MTAwMjEwMDIwMDE0MTAwM2EwMDJmMjAwMjIwMDE0MTJmNmE0MTAxMTBiMzAxMDI0MDAyNDAwMjQwMjAwMTJkMDAyZjBlMDIwMjAxMDAwYjQxZWQ4NjA4NDEwZDEwODgwMTAwMGI0MTAxMjEwMDBiMjAwMTIwMDAzYTAwMjgyMDAxMjAwNjM2MDIyNDIwMDEyMDA1MzYwMjIwMjAwMTIwMDMzNjAyMWMyMDA0MjAwMTQxMWM2YTEwNTUyMDAxMjgwMjA4MjEwMzIwMDEyODAyMGMyMTAwMGMwMTBiMGIwYjJkMDAyMDAwNDEwODZhMjAwMDI4MDIwMDIwMDEyMDAyMTA5ZTAxMDQ0MDQxYTM4NTA4NDEwZjEwODgwMTAwMGIyMDAwMjAwMDI4MDIwMDIwMDI2YTM2MDIwMDBiODcwMTAxMDE3ZjIzMDA0MTMwNmIyMjAyMjQwMDIwMDIyMDAxMzYwMjA4MjAwMjEwMzUyMDAyMjAwMjJkMDAwNDNhMDAxMDIwMDIyMDAyMjgwMjAwMzYwMjBjMjAwMjIwMDExMDEyMzYwMjFjMjAwMjQxMDAzNjAyMTgyMDAyMjAwMjQxMDg2YTM2MDIxNDAzNDAyMDAyNDEyMDZhMjAwMjQxMTQ2YTEwYjUwMTIwMDIyZDAwMmM0MTAyNDY0NTA0NDAyMDAyNDEyMDZhMjAwMjQxMGM2YTEwYjYwMTBjMDEwYjBiMjAwMDIwMDIyODAyMGMyMDAyMmQwMDEwMTBiNzAxMjAwMjQxMzA2YTI0MDAwYmM1MDMwMTA3N2YyMzAwNDFkMDAwNmIyMjAyMjQwMDAyNDAyMDAxMjgwMjA0MjIwNDQxMGQ2YTIyMDgyMDAxMjgwMjA4NGQwNDQwMjAwMTI4MDIwMDIwMDI0MjAwMzcwMDM1MjAwMjQyMDAzNzAzMzAyODAyMDAyMDA0MjAwMjQxMzA2YTIyMDM0MTBkMTA2ZjFhMjAwMjQxMDAzNjAyNDAyMDAyNDEyODZhMjAwMzQxMDA0MTA0MTBiZjAxMjAwMjQxNDA2YjIyMDU0MTA0MjAwMjI4MDIyODIwMDIyODAyMmMxMDU3MjAwMjI4MDI0MDIxMDQyMDAyNDFjODAwNmE0MTAwM2EwMDAwMjAwMjQyMDAzNzAzNDAyMDAyNDEyMDZhMjAwMzQxMDQ0MTBkMTBiZjAxMjAwNTQxMDkyMDAyMjgwMjIwMjAwMjI4MDIyNDEwNTcyMDAyNDEwMDM2MDI0YzIwMDI0MTE4NmEyMDA1NDEwMDQxMDQxMGMwMDEyMDAyNDFjYzAwNmEyMjA3NDEwNDIwMDIyODAyMTgyMDAyMjgwMjFjMTA1NzIwMDIyODAyNGMyMTAzMjAwMjQxMDAzNjAyNGMyMDAyNDExMDZhMjAwNTQxMDQ0MTA4MTBjMDAxMjAwNzQxMDQyMDAyMjgwMjEwMjAwMjI4MDIxNDEwNTcyMDAyMjgwMjRjMjEwNjIwMDI0MTAwM2EwMDRjMjAwMjQxMDg2YTIwMDU0MTA4NDEwOTEwYzAwMTIwMDc0MTAxMjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMDIwMDIyZDAwNGM0MTAwNDczYTAwMGMyMDAwMjAwNjQxMTg3NDIwMDY0MTgwZmUwMzcxNDEwODc0NzIyMDA2NDEwODc2NDE4MGZlMDM3MTIwMDY0MTE4NzY3MjcyMzYwMjA4MjAwMDIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwNDIwMDAyMDA0NDExODc0MjAwNDQxODBmZTAzNzE0MTA4NzQ3MjIwMDQ0MTA4NzY0MTgwZmUwMzcxMjAwNDQxMTg3NjcyNzIzNjAyMDAyMDAxMjAwODM2MDIwNDBjMDEwYjIwMDA0MTAyM2EwMDBjMGIyMDAyNDFkMDAwNmEyNDAwMGI0ZDAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDAyODAyMDAyMDAxMTBiYzAxMjAwMTIwMDAyODAyMDQxMGJkMDEyMDAwNDEwODZhMjgwMjAwMjAwMTEwM2UyMDAyMjAwMDQxMGM2YTJkMDAwMDNhMDAwZjIwMDEyMDAyNDEwZjZhNDEwMTEwYTMwMTIwMDI0MTEwNmEyNDAwMGIwZDAwMjAwMDIwMDEyMDAyMTAzODEwMjExYTBiMGQwMDIwMDAyMDAxMjAwMjEwNGQxMDIxMWEwYjg3MDEwMTAxN2YyMzAwNDEzMDZiMjIwMjI0MDAyMDAyMjAwMTM2MDIwODIwMDIxMDM1MjAwMjIwMDIyZDAwMDQzYTAwMTAyMDAyMjAwMjI4MDIwMDM2MDIwYzIwMDIyMDAxMTAxMjM2MDIxYzIwMDI0MTAwMzYwMjE4MjAwMjIwMDI0MTA4NmEzNjAyMTQyMDAyNDEyNDZhMjEwMTAzNDAyMDAyNDEyMDZhMjAwMjQxMTQ2YTEwYmEwMTIwMDIyODAyMjAwNDQwMjAwMTIwMDI0MTBjNmExMGJiMDEwYzAxMGIwYjIwMDAyMDAyMjgwMjBjMjAwMjJkMDAxMDEwYjcwMTIwMDI0MTMwNmEyNDAwMGI4OTAzMDEwNjdmMjMwMDQxNDA2YTIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjAzNDEwYzZhMjIwNjIwMDEyODAyMDg0ZDA0N2YyMDAxMjgwMjAwMjAwMjQxMjg2YTQxMDAzNjAyMDAyMDAyNDIwMDM3MDMyMDI4MDIwMDIwMDMyMDAyNDEyMDZhMjIwMzQxMGMxMDZmMWEyMDAyNDEwMDM2MDIzMDIwMDI0MTE4NmEyMDAzNDEwMDQxMDQxMGMxMDEyMDAyNDEzMDZhMjIwNTQxMDQyMDAyMjgwMjE4MjAwMjI4MDIxYzEwNTcyMDAyMjgwMjMwMjEwNDIwMDI0MjAwMzcwMzMwMjAwMjQxMTA2YTIwMDM0MTA0NDEwYzEwYzEwMTIwMDU0MTA4MjAwMjI4MDIxMDIwMDIyODAyMTQxMDU3MjAwMjQxMDAzNjAyM2MyMDAyNDEwODZhMjAwNTQxMDA0MTA0MTBjMjAxMjAwMjQxM2M2YTIyMDc0MTA0MjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMjI4MDIzYzIxMDMyMDAyNDEwMDM2MDIzYzIwMDIyMDA1NDEwNDQxMDgxMGMyMDEyMDA3NDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDIyODAyM2MyMTA1MjAwMDQxMGM2YTIwMDQ0MTE4NzQyMDA0NDE4MGZlMDM3MTQxMDg3NDcyMjAwNDQxMDg3NjQxODBmZTAzNzEyMDA0NDExODc2NzI3MjM2MDIwMDIwMDAyMDAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyMDQyMDAxMjAwNjM2MDIwNDIwMDA0MTA4NmEyMDA1NDExODc0MjAwNTQxODBmZTAzNzE0MTA4NzQ3MjIwMDU0MTA4NzY0MTgwZmUwMzcxMjAwNTQxMTg3NjcyNzIzNjAyMDA0MTAxMDU0MTAwMGIzNjAyMDAyMDAyNDE0MDZiMjQwMDBiMWYwMDIwMDAyODAyMDgyMDAxMTBiYzAxMjAwMTIwMDAyODAyMDAxMGJkMDEyMDAwMjgwMjA0MjAwMTEwM2UwYjQ2MDEwMTdmMjMwMDQxMTA2YjIyMDIyNDAwMjAwMjIwMDA0MTE4NzQyMDAwNDE4MGZlMDM3MTQxMDg3NDcyMjAwMDQxMDg3NjQxODBmZTAzNzEyMDAwNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwYTMwMTIwMDI0MTEwNmEyNDAwMGI4MTAxMDEwMzdmMjMwMDQxMTA2YjIyMDIyNDAwMDI0MDAyNDAyMDAwMmQwMDA0MDQ0MDIwMDExMDEyMjIwNDQxOTBjZTAwNDFkY2RiMDgyODAyMDAyMjAzNmI0YjBkMDEyMDAyNDEwODZhMjAwMzIwMDMyMDA0NmEyMjAwMTBhNDAxMjAwMTQxMDAyMDAyMjgwMjA4MjAwMjI4MDIwYzEwNmYxYTQxZGNkYjA4MjAwMDM2MDIwMDBjMDIwYjIwMDAyODAyMDAyMDAxMTA4YjAxMGMwMTBiMjAwMDEwYTUwMTIwMDAyODAyMDAyMDAxMTA4YjAxMGIyMDAyNDExMDZhMjQwMDBiMzgwMjAxN2YwMTdlMjMwMDQxMTA2YjIyMDEyNDAwMjAwMTQyMDAzNzAzMDgyMDAwMjAwMTQxMDg2YTIyMDA0MTA4NDE4YTg1MDg0MTBiMTBjNTAxMjAwMDQxMDgxMGIxMDEyMDAxNDExMDZhMjQwMDBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTBkMTBmODAxMGIwZjAwMjAwMDIwMDEyMDAyMjAwMzQxMDkxMGY4MDEwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwYzEwZjgwMTBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTA4MTBmODAxMGI4MDAyMDEwNTdmMjMwMDQxMjA2YjIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjAzNDEwODZhMjIwNTIwMDEyODAyMDg0ZDA0N2YyMDAxMjgwMjAwMjAwMjQyMDAzNzAzMTAyODAyMDAyMDAzMjAwMjQxMTA2YTIyMDM0MTA4MTA2ZjFhMjAwMjQxMDAzNjAyMWMyMDAyNDEwODZhMjAwMzQxMDA0MTA0MTBjMjAxMjAwMjQxMWM2YTIyMDY0MTA0MjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMjI4MDIxYzIxMDQyMDAyNDEwMDM2MDIxYzIwMDIyMDAzNDEwNDQxMDgxMGMyMDEyMDA2NDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDIyODAyMWMyMTAzMjAwMDIwMDQ0MTE4NzQyMDA0NDE4MGZlMDM3MTQxMDg3NDcyMjAwNDQxMDg3NjQxODBmZTAzNzEyMDA0NDExODc2NzI3MjM2MDIwNDIwMDEyMDA1MzYwMjA0MjAwMDQxMDg2YTIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwMDQxMDEwNTQxMDAwYjM2MDIwMDIwMDI0MTIwNmEyNDAwMGI4YTAxMDEwNDdmMjMwMDQxMTA2YjIyMDMyNDAwMjAwMTI4MDIwNDIyMDI0MTA0NmEyMjA0MjAwMTI4MDIwODRiMDQ3ZjQxMDAwNTIwMDEyODAyMDAyMDAzNDEwMDM2MDIwYzI4MDIwMDIwMDIyMDAzNDEwYzZhNDEwNDEwNmYxYTIwMDMyODAyMGMyMTAyMjAwMTIwMDQzNjAyMDQyMDAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIyMTAyNDEwMTBiMjEwMTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAyMDAzNDExMDZhMjQwMDBiMzAwMDIwMDA0MTA4NmEyMDAwMjgwMjAwMjAwMTIwMDIxMDllMDEwNDQwMjAwMzIwMDQ0MWEzODUwODQxMGYxMDRjMDAwYjIwMDAyMDAwMjgwMjAwMjAwMjZhMzYwMjAwMGI3ODAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwNDIzODg2MjAwMDQyODBmZTAzODM0MjI4ODY4NDIwMDA0MjgwODBmYzA3ODM0MjE4ODYyMDAwNDI4MDgwODBmODBmODM0MjA4ODY4NDg0MjAwMDQyMDg4ODQyODA4MDgwZjgwZjgzMjAwMDQyMTg4ODQyODA4MGZjMDc4Mzg0MjAwMDQyMjg4ODQyODBmZTAzODMyMDAwNDIzODg4ODQ4NDg0MzcwMzA4MjAwMTIwMDI0MTA4NmE0MTA4MTBhMzAxMjAwMjQxMTA2YTI0MDAwYmQ2MDEwMTA2N2YyMzAwNDE0MDZhMjIwMDI0MDAxMGM4MDExMDVjMjEwMTIwMDAxMGM5MDExMDVjMzYwMjA4MjAwMDEwNDczNjAyMGMyMDAwNDEyODZhMjIwMjIwMDExMDMyNDFmNzgwMDg0MTEwMTAzMzIwMDAyODAyMmMyMjAxMjAwMDQxMDg2YTEwNjQyMDAxMjAwMDQxMGM2YTEwNjQyMDAwNDEyMDZhMjIwMTIwMDA0MTM4NmEyMjAzMjkwMzAwMzcwMzAwMjAwMDQxMTg2YTIyMDQyMDAwNDEzMDZhMjIwNTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzI4MzcwMzEwMjAwMDIwMDA0MTEwNmExMDdjMzYwMjA0MjAwMjEwYzkwMTEwNWMxMDMyNDFmNTgxMDg0MTE4MTAzMzIwMDAyODAyMmMyMDAwNDEwNDZhMTA3ODIwMDEyMDAzMjkwMzAwMzcwMzAwMjAwNDIwMDUyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDMyODM3MDMxMDIwMDA0MTEwNmExMDdjMjAwMDQxNDA2YjI0MDAwYjBhMDA0MTk1ODgwODQxMTIxMDRkMGIwYTAwNDE4MTg4MDg0MTE0MTA0ZDBiYTkwMzAyMDU3ZjAxN2UyMzAwNDE4MDAxNmIyMjAyMjQwMDEwY2IwMTEwYWIwMTIxMDMyMDAxMjgwMjBjMjEwNDIwMDEyOTAzMDAyMTA3MjAwMTI4MDIwODIxMDEwMjQwMjAwMzQxZmVmZmZmZmYwNzQ2MDQ0MDIwMDE0MWZlZmZmZmZmMDc0NjBkMDEyMDAxMTBhMTAxMjEwMTIwMDIyMDA0MzYwMjE0MjAwMjIwMDczNzAzMDgyMDAyMjAwMTM2MDIxMDEwY2MwMTEwNWMyMTAzMjAwNDEwMjkyMTA0MjAwMjQxZTAwMDZhMjIwMTIwMDMxMDMyNDFhMTgwMDg0MTBhMTAzMzIwMDI0MTQwNmIyMjAzMjAwMTIwMDI0MTA4NmExMDg0MDEyMDAxMjAwMzEwY2QwMTIwMDExMDM0NDIwMDIxMDc0MWZlZmZmZmZmMDcyMTAxMGIyMDAyNDFlMDAwNmEyMDAwMTAzMjQxYzA4MTA4NDExMjEwMzMyMDAyMjgwMjY0MWEyMDAyNDEyODZhMjIwMDIwMDI0MWYwMDA2YTIyMDUyOTAzMDAzNzAzMDAyMDAyNDEyMDZhMjIwMzIwMDI0MWU4MDA2YTIyMDYyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDM2MDM3MDMxODAyNDAyMDAxNDFmZWZmZmZmZjA3NDcwNDQwMjAwNTIwMDAyOTAzMDAzNzAzMDAyMDA2MjAwMzI5MDMwMDM3MDMwMDIwMDIyMDAyMjkwMzE4MzcwMzYwMjAwMjEwN2QzNjAyNzgyMDAxMTBhMTAxMjEwMDIwMDIyMDA0MzYwMjNjMjAwMjIwMDczNzAzMzAyMDAyMjAwMDM2MDIzODIwMDI0MTQwNmIyMDAyNDFlMDAwNmEyMDAyNDEzMDZhMTA4MzAxMGMwMTBiMjAwMjQxZDAwMDZhMjAwMDI5MDMwMDM3MDMwMDIwMDI0MWM4MDA2YTIwMDMyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDMxODM3MDM0MDIwMDIyMDA0MzYwMjU4MGIyMDAyNDFlMDAwNmEyMDAyNDE0MDZiMTA3NjIwMDI0MTgwMDE2YTI0MDAwZjBiNDFjYTg4MDg0MTFmMTA0MTAwMGIwYTAwNDFlODhjMDg0MTIyMTA0ZDBiMGEwMDQxZmE4NjA4NDExZDEwNGQwYmZmMDIwMjAzN2YwMjdlMjMwMDQxZDAwMDZiMjIwMjI0MDAyMDAyNDEzMDZhMjIwNDIwMDE0MTEwNmEyOTAzMDAzNzAzMDAyMDAyNDEyODZhMjIwMzIwMDE0MTA4NmEyOTAzMDAzNzAzMDAyMDAyMjAwMTI5MDMwMDM3MDMyMDIwMDIxMDdkMzYwMjM4MDI0MDAyNDAwMjQwMDI0MDIwMDEyODAyMTgyMjAxMTA2NTBlMDIwMTAyMDAwYjEwNDcyMTAzMjAwMjQxMDg2YTIwMDIyODAyMjAyMDAyMjgwMjI0MjAwNDIwMDExMDYyMjAwMjI5MDMwODIxMDUyMDAyMjkwMzI4MjEwNjIwMDAxMDdkMzYwMjE4MjAwMDIwMDMzNjAyMTAyMDAwMjAwNjM3MDMwODIwMDAyMDA1MzcwMzAwMGMwMjBiMjAwMDIwMDIyOTAzMjAzNzAzMDAyMDAwNDExODZhMjAwMjQxMzg2YTI5MDMwMDM3MDMwMDIwMDA0MTEwNmEyMDA0MjkwMzAwMzcwMzAwMjAwMDQxMDg2YTIwMDMyOTAzMDAzNzAzMDAwYzAxMGIyMDAyNDE0MDZiMjAwMTEwOTcwMTAyN2YyMDAyMjkwMzQwNTAwNDQwMjAwMjI4MDIzMDIxMDEyMDAyNDExMDZhMjAwMjI4MDIyMDIwMDIyODAyMjQyMDAyMjgwMjQ4MjAwMjI4MDI0YzEwNmQyMDAyMjgwMjEwMjEwMzIwMDIyODAyMTQwYzAxMGIxMDQ3MjEwMTIwMDI0MTE4NmEyMDAyMjgwMjIwMjAwMjI4MDIyNDIwMDIyODAyMzAyMDAyNDE0MDZiMTA2YzIwMDIyODAyMTgyMTAzMjAwMjI4MDIxYzBiMjEwNDIwMDIyOTAzMjgyMTA1MjAwMDEwN2QzNjAyMTgyMDAwMjAwMTM2MDIxMDIwMDAyMDA1MzcwMzA4MjAwMDIwMDQzNjAyMDQyMDAwMjAwMzM2MDIwMDBiMjAwMjQxZDAwMDZhMjQwMDBiMGQwMDIwMDAxMDYxNDFmZjAxNzE0MTAxNGIwYjE3MDAyMDAwMjgwMjAwMjAwMTI4MDIwMDEwODkwMTQxZmYwMTcxNDFmZjAxNDYwYjNiMDEwMTdmMjMwMDQxMTA2YjIyMDQyNDAwMjAwNDQxMDg2YTQxMDAyMDAzMjAwMTIwMDIxMDJiMjAwNDI4MDIwYzIxMDEyMDAwMjAwNDI4MDIwODM2MDIwMDIwMDAyMDAxMzYwMjA0MjAwNDQxMTA2YTI0MDAwYjBhMDA0MWJkODgwODQxMGQxMDRkMGIwYTAwNDFmMjg3MDg0MTBmMTA0ZDBiMGEwMDQxZGQ4NzA4NDExNTEwNGQwYjBhMDA0MWE3ODgwODQxMTYxMDRkMGIxOTAxMDE3ZjQxOTc4NzA4NDExNjEwNGQyMTAxMjAwMDI4MDIwMDIwMDExMDQwMjAwMTBiMTkwMTAxN2Y0MWFkODcwODQxMTgxMDRkMjEwMTIwMDAyODAyMDAyMDAxMTA0MDIwMDEwYjBhMDA0MWM1ODcwODQxMTgxMDRkMGIwYTAwNDE4ZjhjMDg0MTFkMTA0ZDBiMGEwMDQxYWM4YzA4NDExZDEwNGQwYjBhMDA0MWM5OGMwODQxMWYxMDRkMGJhNzA1MDIwZDdmMDI3ZTIzMDA0MTQwNmEyMjAwMjQwMDEwMjI0MTBhMTA1YTQxMDA0MWJkODgwODQxMGQxMDUwMjEwOTQxMDExMDRiMjEwMjQxMDI0MTk1ODgwODQxMTIxMDUwMjEwYTQxMDM0MTgxODgwODQxMTQxMDUwMjEwNTQxMDQ0MWYyODcwODQxMGYxMDUwMjEwNjQxMDUxMDExMjEwZDQxMDYxMDExMjEwZTQxMDcxMDU4MjEwNzQxMDgxMDUxMjEwODQxMDk0MWZhODYwODQxMWQxMDUwMjEwNDIwMDAyMDA4MzYwMjEwMjAwMDIwMDczNjAyMGMyMDA1MTAyZjEwMzIyMTAxNDFlNjgxMDg0MTBmMTA0ZDIxMDMxMDQzMjEwYjEwN2QyMTBjMTAxNjIwMDEyMDBjMjAwMzIwMGIxMDQ1MjEwMTEwMTcyMDAxMTAxMjIxMDMyMDAwNDEwMDM2MDIzMDIwMDAyMDAxMzYwMjI4MjAwMDIwMDM0MTAyNzYzNjAyMmMyMDAwNDEyODZhMjIwMzEwNzUxMDJmMTBhMjAxMjEwMTIwMDMyMDA0MTAyZjEwMmYxMDMyNDFhYjgwMDg0MTE1MTAzMzIwMDMxMDgwMDEyMTAzMDI0MDAyNDAyMDAxNDFmZWZmZmZmZjA3NDcwNDQwMjAwMTEwMmYxMGExMDEyMDAyMTAzMDBkMDE0MWU5ODgwODQxZDEwMDEwNDEwMDBiMjAwMjIwMDMxMDMwNDUwZDAxMGIxMGNjMDEyMDA0MTBhODAxMTBkOTAxMjAwMzEwYTgwMTAyNDAxMGNiMDEyMjA0MTBhNjAxMGQwMDIwMDE0MWZlZmZmZmZmMDc0NzA0NDAyMDA0MjAwMTEwMjExYTBjMDEwYjIwMDQ0MWVkODUwODQxMDQxMGI4MDEwYjEwZDEwMTIwMDkxMGE4MDExMGQ0MDEyMDAyMTBhODAxMTBjODAxMjAwYTEwYTgwMTEwYzkwMTIwMDUxMDJmMTBhODAxMTBkODAxMjAwMDQxMjg2YTIyMDEyMDA1MTAzMjQxYjY4MTA4NDEwYTEwMzMyMDAxMTA4MDAxMTBhODAxMTBkMjAxMjAwNjEwMmYxMGE4MDExMGRhMDEyMDAxMjAwNjEwMzI0MTg2ODMwODQxMGYxMDMzMjAwMTEwODAwMTEwYTgwMTIwMDAyMDA3MTAxMjM2MDIxYzIwMDA0MTAwMzYwMjE4MjAwMDIwMDA0MTBjNmEzNjAyMTQwMzQwMDI0MDIwMDA0MTI4NmEyMDAwNDExNDZhMTBjMzAxMjAwMDI4MDIyODQ1MDQ0MDIwMDAyMDA4MTAxMjM2MDIxYzIwMDA0MTAwMzYwMjE4MjAwMDIwMDA0MTEwNmEzNjAyMTQwMzQwMjAwMDQxMjg2YTIwMDA0MTE0NmExMGMzMDEyMDAwMjgwMjI4NDUwZDAyMjAwMDIwMDAyODAyMzAyMjAxMzYwMjI0MjAwMDIwMDAyODAyMmMzNjAyMjAyMDAwNDEyMDZhMTBkNTAxMjIwMjEwYTYwMTBkMDAyMDAyMjAwMTEwYjQwMTBjMDAwYjAwMGIyMDAwMjAwMDI4MDIzMDIyMDEzNjAyMjQyMDAwMjAwMDI4MDIyYzM2MDIyMDIwMDA0MTIwNmExMGQ2MDEyMjAyMTBhNjAxMGQwMTIwMDIyMDAxMTBiOTAxMGMwMTBiMGIxMGQzMDEyMDBkMTBhOTAxMTBkNzAxMjAwZTEwYTkwMTIwMDA0MTQwNmIyNDAwMGYwYjQxYmE4OTA4NDFjODAwMTA0MTAwMGIwODAwMTAyMjQxMDAxMDVhMGJjNzAxMDEwNTdmMjMwMDQxMzA2YjIyMDAyNDAwNDEwMDEwNWEwMjQwMDI0MDEwNDYxMGQxMDExMDVjMTAzMDA0NDAxMDQ2MTBkMTAxMTA1YzEwMzA0NTBkMDEyMDAwMTA0YTIyMDEzNjAyMDgxMGQ0MDExMGE3MDEyMTAyMTBjOTAxMTA1YzIxMDMyMDAwMjAwMTEwMTIzNjAyMTQyMDAwNDEwMDM2MDIxMDIwMDAyMDAwNDEwODZhMzYwMjBjMjAwMDQxMjA2YTIxMDEwMzQwMDI0MDIwMDA0MTE4NmEyMDAwNDEwYzZhMTA2NzIwMDAyOTAzMTg1MDBkMDAyMDAwMjgwMjJjMjAwMDI4MDIyODIwMDIxMDMwNDUwZDA0MTBjZTAxNDUwZDA0MjAwMzEwMmYyMDAxMTBjYTAxMGMwMTBiMGIyMDAwNDEzMDZhMjQwMDBmMGI0MTgyOGEwODQxMTYxMDQxMDAwYjQxODI4YTA4NDExNjEwNDEwMDBiNDE5ODhhMDg0MTBkMTA0MTAwMGJjNzA3MDIwOTdmMDE3ZTIzMDA0MTgwMDE2YjIyMDAyNDAwMTAyMjQxMDExMDVhMjAwMDEwNGYzNjAyMmMxMGQxMDExMDVjMjEwMTAyNDAwMjQwMDI0MDEwNDYyMjA3MjAwMTEwMzAwNDQwMjAwMDEwYzkwMTEwNWMyMjAxMzYwMjM0MjAwMDQxZTAwMDZhMjIwMjIwMDExMDJmMTAzMjQxOGQ4MjA4NDExODEwMzMyMDAwMjgwMjY0MjAwMDQxMmM2YTEwNzgyMDAwNDFkODAwNmEyMjAxMjAwMDQxZjAwMDZhMjIwNjI5MDMwMDM3MDMwMDIwMDA0MWQwMDA2YTIyMDMyMDAwNDFlODAwNmEyMjA0MjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNjAzNzAzNDgyMDAwNDFjODAwNmEyMjA1MTA3YzIxMDgyMDAyMTBjODAxMTA1YzEwMzI0MWUxODAwODQxMGExMDMzMjAwMDI4MDI2NDIyMDIyMDAwNDEzNDZhMTA2NDIwMDI0MTAwMjAwODEwNzkyMDAxMjAwNjI5MDMwMDM3MDMwMDIwMDMyMDA0MjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNjAzNzAzNDgyMDAwNDEzODZhMjAwNTEwN2UyMDAwMjgwMjQ0MTBjZTAxNDUwZDAxMjAwMDI4MDIzNDEwMzIyMTAxNDFhNTgyMDg0MTA2MTA0ZDIxMDQxMDQzMjIwMzQxMDEyMDAwMTA3OTEwNDMyMjAyMjAwMDQxMzg2YTEwNDQyMDAwMjAwMTM2MDI3MDIwMDA0MjdmMzcwMzY4MjAwMDIwMDMzNjAyNjQyMDAwMjAwNDM2MDI2MDIwMDAxMDdkMjIwNTM2MDI3ODAyNDAwMjQwMDI0MDAyNDAyMDAyMTA2NTBlMDIwMjAwMDEwYjIwMDA0MWM4MDA2YTIwMDIxMDk3MDEwMjdmMjAwMDI5MDM0ODUwMDQ0MDIwMDA0MTE4NmEyMDA0MjAwMzIwMDAyODAyNTAyMDAwMjgwMjU0MTA2ZDIwMDAyODAyMTgyMTA0MjAwMDI4MDIxYzBjMDEwYjEwNDcyMDAwNDEyMDZhMjAwNDIwMDMyMDAxMjAwMDQxYzgwMDZhMTA2YzIwMDAyODAyMjAyMTA0MjEwMTIwMDAyODAyMjQwYjIxMDMxMDdkMjEwNTBjMDEwYjEwNDcyMTAxMjAwMDQxMTA2YTIwMDQyMDAzMjAwNjIwMDIxMDYyMjAwMDI5MDM2ODIxMDkyMDAwMjgwMjE0MjEwMzIwMDAyODAyMTAyMTA0MTA3ZDIxMDUyMDA5NDI3ZjUyMGQwMTBiMTAxNjIxMDkwYjIwMDkyMDAxMjAwNTIwMDQyMDAzMTA0NTIxMDExMDE3MjAwMTEwMTIyMTAyMjAwMDQxMDAzNjAyNTAyMDAwMjAwMTM2MDI0ODIwMDAyMDAyNDEwMjc2MzYwMjRjMjAwMDQxYzgwMDZhMTA3NTIyMDIxMDEyMjEwMTIwMDA0MWYwMDA2YTQxMDAzYTAwMDAyMDAwNDFlYzAwNmEyMDAxMzYwMjAwMjAwMDIwMDIzNjAyNjgyMDAwMjAwMTM2MDI2NDIwMDA0MTAwMzYwMjYwMjAwMDQxZTAwMDZhMjIwMTQxOGE4NTA4NDEwYjEwM2ExMGEyMDEyMTAyMjAwMTEwYmUwMTIxMDkyMDAxMTAzOTIxMDEyMDAwMjgwMjY0MjAwMDI4MDI2MDQ3MGQwMjIwMDAyZDAwNzAwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIwMjQwMjAwMjQxZmVmZmZmZmYwNzQ3MDQ0MDIwMDIxMGExMDEyMTAzMGMwMTBiMTBkOTAxMTBhNzAxMjEwMzEwY2MwMTEwNWMyMDAxMTAyOTEwMzE0MjAwMjEwOTBiMjAwMTEwY2UwMTQ1MGQwMzIwMDcyMDAzMjAwOTIwMDExMDQyMjAwMDIwMDEzNjAyNmMyMDAwMjAwMzM2MDI2ODIwMDAyMDA5MzcwMzYwMjAwMDIwMDA0MWUwMDA2YTEwOTUwMTIyMDEzNjAyMzAyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDNjMjAwMDIwMDAyODAyMDgzNjAyMzgyMDAwMjAwMTEwMTIzNjAyNTAyMDAwNDEwMDM2MDI0YzIwMDAyMDAwNDEzMDZhMzYwMjQ4MDM0MDIwMDA0MWUwMDA2YTIwMDA0MWM4MDA2YTEwNjcyMDAwMjkwMzYwNTA0NTA0NDAyMDAwMjgwMjc0MjAwMDI4MDI3MDIwMDA0MTM4NmEyMjAxMTAzZTIwMDAyOTAzNjgyMDAxMTBjNjAxMjAwMTEwM2MwYzAxMGIwYjIwMDAyODAyMzgyMDAwMmQwMDNjMTAzNzIwMDA0MTgwMDE2YTI0MDAwZjBiNDE4MjhhMDg0MTE2MTA0MTAwMGI0MWU3OGEwODQxMWYxMDQxMDAwYjQxOGE4NTA4NDEwYjQxOTU4NTA4NDEwZTEwNGMwMDBiNDE4NjhiMDg0MTFhMTA0MTAwMGJmMzFkMDIxNjdmMDI3ZTIzMDA0MWEwMDI2YjIyMDAyNDAwMTAyMjQxMDAxMDVhMTBjODAxMTA1YzIxMDEyMDAwMTBjOTAxMTA1YzIyMTQxMDJmMTA5NjAxMzYwMmYwMDEyMDAwMTA0MzM2MDJhMDAxMjAwMDQxODAwMjZhMjIwOTIwMDExMDMyNDFlYjgwMDg0MTBjMTAzMzIwMDAyODAyODQwMjIyMDE0MTAwMTA4MTAxMjAwMTQxMDExMDgxMDEyMDAxNDEwMDEwODEwMTIwMDEyMDAwNDFmMDAxNmEyMjExMTA3YjIwMDEyMDAwNDFhMDAxNmEyMjA3MTA3YjIwMDA0MWUwMDE2YTIyMDUyMDAwNDE5MDAyNmEyMjA0MjkwMzAwMzcwMzAwMjAwMDQxZDgwMTZhMjIwMjIwMDA0MTg4MDI2YTIyMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEyMDAwNDFkMDAxNmEyMjA2MTA3ZjEwZDIwMTEwNWMyMTAxMjAwMDIwMTQxMDJmMTA5NjAxMzYwMmYwMDEyMDAwMTA0MzM2MDJhMDAxMjAwOTIwMDExMDMyNDFlYjgwMDg0MTBjMTAzMzIwMDAyODAyODQwMjIyMDE0MTAwMTA4MTAxMjAwMTIwMTExMDdiMjAwMTIwMDcxMDdiMjAwMTQxMDEyMDAwMTA3OTIwMDUyMDA0MjkwMzAwMzcwMzAwMjAwMjIwMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEyMDA2MTA3ZjEwMmEyMjAzMTAyYTIyMDYxMDIzMjAwNjEwY2UwMTA0NDAxMGNjMDExMDVjMjAwNjEwMjkxMDMxMTBkOTAxMTBhNzAxMjEwMTIwMDAyMDA2MzYwMjhjMDIyMDAwNDIwMDM3MDM4MDAyMjAwMDIwMDEzNjAyODgwMjIwMDMyMDAwNDE4MDAyNmExMDQ0MGIyMDAwMjAwMzM2MDI5MDAxMDI0MDAyNDAwMjQwMjAwMzEwNjUwNDQwMTBkNDAxMTBhNzAxMjEwZTEwN2QyMTBkMjAwMDIwMDAyODAyOTAwMTEwMTIzNjAyOWMwMTIwMDA0MTAwMzYwMjk4MDEyMDAwMjAwMDQxOTAwMTZhMzYwMjk0MDEyMDAwNDE5MDAyNmEyMTBhMjAwMDQxYzAwMTZhMjEwZjIwMDA0MWE4MDE2YTIxMTUwMzQwMjAwMDQxYTAwMTZhMjAwMDQxOTQwMTZhMTA2NzIwMDAyOTAzYTAwMTUwMDQ0MDQyODA4MDkwYmJiYWQ2YWRmMDBkMTAyZTIxMDEyMDBkMTBkMzAxMTA1ZjEwMmUxMDkyMDEyMDAxMTA4ZDAxMjIwNTIwMGQxMGQ3MDExMDVmMTAyZTEwOTIwMTIwMDExMDhkMDEyMjA2MTA5MTAxMjAwZDEwODkwMTQxZmYwMTcxNDEwMjQ5MGQwNTIwMGQyMDA1MTA5MzAxMjAwNjEwOTAwMTIxMDIyMDBlMTAyZjIxMDEyMDAwMjAwMjEwMjkzNjAyOGMwMjIwMDA0MjAwMzcwMzgwMDIyMDAwMjAwMTM2MDI4ODAyMjAxNDIwMDA0MTgwMDI2YTEwY2EwMTIwMGUxMDJmMjEwMTIwMDUxMGNlMDEwNDQwMTA0NjIwMDE0MjAwMjAwNTEwNDIwYjIwMDYxMGNlMDEwNDQwMTA0ODIwMGU0MjAwMjAwNjEwNDIwYjEwNDMyMTA0MTA0MzEwMmYyMTA2MjAwMTQxZmVmZmZmZmYwNzQ2MGQwMzIwMDEyMDA2MTA0MDBjMDQwYjIwMGYyMDE1NDEwODZhMjkwMzAwMzcwMzAwMjAwMDIwMTUyOTAzMDAzNzAzYjgwMTIwMGYxMGQ2MDExMGFjMDEyMTEyMjAwZjEwZDUwMTEwYjIwMTIxMTMyMDBmMjgwMjAwMjEwYzIwMDAyODAyYzQwMTIxMDQyMDAwMjkwM2I4MDEyMTE2MjAxMjEwMTIyMTAxMjAxMzEwMTI0MTBkNmUyMDAxNDEwYzZlNmEyMTExNDEwMDIxMDEwMzQwMDI0MDAyNDAyMDAxMjAxMTQ3MDQ0MDIwMDE0MTAxNmEyMTA2NDEwMDIxMDIyMDEyMTAxMjIxMDUwMjQwMDI0MDAzNDAyMDAyNDEwYzZhMjIwMzIwMDU0YjBkMDEyMDAwNDE4ODAyNmEyMjA5NDEwMDM2MDIwMDIwMDA0MjAwMzcwMzgwMDIyMDEyMjAwMjIwMDA0MTgwMDI2YTIyMDI0MTBjMTA4YTAxMWEyMDAwNDEwMDM2MDJkMDAxMjAwMDQxODgwMTZhMjAwMjQxMDA0MTA0MTBjMTAxMjAwMDQxZDAwMTZhMjIwNzQxMDQyMDAwMjgwMjg4MDEyMDAwMjgwMjhjMDExMDU3MjAwMDI4MDJkMDAxMjEwODIwMDA0MjAwMzcwM2QwMDEyMDAwNDE4MDAxNmEyMDAyNDEwNDQxMGMxMGMxMDEyMDA3NDEwODIwMDAyODAyODAwMTIwMDAyODAyODQwMTEwNTcyMDAwNDEwMDM2MDJmMDAxMjAwMDQxZjgwMDZhMjAwNzQxMDA0MTA0MTBjMjAxMjAwMDQxZjAwMTZhMjIwMjQxMDQyMDAwMjgwMjc4MjAwMDI4MDI3YzEwNTcyMDAwMjgwMmYwMDEyMTBiMjAwMDQxMDAzNjAyZjAwMTIwMDA0MWYwMDA2YTIwMDc0MTA0NDEwODEwYzIwMTIwMDI0MTA0MjAwMDI4MDI3MDIwMDAyODAyNzQxMDU3MjAwMzIxMDIyMDA4NDExODc0MjAwODQxODBmZTAzNzE0MTA4NzQ3MjIwMDg0MTA4NzY0MTgwZmUwMzcxMjAwODQxMTg3NjcyNzIyMDAxNDcwZDAwMGIyMDAwMjgwMmYwMDEyMTAzMjAwYjQxMTg3NDIwMGI0MTgwZmUwMzcxNDEwODc0NzIyMDBiNDEwODc2NDE4MGZlMDM3MTIwMGI0MTE4NzY3MjcyMTAyZjIxMDEyMDAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIyMjA3MTAyZjIxMDU0MTAxMTAyZDIwMDA0MTgwMDI2YTIyMDMyMDAxMTAzMjQxZDk4NjA4NDExNDEwMzMyMDAwMjgwMjg0MDIyMjAxMjAwNTEwNmUyMDAxMTA3MDIwMDA0MWUwMDE2YTIyMDIyMDBhMjkwMzAwMzcwMzAwMjAwMDQxZDgwMTZhMjIwMTIwMDkyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDExMDQzMjEwNTIwMDAyMDA0MzYwMjhjMDIyMDAwMjAwYzM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDUyMDAzMTA0NDIwMGEyMDAyMjkwMzAwMzcwMzAwMjAwOTIwMDEyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDNkMDAxMzcwMzgwMDIyMDAwMTA3ZDM2MDI5ODAyMDI0MDAyNDAwMjQwMDI0MDIwMDUxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDEyMDAwNDFlODAwNmEyMDAwMjgwMjgwMDIyMDAwMjgwMjg0MDIyMDBhMjAwNTEwNjIyMDAwMjkwMzY4MjExNzIwMDAyOTAzODgwMjIxMTYyMDAwMTA3ZDM2MDJlODAxMjAwMDIwMDEzNjAyZTAwMTIwMDAyMDE2MzcwM2Q4MDEyMDAwMjAxNzM3MDNkMDAxMGMwMjBiMjAwMDQxZTgwMTZhMjAwMDQxOTgwMjZhMjkwMzAwMzcwMzAwMjAwMjIwMGEyOTAzMDAzNzAzMDAyMDAxMjAwOTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzgwMDIzNzAzZDAwMTBjMDEwYjIwMDA0MWYwMDE2YTIyMDEyMDA1MTA5NzAxMjAwMDQxZDAwMTZhMjAwMDQxODAwMjZhMjAwMTEwODMwMTBiMjAwMDQxODAwMjZhMjAwMDQxZDAwMTZhMTA3NjIwMDAyODAyODgwMjIyMGMyMDA3MTAzMDQ1MGQwMTIwMDAyODAyOGMwMjIxMDQyMDAwMjkwMzgwMDIyMTE2MjAwNjIxMDEwYzA1MGI0MTAwMjEwMjIwMTMxMDEyMjEwNTAzNDAyMDAyNDEwZDZhMjIwMzIwMDU0YjBkMDMyMDAwNDIwMDM3MDA4NTAyMjAwMDQyMDAzNzAzODAwMjIwMTMyMDAyMjAwMDQxODAwMjZhMjIwMjQxMGQxMDhhMDExYTIwMDA0MTAwMzYwMmQwMDEyMDAwNDFlMDAwNmEyMDAyNDEwMDQxMDQxMGJmMDEyMDAwNDFkMDAxNmEyMjA4NDEwNDIwMDAyODAyNjAyMDAwMjgwMjY0MTA1NzIwMDAyODAyZDAwMTIxMDkyMDAwNDFkODAxNmEyMjBiNDEwMDNhMDAwMDIwMDA0MjAwMzcwM2QwMDEyMDAwNDFkODAwNmEyMDAyNDEwNDQxMGQxMGJmMDEyMDA4NDEwOTIwMDAyODAyNTgyMDAwMjgwMjVjMTA1NzIwMDA0MTAwMzYwMmYwMDEyMDAwNDFkMDAwNmEyMDA4NDEwMDQxMDQxMGMwMDEyMDAwNDFmMDAxNmEyMjAyNDEwNDIwMDAyODAyNTAyMDAwMjgwMjU0MTA1NzIwMDAyODAyZjAwMTIxMTAyMDAwNDEwMDM2MDJmMDAxMjAwMDQxYzgwMDZhMjAwODQxMDQ0MTA4MTBjMDAxMjAwMjQxMDQyMDAwMjgwMjQ4MjAwMDI4MDI0YzEwNTcyMDAwMjgwMmYwMDEyMTA3MjAwMDQxMDAzYTAwZjAwMTIwMDA0MTQwNmIyMDA4NDEwODQxMDkxMGMwMDEyMDAyNDEwMTIwMDAyODAyNDAyMDAwMjgwMjQ0MTA1NzIwMDMyMTAyMjAwOTQxMTg3NDIwMDk0MTgwZmUwMzcxNDEwODc0NzIyMDA5NDEwODc2NDE4MGZlMDM3MTIwMDk0MTE4NzY3MjcyMjAwMTQ3MGQwMDBiMjAwMDJkMDBmMDAxMjAwNzQxMTg3NDIwMDc0MTgwZmUwMzcxNDEwODc0NzIyMDA3NDEwODc2NDE4MGZlMDM3MTIwMDc0MTE4NzY3MjcyMjEwODIwMGMxMDJmMjEwOTIwMDQxMDI5MjEwNzIwMTA0MTE4NzQyMDEwNDE4MGZlMDM3MTQxMDg3NDcyMjAxMDQxMDg3NjQxODBmZTAzNzEyMDEwNDExODc2NzI3MjEwMmYyMTA1NDUwNDQwNDEwMTEwMmQyMDAwNDE4MDAyNmEyMjAxMjAwNTEwMzI0MWE4ODYwODQxMDgxMDMzMjAwMDI4MDI4NDAyMTA3MDIwMDA0MWUwMDE2YTIyMDIyMDBhMjkwMzAwMzcwMzAwMjAwYjIwMDA0MTg4MDI2YTIyMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDExMDQzMjEwNDIwMDAyMDA3MzYwMjhjMDIyMDAwMjAwOTM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDQyMDAxMTA0NDIwMGEyMDAyMjkwMzAwMzcwMzAwMjAwMzIwMGIyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDNkMDAxMzcwMzgwMDIyMDAwMTA3ZDM2MDI5ODAyMDI0MDAyNDAwMjQwMDI0MDIwMDQxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDEyMDAwNDExMDZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwYTIwMDQxMDYyMjAwMDI5MDMxMDIxMTcyMDAwMjkwMzg4MDIyMTE2MjAwMDEwN2QzNjAyZTgwMTIwMDAyMDAxMzYwMmUwMDEyMDAwMjAxNjM3MDNkODAxMjAwMDIwMTczNzAzZDAwMTBjMDIwYjIwMDA0MWU4MDE2YTIwMDA0MTk4MDI2YTI5MDMwMDM3MDMwMDIwMDIyMDBhMjkwMzAwMzcwMzAwMjAwYjIwMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEwYzAxMGIyMDAwNDFmMDAxNmEyMDA0MTA5NzAxMDI3ZjIwMDAyOTAzZjAwMTUwMDQ0MDIwMDAyODAyOTAwMjIxMDMyMDAwNDExODZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwMDI4MDJmODAxMjAwMDI4MDJmYzAxMTA2ZDIwMDAyODAyMWMyMTAyMjAwMDI4MDIxODBjMDEwYjEwNDcyMTAzMjAwMDQxMjA2YTIwMDAyODAyODAwMjIwMDAyODAyODQwMjIwMDAyODAyOTAwMjIwMDA0MWYwMDE2YTEwNmMyMDAwMjgwMjI0MjEwMjIwMDAyODAyMjAwYjIxMDEyMDAwMjkwMzg4MDIyMTE2MjAwMDEwN2QzNjAyZTgwMTIwMDAyMDAzMzYwMmUwMDEyMDAwMjAxNjM3MDNkODAxMjAwMDIwMDIzNjAyZDQwMTIwMDAyMDAxMzYwMmQwMDEwYjIwMDA0MWQwMDE2YTEwNzIyMTAzMjAwODEwMmYyMTAxMjAwMDIwMDMzNjAyOGMwMjIwMDA0MjAwMzcwMzgwMDIyMDAwMjAwMTM2MDI4ODAyMjAwMDQxODAwMjZhMTA5NTAxMjEwMTBjMDQwYjIwMDgxMDJmMjEwNDQxMDExMDJkMjAwNTEwMzIyMTAzNDFhODg2MDg0MTA4MTA0ZDIxMDExMDQzMjIwNTIwMDQxMDZlMjAwNTEwNzAxMDQzMjEwNDIwMDAyMDA3MzYwMjhjMDIyMDAwMjAwOTM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDQyMDAwNDE4MDAyNmExMDQ0MjAwMDIwMDMzNjAyOTAwMjIwMDA0MjdmMzcwMzg4MDIyMDAwMjAwNTM2MDI4NDAyMjAwMDIwMDEzNjAyODAwMjIwMDAxMDdkMzYwMjk4MDIwMjdmMDI3ZTAyNDAwMjQwMDI0MDIwMDQxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDIyMDAwNDEyODZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwYTIwMDQxMDYyMjAwMDI4MDIyYzIxMDMyMDAwMjgwMjI4MjEwMTIwMDAyOTAzODgwMjBjMDIwYjIwMDAyODAyOTAwMjIxMDIyMDAwMjkwMzg4MDIyMTE2MjAwMDI4MDI4NDAyMjEwMzIwMDAyODAyODAwMjIxMDEyMDAwMjgwMjk4MDIwYzAyMGIyMDAwNDFkMDAxNmEyMDA0MTA5NzAxMDI3ZjIwMDAyOTAzZDAwMTUwMDQ0MDIwMDAyODAyOTAwMjIxMDIyMDAwNDEzMDZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwMDI4MDJkODAxMjAwMDI4MDJkYzAxMTA2ZDIwMDAyODAyMzQyMTAzMjAwMDI4MDIzMDBjMDEwYjEwNDcyMTAyMjAwMDQxMzg2YTIwMDAyODAyODAwMjIwMDAyODAyODQwMjIwMDAyODAyOTAwMjIwMDA0MWQwMDE2YTEwNmMyMDAwMjgwMjNjMjEwMzIwMDAyODAyMzgwYjIxMDEyMDAwMjkwMzg4MDIwYjIxMTYxMDdkMGIyMTA0MjAxNjQyN2Y1MTA0N2UxMDE2MDUyMDE2MGIyMDAyMjAwNDIwMDEyMDAzMTA0NTIxMDMxMDE3NDEwMDIxMDIyMDAzMTAxMjIxMDEyMDAwNDEwMDM2MDJmODAxMjAwMDIwMDMzNjAyZjAwMTIwMDAyMDAxNDEwMjc2MzYwMmY0MDEyMDAwNDFmMDAxNmExMDc1MTAyZjIxMDQxMDQzMjEwMTIwMDQxMDEyMjEwMzIwMDA0MTAwM2EwMDkwMDIyMDAwMjAwMzM2MDI4YzAyMjAwMDIwMDQzNjAyODgwMjIwMDAyMDAzMzYwMjg0MDIyMDAwNDEwMDM2MDI4MDAyMDM0MDIwMDIyMDAzNDYwNDQwMjAwMDJkMDA5MDAyNDUwZDA1NDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGMwNTA1MjAwMDQxZDAwMTZhMjIwMzIwMDA0MTgwMDI2YTEwNzcyMDAxMjAwMzEwNDQyMDAwMjgwMjgwMDIyMTAyMjAwMDI4MDI4NDAyMjEwMzBjMDEwYjAwMGIwMDBiNDFjMDg2MDg0MTE5MTA0MTAwMGIyMDBjMjAwZTEwMzAwNDQwMjAwZDIwMDQxMDhmMDEwYzA0MGI0MWQ0OGEwODQxMTMxMDQxMDAwYjIwMDA0MTA4NmExMDM2MjAwMDIwMDAyZDAwMGMzYTAwODQwMjIwMDAyMDAwMjgwMjA4MzYwMjgwMDIyMDAwNDE4MDAyNmEyMjA2NDE4MDgwMDg0MTIxMTBhMzAxMjMwMDQxNDA2YTIyMDMyNDAwMjAwMzQxMDAyMDAzNmI0MTAzNzEyMjA0NmEyMTA3MjAwNDA0NDAyMDAzMjEwMjAzNDAyMDAyNDEwMDNhMDAwMDIwMDI0MTAxNmEyMjAyMjAwNzQ5MGQwMDBiMGIyMDA3NDFjMDAwMjAwNDZiMjIwNTQxN2M3MTIyMDQ2YTIxMDIyMDA0NDEwMDRhMDQ0MDAzNDAyMDA3NDEwMDM2MDIwMDIwMDc0MTA0NmEyMjA3MjAwMjQ5MGQwMDBiMGIyMDA1NDEwMzcxMjIwNDA0NDAyMDAyMjAwNDZhMjEwNDAzNDAyMDAyNDEwMDNhMDAwMDIwMDI0MTAxNmEyMjAyMjAwNDQ5MGQwMDBiMGIyMDA2MjAwMzAyN2YyMDAxMDQ0MDIwMDFhZDIxMTY0MTNmMjEwMTAyNDAwMzQwMjAxNjUwMGQwMTIwMDE0MTNmNGQwNDQwMjAwMTIwMDM2YTIwMTYyMDE2NDIwYTgwMjIxNjQyMGE3ZTdkYTc0MTMwNzIzYTAwMDAyMDAxNDEwMTZiMjEwMTBjMDEwYjBiMTAyYzAwMGIyMDAxNDEwMTZhMGMwMTBiMjAwMzQxMzAzYTAwM2Y0MTNmMGIyMjAxNmE0MWMwMDAyMDAxNmIxMGEzMDEyMDAzNDE0MDZiMjQwMDIwMDAyODAyODAwMjIwMDAyZDAwODQwMjEwMzgxMDAwMDAwYjIwMDAyMDAxMzYwMmNjMDExMDdkMjEwMjEwN2QyMTA0MjAwMDIwMDExMDEyMzYwMmQ4MDEyMDAwNDEwMDM2MDJkNDAxMjAwMDIwMDA0MWNjMDE2YTM2MDJkMDAxMDI0MDAzNDAwMjQwMjAwMDQxODAwMjZhMjAwMDQxZDAwMTZhMTA2NzIwMDAyOTAzODAwMjUwMGQwMDIwMDAyODAyOTQwMjIxMDUyMDAyMjEwMzIwMDAyODAyOTAwMjIyMDEyMDBjMTAzMDQ1MDQ0MDIwMDQyMTAzMjAwMTIwMDgxMDMwNDUwZDAzMGIyMDAzMjAwNTEwOGYwMTBjMDEwYjBiMjAwODEwMmYyMTBjNDIwMDIxMTYyMDA2MjEwMTBjMDEwYjBiMGI0MTg3ODYwODQxMjExMDQxMDAwYjQxYTU4YTA4NDExNTEwNDEwMDBiMjAwMDQxODA4MDgwMjAzNjAyZDAwMTIwMDYyMDAwNDFkMDAxNmE0MTA0MTAwZjFhMjAwNjQxZWQ4NTA4NDEwNDEwMGYxYTBiMjAwMDQyMDAzNzAzZDAwMTIwMDYyMDAwNDFkMDAxNmEyMjAzNDEwODEwMGYxYTIwMDUyMDA2MTAzZjIwMDQyMDA2MTA0ZTEwYzcwMTEwNDMyMjAxNDE4YThkMDg0MTA4MTA0ZDEwNGUyMDAyMTA0MzEwMmYyMjAyMTAzZjIwMDIxMDNmMjAwMTIwMDIxMDI0MjAwMDIwMDQzNjAyZDAwMTIwMDAyMDA0MTAxMjM2MDI4ODAyMjAwMDQxMDAzNjAyODQwMjIwMDAyMDAzMzYwMjgwMDIwMzQwMjAwMDIwMDA0MTgwMDI2YTEwYzQwMTIwMDAyODAyMDAwNDQwMjAwMDI4MDIwNDEwMDcxYTBjMDEwYjBiMjAwMDQxYTAwMjZhMjQwMDBmMGI0MWJhOGEwODQxMWExMDQxMDAwYjBkMDAxMDIyNDEwMDEwNWExMGM3MDExMDI1MGIwZDAwMTAyMjQxMDAxMDVhMTBkMTAxMTA1YjBiMGQwMDEwMjI0MTAwMTA1YTEwZDQwMTEwNWQwYjBkMDAxMDIyNDEwMDEwNWExMGQ4MDExMDVkMGIyYTAxMDE3ZjEwMjI0MTAwMTA1YTEwY2IwMTEwYWIwMTIyMDA0MWZlZmZmZmZmMDc0NzA0NDAyMDAwMTAwNzFhMGYwYjQxZWQ4NTA4NDEwNDEwMjYwYjBkMDAxMDIyNDEwMDEwNWExMGRhMDExMDVkMGIwZDAwMTAyMjQxMDAxMDVhMTBjODAxMTA1YjBiMGQwMDEwMjI0MTAwMTA1YTEwYzkwMTEwNWIwYjBkMDAxMDIyNDEwMDEwNWExMGNjMDExMDViMGIwZDAwMTAyMjQxMDAxMDVhMTBkOTAxMTA1ZDBiMGQwMDEwMjI0MTAwMTA1YTEwZDIwMTEwNWIwYmExMDEwMTAyN2YyMzAwNDE0MDZhMjIwMDI0MDAxMDIyNDEwMTEwNWEyMDAwNDEwMDEwNGIzNjAyMTQyMDAwMjAwMDQxMTQ2YTEwZDYwMTEwYWMwMTIyMDEzNjAyMTgyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDIwMjAwMDIwMDAyODAyMDgzNjAyMWMyMDAwMjAwMTEwMTIzNjAyMmMyMDAwNDEwMDM2MDIyODIwMDAyMDAwNDExODZhMzYwMjI0MjAwMDQxMzQ2YTIxMDEwMzQwMjAwMDQxMzA2YTIwMDA0MTI0NmExMGJhMDEyMDAwMjgwMjMwMDQ0MDIwMDEyMDAwNDExYzZhMTBiYjAxMGMwMTBiMGIyMDAwMjgwMjFjMjAwMDJkMDAyMDEwMzcyMDAwNDE0MDZiMjQwMDBiYTAwMTAxMDI3ZjIzMDA0MTQwNmEyMjAwMjQwMDEwMjI0MTAxMTA1YTIwMDA0MTAwMTA0YjM2MDIxNDIwMDAyMDAwNDExNDZhMTBkNTAxMTBiMjAxMjIwMTM2MDIxODIwMDA0MTA4NmExMDM1MjAwMDIwMDAyZDAwMGMzYTAwMjAyMDAwMjAwMDI4MDIwODM2MDIxYzIwMDAyMDAxMTAxMjM2MDIyYzIwMDA0MTAwMzYwMjI4MjAwMDIwMDA0MTE4NmEzNjAyMjQwMzQwMjAwMDQxMzA2YTIwMDA0MTI0NmExMGI1MDEyMDAwMmQwMDNjNDEwMjQ3MDQ0MDIwMDA0MTMwNmEyMDAwNDExYzZhMTBiNjAxMGMwMTBiMGIyMDAwMjgwMjFjMjAwMDJkMDAyMDEwMzcyMDAwNDE0MDZiMjQwMDBiMGQwMDEwMjI0MTAwMTA1YTEwZDMwMTEwNWUwYjBkMDAxMDIyNDEwMDEwNWExMGQ3MDExMDVlMGJlMzAzMDIwNTdmMDI3ZTIzMDA0MTkwMDE2YjIyMDAyNDAwMTA0OTQxMDAxMDVhMjAwMDEwNGEyMjAxMzYwMjE0MDI0MDIwMDExMDY1NDEwMTQ2MDQ0MDIwMDExMDEyMjEwMTIwMDA0MTAwMzYwMjM0MjAwMDIwMDEzNjAyMzAyMDAwNDEwMDM2MDIyYzIwMDAyMDAwNDExNDZhMzYwMjI4MjAwMDQxM2M2YTIxMDIyMDAwNDFmNDAwNmEyMTAzMjAwMDQxZjgwMDZhMjEwMTAzNDAyMDAwNDFmMDAwNmEyMDAwNDEyODZhMTA2NzIwMDAyOTAzNzA1MDBkMDIyMDAwNDFlMDAwNmEyMDAxNDEwODZhMjkwMzAwMjIwNTM3MDMwMDIwMDAyMDAxMjkwMzAwMjIwNjM3MDM1ODIwMDAyMDAwMjgwMjM0MjIwNDQxMDE2YTM2MDIzNDIwMDM0MTA4NmEyMDA1MzcwMjAwMjAwMzIwMDYzNzAyMDAyMDAwNDE0MDZiMjAwMTI5MDIwMDM3MDMwMDIwMDA0MWM4MDA2YTIwMDA0MTgwMDE2YTI4MDIwMDM2MDIwMDIwMDAyMDAwMjkwMjcwMzcwMzM4MjAwNDQ1MDQ0MDIwMDA0MTIwNmEyMDAyNDEwODZhMjkwMjAwMzcwMzAwMjAwMDIwMDIyOTAyMDAzNzAzMTgwYzAxMGIwYjEwMmMwMDBiNDFiMzgzMDg0MTIyMTAwMzAwMGIyMDAwNDEwODZhMjIwMTIwMDA0MTIwNmEyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDMxODM3MDMwMDEwZGEwMTEwYTcwMTIxMDIyMDAxMjgwMjAwMjAwMjEwMzA0NTA0NDA0MTk4OGEwODQxMGQxMDQxMDAwYjEwZDIwMTEwNWMyMTAyMjAwMDEwNDMzNjAyMTgyMDAwMTA0MzM2MDIyODIwMDA0MWYwMDA2YTIyMDEyMDAyMTAzMjQxYTc4MzA4NDEwNTEwMzMyMDAwMjgwMjc0MjIwMjIwMDA0MTE4NmExMDdiMjAwMjIwMDA0MTI4NmExMDdhMjAwMDQxZTgwMDZhMjAwMDQxODAwMTZhMjkwMzAwMzcwMzAwMjAwMDQxZTAwMDZhMjAwMDQxZjgwMDZhMjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNzAzNzAzNTgyMDAwNDEzODZhMjIwMjIwMDA0MWQ4MDA2YTIwMDAxMDg0MDEyMDAxMjAwMjEwY2QwMTIwMDExMDc0MjAwMDQxOTAwMTZhMjQwMDBiOGMwMTAxMDI3ZjIzMDA0MTQwNmEyMjAwMjQwMDEwNDk0MTAwMTA1YTEwZDIwMTEwNWMyMTAxMjAwMDEwNDMzNjAyMDAyMDAwMTA0MzM2MDIwNDIwMDA0MTA4NmEyMDAxMTAzMjQxOTU4MzA4NDExMjEwMzMyMDAwMjgwMjBjMjIwMTIwMDAxMDdiMjAwMTIwMDA0MTA0NmExMDdhMjAwMDQxMzA2YTIwMDA0MTE4NmEyOTAzMDAzNzAzMDAyMDAwNDEyODZhMjAwMDQxMTA2YTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzA4MzcwMzIwMjAwMDEwN2QzNjAyMzgyMDAwNDEyMDZhMTA3NDIwMDA0MTQwNmIyNDAwMGJmZjAxMDIwNTdmMDE3ZTIzMDA0MTMwNmIyMjAwMjQwMDEwMjIxMDQ5NDEwMTEwNWEyMDAwMTA0ZjM2MDIxMDEwZDIwMTEwNWMyMDAwMTA0MzM2MDIxNDIwMDAxMDQzMzYwMjE4MTAzMjIxMDI0MWFjODMwODQxMDcxMDRkMjEwMzEwNDMyMjAxMjAwMDQxMTA2YTEwNzgyMDAxMjAwMDQxMTQ2YTEwN2IyMDAxMjAwMDQxMTg2YTEwN2ExMDdkMjEwNDEwMTYyMDAyMjAwNDIwMDMyMDAxMTA0NTIxMDExMDE3MjAwMTEwMTIyMTAyMjAwMDQxMDAzNjAyMjQyMDAwMjAwMTM2MDIxYzIwMDAyMDAyNDEwMjc2MzYwMjIwMjAwMDQxMWM2YTEwNzUyMTAxMjAwMDQyMDAzNzAzMjgyMDAxMTAxMjIyMDI0MTA5NDkwNDQwMDI0MDIwMDA0MTA4NmEyMDAwNDEyODZhMjAwMjEwYjAwMTIwMDE0MTAwMjAwMDI4MDIwODIyMDEyMDAwMjgwMjBjMjIwMjEwOGEwMTFhMjAwMTIwMDIxMGIxMDEyMjA1NDI4MDgwODA4MDEwNWEwZDAwMjAwNTEwMTQyMDAwNDEzMDZhMjQwMDBmMGIwYjQxOGE4NTA4NDEwYjQxOTU4NTA4NDEwZTEwNGMwMDBiOTgwMzAyMDU3ZjAxN2UyMzAwNDFlMDAwNmIyMjAwMjQwMDEwMjIxMDQ5NDFlNGRiMDgxMDEzMzYwMjAwNDFlNGRiMDgyODAyMDA0MTAwNDgwNDQwNDFlZjgzMDg0MTExMTAwMzAwMGIyMDAwNDEwMDM2MDIzODEwNDMyMTAzMjAwMDQxMzg2YTIyMDQyODAyMDAyMTAxMDM0MDQxZTRkYjA4MjgwMjAwMjAwMTRhMDQ0MDIwMDQyMDAxNDEwMTZhMjIwMjM2MDIwMDIwMDMyMDAxMTA0YjEwNGUyMDAyMjEwMTBjMDEwYjBiMjAwMzIxMDE0MWU0ZGIwODI4MDIwMDIwMDAyODAyMzg0YTA0NDA0MTgwODQwODQxMTIxMDAzMDAwYjIwMDAyMDAxMzYwMjFjMjAwNDEwZDIwMTEwNWMxMDMyNDFmOTgyMDg0MTBkMTAzMzIwMDAyMDAxMTAxMjM2MDI1YzIwMDA0MTAwMzYwMjU4MjAwMDIwMDA0MTFjNmEzNjAyNTQyMDAwMjgwMjNjMjEwMTAzNDAyMDAwNDExMDZhMjAwMDQxZDQwMDZhMTBjNDAxMjAwMDI4MDIxMDA0NDAyMDAxMjAwMDI4MDIxNDEwNmUwYzAxMGIwYjIwMDA0MTI4NmEyMDAwNDE0MDZiMjkwMzAwMzcwMzAwMjAwMDQxMzA2YTIwMDA0MWM4MDA2YTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzM4MzcwMzIwMjAwMDQxMzg2YTIwMDA0MTIwNmExMDdlMDI0MDIwMDAyODAyNDQyMjAxMTBjZTAxNDUwNDQwMjAwMDI4MDI0MDIxMDIwYzAxMGIxMDQ2MjAwMDI4MDI0MDIyMDI0MjAwMjAwMTEwNDIwYjIwMDAyOTAzMzgyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDNjMjAwMDIwMDAyODAyMDgzNjAyMzgyMDAyMjAwMDQxMzg2YTIyMDIxMDNlMjAwMjEwYzYwMTIwMDEyMDAyMTAzYzIwMDAyODAyMzgyMDAwMmQwMDNjMTAzNzIwMDA0MWUwMDA2YTI0MDAwYjMxMDEwMTdlMTAyMjEwNDk0MTAxMTA1YTQxMDAxMDExMjIwMDQyODE4MDkwYmJiYWQ2YWRmMDBkNWEwNDQwNDFlZjhiMDg0MTIwMTA0MTAwMGIxMGQ3MDEyMDAwMTBhYTAxMGIzMTAxMDE3ZTEwMjIxMDQ5NDEwMTEwNWE0MTAwMTAxMTIyMDA0MjgxODA5MGJiYmFkNmFkZjAwZDVhMDQ0MDQxZDI4YjA4NDExZDEwNDEwMDBiMTBkMzAxMjAwMDEwYWEwMTBiZTMwMTAxMDM3ZjIzMDA0MTMwNmIyMjAwMjQwMDEwMjIxMDQ5NDEwMjEwNWE0MTAwMTA1ODIxMDEyMDAwNDEwMTEwNTEyMjAyMzYwMjBjMjAwMDIwMDEzNjAyMDgyMDAwMjAwMTEwMTIzNjAyMTgyMDAwNDEwMDM2MDIxNDIwMDAyMDAwNDEwODZhMzYwMjEwMDM0MDIwMDA0MTFjNmEyMDAwNDExMDZhMTBjMzAxMjAwMDI4MDIxYzA0NDAyMDAwMjAwMDI4MDIyNDIyMDEzNjAyMmMyMDAwMjAwMDI4MDIyMDM2MDIyODIwMDA0MTI4NmExMGQ2MDEyMDAxMTBiOTAxMGMwMTA1MjAwMDIwMDIxMDEyMzYwMjE4MjAwMDQxMDAzNjAyMTQyMDAwMjAwMDQxMGM2YTM2MDIxMDAzNDAyMDAwNDExYzZhMjAwMDQxMTA2YTEwYzMwMTIwMDAyODAyMWMwNDQwMjAwMDIwMDAyODAyMjQyMjAxMzYwMjJjMjAwMDIwMDAyODAyMjAzNjAyMjgyMDAwNDEyODZhMTBkNTAxMjAwMTEwYjQwMTBjMDEwYjBiMjAwMDQxMzA2YTI0MDAwYjBiMGJhYTA3MDIwYjdmMDE3ZTIzMDA0MTMwNmIyMjAwMjQwMDEwMjI0MTAwMTA1YTEwYzkwMTEwNWMyMjA5MTAyZjEwMzIyMTAxNDFkMjgxMDg0MTE0MTA0ZDIxMDIxMDQzMjEwNjEwN2QyMTA3MTAxNjIwMDEyMDA3MjAwMjIwMDYxMDQ1MjEwMTEwMTcyMDAxMTAxMjIxMDIyMDAwNDEwMDM2MDIxMDIwMDAyMDAxMzYwMjA4MjAwMDIwMDI0MTAyNzYzNjAyMGMyMDAwNDEwODZhMTA3NTIyMDIxMDEyMjEwMTIwMDA0MTI4NmE0MTAwM2EwMDAwMjAwMDQxMjQ2YTIwMDEzNjAyMDAyMDAwMjAwMjM2MDIyMDIwMDAyMDAxMzYwMjFjMjAwMDQxMDAzNjAyMTgwMjQwMDI3ZjAyNDAwMjQwMjAwMTQ1MGQwMDAyNDAwMjQwMDI0MDIwMDA0MTE4NmE0MThhODUwODQxMGIxMDU0NDFmZjAxNzEwZTAyMDIwMTAwMGI0MThhODUwODQxMGI0MWVkODYwODQxMGQxMDRjMDAwYjQxMDEyMTAzMjAwMDQxMTg2YTQxOGE4NTA4NDEwYjEwNTMyMTAxMGIyMDAwMjgwMjFjMjAwMDI4MDIxODQ3MGQwMzIwMDAyZDAwMjgwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAzNDUwZDAwMjAwMDQxMTg2YTIyMDQyMDAxMTAyZjEwMzI0MWU0ODIwODQxMTUxMDMzMjAwMDIwMDQxMDdjMjIwMzM2MDIwMDIwMDQyMDAxMTAyZjEwMzI0MWIyODIwODQxMGIxMDMzMjAwMDQxMTg2YTEwN2M0MmJlOGE4NjBmMTAyZTEwOGUwMTIxMDYyMDA0MjAwMTEwMmYxMDMyNDFjOTgyMDg0MTBkMTAzMzIwMDA0MTE4NmExMDdjMjAwMzEwOTIwMTQyYmU4YTg2MGYxMDJlMTA4ZTAxNDEwYTEwMmQ0MTEyMTA5NDAxMTA4ZDAxMjEwNzIwMDQyMDAxMTAyZjEwMzI0MWJkODIwODQxMGMxMDMzMjAwMDQxMTg2YTEwN2M0MTBhMTAyZDQxMTIxMDk0MDEyMDAzMTA5MDAxMTA4ZTAxNDJiZThhODYwZjEwMmUxMDhlMDE0MTBhMTAyZDQxMTIxMDk0MDExMDhkMDEyMTBhMjAwNDIwMDkxMDJmMjIwMjEwMmYxMDMyNDE4NzgxMDg0MTBmMTAzMzIwMDAyMDAwNDExODZhMTA3YzIyMDUzNjAyMTQyMDA0MjAwMjEwMmYxMDMyNDFhYjgyMDg0MTA3MTAzMzIwMDA0MTE4NmExMDdjMjEwODIwMDQyMDAyMTAzMjQxYTY4MTA4NDExMDEwMzMyMDAwNDExODZhMTA3YzIxMDIyMDAwMjAwODIwMDUxMDkxMDEyMDAyMTA5MDAxMzYwMjA4MjAwNDIwMDExMDMyNDFkNjgyMDg0MTBlMTAzMzIwMDAyODAyMWMyMjAxMjAwMDQxMTQ2YTEwNzgyMDAxMjAwMDQxMDg2YTEwNzgyMDAwMjgwMjI4MjEwMjIwMDAyODAyMTgyMTA1MjAwMDI5MDMyMDEwN2QyMTA4MTA3MTIwMDIyMDA4MjAwNTIwMDExMDQ1MjEwMTEwMTcyMDAwMjAwMTEwNzMzNjAyMDQ0MjgwODA5MGJiYmFkNmFkZjAwZDEwMmUyMTAyMjAwMDEwN2QzNjAyMTgyMDAwNDEwNDZhMjAwNDEwY2YwMTIxMDUxMDdkMjIwMTIwMDUwZDAyMWEyMDAxMjAwMDI4MDIwNDEwODkwMTQxMDE2YTQxZmYwMTcxNDEwMTRkMDQ0MDIwMDA0MTA0NmEyMDAwMTBjZjAxMGQwMjIwMDAyODAyMDAyMTAzMGIyMDAwMjgwMjA0MjAwMzEwOTMwMTIwMGExMDhlMDEyMTAxNDEwYTEwMmQ0MTEyMTA5NDAxMjAwMDI4MDIwMDEwOTAwMTIxMDMyMDA2MjAwMjEwOTIwMTIwMDcyMDAyMTA5MjAxMTA4YzAxMjAwMTIwMDIxMDhlMDEyMDAzMTA4ZDAxMTA4YzAxMGMwMjBiNDFhMDhiMDg0MTMyMTA0MTAwMGIyMDAwMjgwMjA0MjAwNzEwOTIwMTIxMDEyMDA2MjAwMjEwOTIwMTIwMDEyMDAyMTA4ZTAxMjAwMDI4MDIwMDEwOGQwMTEwOGMwMTBiMjEwMTIwMDA0MTE4NmEyMjAzMjAwOTEwMzI0MTk2ODEwODQxMTAxMDMzMjAwMzEwN2MyMTAyNDEwYTEwMmQ0MTEyMTA5NDAxMjEwMzIwMDAyODAyMDQyMDAxMTA5MjAxMjAwMzIwMDIxMDkzMDExMDhlMDEyMDAzNDEwMzEwOTQwMTEwOGQwMTEwMjUyMDAwNDEzMDZhMjQwMDBmMGI0MThhODUwODQxMGI0MTk1ODUwODQxMGUxMDRjMDAwYjAzMDAwMTBiM2MwMTAxN2YyMzAwNDExMDZiMjIwNTI0MDAyMDA1NDEwODZhMjAwMTIwMDQyMDAyMjAwMzEwOWQwMTIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTEwNmEyNDAwMGIzYjAxMDE3ZjIzMDA0MTEwNmIyMjA1MjQwMDIwMDU0MTA4NmEyMDAyMjAwMzIwMDEyMDA0MTAyYjIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTEwNmEyNDAwMGIwYmRhMGQwMjAwNDE4MDgwMDgwYmM2MGQ0ZTZmMjA3Mzc3NjE3MDIwNmY3MDY1NzI2MTc0Njk2ZjZlMjA2NjZmNzU2ZTY0MjA2MTc0MjA2OTZlNjQ2NTc4MjA3NTZlNzc3MjYxNzA0NTY3NmM2NDY3NjU3NDU3NzI2MTcwNzA2NTY0NDU2NzZjNjQ1NDZmNmI2NTZlNDk2NDc3NzI2MTcwNDU2NzZjNjQ3MjY1NjM2OTcwNjk2NTZlNzQyMDYxNjQ2NDcyNjU3MzczMjA2ZTZmNzQyMDczNjU3NDY1Nzg2OTc0NGQ2MTcyNmI2NTc0NjM2YzYxNjk2ZDUyNjU3NzYxNzI2NDczNjc2NTc0NDE2MzYzNmY3NTZlNzQ1NDZmNmI2NTZlNzM2NzY1NzQ1NDZmNzQ2MTZjNDI2ZjcyNzI2Zjc3NzM2NzY1NzQ1MjY1NzM2NTcyNzY2NTQ2NjE2Mzc0NmY3MjY3NjU3NDU0NmY3NDYxNmM1MjY1NzM2NTcyNzY2NTczNjc2NTc0NTQ2ZjZiNjU2ZTQ5NjQ2ZDY5NmU3NDQxNmU2NDQ1NmU3NDY1NzI0ZDYxNzI2YjY1NzQ2NzY1NzQ0OTZlNzQ2NTcyNjU3Mzc0NTI2MTc0NjU0ZDZmNjQ2NTZjNjc2NTc0NTU2ZTY0NjU3MjZjNzk2OTZlNjc0OTY0NzQ2ZjZiNjU2ZTczNTQ2ZjU1NmU2NDY1NzI2Yzc5Njk2ZTY3NDE2ZDZmNzU2ZTc0NzU2ZTY0NjU3MjZjNzk2OTZlNjc0MTZkNmY3NTZlNzQ1NDZmNTQ2ZjZiNjU2ZTczNzI2NTY0NjU2NTZkNjc2NTc0NDM2MTczNjg2NzY1NzQ0MjYxNzM2NTUyNjE3NDY1Njc2NTc0NGM2MTczNzQ1MzZjNmY3MDY1Njc2NTc0NDY2OTcyNzM3NDUzNmM2ZjcwNjU2NzY1NzQ1NTc0Njk2YzY5N2E2MTc0Njk2ZjZlNjc2NTc0NGY3MDc0Njk2ZDYxNmM1NTc0Njk2YzY5N2E2MTc0Njk2ZjZlNjM2YzYxNjk2ZDRkNzU2Yzc0Njk3MDZjNjU2NzY1NzQ1Mzc0NjE2YjY1NTQ2ZjZiNjU2ZTQ5NjQ3MjY1NjI2MTZjNjE2ZTYzNjU1MDZmNzI3NDY2NmY2YzY5NmY3Mzc0NjE2YjY1NzU2ZTczNzQ2MTZiNjU2OTZlNjM2ZjcyNzI2NTYzNzQyMDZlNzU2ZDYyNjU3MjIwNmY2NjIwNDU1MzQ0NTQyMDc0NzI2MTZlNzM2NjY1NzI3MzYxNzI2Nzc1NmQ2NTZlNzQyMDY0NjU2MzZmNjQ2NTIwNjU3MjcyNmY3MjIwMjgyOTNhMjA3NDZmNmYyMDY2NjU3NzIwNjE3MjY3NzU2ZDY1NmU3NDczNzQ2ZjZmMjA2ZDYxNmU3OTIwNjE3MjY3NzU2ZDY1NmU3NDczNzc3MjZmNmU2NzIwNmU3NTZkNjI2NTcyMjA2ZjY2MjA2MTcyNjc3NTZkNjU2ZTc0NzM2MzYxNmU2ZTZmNzQyMDczNzU2Mjc0NzI2MTYzNzQyMDYyNjU2MzYxNzU3MzY1MjA3MjY1NzM3NTZjNzQyMDc3NmY3NTZjNjQyMDYyNjUyMDZlNjU2NzYxNzQ2OTc2NjU0ZDc1NmM3NDY5NDU1MzQ0NTQ0ZTQ2NTQ1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ0ZTQ2NTQ1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ1NDcyNjE2ZTczNjY2NTcyNzM3OTZlNjMyMDcyNjU3Mzc1NmM3NDY5NmU3MDc1NzQyMDc0NmY2ZjIwNmM2ZjZlNjc2OTZlNzA3NTc0MjA3NDZmNmYyMDczNjg2ZjcyNzQ2MzYxNzM3NDIwNzQ2ZjIwNjkzNjM0MjA2NTcyNzI2ZjcyNGQ2MTZlNjE2NzY1NjQ1NjY1NjMyMDY5NmU2NDY1NzgyMDZmNzU3NDIwNmY2NjIwNzI2MTZlNjc2NTQ1NTM0NDU0MjA2NTc4NzA2NTYzNzQ2NTY0NDU0NzRjNDQ3Mzc0NmY3MjYxNjc2NTIwNjQ2NTYzNmY2NDY1MjA2NTcyNzI2ZjcyM2EyMDc1NmU2YjZlNmY3NzZlMjA3MjY1NjM2NTY5NzY2NTY0MjA3NDZmNmI2NTZlMjA2MTY2NzQ2NTcyMjA3Mzc3NjE3MDY1Nzg2MzY4NjE2ZTY3NjU2MjYxNjQyMDYxNzI3MjYxNzkyMDZjNjU2ZTY3NzQ2ODc3NzI2ZjZlNjcyMDcyNjU3NDc1NzI2ZTY1NjQyMDczNzc2MTcwMjA3NDZmNmI2NTZlNzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NDY5NmU3NjYxNmM2OTY0MjA3NjYxNmM3NTY1Nzc3MjYxNzA3MDY1NjQ1ZjY1Njc2YzY0NWY2MzZmNmU3NDcyNjE2Mzc0NWY2MTY0NjQ3MjY1NzM3MzYzNmY2ZDcwNmY3NTZlNjQ1ZjYxNzM2ODczNzc2MTcwNWY3Mzc3NjE3MDczNjM2ZjZkNzA2Zjc1NmU2NDVmNzg2NTc4NjM2ODYxNmU2NzY1NWY3Mzc3NjE3MDczNzA2NTcyNjY2ZjcyNmQ2MTZlNjM2NTVmNjY2NTY1NzM1ZjcwNjU3MjYzNjU2ZTc0NjM2ZjZkNzA2Zjc1NmU2NDVmNjY2NTY1NzM1ZjcwNjU3MjYzNjU2ZTc0NjI2ZjZmNzM3NDY1NzI1ZjYxNjQ2NDcyNjU3MzczNmQ2ZjZlNjU3OTVmNmQ2MTcyNmI2NTc0NWY2MTY0NjQ3MjY1NzM3MzYzNmY2ZTc0NzI2ZjZjNmM2NTcyNWY2MTY0NjQ3MjY1NzM3MzYxNzM3MzY1NzQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNzY2MTc1NmM3NDVmNjE2NDY0NzI2NTczNzM3MDYxNzk2ZDY1NmU3NDIwNzM2ODZmNzU2YzY0MjA2MjY1MjA2MTZlMjA0NTUzNDQ1NDIwNzQ2ZjZiNjU2ZTU0Njg2NTIwNjE3MzczNjU3NDIwNzQ2ZjZiNjU2ZTIwNjk2NDY1NmU3NDY5NjY2OTY1NzIyMDYxNmU2NDIwNzQ2ODY1MjA2ZDZmNmU2NTc5MjA2ZDYxNzI2YjY1NzQyMDc1NmU2NDY1NzI2Yzc5Njk2ZTY3MjA2OTY0NjU2ZTc0Njk2NjY5NjU3MjIwNjQ2ZjZlMjc3NDIwNmQ2MTc0NjM2ODU3Njg2NTZlMjA3NDYxNzI2NzY1NzQ2OTZlNjcyMDYxNmUyMDQ1NDc0YzQ0MjA2ZDYxNzI2YjY1NzQyMDc0Njg2NTIwNjE3MzczNjU3NDIwNzQ2ZjZiNjU2ZTIwNjk2NDY1NmU3NDY5NjY2OTY1NzIyMDczNjg2Zjc1NmM2NDIwNjI2NTIwNTc0NTQ3NGM0NDQzNjE2YzZjNjU3MjIwNzM2ODZmNzU2YzY0MjA2MjY1MjA3NjYxNzU2Yzc0Nzc3MjZmNmU2NzIwNzA2MTc5NmQ2NTZlNzQ2ZTZmMjA3MjY1Nzc2MTcyNjQyMDc0NmYyMDYzNmY2ZDcwNmY3NTZlNjQ2ZTZmMjA2YzY1NjY3NDIwNjE2ZDZmNzU2ZTc0MjA3NDZmMjA2MzZmNmQ3MDZmNzU2ZTY0Nzc3MjZmNmU2NzIwNzM3NzYxNzA3MDY1NjQyMDc0NmY2YjY1NmU2ZTZmMjA2NTc4Njk3NDIwNmQ2MTcyNmI2NTc0MjA3MDYxNzk2ZDY1NmU3NDIwNzI2NTYzNjU2OTc2NjU2NDZlNmYyMDcyNjU2NDY1NjU2ZDIwNzA2MTc5NmQ2NTZlNzQyMDcyNjU2MzY1Njk3NjY1NjQ0ZTZmMjA2OTZlNzQ2NTcyNjU3Mzc0MjA3MjYxNzQ2NTIwNmQ2ZjY0NjU2YzIwNzA3MjY1NzM2NTZlNzQyMDZmNmUyMDc0Njg2NTIwNmQ2ZjZlNjU3OTIwNmQ2MTcyNmI2NTc0NmU2NTc3MjA2MzZmNmQ3MDZmNzU2ZTY0MjA2NjY1NjU3MzIwNjU3ODYzNjU2NTY0MjAzMTMwMzAyNTZlNjU3NzIwNzA2NTcyNjY2ZjcyNmQ2MTZlNjM2NTIwNjY2NTY1NzMyMDY1Nzg2MzY1NjU2NDIwMzEzMDMwMjU2ZDZmNmU2NTc5NWY2ZDYxNzI2YjY1NzQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNzc3MjYxNzA3MDY1NjQ1ZjY1Njc2YzY0NWY3NDZmNmI2NTZlNWY2OTY0NjU2ZTc0Njk2NjY5NjU3MjYyNmY2ZjczNzQ2NTcyNWY3Mzc0NjE2YjY1NjQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNmQ2ZjZlNjU3OTVmNmQ2MTcyNmI2NTc0NWY3NTZlNjQ2NTcyNmM3OTY5NmU2NzVmNjk2NDY1NmU3NDY5NjY2OTY1NzI2MzZmNmQ3MDZmNzU2ZTY0NDU2ZTY0NzA2ZjY5NmU3NDIwNjM2MTZlMjA2ZjZlNmM3OTIwNjI2NTIwNjM2MTZjNmM2NTY0MjA2Mjc5MjA2Zjc3NmU2NTcyMDAwMDcwNjE2ZTY5NjMyMDZmNjM2Mzc1NzI3MjY1NjQwMDQxYzg4ZDA4MGIwNDljZmZmZmZmQDA1MDBAMDEwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDU3NDU0NzRjNDQyZDYxMzIzODYzMzUzOUAwMDAwMDAwMDAwMDAwMDAwMDUwMGEzYjY2NjkwMmQ1ZjRiYmYwZmY5Mzc0OGZiOTE1YWViNDMxMjRjYmY2NTA5QDAwMDAwMDAwMDAwMDAwMDAwNTAwMzJkZTRmNDBmMTdhMmY0MWM0ZTQwYzIxZjU5NmUzNmE4NDY5OTRlMzY1MDlAMDAwMDAwMDAwMDAwMDAwMDA1MDBmODgzNjY4NmY3YzZjMGYxM2Q3Mjc1MTUxYjc4ZjU5ZjhmMmY3MjlhNjUwOUBAQEBAMDAwMDAwMDAwMDAwMDAwMDA1MDAwYjFlNWIyNDQzMjUwOTU4NDlmNGUzNzEzNDY2MWQ1YmZkY2Q5MjVlN2NlYg==", + "signature": "edf0ec99b6f60414fa5e36d40cfb1d0075d01fd7c4ad7ba59bbe62b8b48eb892beb0c18bba203ff32b83827c3953847b190cdc89a4806f4615565dc2b3b5940f", + "sourceShard": 1, + "destinationShard": 1, + "blockNonce": 2127577, + "blockHash": "e3aea17b5345b45f61b233834d3b4ba0ac6f2b7d53eb3f1b1cf2bf0534ba567f", + "notarizedAtSourceInMetaNonce": 2129029, + "NotarizedAtSourceInMetaHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", + "notarizedAtDestinationInMetaNonce": 2129029, + "notarizedAtDestinationInMetaHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", + "miniblockType": "TxBlock", + "miniblockHash": "cc7e81e68269c2c633daf997fd2d52fc82d8ba3bb699d7e75250008bd9b7aa29", + "hyperblockNonce": 2129029, + "hyperblockHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", + "timestamp": 1707144290, + "status": "success", + "operation": "scDeploy", + "initiallyPaidFee": "82333950000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + let opt_address = tx_response.new_deployed_address.map(|e| { + multiversx_sdk::data::address::Address::from_bytes(*e.as_array()) + .to_bech32_string() + .unwrap() + }); + + let expected = + Some("erd1qqqqqqqqqqqqqpgqwpdf84ggxzqzmr2zmw959q4nlf9nz562q33sak25ze".to_string()); + + assert_eq!(opt_address, expected) +} + +#[test] +fn test_deployed_address_should_be_none_if_not_a_sc_deployment_tx() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "BuiltInFunctionCall", + "processingTypeOnDestination": "SCInvoking", + "hash": "238ad6dbe75dab1d53caeb9cabd584aabc6fc113c849a983afef5a5e439ce9e5", + "nonce": 13, + "round": 2192628, + "epoch": 888, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqydwpdrplefjlwp3sp9xmn3vevdxdelfkwmfsw6e5xw", + "sender": "erd179xw6t04ug48m74jzyw9zq028hv66jhqayelzpzvgds0ptnzmckq2jf07f", + "gasPrice": 1000000000, + "gasLimit": 20000000, + "data": "RVNEVFRyYW5zZmVyQDRmNTU1MjRmMmQ2NDM4MzEzNzMxNjZAMDI0NmQyZDBiNmI1ZjBANjI3NTc5QDFiYzE2ZDY3NGVjODAwMDA=", + "signature": "ce984b4d785ccc7aca4b1cdea57ddcd568a502209f81e6b5bc678e1dd52b78d764fe46ea3ff77b926eb9f70eb52ae8f3f2afa2e9d0efa82655e361641458b900", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 2129490, + "blockHash": "0ab10909b27565c5b7b59e8e1ee4a68d7046f49225fcde4c12d4b1ea3f512b8a", + "notarizedAtSourceInMetaNonce": 2130938, + "NotarizedAtSourceInMetaHash": "0c545160fd37f09f0196505b9cd2e730596bcd99438978a5bb415b9e1be1849d", + "notarizedAtDestinationInMetaNonce": 2130942, + "notarizedAtDestinationInMetaHash": "1ddd6b7aeeff824b5d11f2936a6284e470fc5abe41e34a8df229b719dc1a537d", + "miniblockType": "TxBlock", + "miniblockHash": "dc8ae41e1ae321c0fccbeb807194d11ff6e0f4ed71163764d850f1daaa60bd22", + "hyperblockNonce": 2130942, + "hyperblockHash": "1ddd6b7aeeff824b5d11f2936a6284e470fc5abe41e34a8df229b719dc1a537d", + "timestamp": 1707155768, + "status": "success", + "tokens": [ + "OURO-d8171f" + ], + "esdtValues": [ + "640821212132848" + ], + "operation": "ESDTTransfer", + "function": "buy", + "initiallyPaidFee": "359390000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + let opt_address = tx_response.new_deployed_address; + + let expected: Option
= None; + + assert_eq!(opt_address, expected) +} + +#[test] +fn test_with_tx_that_has_sc_result() { + // transaction data from the devnet, an artificial "10" result has been appended on the original result + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "BuiltInFunctionCall", + "processingTypeOnDestination": "SCInvoking", + "hash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "nonce": 30, + "round": 7639115, + "epoch": 6333, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "sender": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "gasPrice": 1000000000, + "gasLimit": 25500000, + "gasUsed": 15297149, + "data": "RVNEVFRyYW5zZmVyQDQ4NTQ0ZDJkNjY2NTMxNjYzNjM5QDBkZTBiNmIzYTc2NDAwMDBANzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NEA1NzQ1NDc0YzQ0MmQ2NDM3NjMzNjYyNjJAMDM3Yzc3OGZjY2U5YzU1Yg==", + "signature": "e912fae4b7a9e51ddf316a5e82a0f457d453a62e3c17477f5d6175e1b33c5e92ddb187d65f54cf3131a0603321290279a0456c20778039f2ab09b54e33c60f0d", + "sourceShard": 2, + "destinationShard": 1, + "blockNonce": 7585351, + "blockHash": "e456f38f11fec78ed26d5fda068e912739dceedb2e5ce559bf17614b8386c039", + "notarizedAtSourceInMetaNonce": 7601495, + "NotarizedAtSourceInMetaHash": "e28c6011d4b3f73f3945cae70ff251e675dfea331a70077c5ab3310e3101af17", + "notarizedAtDestinationInMetaNonce": 7601499, + "notarizedAtDestinationInMetaHash": "333d4266614e981cc1c5654f85ef496038a8cddac46dfc0ad0b7c44c37ab489d", + "miniblockType": "TxBlock", + "miniblockHash": "13e041f32fde79ebf1abdcfe692e99516f9ec6778dcb917251b440daa7f1210a", + "hyperblockNonce": 7601499, + "hyperblockHash": "333d4266614e981cc1c5654f85ef496038a8cddac46dfc0ad0b7c44c37ab489d", + "timestamp": 1694386290, + "smartContractResults": [ + { + "hash": "a23faa3c80bae0b968f007ff0fad3afdec05b4e71d749c3d583dec10c6eb05a2", + "nonce": 0, + "value": 0, + "receiver": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "data": "ESDTTransfer@5745474c442d643763366262@03856446ff9a304b", + "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtZDdjNmJi", + "", + "A4VkRv+aMEs=", + "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=" + ], + "data": null + }, + { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=" + ], + "data": "QDZmNmI=" + }, + { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "identifier": "completedTxEvent", + "topics": [ + "1AWL08E9sLFIMsfFj+Fj2y9Xn/ZUQ4BYa4on2ItKUHA=" + ], + "data": null + } + ] + }, + "tokens": [ + "WEGLD-d7c6bb" + ], + "esdtValues": [ + "253719210115084363" + ], + "operation": "ESDTTransfer" + }, + { + "hash": "b7b4d15917fd215399d8e772c3c4e732008baaedc2b8172f71c91708ba7523f0", + "nonce": 31, + "value": 102028510000000, + "receiver": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "data": "@6f6b@0000000c5745474c442d64376336626200000000000000000000000803856446ff9a304b@10", + "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "events": [ + { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "identifier": "completedTxEvent", + "topics": [ + "1AWL08E9sLFIMsfFj+Fj2y9Xn/ZUQ4BYa4on2ItKUHA=" + ], + "data": null + } + ] + }, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "05a766ca05d2053d1c0fbeb1797116474a06c86402a3bfd6c132c9a24cfa1bb0", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "data": "swapTokensFixedInput@5745474c442d643763366262@037c778fcce9c55b", + "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "gasLimit": 25050500, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "function": "swapTokensFixedInput" + }, + { + "hash": "4e639c80822d5d7780c8326d683fa9cd6d59649d14122dfabc5a96dda36da527", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", + "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "data": "ESDTTransfer@5745474c442d643763366262@e7730d1ef1b0@737761704e6f466565416e64466f7277617264@4d45582d646332383963@0000000000000000000000000000000000000000000000000000000000000000", + "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "tokens": [ + "WEGLD-d7c6bb" + ], + "esdtValues": [ + "254481327387056" + ], + "operation": "ESDTTransfer", + "function": "swapNoFeeAndForward" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "events": [ + { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "identifier": "ESDTTransfer", + "topics": [ + "SFRNLWZlMWY2OQ==", + "", + "DeC2s6dkAAA=", + "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtZDdjNmJi", + "", + "53MNHvGw", + "AAAAAAAAAAAFAOcoOHa5zr9eiFpjeVvIJxVDpaz7fOs=" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", + "identifier": "ESDTLocalBurn", + "topics": [ + "TUVYLWRjMjg5Yw==", + "", + "AuMDPq1jy03x" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", + "identifier": "swapNoFeeAndForward", + "topics": [ + "c3dhcF9ub19mZWVfYW5kX2ZvcndhcmQ=", + "TUVYLWRjMjg5Yw==", + "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=", + "GL0=" + ], + "data": "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOsAAAAMV0VHTEQtZDdjNmJiAAAABudzDR7xsAAAAApNRVgtZGMyODljAAAACQLjAz6tY8tN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzvkcAAAAAAAAYvQAAAABk/khy" + }, + { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtZDdjNmJi", + "", + "A4VkRv+aMEs=", + "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "identifier": "swapTokensFixedInput", + "topics": [ + "c3dhcA==", + "SFRNLWZlMWY2OQ==", + "V0VHTEQtZDdjNmJi", + "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=", + "GL0=" + ], + "data": "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOYAAAAKSFRNLWZlMWY2OQAAAAgN4Lazp2QAAAAAAAxXRUdMRC1kN2M2YmIAAAAIA4VkRv+aMEsAAAAHA41+pMaAAAAAAAoofxtJRPkr8X9kAAAACgpOPCsHUu261HUAAAAAAHO+RwAAAAAAABi9AAAAAGT+SHI=" + } + ] + }, + "status": "success", + "tokens": [ + "HTM-fe1f69" + ], + "esdtValues": [ + "1000000000000000000" + ], + "operation": "ESDTTransfer", + "function": "swapTokensFixedInput", + "initiallyPaidFee": "502005000000000", + "fee": "399976490000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![ + hex::decode("0000000c5745474c442d64376336626200000000000000000000000803856446ff9a304b") + .unwrap(), + hex::decode("10").unwrap(), + ]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_tx_that_has_no_sc_result() { + // transaction data from the devnet + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "6afac3ec13c89cc56154d06efdb457a24f58361699eee00a48202a8f8adc8c8a", + "nonce": 17, + "round": 7548071, + "epoch": 6257, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "cmV0dXJuVHdvVTY0", + "signature": "f3a3ca96a78c90c9cf1b08541e1777010f0176a5e1e525e631155b2784932cbfd74c9168d03ba201fd5434d1a1b4789895ddade9883eca2ee9e0bce18468fb00", + "sourceShard": 0, + "destinationShard": 0, + "blockNonce": 7502091, + "blockHash": "5ec66c651cb1514cba200e7e80a4491880f0db678ce7631c397872e3842f0aa2", + "notarizedAtSourceInMetaNonce": 7510505, + "NotarizedAtSourceInMetaHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", + "notarizedAtDestinationInMetaNonce": 7510505, + "notarizedAtDestinationInMetaHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", + "miniblockType": "TxBlock", + "miniblockHash": "fb150e515449c9b658879ed06f256b429239cbe78ec2c2821deb4b283ff21554", + "hyperblockNonce": 7510505, + "hyperblockHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", + "timestamp": 1693840026, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk5OTMyMDAwLCBnYXMgdXNlZCA9IDE4NDE2NjU=" + ], + "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" + }, + { + "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "identifier": "completedTxEvent", + "topics": [ + "avrD7BPInMVhVNBu/bRXok9YNhaZ7uAKSCAqj4rcjIo=" + ], + "data": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "returnTwoU64", + "initiallyPaidFee": "6067320000000000", + "fee": "6067320000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![ + hex::decode("0a").unwrap(), + hex::decode("0218711a00").unwrap(), + ]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_multi_contract_same_shard_tx_that_has_no_sc_result() { + // transaction data from the devnet + // context : user -> A --call--> B, B returns a MultiValue2, A returns the B's returned value + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "e914857f1bfd003ba411bae372266703e5f706fa412c378feb37faa5e18c3d73", + "nonce": 49, + "round": 7646960, + "epoch": 6339, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "Y2FsbEFub3RoZXJDb250cmFjdFJldHVyblR3b1U2NEAwMDAwMDAwMDAwMDAwMDAwMDUwMEFDRkY2QjdBNEVCODEwMUE4REU3RkY3RjVEMkMwQkYzRTRENjNGNDdBNzND", + "signature": "53cc6496647287d735bd7950f4ec79d7b51f884defda1d6d840d722b7d0d869900ccecc01602da7a7c717955e8d4ed0711b92acd980d64ed6eebd6eaed0c4608", + "sourceShard": 0, + "destinationShard": 0, + "blockNonce": 7600794, + "blockHash": "77eb0904e56d6dd596c0d72821cf33b326fde383e72903ca4df5c2f200b0ea75", + "notarizedAtSourceInMetaNonce": 7609344, + "NotarizedAtSourceInMetaHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", + "notarizedAtDestinationInMetaNonce": 7609344, + "notarizedAtDestinationInMetaHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", + "miniblockType": "TxBlock", + "miniblockHash": "03219ac7427f7511687f0768c722c759c1b1428b2664b44a0cbe2072154851ee", + "hyperblockNonce": 7609344, + "hyperblockHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", + "timestamp": 1694433360, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk5ODA2MDAwLCBnYXMgdXNlZCA9IDM4NDcyNDA=" + ], + "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" + }, + { + "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", + "identifier": "completedTxEvent", + "topics": [ + "6RSFfxv9ADukEbrjciZnA+X3BvpBLDeP6zf6peGMPXM=" + ], + "data": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "callAnotherContractReturnTwoU64", + "initiallyPaidFee": "6192060000000000", + "fee": "6192060000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![ + hex::decode("0a").unwrap(), + hex::decode("0218711a00").unwrap(), + ]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_multi_contract_cross_shard_tx_that_has_no_callback() { + // transaction data from the devnet + // context : user -> A --async call--> B, no callback + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", + "nonce": 51, + "round": 7647523, + "epoch": 6340, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0Tm9DYWxsYmFja0AwMDAwMDAwMDAwMDAwMDAwMDUwMEFDRkY2QjdBNEVCODEwMUE4REU3RkY3RjVEMkMwQkYzRTRENjNGNDdBNzND", + "signature": "0fc30cddaa8e5365662a14344e3434cbccf287f357be99b3ed4add182f64dded774ec0d095ab1589e7c6c07e00de3b7239efc96eb2e0e97b48c1ef87084cec01", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 7593758, + "blockHash": "a828c0ca58ef1c8aff60e512ab59f18204f1915d4a6c8285cfceb1c5725b88e8", + "notarizedAtSourceInMetaNonce": 7609903, + "NotarizedAtSourceInMetaHash": "4e90fe45c2fdccd5cf6977c1422e5f4ffa41c4e9f31fb4a50c20455f87df1e99", + "notarizedAtDestinationInMetaNonce": 7609907, + "notarizedAtDestinationInMetaHash": "10b8666a44411c3babbe20af7154fb3d47efcb1cb10d955523ec68fece26e517", + "miniblockType": "TxBlock", + "miniblockHash": "4ff4bb1ac88911d617c9b0342aeb5158db78490c2fe414cad08adcc584a77be7", + "hyperblockNonce": 7609907, + "hyperblockHash": "10b8666a44411c3babbe20af7154fb3d47efcb1cb10d955523ec68fece26e517", + "timestamp": 1694436738, + "smartContractResults": [ + { + "hash": "462b56a1530e6070dc7c15f755e51a97a6972c8cd7891f3be4635b93211890c5", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "data": "@00@0a@0218711a00", + "prevTxHash": "41d56fdacf3e14de67e821427c732b62ebfa07c82d2e5db6de75fe3a1c828d9b", + "originalTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", + "gasLimit": 595637825, + "gasPrice": 1000000000, + "callType": 2, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1NjM3ODI1LCBnYXMgdXNlZCA9IDIxNjE3NzA=" + ], + "data": "QDZmNmI=" + }, + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "completedTxEvent", + "topics": [ + "QdVv2s8+FN5n6CFCfHMrYuv6B8gtLl223nX+OhyCjZs=" + ], + "data": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "41d56fdacf3e14de67e821427c732b62ebfa07c82d2e5db6de75fe3a1c828d9b", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "data": "returnTwoU64@4f3c60", + "prevTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", + "originalTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", + "gasLimit": 597479490, + "gasPrice": 1000000000, + "callType": 1, + "operation": "transfer", + "function": "returnTwoU64" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" + ], + "data": "QDZmNmI=" + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "asyncCallAnotherContractReturnTwoU64NoCallback", + "initiallyPaidFee": "6214335000000000", + "fee": "6214335000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_multi_contract_cross_shard_tx_that_has_non_returning_callback() { + // transaction data from the devnet + // context : user -> A --async call--> B --callback--> A, the callback returns () + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", + "nonce": 52, + "round": 7647560, + "epoch": 6340, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0V2l0aE5vblJldHVybmluZ0NhbGxiYWNrQDAwMDAwMDAwMDAwMDAwMDAwNTAwQUNGRjZCN0E0RUI4MTAxQThERTdGRjdGNUQyQzBCRjNFNEQ2M0Y0N0E3M0M=", + "signature": "3918fce429b2059b2321b709011079755dbb835e12839278ee510e4741180540e80c6111eea1d3312b2c63446de08b20e01f6040358fa94d1633c355bb65bc0f", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 7593795, + "blockHash": "c17e727f90025225670b7852ea9807c67753c9b3f21b6ec7cc40077e3849a8b7", + "notarizedAtSourceInMetaNonce": 7609940, + "NotarizedAtSourceInMetaHash": "c67b5c550986cfd6c94d00f4b90234eb38ee196ff0d79a00d916f3bd24be272c", + "notarizedAtDestinationInMetaNonce": 7609944, + "notarizedAtDestinationInMetaHash": "d59b7398d962ce3119679af59d5d74e10083e62c3ee2b15421cc0d607979ca18", + "miniblockType": "TxBlock", + "miniblockHash": "2977affeffeb6cf41117bed442662021cb713528cdb1d0dce4537b01caeb8e0b", + "hyperblockNonce": 7609944, + "hyperblockHash": "d59b7398d962ce3119679af59d5d74e10083e62c3ee2b15421cc0d607979ca18", + "timestamp": 1694436960, + "smartContractResults": [ + { + "hash": "fe7474188d5ca4b84c7577f03fc778d22d53c070dfcb05a9cda840229d30e4d3", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "data": "returnTwoU64@4f3c60", + "prevTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", + "originalTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", + "gasLimit": 596979545, + "gasPrice": 1000000000, + "callType": 1, + "operation": "transfer", + "function": "returnTwoU64" + }, + { + "hash": "948dc6702b376d1e043db8de2f87ca12907c342f54cfad7dfebadf59145ca3ac", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "data": "@00@0a@0218711a00", + "prevTxHash": "fe7474188d5ca4b84c7577f03fc778d22d53c070dfcb05a9cda840229d30e4d3", + "originalTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", + "gasLimit": 595137880, + "gasPrice": 1000000000, + "callType": 2, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1MTM3ODgwLCBnYXMgdXNlZCA9IDIyODg1NTA=" + ], + "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" + }, + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "completedTxEvent", + "topics": [ + "/nR0GI1cpLhMdXfwP8d40i1TwHDfywWpzahAIp0w5NM=" + ], + "data": null + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" + ], + "data": "QDZmNmI=" + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "asyncCallAnotherContractReturnTwoU64WithNonReturningCallback", + "initiallyPaidFee": "6235125000000000", + "fee": "6235125000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_multi_contract_cross_shard_tx_that_has_returning_callback() { + // transaction data from the devnet + // context : user -> A --async call--> B --callback--> A, the callback returns a MultiValue2 + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", + "nonce": 53, + "round": 7647583, + "epoch": 6340, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0V2l0aFJldHVybmluZ0NhbGxiYWNrQDAwMDAwMDAwMDAwMDAwMDAwNTAwQUNGRjZCN0E0RUI4MTAxQThERTdGRjdGNUQyQzBCRjNFNEQ2M0Y0N0E3M0M=", + "signature": "858958d4aaf9cb0220ab2933edad3f65e1cb4c58aa7940cb0f40b489d0bd9fdf5c4736a40d6e813743ee622bb91e9f86eacf01b9a31e0ff53f9c84f13c500304", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 7593818, + "blockHash": "b19f97110ca38d3cb15f802a00ab403491b0e5804ebc701527ab50064dc06825", + "notarizedAtSourceInMetaNonce": 7609963, + "NotarizedAtSourceInMetaHash": "4d9db6de610ca778114d44fe91dd036fac7c375c373ae9e77130d3fb9efc8391", + "notarizedAtDestinationInMetaNonce": 7609967, + "notarizedAtDestinationInMetaHash": "a4573d388c31860f9bd6f9507b65d1b3130e445abcada538f10704feba4614e7", + "miniblockType": "TxBlock", + "miniblockHash": "530f5fa3c7af474a187caca8dcea02a7a155017414147871d083bed5c49ec8f5", + "hyperblockNonce": 7609967, + "hyperblockHash": "a4573d388c31860f9bd6f9507b65d1b3130e445abcada538f10704feba4614e7", + "timestamp": 1694437098, + "smartContractResults": [ + { + "hash": "065291164a8acd27c26b5a8f09664810081fda18cd54fca635196cf9b200297a", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "data": "returnTwoU64@4f3c60", + "prevTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", + "originalTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", + "gasLimit": 596994205, + "gasPrice": 1000000000, + "callType": 1, + "operation": "transfer", + "function": "returnTwoU64" + }, + { + "hash": "bc31cb153ae615204625df84fe9ae3a159aa412b7342f3dca958dd5517a08197", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "data": "@00@0a@0218711a00", + "prevTxHash": "065291164a8acd27c26b5a8f09664810081fda18cd54fca635196cf9b200297a", + "originalTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", + "gasLimit": 595152540, + "gasPrice": 1000000000, + "callType": 2, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1MTUyNTQwLCBnYXMgdXNlZCA9IDIyODgwMTU=" + ], + "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" + }, + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "completedTxEvent", + "topics": [ + "BlKRFkqKzSfCa1qPCWZIEAgf2hjNVPymNRls+bIAKXo=" + ], + "data": null + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" + ], + "data": "QDZmNmI=" + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "asyncCallAnotherContractReturnTwoU64WithReturningCallback", + "initiallyPaidFee": "6230670000000000", + "fee": "6230670000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_process_issued_token_identifier_fungible() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "nonce": 61, + "round": 173598, + "epoch": 72, + "value": "50000000000000000", + "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "sender": "erd1x39tc3q3nn72ecjnmcz7x0qp09kp97t080x99dgyhx7zh95j0n4szskhlv", + "gasPrice": 1000000000, + "gasLimit": 100000000, + "gasUsed": 100000000, + "data": "aXNzdWVMcFRva2VuQDAwMDAwMDAwMDAwMDAwMDAwNTAwMTM5ZWQ3YWU0YWEwMzc5MmU2YmNiMzMyMzk0YTQwZmU3NDZlZWZhNDdjZWJANDU0NzRjNDQ0ZDQ1NTg0YzUwQDQ1NDc0YzQ0NGQ0NTU4", + "signature": "b5049d2906adc1305a6a8d0f42749254ca6259c6996d9a35e7dc7528b3c87b48a421879aff70bc6d81483a7559b75e5dcf9be499dcb7d57aa9f25c79ac2ad40d", + "sourceShard": 1, + "destinationShard": 1, + "blockNonce": 173354, + "blockHash": "09d85ac264a54e12e7613395211c53fe0ee5a7d3b7111bf5fec1d02794caaacd", + "notarizedAtSourceInMetaNonce": 173321, + "NotarizedAtSourceInMetaHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", + "notarizedAtDestinationInMetaNonce": 173321, + "notarizedAtDestinationInMetaHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", + "miniblockType": "TxBlock", + "miniblockHash": "7f45eee4e35ffc1fbce66b92e4dd2aeae2acb092416aa5aa775b96493256b81d", + "hyperblockNonce": 173321, + "hyperblockHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", + "timestamp": 1695041588, + "smartContractResults": [ + { + "hash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "data": "issue@45474c444d45584c50@45474c444d4558@03e8@12@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e4d696e74@74727565@63616e4275726e@74727565@63616e4368616e67654f776e6572@74727565@63616e55706772616465@74727565@63616e4164645370656369616c526f6c6573@74727565@65ba30", + "prevTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 89624222, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1x39tc3q3nn72ecjnmcz7x0qp09kp97t080x99dgyhx7zh95j0n4szskhlv", + "operation": "transfer", + "function": "issue" + }, + { + "hash": "2a452ff652791d79be5f6933fb583cc5503e876893e54b3b51381a92aa2e904d", + "nonce": 0, + "value": 0, + "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetBurnRoleForAll@45474c444d45582d393563366435", + "prevTxHash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "events": [ + { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "identifier": "completedTxEvent", + "topics": [ + "vOPQ3OsLPlyMV4DX2jdVw/dJLVUWhdSTpzv2br02dUs=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTTransfer@45474c444d45582d393563366435@03e8@00", + "prevTxHash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 39624222, + "gasPrice": 1000000000, + "callType": 2, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "identifier": "ESDTTransfer", + "topics": [ + "RUdMRE1FWC05NWM2ZDU=", + "", + "A+g=", + "AAAAAAAAAAAFAO+ux8+3RD51ieGHV10Z68X293CYfOs=" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "identifier": "completedTxEvent", + "topics": [ + "vOPQ3OsLPlyMV4DX2jdVw/dJLVUWhdSTpzv2br02dUs=" + ], + "data": null, + "additionalData": null + } + ] + }, + "tokens": [ + "EGLDMEX-95c6d5" + ], + "esdtValues": [ + "1000" + ], + "operation": "ESDTTransfer", + "function": "\u0000" + }, + { + "hash": "c9dfc4de3c3cee319123087a4f5dd03cc051e728ec6070707a63ea977b535227", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "data": "\u0000", + "prevTxHash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 39424222, + "gasPrice": 1000000000, + "callType": 2, + "operation": "transfer", + "function": "\u0000" + }, + { + "hash": "609c3a8e1903680fef1f6d9e47527b1b5c1259664b868af600162120ce0b8192", + "nonce": 1, + "value": 300925400000000, + "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "data": "@6f6b", + "prevTxHash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "identifier": "transferValueOnly", + "topics": [ + "AAAAAAAAAAAFAO+ux8+3RD51ieGHV10Z68X293CYfOs=", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", + "saK8LsUAAA==" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "identifier": "writeLog", + "topics": [ + "NEq8RBGc/KziU94F4zwBeWwS+W87zFK1BLm8K5aSfOs=" + ], + "data": "QDZmNmI=", + "additionalData": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "issueLpToken", + "initiallyPaidFee": "1214335000000000", + "fee": "1214335000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = Some("EGLDMEX-95c6d5".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_process_issued_token_identifier_semi_fungible() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "nonce": 65, + "round": 8422527, + "epoch": 584, + "value": "50000000000000000", + "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "sender": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", + "gasPrice": 1000000000, + "gasLimit": 80000000, + "gasUsed": 80000000, + "data": "aXNzdWVUb2tlbkA0NDZmNzA2NTU0NjU3Mzc0QDQ0NGY1MDQ1NTQ0NTUzNTQ=", + "signature": "0191848976e930996f6c62d4921e732f9b0ada8b41ca3b5b63d6bfd304fd44c2a1e8e6643479618ba4a764a36e87f53882b4f707600d5b7d476f2fdd2bac040e", + "sourceShard": 0, + "destinationShard": 0, + "blockNonce": 8420241, + "blockHash": "4d302220f6015876c95e7961b770cc67f8ab63c5f0ab69b4d6c2fb15c8bc23bd", + "notarizedAtSourceInMetaNonce": 8403647, + "NotarizedAtSourceInMetaHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", + "notarizedAtDestinationInMetaNonce": 8403647, + "notarizedAtDestinationInMetaHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", + "miniblockType": "TxBlock", + "miniblockHash": "b7b8fc9f3b81d7daae1113cbf73457e16ee31f3a864ef3729a1a21f3a929e112", + "hyperblockNonce": 8403647, + "hyperblockHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", + "timestamp": 1646652762, + "smartContractResults": [ + { + "hash": "9aecf3bd5dd5c706a28d1cc7059ac20db74340f136816f667dbefcc58daa3aba", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "data": "issueSemiFungible@446f706554657374@444f504554455354@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e4368616e67654f776e6572@74727565@63616e55706772616465@74727565@63616e4164645370656369616c526f6c6573@74727565@5ca148", + "prevTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "gasLimit": 75958360, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", + "operation": "transfer", + "function": "issueSemiFungible" + }, + { + "hash": "aacfe9088bb9d2d5b3fbe9cab2b2f1c6a7e9cbab2f1a41020e2c819fc9b43570", + "nonce": 66, + "value": 0, + "receiver": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", + "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "data": "@6f6b", + "prevTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer" + }, + { + "hash": "3f6f0f3de9e942884e7e1592823a7db7ce935a3f9d3359d8c1ee98a5645332d8", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@444f5045544553542d373732303063", + "prevTxHash": "9aecf3bd5dd5c706a28d1cc7059ac20db74340f136816f667dbefcc58daa3aba", + "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "gasLimit": 25958360, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "identifier": "completedTxEvent", + "topics": [ + "muzzvV3VxwaijRzHBZrCDbdDQPE2gW9mfb78xY2qOro=" + ], + "data": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "c6e4f7c5da455009fb4f6967ce8a273a97b826aa617fa798ffd0cf17bde6b97a", + "nonce": 1, + "value": 225516180000000, + "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "data": "@6f6b", + "prevTxHash": "3f6f0f3de9e942884e7e1592823a7db7ce935a3f9d3359d8c1ee98a5645332d8", + "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "identifier": "transferValueOnly", + "topics": [ + "AAAAAAAAAAAFAH6d74PDz8xLqvowrlOA5lVDBMUghBg=", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", + "saK8LsUAAA==" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "identifier": "writeLog", + "topics": [ + "NFD3vy7whM1YgLyLL6nEojWMeUDt2MMJRRM9qTgahBg=" + ], + "data": "QDZmNmI=" + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "issueToken", + "initiallyPaidFee": "914840000000000", + "fee": "914840000000000", + "chainID": "1", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = Some("DOPETEST-77200c".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_process_issued_token_identifier_non_fungible() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "nonce": 16, + "round": 820170, + "epoch": 341, + "value": "50000000000000000", + "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "sender": "erd162knt53z7m0f9jjms9wxphr3q9d7zu4ky85xs2cc0ekrqz7k4fdq85lkuc", + "gasPrice": 1000000000, + "gasLimit": 200000000, + "gasUsed": 200000000, + "data": "aXNzdWVUb2tlbkA2NzY1NmU2NTdhNzk3M0A0NzQ1NGU=", + "signature": "e80d45f4de419799a2bbff1cae1235521c8eef1853ee45b02f95c2da74ce50d241bf75b6ab0c650245562700862ea9759caad40f3e381ac0c4d82cfe56e67c09", + "sourceShard": 2, + "destinationShard": 2, + "blockNonce": 819313, + "blockHash": "a1db4ef13f07b86678000df9cc78f244d83dcc35ae51de545f333bf616930d39", + "notarizedAtSourceInMetaNonce": 819396, + "NotarizedAtSourceInMetaHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", + "notarizedAtDestinationInMetaNonce": 819396, + "notarizedAtDestinationInMetaHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", + "miniblockType": "TxBlock", + "miniblockHash": "afdb278522181aeb9b12f08840e6c534e398e6af9c7f757548308e300e7ec4e9", + "hyperblockNonce": 819396, + "hyperblockHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", + "timestamp": 1698921020, + "smartContractResults": [ + { + "hash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "data": "issueNonFungible@67656e657a7973@47454e@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e5472616e736665724e4654437265617465526f6c65@74727565@63616e4368616e67654f776e6572@66616c7365@63616e55706772616465@66616c7365@63616e4164645370656369616c526f6c6573@74727565@5e30e4", + "prevTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 196098365, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd162knt53z7m0f9jjms9wxphr3q9d7zu4ky85xs2cc0ekrqz7k4fdq85lkuc", + "operation": "transfer", + "function": "issueNonFungible" + }, + { + "hash": "98afe82512c79f1caaf171bd5919ee469d11ba0c4f725aefcab834278c0f1e58", + "nonce": 0, + "value": 0, + "receiver": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetBurnRoleForAll@47454e2d383638353933", + "prevTxHash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", + "events": [ + { + "address": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", + "identifier": "completedTxEvent", + "topics": [ + "b+DMACgCrxdE85Tu5KaSJLXndZYdg4bgTnpbkkL3/2U=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "data": "setSpecialRole@47454e2d383638353933@00000000000000000500de51fa8943c26e6933419f9bb7ceb79b7ff4f7bbaa5a@45534454526f6c654e4654437265617465@5e30e4", + "prevTxHash": "112d18ec0364b4700b1bfb3df517c80dba547a53373ece2a9e71acd5266e7b64", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 142399698, + "gasPrice": 1000000000, + "callType": 1, + "operation": "transfer", + "function": "setSpecialRole" + }, + { + "hash": "112d18ec0364b4700b1bfb3df517c80dba547a53373ece2a9e71acd5266e7b64", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@47454e2d383638353933", + "prevTxHash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 146098365, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=" + ], + "data": "QDZmNmI=", + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "db5d74970374337956fa61fb4fd90057b3f6a82ea3e259b389934b71a1652e5f", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetRole@47454e2d383638353933@45534454526f6c654e4654437265617465", + "prevTxHash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "ESDTSetRole", + "topics": [ + "R0VOLTg2ODU5Mw==", + "", + "", + "RVNEVFJvbGVORlRDcmVhdGU=" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "completedTxEvent", + "topics": [ + "g0lK2TaXOLV0pyZsv7Es5jzPY0lQzWsOwWEHuPtC+PY=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "ESDTSetRole", + "function": "ESDTSetRole" + }, + { + "hash": "a6a665f47977a59c4c2baf460281fc938e04ae0f87ac2e78040a14ae27822701", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00", + "prevTxHash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 92399698, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gOTIzOTk2OTgsIGdhcyB1c2VkID0gMzE0MTg4MA==" + ], + "data": "QDZmNmI=", + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "completedTxEvent", + "topics": [ + "g0lK2TaXOLV0pyZsv7Es5jzPY0lQzWsOwWEHuPtC+PY=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "transferValueOnly", + "topics": [ + "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", + "saK8LsUAAA==" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "writeLog", + "topics": [ + "0q010iL23pLKW4FcYNxxAVvhcrYh6GgrGH5sMAvWqlo=" + ], + "data": "QDZmNmI=", + "additionalData": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "issueToken", + "initiallyPaidFee": "2097020000000000", + "fee": "2097020000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = Some("GEN-868593".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_process_issued_token_identifier_meta_esdt() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "nonce": 419, + "round": 1787093, + "epoch": 744, + "value": "50000000000000000", + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 157220928, + "data": "ZGVwbG95QXNoc3dhcExQQUNTdHJhdGVneUA0MTRjNTAyZDYzNjE2NTYxNjMzNUA0MTU0NTMyZDM0NjMzMDM5MzIzMEAwM2U4QDAzZThAQDNiOWFjYTAwQDAwMDAwMDAwMDAwMDAwMDAwNTAwOTU3MzkwYWVkYTQzMmY1MmE0MTFkNTE5NzRmZTkzZDQwZDI3NzMzZTA0NjNAMDAwMDAwMDAwMDAwMDAwMDA1MDBkMTJjYzczY2JkYTZmMjY1OWM5NTllNWQ1NzU4YWY5MmNhMTM4NDg2NTIzM0AwMDAwMDAwMDAwMDAwMDAwMDUwMDUxZGY3MTc1OGNmMmFjYTViNDZkZWQ4MTU1OGI1NTE1ZGMyOWYzZjM1MjMzQEAwMDAwMDAwMDAwMDAwMDAwMDUwMDdlNGExZGZjNDM3Y2VkNDlkYjlmMTYzNzk4NDE2Yjg0YWMyMWQ0Yzk3Y2ViMDAwMDAwMGM1NzQ1NDc0YzQ0MmQ2MTMyMzg2MzM1MzkwMDAwMDAwMDAwMDAwMDAwMDUwMGE4YmE5ZTY4NjI2YmJjOTkzZmQ3OTVlOGJiNmY0Nzk0M2IyZjVmZmE3Y2ViMDAwMDAwMGE1NTU0NGIyZDMxMzQ2NDM1Mzc2NEAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwNTAwNTFkZjcxNzU4Y2YyYWNhNWI0NmRlZDgxNTU4YjU1MTVkYzI5ZjNmMzUyMzMwMDAwMDAwYjQyNTU1MzQ0MmQ2NDM0NjMzMDMxMzQwMDAwMDAwMDAwQDAxODZhMEAyNzEw", + "signature": "4648af0b96eb430e4986b9fb760549742de09c809b46b984e5d995c898d80c25bfc0717c30da34bd89cd3005d98ee895afa39ee588b7b74b4807c63cbeade807", + "sourceShard": 1, + "destinationShard": 1, + "blockNonce": 1785520, + "blockHash": "8f926a5d79fa84bc69949a21bfbba17447091a8a074ac172fa0b88e4475a1214", + "notarizedAtSourceInMetaNonce": 1785568, + "NotarizedAtSourceInMetaHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", + "notarizedAtDestinationInMetaNonce": 1785568, + "notarizedAtDestinationInMetaHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", + "miniblockType": "TxBlock", + "miniblockHash": "b85d82db6d69cbc1911b3455d2837eeb3170b391926efa2eacb4d9c8e3c96ee4", + "hyperblockNonce": 1785568, + "hyperblockHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", + "timestamp": 1704722558, + "smartContractResults": [ + { + "hash": "ea9a96c079e66249e6b73c0341991dad96ca81f855f2fc4abe0d432be117a882", + "nonce": 420, + "value": 4427790720000000, + "receiver": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "@6f6b", + "prevTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "registerMetaESDT@415453417368537761704c5041435661756c74@4156415348@12@63616e467265657a65@66616c7365@63616e57697065@66616c7365@63616e5061757365@66616c7365@63616e5472616e736665724e4654437265617465526f6c65@66616c7365@63616e4368616e67654f776e6572@66616c7365@63616e55706772616465@66616c7365@63616e4164645370656369616c526f6c6573@74727565@9eb30a87c92674ab1469700c0b385b3850e86de80f87dec6cf3213c7e379a646@408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43@03eb4a30", + "prevTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "gasLimit": 125751600, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "operation": "transfer", + "function": "registerMetaESDT" + }, + { + "hash": "290f85d7ec2f7d5797510290358e9e0f76bb880451efaacb0d69280b8d94c67a", + "nonce": 0, + "value": 0, + "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetBurnRoleForAll@41564153482d376438623564", + "prevTxHash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", + "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "logs": { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "events": [ + { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "identifier": "completedTxEvent", + "topics": [ + "YIKXUTKiydgZff0PmFK0VK00R0Duvb35P2ILJ5arcjs=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "1aa62a6251edd216bd4e5ae59f7e676d5d2f88597685e0ec0e25ac4434bfccdb", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@41564153482d376438623564@d0644194444642fd16ee156307f6fda0e8f8baf4c496e1a1dc85e027ecc08a4a@9eb30a87c92674ab1469700c0b385b3850e86de80f87dec6cf3213c7e379a646@408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43@00", + "prevTxHash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", + "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "gasLimit": 75751600, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNzU3NTE2MDAsIGdhcyB1c2VkID0gNDE3NjA1OQ==" + ], + "data": "QDZmNmI=", + "additionalData": [ + "QDZmNmI=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "completedTxEvent", + "topics": [ + "YIKXUTKiydgZff0PmFK0VK00R0Duvb35P2ILJ5arcjs=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" + ], + "data": "RGVwbG95RnJvbVNvdXJjZQ==", + "additionalData": [ + "RGVwbG95RnJvbVNvdXJjZQ==", + "aW5pdA==", + "QUxQLWNhZWFjNQ==", + "QVRTLTRjMDkyMA==", + "A+g=", + "A+g=", + "", + "O5rKAA==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=" + ], + "data": "RGVwbG95RnJvbVNvdXJjZQ==", + "additionalData": [ + "RGVwbG95RnJvbVNvdXJjZQ==", + "aW5pdA==", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", + "AAAAAAAAAAAFAJVzkK7aQy9SpBHVGXT+k9QNJ3M+BGM=", + "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=", + "AAAAAAAAAAAFAFHfcXWM8qyltG3tgVWLVRXcKfPzUjM=", + "", + "AAAAAAAAAAAFAH5KHfxDfO1J258WN5hBa4SsIdTJfOsAAAAMV0VHTEQtYTI4YzU5AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOsAAAAKVVRLLTE0ZDU3ZA==", + "AAAAAQAAAAAAAAAABQBR33F1jPKspbRt7YFVi1UV3Cnz81IzAAAAC0JVU0QtZDRjMDE0AAAAAAA=", + "AYag", + "JxA=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "Z2V0RmFybWluZ1Rva2VuSWQ=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "Z2V0RmFybVRva2VuSWQ=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "Z2V0UmV3YXJkVG9rZW5JZA==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "saK8LsUAAA==", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" + ], + "data": "QXN5bmNDYWxs", + "additionalData": [ + "QXN5bmNDYWxs", + "cmVnaXN0ZXJNZXRhRVNEVA==", + "QVRTQXNoU3dhcExQQUNWYXVsdA==", + "QVZBU0g=", + "Eg==", + "Y2FuRnJlZXpl", + "ZmFsc2U=", + "Y2FuV2lwZQ==", + "ZmFsc2U=", + "Y2FuUGF1c2U=", + "ZmFsc2U=", + "Y2FuVHJhbnNmZXJORlRDcmVhdGVSb2xl", + "ZmFsc2U=", + "Y2FuQ2hhbmdlT3duZXI=", + "ZmFsc2U=", + "Y2FuVXBncmFkZQ==", + "ZmFsc2U=", + "Y2FuQWRkU3BlY2lhbFJvbGVz", + "dHJ1ZQ==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", + "identifier": "SCDeploy", + "topics": [ + "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=", + "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", + "fvRqbue54Womde/CN2IkRGkrx8tsU+xkLvi3+uwMkhY=" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "identifier": "SCDeploy", + "topics": [ + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", + "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", + "E3blQfRJfCKLWDr06Od703DSZenIzq8KND+xUjmGY/M=" + ], + "data": null, + "additionalData": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "deployAshswapLPACStrategy", + "initiallyPaidFee": "6936045000000000", + "fee": "2508254280000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = Some("AVASH-7d8b5d".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_set_special_roles_should_not_process_issued_token_identifier() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "nonce": 420, + "round": 1787109, + "epoch": 744, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 129636807, + "data": "ZmluaXNoVmF1bHREZXBsb3ltZW50cw==", + "signature": "dca943ef1a788bfa6cb0e9aa3900b8340e4908075cbfefaa2a66688f6f0c0fed349edb2eb48eec427cd9098822fba875e4d66072fbdb44cb7f4c1a416736e20c", + "sourceShard": 1, + "destinationShard": 1, + "blockNonce": 1785536, + "blockHash": "93ca539e81612768b67a85b7135f7c104e76bec031a758a6b1782910ae49dd8f", + "notarizedAtSourceInMetaNonce": 1785584, + "NotarizedAtSourceInMetaHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", + "notarizedAtDestinationInMetaNonce": 1785584, + "notarizedAtDestinationInMetaHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", + "miniblockType": "TxBlock", + "miniblockHash": "f8c60565af746e92d2c9c09a92734e5eb8da7e42c67a86854c93b349bfe287eb", + "hyperblockNonce": 1785584, + "hyperblockHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", + "timestamp": 1704722654, + "smartContractResults": [ + { + "hash": "c3ce9c364de3823ffae250c2bfb40aaf2b18f771ed4bd37bf788ad83a2c651f3", + "nonce": 421, + "value": 4703631930000000, + "receiver": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "@6f6b", + "prevTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "setSpecialRole@41564153482d376438623564@00000000000000000500d00cc0e63887ff6b792d34234a44e7ac6b575d4b0463@45534454526f6c654e4654437265617465@45534454526f6c654e46544164645175616e74697479@45534454526f6c654e46544275726e@0192c6db2c69f50b6968fb22ac558337a851719519cfd1e6bbf79a07bbcf18bc@cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0@03eb4a30", + "prevTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 125751600, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "operation": "transfer", + "function": "setSpecialRole" + }, + { + "hash": "d6a5824a60b6c9050462c3f5a02ace00c36e8b4ba1958d132bd394e2ed1e7226", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetRole@41564153482d376438623564@45534454526f6c654e4654437265617465@45534454526f6c654e46544164645175616e74697479@45534454526f6c654e46544275726e", + "prevTxHash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "identifier": "ESDTSetRole", + "topics": [ + "QVZBU0gtN2Q4YjVk", + "", + "", + "RVNEVFJvbGVORlRDcmVhdGU=", + "RVNEVFJvbGVORlRBZGRRdWFudGl0eQ==", + "RVNEVFJvbGVORlRCdXJu" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "identifier": "completedTxEvent", + "topics": [ + "UPnCWhQCzm2Hrp+JBlnIpnRiKS5HHgLHTWT/e6GZXmA=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "ESDTSetRole", + "function": "ESDTSetRole" + }, + { + "hash": "bf1b8b4b301ff548368dfd972896489d5e2a088d5cbdfa1bfe2421cc7f641f7a", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@a68d44c751eba85db0713db8dc9c10c78749189ec0d6f1af5fc67bb656c1254b@0192c6db2c69f50b6968fb22ac558337a851719519cfd1e6bbf79a07bbcf18bc@cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0@00", + "prevTxHash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 75751600, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "c2V0U2hhcmVUb2tlbklkZW50aWZpZXI=", + "QVZBU0gtN2Q4YjVk" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "c2V0U3RyYXRlZ3lBZGRyZXNz", + "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "completedTxEvent", + "topics": [ + "UPnCWhQCzm2Hrp+JBlnIpnRiKS5HHgLHTWT/e6GZXmA=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "9d75a398545f488d4764149245e6ec3101debfce99477c353ac11c3239acd897", + "nonce": 1, + "value": 648519550000000, + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "@6f6b", + "prevTxHash": "bf1b8b4b301ff548368dfd972896489d5e2a088d5cbdfa1bfe2421cc7f641f7a", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" + ], + "data": "QXN5bmNDYWxs", + "additionalData": [ + "QXN5bmNDYWxs", + "c2V0U3BlY2lhbFJvbGU=", + "QVZBU0gtN2Q4YjVk", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", + "RVNEVFJvbGVORlRDcmVhdGU=", + "RVNEVFJvbGVORlRBZGRRdWFudGl0eQ==", + "RVNEVFJvbGVORlRCdXJu" + ] + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "finishVaultDeployments", + "initiallyPaidFee": "6082170000000000", + "fee": "1378538070000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = None; + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_multisig_issue_nft_and_set_all_roles() { + let data = r#" +{ + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "nonce": 53, + "round": 3050972, + "epoch": 1246, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "sender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "gasPrice": 1000000000, + "gasLimit": 80000000, + "gasUsed": 80000000, + "data": "cGVyZm9ybUFjdGlvbkAwMQ==", + "signature": "cb67645595cee5f7967d8d85af05bb7db73e80d9b97611796819249d87cd174b69b4abfc2a3fbe52df1aec965bdea921f7eb34d2b1118aa480699ad1dc85790a", + "sourceShard": 0, + "destinationShard": 0, + "blockNonce": 2984930, + "blockHash": "644ae8703b826a23e89429953919ec37f875e34a547ea9f7edd53fb71a99c746", + "notarizedAtSourceInMetaNonce": 2988311, + "NotarizedAtSourceInMetaHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", + "notarizedAtDestinationInMetaNonce": 2988311, + "notarizedAtDestinationInMetaHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", + "miniblockType": "TxBlock", + "miniblockHash": "c5a73671bc1d37835ddd15b926157721bc83203ec4e00cd48ae0d46015cb5f0b", + "hyperblockNonce": 2988311, + "hyperblockHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", + "timestamp": 1712305832, + "smartContractResults": [ + { + "hash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "data": "registerAndSetAllRoles@54657374436f6c6c656374696f6e31@54455354434f4c4c31@4e4654@@98fa4ff554b9c6990ce577fbb816a271f690dcbd6b148f6583fe7692868ae538@08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd@5e2338", + "prevTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 73052300, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "operation": "transfer", + "function": "registerAndSetAllRoles" + }, + { + "hash": "5ae4f74e134e4fa63c8b92e06ff12b2a4b544233d01d80db6a922af35ee55356", + "nonce": 1, + "value": 196430610000000, + "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "sender": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "data": "@6f6b", + "prevTxHash": "c4a24b01b48d32308636310e2d335d6ed1f34dcbdfc1133aed7995e78e831c18", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "7589c1ad622d8a9ab2f186731fc82aeeab0aea5a8198cb94b6eba85a966e7962", + "nonce": 0, + "value": 0, + "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetBurnRoleForAll@54455354434f4c4c312d356161383063", + "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "logs": { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", + "events": [ + { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", + "identifier": "completedTxEvent", + "topics": [ + "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" + ] + } + ] + }, + "operation": "transfer" + }, + { + "hash": "86d1ec3365ea1311dbde2f2366de4ea8627d7e49c29a974578c0869b66903cbc", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetRole@54455354434f4c4c312d356161383063@45534454526f6c654e4654437265617465@45534454526f6c654e46544275726e@45534454526f6c654e465455706461746541747472696275746573@45534454526f6c654e4654416464555249", + "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "ESDTSetRole", + "topics": [ + "VEVTVENPTEwxLTVhYTgwYw==", + "", + "", + "RVNEVFJvbGVORlRDcmVhdGU=", + "RVNEVFJvbGVORlRCdXJu", + "RVNEVFJvbGVORlRVcGRhdGVBdHRyaWJ1dGVz", + "RVNEVFJvbGVORlRBZGRVUkk=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "completedTxEvent", + "topics": [ + "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" + ] + } + ] + }, + "operation": "ESDTSetRole", + "function": "ESDTSetRole" + }, + { + "hash": "c4a24b01b48d32308636310e2d335d6ed1f34dcbdfc1133aed7995e78e831c18", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@54455354434f4c4c312d356161383063@3ec73c55022548038bbe06c0639156b3db70b7c770955e340f14fcfcd45df06a@98fa4ff554b9c6990ce577fbb816a271f690dcbd6b148f6583fe7692868ae538@08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd@00", + "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 23052300, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "callBack", + "topics": [ + "YXN5bmNDYWxsU3VjY2Vzcw==", + "VEVTVENPTEwxLTVhYTgwYw==" + ], + "additionalData": [ + "" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "completedTxEvent", + "topics": [ + "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" + ] + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "performAction", + "topics": [ + "c3RhcnRQZXJmb3JtQWN0aW9u" + ], + "data": "AAAAAQYAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAL//wAAAAexorwuxQAAAAAAFnJlZ2lzdGVyQW5kU2V0QWxsUm9sZXMAAAAEAAAAD1Rlc3RDb2xsZWN0aW9uMQAAAAlURVNUQ09MTDEAAAADTkZUAAAAAAAAAATjKv7ckE/hk5dGrZc76zg1Y89jZCumabMED5uUKKXtYLE6AXQjw2bK/4zs+3ehJhChMPSIgTQSLHk3/q4NbX0XOvjZyUI7JXfGJSciwdkCEqQRH3ID+XRPdvz6HQoxADOyoRVVzlIeSUTgmrF1SdhbSH3NJshLUBejnjGjZwiJug==", + "additionalData": [ + "AAAAAQYAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAL//wAAAAexorwuxQAAAAAAFnJlZ2lzdGVyQW5kU2V0QWxsUm9sZXMAAAAEAAAAD1Rlc3RDb2xsZWN0aW9uMQAAAAlURVNUQ09MTDEAAAADTkZUAAAAAAAAAATjKv7ckE/hk5dGrZc76zg1Y89jZCumabMED5uUKKXtYLE6AXQjw2bK/4zs+3ehJhChMPSIgTQSLHk3/q4NbX0XOvjZyUI7JXfGJSciwdkCEqQRH3ID+XRPdvz6HQoxADOyoRVVzlIeSUTgmrF1SdhbSH3NJshLUBejnjGjZwiJug==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "performAction", + "topics": [ + "cGVyZm9ybUFzeW5jQ2FsbA==", + "AQ==", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", + "saK8LsUAAA==", + "BGa4HQ==", + "cmVnaXN0ZXJBbmRTZXRBbGxSb2xlcw==", + "VGVzdENvbGxlY3Rpb24x", + "VEVTVENPTEwx", + "TkZU", + "" + ], + "additionalData": [ + "" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "transferValueOnly", + "topics": [ + "saK8LsUAAA==", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" + ], + "data": "QXN5bmNDYWxs", + "additionalData": [ + "QXN5bmNDYWxs", + "cmVnaXN0ZXJBbmRTZXRBbGxSb2xlcw==", + "VGVzdENvbGxlY3Rpb24x", + "VEVTVENPTEwx", + "TkZU", + "" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "writeLog", + "topics": [ + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" + ], + "data": "QDZmNmI=", + "additionalData": [ + "QDZmNmI=" + ] + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "performAction", + "initiallyPaidFee": "873260000000000", + "fee": "873260000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected = Some("TESTCOLL1-5aa80c".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} diff --git a/framework/snippets/src/interactor_retrieve.rs b/framework/snippets/src/interactor_retrieve.rs index 6dfa0c5085..8b9e0031ab 100644 --- a/framework/snippets/src/interactor_retrieve.rs +++ b/framework/snippets/src/interactor_retrieve.rs @@ -17,10 +17,27 @@ impl Interactor { let start_time = Instant::now(); loop { - match self.proxy.get_transaction_info_with_results(&tx_hash).await { - Ok(tx) => { - info!("Transaction retrieved successfully: {:#?}", tx); - return tx; + match self.proxy.get_transaction_status(&tx_hash).await { + Ok(status) => { + // checks if transaction status is final + match status.as_str() { + "success" | "fail" => { + // retrieve transaction info with results + let transaction_info_with_results = self + .proxy + .get_transaction_info_with_results(&tx_hash) + .await + .unwrap(); + info!( + "Transaction retrieved successfully, with status {}: {:#?}", + status, transaction_info_with_results + ); + return transaction_info_with_results; + }, + _ => { + continue; + }, + } }, Err(err) => { retries += 1; From 9ff6a1aaff3aa6c18cba061bd3b94ecdc798f2a1 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 29 Apr 2024 15:01:05 +0300 Subject: [PATCH 096/185] set state via AnnotatedValue - replace in multisig, rewards, price_aggregator_stress --- .../tests/price_aggregator_stress_blackbox.rs | 48 +++++++--------- .../tests/crowdfunding_esdt_blackbox_test.rs | 2 +- .../multisig/tests/multisig_blackbox_test.rs | 57 +++++-------------- .../rewards_distribution_integration_test.rs | 13 +---- 4 files changed, 39 insertions(+), 81 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs b/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs index 46ddf296d3..660bbf1dda 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_stress_blackbox.rs @@ -8,10 +8,10 @@ use multiversx_sc_scenario::imports::*; const DECIMALS: u8 = 0; const EGLD_TICKER: &[u8] = b"EGLD"; const NR_ORACLES: usize = 50; -const OWNER_ADDRESS_EXPR: &str = "address:owner"; const OWNER: TestAddress = TestAddress::new("owner"); -const PRICE_AGGREGATOR_ADDRESS_EXPR: &str = "sc:price-aggregator"; -const PRICE_AGGREGATOR_PATH_EXPR: &str = "mxsc:../output/multiversx-price-aggregator-sc.mxsc.json"; +const PRICE_AGGREGATOR_ADDRESS: TestSCAddress = TestSCAddress::new("price-aggregator"); +const PRICE_AGGREGATOR_PATH: MxscPath = + MxscPath::new("../output/multiversx-price-aggregator-sc.mxsc.json"); const SLASH_AMOUNT: u64 = 10; const SLASH_QUORUM: usize = 3; const STAKE_AMOUNT: u64 = 20; @@ -20,14 +20,11 @@ const USD_TICKER: &[u8] = b"USDC"; mod price_aggregator_proxy; -type PriceAggregatorContract = ContractInfo>; - fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); - blockchain.set_current_dir_from_workspace("contracts/core/price-aggregator"); blockchain.register_contract( - PRICE_AGGREGATOR_PATH_EXPR, + PRICE_AGGREGATOR_PATH, multiversx_price_aggregator_sc::ContractBuilder, ); @@ -37,50 +34,45 @@ fn world() -> ScenarioWorld { struct PriceAggregatorTestState { world: ScenarioWorld, oracles: Vec, - price_aggregator_contract: PriceAggregatorContract, price_aggregator_whitebox: WhiteboxContract>, } impl PriceAggregatorTestState { fn new() -> Self { let mut world = world(); + world.start_trace(); - let mut set_state_step = SetStateStep::new() - .put_account(OWNER_ADDRESS_EXPR, Account::new().nonce(1)) - .new_address(OWNER_ADDRESS_EXPR, 1, PRICE_AGGREGATOR_ADDRESS_EXPR) + world + .account(OWNER) + .nonce(1) + .new_address(OWNER, 1, PRICE_AGGREGATOR_ADDRESS) + .current_block() .block_timestamp(100); let mut oracles = Vec::new(); for i in 1..=NR_ORACLES { - let address_expr = format!("address:oracle{}", i); - let address_value = AddressValue::from(address_expr.as_str()); + let address_expr = format!("oracle{}", i); + let address: TestAddress = TestAddress::new(address_expr.as_str()); + let address_value = AddressValue::from(address.eval_to_expr().as_str()); - set_state_step = set_state_step.put_account( - address_expr.as_str(), - Account::new().nonce(1).balance(STAKE_AMOUNT), - ); + world.account(address).nonce(1).balance(STAKE_AMOUNT); oracles.push(address_value); } - world.start_trace().set_state_step(set_state_step); - let price_aggregator_contract = PriceAggregatorContract::new(PRICE_AGGREGATOR_ADDRESS_EXPR); let price_aggregator_whitebox = WhiteboxContract::new( - PRICE_AGGREGATOR_ADDRESS_EXPR, + PRICE_AGGREGATOR_ADDRESS, multiversx_price_aggregator_sc::contract_obj, ); Self { world, oracles, - price_aggregator_contract, price_aggregator_whitebox, } } fn deploy(&mut self) -> &mut Self { - let price_aggregator_code = self.world.code_expression(PRICE_AGGREGATOR_PATH_EXPR); - let oracles = MultiValueVec::from( self.oracles .iter() @@ -101,14 +93,14 @@ impl PriceAggregatorTestState { SUBMISSION_COUNT, oracles, ) - .code(price_aggregator_code) + .code(PRICE_AGGREGATOR_PATH) .run(); for address in self.oracles.iter() { self.world .tx() .from(&address.to_address()) - .to(&self.price_aggregator_contract.to_address()) + .to(PRICE_AGGREGATOR_ADDRESS) .gas(5_000_000u64) .typed(price_aggregator_proxy::PriceAggregatorProxy) .stake() @@ -123,7 +115,7 @@ impl PriceAggregatorTestState { self.world .tx() .from(OWNER) - .to(&self.price_aggregator_contract.to_address()) + .to(PRICE_AGGREGATOR_ADDRESS) .typed(price_aggregator_proxy::PriceAggregatorProxy) .set_pair_decimals(EGLD_TICKER, USD_TICKER, DECIMALS) .run(); @@ -133,7 +125,7 @@ impl PriceAggregatorTestState { self.world .tx() .from(OWNER) - .to(&self.price_aggregator_contract.to_address()) + .to(PRICE_AGGREGATOR_ADDRESS) .gas(5_000_000u64) .typed(price_aggregator_proxy::PriceAggregatorProxy) .unpause_endpoint() @@ -144,7 +136,7 @@ impl PriceAggregatorTestState { self.world .tx() .from(&from.to_address()) - .to(&self.price_aggregator_contract.to_address()) + .to(PRICE_AGGREGATOR_ADDRESS) .gas(7_000_000u64) .typed(price_aggregator_proxy::PriceAggregatorProxy) .submit( diff --git a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs index 8b895e42a3..1a07b42101 100644 --- a/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs +++ b/contracts/examples/crowdfunding-esdt/tests/crowdfunding_esdt_blackbox_test.rs @@ -76,7 +76,7 @@ impl CrowdfundingESDTTestState { .query() .to(CROWDFUNDING_ADDRESS) .typed(crowdfunding_esdt_proxy::CrowdfundingProxy) - .deposit(donor.eval_to_array()) + .deposit(donor) .returns(ExpectValue(amount)) .run(); } diff --git a/contracts/examples/multisig/tests/multisig_blackbox_test.rs b/contracts/examples/multisig/tests/multisig_blackbox_test.rs index 7d439a00fc..322abd9348 100644 --- a/contracts/examples/multisig/tests/multisig_blackbox_test.rs +++ b/contracts/examples/multisig/tests/multisig_blackbox_test.rs @@ -48,7 +48,7 @@ impl MultisigTestState { } fn deploy_multisig_contract(&mut self) -> &mut Self { - let board_members = MultiValueVec::from(vec![BOARD_MEMBER_ADDRESS.eval_to_array()]); + let board_members = MultiValueVec::from(vec![BOARD_MEMBER_ADDRESS]); self.world .tx() @@ -65,7 +65,7 @@ impl MultisigTestState { .from(BOARD_MEMBER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_add_proposer(PROPOSER_ADDRESS.eval_to_array()) + .propose_add_proposer(PROPOSER_ADDRESS) .returns(ReturnsResult) .run(); @@ -94,7 +94,7 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_add_board_member(board_member_address.eval_to_array()) + .propose_add_board_member(board_member_address) .returns(ReturnsResult) .run() } @@ -105,7 +105,7 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_add_proposer(proposer_address.eval_to_array()) + .propose_add_proposer(proposer_address) .returns(ReturnsResult) .run() } @@ -132,7 +132,7 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_transfer_execute(to.eval_to_array(), egld_amount, contract_call) + .propose_transfer_execute(to, egld_amount, contract_call) .returns(ReturnsResult) .run() } @@ -148,7 +148,7 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_async_call(to.eval_to_array(), egld_amount, contract_call) + .propose_async_call(to, egld_amount, contract_call) .returns(ReturnsResult) .run() } @@ -159,7 +159,7 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_remove_user(user_address.eval_to_array()) + .propose_remove_user(user_address) .returns(ReturnsResult) .run() } @@ -176,7 +176,7 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_sc_deploy_from_source(amount, source.eval_to_array(), code_metadata, arguments) + .propose_sc_deploy_from_source(amount, source, code_metadata, arguments) .returns(ReturnsResult) .run() } @@ -194,13 +194,7 @@ impl MultisigTestState { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_sc_upgrade_from_source( - sc_address.eval_to_array(), - amount, - source.eval_to_array(), - code_metadata, - arguments, - ) + .propose_sc_upgrade_from_source(sc_address, amount, source, code_metadata, arguments) .returns(ReturnsResult) .run() } @@ -245,7 +239,7 @@ impl MultisigTestState { .query() .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .user_role(user.eval_to_array()) + .user_role(user) .returns(ExpectValue(expected_user_role)) .run(); } @@ -266,10 +260,7 @@ fn test_add_board_member() { state.sign(action_id); state.perform(action_id); - let expected_value = MultiValueVec::from(vec![ - BOARD_MEMBER_ADDRESS.eval_to_array(), - new_board_member_expr.eval_to_array(), - ]); + let expected_value = MultiValueVec::from(vec![BOARD_MEMBER_ADDRESS, new_board_member_expr]); state.expect_user_role(new_board_member_expr, multisig_proxy::UserRole::BoardMember); state @@ -302,10 +293,7 @@ fn test_add_proposer() { multisig_proxy::UserRole::Proposer, ); - let expected_value = MultiValueVec::from(vec![ - PROPOSER_ADDRESS.eval_to_array(), - new_proposer_address_expr.eval_to_array(), - ]); + let expected_value = MultiValueVec::from(vec![PROPOSER_ADDRESS, new_proposer_address_expr]); state .world .query() @@ -447,11 +435,7 @@ fn test_transfer_execute_to_user() { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_transfer_execute( - new_user_address_expr.eval_to_array(), - 0u64, - FunctionCall::empty(), - ) + .propose_transfer_execute(new_user_address_expr, 0u64, FunctionCall::empty()) .with_result(ExpectError(4, "proposed action has no effect")) .run(); @@ -462,11 +446,7 @@ fn test_transfer_execute_to_user() { .from(PROPOSER_ADDRESS) .to(MULTISIG_ADDRESS) .typed(multisig_proxy::MultisigProxy) - .propose_transfer_execute( - new_user_address_expr.eval_to_array(), - amount, - FunctionCall::empty(), - ) + .propose_transfer_execute(new_user_address_expr, amount, FunctionCall::empty()) .returns(ReturnsResult) .run(); state.sign(action_id); @@ -584,18 +564,11 @@ fn test_deploy_and_upgrade_from_source() { let factorial_address: TestSCAddress = TestSCAddress::new("factorial"); let factorial_path: MxscPath = MxscPath::new("test-contracts/factorial.mxsc.json"); - let factorial_code = state - .world - .code_expression(factorial_path.eval_to_expr().as_str()); - state .world .register_contract(factorial_path, factorial::ContractBuilder); - state - .world - .account(factorial_address) - .code(factorial_code.clone()); + state.world.account(factorial_address).code(factorial_path); let action_id = state.propose_sc_upgrade_from_source( ADDER_ADDRESS, diff --git a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs index 03ef580983..be3a4cb788 100644 --- a/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs +++ b/contracts/examples/rewards-distribution/tests/rewards_distribution_integration_test.rs @@ -22,13 +22,10 @@ fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); blockchain.register_contract( - REWARDS_DISTRIBUTION_PATH.eval_to_expr().as_str(), + REWARDS_DISTRIBUTION_PATH, rewards_distribution::ContractBuilder, ); - blockchain.register_contract( - SEED_NFT_MINTER_PATH.eval_to_expr().as_str(), - mock_seed_nft_minter::ContractBuilder, - ); + blockchain.register_contract(SEED_NFT_MINTER_PATH, mock_seed_nft_minter::ContractBuilder); blockchain } @@ -106,16 +103,12 @@ impl RewardsDistributionTestState { fn test_compute_brackets() { let mut state = RewardsDistributionTestState::new(); - let rewards_distribution_code = state - .world - .code_expression(REWARDS_DISTRIBUTION_PATH.eval_to_expr().as_str()); - state .world .account(REWARDS_DISTRIBUTION_ADDRESS) .nonce(1) .owner(OWNER_ADDRESS) - .code(rewards_distribution_code); + .code(REWARDS_DISTRIBUTION_PATH); state.world.whitebox_call( &state.rewards_distribution_whitebox, From d8e36e9bc7c2187d789b5184501df2538bb5348d Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 29 Apr 2024 17:07:53 +0300 Subject: [PATCH 097/185] set state via AnnotatedValue - whitebox framework --- .../src/facade/world_tx/scenario_set_state.rs | 26 +++++++++---------- .../whitebox_legacy/contract_obj_wrapper.rs | 13 ++++++++-- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index f31477d180..8cee5eaede 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -8,7 +8,7 @@ use crate::{ tx_to_step::{address_annotated, big_uint_annotated, u64_annotated}, ScenarioRunner, }, - scenario_model::{AddressKey, BigUintValue, NewAddress, SetStateStep, U64Value}, + scenario_model::{AddressKey, BigUintValue, NewAddress, SetStateStep}, ScenarioTxEnvData, ScenarioWorld, }; @@ -101,7 +101,7 @@ impl ScenarioWorld { } #[allow(clippy::too_many_arguments)] - pub fn set_nft_balance_all_properties( + pub fn set_nft_balance_all_properties( &mut self, address: A, token_id: &[u8], @@ -116,11 +116,13 @@ impl ScenarioWorld { ) where A: AnnotatedValue>, V: AnnotatedValue>, - U64Value: From, + NR: AnnotatedValue, { let env = self.new_env_data(); let address_value = address_annotated(&env, &address); let balance_value = big_uint_annotated(&env, &balance); + let nonce_value = u64_annotated(&env, &nonce); + let royalties_value = u64_annotated(&env, &royalties); let mut esdt_attributes = Vec::new(); let _ = attributes.top_encode(&mut esdt_attributes); @@ -129,12 +131,12 @@ impl ScenarioWorld { if vm_address == &address_value.to_vm_address() { account.esdt.set_esdt_balance( token_id.to_vec(), - U64Value::from(nonce).value, + nonce_value.value, &balance_value.value, EsdtInstanceMetadata { creator: creator.map(|c| address_annotated(&env, &c).to_vm_address()), attributes: esdt_attributes.clone(), - royalties: U64Value::from(royalties).value, + royalties: royalties_value.value, name: name.unwrap_or_default().to_vec(), hash: hash.map(|h| h.to_vec()), uri: uris.to_vec(), @@ -157,17 +159,15 @@ impl ScenarioWorld { } } - pub fn set_esdt_local_roles( - &mut self, - address: A, - token_id: &[u8], - roles: &[EsdtLocalRole], - ) where - AddressKey: From, + pub fn set_esdt_local_roles(&mut self, address: A, token_id: &[u8], roles: &[EsdtLocalRole]) + where + A: AnnotatedValue>, { + let env = self.new_env_data(); + let address_value = address_annotated(&env, &address); let accounts = &mut self.get_mut_state().accounts; for (vm_address, account) in accounts.iter_mut() { - if vm_address == &AddressKey::from(address).to_vm_address() { + if vm_address == &address_value.to_vm_address() { account.esdt.set_roles( token_id.to_vec(), roles diff --git a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs index c03a11c0de..7540d23056 100644 --- a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs +++ b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs @@ -363,7 +363,7 @@ impl BlockchainStateWrapper { address, token_id, nonce, - balance, + BigUint::from(balance), attributes, 0, None, @@ -397,7 +397,16 @@ impl BlockchainStateWrapper { uris: &[Vec], ) { self.world.set_nft_balance_all_properties( - address, token_id, nonce, balance, attributes, royalties, creator, name, hash, uris, + address, + token_id, + nonce, + BigUint::from(balance), + attributes, + royalties, + creator, + name, + hash, + uris, ); } From 6937665cbb69f8ad4c1fec061217d9374d944cf1 Mon Sep 17 00:00:00 2001 From: Mihai Calin Luca Date: Mon, 29 Apr 2024 17:13:30 +0200 Subject: [PATCH 098/185] test reorg in separate files --- .../tests/test_tx_deployed_address.rs | 133 + .../tests/test_tx_issued_token_identifier.rs | 1422 +++++++++ .../tests/test_tx_multi_contract_sc_result.rs | 477 +++ .../tests/test_tx_multiple_sc_results.rs | 287 ++ framework/scenario/tests/test_tx_sc_result.rs | 350 +++ framework/scenario/tests/tx_response_tests.rs | 2661 ----------------- 6 files changed, 2669 insertions(+), 2661 deletions(-) create mode 100644 framework/scenario/tests/test_tx_deployed_address.rs create mode 100644 framework/scenario/tests/test_tx_issued_token_identifier.rs create mode 100644 framework/scenario/tests/test_tx_multi_contract_sc_result.rs create mode 100644 framework/scenario/tests/test_tx_multiple_sc_results.rs create mode 100644 framework/scenario/tests/test_tx_sc_result.rs delete mode 100644 framework/scenario/tests/tx_response_tests.rs diff --git a/framework/scenario/tests/test_tx_deployed_address.rs b/framework/scenario/tests/test_tx_deployed_address.rs new file mode 100644 index 0000000000..b040ace618 --- /dev/null +++ b/framework/scenario/tests/test_tx_deployed_address.rs @@ -0,0 +1,133 @@ +use multiversx_sc::types::Address; +use multiversx_sc_scenario::scenario_model::TxResponse; +use multiversx_sdk::data::transaction::{TransactionInfo, TransactionOnNetwork}; + +#[test] +fn test_deployed_address() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCDeployment", + "processingTypeOnDestination": "SCDeployment", + "hash": "07a176d1734d1901d396be344f97e1d80f076269e9559f9b2110f6f11c4f74de", + "nonce": 427, + "round": 2190715, + "epoch": 887, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gq4hu", + "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "data": "MDA2MTczNmQwMTAwMDAwMDAxOTgwMTE5NjAwMjdmN2YwMDYwMDE3ZjAxN2Y2MDAwMDA2MDAwMDE3ZjYwMDI3ZjdmMDE3ZjYwMDM3ZjdmN2YwMDYwMDE3ZjAwNjAwNDdmN2Y3ZjdmMDA2MDA1N2Y3ZjdmN2Y3ZjAwNjAwMzdmN2Y3ZjAxN2Y2MDA0N2Y3ZjdmN2YwMTdmNjAwMjdmN2UwMDYwMDE3ZjAxN2U2MDAyN2Y3ZjAxN2U2MDA1N2Y3ZjdlN2Y3ZjAxN2Y2MDA2N2U3ZjdmN2Y3ZjdmMDE3ZjYwMDE3ZTAwNjAwMDAxN2U2MDAxN2UwMTdmNjAwNDdmN2Y3ZTdmMDA2MDA1N2U3ZjdmN2Y3ZjAxN2Y2MDA0N2Y3ZjdmN2UwMDYwMDE3ZTAxN2U2MDA0N2Y3ZTdmN2YwMDYwMDI3ZTdmMDAwMmMxMDcyOTAzNjU2ZTc2MTI2ZDYxNmU2MTY3NjU2NDUzNjk2NzZlNjE2YzQ1NzI3MjZmNzIwMDA2MDM2NTZlNzYwZTYyNjk2NzQ5NmU3NDUzNjU3NDQ5NmU3NDM2MzQwMDBiMDM2NTZlNzYwOTYyNjk2NzQ5NmU3NDQxNjQ2NDAwMDUwMzY1NmU3NjBiNzM2OTY3NmU2MTZjNDU3MjcyNmY3MjAwMDAwMzY1NmU3NjBhNmQ0Mjc1NjY2NjY1NzI0ZTY1NzcwMDAzMDM2NTZlNzYwZDZkNDI3NTY2NjY2NTcyNDE3MDcwNjU2ZTY0MDAwNDAzNjU2ZTc2MDk2ZDQyNzU2NjY2NjU3MjQ1NzEwMDA0MDM2NTZlNzYwZDZkNDI3NTY2NjY2NTcyNDY2OTZlNjk3MzY4MDAwMTAzNjU2ZTc2MjI2ZDYxNmU2MTY3NjU2NDRkNzU2Yzc0Njk1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ0ZTQ2NTQ0NTc4NjU2Mzc1NzQ2NTAwMGUwMzY1NmU3NjFiNmQ2MTZlNjE2NzY1NjQ0NTc4NjU2Mzc1NzQ2NTRmNmU0NDY1NzM3NDQzNmY2ZTc0NjU3ODc0MDAwZjAzNjU2ZTc2MGQ2ZDYxNmU2MTY3NjU2NDQzNjE2YzZjNjU3MjAwMDYwMzY1NmU3NjEwNmQ2MTZlNjE2NzY1NjQ1MzQzNDE2NDY0NzI2NTczNzMwMDA2MDM2NTZlNzYxMzZkNjE2ZTYxNjc2NTY0NGY3NzZlNjU3MjQxNjQ2NDcyNjU3MzczMDAwNjAzNjU2ZTc2MWM2ZDYxNmU2MTY3NjU2NDQ3NjU3NDRkNzU2Yzc0Njk0NTUzNDQ1NDQzNjE2YzZjNTY2MTZjNzU2NTAwMDYwMzY1NmU3NjEyNmQ0Mjc1NjY2NjY1NzI0NzY1NzQ0MTcyNjc3NTZkNjU2ZTc0MDAwNDAzNjU2ZTc2MTI2ZDQyNzU2NjY2NjU3MjQxNzA3MDY1NmU2NDQyNzk3NDY1NzMwMDA5MDM2NTZlNzYxOTYyNjk2NzQ5NmU3NDQ3NjU3NDU1NmU3MzY5Njc2ZTY1NjQ0MTcyNjc3NTZkNjU2ZTc0MDAwMDAzNjU2ZTc2MWI3MzZkNjE2YzZjNDk2ZTc0NDc2NTc0NTU2ZTczNjk2NzZlNjU2NDQxNzI2Nzc1NmQ2NTZlNzQwMDBjMDM2NTZlNzYxMDZkNDI3NTY2NjY2NTcyNDc2NTc0NGM2NTZlNjc3NDY4MDAwMTAzNjU2ZTc2MGY2NzY1NzQ0ZTc1NmQ0MTcyNjc3NTZkNjU2ZTc0NzMwMDAzMDM2NTZlNzYxNjczNmQ2MTZjNmM0OTZlNzQ0NjY5NmU2OTczNjg1NTZlNzM2OTY3NmU2NTY0MDAxMDAzNjU2ZTc2MDk2MjY5Njc0OTZlNzQ1Mzc1NjIwMDA1MDM2NTZlNzYwYTY3NjU3NDQ3NjE3MzRjNjU2Njc0MDAxMTAzNjU2ZTc2MGY2MzZjNjU2MTZlNTI2NTc0NzU3MjZlNDQ2MTc0NjEwMDAyMDM2NTZlNzYwZjZkNDI3NTY2NjY2NTcyNTM2NTc0NDI3OTc0NjU3MzAwMDkwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NDM2ZDcwMDAwNDAzNjU2ZTc2MGE2MjY5Njc0OTZlNzQ1NDQ0Njk3NjAwMDUwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NGQ3NTZjMDAwNTAzNjU2ZTc2MTk2ZDQyNzU2NjY2NjU3MjQ2NzI2ZjZkNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjE3NmQ0Mjc1NjY2NjY1NzI1NDZmNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NTA2Zjc3MDAwNTAzNjU2ZTc2MTQ2ZDQyNzU2NjY2NjU3MjQzNmY3MDc5NDI3OTc0NjU1MzZjNjk2MzY1MDAwYTAzNjU2ZTc2MTI2ZDQyNzU2NjY2NjU3MjUzNzQ2ZjcyNjE2NzY1NGM2ZjYxNjQwMDA0MDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU1Mzc0NmY3MjY1MDAwNDAzNjU2ZTc2MGU2MzY4NjU2MzZiNGU2ZjUwNjE3OTZkNjU2ZTc0MDAwMjAzNjU2ZTc2MTc2ZDYxNmU2MTY3NjU2NDQ3NjU3NDQyNjE2MzZiNTQ3MjYxNmU3MzY2NjU3MjczMDAwMDAzNjU2ZTc2MGY2ZDYxNmU2MTY3NjU2NDU3NzI2OTc0NjU0YzZmNjcwMDAwMDM2NTZlNzYxNDYyNjk2NzQ5NmU3NDQ2Njk2ZTY5NzM2ODU1NmU3MzY5Njc2ZTY1NjQwMDA2MDM2NTZlNzYwNjY2Njk2ZTY5NzM2ODAwMDAwMzY1NmU3NjBhNjI2OTY3NDk2ZTc0NTM2OTY3NmUwMDAxMDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNDc2NTc0NDI3OTc0NjU1MzZjNjk2MzY1MDAwYTAzZDMwMWQxMDEwMTAzMDgwMjAxMTIwMTA0MDAwMTA3MDYwNjA2MDAwNDAxMDkwMTAwMDEwMDAwMDAwMDEzMDMwMDE0MDMwMzAzMDIwMzAxMDcwNDAwMDMwOTAxMDkwOTA5MDAwNzA3MDEwMDA2MDYwMTA2MDYwYzA1MDEwODA1MDAwMTBiMDAwODA3MTUwNzA4MDgwMDBhMDAxNjAxMDEwNjAxMDAwMDAwMDUwMDAwMDEwMzAwMDYwMTAwMTcwNTA1MGEwNzA0MDAwNDBhMDAwNDA0MDQwMDA0MDQwNDA0MDQwMTAxMDAwNDBkMDcwNzA3MDgwYTAwMDUwMTAxMDUwNTA2MDEwMTAwMGIwYjAxMDEwMTAxMDEwNTBkMDEwNTAwMDAwMDA1MDUwMDAwMDAwMDAwMGMwNzA3MDcwNzAwMDAwODE4MDMwMzAzMDAwMzAzMDAwMTA0MDcwMzAzMDMwMzAxMDEwMzAzMDMwMzAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwODA4MDUwMzAxMDAwMzA2MTYwMzdmMDE0MTgwODAwODBiN2YwMDQxZTlkYjA4MGI3ZjAwNDFmMGRiMDgwYjA3YzcwNTIwMDY2ZDY1NmQ2ZjcyNzkwMjAwMDQ2OTZlNjk3NDAwZGIwMTA3NzU3MDY3NzI2MTY0NjUwMGRjMDEwNzY0NjU3MDZmNzM2OTc0MDBkZDAxMDg3NzY5NzQ2ODY0NzI2MTc3MDBkZTAxMDg2MzZmNmQ3MDZmNzU2ZTY0MDBkZjAxMGU2NzY1NzQ1NDZmNzQ2MTZjNDE3MzczNjU3NDczMDBlMDAxMGY2NzY1NzQ1NjYxNzU2Yzc0NDE2NDY0NzI2NTczNzMwMGUxMDExNzY3NjU3NDQxNzM3MzY1NzQ1NDZmNmI2NTZlNDk2NDY1NmU3NDY5NjY2OTY1NzIwMGUyMDExZDY3NjU3NDRkNmY2ZTY1Nzk0ZDYxNzI2YjY1NzQ1NDZmNmI2NTZlNDk2NDY1NmU3NDY5NjY2OTY1NzIwMGUzMDEyMjY3NjU3NDRkNmY2ZTY1Nzk0ZDYxNzI2YjY1NzQ1NTZlNjQ2NTcyNmM3OTY5NmU2NzQ5NjQ2NTZlNzQ2OTY2Njk2NTcyMDBlNDAxMWY2NzY1NzQ0MjZmNmY3Mzc0NjU3MjUzNzQ2MTZiNjU2NDU0NmY2YjY1NmU0OTY0NjU2ZTc0Njk2NjY5NjU3MjAwZTUwMTE0Njc2NTc0NDM2ZjZlNzQ3MjZmNmM2YzY1NzI0MTY0NjQ3MjY1NzM3MzAwZTYwMTE1Njc2NTc0NGQ2ZjZlNjU3OTRkNjE3MjZiNjU3NDQxNjQ2NDcyNjU3MzczMDBlNzAxMWQ2NzY1NzQ1NzcyNjE3MDcwNjU2NDQ1Njc2YzY0NDM2ZjZlNzQ3MjYxNjM3NDQxNjQ2NDcyNjU3MzczMDBlODAxMWQ2NzY1NzQ1NzcyNjE3MDcwNjU2NDQ1Njc2YzY0NTQ2ZjZiNjU2ZTQ5NjQ2NTZlNzQ2OTY2Njk2NTcyMDBlOTAxMTE2NzY1NzQ0MjZmNmY3Mzc0NjU3MjQxNjQ2NDcyNjU3MzczMDBlYTAxMTk2NzY1NzQ0MzZmNmQ3MDZmNzU2ZTY0NTg0NTc4NjM2ODYxNmU2NzY1NTM3NzYxNzA3MzAwZWIwMTE3Njc2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQxNzM2ODczNzc2MTcwNTM3NzYxNzA3MzAwZWMwMTE2Njc2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQ2NjU2NTczNTA2NTcyNjM2NTZlNzQwMGVkMDExOTY3NjU3NDUwNjU3MjY2NmY3MjZkNjE2ZTYzNjU0NjY1NjU3MzUwNjU3MjYzNjU2ZTc0MDBlZTAxMGU3Mzc0NjE2YjY1NDk2ZTQyNmY2ZjczNzQ2NTcyMDBlZjAxMWI3MjY1NjI2MTZjNjE2ZTYzNjU1MDZmNzI3NDY2NmY2YzY5NmY0OTZlNDI2ZjZmNzM3NDY1NzIwMGYwMDExMjc1NmU3Mzc0NjE2YjY1NDY3MjZmNmQ0MjZmNmY3Mzc0NjU3MjAwZjEwMTE4NjM2YzYxNjk2ZDRkNzU2Yzc0Njk3MDZjNjU0NjcyNmY2ZDQyNmY2ZjczNzQ2NTcyMDBmMjAxMTk3MzY1NzQ1MDY1NzI2NjZmNzI2ZDYxNmU2MzY1NDY2NTY1NzM1MDY1NzI2MzY1NmU3NDAwZjMwMTE2NzM2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQ2NjU2NTczNTA2NTcyNjM2NTZlNzQwMGY0MDExMDczNjU3NDQzNmY2ZDcwNmY3NTZlNjQ1Mzc3NjE3MDczMDBmNTAxMGQ2NzY1NzQ0ZTYxNzQ3NTcyNjE2YzQxNTA1OTAwZjYwMTA4NjM2MTZjNmM0MjYxNjM2YjAwZjcwMTBhNWY1ZjY0NjE3NDYxNWY2NTZlNjQwMzAxMGI1ZjVmNjg2NTYxNzA1ZjYyNjE3MzY1MDMwMjBhOWFhOTAxZDEwMTE2MDEwMTdmMTAyYTIyMDE0MjAwMTAwMTIwMDEyMDAxMjAwMDEwMDIyMDAxMGIxOTAxMDE3ZjQxYzg4ZDA4NDFjODhkMDgyODAyMDA0MTAxNmIyMjAwMzYwMjAwMjAwMDBiMmUwMDAyNDAyMDAxMjAwMjRkMDQ0MDIwMDIyMDA0NGQwZDAxMTAyYzAwMGIxMDJjMDAwYjIwMDAyMDAyMjAwMTZiMzYwMjA0MjAwMDIwMDEyMDAzNmEzNjAyMDAwYjBiMDA0MWI4OGQwODQxMGUxMDAzMDAwYjEzMDEwMTdmMTAyYTIyMDEyMDAwYWQ0MmZmMDE4MzEwMDEyMDAxMGIyMTAxMDE3ZjEwMmEyMTAxMjAwMDQyMDA1MzA0NDA0MWIyODUwODQxMTExMDAzMDAwYjIwMDEyMDAwMTAwMTIwMDEwYjBmMDEwMTdmMTAwNDIyMDEyMDAwMTAwNTFhMjAwMTBiMGIwMDIwMDAyMDAxMTAwNjQxMDA0YTBiMmQwMTAxN2YyMzAwNDEyMDZiMjIwMjI0MDAyMDAyMjAwMDEwMzI0MWMwODAwODQxMDgxMDMzMjAwMjIwMDEzNjAyMTgyMDAyMTAzNDIwMDI0MTIwNmEyNDAwMGIxOTAwMjAwMDQxZmVmZmZmZmYwNzQ2MDQ0MDQxYzg4MDA4NDExOTEwMDMwMDBiMjAwMDBiMmEwMDIwMDIyMDAzMTA0ZDIxMDIxMDQzMjEwMzIwMDA0MjdmMzcwMzA4MjAwMDIwMDMzNjAyMDQyMDAwMjAwMjM2MDIwMDIwMDAyMDAxMzYwMjEwMGI3ZDAxMDM3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDAyOTAzMDgxMDcxMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUyMTAyMTAxNzQxMDAyMTAwMjAwMjEwMTIyMTAzMjAwMTQxMDAzNjAyMGMyMDAxMjAwMjM2MDIwNDIwMDEyMDAzNDEwMjc2MjIwMjM2MDIwODAzNDAyMDAwMjAwMjRmNDUwNDQwMjAwMTQxMDQ2YTEwNzUxYTIwMDEyODAyMDgyMTAyMjAwMTI4MDIwYzIxMDAwYzAxMGIwYjIwMDE0MTEwNmEyNDAwMGIzNjAxMDI3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDE0MTA4NmExMDM2MjAwMTI4MDIwODIxMDIyMDAwMjAwMTJkMDAwYzQxMDE3MTNhMDAwNDIwMDAyMDAyMzYwMjAwMjAwMTQxMTA2YTI0MDAwYjZkMDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMjAwMDAyN2Y0MWUwZGIwODJkMDAwMDIyMDI0NTA0NDA0MWUwZGIwODQxMDEzYTAwMDA0MWRjZGIwODQxMDAzNjAyMDAyMDAxNDEwODZhNDEwMDEwOWYwMTIwMDEyODAyMDgyMDAxMjgwMjBjNDFiODhkMDg0MTAwMTA1NzEwNDMwYzAxMGI0MWI4OGQwODQxMDAxMDRkMGIzNjAyMDAyMDAwMjAwMjQxMDE3MzNhMDAwNDIwMDE0MTEwNmEyNDAwMGIwYjAwMjAwMDIwMDExMDM4MTAwNzFhMGI0OTAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAxM2EwMDBjMjAwMjIwMDAzNjAyMDgyMDAyNDEwODZhMTBhNTAxMjAwMjI4MDIwODIwMDIyZDAwMGMwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAyNDExMDZhMjQwMDBiMGUwMDIwMDA0MThhODUwODQxMGIxMDNhMTAzYjBiMTMwMDIwMDAyMDAwMjAwMTIwMDIxMDUyMjAwMTIwMDIxMDg1MDEwYjBkMDAyMDAwMTAyYTIyMDAxMDFkMWEyMDAwMGIwYTAwMjAwMDEwM2QyMDAxMTAzZTBiMGYwMTAxN2YxMDJhMjIwMTIwMDAxMDFjMWEyMDAxMGI1MTAxMDI3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwMTAxMjIyMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwYTMwMTIwMDEyMDAwMTBiZDAxMjAwMjQxMTA2YTI0MDAwYjBhMDAyMDAwMTAzZDIwMDExMDQwMGI1MTAxMDI3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwMTAxMjIyMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwMGYxYTIwMDEyMDAwMTA4YjAxMjAwMjQxMTA2YTI0MDAwYjA5MDAyMDAwMjAwMTEwMDMwMDBiNTAwMTA0N2YxMDQzMjEwNjEwNDMyMTA3MjMwMDQxMTA2YjIyMDQyNDAwMTA0MzIxMDUyMDAxMTAyZjIxMDEyMDA0MjAwMzEwMjkzNjAyMGMyMDA0MjAwMjM3MDMwMDIwMDQyMDAxMzYwMjA4MjAwNTIwMDQxMDQ0MjAwMDIwMDU0MjAwMjAwNjIwMDcxMDA4MWEyMDA0NDExMDZhMjQwMDBiMTMwMTAxN2YxMDJhMjIwMDQxYjg4ZDA4NDEwMDEwMTgxYTIwMDAwYmQyMDEwMjAyN2YwMTdlMjMwMDQxMTA2YjIyMDMyNDAwMjAwMzIwMDEyODAyMDgyMjAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIzNjAyMDAyMDAzMjAwMTI4MDIwYzIyMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjM2MDIwYzIwMDMyMDAxMjkwMzAwMjIwNDQyMzg4NjIwMDQ0MjgwZmUwMzgzNDIyODg2ODQyMDA0NDI4MDgwZmMwNzgzNDIxODg2MjAwNDQyODA4MDgwZjgwZjgzNDIwODg2ODQ4NDIwMDQ0MjA4ODg0MjgwODA4MGY4MGY4MzIwMDQ0MjE4ODg0MjgwODBmYzA3ODM4NDIwMDQ0MjI4ODg0MjgwZmUwMzgzMjAwNDQyMzg4ODg0ODQ4NDM3MDIwNDIwMDAyMDAzNDExMDEwMGYxYTIwMDM0MTEwNmEyNDAwMGIxNTAwMjAwMDIwMDEyMDAyMjAwMzIwMDQxMDJhMjIwMTEwMDkxYTIwMDEwYjBjMDEwMTdmMTAyYTIyMDAxMDBhMjAwMDBiMGMwMTAxN2YxMDJhMjIwMDEwMGIyMDAwMGIwYzAxMDE3ZjEwMmEyMjAwMTAwYzIwMDAwYjE1MDAxMDQ4MTA0NjEwMzAwNDQwMGYwYjQxOTI4ZDA4NDEyNDEwMDMwMDBiMmIwMTAxN2Y0MWU4ZGIwODJkMDAwMDIyMDAwNDQwNDE2YjQxZmZmZmZmZmYwNzIwMDAxYjBmMGI0MWU4ZGIwODQxMDEzYTAwMDA0MTZiMTAwZDQxNmIwYjBkMDAyMDAwMTAyYTIyMDAxMDBlMWEyMDAwMGIyZTAxMDE3ZjQxZDU4MzA4NDExNzEwNGQyMjA0MjAwMDIwMDExMDBmMWEyMDA0NDFlYzgzMDg0MTAzMTAwZjFhMjAwNDIwMDIyMDAzMTAwZjFhMjAwNDEwMDAwMDBiMTEwMTAxN2YxMDJhMjIwMjIwMDAyMDAxMTAxODFhMjAwMjBiNDYwMTAxN2YyMzAwNDExMDZiMjIwMjI0MDAyMDAyMjAwMTQxMTg3NDIwMDE0MTgwZmUwMzcxNDEwODc0NzIyMDAxNDEwODc2NDE4MGZlMDM3MTIwMDE0MTE4NzY3MjcyMzYwMjBjMjAwMDIwMDI0MTBjNmE0MTA0MTAwZjFhMjAwMjQxMTA2YTI0MDAwYjBlMDEwMTdmNDEwMDEwMmEyMjAwMTAxMDIwMDAwYjFmMDAyMDAwMTA0YjIyMDAxMDEyNDEyMDQ3MDQ0MDIwMDEyMDAyNDFiMDg2MDg0MTEwMTA0YzAwMGIyMDAwMGJkOTAzMDEwOTdmMjMwMDQxNDA2YTIyMDEyNDAwMjAwMDEwNGIyMTAyMTA0MzIxMDYyMDAyMTAxMjIxMDAyMDAxNDEyNDZhNDEwMDNhMDAwMDIwMDE0MTIwNmEyMDAwMzYwMjAwMjAwMTIwMDIzNjAyMWMyMDAxMjAwMDM2MDIxODIwMDE0MTAwMzYwMjE0NDEwMDIxMDIwMzdmMjAwMDIwMDI0NjA0N2YyMDAxMmQwMDI0MDQ0MDQxZGNkYjA4NDEwMDM2MDIwMDQxZTBkYjA4NDEwMDNhMDAwMDBiMjAwMTQxNDA2YjI0MDAyMDA2MDUyMDAxNDExNDZhMjIwMDQxOTc4NzA4NDExNjEwM2EyMTA0MjAwMDQxOTc4NzA4NDExNjEwNTIyMTAwMTA0MzIxMDMwMzQwMjAwMDA0NDAyMDAxNDExNDZhMjIwNTQxOTc4NzA4NDExNjEwNTIyMTA3MjAwNTQxOTc4NzA4NDExNjEwNTMyMTA4MjAwNTQxOTc4NzA4NDExNjEwM2EyMTA5NDEwMDIxMDIwMjQwMDI0MDAyNDAyMDA1NDE5Nzg3MDg0MTE2MTA1NDQxZmYwMTcxMGUwMjAyMDEwMDBiNDE5Nzg3MDg0MTE2NDFlZDg2MDg0MTBkMTA0YzAwMGI0MTAxMjEwMjBiMjAwMTIwMDIzYTAwMzQyMDAxMjAwOTM2MDIzMDIwMDEyMDA4MzYwMjJjMjAwMTIwMDczNjAyMjgyMDAzMjAwMTQxMjg2YTEwNTUyMDAwNDEwMTZiMjEwMDBjMDEwYjBiMjAwMTQyMDAzNzAzMjgyMDAxMjAwNDQxMTg3NDIwMDQ0MTgwZmUwMzcxNDEwODc0NzIyMDA0NDEwODc2NDE4MGZlMDM3MTIwMDQ0MTE4NzY3MjcyMzYwMjNjMjAwMTQxMDg2YTIwMDE0MTI4NmEyMjAwNDEwMDQxMDQxMDU2MjAwMTI4MDIwODIwMDEyODAyMGMyMDAxNDEzYzZhMjIwMjQxMDQxMDU3MjAwMTIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIzYzIwMDEyMDAwNDEwNDQxMDgxMDU2MjAwMTI4MDIwMDIwMDEyODAyMDQyMDAyNDEwNDEwNTcyMDA2MjAwMDQxMDgxMDBmMWEyMDAxMjgwMjE0MjEwMjIwMDEyODAyMTgyMTAwMGMwMTBiMGIwYjM3MDIwMTdmMDE3ZTIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTAwMzYwMjBjMjAwMDIwMDM0MTBjNmEyMjAwNDEwNDIwMDEyMDAyMTBjNTAxMjAwMDQxMDQxMGIxMDEyMDAzNDExMDZhMjQwMGE3MGIwZDAwMjAwMDQxMjAyMDAxMjAwMjEwODUwMTBiMzAwMTAxN2YyMzAwNDExMDZiMjIwMzI0MDAyMDAzNDEwMDNhMDAwZjIwMDAyMDAzNDEwZjZhNDEwMTIwMDEyMDAyMTBjNTAxMjAwMzJkMDAwZjIwMDM0MTEwNmEyNDAwMGJmNjAyMDEwNTdmMjMwMDQxZDAwMDZiMjIwMjI0MDAyMDAyNDIwMDM3MDAzNTIwMDI0MjAwMzcwMzMwMjAwMjIwMDEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyNDAyMDAyNDEyODZhMjAwMjQxMzA2YTIyMDU0MTAwNDEwNDEwOWIwMTIwMDIyODAyMjgyMDAyMjgwMjJjMjAwMjQxNDA2YjIyMDQ0MTA0MTA1NzIwMDI0MWM4MDA2YTQxMDAzYTAwMDAyMDAyNDIwMDM3MDM0MDIwMDIyMDAxMjgwMjA0MjIwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMzYwMjRjMjAwMjQxMjA2YTIwMDQ0MTAwNDEwNDEwOWMwMTIwMDIyODAyMjAyMDAyMjgwMjI0MjAwMjQxY2MwMDZhMjIwNjQxMDQxMDU3MjAwMjIwMDE0MTA4NmEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyNGMyMDAyNDExODZhMjAwNDQxMDQ0MTA4MTA5YzAxMjAwMjI4MDIxODIwMDIyODAyMWMyMDA2NDEwNDEwNTcyMDAyMjAwMTQxMGM2YTJkMDAwMDNhMDA0YzIwMDI0MTEwNmEyMDA0NDEwODQxMDkxMDljMDEyMDAyMjgwMjEwMjAwMjI4MDIxNDIwMDY0MTAxMTA1NzIwMDI0MTA4NmEyMDA1NDEwNDQxMGQxMDliMDEyMDAyMjgwMjA4MjAwMjI4MDIwYzIwMDQ0MTA5MTA1NzIwMDAyMDA1NDEwZDEwMGYxYTIwMDI0MWQwMDA2YTI0MDAwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwODEwZjkwMTBiYjUwMjAxMDY3ZjIwMDEyMDAzNDYwNDQwMjAwMTIyMDM0MTEwNGYwNDQwMjAwMDQxMDAyMDAwNmI0MTAzNzEyMjA0NmEyMTA1MjAwNDA0NDAyMDAyMjEwMTAzNDAyMDAwMjAwMTJkMDAwMDNhMDAwMDIwMDE0MTAxNmEyMTAxMjAwMDQxMDE2YTIyMDAyMDA1NDkwZDAwMGIwYjIwMDUyMDAzMjAwNDZiMjIwMzQxN2M3MTIyMDY2YTIxMDAwMjQwMjAwMjIwMDQ2YTIyMDQ0MTAzNzEwNDQwMjAwNjQxMDA0YzBkMDEyMDA0NDEwMzc0MjIwMTQxMTg3MTIxMDcyMDA0NDE3YzcxMjIwODQxMDQ2YTIxMDI0MTAwMjAwMTZiNDExODcxMjEwOTIwMDgyODAyMDAyMTAxMDM0MDIwMDUyMDAxMjAwNzc2MjAwMjI4MDIwMDIyMDEyMDA5NzQ3MjM2MDIwMDIwMDI0MTA0NmEyMTAyMjAwNTQxMDQ2YTIyMDUyMDAwNDkwZDAwMGIwYzAxMGIyMDA2NDEwMDRjMGQwMDIwMDQyMTAyMDM0MDIwMDUyMDAyMjgwMjAwMzYwMjAwMjAwMjQxMDQ2YTIxMDIyMDA1NDEwNDZhMjIwNTIwMDA0OTBkMDAwYjBiMjAwMzQxMDM3MTIxMDMyMDA0MjAwNjZhMjEwMjBiMjAwMzA0NDAyMDAwMjAwMzZhMjEwMTAzNDAyMDAwMjAwMjJkMDAwMDNhMDAwMDIwMDI0MTAxNmEyMTAyMjAwMDQxMDE2YTIyMDAyMDAxNDkwZDAwMGIwYjBmMGIxMDJjMDAwYmEyMDMwMTA3N2YyMzAwNDE0MDZhMjIwMTI0MDAyMDAwMTA0YjIxMDIxMDQzMjEwNTIwMDIxMDEyMjEwMDIwMDE0MTJjNmE0MTAwM2EwMDAwMjAwMTQxMjg2YTIwMDAzNjAyMDAyMDAxMjAwMjM2MDIyNDIwMDEyMDAwMzYwMjIwMjAwMTQxMDAzNjAyMWM0MTAwMjEwMjAzN2YyMDAwMjAwMjQ2MDQ3ZjIwMDEyZDAwMmMwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAxNDE0MDZiMjQwMDIwMDUwNTIwMDE0MTFjNmEyMjAwNDFhZDg3MDg0MTE4MTAzYTIxMDMyMDAwNDFhZDg3MDg0MTE4MTA1MjIxMDAxMDQzMjEwMjAzNDAyMDAwMDQ0MDIwMDE0MTFjNmEyMjA0NDFhZDg3MDg0MTE4MTA1MjIxMDYyMDA0NDFhZDg3MDg0MTE4MTA1MzIxMDcyMDA0NDFhZDg3MDg0MTE4MTAzYTIxMDQyMDAxMjAwNjM2MDIzODIwMDEyMDA0MzYwMjM0MjAwMTIwMDczNjAyMzAyMDAyMjAwMTQxMzA2YTEwNTkyMDAwNDEwMTZiMjEwMDBjMDEwYjBiMjAwMTQyMDAzNzAzMzAyMDAxMjAwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMzYwMjNjMjAwMTQxMTA2YTIwMDE0MTMwNmEyMjAwNDEwMDQxMDQxMDU2MjAwMTI4MDIxMDIwMDEyODAyMTQyMDAxNDEzYzZhMjIwMzQxMDQxMDU3MjAwMTIwMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjM2MDIzYzIwMDE0MTA4NmEyMDAwNDEwNDQxMDgxMDU2MjAwMTI4MDIwODIwMDEyODAyMGMyMDAzNDEwNDEwNTcyMDA1MjAwMDQxMDgxMDBmMWEyMDAxMjgwMjFjMjEwMjIwMDEyODAyMjAyMTAwMGMwMTBiMGIwYmI4MDIwMTA0N2YyMzAwNDE0MDZhMjIwMjI0MDAyMDAyNDEyODZhNDEwMDM2MDIwMDIwMDI0MjAwMzcwMzIwMjAwMjIwMDEyODAyMDgyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyMzAyMDAyNDExODZhMjAwMjQxMjA2YTIyMDU0MTAwNDEwNDEwOWEwMTIwMDIyODAyMTgyMDAyMjgwMjFjMjAwMjQxMzA2YTIyMDQ0MTA0MTA1NzIwMDI0MjAwMzcwMzMwMjAwMjIwMDEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyM2MyMDAyNDExMDZhMjAwNDQxMDA0MTA0MTA1NjIwMDIyODAyMTAyMDAyMjgwMjE0MjAwMjQxM2M2YTIyMDM0MTA0MTA1NzIwMDIyMDAxMjgwMjA0MjIwMTQxMTg3NDIwMDE0MTgwZmUwMzcxNDEwODc0NzIyMDAxNDEwODc2NDE4MGZlMDM3MTIwMDE0MTE4NzY3MjcyMzYwMjNjMjAwMjQxMDg2YTIwMDQ0MTA0NDEwODEwNTYyMDAyMjgwMjA4MjAwMjI4MDIwYzIwMDM0MTA0MTA1NzIwMDIyMDA1NDEwNDQxMGMxMDlhMDEyMDAyMjgwMjAwMjAwMjI4MDIwNDIwMDQ0MTA4MTA1NzIwMDAyMDA1NDEwYzEwMGYxYTIwMDI0MTQwNmIyNDAwMGIxNDAwMTAxMzIwMDA0NjA0NDAwZjBiNDE5Mjg0MDg0MTE5MTAwMzAwMGIwOTAwMjAwMDEwNWMxMDA3MWEwYjFkMDAyMDAwMTBhNzAxMjIwMDEwMTI0MTIwNDcwNDQwNDFiMDg2MDg0MTEwMTA4ODAxMDAwYjIwMDAwYjBhMDAyMDAwMTBhNzAxMTAwNzFhMGIwODAwMjAwMDEwNWYxMDE0MGI2MTAyMDI3ZjAxN2UyMzAwNDExMDZiMjIwMTI0MDAyMDAxNDIwMDM3MDMwODIwMDAxMGE3MDEyMjAwMTAxMjIyMDI0MTA5NGYwNDQwNDE5NTg1MDg0MTBlMTA4ODAxMDAwYjIwMDEyMDAxNDEwODZhMjAwMjEwYjAwMTIwMDA0MTAwMjAwMTI4MDIwMDIyMDAyMDAxMjgwMjA0MjIwMjEwOGEwMTFhMjAwMDIwMDIxMGIxMDEyMDAxNDExMDZhMjQwMDBiMWYwMDIwMDAyMDAxMjAwMjEwMTUyMDAwMTA2MTQxZmYwMTcxMDQ0MDBmMGI0MWFiODQwODQxMzAxMDAzMDAwYjE1MDA0MTAyNDEwMTIwMDAxMDI3MjIwMDFiNDEwMDIwMDA0MTAwNGUxYjBiZjgwMTAxMDQ3ZjIzMDA0MWQwMDA2YjIyMDUyNDAwMjAwNTIwMDQzNjAyMjgyMDA1NDEyMDZhNDFkYjg0MDg0MTE0MTA2MzIwMDUyODAyMjAyMTA3MjAwNTI4MDIyNDIyMDYyMDAzMTA2NDIwMDQxMDY1MjEwMzEwNDMyMjA4MjAwM2FkMTA2NjIwMDYyMDA4MTA0ZTIwMDUyMDA0MTAxMjM2MDIzNDIwMDU0MTAwMzYwMjMwMjAwNTIwMDU0MTI4NmEzNjAyMmMwMzQwMjAwNTQxMzg2YTIwMDU0MTJjNmExMDY3MjAwNTI5MDMzODUwMDQ0MDIwMDUyMDA3MjAwNjIwMDEyMDAyMTA2ODIwMDUyODAyMDQyMTAxMjAwMDIwMDUyODAyMDAzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MWQwMDA2YTI0MDAwNTIwMDUyODAyNGMyMTAzMjAwNTQxMTg2YTIwMDcyMDA2MjAwNTI4MDI0ODEwNjkyMDA1NDExMDZhMjAwNTI4MDIxODIwMDUyODAyMWMyMDA1MjkwMzQwMTA2YTIwMDU0MTA4NmEyMDA1MjgwMjEwMjAwNTI4MDIxNDIwMDMxMDZiMjAwNTI4MDIwYzIxMDYyMDA1MjgwMjA4MjEwNzBjMDEwYjBiMGIxODAwMjAwMTIwMDIxMDRkMjEwMTIwMDAxMDQzMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjEwMDAxMDQzMWEyMDAwMjAwMTI4MDIwMDEwMmYxMDRlMGIwOTAwMjAwMDEwMTI0MTA0NzYwYjM4MDEwMTdmMjMwMDQxMTA2YjIyMDIyNDAwMjAwMjQyMDAzNzAzMDgyMDAyMjAwMTQxMDAyMDAyNDEwODZhMTA4MjAxMjAwMDIwMDIyODAyMDAyMDAyMjgwMjA0MTAxODFhMjAwMjQxMTA2YTI0MDAwYmE3MDEwMjA1N2YwMTdlMjMwMDQxMjA2YjIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjA0NDExMDZhMjIwNTIwMDEyODAyMDg0ZDA0N2UyMDAxMjgwMjAwMjAwMjQxMTA2YTQyMDAzNzAzMDAyMDAyNDIwMDM3MDMwODI4MDIwMDIwMDQyMDAyNDEwODZhMjIwMzQxMTAxMDZmMWEyMDAyNDEwMDM2MDIxYzIwMDMyMDAyNDExYzZhMjIwNjEwOTgwMTIxMDQyMDAzMjAwNjEwOTkwMTIxMDcyMDAwNDExNDZhMjAwMjQxMDg2YTIwMDI0MTFjNmExMDk4MDEzNjAyMDAyMDAwNDExMDZhMjAwNDM2MDIwMDIwMDAyMDA3MzcwMzA4MjAwMTIwMDUzNjAyMDQ0MjAxMDU0MjAwMGIzNzAzMDAyMDAyNDEyMDZhMjQwMDBiOTEwMTAxMDM3ZjIzMDA0MTEwNmIyMjA1MjQwMDAyNDAyMDAzMTAxMjQ1MGQwMDIwMDIyMDAzMTA2ZTIwMDQxMDEyMjEwNjQxMDAyMTAzMDM0MDIwMDM0MTA0NmEyMjA3MjAwNjRiMGQwMTIwMDU0MTAwMzYwMjBjMjAwNDIwMDMyMDA1NDEwYzZhNDEwNDEwNmYxYTIwMDIyMDA1MjgwMjBjMjIwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMTA2ZTIwMDcyMTAzMGMwMDBiMDAwYjIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAyMDA1NDExMDZhMjQwMDBiMTYwMDIwMDIyMDAzMTA2ZTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjIwMDEwMTdmMTA0MzIyMDQyMDAzMTA2NjIwMDIyMDA0MTA0ZTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjE2MDAyMDAzMjAwMjEwNzAyMDAwMjAwMjM2MDIwNDIwMDAyMDAxMzYwMjAwMGJhMzAxMDEwMjdmMjMwMDQxMzA2YjIyMDUyNDAwMjAwNTQxMjg2YTQxZWY4NDA4NDEwZjEwNjMyMDA1NDEyMDZhMjAwNTI4MDIyODIwMDUyODAyMmMyMDA0MjgwMjA4MTA2OTIwMDU0MTE4NmEyMDA1MjgwMjIwMjAwNTI4MDIyNDIwMDQyOTAzMDAxMDZhMjAwNTQxMTA2YTIwMDUyODAyMTgyMDA1MjgwMjFjMjAwNDI4MDIwYzEwNmIyMDA1MjgwMjEwMjEwNDIwMDUyODAyMTQyMTA2MTA0MzFhMjAwNjIwMDMxMDJmMTA0ZTIwMDU0MTA4NmEyMDA0MjAwNjIwMDEyMDAyMTA2ODIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTMwNmEyNDAwMGI3MTAxMDE3ZjIzMDA0MTIwNmIyMjA1MjQwMDIwMDU0MTE4NmE0MWZlODQwODQxMGMxMDYzMjAwNTQxMTA2YTIwMDUyODAyMTgyMDA1MjgwMjFjMjAwMzEwNjkyMDA1NDEwODZhMjAwNTI4MDIxMDIwMDUyODAyMTQyMDA0MTA2YjIwMDUyMDA1MjgwMjA4MjAwNTI4MDIwYzIwMDEyMDAyMTA2ODIwMDUyODAyMDQyMTAxMjAwMDIwMDUyODAyMDAzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTIwNmEyNDAwMGIwZDAwMTA0MzFhMjAwMDIwMDExMDJmMTA0ZTBiMGQwMDIwMDAyMDAxMjAwMjIwMDMxMDhhMDEwYjBkMDAxMDQzMWEyMDAxMjAwMDEwM2QxMDRlMGIwZjAwMjAwMDQyN2Y1MTA0N2UxMDE2MDUyMDAwMGIwYjMwMDEwMTdlMjAwMDI5MDMwODIyMDE0MjdmNTEwNDdlMTAxNjA1MjAwMTBiMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUxMDE3MTA3MzBiM2IwMTAyN2YyMzAwNDExMDZiMjIwMTI0MDAyMDAwMTAxMjIxMDIyMDAxNDEwMDM2MDIwYzIwMDEyMDAwMzYwMjA0MjAwMTIwMDI0MTAyNzYzNjAyMDgyMDAxNDEwNDZhMTA3NTEwM2IyMDAxNDExMDZhMjQwMDBiMjQwMDIwMDAyOTAzMDgxMDcxMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUxMDE3MTAxMjFhMGI3ZDAxMDM3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDAyODAyMDgyMTAzMjAwMTQxMDAzNjAyMGMyMDAwMjgwMjAwMjAwMzQxMDI3NDIwMDE0MTBjNmE0MTA0MTA2ZjQ1MDQ0MDIwMDEyODAyMGMyMTAyMjAwMDIwMDM0MTAxNmEzNjAyMDgyMDAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIxMDJmMjAwMTQxMTA2YTI0MDAwZjBiNDE4YTg1MDg0MTBiNDFlZjgzMDg0MTExMTA0YzAwMGI5MDAyMDIwMjdmMDE3ZTIzMDA0MWQwMDA2YjIyMDIyNDAwMjAwMTI5MDMwODIyMDQ0MjdmNTEwNDdlMTAxNjA1MjAwNDBiMjAwMTI4MDIxMDIwMDEyODAyMTgyMDAxMjgwMjAwMjAwMTI4MDIwNDEwNDUyMTAxMTAxNzIwMDExMDEyMjEwMzIwMDI0MTAwMzYwMjE0MjAwMjIwMDEzNjAyMGMyMDAyMjAwMzQxMDI3NjM2MDIxMDIwMDI0MTBjNmExMDc1MjIwMzEwMTIyMTAxMjAwMjQxM2M2YTQxMDAzYTAwMDAyMDAyNDEzODZhMjAwMTM2MDIwMDIwMDIyMDAzMzYwMjM0MjAwMjIwMDEzNjAyMzAyMDAyNDEwMDM2MDIyYzIwMDI0MTQwNmIyMDAyNDEyYzZhMTA3NzIwMDIyODAyMzAyMDAyMjgwMjJjNDYwNDQwMjAwMjQxMjA2YTIyMDEyMDAyNDFjODAwNmEyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDM0MDM3MDMxODIwMDIyZDAwM2MwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAwMjAwMjI5MDMxODM3MDMwMDIwMDA0MTA4NmEyMDAxMjkwMzAwMzcwMzAwMjAwMjQxZDAwMDZhMjQwMDBmMGI0MThhODUwODQxMGI0MTk1ODUwODQxMGUxMDRjMDAwYjMwMDIwMTdmMDE3ZTIwMDE0MThhODUwODQxMGIxMDNhMjEwMjIwMDExMGJlMDEyMTAzMjAwMDIwMDExMDM5MzYwMjBjMjAwMDIwMDIzNjAyMDgyMDAwMjAwMzM3MDMwMDBiMTAwMDEwNDMxYTIwMDAyMDAxMjgwMjAwMTAzZDEwNGUwYjBlMDAyMDAxNDUwNDQwMjAwMjIwMDAxMDcwMGIwYjgxMDEwMTA1N2YyMzAwNDExMDZiMjIwMzI0MDAxMDQzMTAyZjIxMDQyMDAxMjgwMjAwMTAxMjIxMDUwMzQwMjAwNTIwMDI0MTA0NmEyMjA2NGYwNDQwMjAwMzQxMDAzNjAyMGMyMDAxMjgwMjAwMjAwMjIwMDM0MTBjNmE0MTA0MTA2ZjFhMjAwMzI4MDIwYzIyMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjIwMDQxMDNmMjAwNjIxMDIwYzAxMGIwYjIwMDAyMDA0MTA0ZTIwMDM0MTEwNmEyNDAwMGI4MjAxMDEwNTdmMjMwMDQxMTA2YjIyMDMyNDAwMTA0MzEwMmYyMTA0MjAwMTI4MDIwMDEwMTIyMTA1MDM0MDIwMDUyMDAyNDEwNDZhMjIwNjRmMDQ0MDIwMDM0MTAwMzYwMjBjMjAwMTI4MDIwMDIwMDIyMDAzNDEwYzZhNDEwNDEwNmYxYTIwMDQyMDAzMjgwMjBjMjIwMjQxMTg3NDIwMDI0MTgwZmUwMzcxNDEwODc0NzIyMDAyNDEwODc2NDE4MGZlMDM3MTIwMDI0MTE4NzY3MjcyMTAwNTFhMjAwNjIxMDIwYzAxMGIwYjIwMDAyMDA0MTA0ZTIwMDM0MTEwNmEyNDAwMGI0ZDAxMDI3ZjIzMDA0MTIwNmIyMjAxMjQwMDEwN2QyMTAyMjAwMTQxMTA2YTIwMDA0MTEwNmEyOTAzMDAzNzAzMDAyMDAxNDEwODZhMjAwMDQxMDg2YTI5MDMwMDM3MDMwMDIwMDEyMDAyMzYwMjE4MjAwMTIwMDAyOTAzMDAzNzAzMDAyMDAxMTA3MjIwMDE0MTIwNmEyNDAwMGIwZTAxMDE3ZjEwMmEyMjAwNDIwMDEwMDEyMDAwMGI0ZjAxMDI3ZjIzMDA0MTIwNmIyMjAyMjQwMDEwN2QyMTAzMjAwMjQxMTA2YTIwMDE0MTEwNmEyOTAzMDAzNzAzMDAyMDAyNDEwODZhMjAwMTQxMDg2YTI5MDMwMDM3MDMwMDIwMDIyMDAzMzYwMjE4MjAwMjIwMDEyOTAzMDAzNzAzMDAyMDAwMjAwMjEwNzYyMDAyNDEyMDZhMjQwMDBiNGQwMTAyN2YyMzAwNDEyMDZiMjIwMTI0MDAxMDdkMjEwMjIwMDE0MTEwNmEyMDAwNDExMDZhMjkwMzAwMzcwMzAwMjAwMTQxMDg2YTIwMDA0MTA4NmEyOTAzMDAzNzAzMDAyMDAxMjAwMjM2MDIxODIwMDEyMDAwMjkwMzAwMzcwMzAwMjAwMTEwMzQyMDAxNDEyMDZhMjQwMDBiNzYwMjA1N2YwMTdlMjMwMDQxMTA2YjIyMDEyNDAwMTA3ZDIxMDIyMDAwMjgwMjEwMjEwMzIwMDAyODAyMDQyMTA0MjAwMDI4MDIwMDIxMDUyMDAwMjkwMzA4MjIwNjQyN2Y1MTA0N2UxMDE2MDUyMDA2MGIyMDAzMjAwMjIwMDUyMDA0MTA0NTIxMDAxMDE3MjAwMDEwMTIyMTAyMjAwMTQxMDAzNjAyMGMyMDAxMjAwMDM2MDIwNDIwMDEyMDAyNDEwMjc2MzYwMjA4MjAwMTQxMDQ2YTEwNzUxMDJmMjAwMTQxMTA2YTI0MDAwYjQ3MDEwMjdmMjMwMDQxMTA2YjIyMDIyNDAwMTA0MzIxMDMyMDAyNDIwMDM3MDMwODIwMDIyMDAxYWQ0MmZmMDE4MzQxMDEyMDAyNDEwODZhMTA4MjAxMjAwMzIwMDIyODAyMDAyMDAyMjgwMjA0MTAxODFhMjAwMDIwMDMxMDRlMjAwMjQxMTA2YTI0MDAwYjhmMDIwMjA0N2YwMTdlMjAwMzIwMDE0MjM4ODYyMDAxNDI4MGZlMDM4MzQyMjg4Njg0MjAwMTQyODA4MGZjMDc4MzQyMTg4NjIwMDE0MjgwODA4MGY4MGY4MzQyMDg4Njg0ODQyMDAxNDIwODg4NDI4MDgwODBmODBmODMyMDAxNDIxODg4NDI4MDgwZmMwNzgzODQyMDAxNDIzODg4MjIwODIwMDE0MjI4ODg0MjgwZmUwMzgzODQ4NDg0MzcwMDAwMDI0MDIwMDE1MDA0NDA0MWI4OGQwODIxMDMwYzAxMGIyMDAyMDQ0MDIwMDE0MjdmNTEwNDQwMjAwMzQxMDc2YTIxMDM0MTAxMjEwNDBjMDIwYjIwMDhhN2MwMjIwNTQxMDc3NTIxMDYyMDA1NDEwMDQ4MjEwNTBiMjAwNjQxZmYwMTcxMjEwNjAzNDAwMjQwMDI0MDIwMDQ0MTA4NDcwNDQwMjAwMzIwMDQ2YTJkMDAwMDIyMDcyMDA2NDYwZDAyMjAwMjQ1MjAwNzQxMDc3NjIwMDU0NjcyNDUwNDQwMjAwNDQxMDE2YjIyMDQ0MTA5NGYwZDAyMGIyMDAzMjAwNDZhMjEwMzQxMDgyMDA0NmIyMTA0MGMwNDBiMTAyYzAwMGIxMDJjMDAwYjIwMDQ0MTAxNmEyMTA0MGMwMDBiMDAwYjIwMDAyMDA0MzYwMjA0MjAwMDIwMDMzNjAyMDAwYmEzMDEwMjAzN2YwMTdlMjMwMDQxMTA2YjIyMDMyNDAwMDI3ZjIwMDIyOTAzMDA1MDA0NDAyMDAxMjgwMjEwMjEwNDIwMDMyMDAxMjgwMjAwMjAwMTI4MDIwNDIwMDIyODAyMDgyMDAyMjgwMjBjMTA2ZDIwMDMyODAyMDAyMTA1MjAwMzI4MDIwNDBjMDEwYjEwNDcyMTA0MjAwMzQxMDg2YTIwMDEyODAyMDAyMDAxMjgwMjA0MjAwMTI4MDIxMDIwMDIxMDZjMjAwMzI4MDIwODIxMDUyMDAzMjgwMjBjMGIyMTAyMjAwMTI5MDMwODIxMDYyMDAwMTA3ZDM2MDIxODIwMDAyMDA0MzYwMjEwMjAwMDIwMDYzNzAzMDgyMDAwMjAwMjM2MDIwNDIwMDAyMDA1MzYwMjAwMjAwMzQxMTA2YTI0MDAwYjNmMDEwMTdmMTA0MzIxMDMyMDAwMjAwMTI5MDMwMDM3MDMwMDIwMDA0MTEwNmEyMDAxNDExMDZhMjkwMzAwMzcwMzAwMjAwMDQxMDg2YTIwMDE0MTA4NmEyOTAzMDAzNzAzMDAyMDAzMjAwMjEwNDQyMDAwMjAwMzM2MDIxODBiNTIwMTAyN2YyMzAwNDExMDZiMjIwNDI0MDAyMDA0NDEwODZhMjAwMDI4MDIwODIwMDAyODAyMDAyMjA1MjAwMTEwODYwMTIwMDQyODAyMDg0MTAxNDYwNDQwMjAwNDI4MDIwYzIwMDAyMDAxMjAwNTZhMzYwMjAwMjAwNDQxMTA2YTI0MDAwZjBiMjAwMjIwMDM0MWEzODUwODQxMGYxMDRjMDAwYjFmMDAyMDAxMjAwMjIwMDMxMDA0MjIwMTEwMWYyMTAyMjAwMDIwMDEzNjAyMDQyMDAwMjAwMjQ1MzYwMjAwMGI0ZjAxMDM3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MTA4NmEyMDAwMjgwMjA4MjAwMDI4MDIwMDIyMDMyMDAxMTA4NjAxMjAwMjI4MDIwODQxMDE0NjA0NDAyMDAyMjgwMjBjMjAwMDIwMDEyMDAzNmEzNjAyMDAyMDAyNDExMDZhMjQwMDBmMGI0MWEzODUwODQxMGYxMDg4MDEwMDBiMWEwMTAxN2Y0MWYxODUwODQxMTYxMDRkMjIwMjIwMDAyMDAxMTAwZjFhMjAwMjEwMDAwMDBiMTUwMDQxN2YyMDAwMjAwMTEwMTkyMjAwNDEwMDQ3MjAwMDQxMDA0ODFiMGIwZjAwMjAwMDIwMDEyMDAzMjAwMjEwMjg0MTAwNDcwYjA5MDAyMDAwMjAwMTEwMDUxYTBiMGMwMDIwMDAyMDAwMjAwMTEwMDIyMDAwMGIwYzAwMjAwMDIwMDAyMDAxMTAxYTIwMDAwYjBjMDAyMDAwMjAwMDIwMDExMDFiMjAwMDBiMGEwMDIwMDAyMDAwMjAwMTEwMDIwYjBjMDAyMDAwMjAwMDIwMDExMDYwMjAwMDBiMTAwMTAxN2YxMDJhMjIwMjIwMDAyMDAxMTAwMjIwMDIwYjEwMDEwMTdmMTAyYTIyMDIyMDAwMjAwMTEwMWIyMDAyMGIxMDAxMDE3ZjEwMmEyMjAyMjAwMDIwMDExMDYwMjAwMjBiMTkwMTAxN2YxMDJhMjEwMjQxNzIyMDAxYWQxMDAxMjAwMjIwMDA0MTcyMTAxZTIwMDIwYjBlMDEwMTdmMTA0MzIyMDEyMDAwMTA0NDIwMDEwYjRjMDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMTA0MzIxMDIyMDAxMjAwMDQxMTg3NDIwMDA0MTgwZmUwMzcxNDEwODc0NzIyMDAwNDEwODc2NDE4MGZlMDM3MTIwMDA0MTE4NzY3MjcyMzYwMjBjMjAwMjIwMDE0MTBjNmE0MTA0MTAwZjFhMjAwMTQxMTA2YTI0MDAyMDAyMGI4NDAxMDIwNDdmMDE3ZTIzMDA0MTIwNmIyMjAyMjQwMDIwMDI0MTEwNmE0MjAwMzcwMzAwMjAwMjQyMDAzNzAzMDgyMDAxNDEwMDIwMDI0MTA4NmEyMjAzNDExMDEwNmYyMDAyNDEwMDM2MDIxYzIwMDMyMDAyNDExYzZhMjIwNDEwOTgwMTIxMDUyMDAzMjAwNDEwOTkwMTIxMDYyMDAyNDEwODZhMjAwMjQxMWM2YTEwOTgwMTIxMDMwNDQwNDFjMzg1MDg0MTFkMTAwMzAwMGIyMDAwMjAwMzM2MDIwYzIwMDAyMDA1MzYwMjA4MjAwMDIwMDYzNzAzMDAyMDAyNDEyMDZhMjQwMDBiNzQwMTAxN2YyMzAwNDExMDZiMjIwMjI0MDAyMDAyNDEwMDM2MDIwYzIwMDIyMDAwNDExMDIwMDEyODAyMDAyMjAwMjAwMDQxMDQ2YTIyMDAxMDlkMDEyMDAyNDEwYzZhNDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDEyMDAwMzYwMjAwMjAwMjI4MDIwYzIxMDAyMDAyNDExMDZhMjQwMDIwMDA0MTE4NzQyMDAwNDE4MGZlMDM3MTQxMDg3NDcyMjAwMDQxMDg3NjQxODBmZTAzNzEyMDAwNDExODc2NzI3MjBiYTgwMTAyMDE3ZTAxN2YyMzAwNDExMDZiMjIwMzI0MDAyMDAzNDIwMDM3MDMwODIwMDMyMDAwNDExMDIwMDEyODAyMDAyMjAwMjAwMDQxMDg2YTIyMDAxMDlkMDEyMDAzNDEwODZhNDEwODIwMDMyODAyMDAyMDAzMjgwMjA0MTA1NzIwMDEyMDAwMzYwMjAwMjAwMzI5MDMwODIxMDIyMDAzNDExMDZhMjQwMDIwMDI0MjM4ODYyMDAyNDI4MGZlMDM4MzQyMjg4Njg0MjAwMjQyODA4MGZjMDc4MzQyMTg4NjIwMDI0MjgwODA4MGY4MGY4MzQyMDg4Njg0ODQyMDAyNDIwODg4NDI4MDgwODBmODBmODMyMDAyNDIxODg4NDI4MDgwZmMwNzgzODQyMDAyNDIyODg4NDI4MGZlMDM4MzIwMDI0MjM4ODg4NDg0ODQwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwYzEwZjkwMTBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTBkMTBmOTAxMGIwZjAwMjAwMDIwMDEyMDAyMjAwMzQxMDkxMGY5MDEwYjJmMDAwMjQwMjAwMzIwMDQ0ZDA0NDAyMDAyMjAwNDQ5MGQwMTIwMDAyMDA0MjAwMzZiMzYwMjA0MjAwMDIwMDEyMDAzNmEzNjAyMDAwZjBiMTAyYzAwMGIxMDJjMDAwYmI0MDEwMTAzN2YyMzAwNDExMDZiMjIwNDI0MDAwMjdmMDI0MDIwMDAyZDAwMDg0NTA0NDAyMDAwMjgwMjAwMjIwNTEwMTIyMjA2NDE5MGNlMDA0YjBkMDE0MWUwZGIwODJkMDAwMDBkMDE0MWRjZGIwODIwMDYzNjAyMDA0MWUwZGIwODQxMDEzYTAwMDAyMDA0NDEwODZhMjAwNjEwOWYwMTIwMDU0MTAwMjAwNDI4MDIwODIwMDQyODAyMGMxMDZmMWEyMDAwNDEwMTNhMDAwODBiNDEwMTIwMDEyMDAzNmEyMjAwNDFkY2RiMDgyODAyMDA0YjBkMDExYTIwMDQyMDAxMjAwMDEwYTAwMTIwMDIyMDAzMjAwNDI4MDIwMDIwMDQyODAyMDQxMDU3NDEwMDBjMDEwYjIwMDA0MTAwM2EwMDA4MjAwNTIwMDEyMDAyMjAwMzEwNmYwYjIwMDQ0MTEwNmEyNDAwMGIzZTAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MTA4NmE0MWNjOGQwODQxOTBjZTAwMjAwMTEwZDAwMTIwMDIyODAyMGMyMTAxMjAwMDIwMDIyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDI0MTEwNmEyNDAwMGIzMjAwMDI0MDIwMDEyMDAyNGQwNDQwMjAwMjQxOTBjZTAwNGQwZDAxMTAyYzAwMGIxMDJjMDAwYjIwMDAyMDAyMjAwMTZiMzYwMjA0MjAwMDIwMDE0MWNjOGQwODZhMzYwMjAwMGIxOTAwMjAwMDQxZmVmZmZmZmYwNzQ2MDQ0MDQxZTA4NTA4NDEwZDEwMDMwMDBiMjAwMDBiNGQwMTAxN2YyMzAwNDExMDZiMjIwMTI0MDAyMDAwMTAxMjQxMDQ0NjA0NDAyMDAxNDEwMDM2MDIwYzIwMDA0MTAwMjAwMTQxMGM2YTQxMDQxMDhhMDExYTQxZmVmZmZmZmYwNzIwMDAyMDAxMjgwMjBjNDFjNThlYjFhMjA0NDYxYjIxMDAwYjIwMDE0MTEwNmEyNDAwMjAwMDBiODAwMTAxMDI3ZjIzMDA0MTEwNmIyMjAzMjQwMDAyNDAwMjQwMjAwMDJkMDAwNDA0NDA0MTkwY2UwMDQxZGNkYjA4MjgwMjAwMjIwNDZiMjAwMjQ5MGQwMTIwMDM0MTA4NmEyMDA0MjAwMjIwMDQ2YTIyMDAxMGE0MDEyMDAzMjgwMjA4MjAwMzI4MDIwYzIwMDEyMDAyMTA1NzQxZGNkYjA4MjAwMDM2MDIwMDBjMDIwYjIwMDAyODAyMDAyMDAxMjAwMjEwMGYxYTBjMDEwYjIwMDAxMGE1MDEyMDAwMjgwMjAwMjAwMTIwMDIxMDBmMWEwYjIwMDM0MTEwNmEyNDAwMGIzZjAxMDE3ZjIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTA4NmEyMDAxMjAwMjQxY2M4ZDA4NDE5MGNlMDAxMDJiMjAwMzI4MDIwYzIxMDEyMDAwMjAwMzI4MDIwODM2MDIwMDIwMDAyMDAxMzYwMjA0MjAwMzQxMTA2YTI0MDAwYjU4MDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMjAwMDJkMDAwNDIwMDA0MTAwM2EwMDA0MDQ0MDIwMDE0MTA4NmE0MTAwNDFkY2RiMDgyODAyMDAxMGEwMDEyMDAwMjgwMjAwMjAwMTI4MDIwODIwMDEyODAyMGMxMDBmMWE0MWRjZGIwODQxMDAzNjAyMDA0MWUwZGIwODQxMDAzYTAwMDAwYjIwMDE0MTEwNmEyNDAwMGIwZDAwMjAwMDQxNjcxMDIwMWE0MTY3MTAxMjBiMGQwMDIwMDAxMDJhMjIwMDEwMjAxYTIwMDAwYjEyMDAyMDAwMTBhNjAxNDUwNDQwMjAwMDIwMDExMDIxMWEwYjBiMTIwMDIwMDAxMGE2MDE0NTA0NDAyMDAwMjAwMTEwYWEwMTBiMGIzODAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MjAwMzcwMzA4MjAwMjIwMDE0MTAwMjAwMjQxMDg2YTEwODIwMTIwMDAyMDAyMjgwMjAwMjAwMjI4MDIwNDEwYjgwMTIwMDI0MTEwNmEyNDAwMGIwYTAwMjAwMDEwYTcwMTEwYTIwMTBiYjkwMTAxMDQ3ZjIzMDA0MTIwNmIyMjAxMjQwMDIwMDAxMGE3MDEyMTAyMTA0MzIxMDQyMDAyMTAxMjIxMDAyMDAxNDExMDZhNDEwMDNhMDAwMDIwMDE0MTBjNmEyMDAwMzYwMjAwMjAwMTIwMDIzNjAyMDgyMDAxMjAwMDM2MDIwNDIwMDE0MTAwMzYwMjAwMDM3ZjIwMDAyMDAzNDYwNDdmMjAwMTJkMDAxMDA0NDA0MWRjZGIwODQxMDAzNjAyMDA0MWUwZGIwODQxMDAzYTAwMDAwYjIwMDE0MTIwNmEyNDAwMjAwNDA1MjAwMTEwYWQwMTIxMDAyMDAxMTBhZTAxMjEwMjIwMDExMGFmMDEyMTAzMjAwMTIwMDAzNjAyMWMyMDAxMjAwMzM2MDIxODIwMDEyMDAyMzYwMjE0MjAwNDIwMDE0MTE0NmExMDU5MjAwMTI4MDIwMDIxMDMyMDAxMjgwMjA0MjEwMDBjMDEwYjBiMGIzMzAyMDE3ZjAxN2UyMzAwNDExMDZiMjIwMTI0MDAyMDAxNDEwMDM2MDIwYzIwMDAyMDAxNDEwYzZhMjIwMDQxMDQxMGIzMDEyMDAwNDEwNDEwYjEwMTIwMDE0MTEwNmEyNDAwYTcwYjA5MDAyMDAwNDEyMDEwODcwMTBiMGMwMDIwMDAyMDAwMTBhZDAxMTA4NzAxMGIzYTAxMDE3ZjIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTA4NmEyMDAxNDEwODIwMDIxMGQwMDEyMDAzMjgwMjBjMjEwMTIwMDAyMDAzMjgwMjA4MzYwMjAwMjAwMDIwMDEzNjAyMDQyMDAzNDExMDZhMjQwMDBiMzQwMTAxN2UwMjQwMjAwMTQ1MGQwMDAzNDAyMDAxNDUwZDAxMjAwMTQxMDE2YjIxMDEyMDAwMzEwMDAwMjAwMjQyMDg4Njg0MjEwMjIwMDA0MTAxNmEyMTAwMGMwMDBiMDAwYjIwMDIwYmZkMDEwMTA2N2YyMzAwNDEzMDZiMjIwMTI0MDAyMDAwMTBhNzAxMjEwMjEwNDMyMTA0MjAwMjEwMTIyMTAwMjAwMTQxMTg2YTQxMDAzYTAwMDAyMDAxNDExNDZhMjAwMDM2MDIwMDIwMDEyMDAyMzYwMjEwMjAwMTIwMDAzNjAyMGMyMDAxNDEwMDM2MDIwODAzN2YyMDAwMjAwMzQ2MDQ3ZjIwMDEyZDAwMTgwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAxNDEzMDZhMjQwMDIwMDQwNTIwMDE0MTA4NmEyMjAyMTBhZDAxMjEwMzIwMDIxMGFlMDEyMTA1MjAwMjEwYWYwMTIxMDY0MTAwMjEwMDIwMDE0MTAwM2EwMDJmMjAwMjIwMDE0MTJmNmE0MTAxMTBiMzAxMDI0MDAyNDAwMjQwMjAwMTJkMDAyZjBlMDIwMjAxMDAwYjQxZWQ4NjA4NDEwZDEwODgwMTAwMGI0MTAxMjEwMDBiMjAwMTIwMDAzYTAwMjgyMDAxMjAwNjM2MDIyNDIwMDEyMDA1MzYwMjIwMjAwMTIwMDMzNjAyMWMyMDA0MjAwMTQxMWM2YTEwNTUyMDAxMjgwMjA4MjEwMzIwMDEyODAyMGMyMTAwMGMwMTBiMGIwYjJkMDAyMDAwNDEwODZhMjAwMDI4MDIwMDIwMDEyMDAyMTA5ZTAxMDQ0MDQxYTM4NTA4NDEwZjEwODgwMTAwMGIyMDAwMjAwMDI4MDIwMDIwMDI2YTM2MDIwMDBiODcwMTAxMDE3ZjIzMDA0MTMwNmIyMjAyMjQwMDIwMDIyMDAxMzYwMjA4MjAwMjEwMzUyMDAyMjAwMjJkMDAwNDNhMDAxMDIwMDIyMDAyMjgwMjAwMzYwMjBjMjAwMjIwMDExMDEyMzYwMjFjMjAwMjQxMDAzNjAyMTgyMDAyMjAwMjQxMDg2YTM2MDIxNDAzNDAyMDAyNDEyMDZhMjAwMjQxMTQ2YTEwYjUwMTIwMDIyZDAwMmM0MTAyNDY0NTA0NDAyMDAyNDEyMDZhMjAwMjQxMGM2YTEwYjYwMTBjMDEwYjBiMjAwMDIwMDIyODAyMGMyMDAyMmQwMDEwMTBiNzAxMjAwMjQxMzA2YTI0MDAwYmM1MDMwMTA3N2YyMzAwNDFkMDAwNmIyMjAyMjQwMDAyNDAyMDAxMjgwMjA0MjIwNDQxMGQ2YTIyMDgyMDAxMjgwMjA4NGQwNDQwMjAwMTI4MDIwMDIwMDI0MjAwMzcwMDM1MjAwMjQyMDAzNzAzMzAyODAyMDAyMDA0MjAwMjQxMzA2YTIyMDM0MTBkMTA2ZjFhMjAwMjQxMDAzNjAyNDAyMDAyNDEyODZhMjAwMzQxMDA0MTA0MTBiZjAxMjAwMjQxNDA2YjIyMDU0MTA0MjAwMjI4MDIyODIwMDIyODAyMmMxMDU3MjAwMjI4MDI0MDIxMDQyMDAyNDFjODAwNmE0MTAwM2EwMDAwMjAwMjQyMDAzNzAzNDAyMDAyNDEyMDZhMjAwMzQxMDQ0MTBkMTBiZjAxMjAwNTQxMDkyMDAyMjgwMjIwMjAwMjI4MDIyNDEwNTcyMDAyNDEwMDM2MDI0YzIwMDI0MTE4NmEyMDA1NDEwMDQxMDQxMGMwMDEyMDAyNDFjYzAwNmEyMjA3NDEwNDIwMDIyODAyMTgyMDAyMjgwMjFjMTA1NzIwMDIyODAyNGMyMTAzMjAwMjQxMDAzNjAyNGMyMDAyNDExMDZhMjAwNTQxMDQ0MTA4MTBjMDAxMjAwNzQxMDQyMDAyMjgwMjEwMjAwMjI4MDIxNDEwNTcyMDAyMjgwMjRjMjEwNjIwMDI0MTAwM2EwMDRjMjAwMjQxMDg2YTIwMDU0MTA4NDEwOTEwYzAwMTIwMDc0MTAxMjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMDIwMDIyZDAwNGM0MTAwNDczYTAwMGMyMDAwMjAwNjQxMTg3NDIwMDY0MTgwZmUwMzcxNDEwODc0NzIyMDA2NDEwODc2NDE4MGZlMDM3MTIwMDY0MTE4NzY3MjcyMzYwMjA4MjAwMDIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwNDIwMDAyMDA0NDExODc0MjAwNDQxODBmZTAzNzE0MTA4NzQ3MjIwMDQ0MTA4NzY0MTgwZmUwMzcxMjAwNDQxMTg3NjcyNzIzNjAyMDAyMDAxMjAwODM2MDIwNDBjMDEwYjIwMDA0MTAyM2EwMDBjMGIyMDAyNDFkMDAwNmEyNDAwMGI0ZDAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDAyODAyMDAyMDAxMTBiYzAxMjAwMTIwMDAyODAyMDQxMGJkMDEyMDAwNDEwODZhMjgwMjAwMjAwMTEwM2UyMDAyMjAwMDQxMGM2YTJkMDAwMDNhMDAwZjIwMDEyMDAyNDEwZjZhNDEwMTEwYTMwMTIwMDI0MTEwNmEyNDAwMGIwZDAwMjAwMDIwMDEyMDAyMTAzODEwMjExYTBiMGQwMDIwMDAyMDAxMjAwMjEwNGQxMDIxMWEwYjg3MDEwMTAxN2YyMzAwNDEzMDZiMjIwMjI0MDAyMDAyMjAwMTM2MDIwODIwMDIxMDM1MjAwMjIwMDIyZDAwMDQzYTAwMTAyMDAyMjAwMjI4MDIwMDM2MDIwYzIwMDIyMDAxMTAxMjM2MDIxYzIwMDI0MTAwMzYwMjE4MjAwMjIwMDI0MTA4NmEzNjAyMTQyMDAyNDEyNDZhMjEwMTAzNDAyMDAyNDEyMDZhMjAwMjQxMTQ2YTEwYmEwMTIwMDIyODAyMjAwNDQwMjAwMTIwMDI0MTBjNmExMGJiMDEwYzAxMGIwYjIwMDAyMDAyMjgwMjBjMjAwMjJkMDAxMDEwYjcwMTIwMDI0MTMwNmEyNDAwMGI4OTAzMDEwNjdmMjMwMDQxNDA2YTIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjAzNDEwYzZhMjIwNjIwMDEyODAyMDg0ZDA0N2YyMDAxMjgwMjAwMjAwMjQxMjg2YTQxMDAzNjAyMDAyMDAyNDIwMDM3MDMyMDI4MDIwMDIwMDMyMDAyNDEyMDZhMjIwMzQxMGMxMDZmMWEyMDAyNDEwMDM2MDIzMDIwMDI0MTE4NmEyMDAzNDEwMDQxMDQxMGMxMDEyMDAyNDEzMDZhMjIwNTQxMDQyMDAyMjgwMjE4MjAwMjI4MDIxYzEwNTcyMDAyMjgwMjMwMjEwNDIwMDI0MjAwMzcwMzMwMjAwMjQxMTA2YTIwMDM0MTA0NDEwYzEwYzEwMTIwMDU0MTA4MjAwMjI4MDIxMDIwMDIyODAyMTQxMDU3MjAwMjQxMDAzNjAyM2MyMDAyNDEwODZhMjAwNTQxMDA0MTA0MTBjMjAxMjAwMjQxM2M2YTIyMDc0MTA0MjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMjI4MDIzYzIxMDMyMDAyNDEwMDM2MDIzYzIwMDIyMDA1NDEwNDQxMDgxMGMyMDEyMDA3NDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDIyODAyM2MyMTA1MjAwMDQxMGM2YTIwMDQ0MTE4NzQyMDA0NDE4MGZlMDM3MTQxMDg3NDcyMjAwNDQxMDg3NjQxODBmZTAzNzEyMDA0NDExODc2NzI3MjM2MDIwMDIwMDAyMDAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyMDQyMDAxMjAwNjM2MDIwNDIwMDA0MTA4NmEyMDA1NDExODc0MjAwNTQxODBmZTAzNzE0MTA4NzQ3MjIwMDU0MTA4NzY0MTgwZmUwMzcxMjAwNTQxMTg3NjcyNzIzNjAyMDA0MTAxMDU0MTAwMGIzNjAyMDAyMDAyNDE0MDZiMjQwMDBiMWYwMDIwMDAyODAyMDgyMDAxMTBiYzAxMjAwMTIwMDAyODAyMDAxMGJkMDEyMDAwMjgwMjA0MjAwMTEwM2UwYjQ2MDEwMTdmMjMwMDQxMTA2YjIyMDIyNDAwMjAwMjIwMDA0MTE4NzQyMDAwNDE4MGZlMDM3MTQxMDg3NDcyMjAwMDQxMDg3NjQxODBmZTAzNzEyMDAwNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwYTMwMTIwMDI0MTEwNmEyNDAwMGI4MTAxMDEwMzdmMjMwMDQxMTA2YjIyMDIyNDAwMDI0MDAyNDAyMDAwMmQwMDA0MDQ0MDIwMDExMDEyMjIwNDQxOTBjZTAwNDFkY2RiMDgyODAyMDAyMjAzNmI0YjBkMDEyMDAyNDEwODZhMjAwMzIwMDMyMDA0NmEyMjAwMTBhNDAxMjAwMTQxMDAyMDAyMjgwMjA4MjAwMjI4MDIwYzEwNmYxYTQxZGNkYjA4MjAwMDM2MDIwMDBjMDIwYjIwMDAyODAyMDAyMDAxMTA4YjAxMGMwMTBiMjAwMDEwYTUwMTIwMDAyODAyMDAyMDAxMTA4YjAxMGIyMDAyNDExMDZhMjQwMDBiMzgwMjAxN2YwMTdlMjMwMDQxMTA2YjIyMDEyNDAwMjAwMTQyMDAzNzAzMDgyMDAwMjAwMTQxMDg2YTIyMDA0MTA4NDE4YTg1MDg0MTBiMTBjNTAxMjAwMDQxMDgxMGIxMDEyMDAxNDExMDZhMjQwMDBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTBkMTBmODAxMGIwZjAwMjAwMDIwMDEyMDAyMjAwMzQxMDkxMGY4MDEwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwYzEwZjgwMTBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTA4MTBmODAxMGI4MDAyMDEwNTdmMjMwMDQxMjA2YjIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjAzNDEwODZhMjIwNTIwMDEyODAyMDg0ZDA0N2YyMDAxMjgwMjAwMjAwMjQyMDAzNzAzMTAyODAyMDAyMDAzMjAwMjQxMTA2YTIyMDM0MTA4MTA2ZjFhMjAwMjQxMDAzNjAyMWMyMDAyNDEwODZhMjAwMzQxMDA0MTA0MTBjMjAxMjAwMjQxMWM2YTIyMDY0MTA0MjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMjI4MDIxYzIxMDQyMDAyNDEwMDM2MDIxYzIwMDIyMDAzNDEwNDQxMDgxMGMyMDEyMDA2NDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDIyODAyMWMyMTAzMjAwMDIwMDQ0MTE4NzQyMDA0NDE4MGZlMDM3MTQxMDg3NDcyMjAwNDQxMDg3NjQxODBmZTAzNzEyMDA0NDExODc2NzI3MjM2MDIwNDIwMDEyMDA1MzYwMjA0MjAwMDQxMDg2YTIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwMDQxMDEwNTQxMDAwYjM2MDIwMDIwMDI0MTIwNmEyNDAwMGI4YTAxMDEwNDdmMjMwMDQxMTA2YjIyMDMyNDAwMjAwMTI4MDIwNDIyMDI0MTA0NmEyMjA0MjAwMTI4MDIwODRiMDQ3ZjQxMDAwNTIwMDEyODAyMDAyMDAzNDEwMDM2MDIwYzI4MDIwMDIwMDIyMDAzNDEwYzZhNDEwNDEwNmYxYTIwMDMyODAyMGMyMTAyMjAwMTIwMDQzNjAyMDQyMDAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIyMTAyNDEwMTBiMjEwMTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAyMDAzNDExMDZhMjQwMDBiMzAwMDIwMDA0MTA4NmEyMDAwMjgwMjAwMjAwMTIwMDIxMDllMDEwNDQwMjAwMzIwMDQ0MWEzODUwODQxMGYxMDRjMDAwYjIwMDAyMDAwMjgwMjAwMjAwMjZhMzYwMjAwMGI3ODAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwNDIzODg2MjAwMDQyODBmZTAzODM0MjI4ODY4NDIwMDA0MjgwODBmYzA3ODM0MjE4ODYyMDAwNDI4MDgwODBmODBmODM0MjA4ODY4NDg0MjAwMDQyMDg4ODQyODA4MDgwZjgwZjgzMjAwMDQyMTg4ODQyODA4MGZjMDc4Mzg0MjAwMDQyMjg4ODQyODBmZTAzODMyMDAwNDIzODg4ODQ4NDg0MzcwMzA4MjAwMTIwMDI0MTA4NmE0MTA4MTBhMzAxMjAwMjQxMTA2YTI0MDAwYmQ2MDEwMTA2N2YyMzAwNDE0MDZhMjIwMDI0MDAxMGM4MDExMDVjMjEwMTIwMDAxMGM5MDExMDVjMzYwMjA4MjAwMDEwNDczNjAyMGMyMDAwNDEyODZhMjIwMjIwMDExMDMyNDFmNzgwMDg0MTEwMTAzMzIwMDAyODAyMmMyMjAxMjAwMDQxMDg2YTEwNjQyMDAxMjAwMDQxMGM2YTEwNjQyMDAwNDEyMDZhMjIwMTIwMDA0MTM4NmEyMjAzMjkwMzAwMzcwMzAwMjAwMDQxMTg2YTIyMDQyMDAwNDEzMDZhMjIwNTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzI4MzcwMzEwMjAwMDIwMDA0MTEwNmExMDdjMzYwMjA0MjAwMjEwYzkwMTEwNWMxMDMyNDFmNTgxMDg0MTE4MTAzMzIwMDAyODAyMmMyMDAwNDEwNDZhMTA3ODIwMDEyMDAzMjkwMzAwMzcwMzAwMjAwNDIwMDUyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDMyODM3MDMxMDIwMDA0MTEwNmExMDdjMjAwMDQxNDA2YjI0MDAwYjBhMDA0MTk1ODgwODQxMTIxMDRkMGIwYTAwNDE4MTg4MDg0MTE0MTA0ZDBiYTkwMzAyMDU3ZjAxN2UyMzAwNDE4MDAxNmIyMjAyMjQwMDEwY2IwMTEwYWIwMTIxMDMyMDAxMjgwMjBjMjEwNDIwMDEyOTAzMDAyMTA3MjAwMTI4MDIwODIxMDEwMjQwMjAwMzQxZmVmZmZmZmYwNzQ2MDQ0MDIwMDE0MWZlZmZmZmZmMDc0NjBkMDEyMDAxMTBhMTAxMjEwMTIwMDIyMDA0MzYwMjE0MjAwMjIwMDczNzAzMDgyMDAyMjAwMTM2MDIxMDEwY2MwMTEwNWMyMTAzMjAwNDEwMjkyMTA0MjAwMjQxZTAwMDZhMjIwMTIwMDMxMDMyNDFhMTgwMDg0MTBhMTAzMzIwMDI0MTQwNmIyMjAzMjAwMTIwMDI0MTA4NmExMDg0MDEyMDAxMjAwMzEwY2QwMTIwMDExMDM0NDIwMDIxMDc0MWZlZmZmZmZmMDcyMTAxMGIyMDAyNDFlMDAwNmEyMDAwMTAzMjQxYzA4MTA4NDExMjEwMzMyMDAyMjgwMjY0MWEyMDAyNDEyODZhMjIwMDIwMDI0MWYwMDA2YTIyMDUyOTAzMDAzNzAzMDAyMDAyNDEyMDZhMjIwMzIwMDI0MWU4MDA2YTIyMDYyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDM2MDM3MDMxODAyNDAyMDAxNDFmZWZmZmZmZjA3NDcwNDQwMjAwNTIwMDAyOTAzMDAzNzAzMDAyMDA2MjAwMzI5MDMwMDM3MDMwMDIwMDIyMDAyMjkwMzE4MzcwMzYwMjAwMjEwN2QzNjAyNzgyMDAxMTBhMTAxMjEwMDIwMDIyMDA0MzYwMjNjMjAwMjIwMDczNzAzMzAyMDAyMjAwMDM2MDIzODIwMDI0MTQwNmIyMDAyNDFlMDAwNmEyMDAyNDEzMDZhMTA4MzAxMGMwMTBiMjAwMjQxZDAwMDZhMjAwMDI5MDMwMDM3MDMwMDIwMDI0MWM4MDA2YTIwMDMyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDMxODM3MDM0MDIwMDIyMDA0MzYwMjU4MGIyMDAyNDFlMDAwNmEyMDAyNDE0MDZiMTA3NjIwMDI0MTgwMDE2YTI0MDAwZjBiNDFjYTg4MDg0MTFmMTA0MTAwMGIwYTAwNDFlODhjMDg0MTIyMTA0ZDBiMGEwMDQxZmE4NjA4NDExZDEwNGQwYmZmMDIwMjAzN2YwMjdlMjMwMDQxZDAwMDZiMjIwMjI0MDAyMDAyNDEzMDZhMjIwNDIwMDE0MTEwNmEyOTAzMDAzNzAzMDAyMDAyNDEyODZhMjIwMzIwMDE0MTA4NmEyOTAzMDAzNzAzMDAyMDAyMjAwMTI5MDMwMDM3MDMyMDIwMDIxMDdkMzYwMjM4MDI0MDAyNDAwMjQwMDI0MDIwMDEyODAyMTgyMjAxMTA2NTBlMDIwMTAyMDAwYjEwNDcyMTAzMjAwMjQxMDg2YTIwMDIyODAyMjAyMDAyMjgwMjI0MjAwNDIwMDExMDYyMjAwMjI5MDMwODIxMDUyMDAyMjkwMzI4MjEwNjIwMDAxMDdkMzYwMjE4MjAwMDIwMDMzNjAyMTAyMDAwMjAwNjM3MDMwODIwMDAyMDA1MzcwMzAwMGMwMjBiMjAwMDIwMDIyOTAzMjAzNzAzMDAyMDAwNDExODZhMjAwMjQxMzg2YTI5MDMwMDM3MDMwMDIwMDA0MTEwNmEyMDA0MjkwMzAwMzcwMzAwMjAwMDQxMDg2YTIwMDMyOTAzMDAzNzAzMDAwYzAxMGIyMDAyNDE0MDZiMjAwMTEwOTcwMTAyN2YyMDAyMjkwMzQwNTAwNDQwMjAwMjI4MDIzMDIxMDEyMDAyNDExMDZhMjAwMjI4MDIyMDIwMDIyODAyMjQyMDAyMjgwMjQ4MjAwMjI4MDI0YzEwNmQyMDAyMjgwMjEwMjEwMzIwMDIyODAyMTQwYzAxMGIxMDQ3MjEwMTIwMDI0MTE4NmEyMDAyMjgwMjIwMjAwMjI4MDIyNDIwMDIyODAyMzAyMDAyNDE0MDZiMTA2YzIwMDIyODAyMTgyMTAzMjAwMjI4MDIxYzBiMjEwNDIwMDIyOTAzMjgyMTA1MjAwMDEwN2QzNjAyMTgyMDAwMjAwMTM2MDIxMDIwMDAyMDA1MzcwMzA4MjAwMDIwMDQzNjAyMDQyMDAwMjAwMzM2MDIwMDBiMjAwMjQxZDAwMDZhMjQwMDBiMGQwMDIwMDAxMDYxNDFmZjAxNzE0MTAxNGIwYjE3MDAyMDAwMjgwMjAwMjAwMTI4MDIwMDEwODkwMTQxZmYwMTcxNDFmZjAxNDYwYjNiMDEwMTdmMjMwMDQxMTA2YjIyMDQyNDAwMjAwNDQxMDg2YTQxMDAyMDAzMjAwMTIwMDIxMDJiMjAwNDI4MDIwYzIxMDEyMDAwMjAwNDI4MDIwODM2MDIwMDIwMDAyMDAxMzYwMjA0MjAwNDQxMTA2YTI0MDAwYjBhMDA0MWJkODgwODQxMGQxMDRkMGIwYTAwNDFmMjg3MDg0MTBmMTA0ZDBiMGEwMDQxZGQ4NzA4NDExNTEwNGQwYjBhMDA0MWE3ODgwODQxMTYxMDRkMGIxOTAxMDE3ZjQxOTc4NzA4NDExNjEwNGQyMTAxMjAwMDI4MDIwMDIwMDExMDQwMjAwMTBiMTkwMTAxN2Y0MWFkODcwODQxMTgxMDRkMjEwMTIwMDAyODAyMDAyMDAxMTA0MDIwMDEwYjBhMDA0MWM1ODcwODQxMTgxMDRkMGIwYTAwNDE4ZjhjMDg0MTFkMTA0ZDBiMGEwMDQxYWM4YzA4NDExZDEwNGQwYjBhMDA0MWM5OGMwODQxMWYxMDRkMGJhNzA1MDIwZDdmMDI3ZTIzMDA0MTQwNmEyMjAwMjQwMDEwMjI0MTBhMTA1YTQxMDA0MWJkODgwODQxMGQxMDUwMjEwOTQxMDExMDRiMjEwMjQxMDI0MTk1ODgwODQxMTIxMDUwMjEwYTQxMDM0MTgxODgwODQxMTQxMDUwMjEwNTQxMDQ0MWYyODcwODQxMGYxMDUwMjEwNjQxMDUxMDExMjEwZDQxMDYxMDExMjEwZTQxMDcxMDU4MjEwNzQxMDgxMDUxMjEwODQxMDk0MWZhODYwODQxMWQxMDUwMjEwNDIwMDAyMDA4MzYwMjEwMjAwMDIwMDczNjAyMGMyMDA1MTAyZjEwMzIyMTAxNDFlNjgxMDg0MTBmMTA0ZDIxMDMxMDQzMjEwYjEwN2QyMTBjMTAxNjIwMDEyMDBjMjAwMzIwMGIxMDQ1MjEwMTEwMTcyMDAxMTAxMjIxMDMyMDAwNDEwMDM2MDIzMDIwMDAyMDAxMzYwMjI4MjAwMDIwMDM0MTAyNzYzNjAyMmMyMDAwNDEyODZhMjIwMzEwNzUxMDJmMTBhMjAxMjEwMTIwMDMyMDA0MTAyZjEwMmYxMDMyNDFhYjgwMDg0MTE1MTAzMzIwMDMxMDgwMDEyMTAzMDI0MDAyNDAyMDAxNDFmZWZmZmZmZjA3NDcwNDQwMjAwMTEwMmYxMGExMDEyMDAyMTAzMDBkMDE0MWU5ODgwODQxZDEwMDEwNDEwMDBiMjAwMjIwMDMxMDMwNDUwZDAxMGIxMGNjMDEyMDA0MTBhODAxMTBkOTAxMjAwMzEwYTgwMTAyNDAxMGNiMDEyMjA0MTBhNjAxMGQwMDIwMDE0MWZlZmZmZmZmMDc0NzA0NDAyMDA0MjAwMTEwMjExYTBjMDEwYjIwMDQ0MWVkODUwODQxMDQxMGI4MDEwYjEwZDEwMTIwMDkxMGE4MDExMGQ0MDEyMDAyMTBhODAxMTBjODAxMjAwYTEwYTgwMTEwYzkwMTIwMDUxMDJmMTBhODAxMTBkODAxMjAwMDQxMjg2YTIyMDEyMDA1MTAzMjQxYjY4MTA4NDEwYTEwMzMyMDAxMTA4MDAxMTBhODAxMTBkMjAxMjAwNjEwMmYxMGE4MDExMGRhMDEyMDAxMjAwNjEwMzI0MTg2ODMwODQxMGYxMDMzMjAwMTEwODAwMTEwYTgwMTIwMDAyMDA3MTAxMjM2MDIxYzIwMDA0MTAwMzYwMjE4MjAwMDIwMDA0MTBjNmEzNjAyMTQwMzQwMDI0MDIwMDA0MTI4NmEyMDAwNDExNDZhMTBjMzAxMjAwMDI4MDIyODQ1MDQ0MDIwMDAyMDA4MTAxMjM2MDIxYzIwMDA0MTAwMzYwMjE4MjAwMDIwMDA0MTEwNmEzNjAyMTQwMzQwMjAwMDQxMjg2YTIwMDA0MTE0NmExMGMzMDEyMDAwMjgwMjI4NDUwZDAyMjAwMDIwMDAyODAyMzAyMjAxMzYwMjI0MjAwMDIwMDAyODAyMmMzNjAyMjAyMDAwNDEyMDZhMTBkNTAxMjIwMjEwYTYwMTBkMDAyMDAyMjAwMTEwYjQwMTBjMDAwYjAwMGIyMDAwMjAwMDI4MDIzMDIyMDEzNjAyMjQyMDAwMjAwMDI4MDIyYzM2MDIyMDIwMDA0MTIwNmExMGQ2MDEyMjAyMTBhNjAxMGQwMTIwMDIyMDAxMTBiOTAxMGMwMTBiMGIxMGQzMDEyMDBkMTBhOTAxMTBkNzAxMjAwZTEwYTkwMTIwMDA0MTQwNmIyNDAwMGYwYjQxYmE4OTA4NDFjODAwMTA0MTAwMGIwODAwMTAyMjQxMDAxMDVhMGJjNzAxMDEwNTdmMjMwMDQxMzA2YjIyMDAyNDAwNDEwMDEwNWEwMjQwMDI0MDEwNDYxMGQxMDExMDVjMTAzMDA0NDAxMDQ2MTBkMTAxMTA1YzEwMzA0NTBkMDEyMDAwMTA0YTIyMDEzNjAyMDgxMGQ0MDExMGE3MDEyMTAyMTBjOTAxMTA1YzIxMDMyMDAwMjAwMTEwMTIzNjAyMTQyMDAwNDEwMDM2MDIxMDIwMDAyMDAwNDEwODZhMzYwMjBjMjAwMDQxMjA2YTIxMDEwMzQwMDI0MDIwMDA0MTE4NmEyMDAwNDEwYzZhMTA2NzIwMDAyOTAzMTg1MDBkMDAyMDAwMjgwMjJjMjAwMDI4MDIyODIwMDIxMDMwNDUwZDA0MTBjZTAxNDUwZDA0MjAwMzEwMmYyMDAxMTBjYTAxMGMwMTBiMGIyMDAwNDEzMDZhMjQwMDBmMGI0MTgyOGEwODQxMTYxMDQxMDAwYjQxODI4YTA4NDExNjEwNDEwMDBiNDE5ODhhMDg0MTBkMTA0MTAwMGJjNzA3MDIwOTdmMDE3ZTIzMDA0MTgwMDE2YjIyMDAyNDAwMTAyMjQxMDExMDVhMjAwMDEwNGYzNjAyMmMxMGQxMDExMDVjMjEwMTAyNDAwMjQwMDI0MDEwNDYyMjA3MjAwMTEwMzAwNDQwMjAwMDEwYzkwMTEwNWMyMjAxMzYwMjM0MjAwMDQxZTAwMDZhMjIwMjIwMDExMDJmMTAzMjQxOGQ4MjA4NDExODEwMzMyMDAwMjgwMjY0MjAwMDQxMmM2YTEwNzgyMDAwNDFkODAwNmEyMjAxMjAwMDQxZjAwMDZhMjIwNjI5MDMwMDM3MDMwMDIwMDA0MWQwMDA2YTIyMDMyMDAwNDFlODAwNmEyMjA0MjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNjAzNzAzNDgyMDAwNDFjODAwNmEyMjA1MTA3YzIxMDgyMDAyMTBjODAxMTA1YzEwMzI0MWUxODAwODQxMGExMDMzMjAwMDI4MDI2NDIyMDIyMDAwNDEzNDZhMTA2NDIwMDI0MTAwMjAwODEwNzkyMDAxMjAwNjI5MDMwMDM3MDMwMDIwMDMyMDA0MjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNjAzNzAzNDgyMDAwNDEzODZhMjAwNTEwN2UyMDAwMjgwMjQ0MTBjZTAxNDUwZDAxMjAwMDI4MDIzNDEwMzIyMTAxNDFhNTgyMDg0MTA2MTA0ZDIxMDQxMDQzMjIwMzQxMDEyMDAwMTA3OTEwNDMyMjAyMjAwMDQxMzg2YTEwNDQyMDAwMjAwMTM2MDI3MDIwMDA0MjdmMzcwMzY4MjAwMDIwMDMzNjAyNjQyMDAwMjAwNDM2MDI2MDIwMDAxMDdkMjIwNTM2MDI3ODAyNDAwMjQwMDI0MDAyNDAyMDAyMTA2NTBlMDIwMjAwMDEwYjIwMDA0MWM4MDA2YTIwMDIxMDk3MDEwMjdmMjAwMDI5MDM0ODUwMDQ0MDIwMDA0MTE4NmEyMDA0MjAwMzIwMDAyODAyNTAyMDAwMjgwMjU0MTA2ZDIwMDAyODAyMTgyMTA0MjAwMDI4MDIxYzBjMDEwYjEwNDcyMDAwNDEyMDZhMjAwNDIwMDMyMDAxMjAwMDQxYzgwMDZhMTA2YzIwMDAyODAyMjAyMTA0MjEwMTIwMDAyODAyMjQwYjIxMDMxMDdkMjEwNTBjMDEwYjEwNDcyMTAxMjAwMDQxMTA2YTIwMDQyMDAzMjAwNjIwMDIxMDYyMjAwMDI5MDM2ODIxMDkyMDAwMjgwMjE0MjEwMzIwMDAyODAyMTAyMTA0MTA3ZDIxMDUyMDA5NDI3ZjUyMGQwMTBiMTAxNjIxMDkwYjIwMDkyMDAxMjAwNTIwMDQyMDAzMTA0NTIxMDExMDE3MjAwMTEwMTIyMTAyMjAwMDQxMDAzNjAyNTAyMDAwMjAwMTM2MDI0ODIwMDAyMDAyNDEwMjc2MzYwMjRjMjAwMDQxYzgwMDZhMTA3NTIyMDIxMDEyMjEwMTIwMDA0MWYwMDA2YTQxMDAzYTAwMDAyMDAwNDFlYzAwNmEyMDAxMzYwMjAwMjAwMDIwMDIzNjAyNjgyMDAwMjAwMTM2MDI2NDIwMDA0MTAwMzYwMjYwMjAwMDQxZTAwMDZhMjIwMTQxOGE4NTA4NDEwYjEwM2ExMGEyMDEyMTAyMjAwMTEwYmUwMTIxMDkyMDAxMTAzOTIxMDEyMDAwMjgwMjY0MjAwMDI4MDI2MDQ3MGQwMjIwMDAyZDAwNzAwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIwMjQwMjAwMjQxZmVmZmZmZmYwNzQ3MDQ0MDIwMDIxMGExMDEyMTAzMGMwMTBiMTBkOTAxMTBhNzAxMjEwMzEwY2MwMTEwNWMyMDAxMTAyOTEwMzE0MjAwMjEwOTBiMjAwMTEwY2UwMTQ1MGQwMzIwMDcyMDAzMjAwOTIwMDExMDQyMjAwMDIwMDEzNjAyNmMyMDAwMjAwMzM2MDI2ODIwMDAyMDA5MzcwMzYwMjAwMDIwMDA0MWUwMDA2YTEwOTUwMTIyMDEzNjAyMzAyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDNjMjAwMDIwMDAyODAyMDgzNjAyMzgyMDAwMjAwMTEwMTIzNjAyNTAyMDAwNDEwMDM2MDI0YzIwMDAyMDAwNDEzMDZhMzYwMjQ4MDM0MDIwMDA0MWUwMDA2YTIwMDA0MWM4MDA2YTEwNjcyMDAwMjkwMzYwNTA0NTA0NDAyMDAwMjgwMjc0MjAwMDI4MDI3MDIwMDA0MTM4NmEyMjAxMTAzZTIwMDAyOTAzNjgyMDAxMTBjNjAxMjAwMTEwM2MwYzAxMGIwYjIwMDAyODAyMzgyMDAwMmQwMDNjMTAzNzIwMDA0MTgwMDE2YTI0MDAwZjBiNDE4MjhhMDg0MTE2MTA0MTAwMGI0MWU3OGEwODQxMWYxMDQxMDAwYjQxOGE4NTA4NDEwYjQxOTU4NTA4NDEwZTEwNGMwMDBiNDE4NjhiMDg0MTFhMTA0MTAwMGJmMzFkMDIxNjdmMDI3ZTIzMDA0MWEwMDI2YjIyMDAyNDAwMTAyMjQxMDAxMDVhMTBjODAxMTA1YzIxMDEyMDAwMTBjOTAxMTA1YzIyMTQxMDJmMTA5NjAxMzYwMmYwMDEyMDAwMTA0MzM2MDJhMDAxMjAwMDQxODAwMjZhMjIwOTIwMDExMDMyNDFlYjgwMDg0MTBjMTAzMzIwMDAyODAyODQwMjIyMDE0MTAwMTA4MTAxMjAwMTQxMDExMDgxMDEyMDAxNDEwMDEwODEwMTIwMDEyMDAwNDFmMDAxNmEyMjExMTA3YjIwMDEyMDAwNDFhMDAxNmEyMjA3MTA3YjIwMDA0MWUwMDE2YTIyMDUyMDAwNDE5MDAyNmEyMjA0MjkwMzAwMzcwMzAwMjAwMDQxZDgwMTZhMjIwMjIwMDA0MTg4MDI2YTIyMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEyMDAwNDFkMDAxNmEyMjA2MTA3ZjEwZDIwMTEwNWMyMTAxMjAwMDIwMTQxMDJmMTA5NjAxMzYwMmYwMDEyMDAwMTA0MzM2MDJhMDAxMjAwOTIwMDExMDMyNDFlYjgwMDg0MTBjMTAzMzIwMDAyODAyODQwMjIyMDE0MTAwMTA4MTAxMjAwMTIwMTExMDdiMjAwMTIwMDcxMDdiMjAwMTQxMDEyMDAwMTA3OTIwMDUyMDA0MjkwMzAwMzcwMzAwMjAwMjIwMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEyMDA2MTA3ZjEwMmEyMjAzMTAyYTIyMDYxMDIzMjAwNjEwY2UwMTA0NDAxMGNjMDExMDVjMjAwNjEwMjkxMDMxMTBkOTAxMTBhNzAxMjEwMTIwMDAyMDA2MzYwMjhjMDIyMDAwNDIwMDM3MDM4MDAyMjAwMDIwMDEzNjAyODgwMjIwMDMyMDAwNDE4MDAyNmExMDQ0MGIyMDAwMjAwMzM2MDI5MDAxMDI0MDAyNDAwMjQwMjAwMzEwNjUwNDQwMTBkNDAxMTBhNzAxMjEwZTEwN2QyMTBkMjAwMDIwMDAyODAyOTAwMTEwMTIzNjAyOWMwMTIwMDA0MTAwMzYwMjk4MDEyMDAwMjAwMDQxOTAwMTZhMzYwMjk0MDEyMDAwNDE5MDAyNmEyMTBhMjAwMDQxYzAwMTZhMjEwZjIwMDA0MWE4MDE2YTIxMTUwMzQwMjAwMDQxYTAwMTZhMjAwMDQxOTQwMTZhMTA2NzIwMDAyOTAzYTAwMTUwMDQ0MDQyODA4MDkwYmJiYWQ2YWRmMDBkMTAyZTIxMDEyMDBkMTBkMzAxMTA1ZjEwMmUxMDkyMDEyMDAxMTA4ZDAxMjIwNTIwMGQxMGQ3MDExMDVmMTAyZTEwOTIwMTIwMDExMDhkMDEyMjA2MTA5MTAxMjAwZDEwODkwMTQxZmYwMTcxNDEwMjQ5MGQwNTIwMGQyMDA1MTA5MzAxMjAwNjEwOTAwMTIxMDIyMDBlMTAyZjIxMDEyMDAwMjAwMjEwMjkzNjAyOGMwMjIwMDA0MjAwMzcwMzgwMDIyMDAwMjAwMTM2MDI4ODAyMjAxNDIwMDA0MTgwMDI2YTEwY2EwMTIwMGUxMDJmMjEwMTIwMDUxMGNlMDEwNDQwMTA0NjIwMDE0MjAwMjAwNTEwNDIwYjIwMDYxMGNlMDEwNDQwMTA0ODIwMGU0MjAwMjAwNjEwNDIwYjEwNDMyMTA0MTA0MzEwMmYyMTA2MjAwMTQxZmVmZmZmZmYwNzQ2MGQwMzIwMDEyMDA2MTA0MDBjMDQwYjIwMGYyMDE1NDEwODZhMjkwMzAwMzcwMzAwMjAwMDIwMTUyOTAzMDAzNzAzYjgwMTIwMGYxMGQ2MDExMGFjMDEyMTEyMjAwZjEwZDUwMTEwYjIwMTIxMTMyMDBmMjgwMjAwMjEwYzIwMDAyODAyYzQwMTIxMDQyMDAwMjkwM2I4MDEyMTE2MjAxMjEwMTIyMTAxMjAxMzEwMTI0MTBkNmUyMDAxNDEwYzZlNmEyMTExNDEwMDIxMDEwMzQwMDI0MDAyNDAyMDAxMjAxMTQ3MDQ0MDIwMDE0MTAxNmEyMTA2NDEwMDIxMDIyMDEyMTAxMjIxMDUwMjQwMDI0MDAzNDAyMDAyNDEwYzZhMjIwMzIwMDU0YjBkMDEyMDAwNDE4ODAyNmEyMjA5NDEwMDM2MDIwMDIwMDA0MjAwMzcwMzgwMDIyMDEyMjAwMjIwMDA0MTgwMDI2YTIyMDI0MTBjMTA4YTAxMWEyMDAwNDEwMDM2MDJkMDAxMjAwMDQxODgwMTZhMjAwMjQxMDA0MTA0MTBjMTAxMjAwMDQxZDAwMTZhMjIwNzQxMDQyMDAwMjgwMjg4MDEyMDAwMjgwMjhjMDExMDU3MjAwMDI4MDJkMDAxMjEwODIwMDA0MjAwMzcwM2QwMDEyMDAwNDE4MDAxNmEyMDAyNDEwNDQxMGMxMGMxMDEyMDA3NDEwODIwMDAyODAyODAwMTIwMDAyODAyODQwMTEwNTcyMDAwNDEwMDM2MDJmMDAxMjAwMDQxZjgwMDZhMjAwNzQxMDA0MTA0MTBjMjAxMjAwMDQxZjAwMTZhMjIwMjQxMDQyMDAwMjgwMjc4MjAwMDI4MDI3YzEwNTcyMDAwMjgwMmYwMDEyMTBiMjAwMDQxMDAzNjAyZjAwMTIwMDA0MWYwMDA2YTIwMDc0MTA0NDEwODEwYzIwMTIwMDI0MTA0MjAwMDI4MDI3MDIwMDAyODAyNzQxMDU3MjAwMzIxMDIyMDA4NDExODc0MjAwODQxODBmZTAzNzE0MTA4NzQ3MjIwMDg0MTA4NzY0MTgwZmUwMzcxMjAwODQxMTg3NjcyNzIyMDAxNDcwZDAwMGIyMDAwMjgwMmYwMDEyMTAzMjAwYjQxMTg3NDIwMGI0MTgwZmUwMzcxNDEwODc0NzIyMDBiNDEwODc2NDE4MGZlMDM3MTIwMGI0MTE4NzY3MjcyMTAyZjIxMDEyMDAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIyMjA3MTAyZjIxMDU0MTAxMTAyZDIwMDA0MTgwMDI2YTIyMDMyMDAxMTAzMjQxZDk4NjA4NDExNDEwMzMyMDAwMjgwMjg0MDIyMjAxMjAwNTEwNmUyMDAxMTA3MDIwMDA0MWUwMDE2YTIyMDIyMDBhMjkwMzAwMzcwMzAwMjAwMDQxZDgwMTZhMjIwMTIwMDkyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDExMDQzMjEwNTIwMDAyMDA0MzYwMjhjMDIyMDAwMjAwYzM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDUyMDAzMTA0NDIwMGEyMDAyMjkwMzAwMzcwMzAwMjAwOTIwMDEyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDNkMDAxMzcwMzgwMDIyMDAwMTA3ZDM2MDI5ODAyMDI0MDAyNDAwMjQwMDI0MDIwMDUxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDEyMDAwNDFlODAwNmEyMDAwMjgwMjgwMDIyMDAwMjgwMjg0MDIyMDBhMjAwNTEwNjIyMDAwMjkwMzY4MjExNzIwMDAyOTAzODgwMjIxMTYyMDAwMTA3ZDM2MDJlODAxMjAwMDIwMDEzNjAyZTAwMTIwMDAyMDE2MzcwM2Q4MDEyMDAwMjAxNzM3MDNkMDAxMGMwMjBiMjAwMDQxZTgwMTZhMjAwMDQxOTgwMjZhMjkwMzAwMzcwMzAwMjAwMjIwMGEyOTAzMDAzNzAzMDAyMDAxMjAwOTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzgwMDIzNzAzZDAwMTBjMDEwYjIwMDA0MWYwMDE2YTIyMDEyMDA1MTA5NzAxMjAwMDQxZDAwMTZhMjAwMDQxODAwMjZhMjAwMTEwODMwMTBiMjAwMDQxODAwMjZhMjAwMDQxZDAwMTZhMTA3NjIwMDAyODAyODgwMjIyMGMyMDA3MTAzMDQ1MGQwMTIwMDAyODAyOGMwMjIxMDQyMDAwMjkwMzgwMDIyMTE2MjAwNjIxMDEwYzA1MGI0MTAwMjEwMjIwMTMxMDEyMjEwNTAzNDAyMDAyNDEwZDZhMjIwMzIwMDU0YjBkMDMyMDAwNDIwMDM3MDA4NTAyMjAwMDQyMDAzNzAzODAwMjIwMTMyMDAyMjAwMDQxODAwMjZhMjIwMjQxMGQxMDhhMDExYTIwMDA0MTAwMzYwMmQwMDEyMDAwNDFlMDAwNmEyMDAyNDEwMDQxMDQxMGJmMDEyMDAwNDFkMDAxNmEyMjA4NDEwNDIwMDAyODAyNjAyMDAwMjgwMjY0MTA1NzIwMDAyODAyZDAwMTIxMDkyMDAwNDFkODAxNmEyMjBiNDEwMDNhMDAwMDIwMDA0MjAwMzcwM2QwMDEyMDAwNDFkODAwNmEyMDAyNDEwNDQxMGQxMGJmMDEyMDA4NDEwOTIwMDAyODAyNTgyMDAwMjgwMjVjMTA1NzIwMDA0MTAwMzYwMmYwMDEyMDAwNDFkMDAwNmEyMDA4NDEwMDQxMDQxMGMwMDEyMDAwNDFmMDAxNmEyMjAyNDEwNDIwMDAyODAyNTAyMDAwMjgwMjU0MTA1NzIwMDAyODAyZjAwMTIxMTAyMDAwNDEwMDM2MDJmMDAxMjAwMDQxYzgwMDZhMjAwODQxMDQ0MTA4MTBjMDAxMjAwMjQxMDQyMDAwMjgwMjQ4MjAwMDI4MDI0YzEwNTcyMDAwMjgwMmYwMDEyMTA3MjAwMDQxMDAzYTAwZjAwMTIwMDA0MTQwNmIyMDA4NDEwODQxMDkxMGMwMDEyMDAyNDEwMTIwMDAyODAyNDAyMDAwMjgwMjQ0MTA1NzIwMDMyMTAyMjAwOTQxMTg3NDIwMDk0MTgwZmUwMzcxNDEwODc0NzIyMDA5NDEwODc2NDE4MGZlMDM3MTIwMDk0MTE4NzY3MjcyMjAwMTQ3MGQwMDBiMjAwMDJkMDBmMDAxMjAwNzQxMTg3NDIwMDc0MTgwZmUwMzcxNDEwODc0NzIyMDA3NDEwODc2NDE4MGZlMDM3MTIwMDc0MTE4NzY3MjcyMjEwODIwMGMxMDJmMjEwOTIwMDQxMDI5MjEwNzIwMTA0MTE4NzQyMDEwNDE4MGZlMDM3MTQxMDg3NDcyMjAxMDQxMDg3NjQxODBmZTAzNzEyMDEwNDExODc2NzI3MjEwMmYyMTA1NDUwNDQwNDEwMTEwMmQyMDAwNDE4MDAyNmEyMjAxMjAwNTEwMzI0MWE4ODYwODQxMDgxMDMzMjAwMDI4MDI4NDAyMTA3MDIwMDA0MWUwMDE2YTIyMDIyMDBhMjkwMzAwMzcwMzAwMjAwYjIwMDA0MTg4MDI2YTIyMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDExMDQzMjEwNDIwMDAyMDA3MzYwMjhjMDIyMDAwMjAwOTM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDQyMDAxMTA0NDIwMGEyMDAyMjkwMzAwMzcwMzAwMjAwMzIwMGIyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDNkMDAxMzcwMzgwMDIyMDAwMTA3ZDM2MDI5ODAyMDI0MDAyNDAwMjQwMDI0MDIwMDQxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDEyMDAwNDExMDZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwYTIwMDQxMDYyMjAwMDI5MDMxMDIxMTcyMDAwMjkwMzg4MDIyMTE2MjAwMDEwN2QzNjAyZTgwMTIwMDAyMDAxMzYwMmUwMDEyMDAwMjAxNjM3MDNkODAxMjAwMDIwMTczNzAzZDAwMTBjMDIwYjIwMDA0MWU4MDE2YTIwMDA0MTk4MDI2YTI5MDMwMDM3MDMwMDIwMDIyMDBhMjkwMzAwMzcwMzAwMjAwYjIwMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEwYzAxMGIyMDAwNDFmMDAxNmEyMDA0MTA5NzAxMDI3ZjIwMDAyOTAzZjAwMTUwMDQ0MDIwMDAyODAyOTAwMjIxMDMyMDAwNDExODZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwMDI4MDJmODAxMjAwMDI4MDJmYzAxMTA2ZDIwMDAyODAyMWMyMTAyMjAwMDI4MDIxODBjMDEwYjEwNDcyMTAzMjAwMDQxMjA2YTIwMDAyODAyODAwMjIwMDAyODAyODQwMjIwMDAyODAyOTAwMjIwMDA0MWYwMDE2YTEwNmMyMDAwMjgwMjI0MjEwMjIwMDAyODAyMjAwYjIxMDEyMDAwMjkwMzg4MDIyMTE2MjAwMDEwN2QzNjAyZTgwMTIwMDAyMDAzMzYwMmUwMDEyMDAwMjAxNjM3MDNkODAxMjAwMDIwMDIzNjAyZDQwMTIwMDAyMDAxMzYwMmQwMDEwYjIwMDA0MWQwMDE2YTEwNzIyMTAzMjAwODEwMmYyMTAxMjAwMDIwMDMzNjAyOGMwMjIwMDA0MjAwMzcwMzgwMDIyMDAwMjAwMTM2MDI4ODAyMjAwMDQxODAwMjZhMTA5NTAxMjEwMTBjMDQwYjIwMDgxMDJmMjEwNDQxMDExMDJkMjAwNTEwMzIyMTAzNDFhODg2MDg0MTA4MTA0ZDIxMDExMDQzMjIwNTIwMDQxMDZlMjAwNTEwNzAxMDQzMjEwNDIwMDAyMDA3MzYwMjhjMDIyMDAwMjAwOTM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDQyMDAwNDE4MDAyNmExMDQ0MjAwMDIwMDMzNjAyOTAwMjIwMDA0MjdmMzcwMzg4MDIyMDAwMjAwNTM2MDI4NDAyMjAwMDIwMDEzNjAyODAwMjIwMDAxMDdkMzYwMjk4MDIwMjdmMDI3ZTAyNDAwMjQwMDI0MDIwMDQxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDIyMDAwNDEyODZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwYTIwMDQxMDYyMjAwMDI4MDIyYzIxMDMyMDAwMjgwMjI4MjEwMTIwMDAyOTAzODgwMjBjMDIwYjIwMDAyODAyOTAwMjIxMDIyMDAwMjkwMzg4MDIyMTE2MjAwMDI4MDI4NDAyMjEwMzIwMDAyODAyODAwMjIxMDEyMDAwMjgwMjk4MDIwYzAyMGIyMDAwNDFkMDAxNmEyMDA0MTA5NzAxMDI3ZjIwMDAyOTAzZDAwMTUwMDQ0MDIwMDAyODAyOTAwMjIxMDIyMDAwNDEzMDZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwMDI4MDJkODAxMjAwMDI4MDJkYzAxMTA2ZDIwMDAyODAyMzQyMTAzMjAwMDI4MDIzMDBjMDEwYjEwNDcyMTAyMjAwMDQxMzg2YTIwMDAyODAyODAwMjIwMDAyODAyODQwMjIwMDAyODAyOTAwMjIwMDA0MWQwMDE2YTEwNmMyMDAwMjgwMjNjMjEwMzIwMDAyODAyMzgwYjIxMDEyMDAwMjkwMzg4MDIwYjIxMTYxMDdkMGIyMTA0MjAxNjQyN2Y1MTA0N2UxMDE2MDUyMDE2MGIyMDAyMjAwNDIwMDEyMDAzMTA0NTIxMDMxMDE3NDEwMDIxMDIyMDAzMTAxMjIxMDEyMDAwNDEwMDM2MDJmODAxMjAwMDIwMDMzNjAyZjAwMTIwMDAyMDAxNDEwMjc2MzYwMmY0MDEyMDAwNDFmMDAxNmExMDc1MTAyZjIxMDQxMDQzMjEwMTIwMDQxMDEyMjEwMzIwMDA0MTAwM2EwMDkwMDIyMDAwMjAwMzM2MDI4YzAyMjAwMDIwMDQzNjAyODgwMjIwMDAyMDAzMzYwMjg0MDIyMDAwNDEwMDM2MDI4MDAyMDM0MDIwMDIyMDAzNDYwNDQwMjAwMDJkMDA5MDAyNDUwZDA1NDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGMwNTA1MjAwMDQxZDAwMTZhMjIwMzIwMDA0MTgwMDI2YTEwNzcyMDAxMjAwMzEwNDQyMDAwMjgwMjgwMDIyMTAyMjAwMDI4MDI4NDAyMjEwMzBjMDEwYjAwMGIwMDBiNDFjMDg2MDg0MTE5MTA0MTAwMGIyMDBjMjAwZTEwMzAwNDQwMjAwZDIwMDQxMDhmMDEwYzA0MGI0MWQ0OGEwODQxMTMxMDQxMDAwYjIwMDA0MTA4NmExMDM2MjAwMDIwMDAyZDAwMGMzYTAwODQwMjIwMDAyMDAwMjgwMjA4MzYwMjgwMDIyMDAwNDE4MDAyNmEyMjA2NDE4MDgwMDg0MTIxMTBhMzAxMjMwMDQxNDA2YTIyMDMyNDAwMjAwMzQxMDAyMDAzNmI0MTAzNzEyMjA0NmEyMTA3MjAwNDA0NDAyMDAzMjEwMjAzNDAyMDAyNDEwMDNhMDAwMDIwMDI0MTAxNmEyMjAyMjAwNzQ5MGQwMDBiMGIyMDA3NDFjMDAwMjAwNDZiMjIwNTQxN2M3MTIyMDQ2YTIxMDIyMDA0NDEwMDRhMDQ0MDAzNDAyMDA3NDEwMDM2MDIwMDIwMDc0MTA0NmEyMjA3MjAwMjQ5MGQwMDBiMGIyMDA1NDEwMzcxMjIwNDA0NDAyMDAyMjAwNDZhMjEwNDAzNDAyMDAyNDEwMDNhMDAwMDIwMDI0MTAxNmEyMjAyMjAwNDQ5MGQwMDBiMGIyMDA2MjAwMzAyN2YyMDAxMDQ0MDIwMDFhZDIxMTY0MTNmMjEwMTAyNDAwMzQwMjAxNjUwMGQwMTIwMDE0MTNmNGQwNDQwMjAwMTIwMDM2YTIwMTYyMDE2NDIwYTgwMjIxNjQyMGE3ZTdkYTc0MTMwNzIzYTAwMDAyMDAxNDEwMTZiMjEwMTBjMDEwYjBiMTAyYzAwMGIyMDAxNDEwMTZhMGMwMTBiMjAwMzQxMzAzYTAwM2Y0MTNmMGIyMjAxNmE0MWMwMDAyMDAxNmIxMGEzMDEyMDAzNDE0MDZiMjQwMDIwMDAyODAyODAwMjIwMDAyZDAwODQwMjEwMzgxMDAwMDAwYjIwMDAyMDAxMzYwMmNjMDExMDdkMjEwMjEwN2QyMTA0MjAwMDIwMDExMDEyMzYwMmQ4MDEyMDAwNDEwMDM2MDJkNDAxMjAwMDIwMDA0MWNjMDE2YTM2MDJkMDAxMDI0MDAzNDAwMjQwMjAwMDQxODAwMjZhMjAwMDQxZDAwMTZhMTA2NzIwMDAyOTAzODAwMjUwMGQwMDIwMDAyODAyOTQwMjIxMDUyMDAyMjEwMzIwMDAyODAyOTAwMjIyMDEyMDBjMTAzMDQ1MDQ0MDIwMDQyMTAzMjAwMTIwMDgxMDMwNDUwZDAzMGIyMDAzMjAwNTEwOGYwMTBjMDEwYjBiMjAwODEwMmYyMTBjNDIwMDIxMTYyMDA2MjEwMTBjMDEwYjBiMGI0MTg3ODYwODQxMjExMDQxMDAwYjQxYTU4YTA4NDExNTEwNDEwMDBiMjAwMDQxODA4MDgwMjAzNjAyZDAwMTIwMDYyMDAwNDFkMDAxNmE0MTA0MTAwZjFhMjAwNjQxZWQ4NTA4NDEwNDEwMGYxYTBiMjAwMDQyMDAzNzAzZDAwMTIwMDYyMDAwNDFkMDAxNmEyMjAzNDEwODEwMGYxYTIwMDUyMDA2MTAzZjIwMDQyMDA2MTA0ZTEwYzcwMTEwNDMyMjAxNDE4YThkMDg0MTA4MTA0ZDEwNGUyMDAyMTA0MzEwMmYyMjAyMTAzZjIwMDIxMDNmMjAwMTIwMDIxMDI0MjAwMDIwMDQzNjAyZDAwMTIwMDAyMDA0MTAxMjM2MDI4ODAyMjAwMDQxMDAzNjAyODQwMjIwMDAyMDAzMzYwMjgwMDIwMzQwMjAwMDIwMDA0MTgwMDI2YTEwYzQwMTIwMDAyODAyMDAwNDQwMjAwMDI4MDIwNDEwMDcxYTBjMDEwYjBiMjAwMDQxYTAwMjZhMjQwMDBmMGI0MWJhOGEwODQxMWExMDQxMDAwYjBkMDAxMDIyNDEwMDEwNWExMGM3MDExMDI1MGIwZDAwMTAyMjQxMDAxMDVhMTBkMTAxMTA1YjBiMGQwMDEwMjI0MTAwMTA1YTEwZDQwMTEwNWQwYjBkMDAxMDIyNDEwMDEwNWExMGQ4MDExMDVkMGIyYTAxMDE3ZjEwMjI0MTAwMTA1YTEwY2IwMTEwYWIwMTIyMDA0MWZlZmZmZmZmMDc0NzA0NDAyMDAwMTAwNzFhMGYwYjQxZWQ4NTA4NDEwNDEwMjYwYjBkMDAxMDIyNDEwMDEwNWExMGRhMDExMDVkMGIwZDAwMTAyMjQxMDAxMDVhMTBjODAxMTA1YjBiMGQwMDEwMjI0MTAwMTA1YTEwYzkwMTEwNWIwYjBkMDAxMDIyNDEwMDEwNWExMGNjMDExMDViMGIwZDAwMTAyMjQxMDAxMDVhMTBkOTAxMTA1ZDBiMGQwMDEwMjI0MTAwMTA1YTEwZDIwMTEwNWIwYmExMDEwMTAyN2YyMzAwNDE0MDZhMjIwMDI0MDAxMDIyNDEwMTEwNWEyMDAwNDEwMDEwNGIzNjAyMTQyMDAwMjAwMDQxMTQ2YTEwZDYwMTEwYWMwMTIyMDEzNjAyMTgyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDIwMjAwMDIwMDAyODAyMDgzNjAyMWMyMDAwMjAwMTEwMTIzNjAyMmMyMDAwNDEwMDM2MDIyODIwMDAyMDAwNDExODZhMzYwMjI0MjAwMDQxMzQ2YTIxMDEwMzQwMjAwMDQxMzA2YTIwMDA0MTI0NmExMGJhMDEyMDAwMjgwMjMwMDQ0MDIwMDEyMDAwNDExYzZhMTBiYjAxMGMwMTBiMGIyMDAwMjgwMjFjMjAwMDJkMDAyMDEwMzcyMDAwNDE0MDZiMjQwMDBiYTAwMTAxMDI3ZjIzMDA0MTQwNmEyMjAwMjQwMDEwMjI0MTAxMTA1YTIwMDA0MTAwMTA0YjM2MDIxNDIwMDAyMDAwNDExNDZhMTBkNTAxMTBiMjAxMjIwMTM2MDIxODIwMDA0MTA4NmExMDM1MjAwMDIwMDAyZDAwMGMzYTAwMjAyMDAwMjAwMDI4MDIwODM2MDIxYzIwMDAyMDAxMTAxMjM2MDIyYzIwMDA0MTAwMzYwMjI4MjAwMDIwMDA0MTE4NmEzNjAyMjQwMzQwMjAwMDQxMzA2YTIwMDA0MTI0NmExMGI1MDEyMDAwMmQwMDNjNDEwMjQ3MDQ0MDIwMDA0MTMwNmEyMDAwNDExYzZhMTBiNjAxMGMwMTBiMGIyMDAwMjgwMjFjMjAwMDJkMDAyMDEwMzcyMDAwNDE0MDZiMjQwMDBiMGQwMDEwMjI0MTAwMTA1YTEwZDMwMTEwNWUwYjBkMDAxMDIyNDEwMDEwNWExMGQ3MDExMDVlMGJlMzAzMDIwNTdmMDI3ZTIzMDA0MTkwMDE2YjIyMDAyNDAwMTA0OTQxMDAxMDVhMjAwMDEwNGEyMjAxMzYwMjE0MDI0MDIwMDExMDY1NDEwMTQ2MDQ0MDIwMDExMDEyMjEwMTIwMDA0MTAwMzYwMjM0MjAwMDIwMDEzNjAyMzAyMDAwNDEwMDM2MDIyYzIwMDAyMDAwNDExNDZhMzYwMjI4MjAwMDQxM2M2YTIxMDIyMDAwNDFmNDAwNmEyMTAzMjAwMDQxZjgwMDZhMjEwMTAzNDAyMDAwNDFmMDAwNmEyMDAwNDEyODZhMTA2NzIwMDAyOTAzNzA1MDBkMDIyMDAwNDFlMDAwNmEyMDAxNDEwODZhMjkwMzAwMjIwNTM3MDMwMDIwMDAyMDAxMjkwMzAwMjIwNjM3MDM1ODIwMDAyMDAwMjgwMjM0MjIwNDQxMDE2YTM2MDIzNDIwMDM0MTA4NmEyMDA1MzcwMjAwMjAwMzIwMDYzNzAyMDAyMDAwNDE0MDZiMjAwMTI5MDIwMDM3MDMwMDIwMDA0MWM4MDA2YTIwMDA0MTgwMDE2YTI4MDIwMDM2MDIwMDIwMDAyMDAwMjkwMjcwMzcwMzM4MjAwNDQ1MDQ0MDIwMDA0MTIwNmEyMDAyNDEwODZhMjkwMjAwMzcwMzAwMjAwMDIwMDIyOTAyMDAzNzAzMTgwYzAxMGIwYjEwMmMwMDBiNDFiMzgzMDg0MTIyMTAwMzAwMGIyMDAwNDEwODZhMjIwMTIwMDA0MTIwNmEyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDMxODM3MDMwMDEwZGEwMTEwYTcwMTIxMDIyMDAxMjgwMjAwMjAwMjEwMzA0NTA0NDA0MTk4OGEwODQxMGQxMDQxMDAwYjEwZDIwMTEwNWMyMTAyMjAwMDEwNDMzNjAyMTgyMDAwMTA0MzM2MDIyODIwMDA0MWYwMDA2YTIyMDEyMDAyMTAzMjQxYTc4MzA4NDEwNTEwMzMyMDAwMjgwMjc0MjIwMjIwMDA0MTE4NmExMDdiMjAwMjIwMDA0MTI4NmExMDdhMjAwMDQxZTgwMDZhMjAwMDQxODAwMTZhMjkwMzAwMzcwMzAwMjAwMDQxZTAwMDZhMjAwMDQxZjgwMDZhMjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNzAzNzAzNTgyMDAwNDEzODZhMjIwMjIwMDA0MWQ4MDA2YTIwMDAxMDg0MDEyMDAxMjAwMjEwY2QwMTIwMDExMDc0MjAwMDQxOTAwMTZhMjQwMDBiOGMwMTAxMDI3ZjIzMDA0MTQwNmEyMjAwMjQwMDEwNDk0MTAwMTA1YTEwZDIwMTEwNWMyMTAxMjAwMDEwNDMzNjAyMDAyMDAwMTA0MzM2MDIwNDIwMDA0MTA4NmEyMDAxMTAzMjQxOTU4MzA4NDExMjEwMzMyMDAwMjgwMjBjMjIwMTIwMDAxMDdiMjAwMTIwMDA0MTA0NmExMDdhMjAwMDQxMzA2YTIwMDA0MTE4NmEyOTAzMDAzNzAzMDAyMDAwNDEyODZhMjAwMDQxMTA2YTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzA4MzcwMzIwMjAwMDEwN2QzNjAyMzgyMDAwNDEyMDZhMTA3NDIwMDA0MTQwNmIyNDAwMGJmZjAxMDIwNTdmMDE3ZTIzMDA0MTMwNmIyMjAwMjQwMDEwMjIxMDQ5NDEwMTEwNWEyMDAwMTA0ZjM2MDIxMDEwZDIwMTEwNWMyMDAwMTA0MzM2MDIxNDIwMDAxMDQzMzYwMjE4MTAzMjIxMDI0MWFjODMwODQxMDcxMDRkMjEwMzEwNDMyMjAxMjAwMDQxMTA2YTEwNzgyMDAxMjAwMDQxMTQ2YTEwN2IyMDAxMjAwMDQxMTg2YTEwN2ExMDdkMjEwNDEwMTYyMDAyMjAwNDIwMDMyMDAxMTA0NTIxMDExMDE3MjAwMTEwMTIyMTAyMjAwMDQxMDAzNjAyMjQyMDAwMjAwMTM2MDIxYzIwMDAyMDAyNDEwMjc2MzYwMjIwMjAwMDQxMWM2YTEwNzUyMTAxMjAwMDQyMDAzNzAzMjgyMDAxMTAxMjIyMDI0MTA5NDkwNDQwMDI0MDIwMDA0MTA4NmEyMDAwNDEyODZhMjAwMjEwYjAwMTIwMDE0MTAwMjAwMDI4MDIwODIyMDEyMDAwMjgwMjBjMjIwMjEwOGEwMTFhMjAwMTIwMDIxMGIxMDEyMjA1NDI4MDgwODA4MDEwNWEwZDAwMjAwNTEwMTQyMDAwNDEzMDZhMjQwMDBmMGIwYjQxOGE4NTA4NDEwYjQxOTU4NTA4NDEwZTEwNGMwMDBiOTgwMzAyMDU3ZjAxN2UyMzAwNDFlMDAwNmIyMjAwMjQwMDEwMjIxMDQ5NDFlNGRiMDgxMDEzMzYwMjAwNDFlNGRiMDgyODAyMDA0MTAwNDgwNDQwNDFlZjgzMDg0MTExMTAwMzAwMGIyMDAwNDEwMDM2MDIzODEwNDMyMTAzMjAwMDQxMzg2YTIyMDQyODAyMDAyMTAxMDM0MDQxZTRkYjA4MjgwMjAwMjAwMTRhMDQ0MDIwMDQyMDAxNDEwMTZhMjIwMjM2MDIwMDIwMDMyMDAxMTA0YjEwNGUyMDAyMjEwMTBjMDEwYjBiMjAwMzIxMDE0MWU0ZGIwODI4MDIwMDIwMDAyODAyMzg0YTA0NDA0MTgwODQwODQxMTIxMDAzMDAwYjIwMDAyMDAxMzYwMjFjMjAwNDEwZDIwMTEwNWMxMDMyNDFmOTgyMDg0MTBkMTAzMzIwMDAyMDAxMTAxMjM2MDI1YzIwMDA0MTAwMzYwMjU4MjAwMDIwMDA0MTFjNmEzNjAyNTQyMDAwMjgwMjNjMjEwMTAzNDAyMDAwNDExMDZhMjAwMDQxZDQwMDZhMTBjNDAxMjAwMDI4MDIxMDA0NDAyMDAxMjAwMDI4MDIxNDEwNmUwYzAxMGIwYjIwMDA0MTI4NmEyMDAwNDE0MDZiMjkwMzAwMzcwMzAwMjAwMDQxMzA2YTIwMDA0MWM4MDA2YTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzM4MzcwMzIwMjAwMDQxMzg2YTIwMDA0MTIwNmExMDdlMDI0MDIwMDAyODAyNDQyMjAxMTBjZTAxNDUwNDQwMjAwMDI4MDI0MDIxMDIwYzAxMGIxMDQ2MjAwMDI4MDI0MDIyMDI0MjAwMjAwMTEwNDIwYjIwMDAyOTAzMzgyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDNjMjAwMDIwMDAyODAyMDgzNjAyMzgyMDAyMjAwMDQxMzg2YTIyMDIxMDNlMjAwMjEwYzYwMTIwMDEyMDAyMTAzYzIwMDAyODAyMzgyMDAwMmQwMDNjMTAzNzIwMDA0MWUwMDA2YTI0MDAwYjMxMDEwMTdlMTAyMjEwNDk0MTAxMTA1YTQxMDAxMDExMjIwMDQyODE4MDkwYmJiYWQ2YWRmMDBkNWEwNDQwNDFlZjhiMDg0MTIwMTA0MTAwMGIxMGQ3MDEyMDAwMTBhYTAxMGIzMTAxMDE3ZTEwMjIxMDQ5NDEwMTEwNWE0MTAwMTAxMTIyMDA0MjgxODA5MGJiYmFkNmFkZjAwZDVhMDQ0MDQxZDI4YjA4NDExZDEwNDEwMDBiMTBkMzAxMjAwMDEwYWEwMTBiZTMwMTAxMDM3ZjIzMDA0MTMwNmIyMjAwMjQwMDEwMjIxMDQ5NDEwMjEwNWE0MTAwMTA1ODIxMDEyMDAwNDEwMTEwNTEyMjAyMzYwMjBjMjAwMDIwMDEzNjAyMDgyMDAwMjAwMTEwMTIzNjAyMTgyMDAwNDEwMDM2MDIxNDIwMDAyMDAwNDEwODZhMzYwMjEwMDM0MDIwMDA0MTFjNmEyMDAwNDExMDZhMTBjMzAxMjAwMDI4MDIxYzA0NDAyMDAwMjAwMDI4MDIyNDIyMDEzNjAyMmMyMDAwMjAwMDI4MDIyMDM2MDIyODIwMDA0MTI4NmExMGQ2MDEyMDAxMTBiOTAxMGMwMTA1MjAwMDIwMDIxMDEyMzYwMjE4MjAwMDQxMDAzNjAyMTQyMDAwMjAwMDQxMGM2YTM2MDIxMDAzNDAyMDAwNDExYzZhMjAwMDQxMTA2YTEwYzMwMTIwMDAyODAyMWMwNDQwMjAwMDIwMDAyODAyMjQyMjAxMzYwMjJjMjAwMDIwMDAyODAyMjAzNjAyMjgyMDAwNDEyODZhMTBkNTAxMjAwMTEwYjQwMTBjMDEwYjBiMjAwMDQxMzA2YTI0MDAwYjBiMGJhYTA3MDIwYjdmMDE3ZTIzMDA0MTMwNmIyMjAwMjQwMDEwMjI0MTAwMTA1YTEwYzkwMTEwNWMyMjA5MTAyZjEwMzIyMTAxNDFkMjgxMDg0MTE0MTA0ZDIxMDIxMDQzMjEwNjEwN2QyMTA3MTAxNjIwMDEyMDA3MjAwMjIwMDYxMDQ1MjEwMTEwMTcyMDAxMTAxMjIxMDIyMDAwNDEwMDM2MDIxMDIwMDAyMDAxMzYwMjA4MjAwMDIwMDI0MTAyNzYzNjAyMGMyMDAwNDEwODZhMTA3NTIyMDIxMDEyMjEwMTIwMDA0MTI4NmE0MTAwM2EwMDAwMjAwMDQxMjQ2YTIwMDEzNjAyMDAyMDAwMjAwMjM2MDIyMDIwMDAyMDAxMzYwMjFjMjAwMDQxMDAzNjAyMTgwMjQwMDI3ZjAyNDAwMjQwMjAwMTQ1MGQwMDAyNDAwMjQwMDI0MDIwMDA0MTE4NmE0MThhODUwODQxMGIxMDU0NDFmZjAxNzEwZTAyMDIwMTAwMGI0MThhODUwODQxMGI0MWVkODYwODQxMGQxMDRjMDAwYjQxMDEyMTAzMjAwMDQxMTg2YTQxOGE4NTA4NDEwYjEwNTMyMTAxMGIyMDAwMjgwMjFjMjAwMDI4MDIxODQ3MGQwMzIwMDAyZDAwMjgwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAzNDUwZDAwMjAwMDQxMTg2YTIyMDQyMDAxMTAyZjEwMzI0MWU0ODIwODQxMTUxMDMzMjAwMDIwMDQxMDdjMjIwMzM2MDIwMDIwMDQyMDAxMTAyZjEwMzI0MWIyODIwODQxMGIxMDMzMjAwMDQxMTg2YTEwN2M0MmJlOGE4NjBmMTAyZTEwOGUwMTIxMDYyMDA0MjAwMTEwMmYxMDMyNDFjOTgyMDg0MTBkMTAzMzIwMDA0MTE4NmExMDdjMjAwMzEwOTIwMTQyYmU4YTg2MGYxMDJlMTA4ZTAxNDEwYTEwMmQ0MTEyMTA5NDAxMTA4ZDAxMjEwNzIwMDQyMDAxMTAyZjEwMzI0MWJkODIwODQxMGMxMDMzMjAwMDQxMTg2YTEwN2M0MTBhMTAyZDQxMTIxMDk0MDEyMDAzMTA5MDAxMTA4ZTAxNDJiZThhODYwZjEwMmUxMDhlMDE0MTBhMTAyZDQxMTIxMDk0MDExMDhkMDEyMTBhMjAwNDIwMDkxMDJmMjIwMjEwMmYxMDMyNDE4NzgxMDg0MTBmMTAzMzIwMDAyMDAwNDExODZhMTA3YzIyMDUzNjAyMTQyMDA0MjAwMjEwMmYxMDMyNDFhYjgyMDg0MTA3MTAzMzIwMDA0MTE4NmExMDdjMjEwODIwMDQyMDAyMTAzMjQxYTY4MTA4NDExMDEwMzMyMDAwNDExODZhMTA3YzIxMDIyMDAwMjAwODIwMDUxMDkxMDEyMDAyMTA5MDAxMzYwMjA4MjAwNDIwMDExMDMyNDFkNjgyMDg0MTBlMTAzMzIwMDAyODAyMWMyMjAxMjAwMDQxMTQ2YTEwNzgyMDAxMjAwMDQxMDg2YTEwNzgyMDAwMjgwMjI4MjEwMjIwMDAyODAyMTgyMTA1MjAwMDI5MDMyMDEwN2QyMTA4MTA3MTIwMDIyMDA4MjAwNTIwMDExMDQ1MjEwMTEwMTcyMDAwMjAwMTEwNzMzNjAyMDQ0MjgwODA5MGJiYmFkNmFkZjAwZDEwMmUyMTAyMjAwMDEwN2QzNjAyMTgyMDAwNDEwNDZhMjAwNDEwY2YwMTIxMDUxMDdkMjIwMTIwMDUwZDAyMWEyMDAxMjAwMDI4MDIwNDEwODkwMTQxMDE2YTQxZmYwMTcxNDEwMTRkMDQ0MDIwMDA0MTA0NmEyMDAwMTBjZjAxMGQwMjIwMDAyODAyMDAyMTAzMGIyMDAwMjgwMjA0MjAwMzEwOTMwMTIwMGExMDhlMDEyMTAxNDEwYTEwMmQ0MTEyMTA5NDAxMjAwMDI4MDIwMDEwOTAwMTIxMDMyMDA2MjAwMjEwOTIwMTIwMDcyMDAyMTA5MjAxMTA4YzAxMjAwMTIwMDIxMDhlMDEyMDAzMTA4ZDAxMTA4YzAxMGMwMjBiNDFhMDhiMDg0MTMyMTA0MTAwMGIyMDAwMjgwMjA0MjAwNzEwOTIwMTIxMDEyMDA2MjAwMjEwOTIwMTIwMDEyMDAyMTA4ZTAxMjAwMDI4MDIwMDEwOGQwMTEwOGMwMTBiMjEwMTIwMDA0MTE4NmEyMjAzMjAwOTEwMzI0MTk2ODEwODQxMTAxMDMzMjAwMzEwN2MyMTAyNDEwYTEwMmQ0MTEyMTA5NDAxMjEwMzIwMDAyODAyMDQyMDAxMTA5MjAxMjAwMzIwMDIxMDkzMDExMDhlMDEyMDAzNDEwMzEwOTQwMTEwOGQwMTEwMjUyMDAwNDEzMDZhMjQwMDBmMGI0MThhODUwODQxMGI0MTk1ODUwODQxMGUxMDRjMDAwYjAzMDAwMTBiM2MwMTAxN2YyMzAwNDExMDZiMjIwNTI0MDAyMDA1NDEwODZhMjAwMTIwMDQyMDAyMjAwMzEwOWQwMTIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTEwNmEyNDAwMGIzYjAxMDE3ZjIzMDA0MTEwNmIyMjA1MjQwMDIwMDU0MTA4NmEyMDAyMjAwMzIwMDEyMDA0MTAyYjIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTEwNmEyNDAwMGIwYmRhMGQwMjAwNDE4MDgwMDgwYmM2MGQ0ZTZmMjA3Mzc3NjE3MDIwNmY3MDY1NzI2MTc0Njk2ZjZlMjA2NjZmNzU2ZTY0MjA2MTc0MjA2OTZlNjQ2NTc4MjA3NTZlNzc3MjYxNzA0NTY3NmM2NDY3NjU3NDU3NzI2MTcwNzA2NTY0NDU2NzZjNjQ1NDZmNmI2NTZlNDk2NDc3NzI2MTcwNDU2NzZjNjQ3MjY1NjM2OTcwNjk2NTZlNzQyMDYxNjQ2NDcyNjU3MzczMjA2ZTZmNzQyMDczNjU3NDY1Nzg2OTc0NGQ2MTcyNmI2NTc0NjM2YzYxNjk2ZDUyNjU3NzYxNzI2NDczNjc2NTc0NDE2MzYzNmY3NTZlNzQ1NDZmNmI2NTZlNzM2NzY1NzQ1NDZmNzQ2MTZjNDI2ZjcyNzI2Zjc3NzM2NzY1NzQ1MjY1NzM2NTcyNzY2NTQ2NjE2Mzc0NmY3MjY3NjU3NDU0NmY3NDYxNmM1MjY1NzM2NTcyNzY2NTczNjc2NTc0NTQ2ZjZiNjU2ZTQ5NjQ2ZDY5NmU3NDQxNmU2NDQ1NmU3NDY1NzI0ZDYxNzI2YjY1NzQ2NzY1NzQ0OTZlNzQ2NTcyNjU3Mzc0NTI2MTc0NjU0ZDZmNjQ2NTZjNjc2NTc0NTU2ZTY0NjU3MjZjNzk2OTZlNjc0OTY0NzQ2ZjZiNjU2ZTczNTQ2ZjU1NmU2NDY1NzI2Yzc5Njk2ZTY3NDE2ZDZmNzU2ZTc0NzU2ZTY0NjU3MjZjNzk2OTZlNjc0MTZkNmY3NTZlNzQ1NDZmNTQ2ZjZiNjU2ZTczNzI2NTY0NjU2NTZkNjc2NTc0NDM2MTczNjg2NzY1NzQ0MjYxNzM2NTUyNjE3NDY1Njc2NTc0NGM2MTczNzQ1MzZjNmY3MDY1Njc2NTc0NDY2OTcyNzM3NDUzNmM2ZjcwNjU2NzY1NzQ1NTc0Njk2YzY5N2E2MTc0Njk2ZjZlNjc2NTc0NGY3MDc0Njk2ZDYxNmM1NTc0Njk2YzY5N2E2MTc0Njk2ZjZlNjM2YzYxNjk2ZDRkNzU2Yzc0Njk3MDZjNjU2NzY1NzQ1Mzc0NjE2YjY1NTQ2ZjZiNjU2ZTQ5NjQ3MjY1NjI2MTZjNjE2ZTYzNjU1MDZmNzI3NDY2NmY2YzY5NmY3Mzc0NjE2YjY1NzU2ZTczNzQ2MTZiNjU2OTZlNjM2ZjcyNzI2NTYzNzQyMDZlNzU2ZDYyNjU3MjIwNmY2NjIwNDU1MzQ0NTQyMDc0NzI2MTZlNzM2NjY1NzI3MzYxNzI2Nzc1NmQ2NTZlNzQyMDY0NjU2MzZmNjQ2NTIwNjU3MjcyNmY3MjIwMjgyOTNhMjA3NDZmNmYyMDY2NjU3NzIwNjE3MjY3NzU2ZDY1NmU3NDczNzQ2ZjZmMjA2ZDYxNmU3OTIwNjE3MjY3NzU2ZDY1NmU3NDczNzc3MjZmNmU2NzIwNmU3NTZkNjI2NTcyMjA2ZjY2MjA2MTcyNjc3NTZkNjU2ZTc0NzM2MzYxNmU2ZTZmNzQyMDczNzU2Mjc0NzI2MTYzNzQyMDYyNjU2MzYxNzU3MzY1MjA3MjY1NzM3NTZjNzQyMDc3NmY3NTZjNjQyMDYyNjUyMDZlNjU2NzYxNzQ2OTc2NjU0ZDc1NmM3NDY5NDU1MzQ0NTQ0ZTQ2NTQ1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ0ZTQ2NTQ1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ1NDcyNjE2ZTczNjY2NTcyNzM3OTZlNjMyMDcyNjU3Mzc1NmM3NDY5NmU3MDc1NzQyMDc0NmY2ZjIwNmM2ZjZlNjc2OTZlNzA3NTc0MjA3NDZmNmYyMDczNjg2ZjcyNzQ2MzYxNzM3NDIwNzQ2ZjIwNjkzNjM0MjA2NTcyNzI2ZjcyNGQ2MTZlNjE2NzY1NjQ1NjY1NjMyMDY5NmU2NDY1NzgyMDZmNzU3NDIwNmY2NjIwNzI2MTZlNjc2NTQ1NTM0NDU0MjA2NTc4NzA2NTYzNzQ2NTY0NDU0NzRjNDQ3Mzc0NmY3MjYxNjc2NTIwNjQ2NTYzNmY2NDY1MjA2NTcyNzI2ZjcyM2EyMDc1NmU2YjZlNmY3NzZlMjA3MjY1NjM2NTY5NzY2NTY0MjA3NDZmNmI2NTZlMjA2MTY2NzQ2NTcyMjA3Mzc3NjE3MDY1Nzg2MzY4NjE2ZTY3NjU2MjYxNjQyMDYxNzI3MjYxNzkyMDZjNjU2ZTY3NzQ2ODc3NzI2ZjZlNjcyMDcyNjU3NDc1NzI2ZTY1NjQyMDczNzc2MTcwMjA3NDZmNmI2NTZlNzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NDY5NmU3NjYxNmM2OTY0MjA3NjYxNmM3NTY1Nzc3MjYxNzA3MDY1NjQ1ZjY1Njc2YzY0NWY2MzZmNmU3NDcyNjE2Mzc0NWY2MTY0NjQ3MjY1NzM3MzYzNmY2ZDcwNmY3NTZlNjQ1ZjYxNzM2ODczNzc2MTcwNWY3Mzc3NjE3MDczNjM2ZjZkNzA2Zjc1NmU2NDVmNzg2NTc4NjM2ODYxNmU2NzY1NWY3Mzc3NjE3MDczNzA2NTcyNjY2ZjcyNmQ2MTZlNjM2NTVmNjY2NTY1NzM1ZjcwNjU3MjYzNjU2ZTc0NjM2ZjZkNzA2Zjc1NmU2NDVmNjY2NTY1NzM1ZjcwNjU3MjYzNjU2ZTc0NjI2ZjZmNzM3NDY1NzI1ZjYxNjQ2NDcyNjU3MzczNmQ2ZjZlNjU3OTVmNmQ2MTcyNmI2NTc0NWY2MTY0NjQ3MjY1NzM3MzYzNmY2ZTc0NzI2ZjZjNmM2NTcyNWY2MTY0NjQ3MjY1NzM3MzYxNzM3MzY1NzQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNzY2MTc1NmM3NDVmNjE2NDY0NzI2NTczNzM3MDYxNzk2ZDY1NmU3NDIwNzM2ODZmNzU2YzY0MjA2MjY1MjA2MTZlMjA0NTUzNDQ1NDIwNzQ2ZjZiNjU2ZTU0Njg2NTIwNjE3MzczNjU3NDIwNzQ2ZjZiNjU2ZTIwNjk2NDY1NmU3NDY5NjY2OTY1NzIyMDYxNmU2NDIwNzQ2ODY1MjA2ZDZmNmU2NTc5MjA2ZDYxNzI2YjY1NzQyMDc1NmU2NDY1NzI2Yzc5Njk2ZTY3MjA2OTY0NjU2ZTc0Njk2NjY5NjU3MjIwNjQ2ZjZlMjc3NDIwNmQ2MTc0NjM2ODU3Njg2NTZlMjA3NDYxNzI2NzY1NzQ2OTZlNjcyMDYxNmUyMDQ1NDc0YzQ0MjA2ZDYxNzI2YjY1NzQyMDc0Njg2NTIwNjE3MzczNjU3NDIwNzQ2ZjZiNjU2ZTIwNjk2NDY1NmU3NDY5NjY2OTY1NzIyMDczNjg2Zjc1NmM2NDIwNjI2NTIwNTc0NTQ3NGM0NDQzNjE2YzZjNjU3MjIwNzM2ODZmNzU2YzY0MjA2MjY1MjA3NjYxNzU2Yzc0Nzc3MjZmNmU2NzIwNzA2MTc5NmQ2NTZlNzQ2ZTZmMjA3MjY1Nzc2MTcyNjQyMDc0NmYyMDYzNmY2ZDcwNmY3NTZlNjQ2ZTZmMjA2YzY1NjY3NDIwNjE2ZDZmNzU2ZTc0MjA3NDZmMjA2MzZmNmQ3MDZmNzU2ZTY0Nzc3MjZmNmU2NzIwNzM3NzYxNzA3MDY1NjQyMDc0NmY2YjY1NmU2ZTZmMjA2NTc4Njk3NDIwNmQ2MTcyNmI2NTc0MjA3MDYxNzk2ZDY1NmU3NDIwNzI2NTYzNjU2OTc2NjU2NDZlNmYyMDcyNjU2NDY1NjU2ZDIwNzA2MTc5NmQ2NTZlNzQyMDcyNjU2MzY1Njk3NjY1NjQ0ZTZmMjA2OTZlNzQ2NTcyNjU3Mzc0MjA3MjYxNzQ2NTIwNmQ2ZjY0NjU2YzIwNzA3MjY1NzM2NTZlNzQyMDZmNmUyMDc0Njg2NTIwNmQ2ZjZlNjU3OTIwNmQ2MTcyNmI2NTc0NmU2NTc3MjA2MzZmNmQ3MDZmNzU2ZTY0MjA2NjY1NjU3MzIwNjU3ODYzNjU2NTY0MjAzMTMwMzAyNTZlNjU3NzIwNzA2NTcyNjY2ZjcyNmQ2MTZlNjM2NTIwNjY2NTY1NzMyMDY1Nzg2MzY1NjU2NDIwMzEzMDMwMjU2ZDZmNmU2NTc5NWY2ZDYxNzI2YjY1NzQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNzc3MjYxNzA3MDY1NjQ1ZjY1Njc2YzY0NWY3NDZmNmI2NTZlNWY2OTY0NjU2ZTc0Njk2NjY5NjU3MjYyNmY2ZjczNzQ2NTcyNWY3Mzc0NjE2YjY1NjQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNmQ2ZjZlNjU3OTVmNmQ2MTcyNmI2NTc0NWY3NTZlNjQ2NTcyNmM3OTY5NmU2NzVmNjk2NDY1NmU3NDY5NjY2OTY1NzI2MzZmNmQ3MDZmNzU2ZTY0NDU2ZTY0NzA2ZjY5NmU3NDIwNjM2MTZlMjA2ZjZlNmM3OTIwNjI2NTIwNjM2MTZjNmM2NTY0MjA2Mjc5MjA2Zjc3NmU2NTcyMDAwMDcwNjE2ZTY5NjMyMDZmNjM2Mzc1NzI3MjY1NjQwMDQxYzg4ZDA4MGIwNDljZmZmZmZmQDA1MDBAMDEwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDU3NDU0NzRjNDQyZDYxMzIzODYzMzUzOUAwMDAwMDAwMDAwMDAwMDAwMDUwMGEzYjY2NjkwMmQ1ZjRiYmYwZmY5Mzc0OGZiOTE1YWViNDMxMjRjYmY2NTA5QDAwMDAwMDAwMDAwMDAwMDAwNTAwMzJkZTRmNDBmMTdhMmY0MWM0ZTQwYzIxZjU5NmUzNmE4NDY5OTRlMzY1MDlAMDAwMDAwMDAwMDAwMDAwMDA1MDBmODgzNjY4NmY3YzZjMGYxM2Q3Mjc1MTUxYjc4ZjU5ZjhmMmY3MjlhNjUwOUBAQEBAMDAwMDAwMDAwMDAwMDAwMDA1MDAwYjFlNWIyNDQzMjUwOTU4NDlmNGUzNzEzNDY2MWQ1YmZkY2Q5MjVlN2NlYg==", + "signature": "edf0ec99b6f60414fa5e36d40cfb1d0075d01fd7c4ad7ba59bbe62b8b48eb892beb0c18bba203ff32b83827c3953847b190cdc89a4806f4615565dc2b3b5940f", + "sourceShard": 1, + "destinationShard": 1, + "blockNonce": 2127577, + "blockHash": "e3aea17b5345b45f61b233834d3b4ba0ac6f2b7d53eb3f1b1cf2bf0534ba567f", + "notarizedAtSourceInMetaNonce": 2129029, + "NotarizedAtSourceInMetaHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", + "notarizedAtDestinationInMetaNonce": 2129029, + "notarizedAtDestinationInMetaHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", + "miniblockType": "TxBlock", + "miniblockHash": "cc7e81e68269c2c633daf997fd2d52fc82d8ba3bb699d7e75250008bd9b7aa29", + "hyperblockNonce": 2129029, + "hyperblockHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", + "timestamp": 1707144290, + "status": "success", + "operation": "scDeploy", + "initiallyPaidFee": "82333950000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + let opt_address = tx_response.new_deployed_address.map(|e| { + multiversx_sdk::data::address::Address::from_bytes(*e.as_array()) + .to_bech32_string() + .unwrap() + }); + + let expected = + Some("erd1qqqqqqqqqqqqqpgqwpdf84ggxzqzmr2zmw959q4nlf9nz562q33sak25ze".to_string()); + + assert_eq!(opt_address, expected) +} + +#[test] +fn test_deployed_address_should_be_none_if_not_a_sc_deployment_tx() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "BuiltInFunctionCall", + "processingTypeOnDestination": "SCInvoking", + "hash": "238ad6dbe75dab1d53caeb9cabd584aabc6fc113c849a983afef5a5e439ce9e5", + "nonce": 13, + "round": 2192628, + "epoch": 888, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqydwpdrplefjlwp3sp9xmn3vevdxdelfkwmfsw6e5xw", + "sender": "erd179xw6t04ug48m74jzyw9zq028hv66jhqayelzpzvgds0ptnzmckq2jf07f", + "gasPrice": 1000000000, + "gasLimit": 20000000, + "data": "RVNEVFRyYW5zZmVyQDRmNTU1MjRmMmQ2NDM4MzEzNzMxNjZAMDI0NmQyZDBiNmI1ZjBANjI3NTc5QDFiYzE2ZDY3NGVjODAwMDA=", + "signature": "ce984b4d785ccc7aca4b1cdea57ddcd568a502209f81e6b5bc678e1dd52b78d764fe46ea3ff77b926eb9f70eb52ae8f3f2afa2e9d0efa82655e361641458b900", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 2129490, + "blockHash": "0ab10909b27565c5b7b59e8e1ee4a68d7046f49225fcde4c12d4b1ea3f512b8a", + "notarizedAtSourceInMetaNonce": 2130938, + "NotarizedAtSourceInMetaHash": "0c545160fd37f09f0196505b9cd2e730596bcd99438978a5bb415b9e1be1849d", + "notarizedAtDestinationInMetaNonce": 2130942, + "notarizedAtDestinationInMetaHash": "1ddd6b7aeeff824b5d11f2936a6284e470fc5abe41e34a8df229b719dc1a537d", + "miniblockType": "TxBlock", + "miniblockHash": "dc8ae41e1ae321c0fccbeb807194d11ff6e0f4ed71163764d850f1daaa60bd22", + "hyperblockNonce": 2130942, + "hyperblockHash": "1ddd6b7aeeff824b5d11f2936a6284e470fc5abe41e34a8df229b719dc1a537d", + "timestamp": 1707155768, + "status": "success", + "tokens": [ + "OURO-d8171f" + ], + "esdtValues": [ + "640821212132848" + ], + "operation": "ESDTTransfer", + "function": "buy", + "initiallyPaidFee": "359390000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + let opt_address = tx_response.new_deployed_address; + + let expected: Option
= None; + + assert_eq!(opt_address, expected) +} diff --git a/framework/scenario/tests/test_tx_issued_token_identifier.rs b/framework/scenario/tests/test_tx_issued_token_identifier.rs new file mode 100644 index 0000000000..2d0ccffa84 --- /dev/null +++ b/framework/scenario/tests/test_tx_issued_token_identifier.rs @@ -0,0 +1,1422 @@ +use multiversx_sc_scenario::scenario_model::TxResponse; +use multiversx_sdk::data::transaction::{TransactionInfo, TransactionOnNetwork}; + +#[test] +fn test_process_issued_token_identifier_fungible() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "nonce": 61, + "round": 173598, + "epoch": 72, + "value": "50000000000000000", + "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "sender": "erd1x39tc3q3nn72ecjnmcz7x0qp09kp97t080x99dgyhx7zh95j0n4szskhlv", + "gasPrice": 1000000000, + "gasLimit": 100000000, + "gasUsed": 100000000, + "data": "aXNzdWVMcFRva2VuQDAwMDAwMDAwMDAwMDAwMDAwNTAwMTM5ZWQ3YWU0YWEwMzc5MmU2YmNiMzMyMzk0YTQwZmU3NDZlZWZhNDdjZWJANDU0NzRjNDQ0ZDQ1NTg0YzUwQDQ1NDc0YzQ0NGQ0NTU4", + "signature": "b5049d2906adc1305a6a8d0f42749254ca6259c6996d9a35e7dc7528b3c87b48a421879aff70bc6d81483a7559b75e5dcf9be499dcb7d57aa9f25c79ac2ad40d", + "sourceShard": 1, + "destinationShard": 1, + "blockNonce": 173354, + "blockHash": "09d85ac264a54e12e7613395211c53fe0ee5a7d3b7111bf5fec1d02794caaacd", + "notarizedAtSourceInMetaNonce": 173321, + "NotarizedAtSourceInMetaHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", + "notarizedAtDestinationInMetaNonce": 173321, + "notarizedAtDestinationInMetaHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", + "miniblockType": "TxBlock", + "miniblockHash": "7f45eee4e35ffc1fbce66b92e4dd2aeae2acb092416aa5aa775b96493256b81d", + "hyperblockNonce": 173321, + "hyperblockHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", + "timestamp": 1695041588, + "smartContractResults": [ + { + "hash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "data": "issue@45474c444d45584c50@45474c444d4558@03e8@12@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e4d696e74@74727565@63616e4275726e@74727565@63616e4368616e67654f776e6572@74727565@63616e55706772616465@74727565@63616e4164645370656369616c526f6c6573@74727565@65ba30", + "prevTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 89624222, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1x39tc3q3nn72ecjnmcz7x0qp09kp97t080x99dgyhx7zh95j0n4szskhlv", + "operation": "transfer", + "function": "issue" + }, + { + "hash": "2a452ff652791d79be5f6933fb583cc5503e876893e54b3b51381a92aa2e904d", + "nonce": 0, + "value": 0, + "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetBurnRoleForAll@45474c444d45582d393563366435", + "prevTxHash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "events": [ + { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "identifier": "completedTxEvent", + "topics": [ + "vOPQ3OsLPlyMV4DX2jdVw/dJLVUWhdSTpzv2br02dUs=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTTransfer@45474c444d45582d393563366435@03e8@00", + "prevTxHash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 39624222, + "gasPrice": 1000000000, + "callType": 2, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "identifier": "ESDTTransfer", + "topics": [ + "RUdMRE1FWC05NWM2ZDU=", + "", + "A+g=", + "AAAAAAAAAAAFAO+ux8+3RD51ieGHV10Z68X293CYfOs=" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "identifier": "completedTxEvent", + "topics": [ + "vOPQ3OsLPlyMV4DX2jdVw/dJLVUWhdSTpzv2br02dUs=" + ], + "data": null, + "additionalData": null + } + ] + }, + "tokens": [ + "EGLDMEX-95c6d5" + ], + "esdtValues": [ + "1000" + ], + "operation": "ESDTTransfer", + "function": "\u0000" + }, + { + "hash": "c9dfc4de3c3cee319123087a4f5dd03cc051e728ec6070707a63ea977b535227", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "data": "\u0000", + "prevTxHash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 39424222, + "gasPrice": 1000000000, + "callType": 2, + "operation": "transfer", + "function": "\u0000" + }, + { + "hash": "609c3a8e1903680fef1f6d9e47527b1b5c1259664b868af600162120ce0b8192", + "nonce": 1, + "value": 300925400000000, + "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "data": "@6f6b", + "prevTxHash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", + "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "identifier": "transferValueOnly", + "topics": [ + "AAAAAAAAAAAFAO+ux8+3RD51ieGHV10Z68X293CYfOs=", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", + "saK8LsUAAA==" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", + "identifier": "writeLog", + "topics": [ + "NEq8RBGc/KziU94F4zwBeWwS+W87zFK1BLm8K5aSfOs=" + ], + "data": "QDZmNmI=", + "additionalData": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "issueLpToken", + "initiallyPaidFee": "1214335000000000", + "fee": "1214335000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = Some("EGLDMEX-95c6d5".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_process_issued_token_identifier_semi_fungible() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "nonce": 65, + "round": 8422527, + "epoch": 584, + "value": "50000000000000000", + "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "sender": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", + "gasPrice": 1000000000, + "gasLimit": 80000000, + "gasUsed": 80000000, + "data": "aXNzdWVUb2tlbkA0NDZmNzA2NTU0NjU3Mzc0QDQ0NGY1MDQ1NTQ0NTUzNTQ=", + "signature": "0191848976e930996f6c62d4921e732f9b0ada8b41ca3b5b63d6bfd304fd44c2a1e8e6643479618ba4a764a36e87f53882b4f707600d5b7d476f2fdd2bac040e", + "sourceShard": 0, + "destinationShard": 0, + "blockNonce": 8420241, + "blockHash": "4d302220f6015876c95e7961b770cc67f8ab63c5f0ab69b4d6c2fb15c8bc23bd", + "notarizedAtSourceInMetaNonce": 8403647, + "NotarizedAtSourceInMetaHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", + "notarizedAtDestinationInMetaNonce": 8403647, + "notarizedAtDestinationInMetaHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", + "miniblockType": "TxBlock", + "miniblockHash": "b7b8fc9f3b81d7daae1113cbf73457e16ee31f3a864ef3729a1a21f3a929e112", + "hyperblockNonce": 8403647, + "hyperblockHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", + "timestamp": 1646652762, + "smartContractResults": [ + { + "hash": "9aecf3bd5dd5c706a28d1cc7059ac20db74340f136816f667dbefcc58daa3aba", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "data": "issueSemiFungible@446f706554657374@444f504554455354@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e4368616e67654f776e6572@74727565@63616e55706772616465@74727565@63616e4164645370656369616c526f6c6573@74727565@5ca148", + "prevTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "gasLimit": 75958360, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", + "operation": "transfer", + "function": "issueSemiFungible" + }, + { + "hash": "aacfe9088bb9d2d5b3fbe9cab2b2f1c6a7e9cbab2f1a41020e2c819fc9b43570", + "nonce": 66, + "value": 0, + "receiver": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", + "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "data": "@6f6b", + "prevTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer" + }, + { + "hash": "3f6f0f3de9e942884e7e1592823a7db7ce935a3f9d3359d8c1ee98a5645332d8", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@444f5045544553542d373732303063", + "prevTxHash": "9aecf3bd5dd5c706a28d1cc7059ac20db74340f136816f667dbefcc58daa3aba", + "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "gasLimit": 25958360, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "identifier": "completedTxEvent", + "topics": [ + "muzzvV3VxwaijRzHBZrCDbdDQPE2gW9mfb78xY2qOro=" + ], + "data": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "c6e4f7c5da455009fb4f6967ce8a273a97b826aa617fa798ffd0cf17bde6b97a", + "nonce": 1, + "value": 225516180000000, + "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "data": "@6f6b", + "prevTxHash": "3f6f0f3de9e942884e7e1592823a7db7ce935a3f9d3359d8c1ee98a5645332d8", + "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "identifier": "transferValueOnly", + "topics": [ + "AAAAAAAAAAAFAH6d74PDz8xLqvowrlOA5lVDBMUghBg=", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", + "saK8LsUAAA==" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", + "identifier": "writeLog", + "topics": [ + "NFD3vy7whM1YgLyLL6nEojWMeUDt2MMJRRM9qTgahBg=" + ], + "data": "QDZmNmI=" + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "issueToken", + "initiallyPaidFee": "914840000000000", + "fee": "914840000000000", + "chainID": "1", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = Some("DOPETEST-77200c".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_process_issued_token_identifier_non_fungible() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "nonce": 16, + "round": 820170, + "epoch": 341, + "value": "50000000000000000", + "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "sender": "erd162knt53z7m0f9jjms9wxphr3q9d7zu4ky85xs2cc0ekrqz7k4fdq85lkuc", + "gasPrice": 1000000000, + "gasLimit": 200000000, + "gasUsed": 200000000, + "data": "aXNzdWVUb2tlbkA2NzY1NmU2NTdhNzk3M0A0NzQ1NGU=", + "signature": "e80d45f4de419799a2bbff1cae1235521c8eef1853ee45b02f95c2da74ce50d241bf75b6ab0c650245562700862ea9759caad40f3e381ac0c4d82cfe56e67c09", + "sourceShard": 2, + "destinationShard": 2, + "blockNonce": 819313, + "blockHash": "a1db4ef13f07b86678000df9cc78f244d83dcc35ae51de545f333bf616930d39", + "notarizedAtSourceInMetaNonce": 819396, + "NotarizedAtSourceInMetaHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", + "notarizedAtDestinationInMetaNonce": 819396, + "notarizedAtDestinationInMetaHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", + "miniblockType": "TxBlock", + "miniblockHash": "afdb278522181aeb9b12f08840e6c534e398e6af9c7f757548308e300e7ec4e9", + "hyperblockNonce": 819396, + "hyperblockHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", + "timestamp": 1698921020, + "smartContractResults": [ + { + "hash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "data": "issueNonFungible@67656e657a7973@47454e@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e5472616e736665724e4654437265617465526f6c65@74727565@63616e4368616e67654f776e6572@66616c7365@63616e55706772616465@66616c7365@63616e4164645370656369616c526f6c6573@74727565@5e30e4", + "prevTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 196098365, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd162knt53z7m0f9jjms9wxphr3q9d7zu4ky85xs2cc0ekrqz7k4fdq85lkuc", + "operation": "transfer", + "function": "issueNonFungible" + }, + { + "hash": "98afe82512c79f1caaf171bd5919ee469d11ba0c4f725aefcab834278c0f1e58", + "nonce": 0, + "value": 0, + "receiver": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetBurnRoleForAll@47454e2d383638353933", + "prevTxHash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", + "events": [ + { + "address": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", + "identifier": "completedTxEvent", + "topics": [ + "b+DMACgCrxdE85Tu5KaSJLXndZYdg4bgTnpbkkL3/2U=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "data": "setSpecialRole@47454e2d383638353933@00000000000000000500de51fa8943c26e6933419f9bb7ceb79b7ff4f7bbaa5a@45534454526f6c654e4654437265617465@5e30e4", + "prevTxHash": "112d18ec0364b4700b1bfb3df517c80dba547a53373ece2a9e71acd5266e7b64", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 142399698, + "gasPrice": 1000000000, + "callType": 1, + "operation": "transfer", + "function": "setSpecialRole" + }, + { + "hash": "112d18ec0364b4700b1bfb3df517c80dba547a53373ece2a9e71acd5266e7b64", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@47454e2d383638353933", + "prevTxHash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 146098365, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=" + ], + "data": "QDZmNmI=", + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "db5d74970374337956fa61fb4fd90057b3f6a82ea3e259b389934b71a1652e5f", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetRole@47454e2d383638353933@45534454526f6c654e4654437265617465", + "prevTxHash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "ESDTSetRole", + "topics": [ + "R0VOLTg2ODU5Mw==", + "", + "", + "RVNEVFJvbGVORlRDcmVhdGU=" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "completedTxEvent", + "topics": [ + "g0lK2TaXOLV0pyZsv7Es5jzPY0lQzWsOwWEHuPtC+PY=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "ESDTSetRole", + "function": "ESDTSetRole" + }, + { + "hash": "a6a665f47977a59c4c2baf460281fc938e04ae0f87ac2e78040a14ae27822701", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00", + "prevTxHash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", + "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", + "gasLimit": 92399698, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gOTIzOTk2OTgsIGdhcyB1c2VkID0gMzE0MTg4MA==" + ], + "data": "QDZmNmI=", + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "completedTxEvent", + "topics": [ + "g0lK2TaXOLV0pyZsv7Es5jzPY0lQzWsOwWEHuPtC+PY=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "transferValueOnly", + "topics": [ + "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", + "saK8LsUAAA==" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", + "identifier": "writeLog", + "topics": [ + "0q010iL23pLKW4FcYNxxAVvhcrYh6GgrGH5sMAvWqlo=" + ], + "data": "QDZmNmI=", + "additionalData": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "issueToken", + "initiallyPaidFee": "2097020000000000", + "fee": "2097020000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = Some("GEN-868593".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_process_issued_token_identifier_meta_esdt() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "nonce": 419, + "round": 1787093, + "epoch": 744, + "value": "50000000000000000", + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 157220928, + "data": "ZGVwbG95QXNoc3dhcExQQUNTdHJhdGVneUA0MTRjNTAyZDYzNjE2NTYxNjMzNUA0MTU0NTMyZDM0NjMzMDM5MzIzMEAwM2U4QDAzZThAQDNiOWFjYTAwQDAwMDAwMDAwMDAwMDAwMDAwNTAwOTU3MzkwYWVkYTQzMmY1MmE0MTFkNTE5NzRmZTkzZDQwZDI3NzMzZTA0NjNAMDAwMDAwMDAwMDAwMDAwMDA1MDBkMTJjYzczY2JkYTZmMjY1OWM5NTllNWQ1NzU4YWY5MmNhMTM4NDg2NTIzM0AwMDAwMDAwMDAwMDAwMDAwMDUwMDUxZGY3MTc1OGNmMmFjYTViNDZkZWQ4MTU1OGI1NTE1ZGMyOWYzZjM1MjMzQEAwMDAwMDAwMDAwMDAwMDAwMDUwMDdlNGExZGZjNDM3Y2VkNDlkYjlmMTYzNzk4NDE2Yjg0YWMyMWQ0Yzk3Y2ViMDAwMDAwMGM1NzQ1NDc0YzQ0MmQ2MTMyMzg2MzM1MzkwMDAwMDAwMDAwMDAwMDAwMDUwMGE4YmE5ZTY4NjI2YmJjOTkzZmQ3OTVlOGJiNmY0Nzk0M2IyZjVmZmE3Y2ViMDAwMDAwMGE1NTU0NGIyZDMxMzQ2NDM1Mzc2NEAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwNTAwNTFkZjcxNzU4Y2YyYWNhNWI0NmRlZDgxNTU4YjU1MTVkYzI5ZjNmMzUyMzMwMDAwMDAwYjQyNTU1MzQ0MmQ2NDM0NjMzMDMxMzQwMDAwMDAwMDAwQDAxODZhMEAyNzEw", + "signature": "4648af0b96eb430e4986b9fb760549742de09c809b46b984e5d995c898d80c25bfc0717c30da34bd89cd3005d98ee895afa39ee588b7b74b4807c63cbeade807", + "sourceShard": 1, + "destinationShard": 1, + "blockNonce": 1785520, + "blockHash": "8f926a5d79fa84bc69949a21bfbba17447091a8a074ac172fa0b88e4475a1214", + "notarizedAtSourceInMetaNonce": 1785568, + "NotarizedAtSourceInMetaHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", + "notarizedAtDestinationInMetaNonce": 1785568, + "notarizedAtDestinationInMetaHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", + "miniblockType": "TxBlock", + "miniblockHash": "b85d82db6d69cbc1911b3455d2837eeb3170b391926efa2eacb4d9c8e3c96ee4", + "hyperblockNonce": 1785568, + "hyperblockHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", + "timestamp": 1704722558, + "smartContractResults": [ + { + "hash": "ea9a96c079e66249e6b73c0341991dad96ca81f855f2fc4abe0d432be117a882", + "nonce": 420, + "value": 4427790720000000, + "receiver": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "@6f6b", + "prevTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "registerMetaESDT@415453417368537761704c5041435661756c74@4156415348@12@63616e467265657a65@66616c7365@63616e57697065@66616c7365@63616e5061757365@66616c7365@63616e5472616e736665724e4654437265617465526f6c65@66616c7365@63616e4368616e67654f776e6572@66616c7365@63616e55706772616465@66616c7365@63616e4164645370656369616c526f6c6573@74727565@9eb30a87c92674ab1469700c0b385b3850e86de80f87dec6cf3213c7e379a646@408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43@03eb4a30", + "prevTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "gasLimit": 125751600, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "operation": "transfer", + "function": "registerMetaESDT" + }, + { + "hash": "290f85d7ec2f7d5797510290358e9e0f76bb880451efaacb0d69280b8d94c67a", + "nonce": 0, + "value": 0, + "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetBurnRoleForAll@41564153482d376438623564", + "prevTxHash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", + "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "logs": { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "events": [ + { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", + "identifier": "completedTxEvent", + "topics": [ + "YIKXUTKiydgZff0PmFK0VK00R0Duvb35P2ILJ5arcjs=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "1aa62a6251edd216bd4e5ae59f7e676d5d2f88597685e0ec0e25ac4434bfccdb", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@41564153482d376438623564@d0644194444642fd16ee156307f6fda0e8f8baf4c496e1a1dc85e027ecc08a4a@9eb30a87c92674ab1469700c0b385b3850e86de80f87dec6cf3213c7e379a646@408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43@00", + "prevTxHash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", + "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", + "gasLimit": 75751600, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNzU3NTE2MDAsIGdhcyB1c2VkID0gNDE3NjA1OQ==" + ], + "data": "QDZmNmI=", + "additionalData": [ + "QDZmNmI=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "completedTxEvent", + "topics": [ + "YIKXUTKiydgZff0PmFK0VK00R0Duvb35P2ILJ5arcjs=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" + ], + "data": "RGVwbG95RnJvbVNvdXJjZQ==", + "additionalData": [ + "RGVwbG95RnJvbVNvdXJjZQ==", + "aW5pdA==", + "QUxQLWNhZWFjNQ==", + "QVRTLTRjMDkyMA==", + "A+g=", + "A+g=", + "", + "O5rKAA==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=" + ], + "data": "RGVwbG95RnJvbVNvdXJjZQ==", + "additionalData": [ + "RGVwbG95RnJvbVNvdXJjZQ==", + "aW5pdA==", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", + "AAAAAAAAAAAFAJVzkK7aQy9SpBHVGXT+k9QNJ3M+BGM=", + "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=", + "AAAAAAAAAAAFAFHfcXWM8qyltG3tgVWLVRXcKfPzUjM=", + "", + "AAAAAAAAAAAFAH5KHfxDfO1J258WN5hBa4SsIdTJfOsAAAAMV0VHTEQtYTI4YzU5AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOsAAAAKVVRLLTE0ZDU3ZA==", + "AAAAAQAAAAAAAAAABQBR33F1jPKspbRt7YFVi1UV3Cnz81IzAAAAC0JVU0QtZDRjMDE0AAAAAAA=", + "AYag", + "JxA=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "Z2V0RmFybWluZ1Rva2VuSWQ=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "Z2V0RmFybVRva2VuSWQ=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "Z2V0UmV3YXJkVG9rZW5JZA==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "saK8LsUAAA==", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" + ], + "data": "QXN5bmNDYWxs", + "additionalData": [ + "QXN5bmNDYWxs", + "cmVnaXN0ZXJNZXRhRVNEVA==", + "QVRTQXNoU3dhcExQQUNWYXVsdA==", + "QVZBU0g=", + "Eg==", + "Y2FuRnJlZXpl", + "ZmFsc2U=", + "Y2FuV2lwZQ==", + "ZmFsc2U=", + "Y2FuUGF1c2U=", + "ZmFsc2U=", + "Y2FuVHJhbnNmZXJORlRDcmVhdGVSb2xl", + "ZmFsc2U=", + "Y2FuQ2hhbmdlT3duZXI=", + "ZmFsc2U=", + "Y2FuVXBncmFkZQ==", + "ZmFsc2U=", + "Y2FuQWRkU3BlY2lhbFJvbGVz", + "dHJ1ZQ==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", + "identifier": "SCDeploy", + "topics": [ + "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=", + "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", + "fvRqbue54Womde/CN2IkRGkrx8tsU+xkLvi3+uwMkhY=" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "identifier": "SCDeploy", + "topics": [ + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", + "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", + "E3blQfRJfCKLWDr06Od703DSZenIzq8KND+xUjmGY/M=" + ], + "data": null, + "additionalData": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "deployAshswapLPACStrategy", + "initiallyPaidFee": "6936045000000000", + "fee": "2508254280000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = Some("AVASH-7d8b5d".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_set_special_roles_should_not_process_issued_token_identifier() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "nonce": 420, + "round": 1787109, + "epoch": 744, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 129636807, + "data": "ZmluaXNoVmF1bHREZXBsb3ltZW50cw==", + "signature": "dca943ef1a788bfa6cb0e9aa3900b8340e4908075cbfefaa2a66688f6f0c0fed349edb2eb48eec427cd9098822fba875e4d66072fbdb44cb7f4c1a416736e20c", + "sourceShard": 1, + "destinationShard": 1, + "blockNonce": 1785536, + "blockHash": "93ca539e81612768b67a85b7135f7c104e76bec031a758a6b1782910ae49dd8f", + "notarizedAtSourceInMetaNonce": 1785584, + "NotarizedAtSourceInMetaHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", + "notarizedAtDestinationInMetaNonce": 1785584, + "notarizedAtDestinationInMetaHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", + "miniblockType": "TxBlock", + "miniblockHash": "f8c60565af746e92d2c9c09a92734e5eb8da7e42c67a86854c93b349bfe287eb", + "hyperblockNonce": 1785584, + "hyperblockHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", + "timestamp": 1704722654, + "smartContractResults": [ + { + "hash": "c3ce9c364de3823ffae250c2bfb40aaf2b18f771ed4bd37bf788ad83a2c651f3", + "nonce": 421, + "value": 4703631930000000, + "receiver": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "@6f6b", + "prevTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "setSpecialRole@41564153482d376438623564@00000000000000000500d00cc0e63887ff6b792d34234a44e7ac6b575d4b0463@45534454526f6c654e4654437265617465@45534454526f6c654e46544164645175616e74697479@45534454526f6c654e46544275726e@0192c6db2c69f50b6968fb22ac558337a851719519cfd1e6bbf79a07bbcf18bc@cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0@03eb4a30", + "prevTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 125751600, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "operation": "transfer", + "function": "setSpecialRole" + }, + { + "hash": "d6a5824a60b6c9050462c3f5a02ace00c36e8b4ba1958d132bd394e2ed1e7226", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetRole@41564153482d376438623564@45534454526f6c654e4654437265617465@45534454526f6c654e46544164645175616e74697479@45534454526f6c654e46544275726e", + "prevTxHash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "identifier": "ESDTSetRole", + "topics": [ + "QVZBU0gtN2Q4YjVk", + "", + "", + "RVNEVFJvbGVORlRDcmVhdGU=", + "RVNEVFJvbGVORlRBZGRRdWFudGl0eQ==", + "RVNEVFJvbGVORlRCdXJu" + ], + "data": null, + "additionalData": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", + "identifier": "completedTxEvent", + "topics": [ + "UPnCWhQCzm2Hrp+JBlnIpnRiKS5HHgLHTWT/e6GZXmA=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "ESDTSetRole", + "function": "ESDTSetRole" + }, + { + "hash": "bf1b8b4b301ff548368dfd972896489d5e2a088d5cbdfa1bfe2421cc7f641f7a", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@a68d44c751eba85db0713db8dc9c10c78749189ec0d6f1af5fc67bb656c1254b@0192c6db2c69f50b6968fb22ac558337a851719519cfd1e6bbf79a07bbcf18bc@cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0@00", + "prevTxHash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 75751600, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "c2V0U2hhcmVUb2tlbklkZW50aWZpZXI=", + "QVZBU0gtN2Q4YjVk" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "c2V0U3RyYXRlZ3lBZGRyZXNz", + "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "completedTxEvent", + "topics": [ + "UPnCWhQCzm2Hrp+JBlnIpnRiKS5HHgLHTWT/e6GZXmA=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "9d75a398545f488d4764149245e6ec3101debfce99477c353ac11c3239acd897", + "nonce": 1, + "value": 648519550000000, + "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "data": "@6f6b", + "prevTxHash": "bf1b8b4b301ff548368dfd972896489d5e2a088d5cbdfa1bfe2421cc7f641f7a", + "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", + "identifier": "transferValueOnly", + "topics": [ + "", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" + ], + "data": "QXN5bmNDYWxs", + "additionalData": [ + "QXN5bmNDYWxs", + "c2V0U3BlY2lhbFJvbGU=", + "QVZBU0gtN2Q4YjVk", + "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", + "RVNEVFJvbGVORlRDcmVhdGU=", + "RVNEVFJvbGVORlRBZGRRdWFudGl0eQ==", + "RVNEVFJvbGVORlRCdXJu" + ] + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "finishVaultDeployments", + "initiallyPaidFee": "6082170000000000", + "fee": "1378538070000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Option = None; + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} + +#[test] +fn test_multisig_issue_nft_and_set_all_roles() { + let data = r#" +{ + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "nonce": 53, + "round": 3050972, + "epoch": 1246, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "sender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "gasPrice": 1000000000, + "gasLimit": 80000000, + "gasUsed": 80000000, + "data": "cGVyZm9ybUFjdGlvbkAwMQ==", + "signature": "cb67645595cee5f7967d8d85af05bb7db73e80d9b97611796819249d87cd174b69b4abfc2a3fbe52df1aec965bdea921f7eb34d2b1118aa480699ad1dc85790a", + "sourceShard": 0, + "destinationShard": 0, + "blockNonce": 2984930, + "blockHash": "644ae8703b826a23e89429953919ec37f875e34a547ea9f7edd53fb71a99c746", + "notarizedAtSourceInMetaNonce": 2988311, + "NotarizedAtSourceInMetaHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", + "notarizedAtDestinationInMetaNonce": 2988311, + "notarizedAtDestinationInMetaHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", + "miniblockType": "TxBlock", + "miniblockHash": "c5a73671bc1d37835ddd15b926157721bc83203ec4e00cd48ae0d46015cb5f0b", + "hyperblockNonce": 2988311, + "hyperblockHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", + "timestamp": 1712305832, + "smartContractResults": [ + { + "hash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", + "nonce": 0, + "value": 50000000000000000, + "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "sender": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "data": "registerAndSetAllRoles@54657374436f6c6c656374696f6e31@54455354434f4c4c31@4e4654@@98fa4ff554b9c6990ce577fbb816a271f690dcbd6b148f6583fe7692868ae538@08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd@5e2338", + "prevTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 73052300, + "gasPrice": 1000000000, + "callType": 1, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "operation": "transfer", + "function": "registerAndSetAllRoles" + }, + { + "hash": "5ae4f74e134e4fa63c8b92e06ff12b2a4b544233d01d80db6a922af35ee55356", + "nonce": 1, + "value": 196430610000000, + "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "sender": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "data": "@6f6b", + "prevTxHash": "c4a24b01b48d32308636310e2d335d6ed1f34dcbdfc1133aed7995e78e831c18", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "7589c1ad622d8a9ab2f186731fc82aeeab0aea5a8198cb94b6eba85a966e7962", + "nonce": 0, + "value": 0, + "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetBurnRoleForAll@54455354434f4c4c312d356161383063", + "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "logs": { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", + "events": [ + { + "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", + "identifier": "completedTxEvent", + "topics": [ + "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" + ] + } + ] + }, + "operation": "transfer" + }, + { + "hash": "86d1ec3365ea1311dbde2f2366de4ea8627d7e49c29a974578c0869b66903cbc", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "ESDTSetRole@54455354434f4c4c312d356161383063@45534454526f6c654e4654437265617465@45534454526f6c654e46544275726e@45534454526f6c654e465455706461746541747472696275746573@45534454526f6c654e4654416464555249", + "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "ESDTSetRole", + "topics": [ + "VEVTVENPTEwxLTVhYTgwYw==", + "", + "", + "RVNEVFJvbGVORlRDcmVhdGU=", + "RVNEVFJvbGVORlRCdXJu", + "RVNEVFJvbGVORlRVcGRhdGVBdHRyaWJ1dGVz", + "RVNEVFJvbGVORlRBZGRVUkk=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "completedTxEvent", + "topics": [ + "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" + ] + } + ] + }, + "operation": "ESDTSetRole", + "function": "ESDTSetRole" + }, + { + "hash": "c4a24b01b48d32308636310e2d335d6ed1f34dcbdfc1133aed7995e78e831c18", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", + "data": "@00@54455354434f4c4c312d356161383063@3ec73c55022548038bbe06c0639156b3db70b7c770955e340f14fcfcd45df06a@98fa4ff554b9c6990ce577fbb816a271f690dcbd6b148f6583fe7692868ae538@08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd@00", + "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", + "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", + "gasLimit": 23052300, + "gasPrice": 1000000000, + "callType": 2, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "callBack", + "topics": [ + "YXN5bmNDYWxsU3VjY2Vzcw==", + "VEVTVENPTEwxLTVhYTgwYw==" + ], + "additionalData": [ + "" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "completedTxEvent", + "topics": [ + "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" + ] + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "performAction", + "topics": [ + "c3RhcnRQZXJmb3JtQWN0aW9u" + ], + "data": "AAAAAQYAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAL//wAAAAexorwuxQAAAAAAFnJlZ2lzdGVyQW5kU2V0QWxsUm9sZXMAAAAEAAAAD1Rlc3RDb2xsZWN0aW9uMQAAAAlURVNUQ09MTDEAAAADTkZUAAAAAAAAAATjKv7ckE/hk5dGrZc76zg1Y89jZCumabMED5uUKKXtYLE6AXQjw2bK/4zs+3ehJhChMPSIgTQSLHk3/q4NbX0XOvjZyUI7JXfGJSciwdkCEqQRH3ID+XRPdvz6HQoxADOyoRVVzlIeSUTgmrF1SdhbSH3NJshLUBejnjGjZwiJug==", + "additionalData": [ + "AAAAAQYAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAL//wAAAAexorwuxQAAAAAAFnJlZ2lzdGVyQW5kU2V0QWxsUm9sZXMAAAAEAAAAD1Rlc3RDb2xsZWN0aW9uMQAAAAlURVNUQ09MTDEAAAADTkZUAAAAAAAAAATjKv7ckE/hk5dGrZc76zg1Y89jZCumabMED5uUKKXtYLE6AXQjw2bK/4zs+3ehJhChMPSIgTQSLHk3/q4NbX0XOvjZyUI7JXfGJSciwdkCEqQRH3ID+XRPdvz6HQoxADOyoRVVzlIeSUTgmrF1SdhbSH3NJshLUBejnjGjZwiJug==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "performAction", + "topics": [ + "cGVyZm9ybUFzeW5jQ2FsbA==", + "AQ==", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", + "saK8LsUAAA==", + "BGa4HQ==", + "cmVnaXN0ZXJBbmRTZXRBbGxSb2xlcw==", + "VGVzdENvbGxlY3Rpb24x", + "VEVTVENPTEwx", + "TkZU", + "" + ], + "additionalData": [ + "" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "transferValueOnly", + "topics": [ + "saK8LsUAAA==", + "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" + ], + "data": "QXN5bmNDYWxs", + "additionalData": [ + "QXN5bmNDYWxs", + "cmVnaXN0ZXJBbmRTZXRBbGxSb2xlcw==", + "VGVzdENvbGxlY3Rpb24x", + "VEVTVENPTEwx", + "TkZU", + "" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", + "identifier": "writeLog", + "topics": [ + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" + ], + "data": "QDZmNmI=", + "additionalData": [ + "QDZmNmI=" + ] + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "performAction", + "initiallyPaidFee": "873260000000000", + "fee": "873260000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "code": "successful" +} + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected = Some("TESTCOLL1-5aa80c".to_string()); + + assert_eq!(tx_response.new_issued_token_identifier, expected) +} diff --git a/framework/scenario/tests/test_tx_multi_contract_sc_result.rs b/framework/scenario/tests/test_tx_multi_contract_sc_result.rs new file mode 100644 index 0000000000..8d45dfff0c --- /dev/null +++ b/framework/scenario/tests/test_tx_multi_contract_sc_result.rs @@ -0,0 +1,477 @@ +use multiversx_sc_scenario::scenario_model::TxResponse; +use multiversx_sdk::data::transaction::{TransactionInfo, TransactionOnNetwork}; + +#[test] +fn test_with_multi_contract_same_shard_tx_that_has_no_sc_result() { + // transaction data from the devnet + // context : user -> A --call--> B, B returns a MultiValue2, A returns the B's returned value + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "e914857f1bfd003ba411bae372266703e5f706fa412c378feb37faa5e18c3d73", + "nonce": 49, + "round": 7646960, + "epoch": 6339, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "Y2FsbEFub3RoZXJDb250cmFjdFJldHVyblR3b1U2NEAwMDAwMDAwMDAwMDAwMDAwMDUwMEFDRkY2QjdBNEVCODEwMUE4REU3RkY3RjVEMkMwQkYzRTRENjNGNDdBNzND", + "signature": "53cc6496647287d735bd7950f4ec79d7b51f884defda1d6d840d722b7d0d869900ccecc01602da7a7c717955e8d4ed0711b92acd980d64ed6eebd6eaed0c4608", + "sourceShard": 0, + "destinationShard": 0, + "blockNonce": 7600794, + "blockHash": "77eb0904e56d6dd596c0d72821cf33b326fde383e72903ca4df5c2f200b0ea75", + "notarizedAtSourceInMetaNonce": 7609344, + "NotarizedAtSourceInMetaHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", + "notarizedAtDestinationInMetaNonce": 7609344, + "notarizedAtDestinationInMetaHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", + "miniblockType": "TxBlock", + "miniblockHash": "03219ac7427f7511687f0768c722c759c1b1428b2664b44a0cbe2072154851ee", + "hyperblockNonce": 7609344, + "hyperblockHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", + "timestamp": 1694433360, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk5ODA2MDAwLCBnYXMgdXNlZCA9IDM4NDcyNDA=" + ], + "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" + }, + { + "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", + "identifier": "completedTxEvent", + "topics": [ + "6RSFfxv9ADukEbrjciZnA+X3BvpBLDeP6zf6peGMPXM=" + ], + "data": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "callAnotherContractReturnTwoU64", + "initiallyPaidFee": "6192060000000000", + "fee": "6192060000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![ + hex::decode("0a").unwrap(), + hex::decode("0218711a00").unwrap(), + ]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_multi_contract_cross_shard_tx_that_has_no_callback() { + // transaction data from the devnet + // context : user -> A --async call--> B, no callback + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", + "nonce": 51, + "round": 7647523, + "epoch": 6340, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0Tm9DYWxsYmFja0AwMDAwMDAwMDAwMDAwMDAwMDUwMEFDRkY2QjdBNEVCODEwMUE4REU3RkY3RjVEMkMwQkYzRTRENjNGNDdBNzND", + "signature": "0fc30cddaa8e5365662a14344e3434cbccf287f357be99b3ed4add182f64dded774ec0d095ab1589e7c6c07e00de3b7239efc96eb2e0e97b48c1ef87084cec01", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 7593758, + "blockHash": "a828c0ca58ef1c8aff60e512ab59f18204f1915d4a6c8285cfceb1c5725b88e8", + "notarizedAtSourceInMetaNonce": 7609903, + "NotarizedAtSourceInMetaHash": "4e90fe45c2fdccd5cf6977c1422e5f4ffa41c4e9f31fb4a50c20455f87df1e99", + "notarizedAtDestinationInMetaNonce": 7609907, + "notarizedAtDestinationInMetaHash": "10b8666a44411c3babbe20af7154fb3d47efcb1cb10d955523ec68fece26e517", + "miniblockType": "TxBlock", + "miniblockHash": "4ff4bb1ac88911d617c9b0342aeb5158db78490c2fe414cad08adcc584a77be7", + "hyperblockNonce": 7609907, + "hyperblockHash": "10b8666a44411c3babbe20af7154fb3d47efcb1cb10d955523ec68fece26e517", + "timestamp": 1694436738, + "smartContractResults": [ + { + "hash": "462b56a1530e6070dc7c15f755e51a97a6972c8cd7891f3be4635b93211890c5", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "data": "@00@0a@0218711a00", + "prevTxHash": "41d56fdacf3e14de67e821427c732b62ebfa07c82d2e5db6de75fe3a1c828d9b", + "originalTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", + "gasLimit": 595637825, + "gasPrice": 1000000000, + "callType": 2, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1NjM3ODI1LCBnYXMgdXNlZCA9IDIxNjE3NzA=" + ], + "data": "QDZmNmI=" + }, + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "completedTxEvent", + "topics": [ + "QdVv2s8+FN5n6CFCfHMrYuv6B8gtLl223nX+OhyCjZs=" + ], + "data": null + } + ] + }, + "operation": "transfer" + }, + { + "hash": "41d56fdacf3e14de67e821427c732b62ebfa07c82d2e5db6de75fe3a1c828d9b", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "data": "returnTwoU64@4f3c60", + "prevTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", + "originalTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", + "gasLimit": 597479490, + "gasPrice": 1000000000, + "callType": 1, + "operation": "transfer", + "function": "returnTwoU64" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" + ], + "data": "QDZmNmI=" + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "asyncCallAnotherContractReturnTwoU64NoCallback", + "initiallyPaidFee": "6214335000000000", + "fee": "6214335000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_multi_contract_cross_shard_tx_that_has_non_returning_callback() { + // transaction data from the devnet + // context : user -> A --async call--> B --callback--> A, the callback returns () + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", + "nonce": 52, + "round": 7647560, + "epoch": 6340, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0V2l0aE5vblJldHVybmluZ0NhbGxiYWNrQDAwMDAwMDAwMDAwMDAwMDAwNTAwQUNGRjZCN0E0RUI4MTAxQThERTdGRjdGNUQyQzBCRjNFNEQ2M0Y0N0E3M0M=", + "signature": "3918fce429b2059b2321b709011079755dbb835e12839278ee510e4741180540e80c6111eea1d3312b2c63446de08b20e01f6040358fa94d1633c355bb65bc0f", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 7593795, + "blockHash": "c17e727f90025225670b7852ea9807c67753c9b3f21b6ec7cc40077e3849a8b7", + "notarizedAtSourceInMetaNonce": 7609940, + "NotarizedAtSourceInMetaHash": "c67b5c550986cfd6c94d00f4b90234eb38ee196ff0d79a00d916f3bd24be272c", + "notarizedAtDestinationInMetaNonce": 7609944, + "notarizedAtDestinationInMetaHash": "d59b7398d962ce3119679af59d5d74e10083e62c3ee2b15421cc0d607979ca18", + "miniblockType": "TxBlock", + "miniblockHash": "2977affeffeb6cf41117bed442662021cb713528cdb1d0dce4537b01caeb8e0b", + "hyperblockNonce": 7609944, + "hyperblockHash": "d59b7398d962ce3119679af59d5d74e10083e62c3ee2b15421cc0d607979ca18", + "timestamp": 1694436960, + "smartContractResults": [ + { + "hash": "fe7474188d5ca4b84c7577f03fc778d22d53c070dfcb05a9cda840229d30e4d3", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "data": "returnTwoU64@4f3c60", + "prevTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", + "originalTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", + "gasLimit": 596979545, + "gasPrice": 1000000000, + "callType": 1, + "operation": "transfer", + "function": "returnTwoU64" + }, + { + "hash": "948dc6702b376d1e043db8de2f87ca12907c342f54cfad7dfebadf59145ca3ac", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "data": "@00@0a@0218711a00", + "prevTxHash": "fe7474188d5ca4b84c7577f03fc778d22d53c070dfcb05a9cda840229d30e4d3", + "originalTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", + "gasLimit": 595137880, + "gasPrice": 1000000000, + "callType": 2, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1MTM3ODgwLCBnYXMgdXNlZCA9IDIyODg1NTA=" + ], + "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" + }, + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "completedTxEvent", + "topics": [ + "/nR0GI1cpLhMdXfwP8d40i1TwHDfywWpzahAIp0w5NM=" + ], + "data": null + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" + ], + "data": "QDZmNmI=" + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "asyncCallAnotherContractReturnTwoU64WithNonReturningCallback", + "initiallyPaidFee": "6235125000000000", + "fee": "6235125000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_multi_contract_cross_shard_tx_that_has_returning_callback() { + // transaction data from the devnet + // context : user -> A --async call--> B --callback--> A, the callback returns a MultiValue2 + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", + "nonce": 53, + "round": 7647583, + "epoch": 6340, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0V2l0aFJldHVybmluZ0NhbGxiYWNrQDAwMDAwMDAwMDAwMDAwMDAwNTAwQUNGRjZCN0E0RUI4MTAxQThERTdGRjdGNUQyQzBCRjNFNEQ2M0Y0N0E3M0M=", + "signature": "858958d4aaf9cb0220ab2933edad3f65e1cb4c58aa7940cb0f40b489d0bd9fdf5c4736a40d6e813743ee622bb91e9f86eacf01b9a31e0ff53f9c84f13c500304", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 7593818, + "blockHash": "b19f97110ca38d3cb15f802a00ab403491b0e5804ebc701527ab50064dc06825", + "notarizedAtSourceInMetaNonce": 7609963, + "NotarizedAtSourceInMetaHash": "4d9db6de610ca778114d44fe91dd036fac7c375c373ae9e77130d3fb9efc8391", + "notarizedAtDestinationInMetaNonce": 7609967, + "notarizedAtDestinationInMetaHash": "a4573d388c31860f9bd6f9507b65d1b3130e445abcada538f10704feba4614e7", + "miniblockType": "TxBlock", + "miniblockHash": "530f5fa3c7af474a187caca8dcea02a7a155017414147871d083bed5c49ec8f5", + "hyperblockNonce": 7609967, + "hyperblockHash": "a4573d388c31860f9bd6f9507b65d1b3130e445abcada538f10704feba4614e7", + "timestamp": 1694437098, + "smartContractResults": [ + { + "hash": "065291164a8acd27c26b5a8f09664810081fda18cd54fca635196cf9b200297a", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "data": "returnTwoU64@4f3c60", + "prevTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", + "originalTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", + "gasLimit": 596994205, + "gasPrice": 1000000000, + "callType": 1, + "operation": "transfer", + "function": "returnTwoU64" + }, + { + "hash": "bc31cb153ae615204625df84fe9ae3a159aa412b7342f3dca958dd5517a08197", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "data": "@00@0a@0218711a00", + "prevTxHash": "065291164a8acd27c26b5a8f09664810081fda18cd54fca635196cf9b200297a", + "originalTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", + "gasLimit": 595152540, + "gasPrice": 1000000000, + "callType": 2, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1MTUyNTQwLCBnYXMgdXNlZCA9IDIyODgwMTU=" + ], + "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" + }, + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "completedTxEvent", + "topics": [ + "BlKRFkqKzSfCa1qPCWZIEAgf2hjNVPymNRls+bIAKXo=" + ], + "data": null + } + ] + }, + "operation": "transfer" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" + ], + "data": "QDZmNmI=" + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "asyncCallAnotherContractReturnTwoU64WithReturningCallback", + "initiallyPaidFee": "6230670000000000", + "fee": "6230670000000000", + "chainID": "D", + "version": 2, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![]; + + assert_eq!(tx_response.out, expected) +} diff --git a/framework/scenario/tests/test_tx_multiple_sc_results.rs b/framework/scenario/tests/test_tx_multiple_sc_results.rs new file mode 100644 index 0000000000..6322b0a7bb --- /dev/null +++ b/framework/scenario/tests/test_tx_multiple_sc_results.rs @@ -0,0 +1,287 @@ +use multiversx_sc_scenario::scenario_model::{is_out_scr, TxResponse}; +use multiversx_sdk::data::transaction::{TransactionInfo, TransactionOnNetwork}; + +#[test] +fn test_transaction_multiple_sc_results() { + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "BuiltInFunctionCall", + "processingTypeOnDestination": "SCInvoking", + "hash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "nonce": 236, + "round": 3353069, + "epoch": 1371, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "sender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "gasPrice": 1000000000, + "gasLimit": 100000000, + "gasUsed": 12767998, + "data": "RVNEVFRyYW5zZmVyQDU1NTQ0YjJkMzEzNDY0MzUzNzY0QDhhYzcyMzA0ODllODAwMDBANzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NEA1NzQ1NDc0YzQ0MmQ2MTMyMzg2MzM1MzlAZThkNGE1MTAwMA==", + "signature": "caed340339e3ae17a92783f5f08f96ac875885e44c25510cd11251ce23f22994985a6605c4d36f841b7110288a5e928f624f150a66a9de8ade36b68028a9af09", + "sourceShard": 0, + "destinationShard": 1, + "blockNonce": 3288476, + "blockHash": "0e70ea5fb26c58b1029c84e24eb9a661272b6253d30c668af91f167bfd67b2b0", + "notarizedAtSourceInMetaNonce": 3290316, + "NotarizedAtSourceInMetaHash": "8200662ca3ade8fa8e1dd3a4184b0a74d4c43de8f4153170a506f60c94ad3e8b", + "notarizedAtDestinationInMetaNonce": 3290320, + "notarizedAtDestinationInMetaHash": "e5f332a8f2070fd1c4ff90f5dc1ee691f36e4ecb9cb5c37e8e7c8595036c3792", + "miniblockType": "TxBlock", + "miniblockHash": "d271ad87c6cf8653cc950272f3ee5e976820ada80468518fa35fe45b6e33dca8", + "hyperblockNonce": 3290320, + "hyperblockHash": "e5f332a8f2070fd1c4ff90f5dc1ee691f36e4ecb9cb5c37e8e7c8595036c3792", + "timestamp": 1714118414, + "smartContractResults": [ + { + "hash": "c0e63f1018ece1036e3e6dc405553e5f6badfe0f5d2a104f4cd4457a872d02f9", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "data": "swapTokensFixedInput@5745474c442d613238633539@e8d4a51000", + "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "gasLimit": 99559500, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "operation": "transfer", + "function": "swapTokensFixedInput" + }, + { + "hash": "40078cec63b6e0d0d9522ea5e6d2d0cb6f21ebae981f354de3dc3545ac2928ad", + "nonce": 0, + "value": 0, + "receiver": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "data": "ESDTTransfer@5745474c442d613238633539@9b35e4dd3902b9", + "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "logs": { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtYTI4YzU5", + "", + "mzXk3TkCuQ==", + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" + ], + "data": null, + "additionalData": [ + "", + "RVNEVFRyYW5zZmVy", + "V0VHTEQtYTI4YzU5", + "mzXk3TkCuQ==" + ] + }, + { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=" + ], + "data": "QDZmNmI=", + "additionalData": [ + "QDZmNmI=" + ] + }, + { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "identifier": "completedTxEvent", + "topics": [ + "xtxxjFbIeVFW2Ef0+XaPKxl2pRbTkP3OD1uLrRrDzOU=" + ], + "data": null, + "additionalData": null + } + ] + }, + "tokens": [ + "WEGLD-a28c59" + ], + "esdtValues": [ + "43687878470468281" + ], + "operation": "ESDTTransfer" + }, + { + "hash": "26487a550721b8282ceafe603bb4d53ee93929ffd9ded39b08e7422adb4d8795", + "nonce": 237, + "value": 872320020000000, + "receiver": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "data": "@6f6b@0000000c5745474c442d6132386335390000000000000000000000079b35e4dd3902b9", + "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "events": [ + { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "identifier": "completedTxEvent", + "topics": [ + "xtxxjFbIeVFW2Ef0+XaPKxl2pRbTkP3OD1uLrRrDzOU=" + ], + "data": null, + "additionalData": null + } + ] + }, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "798ba4333a7cedb62f811d942dedb8c0c09bf9945a0d2ccede2eaed967eba135", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgqw88ux2l44eufvwz2uhvduhq03g8pxc4j0n4s0frzjz", + "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "data": "ESDTTransfer@55544b2d313464353764@2d79883d2000@6465706f7369745377617046656573", + "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "tokens": [ + "UTK-14d57d" + ], + "esdtValues": [ + "50000000000000" + ], + "operation": "ESDTTransfer", + "function": "depositSwapFees" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "events": [ + { + "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", + "identifier": "ESDTTransfer", + "topics": [ + "VVRLLTE0ZDU3ZA==", + "", + "iscjBInoAAA=", + "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=" + ], + "data": null, + "additionalData": [ + "", + "RVNEVFRyYW5zZmVy", + "VVRLLTE0ZDU3ZA==", + "iscjBInoAAA=", + "c3dhcFRva2Vuc0ZpeGVkSW5wdXQ=", + "V0VHTEQtYTI4YzU5", + "6NSlEAA=" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "identifier": "ESDTTransfer", + "topics": [ + "VVRLLTE0ZDU3ZA==", + "", + "LXmIPSAA", + "AAAAAAAAAAAFAHHPwyv1rniWOErl2N5cD4oOE2KyfOs=" + ], + "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "additionalData": [ + "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", + "RVNEVFRyYW5zZmVy", + "VVRLLTE0ZDU3ZA==", + "LXmIPSAA", + "ZGVwb3NpdFN3YXBGZWVz" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgqw88ux2l44eufvwz2uhvduhq03g8pxc4j0n4s0frzjz", + "identifier": "depositSwapFees", + "topics": [ + "ZGVwb3NpdF9zd2FwX2ZlZXNfZXZlbnQ=", + "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=", + "ug==", + "AAAAClVUSy0xNGQ1N2QAAAAAAAAAAAAAAAYteYg9IAA=" + ], + "data": null, + "additionalData": [ + "" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtYTI4YzU5", + "", + "mzXk3TkCuQ==", + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" + ], + "data": "RGlyZWN0Q2FsbA==", + "additionalData": [ + "RGlyZWN0Q2FsbA==", + "RVNEVFRyYW5zZmVy", + "V0VHTEQtYTI4YzU5", + "mzXk3TkCuQ==" + ] + }, + { + "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", + "identifier": "swapTokensFixedInput", + "topics": [ + "c3dhcA==", + "VVRLLTE0ZDU3ZA==", + "V0VHTEQtYTI4YzU5", + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=", + "BVs=" + ], + "data": "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WAAAAAKVVRLLTE0ZDU3ZAAAAAiKxyMEiegAAAAAAAxXRUdMRC1hMjhjNTkAAAAHmzXk3TkCuQAAAAcjhvJvwQAAAAAACwGBykedC25GCD5kAAAACgGwxHNBlOj27dQAAAAAADItnAAAAAAAAAVbAAAAAGYrXw4=", + "additionalData": [ + "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WAAAAAKVVRLLTE0ZDU3ZAAAAAiKxyMEiegAAAAAAAxXRUdMRC1hMjhjNTkAAAAHmzXk3TkCuQAAAAcjhvJvwQAAAAAACwGBykedC25GCD5kAAAACgGwxHNBlOj27dQAAAAAADItnAAAAAAAAAVbAAAAAGYrXw4=" + ] + } + ] + }, + "status": "success", + "tokens": [ + "UTK-14d57d" + ], + "esdtValues": [ + "10000000000000000000" + ], + "operation": "ESDTTransfer", + "function": "swapTokensFixedInput", + "initiallyPaidFee": "1238095000000000", + "fee": "365774980000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" + }"#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + assert_eq!(tx_response.api_scrs.len(), 4usize); + assert!(is_out_scr(&tx_response.api_scrs.get(2).unwrap())); +} diff --git a/framework/scenario/tests/test_tx_sc_result.rs b/framework/scenario/tests/test_tx_sc_result.rs new file mode 100644 index 0000000000..561712300c --- /dev/null +++ b/framework/scenario/tests/test_tx_sc_result.rs @@ -0,0 +1,350 @@ +use multiversx_sc_scenario::scenario_model::TxResponse; +use multiversx_sdk::data::transaction::{TransactionInfo, TransactionOnNetwork}; + +#[test] +fn test_with_tx_that_has_sc_result() { + // transaction data from the devnet, an artificial "10" result has been appended on the original result + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "BuiltInFunctionCall", + "processingTypeOnDestination": "SCInvoking", + "hash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "nonce": 30, + "round": 7639115, + "epoch": 6333, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "sender": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "gasPrice": 1000000000, + "gasLimit": 25500000, + "gasUsed": 15297149, + "data": "RVNEVFRyYW5zZmVyQDQ4NTQ0ZDJkNjY2NTMxNjYzNjM5QDBkZTBiNmIzYTc2NDAwMDBANzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NEA1NzQ1NDc0YzQ0MmQ2NDM3NjMzNjYyNjJAMDM3Yzc3OGZjY2U5YzU1Yg==", + "signature": "e912fae4b7a9e51ddf316a5e82a0f457d453a62e3c17477f5d6175e1b33c5e92ddb187d65f54cf3131a0603321290279a0456c20778039f2ab09b54e33c60f0d", + "sourceShard": 2, + "destinationShard": 1, + "blockNonce": 7585351, + "blockHash": "e456f38f11fec78ed26d5fda068e912739dceedb2e5ce559bf17614b8386c039", + "notarizedAtSourceInMetaNonce": 7601495, + "NotarizedAtSourceInMetaHash": "e28c6011d4b3f73f3945cae70ff251e675dfea331a70077c5ab3310e3101af17", + "notarizedAtDestinationInMetaNonce": 7601499, + "notarizedAtDestinationInMetaHash": "333d4266614e981cc1c5654f85ef496038a8cddac46dfc0ad0b7c44c37ab489d", + "miniblockType": "TxBlock", + "miniblockHash": "13e041f32fde79ebf1abdcfe692e99516f9ec6778dcb917251b440daa7f1210a", + "hyperblockNonce": 7601499, + "hyperblockHash": "333d4266614e981cc1c5654f85ef496038a8cddac46dfc0ad0b7c44c37ab489d", + "timestamp": 1694386290, + "smartContractResults": [ + { + "hash": "a23faa3c80bae0b968f007ff0fad3afdec05b4e71d749c3d583dec10c6eb05a2", + "nonce": 0, + "value": 0, + "receiver": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "data": "ESDTTransfer@5745474c442d643763366262@03856446ff9a304b", + "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtZDdjNmJi", + "", + "A4VkRv+aMEs=", + "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=" + ], + "data": null + }, + { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "identifier": "writeLog", + "topics": [ + "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=" + ], + "data": "QDZmNmI=" + }, + { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "identifier": "completedTxEvent", + "topics": [ + "1AWL08E9sLFIMsfFj+Fj2y9Xn/ZUQ4BYa4on2ItKUHA=" + ], + "data": null + } + ] + }, + "tokens": [ + "WEGLD-d7c6bb" + ], + "esdtValues": [ + "253719210115084363" + ], + "operation": "ESDTTransfer" + }, + { + "hash": "b7b4d15917fd215399d8e772c3c4e732008baaedc2b8172f71c91708ba7523f0", + "nonce": 31, + "value": 102028510000000, + "receiver": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "data": "@6f6b@0000000c5745474c442d64376336626200000000000000000000000803856446ff9a304b@10", + "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "logs": { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "events": [ + { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "identifier": "completedTxEvent", + "topics": [ + "1AWL08E9sLFIMsfFj+Fj2y9Xn/ZUQ4BYa4on2ItKUHA=" + ], + "data": null + } + ] + }, + "operation": "transfer", + "isRefund": true + }, + { + "hash": "05a766ca05d2053d1c0fbeb1797116474a06c86402a3bfd6c132c9a24cfa1bb0", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "data": "swapTokensFixedInput@5745474c442d643763366262@037c778fcce9c55b", + "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "gasLimit": 25050500, + "gasPrice": 1000000000, + "callType": 0, + "operation": "transfer", + "function": "swapTokensFixedInput" + }, + { + "hash": "4e639c80822d5d7780c8326d683fa9cd6d59649d14122dfabc5a96dda36da527", + "nonce": 0, + "value": 0, + "receiver": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", + "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "data": "ESDTTransfer@5745474c442d643763366262@e7730d1ef1b0@737761704e6f466565416e64466f7277617264@4d45582d646332383963@0000000000000000000000000000000000000000000000000000000000000000", + "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", + "gasLimit": 0, + "gasPrice": 1000000000, + "callType": 0, + "tokens": [ + "WEGLD-d7c6bb" + ], + "esdtValues": [ + "254481327387056" + ], + "operation": "ESDTTransfer", + "function": "swapNoFeeAndForward" + } + ], + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "events": [ + { + "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", + "identifier": "ESDTTransfer", + "topics": [ + "SFRNLWZlMWY2OQ==", + "", + "DeC2s6dkAAA=", + "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtZDdjNmJi", + "", + "53MNHvGw", + "AAAAAAAAAAAFAOcoOHa5zr9eiFpjeVvIJxVDpaz7fOs=" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", + "identifier": "ESDTLocalBurn", + "topics": [ + "TUVYLWRjMjg5Yw==", + "", + "AuMDPq1jy03x" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", + "identifier": "swapNoFeeAndForward", + "topics": [ + "c3dhcF9ub19mZWVfYW5kX2ZvcndhcmQ=", + "TUVYLWRjMjg5Yw==", + "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=", + "GL0=" + ], + "data": "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOsAAAAMV0VHTEQtZDdjNmJiAAAABudzDR7xsAAAAApNRVgtZGMyODljAAAACQLjAz6tY8tN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzvkcAAAAAAAAYvQAAAABk/khy" + }, + { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "identifier": "ESDTTransfer", + "topics": [ + "V0VHTEQtZDdjNmJi", + "", + "A4VkRv+aMEs=", + "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=" + ], + "data": null + }, + { + "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", + "identifier": "swapTokensFixedInput", + "topics": [ + "c3dhcA==", + "SFRNLWZlMWY2OQ==", + "V0VHTEQtZDdjNmJi", + "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=", + "GL0=" + ], + "data": "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOYAAAAKSFRNLWZlMWY2OQAAAAgN4Lazp2QAAAAAAAxXRUdMRC1kN2M2YmIAAAAIA4VkRv+aMEsAAAAHA41+pMaAAAAAAAoofxtJRPkr8X9kAAAACgpOPCsHUu261HUAAAAAAHO+RwAAAAAAABi9AAAAAGT+SHI=" + } + ] + }, + "status": "success", + "tokens": [ + "HTM-fe1f69" + ], + "esdtValues": [ + "1000000000000000000" + ], + "operation": "ESDTTransfer", + "function": "swapTokensFixedInput", + "initiallyPaidFee": "502005000000000", + "fee": "399976490000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![ + hex::decode("0000000c5745474c442d64376336626200000000000000000000000803856446ff9a304b") + .unwrap(), + hex::decode("10").unwrap(), + ]; + + assert_eq!(tx_response.out, expected) +} + +#[test] +fn test_with_tx_that_has_no_sc_result() { + // transaction data from the devnet + let data = r#" + { + "data": { + "transaction": { + "type": "normal", + "processingTypeOnSource": "SCInvoking", + "processingTypeOnDestination": "SCInvoking", + "hash": "6afac3ec13c89cc56154d06efdb457a24f58361699eee00a48202a8f8adc8c8a", + "nonce": 17, + "round": 7548071, + "epoch": 6257, + "value": "0", + "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", + "gasPrice": 1000000000, + "gasLimit": 600000000, + "gasUsed": 600000000, + "data": "cmV0dXJuVHdvVTY0", + "signature": "f3a3ca96a78c90c9cf1b08541e1777010f0176a5e1e525e631155b2784932cbfd74c9168d03ba201fd5434d1a1b4789895ddade9883eca2ee9e0bce18468fb00", + "sourceShard": 0, + "destinationShard": 0, + "blockNonce": 7502091, + "blockHash": "5ec66c651cb1514cba200e7e80a4491880f0db678ce7631c397872e3842f0aa2", + "notarizedAtSourceInMetaNonce": 7510505, + "NotarizedAtSourceInMetaHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", + "notarizedAtDestinationInMetaNonce": 7510505, + "notarizedAtDestinationInMetaHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", + "miniblockType": "TxBlock", + "miniblockHash": "fb150e515449c9b658879ed06f256b429239cbe78ec2c2821deb4b283ff21554", + "hyperblockNonce": 7510505, + "hyperblockHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", + "timestamp": 1693840026, + "logs": { + "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "events": [ + { + "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "identifier": "writeLog", + "topics": [ + "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=", + "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk5OTMyMDAwLCBnYXMgdXNlZCA9IDE4NDE2NjU=" + ], + "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" + }, + { + "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", + "identifier": "completedTxEvent", + "topics": [ + "avrD7BPInMVhVNBu/bRXok9YNhaZ7uAKSCAqj4rcjIo=" + ], + "data": null + } + ] + }, + "status": "success", + "operation": "transfer", + "function": "returnTwoU64", + "initiallyPaidFee": "6067320000000000", + "fee": "6067320000000000", + "chainID": "D", + "version": 1, + "options": 0 + } + }, + "error": "", + "code": "successful" + } + "#; + + let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) + .unwrap() + .data + .unwrap() + .transaction; + let tx_response = TxResponse::from_network_tx(tx_on_network); + + let expected: Vec> = vec![ + hex::decode("0a").unwrap(), + hex::decode("0218711a00").unwrap(), + ]; + + assert_eq!(tx_response.out, expected) +} diff --git a/framework/scenario/tests/tx_response_tests.rs b/framework/scenario/tests/tx_response_tests.rs deleted file mode 100644 index a1d9da5a34..0000000000 --- a/framework/scenario/tests/tx_response_tests.rs +++ /dev/null @@ -1,2661 +0,0 @@ -use multiversx_sc::types::Address; -use multiversx_sc_scenario::scenario_model::{is_out_scr, TxResponse}; -use multiversx_sdk::data::transaction::{TransactionInfo, TransactionOnNetwork}; - -#[test] -fn test_transaction_multiple_sc_results() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "BuiltInFunctionCall", - "processingTypeOnDestination": "SCInvoking", - "hash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "nonce": 236, - "round": 3353069, - "epoch": 1371, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "sender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "gasPrice": 1000000000, - "gasLimit": 100000000, - "gasUsed": 12767998, - "data": "RVNEVFRyYW5zZmVyQDU1NTQ0YjJkMzEzNDY0MzUzNzY0QDhhYzcyMzA0ODllODAwMDBANzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NEA1NzQ1NDc0YzQ0MmQ2MTMyMzg2MzM1MzlAZThkNGE1MTAwMA==", - "signature": "caed340339e3ae17a92783f5f08f96ac875885e44c25510cd11251ce23f22994985a6605c4d36f841b7110288a5e928f624f150a66a9de8ade36b68028a9af09", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 3288476, - "blockHash": "0e70ea5fb26c58b1029c84e24eb9a661272b6253d30c668af91f167bfd67b2b0", - "notarizedAtSourceInMetaNonce": 3290316, - "NotarizedAtSourceInMetaHash": "8200662ca3ade8fa8e1dd3a4184b0a74d4c43de8f4153170a506f60c94ad3e8b", - "notarizedAtDestinationInMetaNonce": 3290320, - "notarizedAtDestinationInMetaHash": "e5f332a8f2070fd1c4ff90f5dc1ee691f36e4ecb9cb5c37e8e7c8595036c3792", - "miniblockType": "TxBlock", - "miniblockHash": "d271ad87c6cf8653cc950272f3ee5e976820ada80468518fa35fe45b6e33dca8", - "hyperblockNonce": 3290320, - "hyperblockHash": "e5f332a8f2070fd1c4ff90f5dc1ee691f36e4ecb9cb5c37e8e7c8595036c3792", - "timestamp": 1714118414, - "smartContractResults": [ - { - "hash": "c0e63f1018ece1036e3e6dc405553e5f6badfe0f5d2a104f4cd4457a872d02f9", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "data": "swapTokensFixedInput@5745474c442d613238633539@e8d4a51000", - "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "gasLimit": 99559500, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "operation": "transfer", - "function": "swapTokensFixedInput" - }, - { - "hash": "40078cec63b6e0d0d9522ea5e6d2d0cb6f21ebae981f354de3dc3545ac2928ad", - "nonce": 0, - "value": 0, - "receiver": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "data": "ESDTTransfer@5745474c442d613238633539@9b35e4dd3902b9", - "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "logs": { - "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "identifier": "ESDTTransfer", - "topics": [ - "V0VHTEQtYTI4YzU5", - "", - "mzXk3TkCuQ==", - "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" - ], - "data": null, - "additionalData": [ - "", - "RVNEVFRyYW5zZmVy", - "V0VHTEQtYTI4YzU5", - "mzXk3TkCuQ==" - ] - }, - { - "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=" - ], - "data": "QDZmNmI=", - "additionalData": [ - "QDZmNmI=" - ] - }, - { - "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "identifier": "completedTxEvent", - "topics": [ - "xtxxjFbIeVFW2Ef0+XaPKxl2pRbTkP3OD1uLrRrDzOU=" - ], - "data": null, - "additionalData": null - } - ] - }, - "tokens": [ - "WEGLD-a28c59" - ], - "esdtValues": [ - "43687878470468281" - ], - "operation": "ESDTTransfer" - }, - { - "hash": "26487a550721b8282ceafe603bb4d53ee93929ffd9ded39b08e7422adb4d8795", - "nonce": 237, - "value": 872320020000000, - "receiver": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "data": "@6f6b@0000000c5745474c442d6132386335390000000000000000000000079b35e4dd3902b9", - "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "events": [ - { - "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "identifier": "completedTxEvent", - "topics": [ - "xtxxjFbIeVFW2Ef0+XaPKxl2pRbTkP3OD1uLrRrDzOU=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "798ba4333a7cedb62f811d942dedb8c0c09bf9945a0d2ccede2eaed967eba135", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqw88ux2l44eufvwz2uhvduhq03g8pxc4j0n4s0frzjz", - "sender": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "data": "ESDTTransfer@55544b2d313464353764@2d79883d2000@6465706f7369745377617046656573", - "prevTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "originalTxHash": "c6dc718c56c8795156d847f4f9768f2b1976a516d390fdce0f5b8bad1ac3cce5", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "tokens": [ - "UTK-14d57d" - ], - "esdtValues": [ - "50000000000000" - ], - "operation": "ESDTTransfer", - "function": "depositSwapFees" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "events": [ - { - "address": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "identifier": "ESDTTransfer", - "topics": [ - "VVRLLTE0ZDU3ZA==", - "", - "iscjBInoAAA=", - "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=" - ], - "data": null, - "additionalData": [ - "", - "RVNEVFRyYW5zZmVy", - "VVRLLTE0ZDU3ZA==", - "iscjBInoAAA=", - "c3dhcFRva2Vuc0ZpeGVkSW5wdXQ=", - "V0VHTEQtYTI4YzU5", - "6NSlEAA=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "identifier": "ESDTTransfer", - "topics": [ - "VVRLLTE0ZDU3ZA==", - "", - "LXmIPSAA", - "AAAAAAAAAAAFAHHPwyv1rniWOErl2N5cD4oOE2KyfOs=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "RVNEVFRyYW5zZmVy", - "VVRLLTE0ZDU3ZA==", - "LXmIPSAA", - "ZGVwb3NpdFN3YXBGZWVz" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqw88ux2l44eufvwz2uhvduhq03g8pxc4j0n4s0frzjz", - "identifier": "depositSwapFees", - "topics": [ - "ZGVwb3NpdF9zd2FwX2ZlZXNfZXZlbnQ=", - "AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOs=", - "ug==", - "AAAAClVUSy0xNGQ1N2QAAAAAAAAAAAAAAAYteYg9IAA=" - ], - "data": null, - "additionalData": [ - "" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "identifier": "ESDTTransfer", - "topics": [ - "V0VHTEQtYTI4YzU5", - "", - "mzXk3TkCuQ==", - "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" - ], - "data": "RGlyZWN0Q2FsbA==", - "additionalData": [ - "RGlyZWN0Q2FsbA==", - "RVNEVFRyYW5zZmVy", - "V0VHTEQtYTI4YzU5", - "mzXk3TkCuQ==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq4zafu6rzdw7fj07hjh5tkm68jsaj7hl60n4s8py4ra", - "identifier": "swapTokensFixedInput", - "topics": [ - "c3dhcA==", - "VVRLLTE0ZDU3ZA==", - "V0VHTEQtYTI4YzU5", - "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=", - "BVs=" - ], - "data": "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WAAAAAKVVRLLTE0ZDU3ZAAAAAiKxyMEiegAAAAAAAxXRUdMRC1hMjhjNTkAAAAHmzXk3TkCuQAAAAcjhvJvwQAAAAAACwGBykedC25GCD5kAAAACgGwxHNBlOj27dQAAAAAADItnAAAAAAAAAVbAAAAAGYrXw4=", - "additionalData": [ - "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WAAAAAKVVRLLTE0ZDU3ZAAAAAiKxyMEiegAAAAAAAxXRUdMRC1hMjhjNTkAAAAHmzXk3TkCuQAAAAcjhvJvwQAAAAAACwGBykedC25GCD5kAAAACgGwxHNBlOj27dQAAAAAADItnAAAAAAAAAVbAAAAAGYrXw4=" - ] - } - ] - }, - "status": "success", - "tokens": [ - "UTK-14d57d" - ], - "esdtValues": [ - "10000000000000000000" - ], - "operation": "ESDTTransfer", - "function": "swapTokensFixedInput", - "initiallyPaidFee": "1238095000000000", - "fee": "365774980000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" - }"#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - assert_eq!(tx_response.api_scrs.len(), 4usize); - assert!(is_out_scr(&tx_response.api_scrs.get(2).unwrap())); -} - -#[test] -fn test_deployed_address() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCDeployment", - "processingTypeOnDestination": "SCDeployment", - "hash": "07a176d1734d1901d396be344f97e1d80f076269e9559f9b2110f6f11c4f74de", - "nonce": 427, - "round": 2190715, - "epoch": 887, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6gq4hu", - "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "data": "MDA2MTczNmQwMTAwMDAwMDAxOTgwMTE5NjAwMjdmN2YwMDYwMDE3ZjAxN2Y2MDAwMDA2MDAwMDE3ZjYwMDI3ZjdmMDE3ZjYwMDM3ZjdmN2YwMDYwMDE3ZjAwNjAwNDdmN2Y3ZjdmMDA2MDA1N2Y3ZjdmN2Y3ZjAwNjAwMzdmN2Y3ZjAxN2Y2MDA0N2Y3ZjdmN2YwMTdmNjAwMjdmN2UwMDYwMDE3ZjAxN2U2MDAyN2Y3ZjAxN2U2MDA1N2Y3ZjdlN2Y3ZjAxN2Y2MDA2N2U3ZjdmN2Y3ZjdmMDE3ZjYwMDE3ZTAwNjAwMDAxN2U2MDAxN2UwMTdmNjAwNDdmN2Y3ZTdmMDA2MDA1N2U3ZjdmN2Y3ZjAxN2Y2MDA0N2Y3ZjdmN2UwMDYwMDE3ZTAxN2U2MDA0N2Y3ZTdmN2YwMDYwMDI3ZTdmMDAwMmMxMDcyOTAzNjU2ZTc2MTI2ZDYxNmU2MTY3NjU2NDUzNjk2NzZlNjE2YzQ1NzI3MjZmNzIwMDA2MDM2NTZlNzYwZTYyNjk2NzQ5NmU3NDUzNjU3NDQ5NmU3NDM2MzQwMDBiMDM2NTZlNzYwOTYyNjk2NzQ5NmU3NDQxNjQ2NDAwMDUwMzY1NmU3NjBiNzM2OTY3NmU2MTZjNDU3MjcyNmY3MjAwMDAwMzY1NmU3NjBhNmQ0Mjc1NjY2NjY1NzI0ZTY1NzcwMDAzMDM2NTZlNzYwZDZkNDI3NTY2NjY2NTcyNDE3MDcwNjU2ZTY0MDAwNDAzNjU2ZTc2MDk2ZDQyNzU2NjY2NjU3MjQ1NzEwMDA0MDM2NTZlNzYwZDZkNDI3NTY2NjY2NTcyNDY2OTZlNjk3MzY4MDAwMTAzNjU2ZTc2MjI2ZDYxNmU2MTY3NjU2NDRkNzU2Yzc0Njk1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ0ZTQ2NTQ0NTc4NjU2Mzc1NzQ2NTAwMGUwMzY1NmU3NjFiNmQ2MTZlNjE2NzY1NjQ0NTc4NjU2Mzc1NzQ2NTRmNmU0NDY1NzM3NDQzNmY2ZTc0NjU3ODc0MDAwZjAzNjU2ZTc2MGQ2ZDYxNmU2MTY3NjU2NDQzNjE2YzZjNjU3MjAwMDYwMzY1NmU3NjEwNmQ2MTZlNjE2NzY1NjQ1MzQzNDE2NDY0NzI2NTczNzMwMDA2MDM2NTZlNzYxMzZkNjE2ZTYxNjc2NTY0NGY3NzZlNjU3MjQxNjQ2NDcyNjU3MzczMDAwNjAzNjU2ZTc2MWM2ZDYxNmU2MTY3NjU2NDQ3NjU3NDRkNzU2Yzc0Njk0NTUzNDQ1NDQzNjE2YzZjNTY2MTZjNzU2NTAwMDYwMzY1NmU3NjEyNmQ0Mjc1NjY2NjY1NzI0NzY1NzQ0MTcyNjc3NTZkNjU2ZTc0MDAwNDAzNjU2ZTc2MTI2ZDQyNzU2NjY2NjU3MjQxNzA3MDY1NmU2NDQyNzk3NDY1NzMwMDA5MDM2NTZlNzYxOTYyNjk2NzQ5NmU3NDQ3NjU3NDU1NmU3MzY5Njc2ZTY1NjQ0MTcyNjc3NTZkNjU2ZTc0MDAwMDAzNjU2ZTc2MWI3MzZkNjE2YzZjNDk2ZTc0NDc2NTc0NTU2ZTczNjk2NzZlNjU2NDQxNzI2Nzc1NmQ2NTZlNzQwMDBjMDM2NTZlNzYxMDZkNDI3NTY2NjY2NTcyNDc2NTc0NGM2NTZlNjc3NDY4MDAwMTAzNjU2ZTc2MGY2NzY1NzQ0ZTc1NmQ0MTcyNjc3NTZkNjU2ZTc0NzMwMDAzMDM2NTZlNzYxNjczNmQ2MTZjNmM0OTZlNzQ0NjY5NmU2OTczNjg1NTZlNzM2OTY3NmU2NTY0MDAxMDAzNjU2ZTc2MDk2MjY5Njc0OTZlNzQ1Mzc1NjIwMDA1MDM2NTZlNzYwYTY3NjU3NDQ3NjE3MzRjNjU2Njc0MDAxMTAzNjU2ZTc2MGY2MzZjNjU2MTZlNTI2NTc0NzU3MjZlNDQ2MTc0NjEwMDAyMDM2NTZlNzYwZjZkNDI3NTY2NjY2NTcyNTM2NTc0NDI3OTc0NjU3MzAwMDkwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NDM2ZDcwMDAwNDAzNjU2ZTc2MGE2MjY5Njc0OTZlNzQ1NDQ0Njk3NjAwMDUwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NGQ3NTZjMDAwNTAzNjU2ZTc2MTk2ZDQyNzU2NjY2NjU3MjQ2NzI2ZjZkNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjE3NmQ0Mjc1NjY2NjY1NzI1NDZmNDI2OTY3NDk2ZTc0NTU2ZTczNjk2NzZlNjU2NDAwMDQwMzY1NmU3NjA5NjI2OTY3NDk2ZTc0NTA2Zjc3MDAwNTAzNjU2ZTc2MTQ2ZDQyNzU2NjY2NjU3MjQzNmY3MDc5NDI3OTc0NjU1MzZjNjk2MzY1MDAwYTAzNjU2ZTc2MTI2ZDQyNzU2NjY2NjU3MjUzNzQ2ZjcyNjE2NzY1NGM2ZjYxNjQwMDA0MDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNTM3NDZmNzI2MTY3NjU1Mzc0NmY3MjY1MDAwNDAzNjU2ZTc2MGU2MzY4NjU2MzZiNGU2ZjUwNjE3OTZkNjU2ZTc0MDAwMjAzNjU2ZTc2MTc2ZDYxNmU2MTY3NjU2NDQ3NjU3NDQyNjE2MzZiNTQ3MjYxNmU3MzY2NjU3MjczMDAwMDAzNjU2ZTc2MGY2ZDYxNmU2MTY3NjU2NDU3NzI2OTc0NjU0YzZmNjcwMDAwMDM2NTZlNzYxNDYyNjk2NzQ5NmU3NDQ2Njk2ZTY5NzM2ODU1NmU3MzY5Njc2ZTY1NjQwMDA2MDM2NTZlNzYwNjY2Njk2ZTY5NzM2ODAwMDAwMzY1NmU3NjBhNjI2OTY3NDk2ZTc0NTM2OTY3NmUwMDAxMDM2NTZlNzYxMzZkNDI3NTY2NjY2NTcyNDc2NTc0NDI3OTc0NjU1MzZjNjk2MzY1MDAwYTAzZDMwMWQxMDEwMTAzMDgwMjAxMTIwMTA0MDAwMTA3MDYwNjA2MDAwNDAxMDkwMTAwMDEwMDAwMDAwMDEzMDMwMDE0MDMwMzAzMDIwMzAxMDcwNDAwMDMwOTAxMDkwOTA5MDAwNzA3MDEwMDA2MDYwMTA2MDYwYzA1MDEwODA1MDAwMTBiMDAwODA3MTUwNzA4MDgwMDBhMDAxNjAxMDEwNjAxMDAwMDAwMDUwMDAwMDEwMzAwMDYwMTAwMTcwNTA1MGEwNzA0MDAwNDBhMDAwNDA0MDQwMDA0MDQwNDA0MDQwMTAxMDAwNDBkMDcwNzA3MDgwYTAwMDUwMTAxMDUwNTA2MDEwMTAwMGIwYjAxMDEwMTAxMDEwNTBkMDEwNTAwMDAwMDA1MDUwMDAwMDAwMDAwMGMwNzA3MDcwNzAwMDAwODE4MDMwMzAzMDAwMzAzMDAwMTA0MDcwMzAzMDMwMzAxMDEwMzAzMDMwMzAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwODA4MDUwMzAxMDAwMzA2MTYwMzdmMDE0MTgwODAwODBiN2YwMDQxZTlkYjA4MGI3ZjAwNDFmMGRiMDgwYjA3YzcwNTIwMDY2ZDY1NmQ2ZjcyNzkwMjAwMDQ2OTZlNjk3NDAwZGIwMTA3NzU3MDY3NzI2MTY0NjUwMGRjMDEwNzY0NjU3MDZmNzM2OTc0MDBkZDAxMDg3NzY5NzQ2ODY0NzI2MTc3MDBkZTAxMDg2MzZmNmQ3MDZmNzU2ZTY0MDBkZjAxMGU2NzY1NzQ1NDZmNzQ2MTZjNDE3MzczNjU3NDczMDBlMDAxMGY2NzY1NzQ1NjYxNzU2Yzc0NDE2NDY0NzI2NTczNzMwMGUxMDExNzY3NjU3NDQxNzM3MzY1NzQ1NDZmNmI2NTZlNDk2NDY1NmU3NDY5NjY2OTY1NzIwMGUyMDExZDY3NjU3NDRkNmY2ZTY1Nzk0ZDYxNzI2YjY1NzQ1NDZmNmI2NTZlNDk2NDY1NmU3NDY5NjY2OTY1NzIwMGUzMDEyMjY3NjU3NDRkNmY2ZTY1Nzk0ZDYxNzI2YjY1NzQ1NTZlNjQ2NTcyNmM3OTY5NmU2NzQ5NjQ2NTZlNzQ2OTY2Njk2NTcyMDBlNDAxMWY2NzY1NzQ0MjZmNmY3Mzc0NjU3MjUzNzQ2MTZiNjU2NDU0NmY2YjY1NmU0OTY0NjU2ZTc0Njk2NjY5NjU3MjAwZTUwMTE0Njc2NTc0NDM2ZjZlNzQ3MjZmNmM2YzY1NzI0MTY0NjQ3MjY1NzM3MzAwZTYwMTE1Njc2NTc0NGQ2ZjZlNjU3OTRkNjE3MjZiNjU3NDQxNjQ2NDcyNjU3MzczMDBlNzAxMWQ2NzY1NzQ1NzcyNjE3MDcwNjU2NDQ1Njc2YzY0NDM2ZjZlNzQ3MjYxNjM3NDQxNjQ2NDcyNjU3MzczMDBlODAxMWQ2NzY1NzQ1NzcyNjE3MDcwNjU2NDQ1Njc2YzY0NTQ2ZjZiNjU2ZTQ5NjQ2NTZlNzQ2OTY2Njk2NTcyMDBlOTAxMTE2NzY1NzQ0MjZmNmY3Mzc0NjU3MjQxNjQ2NDcyNjU3MzczMDBlYTAxMTk2NzY1NzQ0MzZmNmQ3MDZmNzU2ZTY0NTg0NTc4NjM2ODYxNmU2NzY1NTM3NzYxNzA3MzAwZWIwMTE3Njc2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQxNzM2ODczNzc2MTcwNTM3NzYxNzA3MzAwZWMwMTE2Njc2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQ2NjU2NTczNTA2NTcyNjM2NTZlNzQwMGVkMDExOTY3NjU3NDUwNjU3MjY2NmY3MjZkNjE2ZTYzNjU0NjY1NjU3MzUwNjU3MjYzNjU2ZTc0MDBlZTAxMGU3Mzc0NjE2YjY1NDk2ZTQyNmY2ZjczNzQ2NTcyMDBlZjAxMWI3MjY1NjI2MTZjNjE2ZTYzNjU1MDZmNzI3NDY2NmY2YzY5NmY0OTZlNDI2ZjZmNzM3NDY1NzIwMGYwMDExMjc1NmU3Mzc0NjE2YjY1NDY3MjZmNmQ0MjZmNmY3Mzc0NjU3MjAwZjEwMTE4NjM2YzYxNjk2ZDRkNzU2Yzc0Njk3MDZjNjU0NjcyNmY2ZDQyNmY2ZjczNzQ2NTcyMDBmMjAxMTk3MzY1NzQ1MDY1NzI2NjZmNzI2ZDYxNmU2MzY1NDY2NTY1NzM1MDY1NzI2MzY1NmU3NDAwZjMwMTE2NzM2NTc0NDM2ZjZkNzA2Zjc1NmU2NDQ2NjU2NTczNTA2NTcyNjM2NTZlNzQwMGY0MDExMDczNjU3NDQzNmY2ZDcwNmY3NTZlNjQ1Mzc3NjE3MDczMDBmNTAxMGQ2NzY1NzQ0ZTYxNzQ3NTcyNjE2YzQxNTA1OTAwZjYwMTA4NjM2MTZjNmM0MjYxNjM2YjAwZjcwMTBhNWY1ZjY0NjE3NDYxNWY2NTZlNjQwMzAxMGI1ZjVmNjg2NTYxNzA1ZjYyNjE3MzY1MDMwMjBhOWFhOTAxZDEwMTE2MDEwMTdmMTAyYTIyMDE0MjAwMTAwMTIwMDEyMDAxMjAwMDEwMDIyMDAxMGIxOTAxMDE3ZjQxYzg4ZDA4NDFjODhkMDgyODAyMDA0MTAxNmIyMjAwMzYwMjAwMjAwMDBiMmUwMDAyNDAyMDAxMjAwMjRkMDQ0MDIwMDIyMDA0NGQwZDAxMTAyYzAwMGIxMDJjMDAwYjIwMDAyMDAyMjAwMTZiMzYwMjA0MjAwMDIwMDEyMDAzNmEzNjAyMDAwYjBiMDA0MWI4OGQwODQxMGUxMDAzMDAwYjEzMDEwMTdmMTAyYTIyMDEyMDAwYWQ0MmZmMDE4MzEwMDEyMDAxMGIyMTAxMDE3ZjEwMmEyMTAxMjAwMDQyMDA1MzA0NDA0MWIyODUwODQxMTExMDAzMDAwYjIwMDEyMDAwMTAwMTIwMDEwYjBmMDEwMTdmMTAwNDIyMDEyMDAwMTAwNTFhMjAwMTBiMGIwMDIwMDAyMDAxMTAwNjQxMDA0YTBiMmQwMTAxN2YyMzAwNDEyMDZiMjIwMjI0MDAyMDAyMjAwMDEwMzI0MWMwODAwODQxMDgxMDMzMjAwMjIwMDEzNjAyMTgyMDAyMTAzNDIwMDI0MTIwNmEyNDAwMGIxOTAwMjAwMDQxZmVmZmZmZmYwNzQ2MDQ0MDQxYzg4MDA4NDExOTEwMDMwMDBiMjAwMDBiMmEwMDIwMDIyMDAzMTA0ZDIxMDIxMDQzMjEwMzIwMDA0MjdmMzcwMzA4MjAwMDIwMDMzNjAyMDQyMDAwMjAwMjM2MDIwMDIwMDAyMDAxMzYwMjEwMGI3ZDAxMDM3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDAyOTAzMDgxMDcxMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUyMTAyMTAxNzQxMDAyMTAwMjAwMjEwMTIyMTAzMjAwMTQxMDAzNjAyMGMyMDAxMjAwMjM2MDIwNDIwMDEyMDAzNDEwMjc2MjIwMjM2MDIwODAzNDAyMDAwMjAwMjRmNDUwNDQwMjAwMTQxMDQ2YTEwNzUxYTIwMDEyODAyMDgyMTAyMjAwMTI4MDIwYzIxMDAwYzAxMGIwYjIwMDE0MTEwNmEyNDAwMGIzNjAxMDI3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDE0MTA4NmExMDM2MjAwMTI4MDIwODIxMDIyMDAwMjAwMTJkMDAwYzQxMDE3MTNhMDAwNDIwMDAyMDAyMzYwMjAwMjAwMTQxMTA2YTI0MDAwYjZkMDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMjAwMDAyN2Y0MWUwZGIwODJkMDAwMDIyMDI0NTA0NDA0MWUwZGIwODQxMDEzYTAwMDA0MWRjZGIwODQxMDAzNjAyMDAyMDAxNDEwODZhNDEwMDEwOWYwMTIwMDEyODAyMDgyMDAxMjgwMjBjNDFiODhkMDg0MTAwMTA1NzEwNDMwYzAxMGI0MWI4OGQwODQxMDAxMDRkMGIzNjAyMDAyMDAwMjAwMjQxMDE3MzNhMDAwNDIwMDE0MTEwNmEyNDAwMGIwYjAwMjAwMDIwMDExMDM4MTAwNzFhMGI0OTAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAxM2EwMDBjMjAwMjIwMDAzNjAyMDgyMDAyNDEwODZhMTBhNTAxMjAwMjI4MDIwODIwMDIyZDAwMGMwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAyNDExMDZhMjQwMDBiMGUwMDIwMDA0MThhODUwODQxMGIxMDNhMTAzYjBiMTMwMDIwMDAyMDAwMjAwMTIwMDIxMDUyMjAwMTIwMDIxMDg1MDEwYjBkMDAyMDAwMTAyYTIyMDAxMDFkMWEyMDAwMGIwYTAwMjAwMDEwM2QyMDAxMTAzZTBiMGYwMTAxN2YxMDJhMjIwMTIwMDAxMDFjMWEyMDAxMGI1MTAxMDI3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwMTAxMjIyMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwYTMwMTIwMDEyMDAwMTBiZDAxMjAwMjQxMTA2YTI0MDAwYjBhMDAyMDAwMTAzZDIwMDExMDQwMGI1MTAxMDI3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwMTAxMjIyMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwMGYxYTIwMDEyMDAwMTA4YjAxMjAwMjQxMTA2YTI0MDAwYjA5MDAyMDAwMjAwMTEwMDMwMDBiNTAwMTA0N2YxMDQzMjEwNjEwNDMyMTA3MjMwMDQxMTA2YjIyMDQyNDAwMTA0MzIxMDUyMDAxMTAyZjIxMDEyMDA0MjAwMzEwMjkzNjAyMGMyMDA0MjAwMjM3MDMwMDIwMDQyMDAxMzYwMjA4MjAwNTIwMDQxMDQ0MjAwMDIwMDU0MjAwMjAwNjIwMDcxMDA4MWEyMDA0NDExMDZhMjQwMDBiMTMwMTAxN2YxMDJhMjIwMDQxYjg4ZDA4NDEwMDEwMTgxYTIwMDAwYmQyMDEwMjAyN2YwMTdlMjMwMDQxMTA2YjIyMDMyNDAwMjAwMzIwMDEyODAyMDgyMjAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIzNjAyMDAyMDAzMjAwMTI4MDIwYzIyMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjM2MDIwYzIwMDMyMDAxMjkwMzAwMjIwNDQyMzg4NjIwMDQ0MjgwZmUwMzgzNDIyODg2ODQyMDA0NDI4MDgwZmMwNzgzNDIxODg2MjAwNDQyODA4MDgwZjgwZjgzNDIwODg2ODQ4NDIwMDQ0MjA4ODg0MjgwODA4MGY4MGY4MzIwMDQ0MjE4ODg0MjgwODBmYzA3ODM4NDIwMDQ0MjI4ODg0MjgwZmUwMzgzMjAwNDQyMzg4ODg0ODQ4NDM3MDIwNDIwMDAyMDAzNDExMDEwMGYxYTIwMDM0MTEwNmEyNDAwMGIxNTAwMjAwMDIwMDEyMDAyMjAwMzIwMDQxMDJhMjIwMTEwMDkxYTIwMDEwYjBjMDEwMTdmMTAyYTIyMDAxMDBhMjAwMDBiMGMwMTAxN2YxMDJhMjIwMDEwMGIyMDAwMGIwYzAxMDE3ZjEwMmEyMjAwMTAwYzIwMDAwYjE1MDAxMDQ4MTA0NjEwMzAwNDQwMGYwYjQxOTI4ZDA4NDEyNDEwMDMwMDBiMmIwMTAxN2Y0MWU4ZGIwODJkMDAwMDIyMDAwNDQwNDE2YjQxZmZmZmZmZmYwNzIwMDAxYjBmMGI0MWU4ZGIwODQxMDEzYTAwMDA0MTZiMTAwZDQxNmIwYjBkMDAyMDAwMTAyYTIyMDAxMDBlMWEyMDAwMGIyZTAxMDE3ZjQxZDU4MzA4NDExNzEwNGQyMjA0MjAwMDIwMDExMDBmMWEyMDA0NDFlYzgzMDg0MTAzMTAwZjFhMjAwNDIwMDIyMDAzMTAwZjFhMjAwNDEwMDAwMDBiMTEwMTAxN2YxMDJhMjIwMjIwMDAyMDAxMTAxODFhMjAwMjBiNDYwMTAxN2YyMzAwNDExMDZiMjIwMjI0MDAyMDAyMjAwMTQxMTg3NDIwMDE0MTgwZmUwMzcxNDEwODc0NzIyMDAxNDEwODc2NDE4MGZlMDM3MTIwMDE0MTE4NzY3MjcyMzYwMjBjMjAwMDIwMDI0MTBjNmE0MTA0MTAwZjFhMjAwMjQxMTA2YTI0MDAwYjBlMDEwMTdmNDEwMDEwMmEyMjAwMTAxMDIwMDAwYjFmMDAyMDAwMTA0YjIyMDAxMDEyNDEyMDQ3MDQ0MDIwMDEyMDAyNDFiMDg2MDg0MTEwMTA0YzAwMGIyMDAwMGJkOTAzMDEwOTdmMjMwMDQxNDA2YTIyMDEyNDAwMjAwMDEwNGIyMTAyMTA0MzIxMDYyMDAyMTAxMjIxMDAyMDAxNDEyNDZhNDEwMDNhMDAwMDIwMDE0MTIwNmEyMDAwMzYwMjAwMjAwMTIwMDIzNjAyMWMyMDAxMjAwMDM2MDIxODIwMDE0MTAwMzYwMjE0NDEwMDIxMDIwMzdmMjAwMDIwMDI0NjA0N2YyMDAxMmQwMDI0MDQ0MDQxZGNkYjA4NDEwMDM2MDIwMDQxZTBkYjA4NDEwMDNhMDAwMDBiMjAwMTQxNDA2YjI0MDAyMDA2MDUyMDAxNDExNDZhMjIwMDQxOTc4NzA4NDExNjEwM2EyMTA0MjAwMDQxOTc4NzA4NDExNjEwNTIyMTAwMTA0MzIxMDMwMzQwMjAwMDA0NDAyMDAxNDExNDZhMjIwNTQxOTc4NzA4NDExNjEwNTIyMTA3MjAwNTQxOTc4NzA4NDExNjEwNTMyMTA4MjAwNTQxOTc4NzA4NDExNjEwM2EyMTA5NDEwMDIxMDIwMjQwMDI0MDAyNDAyMDA1NDE5Nzg3MDg0MTE2MTA1NDQxZmYwMTcxMGUwMjAyMDEwMDBiNDE5Nzg3MDg0MTE2NDFlZDg2MDg0MTBkMTA0YzAwMGI0MTAxMjEwMjBiMjAwMTIwMDIzYTAwMzQyMDAxMjAwOTM2MDIzMDIwMDEyMDA4MzYwMjJjMjAwMTIwMDczNjAyMjgyMDAzMjAwMTQxMjg2YTEwNTUyMDAwNDEwMTZiMjEwMDBjMDEwYjBiMjAwMTQyMDAzNzAzMjgyMDAxMjAwNDQxMTg3NDIwMDQ0MTgwZmUwMzcxNDEwODc0NzIyMDA0NDEwODc2NDE4MGZlMDM3MTIwMDQ0MTE4NzY3MjcyMzYwMjNjMjAwMTQxMDg2YTIwMDE0MTI4NmEyMjAwNDEwMDQxMDQxMDU2MjAwMTI4MDIwODIwMDEyODAyMGMyMDAxNDEzYzZhMjIwMjQxMDQxMDU3MjAwMTIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIzYzIwMDEyMDAwNDEwNDQxMDgxMDU2MjAwMTI4MDIwMDIwMDEyODAyMDQyMDAyNDEwNDEwNTcyMDA2MjAwMDQxMDgxMDBmMWEyMDAxMjgwMjE0MjEwMjIwMDEyODAyMTgyMTAwMGMwMTBiMGIwYjM3MDIwMTdmMDE3ZTIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTAwMzYwMjBjMjAwMDIwMDM0MTBjNmEyMjAwNDEwNDIwMDEyMDAyMTBjNTAxMjAwMDQxMDQxMGIxMDEyMDAzNDExMDZhMjQwMGE3MGIwZDAwMjAwMDQxMjAyMDAxMjAwMjEwODUwMTBiMzAwMTAxN2YyMzAwNDExMDZiMjIwMzI0MDAyMDAzNDEwMDNhMDAwZjIwMDAyMDAzNDEwZjZhNDEwMTIwMDEyMDAyMTBjNTAxMjAwMzJkMDAwZjIwMDM0MTEwNmEyNDAwMGJmNjAyMDEwNTdmMjMwMDQxZDAwMDZiMjIwMjI0MDAyMDAyNDIwMDM3MDAzNTIwMDI0MjAwMzcwMzMwMjAwMjIwMDEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyNDAyMDAyNDEyODZhMjAwMjQxMzA2YTIyMDU0MTAwNDEwNDEwOWIwMTIwMDIyODAyMjgyMDAyMjgwMjJjMjAwMjQxNDA2YjIyMDQ0MTA0MTA1NzIwMDI0MWM4MDA2YTQxMDAzYTAwMDAyMDAyNDIwMDM3MDM0MDIwMDIyMDAxMjgwMjA0MjIwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMzYwMjRjMjAwMjQxMjA2YTIwMDQ0MTAwNDEwNDEwOWMwMTIwMDIyODAyMjAyMDAyMjgwMjI0MjAwMjQxY2MwMDZhMjIwNjQxMDQxMDU3MjAwMjIwMDE0MTA4NmEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyNGMyMDAyNDExODZhMjAwNDQxMDQ0MTA4MTA5YzAxMjAwMjI4MDIxODIwMDIyODAyMWMyMDA2NDEwNDEwNTcyMDAyMjAwMTQxMGM2YTJkMDAwMDNhMDA0YzIwMDI0MTEwNmEyMDA0NDEwODQxMDkxMDljMDEyMDAyMjgwMjEwMjAwMjI4MDIxNDIwMDY0MTAxMTA1NzIwMDI0MTA4NmEyMDA1NDEwNDQxMGQxMDliMDEyMDAyMjgwMjA4MjAwMjI4MDIwYzIwMDQ0MTA5MTA1NzIwMDAyMDA1NDEwZDEwMGYxYTIwMDI0MWQwMDA2YTI0MDAwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwODEwZjkwMTBiYjUwMjAxMDY3ZjIwMDEyMDAzNDYwNDQwMjAwMTIyMDM0MTEwNGYwNDQwMjAwMDQxMDAyMDAwNmI0MTAzNzEyMjA0NmEyMTA1MjAwNDA0NDAyMDAyMjEwMTAzNDAyMDAwMjAwMTJkMDAwMDNhMDAwMDIwMDE0MTAxNmEyMTAxMjAwMDQxMDE2YTIyMDAyMDA1NDkwZDAwMGIwYjIwMDUyMDAzMjAwNDZiMjIwMzQxN2M3MTIyMDY2YTIxMDAwMjQwMjAwMjIwMDQ2YTIyMDQ0MTAzNzEwNDQwMjAwNjQxMDA0YzBkMDEyMDA0NDEwMzc0MjIwMTQxMTg3MTIxMDcyMDA0NDE3YzcxMjIwODQxMDQ2YTIxMDI0MTAwMjAwMTZiNDExODcxMjEwOTIwMDgyODAyMDAyMTAxMDM0MDIwMDUyMDAxMjAwNzc2MjAwMjI4MDIwMDIyMDEyMDA5NzQ3MjM2MDIwMDIwMDI0MTA0NmEyMTAyMjAwNTQxMDQ2YTIyMDUyMDAwNDkwZDAwMGIwYzAxMGIyMDA2NDEwMDRjMGQwMDIwMDQyMTAyMDM0MDIwMDUyMDAyMjgwMjAwMzYwMjAwMjAwMjQxMDQ2YTIxMDIyMDA1NDEwNDZhMjIwNTIwMDA0OTBkMDAwYjBiMjAwMzQxMDM3MTIxMDMyMDA0MjAwNjZhMjEwMjBiMjAwMzA0NDAyMDAwMjAwMzZhMjEwMTAzNDAyMDAwMjAwMjJkMDAwMDNhMDAwMDIwMDI0MTAxNmEyMTAyMjAwMDQxMDE2YTIyMDAyMDAxNDkwZDAwMGIwYjBmMGIxMDJjMDAwYmEyMDMwMTA3N2YyMzAwNDE0MDZhMjIwMTI0MDAyMDAwMTA0YjIxMDIxMDQzMjEwNTIwMDIxMDEyMjEwMDIwMDE0MTJjNmE0MTAwM2EwMDAwMjAwMTQxMjg2YTIwMDAzNjAyMDAyMDAxMjAwMjM2MDIyNDIwMDEyMDAwMzYwMjIwMjAwMTQxMDAzNjAyMWM0MTAwMjEwMjAzN2YyMDAwMjAwMjQ2MDQ3ZjIwMDEyZDAwMmMwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAxNDE0MDZiMjQwMDIwMDUwNTIwMDE0MTFjNmEyMjAwNDFhZDg3MDg0MTE4MTAzYTIxMDMyMDAwNDFhZDg3MDg0MTE4MTA1MjIxMDAxMDQzMjEwMjAzNDAyMDAwMDQ0MDIwMDE0MTFjNmEyMjA0NDFhZDg3MDg0MTE4MTA1MjIxMDYyMDA0NDFhZDg3MDg0MTE4MTA1MzIxMDcyMDA0NDFhZDg3MDg0MTE4MTAzYTIxMDQyMDAxMjAwNjM2MDIzODIwMDEyMDA0MzYwMjM0MjAwMTIwMDczNjAyMzAyMDAyMjAwMTQxMzA2YTEwNTkyMDAwNDEwMTZiMjEwMDBjMDEwYjBiMjAwMTQyMDAzNzAzMzAyMDAxMjAwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMzYwMjNjMjAwMTQxMTA2YTIwMDE0MTMwNmEyMjAwNDEwMDQxMDQxMDU2MjAwMTI4MDIxMDIwMDEyODAyMTQyMDAxNDEzYzZhMjIwMzQxMDQxMDU3MjAwMTIwMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjM2MDIzYzIwMDE0MTA4NmEyMDAwNDEwNDQxMDgxMDU2MjAwMTI4MDIwODIwMDEyODAyMGMyMDAzNDEwNDEwNTcyMDA1MjAwMDQxMDgxMDBmMWEyMDAxMjgwMjFjMjEwMjIwMDEyODAyMjAyMTAwMGMwMTBiMGIwYmI4MDIwMTA0N2YyMzAwNDE0MDZhMjIwMjI0MDAyMDAyNDEyODZhNDEwMDM2MDIwMDIwMDI0MjAwMzcwMzIwMjAwMjIwMDEyODAyMDgyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyMzAyMDAyNDExODZhMjAwMjQxMjA2YTIyMDU0MTAwNDEwNDEwOWEwMTIwMDIyODAyMTgyMDAyMjgwMjFjMjAwMjQxMzA2YTIyMDQ0MTA0MTA1NzIwMDI0MjAwMzcwMzMwMjAwMjIwMDEyODAyMDAyMjAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyM2MyMDAyNDExMDZhMjAwNDQxMDA0MTA0MTA1NjIwMDIyODAyMTAyMDAyMjgwMjE0MjAwMjQxM2M2YTIyMDM0MTA0MTA1NzIwMDIyMDAxMjgwMjA0MjIwMTQxMTg3NDIwMDE0MTgwZmUwMzcxNDEwODc0NzIyMDAxNDEwODc2NDE4MGZlMDM3MTIwMDE0MTE4NzY3MjcyMzYwMjNjMjAwMjQxMDg2YTIwMDQ0MTA0NDEwODEwNTYyMDAyMjgwMjA4MjAwMjI4MDIwYzIwMDM0MTA0MTA1NzIwMDIyMDA1NDEwNDQxMGMxMDlhMDEyMDAyMjgwMjAwMjAwMjI4MDIwNDIwMDQ0MTA4MTA1NzIwMDAyMDA1NDEwYzEwMGYxYTIwMDI0MTQwNmIyNDAwMGIxNDAwMTAxMzIwMDA0NjA0NDAwZjBiNDE5Mjg0MDg0MTE5MTAwMzAwMGIwOTAwMjAwMDEwNWMxMDA3MWEwYjFkMDAyMDAwMTBhNzAxMjIwMDEwMTI0MTIwNDcwNDQwNDFiMDg2MDg0MTEwMTA4ODAxMDAwYjIwMDAwYjBhMDAyMDAwMTBhNzAxMTAwNzFhMGIwODAwMjAwMDEwNWYxMDE0MGI2MTAyMDI3ZjAxN2UyMzAwNDExMDZiMjIwMTI0MDAyMDAxNDIwMDM3MDMwODIwMDAxMGE3MDEyMjAwMTAxMjIyMDI0MTA5NGYwNDQwNDE5NTg1MDg0MTBlMTA4ODAxMDAwYjIwMDEyMDAxNDEwODZhMjAwMjEwYjAwMTIwMDA0MTAwMjAwMTI4MDIwMDIyMDAyMDAxMjgwMjA0MjIwMjEwOGEwMTFhMjAwMDIwMDIxMGIxMDEyMDAxNDExMDZhMjQwMDBiMWYwMDIwMDAyMDAxMjAwMjEwMTUyMDAwMTA2MTQxZmYwMTcxMDQ0MDBmMGI0MWFiODQwODQxMzAxMDAzMDAwYjE1MDA0MTAyNDEwMTIwMDAxMDI3MjIwMDFiNDEwMDIwMDA0MTAwNGUxYjBiZjgwMTAxMDQ3ZjIzMDA0MWQwMDA2YjIyMDUyNDAwMjAwNTIwMDQzNjAyMjgyMDA1NDEyMDZhNDFkYjg0MDg0MTE0MTA2MzIwMDUyODAyMjAyMTA3MjAwNTI4MDIyNDIyMDYyMDAzMTA2NDIwMDQxMDY1MjEwMzEwNDMyMjA4MjAwM2FkMTA2NjIwMDYyMDA4MTA0ZTIwMDUyMDA0MTAxMjM2MDIzNDIwMDU0MTAwMzYwMjMwMjAwNTIwMDU0MTI4NmEzNjAyMmMwMzQwMjAwNTQxMzg2YTIwMDU0MTJjNmExMDY3MjAwNTI5MDMzODUwMDQ0MDIwMDUyMDA3MjAwNjIwMDEyMDAyMTA2ODIwMDUyODAyMDQyMTAxMjAwMDIwMDUyODAyMDAzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MWQwMDA2YTI0MDAwNTIwMDUyODAyNGMyMTAzMjAwNTQxMTg2YTIwMDcyMDA2MjAwNTI4MDI0ODEwNjkyMDA1NDExMDZhMjAwNTI4MDIxODIwMDUyODAyMWMyMDA1MjkwMzQwMTA2YTIwMDU0MTA4NmEyMDA1MjgwMjEwMjAwNTI4MDIxNDIwMDMxMDZiMjAwNTI4MDIwYzIxMDYyMDA1MjgwMjA4MjEwNzBjMDEwYjBiMGIxODAwMjAwMTIwMDIxMDRkMjEwMTIwMDAxMDQzMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjEwMDAxMDQzMWEyMDAwMjAwMTI4MDIwMDEwMmYxMDRlMGIwOTAwMjAwMDEwMTI0MTA0NzYwYjM4MDEwMTdmMjMwMDQxMTA2YjIyMDIyNDAwMjAwMjQyMDAzNzAzMDgyMDAyMjAwMTQxMDAyMDAyNDEwODZhMTA4MjAxMjAwMDIwMDIyODAyMDAyMDAyMjgwMjA0MTAxODFhMjAwMjQxMTA2YTI0MDAwYmE3MDEwMjA1N2YwMTdlMjMwMDQxMjA2YjIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjA0NDExMDZhMjIwNTIwMDEyODAyMDg0ZDA0N2UyMDAxMjgwMjAwMjAwMjQxMTA2YTQyMDAzNzAzMDAyMDAyNDIwMDM3MDMwODI4MDIwMDIwMDQyMDAyNDEwODZhMjIwMzQxMTAxMDZmMWEyMDAyNDEwMDM2MDIxYzIwMDMyMDAyNDExYzZhMjIwNjEwOTgwMTIxMDQyMDAzMjAwNjEwOTkwMTIxMDcyMDAwNDExNDZhMjAwMjQxMDg2YTIwMDI0MTFjNmExMDk4MDEzNjAyMDAyMDAwNDExMDZhMjAwNDM2MDIwMDIwMDAyMDA3MzcwMzA4MjAwMTIwMDUzNjAyMDQ0MjAxMDU0MjAwMGIzNzAzMDAyMDAyNDEyMDZhMjQwMDBiOTEwMTAxMDM3ZjIzMDA0MTEwNmIyMjA1MjQwMDAyNDAyMDAzMTAxMjQ1MGQwMDIwMDIyMDAzMTA2ZTIwMDQxMDEyMjEwNjQxMDAyMTAzMDM0MDIwMDM0MTA0NmEyMjA3MjAwNjRiMGQwMTIwMDU0MTAwMzYwMjBjMjAwNDIwMDMyMDA1NDEwYzZhNDEwNDEwNmYxYTIwMDIyMDA1MjgwMjBjMjIwMzQxMTg3NDIwMDM0MTgwZmUwMzcxNDEwODc0NzIyMDAzNDEwODc2NDE4MGZlMDM3MTIwMDM0MTE4NzY3MjcyMTA2ZTIwMDcyMTAzMGMwMDBiMDAwYjIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAyMDA1NDExMDZhMjQwMDBiMTYwMDIwMDIyMDAzMTA2ZTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjIwMDEwMTdmMTA0MzIyMDQyMDAzMTA2NjIwMDIyMDA0MTA0ZTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAwYjE2MDAyMDAzMjAwMjEwNzAyMDAwMjAwMjM2MDIwNDIwMDAyMDAxMzYwMjAwMGJhMzAxMDEwMjdmMjMwMDQxMzA2YjIyMDUyNDAwMjAwNTQxMjg2YTQxZWY4NDA4NDEwZjEwNjMyMDA1NDEyMDZhMjAwNTI4MDIyODIwMDUyODAyMmMyMDA0MjgwMjA4MTA2OTIwMDU0MTE4NmEyMDA1MjgwMjIwMjAwNTI4MDIyNDIwMDQyOTAzMDAxMDZhMjAwNTQxMTA2YTIwMDUyODAyMTgyMDA1MjgwMjFjMjAwNDI4MDIwYzEwNmIyMDA1MjgwMjEwMjEwNDIwMDUyODAyMTQyMTA2MTA0MzFhMjAwNjIwMDMxMDJmMTA0ZTIwMDU0MTA4NmEyMDA0MjAwNjIwMDEyMDAyMTA2ODIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTMwNmEyNDAwMGI3MTAxMDE3ZjIzMDA0MTIwNmIyMjA1MjQwMDIwMDU0MTE4NmE0MWZlODQwODQxMGMxMDYzMjAwNTQxMTA2YTIwMDUyODAyMTgyMDA1MjgwMjFjMjAwMzEwNjkyMDA1NDEwODZhMjAwNTI4MDIxMDIwMDUyODAyMTQyMDA0MTA2YjIwMDUyMDA1MjgwMjA4MjAwNTI4MDIwYzIwMDEyMDAyMTA2ODIwMDUyODAyMDQyMTAxMjAwMDIwMDUyODAyMDAzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTIwNmEyNDAwMGIwZDAwMTA0MzFhMjAwMDIwMDExMDJmMTA0ZTBiMGQwMDIwMDAyMDAxMjAwMjIwMDMxMDhhMDEwYjBkMDAxMDQzMWEyMDAxMjAwMDEwM2QxMDRlMGIwZjAwMjAwMDQyN2Y1MTA0N2UxMDE2MDUyMDAwMGIwYjMwMDEwMTdlMjAwMDI5MDMwODIyMDE0MjdmNTEwNDdlMTAxNjA1MjAwMTBiMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUxMDE3MTA3MzBiM2IwMTAyN2YyMzAwNDExMDZiMjIwMTI0MDAyMDAwMTAxMjIxMDIyMDAxNDEwMDM2MDIwYzIwMDEyMDAwMzYwMjA0MjAwMTIwMDI0MTAyNzYzNjAyMDgyMDAxNDEwNDZhMTA3NTEwM2IyMDAxNDExMDZhMjQwMDBiMjQwMDIwMDAyOTAzMDgxMDcxMjAwMDI4MDIxMDIwMDAyODAyMTgyMDAwMjgwMjAwMjAwMDI4MDIwNDEwNDUxMDE3MTAxMjFhMGI3ZDAxMDM3ZjIzMDA0MTEwNmIyMjAxMjQwMDIwMDAyODAyMDgyMTAzMjAwMTQxMDAzNjAyMGMyMDAwMjgwMjAwMjAwMzQxMDI3NDIwMDE0MTBjNmE0MTA0MTA2ZjQ1MDQ0MDIwMDEyODAyMGMyMTAyMjAwMDIwMDM0MTAxNmEzNjAyMDgyMDAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIxMDJmMjAwMTQxMTA2YTI0MDAwZjBiNDE4YTg1MDg0MTBiNDFlZjgzMDg0MTExMTA0YzAwMGI5MDAyMDIwMjdmMDE3ZTIzMDA0MWQwMDA2YjIyMDIyNDAwMjAwMTI5MDMwODIyMDQ0MjdmNTEwNDdlMTAxNjA1MjAwNDBiMjAwMTI4MDIxMDIwMDEyODAyMTgyMDAxMjgwMjAwMjAwMTI4MDIwNDEwNDUyMTAxMTAxNzIwMDExMDEyMjEwMzIwMDI0MTAwMzYwMjE0MjAwMjIwMDEzNjAyMGMyMDAyMjAwMzQxMDI3NjM2MDIxMDIwMDI0MTBjNmExMDc1MjIwMzEwMTIyMTAxMjAwMjQxM2M2YTQxMDAzYTAwMDAyMDAyNDEzODZhMjAwMTM2MDIwMDIwMDIyMDAzMzYwMjM0MjAwMjIwMDEzNjAyMzAyMDAyNDEwMDM2MDIyYzIwMDI0MTQwNmIyMDAyNDEyYzZhMTA3NzIwMDIyODAyMzAyMDAyMjgwMjJjNDYwNDQwMjAwMjQxMjA2YTIyMDEyMDAyNDFjODAwNmEyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDM0MDM3MDMxODIwMDIyZDAwM2MwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAwMjAwMjI5MDMxODM3MDMwMDIwMDA0MTA4NmEyMDAxMjkwMzAwMzcwMzAwMjAwMjQxZDAwMDZhMjQwMDBmMGI0MThhODUwODQxMGI0MTk1ODUwODQxMGUxMDRjMDAwYjMwMDIwMTdmMDE3ZTIwMDE0MThhODUwODQxMGIxMDNhMjEwMjIwMDExMGJlMDEyMTAzMjAwMDIwMDExMDM5MzYwMjBjMjAwMDIwMDIzNjAyMDgyMDAwMjAwMzM3MDMwMDBiMTAwMDEwNDMxYTIwMDAyMDAxMjgwMjAwMTAzZDEwNGUwYjBlMDAyMDAxNDUwNDQwMjAwMjIwMDAxMDcwMGIwYjgxMDEwMTA1N2YyMzAwNDExMDZiMjIwMzI0MDAxMDQzMTAyZjIxMDQyMDAxMjgwMjAwMTAxMjIxMDUwMzQwMjAwNTIwMDI0MTA0NmEyMjA2NGYwNDQwMjAwMzQxMDAzNjAyMGMyMDAxMjgwMjAwMjAwMjIwMDM0MTBjNmE0MTA0MTA2ZjFhMjAwMzI4MDIwYzIyMDI0MTE4NzQyMDAyNDE4MGZlMDM3MTQxMDg3NDcyMjAwMjQxMDg3NjQxODBmZTAzNzEyMDAyNDExODc2NzI3MjIwMDQxMDNmMjAwNjIxMDIwYzAxMGIwYjIwMDAyMDA0MTA0ZTIwMDM0MTEwNmEyNDAwMGI4MjAxMDEwNTdmMjMwMDQxMTA2YjIyMDMyNDAwMTA0MzEwMmYyMTA0MjAwMTI4MDIwMDEwMTIyMTA1MDM0MDIwMDUyMDAyNDEwNDZhMjIwNjRmMDQ0MDIwMDM0MTAwMzYwMjBjMjAwMTI4MDIwMDIwMDIyMDAzNDEwYzZhNDEwNDEwNmYxYTIwMDQyMDAzMjgwMjBjMjIwMjQxMTg3NDIwMDI0MTgwZmUwMzcxNDEwODc0NzIyMDAyNDEwODc2NDE4MGZlMDM3MTIwMDI0MTE4NzY3MjcyMTAwNTFhMjAwNjIxMDIwYzAxMGIwYjIwMDAyMDA0MTA0ZTIwMDM0MTEwNmEyNDAwMGI0ZDAxMDI3ZjIzMDA0MTIwNmIyMjAxMjQwMDEwN2QyMTAyMjAwMTQxMTA2YTIwMDA0MTEwNmEyOTAzMDAzNzAzMDAyMDAxNDEwODZhMjAwMDQxMDg2YTI5MDMwMDM3MDMwMDIwMDEyMDAyMzYwMjE4MjAwMTIwMDAyOTAzMDAzNzAzMDAyMDAxMTA3MjIwMDE0MTIwNmEyNDAwMGIwZTAxMDE3ZjEwMmEyMjAwNDIwMDEwMDEyMDAwMGI0ZjAxMDI3ZjIzMDA0MTIwNmIyMjAyMjQwMDEwN2QyMTAzMjAwMjQxMTA2YTIwMDE0MTEwNmEyOTAzMDAzNzAzMDAyMDAyNDEwODZhMjAwMTQxMDg2YTI5MDMwMDM3MDMwMDIwMDIyMDAzMzYwMjE4MjAwMjIwMDEyOTAzMDAzNzAzMDAyMDAwMjAwMjEwNzYyMDAyNDEyMDZhMjQwMDBiNGQwMTAyN2YyMzAwNDEyMDZiMjIwMTI0MDAxMDdkMjEwMjIwMDE0MTEwNmEyMDAwNDExMDZhMjkwMzAwMzcwMzAwMjAwMTQxMDg2YTIwMDA0MTA4NmEyOTAzMDAzNzAzMDAyMDAxMjAwMjM2MDIxODIwMDEyMDAwMjkwMzAwMzcwMzAwMjAwMTEwMzQyMDAxNDEyMDZhMjQwMDBiNzYwMjA1N2YwMTdlMjMwMDQxMTA2YjIyMDEyNDAwMTA3ZDIxMDIyMDAwMjgwMjEwMjEwMzIwMDAyODAyMDQyMTA0MjAwMDI4MDIwMDIxMDUyMDAwMjkwMzA4MjIwNjQyN2Y1MTA0N2UxMDE2MDUyMDA2MGIyMDAzMjAwMjIwMDUyMDA0MTA0NTIxMDAxMDE3MjAwMDEwMTIyMTAyMjAwMTQxMDAzNjAyMGMyMDAxMjAwMDM2MDIwNDIwMDEyMDAyNDEwMjc2MzYwMjA4MjAwMTQxMDQ2YTEwNzUxMDJmMjAwMTQxMTA2YTI0MDAwYjQ3MDEwMjdmMjMwMDQxMTA2YjIyMDIyNDAwMTA0MzIxMDMyMDAyNDIwMDM3MDMwODIwMDIyMDAxYWQ0MmZmMDE4MzQxMDEyMDAyNDEwODZhMTA4MjAxMjAwMzIwMDIyODAyMDAyMDAyMjgwMjA0MTAxODFhMjAwMDIwMDMxMDRlMjAwMjQxMTA2YTI0MDAwYjhmMDIwMjA0N2YwMTdlMjAwMzIwMDE0MjM4ODYyMDAxNDI4MGZlMDM4MzQyMjg4Njg0MjAwMTQyODA4MGZjMDc4MzQyMTg4NjIwMDE0MjgwODA4MGY4MGY4MzQyMDg4Njg0ODQyMDAxNDIwODg4NDI4MDgwODBmODBmODMyMDAxNDIxODg4NDI4MDgwZmMwNzgzODQyMDAxNDIzODg4MjIwODIwMDE0MjI4ODg0MjgwZmUwMzgzODQ4NDg0MzcwMDAwMDI0MDIwMDE1MDA0NDA0MWI4OGQwODIxMDMwYzAxMGIyMDAyMDQ0MDIwMDE0MjdmNTEwNDQwMjAwMzQxMDc2YTIxMDM0MTAxMjEwNDBjMDIwYjIwMDhhN2MwMjIwNTQxMDc3NTIxMDYyMDA1NDEwMDQ4MjEwNTBiMjAwNjQxZmYwMTcxMjEwNjAzNDAwMjQwMDI0MDIwMDQ0MTA4NDcwNDQwMjAwMzIwMDQ2YTJkMDAwMDIyMDcyMDA2NDYwZDAyMjAwMjQ1MjAwNzQxMDc3NjIwMDU0NjcyNDUwNDQwMjAwNDQxMDE2YjIyMDQ0MTA5NGYwZDAyMGIyMDAzMjAwNDZhMjEwMzQxMDgyMDA0NmIyMTA0MGMwNDBiMTAyYzAwMGIxMDJjMDAwYjIwMDQ0MTAxNmEyMTA0MGMwMDBiMDAwYjIwMDAyMDA0MzYwMjA0MjAwMDIwMDMzNjAyMDAwYmEzMDEwMjAzN2YwMTdlMjMwMDQxMTA2YjIyMDMyNDAwMDI3ZjIwMDIyOTAzMDA1MDA0NDAyMDAxMjgwMjEwMjEwNDIwMDMyMDAxMjgwMjAwMjAwMTI4MDIwNDIwMDIyODAyMDgyMDAyMjgwMjBjMTA2ZDIwMDMyODAyMDAyMTA1MjAwMzI4MDIwNDBjMDEwYjEwNDcyMTA0MjAwMzQxMDg2YTIwMDEyODAyMDAyMDAxMjgwMjA0MjAwMTI4MDIxMDIwMDIxMDZjMjAwMzI4MDIwODIxMDUyMDAzMjgwMjBjMGIyMTAyMjAwMTI5MDMwODIxMDYyMDAwMTA3ZDM2MDIxODIwMDAyMDA0MzYwMjEwMjAwMDIwMDYzNzAzMDgyMDAwMjAwMjM2MDIwNDIwMDAyMDA1MzYwMjAwMjAwMzQxMTA2YTI0MDAwYjNmMDEwMTdmMTA0MzIxMDMyMDAwMjAwMTI5MDMwMDM3MDMwMDIwMDA0MTEwNmEyMDAxNDExMDZhMjkwMzAwMzcwMzAwMjAwMDQxMDg2YTIwMDE0MTA4NmEyOTAzMDAzNzAzMDAyMDAzMjAwMjEwNDQyMDAwMjAwMzM2MDIxODBiNTIwMTAyN2YyMzAwNDExMDZiMjIwNDI0MDAyMDA0NDEwODZhMjAwMDI4MDIwODIwMDAyODAyMDAyMjA1MjAwMTEwODYwMTIwMDQyODAyMDg0MTAxNDYwNDQwMjAwNDI4MDIwYzIwMDAyMDAxMjAwNTZhMzYwMjAwMjAwNDQxMTA2YTI0MDAwZjBiMjAwMjIwMDM0MWEzODUwODQxMGYxMDRjMDAwYjFmMDAyMDAxMjAwMjIwMDMxMDA0MjIwMTEwMWYyMTAyMjAwMDIwMDEzNjAyMDQyMDAwMjAwMjQ1MzYwMjAwMGI0ZjAxMDM3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MTA4NmEyMDAwMjgwMjA4MjAwMDI4MDIwMDIyMDMyMDAxMTA4NjAxMjAwMjI4MDIwODQxMDE0NjA0NDAyMDAyMjgwMjBjMjAwMDIwMDEyMDAzNmEzNjAyMDAyMDAyNDExMDZhMjQwMDBmMGI0MWEzODUwODQxMGYxMDg4MDEwMDBiMWEwMTAxN2Y0MWYxODUwODQxMTYxMDRkMjIwMjIwMDAyMDAxMTAwZjFhMjAwMjEwMDAwMDBiMTUwMDQxN2YyMDAwMjAwMTEwMTkyMjAwNDEwMDQ3MjAwMDQxMDA0ODFiMGIwZjAwMjAwMDIwMDEyMDAzMjAwMjEwMjg0MTAwNDcwYjA5MDAyMDAwMjAwMTEwMDUxYTBiMGMwMDIwMDAyMDAwMjAwMTEwMDIyMDAwMGIwYzAwMjAwMDIwMDAyMDAxMTAxYTIwMDAwYjBjMDAyMDAwMjAwMDIwMDExMDFiMjAwMDBiMGEwMDIwMDAyMDAwMjAwMTEwMDIwYjBjMDAyMDAwMjAwMDIwMDExMDYwMjAwMDBiMTAwMTAxN2YxMDJhMjIwMjIwMDAyMDAxMTAwMjIwMDIwYjEwMDEwMTdmMTAyYTIyMDIyMDAwMjAwMTEwMWIyMDAyMGIxMDAxMDE3ZjEwMmEyMjAyMjAwMDIwMDExMDYwMjAwMjBiMTkwMTAxN2YxMDJhMjEwMjQxNzIyMDAxYWQxMDAxMjAwMjIwMDA0MTcyMTAxZTIwMDIwYjBlMDEwMTdmMTA0MzIyMDEyMDAwMTA0NDIwMDEwYjRjMDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMTA0MzIxMDIyMDAxMjAwMDQxMTg3NDIwMDA0MTgwZmUwMzcxNDEwODc0NzIyMDAwNDEwODc2NDE4MGZlMDM3MTIwMDA0MTE4NzY3MjcyMzYwMjBjMjAwMjIwMDE0MTBjNmE0MTA0MTAwZjFhMjAwMTQxMTA2YTI0MDAyMDAyMGI4NDAxMDIwNDdmMDE3ZTIzMDA0MTIwNmIyMjAyMjQwMDIwMDI0MTEwNmE0MjAwMzcwMzAwMjAwMjQyMDAzNzAzMDgyMDAxNDEwMDIwMDI0MTA4NmEyMjAzNDExMDEwNmYyMDAyNDEwMDM2MDIxYzIwMDMyMDAyNDExYzZhMjIwNDEwOTgwMTIxMDUyMDAzMjAwNDEwOTkwMTIxMDYyMDAyNDEwODZhMjAwMjQxMWM2YTEwOTgwMTIxMDMwNDQwNDFjMzg1MDg0MTFkMTAwMzAwMGIyMDAwMjAwMzM2MDIwYzIwMDAyMDA1MzYwMjA4MjAwMDIwMDYzNzAzMDAyMDAyNDEyMDZhMjQwMDBiNzQwMTAxN2YyMzAwNDExMDZiMjIwMjI0MDAyMDAyNDEwMDM2MDIwYzIwMDIyMDAwNDExMDIwMDEyODAyMDAyMjAwMjAwMDQxMDQ2YTIyMDAxMDlkMDEyMDAyNDEwYzZhNDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDEyMDAwMzYwMjAwMjAwMjI4MDIwYzIxMDAyMDAyNDExMDZhMjQwMDIwMDA0MTE4NzQyMDAwNDE4MGZlMDM3MTQxMDg3NDcyMjAwMDQxMDg3NjQxODBmZTAzNzEyMDAwNDExODc2NzI3MjBiYTgwMTAyMDE3ZTAxN2YyMzAwNDExMDZiMjIwMzI0MDAyMDAzNDIwMDM3MDMwODIwMDMyMDAwNDExMDIwMDEyODAyMDAyMjAwMjAwMDQxMDg2YTIyMDAxMDlkMDEyMDAzNDEwODZhNDEwODIwMDMyODAyMDAyMDAzMjgwMjA0MTA1NzIwMDEyMDAwMzYwMjAwMjAwMzI5MDMwODIxMDIyMDAzNDExMDZhMjQwMDIwMDI0MjM4ODYyMDAyNDI4MGZlMDM4MzQyMjg4Njg0MjAwMjQyODA4MGZjMDc4MzQyMTg4NjIwMDI0MjgwODA4MGY4MGY4MzQyMDg4Njg0ODQyMDAyNDIwODg4NDI4MDgwODBmODBmODMyMDAyNDIxODg4NDI4MDgwZmMwNzgzODQyMDAyNDIyODg4NDI4MGZlMDM4MzIwMDI0MjM4ODg4NDg0ODQwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwYzEwZjkwMTBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTBkMTBmOTAxMGIwZjAwMjAwMDIwMDEyMDAyMjAwMzQxMDkxMGY5MDEwYjJmMDAwMjQwMjAwMzIwMDQ0ZDA0NDAyMDAyMjAwNDQ5MGQwMTIwMDAyMDA0MjAwMzZiMzYwMjA0MjAwMDIwMDEyMDAzNmEzNjAyMDAwZjBiMTAyYzAwMGIxMDJjMDAwYmI0MDEwMTAzN2YyMzAwNDExMDZiMjIwNDI0MDAwMjdmMDI0MDIwMDAyZDAwMDg0NTA0NDAyMDAwMjgwMjAwMjIwNTEwMTIyMjA2NDE5MGNlMDA0YjBkMDE0MWUwZGIwODJkMDAwMDBkMDE0MWRjZGIwODIwMDYzNjAyMDA0MWUwZGIwODQxMDEzYTAwMDAyMDA0NDEwODZhMjAwNjEwOWYwMTIwMDU0MTAwMjAwNDI4MDIwODIwMDQyODAyMGMxMDZmMWEyMDAwNDEwMTNhMDAwODBiNDEwMTIwMDEyMDAzNmEyMjAwNDFkY2RiMDgyODAyMDA0YjBkMDExYTIwMDQyMDAxMjAwMDEwYTAwMTIwMDIyMDAzMjAwNDI4MDIwMDIwMDQyODAyMDQxMDU3NDEwMDBjMDEwYjIwMDA0MTAwM2EwMDA4MjAwNTIwMDEyMDAyMjAwMzEwNmYwYjIwMDQ0MTEwNmEyNDAwMGIzZTAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MTA4NmE0MWNjOGQwODQxOTBjZTAwMjAwMTEwZDAwMTIwMDIyODAyMGMyMTAxMjAwMDIwMDIyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDI0MTEwNmEyNDAwMGIzMjAwMDI0MDIwMDEyMDAyNGQwNDQwMjAwMjQxOTBjZTAwNGQwZDAxMTAyYzAwMGIxMDJjMDAwYjIwMDAyMDAyMjAwMTZiMzYwMjA0MjAwMDIwMDE0MWNjOGQwODZhMzYwMjAwMGIxOTAwMjAwMDQxZmVmZmZmZmYwNzQ2MDQ0MDQxZTA4NTA4NDEwZDEwMDMwMDBiMjAwMDBiNGQwMTAxN2YyMzAwNDExMDZiMjIwMTI0MDAyMDAwMTAxMjQxMDQ0NjA0NDAyMDAxNDEwMDM2MDIwYzIwMDA0MTAwMjAwMTQxMGM2YTQxMDQxMDhhMDExYTQxZmVmZmZmZmYwNzIwMDAyMDAxMjgwMjBjNDFjNThlYjFhMjA0NDYxYjIxMDAwYjIwMDE0MTEwNmEyNDAwMjAwMDBiODAwMTAxMDI3ZjIzMDA0MTEwNmIyMjAzMjQwMDAyNDAwMjQwMjAwMDJkMDAwNDA0NDA0MTkwY2UwMDQxZGNkYjA4MjgwMjAwMjIwNDZiMjAwMjQ5MGQwMTIwMDM0MTA4NmEyMDA0MjAwMjIwMDQ2YTIyMDAxMGE0MDEyMDAzMjgwMjA4MjAwMzI4MDIwYzIwMDEyMDAyMTA1NzQxZGNkYjA4MjAwMDM2MDIwMDBjMDIwYjIwMDAyODAyMDAyMDAxMjAwMjEwMGYxYTBjMDEwYjIwMDAxMGE1MDEyMDAwMjgwMjAwMjAwMTIwMDIxMDBmMWEwYjIwMDM0MTEwNmEyNDAwMGIzZjAxMDE3ZjIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTA4NmEyMDAxMjAwMjQxY2M4ZDA4NDE5MGNlMDAxMDJiMjAwMzI4MDIwYzIxMDEyMDAwMjAwMzI4MDIwODM2MDIwMDIwMDAyMDAxMzYwMjA0MjAwMzQxMTA2YTI0MDAwYjU4MDEwMjdmMjMwMDQxMTA2YjIyMDEyNDAwMjAwMDJkMDAwNDIwMDA0MTAwM2EwMDA0MDQ0MDIwMDE0MTA4NmE0MTAwNDFkY2RiMDgyODAyMDAxMGEwMDEyMDAwMjgwMjAwMjAwMTI4MDIwODIwMDEyODAyMGMxMDBmMWE0MWRjZGIwODQxMDAzNjAyMDA0MWUwZGIwODQxMDAzYTAwMDAwYjIwMDE0MTEwNmEyNDAwMGIwZDAwMjAwMDQxNjcxMDIwMWE0MTY3MTAxMjBiMGQwMDIwMDAxMDJhMjIwMDEwMjAxYTIwMDAwYjEyMDAyMDAwMTBhNjAxNDUwNDQwMjAwMDIwMDExMDIxMWEwYjBiMTIwMDIwMDAxMGE2MDE0NTA0NDAyMDAwMjAwMTEwYWEwMTBiMGIzODAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDI0MjAwMzcwMzA4MjAwMjIwMDE0MTAwMjAwMjQxMDg2YTEwODIwMTIwMDAyMDAyMjgwMjAwMjAwMjI4MDIwNDEwYjgwMTIwMDI0MTEwNmEyNDAwMGIwYTAwMjAwMDEwYTcwMTEwYTIwMTBiYjkwMTAxMDQ3ZjIzMDA0MTIwNmIyMjAxMjQwMDIwMDAxMGE3MDEyMTAyMTA0MzIxMDQyMDAyMTAxMjIxMDAyMDAxNDExMDZhNDEwMDNhMDAwMDIwMDE0MTBjNmEyMDAwMzYwMjAwMjAwMTIwMDIzNjAyMDgyMDAxMjAwMDM2MDIwNDIwMDE0MTAwMzYwMjAwMDM3ZjIwMDAyMDAzNDYwNDdmMjAwMTJkMDAxMDA0NDA0MWRjZGIwODQxMDAzNjAyMDA0MWUwZGIwODQxMDAzYTAwMDAwYjIwMDE0MTIwNmEyNDAwMjAwNDA1MjAwMTEwYWQwMTIxMDAyMDAxMTBhZTAxMjEwMjIwMDExMGFmMDEyMTAzMjAwMTIwMDAzNjAyMWMyMDAxMjAwMzM2MDIxODIwMDEyMDAyMzYwMjE0MjAwNDIwMDE0MTE0NmExMDU5MjAwMTI4MDIwMDIxMDMyMDAxMjgwMjA0MjEwMDBjMDEwYjBiMGIzMzAyMDE3ZjAxN2UyMzAwNDExMDZiMjIwMTI0MDAyMDAxNDEwMDM2MDIwYzIwMDAyMDAxNDEwYzZhMjIwMDQxMDQxMGIzMDEyMDAwNDEwNDEwYjEwMTIwMDE0MTEwNmEyNDAwYTcwYjA5MDAyMDAwNDEyMDEwODcwMTBiMGMwMDIwMDAyMDAwMTBhZDAxMTA4NzAxMGIzYTAxMDE3ZjIzMDA0MTEwNmIyMjAzMjQwMDIwMDM0MTA4NmEyMDAxNDEwODIwMDIxMGQwMDEyMDAzMjgwMjBjMjEwMTIwMDAyMDAzMjgwMjA4MzYwMjAwMjAwMDIwMDEzNjAyMDQyMDAzNDExMDZhMjQwMDBiMzQwMTAxN2UwMjQwMjAwMTQ1MGQwMDAzNDAyMDAxNDUwZDAxMjAwMTQxMDE2YjIxMDEyMDAwMzEwMDAwMjAwMjQyMDg4Njg0MjEwMjIwMDA0MTAxNmEyMTAwMGMwMDBiMDAwYjIwMDIwYmZkMDEwMTA2N2YyMzAwNDEzMDZiMjIwMTI0MDAyMDAwMTBhNzAxMjEwMjEwNDMyMTA0MjAwMjEwMTIyMTAwMjAwMTQxMTg2YTQxMDAzYTAwMDAyMDAxNDExNDZhMjAwMDM2MDIwMDIwMDEyMDAyMzYwMjEwMjAwMTIwMDAzNjAyMGMyMDAxNDEwMDM2MDIwODAzN2YyMDAwMjAwMzQ2MDQ3ZjIwMDEyZDAwMTgwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAxNDEzMDZhMjQwMDIwMDQwNTIwMDE0MTA4NmEyMjAyMTBhZDAxMjEwMzIwMDIxMGFlMDEyMTA1MjAwMjEwYWYwMTIxMDY0MTAwMjEwMDIwMDE0MTAwM2EwMDJmMjAwMjIwMDE0MTJmNmE0MTAxMTBiMzAxMDI0MDAyNDAwMjQwMjAwMTJkMDAyZjBlMDIwMjAxMDAwYjQxZWQ4NjA4NDEwZDEwODgwMTAwMGI0MTAxMjEwMDBiMjAwMTIwMDAzYTAwMjgyMDAxMjAwNjM2MDIyNDIwMDEyMDA1MzYwMjIwMjAwMTIwMDMzNjAyMWMyMDA0MjAwMTQxMWM2YTEwNTUyMDAxMjgwMjA4MjEwMzIwMDEyODAyMGMyMTAwMGMwMTBiMGIwYjJkMDAyMDAwNDEwODZhMjAwMDI4MDIwMDIwMDEyMDAyMTA5ZTAxMDQ0MDQxYTM4NTA4NDEwZjEwODgwMTAwMGIyMDAwMjAwMDI4MDIwMDIwMDI2YTM2MDIwMDBiODcwMTAxMDE3ZjIzMDA0MTMwNmIyMjAyMjQwMDIwMDIyMDAxMzYwMjA4MjAwMjEwMzUyMDAyMjAwMjJkMDAwNDNhMDAxMDIwMDIyMDAyMjgwMjAwMzYwMjBjMjAwMjIwMDExMDEyMzYwMjFjMjAwMjQxMDAzNjAyMTgyMDAyMjAwMjQxMDg2YTM2MDIxNDAzNDAyMDAyNDEyMDZhMjAwMjQxMTQ2YTEwYjUwMTIwMDIyZDAwMmM0MTAyNDY0NTA0NDAyMDAyNDEyMDZhMjAwMjQxMGM2YTEwYjYwMTBjMDEwYjBiMjAwMDIwMDIyODAyMGMyMDAyMmQwMDEwMTBiNzAxMjAwMjQxMzA2YTI0MDAwYmM1MDMwMTA3N2YyMzAwNDFkMDAwNmIyMjAyMjQwMDAyNDAyMDAxMjgwMjA0MjIwNDQxMGQ2YTIyMDgyMDAxMjgwMjA4NGQwNDQwMjAwMTI4MDIwMDIwMDI0MjAwMzcwMDM1MjAwMjQyMDAzNzAzMzAyODAyMDAyMDA0MjAwMjQxMzA2YTIyMDM0MTBkMTA2ZjFhMjAwMjQxMDAzNjAyNDAyMDAyNDEyODZhMjAwMzQxMDA0MTA0MTBiZjAxMjAwMjQxNDA2YjIyMDU0MTA0MjAwMjI4MDIyODIwMDIyODAyMmMxMDU3MjAwMjI4MDI0MDIxMDQyMDAyNDFjODAwNmE0MTAwM2EwMDAwMjAwMjQyMDAzNzAzNDAyMDAyNDEyMDZhMjAwMzQxMDQ0MTBkMTBiZjAxMjAwNTQxMDkyMDAyMjgwMjIwMjAwMjI4MDIyNDEwNTcyMDAyNDEwMDM2MDI0YzIwMDI0MTE4NmEyMDA1NDEwMDQxMDQxMGMwMDEyMDAyNDFjYzAwNmEyMjA3NDEwNDIwMDIyODAyMTgyMDAyMjgwMjFjMTA1NzIwMDIyODAyNGMyMTAzMjAwMjQxMDAzNjAyNGMyMDAyNDExMDZhMjAwNTQxMDQ0MTA4MTBjMDAxMjAwNzQxMDQyMDAyMjgwMjEwMjAwMjI4MDIxNDEwNTcyMDAyMjgwMjRjMjEwNjIwMDI0MTAwM2EwMDRjMjAwMjQxMDg2YTIwMDU0MTA4NDEwOTEwYzAwMTIwMDc0MTAxMjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMDIwMDIyZDAwNGM0MTAwNDczYTAwMGMyMDAwMjAwNjQxMTg3NDIwMDY0MTgwZmUwMzcxNDEwODc0NzIyMDA2NDEwODc2NDE4MGZlMDM3MTIwMDY0MTE4NzY3MjcyMzYwMjA4MjAwMDIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwNDIwMDAyMDA0NDExODc0MjAwNDQxODBmZTAzNzE0MTA4NzQ3MjIwMDQ0MTA4NzY0MTgwZmUwMzcxMjAwNDQxMTg3NjcyNzIzNjAyMDAyMDAxMjAwODM2MDIwNDBjMDEwYjIwMDA0MTAyM2EwMDBjMGIyMDAyNDFkMDAwNmEyNDAwMGI0ZDAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDAyODAyMDAyMDAxMTBiYzAxMjAwMTIwMDAyODAyMDQxMGJkMDEyMDAwNDEwODZhMjgwMjAwMjAwMTEwM2UyMDAyMjAwMDQxMGM2YTJkMDAwMDNhMDAwZjIwMDEyMDAyNDEwZjZhNDEwMTEwYTMwMTIwMDI0MTEwNmEyNDAwMGIwZDAwMjAwMDIwMDEyMDAyMTAzODEwMjExYTBiMGQwMDIwMDAyMDAxMjAwMjEwNGQxMDIxMWEwYjg3MDEwMTAxN2YyMzAwNDEzMDZiMjIwMjI0MDAyMDAyMjAwMTM2MDIwODIwMDIxMDM1MjAwMjIwMDIyZDAwMDQzYTAwMTAyMDAyMjAwMjI4MDIwMDM2MDIwYzIwMDIyMDAxMTAxMjM2MDIxYzIwMDI0MTAwMzYwMjE4MjAwMjIwMDI0MTA4NmEzNjAyMTQyMDAyNDEyNDZhMjEwMTAzNDAyMDAyNDEyMDZhMjAwMjQxMTQ2YTEwYmEwMTIwMDIyODAyMjAwNDQwMjAwMTIwMDI0MTBjNmExMGJiMDEwYzAxMGIwYjIwMDAyMDAyMjgwMjBjMjAwMjJkMDAxMDEwYjcwMTIwMDI0MTMwNmEyNDAwMGI4OTAzMDEwNjdmMjMwMDQxNDA2YTIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjAzNDEwYzZhMjIwNjIwMDEyODAyMDg0ZDA0N2YyMDAxMjgwMjAwMjAwMjQxMjg2YTQxMDAzNjAyMDAyMDAyNDIwMDM3MDMyMDI4MDIwMDIwMDMyMDAyNDEyMDZhMjIwMzQxMGMxMDZmMWEyMDAyNDEwMDM2MDIzMDIwMDI0MTE4NmEyMDAzNDEwMDQxMDQxMGMxMDEyMDAyNDEzMDZhMjIwNTQxMDQyMDAyMjgwMjE4MjAwMjI4MDIxYzEwNTcyMDAyMjgwMjMwMjEwNDIwMDI0MjAwMzcwMzMwMjAwMjQxMTA2YTIwMDM0MTA0NDEwYzEwYzEwMTIwMDU0MTA4MjAwMjI4MDIxMDIwMDIyODAyMTQxMDU3MjAwMjQxMDAzNjAyM2MyMDAyNDEwODZhMjAwNTQxMDA0MTA0MTBjMjAxMjAwMjQxM2M2YTIyMDc0MTA0MjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMjI4MDIzYzIxMDMyMDAyNDEwMDM2MDIzYzIwMDIyMDA1NDEwNDQxMDgxMGMyMDEyMDA3NDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDIyODAyM2MyMTA1MjAwMDQxMGM2YTIwMDQ0MTE4NzQyMDA0NDE4MGZlMDM3MTQxMDg3NDcyMjAwNDQxMDg3NjQxODBmZTAzNzEyMDA0NDExODc2NzI3MjM2MDIwMDIwMDAyMDAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIzNjAyMDQyMDAxMjAwNjM2MDIwNDIwMDA0MTA4NmEyMDA1NDExODc0MjAwNTQxODBmZTAzNzE0MTA4NzQ3MjIwMDU0MTA4NzY0MTgwZmUwMzcxMjAwNTQxMTg3NjcyNzIzNjAyMDA0MTAxMDU0MTAwMGIzNjAyMDAyMDAyNDE0MDZiMjQwMDBiMWYwMDIwMDAyODAyMDgyMDAxMTBiYzAxMjAwMTIwMDAyODAyMDAxMGJkMDEyMDAwMjgwMjA0MjAwMTEwM2UwYjQ2MDEwMTdmMjMwMDQxMTA2YjIyMDIyNDAwMjAwMjIwMDA0MTE4NzQyMDAwNDE4MGZlMDM3MTQxMDg3NDcyMjAwMDQxMDg3NjQxODBmZTAzNzEyMDAwNDExODc2NzI3MjM2MDIwYzIwMDEyMDAyNDEwYzZhNDEwNDEwYTMwMTIwMDI0MTEwNmEyNDAwMGI4MTAxMDEwMzdmMjMwMDQxMTA2YjIyMDIyNDAwMDI0MDAyNDAyMDAwMmQwMDA0MDQ0MDIwMDExMDEyMjIwNDQxOTBjZTAwNDFkY2RiMDgyODAyMDAyMjAzNmI0YjBkMDEyMDAyNDEwODZhMjAwMzIwMDMyMDA0NmEyMjAwMTBhNDAxMjAwMTQxMDAyMDAyMjgwMjA4MjAwMjI4MDIwYzEwNmYxYTQxZGNkYjA4MjAwMDM2MDIwMDBjMDIwYjIwMDAyODAyMDAyMDAxMTA4YjAxMGMwMTBiMjAwMDEwYTUwMTIwMDAyODAyMDAyMDAxMTA4YjAxMGIyMDAyNDExMDZhMjQwMDBiMzgwMjAxN2YwMTdlMjMwMDQxMTA2YjIyMDEyNDAwMjAwMTQyMDAzNzAzMDgyMDAwMjAwMTQxMDg2YTIyMDA0MTA4NDE4YTg1MDg0MTBiMTBjNTAxMjAwMDQxMDgxMGIxMDEyMDAxNDExMDZhMjQwMDBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTBkMTBmODAxMGIwZjAwMjAwMDIwMDEyMDAyMjAwMzQxMDkxMGY4MDEwYjBmMDAyMDAwMjAwMTIwMDIyMDAzNDEwYzEwZjgwMTBiMGYwMDIwMDAyMDAxMjAwMjIwMDM0MTA4MTBmODAxMGI4MDAyMDEwNTdmMjMwMDQxMjA2YjIyMDIyNDAwMjAwMDIwMDEyODAyMDQyMjAzNDEwODZhMjIwNTIwMDEyODAyMDg0ZDA0N2YyMDAxMjgwMjAwMjAwMjQyMDAzNzAzMTAyODAyMDAyMDAzMjAwMjQxMTA2YTIyMDM0MTA4MTA2ZjFhMjAwMjQxMDAzNjAyMWMyMDAyNDEwODZhMjAwMzQxMDA0MTA0MTBjMjAxMjAwMjQxMWM2YTIyMDY0MTA0MjAwMjI4MDIwODIwMDIyODAyMGMxMDU3MjAwMjI4MDIxYzIxMDQyMDAyNDEwMDM2MDIxYzIwMDIyMDAzNDEwNDQxMDgxMGMyMDEyMDA2NDEwNDIwMDIyODAyMDAyMDAyMjgwMjA0MTA1NzIwMDIyODAyMWMyMTAzMjAwMDIwMDQ0MTE4NzQyMDA0NDE4MGZlMDM3MTQxMDg3NDcyMjAwNDQxMDg3NjQxODBmZTAzNzEyMDA0NDExODc2NzI3MjM2MDIwNDIwMDEyMDA1MzYwMjA0MjAwMDQxMDg2YTIwMDM0MTE4NzQyMDAzNDE4MGZlMDM3MTQxMDg3NDcyMjAwMzQxMDg3NjQxODBmZTAzNzEyMDAzNDExODc2NzI3MjM2MDIwMDQxMDEwNTQxMDAwYjM2MDIwMDIwMDI0MTIwNmEyNDAwMGI4YTAxMDEwNDdmMjMwMDQxMTA2YjIyMDMyNDAwMjAwMTI4MDIwNDIyMDI0MTA0NmEyMjA0MjAwMTI4MDIwODRiMDQ3ZjQxMDAwNTIwMDEyODAyMDAyMDAzNDEwMDM2MDIwYzI4MDIwMDIwMDIyMDAzNDEwYzZhNDEwNDEwNmYxYTIwMDMyODAyMGMyMTAyMjAwMTIwMDQzNjAyMDQyMDAyNDExODc0MjAwMjQxODBmZTAzNzE0MTA4NzQ3MjIwMDI0MTA4NzY0MTgwZmUwMzcxMjAwMjQxMTg3NjcyNzIyMTAyNDEwMTBiMjEwMTIwMDAyMDAyMzYwMjA0MjAwMDIwMDEzNjAyMDAyMDAzNDExMDZhMjQwMDBiMzAwMDIwMDA0MTA4NmEyMDAwMjgwMjAwMjAwMTIwMDIxMDllMDEwNDQwMjAwMzIwMDQ0MWEzODUwODQxMGYxMDRjMDAwYjIwMDAyMDAwMjgwMjAwMjAwMjZhMzYwMjAwMGI3ODAxMDE3ZjIzMDA0MTEwNmIyMjAyMjQwMDIwMDIyMDAwNDIzODg2MjAwMDQyODBmZTAzODM0MjI4ODY4NDIwMDA0MjgwODBmYzA3ODM0MjE4ODYyMDAwNDI4MDgwODBmODBmODM0MjA4ODY4NDg0MjAwMDQyMDg4ODQyODA4MDgwZjgwZjgzMjAwMDQyMTg4ODQyODA4MGZjMDc4Mzg0MjAwMDQyMjg4ODQyODBmZTAzODMyMDAwNDIzODg4ODQ4NDg0MzcwMzA4MjAwMTIwMDI0MTA4NmE0MTA4MTBhMzAxMjAwMjQxMTA2YTI0MDAwYmQ2MDEwMTA2N2YyMzAwNDE0MDZhMjIwMDI0MDAxMGM4MDExMDVjMjEwMTIwMDAxMGM5MDExMDVjMzYwMjA4MjAwMDEwNDczNjAyMGMyMDAwNDEyODZhMjIwMjIwMDExMDMyNDFmNzgwMDg0MTEwMTAzMzIwMDAyODAyMmMyMjAxMjAwMDQxMDg2YTEwNjQyMDAxMjAwMDQxMGM2YTEwNjQyMDAwNDEyMDZhMjIwMTIwMDA0MTM4NmEyMjAzMjkwMzAwMzcwMzAwMjAwMDQxMTg2YTIyMDQyMDAwNDEzMDZhMjIwNTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzI4MzcwMzEwMjAwMDIwMDA0MTEwNmExMDdjMzYwMjA0MjAwMjEwYzkwMTEwNWMxMDMyNDFmNTgxMDg0MTE4MTAzMzIwMDAyODAyMmMyMDAwNDEwNDZhMTA3ODIwMDEyMDAzMjkwMzAwMzcwMzAwMjAwNDIwMDUyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDMyODM3MDMxMDIwMDA0MTEwNmExMDdjMjAwMDQxNDA2YjI0MDAwYjBhMDA0MTk1ODgwODQxMTIxMDRkMGIwYTAwNDE4MTg4MDg0MTE0MTA0ZDBiYTkwMzAyMDU3ZjAxN2UyMzAwNDE4MDAxNmIyMjAyMjQwMDEwY2IwMTEwYWIwMTIxMDMyMDAxMjgwMjBjMjEwNDIwMDEyOTAzMDAyMTA3MjAwMTI4MDIwODIxMDEwMjQwMjAwMzQxZmVmZmZmZmYwNzQ2MDQ0MDIwMDE0MWZlZmZmZmZmMDc0NjBkMDEyMDAxMTBhMTAxMjEwMTIwMDIyMDA0MzYwMjE0MjAwMjIwMDczNzAzMDgyMDAyMjAwMTM2MDIxMDEwY2MwMTEwNWMyMTAzMjAwNDEwMjkyMTA0MjAwMjQxZTAwMDZhMjIwMTIwMDMxMDMyNDFhMTgwMDg0MTBhMTAzMzIwMDI0MTQwNmIyMjAzMjAwMTIwMDI0MTA4NmExMDg0MDEyMDAxMjAwMzEwY2QwMTIwMDExMDM0NDIwMDIxMDc0MWZlZmZmZmZmMDcyMTAxMGIyMDAyNDFlMDAwNmEyMDAwMTAzMjQxYzA4MTA4NDExMjEwMzMyMDAyMjgwMjY0MWEyMDAyNDEyODZhMjIwMDIwMDI0MWYwMDA2YTIyMDUyOTAzMDAzNzAzMDAyMDAyNDEyMDZhMjIwMzIwMDI0MWU4MDA2YTIyMDYyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDM2MDM3MDMxODAyNDAyMDAxNDFmZWZmZmZmZjA3NDcwNDQwMjAwNTIwMDAyOTAzMDAzNzAzMDAyMDA2MjAwMzI5MDMwMDM3MDMwMDIwMDIyMDAyMjkwMzE4MzcwMzYwMjAwMjEwN2QzNjAyNzgyMDAxMTBhMTAxMjEwMDIwMDIyMDA0MzYwMjNjMjAwMjIwMDczNzAzMzAyMDAyMjAwMDM2MDIzODIwMDI0MTQwNmIyMDAyNDFlMDAwNmEyMDAyNDEzMDZhMTA4MzAxMGMwMTBiMjAwMjQxZDAwMDZhMjAwMDI5MDMwMDM3MDMwMDIwMDI0MWM4MDA2YTIwMDMyOTAzMDAzNzAzMDAyMDAyMjAwMjI5MDMxODM3MDM0MDIwMDIyMDA0MzYwMjU4MGIyMDAyNDFlMDAwNmEyMDAyNDE0MDZiMTA3NjIwMDI0MTgwMDE2YTI0MDAwZjBiNDFjYTg4MDg0MTFmMTA0MTAwMGIwYTAwNDFlODhjMDg0MTIyMTA0ZDBiMGEwMDQxZmE4NjA4NDExZDEwNGQwYmZmMDIwMjAzN2YwMjdlMjMwMDQxZDAwMDZiMjIwMjI0MDAyMDAyNDEzMDZhMjIwNDIwMDE0MTEwNmEyOTAzMDAzNzAzMDAyMDAyNDEyODZhMjIwMzIwMDE0MTA4NmEyOTAzMDAzNzAzMDAyMDAyMjAwMTI5MDMwMDM3MDMyMDIwMDIxMDdkMzYwMjM4MDI0MDAyNDAwMjQwMDI0MDIwMDEyODAyMTgyMjAxMTA2NTBlMDIwMTAyMDAwYjEwNDcyMTAzMjAwMjQxMDg2YTIwMDIyODAyMjAyMDAyMjgwMjI0MjAwNDIwMDExMDYyMjAwMjI5MDMwODIxMDUyMDAyMjkwMzI4MjEwNjIwMDAxMDdkMzYwMjE4MjAwMDIwMDMzNjAyMTAyMDAwMjAwNjM3MDMwODIwMDAyMDA1MzcwMzAwMGMwMjBiMjAwMDIwMDIyOTAzMjAzNzAzMDAyMDAwNDExODZhMjAwMjQxMzg2YTI5MDMwMDM3MDMwMDIwMDA0MTEwNmEyMDA0MjkwMzAwMzcwMzAwMjAwMDQxMDg2YTIwMDMyOTAzMDAzNzAzMDAwYzAxMGIyMDAyNDE0MDZiMjAwMTEwOTcwMTAyN2YyMDAyMjkwMzQwNTAwNDQwMjAwMjI4MDIzMDIxMDEyMDAyNDExMDZhMjAwMjI4MDIyMDIwMDIyODAyMjQyMDAyMjgwMjQ4MjAwMjI4MDI0YzEwNmQyMDAyMjgwMjEwMjEwMzIwMDIyODAyMTQwYzAxMGIxMDQ3MjEwMTIwMDI0MTE4NmEyMDAyMjgwMjIwMjAwMjI4MDIyNDIwMDIyODAyMzAyMDAyNDE0MDZiMTA2YzIwMDIyODAyMTgyMTAzMjAwMjI4MDIxYzBiMjEwNDIwMDIyOTAzMjgyMTA1MjAwMDEwN2QzNjAyMTgyMDAwMjAwMTM2MDIxMDIwMDAyMDA1MzcwMzA4MjAwMDIwMDQzNjAyMDQyMDAwMjAwMzM2MDIwMDBiMjAwMjQxZDAwMDZhMjQwMDBiMGQwMDIwMDAxMDYxNDFmZjAxNzE0MTAxNGIwYjE3MDAyMDAwMjgwMjAwMjAwMTI4MDIwMDEwODkwMTQxZmYwMTcxNDFmZjAxNDYwYjNiMDEwMTdmMjMwMDQxMTA2YjIyMDQyNDAwMjAwNDQxMDg2YTQxMDAyMDAzMjAwMTIwMDIxMDJiMjAwNDI4MDIwYzIxMDEyMDAwMjAwNDI4MDIwODM2MDIwMDIwMDAyMDAxMzYwMjA0MjAwNDQxMTA2YTI0MDAwYjBhMDA0MWJkODgwODQxMGQxMDRkMGIwYTAwNDFmMjg3MDg0MTBmMTA0ZDBiMGEwMDQxZGQ4NzA4NDExNTEwNGQwYjBhMDA0MWE3ODgwODQxMTYxMDRkMGIxOTAxMDE3ZjQxOTc4NzA4NDExNjEwNGQyMTAxMjAwMDI4MDIwMDIwMDExMDQwMjAwMTBiMTkwMTAxN2Y0MWFkODcwODQxMTgxMDRkMjEwMTIwMDAyODAyMDAyMDAxMTA0MDIwMDEwYjBhMDA0MWM1ODcwODQxMTgxMDRkMGIwYTAwNDE4ZjhjMDg0MTFkMTA0ZDBiMGEwMDQxYWM4YzA4NDExZDEwNGQwYjBhMDA0MWM5OGMwODQxMWYxMDRkMGJhNzA1MDIwZDdmMDI3ZTIzMDA0MTQwNmEyMjAwMjQwMDEwMjI0MTBhMTA1YTQxMDA0MWJkODgwODQxMGQxMDUwMjEwOTQxMDExMDRiMjEwMjQxMDI0MTk1ODgwODQxMTIxMDUwMjEwYTQxMDM0MTgxODgwODQxMTQxMDUwMjEwNTQxMDQ0MWYyODcwODQxMGYxMDUwMjEwNjQxMDUxMDExMjEwZDQxMDYxMDExMjEwZTQxMDcxMDU4MjEwNzQxMDgxMDUxMjEwODQxMDk0MWZhODYwODQxMWQxMDUwMjEwNDIwMDAyMDA4MzYwMjEwMjAwMDIwMDczNjAyMGMyMDA1MTAyZjEwMzIyMTAxNDFlNjgxMDg0MTBmMTA0ZDIxMDMxMDQzMjEwYjEwN2QyMTBjMTAxNjIwMDEyMDBjMjAwMzIwMGIxMDQ1MjEwMTEwMTcyMDAxMTAxMjIxMDMyMDAwNDEwMDM2MDIzMDIwMDAyMDAxMzYwMjI4MjAwMDIwMDM0MTAyNzYzNjAyMmMyMDAwNDEyODZhMjIwMzEwNzUxMDJmMTBhMjAxMjEwMTIwMDMyMDA0MTAyZjEwMmYxMDMyNDFhYjgwMDg0MTE1MTAzMzIwMDMxMDgwMDEyMTAzMDI0MDAyNDAyMDAxNDFmZWZmZmZmZjA3NDcwNDQwMjAwMTEwMmYxMGExMDEyMDAyMTAzMDBkMDE0MWU5ODgwODQxZDEwMDEwNDEwMDBiMjAwMjIwMDMxMDMwNDUwZDAxMGIxMGNjMDEyMDA0MTBhODAxMTBkOTAxMjAwMzEwYTgwMTAyNDAxMGNiMDEyMjA0MTBhNjAxMGQwMDIwMDE0MWZlZmZmZmZmMDc0NzA0NDAyMDA0MjAwMTEwMjExYTBjMDEwYjIwMDQ0MWVkODUwODQxMDQxMGI4MDEwYjEwZDEwMTIwMDkxMGE4MDExMGQ0MDEyMDAyMTBhODAxMTBjODAxMjAwYTEwYTgwMTEwYzkwMTIwMDUxMDJmMTBhODAxMTBkODAxMjAwMDQxMjg2YTIyMDEyMDA1MTAzMjQxYjY4MTA4NDEwYTEwMzMyMDAxMTA4MDAxMTBhODAxMTBkMjAxMjAwNjEwMmYxMGE4MDExMGRhMDEyMDAxMjAwNjEwMzI0MTg2ODMwODQxMGYxMDMzMjAwMTEwODAwMTEwYTgwMTIwMDAyMDA3MTAxMjM2MDIxYzIwMDA0MTAwMzYwMjE4MjAwMDIwMDA0MTBjNmEzNjAyMTQwMzQwMDI0MDIwMDA0MTI4NmEyMDAwNDExNDZhMTBjMzAxMjAwMDI4MDIyODQ1MDQ0MDIwMDAyMDA4MTAxMjM2MDIxYzIwMDA0MTAwMzYwMjE4MjAwMDIwMDA0MTEwNmEzNjAyMTQwMzQwMjAwMDQxMjg2YTIwMDA0MTE0NmExMGMzMDEyMDAwMjgwMjI4NDUwZDAyMjAwMDIwMDAyODAyMzAyMjAxMzYwMjI0MjAwMDIwMDAyODAyMmMzNjAyMjAyMDAwNDEyMDZhMTBkNTAxMjIwMjEwYTYwMTBkMDAyMDAyMjAwMTEwYjQwMTBjMDAwYjAwMGIyMDAwMjAwMDI4MDIzMDIyMDEzNjAyMjQyMDAwMjAwMDI4MDIyYzM2MDIyMDIwMDA0MTIwNmExMGQ2MDEyMjAyMTBhNjAxMGQwMTIwMDIyMDAxMTBiOTAxMGMwMTBiMGIxMGQzMDEyMDBkMTBhOTAxMTBkNzAxMjAwZTEwYTkwMTIwMDA0MTQwNmIyNDAwMGYwYjQxYmE4OTA4NDFjODAwMTA0MTAwMGIwODAwMTAyMjQxMDAxMDVhMGJjNzAxMDEwNTdmMjMwMDQxMzA2YjIyMDAyNDAwNDEwMDEwNWEwMjQwMDI0MDEwNDYxMGQxMDExMDVjMTAzMDA0NDAxMDQ2MTBkMTAxMTA1YzEwMzA0NTBkMDEyMDAwMTA0YTIyMDEzNjAyMDgxMGQ0MDExMGE3MDEyMTAyMTBjOTAxMTA1YzIxMDMyMDAwMjAwMTEwMTIzNjAyMTQyMDAwNDEwMDM2MDIxMDIwMDAyMDAwNDEwODZhMzYwMjBjMjAwMDQxMjA2YTIxMDEwMzQwMDI0MDIwMDA0MTE4NmEyMDAwNDEwYzZhMTA2NzIwMDAyOTAzMTg1MDBkMDAyMDAwMjgwMjJjMjAwMDI4MDIyODIwMDIxMDMwNDUwZDA0MTBjZTAxNDUwZDA0MjAwMzEwMmYyMDAxMTBjYTAxMGMwMTBiMGIyMDAwNDEzMDZhMjQwMDBmMGI0MTgyOGEwODQxMTYxMDQxMDAwYjQxODI4YTA4NDExNjEwNDEwMDBiNDE5ODhhMDg0MTBkMTA0MTAwMGJjNzA3MDIwOTdmMDE3ZTIzMDA0MTgwMDE2YjIyMDAyNDAwMTAyMjQxMDExMDVhMjAwMDEwNGYzNjAyMmMxMGQxMDExMDVjMjEwMTAyNDAwMjQwMDI0MDEwNDYyMjA3MjAwMTEwMzAwNDQwMjAwMDEwYzkwMTEwNWMyMjAxMzYwMjM0MjAwMDQxZTAwMDZhMjIwMjIwMDExMDJmMTAzMjQxOGQ4MjA4NDExODEwMzMyMDAwMjgwMjY0MjAwMDQxMmM2YTEwNzgyMDAwNDFkODAwNmEyMjAxMjAwMDQxZjAwMDZhMjIwNjI5MDMwMDM3MDMwMDIwMDA0MWQwMDA2YTIyMDMyMDAwNDFlODAwNmEyMjA0MjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNjAzNzAzNDgyMDAwNDFjODAwNmEyMjA1MTA3YzIxMDgyMDAyMTBjODAxMTA1YzEwMzI0MWUxODAwODQxMGExMDMzMjAwMDI4MDI2NDIyMDIyMDAwNDEzNDZhMTA2NDIwMDI0MTAwMjAwODEwNzkyMDAxMjAwNjI5MDMwMDM3MDMwMDIwMDMyMDA0MjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNjAzNzAzNDgyMDAwNDEzODZhMjAwNTEwN2UyMDAwMjgwMjQ0MTBjZTAxNDUwZDAxMjAwMDI4MDIzNDEwMzIyMTAxNDFhNTgyMDg0MTA2MTA0ZDIxMDQxMDQzMjIwMzQxMDEyMDAwMTA3OTEwNDMyMjAyMjAwMDQxMzg2YTEwNDQyMDAwMjAwMTM2MDI3MDIwMDA0MjdmMzcwMzY4MjAwMDIwMDMzNjAyNjQyMDAwMjAwNDM2MDI2MDIwMDAxMDdkMjIwNTM2MDI3ODAyNDAwMjQwMDI0MDAyNDAyMDAyMTA2NTBlMDIwMjAwMDEwYjIwMDA0MWM4MDA2YTIwMDIxMDk3MDEwMjdmMjAwMDI5MDM0ODUwMDQ0MDIwMDA0MTE4NmEyMDA0MjAwMzIwMDAyODAyNTAyMDAwMjgwMjU0MTA2ZDIwMDAyODAyMTgyMTA0MjAwMDI4MDIxYzBjMDEwYjEwNDcyMDAwNDEyMDZhMjAwNDIwMDMyMDAxMjAwMDQxYzgwMDZhMTA2YzIwMDAyODAyMjAyMTA0MjEwMTIwMDAyODAyMjQwYjIxMDMxMDdkMjEwNTBjMDEwYjEwNDcyMTAxMjAwMDQxMTA2YTIwMDQyMDAzMjAwNjIwMDIxMDYyMjAwMDI5MDM2ODIxMDkyMDAwMjgwMjE0MjEwMzIwMDAyODAyMTAyMTA0MTA3ZDIxMDUyMDA5NDI3ZjUyMGQwMTBiMTAxNjIxMDkwYjIwMDkyMDAxMjAwNTIwMDQyMDAzMTA0NTIxMDExMDE3MjAwMTEwMTIyMTAyMjAwMDQxMDAzNjAyNTAyMDAwMjAwMTM2MDI0ODIwMDAyMDAyNDEwMjc2MzYwMjRjMjAwMDQxYzgwMDZhMTA3NTIyMDIxMDEyMjEwMTIwMDA0MWYwMDA2YTQxMDAzYTAwMDAyMDAwNDFlYzAwNmEyMDAxMzYwMjAwMjAwMDIwMDIzNjAyNjgyMDAwMjAwMTM2MDI2NDIwMDA0MTAwMzYwMjYwMjAwMDQxZTAwMDZhMjIwMTQxOGE4NTA4NDEwYjEwM2ExMGEyMDEyMTAyMjAwMTEwYmUwMTIxMDkyMDAxMTAzOTIxMDEyMDAwMjgwMjY0MjAwMDI4MDI2MDQ3MGQwMjIwMDAyZDAwNzAwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIwMjQwMjAwMjQxZmVmZmZmZmYwNzQ3MDQ0MDIwMDIxMGExMDEyMTAzMGMwMTBiMTBkOTAxMTBhNzAxMjEwMzEwY2MwMTEwNWMyMDAxMTAyOTEwMzE0MjAwMjEwOTBiMjAwMTEwY2UwMTQ1MGQwMzIwMDcyMDAzMjAwOTIwMDExMDQyMjAwMDIwMDEzNjAyNmMyMDAwMjAwMzM2MDI2ODIwMDAyMDA5MzcwMzYwMjAwMDIwMDA0MWUwMDA2YTEwOTUwMTIyMDEzNjAyMzAyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDNjMjAwMDIwMDAyODAyMDgzNjAyMzgyMDAwMjAwMTEwMTIzNjAyNTAyMDAwNDEwMDM2MDI0YzIwMDAyMDAwNDEzMDZhMzYwMjQ4MDM0MDIwMDA0MWUwMDA2YTIwMDA0MWM4MDA2YTEwNjcyMDAwMjkwMzYwNTA0NTA0NDAyMDAwMjgwMjc0MjAwMDI4MDI3MDIwMDA0MTM4NmEyMjAxMTAzZTIwMDAyOTAzNjgyMDAxMTBjNjAxMjAwMTEwM2MwYzAxMGIwYjIwMDAyODAyMzgyMDAwMmQwMDNjMTAzNzIwMDA0MTgwMDE2YTI0MDAwZjBiNDE4MjhhMDg0MTE2MTA0MTAwMGI0MWU3OGEwODQxMWYxMDQxMDAwYjQxOGE4NTA4NDEwYjQxOTU4NTA4NDEwZTEwNGMwMDBiNDE4NjhiMDg0MTFhMTA0MTAwMGJmMzFkMDIxNjdmMDI3ZTIzMDA0MWEwMDI2YjIyMDAyNDAwMTAyMjQxMDAxMDVhMTBjODAxMTA1YzIxMDEyMDAwMTBjOTAxMTA1YzIyMTQxMDJmMTA5NjAxMzYwMmYwMDEyMDAwMTA0MzM2MDJhMDAxMjAwMDQxODAwMjZhMjIwOTIwMDExMDMyNDFlYjgwMDg0MTBjMTAzMzIwMDAyODAyODQwMjIyMDE0MTAwMTA4MTAxMjAwMTQxMDExMDgxMDEyMDAxNDEwMDEwODEwMTIwMDEyMDAwNDFmMDAxNmEyMjExMTA3YjIwMDEyMDAwNDFhMDAxNmEyMjA3MTA3YjIwMDA0MWUwMDE2YTIyMDUyMDAwNDE5MDAyNmEyMjA0MjkwMzAwMzcwMzAwMjAwMDQxZDgwMTZhMjIwMjIwMDA0MTg4MDI2YTIyMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEyMDAwNDFkMDAxNmEyMjA2MTA3ZjEwZDIwMTEwNWMyMTAxMjAwMDIwMTQxMDJmMTA5NjAxMzYwMmYwMDEyMDAwMTA0MzM2MDJhMDAxMjAwOTIwMDExMDMyNDFlYjgwMDg0MTBjMTAzMzIwMDAyODAyODQwMjIyMDE0MTAwMTA4MTAxMjAwMTIwMTExMDdiMjAwMTIwMDcxMDdiMjAwMTQxMDEyMDAwMTA3OTIwMDUyMDA0MjkwMzAwMzcwMzAwMjAwMjIwMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEyMDA2MTA3ZjEwMmEyMjAzMTAyYTIyMDYxMDIzMjAwNjEwY2UwMTA0NDAxMGNjMDExMDVjMjAwNjEwMjkxMDMxMTBkOTAxMTBhNzAxMjEwMTIwMDAyMDA2MzYwMjhjMDIyMDAwNDIwMDM3MDM4MDAyMjAwMDIwMDEzNjAyODgwMjIwMDMyMDAwNDE4MDAyNmExMDQ0MGIyMDAwMjAwMzM2MDI5MDAxMDI0MDAyNDAwMjQwMjAwMzEwNjUwNDQwMTBkNDAxMTBhNzAxMjEwZTEwN2QyMTBkMjAwMDIwMDAyODAyOTAwMTEwMTIzNjAyOWMwMTIwMDA0MTAwMzYwMjk4MDEyMDAwMjAwMDQxOTAwMTZhMzYwMjk0MDEyMDAwNDE5MDAyNmEyMTBhMjAwMDQxYzAwMTZhMjEwZjIwMDA0MWE4MDE2YTIxMTUwMzQwMjAwMDQxYTAwMTZhMjAwMDQxOTQwMTZhMTA2NzIwMDAyOTAzYTAwMTUwMDQ0MDQyODA4MDkwYmJiYWQ2YWRmMDBkMTAyZTIxMDEyMDBkMTBkMzAxMTA1ZjEwMmUxMDkyMDEyMDAxMTA4ZDAxMjIwNTIwMGQxMGQ3MDExMDVmMTAyZTEwOTIwMTIwMDExMDhkMDEyMjA2MTA5MTAxMjAwZDEwODkwMTQxZmYwMTcxNDEwMjQ5MGQwNTIwMGQyMDA1MTA5MzAxMjAwNjEwOTAwMTIxMDIyMDBlMTAyZjIxMDEyMDAwMjAwMjEwMjkzNjAyOGMwMjIwMDA0MjAwMzcwMzgwMDIyMDAwMjAwMTM2MDI4ODAyMjAxNDIwMDA0MTgwMDI2YTEwY2EwMTIwMGUxMDJmMjEwMTIwMDUxMGNlMDEwNDQwMTA0NjIwMDE0MjAwMjAwNTEwNDIwYjIwMDYxMGNlMDEwNDQwMTA0ODIwMGU0MjAwMjAwNjEwNDIwYjEwNDMyMTA0MTA0MzEwMmYyMTA2MjAwMTQxZmVmZmZmZmYwNzQ2MGQwMzIwMDEyMDA2MTA0MDBjMDQwYjIwMGYyMDE1NDEwODZhMjkwMzAwMzcwMzAwMjAwMDIwMTUyOTAzMDAzNzAzYjgwMTIwMGYxMGQ2MDExMGFjMDEyMTEyMjAwZjEwZDUwMTEwYjIwMTIxMTMyMDBmMjgwMjAwMjEwYzIwMDAyODAyYzQwMTIxMDQyMDAwMjkwM2I4MDEyMTE2MjAxMjEwMTIyMTAxMjAxMzEwMTI0MTBkNmUyMDAxNDEwYzZlNmEyMTExNDEwMDIxMDEwMzQwMDI0MDAyNDAyMDAxMjAxMTQ3MDQ0MDIwMDE0MTAxNmEyMTA2NDEwMDIxMDIyMDEyMTAxMjIxMDUwMjQwMDI0MDAzNDAyMDAyNDEwYzZhMjIwMzIwMDU0YjBkMDEyMDAwNDE4ODAyNmEyMjA5NDEwMDM2MDIwMDIwMDA0MjAwMzcwMzgwMDIyMDEyMjAwMjIwMDA0MTgwMDI2YTIyMDI0MTBjMTA4YTAxMWEyMDAwNDEwMDM2MDJkMDAxMjAwMDQxODgwMTZhMjAwMjQxMDA0MTA0MTBjMTAxMjAwMDQxZDAwMTZhMjIwNzQxMDQyMDAwMjgwMjg4MDEyMDAwMjgwMjhjMDExMDU3MjAwMDI4MDJkMDAxMjEwODIwMDA0MjAwMzcwM2QwMDEyMDAwNDE4MDAxNmEyMDAyNDEwNDQxMGMxMGMxMDEyMDA3NDEwODIwMDAyODAyODAwMTIwMDAyODAyODQwMTEwNTcyMDAwNDEwMDM2MDJmMDAxMjAwMDQxZjgwMDZhMjAwNzQxMDA0MTA0MTBjMjAxMjAwMDQxZjAwMTZhMjIwMjQxMDQyMDAwMjgwMjc4MjAwMDI4MDI3YzEwNTcyMDAwMjgwMmYwMDEyMTBiMjAwMDQxMDAzNjAyZjAwMTIwMDA0MWYwMDA2YTIwMDc0MTA0NDEwODEwYzIwMTIwMDI0MTA0MjAwMDI4MDI3MDIwMDAyODAyNzQxMDU3MjAwMzIxMDIyMDA4NDExODc0MjAwODQxODBmZTAzNzE0MTA4NzQ3MjIwMDg0MTA4NzY0MTgwZmUwMzcxMjAwODQxMTg3NjcyNzIyMDAxNDcwZDAwMGIyMDAwMjgwMmYwMDEyMTAzMjAwYjQxMTg3NDIwMGI0MTgwZmUwMzcxNDEwODc0NzIyMDBiNDEwODc2NDE4MGZlMDM3MTIwMGI0MTE4NzY3MjcyMTAyZjIxMDEyMDAzNDExODc0MjAwMzQxODBmZTAzNzE0MTA4NzQ3MjIwMDM0MTA4NzY0MTgwZmUwMzcxMjAwMzQxMTg3NjcyNzIyMjA3MTAyZjIxMDU0MTAxMTAyZDIwMDA0MTgwMDI2YTIyMDMyMDAxMTAzMjQxZDk4NjA4NDExNDEwMzMyMDAwMjgwMjg0MDIyMjAxMjAwNTEwNmUyMDAxMTA3MDIwMDA0MWUwMDE2YTIyMDIyMDBhMjkwMzAwMzcwMzAwMjAwMDQxZDgwMTZhMjIwMTIwMDkyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDExMDQzMjEwNTIwMDAyMDA0MzYwMjhjMDIyMDAwMjAwYzM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDUyMDAzMTA0NDIwMGEyMDAyMjkwMzAwMzcwMzAwMjAwOTIwMDEyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDNkMDAxMzcwMzgwMDIyMDAwMTA3ZDM2MDI5ODAyMDI0MDAyNDAwMjQwMDI0MDIwMDUxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDEyMDAwNDFlODAwNmEyMDAwMjgwMjgwMDIyMDAwMjgwMjg0MDIyMDBhMjAwNTEwNjIyMDAwMjkwMzY4MjExNzIwMDAyOTAzODgwMjIxMTYyMDAwMTA3ZDM2MDJlODAxMjAwMDIwMDEzNjAyZTAwMTIwMDAyMDE2MzcwM2Q4MDEyMDAwMjAxNzM3MDNkMDAxMGMwMjBiMjAwMDQxZTgwMTZhMjAwMDQxOTgwMjZhMjkwMzAwMzcwMzAwMjAwMjIwMGEyOTAzMDAzNzAzMDAyMDAxMjAwOTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzgwMDIzNzAzZDAwMTBjMDEwYjIwMDA0MWYwMDE2YTIyMDEyMDA1MTA5NzAxMjAwMDQxZDAwMTZhMjAwMDQxODAwMjZhMjAwMTEwODMwMTBiMjAwMDQxODAwMjZhMjAwMDQxZDAwMTZhMTA3NjIwMDAyODAyODgwMjIyMGMyMDA3MTAzMDQ1MGQwMTIwMDAyODAyOGMwMjIxMDQyMDAwMjkwMzgwMDIyMTE2MjAwNjIxMDEwYzA1MGI0MTAwMjEwMjIwMTMxMDEyMjEwNTAzNDAyMDAyNDEwZDZhMjIwMzIwMDU0YjBkMDMyMDAwNDIwMDM3MDA4NTAyMjAwMDQyMDAzNzAzODAwMjIwMTMyMDAyMjAwMDQxODAwMjZhMjIwMjQxMGQxMDhhMDExYTIwMDA0MTAwMzYwMmQwMDEyMDAwNDFlMDAwNmEyMDAyNDEwMDQxMDQxMGJmMDEyMDAwNDFkMDAxNmEyMjA4NDEwNDIwMDAyODAyNjAyMDAwMjgwMjY0MTA1NzIwMDAyODAyZDAwMTIxMDkyMDAwNDFkODAxNmEyMjBiNDEwMDNhMDAwMDIwMDA0MjAwMzcwM2QwMDEyMDAwNDFkODAwNmEyMDAyNDEwNDQxMGQxMGJmMDEyMDA4NDEwOTIwMDAyODAyNTgyMDAwMjgwMjVjMTA1NzIwMDA0MTAwMzYwMmYwMDEyMDAwNDFkMDAwNmEyMDA4NDEwMDQxMDQxMGMwMDEyMDAwNDFmMDAxNmEyMjAyNDEwNDIwMDAyODAyNTAyMDAwMjgwMjU0MTA1NzIwMDAyODAyZjAwMTIxMTAyMDAwNDEwMDM2MDJmMDAxMjAwMDQxYzgwMDZhMjAwODQxMDQ0MTA4MTBjMDAxMjAwMjQxMDQyMDAwMjgwMjQ4MjAwMDI4MDI0YzEwNTcyMDAwMjgwMmYwMDEyMTA3MjAwMDQxMDAzYTAwZjAwMTIwMDA0MTQwNmIyMDA4NDEwODQxMDkxMGMwMDEyMDAyNDEwMTIwMDAyODAyNDAyMDAwMjgwMjQ0MTA1NzIwMDMyMTAyMjAwOTQxMTg3NDIwMDk0MTgwZmUwMzcxNDEwODc0NzIyMDA5NDEwODc2NDE4MGZlMDM3MTIwMDk0MTE4NzY3MjcyMjAwMTQ3MGQwMDBiMjAwMDJkMDBmMDAxMjAwNzQxMTg3NDIwMDc0MTgwZmUwMzcxNDEwODc0NzIyMDA3NDEwODc2NDE4MGZlMDM3MTIwMDc0MTE4NzY3MjcyMjEwODIwMGMxMDJmMjEwOTIwMDQxMDI5MjEwNzIwMTA0MTE4NzQyMDEwNDE4MGZlMDM3MTQxMDg3NDcyMjAxMDQxMDg3NjQxODBmZTAzNzEyMDEwNDExODc2NzI3MjEwMmYyMTA1NDUwNDQwNDEwMTEwMmQyMDAwNDE4MDAyNmEyMjAxMjAwNTEwMzI0MWE4ODYwODQxMDgxMDMzMjAwMDI4MDI4NDAyMTA3MDIwMDA0MWUwMDE2YTIyMDIyMDBhMjkwMzAwMzcwMzAwMjAwYjIwMDA0MTg4MDI2YTIyMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDExMDQzMjEwNDIwMDAyMDA3MzYwMjhjMDIyMDAwMjAwOTM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDQyMDAxMTA0NDIwMGEyMDAyMjkwMzAwMzcwMzAwMjAwMzIwMGIyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDNkMDAxMzcwMzgwMDIyMDAwMTA3ZDM2MDI5ODAyMDI0MDAyNDAwMjQwMDI0MDIwMDQxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDEyMDAwNDExMDZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwYTIwMDQxMDYyMjAwMDI5MDMxMDIxMTcyMDAwMjkwMzg4MDIyMTE2MjAwMDEwN2QzNjAyZTgwMTIwMDAyMDAxMzYwMmUwMDEyMDAwMjAxNjM3MDNkODAxMjAwMDIwMTczNzAzZDAwMTBjMDIwYjIwMDA0MWU4MDE2YTIwMDA0MTk4MDI2YTI5MDMwMDM3MDMwMDIwMDIyMDBhMjkwMzAwMzcwMzAwMjAwYjIwMDMyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDM4MDAyMzcwM2QwMDEwYzAxMGIyMDAwNDFmMDAxNmEyMDA0MTA5NzAxMDI3ZjIwMDAyOTAzZjAwMTUwMDQ0MDIwMDAyODAyOTAwMjIxMDMyMDAwNDExODZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwMDI4MDJmODAxMjAwMDI4MDJmYzAxMTA2ZDIwMDAyODAyMWMyMTAyMjAwMDI4MDIxODBjMDEwYjEwNDcyMTAzMjAwMDQxMjA2YTIwMDAyODAyODAwMjIwMDAyODAyODQwMjIwMDAyODAyOTAwMjIwMDA0MWYwMDE2YTEwNmMyMDAwMjgwMjI0MjEwMjIwMDAyODAyMjAwYjIxMDEyMDAwMjkwMzg4MDIyMTE2MjAwMDEwN2QzNjAyZTgwMTIwMDAyMDAzMzYwMmUwMDEyMDAwMjAxNjM3MDNkODAxMjAwMDIwMDIzNjAyZDQwMTIwMDAyMDAxMzYwMmQwMDEwYjIwMDA0MWQwMDE2YTEwNzIyMTAzMjAwODEwMmYyMTAxMjAwMDIwMDMzNjAyOGMwMjIwMDA0MjAwMzcwMzgwMDIyMDAwMjAwMTM2MDI4ODAyMjAwMDQxODAwMjZhMTA5NTAxMjEwMTBjMDQwYjIwMDgxMDJmMjEwNDQxMDExMDJkMjAwNTEwMzIyMTAzNDFhODg2MDg0MTA4MTA0ZDIxMDExMDQzMjIwNTIwMDQxMDZlMjAwNTEwNzAxMDQzMjEwNDIwMDAyMDA3MzYwMjhjMDIyMDAwMjAwOTM2MDI4ODAyMjAwMDIwMTYzNzAzODAwMjIwMDQyMDAwNDE4MDAyNmExMDQ0MjAwMDIwMDMzNjAyOTAwMjIwMDA0MjdmMzcwMzg4MDIyMDAwMjAwNTM2MDI4NDAyMjAwMDIwMDEzNjAyODAwMjIwMDAxMDdkMzYwMjk4MDIwMjdmMDI3ZTAyNDAwMjQwMDI0MDIwMDQxMDY1MGUwMjAxMDIwMDBiMTA0NzIxMDIyMDAwNDEyODZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwYTIwMDQxMDYyMjAwMDI4MDIyYzIxMDMyMDAwMjgwMjI4MjEwMTIwMDAyOTAzODgwMjBjMDIwYjIwMDAyODAyOTAwMjIxMDIyMDAwMjkwMzg4MDIyMTE2MjAwMDI4MDI4NDAyMjEwMzIwMDAyODAyODAwMjIxMDEyMDAwMjgwMjk4MDIwYzAyMGIyMDAwNDFkMDAxNmEyMDA0MTA5NzAxMDI3ZjIwMDAyOTAzZDAwMTUwMDQ0MDIwMDAyODAyOTAwMjIxMDIyMDAwNDEzMDZhMjAwMDI4MDI4MDAyMjAwMDI4MDI4NDAyMjAwMDI4MDJkODAxMjAwMDI4MDJkYzAxMTA2ZDIwMDAyODAyMzQyMTAzMjAwMDI4MDIzMDBjMDEwYjEwNDcyMTAyMjAwMDQxMzg2YTIwMDAyODAyODAwMjIwMDAyODAyODQwMjIwMDAyODAyOTAwMjIwMDA0MWQwMDE2YTEwNmMyMDAwMjgwMjNjMjEwMzIwMDAyODAyMzgwYjIxMDEyMDAwMjkwMzg4MDIwYjIxMTYxMDdkMGIyMTA0MjAxNjQyN2Y1MTA0N2UxMDE2MDUyMDE2MGIyMDAyMjAwNDIwMDEyMDAzMTA0NTIxMDMxMDE3NDEwMDIxMDIyMDAzMTAxMjIxMDEyMDAwNDEwMDM2MDJmODAxMjAwMDIwMDMzNjAyZjAwMTIwMDAyMDAxNDEwMjc2MzYwMmY0MDEyMDAwNDFmMDAxNmExMDc1MTAyZjIxMDQxMDQzMjEwMTIwMDQxMDEyMjEwMzIwMDA0MTAwM2EwMDkwMDIyMDAwMjAwMzM2MDI4YzAyMjAwMDIwMDQzNjAyODgwMjIwMDAyMDAzMzYwMjg0MDIyMDAwNDEwMDM2MDI4MDAyMDM0MDIwMDIyMDAzNDYwNDQwMjAwMDJkMDA5MDAyNDUwZDA1NDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGMwNTA1MjAwMDQxZDAwMTZhMjIwMzIwMDA0MTgwMDI2YTEwNzcyMDAxMjAwMzEwNDQyMDAwMjgwMjgwMDIyMTAyMjAwMDI4MDI4NDAyMjEwMzBjMDEwYjAwMGIwMDBiNDFjMDg2MDg0MTE5MTA0MTAwMGIyMDBjMjAwZTEwMzAwNDQwMjAwZDIwMDQxMDhmMDEwYzA0MGI0MWQ0OGEwODQxMTMxMDQxMDAwYjIwMDA0MTA4NmExMDM2MjAwMDIwMDAyZDAwMGMzYTAwODQwMjIwMDAyMDAwMjgwMjA4MzYwMjgwMDIyMDAwNDE4MDAyNmEyMjA2NDE4MDgwMDg0MTIxMTBhMzAxMjMwMDQxNDA2YTIyMDMyNDAwMjAwMzQxMDAyMDAzNmI0MTAzNzEyMjA0NmEyMTA3MjAwNDA0NDAyMDAzMjEwMjAzNDAyMDAyNDEwMDNhMDAwMDIwMDI0MTAxNmEyMjAyMjAwNzQ5MGQwMDBiMGIyMDA3NDFjMDAwMjAwNDZiMjIwNTQxN2M3MTIyMDQ2YTIxMDIyMDA0NDEwMDRhMDQ0MDAzNDAyMDA3NDEwMDM2MDIwMDIwMDc0MTA0NmEyMjA3MjAwMjQ5MGQwMDBiMGIyMDA1NDEwMzcxMjIwNDA0NDAyMDAyMjAwNDZhMjEwNDAzNDAyMDAyNDEwMDNhMDAwMDIwMDI0MTAxNmEyMjAyMjAwNDQ5MGQwMDBiMGIyMDA2MjAwMzAyN2YyMDAxMDQ0MDIwMDFhZDIxMTY0MTNmMjEwMTAyNDAwMzQwMjAxNjUwMGQwMTIwMDE0MTNmNGQwNDQwMjAwMTIwMDM2YTIwMTYyMDE2NDIwYTgwMjIxNjQyMGE3ZTdkYTc0MTMwNzIzYTAwMDAyMDAxNDEwMTZiMjEwMTBjMDEwYjBiMTAyYzAwMGIyMDAxNDEwMTZhMGMwMTBiMjAwMzQxMzAzYTAwM2Y0MTNmMGIyMjAxNmE0MWMwMDAyMDAxNmIxMGEzMDEyMDAzNDE0MDZiMjQwMDIwMDAyODAyODAwMjIwMDAyZDAwODQwMjEwMzgxMDAwMDAwYjIwMDAyMDAxMzYwMmNjMDExMDdkMjEwMjEwN2QyMTA0MjAwMDIwMDExMDEyMzYwMmQ4MDEyMDAwNDEwMDM2MDJkNDAxMjAwMDIwMDA0MWNjMDE2YTM2MDJkMDAxMDI0MDAzNDAwMjQwMjAwMDQxODAwMjZhMjAwMDQxZDAwMTZhMTA2NzIwMDAyOTAzODAwMjUwMGQwMDIwMDAyODAyOTQwMjIxMDUyMDAyMjEwMzIwMDAyODAyOTAwMjIyMDEyMDBjMTAzMDQ1MDQ0MDIwMDQyMTAzMjAwMTIwMDgxMDMwNDUwZDAzMGIyMDAzMjAwNTEwOGYwMTBjMDEwYjBiMjAwODEwMmYyMTBjNDIwMDIxMTYyMDA2MjEwMTBjMDEwYjBiMGI0MTg3ODYwODQxMjExMDQxMDAwYjQxYTU4YTA4NDExNTEwNDEwMDBiMjAwMDQxODA4MDgwMjAzNjAyZDAwMTIwMDYyMDAwNDFkMDAxNmE0MTA0MTAwZjFhMjAwNjQxZWQ4NTA4NDEwNDEwMGYxYTBiMjAwMDQyMDAzNzAzZDAwMTIwMDYyMDAwNDFkMDAxNmEyMjAzNDEwODEwMGYxYTIwMDUyMDA2MTAzZjIwMDQyMDA2MTA0ZTEwYzcwMTEwNDMyMjAxNDE4YThkMDg0MTA4MTA0ZDEwNGUyMDAyMTA0MzEwMmYyMjAyMTAzZjIwMDIxMDNmMjAwMTIwMDIxMDI0MjAwMDIwMDQzNjAyZDAwMTIwMDAyMDA0MTAxMjM2MDI4ODAyMjAwMDQxMDAzNjAyODQwMjIwMDAyMDAzMzYwMjgwMDIwMzQwMjAwMDIwMDA0MTgwMDI2YTEwYzQwMTIwMDAyODAyMDAwNDQwMjAwMDI4MDIwNDEwMDcxYTBjMDEwYjBiMjAwMDQxYTAwMjZhMjQwMDBmMGI0MWJhOGEwODQxMWExMDQxMDAwYjBkMDAxMDIyNDEwMDEwNWExMGM3MDExMDI1MGIwZDAwMTAyMjQxMDAxMDVhMTBkMTAxMTA1YjBiMGQwMDEwMjI0MTAwMTA1YTEwZDQwMTEwNWQwYjBkMDAxMDIyNDEwMDEwNWExMGQ4MDExMDVkMGIyYTAxMDE3ZjEwMjI0MTAwMTA1YTEwY2IwMTEwYWIwMTIyMDA0MWZlZmZmZmZmMDc0NzA0NDAyMDAwMTAwNzFhMGYwYjQxZWQ4NTA4NDEwNDEwMjYwYjBkMDAxMDIyNDEwMDEwNWExMGRhMDExMDVkMGIwZDAwMTAyMjQxMDAxMDVhMTBjODAxMTA1YjBiMGQwMDEwMjI0MTAwMTA1YTEwYzkwMTEwNWIwYjBkMDAxMDIyNDEwMDEwNWExMGNjMDExMDViMGIwZDAwMTAyMjQxMDAxMDVhMTBkOTAxMTA1ZDBiMGQwMDEwMjI0MTAwMTA1YTEwZDIwMTEwNWIwYmExMDEwMTAyN2YyMzAwNDE0MDZhMjIwMDI0MDAxMDIyNDEwMTEwNWEyMDAwNDEwMDEwNGIzNjAyMTQyMDAwMjAwMDQxMTQ2YTEwZDYwMTEwYWMwMTIyMDEzNjAyMTgyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDIwMjAwMDIwMDAyODAyMDgzNjAyMWMyMDAwMjAwMTEwMTIzNjAyMmMyMDAwNDEwMDM2MDIyODIwMDAyMDAwNDExODZhMzYwMjI0MjAwMDQxMzQ2YTIxMDEwMzQwMjAwMDQxMzA2YTIwMDA0MTI0NmExMGJhMDEyMDAwMjgwMjMwMDQ0MDIwMDEyMDAwNDExYzZhMTBiYjAxMGMwMTBiMGIyMDAwMjgwMjFjMjAwMDJkMDAyMDEwMzcyMDAwNDE0MDZiMjQwMDBiYTAwMTAxMDI3ZjIzMDA0MTQwNmEyMjAwMjQwMDEwMjI0MTAxMTA1YTIwMDA0MTAwMTA0YjM2MDIxNDIwMDAyMDAwNDExNDZhMTBkNTAxMTBiMjAxMjIwMTM2MDIxODIwMDA0MTA4NmExMDM1MjAwMDIwMDAyZDAwMGMzYTAwMjAyMDAwMjAwMDI4MDIwODM2MDIxYzIwMDAyMDAxMTAxMjM2MDIyYzIwMDA0MTAwMzYwMjI4MjAwMDIwMDA0MTE4NmEzNjAyMjQwMzQwMjAwMDQxMzA2YTIwMDA0MTI0NmExMGI1MDEyMDAwMmQwMDNjNDEwMjQ3MDQ0MDIwMDA0MTMwNmEyMDAwNDExYzZhMTBiNjAxMGMwMTBiMGIyMDAwMjgwMjFjMjAwMDJkMDAyMDEwMzcyMDAwNDE0MDZiMjQwMDBiMGQwMDEwMjI0MTAwMTA1YTEwZDMwMTEwNWUwYjBkMDAxMDIyNDEwMDEwNWExMGQ3MDExMDVlMGJlMzAzMDIwNTdmMDI3ZTIzMDA0MTkwMDE2YjIyMDAyNDAwMTA0OTQxMDAxMDVhMjAwMDEwNGEyMjAxMzYwMjE0MDI0MDIwMDExMDY1NDEwMTQ2MDQ0MDIwMDExMDEyMjEwMTIwMDA0MTAwMzYwMjM0MjAwMDIwMDEzNjAyMzAyMDAwNDEwMDM2MDIyYzIwMDAyMDAwNDExNDZhMzYwMjI4MjAwMDQxM2M2YTIxMDIyMDAwNDFmNDAwNmEyMTAzMjAwMDQxZjgwMDZhMjEwMTAzNDAyMDAwNDFmMDAwNmEyMDAwNDEyODZhMTA2NzIwMDAyOTAzNzA1MDBkMDIyMDAwNDFlMDAwNmEyMDAxNDEwODZhMjkwMzAwMjIwNTM3MDMwMDIwMDAyMDAxMjkwMzAwMjIwNjM3MDM1ODIwMDAyMDAwMjgwMjM0MjIwNDQxMDE2YTM2MDIzNDIwMDM0MTA4NmEyMDA1MzcwMjAwMjAwMzIwMDYzNzAyMDAyMDAwNDE0MDZiMjAwMTI5MDIwMDM3MDMwMDIwMDA0MWM4MDA2YTIwMDA0MTgwMDE2YTI4MDIwMDM2MDIwMDIwMDAyMDAwMjkwMjcwMzcwMzM4MjAwNDQ1MDQ0MDIwMDA0MTIwNmEyMDAyNDEwODZhMjkwMjAwMzcwMzAwMjAwMDIwMDIyOTAyMDAzNzAzMTgwYzAxMGIwYjEwMmMwMDBiNDFiMzgzMDg0MTIyMTAwMzAwMGIyMDAwNDEwODZhMjIwMTIwMDA0MTIwNmEyOTAzMDAzNzAzMDAyMDAwMjAwMDI5MDMxODM3MDMwMDEwZGEwMTEwYTcwMTIxMDIyMDAxMjgwMjAwMjAwMjEwMzA0NTA0NDA0MTk4OGEwODQxMGQxMDQxMDAwYjEwZDIwMTEwNWMyMTAyMjAwMDEwNDMzNjAyMTgyMDAwMTA0MzM2MDIyODIwMDA0MWYwMDA2YTIyMDEyMDAyMTAzMjQxYTc4MzA4NDEwNTEwMzMyMDAwMjgwMjc0MjIwMjIwMDA0MTE4NmExMDdiMjAwMjIwMDA0MTI4NmExMDdhMjAwMDQxZTgwMDZhMjAwMDQxODAwMTZhMjkwMzAwMzcwMzAwMjAwMDQxZTAwMDZhMjAwMDQxZjgwMDZhMjkwMzAwMzcwMzAwMjAwMDIwMDAyOTAzNzAzNzAzNTgyMDAwNDEzODZhMjIwMjIwMDA0MWQ4MDA2YTIwMDAxMDg0MDEyMDAxMjAwMjEwY2QwMTIwMDExMDc0MjAwMDQxOTAwMTZhMjQwMDBiOGMwMTAxMDI3ZjIzMDA0MTQwNmEyMjAwMjQwMDEwNDk0MTAwMTA1YTEwZDIwMTEwNWMyMTAxMjAwMDEwNDMzNjAyMDAyMDAwMTA0MzM2MDIwNDIwMDA0MTA4NmEyMDAxMTAzMjQxOTU4MzA4NDExMjEwMzMyMDAwMjgwMjBjMjIwMTIwMDAxMDdiMjAwMTIwMDA0MTA0NmExMDdhMjAwMDQxMzA2YTIwMDA0MTE4NmEyOTAzMDAzNzAzMDAyMDAwNDEyODZhMjAwMDQxMTA2YTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzA4MzcwMzIwMjAwMDEwN2QzNjAyMzgyMDAwNDEyMDZhMTA3NDIwMDA0MTQwNmIyNDAwMGJmZjAxMDIwNTdmMDE3ZTIzMDA0MTMwNmIyMjAwMjQwMDEwMjIxMDQ5NDEwMTEwNWEyMDAwMTA0ZjM2MDIxMDEwZDIwMTEwNWMyMDAwMTA0MzM2MDIxNDIwMDAxMDQzMzYwMjE4MTAzMjIxMDI0MWFjODMwODQxMDcxMDRkMjEwMzEwNDMyMjAxMjAwMDQxMTA2YTEwNzgyMDAxMjAwMDQxMTQ2YTEwN2IyMDAxMjAwMDQxMTg2YTEwN2ExMDdkMjEwNDEwMTYyMDAyMjAwNDIwMDMyMDAxMTA0NTIxMDExMDE3MjAwMTEwMTIyMTAyMjAwMDQxMDAzNjAyMjQyMDAwMjAwMTM2MDIxYzIwMDAyMDAyNDEwMjc2MzYwMjIwMjAwMDQxMWM2YTEwNzUyMTAxMjAwMDQyMDAzNzAzMjgyMDAxMTAxMjIyMDI0MTA5NDkwNDQwMDI0MDIwMDA0MTA4NmEyMDAwNDEyODZhMjAwMjEwYjAwMTIwMDE0MTAwMjAwMDI4MDIwODIyMDEyMDAwMjgwMjBjMjIwMjEwOGEwMTFhMjAwMTIwMDIxMGIxMDEyMjA1NDI4MDgwODA4MDEwNWEwZDAwMjAwNTEwMTQyMDAwNDEzMDZhMjQwMDBmMGIwYjQxOGE4NTA4NDEwYjQxOTU4NTA4NDEwZTEwNGMwMDBiOTgwMzAyMDU3ZjAxN2UyMzAwNDFlMDAwNmIyMjAwMjQwMDEwMjIxMDQ5NDFlNGRiMDgxMDEzMzYwMjAwNDFlNGRiMDgyODAyMDA0MTAwNDgwNDQwNDFlZjgzMDg0MTExMTAwMzAwMGIyMDAwNDEwMDM2MDIzODEwNDMyMTAzMjAwMDQxMzg2YTIyMDQyODAyMDAyMTAxMDM0MDQxZTRkYjA4MjgwMjAwMjAwMTRhMDQ0MDIwMDQyMDAxNDEwMTZhMjIwMjM2MDIwMDIwMDMyMDAxMTA0YjEwNGUyMDAyMjEwMTBjMDEwYjBiMjAwMzIxMDE0MWU0ZGIwODI4MDIwMDIwMDAyODAyMzg0YTA0NDA0MTgwODQwODQxMTIxMDAzMDAwYjIwMDAyMDAxMzYwMjFjMjAwNDEwZDIwMTEwNWMxMDMyNDFmOTgyMDg0MTBkMTAzMzIwMDAyMDAxMTAxMjM2MDI1YzIwMDA0MTAwMzYwMjU4MjAwMDIwMDA0MTFjNmEzNjAyNTQyMDAwMjgwMjNjMjEwMTAzNDAyMDAwNDExMDZhMjAwMDQxZDQwMDZhMTBjNDAxMjAwMDI4MDIxMDA0NDAyMDAxMjAwMDI4MDIxNDEwNmUwYzAxMGIwYjIwMDA0MTI4NmEyMDAwNDE0MDZiMjkwMzAwMzcwMzAwMjAwMDQxMzA2YTIwMDA0MWM4MDA2YTI5MDMwMDM3MDMwMDIwMDAyMDAwMjkwMzM4MzcwMzIwMjAwMDQxMzg2YTIwMDA0MTIwNmExMDdlMDI0MDIwMDAyODAyNDQyMjAxMTBjZTAxNDUwNDQwMjAwMDI4MDI0MDIxMDIwYzAxMGIxMDQ2MjAwMDI4MDI0MDIyMDI0MjAwMjAwMTEwNDIwYjIwMDAyOTAzMzgyMDAwNDEwODZhMTAzNTIwMDAyMDAwMmQwMDBjM2EwMDNjMjAwMDIwMDAyODAyMDgzNjAyMzgyMDAyMjAwMDQxMzg2YTIyMDIxMDNlMjAwMjEwYzYwMTIwMDEyMDAyMTAzYzIwMDAyODAyMzgyMDAwMmQwMDNjMTAzNzIwMDA0MWUwMDA2YTI0MDAwYjMxMDEwMTdlMTAyMjEwNDk0MTAxMTA1YTQxMDAxMDExMjIwMDQyODE4MDkwYmJiYWQ2YWRmMDBkNWEwNDQwNDFlZjhiMDg0MTIwMTA0MTAwMGIxMGQ3MDEyMDAwMTBhYTAxMGIzMTAxMDE3ZTEwMjIxMDQ5NDEwMTEwNWE0MTAwMTAxMTIyMDA0MjgxODA5MGJiYmFkNmFkZjAwZDVhMDQ0MDQxZDI4YjA4NDExZDEwNDEwMDBiMTBkMzAxMjAwMDEwYWEwMTBiZTMwMTAxMDM3ZjIzMDA0MTMwNmIyMjAwMjQwMDEwMjIxMDQ5NDEwMjEwNWE0MTAwMTA1ODIxMDEyMDAwNDEwMTEwNTEyMjAyMzYwMjBjMjAwMDIwMDEzNjAyMDgyMDAwMjAwMTEwMTIzNjAyMTgyMDAwNDEwMDM2MDIxNDIwMDAyMDAwNDEwODZhMzYwMjEwMDM0MDIwMDA0MTFjNmEyMDAwNDExMDZhMTBjMzAxMjAwMDI4MDIxYzA0NDAyMDAwMjAwMDI4MDIyNDIyMDEzNjAyMmMyMDAwMjAwMDI4MDIyMDM2MDIyODIwMDA0MTI4NmExMGQ2MDEyMDAxMTBiOTAxMGMwMTA1MjAwMDIwMDIxMDEyMzYwMjE4MjAwMDQxMDAzNjAyMTQyMDAwMjAwMDQxMGM2YTM2MDIxMDAzNDAyMDAwNDExYzZhMjAwMDQxMTA2YTEwYzMwMTIwMDAyODAyMWMwNDQwMjAwMDIwMDAyODAyMjQyMjAxMzYwMjJjMjAwMDIwMDAyODAyMjAzNjAyMjgyMDAwNDEyODZhMTBkNTAxMjAwMTEwYjQwMTBjMDEwYjBiMjAwMDQxMzA2YTI0MDAwYjBiMGJhYTA3MDIwYjdmMDE3ZTIzMDA0MTMwNmIyMjAwMjQwMDEwMjI0MTAwMTA1YTEwYzkwMTEwNWMyMjA5MTAyZjEwMzIyMTAxNDFkMjgxMDg0MTE0MTA0ZDIxMDIxMDQzMjEwNjEwN2QyMTA3MTAxNjIwMDEyMDA3MjAwMjIwMDYxMDQ1MjEwMTEwMTcyMDAxMTAxMjIxMDIyMDAwNDEwMDM2MDIxMDIwMDAyMDAxMzYwMjA4MjAwMDIwMDI0MTAyNzYzNjAyMGMyMDAwNDEwODZhMTA3NTIyMDIxMDEyMjEwMTIwMDA0MTI4NmE0MTAwM2EwMDAwMjAwMDQxMjQ2YTIwMDEzNjAyMDAyMDAwMjAwMjM2MDIyMDIwMDAyMDAxMzYwMjFjMjAwMDQxMDAzNjAyMTgwMjQwMDI3ZjAyNDAwMjQwMjAwMTQ1MGQwMDAyNDAwMjQwMDI0MDIwMDA0MTE4NmE0MThhODUwODQxMGIxMDU0NDFmZjAxNzEwZTAyMDIwMTAwMGI0MThhODUwODQxMGI0MWVkODYwODQxMGQxMDRjMDAwYjQxMDEyMTAzMjAwMDQxMTg2YTQxOGE4NTA4NDEwYjEwNTMyMTAxMGIyMDAwMjgwMjFjMjAwMDI4MDIxODQ3MGQwMzIwMDAyZDAwMjgwNDQwNDFkY2RiMDg0MTAwMzYwMjAwNDFlMGRiMDg0MTAwM2EwMDAwMGIyMDAzNDUwZDAwMjAwMDQxMTg2YTIyMDQyMDAxMTAyZjEwMzI0MWU0ODIwODQxMTUxMDMzMjAwMDIwMDQxMDdjMjIwMzM2MDIwMDIwMDQyMDAxMTAyZjEwMzI0MWIyODIwODQxMGIxMDMzMjAwMDQxMTg2YTEwN2M0MmJlOGE4NjBmMTAyZTEwOGUwMTIxMDYyMDA0MjAwMTEwMmYxMDMyNDFjOTgyMDg0MTBkMTAzMzIwMDA0MTE4NmExMDdjMjAwMzEwOTIwMTQyYmU4YTg2MGYxMDJlMTA4ZTAxNDEwYTEwMmQ0MTEyMTA5NDAxMTA4ZDAxMjEwNzIwMDQyMDAxMTAyZjEwMzI0MWJkODIwODQxMGMxMDMzMjAwMDQxMTg2YTEwN2M0MTBhMTAyZDQxMTIxMDk0MDEyMDAzMTA5MDAxMTA4ZTAxNDJiZThhODYwZjEwMmUxMDhlMDE0MTBhMTAyZDQxMTIxMDk0MDExMDhkMDEyMTBhMjAwNDIwMDkxMDJmMjIwMjEwMmYxMDMyNDE4NzgxMDg0MTBmMTAzMzIwMDAyMDAwNDExODZhMTA3YzIyMDUzNjAyMTQyMDA0MjAwMjEwMmYxMDMyNDFhYjgyMDg0MTA3MTAzMzIwMDA0MTE4NmExMDdjMjEwODIwMDQyMDAyMTAzMjQxYTY4MTA4NDExMDEwMzMyMDAwNDExODZhMTA3YzIxMDIyMDAwMjAwODIwMDUxMDkxMDEyMDAyMTA5MDAxMzYwMjA4MjAwNDIwMDExMDMyNDFkNjgyMDg0MTBlMTAzMzIwMDAyODAyMWMyMjAxMjAwMDQxMTQ2YTEwNzgyMDAxMjAwMDQxMDg2YTEwNzgyMDAwMjgwMjI4MjEwMjIwMDAyODAyMTgyMTA1MjAwMDI5MDMyMDEwN2QyMTA4MTA3MTIwMDIyMDA4MjAwNTIwMDExMDQ1MjEwMTEwMTcyMDAwMjAwMTEwNzMzNjAyMDQ0MjgwODA5MGJiYmFkNmFkZjAwZDEwMmUyMTAyMjAwMDEwN2QzNjAyMTgyMDAwNDEwNDZhMjAwNDEwY2YwMTIxMDUxMDdkMjIwMTIwMDUwZDAyMWEyMDAxMjAwMDI4MDIwNDEwODkwMTQxMDE2YTQxZmYwMTcxNDEwMTRkMDQ0MDIwMDA0MTA0NmEyMDAwMTBjZjAxMGQwMjIwMDAyODAyMDAyMTAzMGIyMDAwMjgwMjA0MjAwMzEwOTMwMTIwMGExMDhlMDEyMTAxNDEwYTEwMmQ0MTEyMTA5NDAxMjAwMDI4MDIwMDEwOTAwMTIxMDMyMDA2MjAwMjEwOTIwMTIwMDcyMDAyMTA5MjAxMTA4YzAxMjAwMTIwMDIxMDhlMDEyMDAzMTA4ZDAxMTA4YzAxMGMwMjBiNDFhMDhiMDg0MTMyMTA0MTAwMGIyMDAwMjgwMjA0MjAwNzEwOTIwMTIxMDEyMDA2MjAwMjEwOTIwMTIwMDEyMDAyMTA4ZTAxMjAwMDI4MDIwMDEwOGQwMTEwOGMwMTBiMjEwMTIwMDA0MTE4NmEyMjAzMjAwOTEwMzI0MTk2ODEwODQxMTAxMDMzMjAwMzEwN2MyMTAyNDEwYTEwMmQ0MTEyMTA5NDAxMjEwMzIwMDAyODAyMDQyMDAxMTA5MjAxMjAwMzIwMDIxMDkzMDExMDhlMDEyMDAzNDEwMzEwOTQwMTEwOGQwMTEwMjUyMDAwNDEzMDZhMjQwMDBmMGI0MThhODUwODQxMGI0MTk1ODUwODQxMGUxMDRjMDAwYjAzMDAwMTBiM2MwMTAxN2YyMzAwNDExMDZiMjIwNTI0MDAyMDA1NDEwODZhMjAwMTIwMDQyMDAyMjAwMzEwOWQwMTIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTEwNmEyNDAwMGIzYjAxMDE3ZjIzMDA0MTEwNmIyMjA1MjQwMDIwMDU0MTA4NmEyMDAyMjAwMzIwMDEyMDA0MTAyYjIwMDUyODAyMGMyMTAxMjAwMDIwMDUyODAyMDgzNjAyMDAyMDAwMjAwMTM2MDIwNDIwMDU0MTEwNmEyNDAwMGIwYmRhMGQwMjAwNDE4MDgwMDgwYmM2MGQ0ZTZmMjA3Mzc3NjE3MDIwNmY3MDY1NzI2MTc0Njk2ZjZlMjA2NjZmNzU2ZTY0MjA2MTc0MjA2OTZlNjQ2NTc4MjA3NTZlNzc3MjYxNzA0NTY3NmM2NDY3NjU3NDU3NzI2MTcwNzA2NTY0NDU2NzZjNjQ1NDZmNmI2NTZlNDk2NDc3NzI2MTcwNDU2NzZjNjQ3MjY1NjM2OTcwNjk2NTZlNzQyMDYxNjQ2NDcyNjU3MzczMjA2ZTZmNzQyMDczNjU3NDY1Nzg2OTc0NGQ2MTcyNmI2NTc0NjM2YzYxNjk2ZDUyNjU3NzYxNzI2NDczNjc2NTc0NDE2MzYzNmY3NTZlNzQ1NDZmNmI2NTZlNzM2NzY1NzQ1NDZmNzQ2MTZjNDI2ZjcyNzI2Zjc3NzM2NzY1NzQ1MjY1NzM2NTcyNzY2NTQ2NjE2Mzc0NmY3MjY3NjU3NDU0NmY3NDYxNmM1MjY1NzM2NTcyNzY2NTczNjc2NTc0NTQ2ZjZiNjU2ZTQ5NjQ2ZDY5NmU3NDQxNmU2NDQ1NmU3NDY1NzI0ZDYxNzI2YjY1NzQ2NzY1NzQ0OTZlNzQ2NTcyNjU3Mzc0NTI2MTc0NjU0ZDZmNjQ2NTZjNjc2NTc0NTU2ZTY0NjU3MjZjNzk2OTZlNjc0OTY0NzQ2ZjZiNjU2ZTczNTQ2ZjU1NmU2NDY1NzI2Yzc5Njk2ZTY3NDE2ZDZmNzU2ZTc0NzU2ZTY0NjU3MjZjNzk2OTZlNjc0MTZkNmY3NTZlNzQ1NDZmNTQ2ZjZiNjU2ZTczNzI2NTY0NjU2NTZkNjc2NTc0NDM2MTczNjg2NzY1NzQ0MjYxNzM2NTUyNjE3NDY1Njc2NTc0NGM2MTczNzQ1MzZjNmY3MDY1Njc2NTc0NDY2OTcyNzM3NDUzNmM2ZjcwNjU2NzY1NzQ1NTc0Njk2YzY5N2E2MTc0Njk2ZjZlNjc2NTc0NGY3MDc0Njk2ZDYxNmM1NTc0Njk2YzY5N2E2MTc0Njk2ZjZlNjM2YzYxNjk2ZDRkNzU2Yzc0Njk3MDZjNjU2NzY1NzQ1Mzc0NjE2YjY1NTQ2ZjZiNjU2ZTQ5NjQ3MjY1NjI2MTZjNjE2ZTYzNjU1MDZmNzI3NDY2NmY2YzY5NmY3Mzc0NjE2YjY1NzU2ZTczNzQ2MTZiNjU2OTZlNjM2ZjcyNzI2NTYzNzQyMDZlNzU2ZDYyNjU3MjIwNmY2NjIwNDU1MzQ0NTQyMDc0NzI2MTZlNzM2NjY1NzI3MzYxNzI2Nzc1NmQ2NTZlNzQyMDY0NjU2MzZmNjQ2NTIwNjU3MjcyNmY3MjIwMjgyOTNhMjA3NDZmNmYyMDY2NjU3NzIwNjE3MjY3NzU2ZDY1NmU3NDczNzQ2ZjZmMjA2ZDYxNmU3OTIwNjE3MjY3NzU2ZDY1NmU3NDczNzc3MjZmNmU2NzIwNmU3NTZkNjI2NTcyMjA2ZjY2MjA2MTcyNjc3NTZkNjU2ZTc0NzM2MzYxNmU2ZTZmNzQyMDczNzU2Mjc0NzI2MTYzNzQyMDYyNjU2MzYxNzU3MzY1MjA3MjY1NzM3NTZjNzQyMDc3NmY3NTZjNjQyMDYyNjUyMDZlNjU2NzYxNzQ2OTc2NjU0ZDc1NmM3NDY5NDU1MzQ0NTQ0ZTQ2NTQ1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ0ZTQ2NTQ1NDcyNjE2ZTczNjY2NTcyNDU1MzQ0NTQ1NDcyNjE2ZTczNjY2NTcyNzM3OTZlNjMyMDcyNjU3Mzc1NmM3NDY5NmU3MDc1NzQyMDc0NmY2ZjIwNmM2ZjZlNjc2OTZlNzA3NTc0MjA3NDZmNmYyMDczNjg2ZjcyNzQ2MzYxNzM3NDIwNzQ2ZjIwNjkzNjM0MjA2NTcyNzI2ZjcyNGQ2MTZlNjE2NzY1NjQ1NjY1NjMyMDY5NmU2NDY1NzgyMDZmNzU3NDIwNmY2NjIwNzI2MTZlNjc2NTQ1NTM0NDU0MjA2NTc4NzA2NTYzNzQ2NTY0NDU0NzRjNDQ3Mzc0NmY3MjYxNjc2NTIwNjQ2NTYzNmY2NDY1MjA2NTcyNzI2ZjcyM2EyMDc1NmU2YjZlNmY3NzZlMjA3MjY1NjM2NTY5NzY2NTY0MjA3NDZmNmI2NTZlMjA2MTY2NzQ2NTcyMjA3Mzc3NjE3MDY1Nzg2MzY4NjE2ZTY3NjU2MjYxNjQyMDYxNzI3MjYxNzkyMDZjNjU2ZTY3NzQ2ODc3NzI2ZjZlNjcyMDcyNjU3NDc1NzI2ZTY1NjQyMDczNzc2MTcwMjA3NDZmNmI2NTZlNzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NDY5NmU3NjYxNmM2OTY0MjA3NjYxNmM3NTY1Nzc3MjYxNzA3MDY1NjQ1ZjY1Njc2YzY0NWY2MzZmNmU3NDcyNjE2Mzc0NWY2MTY0NjQ3MjY1NzM3MzYzNmY2ZDcwNmY3NTZlNjQ1ZjYxNzM2ODczNzc2MTcwNWY3Mzc3NjE3MDczNjM2ZjZkNzA2Zjc1NmU2NDVmNzg2NTc4NjM2ODYxNmU2NzY1NWY3Mzc3NjE3MDczNzA2NTcyNjY2ZjcyNmQ2MTZlNjM2NTVmNjY2NTY1NzM1ZjcwNjU3MjYzNjU2ZTc0NjM2ZjZkNzA2Zjc1NmU2NDVmNjY2NTY1NzM1ZjcwNjU3MjYzNjU2ZTc0NjI2ZjZmNzM3NDY1NzI1ZjYxNjQ2NDcyNjU3MzczNmQ2ZjZlNjU3OTVmNmQ2MTcyNmI2NTc0NWY2MTY0NjQ3MjY1NzM3MzYzNmY2ZTc0NzI2ZjZjNmM2NTcyNWY2MTY0NjQ3MjY1NzM3MzYxNzM3MzY1NzQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNzY2MTc1NmM3NDVmNjE2NDY0NzI2NTczNzM3MDYxNzk2ZDY1NmU3NDIwNzM2ODZmNzU2YzY0MjA2MjY1MjA2MTZlMjA0NTUzNDQ1NDIwNzQ2ZjZiNjU2ZTU0Njg2NTIwNjE3MzczNjU3NDIwNzQ2ZjZiNjU2ZTIwNjk2NDY1NmU3NDY5NjY2OTY1NzIyMDYxNmU2NDIwNzQ2ODY1MjA2ZDZmNmU2NTc5MjA2ZDYxNzI2YjY1NzQyMDc1NmU2NDY1NzI2Yzc5Njk2ZTY3MjA2OTY0NjU2ZTc0Njk2NjY5NjU3MjIwNjQ2ZjZlMjc3NDIwNmQ2MTc0NjM2ODU3Njg2NTZlMjA3NDYxNzI2NzY1NzQ2OTZlNjcyMDYxNmUyMDQ1NDc0YzQ0MjA2ZDYxNzI2YjY1NzQyMDc0Njg2NTIwNjE3MzczNjU3NDIwNzQ2ZjZiNjU2ZTIwNjk2NDY1NmU3NDY5NjY2OTY1NzIyMDczNjg2Zjc1NmM2NDIwNjI2NTIwNTc0NTQ3NGM0NDQzNjE2YzZjNjU3MjIwNzM2ODZmNzU2YzY0MjA2MjY1MjA3NjYxNzU2Yzc0Nzc3MjZmNmU2NzIwNzA2MTc5NmQ2NTZlNzQ2ZTZmMjA3MjY1Nzc2MTcyNjQyMDc0NmYyMDYzNmY2ZDcwNmY3NTZlNjQ2ZTZmMjA2YzY1NjY3NDIwNjE2ZDZmNzU2ZTc0MjA3NDZmMjA2MzZmNmQ3MDZmNzU2ZTY0Nzc3MjZmNmU2NzIwNzM3NzYxNzA3MDY1NjQyMDc0NmY2YjY1NmU2ZTZmMjA2NTc4Njk3NDIwNmQ2MTcyNmI2NTc0MjA3MDYxNzk2ZDY1NmU3NDIwNzI2NTYzNjU2OTc2NjU2NDZlNmYyMDcyNjU2NDY1NjU2ZDIwNzA2MTc5NmQ2NTZlNzQyMDcyNjU2MzY1Njk3NjY1NjQ0ZTZmMjA2OTZlNzQ2NTcyNjU3Mzc0MjA3MjYxNzQ2NTIwNmQ2ZjY0NjU2YzIwNzA3MjY1NzM2NTZlNzQyMDZmNmUyMDc0Njg2NTIwNmQ2ZjZlNjU3OTIwNmQ2MTcyNmI2NTc0NmU2NTc3MjA2MzZmNmQ3MDZmNzU2ZTY0MjA2NjY1NjU3MzIwNjU3ODYzNjU2NTY0MjAzMTMwMzAyNTZlNjU3NzIwNzA2NTcyNjY2ZjcyNmQ2MTZlNjM2NTIwNjY2NTY1NzMyMDY1Nzg2MzY1NjU2NDIwMzEzMDMwMjU2ZDZmNmU2NTc5NWY2ZDYxNzI2YjY1NzQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNzc3MjYxNzA3MDY1NjQ1ZjY1Njc2YzY0NWY3NDZmNmI2NTZlNWY2OTY0NjU2ZTc0Njk2NjY5NjU3MjYyNmY2ZjczNzQ2NTcyNWY3Mzc0NjE2YjY1NjQ1Zjc0NmY2YjY1NmU1ZjY5NjQ2NTZlNzQ2OTY2Njk2NTcyNmQ2ZjZlNjU3OTVmNmQ2MTcyNmI2NTc0NWY3NTZlNjQ2NTcyNmM3OTY5NmU2NzVmNjk2NDY1NmU3NDY5NjY2OTY1NzI2MzZmNmQ3MDZmNzU2ZTY0NDU2ZTY0NzA2ZjY5NmU3NDIwNjM2MTZlMjA2ZjZlNmM3OTIwNjI2NTIwNjM2MTZjNmM2NTY0MjA2Mjc5MjA2Zjc3NmU2NTcyMDAwMDcwNjE2ZTY5NjMyMDZmNjM2Mzc1NzI3MjY1NjQwMDQxYzg4ZDA4MGIwNDljZmZmZmZmQDA1MDBAMDEwMEAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQDU3NDU0NzRjNDQyZDYxMzIzODYzMzUzOUAwMDAwMDAwMDAwMDAwMDAwMDUwMGEzYjY2NjkwMmQ1ZjRiYmYwZmY5Mzc0OGZiOTE1YWViNDMxMjRjYmY2NTA5QDAwMDAwMDAwMDAwMDAwMDAwNTAwMzJkZTRmNDBmMTdhMmY0MWM0ZTQwYzIxZjU5NmUzNmE4NDY5OTRlMzY1MDlAMDAwMDAwMDAwMDAwMDAwMDA1MDBmODgzNjY4NmY3YzZjMGYxM2Q3Mjc1MTUxYjc4ZjU5ZjhmMmY3MjlhNjUwOUBAQEBAMDAwMDAwMDAwMDAwMDAwMDA1MDAwYjFlNWIyNDQzMjUwOTU4NDlmNGUzNzEzNDY2MWQ1YmZkY2Q5MjVlN2NlYg==", - "signature": "edf0ec99b6f60414fa5e36d40cfb1d0075d01fd7c4ad7ba59bbe62b8b48eb892beb0c18bba203ff32b83827c3953847b190cdc89a4806f4615565dc2b3b5940f", - "sourceShard": 1, - "destinationShard": 1, - "blockNonce": 2127577, - "blockHash": "e3aea17b5345b45f61b233834d3b4ba0ac6f2b7d53eb3f1b1cf2bf0534ba567f", - "notarizedAtSourceInMetaNonce": 2129029, - "NotarizedAtSourceInMetaHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", - "notarizedAtDestinationInMetaNonce": 2129029, - "notarizedAtDestinationInMetaHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", - "miniblockType": "TxBlock", - "miniblockHash": "cc7e81e68269c2c633daf997fd2d52fc82d8ba3bb699d7e75250008bd9b7aa29", - "hyperblockNonce": 2129029, - "hyperblockHash": "73ee8458f55bf5c9ea4a9974c0c838ced51a236c2b13238761f444598f40575e", - "timestamp": 1707144290, - "status": "success", - "operation": "scDeploy", - "initiallyPaidFee": "82333950000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - let opt_address = tx_response.new_deployed_address.map(|e| { - multiversx_sdk::data::address::Address::from_bytes(*e.as_array()) - .to_bech32_string() - .unwrap() - }); - - let expected = - Some("erd1qqqqqqqqqqqqqpgqwpdf84ggxzqzmr2zmw959q4nlf9nz562q33sak25ze".to_string()); - - assert_eq!(opt_address, expected) -} - -#[test] -fn test_deployed_address_should_be_none_if_not_a_sc_deployment_tx() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "BuiltInFunctionCall", - "processingTypeOnDestination": "SCInvoking", - "hash": "238ad6dbe75dab1d53caeb9cabd584aabc6fc113c849a983afef5a5e439ce9e5", - "nonce": 13, - "round": 2192628, - "epoch": 888, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqydwpdrplefjlwp3sp9xmn3vevdxdelfkwmfsw6e5xw", - "sender": "erd179xw6t04ug48m74jzyw9zq028hv66jhqayelzpzvgds0ptnzmckq2jf07f", - "gasPrice": 1000000000, - "gasLimit": 20000000, - "data": "RVNEVFRyYW5zZmVyQDRmNTU1MjRmMmQ2NDM4MzEzNzMxNjZAMDI0NmQyZDBiNmI1ZjBANjI3NTc5QDFiYzE2ZDY3NGVjODAwMDA=", - "signature": "ce984b4d785ccc7aca4b1cdea57ddcd568a502209f81e6b5bc678e1dd52b78d764fe46ea3ff77b926eb9f70eb52ae8f3f2afa2e9d0efa82655e361641458b900", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 2129490, - "blockHash": "0ab10909b27565c5b7b59e8e1ee4a68d7046f49225fcde4c12d4b1ea3f512b8a", - "notarizedAtSourceInMetaNonce": 2130938, - "NotarizedAtSourceInMetaHash": "0c545160fd37f09f0196505b9cd2e730596bcd99438978a5bb415b9e1be1849d", - "notarizedAtDestinationInMetaNonce": 2130942, - "notarizedAtDestinationInMetaHash": "1ddd6b7aeeff824b5d11f2936a6284e470fc5abe41e34a8df229b719dc1a537d", - "miniblockType": "TxBlock", - "miniblockHash": "dc8ae41e1ae321c0fccbeb807194d11ff6e0f4ed71163764d850f1daaa60bd22", - "hyperblockNonce": 2130942, - "hyperblockHash": "1ddd6b7aeeff824b5d11f2936a6284e470fc5abe41e34a8df229b719dc1a537d", - "timestamp": 1707155768, - "status": "success", - "tokens": [ - "OURO-d8171f" - ], - "esdtValues": [ - "640821212132848" - ], - "operation": "ESDTTransfer", - "function": "buy", - "initiallyPaidFee": "359390000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - let opt_address = tx_response.new_deployed_address; - - let expected: Option
= None; - - assert_eq!(opt_address, expected) -} - -#[test] -fn test_with_tx_that_has_sc_result() { - // transaction data from the devnet, an artificial "10" result has been appended on the original result - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "BuiltInFunctionCall", - "processingTypeOnDestination": "SCInvoking", - "hash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "nonce": 30, - "round": 7639115, - "epoch": 6333, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "sender": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "gasPrice": 1000000000, - "gasLimit": 25500000, - "gasUsed": 15297149, - "data": "RVNEVFRyYW5zZmVyQDQ4NTQ0ZDJkNjY2NTMxNjYzNjM5QDBkZTBiNmIzYTc2NDAwMDBANzM3NzYxNzA1NDZmNmI2NTZlNzM0NjY5Nzg2NTY0NDk2ZTcwNzU3NEA1NzQ1NDc0YzQ0MmQ2NDM3NjMzNjYyNjJAMDM3Yzc3OGZjY2U5YzU1Yg==", - "signature": "e912fae4b7a9e51ddf316a5e82a0f457d453a62e3c17477f5d6175e1b33c5e92ddb187d65f54cf3131a0603321290279a0456c20778039f2ab09b54e33c60f0d", - "sourceShard": 2, - "destinationShard": 1, - "blockNonce": 7585351, - "blockHash": "e456f38f11fec78ed26d5fda068e912739dceedb2e5ce559bf17614b8386c039", - "notarizedAtSourceInMetaNonce": 7601495, - "NotarizedAtSourceInMetaHash": "e28c6011d4b3f73f3945cae70ff251e675dfea331a70077c5ab3310e3101af17", - "notarizedAtDestinationInMetaNonce": 7601499, - "notarizedAtDestinationInMetaHash": "333d4266614e981cc1c5654f85ef496038a8cddac46dfc0ad0b7c44c37ab489d", - "miniblockType": "TxBlock", - "miniblockHash": "13e041f32fde79ebf1abdcfe692e99516f9ec6778dcb917251b440daa7f1210a", - "hyperblockNonce": 7601499, - "hyperblockHash": "333d4266614e981cc1c5654f85ef496038a8cddac46dfc0ad0b7c44c37ab489d", - "timestamp": 1694386290, - "smartContractResults": [ - { - "hash": "a23faa3c80bae0b968f007ff0fad3afdec05b4e71d749c3d583dec10c6eb05a2", - "nonce": 0, - "value": 0, - "receiver": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "data": "ESDTTransfer@5745474c442d643763366262@03856446ff9a304b", - "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "identifier": "ESDTTransfer", - "topics": [ - "V0VHTEQtZDdjNmJi", - "", - "A4VkRv+aMEs=", - "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=" - ], - "data": null - }, - { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=" - ], - "data": "QDZmNmI=" - }, - { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "identifier": "completedTxEvent", - "topics": [ - "1AWL08E9sLFIMsfFj+Fj2y9Xn/ZUQ4BYa4on2ItKUHA=" - ], - "data": null - } - ] - }, - "tokens": [ - "WEGLD-d7c6bb" - ], - "esdtValues": [ - "253719210115084363" - ], - "operation": "ESDTTransfer" - }, - { - "hash": "b7b4d15917fd215399d8e772c3c4e732008baaedc2b8172f71c91708ba7523f0", - "nonce": 31, - "value": 102028510000000, - "receiver": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "data": "@6f6b@0000000c5745474c442d64376336626200000000000000000000000803856446ff9a304b@10", - "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "events": [ - { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "identifier": "completedTxEvent", - "topics": [ - "1AWL08E9sLFIMsfFj+Fj2y9Xn/ZUQ4BYa4on2ItKUHA=" - ], - "data": null - } - ] - }, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "05a766ca05d2053d1c0fbeb1797116474a06c86402a3bfd6c132c9a24cfa1bb0", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "data": "swapTokensFixedInput@5745474c442d643763366262@037c778fcce9c55b", - "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "gasLimit": 25050500, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "function": "swapTokensFixedInput" - }, - { - "hash": "4e639c80822d5d7780c8326d683fa9cd6d59649d14122dfabc5a96dda36da527", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", - "sender": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "data": "ESDTTransfer@5745474c442d643763366262@e7730d1ef1b0@737761704e6f466565416e64466f7277617264@4d45582d646332383963@0000000000000000000000000000000000000000000000000000000000000000", - "prevTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "originalTxHash": "d4058bd3c13db0b14832c7c58fe163db2f579ff6544380586b8a27d88b4a5070", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "tokens": [ - "WEGLD-d7c6bb" - ], - "esdtValues": [ - "254481327387056" - ], - "operation": "ESDTTransfer", - "function": "swapNoFeeAndForward" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "events": [ - { - "address": "erd14r7m6drneg69jyxvxxnrsss6x5gg2cqqwreyhdwanj0fcza0ynnq5jmy4g", - "identifier": "ESDTTransfer", - "topics": [ - "SFRNLWZlMWY2OQ==", - "", - "DeC2s6dkAAA=", - "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "identifier": "ESDTTransfer", - "topics": [ - "V0VHTEQtZDdjNmJi", - "", - "53MNHvGw", - "AAAAAAAAAAAFAOcoOHa5zr9eiFpjeVvIJxVDpaz7fOs=" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", - "identifier": "ESDTLocalBurn", - "topics": [ - "TUVYLWRjMjg5Yw==", - "", - "AuMDPq1jy03x" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgquu5rsa4ee6l4azz6vdu4hjp8z4p6tt8m0n4suht3dy", - "identifier": "swapNoFeeAndForward", - "topics": [ - "c3dhcF9ub19mZWVfYW5kX2ZvcndhcmQ=", - "TUVYLWRjMjg5Yw==", - "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOs=", - "GL0=" - ], - "data": "AAAAAAAAAAAFAKVe/p1dXpaw/INtyTPaxf3N3LaNfOsAAAAMV0VHTEQtZDdjNmJiAAAABudzDR7xsAAAAApNRVgtZGMyODljAAAACQLjAz6tY8tN8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzvkcAAAAAAAAYvQAAAABk/khy" - }, - { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "identifier": "ESDTTransfer", - "topics": [ - "V0VHTEQtZDdjNmJi", - "", - "A4VkRv+aMEs=", - "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq5400a82at6ttplyrdhyn8kk9lhxaed5d0n4s9s77kz", - "identifier": "swapTokensFixedInput", - "topics": [ - "c3dhcA==", - "SFRNLWZlMWY2OQ==", - "V0VHTEQtZDdjNmJi", - "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOY=", - "GL0=" - ], - "data": "qP29NHPKNFkQzDGmOEIaNRCFYABw8ku13ZyenAuvJOYAAAAKSFRNLWZlMWY2OQAAAAgN4Lazp2QAAAAAAAxXRUdMRC1kN2M2YmIAAAAIA4VkRv+aMEsAAAAHA41+pMaAAAAAAAoofxtJRPkr8X9kAAAACgpOPCsHUu261HUAAAAAAHO+RwAAAAAAABi9AAAAAGT+SHI=" - } - ] - }, - "status": "success", - "tokens": [ - "HTM-fe1f69" - ], - "esdtValues": [ - "1000000000000000000" - ], - "operation": "ESDTTransfer", - "function": "swapTokensFixedInput", - "initiallyPaidFee": "502005000000000", - "fee": "399976490000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![ - hex::decode("0000000c5745474c442d64376336626200000000000000000000000803856446ff9a304b") - .unwrap(), - hex::decode("10").unwrap(), - ]; - - assert_eq!(tx_response.out, expected) -} - -#[test] -fn test_with_tx_that_has_no_sc_result() { - // transaction data from the devnet - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "6afac3ec13c89cc56154d06efdb457a24f58361699eee00a48202a8f8adc8c8a", - "nonce": 17, - "round": 7548071, - "epoch": 6257, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "cmV0dXJuVHdvVTY0", - "signature": "f3a3ca96a78c90c9cf1b08541e1777010f0176a5e1e525e631155b2784932cbfd74c9168d03ba201fd5434d1a1b4789895ddade9883eca2ee9e0bce18468fb00", - "sourceShard": 0, - "destinationShard": 0, - "blockNonce": 7502091, - "blockHash": "5ec66c651cb1514cba200e7e80a4491880f0db678ce7631c397872e3842f0aa2", - "notarizedAtSourceInMetaNonce": 7510505, - "NotarizedAtSourceInMetaHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", - "notarizedAtDestinationInMetaNonce": 7510505, - "notarizedAtDestinationInMetaHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", - "miniblockType": "TxBlock", - "miniblockHash": "fb150e515449c9b658879ed06f256b429239cbe78ec2c2821deb4b283ff21554", - "hyperblockNonce": 7510505, - "hyperblockHash": "8410309ec5b988af79b4dcfb44fd4729d46874ebd796672c78e417e314409051", - "timestamp": 1693840026, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk5OTMyMDAwLCBnYXMgdXNlZCA9IDE4NDE2NjU=" - ], - "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" - }, - { - "address": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "identifier": "completedTxEvent", - "topics": [ - "avrD7BPInMVhVNBu/bRXok9YNhaZ7uAKSCAqj4rcjIo=" - ], - "data": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "returnTwoU64", - "initiallyPaidFee": "6067320000000000", - "fee": "6067320000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![ - hex::decode("0a").unwrap(), - hex::decode("0218711a00").unwrap(), - ]; - - assert_eq!(tx_response.out, expected) -} - -#[test] -fn test_with_multi_contract_same_shard_tx_that_has_no_sc_result() { - // transaction data from the devnet - // context : user -> A --call--> B, B returns a MultiValue2, A returns the B's returned value - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "e914857f1bfd003ba411bae372266703e5f706fa412c378feb37faa5e18c3d73", - "nonce": 49, - "round": 7646960, - "epoch": 6339, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "Y2FsbEFub3RoZXJDb250cmFjdFJldHVyblR3b1U2NEAwMDAwMDAwMDAwMDAwMDAwMDUwMEFDRkY2QjdBNEVCODEwMUE4REU3RkY3RjVEMkMwQkYzRTRENjNGNDdBNzND", - "signature": "53cc6496647287d735bd7950f4ec79d7b51f884defda1d6d840d722b7d0d869900ccecc01602da7a7c717955e8d4ed0711b92acd980d64ed6eebd6eaed0c4608", - "sourceShard": 0, - "destinationShard": 0, - "blockNonce": 7600794, - "blockHash": "77eb0904e56d6dd596c0d72821cf33b326fde383e72903ca4df5c2f200b0ea75", - "notarizedAtSourceInMetaNonce": 7609344, - "NotarizedAtSourceInMetaHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", - "notarizedAtDestinationInMetaNonce": 7609344, - "notarizedAtDestinationInMetaHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", - "miniblockType": "TxBlock", - "miniblockHash": "03219ac7427f7511687f0768c722c759c1b1428b2664b44a0cbe2072154851ee", - "hyperblockNonce": 7609344, - "hyperblockHash": "12df3fe65cacde2c9742b9506ac2261d34f3c72d690301192fd8016430d51913", - "timestamp": 1694433360, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk5ODA2MDAwLCBnYXMgdXNlZCA9IDM4NDcyNDA=" - ], - "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" - }, - { - "address": "erd1qqqqqqqqqqqqqpgqshqmekudxlxwp0d9j368etjamr5dw7k45u7qx40w6h", - "identifier": "completedTxEvent", - "topics": [ - "6RSFfxv9ADukEbrjciZnA+X3BvpBLDeP6zf6peGMPXM=" - ], - "data": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "callAnotherContractReturnTwoU64", - "initiallyPaidFee": "6192060000000000", - "fee": "6192060000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![ - hex::decode("0a").unwrap(), - hex::decode("0218711a00").unwrap(), - ]; - - assert_eq!(tx_response.out, expected) -} - -#[test] -fn test_with_multi_contract_cross_shard_tx_that_has_no_callback() { - // transaction data from the devnet - // context : user -> A --async call--> B, no callback - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", - "nonce": 51, - "round": 7647523, - "epoch": 6340, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0Tm9DYWxsYmFja0AwMDAwMDAwMDAwMDAwMDAwMDUwMEFDRkY2QjdBNEVCODEwMUE4REU3RkY3RjVEMkMwQkYzRTRENjNGNDdBNzND", - "signature": "0fc30cddaa8e5365662a14344e3434cbccf287f357be99b3ed4add182f64dded774ec0d095ab1589e7c6c07e00de3b7239efc96eb2e0e97b48c1ef87084cec01", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 7593758, - "blockHash": "a828c0ca58ef1c8aff60e512ab59f18204f1915d4a6c8285cfceb1c5725b88e8", - "notarizedAtSourceInMetaNonce": 7609903, - "NotarizedAtSourceInMetaHash": "4e90fe45c2fdccd5cf6977c1422e5f4ffa41c4e9f31fb4a50c20455f87df1e99", - "notarizedAtDestinationInMetaNonce": 7609907, - "notarizedAtDestinationInMetaHash": "10b8666a44411c3babbe20af7154fb3d47efcb1cb10d955523ec68fece26e517", - "miniblockType": "TxBlock", - "miniblockHash": "4ff4bb1ac88911d617c9b0342aeb5158db78490c2fe414cad08adcc584a77be7", - "hyperblockNonce": 7609907, - "hyperblockHash": "10b8666a44411c3babbe20af7154fb3d47efcb1cb10d955523ec68fece26e517", - "timestamp": 1694436738, - "smartContractResults": [ - { - "hash": "462b56a1530e6070dc7c15f755e51a97a6972c8cd7891f3be4635b93211890c5", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "data": "@00@0a@0218711a00", - "prevTxHash": "41d56fdacf3e14de67e821427c732b62ebfa07c82d2e5db6de75fe3a1c828d9b", - "originalTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", - "gasLimit": 595637825, - "gasPrice": 1000000000, - "callType": 2, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1NjM3ODI1LCBnYXMgdXNlZCA9IDIxNjE3NzA=" - ], - "data": "QDZmNmI=" - }, - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "completedTxEvent", - "topics": [ - "QdVv2s8+FN5n6CFCfHMrYuv6B8gtLl223nX+OhyCjZs=" - ], - "data": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "41d56fdacf3e14de67e821427c732b62ebfa07c82d2e5db6de75fe3a1c828d9b", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "data": "returnTwoU64@4f3c60", - "prevTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", - "originalTxHash": "4d50a055663dfee2479851684d7fb83cf00695b6f03f4dbbdf0f9232477cafc4", - "gasLimit": 597479490, - "gasPrice": 1000000000, - "callType": 1, - "operation": "transfer", - "function": "returnTwoU64" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" - ], - "data": "QDZmNmI=" - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "asyncCallAnotherContractReturnTwoU64NoCallback", - "initiallyPaidFee": "6214335000000000", - "fee": "6214335000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![]; - - assert_eq!(tx_response.out, expected) -} - -#[test] -fn test_with_multi_contract_cross_shard_tx_that_has_non_returning_callback() { - // transaction data from the devnet - // context : user -> A --async call--> B --callback--> A, the callback returns () - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", - "nonce": 52, - "round": 7647560, - "epoch": 6340, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0V2l0aE5vblJldHVybmluZ0NhbGxiYWNrQDAwMDAwMDAwMDAwMDAwMDAwNTAwQUNGRjZCN0E0RUI4MTAxQThERTdGRjdGNUQyQzBCRjNFNEQ2M0Y0N0E3M0M=", - "signature": "3918fce429b2059b2321b709011079755dbb835e12839278ee510e4741180540e80c6111eea1d3312b2c63446de08b20e01f6040358fa94d1633c355bb65bc0f", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 7593795, - "blockHash": "c17e727f90025225670b7852ea9807c67753c9b3f21b6ec7cc40077e3849a8b7", - "notarizedAtSourceInMetaNonce": 7609940, - "NotarizedAtSourceInMetaHash": "c67b5c550986cfd6c94d00f4b90234eb38ee196ff0d79a00d916f3bd24be272c", - "notarizedAtDestinationInMetaNonce": 7609944, - "notarizedAtDestinationInMetaHash": "d59b7398d962ce3119679af59d5d74e10083e62c3ee2b15421cc0d607979ca18", - "miniblockType": "TxBlock", - "miniblockHash": "2977affeffeb6cf41117bed442662021cb713528cdb1d0dce4537b01caeb8e0b", - "hyperblockNonce": 7609944, - "hyperblockHash": "d59b7398d962ce3119679af59d5d74e10083e62c3ee2b15421cc0d607979ca18", - "timestamp": 1694436960, - "smartContractResults": [ - { - "hash": "fe7474188d5ca4b84c7577f03fc778d22d53c070dfcb05a9cda840229d30e4d3", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "data": "returnTwoU64@4f3c60", - "prevTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", - "originalTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", - "gasLimit": 596979545, - "gasPrice": 1000000000, - "callType": 1, - "operation": "transfer", - "function": "returnTwoU64" - }, - { - "hash": "948dc6702b376d1e043db8de2f87ca12907c342f54cfad7dfebadf59145ca3ac", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "data": "@00@0a@0218711a00", - "prevTxHash": "fe7474188d5ca4b84c7577f03fc778d22d53c070dfcb05a9cda840229d30e4d3", - "originalTxHash": "4f7f19e448176e4d47a0f844cbd6bdb1b6c68035dafe927e8249ed60af1c3b17", - "gasLimit": 595137880, - "gasPrice": 1000000000, - "callType": 2, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1MTM3ODgwLCBnYXMgdXNlZCA9IDIyODg1NTA=" - ], - "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" - }, - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "completedTxEvent", - "topics": [ - "/nR0GI1cpLhMdXfwP8d40i1TwHDfywWpzahAIp0w5NM=" - ], - "data": null - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" - ], - "data": "QDZmNmI=" - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "asyncCallAnotherContractReturnTwoU64WithNonReturningCallback", - "initiallyPaidFee": "6235125000000000", - "fee": "6235125000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![]; - - assert_eq!(tx_response.out, expected) -} - -#[test] -fn test_with_multi_contract_cross_shard_tx_that_has_returning_callback() { - // transaction data from the devnet - // context : user -> A --async call--> B --callback--> A, the callback returns a MultiValue2 - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", - "nonce": 53, - "round": 7647583, - "epoch": 6340, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1uh67c2lkhyj4vh73akv7jky9sfgvus8awwcj64uju69mmfne5u7q299t7g", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 600000000, - "data": "YXN5bmNDYWxsQW5vdGhlckNvbnRyYWN0UmV0dXJuVHdvVTY0V2l0aFJldHVybmluZ0NhbGxiYWNrQDAwMDAwMDAwMDAwMDAwMDAwNTAwQUNGRjZCN0E0RUI4MTAxQThERTdGRjdGNUQyQzBCRjNFNEQ2M0Y0N0E3M0M=", - "signature": "858958d4aaf9cb0220ab2933edad3f65e1cb4c58aa7940cb0f40b489d0bd9fdf5c4736a40d6e813743ee622bb91e9f86eacf01b9a31e0ff53f9c84f13c500304", - "sourceShard": 0, - "destinationShard": 1, - "blockNonce": 7593818, - "blockHash": "b19f97110ca38d3cb15f802a00ab403491b0e5804ebc701527ab50064dc06825", - "notarizedAtSourceInMetaNonce": 7609963, - "NotarizedAtSourceInMetaHash": "4d9db6de610ca778114d44fe91dd036fac7c375c373ae9e77130d3fb9efc8391", - "notarizedAtDestinationInMetaNonce": 7609967, - "notarizedAtDestinationInMetaHash": "a4573d388c31860f9bd6f9507b65d1b3130e445abcada538f10704feba4614e7", - "miniblockType": "TxBlock", - "miniblockHash": "530f5fa3c7af474a187caca8dcea02a7a155017414147871d083bed5c49ec8f5", - "hyperblockNonce": 7609967, - "hyperblockHash": "a4573d388c31860f9bd6f9507b65d1b3130e445abcada538f10704feba4614e7", - "timestamp": 1694437098, - "smartContractResults": [ - { - "hash": "065291164a8acd27c26b5a8f09664810081fda18cd54fca635196cf9b200297a", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "sender": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "data": "returnTwoU64@4f3c60", - "prevTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", - "originalTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", - "gasLimit": 596994205, - "gasPrice": 1000000000, - "callType": 1, - "operation": "transfer", - "function": "returnTwoU64" - }, - { - "hash": "bc31cb153ae615204625df84fe9ae3a159aa412b7342f3dca958dd5517a08197", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "sender": "erd1qqqqqqqqqqqqqpgq4nlkk7jwhqgp4r08lal46tqt70jdv0685u7qrr3l2d", - "data": "@00@0a@0218711a00", - "prevTxHash": "065291164a8acd27c26b5a8f09664810081fda18cd54fca635196cf9b200297a", - "originalTxHash": "f34e136ca81c0e32f6fb532b753612715675073f3718b5db009bb275d246fd7a", - "gasLimit": 595152540, - "gasPrice": 1000000000, - "callType": 2, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAP/Aj4ZNGKlpx2+xeJLdoJbREzb20P0=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNTk1MTUyNTQwLCBnYXMgdXNlZCA9IDIyODgwMTU=" - ], - "data": "QDZmNmJAMGFAMDIxODcxMWEwMA==" - }, - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "completedTxEvent", - "topics": [ - "BlKRFkqKzSfCa1qPCWZIEAgf2hjNVPymNRls+bIAKXo=" - ], - "data": null - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqllqglpjdrz5kn3m0k9uf9hdqjmg3xdhk6r7se3wvlk", - "identifier": "writeLog", - "topics": [ - "5fXsK/a5JVZf0e2Z6ViFglDOQP1zsS1XkuaLvaZ5pzw=" - ], - "data": "QDZmNmI=" - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "asyncCallAnotherContractReturnTwoU64WithReturningCallback", - "initiallyPaidFee": "6230670000000000", - "fee": "6230670000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" - } - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Vec> = vec![]; - - assert_eq!(tx_response.out, expected) -} - -#[test] -fn test_process_issued_token_identifier_fungible() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "nonce": 61, - "round": 173598, - "epoch": 72, - "value": "50000000000000000", - "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "sender": "erd1x39tc3q3nn72ecjnmcz7x0qp09kp97t080x99dgyhx7zh95j0n4szskhlv", - "gasPrice": 1000000000, - "gasLimit": 100000000, - "gasUsed": 100000000, - "data": "aXNzdWVMcFRva2VuQDAwMDAwMDAwMDAwMDAwMDAwNTAwMTM5ZWQ3YWU0YWEwMzc5MmU2YmNiMzMyMzk0YTQwZmU3NDZlZWZhNDdjZWJANDU0NzRjNDQ0ZDQ1NTg0YzUwQDQ1NDc0YzQ0NGQ0NTU4", - "signature": "b5049d2906adc1305a6a8d0f42749254ca6259c6996d9a35e7dc7528b3c87b48a421879aff70bc6d81483a7559b75e5dcf9be499dcb7d57aa9f25c79ac2ad40d", - "sourceShard": 1, - "destinationShard": 1, - "blockNonce": 173354, - "blockHash": "09d85ac264a54e12e7613395211c53fe0ee5a7d3b7111bf5fec1d02794caaacd", - "notarizedAtSourceInMetaNonce": 173321, - "NotarizedAtSourceInMetaHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", - "notarizedAtDestinationInMetaNonce": 173321, - "notarizedAtDestinationInMetaHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", - "miniblockType": "TxBlock", - "miniblockHash": "7f45eee4e35ffc1fbce66b92e4dd2aeae2acb092416aa5aa775b96493256b81d", - "hyperblockNonce": 173321, - "hyperblockHash": "64a83759da97fe8305cd4cda4b518f2d41ef0a8f3995d264460821edad45e09e", - "timestamp": 1695041588, - "smartContractResults": [ - { - "hash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "data": "issue@45474c444d45584c50@45474c444d4558@03e8@12@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e4d696e74@74727565@63616e4275726e@74727565@63616e4368616e67654f776e6572@74727565@63616e55706772616465@74727565@63616e4164645370656369616c526f6c6573@74727565@65ba30", - "prevTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 89624222, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1x39tc3q3nn72ecjnmcz7x0qp09kp97t080x99dgyhx7zh95j0n4szskhlv", - "operation": "transfer", - "function": "issue" - }, - { - "hash": "2a452ff652791d79be5f6933fb583cc5503e876893e54b3b51381a92aa2e904d", - "nonce": 0, - "value": 0, - "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetBurnRoleForAll@45474c444d45582d393563366435", - "prevTxHash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "events": [ - { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "identifier": "completedTxEvent", - "topics": [ - "vOPQ3OsLPlyMV4DX2jdVw/dJLVUWhdSTpzv2br02dUs=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTTransfer@45474c444d45582d393563366435@03e8@00", - "prevTxHash": "bce3d0dceb0b3e5c8c5780d7da3755c3f7492d551685d493a73bf66ebd36754b", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 39624222, - "gasPrice": 1000000000, - "callType": 2, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "identifier": "ESDTTransfer", - "topics": [ - "RUdMRE1FWC05NWM2ZDU=", - "", - "A+g=", - "AAAAAAAAAAAFAO+ux8+3RD51ieGHV10Z68X293CYfOs=" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "identifier": "completedTxEvent", - "topics": [ - "vOPQ3OsLPlyMV4DX2jdVw/dJLVUWhdSTpzv2br02dUs=" - ], - "data": null, - "additionalData": null - } - ] - }, - "tokens": [ - "EGLDMEX-95c6d5" - ], - "esdtValues": [ - "1000" - ], - "operation": "ESDTTransfer", - "function": "\u0000" - }, - { - "hash": "c9dfc4de3c3cee319123087a4f5dd03cc051e728ec6070707a63ea977b535227", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "data": "\u0000", - "prevTxHash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 39424222, - "gasPrice": 1000000000, - "callType": 2, - "operation": "transfer", - "function": "\u0000" - }, - { - "hash": "609c3a8e1903680fef1f6d9e47527b1b5c1259664b868af600162120ce0b8192", - "nonce": 1, - "value": 300925400000000, - "receiver": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "sender": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "data": "@6f6b", - "prevTxHash": "2c84740ccb3376ea9fa00dab6c6c93fe7a35ee0a1d6dbfa0a1e61064853b0874", - "originalTxHash": "b78170cc5ca5ba441ea46fe84540db9610ccab243ccd4cd3cd976e170c4864c8", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "identifier": "transferValueOnly", - "topics": [ - "AAAAAAAAAAAFAO+ux8+3RD51ieGHV10Z68X293CYfOs=", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", - "saK8LsUAAA==" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqa7hv0nahgsl8tz0psat46x0tchm0wuyc0n4s6q28ad", - "identifier": "writeLog", - "topics": [ - "NEq8RBGc/KziU94F4zwBeWwS+W87zFK1BLm8K5aSfOs=" - ], - "data": "QDZmNmI=", - "additionalData": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "issueLpToken", - "initiallyPaidFee": "1214335000000000", - "fee": "1214335000000000", - "chainID": "D", - "version": 2, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = Some("EGLDMEX-95c6d5".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) -} - -#[test] -fn test_process_issued_token_identifier_semi_fungible() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "nonce": 65, - "round": 8422527, - "epoch": 584, - "value": "50000000000000000", - "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "sender": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", - "gasPrice": 1000000000, - "gasLimit": 80000000, - "gasUsed": 80000000, - "data": "aXNzdWVUb2tlbkA0NDZmNzA2NTU0NjU3Mzc0QDQ0NGY1MDQ1NTQ0NTUzNTQ=", - "signature": "0191848976e930996f6c62d4921e732f9b0ada8b41ca3b5b63d6bfd304fd44c2a1e8e6643479618ba4a764a36e87f53882b4f707600d5b7d476f2fdd2bac040e", - "sourceShard": 0, - "destinationShard": 0, - "blockNonce": 8420241, - "blockHash": "4d302220f6015876c95e7961b770cc67f8ab63c5f0ab69b4d6c2fb15c8bc23bd", - "notarizedAtSourceInMetaNonce": 8403647, - "NotarizedAtSourceInMetaHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", - "notarizedAtDestinationInMetaNonce": 8403647, - "notarizedAtDestinationInMetaHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", - "miniblockType": "TxBlock", - "miniblockHash": "b7b8fc9f3b81d7daae1113cbf73457e16ee31f3a864ef3729a1a21f3a929e112", - "hyperblockNonce": 8403647, - "hyperblockHash": "f8b83b6d38fa45dacc167b15c93dd07ee5c40db906de34f26e11e7a24f539e30", - "timestamp": 1646652762, - "smartContractResults": [ - { - "hash": "9aecf3bd5dd5c706a28d1cc7059ac20db74340f136816f667dbefcc58daa3aba", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "data": "issueSemiFungible@446f706554657374@444f504554455354@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e4368616e67654f776e6572@74727565@63616e55706772616465@74727565@63616e4164645370656369616c526f6c6573@74727565@5ca148", - "prevTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "gasLimit": 75958360, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", - "operation": "transfer", - "function": "issueSemiFungible" - }, - { - "hash": "aacfe9088bb9d2d5b3fbe9cab2b2f1c6a7e9cbab2f1a41020e2c819fc9b43570", - "nonce": 66, - "value": 0, - "receiver": "erd1x3g000ew7zzv6kyqhj9jl2wy5g6cc72qahvvxz29zv76jwq6ssvqt0d998", - "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "data": "@6f6b", - "prevTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer" - }, - { - "hash": "3f6f0f3de9e942884e7e1592823a7db7ce935a3f9d3359d8c1ee98a5645332d8", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@444f5045544553542d373732303063", - "prevTxHash": "9aecf3bd5dd5c706a28d1cc7059ac20db74340f136816f667dbefcc58daa3aba", - "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "gasLimit": 25958360, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "identifier": "completedTxEvent", - "topics": [ - "muzzvV3VxwaijRzHBZrCDbdDQPE2gW9mfb78xY2qOro=" - ], - "data": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "c6e4f7c5da455009fb4f6967ce8a273a97b826aa617fa798ffd0cf17bde6b97a", - "nonce": 1, - "value": 225516180000000, - "receiver": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "sender": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "data": "@6f6b", - "prevTxHash": "3f6f0f3de9e942884e7e1592823a7db7ce935a3f9d3359d8c1ee98a5645332d8", - "originalTxHash": "0634b9c1db9fd6bfa065fc937d51cec37958fd5d33d0c934a0da3d27776a33ae", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "identifier": "transferValueOnly", - "topics": [ - "AAAAAAAAAAAFAH6d74PDz8xLqvowrlOA5lVDBMUghBg=", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", - "saK8LsUAAA==" - ], - "data": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq06w7lq7relxyh2h6xzh98q8x24psf3fqssvqn4ptek", - "identifier": "writeLog", - "topics": [ - "NFD3vy7whM1YgLyLL6nEojWMeUDt2MMJRRM9qTgahBg=" - ], - "data": "QDZmNmI=" - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "issueToken", - "initiallyPaidFee": "914840000000000", - "fee": "914840000000000", - "chainID": "1", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = Some("DOPETEST-77200c".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) -} - -#[test] -fn test_process_issued_token_identifier_non_fungible() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "nonce": 16, - "round": 820170, - "epoch": 341, - "value": "50000000000000000", - "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "sender": "erd162knt53z7m0f9jjms9wxphr3q9d7zu4ky85xs2cc0ekrqz7k4fdq85lkuc", - "gasPrice": 1000000000, - "gasLimit": 200000000, - "gasUsed": 200000000, - "data": "aXNzdWVUb2tlbkA2NzY1NmU2NTdhNzk3M0A0NzQ1NGU=", - "signature": "e80d45f4de419799a2bbff1cae1235521c8eef1853ee45b02f95c2da74ce50d241bf75b6ab0c650245562700862ea9759caad40f3e381ac0c4d82cfe56e67c09", - "sourceShard": 2, - "destinationShard": 2, - "blockNonce": 819313, - "blockHash": "a1db4ef13f07b86678000df9cc78f244d83dcc35ae51de545f333bf616930d39", - "notarizedAtSourceInMetaNonce": 819396, - "NotarizedAtSourceInMetaHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", - "notarizedAtDestinationInMetaNonce": 819396, - "notarizedAtDestinationInMetaHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", - "miniblockType": "TxBlock", - "miniblockHash": "afdb278522181aeb9b12f08840e6c534e398e6af9c7f757548308e300e7ec4e9", - "hyperblockNonce": 819396, - "hyperblockHash": "6d9e511e46d318aa5b77cbfdfde14d2ce8515ce4e954b286f130a6b518ddf26a", - "timestamp": 1698921020, - "smartContractResults": [ - { - "hash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "data": "issueNonFungible@67656e657a7973@47454e@63616e467265657a65@74727565@63616e57697065@74727565@63616e5061757365@74727565@63616e5472616e736665724e4654437265617465526f6c65@74727565@63616e4368616e67654f776e6572@66616c7365@63616e55706772616465@66616c7365@63616e4164645370656369616c526f6c6573@74727565@5e30e4", - "prevTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 196098365, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd162knt53z7m0f9jjms9wxphr3q9d7zu4ky85xs2cc0ekrqz7k4fdq85lkuc", - "operation": "transfer", - "function": "issueNonFungible" - }, - { - "hash": "98afe82512c79f1caaf171bd5919ee469d11ba0c4f725aefcab834278c0f1e58", - "nonce": 0, - "value": 0, - "receiver": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetBurnRoleForAll@47454e2d383638353933", - "prevTxHash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", - "events": [ - { - "address": "erd1lllllllllllllllllllllllllllllllllllllllllllllllllupq9x7ny0", - "identifier": "completedTxEvent", - "topics": [ - "b+DMACgCrxdE85Tu5KaSJLXndZYdg4bgTnpbkkL3/2U=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "data": "setSpecialRole@47454e2d383638353933@00000000000000000500de51fa8943c26e6933419f9bb7ceb79b7ff4f7bbaa5a@45534454526f6c654e4654437265617465@5e30e4", - "prevTxHash": "112d18ec0364b4700b1bfb3df517c80dba547a53373ece2a9e71acd5266e7b64", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 142399698, - "gasPrice": 1000000000, - "callType": 1, - "operation": "transfer", - "function": "setSpecialRole" - }, - { - "hash": "112d18ec0364b4700b1bfb3df517c80dba547a53373ece2a9e71acd5266e7b64", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@47454e2d383638353933", - "prevTxHash": "6fe0cc002802af1744f394eee4a69224b5e775961d8386e04e7a5b9242f7ff65", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 146098365, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=" - ], - "data": "QDZmNmI=", - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "db5d74970374337956fa61fb4fd90057b3f6a82ea3e259b389934b71a1652e5f", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetRole@47454e2d383638353933@45534454526f6c654e4654437265617465", - "prevTxHash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "ESDTSetRole", - "topics": [ - "R0VOLTg2ODU5Mw==", - "", - "", - "RVNEVFJvbGVORlRDcmVhdGU=" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "completedTxEvent", - "topics": [ - "g0lK2TaXOLV0pyZsv7Es5jzPY0lQzWsOwWEHuPtC+PY=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "ESDTSetRole", - "function": "ESDTSetRole" - }, - { - "hash": "a6a665f47977a59c4c2baf460281fc938e04ae0f87ac2e78040a14ae27822701", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00", - "prevTxHash": "83494ad9369738b574a7266cbfb12ce63ccf634950cd6b0ec16107b8fb42f8f6", - "originalTxHash": "d296186b432d7e7937bde37d725cd52b765ef334c00b95adcb079933bc2277bb", - "gasLimit": 92399698, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gOTIzOTk2OTgsIGdhcyB1c2VkID0gMzE0MTg4MA==" - ], - "data": "QDZmNmI=", - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "completedTxEvent", - "topics": [ - "g0lK2TaXOLV0pyZsv7Es5jzPY0lQzWsOwWEHuPtC+PY=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "transferValueOnly", - "topics": [ - "AAAAAAAAAAAFAN5R+olDwm5pM0Gfm7fOt5t/9Pe7qlo=", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", - "saK8LsUAAA==" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgqmegl4z2rcfhxjv6pn7dm0n4hndllfaam4fdqwqxld8", - "identifier": "writeLog", - "topics": [ - "0q010iL23pLKW4FcYNxxAVvhcrYh6GgrGH5sMAvWqlo=" - ], - "data": "QDZmNmI=", - "additionalData": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "issueToken", - "initiallyPaidFee": "2097020000000000", - "fee": "2097020000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = Some("GEN-868593".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) -} - -#[test] -fn test_process_issued_token_identifier_meta_esdt() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "nonce": 419, - "round": 1787093, - "epoch": 744, - "value": "50000000000000000", - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 157220928, - "data": "ZGVwbG95QXNoc3dhcExQQUNTdHJhdGVneUA0MTRjNTAyZDYzNjE2NTYxNjMzNUA0MTU0NTMyZDM0NjMzMDM5MzIzMEAwM2U4QDAzZThAQDNiOWFjYTAwQDAwMDAwMDAwMDAwMDAwMDAwNTAwOTU3MzkwYWVkYTQzMmY1MmE0MTFkNTE5NzRmZTkzZDQwZDI3NzMzZTA0NjNAMDAwMDAwMDAwMDAwMDAwMDA1MDBkMTJjYzczY2JkYTZmMjY1OWM5NTllNWQ1NzU4YWY5MmNhMTM4NDg2NTIzM0AwMDAwMDAwMDAwMDAwMDAwMDUwMDUxZGY3MTc1OGNmMmFjYTViNDZkZWQ4MTU1OGI1NTE1ZGMyOWYzZjM1MjMzQEAwMDAwMDAwMDAwMDAwMDAwMDUwMDdlNGExZGZjNDM3Y2VkNDlkYjlmMTYzNzk4NDE2Yjg0YWMyMWQ0Yzk3Y2ViMDAwMDAwMGM1NzQ1NDc0YzQ0MmQ2MTMyMzg2MzM1MzkwMDAwMDAwMDAwMDAwMDAwMDUwMGE4YmE5ZTY4NjI2YmJjOTkzZmQ3OTVlOGJiNmY0Nzk0M2IyZjVmZmE3Y2ViMDAwMDAwMGE1NTU0NGIyZDMxMzQ2NDM1Mzc2NEAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwNTAwNTFkZjcxNzU4Y2YyYWNhNWI0NmRlZDgxNTU4YjU1MTVkYzI5ZjNmMzUyMzMwMDAwMDAwYjQyNTU1MzQ0MmQ2NDM0NjMzMDMxMzQwMDAwMDAwMDAwQDAxODZhMEAyNzEw", - "signature": "4648af0b96eb430e4986b9fb760549742de09c809b46b984e5d995c898d80c25bfc0717c30da34bd89cd3005d98ee895afa39ee588b7b74b4807c63cbeade807", - "sourceShard": 1, - "destinationShard": 1, - "blockNonce": 1785520, - "blockHash": "8f926a5d79fa84bc69949a21bfbba17447091a8a074ac172fa0b88e4475a1214", - "notarizedAtSourceInMetaNonce": 1785568, - "NotarizedAtSourceInMetaHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", - "notarizedAtDestinationInMetaNonce": 1785568, - "notarizedAtDestinationInMetaHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", - "miniblockType": "TxBlock", - "miniblockHash": "b85d82db6d69cbc1911b3455d2837eeb3170b391926efa2eacb4d9c8e3c96ee4", - "hyperblockNonce": 1785568, - "hyperblockHash": "eebd1aa5c3dde083f9c367242c054affedd36bfc95f7bcc1d4e2d90beb5754e9", - "timestamp": 1704722558, - "smartContractResults": [ - { - "hash": "ea9a96c079e66249e6b73c0341991dad96ca81f855f2fc4abe0d432be117a882", - "nonce": 420, - "value": 4427790720000000, - "receiver": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "@6f6b", - "prevTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "registerMetaESDT@415453417368537761704c5041435661756c74@4156415348@12@63616e467265657a65@66616c7365@63616e57697065@66616c7365@63616e5061757365@66616c7365@63616e5472616e736665724e4654437265617465526f6c65@66616c7365@63616e4368616e67654f776e6572@66616c7365@63616e55706772616465@66616c7365@63616e4164645370656369616c526f6c6573@74727565@9eb30a87c92674ab1469700c0b385b3850e86de80f87dec6cf3213c7e379a646@408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43@03eb4a30", - "prevTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "gasLimit": 125751600, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "operation": "transfer", - "function": "registerMetaESDT" - }, - { - "hash": "290f85d7ec2f7d5797510290358e9e0f76bb880451efaacb0d69280b8d94c67a", - "nonce": 0, - "value": 0, - "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetBurnRoleForAll@41564153482d376438623564", - "prevTxHash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", - "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "logs": { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "events": [ - { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqsl6e366", - "identifier": "completedTxEvent", - "topics": [ - "YIKXUTKiydgZff0PmFK0VK00R0Duvb35P2ILJ5arcjs=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "1aa62a6251edd216bd4e5ae59f7e676d5d2f88597685e0ec0e25ac4434bfccdb", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@41564153482d376438623564@d0644194444642fd16ee156307f6fda0e8f8baf4c496e1a1dc85e027ecc08a4a@9eb30a87c92674ab1469700c0b385b3850e86de80f87dec6cf3213c7e379a646@408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43@00", - "prevTxHash": "6082975132a2c9d8197dfd0f9852b454ad344740eebdbdf93f620b2796ab723b", - "originalTxHash": "408433c5db749f4666bee6a8b599944071bf493c43ff5f01282a74c22ea2ea43", - "gasLimit": 75751600, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "writeLog", - "topics": [ - "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", - "QHRvbyBtdWNoIGdhcyBwcm92aWRlZCBmb3IgcHJvY2Vzc2luZzogZ2FzIHByb3ZpZGVkID0gNzU3NTE2MDAsIGdhcyB1c2VkID0gNDE3NjA1OQ==" - ], - "data": "QDZmNmI=", - "additionalData": [ - "QDZmNmI=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "completedTxEvent", - "topics": [ - "YIKXUTKiydgZff0PmFK0VK00R0Duvb35P2ILJ5arcjs=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" - ], - "data": "RGVwbG95RnJvbVNvdXJjZQ==", - "additionalData": [ - "RGVwbG95RnJvbVNvdXJjZQ==", - "aW5pdA==", - "QUxQLWNhZWFjNQ==", - "QVRTLTRjMDkyMA==", - "A+g=", - "A+g=", - "", - "O5rKAA==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=" - ], - "data": "RGVwbG95RnJvbVNvdXJjZQ==", - "additionalData": [ - "RGVwbG95RnJvbVNvdXJjZQ==", - "aW5pdA==", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", - "AAAAAAAAAAAFAJVzkK7aQy9SpBHVGXT+k9QNJ3M+BGM=", - "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=", - "AAAAAAAAAAAFAFHfcXWM8qyltG3tgVWLVRXcKfPzUjM=", - "", - "AAAAAAAAAAAFAH5KHfxDfO1J258WN5hBa4SsIdTJfOsAAAAMV0VHTEQtYTI4YzU5AAAAAAAAAAAFAKi6nmhia7yZP9eV6LtvR5Q7L1/6fOsAAAAKVVRLLTE0ZDU3ZA==", - "AAAAAQAAAAAAAAAABQBR33F1jPKspbRt7YFVi1UV3Cnz81IzAAAAC0JVU0QtZDRjMDE0AAAAAAA=", - "AYag", - "JxA=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "Z2V0RmFybWluZ1Rva2VuSWQ=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "Z2V0RmFybVRva2VuSWQ=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANEsxzy9pvJlnJWeXVdYr5LKE4SGUjM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "Z2V0UmV3YXJkVG9rZW5JZA==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "saK8LsUAAA==", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" - ], - "data": "QXN5bmNDYWxs", - "additionalData": [ - "QXN5bmNDYWxs", - "cmVnaXN0ZXJNZXRhRVNEVA==", - "QVRTQXNoU3dhcExQQUNWYXVsdA==", - "QVZBU0g=", - "Eg==", - "Y2FuRnJlZXpl", - "ZmFsc2U=", - "Y2FuV2lwZQ==", - "ZmFsc2U=", - "Y2FuUGF1c2U=", - "ZmFsc2U=", - "Y2FuVHJhbnNmZXJORlRDcmVhdGVSb2xl", - "ZmFsc2U=", - "Y2FuQ2hhbmdlT3duZXI=", - "ZmFsc2U=", - "Y2FuVXBncmFkZQ==", - "ZmFsc2U=", - "Y2FuQWRkU3BlY2lhbFJvbGVz", - "dHJ1ZQ==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqxf6ysnf029hfkwu546kt0pfqcl90c76pq33s0a320f", - "identifier": "SCDeploy", - "topics": [ - "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=", - "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", - "fvRqbue54Womde/CN2IkRGkrx8tsU+xkLvi3+uwMkhY=" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "identifier": "SCDeploy", - "topics": [ - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", - "AAAAAAAAAAAFAH6UefeHERqHcLpMz2gC3xXGhFsJBGM=", - "E3blQfRJfCKLWDr06Od703DSZenIzq8KND+xUjmGY/M=" - ], - "data": null, - "additionalData": null - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "deployAshswapLPACStrategy", - "initiallyPaidFee": "6936045000000000", - "fee": "2508254280000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = Some("AVASH-7d8b5d".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) -} - -#[test] -fn test_set_special_roles_should_not_process_issued_token_identifier() { - let data = r#" - { - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "nonce": 420, - "round": 1787109, - "epoch": 744, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "gasPrice": 1000000000, - "gasLimit": 600000000, - "gasUsed": 129636807, - "data": "ZmluaXNoVmF1bHREZXBsb3ltZW50cw==", - "signature": "dca943ef1a788bfa6cb0e9aa3900b8340e4908075cbfefaa2a66688f6f0c0fed349edb2eb48eec427cd9098822fba875e4d66072fbdb44cb7f4c1a416736e20c", - "sourceShard": 1, - "destinationShard": 1, - "blockNonce": 1785536, - "blockHash": "93ca539e81612768b67a85b7135f7c104e76bec031a758a6b1782910ae49dd8f", - "notarizedAtSourceInMetaNonce": 1785584, - "NotarizedAtSourceInMetaHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", - "notarizedAtDestinationInMetaNonce": 1785584, - "notarizedAtDestinationInMetaHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", - "miniblockType": "TxBlock", - "miniblockHash": "f8c60565af746e92d2c9c09a92734e5eb8da7e42c67a86854c93b349bfe287eb", - "hyperblockNonce": 1785584, - "hyperblockHash": "71d17afe660282bb42de1ea3eec3e3534a179bd32aa1471c2861ce411bf30552", - "timestamp": 1704722654, - "smartContractResults": [ - { - "hash": "c3ce9c364de3823ffae250c2bfb40aaf2b18f771ed4bd37bf788ad83a2c651f3", - "nonce": 421, - "value": 4703631930000000, - "receiver": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "@6f6b", - "prevTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "setSpecialRole@41564153482d376438623564@00000000000000000500d00cc0e63887ff6b792d34234a44e7ac6b575d4b0463@45534454526f6c654e4654437265617465@45534454526f6c654e46544164645175616e74697479@45534454526f6c654e46544275726e@0192c6db2c69f50b6968fb22ac558337a851719519cfd1e6bbf79a07bbcf18bc@cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0@03eb4a30", - "prevTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 125751600, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "operation": "transfer", - "function": "setSpecialRole" - }, - { - "hash": "d6a5824a60b6c9050462c3f5a02ace00c36e8b4ba1958d132bd394e2ed1e7226", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetRole@41564153482d376438623564@45534454526f6c654e4654437265617465@45534454526f6c654e46544164645175616e74697479@45534454526f6c654e46544275726e", - "prevTxHash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "identifier": "ESDTSetRole", - "topics": [ - "QVZBU0gtN2Q4YjVk", - "", - "", - "RVNEVFJvbGVORlRDcmVhdGU=", - "RVNEVFJvbGVORlRBZGRRdWFudGl0eQ==", - "RVNEVFJvbGVORlRCdXJu" - ], - "data": null, - "additionalData": null - }, - { - "address": "erd1qqqqqqqqqqqqqpgq6qxvpe3csllkk7fdxs3553884344wh2tq33sakulat", - "identifier": "completedTxEvent", - "topics": [ - "UPnCWhQCzm2Hrp+JBlnIpnRiKS5HHgLHTWT/e6GZXmA=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "ESDTSetRole", - "function": "ESDTSetRole" - }, - { - "hash": "bf1b8b4b301ff548368dfd972896489d5e2a088d5cbdfa1bfe2421cc7f641f7a", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@a68d44c751eba85db0713db8dc9c10c78749189ec0d6f1af5fc67bb656c1254b@0192c6db2c69f50b6968fb22ac558337a851719519cfd1e6bbf79a07bbcf18bc@cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0@00", - "prevTxHash": "50f9c25a1402ce6d87ae9f890659c8a67462292e471e02c74d64ff7ba1995e60", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 75751600, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1j6kua7p67qnaw3y4sudmk25xsuv4k8ws6pwvax8fd2vtmuc3q33s840l87", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "c2V0U2hhcmVUb2tlbklkZW50aWZpZXI=", - "QVZBU0gtN2Q4YjVk" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=" - ], - "data": "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "additionalData": [ - "RXhlY3V0ZU9uRGVzdENvbnRleHQ=", - "c2V0U3RyYXRlZ3lBZGRyZXNz", - "AAAAAAAAAAAFADJ0SE0vUW6bO5SurLeFIMfK/HtBBGM=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "completedTxEvent", - "topics": [ - "UPnCWhQCzm2Hrp+JBlnIpnRiKS5HHgLHTWT/e6GZXmA=" - ], - "data": null, - "additionalData": null - } - ] - }, - "operation": "transfer" - }, - { - "hash": "9d75a398545f488d4764149245e6ec3101debfce99477c353ac11c3239acd897", - "nonce": 1, - "value": 648519550000000, - "receiver": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "sender": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "data": "@6f6b", - "prevTxHash": "bf1b8b4b301ff548368dfd972896489d5e2a088d5cbdfa1bfe2421cc7f641f7a", - "originalTxHash": "cbb1f866da564a04332297dfc4f637be2e50e62bbf4441bf42247ad429747ce0", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgq0628nau8zydgwu96fn8ksqklzhrggkcfq33sm4vmwv", - "identifier": "transferValueOnly", - "topics": [ - "", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" - ], - "data": "QXN5bmNDYWxs", - "additionalData": [ - "QXN5bmNDYWxs", - "c2V0U3BlY2lhbFJvbGU=", - "QVZBU0gtN2Q4YjVk", - "AAAAAAAAAAAFANAMwOY4h/9reS00I0pE56xrV11LBGM=", - "RVNEVFJvbGVORlRDcmVhdGU=", - "RVNEVFJvbGVORlRBZGRRdWFudGl0eQ==", - "RVNEVFJvbGVORlRCdXJu" - ] - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "finishVaultDeployments", - "initiallyPaidFee": "6082170000000000", - "fee": "1378538070000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "error": "", - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected: Option = None; - - assert_eq!(tx_response.new_issued_token_identifier, expected) -} - -#[test] -fn test_multisig_issue_nft_and_set_all_roles() { - let data = r#" -{ - "data": { - "transaction": { - "type": "normal", - "processingTypeOnSource": "SCInvoking", - "processingTypeOnDestination": "SCInvoking", - "hash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "nonce": 53, - "round": 3050972, - "epoch": 1246, - "value": "0", - "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "sender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "gasPrice": 1000000000, - "gasLimit": 80000000, - "gasUsed": 80000000, - "data": "cGVyZm9ybUFjdGlvbkAwMQ==", - "signature": "cb67645595cee5f7967d8d85af05bb7db73e80d9b97611796819249d87cd174b69b4abfc2a3fbe52df1aec965bdea921f7eb34d2b1118aa480699ad1dc85790a", - "sourceShard": 0, - "destinationShard": 0, - "blockNonce": 2984930, - "blockHash": "644ae8703b826a23e89429953919ec37f875e34a547ea9f7edd53fb71a99c746", - "notarizedAtSourceInMetaNonce": 2988311, - "NotarizedAtSourceInMetaHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", - "notarizedAtDestinationInMetaNonce": 2988311, - "notarizedAtDestinationInMetaHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", - "miniblockType": "TxBlock", - "miniblockHash": "c5a73671bc1d37835ddd15b926157721bc83203ec4e00cd48ae0d46015cb5f0b", - "hyperblockNonce": 2988311, - "hyperblockHash": "4f608a72e654dd9f466801cd489be8ee1a73fbcd77b128559cd46182d3b9455a", - "timestamp": 1712305832, - "smartContractResults": [ - { - "hash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", - "nonce": 0, - "value": 50000000000000000, - "receiver": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "sender": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "data": "registerAndSetAllRoles@54657374436f6c6c656374696f6e31@54455354434f4c4c31@4e4654@@98fa4ff554b9c6990ce577fbb816a271f690dcbd6b148f6583fe7692868ae538@08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd@5e2338", - "prevTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 73052300, - "gasPrice": 1000000000, - "callType": 1, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "operation": "transfer", - "function": "registerAndSetAllRoles" - }, - { - "hash": "5ae4f74e134e4fa63c8b92e06ff12b2a4b544233d01d80db6a922af35ee55356", - "nonce": 1, - "value": 196430610000000, - "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "sender": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "data": "@6f6b", - "prevTxHash": "c4a24b01b48d32308636310e2d335d6ed1f34dcbdfc1133aed7995e78e831c18", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "operation": "transfer", - "isRefund": true - }, - { - "hash": "7589c1ad622d8a9ab2f186731fc82aeeab0aea5a8198cb94b6eba85a966e7962", - "nonce": 0, - "value": 0, - "receiver": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetBurnRoleForAll@54455354434f4c4c312d356161383063", - "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "logs": { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", - "events": [ - { - "address": "erd1llllllllllllllllllllllllllllllllllllllllllllllllluqq2m3f0f", - "identifier": "completedTxEvent", - "topics": [ - "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" - ] - } - ] - }, - "operation": "transfer" - }, - { - "hash": "86d1ec3365ea1311dbde2f2366de4ea8627d7e49c29a974578c0869b66903cbc", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "ESDTSetRole@54455354434f4c4c312d356161383063@45534454526f6c654e4654437265617465@45534454526f6c654e46544275726e@45534454526f6c654e465455706461746541747472696275746573@45534454526f6c654e4654416464555249", - "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 0, - "gasPrice": 1000000000, - "callType": 0, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "ESDTSetRole", - "topics": [ - "VEVTVENPTEwxLTVhYTgwYw==", - "", - "", - "RVNEVFJvbGVORlRDcmVhdGU=", - "RVNEVFJvbGVORlRCdXJu", - "RVNEVFJvbGVORlRVcGRhdGVBdHRyaWJ1dGVz", - "RVNEVFJvbGVORlRBZGRVUkk=" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "completedTxEvent", - "topics": [ - "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" - ] - } - ] - }, - "operation": "ESDTSetRole", - "function": "ESDTSetRole" - }, - { - "hash": "c4a24b01b48d32308636310e2d335d6ed1f34dcbdfc1133aed7995e78e831c18", - "nonce": 0, - "value": 0, - "receiver": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "sender": "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u", - "data": "@00@54455354434f4c4c312d356161383063@3ec73c55022548038bbe06c0639156b3db70b7c770955e340f14fcfcd45df06a@98fa4ff554b9c6990ce577fbb816a271f690dcbd6b148f6583fe7692868ae538@08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd@00", - "prevTxHash": "b0b3c8df519c33b314c0ee3d25abae6f17c4432fb3382676ce17a42690811cff", - "originalTxHash": "08582bc19734ad82d7390be88463c948e5d9f026f4b8f0bfc57620957c3433bd", - "gasLimit": 23052300, - "gasPrice": 1000000000, - "callType": 2, - "originalSender": "erd1uv40ahysflse896x4ktnh6ecx43u7cmy9wnxnvcyp7deg299a4sq6vaywa", - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "callBack", - "topics": [ - "YXN5bmNDYWxsU3VjY2Vzcw==", - "VEVTVENPTEwxLTVhYTgwYw==" - ], - "additionalData": [ - "" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "completedTxEvent", - "topics": [ - "sLPI31GcM7MUwO49JauubxfEQy+zOCZ2zhekJpCBHP8=" - ] - } - ] - }, - "operation": "transfer" - } - ], - "logs": { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "events": [ - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "performAction", - "topics": [ - "c3RhcnRQZXJmb3JtQWN0aW9u" - ], - "data": "AAAAAQYAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAL//wAAAAexorwuxQAAAAAAFnJlZ2lzdGVyQW5kU2V0QWxsUm9sZXMAAAAEAAAAD1Rlc3RDb2xsZWN0aW9uMQAAAAlURVNUQ09MTDEAAAADTkZUAAAAAAAAAATjKv7ckE/hk5dGrZc76zg1Y89jZCumabMED5uUKKXtYLE6AXQjw2bK/4zs+3ehJhChMPSIgTQSLHk3/q4NbX0XOvjZyUI7JXfGJSciwdkCEqQRH3ID+XRPdvz6HQoxADOyoRVVzlIeSUTgmrF1SdhbSH3NJshLUBejnjGjZwiJug==", - "additionalData": [ - "AAAAAQYAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAL//wAAAAexorwuxQAAAAAAFnJlZ2lzdGVyQW5kU2V0QWxsUm9sZXMAAAAEAAAAD1Rlc3RDb2xsZWN0aW9uMQAAAAlURVNUQ09MTDEAAAADTkZUAAAAAAAAAATjKv7ckE/hk5dGrZc76zg1Y89jZCumabMED5uUKKXtYLE6AXQjw2bK/4zs+3ehJhChMPSIgTQSLHk3/q4NbX0XOvjZyUI7JXfGJSciwdkCEqQRH3ID+XRPdvz6HQoxADOyoRVVzlIeSUTgmrF1SdhbSH3NJshLUBejnjGjZwiJug==" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "performAction", - "topics": [ - "cGVyZm9ybUFzeW5jQ2FsbA==", - "AQ==", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=", - "saK8LsUAAA==", - "BGa4HQ==", - "cmVnaXN0ZXJBbmRTZXRBbGxSb2xlcw==", - "VGVzdENvbGxlY3Rpb24x", - "VEVTVENPTEwx", - "TkZU", - "" - ], - "additionalData": [ - "" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "transferValueOnly", - "topics": [ - "saK8LsUAAA==", - "AAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAC//8=" - ], - "data": "QXN5bmNDYWxs", - "additionalData": [ - "QXN5bmNDYWxs", - "cmVnaXN0ZXJBbmRTZXRBbGxSb2xlcw==", - "VGVzdENvbGxlY3Rpb24x", - "VEVTVENPTEwx", - "TkZU", - "" - ] - }, - { - "address": "erd1qqqqqqqqqqqqqpgqrp3n58vp2dmcaur4whazxngvuhac4xwqa4sq2pjl73", - "identifier": "writeLog", - "topics": [ - "4yr+3JBP4ZOXRq2XO+s4NWPPY2QrpmmzBA+blCil7WA=" - ], - "data": "QDZmNmI=", - "additionalData": [ - "QDZmNmI=" - ] - } - ] - }, - "status": "success", - "operation": "transfer", - "function": "performAction", - "initiallyPaidFee": "873260000000000", - "fee": "873260000000000", - "chainID": "D", - "version": 1, - "options": 0 - } - }, - "code": "successful" -} - "#; - - let tx_on_network: TransactionOnNetwork = serde_json::from_str::(data) - .unwrap() - .data - .unwrap() - .transaction; - let tx_response = TxResponse::from_network_tx(tx_on_network); - - let expected = Some("TESTCOLL1-5aa80c".to_string()); - - assert_eq!(tx_response.new_issued_token_identifier, expected) -} From f21b3fc06528cb170afd728447a8c75cdb6bcfa7 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 29 Apr 2024 18:45:55 +0300 Subject: [PATCH 099/185] set state via AnnotatedValue - separate types --- .../tests/token_merge_module_whitebox_test.rs | 12 ++++++------ .../src/facade/world_tx/scenario_set_state.rs | 9 ++++++--- .../scenario_set_state/scenario_set_account.rs | 16 ++++++++++------ .../src/scenario/model/account_data/account.rs | 5 +++-- .../scenario/model/esdt_data/esdt_instance.rs | 7 +++++-- .../src/scenario/model/esdt_data/esdt_object.rs | 14 +++++++++----- .../scenario/src/scenario/run_vm/set_state.rs | 4 ++-- .../src/whitebox_legacy/contract_obj_wrapper.rs | 2 +- 8 files changed, 42 insertions(+), 27 deletions(-) diff --git a/contracts/feature-tests/use-module/tests/token_merge_module_whitebox_test.rs b/contracts/feature-tests/use-module/tests/token_merge_module_whitebox_test.rs index eb93ff155a..3f723c323a 100644 --- a/contracts/feature-tests/use-module/tests/token_merge_module_whitebox_test.rs +++ b/contracts/feature-tests/use-module/tests/token_merge_module_whitebox_test.rs @@ -66,7 +66,7 @@ fn test_token_merge() { NFT_AMOUNT, Some(FIRST_ATTRIBUTES), FIRST_ROYALTIES, - None, + None::, None, Vec::from(FIRST_URIS), ) @@ -76,7 +76,7 @@ fn test_token_merge() { NFT_AMOUNT, Some(SECOND_ATTRIBUTES), SECOND_ROYALTIES, - None, + None::, None, Vec::from(SECOND_URIS), ), @@ -454,7 +454,7 @@ fn test_partial_split() { NFT_AMOUNT, Some(FIRST_ATTRIBUTES), FIRST_ROYALTIES, - None, + None::, None, Vec::from(FIRST_URIS), ) @@ -464,7 +464,7 @@ fn test_partial_split() { NFT_AMOUNT, Some(SECOND_ATTRIBUTES), SECOND_ROYALTIES, - None, + None::, None, Vec::from(SECOND_URIS), ), @@ -672,7 +672,7 @@ fn test_custom_attributes() { NFT_AMOUNT, Some(FIRST_ATTRIBUTES), FIRST_ROYALTIES, - None, + None::, None, Vec::from(FIRST_URIS), ) @@ -682,7 +682,7 @@ fn test_custom_attributes() { NFT_AMOUNT, Some(SECOND_ATTRIBUTES), SECOND_ROYALTIES, - None, + None::, None, Vec::from(SECOND_URIS), ), diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index 8cee5eaede..fc25f297c2 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -101,7 +101,7 @@ impl ScenarioWorld { } #[allow(clippy::too_many_arguments)] - pub fn set_nft_balance_all_properties( + pub fn set_nft_balance_all_properties( &mut self, address: A, token_id: &[u8], @@ -109,7 +109,7 @@ impl ScenarioWorld { balance: V, attributes: &T, royalties: NR, - creator: Option, + creator: Option, name: Option<&[u8]>, hash: Option<&[u8]>, uris: &[Vec], @@ -117,6 +117,7 @@ impl ScenarioWorld { A: AnnotatedValue>, V: AnnotatedValue>, NR: AnnotatedValue, + C: AnnotatedValue>, { let env = self.new_env_data(); let address_value = address_annotated(&env, &address); @@ -134,7 +135,9 @@ impl ScenarioWorld { nonce_value.value, &balance_value.value, EsdtInstanceMetadata { - creator: creator.map(|c| address_annotated(&env, &c).to_vm_address()), + creator: creator + .as_ref() + .map(|c| address_annotated(&env, c).to_vm_address()), attributes: esdt_attributes.clone(), royalties: royalties_value.value, name: name.unwrap_or_default().to_vec(), diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index 0c14dc6b16..65351927ec 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -102,22 +102,26 @@ impl<'w> SetStateBuilder<'w, AccountItem> { } #[allow(clippy::too_many_arguments)] - pub fn esdt_nft_all_properties( + pub fn esdt_nft_all_properties( mut self, token_id: K, nonce: N, balance: V, attributes: T, - royalties: N, - creator: T, - hash: T, - uris: Vec, + royalties: R, + creator: C, + hash: H, + uris: Vec, ) -> Self where K: AnnotatedValue>, N: AnnotatedValue, V: AnnotatedValue>, T: AnnotatedValue>, + C: AnnotatedValue>, + R: AnnotatedValue, + H: AnnotatedValue>, + U: AnnotatedValue>, { let env = self.new_env_data(); let token_id_key = token_identifier_annotated(&env, token_id); @@ -125,7 +129,7 @@ impl<'w> SetStateBuilder<'w, AccountItem> { let royalties_value = u64_annotated(&env, &royalties); let balance_value = big_uint_annotated(&env, &balance); let attributes_value = bytes_annotated(&env, attributes); - let creator_value = bytes_annotated(&env, creator); + let creator_value = address_annotated(&env, &creator); let hash_value = bytes_annotated(&env, hash); let mut uris_value = Vec::new(); for uri in uris { diff --git a/framework/scenario/src/scenario/model/account_data/account.rs b/framework/scenario/src/scenario/model/account_data/account.rs index 8488017c4e..9748fdf7dc 100644 --- a/framework/scenario/src/scenario/model/account_data/account.rs +++ b/framework/scenario/src/scenario/model/account_data/account.rs @@ -86,14 +86,14 @@ impl Account { } #[allow(clippy::too_many_arguments)] - pub fn esdt_nft_all_properties( + pub fn esdt_nft_all_properties( mut self, token_id_expr: K, nonce_expr: N, balance_expr: V, opt_attributes_expr: Option, royalties_expr: N, - creator_expr: Option, + creator_expr: Option, hash_expr: Option, uris_expr: Vec, ) -> Self @@ -102,6 +102,7 @@ impl Account { U64Value: From, BigUintValue: From, BytesValue: From, + AddressValue: From, { let token_id = BytesKey::from(token_id_expr); diff --git a/framework/scenario/src/scenario/model/esdt_data/esdt_instance.rs b/framework/scenario/src/scenario/model/esdt_data/esdt_instance.rs index 8607937c6c..01e57394d2 100644 --- a/framework/scenario/src/scenario/model/esdt_data/esdt_instance.rs +++ b/framework/scenario/src/scenario/model/esdt_data/esdt_instance.rs @@ -4,13 +4,14 @@ use crate::{ interpret_trait::{InterpretableFrom, InterpreterContext, IntoRaw}, serde_raw::EsdtInstanceRaw, }, + scenario_model::AddressValue, }; #[derive(Debug, Default, Clone)] pub struct EsdtInstance { pub nonce: Option, pub balance: Option, - pub creator: Option, + pub creator: Option, pub royalties: Option, pub hash: Option, pub uri: Vec, @@ -41,7 +42,9 @@ impl InterpretableFrom for EsdtInstance { balance: from .balance .map(|b| BigUintValue::interpret_from(b, context)), - creator: from.creator.map(|b| BytesValue::interpret_from(b, context)), + creator: from + .creator + .map(|b| AddressValue::interpret_from(b, context)), royalties: from.royalties.map(|b| U64Value::interpret_from(b, context)), hash: from.hash.map(|b| BytesValue::interpret_from(b, context)), uri: from diff --git a/framework/scenario/src/scenario/model/esdt_data/esdt_object.rs b/framework/scenario/src/scenario/model/esdt_data/esdt_object.rs index f8298e2b8c..f9d65e4df9 100644 --- a/framework/scenario/src/scenario/model/esdt_data/esdt_object.rs +++ b/framework/scenario/src/scenario/model/esdt_data/esdt_object.rs @@ -1,5 +1,8 @@ use super::EsdtInstance; -use crate::scenario::model::{BigUintValue, BytesValue, U64Value}; +use crate::{ + scenario::model::{BigUintValue, BytesValue, U64Value}, + scenario_model::AddressValue, +}; #[derive(Debug, Default, Clone)] pub struct EsdtObject { @@ -53,19 +56,20 @@ impl EsdtObject { } #[allow(clippy::too_many_arguments)] - pub fn set_token_all_properties( + pub fn set_token_all_properties( &mut self, nonce_expr: N, balance_expr: V, opt_attributes_expr: Option, royalties_expr: N, - creator_expr: Option, + creator_expr: Option, hash_expr: Option, uris_expr: Vec, ) where U64Value: From, BigUintValue: From, BytesValue: From, + AddressValue: From, { let inst_for_nonce = self.get_or_insert_instance_for_nonce(nonce_expr); @@ -93,8 +97,8 @@ impl EsdtObject { } if let Some(creator_expr) = creator_expr { - let creator = BytesValue::from(creator_expr); - if !creator.value.is_empty() { + let creator = AddressValue::from(creator_expr); + if !creator.value.is_zero() { inst_for_nonce.creator = Some(creator); } else { inst_for_nonce.creator = None; diff --git a/framework/scenario/src/scenario/run_vm/set_state.rs b/framework/scenario/src/scenario/run_vm/set_state.rs index 187ba21e83..8284d42422 100644 --- a/framework/scenario/src/scenario/run_vm/set_state.rs +++ b/framework/scenario/src/scenario/run_vm/set_state.rs @@ -1,7 +1,7 @@ use crate::scenario::model::SetStateStep; use multiversx_chain_vm::{ - types::{VMAddress, VMCodeMetadata}, + types::VMCodeMetadata, world_mock::{ AccountData, AccountEsdt, BlockInfo as CrateBlockInfo, BlockchainState, EsdtData, EsdtInstance, EsdtInstanceMetadata, EsdtInstances, EsdtRoles, @@ -155,7 +155,7 @@ fn convert_scenario_esdt_instance_to_world_mock( creator: scenario_esdt .creator .as_ref() - .map(|creator| VMAddress::from_slice(creator.value.as_slice())), + .map(|creator| creator.to_vm_address()), royalties: scenario_esdt .royalties .as_ref() diff --git a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs index 7540d23056..b88377b98d 100644 --- a/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs +++ b/framework/scenario/src/whitebox_legacy/contract_obj_wrapper.rs @@ -366,7 +366,7 @@ impl BlockchainStateWrapper { BigUint::from(balance), attributes, 0, - None, + None::
, None, None, &[], From f152723bf7c64e1260c18307ce2346d0083c18a0 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 29 Apr 2024 19:30:13 +0300 Subject: [PATCH 100/185] set state via AnnotatedValue - small fix --- .../src/facade/world_tx/scenario_set_state.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index fc25f297c2..aa9a4ccd9b 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -101,22 +101,23 @@ impl ScenarioWorld { } #[allow(clippy::too_many_arguments)] - pub fn set_nft_balance_all_properties( + pub fn set_nft_balance_all_properties( &mut self, address: A, token_id: &[u8], - nonce: NR, - balance: V, - attributes: &T, - royalties: NR, + nonce: N, + balance: B, + attributes: T, + royalties: R, creator: Option, name: Option<&[u8]>, hash: Option<&[u8]>, uris: &[Vec], ) where A: AnnotatedValue>, - V: AnnotatedValue>, - NR: AnnotatedValue, + B: AnnotatedValue>, + N: AnnotatedValue, + R: AnnotatedValue, C: AnnotatedValue>, { let env = self.new_env_data(); From 75c2a1127a19ee7b37e9cb2734964c499878e185 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 29 Apr 2024 21:36:51 +0300 Subject: [PATCH 101/185] codec - decode u64 via into_max_size_buffer_align_right --- .../pair/scenarios/free_orders.scen.json | 3 +- .../scenarios/storage_i64_bad.scen.json | 2 +- .../src/impl_for_types/impl_num_signed.rs | 6 +- data/codec/src/single/top_de_input.rs | 70 +++++++++++++++++-- framework/base/src/api/endpoint_arg_api.rs | 4 +- framework/base/src/err_msg.rs | 2 +- framework/base/src/io/arg_de_input.rs | 13 ++++ .../src/storage/mappers/map_storage_mapper.rs | 5 +- framework/base/src/storage/storage_get.rs | 21 ++++++ .../src/storage/storage_get_from_address.rs | 21 ++++++ .../types/io/operation_completion_status.rs | 10 +-- .../codec_util/managed_buffer_top_de_input.rs | 47 +++++++++++-- 12 files changed, 181 insertions(+), 23 deletions(-) diff --git a/contracts/examples/order-book/pair/scenarios/free_orders.scen.json b/contracts/examples/order-book/pair/scenarios/free_orders.scen.json index 8556d1dee2..0e53547971 100644 --- a/contracts/examples/order-book/pair/scenarios/free_orders.scen.json +++ b/contracts/examples/order-book/pair/scenarios/free_orders.scen.json @@ -27,7 +27,8 @@ "to": "sc:pair", "function": "freeOrders", "arguments": [ - "u64:0|u64:1" + "0", + "1" ], "gasLimit": "100,000,000", "gasPrice": "0" diff --git a/contracts/feature-tests/basic-features/scenarios/storage_i64_bad.scen.json b/contracts/feature-tests/basic-features/scenarios/storage_i64_bad.scen.json index 74ae9f7bff..d46e1a783a 100644 --- a/contracts/feature-tests/basic-features/scenarios/storage_i64_bad.scen.json +++ b/contracts/feature-tests/basic-features/scenarios/storage_i64_bad.scen.json @@ -33,7 +33,7 @@ "expect": { "out": [], "status": "*", - "message": "str:storage decode error: input too long", + "message": "str:storage decode error: argument out of range", "logs": "*", "gas": "*", "refund": "*" diff --git a/data/codec/src/impl_for_types/impl_num_signed.rs b/data/codec/src/impl_for_types/impl_num_signed.rs index b32b726523..1f8ea12dcc 100644 --- a/data/codec/src/impl_for_types/impl_num_signed.rs +++ b/data/codec/src/impl_for_types/impl_num_signed.rs @@ -1,7 +1,7 @@ use crate::{ - dep_encode_num_mimic, DecodeError, - DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, - NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, + dep_encode_num_mimic, DecodeError, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, + NestedDecodeInput, NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, + TopEncodeOutput, }; macro_rules! top_encode_num_signed { diff --git a/data/codec/src/single/top_de_input.rs b/data/codec/src/single/top_de_input.rs index dc74370daf..dd106d26a0 100644 --- a/data/codec/src/single/top_de_input.rs +++ b/data/codec/src/single/top_de_input.rs @@ -21,6 +21,12 @@ pub trait TopDecodeInput: Sized { /// and returns the populated data slice from this buffer. /// /// Will return an error if the data exceeds the provided buffer. + /// + /// Currently only kept for backwards compatibility. + #[deprecated( + since = "0.48.1", + note = "Please use method `into_max_size_buffer_align_right` instead." + )] fn into_max_size_buffer( self, buffer: &mut [u8; MAX_LEN], @@ -29,6 +35,20 @@ pub trait TopDecodeInput: Sized { where H: DecodeErrorHandler; + /// Puts the underlying data into a fixed size byte buffer, + /// aligned to the right. + /// + /// This eases big endian decoding. + /// + /// Returns the length of the original buffer. + fn into_max_size_buffer_align_right( + self, + buffer: &mut [u8; MAX_LEN], + h: H, + ) -> Result + where + H: DecodeErrorHandler; + /// Retrieves the underlying data as a pre-parsed u64. /// Expected to panic if the conversion is not possible. /// @@ -38,8 +58,8 @@ pub trait TopDecodeInput: Sized { H: DecodeErrorHandler, { let mut buffer = [0u8; 8]; - let slice = self.into_max_size_buffer(&mut buffer, h)?; - Ok(universal_decode_number_unchecked(slice, false)) + let _ = self.into_max_size_buffer_align_right(&mut buffer, h)?; + Ok(u64::from_be_bytes(buffer)) } /// Retrieves the underlying data as a pre-parsed i64. @@ -51,8 +71,8 @@ pub trait TopDecodeInput: Sized { H: DecodeErrorHandler, { let mut buffer = [0u8; 8]; - let slice = self.into_max_size_buffer(&mut buffer, h)?; - Ok(universal_decode_number_unchecked(slice, true) as i64) + let len = self.into_max_size_buffer_align_right(&mut buffer, h)?; + Ok(universal_decode_number_unchecked(&buffer[8 - len..], true) as i64) } #[inline] @@ -82,6 +102,7 @@ impl TopDecodeInput for Box<[u8]> { self } + #[allow(deprecated)] fn into_max_size_buffer( self, buffer: &mut [u8; MAX_LEN], @@ -93,6 +114,17 @@ impl TopDecodeInput for Box<[u8]> { (&*self).into_max_size_buffer(buffer, h) } + fn into_max_size_buffer_align_right( + self, + buffer: &mut [u8; MAX_LEN], + h: H, + ) -> Result + where + H: DecodeErrorHandler, + { + (&*self).into_max_size_buffer_align_right(buffer, h) + } + fn into_nested_buffer(self) -> Self::NestedBuffer { OwnedBytesNestedDecodeInput::new(self) } @@ -109,6 +141,7 @@ impl TopDecodeInput for Vec { vec_into_boxed_slice(self) } + #[allow(deprecated)] fn into_max_size_buffer( self, buffer: &mut [u8; MAX_LEN], @@ -120,6 +153,17 @@ impl TopDecodeInput for Vec { self.as_slice().into_max_size_buffer(buffer, h) } + fn into_max_size_buffer_align_right( + self, + buffer: &mut [u8; MAX_LEN], + h: H, + ) -> Result + where + H: DecodeErrorHandler, + { + self.as_slice().into_max_size_buffer_align_right(buffer, h) + } + fn into_nested_buffer(self) -> Self::NestedBuffer { OwnedBytesNestedDecodeInput::new(self.into_boxed_slice()) } @@ -152,6 +196,24 @@ impl<'a> TopDecodeInput for &'a [u8] { Ok(&buffer[..l]) } + fn into_max_size_buffer_align_right( + self, + buffer: &mut [u8; MAX_LEN], + h: H, + ) -> Result + where + H: DecodeErrorHandler, + { + let len = self.len(); + if len > MAX_LEN { + return Err(h.handle_error(DecodeError::INPUT_TOO_LONG)); + } + let target_start = MAX_LEN - len; + let byte_slice = &mut buffer[target_start..]; + byte_slice.copy_from_slice(self); + Ok(len) + } + #[inline] fn into_u64(self, _h: H) -> Result where diff --git a/framework/base/src/api/endpoint_arg_api.rs b/framework/base/src/api/endpoint_arg_api.rs index aa3201a07f..4d80935f52 100644 --- a/framework/base/src/api/endpoint_arg_api.rs +++ b/framework/base/src/api/endpoint_arg_api.rs @@ -59,7 +59,7 @@ pub trait EndpointArgumentApiImpl: ErrorApi + ManagedTypeApi { if let Some(value) = Self::managed_type_impl().bi_to_i64(big_int_temp_1) { value as u64 } else { - Self::error_api_impl().signal_error(err_msg::ARG_OUT_OF_RANGE) + Self::error_api_impl().signal_error(err_msg::ARG_OUT_OF_RANGE.as_bytes()) } } @@ -69,7 +69,7 @@ pub trait EndpointArgumentApiImpl: ErrorApi + ManagedTypeApi { if let Some(value) = Self::managed_type_impl().bi_to_i64(big_int_temp_1) { value } else { - Self::error_api_impl().signal_error(err_msg::ARG_OUT_OF_RANGE) + Self::error_api_impl().signal_error(err_msg::ARG_OUT_OF_RANGE.as_bytes()) } } diff --git a/framework/base/src/err_msg.rs b/framework/base/src/err_msg.rs index 46f43e3313..2a2ef7ad65 100644 --- a/framework/base/src/err_msg.rs +++ b/framework/base/src/err_msg.rs @@ -17,7 +17,7 @@ pub const ARG_ASYNC_RETURN_WRONG_NUMBER: &[u8] = pub const ARG_CALLBACK_TOO_FEW: &[u8] = b"too few callback arguments provided"; pub const ARG_CALLBACK_TOO_MANY: &[u8] = b"too many callback arguments provided"; -pub const ARG_OUT_OF_RANGE: &[u8] = b"argument out of range"; +pub const ARG_OUT_OF_RANGE: &str = "argument out of range"; pub const ARG_BAD_LENGTH: &[u8] = b"argument has wrong length"; pub const ARG_BAD_LENGTH_32: &[u8] = b"argument has wrong length: 32 bytes expected"; pub const ARG_DECODE_ERROR_1: &[u8] = b"argument decode error ("; diff --git a/framework/base/src/io/arg_de_input.rs b/framework/base/src/io/arg_de_input.rs index 42e4fc7f0f..98faef2899 100644 --- a/framework/base/src/io/arg_de_input.rs +++ b/framework/base/src/io/arg_de_input.rs @@ -92,6 +92,19 @@ where self.to_managed_buffer().into_max_size_buffer(buffer, h) } + #[inline] + fn into_max_size_buffer_align_right( + self, + buffer: &mut [u8; MAX_LEN], + h: H, + ) -> Result + where + H: DecodeErrorHandler, + { + self.to_managed_buffer() + .into_max_size_buffer_align_right(buffer, h) + } + #[inline] fn into_u64(self, _h: H) -> Result where diff --git a/framework/base/src/storage/mappers/map_storage_mapper.rs b/framework/base/src/storage/mappers/map_storage_mapper.rs index e19f005861..5b101452b8 100644 --- a/framework/base/src/storage/mappers/map_storage_mapper.rs +++ b/framework/base/src/storage/mappers/map_storage_mapper.rs @@ -7,6 +7,7 @@ use super::{ use crate::{ api::StorageMapperApi, codec::{NestedDecode, NestedEncode, TopDecode, TopEncode}, + contract_base::ErrorHelper, storage::{self, StorageKey}, types::ManagedAddress, }; @@ -232,7 +233,9 @@ where #[inline] fn next(&mut self) -> Option<(K, V)> { if let Some(key) = self.key_iter.next() { - let value = self.hash_map.get(&key).unwrap(); + let Some(value) = self.hash_map.get(&key) else { + ErrorHelper::::signal_error_with_message("missing key") + }; return Some((key, value)); } None diff --git a/framework/base/src/storage/storage_get.rs b/framework/base/src/storage/storage_get.rs index c4504df70f..7e9016c3a3 100644 --- a/framework/base/src/storage/storage_get.rs +++ b/framework/base/src/storage/storage_get.rs @@ -81,6 +81,27 @@ where self.to_managed_buffer().into_max_size_buffer(buffer, h) } + #[inline] + fn into_max_size_buffer_align_right( + self, + buffer: &mut [u8; MAX_LEN], + h: H, + ) -> Result + where + H: DecodeErrorHandler, + { + self.to_managed_buffer() + .into_max_size_buffer_align_right(buffer, h) + } + + #[inline] + fn into_i64(self, h: H) -> Result + where + H: DecodeErrorHandler, + { + self.to_managed_buffer().into_i64(h) + } + #[inline] fn supports_specialized_type() -> bool { T::type_eq::>() || T::type_eq::>() || T::type_eq::>() diff --git a/framework/base/src/storage/storage_get_from_address.rs b/framework/base/src/storage/storage_get_from_address.rs index 8cfeb531f1..2b2ac897f1 100644 --- a/framework/base/src/storage/storage_get_from_address.rs +++ b/framework/base/src/storage/storage_get_from_address.rs @@ -91,6 +91,27 @@ where self.to_managed_buffer().into_max_size_buffer(buffer, h) } + #[inline] + fn into_max_size_buffer_align_right( + self, + buffer: &mut [u8; MAX_LEN], + h: H, + ) -> Result + where + H: DecodeErrorHandler, + { + self.to_managed_buffer() + .into_max_size_buffer_align_right(buffer, h) + } + + #[inline] + fn into_i64(self, h: H) -> Result + where + H: DecodeErrorHandler, + { + self.to_managed_buffer().into_i64(h) + } + #[inline] fn supports_specialized_type() -> bool { T::type_eq::>() || T::type_eq::>() || T::type_eq::>() diff --git a/framework/base/src/types/io/operation_completion_status.rs b/framework/base/src/types/io/operation_completion_status.rs index a7e030ab96..7ae9df69f8 100644 --- a/framework/base/src/types/io/operation_completion_status.rs +++ b/framework/base/src/types/io/operation_completion_status.rs @@ -58,12 +58,14 @@ impl TopDecode for OperationCompletionStatus { I: TopDecodeInput, H: DecodeErrorHandler, { - let mut buffer = [0u8; 16]; - input.into_max_size_buffer(&mut buffer, h)?; + const BUFFER_LEN: usize = 16; + let mut buffer = [0u8; BUFFER_LEN]; + let len = input.into_max_size_buffer_align_right(&mut buffer, h)?; + let bytes = &buffer[BUFFER_LEN - len..]; - if buffer.starts_with(COMPLETED_STR.as_bytes()) { + if bytes.starts_with(COMPLETED_STR.as_bytes()) { Ok(OperationCompletionStatus::Completed) - } else if buffer.starts_with(INTERRUPTED_STR.as_bytes()) { + } else if bytes.starts_with(INTERRUPTED_STR.as_bytes()) { Ok(OperationCompletionStatus::InterruptedBeforeOutOfGas) } else { Err(h.handle_error(DecodeError::INVALID_VALUE)) diff --git a/framework/base/src/types/managed/codec_util/managed_buffer_top_de_input.rs b/framework/base/src/types/managed/codec_util/managed_buffer_top_de_input.rs index acc280de1d..fb091781a2 100644 --- a/framework/base/src/types/managed/codec_util/managed_buffer_top_de_input.rs +++ b/framework/base/src/types/managed/codec_util/managed_buffer_top_de_input.rs @@ -1,12 +1,15 @@ -use crate::codec::{ - try_execute_then_cast, DecodeError, DecodeErrorHandler, TopDecodeInput, TryStaticCast, -}; -use alloc::boxed::Box; - use crate::{ - api::ManagedTypeApi, + api::{ + const_handles, managed_types::BigIntApiImpl, use_raw_handle, ManagedTypeApi, + ManagedTypeApiImpl, + }, + codec::{ + try_execute_then_cast, DecodeError, DecodeErrorHandler, TopDecodeInput, TryStaticCast, + }, + err_msg, types::{BigInt, BigUint, ManagedBuffer}, }; +use alloc::boxed::Box; use super::ManagedBufferNestedDecodeInput; @@ -41,6 +44,38 @@ where Ok(byte_slice) } + fn into_max_size_buffer_align_right( + self, + buffer: &mut [u8; MAX_LEN], + h: H, + ) -> Result + where + H: DecodeErrorHandler, + { + let len = self.len(); + if len > MAX_LEN { + return Err(h.handle_error(DecodeError::INPUT_TOO_LONG)); + } + unsafe { + let byte_slice = buffer.get_unchecked_mut(MAX_LEN - len..); + let _ = self.load_slice(0, byte_slice); + } + Ok(len) + } + + fn into_i64(self, h: H) -> Result + where + H: DecodeErrorHandler, + { + let big_int_temp: M::BigIntHandle = use_raw_handle(const_handles::BIG_INT_TEMPORARY_1); + M::managed_type_impl().mb_to_big_int_signed(self.handle.clone(), big_int_temp.clone()); + if let Some(value) = M::managed_type_impl().bi_to_i64(big_int_temp) { + Ok(value) + } else { + Err(h.handle_error(err_msg::ARG_OUT_OF_RANGE.into())) + } + } + #[inline] fn supports_specialized_type() -> bool { T::type_eq::>() || T::type_eq::>() || T::type_eq::>() From 5bf1b8edc643fd55eff3364ea716f5dab344f631 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 30 Apr 2024 13:54:35 +0300 Subject: [PATCH 102/185] renamed ReturnsResultAs --- .../examples/adder/interact/src/basic_interact.rs | 2 +- .../tests/st_blackbox_legacy_proxy_test.rs | 2 +- .../scenario-tester/tests/st_blackbox_test.rs | 2 +- .../interaction/result_handlers/returns_result_conv.rs | 10 +++++----- .../scenario/src/facade/world_tx/scenario_rh_impl.rs | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/contracts/examples/adder/interact/src/basic_interact.rs b/contracts/examples/adder/interact/src/basic_interact.rs index a0fa99f17a..b0c38bb4bb 100644 --- a/contracts/examples/adder/interact/src/basic_interact.rs +++ b/contracts/examples/adder/interact/src/basic_interact.rs @@ -152,7 +152,7 @@ impl AdderInteract { .to(self.state.current_adder_address()) .typed(adder_proxy::AdderProxy) .sum() - .returns(ReturnsResultConv::::new()) + .returns(ReturnsResultAs::::new()) .prepare_async() .run() .await; diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs index 7dfd815d55..b20fbff6f3 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs @@ -51,7 +51,7 @@ fn st_blackbox_legacy_proxy() { let value = world .query() .call(st_contract.sum()) - .returns(ReturnsResultConv::>::new()) + .returns(ReturnsResultAs::>::new()) .run(); assert_eq!(value.into(), BigUint::from(5u32)); diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 9f0b9091d3..75d8448c3b 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -66,7 +66,7 @@ fn st_blackbox() { .to(ST_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .sum() - .returns(ReturnsResultConv::::new()) + .returns(ReturnsResultAs::::new()) .run(); assert_eq!(value, BigUint::from(5u32)); diff --git a/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs b/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs index 1583d0ecbe..05f2dfaa3d 100644 --- a/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs +++ b/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs @@ -9,11 +9,11 @@ use crate::types::{ /// Indicates that result will be returned. /// /// Value will be converted to type `T`, which should be compatible with the original type. -pub struct ReturnsResultConv { +pub struct ReturnsResultAs { _phantom: PhantomData, } -impl Default for ReturnsResultConv { +impl Default for ReturnsResultAs { fn default() -> Self { Self { _phantom: Default::default(), @@ -21,13 +21,13 @@ impl Default for ReturnsResultConv { } } -impl ReturnsResultConv { +impl ReturnsResultAs { pub fn new() -> Self { Self::default() } } -impl RHListItem for ReturnsResultConv +impl RHListItem for ReturnsResultAs where Env: TxEnv, Original: TopEncodeMulti, @@ -37,7 +37,7 @@ where } impl RHListItemExec, Env, Original> - for ReturnsResultConv + for ReturnsResultAs where Env: TxEnv, Original: TopEncodeMulti, diff --git a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs index d040f0bc3a..343fdc8382 100644 --- a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs +++ b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs @@ -2,7 +2,7 @@ use multiversx_sc::{ codec::{CodecFrom, TopDecodeMulti, TopEncodeMulti}, types::{ ManagedAddress, RHListItemExec, ReturnsNewAddress, ReturnsNewManagedAddress, ReturnsResult, - ReturnsResultConv, TxEnv, WithNewAddress, WithResultConv, + ReturnsResultAs, TxEnv, WithNewAddress, WithResultConv, }, }; @@ -21,7 +21,7 @@ where } } -impl RHListItemExec for ReturnsResultConv +impl RHListItemExec for ReturnsResultAs where Env: TxEnv, Original: TopEncodeMulti, @@ -31,7 +31,7 @@ where let response = TypedResponse::::from_raw(tx_response); response .result - .expect("ReturnsResultConv expects that transaction is successful") + .expect("ReturnsResultAs expects that transaction is successful") } } From 533f31c76286069d8358ba3ec8e4912a283bd2ea Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 30 Apr 2024 15:22:08 +0300 Subject: [PATCH 103/185] cleanup --- data/codec/src/num_conv.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/data/codec/src/num_conv.rs b/data/codec/src/num_conv.rs index f68671596e..978aab3280 100644 --- a/data/codec/src/num_conv.rs +++ b/data/codec/src/num_conv.rs @@ -122,7 +122,6 @@ pub fn universal_decode_number_unchecked(bytes: &[u8], signed: bool) -> u64 { unsafe { universal_decode_number_impl(bytes.as_ptr(), bytes.len(), signed) } } -#[inline(never)] unsafe fn universal_decode_number_impl(bytes: *const u8, len: usize, signed: bool) -> u64 { let negative = signed && len > 0 && msbit_is_one(*bytes); let skippable_byte = skippable_byte(negative); From 02751856a8084dfd1d0cf43d2cb39f1f6bc3c016 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 30 Apr 2024 18:08:52 +0300 Subject: [PATCH 104/185] increase code coverage - make optional param in esdt_nft_all_properties --- .../composability/forwarder/sc-config.toml | 5 + .../forwarder/src/forwarder_main.rs | 1 + .../forwarder/src/forwarder_proxy.rs | 1126 +++++++++++++++++ 3 files changed, 1132 insertions(+) create mode 100644 contracts/feature-tests/composability/forwarder/sc-config.toml create mode 100644 contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs diff --git a/contracts/feature-tests/composability/forwarder/sc-config.toml b/contracts/feature-tests/composability/forwarder/sc-config.toml new file mode 100644 index 0000000000..b12e3401e6 --- /dev/null +++ b/contracts/feature-tests/composability/forwarder/sc-config.toml @@ -0,0 +1,5 @@ +[[proxy]] +path = "src/forwarder_proxy.rs" +[[proxy.path-rename]] +from = "multiversx_sc::types::flags::esdt_token_type::" +to = "" diff --git a/contracts/feature-tests/composability/forwarder/src/forwarder_main.rs b/contracts/feature-tests/composability/forwarder/src/forwarder_main.rs index 92d3289a21..7ded2d1957 100644 --- a/contracts/feature-tests/composability/forwarder/src/forwarder_main.rs +++ b/contracts/feature-tests/composability/forwarder/src/forwarder_main.rs @@ -13,6 +13,7 @@ pub mod roles; pub mod sft; pub mod storage; pub mod vault_proxy; +pub mod forwarder_proxy; multiversx_sc::imports!(); diff --git a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs new file mode 100644 index 0000000000..5c859a5169 --- /dev/null +++ b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs @@ -0,0 +1,1126 @@ +// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +#![allow(dead_code)] +#![allow(clippy::all)] + +use multiversx_sc::proxy_imports::*; + +pub struct ForwarderProxy; + +impl TxProxyTrait for ForwarderProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = ForwarderProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + ForwarderProxyMethods { wrapped_tx: tx } + } +} + +pub struct ForwarderProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl ForwarderProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init( + self, + ) -> TxProxyDeploy { + self.wrapped_tx + .raw_deploy() + .original_result() + } +} + +#[rustfmt::skip] +impl ForwarderProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn send_egld< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + to: Arg0, + amount: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("send_egld") + .argument(&to) + .argument(&amount) + .original_result() + } + + pub fn echo_arguments_sync< + Arg0: CodecInto>, + Arg1: CodecInto>>, + >( + self, + to: Arg0, + args: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("echo_arguments_sync") + .argument(&to) + .argument(&args) + .original_result() + } + + pub fn echo_arguments_sync_twice< + Arg0: CodecInto>, + Arg1: CodecInto>>, + >( + self, + to: Arg0, + args: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("echo_arguments_sync_twice") + .argument(&to) + .argument(&args) + .original_result() + } + + pub fn forward_sync_accept_funds< + Arg0: CodecInto>, + >( + self, + to: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_sync_accept_funds") + .argument(&to) + .original_result() + } + + pub fn forward_sync_accept_funds_with_fees< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + to: Arg0, + percentage_fees: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_sync_accept_funds_with_fees") + .argument(&to) + .argument(&percentage_fees) + .original_result() + } + + pub fn forward_sync_accept_funds_then_read< + Arg0: CodecInto>, + >( + self, + to: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_sync_accept_funds_then_read") + .argument(&to) + .original_result() + } + + pub fn forward_sync_retrieve_funds< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto>, + >( + self, + to: Arg0, + token: Arg1, + token_nonce: Arg2, + amount: Arg3, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_sync_retrieve_funds") + .argument(&to) + .argument(&token) + .argument(&token_nonce) + .argument(&amount) + .original_result() + } + + pub fn forward_sync_retrieve_funds_with_accept_func< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + >( + self, + to: Arg0, + token: Arg1, + amount: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_sync_retrieve_funds_with_accept_func") + .argument(&to) + .argument(&token) + .argument(&amount) + .original_result() + } + + pub fn accept_funds_func( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("accept_funds_func") + .original_result() + } + + pub fn forward_sync_accept_funds_multi_transfer< + Arg0: CodecInto>, + Arg1: CodecInto, u64, BigUint>>>, + >( + self, + to: Arg0, + token_payments: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_sync_accept_funds_multi_transfer") + .argument(&to) + .argument(&token_payments) + .original_result() + } + + pub fn echo_args_async< + Arg0: CodecInto>, + Arg1: CodecInto>>, + >( + self, + to: Arg0, + args: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("echo_args_async") + .argument(&to) + .argument(&args) + .original_result() + } + + pub fn forward_async_accept_funds< + Arg0: CodecInto>, + >( + self, + to: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_async_accept_funds") + .argument(&to) + .original_result() + } + + pub fn forward_async_accept_funds_half_payment< + Arg0: CodecInto>, + >( + self, + to: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_async_accept_funds_half_payment") + .argument(&to) + .original_result() + } + + pub fn forward_async_accept_funds_with_fees< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + to: Arg0, + percentage_fees: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_async_accept_funds_with_fees") + .argument(&to) + .argument(&percentage_fees) + .original_result() + } + + pub fn forward_async_retrieve_funds< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto>, + >( + self, + to: Arg0, + token: Arg1, + token_nonce: Arg2, + amount: Arg3, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_async_retrieve_funds") + .argument(&to) + .argument(&token) + .argument(&token_nonce) + .argument(&amount) + .original_result() + } + + pub fn send_funds_twice< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + >( + self, + to: Arg0, + token_identifier: Arg1, + amount: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("send_funds_twice") + .argument(&to) + .argument(&token_identifier) + .argument(&amount) + .original_result() + } + + pub fn send_async_accept_multi_transfer< + Arg0: CodecInto>, + Arg1: CodecInto, u64, BigUint>>>, + >( + self, + to: Arg0, + token_payments: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("send_async_accept_multi_transfer") + .argument(&to) + .argument(&token_payments) + .original_result() + } + + pub fn callback_data( + self, + ) -> TxProxyCall>> { + self.wrapped_tx + .raw_call("callback_data") + .original_result() + } + + pub fn callback_data_at_index< + Arg0: CodecInto, + >( + self, + index: Arg0, + ) -> TxProxyCall, EgldOrEsdtTokenIdentifier, u64, BigUint, MultiValueManagedVec>>> { + self.wrapped_tx + .raw_call("callback_data_at_index") + .argument(&index) + .original_result() + } + + pub fn clear_callback_data( + self, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("clear_callback_data") + .original_result() + } + + pub fn forward_transf_exec_accept_funds< + Arg0: CodecInto>, + >( + self, + to: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_transf_exec_accept_funds") + .argument(&to) + .original_result() + } + + pub fn forward_transf_execu_accept_funds_with_fees< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + to: Arg0, + percentage_fees: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_transf_execu_accept_funds_with_fees") + .argument(&to) + .argument(&percentage_fees) + .original_result() + } + + pub fn forward_transf_exec_accept_funds_twice< + Arg0: CodecInto>, + >( + self, + to: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_transf_exec_accept_funds_twice") + .argument(&to) + .original_result() + } + + /// Test that the default gas provided to the transfer_execute call + /// leaves enough in the transaction for finish to happen. + pub fn forward_transf_exec_accept_funds_return_values< + Arg0: CodecInto>, + >( + self, + to: Arg0, + ) -> TxProxyCall, EgldOrEsdtTokenIdentifier>> { + self.wrapped_tx + .raw_call("forward_transf_exec_accept_funds_return_values") + .argument(&to) + .original_result() + } + + pub fn transf_exec_multi_accept_funds< + Arg0: CodecInto>, + Arg1: CodecInto, u64, BigUint>>>, + >( + self, + to: Arg0, + token_payments: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("transf_exec_multi_accept_funds") + .argument(&to) + .argument(&token_payments) + .original_result() + } + + pub fn forward_transf_exec_reject_funds_multi_transfer< + Arg0: CodecInto>, + Arg1: CodecInto, u64, BigUint>>>, + >( + self, + to: Arg0, + token_payments: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("forward_transf_exec_reject_funds_multi_transfer") + .argument(&to) + .argument(&token_payments) + .original_result() + } + + pub fn transf_exec_multi_reject_funds< + Arg0: CodecInto>, + Arg1: CodecInto, u64, BigUint>>>, + >( + self, + to: Arg0, + token_payments: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("transf_exec_multi_reject_funds") + .argument(&to) + .argument(&token_payments) + .original_result() + } + + pub fn change_owner< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + child_sc_address: Arg0, + new_owner: Arg1, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("changeOwnerAddress") + .argument(&child_sc_address) + .argument(&new_owner) + .original_result() + } + + pub fn deploy_contract< + Arg0: CodecInto>, + Arg1: CodecInto>>, + >( + self, + code: Arg0, + opt_arg: Arg1, + ) -> TxProxyCall, OptionalValue>>> { + self.wrapped_tx + .raw_call("deploy_contract") + .argument(&code) + .argument(&opt_arg) + .original_result() + } + + pub fn deploy_two_contracts< + Arg0: CodecInto>, + >( + self, + code: Arg0, + ) -> TxProxyCall, ManagedAddress>> { + self.wrapped_tx + .raw_call("deploy_two_contracts") + .argument(&code) + .original_result() + } + + pub fn deploy_vault_from_source< + Arg0: CodecInto>, + Arg1: CodecInto>>, + >( + self, + source_address: Arg0, + opt_arg: Arg1, + ) -> TxProxyCall, OptionalValue>>> { + self.wrapped_tx + .raw_call("deploy_vault_from_source") + .argument(&source_address) + .argument(&opt_arg) + .original_result() + } + + pub fn upgrade_vault< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>>, + >( + self, + child_sc_address: Arg0, + new_code: Arg1, + opt_arg: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("upgradeVault") + .argument(&child_sc_address) + .argument(&new_code) + .argument(&opt_arg) + .original_result() + } + + pub fn upgrade_vault_from_source< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>>, + >( + self, + child_sc_address: Arg0, + source_address: Arg1, + opt_arg: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("upgrade_vault_from_source") + .argument(&child_sc_address) + .argument(&source_address) + .argument(&opt_arg) + .original_result() + } + + pub fn get_fungible_esdt_balance< + Arg0: CodecInto>, + >( + self, + token_identifier: Arg0, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("getFungibleEsdtBalance") + .argument(&token_identifier) + .original_result() + } + + pub fn get_current_nft_nonce< + Arg0: CodecInto>, + >( + self, + token_identifier: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("getCurrentNftNonce") + .argument(&token_identifier) + .original_result() + } + + pub fn send_esdt< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + >( + self, + to: Arg0, + token_id: Arg1, + amount: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("send_esdt") + .argument(&to) + .argument(&token_id) + .argument(&amount) + .original_result() + } + + pub fn send_esdt_with_fees< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + to: Arg0, + percentage_fees: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("send_esdt_with_fees") + .argument(&to) + .argument(&percentage_fees) + .original_result() + } + + pub fn send_esdt_twice< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + Arg3: CodecInto>, + >( + self, + to: Arg0, + token_id: Arg1, + amount_first_time: Arg2, + amount_second_time: Arg3, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("send_esdt_twice") + .argument(&to) + .argument(&token_id) + .argument(&amount_first_time) + .argument(&amount_second_time) + .original_result() + } + + pub fn send_esdt_direct_multi_transfer< + Arg0: CodecInto>, + Arg1: CodecInto, u64, BigUint>>>, + >( + self, + to: Arg0, + token_payments: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("send_esdt_direct_multi_transfer") + .argument(&to) + .argument(&token_payments) + .original_result() + } + + pub fn issue_fungible_token< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + >( + self, + token_display_name: Arg0, + token_ticker: Arg1, + initial_supply: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("issue_fungible_token") + .argument(&token_display_name) + .argument(&token_ticker) + .argument(&initial_supply) + .original_result() + } + + pub fn local_mint< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + token_identifier: Arg0, + amount: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("local_mint") + .argument(&token_identifier) + .argument(&amount) + .original_result() + } + + pub fn local_burn< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + token_identifier: Arg0, + amount: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("local_burn") + .argument(&token_identifier) + .argument(&amount) + .original_result() + } + + pub fn get_esdt_local_roles< + Arg0: CodecInto>, + >( + self, + token_id: Arg0, + ) -> TxProxyCall>> { + self.wrapped_tx + .raw_call("get_esdt_local_roles") + .argument(&token_id) + .original_result() + } + + pub fn get_esdt_token_data< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + >( + self, + address: Arg0, + token_id: Arg1, + nonce: Arg2, + ) -> TxProxyCall, bool, ManagedBuffer, ManagedBuffer, ManagedBuffer, ManagedAddress, BigUint, ManagedVec>>> { + self.wrapped_tx + .raw_call("get_esdt_token_data") + .argument(&address) + .argument(&token_id) + .argument(&nonce) + .original_result() + } + + pub fn is_esdt_frozen< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + >( + self, + address: Arg0, + token_id: Arg1, + nonce: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("is_esdt_frozen") + .argument(&address) + .argument(&token_id) + .argument(&nonce) + .original_result() + } + + pub fn is_esdt_paused< + Arg0: CodecInto>, + >( + self, + token_id: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("is_esdt_paused") + .argument(&token_id) + .original_result() + } + + pub fn is_esdt_limited_transfer< + Arg0: CodecInto>, + >( + self, + token_id: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("is_esdt_limited_transfer") + .argument(&token_id) + .original_result() + } + + pub fn validate_token_identifier< + Arg0: CodecInto>, + >( + self, + token_id: Arg0, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("validate_token_identifier") + .argument(&token_id) + .original_result() + } + + pub fn sft_issue< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + token_display_name: Arg0, + token_ticker: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("sft_issue") + .argument(&token_display_name) + .argument(&token_ticker) + .original_result() + } + + pub fn get_nft_balance< + Arg0: CodecInto>, + Arg1: CodecInto, + >( + self, + token_identifier: Arg0, + nonce: Arg1, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("get_nft_balance") + .argument(&token_identifier) + .argument(&nonce) + .original_result() + } + + pub fn buy_nft< + Arg0: CodecInto>, + Arg1: CodecInto, + Arg2: CodecInto>, + >( + self, + nft_id: Arg0, + nft_nonce: Arg1, + nft_amount: Arg2, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("buy_nft") + .argument(&nft_id) + .argument(&nft_nonce) + .argument(&nft_amount) + .original_result() + } + + pub fn nft_issue< + Arg0: CodecInto>, + Arg1: CodecInto>, + >( + self, + token_display_name: Arg0, + token_ticker: Arg1, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("nft_issue") + .argument(&token_display_name) + .argument(&token_ticker) + .original_result() + } + + pub fn nft_create< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + Arg3: CodecInto>, + Arg4: CodecInto>, + Arg5: CodecInto, + Arg6: CodecInto>, + >( + self, + token_identifier: Arg0, + amount: Arg1, + name: Arg2, + royalties: Arg3, + hash: Arg4, + color: Arg5, + uri: Arg6, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("nft_create") + .argument(&token_identifier) + .argument(&amount) + .argument(&name) + .argument(&royalties) + .argument(&hash) + .argument(&color) + .argument(&uri) + .original_result() + } + + pub fn nft_create_compact< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + >( + self, + token_identifier: Arg0, + amount: Arg1, + color: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("nft_create_compact") + .argument(&token_identifier) + .argument(&amount) + .argument(&color) + .original_result() + } + + pub fn nft_add_uris< + Arg0: CodecInto>, + Arg1: CodecInto, + Arg2: CodecInto>>, + >( + self, + token_identifier: Arg0, + nonce: Arg1, + uris: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("nft_add_uris") + .argument(&token_identifier) + .argument(&nonce) + .argument(&uris) + .original_result() + } + + pub fn nft_update_attributes< + Arg0: CodecInto>, + Arg1: CodecInto, + Arg2: CodecInto, + >( + self, + token_identifier: Arg0, + nonce: Arg1, + new_attributes: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("nft_update_attributes") + .argument(&token_identifier) + .argument(&nonce) + .argument(&new_attributes) + .original_result() + } + + pub fn nft_decode_complex_attributes< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + Arg3: CodecInto>, + Arg4: CodecInto>, + Arg5: CodecInto>, + Arg6: CodecInto, ManagedBuffer, TokenIdentifier, bool, ManagedBuffer>>, + >( + self, + token_identifier: Arg0, + amount: Arg1, + name: Arg2, + royalties: Arg3, + hash: Arg4, + uri: Arg5, + attrs_arg: Arg6, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("nft_decode_complex_attributes") + .argument(&token_identifier) + .argument(&amount) + .argument(&name) + .argument(&royalties) + .argument(&hash) + .argument(&uri) + .argument(&attrs_arg) + .original_result() + } + + pub fn nft_add_quantity< + Arg0: CodecInto>, + Arg1: CodecInto, + Arg2: CodecInto>, + >( + self, + token_identifier: Arg0, + nonce: Arg1, + amount: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("nft_add_quantity") + .argument(&token_identifier) + .argument(&nonce) + .argument(&amount) + .original_result() + } + + pub fn nft_burn< + Arg0: CodecInto>, + Arg1: CodecInto, + Arg2: CodecInto>, + >( + self, + token_identifier: Arg0, + nonce: Arg1, + amount: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("nft_burn") + .argument(&token_identifier) + .argument(&nonce) + .argument(&amount) + .original_result() + } + + pub fn transfer_nft_via_async_call< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto>, + >( + self, + to: Arg0, + token_identifier: Arg1, + nonce: Arg2, + amount: Arg3, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("transfer_nft_via_async_call") + .argument(&to) + .argument(&token_identifier) + .argument(&nonce) + .argument(&amount) + .original_result() + } + + pub fn transfer_nft_and_execute< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto, + Arg3: CodecInto>, + Arg4: CodecInto>, + Arg5: CodecInto>>, + >( + self, + to: Arg0, + token_identifier: Arg1, + nonce: Arg2, + amount: Arg3, + function: Arg4, + arguments: Arg5, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("transfer_nft_and_execute") + .argument(&to) + .argument(&token_identifier) + .argument(&nonce) + .argument(&amount) + .argument(&function) + .argument(&arguments) + .original_result() + } + + pub fn create_and_send< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + Arg3: CodecInto>, + Arg4: CodecInto>, + Arg5: CodecInto>, + Arg6: CodecInto, + Arg7: CodecInto>, + >( + self, + to: Arg0, + token_identifier: Arg1, + amount: Arg2, + name: Arg3, + royalties: Arg4, + hash: Arg5, + color: Arg6, + uri: Arg7, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("create_and_send") + .argument(&to) + .argument(&token_identifier) + .argument(&amount) + .argument(&name) + .argument(&royalties) + .argument(&hash) + .argument(&color) + .argument(&uri) + .original_result() + } + + pub fn set_local_roles< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + >( + self, + address: Arg0, + token_identifier: Arg1, + roles: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("setLocalRoles") + .argument(&address) + .argument(&token_identifier) + .argument(&roles) + .original_result() + } + + pub fn unset_local_roles< + Arg0: CodecInto>, + Arg1: CodecInto>, + Arg2: CodecInto>, + >( + self, + address: Arg0, + token_identifier: Arg1, + roles: Arg2, + ) -> TxProxyCall { + self.wrapped_tx + .raw_call("unsetLocalRoles") + .argument(&address) + .argument(&token_identifier) + .argument(&roles) + .original_result() + } + + pub fn last_issued_token( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("lastIssuedToken") + .original_result() + } + + pub fn last_error_message( + self, + ) -> TxProxyCall> { + self.wrapped_tx + .raw_call("lastErrorMessage") + .original_result() + } +} + +#[derive(TopEncode, TopDecode)] +pub struct CallbackData +where + Api: ManagedTypeApi, +{ + pub callback_name: ManagedBuffer, + pub token_identifier: EgldOrEsdtTokenIdentifier, + pub token_nonce: u64, + pub token_amount: BigUint, + pub args: ManagedVec>, +} + +#[derive(TopEncode, TopDecode)] +pub struct Color { + pub r: u8, + pub g: u8, + pub b: u8, +} From 07847bdf41ad938b5de8d7f7c532c3347e8b2c77 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 30 Apr 2024 18:11:19 +0300 Subject: [PATCH 105/185] increase code coverage - migrate forwarder blackbox to unified syntax --- .../tests/forwarder_blackbox_test.rs | 131 ++++++++---------- .../scenario-tester/tests/st_blackbox_test.rs | 54 +++++++- .../scenario_set_account.rs | 6 +- 3 files changed, 109 insertions(+), 82 deletions(-) diff --git a/contracts/feature-tests/composability/tests/forwarder_blackbox_test.rs b/contracts/feature-tests/composability/tests/forwarder_blackbox_test.rs index f6812aa0bc..73b1b92488 100644 --- a/contracts/feature-tests/composability/tests/forwarder_blackbox_test.rs +++ b/contracts/feature-tests/composability/tests/forwarder_blackbox_test.rs @@ -1,57 +1,42 @@ -use forwarder::nft::{Color, ProxyTrait as _}; +use forwarder::forwarder_proxy; use multiversx_sc_scenario::imports::*; -const USER_ADDRESS_EXPR: &str = "address:user"; -const FORWARDER_ADDRESS_EXPR: &str = "sc:forwarder"; -const FORWARDER_PATH_EXPR: &str = "mxsc:output/forwarder.mxsc.json"; +const USER_ADDRESS: TestAddress = TestAddress::new("user"); +const FORWARDER_ADDRESS: TestSCAddress = TestSCAddress::new("forwarder"); +const FORWARDER_PATH: MxscPath = MxscPath::new("output/forwarder.mxsc.json"); -const NFT_TOKEN_ID_EXPR: &str = "str:COOL-123456"; -const NFT_TOKEN_ID: &[u8] = b"COOL-123456"; - -type ForwarderContract = ContractInfo>; +const NFT_TOKEN_ID: TestTokenIdentifier = TestTokenIdentifier::new("COOL-123456"); +const NFT_TOKEN: &[u8] = b"COOL-123456"; fn world() -> ScenarioWorld { let mut blockchain = ScenarioWorld::new(); - blockchain.set_current_dir_from_workspace("contracts/composability/forwarder"); - blockchain.register_contract(FORWARDER_PATH_EXPR, forwarder::ContractBuilder); + blockchain.register_contract(FORWARDER_PATH, forwarder::ContractBuilder); blockchain } struct ForwarderTestState { world: ScenarioWorld, - forwarder_contract: ForwarderContract, } impl ForwarderTestState { fn new() -> Self { let mut world = world(); - let forwarder_code = world.code_expression(FORWARDER_PATH_EXPR); let roles = vec![ "ESDTRoleNFTCreate".to_string(), "ESDTRoleNFTUpdateAttributes".to_string(), ]; - world.set_state_step( - SetStateStep::new() - .put_account(USER_ADDRESS_EXPR, Account::new().nonce(1)) - .put_account( - FORWARDER_ADDRESS_EXPR, - Account::new() - .nonce(1) - .code(forwarder_code) - .esdt_roles(NFT_TOKEN_ID_EXPR, roles), - ), - ); - - let forwarder_contract = ForwarderContract::new(FORWARDER_ADDRESS_EXPR); + world.account(USER_ADDRESS).nonce(1); + world + .account(FORWARDER_ADDRESS) + .nonce(1) + .code(FORWARDER_PATH) + .esdt_roles(NFT_TOKEN_ID, roles); - Self { - world, - forwarder_contract, - } + Self { world } } } @@ -59,72 +44,72 @@ impl ForwarderTestState { fn test_nft_update_attributes_and_send() { let mut state = ForwarderTestState::new(); - let original_attributes = Color { r: 0, g: 0, b: 0 }; + let original_attributes = forwarder_proxy::Color { r: 0, g: 0, b: 0 }; + let original_attributes_bytes: &[u8] = &[ + original_attributes.r, + original_attributes.g, + original_attributes.b, + ]; - state.world.sc_call( - ScCallStep::new().from(USER_ADDRESS_EXPR).call( - state - .forwarder_contract - .nft_create_compact(NFT_TOKEN_ID, 1u64, original_attributes), - ), - ); + state + .world + .tx() + .from(USER_ADDRESS) + .to(FORWARDER_ADDRESS) + .typed(forwarder_proxy::ForwarderProxy) + .nft_create_compact(NFT_TOKEN_ID, 1u64, original_attributes) + .run(); state.world.transfer_step( TransferStep::new() - .from(FORWARDER_ADDRESS_EXPR) - .to(USER_ADDRESS_EXPR) - .esdt_transfer(NFT_TOKEN_ID, 1, "1"), + .from(FORWARDER_ADDRESS.eval_to_expr().as_str()) + .to(USER_ADDRESS.eval_to_expr().as_str()) + .esdt_transfer(NFT_TOKEN, 1, "1"), ); state .world - .check_state_step(CheckStateStep::new().put_account( - USER_ADDRESS_EXPR, - CheckAccount::new().esdt_nft_balance_and_attributes( - NFT_TOKEN_ID_EXPR, - 1, - "1", - Some(original_attributes), - ), - )); - - let new_attributes = Color { + .check_account(USER_ADDRESS) + .esdt_nft_balance_and_attributes( + NFT_TOKEN_ID, + 1, + 1, + managed_buffer!(original_attributes_bytes), + ); + + let new_attributes = forwarder_proxy::Color { r: 255, g: 255, b: 255, }; + let new_attributes_bytes: &[u8] = &[new_attributes.r, new_attributes.g, new_attributes.b]; + state.world.transfer_step( TransferStep::new() - .from(USER_ADDRESS_EXPR) - .to(FORWARDER_ADDRESS_EXPR) - .esdt_transfer(NFT_TOKEN_ID, 1, "1"), + .from(USER_ADDRESS.eval_to_expr().as_str()) + .to(FORWARDER_ADDRESS.eval_to_expr().as_str()) + .esdt_transfer(NFT_TOKEN, 1, "1"), ); - state.world.sc_call( - ScCallStep::new().from(USER_ADDRESS_EXPR).call( - state - .forwarder_contract - .nft_update_attributes(NFT_TOKEN_ID, 1u64, new_attributes), - ), - ); + state + .world + .tx() + .from(USER_ADDRESS) + .to(FORWARDER_ADDRESS) + .typed(forwarder_proxy::ForwarderProxy) + .nft_update_attributes(NFT_TOKEN_ID, 1u64, new_attributes) + .run(); state.world.transfer_step( TransferStep::new() - .from(FORWARDER_ADDRESS_EXPR) - .to(USER_ADDRESS_EXPR) - .esdt_transfer(NFT_TOKEN_ID, 1, "1"), + .from(FORWARDER_ADDRESS.eval_to_expr().as_str()) + .to(USER_ADDRESS.eval_to_expr().as_str()) + .esdt_transfer(NFT_TOKEN, 1, "1"), ); state .world - .check_state_step(CheckStateStep::new().put_account( - USER_ADDRESS_EXPR, - CheckAccount::new().esdt_nft_balance_and_attributes( - NFT_TOKEN_ID_EXPR, - 1, - "1", - Some(new_attributes), - ), - )); + .check_account(USER_ADDRESS) + .esdt_nft_balance_and_attributes(NFT_TOKEN_ID, 1, 1, managed_buffer!(new_attributes_bytes)); } diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 9f0b9091d3..fe144c875e 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -4,6 +4,8 @@ use num_bigint::BigUint; use scenario_tester::*; const SC_SCENARIO_TESTER_PATH_EXPR: &str = "mxsc:output/scenario-tester.mxsc.json"; +const FOURTH_ATTRIBUTES: &[u8] = b"FourthhAttributes"; +const FOURTH_URIS: &[&[u8]] = &[b"FirstUri", b"SecondUri"]; const OWNER_ADDRESS: TestAddress = TestAddress::new("owner"); const OTHER_ADDRESS: TestAddress = TestAddress::new("other"); @@ -106,6 +108,8 @@ fn set_state_test() { let fourth = TestAddress::new("fourth"); let fifth = TestAddress::new("fifth"); let sixth = TestAddress::new("sixth"); + let seventh = TestAddress::new("seventh"); + let eighth = TestAddress::new("eighth"); world.start_trace(); @@ -143,33 +147,71 @@ fn set_state_test() { .esdt_nft_balance_and_attributes(NFT_ID, 2, 1, ()) .commit(); - // using no commit should drop the value naturally + let fourth_uris = FOURTH_URIS + .iter() + .map(|first_uri| managed_buffer!(first_uri)) + .collect(); world .account(fourth) + .nonce(3) + .balance(50) + .esdt_nft_all_properties( + NFT_ID, + 2, + 1, + managed_buffer!(FOURTH_ATTRIBUTES), + 1000, + None::
, + (), + fourth_uris, + ) + .commit(); + + world + .check_account(fourth) + .nonce(3) + .balance(50) + .esdt_nft_balance_and_attributes(NFT_ID, 2, 1, managed_buffer!(FOURTH_ATTRIBUTES)) + .commit(); + + world + .account(fifth) + .nonce(2) + .balance(30) + .esdt_nft_last_nonce(NFT_ID, 5); + world + .check_account(fifth) + .nonce(2) + .balance(30) + .esdt_nft_balance_and_attributes(NFT_ID, 5, 0, ()); + + // using no commit should drop the value naturally + world + .account(sixth) .nonce(4) .balance(400) - .account(fifth) + .account(seventh) .nonce(5) .balance(250) .esdt_balance(TOKEN_ID, 2); world - .check_account(fourth) + .check_account(sixth) .nonce(4) .balance(400) - .check_account(fifth) + .check_account(seventh) .nonce(5) .balance(250) .esdt_balance(TOKEN_ID, 2); world - .account(sixth) + .account(eighth) .nonce(6) .balance(600) .esdt_balance(TOKEN_ID, 60); world - .check_account(sixth) + .check_account(eighth) .nonce(6) .balance(600) .esdt_balance(TOKEN_ID, 60); diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs index 65351927ec..f5590894e1 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state/scenario_set_account.rs @@ -109,7 +109,7 @@ impl<'w> SetStateBuilder<'w, AccountItem> { balance: V, attributes: T, royalties: R, - creator: C, + creator: Option, hash: H, uris: Vec, ) -> Self @@ -129,7 +129,7 @@ impl<'w> SetStateBuilder<'w, AccountItem> { let royalties_value = u64_annotated(&env, &royalties); let balance_value = big_uint_annotated(&env, &balance); let attributes_value = bytes_annotated(&env, attributes); - let creator_value = address_annotated(&env, &creator); + let creator_value = creator.as_ref().map(|c| address_annotated(&env, c)); let hash_value = bytes_annotated(&env, hash); let mut uris_value = Vec::new(); for uri in uris { @@ -146,7 +146,7 @@ impl<'w> SetStateBuilder<'w, AccountItem> { balance_value, Some(attributes_value), royalties_value, - Some(creator_value), + creator_value, Some(hash_value), uris_value, ); From d7dd5afa22a04274d43fd6d9138bbed41e732752 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 30 Apr 2024 18:50:39 +0300 Subject: [PATCH 106/185] sc 0.48.1, codec 0.18.7 --- CHANGELOG.md | 4 + Cargo.lock | 295 +++++++++--------- contracts/benchmarks/large-storage/Cargo.toml | 4 +- .../benchmarks/large-storage/meta/Cargo.toml | 2 +- .../benchmarks/large-storage/wasm/Cargo.toml | 2 +- .../mappers/benchmark-common/Cargo.toml | 4 +- .../mappers/linked-list-repeat/Cargo.toml | 4 +- .../linked-list-repeat/meta/Cargo.toml | 2 +- .../linked-list-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/map-repeat/Cargo.toml | 4 +- .../mappers/map-repeat/meta/Cargo.toml | 2 +- .../mappers/map-repeat/wasm/Cargo.toml | 2 +- .../mappers/queue-repeat/Cargo.toml | 4 +- .../mappers/queue-repeat/meta/Cargo.toml | 2 +- .../mappers/queue-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/set-repeat/Cargo.toml | 4 +- .../mappers/set-repeat/meta/Cargo.toml | 2 +- .../mappers/set-repeat/wasm/Cargo.toml | 2 +- .../mappers/single-value-repeat/Cargo.toml | 4 +- .../single-value-repeat/meta/Cargo.toml | 2 +- .../single-value-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/vec-repeat/Cargo.toml | 4 +- .../mappers/vec-repeat/meta/Cargo.toml | 2 +- .../mappers/vec-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/send-tx-repeat/Cargo.toml | 4 +- .../benchmarks/send-tx-repeat/meta/Cargo.toml | 2 +- .../benchmarks/send-tx-repeat/wasm/Cargo.toml | 2 +- contracts/benchmarks/str-repeat/Cargo.toml | 4 +- .../benchmarks/str-repeat/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../benchmarks/str-repeat/wasm/Cargo.toml | 2 +- contracts/core/price-aggregator/Cargo.toml | 8 +- .../core/price-aggregator/meta/Cargo.toml | 4 +- .../core/price-aggregator/wasm/Cargo.toml | 2 +- contracts/core/wegld-swap/Cargo.toml | 8 +- contracts/core/wegld-swap/meta/Cargo.toml | 4 +- contracts/core/wegld-swap/wasm/Cargo.toml | 2 +- contracts/examples/adder/Cargo.toml | 4 +- contracts/examples/adder/interact/Cargo.toml | 2 +- contracts/examples/adder/meta/Cargo.toml | 2 +- contracts/examples/adder/wasm/Cargo.toml | 2 +- .../bonding-curve-contract/Cargo.toml | 6 +- .../bonding-curve-contract/meta/Cargo.toml | 2 +- .../bonding-curve-contract/wasm/Cargo.toml | 2 +- contracts/examples/check-pause/Cargo.toml | 6 +- .../examples/check-pause/meta/Cargo.toml | 2 +- .../examples/check-pause/wasm/Cargo.toml | 2 +- .../examples/crowdfunding-esdt/Cargo.toml | 4 +- .../crowdfunding-esdt/meta/Cargo.toml | 2 +- .../crowdfunding-esdt/wasm/Cargo.toml | 2 +- contracts/examples/crypto-bubbles/Cargo.toml | 4 +- .../examples/crypto-bubbles/meta/Cargo.toml | 2 +- .../examples/crypto-bubbles/wasm/Cargo.toml | 2 +- .../crypto-kitties/common/kitty/Cargo.toml | 2 +- .../crypto-kitties/common/random/Cargo.toml | 2 +- .../crypto-kitties/kitty-auction/Cargo.toml | 4 +- .../kitty-auction/meta/Cargo.toml | 2 +- .../kitty-auction/wasm/Cargo.toml | 2 +- .../kitty-genetic-alg/Cargo.toml | 4 +- .../kitty-genetic-alg/meta/Cargo.toml | 2 +- .../kitty-genetic-alg/wasm/Cargo.toml | 2 +- .../crypto-kitties/kitty-ownership/Cargo.toml | 4 +- .../kitty-ownership/meta/Cargo.toml | 2 +- .../kitty-ownership/wasm/Cargo.toml | 2 +- contracts/examples/crypto-zombies/Cargo.toml | 4 +- .../examples/crypto-zombies/meta/Cargo.toml | 2 +- .../examples/crypto-zombies/wasm/Cargo.toml | 2 +- contracts/examples/digital-cash/Cargo.toml | 4 +- .../examples/digital-cash/meta/Cargo.toml | 2 +- .../examples/digital-cash/wasm/Cargo.toml | 2 +- contracts/examples/empty/Cargo.toml | 4 +- contracts/examples/empty/meta/Cargo.toml | 2 +- contracts/examples/empty/wasm/Cargo.toml | 2 +- .../esdt-transfer-with-fee/Cargo.toml | 4 +- .../esdt-transfer-with-fee/meta/Cargo.toml | 2 +- .../esdt-transfer-with-fee/wasm/Cargo.toml | 2 +- contracts/examples/factorial/Cargo.toml | 4 +- contracts/examples/factorial/meta/Cargo.toml | 2 +- contracts/examples/factorial/wasm/Cargo.toml | 2 +- contracts/examples/fractional-nfts/Cargo.toml | 6 +- .../examples/fractional-nfts/meta/Cargo.toml | 2 +- .../examples/fractional-nfts/wasm/Cargo.toml | 2 +- contracts/examples/lottery-esdt/Cargo.toml | 4 +- .../examples/lottery-esdt/meta/Cargo.toml | 2 +- .../examples/lottery-esdt/wasm/Cargo.toml | 2 +- contracts/examples/multisig/Cargo.toml | 8 +- .../examples/multisig/interact/Cargo.toml | 6 +- contracts/examples/multisig/meta/Cargo.toml | 2 +- .../multisig/wasm-multisig-full/Cargo.toml | 2 +- .../multisig/wasm-multisig-view/Cargo.toml | 2 +- contracts/examples/multisig/wasm/Cargo.toml | 2 +- contracts/examples/nft-minter/Cargo.toml | 4 +- contracts/examples/nft-minter/meta/Cargo.toml | 2 +- contracts/examples/nft-minter/wasm/Cargo.toml | 2 +- .../examples/nft-storage-prepay/Cargo.toml | 4 +- .../nft-storage-prepay/meta/Cargo.toml | 2 +- .../nft-storage-prepay/wasm/Cargo.toml | 2 +- .../examples/nft-subscription/Cargo.toml | 6 +- .../examples/nft-subscription/meta/Cargo.toml | 2 +- .../examples/nft-subscription/wasm/Cargo.toml | 2 +- .../examples/order-book/factory/Cargo.toml | 4 +- .../order-book/factory/meta/Cargo.toml | 2 +- .../order-book/factory/wasm/Cargo.toml | 2 +- contracts/examples/order-book/pair/Cargo.toml | 4 +- .../examples/order-book/pair/meta/Cargo.toml | 2 +- .../examples/order-book/pair/wasm/Cargo.toml | 2 +- contracts/examples/ping-pong-egld/Cargo.toml | 4 +- .../examples/ping-pong-egld/meta/Cargo.toml | 2 +- .../examples/ping-pong-egld/wasm/Cargo.toml | 2 +- contracts/examples/proxy-pause/Cargo.toml | 4 +- .../examples/proxy-pause/meta/Cargo.toml | 2 +- .../examples/proxy-pause/wasm/Cargo.toml | 2 +- .../examples/rewards-distribution/Cargo.toml | 6 +- .../rewards-distribution/meta/Cargo.toml | 2 +- .../rewards-distribution/wasm/Cargo.toml | 2 +- contracts/examples/seed-nft-minter/Cargo.toml | 6 +- .../examples/seed-nft-minter/meta/Cargo.toml | 2 +- .../examples/seed-nft-minter/wasm/Cargo.toml | 2 +- contracts/examples/token-release/Cargo.toml | 4 +- .../examples/token-release/meta/Cargo.toml | 2 +- .../examples/token-release/wasm/Cargo.toml | 2 +- contracts/feature-tests/abi-tester/Cargo.toml | 6 +- .../abi_tester_expected_main.abi.json | 2 +- .../abi_tester_expected_view.abi.json | 2 +- .../feature-tests/abi-tester/meta/Cargo.toml | 2 +- .../abi-tester/wasm-abi-tester-ev/Cargo.toml | 2 +- .../feature-tests/abi-tester/wasm/Cargo.toml | 2 +- .../feature-tests/alloc-features/Cargo.toml | 4 +- .../alloc-features/meta/Cargo.toml | 2 +- .../wasm-alloc-mem-fail/Cargo.toml | 2 +- .../wasm-alloc-mem-leaking/Cargo.toml | 2 +- .../alloc-features/wasm/Cargo.toml | 2 +- .../feature-tests/basic-features/Cargo.toml | 6 +- .../basic-features/interact/Cargo.toml | 2 +- .../basic-features/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../basic-features/wasm/Cargo.toml | 2 +- .../big-float-features/Cargo.toml | 4 +- .../big-float-features/meta/Cargo.toml | 2 +- .../big-float-features/wasm/Cargo.toml | 2 +- .../feature-tests/composability/Cargo.toml | 4 +- .../builtin-func-features/Cargo.toml | 4 +- .../builtin-func-features/meta/Cargo.toml | 2 +- .../builtin-func-features/wasm/Cargo.toml | 2 +- .../esdt-contract-pair/Cargo.toml | 4 +- .../first-contract/Cargo.toml | 4 +- .../first-contract/meta/Cargo.toml | 4 +- .../first-contract/wasm/Cargo.toml | 2 +- .../second-contract/Cargo.toml | 4 +- .../second-contract/meta/Cargo.toml | 4 +- .../second-contract/wasm/Cargo.toml | 2 +- .../Cargo.toml | 4 +- .../child/Cargo.toml | 4 +- .../child/meta/Cargo.toml | 4 +- .../child/wasm/Cargo.toml | 2 +- .../parent/Cargo.toml | 4 +- .../parent/meta/Cargo.toml | 4 +- .../parent/wasm/Cargo.toml | 2 +- .../composability/forwarder-queue/Cargo.toml | 6 +- .../forwarder-queue/meta/Cargo.toml | 2 +- .../wasm-forwarder-queue-promises/Cargo.toml | 2 +- .../forwarder-queue/wasm/Cargo.toml | 2 +- .../composability/forwarder-raw/Cargo.toml | 4 +- .../forwarder-raw/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../forwarder-raw/wasm/Cargo.toml | 2 +- .../composability/forwarder/Cargo.toml | 4 +- .../composability/forwarder/meta/Cargo.toml | 2 +- .../composability/forwarder/wasm/Cargo.toml | 2 +- .../composability/interact/Cargo.toml | 4 +- .../local-esdt-and-nft/Cargo.toml | 4 +- .../local-esdt-and-nft/meta/Cargo.toml | 2 +- .../local-esdt-and-nft/wasm/Cargo.toml | 2 +- .../promises-features/Cargo.toml | 2 +- .../promises-features/meta/Cargo.toml | 2 +- .../promises-features/wasm/Cargo.toml | 2 +- .../composability/proxy-test-first/Cargo.toml | 4 +- .../proxy-test-first/meta/Cargo.toml | 2 +- .../proxy-test-first/wasm/Cargo.toml | 2 +- .../proxy-test-second/Cargo.toml | 4 +- .../proxy-test-second/meta/Cargo.toml | 2 +- .../proxy-test-second/wasm/Cargo.toml | 2 +- .../composability/recursive-caller/Cargo.toml | 4 +- .../recursive-caller/meta/Cargo.toml | 2 +- .../recursive-caller/wasm/Cargo.toml | 2 +- .../transfer-role-features/Cargo.toml | 6 +- .../transfer-role-features/meta/Cargo.toml | 2 +- .../transfer-role-features/wasm/Cargo.toml | 2 +- .../composability/vault/Cargo.toml | 4 +- .../composability/vault/meta/Cargo.toml | 2 +- .../vault/wasm-vault-promises/Cargo.toml | 2 +- .../vault/wasm-vault-upgrade/Cargo.toml | 2 +- .../composability/vault/wasm/Cargo.toml | 2 +- .../crowdfunding-erc20/Cargo.toml | 4 +- .../crowdfunding-erc20/meta/Cargo.toml | 2 +- .../crowdfunding-erc20/wasm/Cargo.toml | 2 +- .../erc1155-marketplace/Cargo.toml | 4 +- .../erc1155-marketplace/meta/Cargo.toml | 2 +- .../erc1155-marketplace/wasm/Cargo.toml | 2 +- .../erc1155-user-mock/Cargo.toml | 4 +- .../erc1155-user-mock/meta/Cargo.toml | 2 +- .../erc1155-user-mock/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc1155/Cargo.toml | 4 +- .../erc1155/meta/Cargo.toml | 2 +- .../erc1155/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc20/Cargo.toml | 4 +- .../erc-style-contracts/erc20/meta/Cargo.toml | 2 +- .../erc-style-contracts/erc20/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc721/Cargo.toml | 4 +- .../erc721/meta/Cargo.toml | 2 +- .../erc721/wasm/Cargo.toml | 2 +- .../lottery-erc20/Cargo.toml | 4 +- .../lottery-erc20/meta/Cargo.toml | 2 +- .../lottery-erc20/wasm/Cargo.toml | 2 +- .../esdt-system-sc-mock/Cargo.toml | 4 +- .../esdt-system-sc-mock/meta/Cargo.toml | 2 +- .../esdt-system-sc-mock/wasm/Cargo.toml | 2 +- .../exchange-features/Cargo.toml | 4 +- .../exchange-features/meta/Cargo.toml | 2 +- .../exchange-features/wasm/Cargo.toml | 2 +- .../formatted-message-features/Cargo.toml | 4 +- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- .../managed-map-features/Cargo.toml | 4 +- .../managed-map-features/meta/Cargo.toml | 2 +- .../managed-map-features/wasm/Cargo.toml | 2 +- .../multi-contract-features/Cargo.toml | 4 +- .../multi-contract-features/meta/Cargo.toml | 2 +- .../wasm-multi-contract-alt-impl/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../multi-contract-features/wasm/Cargo.toml | 2 +- .../panic-message-features/Cargo.toml | 4 +- .../panic-message-features/meta/Cargo.toml | 2 +- .../panic-message-features/wasm/Cargo.toml | 2 +- .../feature-tests/payable-features/Cargo.toml | 4 +- .../payable-features/meta/Cargo.toml | 2 +- .../payable-features/wasm/Cargo.toml | 2 +- .../rust-snippets-generator-test/Cargo.toml | 4 +- .../interact-rs/Cargo.toml | 2 +- .../meta/Cargo.toml | 2 +- .../rust-snippets-generator-test/src/lib.rs | 2 +- .../wasm/Cargo.toml | 2 +- .../rust-testing-framework-tester/Cargo.toml | 4 +- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- contracts/feature-tests/use-module/Cargo.toml | 8 +- .../feature-tests/use-module/meta/Cargo.toml | 2 +- .../use-module/meta/abi/Cargo.toml | 4 +- .../use_module_expected_main.abi.json | 2 +- .../use_module_expected_view.abi.json | 2 +- .../wasm-use-module-view/Cargo.toml | 2 +- .../feature-tests/use-module/wasm/Cargo.toml | 2 +- contracts/modules/Cargo.toml | 4 +- data/codec-derive/Cargo.toml | 2 +- data/codec/Cargo.toml | 6 +- framework/base/Cargo.toml | 6 +- framework/derive/Cargo.toml | 2 +- framework/meta/Cargo.toml | 4 +- .../generate_snippets/snippet_crate_gen.rs | 2 +- .../meta/src/cmd/contract/meta_config.rs | 4 +- framework/meta/src/version_history.rs | 3 +- framework/scenario/Cargo.toml | 6 +- framework/snippets/Cargo.toml | 4 +- framework/wasm-adapter/Cargo.toml | 4 +- tools/mxpy-snippet-generator/Cargo.toml | 2 +- tools/rust-debugger/format-tests/Cargo.toml | 4 +- 269 files changed, 531 insertions(+), 535 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c22847501..df6d26af07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,10 @@ They are: - `multiversx-chain-scenario-format`, in short `scenario-format`, scenario JSON serializer/deserializer, 1 crate. - `multiversx-sdk`, in short `sdk`, allows communication with the chain(s), 1 crate. +## [sc 0.48.1, codec 0.18.7] - 2024-04-30 +- Simplified decoding of small numbers (i64/u64). +- Manual reset of the `StaticApi`, in order to free memory for long-running tasks. + ## [sc 0.48.0] - 2024-04-09 - When serializing to a managed buffer, static buffer caching is disabled by default. - `sc-meta:` - installers for wasm32 target and wasm-opt. diff --git a/Cargo.lock b/Cargo.lock index c8c6746cad..c7f8875a89 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,9 +136,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" +checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" [[package]] name = "arrayvec" @@ -148,15 +148,15 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.70" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95d8e92cac0961e91dbd517496b00f7e9b92363dbe6d42c3198268323798860c" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -173,6 +173,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" + [[package]] name = "basic-features" version = "0.0.0" @@ -338,9 +344,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byteorder" @@ -350,15 +356,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.90" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd" [[package]] name = "cfg-if" @@ -403,9 +409,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -425,9 +431,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ "heck", "proc-macro2", @@ -709,9 +715,9 @@ dependencies = [ [[package]] name = "either" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" [[package]] name = "empty" @@ -732,9 +738,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -950,9 +956,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "first-contract" @@ -973,9 +979,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "miniz_oxide", @@ -1207,9 +1213,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "js-sys", @@ -1239,9 +1245,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -1258,9 +1264,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "heck" @@ -1400,9 +1406,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -1439,9 +1445,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" @@ -1548,9 +1554,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" [[package]] name = "linked-list-repeat" @@ -1593,9 +1599,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -1676,9 +1682,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "mime" @@ -1798,10 +1804,10 @@ checksum = "b59072fa0624b55ae5ae3fa6bfa91515bbeb4ac440214bc4a509e2c8806d6e9f" [[package]] name = "multiversx-price-aggregator-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "arrayvec", - "getrandom 0.2.12", + "getrandom 0.2.14", "multiversx-sc", "multiversx-sc-modules", "multiversx-sc-scenario", @@ -1819,7 +1825,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags 2.4.2", "hex-literal", @@ -1830,7 +1836,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -1839,7 +1845,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -1849,7 +1855,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -1860,7 +1866,7 @@ dependencies = [ [[package]] name = "multiversx-sc-meta" -version = "0.48.0" +version = "0.48.1" dependencies = [ "clap", "colored", @@ -1886,16 +1892,16 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-scenario" -version = "0.48.0" +version = "0.48.1" dependencies = [ - "base64", + "base64 0.21.7", "bech32", "clap", "colored", @@ -1919,9 +1925,9 @@ dependencies = [ [[package]] name = "multiversx-sc-snippets" -version = "0.48.0" +version = "0.48.1" dependencies = [ - "base64", + "base64 0.21.7", "env_logger", "futures", "hex", @@ -1933,7 +1939,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] @@ -1943,7 +1949,7 @@ name = "multiversx-sdk" version = "0.3.2" dependencies = [ "anyhow", - "base64", + "base64 0.21.7", "bech32", "bip39", "hex", @@ -1964,7 +1970,7 @@ dependencies = [ [[package]] name = "multiversx-wegld-swap-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", "multiversx-sc-modules", @@ -2161,9 +2167,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.101" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -2231,9 +2237,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" dependencies = [ "lock_api", "parking_lot_core", @@ -2241,15 +2247,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -2285,11 +2291,11 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64", + "base64 0.22.0", "serde", ] @@ -2301,9 +2307,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -2509,7 +2515,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.12", + "getrandom 0.2.14", ] [[package]] @@ -2556,18 +2562,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.2", ] [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -2588,9 +2594,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "reqwest" @@ -2598,7 +2604,7 @@ version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ - "base64", + "base64 0.21.7", "bytes", "encoding_rs", "futures-core", @@ -2719,9 +2725,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.32" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ "bitflags 2.4.2", "errno", @@ -2736,7 +2742,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64", + "base64 0.21.7", ] [[package]] @@ -2788,9 +2794,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -2801,9 +2807,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ "core-foundation-sys", "libc", @@ -2850,18 +2856,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.197" +version = "1.0.199" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.199" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" dependencies = [ "proc-macro2", "quote", @@ -2870,9 +2876,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" dependencies = [ "indexmap", "itoa", @@ -2882,9 +2888,9 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2e6b945e9d3df726b65d6ee24060aff8e3533d431f677a9695db04eff9dfdb" +checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", @@ -2965,9 +2971,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -3012,9 +3018,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -3038,9 +3044,9 @@ dependencies = [ [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" @@ -3131,9 +3137,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -3207,9 +3213,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.9" +version = "0.22.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4" +checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" dependencies = [ "indexmap", "serde", @@ -3508,37 +3514,15 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-sys" version = "0.48.0" @@ -3554,7 +3538,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -3574,17 +3558,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -3595,9 +3580,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -3607,9 +3592,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -3619,9 +3604,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -3631,9 +3622,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -3643,9 +3634,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -3655,9 +3646,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -3667,15 +3658,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" +checksum = "14b9415ee827af173ebb3f15f9083df5a122eb93572ec28741fb153356ea2578" dependencies = [ "memchr", ] diff --git a/contracts/benchmarks/large-storage/Cargo.toml b/contracts/benchmarks/large-storage/Cargo.toml index 9aae12836b..5b6fa96682 100644 --- a/contracts/benchmarks/large-storage/Cargo.toml +++ b/contracts/benchmarks/large-storage/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/large_storage.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/large-storage/meta/Cargo.toml b/contracts/benchmarks/large-storage/meta/Cargo.toml index 0345a383dc..629989c496 100644 --- a/contracts/benchmarks/large-storage/meta/Cargo.toml +++ b/contracts/benchmarks/large-storage/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.toml b/contracts/benchmarks/large-storage/wasm/Cargo.toml index 776e59a0ce..1fea846894 100644 --- a/contracts/benchmarks/large-storage/wasm/Cargo.toml +++ b/contracts/benchmarks/large-storage/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/benchmark-common/Cargo.toml b/contracts/benchmarks/mappers/benchmark-common/Cargo.toml index 4c5fdb3fbc..3e2b4677ac 100644 --- a/contracts/benchmarks/mappers/benchmark-common/Cargo.toml +++ b/contracts/benchmarks/mappers/benchmark-common/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml index e2edd8010e..369f30eec7 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml index d09a21b81b..b20ce94c64 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml index 8289547693..a75a75c4a5 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/map-repeat/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/Cargo.toml index 8090f309d1..0aea4b42cd 100644 --- a/contracts/benchmarks/mappers/map-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml index 3d4974e6c0..5db6649fca 100644 --- a/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml index 9653a54fc7..796574dd80 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/queue-repeat/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/Cargo.toml index 024846618c..95beb1f2a7 100644 --- a/contracts/benchmarks/mappers/queue-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml index edba3ec0f0..c9f6ae7228 100644 --- a/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml index 77c061d305..47fc1790b6 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/set-repeat/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/Cargo.toml index 84bcc8722d..888f905fe0 100644 --- a/contracts/benchmarks/mappers/set-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml index e8f3967a3a..a8b03b8e47 100644 --- a/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml index 31ca740ad8..81af5ada3c 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml index 2975e1ae49..c94dd28a88 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml index 1633ab9cde..c988d432eb 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml index 19af5c7c51..b562ace439 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/vec-repeat/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/Cargo.toml index 3cd913d909..08bdce3673 100644 --- a/contracts/benchmarks/mappers/vec-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml index 200297db20..4cfcc8a955 100644 --- a/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml index 520aa883b1..a7079ec058 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/send-tx-repeat/Cargo.toml b/contracts/benchmarks/send-tx-repeat/Cargo.toml index d0bc9aa646..64db88c52c 100644 --- a/contracts/benchmarks/send-tx-repeat/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/send_tx_repeat.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml b/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml index d8b911fd5e..2ceb7301ac 100644 --- a/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml index 14a876b56e..17ac4aa9b8 100644 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/Cargo.toml b/contracts/benchmarks/str-repeat/Cargo.toml index 7d0b90f1ba..d38f7d8513 100644 --- a/contracts/benchmarks/str-repeat/Cargo.toml +++ b/contracts/benchmarks/str-repeat/Cargo.toml @@ -12,10 +12,10 @@ path = "src/str_repeat.rs" managed-buffer-builder-cached = ["multiversx-sc/managed-buffer-builder-cached"] [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/str-repeat/meta/Cargo.toml b/contracts/benchmarks/str-repeat/meta/Cargo.toml index d27ba4d2ff..8f451d4a6d 100644 --- a/contracts/benchmarks/str-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/str-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml index 07a34e0d0c..193814ec43 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml index 69a11ff01e..7f20111eda 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml @@ -26,7 +26,7 @@ path = ".." features = ["managed-buffer-builder-cached"] [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.toml b/contracts/benchmarks/str-repeat/wasm/Cargo.toml index e6f3ddba95..0683f552a1 100644 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/core/price-aggregator/Cargo.toml b/contracts/core/price-aggregator/Cargo.toml index 6ef93360eb..2e66481485 100644 --- a/contracts/core/price-aggregator/Cargo.toml +++ b/contracts/core/price-aggregator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-price-aggregator-sc" -version = "0.48.0" +version = "0.48.1" authors = [ "Claudiu-Marcel Bruda ", "MultiversX ", @@ -19,15 +19,15 @@ edition = "2021" path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dependencies] diff --git a/contracts/core/price-aggregator/meta/Cargo.toml b/contracts/core/price-aggregator/meta/Cargo.toml index f8cbef8d57..46bfa8d5b9 100644 --- a/contracts/core/price-aggregator/meta/Cargo.toml +++ b/contracts/core/price-aggregator/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/core/price-aggregator/wasm/Cargo.toml b/contracts/core/price-aggregator/wasm/Cargo.toml index dc2c54549f..193aa041fe 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.toml +++ b/contracts/core/price-aggregator/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/core/wegld-swap/Cargo.toml b/contracts/core/wegld-swap/Cargo.toml index f788d5c243..3b5e2404d8 100644 --- a/contracts/core/wegld-swap/Cargo.toml +++ b/contracts/core/wegld-swap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-wegld-swap-sc" -version = "0.48.0" +version = "0.48.1" authors = [ "Dorin Iancu ", @@ -20,13 +20,13 @@ edition = "2021" path = "src/wegld.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/core/wegld-swap/meta/Cargo.toml b/contracts/core/wegld-swap/meta/Cargo.toml index f9595aea8d..76b79edf66 100644 --- a/contracts/core/wegld-swap/meta/Cargo.toml +++ b/contracts/core/wegld-swap/meta/Cargo.toml @@ -11,10 +11,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/core/wegld-swap/wasm/Cargo.toml b/contracts/core/wegld-swap/wasm/Cargo.toml index 68037cc393..898c67e9f5 100644 --- a/contracts/core/wegld-swap/wasm/Cargo.toml +++ b/contracts/core/wegld-swap/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/adder/Cargo.toml b/contracts/examples/adder/Cargo.toml index af28bd0554..fcb4a81614 100644 --- a/contracts/examples/adder/Cargo.toml +++ b/contracts/examples/adder/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/adder.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/adder/interact/Cargo.toml b/contracts/examples/adder/interact/Cargo.toml index 3d4ad2fd1a..b257e2f0fb 100644 --- a/contracts/examples/adder/interact/Cargo.toml +++ b/contracts/examples/adder/interact/Cargo.toml @@ -18,5 +18,5 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/snippets" diff --git a/contracts/examples/adder/meta/Cargo.toml b/contracts/examples/adder/meta/Cargo.toml index 88f66d1c86..c5f828ca1a 100644 --- a/contracts/examples/adder/meta/Cargo.toml +++ b/contracts/examples/adder/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/adder/wasm/Cargo.toml b/contracts/examples/adder/wasm/Cargo.toml index d7cff9ee02..39a90d64f8 100644 --- a/contracts/examples/adder/wasm/Cargo.toml +++ b/contracts/examples/adder/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/bonding-curve-contract/Cargo.toml b/contracts/examples/bonding-curve-contract/Cargo.toml index 9379cb6240..ae60af5f8e 100644 --- a/contracts/examples/bonding-curve-contract/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/bonding_curve_contract.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/bonding-curve-contract/meta/Cargo.toml b/contracts/examples/bonding-curve-contract/meta/Cargo.toml index 42aedeffb2..f5ab553289 100644 --- a/contracts/examples/bonding-curve-contract/meta/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml index 351e890820..694f0e06e2 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/check-pause/Cargo.toml b/contracts/examples/check-pause/Cargo.toml index 3de8796660..cda87d9f27 100644 --- a/contracts/examples/check-pause/Cargo.toml +++ b/contracts/examples/check-pause/Cargo.toml @@ -12,14 +12,14 @@ path = "src/check_pause.rs" num-bigint = "0.4" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/check-pause/meta/Cargo.toml b/contracts/examples/check-pause/meta/Cargo.toml index 6fa4de8996..839f004ce3 100644 --- a/contracts/examples/check-pause/meta/Cargo.toml +++ b/contracts/examples/check-pause/meta/Cargo.toml @@ -9,6 +9,6 @@ authors = ["Alin Cruceat "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/check-pause/wasm/Cargo.toml b/contracts/examples/check-pause/wasm/Cargo.toml index 16f0ab1ba3..23d31951b1 100644 --- a/contracts/examples/check-pause/wasm/Cargo.toml +++ b/contracts/examples/check-pause/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crowdfunding-esdt/Cargo.toml b/contracts/examples/crowdfunding-esdt/Cargo.toml index b2cdf8c41e..e0a91a86d6 100644 --- a/contracts/examples/crowdfunding-esdt/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/crowdfunding_esdt.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/examples/crowdfunding-esdt/meta/Cargo.toml b/contracts/examples/crowdfunding-esdt/meta/Cargo.toml index a32bd3567a..d2b9ff88fe 100644 --- a/contracts/examples/crowdfunding-esdt/meta/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml index 51e3aa0862..80d4c8f4ee 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-bubbles/Cargo.toml b/contracts/examples/crypto-bubbles/Cargo.toml index 47b0cc1c12..3432fb2fb1 100644 --- a/contracts/examples/crypto-bubbles/Cargo.toml +++ b/contracts/examples/crypto-bubbles/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/crypto_bubbles.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/crypto-bubbles/meta/Cargo.toml b/contracts/examples/crypto-bubbles/meta/Cargo.toml index cff3b28c2e..a5a0becbbf 100644 --- a/contracts/examples/crypto-bubbles/meta/Cargo.toml +++ b/contracts/examples/crypto-bubbles/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.toml b/contracts/examples/crypto-bubbles/wasm/Cargo.toml index 3d0f3d9cd6..c3d76936e1 100644 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.toml +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/common/kitty/Cargo.toml b/contracts/examples/crypto-kitties/common/kitty/Cargo.toml index 97ff64e9ac..22ba077695 100644 --- a/contracts/examples/crypto-kitties/common/kitty/Cargo.toml +++ b/contracts/examples/crypto-kitties/common/kitty/Cargo.toml @@ -9,7 +9,7 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/base" [dependencies.random] diff --git a/contracts/examples/crypto-kitties/common/random/Cargo.toml b/contracts/examples/crypto-kitties/common/random/Cargo.toml index 9b63e6b416..80fc00284b 100644 --- a/contracts/examples/crypto-kitties/common/random/Cargo.toml +++ b/contracts/examples/crypto-kitties/common/random/Cargo.toml @@ -8,5 +8,5 @@ edition = "2021" path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/base" diff --git a/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml index 6fdda40603..720f88798f 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml @@ -17,9 +17,9 @@ version = "0.0.0" path = "../kitty-ownership" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml index 2c57c9ac05..f26826105f 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml index 1f19435dce..e3d1dfa4f3 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml index 171ebb65f8..3b68070b25 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml @@ -18,9 +18,9 @@ version = "0.0.0" path = "../common/random" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml index a9f0a17cfa..e17aa95b83 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml index deb7ae9c6f..503d06dc6d 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml index da5800286f..fc0688e842 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml @@ -21,9 +21,9 @@ version = "0.0.0" path = "../kitty-genetic-alg" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml index ccf8cb2ea2..41ecf9d5c1 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml index b00ca52a2b..7713372b52 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-zombies/Cargo.toml b/contracts/examples/crypto-zombies/Cargo.toml index b0e2a4e81e..e269e3ca5b 100644 --- a/contracts/examples/crypto-zombies/Cargo.toml +++ b/contracts/examples/crypto-zombies/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/crypto-zombies/meta/Cargo.toml b/contracts/examples/crypto-zombies/meta/Cargo.toml index fc1eb0073f..7b017c5472 100644 --- a/contracts/examples/crypto-zombies/meta/Cargo.toml +++ b/contracts/examples/crypto-zombies/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.toml b/contracts/examples/crypto-zombies/wasm/Cargo.toml index 51f46ac505..620c7c5590 100644 --- a/contracts/examples/crypto-zombies/wasm/Cargo.toml +++ b/contracts/examples/crypto-zombies/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/digital-cash/Cargo.toml b/contracts/examples/digital-cash/Cargo.toml index 6d75b7b98e..74b47bb738 100644 --- a/contracts/examples/digital-cash/Cargo.toml +++ b/contracts/examples/digital-cash/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/digital_cash.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/digital-cash/meta/Cargo.toml b/contracts/examples/digital-cash/meta/Cargo.toml index 7cdda9a523..e01aa83bcb 100644 --- a/contracts/examples/digital-cash/meta/Cargo.toml +++ b/contracts/examples/digital-cash/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/digital-cash/wasm/Cargo.toml b/contracts/examples/digital-cash/wasm/Cargo.toml index 14a1a7e95b..64a7cf1dca 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.toml +++ b/contracts/examples/digital-cash/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/empty/Cargo.toml b/contracts/examples/empty/Cargo.toml index d36449cf82..7670b2a2bf 100644 --- a/contracts/examples/empty/Cargo.toml +++ b/contracts/examples/empty/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/empty.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/examples/empty/meta/Cargo.toml b/contracts/examples/empty/meta/Cargo.toml index 7b869c9cdf..d981b28a0d 100644 --- a/contracts/examples/empty/meta/Cargo.toml +++ b/contracts/examples/empty/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/empty/wasm/Cargo.toml b/contracts/examples/empty/wasm/Cargo.toml index 50c6c7519c..3c188abc8b 100644 --- a/contracts/examples/empty/wasm/Cargo.toml +++ b/contracts/examples/empty/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/esdt-transfer-with-fee/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/Cargo.toml index 62efe492c6..2aacb48f36 100644 --- a/contracts/examples/esdt-transfer-with-fee/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/esdt_transfer_with_fee.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml index 41be9842d9..25339aeff0 100644 --- a/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml index 8e57a857ec..da0a01f1f5 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/factorial/Cargo.toml b/contracts/examples/factorial/Cargo.toml index f49f2de799..52524195a5 100644 --- a/contracts/examples/factorial/Cargo.toml +++ b/contracts/examples/factorial/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/factorial.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/factorial/meta/Cargo.toml b/contracts/examples/factorial/meta/Cargo.toml index 561e5cc8bb..27b6c326e7 100644 --- a/contracts/examples/factorial/meta/Cargo.toml +++ b/contracts/examples/factorial/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/factorial/wasm/Cargo.toml b/contracts/examples/factorial/wasm/Cargo.toml index 33ef155fb4..df2ac02176 100644 --- a/contracts/examples/factorial/wasm/Cargo.toml +++ b/contracts/examples/factorial/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/fractional-nfts/Cargo.toml b/contracts/examples/fractional-nfts/Cargo.toml index fda3f92c61..7e056f731a 100644 --- a/contracts/examples/fractional-nfts/Cargo.toml +++ b/contracts/examples/fractional-nfts/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/fractional_nfts.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/fractional-nfts/meta/Cargo.toml b/contracts/examples/fractional-nfts/meta/Cargo.toml index 330433a42f..1abc450067 100644 --- a/contracts/examples/fractional-nfts/meta/Cargo.toml +++ b/contracts/examples/fractional-nfts/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.toml b/contracts/examples/fractional-nfts/wasm/Cargo.toml index 036b0bfd69..8f29fae438 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.toml +++ b/contracts/examples/fractional-nfts/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/lottery-esdt/Cargo.toml b/contracts/examples/lottery-esdt/Cargo.toml index 47ef0326fd..00bbd9121e 100644 --- a/contracts/examples/lottery-esdt/Cargo.toml +++ b/contracts/examples/lottery-esdt/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lottery.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/lottery-esdt/meta/Cargo.toml b/contracts/examples/lottery-esdt/meta/Cargo.toml index 5b87c8ade8..67e9e9636a 100644 --- a/contracts/examples/lottery-esdt/meta/Cargo.toml +++ b/contracts/examples/lottery-esdt/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.toml b/contracts/examples/lottery-esdt/wasm/Cargo.toml index 6839c9dec0..3c1b5ca468 100644 --- a/contracts/examples/lottery-esdt/wasm/Cargo.toml +++ b/contracts/examples/lottery-esdt/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/Cargo.toml b/contracts/examples/multisig/Cargo.toml index f7bdb30ed5..618dae4a5e 100644 --- a/contracts/examples/multisig/Cargo.toml +++ b/contracts/examples/multisig/Cargo.toml @@ -9,15 +9,15 @@ publish = false path = "src/multisig.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies.adder] @@ -27,7 +27,7 @@ path = "../adder" path = "../factorial" [dev-dependencies.multiversx-wegld-swap-sc] -version = "0.48.0" +version = "0.48.1" path = "../../core/wegld-swap" [dev-dependencies] diff --git a/contracts/examples/multisig/interact/Cargo.toml b/contracts/examples/multisig/interact/Cargo.toml index fef68a6a22..3feae5b638 100644 --- a/contracts/examples/multisig/interact/Cargo.toml +++ b/contracts/examples/multisig/interact/Cargo.toml @@ -18,13 +18,13 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../../contracts/modules" [dependencies.multiversx-sc-snippets] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/snippets" [dependencies.multiversx-sc-scenario] -version = "=0.48.0" +version = "=0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/examples/multisig/meta/Cargo.toml b/contracts/examples/multisig/meta/Cargo.toml index 02d4e80d81..b019bfbb43 100644 --- a/contracts/examples/multisig/meta/Cargo.toml +++ b/contracts/examples/multisig/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml index 7660525b67..a36835c83f 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml index 49be4aa565..02ed495935 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/wasm/Cargo.toml b/contracts/examples/multisig/wasm/Cargo.toml index 708980188e..79597e9a70 100644 --- a/contracts/examples/multisig/wasm/Cargo.toml +++ b/contracts/examples/multisig/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-minter/Cargo.toml b/contracts/examples/nft-minter/Cargo.toml index b845b98fc9..eeaec71e85 100644 --- a/contracts/examples/nft-minter/Cargo.toml +++ b/contracts/examples/nft-minter/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-minter/meta/Cargo.toml b/contracts/examples/nft-minter/meta/Cargo.toml index 16bc48dabd..d483bb65f4 100644 --- a/contracts/examples/nft-minter/meta/Cargo.toml +++ b/contracts/examples/nft-minter/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-minter/wasm/Cargo.toml b/contracts/examples/nft-minter/wasm/Cargo.toml index 800d0012f8..fd32ff41c5 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.toml +++ b/contracts/examples/nft-minter/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-storage-prepay/Cargo.toml b/contracts/examples/nft-storage-prepay/Cargo.toml index b3fe4779eb..142d549a25 100644 --- a/contracts/examples/nft-storage-prepay/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/Cargo.toml @@ -10,9 +10,9 @@ path = "src/nft_storage_prepay.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-storage-prepay/meta/Cargo.toml b/contracts/examples/nft-storage-prepay/meta/Cargo.toml index 8bd9be5154..7a03515dbe 100644 --- a/contracts/examples/nft-storage-prepay/meta/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/meta/Cargo.toml @@ -11,6 +11,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml index 4966016fe3..34df978063 100644 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-subscription/Cargo.toml b/contracts/examples/nft-subscription/Cargo.toml index fce4b0e4be..748d63535f 100644 --- a/contracts/examples/nft-subscription/Cargo.toml +++ b/contracts/examples/nft-subscription/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-subscription/meta/Cargo.toml b/contracts/examples/nft-subscription/meta/Cargo.toml index 60363c9f03..73b766639d 100644 --- a/contracts/examples/nft-subscription/meta/Cargo.toml +++ b/contracts/examples/nft-subscription/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-subscription/wasm/Cargo.toml b/contracts/examples/nft-subscription/wasm/Cargo.toml index 20cfc13365..e47d13f71e 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.toml +++ b/contracts/examples/nft-subscription/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/order-book/factory/Cargo.toml b/contracts/examples/order-book/factory/Cargo.toml index 1715338ef5..cc3db5aa7b 100644 --- a/contracts/examples/order-book/factory/Cargo.toml +++ b/contracts/examples/order-book/factory/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/examples/order-book/factory/meta/Cargo.toml b/contracts/examples/order-book/factory/meta/Cargo.toml index 3b5a3f22e1..b127392c11 100644 --- a/contracts/examples/order-book/factory/meta/Cargo.toml +++ b/contracts/examples/order-book/factory/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/order-book/factory/wasm/Cargo.toml b/contracts/examples/order-book/factory/wasm/Cargo.toml index e198620a70..d4af86c8a5 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.toml +++ b/contracts/examples/order-book/factory/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/order-book/pair/Cargo.toml b/contracts/examples/order-book/pair/Cargo.toml index e87e2df5fd..7f2bbabdd4 100644 --- a/contracts/examples/order-book/pair/Cargo.toml +++ b/contracts/examples/order-book/pair/Cargo.toml @@ -8,9 +8,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/examples/order-book/pair/meta/Cargo.toml b/contracts/examples/order-book/pair/meta/Cargo.toml index 944ad90283..ceee771510 100644 --- a/contracts/examples/order-book/pair/meta/Cargo.toml +++ b/contracts/examples/order-book/pair/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/order-book/pair/wasm/Cargo.toml b/contracts/examples/order-book/pair/wasm/Cargo.toml index db63ea95cf..30f74dee55 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.toml +++ b/contracts/examples/order-book/pair/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/ping-pong-egld/Cargo.toml b/contracts/examples/ping-pong-egld/Cargo.toml index 7b835c30a9..1d0209ccf2 100644 --- a/contracts/examples/ping-pong-egld/Cargo.toml +++ b/contracts/examples/ping-pong-egld/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/ping_pong.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/ping-pong-egld/meta/Cargo.toml b/contracts/examples/ping-pong-egld/meta/Cargo.toml index 35e1eb7004..146b367bd5 100644 --- a/contracts/examples/ping-pong-egld/meta/Cargo.toml +++ b/contracts/examples/ping-pong-egld/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.toml b/contracts/examples/ping-pong-egld/wasm/Cargo.toml index 212fc83957..0d14eef644 100644 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.toml +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/proxy-pause/Cargo.toml b/contracts/examples/proxy-pause/Cargo.toml index 1cb8060d0c..50f560d16f 100644 --- a/contracts/examples/proxy-pause/Cargo.toml +++ b/contracts/examples/proxy-pause/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/proxy_pause.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies.check-pause] diff --git a/contracts/examples/proxy-pause/meta/Cargo.toml b/contracts/examples/proxy-pause/meta/Cargo.toml index 654659ac3a..9c9c54c2bd 100644 --- a/contracts/examples/proxy-pause/meta/Cargo.toml +++ b/contracts/examples/proxy-pause/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = [ "you",] path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/proxy-pause/wasm/Cargo.toml b/contracts/examples/proxy-pause/wasm/Cargo.toml index 9071e6aad0..cc1649d595 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.toml +++ b/contracts/examples/proxy-pause/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/rewards-distribution/Cargo.toml b/contracts/examples/rewards-distribution/Cargo.toml index d17e0cf877..e2cced12b5 100644 --- a/contracts/examples/rewards-distribution/Cargo.toml +++ b/contracts/examples/rewards-distribution/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/rewards_distribution.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/rewards-distribution/meta/Cargo.toml b/contracts/examples/rewards-distribution/meta/Cargo.toml index 6e3700a114..0225532a08 100644 --- a/contracts/examples/rewards-distribution/meta/Cargo.toml +++ b/contracts/examples/rewards-distribution/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = ["Claudiu-Marcel Bruda "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.toml b/contracts/examples/rewards-distribution/wasm/Cargo.toml index 0240cad321..d524872e2f 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.toml +++ b/contracts/examples/rewards-distribution/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/seed-nft-minter/Cargo.toml b/contracts/examples/seed-nft-minter/Cargo.toml index 466ef0d0d0..dd732d1613 100644 --- a/contracts/examples/seed-nft-minter/Cargo.toml +++ b/contracts/examples/seed-nft-minter/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/seed_nft_minter.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/seed-nft-minter/meta/Cargo.toml b/contracts/examples/seed-nft-minter/meta/Cargo.toml index 2a9164c5d5..4ac054f405 100644 --- a/contracts/examples/seed-nft-minter/meta/Cargo.toml +++ b/contracts/examples/seed-nft-minter/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = ["Claudiu-Marcel Bruda "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.toml b/contracts/examples/seed-nft-minter/wasm/Cargo.toml index b16c0eb5be..09d0d167e3 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.toml +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/token-release/Cargo.toml b/contracts/examples/token-release/Cargo.toml index 1ef042c083..53d5f29a71 100644 --- a/contracts/examples/token-release/Cargo.toml +++ b/contracts/examples/token-release/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/token_release.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/examples/token-release/meta/Cargo.toml b/contracts/examples/token-release/meta/Cargo.toml index 9f5e40cb3f..92e78d42f9 100644 --- a/contracts/examples/token-release/meta/Cargo.toml +++ b/contracts/examples/token-release/meta/Cargo.toml @@ -10,7 +10,7 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/token-release/wasm/Cargo.toml b/contracts/examples/token-release/wasm/Cargo.toml index a5e9ad9ebb..356d0a7ce1 100644 --- a/contracts/examples/token-release/wasm/Cargo.toml +++ b/contracts/examples/token-release/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/abi-tester/Cargo.toml b/contracts/feature-tests/abi-tester/Cargo.toml index 388a559e3f..7c0e7e80b5 100644 --- a/contracts/feature-tests/abi-tester/Cargo.toml +++ b/contracts/feature-tests/abi-tester/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/abi_tester.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/meta" diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json index 2e2ef38272..2abfdd2a48 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.48.0" + "version": "0.48.1" } }, "docs": [ diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json index 1219d4fe9b..5a22e77ae9 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.48.0" + "version": "0.48.1" } }, "docs": [ diff --git a/contracts/feature-tests/abi-tester/meta/Cargo.toml b/contracts/feature-tests/abi-tester/meta/Cargo.toml index f494dd338d..13ea670021 100644 --- a/contracts/feature-tests/abi-tester/meta/Cargo.toml +++ b/contracts/feature-tests/abi-tester/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml index 05200dcfbb..974a67c2aa 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.toml b/contracts/feature-tests/abi-tester/wasm/Cargo.toml index 6bc368141a..ec7a639034 100644 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/Cargo.toml b/contracts/feature-tests/alloc-features/Cargo.toml index ed5f30b32f..a68c272034 100644 --- a/contracts/feature-tests/alloc-features/Cargo.toml +++ b/contracts/feature-tests/alloc-features/Cargo.toml @@ -9,12 +9,12 @@ publish = false path = "src/alloc_features_main.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/alloc-features/meta/Cargo.toml b/contracts/feature-tests/alloc-features/meta/Cargo.toml index 95d1615d64..7b89a027f5 100644 --- a/contracts/feature-tests/alloc-features/meta/Cargo.toml +++ b/contracts/feature-tests/alloc-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml index e79f7e1f26..1dddab93aa 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml index e8ca98b331..6cc627db2c 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.toml b/contracts/feature-tests/alloc-features/wasm/Cargo.toml index b5565d0ed2..14b4608740 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/basic-features/Cargo.toml b/contracts/feature-tests/basic-features/Cargo.toml index a9d29b944a..9eb9c5c71c 100644 --- a/contracts/feature-tests/basic-features/Cargo.toml +++ b/contracts/feature-tests/basic-features/Cargo.toml @@ -9,15 +9,15 @@ publish = false path = "src/basic_features_main.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/basic-features/interact/Cargo.toml b/contracts/feature-tests/basic-features/interact/Cargo.toml index 73201f5eaa..4c2ec62f46 100644 --- a/contracts/feature-tests/basic-features/interact/Cargo.toml +++ b/contracts/feature-tests/basic-features/interact/Cargo.toml @@ -18,5 +18,5 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/snippets" diff --git a/contracts/feature-tests/basic-features/meta/Cargo.toml b/contracts/feature-tests/basic-features/meta/Cargo.toml index 8afa191498..064891ac10 100644 --- a/contracts/feature-tests/basic-features/meta/Cargo.toml +++ b/contracts/feature-tests/basic-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml index d138f0ea4b..9d856c470e 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.toml b/contracts/feature-tests/basic-features/wasm/Cargo.toml index 21bdef1ace..af9e347794 100644 --- a/contracts/feature-tests/basic-features/wasm/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = true path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/big-float-features/Cargo.toml b/contracts/feature-tests/big-float-features/Cargo.toml index 720bcbd08e..dcdae6d108 100644 --- a/contracts/feature-tests/big-float-features/Cargo.toml +++ b/contracts/feature-tests/big-float-features/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/big_float_main.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/big-float-features/meta/Cargo.toml b/contracts/feature-tests/big-float-features/meta/Cargo.toml index e30a20c1c5..92d80d90a0 100644 --- a/contracts/feature-tests/big-float-features/meta/Cargo.toml +++ b/contracts/feature-tests/big-float-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.toml b/contracts/feature-tests/big-float-features/wasm/Cargo.toml index 52dbbfc0b8..0aa0ca142e 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.toml +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/Cargo.toml b/contracts/feature-tests/composability/Cargo.toml index abfaefa4b8..6332301262 100644 --- a/contracts/feature-tests/composability/Cargo.toml +++ b/contracts/feature-tests/composability/Cargo.toml @@ -33,9 +33,9 @@ path = "recursive-caller" path = "vault" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/composability/builtin-func-features/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/Cargo.toml index be47382548..1ef0c0c225 100644 --- a/contracts/feature-tests/composability/builtin-func-features/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/builtin_func_features.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml index 6bc3a0d913..c7e165f394 100644 --- a/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml index 07f233341c..0849b96d5b 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml index 7a5ca344e2..567a272e2a 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml @@ -12,9 +12,9 @@ path = "first-contract" path = "second-contract" [dev-dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml index 46f86e301b..6183b93122 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml @@ -10,10 +10,10 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml index 08b8dc1856..01fceb451a 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml index 209e8f2846..49863070ff 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml index 862cbd2b83..38407e5e4e 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml @@ -10,10 +10,10 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml index 186a1e4e03..8e3b0d819c 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml index 0e23835bda..dc6db87986 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml index fd79fe48f9..2ccd253223 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml @@ -16,9 +16,9 @@ path = "parent" path = "child" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml index 3059fd0285..b659cd0d18 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml @@ -10,9 +10,9 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml index 060df7dcde..18e6fce479 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml index 680b44e189..46ccb26612 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml index 503d0fc258..a31d643f4c 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml @@ -13,10 +13,10 @@ path = "src/lib.rs" path = "../child" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml index 046302572d..23bb1ab2cb 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml index a6be0ec3ff..6cc2cdff13 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-queue/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/Cargo.toml index 7f9e36e869..f2cd325c08 100644 --- a/contracts/feature-tests/composability/forwarder-queue/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/Cargo.toml @@ -12,14 +12,14 @@ path = "src/forwarder_queue.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" optional = true [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml index 83a6f94e22..32d7cb6aa8 100644 --- a/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml index 3f8605b67d..6fdabaefda 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml index 522720c797..be9b3a7549 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/Cargo.toml index 898735c43e..134cb94004 100644 --- a/contracts/feature-tests/composability/forwarder-raw/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/forwarder_raw.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml index 5cf1a567e8..d700ea2a51 100644 --- a/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml index 44f7e3b5eb..8ab31ee41b 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml index 7f865a4e03..b8e486edb7 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml index cbc950745d..5b5c0108b2 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder/Cargo.toml b/contracts/feature-tests/composability/forwarder/Cargo.toml index d4cd960015..f8aa438588 100644 --- a/contracts/feature-tests/composability/forwarder/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/Cargo.toml @@ -12,10 +12,10 @@ path = "src/forwarder_main.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder/meta/Cargo.toml index 677ae9b198..d8911c3f1d 100644 --- a/contracts/feature-tests/composability/forwarder/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml index 87d3ac47c6..9bc90a4fe2 100644 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/interact/Cargo.toml b/contracts/feature-tests/composability/interact/Cargo.toml index f06c1178a1..0f15a7432a 100644 --- a/contracts/feature-tests/composability/interact/Cargo.toml +++ b/contracts/feature-tests/composability/interact/Cargo.toml @@ -24,9 +24,9 @@ path = "../forwarder-queue" path = "../promises-features" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../../contracts/modules" [dependencies.multiversx-sc-snippets] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/snippets" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml index 8ad9825389..b5dbc4bb26 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml @@ -10,9 +10,9 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml index fea51513bd..0895ea8849 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml index 73dceaa520..85cf633c9e 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/promises-features/Cargo.toml b/contracts/feature-tests/composability/promises-features/Cargo.toml index 9efa7a4a11..9fd6433748 100644 --- a/contracts/feature-tests/composability/promises-features/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/Cargo.toml @@ -12,6 +12,6 @@ path = "src/promises_main.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" diff --git a/contracts/feature-tests/composability/promises-features/meta/Cargo.toml b/contracts/feature-tests/composability/promises-features/meta/Cargo.toml index ca156aaf23..535835eea8 100644 --- a/contracts/feature-tests/composability/promises-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml index 324dafa5d4..06de0a0367 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/proxy-test-first/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/Cargo.toml index fe652ba3d0..734caab8e5 100644 --- a/contracts/feature-tests/composability/proxy-test-first/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/Cargo.toml @@ -12,10 +12,10 @@ path = "src/proxy-test-first.rs" hex-literal = "0.4.1" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml index db20a499dd..382322c6d8 100644 --- a/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml index c1eebcc5b9..b38bbd9b84 100644 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/proxy-test-second/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/Cargo.toml index 1f84784bcc..ec491380e4 100644 --- a/contracts/feature-tests/composability/proxy-test-second/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/proxy-test-second.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml index 1838388c4a..61e56848e6 100644 --- a/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml index 3dc55bf167..68b6ff26d7 100644 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/recursive-caller/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/Cargo.toml index e68bc01059..2c55d5f5fb 100644 --- a/contracts/feature-tests/composability/recursive-caller/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/Cargo.toml @@ -12,9 +12,9 @@ path = "src/recursive_caller.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml index 631c940ac7..f236bc8cb5 100644 --- a/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml index d040ee6a0e..077d61f49f 100644 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/transfer-role-features/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/Cargo.toml index ec4dd83adb..6ac8831405 100644 --- a/contracts/feature-tests/composability/transfer-role-features/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/Cargo.toml @@ -12,13 +12,13 @@ path = "src/lib.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml index 1e918a72cc..58b8add8ee 100644 --- a/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml index dca2b5415f..92ca0cea4d 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/Cargo.toml b/contracts/feature-tests/composability/vault/Cargo.toml index a4a8ecc80c..aece88286e 100644 --- a/contracts/feature-tests/composability/vault/Cargo.toml +++ b/contracts/feature-tests/composability/vault/Cargo.toml @@ -10,9 +10,9 @@ path = "src/vault.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/vault/meta/Cargo.toml b/contracts/feature-tests/composability/vault/meta/Cargo.toml index e99529f668..2a7c63ee3f 100644 --- a/contracts/feature-tests/composability/vault/meta/Cargo.toml +++ b/contracts/feature-tests/composability/vault/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml index f598ee7a66..b7c65021e3 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml index cb8b2e5076..26b9b015cd 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.toml b/contracts/feature-tests/composability/vault/wasm/Cargo.toml index 7513310bff..d8d3d17aac 100644 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml index ff4595fa13..5c18660536 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml @@ -12,10 +12,10 @@ path = "src/crowdfunding_erc20.rs" path = "../erc20" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml index 0dc9b2ca7f..f929c7c105 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml index 0aea0a7c62..0b8c916c0a 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml index 747b44ed09..0cb5ab615f 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml @@ -13,10 +13,10 @@ path = "src/lib.rs" path = "../erc1155" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml index 50152e90f4..2555c62735 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml index 516a43eb63..04ddab6e25 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml index 29330a315c..84b4ed1422 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml index 5094698b9a..a3005dc7a5 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml index ceb1f2e24f..01018d9bba 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml index ba949e755a..b2a2908748 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml @@ -9,12 +9,12 @@ publish = false path = "src/erc1155.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" [dev-dependencies.erc1155-user-mock] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml index 34f1067c10..41f4a03c09 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml index 32dc473808..88bd84fd56 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml index b4cf18bfad..44a5aa05cc 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/erc20.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml index 41e8801b40..e73119bdf0 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml index 236319abc4..c01efbb7a4 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml index 4501c0b464..fa723cf47a 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml @@ -10,9 +10,9 @@ path = "src/erc721.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml index a9529971a8..45ea2fcbdf 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml index e5db8a5667..aaab30fad6 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml index 3469c841a7..1511bf2c91 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml @@ -12,10 +12,10 @@ path = "src/lottery.rs" path = "../erc20" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml index 02486b2086..7d2f5b3d15 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml index 42237353f2..f999a60635 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml index 8740d1fdcb..5b4b511ed6 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/esdt_system_sc_mock.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml index 88dc69e511..93075bf8c3 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml index 710f03a2f5..1a28c98d4c 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/exchange-features/Cargo.toml b/contracts/feature-tests/exchange-features/Cargo.toml index adf86f8ae9..6d3a48ad00 100644 --- a/contracts/feature-tests/exchange-features/Cargo.toml +++ b/contracts/feature-tests/exchange-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/exchange_features.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/exchange-features/meta/Cargo.toml b/contracts/feature-tests/exchange-features/meta/Cargo.toml index 589d79efaa..90e47b7c03 100644 --- a/contracts/feature-tests/exchange-features/meta/Cargo.toml +++ b/contracts/feature-tests/exchange-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.toml b/contracts/feature-tests/exchange-features/wasm/Cargo.toml index ab4527595f..b8925ad4a4 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.toml +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/formatted-message-features/Cargo.toml b/contracts/feature-tests/formatted-message-features/Cargo.toml index 684fa23b9d..b9953c21ee 100644 --- a/contracts/feature-tests/formatted-message-features/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/formatted_message_features.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/formatted-message-features/meta/Cargo.toml b/contracts/feature-tests/formatted-message-features/meta/Cargo.toml index 3657415363..5a5494af2a 100644 --- a/contracts/feature-tests/formatted-message-features/meta/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = [ "you",] path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml index 4f674abe4b..d0599cc360 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/managed-map-features/Cargo.toml b/contracts/feature-tests/managed-map-features/Cargo.toml index cb63f04709..13ff3f0628 100644 --- a/contracts/feature-tests/managed-map-features/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/mmap_features.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/managed-map-features/meta/Cargo.toml b/contracts/feature-tests/managed-map-features/meta/Cargo.toml index 61694618e8..bf12a6a524 100644 --- a/contracts/feature-tests/managed-map-features/meta/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml index 17766d61c0..09e977363e 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/Cargo.toml b/contracts/feature-tests/multi-contract-features/Cargo.toml index 3dbd436d23..80fccb51f3 100644 --- a/contracts/feature-tests/multi-contract-features/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/Cargo.toml @@ -12,9 +12,9 @@ path = "src/multi_contract_features.rs" example_feature = [] [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/multi-contract-features/meta/Cargo.toml b/contracts/feature-tests/multi-contract-features/meta/Cargo.toml index 47d91e055b..4a96c5e067 100644 --- a/contracts/feature-tests/multi-contract-features/meta/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml index d79a234dd7..d6192e9eb3 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml index e0860d7f9f..4b733fdda8 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml @@ -26,7 +26,7 @@ path = ".." features = ["example_feature"] [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml index a54dbf64d6..21f2ef0bee 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml index 43733a6182..12144e1645 100644 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/panic-message-features/Cargo.toml b/contracts/feature-tests/panic-message-features/Cargo.toml index 91e73a3ee1..656c6e2b13 100644 --- a/contracts/feature-tests/panic-message-features/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/panic_features.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/panic-message-features/meta/Cargo.toml b/contracts/feature-tests/panic-message-features/meta/Cargo.toml index c456c8c35c..8c67b8ebba 100644 --- a/contracts/feature-tests/panic-message-features/meta/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml index 06895f2613..93e00552f3 100644 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/payable-features/Cargo.toml b/contracts/feature-tests/payable-features/Cargo.toml index 713b045b04..6862e0ac62 100644 --- a/contracts/feature-tests/payable-features/Cargo.toml +++ b/contracts/feature-tests/payable-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/payable_features.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/payable-features/meta/Cargo.toml b/contracts/feature-tests/payable-features/meta/Cargo.toml index 93e4981ee2..850ef041c7 100644 --- a/contracts/feature-tests/payable-features/meta/Cargo.toml +++ b/contracts/feature-tests/payable-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.toml b/contracts/feature-tests/payable-features/wasm/Cargo.toml index 790b323a3a..55210f0e10 100644 --- a/contracts/feature-tests/payable-features/wasm/Cargo.toml +++ b/contracts/feature-tests/payable-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml index e90edbe6d6..9a6188feb4 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml index e0912a5305..6064d313a3 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml @@ -13,7 +13,7 @@ path = "src/interactor_main.rs" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/snippets" # [workspace] diff --git a/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml index 7395919b55..90111ca338 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs b/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs index 4724df6a59..13fd970d29 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs +++ b/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs @@ -13,7 +13,7 @@ multiversx_sc::derive_imports!(); // Additionally, we also have to update the interact-rs snippets manually to add relative paths: // [dependencies.multiversx-sc-snippets] -// version = "0.48.0" +// version = "0.48.1" // path = "../../../../framework/snippets" #[derive( diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml index 60ad1ebb93..251d1b49aa 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml index fcdf74843b..015d94cc4f 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" publish = false [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" features = [ "alloc" ] @@ -17,7 +17,7 @@ path = "../../examples/adder" path = "../../feature-tests/basic-features" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml index cf03d27bcb..746732fc11 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml index 2431c1c2b8..267402b339 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/use-module/Cargo.toml b/contracts/feature-tests/use-module/Cargo.toml index 501ea6f461..8671f3c4fc 100644 --- a/contracts/feature-tests/use-module/Cargo.toml +++ b/contracts/feature-tests/use-module/Cargo.toml @@ -9,17 +9,17 @@ publish = false path = "src/use_module.rs" [dependencies.multiversx-sc-modules] -version = "0.48.0" +version = "0.48.1" path = "../../../contracts/modules" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/scenario" [dev-dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../framework/meta" diff --git a/contracts/feature-tests/use-module/meta/Cargo.toml b/contracts/feature-tests/use-module/meta/Cargo.toml index c5f47f1892..94a60a1999 100644 --- a/contracts/feature-tests/use-module/meta/Cargo.toml +++ b/contracts/feature-tests/use-module/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/use-module/meta/abi/Cargo.toml b/contracts/feature-tests/use-module/meta/abi/Cargo.toml index 6a6a8b029c..81f7c46385 100644 --- a/contracts/feature-tests/use-module/meta/abi/Cargo.toml +++ b/contracts/feature-tests/use-module/meta/abi/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/use-module/use_module_expected_main.abi.json b/contracts/feature-tests/use-module/use_module_expected_main.abi.json index cd34bba6d9..6d77fe6da0 100644 --- a/contracts/feature-tests/use-module/use_module_expected_main.abi.json +++ b/contracts/feature-tests/use-module/use_module_expected_main.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.48.0" + "version": "0.48.1" } }, "docs": [ diff --git a/contracts/feature-tests/use-module/use_module_expected_view.abi.json b/contracts/feature-tests/use-module/use_module_expected_view.abi.json index e91480ad37..c4d4ea960c 100644 --- a/contracts/feature-tests/use-module/use_module_expected_view.abi.json +++ b/contracts/feature-tests/use-module/use_module_expected_view.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.48.0" + "version": "0.48.1" } }, "docs": [ diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml index 455a51b925..1d644729aa 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/use-module/wasm/Cargo.toml b/contracts/feature-tests/use-module/wasm/Cargo.toml index 2a4a269055..18f3e41dca 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.48.0" +version = "0.48.1" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/modules/Cargo.toml b/contracts/modules/Cargo.toml index 14775b4f4d..d3f742c99a 100644 --- a/contracts/modules/Cargo.toml +++ b/contracts/modules/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" edition = "2021" authors = ["MultiversX "] @@ -17,5 +17,5 @@ categories = ["no-std", "wasm", "cryptography::cryptocurrencies"] alloc = ["multiversx-sc/alloc"] [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../framework/base" diff --git a/data/codec-derive/Cargo.toml b/data/codec-derive/Cargo.toml index f0911eb9d6..25c6a716b0 100644 --- a/data/codec-derive/Cargo.toml +++ b/data/codec-derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" edition = "2021" authors = ["dorin.iancu ", "Andrei Marinica ", "MultiversX "] diff --git a/data/codec/Cargo.toml b/data/codec/Cargo.toml index b42b2051b5..d3d8d14099 100644 --- a/data/codec/Cargo.toml +++ b/data/codec/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] @@ -19,7 +19,7 @@ alloc = [] [dependencies.multiversx-sc-codec-derive] path = "../codec-derive" -version = "=0.18.6" +version = "=0.18.7" optional = true [dependencies] @@ -28,4 +28,4 @@ num-bigint = { version = "=0.4.4", optional = true } # can only be used in std c [dev-dependencies.multiversx-sc-codec-derive] path = "../codec-derive" -version = "=0.18.6" +version = "=0.18.7" diff --git a/framework/base/Cargo.toml b/framework/base/Cargo.toml index 646fc2fe56..577b05ee7d 100644 --- a/framework/base/Cargo.toml +++ b/framework/base/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] @@ -28,10 +28,10 @@ bitflags = "=2.4.2" num-traits = { version = "=0.2.17", default-features = false } [dependencies.multiversx-sc-derive] -version = "=0.48.0" +version = "=0.48.1" path = "../derive" [dependencies.multiversx-sc-codec] -version = "=0.18.6" +version = "=0.18.7" path = "../../data/codec" features = ["derive"] diff --git a/framework/derive/Cargo.toml b/framework/derive/Cargo.toml index 2130f5c384..d0b128dda2 100644 --- a/framework/derive/Cargo.toml +++ b/framework/derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] diff --git a/framework/meta/Cargo.toml b/framework/meta/Cargo.toml index 9080bf7e04..65f1f192a3 100644 --- a/framework/meta/Cargo.toml +++ b/framework/meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-meta" -version = "0.48.0" +version = "0.48.1" edition = "2021" authors = [ @@ -52,7 +52,7 @@ pathdiff = { version = "0.2.1", optional = true } common-path = { version = "1.0.0", optional = true } [dependencies.multiversx-sc] -version = "=0.48.0" +version = "=0.48.1" path = "../base" features = ["alloc", "num-bigint"] diff --git a/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs b/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs index a6dfb155a3..72a192b0aa 100644 --- a/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs +++ b/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs @@ -69,7 +69,7 @@ path = "src/{SNIPPETS_SOURCE_FILE_NAME}" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.48.0" +version = "0.48.1" # [workspace] diff --git a/framework/meta/src/cmd/contract/meta_config.rs b/framework/meta/src/cmd/contract/meta_config.rs index 760e4f6b38..cf5b91aa48 100644 --- a/framework/meta/src/cmd/contract/meta_config.rs +++ b/framework/meta/src/cmd/contract/meta_config.rs @@ -205,7 +205,7 @@ overflow-checks = false path = \"..\" [dependencies.multiversx-sc-wasm-adapter] -version = \"0.48.0\" +version = \"0.48.1\" path = \"../../../../framework/wasm-adapter\" [workspace] @@ -218,7 +218,7 @@ members = [\".\"] name: "test".to_string(), edition: "2021".to_string(), profile: ContractVariantProfile::default(), - framework_version: "0.48.0".to_string(), + framework_version: "0.48.1".to_string(), framework_path: Option::Some("../../../framework/base".to_string()), contract_features: Vec::::new(), }; diff --git a/framework/meta/src/version_history.rs b/framework/meta/src/version_history.rs index 45b66d2e25..5db786b025 100644 --- a/framework/meta/src/version_history.rs +++ b/framework/meta/src/version_history.rs @@ -3,7 +3,7 @@ use crate::{framework_version, framework_versions, version::FrameworkVersion}; /// The last version to be used for upgrades and templates. /// /// Should be edited every time a new version of the framework is released. -pub const LAST_VERSION: FrameworkVersion = framework_version!(0.48.0); +pub const LAST_VERSION: FrameworkVersion = framework_version!(0.48.1); /// Indicates where to stop with the upgrades. pub const LAST_UPGRADE_VERSION: FrameworkVersion = LAST_VERSION; @@ -67,6 +67,7 @@ pub const VERSIONS: &[FrameworkVersion] = framework_versions![ 0.47.7, 0.47.8, 0.48.0, + 0.48.1, ]; #[rustfmt::skip] diff --git a/framework/scenario/Cargo.toml b/framework/scenario/Cargo.toml index 0d487891c3..45359208d8 100644 --- a/framework/scenario/Cargo.toml +++ b/framework/scenario/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-scenario" -version = "0.48.0" +version = "0.48.1" edition = "2021" authors = [ @@ -40,12 +40,12 @@ path = "src/main.rs" run-go-tests = [] [dependencies.multiversx-sc] -version = "=0.48.0" +version = "=0.48.1" features = ["alloc", "num-bigint"] path = "../base" [dependencies.multiversx-sc-meta] -version = "=0.48.0" +version = "=0.48.1" path = "../meta" [dependencies.multiversx-chain-scenario-format] diff --git a/framework/snippets/Cargo.toml b/framework/snippets/Cargo.toml index 8fd24f67cb..65fbf71a37 100644 --- a/framework/snippets/Cargo.toml +++ b/framework/snippets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-snippets" -version = "0.48.0" +version = "0.48.1" edition = "2021" authors = ["MultiversX "] @@ -22,7 +22,7 @@ env_logger = "0.11" futures = "0.3" [dependencies.multiversx-sc-scenario] -version = "=0.48.0" +version = "=0.48.1" path = "../scenario" [dependencies.multiversx-sdk] diff --git a/framework/wasm-adapter/Cargo.toml b/framework/wasm-adapter/Cargo.toml index a73659240a..6a0814f0c7 100644 --- a/framework/wasm-adapter/Cargo.toml +++ b/framework/wasm-adapter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" edition = "2021" authors = [ @@ -22,5 +22,5 @@ categories = [ ] [dependencies.multiversx-sc] -version = "=0.48.0" +version = "=0.48.1" path = "../base" diff --git a/tools/mxpy-snippet-generator/Cargo.toml b/tools/mxpy-snippet-generator/Cargo.toml index ca71edf2e8..243e1e83ca 100644 --- a/tools/mxpy-snippet-generator/Cargo.toml +++ b/tools/mxpy-snippet-generator/Cargo.toml @@ -10,7 +10,7 @@ name = "mxpy-snippet-generator" path = "src/mxpy_snippet_generator.rs" [dependencies.multiversx-sc] -version = "0.48.0" +version = "0.48.1" path = "../../framework/base" [dependencies] diff --git a/tools/rust-debugger/format-tests/Cargo.toml b/tools/rust-debugger/format-tests/Cargo.toml index 0e22178945..85d2128bee 100644 --- a/tools/rust-debugger/format-tests/Cargo.toml +++ b/tools/rust-debugger/format-tests/Cargo.toml @@ -9,11 +9,11 @@ name = "format-tests" path = "src/format_tests.rs" [dependencies.multiversx-sc] -version = "=0.48.0" +version = "=0.48.1" path = "../../../framework/base" [dependencies.multiversx-sc-scenario] -version = "=0.48.0" +version = "=0.48.1" path = "../../../framework/scenario" [dependencies.multiversx-chain-vm] From 90b5db781fa6ff49bc5cf8c5d525d5909a8bbd37 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 30 Apr 2024 18:53:07 +0300 Subject: [PATCH 107/185] Cargo.lock update --- .../benchmarks/large-storage/wasm/Cargo.lock | 10 +++++----- .../mappers/linked-list-repeat/wasm/Cargo.lock | 10 +++++----- .../mappers/map-repeat/wasm/Cargo.lock | 10 +++++----- .../mappers/queue-repeat/wasm/Cargo.lock | 10 +++++----- .../mappers/set-repeat/wasm/Cargo.lock | 10 +++++----- .../single-value-repeat/wasm/Cargo.lock | 10 +++++----- .../mappers/vec-repeat/wasm/Cargo.lock | 10 +++++----- .../benchmarks/send-tx-repeat/wasm/Cargo.lock | 10 +++++----- .../Cargo.lock | 10 +++++----- .../Cargo.lock | 10 +++++----- .../benchmarks/str-repeat/wasm/Cargo.lock | 10 +++++----- .../core/price-aggregator/wasm/Cargo.lock | 18 +++++++++--------- contracts/examples/adder/wasm/Cargo.lock | 10 +++++----- .../bonding-curve-contract/wasm/Cargo.lock | 12 ++++++------ contracts/examples/check-pause/wasm/Cargo.lock | 12 ++++++------ .../examples/crowdfunding-esdt/wasm/Cargo.lock | 10 +++++----- .../examples/crypto-bubbles/wasm/Cargo.lock | 10 +++++----- .../kitty-auction/wasm/Cargo.lock | 10 +++++----- .../kitty-genetic-alg/wasm/Cargo.lock | 10 +++++----- .../kitty-ownership/wasm/Cargo.lock | 10 +++++----- .../examples/crypto-zombies/wasm/Cargo.lock | 10 +++++----- .../examples/digital-cash/wasm/Cargo.lock | 10 +++++----- contracts/examples/empty/wasm/Cargo.lock | 10 +++++----- .../esdt-transfer-with-fee/wasm/Cargo.lock | 10 +++++----- contracts/examples/factorial/wasm/Cargo.lock | 10 +++++----- .../examples/fractional-nfts/wasm/Cargo.lock | 12 ++++++------ .../examples/lottery-esdt/wasm/Cargo.lock | 10 +++++----- .../multisig/wasm-multisig-full/Cargo.lock | 12 ++++++------ .../multisig/wasm-multisig-view/Cargo.lock | 12 ++++++------ contracts/examples/multisig/wasm/Cargo.lock | 12 ++++++------ contracts/examples/nft-minter/wasm/Cargo.lock | 10 +++++----- .../nft-storage-prepay/wasm/Cargo.lock | 10 +++++----- .../examples/nft-subscription/wasm/Cargo.lock | 12 ++++++------ .../order-book/factory/wasm/Cargo.lock | 10 +++++----- .../examples/order-book/pair/wasm/Cargo.lock | 10 +++++----- .../examples/ping-pong-egld/wasm/Cargo.lock | 10 +++++----- contracts/examples/proxy-pause/wasm/Cargo.lock | 10 +++++----- .../rewards-distribution/wasm/Cargo.lock | 12 ++++++------ .../examples/seed-nft-minter/wasm/Cargo.lock | 12 ++++++------ .../examples/token-release/wasm/Cargo.lock | 10 +++++----- .../abi-tester/wasm-abi-tester-ev/Cargo.lock | 10 +++++----- .../feature-tests/abi-tester/wasm/Cargo.lock | 10 +++++----- .../wasm-alloc-mem-fail/Cargo.lock | 10 +++++----- .../wasm-alloc-mem-leaking/Cargo.lock | 10 +++++----- .../alloc-features/wasm/Cargo.lock | 10 +++++----- .../Cargo.lock | 12 ++++++------ .../basic-features/wasm/Cargo.lock | 12 ++++++------ .../big-float-features/wasm/Cargo.lock | 10 +++++----- .../builtin-func-features/wasm/Cargo.lock | 10 +++++----- .../first-contract/wasm/Cargo.lock | 10 +++++----- .../second-contract/wasm/Cargo.lock | 10 +++++----- .../child/wasm/Cargo.lock | 10 +++++----- .../parent/wasm/Cargo.lock | 10 +++++----- .../wasm-forwarder-queue-promises/Cargo.lock | 10 +++++----- .../forwarder-queue/wasm/Cargo.lock | 10 +++++----- .../Cargo.lock | 10 +++++----- .../Cargo.lock | 10 +++++----- .../forwarder-raw/wasm/Cargo.lock | 10 +++++----- .../composability/forwarder/wasm/Cargo.lock | 10 +++++----- .../local-esdt-and-nft/wasm/Cargo.lock | 10 +++++----- .../promises-features/wasm/Cargo.lock | 10 +++++----- .../proxy-test-first/wasm/Cargo.lock | 10 +++++----- .../proxy-test-second/wasm/Cargo.lock | 10 +++++----- .../recursive-caller/wasm/Cargo.lock | 10 +++++----- .../transfer-role-features/wasm/Cargo.lock | 12 ++++++------ .../vault/wasm-vault-promises/Cargo.lock | 10 +++++----- .../vault/wasm-vault-upgrade/Cargo.lock | 10 +++++----- .../composability/vault/wasm/Cargo.lock | 10 +++++----- .../crowdfunding-erc20/wasm/Cargo.lock | 10 +++++----- .../erc1155-marketplace/wasm/Cargo.lock | 10 +++++----- .../erc1155-user-mock/wasm/Cargo.lock | 10 +++++----- .../erc1155/wasm/Cargo.lock | 10 +++++----- .../erc-style-contracts/erc20/wasm/Cargo.lock | 10 +++++----- .../erc-style-contracts/erc721/wasm/Cargo.lock | 10 +++++----- .../lottery-erc20/wasm/Cargo.lock | 10 +++++----- .../esdt-system-sc-mock/wasm/Cargo.lock | 10 +++++----- .../exchange-features/wasm/Cargo.lock | 10 +++++----- .../formatted-message-features/wasm/Cargo.lock | 10 +++++----- .../managed-map-features/wasm/Cargo.lock | 10 +++++----- .../wasm-multi-contract-alt-impl/Cargo.lock | 10 +++++----- .../Cargo.lock | 10 +++++----- .../Cargo.lock | 10 +++++----- .../multi-contract-features/wasm/Cargo.lock | 10 +++++----- .../panic-message-features/wasm/Cargo.lock | 10 +++++----- .../payable-features/wasm/Cargo.lock | 10 +++++----- .../wasm/Cargo.lock | 10 +++++----- .../wasm/Cargo.lock | 10 +++++----- .../use-module/wasm-use-module-view/Cargo.lock | 12 ++++++------ .../feature-tests/use-module/wasm/Cargo.lock | 12 ++++++------ 89 files changed, 463 insertions(+), 463 deletions(-) diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.lock b/contracts/benchmarks/large-storage/wasm/Cargo.lock index cb13777edf..d99eb1d8e8 100755 --- a/contracts/benchmarks/large-storage/wasm/Cargo.lock +++ b/contracts/benchmarks/large-storage/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock index 78ff5aef10..66f592dee9 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock index 3ee28394b7..a6551181e2 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock index 4df3ab54da..eaf6a5d673 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock index 4f8e72b115..d6813d0757 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock index fdfa32de28..a3d214535d 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock index f51214f9f1..3bd814698b 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock index 13533956e8..7127d940de 100755 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock index 4683a2b046..f16e8c090b 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock index f750a8d328..3f0656d631 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.lock b/contracts/benchmarks/str-repeat/wasm/Cargo.lock index e2b54817be..17fc991178 100755 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/core/price-aggregator/wasm/Cargo.lock b/contracts/core/price-aggregator/wasm/Cargo.lock index 9e64d41b47..e11db402c0 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.lock +++ b/contracts/core/price-aggregator/wasm/Cargo.lock @@ -74,9 +74,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.153" +version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" [[package]] name = "log" @@ -86,7 +86,7 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "multiversx-price-aggregator-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "arrayvec", "getrandom", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -116,7 +116,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -124,7 +124,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -134,7 +134,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -145,14 +145,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/adder/wasm/Cargo.lock b/contracts/examples/adder/wasm/Cargo.lock index c7b8a8f917..08d1e86a84 100755 --- a/contracts/examples/adder/wasm/Cargo.lock +++ b/contracts/examples/adder/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock index 0fa9693639..309cf22a03 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/check-pause/wasm/Cargo.lock b/contracts/examples/check-pause/wasm/Cargo.lock index 1d886bba04..b21f0ad6d1 100644 --- a/contracts/examples/check-pause/wasm/Cargo.lock +++ b/contracts/examples/check-pause/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock index 9a14efccc8..d6516b3acf 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.lock b/contracts/examples/crypto-bubbles/wasm/Cargo.lock index 6af31b83b6..3a40a41c01 100755 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.lock +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock index 82fd08dc78..c2ebcc9167 100755 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -113,7 +113,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -124,7 +124,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock index 95368370cb..a96ee69891 100755 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock @@ -65,7 +65,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock index d497d47054..9e6e06ea1a 100755 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -104,7 +104,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -115,7 +115,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.lock b/contracts/examples/crypto-zombies/wasm/Cargo.lock index 53c26db1eb..1bd3e9d974 100755 --- a/contracts/examples/crypto-zombies/wasm/Cargo.lock +++ b/contracts/examples/crypto-zombies/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/digital-cash/wasm/Cargo.lock b/contracts/examples/digital-cash/wasm/Cargo.lock index 602c7d856b..1cd77b2d22 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.lock +++ b/contracts/examples/digital-cash/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/empty/wasm/Cargo.lock b/contracts/examples/empty/wasm/Cargo.lock index 5a87b422d2..4399ff23ef 100755 --- a/contracts/examples/empty/wasm/Cargo.lock +++ b/contracts/examples/empty/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock index cee7278178..56981cfdf1 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/factorial/wasm/Cargo.lock b/contracts/examples/factorial/wasm/Cargo.lock index 4dff18babf..b32b28949b 100755 --- a/contracts/examples/factorial/wasm/Cargo.lock +++ b/contracts/examples/factorial/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.lock b/contracts/examples/fractional-nfts/wasm/Cargo.lock index f95919526e..0ed6497ed9 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.lock +++ b/contracts/examples/fractional-nfts/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.lock b/contracts/examples/lottery-esdt/wasm/Cargo.lock index 6f1cace25d..3e13602042 100755 --- a/contracts/examples/lottery-esdt/wasm/Cargo.lock +++ b/contracts/examples/lottery-esdt/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock index 953a8551f3..cf567f898e 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock index df77559d67..2ae00e3366 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm/Cargo.lock b/contracts/examples/multisig/wasm/Cargo.lock index d72aa67e30..dc1fc12b7e 100755 --- a/contracts/examples/multisig/wasm/Cargo.lock +++ b/contracts/examples/multisig/wasm/Cargo.lock @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-minter/wasm/Cargo.lock b/contracts/examples/nft-minter/wasm/Cargo.lock index ce0b2650f9..1da583baee 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.lock +++ b/contracts/examples/nft-minter/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock index 319176681e..a8cf928989 100755 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-subscription/wasm/Cargo.lock b/contracts/examples/nft-subscription/wasm/Cargo.lock index 2244415577..726b01fa88 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.lock +++ b/contracts/examples/nft-subscription/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/order-book/factory/wasm/Cargo.lock b/contracts/examples/order-book/factory/wasm/Cargo.lock index 60c0b2cabd..3f252320b3 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.lock +++ b/contracts/examples/order-book/factory/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/order-book/pair/wasm/Cargo.lock b/contracts/examples/order-book/pair/wasm/Cargo.lock index 14b8551309..21e89dac31 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.lock +++ b/contracts/examples/order-book/pair/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.lock b/contracts/examples/ping-pong-egld/wasm/Cargo.lock index a86f53d6dd..f7ce1b2dd3 100755 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.lock +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/proxy-pause/wasm/Cargo.lock b/contracts/examples/proxy-pause/wasm/Cargo.lock index 73d7607641..a1a40ea776 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.lock +++ b/contracts/examples/proxy-pause/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.lock b/contracts/examples/rewards-distribution/wasm/Cargo.lock index d5303f9494..82e8b6241e 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.lock +++ b/contracts/examples/rewards-distribution/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.lock b/contracts/examples/seed-nft-minter/wasm/Cargo.lock index d322f26404..7bd62a16fd 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.lock +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/token-release/wasm/Cargo.lock b/contracts/examples/token-release/wasm/Cargo.lock index 0d4d728f3e..6d39aac883 100644 --- a/contracts/examples/token-release/wasm/Cargo.lock +++ b/contracts/examples/token-release/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock index a99ecaccaf..95b5bf4d2b 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.lock b/contracts/feature-tests/abi-tester/wasm/Cargo.lock index db59638442..cee49ced4a 100755 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock index 1a3bc7da70..1898fab79b 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock index b32efb0d4a..193a32459f 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.lock b/contracts/feature-tests/alloc-features/wasm/Cargo.lock index 6a0f3330d7..6f2be1822e 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock index f5d8794bb9..b8582c7218 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.lock b/contracts/feature-tests/basic-features/wasm/Cargo.lock index bfb8c41ea7..1f5af1b98b 100755 --- a/contracts/feature-tests/basic-features/wasm/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.lock b/contracts/feature-tests/big-float-features/wasm/Cargo.lock index 40beaf8d03..5e95524a81 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.lock +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock index bb57eeb64e..8b0361ffb9 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock index a2c55964c7..f0e1a09e32 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock index 99cd973235..41987ecfe9 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock index b7b7846eb2..532a78bc80 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock index fd4d0794e8..31410f1b90 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock index 9ce03493b3..f05e7a0cdd 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock index dbef7fe1c4..bd11942252 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock index 1b3b56c133..3cbb66650a 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock index dcb63c28ef..0854d75c17 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock index 4b56a477a5..01e46ccd34 100755 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock index 14ba905f98..45f9ebb16c 100755 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock index cf8b7eaeb8..4f188cc77a 100755 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock index 1cce0c20ac..edd5f4e52a 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock index 2616a0e326..eb64ca8f63 100755 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock index cb41667a6d..c0694e8a27 100755 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock index d2e41ac725..2a46d970f4 100755 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock index bbbb12c9f9..24369519bc 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock index e86afd77c4..8df1fd19a5 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock index 0b7112be8c..b0b9342959 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.lock b/contracts/feature-tests/composability/vault/wasm/Cargo.lock index 6d0b58aed6..5d36265ec2 100755 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock index ad10f006f4..e4339b3283 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock @@ -63,7 +63,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock index 0a96032377..96edd6a295 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock @@ -63,7 +63,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock index a6f053b5c8..be9d41b78d 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock index 90f97cfb61..91409bfda7 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock index c7d25eb4e2..492ddf9510 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock index b91f78bb52..140f4dfbbc 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock index 36b9febca3..50d1f38715 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock index d52e047711..1316ca215f 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.lock b/contracts/feature-tests/exchange-features/wasm/Cargo.lock index 09349d87e7..e9c8ff82c2 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.lock +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock index 9dbe2ad726..279238f2e2 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock index a555da68eb..8de61c1187 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock index 3997752036..edb911a2f4 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock index 13230fc27c..92f5d93116 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock index b1fa6d8b6b..b05ca10df5 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock index 2815c003c8..d3e3e66eb7 100755 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock index ddf9332c59..ccde2cee09 100755 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.lock b/contracts/feature-tests/payable-features/wasm/Cargo.lock index 3ffdf49ece..a20d9a05bd 100755 --- a/contracts/feature-tests/payable-features/wasm/Cargo.lock +++ b/contracts/feature-tests/payable-features/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock index b8d98314e7..a35b1f0228 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock index f95eb564c3..287a90ba46 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock index 969d71832f..c0abc2c92c 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/use-module/wasm/Cargo.lock b/contracts/feature-tests/use-module/wasm/Cargo.lock index c97622bd31..f48df08dc8 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm/Cargo.lock @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.48.0" +version = "0.48.1" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.7" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.7" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.48.0" +version = "0.48.1" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.48.0" +version = "0.48.1" dependencies = [ "multiversx-sc", ] From c78ba3f9dd56517307dd385baac53a961e9bbb1f Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 30 Apr 2024 22:00:46 +0300 Subject: [PATCH 108/185] increase code coverage - fix attributes on nft_update_attributes --- .../composability/forwarder/src/call_async.rs | 3 ++- .../forwarder/src/forwarder_proxy.rs | 2 +- .../composability/forwarder/src/nft.rs | 6 ++++-- .../tests/forwarder_blackbox_test.rs | 16 ++-------------- .../src/facade/world_tx/scenario_check_state.rs | 9 +++++---- 5 files changed, 14 insertions(+), 22 deletions(-) diff --git a/contracts/feature-tests/composability/forwarder/src/call_async.rs b/contracts/feature-tests/composability/forwarder/src/call_async.rs index 2de43a6752..51a751b114 100644 --- a/contracts/feature-tests/composability/forwarder/src/call_async.rs +++ b/contracts/feature-tests/composability/forwarder/src/call_async.rs @@ -3,7 +3,8 @@ use crate::vault_proxy; multiversx_sc::imports!(); multiversx_sc::derive_imports!(); -#[derive(TopEncode, TopDecode, TypeAbi)] +#[type_abi] +#[derive(TopEncode, TopDecode)] pub struct CallbackData { callback_name: ManagedBuffer, token_identifier: EgldOrEsdtTokenIdentifier, diff --git a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs index 5c859a5169..4d0f3f7bdd 100644 --- a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs +++ b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs @@ -1118,7 +1118,7 @@ where pub args: ManagedVec>, } -#[derive(TopEncode, TopDecode)] +#[derive(TopEncode, TopDecode, Clone, Copy, PartialEq, Debug)] pub struct Color { pub r: u8, pub g: u8, diff --git a/contracts/feature-tests/composability/forwarder/src/nft.rs b/contracts/feature-tests/composability/forwarder/src/nft.rs index 8eae1e83c5..3deb7f1493 100644 --- a/contracts/feature-tests/composability/forwarder/src/nft.rs +++ b/contracts/feature-tests/composability/forwarder/src/nft.rs @@ -4,14 +4,16 @@ multiversx_sc::derive_imports!(); use super::storage; // used as mock attributes for NFTs -#[derive(TopEncode, TopDecode, TypeAbi, Clone, Copy, PartialEq, Debug)] +#[type_abi] +#[derive(TopEncode, TopDecode, Clone, Copy, PartialEq, Debug)] pub struct Color { pub r: u8, pub g: u8, pub b: u8, } -#[derive(TopEncode, TopDecode, TypeAbi, PartialEq, Eq, Clone)] +#[type_abi] +#[derive(TopEncode, TopDecode, PartialEq, Eq, Clone)] pub struct ComplexAttributes { pub biguint: BigUint, pub vec_u8: ManagedBuffer, diff --git a/contracts/feature-tests/composability/tests/forwarder_blackbox_test.rs b/contracts/feature-tests/composability/tests/forwarder_blackbox_test.rs index 73b1b92488..7dd5c1a81b 100644 --- a/contracts/feature-tests/composability/tests/forwarder_blackbox_test.rs +++ b/contracts/feature-tests/composability/tests/forwarder_blackbox_test.rs @@ -45,11 +45,6 @@ fn test_nft_update_attributes_and_send() { let mut state = ForwarderTestState::new(); let original_attributes = forwarder_proxy::Color { r: 0, g: 0, b: 0 }; - let original_attributes_bytes: &[u8] = &[ - original_attributes.r, - original_attributes.g, - original_attributes.b, - ]; state .world @@ -70,12 +65,7 @@ fn test_nft_update_attributes_and_send() { state .world .check_account(USER_ADDRESS) - .esdt_nft_balance_and_attributes( - NFT_TOKEN_ID, - 1, - 1, - managed_buffer!(original_attributes_bytes), - ); + .esdt_nft_balance_and_attributes(NFT_TOKEN_ID, 1, 1, original_attributes); let new_attributes = forwarder_proxy::Color { r: 255, @@ -83,8 +73,6 @@ fn test_nft_update_attributes_and_send() { b: 255, }; - let new_attributes_bytes: &[u8] = &[new_attributes.r, new_attributes.g, new_attributes.b]; - state.world.transfer_step( TransferStep::new() .from(USER_ADDRESS.eval_to_expr().as_str()) @@ -111,5 +99,5 @@ fn test_nft_update_attributes_and_send() { state .world .check_account(USER_ADDRESS) - .esdt_nft_balance_and_attributes(NFT_TOKEN_ID, 1, 1, managed_buffer!(new_attributes_bytes)); + .esdt_nft_balance_and_attributes(NFT_TOKEN_ID, 1, 1, new_attributes); } diff --git a/framework/scenario/src/facade/world_tx/scenario_check_state.rs b/framework/scenario/src/facade/world_tx/scenario_check_state.rs index e79756ad1d..3f5423419a 100644 --- a/framework/scenario/src/facade/world_tx/scenario_check_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_check_state.rs @@ -1,8 +1,9 @@ use std::collections::{btree_map::Entry, BTreeMap}; use multiversx_chain_scenario_format::interpret_trait::{InterpretableFrom, InterpreterContext}; -use multiversx_sc::types::{ - AnnotatedValue, BigUint, ManagedAddress, ManagedBuffer, TokenIdentifier, +use multiversx_sc::{ + codec::{top_encode_to_vec_u8, TopEncode}, + types::{AnnotatedValue, BigUint, ManagedAddress, ManagedBuffer, TokenIdentifier}, }; use crate::{ @@ -181,13 +182,13 @@ impl<'w> CheckStateBuilder<'w> { K: AnnotatedValue>, N: AnnotatedValue, V: AnnotatedValue>, - T: AnnotatedValue>, + T: TopEncode, { let env = self.new_env_data(); let token_id_key = token_identifier_annotated(&env, token_id); let nonce_value = u64_annotated(&env, &nonce); let balance_value = big_uint_annotated(&env, &balance); - let attributes_value = bytes_annotated(&env, attributes); + let attributes_value = top_encode_to_vec_u8(&attributes).unwrap(); if let CheckEsdtMap::Unspecified = &self.current_account.esdt { let mut check_esdt = CheckEsdt::Full(CheckEsdtData::default()); From f50de7d20b9d31fcb2d077323b551ab15fad08ff Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 30 Apr 2024 22:28:52 +0300 Subject: [PATCH 109/185] increase code coverage - fix nft_update_attributes with no attributes --- .../feature-tests/scenario-tester/tests/st_blackbox_test.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index a8f4944aca..ce153e689c 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -144,7 +144,7 @@ fn set_state_test() { .check_account(third) .nonce(3) .balance(50) - .esdt_nft_balance_and_attributes(NFT_ID, 2, 1, ()) + .esdt_nft_balance_and_attributes(NFT_ID, 2, 1, "") .commit(); let fourth_uris = FOURTH_URIS @@ -171,7 +171,7 @@ fn set_state_test() { .check_account(fourth) .nonce(3) .balance(50) - .esdt_nft_balance_and_attributes(NFT_ID, 2, 1, managed_buffer!(FOURTH_ATTRIBUTES)) + .esdt_nft_balance_and_attributes(NFT_ID, 2, 1, FOURTH_ATTRIBUTES) .commit(); world @@ -183,7 +183,7 @@ fn set_state_test() { .check_account(fifth) .nonce(2) .balance(30) - .esdt_nft_balance_and_attributes(NFT_ID, 5, 0, ()); + .esdt_nft_balance_and_attributes(NFT_ID, 5, 0, ""); // using no commit should drop the value naturally world From b781824b7dc5308d7ddcd5627c7a1a09f2658b90 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 1 May 2024 03:02:07 +0300 Subject: [PATCH 110/185] test fix --- .../scenarios/use_module_ongoing_operation_example.scen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/feature-tests/use-module/scenarios/use_module_ongoing_operation_example.scen.json b/contracts/feature-tests/use-module/scenarios/use_module_ongoing_operation_example.scen.json index 3e43e9270a..a8a16623b2 100644 --- a/contracts/feature-tests/use-module/scenarios/use_module_ongoing_operation_example.scen.json +++ b/contracts/feature-tests/use-module/scenarios/use_module_ongoing_operation_example.scen.json @@ -52,7 +52,7 @@ "to": "sc:use_module", "function": "countTo100", "arguments": [], - "gasLimit": "4,500,000", + "gasLimit": "4,700,000", "gasPrice": "0" }, "expect": { From a482b0679a615bf1c32b53d58aa5c2edeb595b1e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 1 May 2024 03:02:24 +0300 Subject: [PATCH 111/185] cargo fmt --- framework/scenario/src/api/impl_vh/static_api.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/scenario/src/api/impl_vh/static_api.rs b/framework/scenario/src/api/impl_vh/static_api.rs index ca1d8602e5..7e375a0c31 100644 --- a/framework/scenario/src/api/impl_vh/static_api.rs +++ b/framework/scenario/src/api/impl_vh/static_api.rs @@ -1,9 +1,9 @@ -use std::sync::Mutex; use multiversx_chain_vm::{ executor::VMHooks, vm_hooks::{StaticApiVMHooksHandler, VMHooksDispatcher, VMHooksHandler}, }; use multiversx_sc::{api::RawHandle, types::Address}; +use std::sync::Mutex; use crate::debug_executor::StaticVarData; From 724dd689baafb311b00232d4a06f18f4cf5b7a9e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 3 May 2024 17:03:52 +0300 Subject: [PATCH 112/185] TypeAbiFrom trait --- framework/base/src/abi.rs | 2 + framework/base/src/abi/type_abi.rs | 9 ++++- framework/base/src/abi/type_abi_from.rs | 4 ++ framework/base/src/abi/type_abi_impl_basic.rs | 37 +++++++++++++++++++ .../base/src/abi/type_abi_impl_codec_multi.rs | 19 +++++++++- .../base/src/storage/mappers/bi_di_mapper.rs | 18 +++++++++ .../src/storage/mappers/linked_list_mapper.rs | 17 ++++++++- .../base/src/storage/mappers/map_mapper.rs | 19 +++++++++- .../base/src/storage/mappers/queue_mapper.rs | 16 +++++++- .../base/src/storage/mappers/set_mapper.rs | 16 +++++++- .../storage/mappers/single_value_mapper.rs | 24 +++++++++++- .../mappers/token/fungible_token_mapper.rs | 9 ++++- .../token/non_fungible_token_mapper.rs | 8 ++++ .../src/storage/mappers/unique_id_mapper.rs | 8 ++++ .../storage/mappers/unordered_set_mapper.rs | 16 +++++++- .../base/src/storage/mappers/user_mapper.rs | 16 ++++++-- .../base/src/storage/mappers/vec_mapper.rs | 16 +++++++- .../src/types/crypto/message_hash_type.rs | 10 +++-- .../base/src/types/flags/code_metadata.rs | 4 +- .../base/src/types/heap/async_call_result.rs | 4 +- framework/base/src/types/heap/boxed_bytes.rs | 4 +- framework/base/src/types/heap/h256.rs | 4 +- framework/base/src/types/heap/h256_address.rs | 4 +- framework/base/src/types/heap/queue.rs | 4 +- .../types/interaction/managed_arg_buffer.rs | 4 +- .../interaction/tx_data/function_call.rs | 4 +- .../types/io/operation_completion_status.rs | 8 +++- framework/base/src/types/io/sc_result.rs | 7 +++- .../base/src/types/managed/basic/big_float.rs | 5 ++- .../base/src/types/managed/basic/big_int.rs | 4 +- .../src/types/managed/basic/big_int_sign.rs | 6 ++- .../base/src/types/managed/basic/big_uint.rs | 4 +- .../src/types/managed/basic/elliptic_curve.rs | 4 +- .../src/types/managed/basic/managed_buffer.rs | 4 +- .../multi_value/async_call_result_managed.rs | 9 ++++- .../esdt_token_payment_multi_value.rs | 11 ++++-- .../multi_value/multi_value_encoded.rs | 9 ++++- .../multi_value/multi_value_managed_vec.rs | 9 ++++- .../multi_value_managed_vec_counted.rs | 9 ++++- .../wrapped/egld_or_esdt_token_identifier.rs | 4 +- .../types/managed/wrapped/managed_address.rs | 4 +- .../managed/wrapped/managed_byte_array.rs | 6 ++- .../types/managed/wrapped/managed_option.rs | 32 ++++++++++++++-- .../src/types/managed/wrapped/managed_vec.rs | 25 ++++++++++++- .../types/managed/wrapped/token_identifier.rs | 4 +- .../src/types/static_buffer/sparse_array.rs | 4 +- framework/derive/src/type_abi_derive.rs | 2 + 47 files changed, 416 insertions(+), 50 deletions(-) create mode 100644 framework/base/src/abi/type_abi_from.rs diff --git a/framework/base/src/abi.rs b/framework/base/src/abi.rs index 2fc4e5af0d..c0002739d7 100644 --- a/framework/base/src/abi.rs +++ b/framework/base/src/abi.rs @@ -4,6 +4,7 @@ mod endpoint_abi; mod esdt_attribute_abi; mod event_abi; mod type_abi; +mod type_abi_from; mod type_abi_impl_basic; mod type_abi_impl_codec_multi; mod type_description; @@ -15,6 +16,7 @@ pub use endpoint_abi::*; pub use esdt_attribute_abi::EsdtAttributeAbi; pub use event_abi::*; pub use type_abi::*; +pub use type_abi_from::*; pub use type_description::*; pub use type_description_container::*; diff --git a/framework/base/src/abi/type_abi.rs b/framework/base/src/abi/type_abi.rs index 94213e7705..18163eb7e7 100644 --- a/framework/base/src/abi/type_abi.rs +++ b/framework/base/src/abi/type_abi.rs @@ -1,7 +1,14 @@ use super::*; use alloc::{format, string::ToString, vec::Vec}; -pub trait TypeAbi { +/// Implemented for all types that can end up in the ABI: +/// - argument types, +/// - result types, +/// - event log arguments +/// - etc. +/// +/// Will be automatically implemented for struct ad enum types via the `#[type_abi]` annotation. +pub trait TypeAbi: TypeAbiFrom { fn type_names() -> TypeNames { TypeNames { abi: Self::type_name(), diff --git a/framework/base/src/abi/type_abi_from.rs b/framework/base/src/abi/type_abi_from.rs new file mode 100644 index 0000000000..81f5345fd5 --- /dev/null +++ b/framework/base/src/abi/type_abi_from.rs @@ -0,0 +1,4 @@ +/// Indicates that 2 types have the same encoding, so they can be used interchangeably in proxies. +/// +/// Only relevant for serializable types. +pub trait TypeAbiFrom {} diff --git a/framework/base/src/abi/type_abi_impl_basic.rs b/framework/base/src/abi/type_abi_impl_basic.rs index 0487e19392..1d0378259e 100644 --- a/framework/base/src/abi/type_abi_impl_basic.rs +++ b/framework/base/src/abi/type_abi_impl_basic.rs @@ -7,6 +7,8 @@ use alloc::{ vec::Vec, }; +impl TypeAbiFrom<()> for () {} + impl TypeAbi for () { /// No another exception from the 1-type-1-output-abi rule: /// the unit type produces no output. @@ -15,6 +17,8 @@ impl TypeAbi for () { } } +impl TypeAbiFrom<&U> for &T where T: TypeAbiFrom {} + impl TypeAbi for &T { fn type_name() -> TypeName { T::type_name() @@ -29,6 +33,8 @@ impl TypeAbi for &T { } } +impl TypeAbiFrom> for U where T: TypeAbiFrom {} + impl TypeAbi for Box { fn type_name() -> TypeName { T::type_name() @@ -43,6 +49,8 @@ impl TypeAbi for Box { } } +impl TypeAbiFrom<&[T]> for &[U] where T: TypeAbiFrom {} + impl TypeAbi for &[T] { fn type_name() -> TypeName { let t_name = T::type_name(); @@ -65,6 +73,8 @@ impl TypeAbi for &[T] { } } +impl TypeAbiFrom> for Vec where T: TypeAbiFrom {} + impl TypeAbi for Vec { fn type_name() -> TypeName { <&[T]>::type_name() @@ -79,6 +89,8 @@ impl TypeAbi for Vec { } } +impl TypeAbiFrom> for ArrayVec {} + impl TypeAbi for ArrayVec { fn type_name() -> TypeName { <&[T]>::type_name() @@ -93,6 +105,8 @@ impl TypeAbi for ArrayVec { } } +impl TypeAbiFrom> for Box<[T]> {} + impl TypeAbi for Box<[T]> { fn type_name() -> TypeName { <&[T]>::type_name() @@ -107,12 +121,18 @@ impl TypeAbi for Box<[T]> { } } +impl TypeAbiFrom for String {} +impl TypeAbiFrom<&str> for String {} +impl TypeAbiFrom> for String {} + impl TypeAbi for String { fn type_name() -> TypeName { "utf-8 string".into() } } +impl TypeAbiFrom<&'static str> for &'static str {} + impl TypeAbi for &'static str { fn type_name() -> TypeName { String::type_name() @@ -123,6 +143,10 @@ impl TypeAbi for &'static str { } } +impl TypeAbiFrom> for Box {} +impl TypeAbiFrom<&str> for Box {} +impl TypeAbiFrom for Box {} + impl TypeAbi for Box { fn type_name() -> TypeName { String::type_name() @@ -135,6 +159,8 @@ impl TypeAbi for Box { macro_rules! type_abi_name_only { ($ty:ty, $name:expr) => { + impl TypeAbiFrom<$ty> for $ty {} + impl TypeAbi for $ty { fn type_name() -> TypeName { TypeName::from($name) @@ -160,6 +186,8 @@ type_abi_name_only!(i64, "i64"); type_abi_name_only!(core::num::NonZeroUsize, "NonZeroUsize"); type_abi_name_only!(bool, "bool"); +impl TypeAbiFrom> for Option where T: TypeAbiFrom {} + impl TypeAbi for Option { fn type_name() -> TypeName { format!("Option<{}>", T::type_name()) @@ -174,6 +202,8 @@ impl TypeAbi for Option { } } +impl TypeAbiFrom> for Result where T: TypeAbiFrom {} + impl TypeAbi for Result { fn type_name() -> TypeName { T::type_name() @@ -200,6 +230,11 @@ impl TypeAbi for Result { macro_rules! tuple_impls { ($($len:expr => ($($n:tt $name:ident)+))+) => { $( + impl<$($name),+> TypeAbiFrom for ($($name,)+) + where + $($name: TypeAbi,)+ + {} + impl<$($name),+> TypeAbi for ($($name,)+) where $($name: TypeAbi,)+ @@ -257,6 +292,8 @@ tuple_impls! { 16 => (0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12 13 T13 14 T14 15 T15) } +impl TypeAbiFrom<[T; N]> for [U; N] where T: TypeAbiFrom {} + impl TypeAbi for [T; N] { fn type_name() -> TypeName { let mut repr = TypeName::from("array"); diff --git a/framework/base/src/abi/type_abi_impl_codec_multi.rs b/framework/base/src/abi/type_abi_impl_codec_multi.rs index 9d3cce98db..e347388625 100644 --- a/framework/base/src/abi/type_abi_impl_codec_multi.rs +++ b/framework/base/src/abi/type_abi_impl_codec_multi.rs @@ -1,10 +1,18 @@ use alloc::format; use crate::{ - abi::{OutputAbis, TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{OutputAbis, TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, codec::multi_types::{IgnoreValue, OptionalValue}, }; +#[cfg(feature = "alloc")] +impl TypeAbiFrom> + for crate::codec::multi_types::MultiValueVec +where + T: TypeAbiFrom, +{ +} + #[cfg(feature = "alloc")] impl TypeAbi for crate::codec::multi_types::MultiValueVec { fn type_name() -> TypeName { @@ -24,6 +32,8 @@ impl TypeAbi for crate::codec::multi_types::MultiValueVec { } } +impl TypeAbiFrom for IgnoreValue {} + impl TypeAbi for IgnoreValue { fn type_name() -> TypeName { TypeName::from("ignore") @@ -38,6 +48,8 @@ impl TypeAbi for IgnoreValue { } } +impl TypeAbiFrom> for OptionalValue where T: TypeAbiFrom {} + impl TypeAbi for OptionalValue { fn type_name() -> TypeName { super::type_name_optional::() @@ -59,6 +71,11 @@ impl TypeAbi for OptionalValue { macro_rules! multi_arg_impls { ($(($mval_struct:ident $($n:tt $name:ident)+) )+) => { $( + impl<$($name),+ > TypeAbiFrom for crate::codec::multi_types::$mval_struct<$($name,)+> + where + $($name: TypeAbi,)+ + {} + impl<$($name),+ > TypeAbi for crate::codec::multi_types::$mval_struct<$($name,)+> where $($name: TypeAbi,)+ diff --git a/framework/base/src/storage/mappers/bi_di_mapper.rs b/framework/base/src/storage/mappers/bi_di_mapper.rs index 4878e3c3fc..1ac77da0ae 100644 --- a/framework/base/src/storage/mappers/bi_di_mapper.rs +++ b/framework/base/src/storage/mappers/bi_di_mapper.rs @@ -1,6 +1,7 @@ use core::marker::PhantomData; use crate::{ + abi::TypeAbiFrom, codec::{ multi_encode_iter_or_handle_err, multi_types::MultiValue2, CodecFrom, EncodeErrorHandler, NestedDecode, NestedEncode, TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, @@ -307,6 +308,23 @@ where { } +impl TypeAbiFrom> + for MultiValueEncoded> +where + SA: StorageMapperApi, + K: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq, + V: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq, +{ +} + +impl TypeAbiFrom for BiDiMapper +where + SA: StorageMapperApi, + K: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq, + V: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq, +{ +} + impl TypeAbi for BiDiMapper where SA: StorageMapperApi, diff --git a/framework/base/src/storage/mappers/linked_list_mapper.rs b/framework/base/src/storage/mappers/linked_list_mapper.rs index 7382ae8229..826de864e6 100644 --- a/framework/base/src/storage/mappers/linked_list_mapper.rs +++ b/framework/base/src/storage/mappers/linked_list_mapper.rs @@ -5,7 +5,7 @@ use super::{ StorageClearable, StorageMapper, }; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ self, @@ -620,6 +620,21 @@ where { } +impl TypeAbiFrom> for MultiValueEncoded +where + SA: StorageMapperApi, + T: TopEncode + TopDecode + NestedEncode + NestedDecode + Clone, + U: TypeAbiFrom, +{ +} + +impl TypeAbiFrom for LinkedListMapper +where + SA: StorageMapperApi, + T: TopEncode + TopDecode + NestedEncode + NestedDecode + Clone, +{ +} + impl TypeAbi for LinkedListMapper where SA: StorageMapperApi, diff --git a/framework/base/src/storage/mappers/map_mapper.rs b/framework/base/src/storage/mappers/map_mapper.rs index e8aac7adc1..ab3d0664dc 100644 --- a/framework/base/src/storage/mappers/map_mapper.rs +++ b/framework/base/src/storage/mappers/map_mapper.rs @@ -5,7 +5,7 @@ use super::{ SetMapper, StorageClearable, StorageMapper, }; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ multi_encode_iter_or_handle_err, multi_types::MultiValue2, CodecFrom, EncodeErrorHandler, @@ -548,6 +548,23 @@ where { } +impl TypeAbiFrom> + for MultiValueEncoded> +where + SA: StorageMapperApi, + K: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, + V: TopEncode + TopDecode + 'static, +{ +} + +impl TypeAbiFrom for MapMapper +where + SA: StorageMapperApi, + K: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, + V: TopEncode + TopDecode + 'static, +{ +} + /// Behaves like a MultiResultVec> when an endpoint result. impl TypeAbi for MapMapper where diff --git a/framework/base/src/storage/mappers/queue_mapper.rs b/framework/base/src/storage/mappers/queue_mapper.rs index 93d90de1a3..80269c9366 100644 --- a/framework/base/src/storage/mappers/queue_mapper.rs +++ b/framework/base/src/storage/mappers/queue_mapper.rs @@ -5,7 +5,7 @@ use super::{ StorageClearable, StorageMapper, }; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ self, @@ -525,6 +525,20 @@ where { } +impl TypeAbiFrom> for MultiValueEncoded +where + SA: StorageMapperApi, + T: TopEncode + TopDecode, +{ +} + +impl TypeAbiFrom for QueueMapper +where + SA: StorageMapperApi, + T: TopEncode + TopDecode, +{ +} + /// Behaves like a MultiResultVec when an endpoint result. impl TypeAbi for QueueMapper where diff --git a/framework/base/src/storage/mappers/set_mapper.rs b/framework/base/src/storage/mappers/set_mapper.rs index 79492b9a43..12c83dbd98 100644 --- a/framework/base/src/storage/mappers/set_mapper.rs +++ b/framework/base/src/storage/mappers/set_mapper.rs @@ -5,7 +5,7 @@ use storage_get_from_address::storage_get_len_from_address; pub use super::queue_mapper::Iter; use super::{QueueMapper, StorageClearable, StorageMapper}; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ self, multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, NestedDecode, @@ -301,6 +301,20 @@ where { } +impl TypeAbiFrom> for MultiValueEncoded +where + SA: StorageMapperApi, + T: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, +{ +} + +impl TypeAbiFrom for SetMapper +where + SA: StorageMapperApi, + T: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, +{ +} + /// Behaves like a MultiResultVec when an endpoint result. impl TypeAbi for SetMapper where diff --git a/framework/base/src/storage/mappers/single_value_mapper.rs b/framework/base/src/storage/mappers/single_value_mapper.rs index 5eade9503a..528a988ddf 100644 --- a/framework/base/src/storage/mappers/single_value_mapper.rs +++ b/framework/base/src/storage/mappers/single_value_mapper.rs @@ -5,7 +5,7 @@ use super::{ StorageMapper, }; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ multi_types::PlaceholderOutput, CodecFrom, CodecFromSelf, DecodeErrorHandler, @@ -210,6 +210,14 @@ where { } +impl TypeAbiFrom> for SingleValue +where + SA: StorageMapperApi, + T: TopEncode + TopDecode, + R: TopDecode + CodecFrom, +{ +} + impl CodecFrom> for PlaceholderOutput where SA: StorageMapperApi, @@ -217,6 +225,20 @@ where { } +impl TypeAbiFrom> for PlaceholderOutput +where + SA: StorageMapperApi, + T: TopEncode + TopDecode, +{ +} + +impl TypeAbiFrom for SingleValueMapper +where + SA: StorageMapperApi, + T: TopEncode + TopDecode + TypeAbi, +{ +} + impl TypeAbi for SingleValueMapper where SA: StorageMapperApi, diff --git a/framework/base/src/storage/mappers/token/fungible_token_mapper.rs b/framework/base/src/storage/mappers/token/fungible_token_mapper.rs index efc322c2eb..309902d02f 100644 --- a/framework/base/src/storage/mappers/token/fungible_token_mapper.rs +++ b/framework/base/src/storage/mappers/token/fungible_token_mapper.rs @@ -1,5 +1,5 @@ use crate::{ - abi::TypeAbi, + abi::{TypeAbi, TypeAbiFrom}, api::ErrorApiImpl, codec::{CodecFrom, EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput}, storage_clear, storage_get, storage_set, @@ -275,6 +275,13 @@ impl CodecFrom> for TokenIdentifier where { } +impl TypeAbiFrom> for TokenIdentifier where + SA: StorageMapperApi + CallTypeApi +{ +} + +impl TypeAbiFrom for FungibleTokenMapper where SA: StorageMapperApi + CallTypeApi {} + impl TypeAbi for FungibleTokenMapper where SA: StorageMapperApi + CallTypeApi, diff --git a/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs b/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs index 3e886f21de..3f3c466fea 100644 --- a/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs +++ b/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs @@ -1,4 +1,5 @@ use crate::{ + abi::TypeAbiFrom, codec::{ CodecFrom, EncodeErrorHandler, TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, }, @@ -415,6 +416,13 @@ impl CodecFrom> for TokenIdentifier where { } +impl TypeAbiFrom> for TokenIdentifier where + SA: StorageMapperApi + CallTypeApi +{ +} + +impl TypeAbiFrom for NonFungibleTokenMapper where SA: StorageMapperApi + CallTypeApi {} + impl TypeAbi for NonFungibleTokenMapper where SA: StorageMapperApi + CallTypeApi, diff --git a/framework/base/src/storage/mappers/unique_id_mapper.rs b/framework/base/src/storage/mappers/unique_id_mapper.rs index 550729952f..051bfafd1b 100644 --- a/framework/base/src/storage/mappers/unique_id_mapper.rs +++ b/framework/base/src/storage/mappers/unique_id_mapper.rs @@ -1,4 +1,5 @@ use crate::{ + abi::TypeAbiFrom, codec::{ multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput, @@ -218,6 +219,13 @@ impl CodecFrom> for MultiValueEncoded TypeAbiFrom> for MultiValueEncoded where + SA: StorageMapperApi +{ +} + +impl TypeAbiFrom for UniqueIdMapper where SA: StorageMapperApi {} + /// Behaves like a MultiResultVec when an endpoint result. impl TypeAbi for UniqueIdMapper where diff --git a/framework/base/src/storage/mappers/unordered_set_mapper.rs b/framework/base/src/storage/mappers/unordered_set_mapper.rs index ef2a708fad..4817b6776e 100644 --- a/framework/base/src/storage/mappers/unordered_set_mapper.rs +++ b/framework/base/src/storage/mappers/unordered_set_mapper.rs @@ -6,7 +6,7 @@ use super::{ StorageClearable, StorageMapper, VecMapper, }; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, NestedDecode, NestedEncode, @@ -232,6 +232,20 @@ where { } +impl TypeAbiFrom> for MultiValueEncoded +where + SA: StorageMapperApi, + T: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, +{ +} + +impl TypeAbiFrom for UnorderedSetMapper +where + SA: StorageMapperApi, + T: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, +{ +} + /// Behaves like a MultiResultVec when an endpoint result. impl TypeAbi for UnorderedSetMapper where diff --git a/framework/base/src/storage/mappers/user_mapper.rs b/framework/base/src/storage/mappers/user_mapper.rs index 4fc7a50f74..a2dad255c3 100644 --- a/framework/base/src/storage/mappers/user_mapper.rs +++ b/framework/base/src/storage/mappers/user_mapper.rs @@ -1,8 +1,11 @@ use core::marker::PhantomData; -use crate::codec::{ - multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, TopEncodeMulti, - TopEncodeMultiOutput, +use crate::{ + abi::TypeAbiFrom, + codec::{ + multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, TopEncodeMulti, + TopEncodeMultiOutput, + }, }; use super::{ @@ -224,6 +227,13 @@ impl CodecFrom> for MultiValueEncoded TypeAbiFrom> for MultiValueEncoded> where + SA: StorageMapperApi +{ +} + +impl TypeAbiFrom for UserMapper where SA: StorageMapperApi {} + /// Behaves like a MultiResultVec when an endpoint result. impl TypeAbi for UserMapper where diff --git a/framework/base/src/storage/mappers/vec_mapper.rs b/framework/base/src/storage/mappers/vec_mapper.rs index b6508a8900..f4468d2957 100644 --- a/framework/base/src/storage/mappers/vec_mapper.rs +++ b/framework/base/src/storage/mappers/vec_mapper.rs @@ -3,7 +3,7 @@ use super::{ StorageClearable, StorageMapper, }; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::{ErrorApiImpl, StorageMapperApi}, codec::{ multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, TopDecode, TopEncode, @@ -351,6 +351,20 @@ where { } +impl TypeAbiFrom> for MultiValueEncoded +where + SA: StorageMapperApi, + T: TopEncode + TopDecode, +{ +} + +impl TypeAbiFrom for VecMapper +where + SA: StorageMapperApi, + T: TopEncode + TopDecode, +{ +} + /// Behaves like a MultiResultVec when an endpoint result. impl TypeAbi for VecMapper where diff --git a/framework/base/src/types/crypto/message_hash_type.rs b/framework/base/src/types/crypto/message_hash_type.rs index 18d3f384fe..c6cd93d181 100644 --- a/framework/base/src/types/crypto/message_hash_type.rs +++ b/framework/base/src/types/crypto/message_hash_type.rs @@ -1,7 +1,9 @@ use crate::{ - abi::{TypeAbi, TypeName}, - codec, - codec::derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, + codec::{ + self, + derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, + }, }; /// Message hash type for the `verifyCustomSecp256k1` CryptoApi function @@ -38,6 +40,8 @@ impl From for MessageHashType { } } +impl TypeAbiFrom for MessageHashType {} + impl TypeAbi for MessageHashType { fn type_name() -> TypeName { "MessageHashType".into() diff --git a/framework/base/src/types/flags/code_metadata.rs b/framework/base/src/types/flags/code_metadata.rs index 6c65859c1a..a360909602 100644 --- a/framework/base/src/types/flags/code_metadata.rs +++ b/framework/base/src/types/flags/code_metadata.rs @@ -1,7 +1,7 @@ #![allow(clippy::bad_bit_mask)] use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, codec::*, formatter::{hex_util, FormatByteReceiver, SCBinary, SCDisplay, SCLowerHex}, }; @@ -103,6 +103,8 @@ impl TopDecode for CodeMetadata { } } +impl TypeAbiFrom for CodeMetadata {} + impl TypeAbi for CodeMetadata { fn type_name() -> TypeName { "CodeMetadata".into() diff --git a/framework/base/src/types/heap/async_call_result.rs b/framework/base/src/types/heap/async_call_result.rs index 4084c83bc7..e5def9b718 100644 --- a/framework/base/src/types/heap/async_call_result.rs +++ b/framework/base/src/types/heap/async_call_result.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, codec::{ DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, TopDecodeMultiInput, TopEncodeMulti, TopEncodeMultiOutput, @@ -82,6 +82,8 @@ where } } +impl TypeAbiFrom for AsyncCallResult {} + impl TypeAbi for AsyncCallResult { fn type_name() -> TypeName { let mut repr = TypeName::from("AsyncCallResult<"); diff --git a/framework/base/src/types/heap/boxed_bytes.rs b/framework/base/src/types/heap/boxed_bytes.rs index 1b7c2b35e7..f29b772a36 100644 --- a/framework/base/src/types/heap/boxed_bytes.rs +++ b/framework/base/src/types/heap/boxed_bytes.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, codec::*, }; use alloc::{ @@ -240,6 +240,8 @@ impl TopDecode for BoxedBytes { } } +impl TypeAbiFrom for BoxedBytes {} + impl TypeAbi for BoxedBytes { fn type_name() -> TypeName { "bytes".into() diff --git a/framework/base/src/types/heap/h256.rs b/framework/base/src/types/heap/h256.rs index a097b0d08d..c7c20b26c3 100644 --- a/framework/base/src/types/heap/h256.rs +++ b/framework/base/src/types/heap/h256.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, types::heap::BoxedBytes, }; use alloc::{boxed::Box, vec::Vec}; @@ -224,6 +224,8 @@ impl TopDecode for H256 { } } +impl TypeAbiFrom for H256 {} + impl TypeAbi for H256 { fn type_name() -> TypeName { "H256".into() diff --git a/framework/base/src/types/heap/h256_address.rs b/framework/base/src/types/heap/h256_address.rs index 5e4712df7a..0eed2a0ede 100644 --- a/framework/base/src/types/heap/h256_address.rs +++ b/framework/base/src/types/heap/h256_address.rs @@ -1,6 +1,6 @@ use super::h256::H256; use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, types::heap::BoxedBytes, }; use alloc::{boxed::Box, vec::Vec}; @@ -202,6 +202,8 @@ impl TopDecode for Address { } } +impl TypeAbiFrom for Address {} + impl TypeAbi for Address { fn type_name() -> TypeName { "Address".into() diff --git a/framework/base/src/types/heap/queue.rs b/framework/base/src/types/heap/queue.rs index 1c32848acf..8cdb66c8b1 100644 --- a/framework/base/src/types/heap/queue.rs +++ b/framework/base/src/types/heap/queue.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, codec::*, }; use alloc::vec::Vec; @@ -136,6 +136,8 @@ impl TopDecode for Queue { } } +impl TypeAbiFrom for Queue {} + impl TypeAbi for Queue { fn type_name() -> TypeName { let mut repr = TypeName::from("Queue<"); diff --git a/framework/base/src/types/interaction/managed_arg_buffer.rs b/framework/base/src/types/interaction/managed_arg_buffer.rs index e2d13f3566..ab103040f7 100644 --- a/framework/base/src/types/interaction/managed_arg_buffer.rs +++ b/framework/base/src/types/interaction/managed_arg_buffer.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::{ErrorApi, ManagedTypeApi}, codec::{ DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, @@ -299,6 +299,8 @@ where } } +impl TypeAbiFrom for ManagedArgBuffer where M: ManagedTypeApi {} + impl TypeAbi for ManagedArgBuffer where M: ManagedTypeApi, diff --git a/framework/base/src/types/interaction/tx_data/function_call.rs b/framework/base/src/types/interaction/tx_data/function_call.rs index 9242e141cf..2f110040fd 100644 --- a/framework/base/src/types/interaction/tx_data/function_call.rs +++ b/framework/base/src/types/interaction/tx_data/function_call.rs @@ -4,7 +4,7 @@ use multiversx_sc_codec::{ }; use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::{ CallTypeApi, ManagedTypeApi, ESDT_MULTI_TRANSFER_FUNC_NAME, ESDT_NFT_TRANSFER_FUNC_NAME, ESDT_TRANSFER_FUNC_NAME, @@ -136,6 +136,8 @@ where } } +impl TypeAbiFrom for FunctionCall where Api: ManagedTypeApi {} + impl TypeAbi for FunctionCall where Api: ManagedTypeApi, diff --git a/framework/base/src/types/io/operation_completion_status.rs b/framework/base/src/types/io/operation_completion_status.rs index b2c7e5bb0c..125674ec30 100644 --- a/framework/base/src/types/io/operation_completion_status.rs +++ b/framework/base/src/types/io/operation_completion_status.rs @@ -4,7 +4,7 @@ use multiversx_sc_codec::{ use crate::{ abi::{ - ExplicitEnumVariantDescription, TypeAbi, TypeContents, TypeDescription, + ExplicitEnumVariantDescription, TypeAbi, TypeAbiFrom, TypeContents, TypeDescription, TypeDescriptionContainer, TypeName, }, api::ManagedTypeApi, @@ -77,6 +77,12 @@ impl CodecFrom for ManagedBuffer for crate::types::heap::BoxedBytes {} impl CodecFrom for crate::types::heap::Vec {} +impl TypeAbiFrom for ManagedBuffer {} +impl TypeAbiFrom for crate::types::heap::BoxedBytes {} +impl TypeAbiFrom for crate::types::heap::Vec {} + +impl TypeAbiFrom for OperationCompletionStatus {} + impl TypeAbi for OperationCompletionStatus { fn type_name() -> TypeName { TypeName::from("OperationCompletionStatus") diff --git a/framework/base/src/types/io/sc_result.rs b/framework/base/src/types/io/sc_result.rs index 78a4d2ec18..fcad33270a 100644 --- a/framework/base/src/types/io/sc_result.rs +++ b/framework/base/src/types/io/sc_result.rs @@ -1,6 +1,9 @@ use alloc::format; -use crate::codec::{EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput}; +use crate::{ + abi::TypeAbiFrom, + codec::{EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput}, +}; use crate::{ abi::{OutputAbis, TypeAbi, TypeDescriptionContainer, TypeName}, @@ -129,6 +132,8 @@ where } } +impl TypeAbiFrom for SCResult {} + impl TypeAbi for SCResult { fn type_name() -> TypeName { T::type_name() diff --git a/framework/base/src/types/managed/basic/big_float.rs b/framework/base/src/types/managed/basic/big_float.rs index 83ef5613e3..62126efd19 100644 --- a/framework/base/src/types/managed/basic/big_float.rs +++ b/framework/base/src/types/managed/basic/big_float.rs @@ -1,6 +1,7 @@ use super::ManagedBuffer; use crate::{ + abi::{TypeAbi, TypeAbiFrom}, api::{ use_raw_handle, BigFloatApiImpl, ManagedTypeApi, ManagedTypeApiImpl, Sign, StaticVarApiImpl, }, @@ -285,7 +286,9 @@ impl NestedDecode for BigFloat { } } -impl crate::abi::TypeAbi for BigFloat { +impl TypeAbiFrom for BigFloat where M: ManagedTypeApi {} + +impl TypeAbi for BigFloat { fn type_name() -> String { String::from("BigFloat") } diff --git a/framework/base/src/types/managed/basic/big_int.rs b/framework/base/src/types/managed/basic/big_int.rs index e924a14787..a27611a903 100644 --- a/framework/base/src/types/managed/basic/big_int.rs +++ b/framework/base/src/types/managed/basic/big_int.rs @@ -1,7 +1,7 @@ use core::{convert::TryInto, marker::PhantomData}; use crate::{ - abi::TypeName, + abi::{TypeAbiFrom, TypeName}, api::{ const_handles, use_raw_handle, BigIntApiImpl, HandleConstraints, ManagedBufferApiImpl, ManagedTypeApi, ManagedTypeApiImpl, RawHandle, StaticVarApiImpl, @@ -298,6 +298,8 @@ impl TopDecode for BigInt { } } +impl TypeAbiFrom for BigInt where M: ManagedTypeApi {} + impl crate::abi::TypeAbi for BigInt { fn type_name() -> TypeName { TypeName::from("BigInt") diff --git a/framework/base/src/types/managed/basic/big_int_sign.rs b/framework/base/src/types/managed/basic/big_int_sign.rs index 641e1c9328..0ed8cabbc2 100644 --- a/framework/base/src/types/managed/basic/big_int_sign.rs +++ b/framework/base/src/types/managed/basic/big_int_sign.rs @@ -3,7 +3,7 @@ use crate::codec::{ NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, }; -use crate::abi::TypeName; +use crate::abi::{TypeAbi, TypeAbiFrom, TypeName}; // BigInt sign. #[allow(clippy::enum_variant_names)] @@ -79,7 +79,9 @@ impl TopDecode for Sign { } } -impl crate::abi::TypeAbi for Sign { +impl TypeAbiFrom for Sign {} + +impl TypeAbi for Sign { fn type_name() -> TypeName { TypeName::from("Sign") } diff --git a/framework/base/src/types/managed/basic/big_uint.rs b/framework/base/src/types/managed/basic/big_uint.rs index 5f32388093..9f78792eab 100644 --- a/framework/base/src/types/managed/basic/big_uint.rs +++ b/framework/base/src/types/managed/basic/big_uint.rs @@ -1,7 +1,7 @@ use core::convert::TryInto; use crate::{ - abi::TypeName, + abi::{TypeAbiFrom, TypeName}, api::{ const_handles, use_raw_handle, BigIntApiImpl, HandleConstraints, ManagedBufferApiImpl, ManagedTypeApi, ManagedTypeApiImpl, RawHandle, StaticVarApiImpl, @@ -287,6 +287,8 @@ impl TopDecode for BigUint { } } +impl TypeAbiFrom for BigUint where M: ManagedTypeApi {} + impl crate::abi::TypeAbi for BigUint { fn type_name() -> TypeName { TypeName::from("BigUint") diff --git a/framework/base/src/types/managed/basic/elliptic_curve.rs b/framework/base/src/types/managed/basic/elliptic_curve.rs index 904a0de67a..9359ecfce3 100644 --- a/framework/base/src/types/managed/basic/elliptic_curve.rs +++ b/framework/base/src/types/managed/basic/elliptic_curve.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::{use_raw_handle, BigIntApiImpl, EllipticCurveApiImpl, ManagedTypeApi}, types::{BigUint, ManagedType}, }; @@ -418,6 +418,8 @@ impl TopEncode for EllipticCurve { } } +impl TypeAbiFrom for EllipticCurve where M: ManagedTypeApi {} + impl TypeAbi for EllipticCurve { fn type_name() -> TypeName { TypeName::from("EllipticCurve") diff --git a/framework/base/src/types/managed/basic/managed_buffer.rs b/framework/base/src/types/managed/basic/managed_buffer.rs index b39643a27d..a9d7483125 100644 --- a/framework/base/src/types/managed/basic/managed_buffer.rs +++ b/framework/base/src/types/managed/basic/managed_buffer.rs @@ -1,5 +1,5 @@ use crate::{ - abi::TypeName, + abi::{TypeAbiFrom, TypeName}, api::{ use_raw_handle, ErrorApiImpl, HandleConstraints, InvalidSliceError, ManagedBufferApiImpl, ManagedTypeApi, StaticVarApiImpl, @@ -461,6 +461,8 @@ impl TopDecode for ManagedBuffer { } } +impl TypeAbiFrom for ManagedBuffer where M: ManagedTypeApi {} + impl crate::abi::TypeAbi for ManagedBuffer { fn type_name() -> TypeName { "bytes".into() diff --git a/framework/base/src/types/managed/multi_value/async_call_result_managed.rs b/framework/base/src/types/managed/multi_value/async_call_result_managed.rs index 6cdd2d7513..b8b37e20da 100644 --- a/framework/base/src/types/managed/multi_value/async_call_result_managed.rs +++ b/framework/base/src/types/managed/multi_value/async_call_result_managed.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::ManagedTypeApi, codec::{ DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, TopDecodeMultiInput, @@ -97,6 +97,13 @@ where } } +impl TypeAbiFrom for ManagedAsyncCallResult +where + M: ManagedTypeApi, + T: TypeAbi, +{ +} + impl TypeAbi for ManagedAsyncCallResult where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs b/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs index 9f27f1cd89..11c81faaaa 100644 --- a/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs +++ b/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs @@ -1,6 +1,9 @@ -use crate::codec::{ - multi_types::MultiValue3, DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, - TopDecodeMultiInput, TopDecodeMultiLength, TopEncodeMulti, TopEncodeMultiOutput, +use crate::{ + abi::TypeAbiFrom, + codec::{ + multi_types::MultiValue3, DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, + TopDecodeMultiInput, TopDecodeMultiLength, TopEncodeMulti, TopEncodeMultiOutput, + }, }; use crate::{ @@ -98,6 +101,8 @@ where const LEN: usize = 3; } +impl TypeAbiFrom for EsdtTokenPaymentMultiValue where M: ManagedTypeApi {} + impl TypeAbi for EsdtTokenPaymentMultiValue where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs index be22e29b10..01e894cf3e 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::{ErrorApi, ManagedTypeApi}, codec::{ try_cast_execute_or_else, CodecFromSelf, DecodeErrorHandler, EncodeErrorHandler, TopDecode, @@ -222,6 +222,13 @@ where } } +impl TypeAbiFrom for MultiValueEncoded +where + M: ManagedTypeApi, + T: TypeAbi, +{ +} + impl TypeAbi for MultiValueEncoded where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/multi_value/multi_value_managed_vec.rs b/framework/base/src/types/managed/multi_value/multi_value_managed_vec.rs index 6779df703b..7bae85617e 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_managed_vec.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_managed_vec.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::ManagedTypeApi, codec::{ DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, TopDecodeMultiInput, @@ -210,6 +210,13 @@ where } } +impl TypeAbiFrom for MultiValueManagedVec +where + M: ManagedTypeApi, + T: ManagedVecItem, +{ +} + impl TypeAbi for MultiValueManagedVec where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/multi_value/multi_value_managed_vec_counted.rs b/framework/base/src/types/managed/multi_value/multi_value_managed_vec_counted.rs index eaab79dbed..74e71e7960 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_managed_vec_counted.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_managed_vec_counted.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::ManagedTypeApi, codec::{ DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, TopDecodeMultiInput, @@ -126,6 +126,13 @@ where } } +impl TypeAbiFrom for MultiValueManagedVecCounted +where + M: ManagedTypeApi, + T: ManagedVecItem + TypeAbi, +{ +} + impl TypeAbi for MultiValueManagedVecCounted where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs index c363853203..16f6714ff0 100644 --- a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::{HandleConstraints, ManagedTypeApi}, codec::*, derive::ManagedVecItem, @@ -213,6 +213,8 @@ impl CodecFrom<&TokenIdentifier> for EgldOrEsdtTokenIdentifier where M: impl CodecFrom<&[u8]> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} impl CodecFrom<&str> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} +impl TypeAbiFrom for EgldOrEsdtTokenIdentifier {} + impl TypeAbi for EgldOrEsdtTokenIdentifier { fn type_name() -> TypeName { "EgldOrEsdtTokenIdentifier".into() diff --git a/framework/base/src/types/managed/wrapped/managed_address.rs b/framework/base/src/types/managed/wrapped/managed_address.rs index d0bf38f9dc..5ab0941f47 100644 --- a/framework/base/src/types/managed/wrapped/managed_address.rs +++ b/framework/base/src/types/managed/wrapped/managed_address.rs @@ -1,7 +1,7 @@ use core::convert::{TryFrom, TryInto}; use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::ManagedTypeApi, codec::{ CodecFrom, CodecFromSelf, DecodeError, DecodeErrorHandler, EncodeErrorHandler, @@ -234,6 +234,8 @@ where } } +impl TypeAbiFrom for ManagedAddress where M: ManagedTypeApi {} + impl TypeAbi for ManagedAddress where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/wrapped/managed_byte_array.rs b/framework/base/src/types/managed/wrapped/managed_byte_array.rs index 5ff3b37c6f..79bc111792 100644 --- a/framework/base/src/types/managed/wrapped/managed_byte_array.rs +++ b/framework/base/src/types/managed/wrapped/managed_byte_array.rs @@ -3,7 +3,7 @@ use core::convert::TryFrom; use alloc::format; use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::ManagedTypeApi, codec::{ DecodeError, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, @@ -205,13 +205,15 @@ where } } +impl TypeAbiFrom for ManagedByteArray where M: ManagedTypeApi {} + impl TypeAbi for ManagedByteArray where M: ManagedTypeApi, { /// It is semantically equivalent to `[u8; N]`. fn type_name() -> TypeName { - <&[u8; N] as TypeAbi>::type_name() + <[u8; N] as TypeAbi>::type_name() } fn type_name_rust() -> TypeName { diff --git a/framework/base/src/types/managed/wrapped/managed_option.rs b/framework/base/src/types/managed/wrapped/managed_option.rs index 7dd8ed2dad..b7bafe4055 100644 --- a/framework/base/src/types/managed/wrapped/managed_option.rs +++ b/framework/base/src/types/managed/wrapped/managed_option.rs @@ -1,8 +1,11 @@ use core::marker::PhantomData; -use crate::codec::{ - DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, - NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, +use crate::{ + abi::TypeAbiFrom, + codec::{ + DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, + NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, + }, }; use crate::{ @@ -269,6 +272,29 @@ where } } +impl TypeAbiFrom> for ManagedOption +where + M: ManagedTypeApi, + U: ManagedType, + T: ManagedType + TypeAbiFrom, +{ +} + +impl TypeAbiFrom> for ManagedOption +where + M: ManagedTypeApi, + T: ManagedType + TypeAbiFrom, +{ +} + +impl TypeAbiFrom> for Option +where + M: ManagedTypeApi, + U: ManagedType, + T: TypeAbiFrom, +{ +} + impl TypeAbi for ManagedOption where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/wrapped/managed_vec.rs b/framework/base/src/types/managed/wrapped/managed_vec.rs index 0b6b4c996a..3897ff2604 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec.rs @@ -1,6 +1,6 @@ use super::EncodedManagedVecItem; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::{ErrorApiImpl, InvalidSliceError, ManagedTypeApi}, codec::{ DecodeErrorHandler, EncodeErrorHandler, IntoMultiValue, NestedDecode, NestedDecodeInput, @@ -678,6 +678,29 @@ where } } +impl TypeAbiFrom> for ManagedVec +where + M: ManagedTypeApi, + U: ManagedVecItem, + T: ManagedVecItem + TypeAbiFrom, +{ +} + +impl TypeAbiFrom> for ManagedVec +where + M: ManagedTypeApi, + T: ManagedVecItem + TypeAbiFrom, +{ +} + +impl TypeAbiFrom> for Vec +where + M: ManagedTypeApi, + U: ManagedVecItem, + T: TypeAbiFrom, +{ +} + impl TypeAbi for ManagedVec where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/wrapped/token_identifier.rs b/framework/base/src/types/managed/wrapped/token_identifier.rs index 53078e09d7..8eea09f437 100644 --- a/framework/base/src/types/managed/wrapped/token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/token_identifier.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbi, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::{ErrorApi, ErrorApiImpl, HandleConstraints, ManagedTypeApi, ManagedTypeApiImpl}, codec::*, err_msg, @@ -168,6 +168,8 @@ impl CodecFrom<&[u8]> for TokenIdentifier where M: ManagedTypeApi {} impl CodecFrom> for TokenIdentifier where M: ManagedTypeApi {} +impl TypeAbiFrom for TokenIdentifier {} + impl TypeAbi for TokenIdentifier { fn type_name() -> TypeName { "TokenIdentifier".into() diff --git a/framework/base/src/types/static_buffer/sparse_array.rs b/framework/base/src/types/static_buffer/sparse_array.rs index a0e556f2d8..9d35219466 100644 --- a/framework/base/src/types/static_buffer/sparse_array.rs +++ b/framework/base/src/types/static_buffer/sparse_array.rs @@ -1,7 +1,7 @@ use alloc::format; use crate::{ - abi::{TypeAbi, TypeDescriptionContainer, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::{ErrorApi, ErrorApiImpl}, codec::{self, arrayvec::ArrayVec, NestedDecode, NestedEncode, TopDecode, TopEncode}, }; @@ -304,6 +304,8 @@ where } } +impl TypeAbiFrom for SparseArray where E: ErrorApi {} + impl TypeAbi for SparseArray where E: ErrorApi, diff --git a/framework/derive/src/type_abi_derive.rs b/framework/derive/src/type_abi_derive.rs index 6799aac9d2..3c95ca3dda 100644 --- a/framework/derive/src/type_abi_derive.rs +++ b/framework/derive/src/type_abi_derive.rs @@ -123,6 +123,8 @@ pub fn type_abi_derive(input: proc_macro::TokenStream) -> proc_macro2::TokenStre let name_str = name.to_string(); let (impl_generics, ty_generics, where_clause) = &ast.generics.split_for_impl(); quote! { + impl #impl_generics multiversx_sc::abi::TypeAbiFrom for #name #ty_generics #where_clause {} + impl #impl_generics multiversx_sc::abi::TypeAbi for #name #ty_generics #where_clause { fn type_name() -> multiversx_sc::abi::TypeName { #name_str.into() From a3ee194c657f527daf9344144fcad7b44689a487 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 15:44:10 +0300 Subject: [PATCH 113/185] TypeAbiFrom in new proxies, impl for more types --- .../tests/price_aggregator_proxy.rs | 62 ++++++++-------- contracts/examples/adder/src/adder_proxy.rs | 6 +- .../src/crowdfunding_esdt_proxy.rs | 8 +- .../src/kitty_ownership_proxy.rs | 60 +++++++-------- .../src/kitty_genetic_alg_proxy.rs | 4 +- .../src/kitty_ownership_proxy.rs | 60 +++++++-------- .../src/proxy_crypto_zombies.rs | 30 ++++---- .../digital-cash/src/digital_cash_proxy.rs | 44 +++++------ .../src/nft_marketplace_proxy.rs | 6 +- .../examples/multisig/src/multisig_proxy.rs | 74 +++++++++---------- .../nft-minter/src/nft_marketplace_proxy.rs | 6 +- .../src/rewards_distribution_proxy.rs | 37 +++++----- .../src/seed_nft_minter_proxy.rs | 28 +++---- .../tests/mock_seed_nft_minter_proxy.rs | 4 +- .../src/nft_marketplace_proxy.rs | 6 +- .../feature-tests/abi-tester/src/abi_proxy.rs | 36 ++++----- .../parent/src/child_proxy.rs | 6 +- .../forwarder/src/vault_proxy.rs | 28 +++---- .../promises-features/src/vault_proxy.rs | 28 +++---- .../proxy-test-first/src/message_me_proxy.rs | 10 +-- .../proxy-test-first/src/pay_me_proxy.rs | 4 +- .../recursive-caller/src/self_proxy.rs | 8 +- .../recursive-caller/src/vault_proxy.rs | 28 +++---- .../crowdfunding-erc20/src/erc20_proxy.rs | 22 +++--- .../erc1155-marketplace/src/erc1155_proxy.rs | 58 +++++++-------- .../erc1155/src/erc1155_user_proxy.rs | 20 ++--- .../lottery-erc20/src/erc20_proxy.rs | 22 +++--- .../panic-message-features/tests/pmf_proxy.rs | 2 +- .../src/scenario_tester_proxy.rs | 6 +- contracts/modules/src/dns_proxy.rs | 2 +- framework/base/src/abi/type_abi_impl_basic.rs | 36 +++++++++ .../types/interaction/expr/test_address.rs | 2 + .../types/interaction/expr/test_sc_address.rs | 2 + .../interaction/expr/test_token_identifier.rs | 3 + .../types/interaction/managed_arg_buffer.rs | 1 + .../markers/esdt_system_sc_address.rs | 2 + .../system_proxy/builtin_func_proxy.rs | 8 +- .../base/src/types/interaction/tx_proxy.rs | 16 ++++ .../base/src/types/managed/basic/big_float.rs | 1 + .../base/src/types/managed/basic/big_int.rs | 2 + .../base/src/types/managed/basic/big_uint.rs | 7 ++ .../src/types/managed/basic/managed_buffer.rs | 10 +++ .../multi_value/multi_value_encoded.rs | 18 +++++ .../wrapped/egld_or_esdt_token_identifier.rs | 13 ++++ .../types/managed/wrapped/managed_address.rs | 14 ++++ .../managed/wrapped/managed_byte_array.rs | 1 + .../types/managed/wrapped/token_identifier.rs | 1 + .../src/types/static_buffer/sparse_array.rs | 1 + framework/derive/src/type_abi_derive.rs | 1 + .../generate_proxy/proxy_generator.rs | 2 +- .../src/facade/expr/bech32_address.rs | 4 + 51 files changed, 498 insertions(+), 362 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs index fbdab94593..bc84320d13 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs @@ -44,12 +44,12 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto, - Arg4: CodecInto, - Arg5: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg, + Arg4: ProxyArg, + Arg5: ProxyArg>>, >( self, staking_token: Arg0, @@ -81,8 +81,8 @@ where Gas: TxGas, { pub fn change_amounts< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, staking_amount: Arg0, @@ -96,7 +96,7 @@ where } pub fn add_oracles< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, oracles: Arg0, @@ -110,8 +110,8 @@ where /// Also receives submission count, /// so the owner does not have to update it manually with setSubmissionCount before this call pub fn remove_oracles< - Arg0: CodecInto, - Arg1: CodecInto>>, + Arg0: ProxyArg, + Arg1: ProxyArg>>, >( self, submission_count: Arg0, @@ -125,11 +125,11 @@ where } pub fn submit< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto>, - Arg4: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, + Arg3: ProxyArg>, + Arg4: ProxyArg, >( self, from: Arg0, @@ -149,7 +149,7 @@ where } pub fn submit_batch< - Arg0: CodecInto, ManagedBuffer, u64, BigUint, u8>>>, + Arg0: ProxyArg, ManagedBuffer, u64, BigUint, u8>>>, >( self, submissions: Arg0, @@ -169,8 +169,8 @@ where } pub fn latest_price_feed< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, from: Arg0, @@ -184,8 +184,8 @@ where } pub fn latest_price_feed_optional< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, from: Arg0, @@ -199,7 +199,7 @@ where } pub fn set_submission_count< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, submission_count: Arg0, @@ -219,9 +219,9 @@ where } pub fn set_pair_decimals< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, from: Arg0, @@ -237,8 +237,8 @@ where } pub fn get_pair_decimals< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, from: Arg0, @@ -292,7 +292,7 @@ where } pub fn unstake< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, unstake_amount: Arg0, @@ -304,7 +304,7 @@ where } pub fn vote_slash_member< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, member_to_slash: Arg0, @@ -316,7 +316,7 @@ where } pub fn cancel_vote_slash_member< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, member_to_slash: Arg0, @@ -328,7 +328,7 @@ where } pub fn slash_member< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, member_to_slash: Arg0, diff --git a/contracts/examples/adder/src/adder_proxy.rs b/contracts/examples/adder/src/adder_proxy.rs index 0b1b663669..b7a7025709 100644 --- a/contracts/examples/adder/src/adder_proxy.rs +++ b/contracts/examples/adder/src/adder_proxy.rs @@ -44,7 +44,7 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, initial_value: Arg0, @@ -66,7 +66,7 @@ where Gas: TxGas, { pub fn upgrade< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, initial_value: Arg0, @@ -97,7 +97,7 @@ where /// Add desired amount to the storage variable. pub fn add< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, value: Arg0, diff --git a/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs b/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs index 385d77ce82..08c8d0ef14 100644 --- a/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs +++ b/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs @@ -44,9 +44,9 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>, >( self, target: Arg0, @@ -120,7 +120,7 @@ where } pub fn deposit< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, donor: Arg0, diff --git a/contracts/examples/crypto-kitties/kitty-auction/src/kitty_ownership_proxy.rs b/contracts/examples/crypto-kitties/kitty-auction/src/kitty_ownership_proxy.rs index e43a200ce2..87f5bdb4a2 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/src/kitty_ownership_proxy.rs +++ b/contracts/examples/crypto-kitties/kitty-auction/src/kitty_ownership_proxy.rs @@ -44,9 +44,9 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, - Arg1: CodecInto>>, - Arg2: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, + Arg2: ProxyArg>>, >( self, birth_fee: Arg0, @@ -72,7 +72,7 @@ where Gas: TxGas, { pub fn set_gene_science_contract_address_endpoint< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -84,7 +84,7 @@ where } pub fn set_kitty_auction_contract_address_endpoint< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -112,7 +112,7 @@ where } pub fn balance_of< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -124,7 +124,7 @@ where } pub fn owner_of< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, kitty_id: Arg0, @@ -136,8 +136,8 @@ where } pub fn approve< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, to: Arg0, @@ -151,8 +151,8 @@ where } pub fn transfer< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, to: Arg0, @@ -166,9 +166,9 @@ where } pub fn transfer_from< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, from: Arg0, @@ -184,7 +184,7 @@ where } pub fn tokens_of_owner< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -196,8 +196,8 @@ where } pub fn allow_auctioning< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, by: Arg0, @@ -211,9 +211,9 @@ where } pub fn approve_siring_and_return_kitty< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, approved_address: Arg0, @@ -237,7 +237,7 @@ where } pub fn get_kitty_by_id_endpoint< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, kitty_id: Arg0, @@ -249,7 +249,7 @@ where } pub fn is_ready_to_breed< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, kitty_id: Arg0, @@ -261,7 +261,7 @@ where } pub fn is_pregnant< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, kitty_id: Arg0, @@ -273,8 +273,8 @@ where } pub fn can_breed_with< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, matron_id: Arg0, @@ -288,8 +288,8 @@ where } pub fn approve_siring< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, address: Arg0, @@ -303,8 +303,8 @@ where } pub fn breed_with< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, matron_id: Arg0, @@ -318,7 +318,7 @@ where } pub fn give_birth< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, matron_id: Arg0, diff --git a/contracts/examples/crypto-kitties/kitty-ownership/src/kitty_genetic_alg_proxy.rs b/contracts/examples/crypto-kitties/kitty-ownership/src/kitty_genetic_alg_proxy.rs index 53f3409e9f..1acee7fe43 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/src/kitty_genetic_alg_proxy.rs +++ b/contracts/examples/crypto-kitties/kitty-ownership/src/kitty_genetic_alg_proxy.rs @@ -62,8 +62,8 @@ where Gas: TxGas, { pub fn generate_kitty_genes< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, matron: Arg0, diff --git a/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs b/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs index e43a200ce2..87f5bdb4a2 100644 --- a/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs +++ b/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs @@ -44,9 +44,9 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, - Arg1: CodecInto>>, - Arg2: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, + Arg2: ProxyArg>>, >( self, birth_fee: Arg0, @@ -72,7 +72,7 @@ where Gas: TxGas, { pub fn set_gene_science_contract_address_endpoint< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -84,7 +84,7 @@ where } pub fn set_kitty_auction_contract_address_endpoint< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -112,7 +112,7 @@ where } pub fn balance_of< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -124,7 +124,7 @@ where } pub fn owner_of< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, kitty_id: Arg0, @@ -136,8 +136,8 @@ where } pub fn approve< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, to: Arg0, @@ -151,8 +151,8 @@ where } pub fn transfer< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, to: Arg0, @@ -166,9 +166,9 @@ where } pub fn transfer_from< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, from: Arg0, @@ -184,7 +184,7 @@ where } pub fn tokens_of_owner< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -196,8 +196,8 @@ where } pub fn allow_auctioning< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, by: Arg0, @@ -211,9 +211,9 @@ where } pub fn approve_siring_and_return_kitty< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, approved_address: Arg0, @@ -237,7 +237,7 @@ where } pub fn get_kitty_by_id_endpoint< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, kitty_id: Arg0, @@ -249,7 +249,7 @@ where } pub fn is_ready_to_breed< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, kitty_id: Arg0, @@ -261,7 +261,7 @@ where } pub fn is_pregnant< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, kitty_id: Arg0, @@ -273,8 +273,8 @@ where } pub fn can_breed_with< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, matron_id: Arg0, @@ -288,8 +288,8 @@ where } pub fn approve_siring< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, address: Arg0, @@ -303,8 +303,8 @@ where } pub fn breed_with< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, matron_id: Arg0, @@ -318,7 +318,7 @@ where } pub fn give_birth< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, matron_id: Arg0, diff --git a/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs b/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs index 1881df3acc..7f490cccbd 100644 --- a/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs +++ b/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs @@ -80,7 +80,7 @@ where Gas: TxGas, { pub fn set_crypto_kitties_sc_address< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -100,7 +100,7 @@ where } pub fn create_random_zombie< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, name: Arg0, @@ -112,7 +112,7 @@ where } pub fn is_ready< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, zombie_id: Arg0, @@ -124,8 +124,8 @@ where } pub fn feed_on_kitty< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, zombie_id: Arg0, @@ -155,7 +155,7 @@ where } pub fn zombies< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, id: Arg0, @@ -167,7 +167,7 @@ where } pub fn zombie_owner< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, id: Arg0, @@ -195,7 +195,7 @@ where } pub fn owned_zombies< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, owner: Arg0, @@ -207,7 +207,7 @@ where } pub fn level_up< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, zombie_id: Arg0, @@ -227,8 +227,8 @@ where } pub fn change_name< - Arg0: CodecInto, - Arg1: CodecInto>, + Arg0: ProxyArg, + Arg1: ProxyArg>, >( self, zombie_id: Arg0, @@ -242,8 +242,8 @@ where } pub fn change_dna< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, zombie_id: Arg0, @@ -257,8 +257,8 @@ where } pub fn attack< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, zombie_id: Arg0, diff --git a/contracts/examples/digital-cash/src/digital_cash_proxy.rs b/contracts/examples/digital-cash/src/digital_cash_proxy.rs index 644e17c671..ad7a29fe7e 100644 --- a/contracts/examples/digital-cash/src/digital_cash_proxy.rs +++ b/contracts/examples/digital-cash/src/digital_cash_proxy.rs @@ -44,8 +44,8 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, fee: Arg0, @@ -69,8 +69,8 @@ where Gas: TxGas, { pub fn whitelist_fee_token< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, fee: Arg0, @@ -84,7 +84,7 @@ where } pub fn blacklist_fee_token< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, token: Arg0, @@ -104,9 +104,9 @@ where } pub fn get_amount< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, address: Arg0, @@ -122,8 +122,8 @@ where } pub fn pay_fee_and_fund_esdt< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, address: Arg0, @@ -137,8 +137,8 @@ where } pub fn pay_fee_and_fund_egld< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, address: Arg0, @@ -152,8 +152,8 @@ where } pub fn fund< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, address: Arg0, @@ -167,7 +167,7 @@ where } pub fn deposit_fees< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -179,7 +179,7 @@ where } pub fn withdraw< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -191,8 +191,8 @@ where } pub fn claim< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, address: Arg0, @@ -206,9 +206,9 @@ where } pub fn forward< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, address: Arg0, @@ -224,7 +224,7 @@ where } pub fn deposit< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, donor: Arg0, diff --git a/contracts/examples/fractional-nfts/src/nft_marketplace_proxy.rs b/contracts/examples/fractional-nfts/src/nft_marketplace_proxy.rs index c8d8381ac0..b977042583 100644 --- a/contracts/examples/fractional-nfts/src/nft_marketplace_proxy.rs +++ b/contracts/examples/fractional-nfts/src/nft_marketplace_proxy.rs @@ -38,9 +38,9 @@ where Gas: TxGas, { pub fn claim_tokens< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, claim_destination: Arg0, diff --git a/contracts/examples/multisig/src/multisig_proxy.rs b/contracts/examples/multisig/src/multisig_proxy.rs index 616fb88be5..1d39617160 100644 --- a/contracts/examples/multisig/src/multisig_proxy.rs +++ b/contracts/examples/multisig/src/multisig_proxy.rs @@ -44,8 +44,8 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto, - Arg1: CodecInto>>, + Arg0: ProxyArg, + Arg1: ProxyArg>>, >( self, quorum: Arg0, @@ -69,8 +69,8 @@ where Gas: TxGas, { pub fn upgrade< - Arg0: CodecInto, - Arg1: CodecInto>>, + Arg0: ProxyArg, + Arg1: ProxyArg>>, >( self, quorum: Arg0, @@ -118,8 +118,8 @@ where /// Returns `true` (`1`) if the user has signed the action. /// Does not check whether or not the user is still a board member and the signature valid. pub fn signed< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, user: Arg0, @@ -137,7 +137,7 @@ where /// `1` = can propose, but not sign, /// `2` = can propose and sign. pub fn user_role< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, user: Arg0, @@ -168,7 +168,7 @@ where /// Used by board members to sign actions. pub fn sign< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -182,7 +182,7 @@ where /// Board members can withdraw their signatures if they no longer desire for the action to be executed. /// Actions that are left with no valid signatures can be then deleted to free up storage. pub fn unsign< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -197,7 +197,7 @@ where /// Any signatures that the action received must first be removed, via `unsign`. /// Otherwise this endpoint would be prone to abuse. pub fn discard_action< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -249,7 +249,7 @@ where /// Serialized action data of an action with index. pub fn get_action_data< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -264,7 +264,7 @@ where /// Does not check if those users are still board members or not, /// so the result may contain invalid signers. pub fn get_action_signers< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -278,7 +278,7 @@ where /// Gets addresses of all users who signed an action and are still board members. /// All these signatures are currently valid. pub fn get_action_signer_count< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -295,7 +295,7 @@ where /// This function is used to validate the signers before performing an action. /// It also makes it easy to check before performing an action. pub fn get_action_valid_signer_count< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -309,7 +309,7 @@ where /// Initiates board member addition process. /// Can also be used to promote a proposer to board member. pub fn propose_add_board_member< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, board_member_address: Arg0, @@ -323,7 +323,7 @@ where /// Initiates proposer addition process.. /// Can also be used to demote a board member to proposer. pub fn propose_add_proposer< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, proposer_address: Arg0, @@ -336,7 +336,7 @@ where /// Removes user regardless of whether it is a board member or proposer. pub fn propose_remove_user< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, user_address: Arg0, @@ -348,7 +348,7 @@ where } pub fn propose_change_quorum< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, new_quorum: Arg0, @@ -364,9 +364,9 @@ where /// Can call smart contract endpoints directly. /// Doesn't really work with builtin functions. pub fn propose_transfer_execute< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, to: Arg0, @@ -387,9 +387,9 @@ where /// Works well with builtin functions. /// Cannot simply send EGLD directly without calling anything. pub fn propose_async_call< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, to: Arg0, @@ -405,10 +405,10 @@ where } pub fn propose_sc_deploy_from_source< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, + Arg3: ProxyArg>>, >( self, amount: Arg0, @@ -426,11 +426,11 @@ where } pub fn propose_sc_upgrade_from_source< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto, - Arg4: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg, + Arg4: ProxyArg>>, >( self, sc_address: Arg0, @@ -451,7 +451,7 @@ where /// Returns `true` (`1`) if `getActionValidSignerCount >= getQuorum`. pub fn quorum_reached< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -464,7 +464,7 @@ where /// Proposers and board members use this to launch signed actions. pub fn perform_action_endpoint< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, action_id: Arg0, @@ -476,8 +476,8 @@ where } pub fn dns_register< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, dns_address: Arg0, diff --git a/contracts/examples/nft-minter/src/nft_marketplace_proxy.rs b/contracts/examples/nft-minter/src/nft_marketplace_proxy.rs index 7dbe98ed89..7c6028d1fd 100644 --- a/contracts/examples/nft-minter/src/nft_marketplace_proxy.rs +++ b/contracts/examples/nft-minter/src/nft_marketplace_proxy.rs @@ -36,9 +36,9 @@ where Gas: TxGas, { pub fn claim_tokens< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>, >( self, token_id: Arg0, diff --git a/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs b/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs index 4a02c6c098..83ec15b473 100644 --- a/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs +++ b/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs @@ -44,8 +44,8 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, seed_nft_minter_address: Arg0, @@ -85,9 +85,9 @@ where } pub fn claim_rewards< - Arg0: CodecInto, - Arg1: CodecInto, - Arg2: CodecInto, u64>>>, + Arg0: ProxyArg, + Arg1: ProxyArg, + Arg2: ProxyArg, u64>>>, >( self, raffle_id_start: Arg0, @@ -103,10 +103,10 @@ where } pub fn compute_claimable_amount< - Arg0: CodecInto, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg>, + Arg2: ProxyArg, + Arg3: ProxyArg, >( self, raffle_id: Arg0, @@ -140,9 +140,9 @@ where } pub fn royalties< - Arg0: CodecInto, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, raffle_id: Arg0, @@ -158,8 +158,8 @@ where } pub fn nft_reward_percent< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, raffle_id: Arg0, @@ -173,10 +173,10 @@ where } pub fn was_claimed< - Arg0: CodecInto, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg>, + Arg2: ProxyArg, + Arg3: ProxyArg, >( self, raffle_id: Arg0, @@ -226,6 +226,7 @@ where } } +#[type_abi] #[derive(ManagedVecItem, NestedEncode, NestedDecode)] pub struct Bracket { pub index_percent: u64, diff --git a/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs b/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs index 10047be064..49186da9ce 100644 --- a/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs +++ b/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs @@ -44,8 +44,8 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>>, - Arg1: CodecInto>>, + Arg0: ProxyArg>>, + Arg1: ProxyArg>>, >( self, marketplaces: Arg0, @@ -69,12 +69,12 @@ where Gas: TxGas, { pub fn create_nft< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto>, - Arg4: CodecInto>>, - Arg5: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg>, + Arg4: ProxyArg>>, + Arg5: ProxyArg>, >( self, name: Arg0, @@ -96,8 +96,8 @@ where } pub fn claim_and_distribute< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, token_id: Arg0, @@ -135,8 +135,8 @@ where } pub fn issue_token< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, token_display_name: Arg0, @@ -150,7 +150,7 @@ where } pub fn buy_nft< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, nft_nonce: Arg0, @@ -162,7 +162,7 @@ where } pub fn get_nft_price< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, nft_nonce: Arg0, diff --git a/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs b/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs index 22d9e055cd..379b8e0d05 100644 --- a/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs +++ b/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs @@ -35,7 +35,7 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, nft_token_id: Arg0, @@ -57,7 +57,7 @@ where Gas: TxGas, { pub fn set_nft_count< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, nft_count: Arg0, diff --git a/contracts/examples/seed-nft-minter/src/nft_marketplace_proxy.rs b/contracts/examples/seed-nft-minter/src/nft_marketplace_proxy.rs index 8cbc28e5df..e41b477e03 100644 --- a/contracts/examples/seed-nft-minter/src/nft_marketplace_proxy.rs +++ b/contracts/examples/seed-nft-minter/src/nft_marketplace_proxy.rs @@ -55,9 +55,9 @@ where Gas: TxGas, { pub fn claim_tokens< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, claim_destination: Arg0, diff --git a/contracts/feature-tests/abi-tester/src/abi_proxy.rs b/contracts/feature-tests/abi-tester/src/abi_proxy.rs index feea268d49..a91b6d1961 100644 --- a/contracts/feature-tests/abi-tester/src/abi_proxy.rs +++ b/contracts/feature-tests/abi-tester/src/abi_proxy.rs @@ -45,8 +45,8 @@ where { /// Contract constructor. pub fn init< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, _constructor_arg_1: Arg0, @@ -71,8 +71,8 @@ where { /// Upgrade constructor. pub fn upgrade< - Arg0: CodecInto, - Arg1: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg, >( self, _constructor_arg_1: Arg0, @@ -97,7 +97,7 @@ where { /// Example endpoint docs. pub fn echo_abi_test_type< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, att: Arg0, @@ -109,7 +109,7 @@ where } pub fn echo_enum< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, e: Arg0, @@ -121,7 +121,7 @@ where } pub fn take_managed_type< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, _arg: Arg0, @@ -149,8 +149,8 @@ where } pub fn var_args< - Arg0: CodecInto, - Arg1: CodecInto>>, + Arg0: ProxyArg, + Arg1: ProxyArg>>, >( self, _simple_arg: Arg0, @@ -172,8 +172,8 @@ where } pub fn optional_arg< - Arg0: CodecInto, - Arg1: CodecInto>, + Arg0: ProxyArg, + Arg1: ProxyArg>, >( self, _simple_arg: Arg0, @@ -195,8 +195,8 @@ where } pub fn address_vs_h256< - Arg0: CodecInto
, - Arg1: CodecInto, + Arg0: ProxyArg
, + Arg1: ProxyArg, >( self, address: Arg0, @@ -210,8 +210,8 @@ where } pub fn managed_address_vs_byte_array< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, address: Arg0, @@ -281,7 +281,7 @@ where } pub fn item_for_array< - Arg0: CodecInto<[OnlyShowsUpAsNestedInArray; 5]>, + Arg0: ProxyArg<[OnlyShowsUpAsNestedInArray; 5]>, >( self, _array: Arg0, @@ -309,7 +309,7 @@ where } pub fn item_for_ref< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, _ref: Arg0, @@ -321,7 +321,7 @@ where } pub fn item_for_slice< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, _ref: Arg0, diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/child_proxy.rs b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/child_proxy.rs index bb3e97cc56..b4808f8eba 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/child_proxy.rs +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/child_proxy.rs @@ -62,9 +62,9 @@ where Gas: TxGas, { pub fn issue_wrapped_egld< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, token_display_name: Arg0, diff --git a/contracts/feature-tests/composability/forwarder/src/vault_proxy.rs b/contracts/feature-tests/composability/forwarder/src/vault_proxy.rs index 656db40983..c43f59c36a 100644 --- a/contracts/feature-tests/composability/forwarder/src/vault_proxy.rs +++ b/contracts/feature-tests/composability/forwarder/src/vault_proxy.rs @@ -44,7 +44,7 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, opt_arg_to_echo: Arg0, @@ -66,7 +66,7 @@ where Gas: TxGas, { pub fn upgrade< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, opt_arg_to_echo: Arg0, @@ -88,7 +88,7 @@ where Gas: TxGas, { pub fn echo_arguments< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, args: Arg0, @@ -100,7 +100,7 @@ where } pub fn echo_arguments_without_storage< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, args: Arg0, @@ -152,9 +152,9 @@ where } pub fn retrieve_funds_with_transfer_exec< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>>, >( self, token: Arg0, @@ -170,8 +170,8 @@ where } pub fn retrieve_funds_promises< - Arg0: CodecInto>, - Arg1: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, >( self, back_transfers: Arg0, @@ -185,9 +185,9 @@ where } pub fn retrieve_funds< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>, >( self, token: Arg0, @@ -203,7 +203,7 @@ where } pub fn retrieve_multi_funds_async< - Arg0: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg, u64, BigUint>>>, >( self, token_payments: Arg0, @@ -233,7 +233,7 @@ where /// We already leave a trace of the calls using the event logs; /// this additional counter has the role of showing that storage also gets saved correctly. pub fn call_counts< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, endpoint: Arg0, diff --git a/contracts/feature-tests/composability/promises-features/src/vault_proxy.rs b/contracts/feature-tests/composability/promises-features/src/vault_proxy.rs index 656db40983..c43f59c36a 100644 --- a/contracts/feature-tests/composability/promises-features/src/vault_proxy.rs +++ b/contracts/feature-tests/composability/promises-features/src/vault_proxy.rs @@ -44,7 +44,7 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, opt_arg_to_echo: Arg0, @@ -66,7 +66,7 @@ where Gas: TxGas, { pub fn upgrade< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, opt_arg_to_echo: Arg0, @@ -88,7 +88,7 @@ where Gas: TxGas, { pub fn echo_arguments< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, args: Arg0, @@ -100,7 +100,7 @@ where } pub fn echo_arguments_without_storage< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, args: Arg0, @@ -152,9 +152,9 @@ where } pub fn retrieve_funds_with_transfer_exec< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>>, >( self, token: Arg0, @@ -170,8 +170,8 @@ where } pub fn retrieve_funds_promises< - Arg0: CodecInto>, - Arg1: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, >( self, back_transfers: Arg0, @@ -185,9 +185,9 @@ where } pub fn retrieve_funds< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>, >( self, token: Arg0, @@ -203,7 +203,7 @@ where } pub fn retrieve_multi_funds_async< - Arg0: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg, u64, BigUint>>>, >( self, token_payments: Arg0, @@ -233,7 +233,7 @@ where /// We already leave a trace of the calls using the event logs; /// this additional counter has the role of showing that storage also gets saved correctly. pub fn call_counts< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, endpoint: Arg0, diff --git a/contracts/feature-tests/composability/proxy-test-first/src/message_me_proxy.rs b/contracts/feature-tests/composability/proxy-test-first/src/message_me_proxy.rs index 2a4242c2f2..4609a3a0bd 100644 --- a/contracts/feature-tests/composability/proxy-test-first/src/message_me_proxy.rs +++ b/contracts/feature-tests/composability/proxy-test-first/src/message_me_proxy.rs @@ -44,7 +44,7 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, init_arg: Arg0, @@ -84,10 +84,10 @@ where Gas: TxGas, { pub fn message_me< - Arg0: CodecInto, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto>, + Arg0: ProxyArg, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg>, >( self, arg1: Arg0, diff --git a/contracts/feature-tests/composability/proxy-test-first/src/pay_me_proxy.rs b/contracts/feature-tests/composability/proxy-test-first/src/pay_me_proxy.rs index ff801b93f9..cfd32f2516 100644 --- a/contracts/feature-tests/composability/proxy-test-first/src/pay_me_proxy.rs +++ b/contracts/feature-tests/composability/proxy-test-first/src/pay_me_proxy.rs @@ -80,7 +80,7 @@ where Gas: TxGas, { pub fn pay_me< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, arg1: Arg0, @@ -92,7 +92,7 @@ where } pub fn pay_me_with_result< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, arg1: Arg0, diff --git a/contracts/feature-tests/composability/recursive-caller/src/self_proxy.rs b/contracts/feature-tests/composability/recursive-caller/src/self_proxy.rs index bda44ef4b3..7fd86a1c8f 100644 --- a/contracts/feature-tests/composability/recursive-caller/src/self_proxy.rs +++ b/contracts/feature-tests/composability/recursive-caller/src/self_proxy.rs @@ -62,10 +62,10 @@ where Gas: TxGas, { pub fn recursive_send_funds< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg, >( self, to: Arg0, diff --git a/contracts/feature-tests/composability/recursive-caller/src/vault_proxy.rs b/contracts/feature-tests/composability/recursive-caller/src/vault_proxy.rs index 656db40983..c43f59c36a 100644 --- a/contracts/feature-tests/composability/recursive-caller/src/vault_proxy.rs +++ b/contracts/feature-tests/composability/recursive-caller/src/vault_proxy.rs @@ -44,7 +44,7 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, opt_arg_to_echo: Arg0, @@ -66,7 +66,7 @@ where Gas: TxGas, { pub fn upgrade< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, opt_arg_to_echo: Arg0, @@ -88,7 +88,7 @@ where Gas: TxGas, { pub fn echo_arguments< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, args: Arg0, @@ -100,7 +100,7 @@ where } pub fn echo_arguments_without_storage< - Arg0: CodecInto>>, + Arg0: ProxyArg>>, >( self, args: Arg0, @@ -152,9 +152,9 @@ where } pub fn retrieve_funds_with_transfer_exec< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>>, >( self, token: Arg0, @@ -170,8 +170,8 @@ where } pub fn retrieve_funds_promises< - Arg0: CodecInto>, - Arg1: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, >( self, back_transfers: Arg0, @@ -185,9 +185,9 @@ where } pub fn retrieve_funds< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>, >( self, token: Arg0, @@ -203,7 +203,7 @@ where } pub fn retrieve_multi_funds_async< - Arg0: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg, u64, BigUint>>>, >( self, token_payments: Arg0, @@ -233,7 +233,7 @@ where /// We already leave a trace of the calls using the event logs; /// this additional counter has the role of showing that storage also gets saved correctly. pub fn call_counts< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, endpoint: Arg0, diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/erc20_proxy.rs b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/erc20_proxy.rs index 5d53567a38..eaceb1da73 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/erc20_proxy.rs +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/erc20_proxy.rs @@ -46,7 +46,7 @@ where /// Constructor, is called immediately after the contract is created /// Will set the fixed global token supply and give all the supply to the creator. pub fn init< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, total_supply: Arg0, @@ -83,7 +83,7 @@ where /// * `address` The address to query the the balance of /// pub fn token_balance< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -102,8 +102,8 @@ where /// * `spender` The address that will spend the funds. /// pub fn allowance< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, owner: Arg0, @@ -123,8 +123,8 @@ where /// * `to` The address to transfer to. /// pub fn transfer< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, to: Arg0, @@ -146,9 +146,9 @@ where /// * `amount` the amount of tokens to be transferred. /// pub fn transfer_from< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, sender: Arg0, @@ -172,8 +172,8 @@ where /// * `amount` The amount of tokens to be spent. /// pub fn approve< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, spender: Arg0, diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/erc1155_proxy.rs b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/erc1155_proxy.rs index 41773ae924..899a036f41 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/erc1155_proxy.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/erc1155_proxy.rs @@ -63,11 +63,11 @@ where { /// `value` is amount for fungible, nft_id for non-fungible pub fn safe_transfer_from< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto>, - Arg4: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg>, + Arg4: ProxyArg>, >( self, from: Arg0, @@ -88,11 +88,11 @@ where /// `value` is amount for fungible, nft_id for non-fungible pub fn safe_batch_transfer_from< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto]>>, - Arg3: CodecInto]>>, - Arg4: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg]>>, + Arg3: ProxyArg]>>, + Arg4: ProxyArg>, >( self, from: Arg0, @@ -112,8 +112,8 @@ where } pub fn set_approved_for_all< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, operator: Arg0, @@ -127,9 +127,9 @@ where } pub fn create_token< - Arg0: CodecInto, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, uri: Arg0, @@ -145,8 +145,8 @@ where } pub fn mint< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, type_id: Arg0, @@ -160,8 +160,8 @@ where } pub fn burn< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, type_id: Arg0, @@ -175,8 +175,8 @@ where } pub fn balance_of< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, owner: Arg0, @@ -190,7 +190,7 @@ where } pub fn balance_of_batch< - Arg0: CodecInto, BigUint>>>, + Arg0: ProxyArg, BigUint>>>, >( self, owner_type_id_pairs: Arg0, @@ -202,8 +202,8 @@ where } pub fn token_owner< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, type_id: Arg0, @@ -217,7 +217,7 @@ where } pub fn token_type_creator< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, type_id: Arg0, @@ -229,7 +229,7 @@ where } pub fn token_type_uri< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, type_id: Arg0, @@ -241,7 +241,7 @@ where } pub fn is_fungible< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, type_id: Arg0, @@ -253,8 +253,8 @@ where } pub fn is_approved< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, operator: Arg0, diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155_user_proxy.rs b/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155_user_proxy.rs index 8dd67d4061..600c12792f 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155_user_proxy.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155_user_proxy.rs @@ -38,11 +38,11 @@ where Gas: TxGas, { pub fn on_erc1155_received< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto>, - Arg4: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg>, + Arg4: ProxyArg>, >( self, operator: Arg0, @@ -62,11 +62,11 @@ where } pub fn on_erc1155_batch_received< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>>, - Arg3: CodecInto>>, - Arg4: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>>, + Arg3: ProxyArg>>, + Arg4: ProxyArg>, >( self, operator: Arg0, diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/erc20_proxy.rs b/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/erc20_proxy.rs index 5d53567a38..eaceb1da73 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/erc20_proxy.rs +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/erc20_proxy.rs @@ -46,7 +46,7 @@ where /// Constructor, is called immediately after the contract is created /// Will set the fixed global token supply and give all the supply to the creator. pub fn init< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, total_supply: Arg0, @@ -83,7 +83,7 @@ where /// * `address` The address to query the the balance of /// pub fn token_balance< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, address: Arg0, @@ -102,8 +102,8 @@ where /// * `spender` The address that will spend the funds. /// pub fn allowance< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, owner: Arg0, @@ -123,8 +123,8 @@ where /// * `to` The address to transfer to. /// pub fn transfer< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, to: Arg0, @@ -146,9 +146,9 @@ where /// * `amount` the amount of tokens to be transferred. /// pub fn transfer_from< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, sender: Arg0, @@ -172,8 +172,8 @@ where /// * `amount` The amount of tokens to be spent. /// pub fn approve< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, spender: Arg0, diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_proxy.rs b/contracts/feature-tests/panic-message-features/tests/pmf_proxy.rs index 7413bf0ed9..6e4c6e0cea 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_proxy.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_proxy.rs @@ -62,7 +62,7 @@ where Gas: TxGas, { pub fn panic_with_message< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, some_value: Arg0, diff --git a/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs b/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs index d3abf4b9b7..3358a126e4 100644 --- a/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs +++ b/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs @@ -44,7 +44,7 @@ where Gas: TxGas, { pub fn init< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, initial_value: Arg0, @@ -66,7 +66,7 @@ where Gas: TxGas, { pub fn upgrade< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, initial_value: Arg0, @@ -97,7 +97,7 @@ where /// Add desired amount to the storage variable. pub fn add< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, value: Arg0, diff --git a/contracts/modules/src/dns_proxy.rs b/contracts/modules/src/dns_proxy.rs index bdaf2ed13b..25ac68e4c4 100644 --- a/contracts/modules/src/dns_proxy.rs +++ b/contracts/modules/src/dns_proxy.rs @@ -38,7 +38,7 @@ where Gas: TxGas, { pub fn register< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, name: Arg0, diff --git a/framework/base/src/abi/type_abi_impl_basic.rs b/framework/base/src/abi/type_abi_impl_basic.rs index 1d0378259e..4e93eda28a 100644 --- a/framework/base/src/abi/type_abi_impl_basic.rs +++ b/framework/base/src/abi/type_abi_impl_basic.rs @@ -122,6 +122,7 @@ impl TypeAbi for Box<[T]> { } impl TypeAbiFrom for String {} +impl TypeAbiFrom<&String> for String {} impl TypeAbiFrom<&str> for String {} impl TypeAbiFrom> for String {} @@ -160,6 +161,7 @@ impl TypeAbi for Box { macro_rules! type_abi_name_only { ($ty:ty, $name:expr) => { impl TypeAbiFrom<$ty> for $ty {} + impl TypeAbiFrom<&$ty> for $ty {} impl TypeAbi for $ty { fn type_name() -> TypeName { @@ -186,6 +188,40 @@ type_abi_name_only!(i64, "i64"); type_abi_name_only!(core::num::NonZeroUsize, "NonZeroUsize"); type_abi_name_only!(bool, "bool"); +// Unsigned integer types: the contract can return a smaller capacity result and and we can interpret it as a larger capacity type. + +impl TypeAbiFrom for u64 {} +impl TypeAbiFrom for u64 {} +impl TypeAbiFrom for u64 {} +impl TypeAbiFrom for u64 {} + +impl TypeAbiFrom for u32 {} +impl TypeAbiFrom for u32 {} +impl TypeAbiFrom for u32 {} + +impl TypeAbiFrom for usize {} +impl TypeAbiFrom for usize {} +impl TypeAbiFrom for usize {} + +impl TypeAbiFrom for u16 {} + +// Signed, the same. + +impl TypeAbiFrom for i64 {} +impl TypeAbiFrom for i64 {} +impl TypeAbiFrom for i64 {} +impl TypeAbiFrom for i64 {} + +impl TypeAbiFrom for i32 {} +impl TypeAbiFrom for i32 {} +impl TypeAbiFrom for i32 {} + +impl TypeAbiFrom for isize {} +impl TypeAbiFrom for isize {} +impl TypeAbiFrom for isize {} + +impl TypeAbiFrom for i16 {} + impl TypeAbiFrom> for Option where T: TypeAbiFrom {} impl TypeAbi for Option { diff --git a/framework/base/src/types/interaction/expr/test_address.rs b/framework/base/src/types/interaction/expr/test_address.rs index b01840ce06..d2824002ba 100644 --- a/framework/base/src/types/interaction/expr/test_address.rs +++ b/framework/base/src/types/interaction/expr/test_address.rs @@ -3,6 +3,7 @@ use core::ptr; use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; use crate::{ + abi::TypeAbiFrom, api::ManagedTypeApi, types::{ AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo, @@ -85,6 +86,7 @@ impl<'a> TopEncode for TestAddress<'a> { } impl<'a, Api> CodecFrom> for ManagedAddress where Api: ManagedTypeApi {} +impl<'a, Api> TypeAbiFrom> for ManagedAddress where Api: ManagedTypeApi {} #[cfg(test)] pub mod tests { diff --git a/framework/base/src/types/interaction/expr/test_sc_address.rs b/framework/base/src/types/interaction/expr/test_sc_address.rs index 973ab80d92..c752777bfa 100644 --- a/framework/base/src/types/interaction/expr/test_sc_address.rs +++ b/framework/base/src/types/interaction/expr/test_sc_address.rs @@ -3,6 +3,7 @@ use core::ptr; use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; use crate::{ + abi::TypeAbiFrom, api::ManagedTypeApi, types::{ heap::Address, AnnotatedValue, ManagedAddress, ManagedBuffer, TxEnv, TxFrom, @@ -105,6 +106,7 @@ impl<'a> TopEncode for TestSCAddress<'a> { } impl<'a, Api> CodecFrom> for ManagedAddress where Api: ManagedTypeApi {} +impl<'a, Api> TypeAbiFrom> for ManagedAddress where Api: ManagedTypeApi {} #[cfg(test)] pub mod tests { diff --git a/framework/base/src/types/interaction/expr/test_token_identifier.rs b/framework/base/src/types/interaction/expr/test_token_identifier.rs index b22854b507..1230a15664 100644 --- a/framework/base/src/types/interaction/expr/test_token_identifier.rs +++ b/framework/base/src/types/interaction/expr/test_token_identifier.rs @@ -1,6 +1,7 @@ use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; use crate::{ + abi::TypeAbiFrom, api::ManagedTypeApi, types::{AnnotatedValue, ManagedBuffer, TokenIdentifier, TxEnv}, }; @@ -62,3 +63,5 @@ impl<'a> TopEncode for TestTokenIdentifier<'a> { } impl<'a, Api> CodecFrom> for TokenIdentifier where Api: ManagedTypeApi {} +impl<'a, Api> TypeAbiFrom> for TokenIdentifier where Api: ManagedTypeApi +{} diff --git a/framework/base/src/types/interaction/managed_arg_buffer.rs b/framework/base/src/types/interaction/managed_arg_buffer.rs index ab103040f7..e3ca9c67e5 100644 --- a/framework/base/src/types/interaction/managed_arg_buffer.rs +++ b/framework/base/src/types/interaction/managed_arg_buffer.rs @@ -300,6 +300,7 @@ where } impl TypeAbiFrom for ManagedArgBuffer where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for ManagedArgBuffer where M: ManagedTypeApi {} impl TypeAbi for ManagedArgBuffer where diff --git a/framework/base/src/types/interaction/markers/esdt_system_sc_address.rs b/framework/base/src/types/interaction/markers/esdt_system_sc_address.rs index 8d59b682be..0cfe2e5588 100644 --- a/framework/base/src/types/interaction/markers/esdt_system_sc_address.rs +++ b/framework/base/src/types/interaction/markers/esdt_system_sc_address.rs @@ -2,6 +2,7 @@ use hex_literal::hex; use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; use crate::{ + abi::TypeAbiFrom, api::{CallTypeApi, ManagedTypeApi}, types::{AnnotatedValue, ManagedAddress, ManagedBuffer, TxScEnv, TxTo, TxToSpecified}, }; @@ -61,6 +62,7 @@ impl TopEncode for ESDTSystemSCAddress { } impl CodecFrom for ManagedAddress where M: ManagedTypeApi {} +impl TypeAbiFrom for ManagedAddress where M: ManagedTypeApi {} impl core::fmt::Display for ESDTSystemSCAddress { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { diff --git a/framework/base/src/types/interaction/system_proxy/builtin_func_proxy.rs b/framework/base/src/types/interaction/system_proxy/builtin_func_proxy.rs index fe421c5ef7..11972f72e8 100644 --- a/framework/base/src/types/interaction/system_proxy/builtin_func_proxy.rs +++ b/framework/base/src/types/interaction/system_proxy/builtin_func_proxy.rs @@ -1,8 +1,8 @@ -use multiversx_sc_codec::{CodecInto, Empty, TopEncode}; +use multiversx_sc_codec::{Empty, TopEncode}; use crate::types::{ - BigUint, ManagedAddress, ManagedBuffer, ManagedVec, TokenIdentifier, Tx, TxEnv, TxFrom, TxGas, - TxProxyCall, TxProxyTrait, TxTo, + BigUint, ManagedAddress, ManagedBuffer, ManagedVec, ProxyArg, TokenIdentifier, Tx, TxEnv, + TxFrom, TxGas, TxProxyCall, TxProxyTrait, TxTo, }; use super::builtin_func_names::{ @@ -46,7 +46,7 @@ where To: TxTo, Gas: TxGas, { - pub fn set_user_name>>( + pub fn set_user_name>>( self, name: Arg0, ) -> TxProxyCall { diff --git a/framework/base/src/types/interaction/tx_proxy.rs b/framework/base/src/types/interaction/tx_proxy.rs index 7bb0c67439..2929a7bc4b 100644 --- a/framework/base/src/types/interaction/tx_proxy.rs +++ b/framework/base/src/types/interaction/tx_proxy.rs @@ -1,3 +1,7 @@ +use multiversx_sc_codec::TopEncodeMulti; + +use crate::abi::TypeAbiFrom; + use super::{ DeployCall, FunctionCall, OriginalResultMarker, Tx, TxEnv, TxFrom, TxGas, TxTo, UpgradeCall, }; @@ -27,3 +31,15 @@ pub type TxProxyCall = /// Alias for a `Tx` generated from a proxy, in `upgrade`. pub type TxProxyUpgrade = Tx, OriginalResultMarker>; + +/// Trait that is automatically implemented for all types that are allowed as proxy inputs. +/// +/// Is automatically implemented for all traits that are `TypeAbiInto + TopEncodeMulti`. +pub trait ProxyArg: TopEncodeMulti {} + +impl ProxyArg for T +where + O: TypeAbiFrom, + T: TopEncodeMulti, +{ +} diff --git a/framework/base/src/types/managed/basic/big_float.rs b/framework/base/src/types/managed/basic/big_float.rs index 62126efd19..0bc2980e35 100644 --- a/framework/base/src/types/managed/basic/big_float.rs +++ b/framework/base/src/types/managed/basic/big_float.rs @@ -287,6 +287,7 @@ impl NestedDecode for BigFloat { } impl TypeAbiFrom for BigFloat where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for BigFloat where M: ManagedTypeApi {} impl TypeAbi for BigFloat { fn type_name() -> String { diff --git a/framework/base/src/types/managed/basic/big_int.rs b/framework/base/src/types/managed/basic/big_int.rs index a27611a903..4d9fca8fe2 100644 --- a/framework/base/src/types/managed/basic/big_int.rs +++ b/framework/base/src/types/managed/basic/big_int.rs @@ -101,6 +101,7 @@ macro_rules! big_int_conv_num { } impl CodecFrom<$num_ty> for BigInt {} + impl CodecFrom<&$num_ty> for BigInt {} }; } @@ -299,6 +300,7 @@ impl TopDecode for BigInt { } impl TypeAbiFrom for BigInt where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for BigInt where M: ManagedTypeApi {} impl crate::abi::TypeAbi for BigInt { fn type_name() -> TypeName { diff --git a/framework/base/src/types/managed/basic/big_uint.rs b/framework/base/src/types/managed/basic/big_uint.rs index 9f78792eab..2766a42f1d 100644 --- a/framework/base/src/types/managed/basic/big_uint.rs +++ b/framework/base/src/types/managed/basic/big_uint.rs @@ -95,6 +95,7 @@ macro_rules! big_uint_conv_num { } impl CodecFrom<$num_ty> for BigUint {} + impl TypeAbiFrom<$num_ty> for BigUint {} }; } @@ -111,6 +112,11 @@ impl CodecFrom for BigUint #[cfg(feature = "num-bigint")] impl CodecFrom> for crate::codec::num_bigint::BigUint {} +#[cfg(feature = "num-bigint")] +impl TypeAbiFrom for BigUint {} +#[cfg(feature = "num-bigint")] +impl TypeAbiFrom> for crate::codec::num_bigint::BigUint {} + #[cfg(feature = "num-bigint")] impl From<&crate::codec::num_bigint::BigUint> for BigUint { fn from(alloc_big_uint: &crate::codec::num_bigint::BigUint) -> Self { @@ -288,6 +294,7 @@ impl TopDecode for BigUint { } impl TypeAbiFrom for BigUint where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for BigUint where M: ManagedTypeApi {} impl crate::abi::TypeAbi for BigUint { fn type_name() -> TypeName { diff --git a/framework/base/src/types/managed/basic/managed_buffer.rs b/framework/base/src/types/managed/basic/managed_buffer.rs index a9d7483125..5d2b975b4a 100644 --- a/framework/base/src/types/managed/basic/managed_buffer.rs +++ b/framework/base/src/types/managed/basic/managed_buffer.rs @@ -419,12 +419,21 @@ impl CodecFrom<&[u8]> for ManagedBuffer where M: ManagedTypeApi {} impl CodecFrom<&str> for ManagedBuffer where M: ManagedTypeApi {} impl CodecFrom<&[u8; N]> for ManagedBuffer where M: ManagedTypeApi {} +impl TypeAbiFrom<&[u8]> for ManagedBuffer where M: ManagedTypeApi {} +impl TypeAbiFrom<&str> for ManagedBuffer where M: ManagedTypeApi {} +impl TypeAbiFrom<&[u8; N]> for ManagedBuffer where M: ManagedTypeApi {} + macro_rules! managed_buffer_codec_from_impl_bi_di { ($other_ty:ty) => { impl CodecFrom<$other_ty> for ManagedBuffer {} impl CodecFrom<&$other_ty> for ManagedBuffer {} impl CodecFrom> for $other_ty {} impl CodecFrom<&ManagedBuffer> for $other_ty {} + + impl TypeAbiFrom<$other_ty> for ManagedBuffer {} + impl TypeAbiFrom<&$other_ty> for ManagedBuffer {} + impl TypeAbiFrom> for $other_ty {} + impl TypeAbiFrom<&ManagedBuffer> for $other_ty {} }; } @@ -462,6 +471,7 @@ impl TopDecode for ManagedBuffer { } impl TypeAbiFrom for ManagedBuffer where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for ManagedBuffer where M: ManagedTypeApi {} impl crate::abi::TypeAbi for ManagedBuffer { fn type_name() -> TypeName { diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs index 01e894cf3e..6154942fa6 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs @@ -265,6 +265,15 @@ where { } +#[cfg(feature = "alloc")] +impl TypeAbiFrom> for MultiValueEncoded +where + M: ManagedTypeApi + ErrorApi, + T: TopEncodeMulti, + U: TypeAbiFrom, +{ +} + #[cfg(feature = "alloc")] impl CodecFrom> for MultiValueVec where @@ -274,6 +283,15 @@ where { } +#[cfg(feature = "alloc")] +impl TypeAbiFrom> for MultiValueVec +where + M: ManagedTypeApi + ErrorApi, + T: TopEncodeMulti, + U: TypeAbiFrom, +{ +} + impl FromIterator for MultiValueEncoded where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs index 16f6714ff0..a31a4d6d02 100644 --- a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs @@ -4,6 +4,7 @@ use crate::{ codec::*, derive::ManagedVecItem, formatter::{FormatByteReceiver, SCDisplay, SCLowerHex}, + proxy_imports::TestTokenIdentifier, types::{ManagedBuffer, ManagedOption, ManagedRef, ManagedType, TokenIdentifier}, }; @@ -213,7 +214,19 @@ impl CodecFrom<&TokenIdentifier> for EgldOrEsdtTokenIdentifier where M: impl CodecFrom<&[u8]> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} impl CodecFrom<&str> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} +impl TypeAbiFrom> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} +impl TypeAbiFrom<&TokenIdentifier> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} +impl<'a, M> TypeAbiFrom> for EgldOrEsdtTokenIdentifier where + M: ManagedTypeApi +{ +} +impl<'a, M> TypeAbiFrom<&TestTokenIdentifier<'a>> for EgldOrEsdtTokenIdentifier where + M: ManagedTypeApi +{ +} + impl TypeAbiFrom for EgldOrEsdtTokenIdentifier {} +impl TypeAbiFrom<&Self> for EgldOrEsdtTokenIdentifier {} impl TypeAbi for EgldOrEsdtTokenIdentifier { fn type_name() -> TypeName { diff --git a/framework/base/src/types/managed/wrapped/managed_address.rs b/framework/base/src/types/managed/wrapped/managed_address.rs index 5ab0941f47..cf5341775d 100644 --- a/framework/base/src/types/managed/wrapped/managed_address.rs +++ b/framework/base/src/types/managed/wrapped/managed_address.rs @@ -235,6 +235,7 @@ where } impl TypeAbiFrom for ManagedAddress where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for ManagedAddress where M: ManagedTypeApi {} impl TypeAbi for ManagedAddress where @@ -274,6 +275,7 @@ impl core::fmt::Debug for ManagedAddress { impl CodecFromSelf for ManagedAddress where M: ManagedTypeApi {} impl CodecFrom<[u8; 32]> for ManagedAddress where M: ManagedTypeApi {} +impl TypeAbiFrom<[u8; 32]> for ManagedAddress where M: ManagedTypeApi {} #[cfg(feature = "alloc")] impl CodecFrom
for ManagedAddress where M: ManagedTypeApi {} @@ -286,3 +288,15 @@ impl CodecFrom> for Address where M: ManagedTypeApi {} #[cfg(feature = "alloc")] impl CodecFrom<&ManagedAddress> for Address where M: ManagedTypeApi {} + +#[cfg(feature = "alloc")] +impl TypeAbiFrom
for ManagedAddress where M: ManagedTypeApi {} + +#[cfg(feature = "alloc")] +impl TypeAbiFrom<&Address> for ManagedAddress where M: ManagedTypeApi {} + +#[cfg(feature = "alloc")] +impl TypeAbiFrom> for Address where M: ManagedTypeApi {} + +#[cfg(feature = "alloc")] +impl TypeAbiFrom<&ManagedAddress> for Address where M: ManagedTypeApi {} diff --git a/framework/base/src/types/managed/wrapped/managed_byte_array.rs b/framework/base/src/types/managed/wrapped/managed_byte_array.rs index 79bc111792..b63064e7a4 100644 --- a/framework/base/src/types/managed/wrapped/managed_byte_array.rs +++ b/framework/base/src/types/managed/wrapped/managed_byte_array.rs @@ -206,6 +206,7 @@ where } impl TypeAbiFrom for ManagedByteArray where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for ManagedByteArray where M: ManagedTypeApi {} impl TypeAbi for ManagedByteArray where diff --git a/framework/base/src/types/managed/wrapped/token_identifier.rs b/framework/base/src/types/managed/wrapped/token_identifier.rs index 8eea09f437..6cb98703cc 100644 --- a/framework/base/src/types/managed/wrapped/token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/token_identifier.rs @@ -169,6 +169,7 @@ impl CodecFrom<&[u8]> for TokenIdentifier where M: ManagedTypeApi {} impl CodecFrom> for TokenIdentifier where M: ManagedTypeApi {} impl TypeAbiFrom for TokenIdentifier {} +impl TypeAbiFrom<&Self> for TokenIdentifier {} impl TypeAbi for TokenIdentifier { fn type_name() -> TypeName { diff --git a/framework/base/src/types/static_buffer/sparse_array.rs b/framework/base/src/types/static_buffer/sparse_array.rs index 9d35219466..2c5a0b6900 100644 --- a/framework/base/src/types/static_buffer/sparse_array.rs +++ b/framework/base/src/types/static_buffer/sparse_array.rs @@ -305,6 +305,7 @@ where } impl TypeAbiFrom for SparseArray where E: ErrorApi {} +impl TypeAbiFrom<&Self> for SparseArray where E: ErrorApi {} impl TypeAbi for SparseArray where diff --git a/framework/derive/src/type_abi_derive.rs b/framework/derive/src/type_abi_derive.rs index 3c95ca3dda..e9e9db4008 100644 --- a/framework/derive/src/type_abi_derive.rs +++ b/framework/derive/src/type_abi_derive.rs @@ -124,6 +124,7 @@ pub fn type_abi_derive(input: proc_macro::TokenStream) -> proc_macro2::TokenStre let (impl_generics, ty_generics, where_clause) = &ast.generics.split_for_impl(); quote! { impl #impl_generics multiversx_sc::abi::TypeAbiFrom for #name #ty_generics #where_clause {} + impl #impl_generics multiversx_sc::abi::TypeAbiFrom<&Self> for #name #ty_generics #where_clause {} impl #impl_generics multiversx_sc::abi::TypeAbi for #name #ty_generics #where_clause { fn type_name() -> multiversx_sc::abi::TypeName { diff --git a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs index 82f37cdfba..59f00e22c7 100644 --- a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs +++ b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs @@ -372,7 +372,7 @@ where fn write_argument(&mut self, index: usize, rust_name: &str) { let adjusted = self.adjust_type_name_with_env_api(rust_name); - self.writeln(format!(" Arg{index}: CodecInto<{adjusted}>,")); + self.writeln(format!(" Arg{index}: ProxyArg<{adjusted}>,")); } fn write_parameters(&mut self, inputs: &[InputAbi]) { diff --git a/framework/scenario/src/facade/expr/bech32_address.rs b/framework/scenario/src/facade/expr/bech32_address.rs index abc9d00cff..4cfa9b2bf5 100644 --- a/framework/scenario/src/facade/expr/bech32_address.rs +++ b/framework/scenario/src/facade/expr/bech32_address.rs @@ -2,6 +2,7 @@ use std::fmt::Display; use crate::bech32; use multiversx_sc::{ + abi::TypeAbiFrom, api::ManagedTypeApi, codec::*, types::{ @@ -180,6 +181,9 @@ impl TopDecode for Bech32Address { impl CodecFrom for ManagedAddress where M: ManagedTypeApi {} impl CodecFrom<&Bech32Address> for ManagedAddress where M: ManagedTypeApi {} +impl TypeAbiFrom for ManagedAddress where M: ManagedTypeApi {} +impl TypeAbiFrom<&Bech32Address> for ManagedAddress where M: ManagedTypeApi {} + impl Serialize for Bech32Address { fn serialize(&self, serializer: S) -> Result where From a6b72556e131e285c6af01c15edb0c05a3a8d05e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 15:53:59 +0300 Subject: [PATCH 114/185] TypeAbiFrom in old proxies --- .../types/managed/multi_value/multi_value_encoded.rs | 7 +++++++ .../managed/wrapped/egld_or_esdt_token_identifier.rs | 4 +++- .../base/src/types/managed/wrapped/token_identifier.rs | 4 +++- framework/derive/src/generate/proxy_gen.rs | 2 +- framework/scenario/src/facade/contract_info.rs | 10 ++++++++-- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs index 6154942fa6..1548f8ebd4 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs @@ -229,6 +229,13 @@ where { } +impl TypeAbiFrom<&Self> for MultiValueEncoded +where + M: ManagedTypeApi, + T: TypeAbi, +{ +} + impl TypeAbi for MultiValueEncoded where M: ManagedTypeApi, diff --git a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs index a31a4d6d02..e8bcf44c05 100644 --- a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs @@ -210,12 +210,14 @@ impl CodecFromSelf for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi { impl CodecFrom> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} impl CodecFrom<&TokenIdentifier> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} - impl CodecFrom<&[u8]> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} impl CodecFrom<&str> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} impl TypeAbiFrom> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} impl TypeAbiFrom<&TokenIdentifier> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} +impl TypeAbiFrom<&[u8]> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} +impl TypeAbiFrom<&str> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} + impl<'a, M> TypeAbiFrom> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi { diff --git a/framework/base/src/types/managed/wrapped/token_identifier.rs b/framework/base/src/types/managed/wrapped/token_identifier.rs index 6cb98703cc..3500fb99eb 100644 --- a/framework/base/src/types/managed/wrapped/token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/token_identifier.rs @@ -165,9 +165,11 @@ impl TopDecode for TokenIdentifier { impl CodecFromSelf for TokenIdentifier where M: ManagedTypeApi {} impl CodecFrom<&[u8]> for TokenIdentifier where M: ManagedTypeApi {} - impl CodecFrom> for TokenIdentifier where M: ManagedTypeApi {} +impl TypeAbiFrom<&[u8]> for TokenIdentifier where M: ManagedTypeApi {} +impl TypeAbiFrom> for TokenIdentifier where M: ManagedTypeApi {} + impl TypeAbiFrom for TokenIdentifier {} impl TypeAbiFrom<&Self> for TokenIdentifier {} diff --git a/framework/derive/src/generate/proxy_gen.rs b/framework/derive/src/generate/proxy_gen.rs index b904c69f20..81b416c009 100644 --- a/framework/derive/src/generate/proxy_gen.rs +++ b/framework/derive/src/generate/proxy_gen.rs @@ -313,7 +313,7 @@ fn equivalent_encode_path_gen(ty: &syn::Type) -> syn::Path { let owned_type = convert_to_owned_type(ty); syn::parse_str( format!( - "multiversx_sc::codec::CodecInto<{}>", + "multiversx_sc::types::ProxyArg<{}>", owned_type.to_token_stream() ) .as_str(), diff --git a/framework/scenario/src/facade/contract_info.rs b/framework/scenario/src/facade/contract_info.rs index 2652732494..d0df35df96 100644 --- a/framework/scenario/src/facade/contract_info.rs +++ b/framework/scenario/src/facade/contract_info.rs @@ -1,7 +1,8 @@ use std::ops::{Deref, DerefMut}; -use multiversx_sc::types::{ - AnnotatedValue, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo, TxToSpecified, +use multiversx_sc::{ + abi::TypeAbiFrom, + types::{AnnotatedValue, ManagedBuffer, TxEnv, TxFrom, TxFromSpecified, TxTo, TxToSpecified}, }; use crate::multiversx_sc::{ @@ -108,6 +109,11 @@ impl CodecFrom<&ContractInfo

> for Address {} impl CodecFrom> for ManagedAddress {} impl CodecFrom<&ContractInfo

> for ManagedAddress {} +impl TypeAbiFrom> for Address {} +impl TypeAbiFrom<&ContractInfo

> for Address {} +impl TypeAbiFrom> for ManagedAddress {} +impl TypeAbiFrom<&ContractInfo

> for ManagedAddress {} + impl AnnotatedValue> for &ContractInfo

where Env: TxEnv, From 99294647807dd709eba277f2d87b51a6216d12eb Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 17:12:12 +0300 Subject: [PATCH 115/185] cleanup --- contracts/examples/rewards-distribution/sc-config.toml | 3 --- framework/base/src/types/managed/basic/big_int.rs | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/examples/rewards-distribution/sc-config.toml b/contracts/examples/rewards-distribution/sc-config.toml index 888d97a79f..9661ab3dc5 100644 --- a/contracts/examples/rewards-distribution/sc-config.toml +++ b/contracts/examples/rewards-distribution/sc-config.toml @@ -1,5 +1,2 @@ [[proxy]] path = "src/rewards_distribution_proxy.rs" -[[proxy.path-rename]] -from = "multiversx_sc::types::io::operation_completion_status::" -to = "" diff --git a/framework/base/src/types/managed/basic/big_int.rs b/framework/base/src/types/managed/basic/big_int.rs index 4d9fca8fe2..6026341975 100644 --- a/framework/base/src/types/managed/basic/big_int.rs +++ b/framework/base/src/types/managed/basic/big_int.rs @@ -102,6 +102,9 @@ macro_rules! big_int_conv_num { impl CodecFrom<$num_ty> for BigInt {} impl CodecFrom<&$num_ty> for BigInt {} + + impl TypeAbiFrom<$num_ty> for BigInt {} + impl TypeAbiFrom<&$num_ty> for BigInt {} }; } From b4acf882baa3623748c5c64d953f64ad3152709e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 17:13:01 +0300 Subject: [PATCH 116/185] proxy gen - type_abi annotation --- .../examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs | 1 + contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs | 1 + contracts/examples/digital-cash/src/digital_cash_proxy.rs | 2 ++ contracts/examples/multisig/src/multisig_proxy.rs | 4 ++++ .../rewards-distribution/src/seed_nft_minter_proxy.rs | 1 + .../meta/src/cmd/contract/generate_proxy/proxy_generator.rs | 1 + 6 files changed, 10 insertions(+) diff --git a/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs b/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs index 08c8d0ef14..a1fe1dddda 100644 --- a/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs +++ b/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs @@ -140,6 +140,7 @@ where } } +#[type_abi] #[derive(TopEncode, TopDecode, PartialEq, Eq, Clone, Copy, Debug)] pub enum Status { FundingPeriod, diff --git a/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs b/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs index 7f490cccbd..1e056fee19 100644 --- a/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs +++ b/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs @@ -272,6 +272,7 @@ where } } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct Zombie where diff --git a/contracts/examples/digital-cash/src/digital_cash_proxy.rs b/contracts/examples/digital-cash/src/digital_cash_proxy.rs index ad7a29fe7e..85e7dc06ae 100644 --- a/contracts/examples/digital-cash/src/digital_cash_proxy.rs +++ b/contracts/examples/digital-cash/src/digital_cash_proxy.rs @@ -236,6 +236,7 @@ where } } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct DepositInfo where @@ -249,6 +250,7 @@ where pub fees: Fee, } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct Fee where diff --git a/contracts/examples/multisig/src/multisig_proxy.rs b/contracts/examples/multisig/src/multisig_proxy.rs index 1d39617160..6f789f298a 100644 --- a/contracts/examples/multisig/src/multisig_proxy.rs +++ b/contracts/examples/multisig/src/multisig_proxy.rs @@ -491,6 +491,7 @@ where } } +#[type_abi] #[derive(TopEncode)] pub struct ActionFullInfo where @@ -502,6 +503,7 @@ where } #[rustfmt::skip] +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, Clone)] pub enum Action where @@ -529,6 +531,7 @@ where }, } +#[type_abi] #[derive(NestedEncode, NestedDecode, Clone)] pub struct CallActionData where @@ -540,6 +543,7 @@ where pub arguments: ManagedVec>, } +#[type_abi] #[derive(TopEncode, TopDecode)] pub enum UserRole { None, diff --git a/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs b/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs index 49186da9ce..84349daae7 100644 --- a/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs +++ b/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs @@ -182,6 +182,7 @@ where } } +#[type_abi] #[derive(ManagedVecItem, NestedEncode, NestedDecode)] pub struct Distribution where diff --git a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs index 59f00e22c7..391f93aaa6 100644 --- a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs +++ b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs @@ -530,6 +530,7 @@ where name: &str, ) { self.writeln(""); + self.writeln("#[type_abi]"); self.write_macro_attributes(&type_description.macro_attributes); self.write(format!(r#"pub {type_type} {name}"#)); From 612f55c4bd391a952c739d8a37cb47e68d1baed8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 18:12:46 +0300 Subject: [PATCH 117/185] TypeAbiFrom in legacy tests/interactor --- framework/base/src/abi/type_abi_impl_basic.rs | 2 +- .../base/src/abi/type_abi_impl_codec_multi.rs | 2 +- .../contract_call_legacy/contract_deploy.rs | 10 ++++--- .../interaction/tx_exec/tx_exec_deploy.rs | 7 +++-- .../src/facade/scenario_world_steps.rs | 28 +++++++++++-------- .../src/scenario/model/step/sc_call_step.rs | 9 ++++-- .../src/scenario/model/step/sc_query_step.rs | 12 ++++---- .../src/scenario/model/step/typed_sc_call.rs | 15 ++++++---- .../scenario/model/step/typed_sc_deploy.rs | 14 ++++++---- .../src/scenario/model/step/typed_sc_query.rs | 10 ++++--- .../scenario/src/scenario/run_vm/sc_call.rs | 5 ++-- .../interactor_sc_extra.rs | 17 +++++------ .../interactor_vm_query.rs | 4 +-- 13 files changed, 78 insertions(+), 57 deletions(-) diff --git a/framework/base/src/abi/type_abi_impl_basic.rs b/framework/base/src/abi/type_abi_impl_basic.rs index 4e93eda28a..2355f18834 100644 --- a/framework/base/src/abi/type_abi_impl_basic.rs +++ b/framework/base/src/abi/type_abi_impl_basic.rs @@ -33,7 +33,7 @@ impl TypeAbi for &T { } } -impl TypeAbiFrom> for U where T: TypeAbiFrom {} +impl TypeAbiFrom> for Box where T: TypeAbiFrom {} impl TypeAbi for Box { fn type_name() -> TypeName { diff --git a/framework/base/src/abi/type_abi_impl_codec_multi.rs b/framework/base/src/abi/type_abi_impl_codec_multi.rs index e347388625..043ff22a9a 100644 --- a/framework/base/src/abi/type_abi_impl_codec_multi.rs +++ b/framework/base/src/abi/type_abi_impl_codec_multi.rs @@ -32,7 +32,7 @@ impl TypeAbi for crate::codec::multi_types::MultiValueVec { } } -impl TypeAbiFrom for IgnoreValue {} +impl TypeAbiFrom for IgnoreValue {} impl TypeAbi for IgnoreValue { fn type_name() -> TypeName { diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs index bdc15e5509..0cb83f408b 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs @@ -1,6 +1,8 @@ use core::marker::PhantomData; -use crate::codec::{CodecFrom, TopEncodeMulti}; +use multiversx_sc_codec::TopDecodeMulti; + +use crate::{abi::TypeAbiFrom, codec::TopEncodeMulti}; use crate::{ api::{BlockchainApiImpl, CallTypeApi}, @@ -101,7 +103,7 @@ where raw_result: ManagedVec>, ) -> RequestedResult where - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let mut loader = ManagedResultArgLoader::new(raw_result); let arg_id = ArgId::from(&b"init result"[..]); @@ -118,7 +120,7 @@ where code_metadata: CodeMetadata, ) -> (ManagedAddress, RequestedResult) where - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let (address, raw_result) = SendRawWrapper::::new().deploy_contract( self.resolve_gas_limit(), @@ -139,7 +141,7 @@ where code_metadata: CodeMetadata, ) -> (ManagedAddress, RequestedResult) where - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let (address, raw_result) = SendRawWrapper::::new().deploy_from_source_contract( self.resolve_gas_limit(), diff --git a/framework/base/src/types/interaction/tx_exec/tx_exec_deploy.rs b/framework/base/src/types/interaction/tx_exec/tx_exec_deploy.rs index 9ccb4bdd2a..ac93f909e8 100644 --- a/framework/base/src/types/interaction/tx_exec/tx_exec_deploy.rs +++ b/framework/base/src/types/interaction/tx_exec/tx_exec_deploy.rs @@ -1,6 +1,7 @@ -use multiversx_sc_codec::{CodecFrom, TopEncodeMulti}; +use multiversx_sc_codec::{TopDecodeMulti, TopEncodeMulti}; use crate::{ + abi::TypeAbiFrom, api::CallTypeApi, contract_base::SendRawWrapper, tuple_util::NestedTupleFlatten, @@ -168,7 +169,7 @@ where code_metadata: CodeMetadata, ) -> (ManagedAddress, RequestedResult) where - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let (new_address, raw_results, _) = self .code(code.clone()) @@ -191,7 +192,7 @@ where code_metadata: CodeMetadata, ) -> (ManagedAddress, RequestedResult) where - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let (new_address, raw_results, _) = self .from_source(source_address.clone()) diff --git a/framework/scenario/src/facade/scenario_world_steps.rs b/framework/scenario/src/facade/scenario_world_steps.rs index 37bc5e88c3..389b58ecf6 100644 --- a/framework/scenario/src/facade/scenario_world_steps.rs +++ b/framework/scenario/src/facade/scenario_world_steps.rs @@ -1,9 +1,13 @@ -use multiversx_sc::types::{heap::Address, ContractCall}; +use multiversx_sc::{ + abi::TypeAbiFrom, + codec::TopDecodeMulti, + types::{heap::Address, ContractCall}, +}; use crate::{ api::StaticApi, facade::ScenarioWorld, - multiversx_sc::codec::{CodecFrom, TopEncodeMulti}, + multiversx_sc::codec::TopEncodeMulti, scenario::{model::*, ScenarioRunner}, }; @@ -47,7 +51,7 @@ impl ScenarioWorld { ) -> &mut Self where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, F: FnOnce(TypedResponse), { self.sc_call_use_raw_response(step, |response| { @@ -62,7 +66,7 @@ impl ScenarioWorld { ) -> RequestedResult where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.run_sc_call_step(&mut step.sc_call_step); let response = unwrap_response(&step.sc_call_step.response); @@ -98,7 +102,7 @@ impl ScenarioWorld { ) -> &mut Self where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, F: FnOnce(TypedResponse), { self.sc_query_use_raw_response(step, |response| { @@ -113,7 +117,7 @@ impl ScenarioWorld { ) -> RequestedResult where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.run_sc_query_step(&mut step.sc_query_step); let response = unwrap_response(&step.sc_query_step.response); @@ -129,7 +133,7 @@ impl ScenarioWorld { pub fn quick_query(&mut self, contract_call: CC) -> RequestedResult where CC: ContractCall, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.sc_query_get_result(ScQueryStep::new().call(contract_call)) } @@ -166,7 +170,7 @@ impl ScenarioWorld { ) -> &mut Self where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, F: FnOnce(Address, TypedResponse), { self.sc_deploy_use_raw_response(step, |response| { @@ -182,7 +186,7 @@ impl ScenarioWorld { ) -> (Address, RequestedResult) where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.run_sc_deploy_step(&mut step.sc_deploy_step); let response = unwrap_response(&step.sc_deploy_step.response); @@ -223,7 +227,7 @@ impl TypedScCallExecutor for ScenarioWorld { ) -> RequestedResult where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.sc_call_get_result(typed_sc_call) } @@ -236,7 +240,7 @@ impl TypedScDeployExecutor for ScenarioWorld { ) -> (Address, RequestedResult) where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.sc_deploy_get_result(typed_sc_call) } @@ -254,7 +258,7 @@ impl TypedScQueryExecutor for ScenarioWorld { ) -> RequestedResult where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.sc_query_get_result(typed_sc_query) } diff --git a/framework/scenario/src/scenario/model/step/sc_call_step.rs b/framework/scenario/src/scenario/model/step/sc_call_step.rs index e971cbaf23..3bcd3d861e 100644 --- a/framework/scenario/src/scenario/model/step/sc_call_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_call_step.rs @@ -1,4 +1,7 @@ -use multiversx_sc::types::{ContractCallBase, H256}; +use multiversx_sc::{ + abi::TypeAbiFrom, + types::{ContractCallBase, H256}, +}; use crate::{ api::StaticApi, @@ -7,7 +10,7 @@ use crate::{ }; use crate::multiversx_sc::{ - codec::{CodecFrom, PanicErrorHandler, TopEncodeMulti}, + codec::{PanicErrorHandler, TopEncodeMulti}, types::{ContractCall, ManagedArgBuffer}, }; @@ -174,7 +177,7 @@ impl ScCallStep { ) -> TypedScCall where CC: ContractCall, - ExpectedResult: CodecFrom + TopEncodeMulti, + ExpectedResult: TypeAbiFrom + TopEncodeMulti, { self.call(contract_call).expect_value(expected_value) } diff --git a/framework/scenario/src/scenario/model/step/sc_query_step.rs b/framework/scenario/src/scenario/model/step/sc_query_step.rs index 8e62ff5473..7a99fd4163 100644 --- a/framework/scenario/src/scenario/model/step/sc_query_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_query_step.rs @@ -1,12 +1,12 @@ -use multiversx_sc::types::{ContractCallBase, H256}; +use multiversx_sc::{ + abi::TypeAbiFrom, + types::{ContractCallBase, H256}, +}; use num_traits::Zero; use crate::{ api::StaticApi, - multiversx_sc::{ - codec::{CodecFrom, TopEncodeMulti}, - types::ContractCall, - }, + multiversx_sc::{codec::TopEncodeMulti, types::ContractCall}, scenario::model::{AddressValue, BytesValue, TxExpect, TxQuery}, scenario_model::TxResponse, }; @@ -96,7 +96,7 @@ impl ScQueryStep { ) -> TypedScQuery where CC: ContractCall, - ExpectedResult: CodecFrom + TopEncodeMulti, + ExpectedResult: TypeAbiFrom + TopEncodeMulti, { let typed = self.call(contract_call); typed.expect_value(expected_value) diff --git a/framework/scenario/src/scenario/model/step/typed_sc_call.rs b/framework/scenario/src/scenario/model/step/typed_sc_call.rs index bf939ee590..084cd3e71f 100644 --- a/framework/scenario/src/scenario/model/step/typed_sc_call.rs +++ b/framework/scenario/src/scenario/model/step/typed_sc_call.rs @@ -1,8 +1,11 @@ use std::marker::PhantomData; -use multiversx_sc::codec::PanicErrorHandler; +use multiversx_sc::{ + abi::TypeAbiFrom, + codec::{PanicErrorHandler, TopDecodeMulti}, +}; -use crate::multiversx_sc::codec::{CodecFrom, TopEncodeMulti}; +use crate::multiversx_sc::codec::TopEncodeMulti; use crate::{ scenario::model::{AddressValue, U64Value}, @@ -22,7 +25,7 @@ impl TypedScCall { pub fn result(&self) -> Result where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let mut raw_result = self.response().out.clone(); Ok( @@ -109,7 +112,7 @@ impl TypedScCall { pub fn expect_value(self, expected_value: ExpectedResult) -> Self where OriginalResult: TopEncodeMulti, - ExpectedResult: CodecFrom + TopEncodeMulti, + ExpectedResult: TypeAbiFrom + TopEncodeMulti, { self.expect(format_expect(expected_value)) } @@ -151,7 +154,7 @@ pub trait TypedScCallExecutor { ) -> RequestedResult where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom; + RequestedResult: TopDecodeMulti + TypeAbiFrom; } impl TypedScCall @@ -164,7 +167,7 @@ where executor: &mut E, ) -> RequestedResult where - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { executor.execute_typed_sc_call(self) } diff --git a/framework/scenario/src/scenario/model/step/typed_sc_deploy.rs b/framework/scenario/src/scenario/model/step/typed_sc_deploy.rs index c440f9bd29..74249e8f97 100644 --- a/framework/scenario/src/scenario/model/step/typed_sc_deploy.rs +++ b/framework/scenario/src/scenario/model/step/typed_sc_deploy.rs @@ -1,11 +1,15 @@ use std::marker::PhantomData; -use multiversx_sc::{codec::PanicErrorHandler, types::ContractDeploy}; +use multiversx_sc::{ + abi::TypeAbiFrom, + codec::{PanicErrorHandler, TopDecodeMulti}, + types::ContractDeploy, +}; use crate::{ api::StaticApi, multiversx_sc::{ - codec::{CodecFrom, TopEncodeMulti}, + codec::TopEncodeMulti, types::{Address, CodeMetadata}, }, scenario_format::interpret_trait::InterpreterContext, @@ -27,7 +31,7 @@ impl TypedScDeploy { pub fn result(&self) -> Result where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let mut raw_result = self.response().out.clone(); Ok( @@ -145,7 +149,7 @@ pub trait TypedScDeployExecutor { ) -> (Address, RequestedResult) where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom; + RequestedResult: TopDecodeMulti + TypeAbiFrom; } impl TypedScDeploy @@ -158,7 +162,7 @@ where executor: &mut E, ) -> (Address, RequestedResult) where - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { executor.execute_typed_sc_deploy(self) } diff --git a/framework/scenario/src/scenario/model/step/typed_sc_query.rs b/framework/scenario/src/scenario/model/step/typed_sc_query.rs index 60b3b91818..3e7e819c4e 100644 --- a/framework/scenario/src/scenario/model/step/typed_sc_query.rs +++ b/framework/scenario/src/scenario/model/step/typed_sc_query.rs @@ -1,6 +1,8 @@ use std::marker::PhantomData; -use crate::multiversx_sc::codec::{CodecFrom, TopEncodeMulti}; +use multiversx_sc::{abi::TypeAbiFrom, codec::TopDecodeMulti}; + +use crate::multiversx_sc::codec::TopEncodeMulti; use crate::{ scenario::model::{AddressValue, BytesValue, TxExpect}, @@ -72,7 +74,7 @@ impl TypedScQuery { pub fn expect_value(self, expected_value: ExpectedResult) -> Self where OriginalResult: TopEncodeMulti, - ExpectedResult: CodecFrom + TopEncodeMulti, + ExpectedResult: TypeAbiFrom + TopEncodeMulti, { self.expect(format_expect(expected_value)) } @@ -105,7 +107,7 @@ pub trait TypedScQueryExecutor { ) -> RequestedResult where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom; + RequestedResult: TopDecodeMulti + TypeAbiFrom; } impl TypedScQuery @@ -118,7 +120,7 @@ where executor: &mut E, ) -> RequestedResult where - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { executor.execute_typed_sc_query(self) } diff --git a/framework/scenario/src/scenario/run_vm/sc_call.rs b/framework/scenario/src/scenario/run_vm/sc_call.rs index abbe9ee6ff..ceb9863478 100644 --- a/framework/scenario/src/scenario/run_vm/sc_call.rs +++ b/framework/scenario/src/scenario/run_vm/sc_call.rs @@ -1,5 +1,5 @@ use crate::{ - multiversx_sc::codec::{CodecFrom, PanicErrorHandler, TopEncodeMulti}, + multiversx_sc::codec::{PanicErrorHandler, TopEncodeMulti}, scenario::model::{ScCallStep, TxESDT, TypedScCall}, scenario_model::TxResponse, }; @@ -8,6 +8,7 @@ use multiversx_chain_vm::{ tx_execution::execute_current_tx_context_input, tx_mock::{TxInput, TxResult, TxTokenTransfer}, }; +use multiversx_sc::{abi::TypeAbiFrom, codec::TopDecodeMulti}; use super::{check_tx_output, tx_input_util::generate_tx_hash, ScenarioVMRunner}; @@ -34,7 +35,7 @@ impl ScenarioVMRunner { ) -> RequestedResult where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let sc_call_step: ScCallStep = typed_sc_call.into(); let tx_result = diff --git a/framework/snippets/src/interactor_scenario/interactor_sc_extra.rs b/framework/snippets/src/interactor_scenario/interactor_sc_extra.rs index 277adcd6e9..8d25f32e9d 100644 --- a/framework/snippets/src/interactor_scenario/interactor_sc_extra.rs +++ b/framework/snippets/src/interactor_scenario/interactor_sc_extra.rs @@ -2,7 +2,8 @@ use crate::Interactor; use multiversx_sc_scenario::{ api::StaticApi, multiversx_sc::{ - codec::{CodecFrom, TopEncodeMulti}, + abi::TypeAbiFrom, + codec::{TopDecodeMulti, TopEncodeMulti}, types::{Address, ContractCallBase}, }, scenario_model::{ @@ -34,7 +35,7 @@ impl Interactor { ) -> &mut Self where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, F: FnOnce(TypedResponse), { use_result(self.sc_call_get_result(step).await); @@ -47,7 +48,7 @@ impl Interactor { ) -> TypedResponse where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.sc_call(step.as_mut()).await; let response = unwrap_response(&step.as_mut().response); @@ -76,7 +77,7 @@ impl Interactor { ) -> &mut Self where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, F: FnOnce(TypedResponse), { use_result(self.sc_query_get_result(step).await); @@ -89,7 +90,7 @@ impl Interactor { ) -> TypedResponse where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.sc_query(step.as_mut()).await; let response = unwrap_response(&step.sc_query_step.response); @@ -99,7 +100,7 @@ impl Interactor { pub async fn quick_query(&mut self, contract_call: CC) -> RequestedResult where CC: ContractCallBase, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { let mut typed_sc_query = ScQueryStep::new().call(contract_call); self.sc_query(&mut typed_sc_query).await; @@ -130,7 +131,7 @@ impl Interactor { ) -> &mut Self where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, F: FnOnce(Address, TypedResponse), { let (new_address, response) = self.sc_deploy_get_result(step).await; @@ -144,7 +145,7 @@ impl Interactor { ) -> (Address, TypedResponse) where OriginalResult: TopEncodeMulti, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.sc_deploy(step.as_mut()).await; let response = unwrap_response(&step.sc_deploy_step.response); diff --git a/framework/snippets/src/interactor_scenario/interactor_vm_query.rs b/framework/snippets/src/interactor_scenario/interactor_vm_query.rs index 56a54961d2..d08c114623 100644 --- a/framework/snippets/src/interactor_scenario/interactor_vm_query.rs +++ b/framework/snippets/src/interactor_scenario/interactor_vm_query.rs @@ -3,7 +3,7 @@ use log::info; use multiversx_sc_scenario::{ api::StaticApi, mandos_system::ScenarioRunner, - multiversx_sc::{codec::CodecFrom, types::ContractCall}, + multiversx_sc::{abi::TypeAbiFrom, codec::TopDecodeMulti, types::ContractCall}, scenario_model::{ScQueryStep, TxResponse}, }; use multiversx_sdk::{data::vm::VmValueRequest, utils::base64_decode}; @@ -50,7 +50,7 @@ impl Interactor { pub async fn vm_query(&mut self, contract_call: CC) -> RequestedResult where CC: ContractCall, - RequestedResult: CodecFrom, + RequestedResult: TopDecodeMulti + TypeAbiFrom, { self.quick_query(contract_call).await } From 81f975c3be455d655aafbd419f58d33c7fd28663 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 18:20:00 +0300 Subject: [PATCH 118/185] TypeAbiFrom in result handlers --- .../result_handlers/returns_result_conv.rs | 13 ++++++------- .../interaction/result_handlers/with_result_conv.rs | 13 ++++++------- .../src/facade/result_handlers/expect_value.rs | 7 ++++--- .../src/facade/world_tx/scenario_rh_impl.rs | 9 ++++----- 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs b/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs index 05f2dfaa3d..842ae01eb8 100644 --- a/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs +++ b/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs @@ -1,9 +1,10 @@ use core::marker::PhantomData; -use multiversx_sc_codec::{CodecFrom, TopEncodeMulti}; +use multiversx_sc_codec::TopDecodeMulti; -use crate::types::{ - interaction::decode_result, RHListItem, RHListItemExec, SyncCallRawResult, TxEnv, +use crate::{ + abi::TypeAbiFrom, + types::{interaction::decode_result, RHListItem, RHListItemExec, SyncCallRawResult, TxEnv}, }; /// Indicates that result will be returned. @@ -30,8 +31,7 @@ impl ReturnsResultAs { impl RHListItem for ReturnsResultAs where Env: TxEnv, - Original: TopEncodeMulti, - T: CodecFrom, + T: TopDecodeMulti + TypeAbiFrom, { type Returns = T; } @@ -40,8 +40,7 @@ impl RHListItemExec, Env, Original for ReturnsResultAs where Env: TxEnv, - Original: TopEncodeMulti, - T: CodecFrom, + T: TopDecodeMulti + TypeAbiFrom, { fn item_process_result(self, raw_result: &SyncCallRawResult) -> Self::Returns { decode_result::(raw_result.0.clone()) diff --git a/framework/base/src/types/interaction/result_handlers/with_result_conv.rs b/framework/base/src/types/interaction/result_handlers/with_result_conv.rs index 263017fe87..c87bd9f36e 100644 --- a/framework/base/src/types/interaction/result_handlers/with_result_conv.rs +++ b/framework/base/src/types/interaction/result_handlers/with_result_conv.rs @@ -1,9 +1,10 @@ use core::marker::PhantomData; -use multiversx_sc_codec::{CodecFrom, TopEncodeMulti}; +use multiversx_sc_codec::TopDecodeMulti; -use crate::types::{ - interaction::decode_result, RHListItem, RHListItemExec, SyncCallRawResult, TxEnv, +use crate::{ + abi::TypeAbiFrom, + types::{interaction::decode_result, RHListItem, RHListItemExec, SyncCallRawResult, TxEnv}, }; /// Defines a lambda function to be called on the decoded result. @@ -32,8 +33,7 @@ where impl RHListItem for WithResultConv where Env: TxEnv, - Original: TopEncodeMulti, - T: CodecFrom, + T: TopDecodeMulti + TypeAbiFrom, F: FnOnce(T), { type Returns = (); @@ -43,8 +43,7 @@ impl RHListItemExec, Env, Origi for WithResultConv where Env: TxEnv, - Original: TopEncodeMulti, - T: CodecFrom, + T: TopDecodeMulti + TypeAbiFrom, F: FnOnce(T), { fn item_process_result(self, raw_result: &SyncCallRawResult) -> Self::Returns { diff --git a/framework/scenario/src/facade/result_handlers/expect_value.rs b/framework/scenario/src/facade/result_handlers/expect_value.rs index 05ebe0f79f..582737cb84 100644 --- a/framework/scenario/src/facade/result_handlers/expect_value.rs +++ b/framework/scenario/src/facade/result_handlers/expect_value.rs @@ -1,5 +1,6 @@ use multiversx_sc::{ - codec::{CodecFrom, TopEncodeMulti}, + abi::TypeAbiFrom, + codec::TopEncodeMulti, types::{RHListItem, RHListItemExec, TxEnv}, }; @@ -14,7 +15,7 @@ impl RHListItem for ExpectValue where Env: TxEnv, T: TopEncodeMulti, - Original: CodecFrom, + Original: TypeAbiFrom, { type Returns = (); } @@ -23,7 +24,7 @@ impl RHListItemExec for ExpectValue where Env: TxEnv, T: TopEncodeMulti, - Original: CodecFrom, + Original: TypeAbiFrom, { fn item_tx_expect(&self, mut prev: TxExpect) -> TxExpect { let mut encoded = Vec::>::new(); diff --git a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs index 343fdc8382..3a4e34ec69 100644 --- a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs +++ b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs @@ -1,5 +1,6 @@ use multiversx_sc::{ - codec::{CodecFrom, TopDecodeMulti, TopEncodeMulti}, + abi::TypeAbiFrom, + codec::TopDecodeMulti, types::{ ManagedAddress, RHListItemExec, ReturnsNewAddress, ReturnsNewManagedAddress, ReturnsResult, ReturnsResultAs, TxEnv, WithNewAddress, WithResultConv, @@ -24,8 +25,7 @@ where impl RHListItemExec for ReturnsResultAs where Env: TxEnv, - Original: TopEncodeMulti, - T: CodecFrom, + T: TopDecodeMulti + TypeAbiFrom, { fn item_process_result(self, tx_response: &TxResponse) -> Self::Returns { let response = TypedResponse::::from_raw(tx_response); @@ -38,8 +38,7 @@ where impl RHListItemExec for WithResultConv where Env: TxEnv, - Original: TopEncodeMulti, - T: CodecFrom, + T: TopDecodeMulti + TypeAbiFrom, F: FnOnce(T), { fn item_process_result(self, tx_response: &TxResponse) -> Self::Returns { From e4fff2c2150b39de12cda31c79cf3572f64b3c27 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 18:30:55 +0300 Subject: [PATCH 119/185] deprecated CodecFrom --- data/codec/src/equivalent/codec_from.rs | 2 ++ data/codec/src/equivalent/codec_into.rs | 1 + data/codec/src/equivalent/mod.rs | 2 ++ data/codec/src/multi_types/mod.rs | 2 ++ framework/scenario/src/facade/contract_info.rs | 2 ++ framework/scenario/src/facade/expr/bech32_address.rs | 2 ++ 6 files changed, 11 insertions(+) diff --git a/data/codec/src/equivalent/codec_from.rs b/data/codec/src/equivalent/codec_from.rs index 27695a56a2..47fe8b801c 100644 --- a/data/codec/src/equivalent/codec_from.rs +++ b/data/codec/src/equivalent/codec_from.rs @@ -1,12 +1,14 @@ use crate::{TopDecodeMulti, TopEncodeMulti}; /// Signals that after serializing `T`, we can safely deserialize it as `Self`. +#[deprecated(since = "0.49.0", note = "Please use method `TypeAbiFrom` instead.")] pub trait CodecFrom: TopDecodeMulti where T: TopEncodeMulti, { } +#[deprecated(since = "0.49.0", note = "Please use method `TypeAbiFrom` instead.")] pub auto trait CodecFromSelf {} impl CodecFrom for T where T: TopEncodeMulti + TopDecodeMulti + CodecFromSelf {} diff --git a/data/codec/src/equivalent/codec_into.rs b/data/codec/src/equivalent/codec_into.rs index 3f4a60cdb2..761b9d35f4 100644 --- a/data/codec/src/equivalent/codec_into.rs +++ b/data/codec/src/equivalent/codec_into.rs @@ -1,6 +1,7 @@ use crate::{CodecFrom, TopDecodeMulti, TopEncodeMulti}; /// Signals that we can safely serialize `Self` in order to obtain a `T` on the other size. +#[deprecated(since = "0.49.0", note = "Please use method `TypeAbiFrom` instead.")] pub trait CodecInto: TopEncodeMulti where T: TopDecodeMulti, diff --git a/data/codec/src/equivalent/mod.rs b/data/codec/src/equivalent/mod.rs index 3715c4a87c..632fef5ae1 100644 --- a/data/codec/src/equivalent/mod.rs +++ b/data/codec/src/equivalent/mod.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + mod codec_convert; mod codec_from; mod codec_into; diff --git a/data/codec/src/multi_types/mod.rs b/data/codec/src/multi_types/mod.rs index 2bb9948b41..0a7ae541c4 100644 --- a/data/codec/src/multi_types/mod.rs +++ b/data/codec/src/multi_types/mod.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // TODO: remove after deleting CodecFrom + mod multi_value_ignore; mod multi_value_optional; mod multi_value_placeholder; diff --git a/framework/scenario/src/facade/contract_info.rs b/framework/scenario/src/facade/contract_info.rs index d0df35df96..e7b4dd0190 100644 --- a/framework/scenario/src/facade/contract_info.rs +++ b/framework/scenario/src/facade/contract_info.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // TODO: remove after deleting CodecFrom + use std::ops::{Deref, DerefMut}; use multiversx_sc::{ diff --git a/framework/scenario/src/facade/expr/bech32_address.rs b/framework/scenario/src/facade/expr/bech32_address.rs index 4cfa9b2bf5..76fca96c86 100644 --- a/framework/scenario/src/facade/expr/bech32_address.rs +++ b/framework/scenario/src/facade/expr/bech32_address.rs @@ -178,7 +178,9 @@ impl TopDecode for Bech32Address { } } +#[allow(deprecated)] impl CodecFrom for ManagedAddress where M: ManagedTypeApi {} +#[allow(deprecated)] impl CodecFrom<&Bech32Address> for ManagedAddress where M: ManagedTypeApi {} impl TypeAbiFrom for ManagedAddress where M: ManagedTypeApi {} From ddcb9b0cd8b91553f9bdeeec53fb2d34f7aec4d2 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 19:21:52 +0300 Subject: [PATCH 120/185] TypeAbi Unmanaged field --- framework/base/src/abi.rs | 3 ++ framework/base/src/abi/type_abi.rs | 2 ++ framework/base/src/abi/type_abi_impl_basic.rs | 30 +++++++++++++++++ .../base/src/abi/type_abi_impl_big_int.rs | 33 +++++++++++++++++++ .../base/src/abi/type_abi_impl_codec_multi.rs | 8 +++++ .../base/src/storage/mappers/bi_di_mapper.rs | 2 ++ .../src/storage/mappers/linked_list_mapper.rs | 2 ++ .../base/src/storage/mappers/map_mapper.rs | 2 ++ .../base/src/storage/mappers/queue_mapper.rs | 2 ++ .../base/src/storage/mappers/set_mapper.rs | 2 ++ .../storage/mappers/single_value_mapper.rs | 2 ++ .../mappers/token/fungible_token_mapper.rs | 2 ++ .../token/non_fungible_token_mapper.rs | 2 ++ .../src/storage/mappers/unique_id_mapper.rs | 2 ++ .../storage/mappers/unordered_set_mapper.rs | 2 ++ .../base/src/storage/mappers/user_mapper.rs | 2 ++ .../base/src/storage/mappers/vec_mapper.rs | 2 ++ .../src/types/crypto/message_hash_type.rs | 2 ++ .../base/src/types/flags/code_metadata.rs | 2 ++ .../base/src/types/heap/async_call_result.rs | 2 ++ framework/base/src/types/heap/boxed_bytes.rs | 2 ++ framework/base/src/types/heap/h256.rs | 2 ++ framework/base/src/types/heap/h256_address.rs | 2 ++ framework/base/src/types/heap/queue.rs | 2 ++ .../types/interaction/managed_arg_buffer.rs | 4 +++ .../interaction/tx_data/function_call.rs | 2 ++ .../types/io/operation_completion_status.rs | 2 ++ framework/base/src/types/io/sc_result.rs | 2 ++ .../base/src/types/managed/basic/big_float.rs | 4 +++ .../base/src/types/managed/basic/big_int.rs | 11 +++++++ .../src/types/managed/basic/big_int_sign.rs | 2 ++ .../base/src/types/managed/basic/big_uint.rs | 10 ++++-- .../src/types/managed/basic/elliptic_curve.rs | 2 ++ .../src/types/managed/basic/managed_buffer.rs | 6 ++-- .../multi_value/async_call_result_managed.rs | 2 ++ .../esdt_token_payment_multi_value.rs | 2 ++ .../multi_value/multi_value_encoded.rs | 2 ++ .../multi_value/multi_value_managed_vec.rs | 2 ++ .../multi_value_managed_vec_counted.rs | 2 ++ .../wrapped/egld_or_esdt_token_identifier.rs | 2 ++ .../types/managed/wrapped/managed_address.rs | 2 ++ .../managed/wrapped/managed_byte_array.rs | 4 +++ .../types/managed/wrapped/managed_option.rs | 2 ++ .../src/types/managed/wrapped/managed_vec.rs | 2 ++ .../types/managed/wrapped/token_identifier.rs | 2 ++ .../src/types/static_buffer/sparse_array.rs | 2 ++ framework/derive/src/type_abi_derive.rs | 2 ++ 47 files changed, 183 insertions(+), 4 deletions(-) create mode 100644 framework/base/src/abi/type_abi_impl_big_int.rs diff --git a/framework/base/src/abi.rs b/framework/base/src/abi.rs index c0002739d7..993518acb2 100644 --- a/framework/base/src/abi.rs +++ b/framework/base/src/abi.rs @@ -10,6 +10,9 @@ mod type_abi_impl_codec_multi; mod type_description; mod type_description_container; +#[cfg(feature = "num-bigint")] +mod type_abi_impl_big_int; + pub use build_info_abi::*; pub use contract_abi::*; pub use endpoint_abi::*; diff --git a/framework/base/src/abi/type_abi.rs b/framework/base/src/abi/type_abi.rs index 18163eb7e7..25d4e92b46 100644 --- a/framework/base/src/abi/type_abi.rs +++ b/framework/base/src/abi/type_abi.rs @@ -9,6 +9,8 @@ use alloc::{format, string::ToString, vec::Vec}; /// /// Will be automatically implemented for struct ad enum types via the `#[type_abi]` annotation. pub trait TypeAbi: TypeAbiFrom { + type Unmanaged: TypeAbiFrom; + fn type_names() -> TypeNames { TypeNames { abi: Self::type_name(), diff --git a/framework/base/src/abi/type_abi_impl_basic.rs b/framework/base/src/abi/type_abi_impl_basic.rs index 2355f18834..f5f5ece466 100644 --- a/framework/base/src/abi/type_abi_impl_basic.rs +++ b/framework/base/src/abi/type_abi_impl_basic.rs @@ -10,6 +10,8 @@ use alloc::{ impl TypeAbiFrom<()> for () {} impl TypeAbi for () { + type Unmanaged = Self; + /// No another exception from the 1-type-1-output-abi rule: /// the unit type produces no output. fn output_abis(_output_names: &[&'static str]) -> OutputAbis { @@ -20,6 +22,8 @@ impl TypeAbi for () { impl TypeAbiFrom<&U> for &T where T: TypeAbiFrom {} impl TypeAbi for &T { + type Unmanaged = Self; + fn type_name() -> TypeName { T::type_name() } @@ -36,6 +40,8 @@ impl TypeAbi for &T { impl TypeAbiFrom> for Box where T: TypeAbiFrom {} impl TypeAbi for Box { + type Unmanaged = Self; + fn type_name() -> TypeName { T::type_name() } @@ -52,6 +58,8 @@ impl TypeAbi for Box { impl TypeAbiFrom<&[T]> for &[U] where T: TypeAbiFrom {} impl TypeAbi for &[T] { + type Unmanaged = Self; + fn type_name() -> TypeName { let t_name = T::type_name(); if t_name == "u8" { @@ -76,6 +84,8 @@ impl TypeAbi for &[T] { impl TypeAbiFrom> for Vec where T: TypeAbiFrom {} impl TypeAbi for Vec { + type Unmanaged = Self; + fn type_name() -> TypeName { <&[T]>::type_name() } @@ -92,6 +102,8 @@ impl TypeAbi for Vec { impl TypeAbiFrom> for ArrayVec {} impl TypeAbi for ArrayVec { + type Unmanaged = Self; + fn type_name() -> TypeName { <&[T]>::type_name() } @@ -108,6 +120,8 @@ impl TypeAbi for ArrayVec { impl TypeAbiFrom> for Box<[T]> {} impl TypeAbi for Box<[T]> { + type Unmanaged = Self; + fn type_name() -> TypeName { <&[T]>::type_name() } @@ -127,6 +141,8 @@ impl TypeAbiFrom<&str> for String {} impl TypeAbiFrom> for String {} impl TypeAbi for String { + type Unmanaged = Self; + fn type_name() -> TypeName { "utf-8 string".into() } @@ -135,6 +151,8 @@ impl TypeAbi for String { impl TypeAbiFrom<&'static str> for &'static str {} impl TypeAbi for &'static str { + type Unmanaged = Self; + fn type_name() -> TypeName { String::type_name() } @@ -149,6 +167,8 @@ impl TypeAbiFrom<&str> for Box {} impl TypeAbiFrom for Box {} impl TypeAbi for Box { + type Unmanaged = Self; + fn type_name() -> TypeName { String::type_name() } @@ -164,6 +184,8 @@ macro_rules! type_abi_name_only { impl TypeAbiFrom<&$ty> for $ty {} impl TypeAbi for $ty { + type Unmanaged = Self; + fn type_name() -> TypeName { TypeName::from($name) } @@ -225,6 +247,8 @@ impl TypeAbiFrom for i16 {} impl TypeAbiFrom> for Option where T: TypeAbiFrom {} impl TypeAbi for Option { + type Unmanaged = Self; + fn type_name() -> TypeName { format!("Option<{}>", T::type_name()) } @@ -241,6 +265,8 @@ impl TypeAbi for Option { impl TypeAbiFrom> for Result where T: TypeAbiFrom {} impl TypeAbi for Result { + type Unmanaged = Self; + fn type_name() -> TypeName { T::type_name() } @@ -275,6 +301,8 @@ macro_rules! tuple_impls { where $($name: TypeAbi,)+ { + type Unmanaged = Self; + fn type_name() -> TypeName { let mut repr = TypeName::from("tuple<"); $( @@ -331,6 +359,8 @@ tuple_impls! { impl TypeAbiFrom<[T; N]> for [U; N] where T: TypeAbiFrom {} impl TypeAbi for [T; N] { + type Unmanaged = Self; + fn type_name() -> TypeName { let mut repr = TypeName::from("array"); repr.push_str(N.to_string().as_str()); diff --git a/framework/base/src/abi/type_abi_impl_big_int.rs b/framework/base/src/abi/type_abi_impl_big_int.rs new file mode 100644 index 0000000000..c3b0e6bccf --- /dev/null +++ b/framework/base/src/abi/type_abi_impl_big_int.rs @@ -0,0 +1,33 @@ +use crate::codec::num_bigint::{BigInt, BigUint}; + +use super::{TypeAbi, TypeAbiFrom, TypeName}; + +impl TypeAbiFrom for BigUint {} +impl TypeAbiFrom<&Self> for BigUint {} + +impl TypeAbi for BigUint { + type Unmanaged = Self; + + fn type_name() -> TypeName { + TypeName::from("BigUint") + } + + fn type_name_rust() -> TypeName { + TypeName::from("num_bigint::BigUint") + } +} + +impl TypeAbiFrom for BigInt {} +impl TypeAbiFrom<&Self> for BigInt {} + +impl TypeAbi for BigInt { + type Unmanaged = Self; + + fn type_name() -> TypeName { + TypeName::from("BigInt") + } + + fn type_name_rust() -> TypeName { + TypeName::from("num_bigint::BigInt") + } +} diff --git a/framework/base/src/abi/type_abi_impl_codec_multi.rs b/framework/base/src/abi/type_abi_impl_codec_multi.rs index 043ff22a9a..e86f7c9614 100644 --- a/framework/base/src/abi/type_abi_impl_codec_multi.rs +++ b/framework/base/src/abi/type_abi_impl_codec_multi.rs @@ -15,6 +15,8 @@ where #[cfg(feature = "alloc")] impl TypeAbi for crate::codec::multi_types::MultiValueVec { + type Unmanaged = Self; + fn type_name() -> TypeName { super::type_name_variadic::() } @@ -35,6 +37,8 @@ impl TypeAbi for crate::codec::multi_types::MultiValueVec { impl TypeAbiFrom for IgnoreValue {} impl TypeAbi for IgnoreValue { + type Unmanaged = Self; + fn type_name() -> TypeName { TypeName::from("ignore") } @@ -51,6 +55,8 @@ impl TypeAbi for IgnoreValue { impl TypeAbiFrom> for OptionalValue where T: TypeAbiFrom {} impl TypeAbi for OptionalValue { + type Unmanaged = Self; + fn type_name() -> TypeName { super::type_name_optional::() } @@ -80,6 +86,8 @@ macro_rules! multi_arg_impls { where $($name: TypeAbi,)+ { + type Unmanaged = Self; + fn type_name() -> TypeName { let mut repr = TypeName::from("multi"); repr.push('<'); diff --git a/framework/base/src/storage/mappers/bi_di_mapper.rs b/framework/base/src/storage/mappers/bi_di_mapper.rs index 1ac77da0ae..4c59caa0ce 100644 --- a/framework/base/src/storage/mappers/bi_di_mapper.rs +++ b/framework/base/src/storage/mappers/bi_di_mapper.rs @@ -345,6 +345,8 @@ where + PartialEq + TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { MultiValueEncoded::>::type_name() } diff --git a/framework/base/src/storage/mappers/linked_list_mapper.rs b/framework/base/src/storage/mappers/linked_list_mapper.rs index 826de864e6..d2d8af3b10 100644 --- a/framework/base/src/storage/mappers/linked_list_mapper.rs +++ b/framework/base/src/storage/mappers/linked_list_mapper.rs @@ -640,6 +640,8 @@ where SA: StorageMapperApi, T: TopEncode + TopDecode + NestedEncode + NestedDecode + Clone + TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::() } diff --git a/framework/base/src/storage/mappers/map_mapper.rs b/framework/base/src/storage/mappers/map_mapper.rs index ab3d0664dc..eda95d8930 100644 --- a/framework/base/src/storage/mappers/map_mapper.rs +++ b/framework/base/src/storage/mappers/map_mapper.rs @@ -572,6 +572,8 @@ where K: TopEncode + TopDecode + NestedEncode + NestedDecode + TypeAbi + 'static, V: TopEncode + TopDecode + TypeAbi + 'static, { + type Unmanaged = Self; + fn type_name() -> TypeName { MultiValueEncoded::>::type_name() } diff --git a/framework/base/src/storage/mappers/queue_mapper.rs b/framework/base/src/storage/mappers/queue_mapper.rs index 80269c9366..a1ba11e2a6 100644 --- a/framework/base/src/storage/mappers/queue_mapper.rs +++ b/framework/base/src/storage/mappers/queue_mapper.rs @@ -545,6 +545,8 @@ where SA: StorageMapperApi, T: TopEncode + TopDecode + TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::() } diff --git a/framework/base/src/storage/mappers/set_mapper.rs b/framework/base/src/storage/mappers/set_mapper.rs index 12c83dbd98..1579f1938e 100644 --- a/framework/base/src/storage/mappers/set_mapper.rs +++ b/framework/base/src/storage/mappers/set_mapper.rs @@ -321,6 +321,8 @@ where SA: StorageMapperApi, T: TopEncode + TopDecode + NestedEncode + NestedDecode + TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::() } diff --git a/framework/base/src/storage/mappers/single_value_mapper.rs b/framework/base/src/storage/mappers/single_value_mapper.rs index 528a988ddf..dfaa41a393 100644 --- a/framework/base/src/storage/mappers/single_value_mapper.rs +++ b/framework/base/src/storage/mappers/single_value_mapper.rs @@ -244,6 +244,8 @@ where SA: StorageMapperApi, T: TopEncode + TopDecode + TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { T::type_name() } diff --git a/framework/base/src/storage/mappers/token/fungible_token_mapper.rs b/framework/base/src/storage/mappers/token/fungible_token_mapper.rs index 309902d02f..6164e919df 100644 --- a/framework/base/src/storage/mappers/token/fungible_token_mapper.rs +++ b/framework/base/src/storage/mappers/token/fungible_token_mapper.rs @@ -286,6 +286,8 @@ impl TypeAbi for FungibleTokenMapper where SA: StorageMapperApi + CallTypeApi, { + type Unmanaged = Self; + fn type_name() -> TypeName { TokenIdentifier::::type_name() } diff --git a/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs b/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs index 3f3c466fea..193c73bc68 100644 --- a/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs +++ b/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs @@ -427,6 +427,8 @@ impl TypeAbi for NonFungibleTokenMapper where SA: StorageMapperApi + CallTypeApi, { + type Unmanaged = Self; + fn type_name() -> TypeName { TokenIdentifier::::type_name() } diff --git a/framework/base/src/storage/mappers/unique_id_mapper.rs b/framework/base/src/storage/mappers/unique_id_mapper.rs index 051bfafd1b..4eb3a7d638 100644 --- a/framework/base/src/storage/mappers/unique_id_mapper.rs +++ b/framework/base/src/storage/mappers/unique_id_mapper.rs @@ -231,6 +231,8 @@ impl TypeAbi for UniqueIdMapper where SA: StorageMapperApi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::() } diff --git a/framework/base/src/storage/mappers/unordered_set_mapper.rs b/framework/base/src/storage/mappers/unordered_set_mapper.rs index 4817b6776e..2b0cf7cac1 100644 --- a/framework/base/src/storage/mappers/unordered_set_mapper.rs +++ b/framework/base/src/storage/mappers/unordered_set_mapper.rs @@ -252,6 +252,8 @@ where SA: StorageMapperApi, T: TopEncode + TopDecode + NestedEncode + NestedDecode + TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::() } diff --git a/framework/base/src/storage/mappers/user_mapper.rs b/framework/base/src/storage/mappers/user_mapper.rs index a2dad255c3..6d511fe567 100644 --- a/framework/base/src/storage/mappers/user_mapper.rs +++ b/framework/base/src/storage/mappers/user_mapper.rs @@ -239,6 +239,8 @@ impl TypeAbi for UserMapper where SA: StorageMapperApi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::>() } diff --git a/framework/base/src/storage/mappers/vec_mapper.rs b/framework/base/src/storage/mappers/vec_mapper.rs index f4468d2957..5bde908ee2 100644 --- a/framework/base/src/storage/mappers/vec_mapper.rs +++ b/framework/base/src/storage/mappers/vec_mapper.rs @@ -371,6 +371,8 @@ where SA: StorageMapperApi, T: TopEncode + TopDecode + TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::() } diff --git a/framework/base/src/types/crypto/message_hash_type.rs b/framework/base/src/types/crypto/message_hash_type.rs index c6cd93d181..209887fdfc 100644 --- a/framework/base/src/types/crypto/message_hash_type.rs +++ b/framework/base/src/types/crypto/message_hash_type.rs @@ -43,6 +43,8 @@ impl From for MessageHashType { impl TypeAbiFrom for MessageHashType {} impl TypeAbi for MessageHashType { + type Unmanaged = Self; + fn type_name() -> TypeName { "MessageHashType".into() } diff --git a/framework/base/src/types/flags/code_metadata.rs b/framework/base/src/types/flags/code_metadata.rs index a360909602..9275e976cf 100644 --- a/framework/base/src/types/flags/code_metadata.rs +++ b/framework/base/src/types/flags/code_metadata.rs @@ -106,6 +106,8 @@ impl TopDecode for CodeMetadata { impl TypeAbiFrom for CodeMetadata {} impl TypeAbi for CodeMetadata { + type Unmanaged = Self; + fn type_name() -> TypeName { "CodeMetadata".into() } diff --git a/framework/base/src/types/heap/async_call_result.rs b/framework/base/src/types/heap/async_call_result.rs index e5def9b718..ab738cba71 100644 --- a/framework/base/src/types/heap/async_call_result.rs +++ b/framework/base/src/types/heap/async_call_result.rs @@ -85,6 +85,8 @@ where impl TypeAbiFrom for AsyncCallResult {} impl TypeAbi for AsyncCallResult { + type Unmanaged = Self; + fn type_name() -> TypeName { let mut repr = TypeName::from("AsyncCallResult<"); repr.push_str(T::type_name().as_str()); diff --git a/framework/base/src/types/heap/boxed_bytes.rs b/framework/base/src/types/heap/boxed_bytes.rs index f29b772a36..338af818c2 100644 --- a/framework/base/src/types/heap/boxed_bytes.rs +++ b/framework/base/src/types/heap/boxed_bytes.rs @@ -243,6 +243,8 @@ impl TopDecode for BoxedBytes { impl TypeAbiFrom for BoxedBytes {} impl TypeAbi for BoxedBytes { + type Unmanaged = Self; + fn type_name() -> TypeName { "bytes".into() } diff --git a/framework/base/src/types/heap/h256.rs b/framework/base/src/types/heap/h256.rs index c7c20b26c3..f440765d00 100644 --- a/framework/base/src/types/heap/h256.rs +++ b/framework/base/src/types/heap/h256.rs @@ -227,6 +227,8 @@ impl TopDecode for H256 { impl TypeAbiFrom for H256 {} impl TypeAbi for H256 { + type Unmanaged = Self; + fn type_name() -> TypeName { "H256".into() } diff --git a/framework/base/src/types/heap/h256_address.rs b/framework/base/src/types/heap/h256_address.rs index 0eed2a0ede..a9fa69c2e7 100644 --- a/framework/base/src/types/heap/h256_address.rs +++ b/framework/base/src/types/heap/h256_address.rs @@ -205,6 +205,8 @@ impl TopDecode for Address { impl TypeAbiFrom for Address {} impl TypeAbi for Address { + type Unmanaged = Self; + fn type_name() -> TypeName { "Address".into() } diff --git a/framework/base/src/types/heap/queue.rs b/framework/base/src/types/heap/queue.rs index 8cdb66c8b1..cbb0b03d58 100644 --- a/framework/base/src/types/heap/queue.rs +++ b/framework/base/src/types/heap/queue.rs @@ -139,6 +139,8 @@ impl TopDecode for Queue { impl TypeAbiFrom for Queue {} impl TypeAbi for Queue { + type Unmanaged = Self; + fn type_name() -> TypeName { let mut repr = TypeName::from("Queue<"); repr.push_str(T::type_name().as_str()); diff --git a/framework/base/src/types/interaction/managed_arg_buffer.rs b/framework/base/src/types/interaction/managed_arg_buffer.rs index e3ca9c67e5..342f1c0d3d 100644 --- a/framework/base/src/types/interaction/managed_arg_buffer.rs +++ b/framework/base/src/types/interaction/managed_arg_buffer.rs @@ -299,6 +299,8 @@ where } } +impl TypeAbiFrom> for ArgBuffer where M: ManagedTypeApi {} + impl TypeAbiFrom for ManagedArgBuffer where M: ManagedTypeApi {} impl TypeAbiFrom<&Self> for ManagedArgBuffer where M: ManagedTypeApi {} @@ -306,6 +308,8 @@ impl TypeAbi for ManagedArgBuffer where M: ManagedTypeApi, { + type Unmanaged = ArgBuffer; + /// It is semantically equivalent to any list of `T`. fn type_name() -> TypeName { <&[ManagedBuffer] as TypeAbi>::type_name() diff --git a/framework/base/src/types/interaction/tx_data/function_call.rs b/framework/base/src/types/interaction/tx_data/function_call.rs index 2f110040fd..7ebf20dd1a 100644 --- a/framework/base/src/types/interaction/tx_data/function_call.rs +++ b/framework/base/src/types/interaction/tx_data/function_call.rs @@ -142,6 +142,8 @@ impl TypeAbi for FunctionCall where Api: ManagedTypeApi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::>() } diff --git a/framework/base/src/types/io/operation_completion_status.rs b/framework/base/src/types/io/operation_completion_status.rs index 125674ec30..b1da830356 100644 --- a/framework/base/src/types/io/operation_completion_status.rs +++ b/framework/base/src/types/io/operation_completion_status.rs @@ -84,6 +84,8 @@ impl TypeAbiFrom for crate::types::heap::Vec {} impl TypeAbiFrom for OperationCompletionStatus {} impl TypeAbi for OperationCompletionStatus { + type Unmanaged = Self; + fn type_name() -> TypeName { TypeName::from("OperationCompletionStatus") } diff --git a/framework/base/src/types/io/sc_result.rs b/framework/base/src/types/io/sc_result.rs index fcad33270a..0557cd9f94 100644 --- a/framework/base/src/types/io/sc_result.rs +++ b/framework/base/src/types/io/sc_result.rs @@ -135,6 +135,8 @@ where impl TypeAbiFrom for SCResult {} impl TypeAbi for SCResult { + type Unmanaged = Self; + fn type_name() -> TypeName { T::type_name() } diff --git a/framework/base/src/types/managed/basic/big_float.rs b/framework/base/src/types/managed/basic/big_float.rs index 0bc2980e35..dd8a04b080 100644 --- a/framework/base/src/types/managed/basic/big_float.rs +++ b/framework/base/src/types/managed/basic/big_float.rs @@ -286,10 +286,14 @@ impl NestedDecode for BigFloat { } } +impl TypeAbiFrom> for f64 where M: ManagedTypeApi {} + impl TypeAbiFrom for BigFloat where M: ManagedTypeApi {} impl TypeAbiFrom<&Self> for BigFloat where M: ManagedTypeApi {} impl TypeAbi for BigFloat { + type Unmanaged = f64; + fn type_name() -> String { String::from("BigFloat") } diff --git a/framework/base/src/types/managed/basic/big_int.rs b/framework/base/src/types/managed/basic/big_int.rs index 6026341975..b73fbab6fa 100644 --- a/framework/base/src/types/managed/basic/big_int.rs +++ b/framework/base/src/types/managed/basic/big_int.rs @@ -302,10 +302,21 @@ impl TopDecode for BigInt { } } +#[cfg(feature = "num-bigint")] +impl TypeAbiFrom for BigInt {} +#[cfg(feature = "num-bigint")] +impl TypeAbiFrom> for crate::codec::num_bigint::BigInt {} + impl TypeAbiFrom for BigInt where M: ManagedTypeApi {} impl TypeAbiFrom<&Self> for BigInt where M: ManagedTypeApi {} impl crate::abi::TypeAbi for BigInt { + #[cfg(feature = "num-bigint")] + type Unmanaged = crate::codec::num_bigint::BigInt; + + #[cfg(not(feature = "num-bigint"))] + type Unmanaged = Self; + fn type_name() -> TypeName { TypeName::from("BigInt") } diff --git a/framework/base/src/types/managed/basic/big_int_sign.rs b/framework/base/src/types/managed/basic/big_int_sign.rs index 0ed8cabbc2..178e55f981 100644 --- a/framework/base/src/types/managed/basic/big_int_sign.rs +++ b/framework/base/src/types/managed/basic/big_int_sign.rs @@ -82,6 +82,8 @@ impl TopDecode for Sign { impl TypeAbiFrom for Sign {} impl TypeAbi for Sign { + type Unmanaged = Self; + fn type_name() -> TypeName { TypeName::from("Sign") } diff --git a/framework/base/src/types/managed/basic/big_uint.rs b/framework/base/src/types/managed/basic/big_uint.rs index 2766a42f1d..34a6c6df23 100644 --- a/framework/base/src/types/managed/basic/big_uint.rs +++ b/framework/base/src/types/managed/basic/big_uint.rs @@ -1,7 +1,7 @@ use core::convert::TryInto; use crate::{ - abi::{TypeAbiFrom, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::{ const_handles, use_raw_handle, BigIntApiImpl, HandleConstraints, ManagedBufferApiImpl, ManagedTypeApi, ManagedTypeApiImpl, RawHandle, StaticVarApiImpl, @@ -296,7 +296,13 @@ impl TopDecode for BigUint { impl TypeAbiFrom for BigUint where M: ManagedTypeApi {} impl TypeAbiFrom<&Self> for BigUint where M: ManagedTypeApi {} -impl crate::abi::TypeAbi for BigUint { +impl TypeAbi for BigUint { + #[cfg(feature = "num-bigint")] + type Unmanaged = crate::codec::num_bigint::BigUint; + + #[cfg(not(feature = "num-bigint"))] + type Unmanaged = Self; + fn type_name() -> TypeName { TypeName::from("BigUint") } diff --git a/framework/base/src/types/managed/basic/elliptic_curve.rs b/framework/base/src/types/managed/basic/elliptic_curve.rs index 9359ecfce3..8c6d66990f 100644 --- a/framework/base/src/types/managed/basic/elliptic_curve.rs +++ b/framework/base/src/types/managed/basic/elliptic_curve.rs @@ -421,6 +421,8 @@ impl TopEncode for EllipticCurve { impl TypeAbiFrom for EllipticCurve where M: ManagedTypeApi {} impl TypeAbi for EllipticCurve { + type Unmanaged = Self; + fn type_name() -> TypeName { TypeName::from("EllipticCurve") } diff --git a/framework/base/src/types/managed/basic/managed_buffer.rs b/framework/base/src/types/managed/basic/managed_buffer.rs index 5d2b975b4a..358444c445 100644 --- a/framework/base/src/types/managed/basic/managed_buffer.rs +++ b/framework/base/src/types/managed/basic/managed_buffer.rs @@ -1,5 +1,5 @@ use crate::{ - abi::{TypeAbiFrom, TypeName}, + abi::{TypeAbi, TypeAbiFrom, TypeName}, api::{ use_raw_handle, ErrorApiImpl, HandleConstraints, InvalidSliceError, ManagedBufferApiImpl, ManagedTypeApi, StaticVarApiImpl, @@ -473,7 +473,9 @@ impl TopDecode for ManagedBuffer { impl TypeAbiFrom for ManagedBuffer where M: ManagedTypeApi {} impl TypeAbiFrom<&Self> for ManagedBuffer where M: ManagedTypeApi {} -impl crate::abi::TypeAbi for ManagedBuffer { +impl TypeAbi for ManagedBuffer { + type Unmanaged = multiversx_sc_codec::Vec; + fn type_name() -> TypeName { "bytes".into() } diff --git a/framework/base/src/types/managed/multi_value/async_call_result_managed.rs b/framework/base/src/types/managed/multi_value/async_call_result_managed.rs index b8b37e20da..afa978f429 100644 --- a/framework/base/src/types/managed/multi_value/async_call_result_managed.rs +++ b/framework/base/src/types/managed/multi_value/async_call_result_managed.rs @@ -109,6 +109,8 @@ where M: ManagedTypeApi, T: TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { let mut repr = TypeName::from("AsyncCallResult<"); repr.push_str(T::type_name().as_str()); diff --git a/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs b/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs index 11c81faaaa..d9b312f45b 100644 --- a/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs +++ b/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs @@ -107,6 +107,8 @@ impl TypeAbi for EsdtTokenPaymentMultiValue where M: ManagedTypeApi, { + type Unmanaged = Self; + fn type_name() -> TypeName { MultiValue3::, u64, BigUint>::type_name() } diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs index 1548f8ebd4..42567e7ae3 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs @@ -241,6 +241,8 @@ where M: ManagedTypeApi, T: TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::() } diff --git a/framework/base/src/types/managed/multi_value/multi_value_managed_vec.rs b/framework/base/src/types/managed/multi_value/multi_value_managed_vec.rs index 7bae85617e..a7f1337080 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_managed_vec.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_managed_vec.rs @@ -222,6 +222,8 @@ where M: ManagedTypeApi, T: ManagedVecItem, { + type Unmanaged = Self; + fn type_name() -> TypeName { crate::abi::type_name_variadic::() } diff --git a/framework/base/src/types/managed/multi_value/multi_value_managed_vec_counted.rs b/framework/base/src/types/managed/multi_value/multi_value_managed_vec_counted.rs index 74e71e7960..60ffb780ee 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_managed_vec_counted.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_managed_vec_counted.rs @@ -138,6 +138,8 @@ where M: ManagedTypeApi, T: ManagedVecItem + TypeAbi, { + type Unmanaged = Self; + fn type_name() -> TypeName { let mut repr = TypeName::from("counted-variadic<"); repr.push_str(T::type_name().as_str()); diff --git a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs index e8bcf44c05..8fa90f8186 100644 --- a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs @@ -231,6 +231,8 @@ impl TypeAbiFrom for EgldOrEsdtTokenIdentifier {} impl TypeAbiFrom<&Self> for EgldOrEsdtTokenIdentifier {} impl TypeAbi for EgldOrEsdtTokenIdentifier { + type Unmanaged = Self; + fn type_name() -> TypeName { "EgldOrEsdtTokenIdentifier".into() } diff --git a/framework/base/src/types/managed/wrapped/managed_address.rs b/framework/base/src/types/managed/wrapped/managed_address.rs index cf5341775d..f3136a3bd9 100644 --- a/framework/base/src/types/managed/wrapped/managed_address.rs +++ b/framework/base/src/types/managed/wrapped/managed_address.rs @@ -241,6 +241,8 @@ impl TypeAbi for ManagedAddress where M: ManagedTypeApi, { + type Unmanaged = Address; + /// `"Address"` instead of `"array32"`. fn type_name() -> TypeName { Address::type_name() diff --git a/framework/base/src/types/managed/wrapped/managed_byte_array.rs b/framework/base/src/types/managed/wrapped/managed_byte_array.rs index b63064e7a4..83e95d332c 100644 --- a/framework/base/src/types/managed/wrapped/managed_byte_array.rs +++ b/framework/base/src/types/managed/wrapped/managed_byte_array.rs @@ -205,6 +205,8 @@ where } } +impl TypeAbiFrom> for [u8; N] where M: ManagedTypeApi {} + impl TypeAbiFrom for ManagedByteArray where M: ManagedTypeApi {} impl TypeAbiFrom<&Self> for ManagedByteArray where M: ManagedTypeApi {} @@ -212,6 +214,8 @@ impl TypeAbi for ManagedByteArray where M: ManagedTypeApi, { + type Unmanaged = [u8; N]; + /// It is semantically equivalent to `[u8; N]`. fn type_name() -> TypeName { <[u8; N] as TypeAbi>::type_name() diff --git a/framework/base/src/types/managed/wrapped/managed_option.rs b/framework/base/src/types/managed/wrapped/managed_option.rs index b7bafe4055..a34a4f7ab3 100644 --- a/framework/base/src/types/managed/wrapped/managed_option.rs +++ b/framework/base/src/types/managed/wrapped/managed_option.rs @@ -300,6 +300,8 @@ where M: ManagedTypeApi, T: ManagedType + TypeAbi, { + type Unmanaged = Option; + /// It is semantically equivalent to any list of `T`. fn type_name() -> TypeName { Option::::type_name() diff --git a/framework/base/src/types/managed/wrapped/managed_vec.rs b/framework/base/src/types/managed/wrapped/managed_vec.rs index 3897ff2604..8ba9b1d355 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec.rs @@ -706,6 +706,8 @@ where M: ManagedTypeApi, T: ManagedVecItem + TypeAbi, { + type Unmanaged = Vec; + /// It is semantically equivalent to any list of `T`. fn type_name() -> TypeName { <&[T] as TypeAbi>::type_name() diff --git a/framework/base/src/types/managed/wrapped/token_identifier.rs b/framework/base/src/types/managed/wrapped/token_identifier.rs index 3500fb99eb..f4c978b0d1 100644 --- a/framework/base/src/types/managed/wrapped/token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/token_identifier.rs @@ -174,6 +174,8 @@ impl TypeAbiFrom for TokenIdentifier {} impl TypeAbiFrom<&Self> for TokenIdentifier {} impl TypeAbi for TokenIdentifier { + type Unmanaged = Self; + fn type_name() -> TypeName { "TokenIdentifier".into() } diff --git a/framework/base/src/types/static_buffer/sparse_array.rs b/framework/base/src/types/static_buffer/sparse_array.rs index 2c5a0b6900..bb3a083243 100644 --- a/framework/base/src/types/static_buffer/sparse_array.rs +++ b/framework/base/src/types/static_buffer/sparse_array.rs @@ -311,6 +311,8 @@ impl TypeAbi for SparseArray where E: ErrorApi, { + type Unmanaged = Self; + /// It is semantically equivalent to any list of `usize`. fn type_name() -> TypeName { <&[usize] as TypeAbi>::type_name() diff --git a/framework/derive/src/type_abi_derive.rs b/framework/derive/src/type_abi_derive.rs index e9e9db4008..8c70b56af8 100644 --- a/framework/derive/src/type_abi_derive.rs +++ b/framework/derive/src/type_abi_derive.rs @@ -127,6 +127,8 @@ pub fn type_abi_derive(input: proc_macro::TokenStream) -> proc_macro2::TokenStre impl #impl_generics multiversx_sc::abi::TypeAbiFrom<&Self> for #name #ty_generics #where_clause {} impl #impl_generics multiversx_sc::abi::TypeAbi for #name #ty_generics #where_clause { + type Unmanaged = Self; + fn type_name() -> multiversx_sc::abi::TypeName { #name_str.into() } From fabc1e99ba51cdbf221e010249b0e54a0fff20d8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 19:48:56 +0300 Subject: [PATCH 121/185] ReturnsResultUnmanaged result handler --- .../adder/interact/src/basic_interact.rs | 2 +- .../scenario-tester/tests/st_blackbox_test.rs | 5 ++-- .../src/types/interaction/result_handlers.rs | 6 ++-- ...ns_result_conv.rs => returns_result_as.rs} | 0 .../returns_result_unmanaged.rs | 30 +++++++++++++++++++ .../src/facade/world_tx/scenario_rh_impl.rs | 18 +++++++++-- 6 files changed, 53 insertions(+), 8 deletions(-) rename framework/base/src/types/interaction/result_handlers/{returns_result_conv.rs => returns_result_as.rs} (100%) create mode 100644 framework/base/src/types/interaction/result_handlers/returns_result_unmanaged.rs diff --git a/contracts/examples/adder/interact/src/basic_interact.rs b/contracts/examples/adder/interact/src/basic_interact.rs index b0c38bb4bb..363f7efde2 100644 --- a/contracts/examples/adder/interact/src/basic_interact.rs +++ b/contracts/examples/adder/interact/src/basic_interact.rs @@ -152,7 +152,7 @@ impl AdderInteract { .to(self.state.current_adder_address()) .typed(adder_proxy::AdderProxy) .sum() - .returns(ReturnsResultAs::::new()) + .returns(ReturnsResultUnmanaged) .prepare_async() .run() .await; diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 75d8448c3b..72e580081f 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -1,5 +1,4 @@ use multiversx_sc_scenario::imports::*; -use num_bigint::BigUint; use scenario_tester::*; @@ -66,9 +65,9 @@ fn st_blackbox() { .to(ST_ADDRESS) .typed(scenario_tester_proxy::ScenarioTesterProxy) .sum() - .returns(ReturnsResultAs::::new()) + .returns(ReturnsResultUnmanaged) .run(); - assert_eq!(value, BigUint::from(5u32)); + assert_eq!(value, RustBigUint::from(5u32)); world .tx() diff --git a/framework/base/src/types/interaction/result_handlers.rs b/framework/base/src/types/interaction/result_handlers.rs index ed43a292df..3f0d2b0cee 100644 --- a/framework/base/src/types/interaction/result_handlers.rs +++ b/framework/base/src/types/interaction/result_handlers.rs @@ -3,7 +3,8 @@ mod returns_new_address; mod returns_new_managed_address; mod returns_raw_result; mod returns_result; -mod returns_result_conv; +mod returns_result_as; +mod returns_result_unmanaged; mod with_new_address; mod with_raw_result; mod with_result; @@ -14,7 +15,8 @@ pub use returns_new_address::*; pub use returns_new_managed_address::*; pub use returns_raw_result::*; pub use returns_result::*; -pub use returns_result_conv::*; +pub use returns_result_as::*; +pub use returns_result_unmanaged::ReturnsResultUnmanaged; pub use with_new_address::*; pub use with_raw_result::WithRawResult; pub use with_result::WithResult; diff --git a/framework/base/src/types/interaction/result_handlers/returns_result_conv.rs b/framework/base/src/types/interaction/result_handlers/returns_result_as.rs similarity index 100% rename from framework/base/src/types/interaction/result_handlers/returns_result_conv.rs rename to framework/base/src/types/interaction/result_handlers/returns_result_as.rs diff --git a/framework/base/src/types/interaction/result_handlers/returns_result_unmanaged.rs b/framework/base/src/types/interaction/result_handlers/returns_result_unmanaged.rs new file mode 100644 index 0000000000..4785aef50a --- /dev/null +++ b/framework/base/src/types/interaction/result_handlers/returns_result_unmanaged.rs @@ -0,0 +1,30 @@ +use multiversx_sc_codec::TopDecodeMulti; + +use crate::{ + abi::TypeAbi, + types::{interaction::decode_result, RHListItem, RHListItemExec, SyncCallRawResult, TxEnv}, +}; + +/// Indicates that the unmanaged version of the result will be returned. +pub struct ReturnsResultUnmanaged; + +impl RHListItem for ReturnsResultUnmanaged +where + Env: TxEnv, + Original: TypeAbi, + Original::Unmanaged: TopDecodeMulti, +{ + type Returns = Original::Unmanaged; +} + +impl RHListItemExec, Env, Original> + for ReturnsResultUnmanaged +where + Env: TxEnv, + Original: TypeAbi, + Original::Unmanaged: TopDecodeMulti, +{ + fn item_process_result(self, raw_result: &SyncCallRawResult) -> Self::Returns { + decode_result::(raw_result.0.clone()) + } +} diff --git a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs index 3a4e34ec69..46cedf3743 100644 --- a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs +++ b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs @@ -1,9 +1,9 @@ use multiversx_sc::{ - abi::TypeAbiFrom, + abi::{TypeAbi, TypeAbiFrom}, codec::TopDecodeMulti, types::{ ManagedAddress, RHListItemExec, ReturnsNewAddress, ReturnsNewManagedAddress, ReturnsResult, - ReturnsResultAs, TxEnv, WithNewAddress, WithResultConv, + ReturnsResultAs, ReturnsResultUnmanaged, TxEnv, WithNewAddress, WithResultConv, }, }; @@ -35,6 +35,20 @@ where } } +impl RHListItemExec for ReturnsResultUnmanaged +where + Env: TxEnv, + Original: TypeAbi, + Original::Unmanaged: TopDecodeMulti, +{ + fn item_process_result(self, tx_response: &TxResponse) -> Self::Returns { + let response = TypedResponse::::from_raw(tx_response); + response + .result + .expect("ReturnsResultUnmanaged expects that transaction is successful") + } +} + impl RHListItemExec for WithResultConv where Env: TxEnv, From e3945e08f27a3be2b72e66ee3ea7eebd956ec4dc Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Sat, 4 May 2024 20:00:11 +0300 Subject: [PATCH 122/185] build fix --- framework/base/src/types/managed/wrapped/managed_address.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/framework/base/src/types/managed/wrapped/managed_address.rs b/framework/base/src/types/managed/wrapped/managed_address.rs index f3136a3bd9..318e5940ce 100644 --- a/framework/base/src/types/managed/wrapped/managed_address.rs +++ b/framework/base/src/types/managed/wrapped/managed_address.rs @@ -241,7 +241,11 @@ impl TypeAbi for ManagedAddress where M: ManagedTypeApi, { - type Unmanaged = Address; + #[cfg(feature = "alloc")] + type Unmanaged = crate::types::heap::Address; + + #[cfg(not(feature = "alloc"))] + type Unmanaged = Self; /// `"Address"` instead of `"array32"`. fn type_name() -> TypeName { From 01c54bcf922fc12f5cab8450d1941bd4506c885f Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 09:43:42 +0300 Subject: [PATCH 123/185] cleanup --- data/codec/src/equivalent/codec_from.rs | 4 ++-- data/codec/src/equivalent/codec_into.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/codec/src/equivalent/codec_from.rs b/data/codec/src/equivalent/codec_from.rs index 47fe8b801c..f6fc1ffda2 100644 --- a/data/codec/src/equivalent/codec_from.rs +++ b/data/codec/src/equivalent/codec_from.rs @@ -1,14 +1,14 @@ use crate::{TopDecodeMulti, TopEncodeMulti}; /// Signals that after serializing `T`, we can safely deserialize it as `Self`. -#[deprecated(since = "0.49.0", note = "Please use method `TypeAbiFrom` instead.")] +#[deprecated(since = "0.49.0", note = "Please use trait `TypeAbiFrom` instead.")] pub trait CodecFrom: TopDecodeMulti where T: TopEncodeMulti, { } -#[deprecated(since = "0.49.0", note = "Please use method `TypeAbiFrom` instead.")] +#[deprecated(since = "0.49.0", note = "Please use trait `TypeAbiFrom` instead.")] pub auto trait CodecFromSelf {} impl CodecFrom for T where T: TopEncodeMulti + TopDecodeMulti + CodecFromSelf {} diff --git a/data/codec/src/equivalent/codec_into.rs b/data/codec/src/equivalent/codec_into.rs index 761b9d35f4..06013c41bb 100644 --- a/data/codec/src/equivalent/codec_into.rs +++ b/data/codec/src/equivalent/codec_into.rs @@ -1,7 +1,7 @@ use crate::{CodecFrom, TopDecodeMulti, TopEncodeMulti}; /// Signals that we can safely serialize `Self` in order to obtain a `T` on the other size. -#[deprecated(since = "0.49.0", note = "Please use method `TypeAbiFrom` instead.")] +#[deprecated(since = "0.49.0", note = "Please use trait `TypeAbiFrom` instead.")] pub trait CodecInto: TopEncodeMulti where T: TopDecodeMulti, From 282c021f97316f95bd3f39e1d068673c2fc157c3 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 7 May 2024 12:05:14 +0300 Subject: [PATCH 124/185] increase code coverage - add rust type for EsdtTokenType --- .../composability/forwarder/sc-config.toml | 3 --- .../base/src/types/flags/esdt_token_type.rs | 19 +++++++++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/contracts/feature-tests/composability/forwarder/sc-config.toml b/contracts/feature-tests/composability/forwarder/sc-config.toml index b12e3401e6..b78f0086a5 100644 --- a/contracts/feature-tests/composability/forwarder/sc-config.toml +++ b/contracts/feature-tests/composability/forwarder/sc-config.toml @@ -1,5 +1,2 @@ [[proxy]] path = "src/forwarder_proxy.rs" -[[proxy.path-rename]] -from = "multiversx_sc::types::flags::esdt_token_type::" -to = "" diff --git a/framework/base/src/types/flags/esdt_token_type.rs b/framework/base/src/types/flags/esdt_token_type.rs index 1993fd1cfa..d644f41333 100644 --- a/framework/base/src/types/flags/esdt_token_type.rs +++ b/framework/base/src/types/flags/esdt_token_type.rs @@ -1,8 +1,11 @@ use multiversx_sc_derive::ManagedVecItem; use crate::{ - codec, - codec::derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, + abi::{TypeAbi, TypeName}, + codec::{ + self, + derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, + }, }; const ESDT_TYPE_FUNGIBLE: &[u8] = b"FungibleESDT"; @@ -12,11 +15,9 @@ const ESDT_TYPE_META: &[u8] = b"MetaESDT"; const ESDT_TYPE_INVALID: &[u8] = &[]; use crate as multiversx_sc; // needed by the TypeAbi generated code -use crate::derive::type_abi; // Note: In the current implementation, SemiFungible is never returned -#[type_abi] #[derive( TopDecode, TopEncode, NestedDecode, NestedEncode, Clone, PartialEq, Eq, Debug, ManagedVecItem, )] @@ -87,3 +88,13 @@ impl<'a> From<&'a [u8]> for EsdtTokenType { } } } + +impl TypeAbi for EsdtTokenType { + fn type_name() -> TypeName { + "EsdtTokenType".into() + } + + fn type_name_rust() -> TypeName { + "EsdtTokenType".into() + } +} From 1c81db7af7b72d1044502a8f1f42f5ce418bce5b Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 7 May 2024 12:45:23 +0300 Subject: [PATCH 125/185] increase code coverage - fix test --- .../base/src/types/flags/esdt_token_type.rs | 22 +++++-------------- .../generate_proxy/proxy_generator.rs | 1 + 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/framework/base/src/types/flags/esdt_token_type.rs b/framework/base/src/types/flags/esdt_token_type.rs index d644f41333..e80b91590d 100644 --- a/framework/base/src/types/flags/esdt_token_type.rs +++ b/framework/base/src/types/flags/esdt_token_type.rs @@ -1,11 +1,8 @@ -use multiversx_sc_derive::ManagedVecItem; +use multiversx_sc_derive::{type_abi, ManagedVecItem}; -use crate::{ - abi::{TypeAbi, TypeName}, - codec::{ - self, - derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, - }, +use crate::codec::{ + self, + derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, }; const ESDT_TYPE_FUNGIBLE: &[u8] = b"FungibleESDT"; @@ -18,6 +15,7 @@ use crate as multiversx_sc; // needed by the TypeAbi generated code // Note: In the current implementation, SemiFungible is never returned +#[type_abi] #[derive( TopDecode, TopEncode, NestedDecode, NestedEncode, Clone, PartialEq, Eq, Debug, ManagedVecItem, )] @@ -88,13 +86,3 @@ impl<'a> From<&'a [u8]> for EsdtTokenType { } } } - -impl TypeAbi for EsdtTokenType { - fn type_name() -> TypeName { - "EsdtTokenType".into() - } - - fn type_name_rust() -> TypeName { - "EsdtTokenType".into() - } -} diff --git a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs index 82f37cdfba..e74035371e 100644 --- a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs +++ b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs @@ -36,6 +36,7 @@ const TYPES_FROM_FRAMEWORK: &[&str] = &[ "EgldOrMultiEsdtPayment", "EsdtTokenData", "EsdtLocalRole", + "EsdtTokenType" ]; pub struct ProxyGenerator<'a> { From d00322615bacb3077a9e7150b5fe38dbd81057a0 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 7 May 2024 13:00:20 +0300 Subject: [PATCH 126/185] increase code coverage - remove depricated CodecInto from proxy --- .../forwarder/src/forwarder_proxy.rs | 302 +++++++++--------- 1 file changed, 151 insertions(+), 151 deletions(-) diff --git a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs index 4d0f3f7bdd..77b959106e 100644 --- a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs +++ b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs @@ -62,8 +62,8 @@ where Gas: TxGas, { pub fn send_egld< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, to: Arg0, @@ -77,8 +77,8 @@ where } pub fn echo_arguments_sync< - Arg0: CodecInto>, - Arg1: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, >( self, to: Arg0, @@ -92,8 +92,8 @@ where } pub fn echo_arguments_sync_twice< - Arg0: CodecInto>, - Arg1: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, >( self, to: Arg0, @@ -107,7 +107,7 @@ where } pub fn forward_sync_accept_funds< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, to: Arg0, @@ -119,8 +119,8 @@ where } pub fn forward_sync_accept_funds_with_fees< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, to: Arg0, @@ -134,7 +134,7 @@ where } pub fn forward_sync_accept_funds_then_read< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, to: Arg0, @@ -146,10 +146,10 @@ where } pub fn forward_sync_retrieve_funds< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, + Arg3: ProxyArg>, >( self, to: Arg0, @@ -167,9 +167,9 @@ where } pub fn forward_sync_retrieve_funds_with_accept_func< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, to: Arg0, @@ -193,8 +193,8 @@ where } pub fn forward_sync_accept_funds_multi_transfer< - Arg0: CodecInto>, - Arg1: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg>, + Arg1: ProxyArg, u64, BigUint>>>, >( self, to: Arg0, @@ -208,8 +208,8 @@ where } pub fn echo_args_async< - Arg0: CodecInto>, - Arg1: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, >( self, to: Arg0, @@ -223,7 +223,7 @@ where } pub fn forward_async_accept_funds< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, to: Arg0, @@ -235,7 +235,7 @@ where } pub fn forward_async_accept_funds_half_payment< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, to: Arg0, @@ -247,8 +247,8 @@ where } pub fn forward_async_accept_funds_with_fees< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, to: Arg0, @@ -262,10 +262,10 @@ where } pub fn forward_async_retrieve_funds< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, + Arg3: ProxyArg>, >( self, to: Arg0, @@ -283,9 +283,9 @@ where } pub fn send_funds_twice< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, to: Arg0, @@ -301,8 +301,8 @@ where } pub fn send_async_accept_multi_transfer< - Arg0: CodecInto>, - Arg1: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg>, + Arg1: ProxyArg, u64, BigUint>>>, >( self, to: Arg0, @@ -324,7 +324,7 @@ where } pub fn callback_data_at_index< - Arg0: CodecInto, + Arg0: ProxyArg, >( self, index: Arg0, @@ -344,7 +344,7 @@ where } pub fn forward_transf_exec_accept_funds< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, to: Arg0, @@ -356,8 +356,8 @@ where } pub fn forward_transf_execu_accept_funds_with_fees< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, to: Arg0, @@ -371,7 +371,7 @@ where } pub fn forward_transf_exec_accept_funds_twice< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, to: Arg0, @@ -385,7 +385,7 @@ where /// Test that the default gas provided to the transfer_execute call /// leaves enough in the transaction for finish to happen. pub fn forward_transf_exec_accept_funds_return_values< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, to: Arg0, @@ -397,8 +397,8 @@ where } pub fn transf_exec_multi_accept_funds< - Arg0: CodecInto>, - Arg1: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg>, + Arg1: ProxyArg, u64, BigUint>>>, >( self, to: Arg0, @@ -412,8 +412,8 @@ where } pub fn forward_transf_exec_reject_funds_multi_transfer< - Arg0: CodecInto>, - Arg1: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg>, + Arg1: ProxyArg, u64, BigUint>>>, >( self, to: Arg0, @@ -427,8 +427,8 @@ where } pub fn transf_exec_multi_reject_funds< - Arg0: CodecInto>, - Arg1: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg>, + Arg1: ProxyArg, u64, BigUint>>>, >( self, to: Arg0, @@ -442,8 +442,8 @@ where } pub fn change_owner< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, child_sc_address: Arg0, @@ -457,8 +457,8 @@ where } pub fn deploy_contract< - Arg0: CodecInto>, - Arg1: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, >( self, code: Arg0, @@ -472,7 +472,7 @@ where } pub fn deploy_two_contracts< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, code: Arg0, @@ -484,8 +484,8 @@ where } pub fn deploy_vault_from_source< - Arg0: CodecInto>, - Arg1: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>>, >( self, source_address: Arg0, @@ -499,9 +499,9 @@ where } pub fn upgrade_vault< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>>, >( self, child_sc_address: Arg0, @@ -517,9 +517,9 @@ where } pub fn upgrade_vault_from_source< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>>, >( self, child_sc_address: Arg0, @@ -535,7 +535,7 @@ where } pub fn get_fungible_esdt_balance< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, token_identifier: Arg0, @@ -547,7 +547,7 @@ where } pub fn get_current_nft_nonce< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, token_identifier: Arg0, @@ -559,9 +559,9 @@ where } pub fn send_esdt< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, to: Arg0, @@ -577,8 +577,8 @@ where } pub fn send_esdt_with_fees< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, to: Arg0, @@ -592,10 +592,10 @@ where } pub fn send_esdt_twice< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg>, >( self, to: Arg0, @@ -613,8 +613,8 @@ where } pub fn send_esdt_direct_multi_transfer< - Arg0: CodecInto>, - Arg1: CodecInto, u64, BigUint>>>, + Arg0: ProxyArg>, + Arg1: ProxyArg, u64, BigUint>>>, >( self, to: Arg0, @@ -628,9 +628,9 @@ where } pub fn issue_fungible_token< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, token_display_name: Arg0, @@ -646,8 +646,8 @@ where } pub fn local_mint< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, token_identifier: Arg0, @@ -661,8 +661,8 @@ where } pub fn local_burn< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, token_identifier: Arg0, @@ -676,7 +676,7 @@ where } pub fn get_esdt_local_roles< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, token_id: Arg0, @@ -688,9 +688,9 @@ where } pub fn get_esdt_token_data< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, address: Arg0, @@ -706,9 +706,9 @@ where } pub fn is_esdt_frozen< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, address: Arg0, @@ -724,7 +724,7 @@ where } pub fn is_esdt_paused< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, token_id: Arg0, @@ -736,7 +736,7 @@ where } pub fn is_esdt_limited_transfer< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, token_id: Arg0, @@ -748,7 +748,7 @@ where } pub fn validate_token_identifier< - Arg0: CodecInto>, + Arg0: ProxyArg>, >( self, token_id: Arg0, @@ -760,8 +760,8 @@ where } pub fn sft_issue< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, token_display_name: Arg0, @@ -775,8 +775,8 @@ where } pub fn get_nft_balance< - Arg0: CodecInto>, - Arg1: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, >( self, token_identifier: Arg0, @@ -790,9 +790,9 @@ where } pub fn buy_nft< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>, >( self, nft_id: Arg0, @@ -808,8 +808,8 @@ where } pub fn nft_issue< - Arg0: CodecInto>, - Arg1: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, >( self, token_display_name: Arg0, @@ -823,13 +823,13 @@ where } pub fn nft_create< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto>, - Arg4: CodecInto>, - Arg5: CodecInto, - Arg6: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg>, + Arg4: ProxyArg>, + Arg5: ProxyArg, + Arg6: ProxyArg>, >( self, token_identifier: Arg0, @@ -853,9 +853,9 @@ where } pub fn nft_create_compact< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, >( self, token_identifier: Arg0, @@ -871,9 +871,9 @@ where } pub fn nft_add_uris< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>>, >( self, token_identifier: Arg0, @@ -889,9 +889,9 @@ where } pub fn nft_update_attributes< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg, >( self, token_identifier: Arg0, @@ -907,13 +907,13 @@ where } pub fn nft_decode_complex_attributes< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto>, - Arg4: CodecInto>, - Arg5: CodecInto>, - Arg6: CodecInto, ManagedBuffer, TokenIdentifier, bool, ManagedBuffer>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg>, + Arg4: ProxyArg>, + Arg5: ProxyArg>, + Arg6: ProxyArg, ManagedBuffer, TokenIdentifier, bool, ManagedBuffer>>, >( self, token_identifier: Arg0, @@ -937,9 +937,9 @@ where } pub fn nft_add_quantity< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>, >( self, token_identifier: Arg0, @@ -955,9 +955,9 @@ where } pub fn nft_burn< - Arg0: CodecInto>, - Arg1: CodecInto, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg, + Arg2: ProxyArg>, >( self, token_identifier: Arg0, @@ -973,10 +973,10 @@ where } pub fn transfer_nft_via_async_call< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, + Arg3: ProxyArg>, >( self, to: Arg0, @@ -994,12 +994,12 @@ where } pub fn transfer_nft_and_execute< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto, - Arg3: CodecInto>, - Arg4: CodecInto>, - Arg5: CodecInto>>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg, + Arg3: ProxyArg>, + Arg4: ProxyArg>, + Arg5: ProxyArg>>, >( self, to: Arg0, @@ -1021,14 +1021,14 @@ where } pub fn create_and_send< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, - Arg3: CodecInto>, - Arg4: CodecInto>, - Arg5: CodecInto>, - Arg6: CodecInto, - Arg7: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, + Arg3: ProxyArg>, + Arg4: ProxyArg>, + Arg5: ProxyArg>, + Arg6: ProxyArg, + Arg7: ProxyArg>, >( self, to: Arg0, @@ -1054,9 +1054,9 @@ where } pub fn set_local_roles< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, address: Arg0, @@ -1072,9 +1072,9 @@ where } pub fn unset_local_roles< - Arg0: CodecInto>, - Arg1: CodecInto>, - Arg2: CodecInto>, + Arg0: ProxyArg>, + Arg1: ProxyArg>, + Arg2: ProxyArg>, >( self, address: Arg0, From 58f37e3e9a64e9351ada3e918077676033a93128 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 7 May 2024 13:16:25 +0300 Subject: [PATCH 127/185] increase code coverage - add type abi in forwarder proxy --- .../composability/forwarder/src/forwarder_proxy.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs index 77b959106e..c5e53db05d 100644 --- a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs +++ b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs @@ -1106,6 +1106,7 @@ where } } +#[type_abi] #[derive(TopEncode, TopDecode)] pub struct CallbackData where @@ -1118,6 +1119,7 @@ where pub args: ManagedVec>, } +#[type_abi] #[derive(TopEncode, TopDecode, Clone, Copy, PartialEq, Debug)] pub struct Color { pub r: u8, From 13823a9f3c8b0ee8a5a83b635e916a618118de50 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 13:39:16 +0300 Subject: [PATCH 128/185] deprecated older non-unified syntax --- .../tests/linked_list_repeat_blackbox_test.rs | 2 + .../interact/src/bf_interact.rs | 2 + .../interact/src/comp_interact_main.rs | 1 + .../tests/forwarder_blackbox_legacy_test.rs | 2 + .../tests/promises_feature_blackbox_test.rs | 2 + .../tests/transfer_role_blackbox_test.rs | 2 + .../tests/tester_blackbox_test.rs | 2 + .../src/facade/scenario_world_steps.rs | 38 +++++++++++++++++ framework/scenario/src/imports.rs | 2 +- .../src/scenario/model/step/sc_call_step.rs | 12 ++++-- .../src/scenario/model/step/typed_sc_call.rs | 14 +++++++ .../scenario/src/scenario/run_vm/sc_call.rs | 9 +++- .../interactor_sc_extra.rs | 42 +++++++++++++++++++ .../interactor_vm_query.rs | 2 + 14 files changed, 125 insertions(+), 7 deletions(-) diff --git a/contracts/benchmarks/mappers/linked-list-repeat/tests/linked_list_repeat_blackbox_test.rs b/contracts/benchmarks/mappers/linked-list-repeat/tests/linked_list_repeat_blackbox_test.rs index 12fde7ba31..bd5a4198e3 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/tests/linked_list_repeat_blackbox_test.rs +++ b/contracts/benchmarks/mappers/linked-list-repeat/tests/linked_list_repeat_blackbox_test.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // TODO: unified syntax + use benchmark_common::ExampleStruct; use linked_list_repeat::ProxyTrait; use multiversx_sc_scenario::imports::*; diff --git a/contracts/feature-tests/basic-features/interact/src/bf_interact.rs b/contracts/feature-tests/basic-features/interact/src/bf_interact.rs index acc8b90715..e02d281120 100644 --- a/contracts/feature-tests/basic-features/interact/src/bf_interact.rs +++ b/contracts/feature-tests/basic-features/interact/src/bf_interact.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // TODO: unified syntax + mod bf_interact_cli; mod bf_interact_config; mod bf_interact_state; diff --git a/contracts/feature-tests/composability/interact/src/comp_interact_main.rs b/contracts/feature-tests/composability/interact/src/comp_interact_main.rs index cefa9272f2..9f4a6d6872 100644 --- a/contracts/feature-tests/composability/interact/src/comp_interact_main.rs +++ b/contracts/feature-tests/composability/interact/src/comp_interact_main.rs @@ -1,4 +1,5 @@ #![allow(clippy::too_many_arguments)] +#![allow(deprecated)] // TODO: switch to unified syntax mod call_tree; mod call_tree_calling_functions; diff --git a/contracts/feature-tests/composability/tests/forwarder_blackbox_legacy_test.rs b/contracts/feature-tests/composability/tests/forwarder_blackbox_legacy_test.rs index 9620e12277..cc13982a2d 100644 --- a/contracts/feature-tests/composability/tests/forwarder_blackbox_legacy_test.rs +++ b/contracts/feature-tests/composability/tests/forwarder_blackbox_legacy_test.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use forwarder_legacy::nft_legacy::{Color, ProxyTrait as _}; use multiversx_sc_scenario::{ diff --git a/contracts/feature-tests/composability/tests/promises_feature_blackbox_test.rs b/contracts/feature-tests/composability/tests/promises_feature_blackbox_test.rs index e29ff1c7ca..180cb1c508 100644 --- a/contracts/feature-tests/composability/tests/promises_feature_blackbox_test.rs +++ b/contracts/feature-tests/composability/tests/promises_feature_blackbox_test.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // TODO: unified syntax + use multiversx_sc::types::BigUint; use multiversx_sc_scenario::imports::*; diff --git a/contracts/feature-tests/composability/transfer-role-features/tests/transfer_role_blackbox_test.rs b/contracts/feature-tests/composability/transfer-role-features/tests/transfer_role_blackbox_test.rs index 2428a9a6bc..a1588759d6 100644 --- a/contracts/feature-tests/composability/transfer-role-features/tests/transfer_role_blackbox_test.rs +++ b/contracts/feature-tests/composability/transfer-role-features/tests/transfer_role_blackbox_test.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] // TODO: unified syntax + use multiversx_sc_scenario::imports::*; use transfer_role_features::ProxyTrait as _; diff --git a/contracts/feature-tests/rust-testing-framework-tester/tests/tester_blackbox_test.rs b/contracts/feature-tests/rust-testing-framework-tester/tests/tester_blackbox_test.rs index d927b1ba4a..b47c83fcef 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/tests/tester_blackbox_test.rs +++ b/contracts/feature-tests/rust-testing-framework-tester/tests/tester_blackbox_test.rs @@ -16,6 +16,7 @@ fn world() -> ScenarioWorld { } #[test] +#[allow(deprecated)] fn tester_deploy_test() { let mut world = world(); let code = world.code_expression(WASM_PATH_EXPR); @@ -45,6 +46,7 @@ fn tester_deploy_test() { } #[test] +#[allow(deprecated)] fn tester_deploy_test_spawned_thread() { let handler = std::thread::spawn(|| { let mut world = world(); diff --git a/framework/scenario/src/facade/scenario_world_steps.rs b/framework/scenario/src/facade/scenario_world_steps.rs index 389b58ecf6..7f786d9e65 100644 --- a/framework/scenario/src/facade/scenario_world_steps.rs +++ b/framework/scenario/src/facade/scenario_world_steps.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use multiversx_sc::{ abi::TypeAbiFrom, codec::TopDecodeMulti, @@ -33,6 +35,10 @@ impl ScenarioWorld { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_call_use_raw_response(&mut self, mut step: S, use_raw_response: F) -> &mut Self where S: AsMut, @@ -44,6 +50,10 @@ impl ScenarioWorld { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_call_use_result( &mut self, step: TypedScCall, @@ -60,6 +70,10 @@ impl ScenarioWorld { }) } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_call_get_result( &mut self, mut step: TypedScCall, @@ -83,6 +97,10 @@ impl ScenarioWorld { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_query_use_raw_response(&mut self, mut step: S, use_raw_response: F) -> &mut Self where S: AsMut, @@ -95,6 +113,10 @@ impl ScenarioWorld { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_query_use_result( &mut self, step: TypedScQuery, @@ -111,6 +133,10 @@ impl ScenarioWorld { }) } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_query_get_result( &mut self, mut step: TypedScQuery, @@ -147,6 +173,10 @@ impl ScenarioWorld { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_deploy_use_raw_response( &mut self, mut step: S, @@ -163,6 +193,10 @@ impl ScenarioWorld { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_deploy_use_result( &mut self, step: TypedScDeploy, @@ -180,6 +214,10 @@ impl ScenarioWorld { }) } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub fn sc_deploy_get_result( &mut self, mut step: TypedScDeploy, diff --git a/framework/scenario/src/imports.rs b/framework/scenario/src/imports.rs index aa30283dc3..9eac89fc70 100644 --- a/framework/scenario/src/imports.rs +++ b/framework/scenario/src/imports.rs @@ -15,7 +15,7 @@ pub use crate::{ model::{ Account, AddressValue, BytesValue, CheckAccount, CheckStateStep, ScCallStep, ScDeployStep, ScQueryStep, Scenario, SetStateStep, TransferStep, TxESDT, TxExpect, - TypedResponse, TypedScCall, TypedScDeploy, + TypedResponse, TypedScDeploy, }, ScenarioRunner, }, diff --git a/framework/scenario/src/scenario/model/step/sc_call_step.rs b/framework/scenario/src/scenario/model/step/sc_call_step.rs index 3bcd3d861e..55de65f4a4 100644 --- a/framework/scenario/src/scenario/model/step/sc_call_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_call_step.rs @@ -14,8 +14,6 @@ use crate::multiversx_sc::{ types::{ContractCall, ManagedArgBuffer}, }; -use super::TypedScCall; - #[derive(Debug, Clone)] pub struct ScCallStep { pub id: String, @@ -139,7 +137,12 @@ impl ScCallStep { /// - "to" /// - "function" /// - "arguments" - pub fn call(mut self, contract_call: CC) -> TypedScCall + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] + #[allow(deprecated)] + pub fn call(mut self, contract_call: CC) -> super::TypedScCall where CC: ContractCallBase, { @@ -170,11 +173,12 @@ impl ScCallStep { since = "0.42.0", note = "Please use `call` followed by `expect`, there is no point in having a method that does both." )] + #[allow(deprecated)] pub fn call_expect( self, contract_call: CC, expected_value: ExpectedResult, - ) -> TypedScCall + ) -> super::TypedScCall where CC: ContractCall, ExpectedResult: TypeAbiFrom + TopEncodeMulti, diff --git a/framework/scenario/src/scenario/model/step/typed_sc_call.rs b/framework/scenario/src/scenario/model/step/typed_sc_call.rs index 084cd3e71f..e70e00aa64 100644 --- a/framework/scenario/src/scenario/model/step/typed_sc_call.rs +++ b/framework/scenario/src/scenario/model/step/typed_sc_call.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use std::marker::PhantomData; use multiversx_sc::{ @@ -15,6 +17,10 @@ use crate::{ use super::{format_expect, ScCallStep}; /// `SCCallStep` with explicit return type. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] #[derive(Default, Debug)] pub struct TypedScCall { pub sc_call_step: ScCallStep, @@ -147,7 +153,15 @@ impl From for TypedScCall { /// Helps with syntax. Allows the `TypedScCall` to call the `execute` operation directly. /// /// The trait defines the connection to the executor. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] pub trait TypedScCallExecutor { + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] fn execute_typed_sc_call( &mut self, typed_sc_call: TypedScCall, diff --git a/framework/scenario/src/scenario/run_vm/sc_call.rs b/framework/scenario/src/scenario/run_vm/sc_call.rs index ceb9863478..0a66578eaf 100644 --- a/framework/scenario/src/scenario/run_vm/sc_call.rs +++ b/framework/scenario/src/scenario/run_vm/sc_call.rs @@ -1,6 +1,6 @@ use crate::{ multiversx_sc::codec::{PanicErrorHandler, TopEncodeMulti}, - scenario::model::{ScCallStep, TxESDT, TypedScCall}, + scenario::model::{ScCallStep, TxESDT}, scenario_model::TxResponse, }; @@ -29,9 +29,14 @@ impl ScenarioVMRunner { /// /// It takes the `contract_call` argument separately from the SC call step, /// so we can benefit from type inference in the result. + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] + #[allow(deprecated)] pub fn perform_sc_call_get_result( &mut self, - typed_sc_call: TypedScCall, + typed_sc_call: crate::scenario_model::TypedScCall, ) -> RequestedResult where OriginalResult: TopEncodeMulti, diff --git a/framework/snippets/src/interactor_scenario/interactor_sc_extra.rs b/framework/snippets/src/interactor_scenario/interactor_sc_extra.rs index 8d25f32e9d..44e5efa744 100644 --- a/framework/snippets/src/interactor_scenario/interactor_sc_extra.rs +++ b/framework/snippets/src/interactor_scenario/interactor_sc_extra.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use crate::Interactor; use multiversx_sc_scenario::{ api::StaticApi, @@ -13,6 +15,10 @@ use multiversx_sc_scenario::{ }; impl Interactor { + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_call_use_raw_response( &mut self, mut step: S, @@ -28,6 +34,10 @@ impl Interactor { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_call_use_result( &mut self, step: TypedScCall, @@ -42,6 +52,10 @@ impl Interactor { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_call_get_result( &mut self, mut step: TypedScCall, @@ -55,6 +69,10 @@ impl Interactor { TypedResponse::from_raw(response) } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_query_use_raw_response( &mut self, mut step: S, @@ -70,6 +88,10 @@ impl Interactor { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_query_use_result( &mut self, step: TypedScQuery, @@ -84,6 +106,10 @@ impl Interactor { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_query_get_result( &mut self, mut step: TypedScQuery, @@ -97,6 +123,10 @@ impl Interactor { TypedResponse::from_raw(response) } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn quick_query(&mut self, contract_call: CC) -> RequestedResult where CC: ContractCallBase, @@ -109,6 +139,10 @@ impl Interactor { typed_response.result.unwrap() } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_deploy_use_raw_response( &mut self, mut step: S, @@ -124,6 +158,10 @@ impl Interactor { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_deploy_use_result( &mut self, step: TypedScDeploy, @@ -139,6 +177,10 @@ impl Interactor { self } + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] pub async fn sc_deploy_get_result( &mut self, mut step: TypedScDeploy, diff --git a/framework/snippets/src/interactor_scenario/interactor_vm_query.rs b/framework/snippets/src/interactor_scenario/interactor_vm_query.rs index d08c114623..15de064d95 100644 --- a/framework/snippets/src/interactor_scenario/interactor_vm_query.rs +++ b/framework/snippets/src/interactor_scenario/interactor_vm_query.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use crate::{address_h256_to_erdrs, Interactor}; use log::info; use multiversx_sc_scenario::{ From 933f88d10e7651fb87c45dfd8c105147f853127d Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 13:50:47 +0300 Subject: [PATCH 129/185] renamed WithResultConv -> WithResultAs --- .../scenario-tester/tests/st_blackbox_chained_test.rs | 2 +- .../base/src/types/interaction/result_handlers.rs | 4 ++-- .../{with_result_conv.rs => with_result_as.rs} | 10 +++++----- .../scenario/src/facade/world_tx/scenario_rh_impl.rs | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) rename framework/base/src/types/interaction/result_handlers/{with_result_conv.rs => with_result_as.rs} (89%) diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs index 439dc586de..71b8a982c5 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_chained_test.rs @@ -39,7 +39,7 @@ fn st_blackbox_chained() { tx.to(TestSCAddress::new("adder")) .typed(scenario_tester_proxy::ScenarioTesterProxy) .sum() - .with_result(WithResultConv::new(|value: BigUint| { + .with_result(WithResultAs::new(|value: BigUint| { assert_eq!(value, BigUint::from(5u32)); })) }) diff --git a/framework/base/src/types/interaction/result_handlers.rs b/framework/base/src/types/interaction/result_handlers.rs index 3f0d2b0cee..f8faf2fe95 100644 --- a/framework/base/src/types/interaction/result_handlers.rs +++ b/framework/base/src/types/interaction/result_handlers.rs @@ -8,7 +8,7 @@ mod returns_result_unmanaged; mod with_new_address; mod with_raw_result; mod with_result; -mod with_result_conv; +mod with_result_as; pub use returns_bt::*; pub use returns_new_address::*; @@ -20,7 +20,7 @@ pub use returns_result_unmanaged::ReturnsResultUnmanaged; pub use with_new_address::*; pub use with_raw_result::WithRawResult; pub use with_result::WithResult; -pub use with_result_conv::*; +pub use with_result_as::*; use super::TxEnv; diff --git a/framework/base/src/types/interaction/result_handlers/with_result_conv.rs b/framework/base/src/types/interaction/result_handlers/with_result_as.rs similarity index 89% rename from framework/base/src/types/interaction/result_handlers/with_result_conv.rs rename to framework/base/src/types/interaction/result_handlers/with_result_as.rs index c87bd9f36e..4a2aed8f35 100644 --- a/framework/base/src/types/interaction/result_handlers/with_result_conv.rs +++ b/framework/base/src/types/interaction/result_handlers/with_result_as.rs @@ -10,7 +10,7 @@ use crate::{ /// Defines a lambda function to be called on the decoded result. /// /// Value will be converted to type `T`, which should be compatible with the original type. -pub struct WithResultConv +pub struct WithResultAs where F: FnOnce(T), { @@ -18,19 +18,19 @@ where pub f: F, } -impl WithResultConv +impl WithResultAs where F: FnOnce(T), { pub fn new(f: F) -> Self { - WithResultConv { + WithResultAs { _phantom: PhantomData, f, } } } -impl RHListItem for WithResultConv +impl RHListItem for WithResultAs where Env: TxEnv, T: TopDecodeMulti + TypeAbiFrom, @@ -40,7 +40,7 @@ where } impl RHListItemExec, Env, Original> - for WithResultConv + for WithResultAs where Env: TxEnv, T: TopDecodeMulti + TypeAbiFrom, diff --git a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs index 46cedf3743..1aaaedae9f 100644 --- a/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs +++ b/framework/scenario/src/facade/world_tx/scenario_rh_impl.rs @@ -3,7 +3,7 @@ use multiversx_sc::{ codec::TopDecodeMulti, types::{ ManagedAddress, RHListItemExec, ReturnsNewAddress, ReturnsNewManagedAddress, ReturnsResult, - ReturnsResultAs, ReturnsResultUnmanaged, TxEnv, WithNewAddress, WithResultConv, + ReturnsResultAs, ReturnsResultUnmanaged, TxEnv, WithNewAddress, WithResultAs, }, }; @@ -49,7 +49,7 @@ where } } -impl RHListItemExec for WithResultConv +impl RHListItemExec for WithResultAs where Env: TxEnv, T: TopDecodeMulti + TypeAbiFrom, From b98ee2c3390b6b59b4d8592163ffd50c187de3e9 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 14:03:05 +0300 Subject: [PATCH 130/185] deprecated legacy ContractCall --- .../forwarder/src/forwarder_main.rs | 2 +- .../contract_call_legacy/async_call.rs | 5 +++++ .../contract_call_legacy/async_call_promises.rs | 4 ++++ .../contract_call_no_payment.rs | 4 ++++ .../contract_call_with_any_payment.rs | 4 ++++ .../contract_call_with_egld.rs | 4 ++++ .../contract_call_with_egld_or_single_esdt.rs | 4 ++++ .../contract_call_with_multi_esdt.rs | 4 ++++ .../contract_call_legacy/contract_deploy.rs | 4 ++++ .../contract/generate_proxy/proxy_generator.rs | 2 +- .../src/scenario/model/step/sc_call_step.rs | 1 + .../src/scenario/model/step/sc_deploy_step.rs | 16 +++++++++++++--- .../src/scenario/model/step/typed_sc_deploy.rs | 15 +++++++++++---- .../src/scenario/model/transaction/tx_call.rs | 11 ++++++++--- framework/scenario/tests/contract_call_test.rs | 1 + .../scenario/tests/contract_without_macros.rs | 1 + .../interactor_scenario/interactor_sc_call.rs | 7 +++++-- 17 files changed, 75 insertions(+), 14 deletions(-) diff --git a/contracts/feature-tests/composability/forwarder/src/forwarder_main.rs b/contracts/feature-tests/composability/forwarder/src/forwarder_main.rs index 7ded2d1957..1344c66be5 100644 --- a/contracts/feature-tests/composability/forwarder/src/forwarder_main.rs +++ b/contracts/feature-tests/composability/forwarder/src/forwarder_main.rs @@ -8,12 +8,12 @@ pub mod contract_change_owner; pub mod contract_deploy; pub mod contract_upgrade; pub mod esdt; +pub mod forwarder_proxy; pub mod nft; pub mod roles; pub mod sft; pub mod storage; pub mod vault_proxy; -pub mod forwarder_proxy; multiversx_sc::imports!(); diff --git a/framework/base/src/types/interaction/contract_call_legacy/async_call.rs b/framework/base/src/types/interaction/contract_call_legacy/async_call.rs index 62396de515..05faf11c2d 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/async_call.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/async_call.rs @@ -3,6 +3,11 @@ use crate::{ types::{CallbackClosure, EgldPayment, FunctionCall, ManagedAddress, Tx, TxScEnv}, }; +/// Kept as alias for backwards compatibility. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] pub type AsyncCall = Tx< TxScEnv, (), diff --git a/framework/base/src/types/interaction/contract_call_legacy/async_call_promises.rs b/framework/base/src/types/interaction/contract_call_legacy/async_call_promises.rs index be22afd129..ee3726c0eb 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/async_call_promises.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/async_call_promises.rs @@ -5,6 +5,10 @@ use crate::{ }; /// Will be renamed to `AsyncCall` and `AsyncCall` to `AsyncCallLegacy` when the promises end up on the mainnet. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] #[must_use] pub struct AsyncCallPromises where diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs index db5d0c8561..0f870d775e 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs @@ -23,6 +23,10 @@ use super::{ /// (unless there are payment arguments in the endpoint - but these are mostly obsolete now). /// /// It is also the basis for all other contract call types, all of them contain this one. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] #[must_use] pub struct ContractCallNoPayment where diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_any_payment.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_any_payment.rs index d195cb3889..2a8a4262f0 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_any_payment.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_any_payment.rs @@ -13,6 +13,10 @@ use super::{ /// Holds data for calling another contract, with any type of payment: none, EGLD, Multi-ESDT. /// /// Gets created when chaining method `with_any_payment`. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] #[must_use] pub struct ContractCallWithAnyPayment where diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_egld.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_egld.rs index 9d6d749b08..47d1fa0c11 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_egld.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_egld.rs @@ -18,6 +18,10 @@ use super::{ /// /// It also represents the normalized form of any contract call, since ESDT transfers /// (the only payment not available here) get converted to builtin function calls in normalized form. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] #[must_use] pub struct ContractCallWithEgld where diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_egld_or_single_esdt.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_egld_or_single_esdt.rs index 843653a532..a6d9a76845 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_egld_or_single_esdt.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_egld_or_single_esdt.rs @@ -15,6 +15,10 @@ use super::{ /// Holds data for calling another contract, with a single payment, either EGLD or a single ESDT token. /// /// Gets created when chaining method `with_egld_or_single_esdt_transfer`. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] #[must_use] pub struct ContractCallWithEgldOrSingleEsdt where diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_multi_esdt.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_multi_esdt.rs index d93f023db9..9064507dbf 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_multi_esdt.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_with_multi_esdt.rs @@ -12,6 +12,10 @@ use super::{ ContractCall, ContractCallWithEgld, }; +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] #[must_use] pub struct ContractCallWithMultiEsdt where diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs index 0cb83f408b..c04ec0ab4b 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_deploy.rs @@ -17,6 +17,10 @@ use crate::{ use super::UNSPECIFIED_GAS_LIMIT; +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] #[must_use] pub struct ContractDeploy where diff --git a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs index d39222ec07..9c0e2a2479 100644 --- a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs +++ b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs @@ -36,7 +36,7 @@ const TYPES_FROM_FRAMEWORK: &[&str] = &[ "EgldOrMultiEsdtPayment", "EsdtTokenData", "EsdtLocalRole", - "EsdtTokenType" + "EsdtTokenType", ]; pub struct ProxyGenerator<'a> { diff --git a/framework/scenario/src/scenario/model/step/sc_call_step.rs b/framework/scenario/src/scenario/model/step/sc_call_step.rs index 55de65f4a4..475ef6ae9b 100644 --- a/framework/scenario/src/scenario/model/step/sc_call_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_call_step.rs @@ -227,6 +227,7 @@ impl AsMut for ScCallStep { /// - recipient, /// - endpoint name, /// - the arguments. +#[allow(deprecated)] pub(super) fn process_contract_call( contract_call: CC, ) -> (String, String, BigUintValue, Vec) diff --git a/framework/scenario/src/scenario/model/step/sc_deploy_step.rs b/framework/scenario/src/scenario/model/step/sc_deploy_step.rs index d062baa15a..7e520e1a17 100644 --- a/framework/scenario/src/scenario/model/step/sc_deploy_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_deploy_step.rs @@ -10,7 +10,7 @@ use crate::{ scenario_model::TxResponse, }; -use crate::multiversx_sc::types::{CodeMetadata, ContractDeploy}; +use crate::multiversx_sc::types::CodeMetadata; use super::{convert_call_args, TypedScDeploy}; @@ -98,9 +98,14 @@ impl ScDeployStep { /// Sets following fields based on the smart contract proxy: /// - "function" /// - "arguments" + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] + #[allow(deprecated)] pub fn call(mut self, contract_deploy: CD) -> TypedScDeploy where - CD: Into>, + CD: Into>, { let (_, mandos_args) = process_contract_deploy(contract_deploy.into()); for arg in mandos_args { @@ -149,8 +154,13 @@ impl AsMut for ScDeployStep { /// Extracts /// - (optional) recipient (needed for contract upgrade, not yet used); /// - the arguments. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] +#[allow(deprecated)] pub(crate) fn process_contract_deploy( - contract_deploy: ContractDeploy, + contract_deploy: multiversx_sc::types::ContractDeploy, ) -> (Option, Vec) { let to_str = contract_deploy .to diff --git a/framework/scenario/src/scenario/model/step/typed_sc_deploy.rs b/framework/scenario/src/scenario/model/step/typed_sc_deploy.rs index 74249e8f97..2fa49c188f 100644 --- a/framework/scenario/src/scenario/model/step/typed_sc_deploy.rs +++ b/framework/scenario/src/scenario/model/step/typed_sc_deploy.rs @@ -3,7 +3,6 @@ use std::marker::PhantomData; use multiversx_sc::{ abi::TypeAbiFrom, codec::{PanicErrorHandler, TopDecodeMulti}, - types::ContractDeploy, }; use crate::{ @@ -18,7 +17,7 @@ use crate::{ use crate::scenario::model::{AddressValue, BigUintValue, TxExpect, U64Value}; -use super::{process_contract_deploy, ScDeployStep}; +use super::ScDeployStep; /// `ScDeployStep` with explicit return type. #[derive(Default, Debug)] @@ -104,8 +103,16 @@ impl TypedScDeploy { /// Sets following fields based on the smart contract proxy: /// - "function" /// - "arguments" - pub fn call(mut self, contract_deploy: ContractDeploy) -> Self { - let (_, mandos_args) = process_contract_deploy(contract_deploy); + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] + #[allow(deprecated)] + pub fn call( + mut self, + contract_deploy: multiversx_sc::types::ContractDeploy, + ) -> Self { + let (_, mandos_args) = super::process_contract_deploy(contract_deploy); for arg in mandos_args { self.sc_deploy_step.tx.arguments.push(BytesValue::from(arg)); } diff --git a/framework/scenario/src/scenario/model/transaction/tx_call.rs b/framework/scenario/src/scenario/model/transaction/tx_call.rs index 102ef3ef4e..547466032e 100644 --- a/framework/scenario/src/scenario/model/transaction/tx_call.rs +++ b/framework/scenario/src/scenario/model/transaction/tx_call.rs @@ -1,6 +1,6 @@ use crate::{ api::StaticApi, - multiversx_sc::types::{ContractCall, ContractCallWithEgld, EsdtTokenPayment}, + multiversx_sc::types::{ContractCall, EsdtTokenPayment}, scenario::model::{AddressValue, BigUintValue, BytesValue, U64Value}, scenario_format::{ interpret_trait::{InterpretableFrom, InterpreterContext, IntoRaw}, @@ -87,8 +87,13 @@ impl IntoRaw for TxCall { } impl TxCall { - pub fn to_contract_call(&self) -> ContractCallWithEgld { - let mut contract_call = ContractCallWithEgld::new( + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] + #[allow(deprecated)] + pub fn to_contract_call(&self) -> multiversx_sc::types::ContractCallWithEgld { + let mut contract_call = multiversx_sc::types::ContractCallWithEgld::new( (&self.to.value).into(), self.function.as_bytes(), (&self.egld_value.value).into(), diff --git a/framework/scenario/tests/contract_call_test.rs b/framework/scenario/tests/contract_call_test.rs index cacd39fd96..b6ff5ea1fb 100644 --- a/framework/scenario/tests/contract_call_test.rs +++ b/framework/scenario/tests/contract_call_test.rs @@ -3,6 +3,7 @@ use multiversx_sc_scenario::scenario_model::ScCallStep; use num_traits::Zero; #[test] +#[allow(deprecated)] fn test_contract_call_multi_esdt() { let tx = ScCallStep::new() .from("address:sender") diff --git a/framework/scenario/tests/contract_without_macros.rs b/framework/scenario/tests/contract_without_macros.rs index 87323d5dbb..cf9033b529 100644 --- a/framework/scenario/tests/contract_without_macros.rs +++ b/framework/scenario/tests/contract_without_macros.rs @@ -7,6 +7,7 @@ // and maintenance. #![allow(unused)] +#![allow(deprecated)] // TODO: unified syntax use multiversx_sc::{ contract_base::ProxyObjNew, diff --git a/framework/snippets/src/interactor_scenario/interactor_sc_call.rs b/framework/snippets/src/interactor_scenario/interactor_sc_call.rs index a0e0498ae9..d01e4af590 100644 --- a/framework/snippets/src/interactor_scenario/interactor_sc_call.rs +++ b/framework/snippets/src/interactor_scenario/interactor_sc_call.rs @@ -2,7 +2,6 @@ use crate::{address_h256_to_erdrs, mandos_to_erdrs_address, Interactor}; use log::info; use multiversx_sc_scenario::{ api::StaticApi, - multiversx_sc::types::ContractCallWithEgld, scenario::ScenarioRunner, scenario_model::{ScCallStep, SetStateStep, TxCall, TxResponse}, }; @@ -45,6 +44,7 @@ impl Interactor { tx_hash } + #[allow(deprecated)] // TODO pub(crate) fn tx_call_to_blockchain_tx(&self, tx_call: &TxCall) -> Transaction { let contract_call = tx_call.to_contract_call(); let contract_call_tx_data = contract_call_to_tx_data(&contract_call); @@ -70,7 +70,10 @@ impl Interactor { } } -fn contract_call_to_tx_data(contract_call: &ContractCallWithEgld) -> String { +#[allow(deprecated)] // TODO +fn contract_call_to_tx_data( + contract_call: &multiversx_sc_scenario::imports::ContractCallWithEgld, +) -> String { let mut result = String::from_utf8( contract_call .basic From 52209c2491ccd3588eaa4982b6ff2d70ee99c95a Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 14:58:51 +0300 Subject: [PATCH 131/185] unified syntax - cleanup, more docs, renames --- .../forwarder-queue/src/forwarder_queue.rs | 2 +- .../src/call_promise_direct.rs | 2 +- .../tests/st_blackbox_legacy_proxy_test.rs | 6 +- .../{interaction/mod.rs => interaction.rs} | 6 +- .../base/src/types/interaction/annotated.rs | 3 + .../contract_call_exec.rs | 2 +- .../contract_call_no_payment.rs | 2 +- .../contract_call_trait.rs | 5 + .../src/types/interaction/result_handlers.rs | 27 -- framework/base/src/types/interaction/tx.rs | 274 +++++++++--------- .../base/src/types/interaction/tx_data.rs | 3 + .../types/interaction/tx_exec/tx_env_sc.rs | 3 + .../types/interaction/tx_exec/tx_exec_sync.rs | 9 + .../types/interaction/tx_exec/tx_exec_te.rs | 1 + .../base/src/types/interaction/tx_from.rs | 4 + .../types/interaction/tx_result_handler.rs | 33 +++ .../interaction/tx_result_handler_list.rs | 9 + .../original_result.rs} | 0 .../tx_result_handler_list_cons.rs} | 0 .../tx_result_handler_list_exec.rs} | 0 .../tx_result_handler_list_item.rs} | 0 .../base/src/types/interaction/tx_rh_list.rs | 9 - framework/base/src/types/interaction/tx_to.rs | 4 + .../src/scenario/model/step/sc_call_step.rs | 9 +- .../src/scenario/model/step/sc_query_step.rs | 17 +- 25 files changed, 245 insertions(+), 185 deletions(-) rename framework/base/src/types/{interaction/mod.rs => interaction.rs} (85%) create mode 100644 framework/base/src/types/interaction/tx_result_handler.rs create mode 100644 framework/base/src/types/interaction/tx_result_handler_list.rs rename framework/base/src/types/interaction/{tx_rh_list/tx_rh_original_result.rs => tx_result_handler_list/original_result.rs} (100%) rename framework/base/src/types/interaction/{tx_rh_list/tx_rh_list_cons.rs => tx_result_handler_list/tx_result_handler_list_cons.rs} (100%) rename framework/base/src/types/interaction/{tx_rh_list/tx_rh_list_exec.rs => tx_result_handler_list/tx_result_handler_list_exec.rs} (100%) rename framework/base/src/types/interaction/{tx_rh_list/tx_rh_list_item.rs => tx_result_handler_list/tx_result_handler_list_item.rs} (100%) delete mode 100644 framework/base/src/types/interaction/tx_rh_list.rs diff --git a/contracts/feature-tests/composability/forwarder-queue/src/forwarder_queue.rs b/contracts/feature-tests/composability/forwarder-queue/src/forwarder_queue.rs index 7b353e4ab0..376fc61d76 100644 --- a/contracts/feature-tests/composability/forwarder-queue/src/forwarder_queue.rs +++ b/contracts/feature-tests/composability/forwarder-queue/src/forwarder_queue.rs @@ -209,7 +209,7 @@ pub trait ForwarderQueue { .tx() .to(&ManagedAddress::default()) .payment(payments) - .function_call(FunctionCall::empty()) + .raw_call("") .to_call_data_string(); self.callback_payments().set(payments_data_string); diff --git a/contracts/feature-tests/composability/promises-features/src/call_promise_direct.rs b/contracts/feature-tests/composability/promises-features/src/call_promise_direct.rs index 55093fc8d6..b722ad4f5d 100644 --- a/contracts/feature-tests/composability/promises-features/src/call_promise_direct.rs +++ b/contracts/feature-tests/composability/promises-features/src/call_promise_direct.rs @@ -44,7 +44,7 @@ pub trait CallPromisesDirectModule { self.tx() .to(&to) .raw_call(endpoint_name) - .egld_or_multi_esdt(EgldOrMultiEsdtPayment::MultiEsdt(token_payments_vec)) + .payment(EgldOrMultiEsdtPayment::MultiEsdt(token_payments_vec)) .gas(gas_limit) .async_call_promise() .callback(self.callbacks().the_one_callback(2001, 2002u32.into())) diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs index b20fbff6f3..f62672bb36 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_legacy_proxy_test.rs @@ -1,3 +1,5 @@ +#![allow(deprecated)] + use multiversx_sc_scenario::imports::*; use num_bigint::BigUint; @@ -50,7 +52,7 @@ fn st_blackbox_legacy_proxy() { let value = world .query() - .call(st_contract.sum()) + .legacy_proxy_call(st_contract.sum()) .returns(ReturnsResultAs::>::new()) .run(); assert_eq!(value.into(), BigUint::from(5u32)); @@ -58,7 +60,7 @@ fn st_blackbox_legacy_proxy() { world .tx() .from(OWNER) - .call(st_contract.add(3u32)) + .legacy_proxy_call(st_contract.add(3u32)) .with_result(WithRawTxResponse(|response| { assert!(response.tx_error.is_success()); })) diff --git a/framework/base/src/types/interaction/mod.rs b/framework/base/src/types/interaction.rs similarity index 85% rename from framework/base/src/types/interaction/mod.rs rename to framework/base/src/types/interaction.rs index e73cf9491b..710b482b8c 100644 --- a/framework/base/src/types/interaction/mod.rs +++ b/framework/base/src/types/interaction.rs @@ -16,7 +16,8 @@ mod tx_from; mod tx_gas; mod tx_payment; mod tx_proxy; -mod tx_rh_list; +mod tx_result_handler; +mod tx_result_handler_list; mod tx_to; pub use annotated::*; @@ -38,7 +39,8 @@ pub use tx_from::*; pub use tx_gas::*; pub use tx_payment::*; pub use tx_proxy::*; -pub use tx_rh_list::*; +pub use tx_result_handler::{TxEmptyResultHandler, TxResultHandler}; +pub use tx_result_handler_list::*; pub use tx_to::*; pub type TxScBase = TxBaseWithEnv>; diff --git a/framework/base/src/types/interaction/annotated.rs b/framework/base/src/types/interaction/annotated.rs index 015aa4e648..315994e66e 100644 --- a/framework/base/src/types/interaction/annotated.rs +++ b/framework/base/src/types/interaction/annotated.rs @@ -12,6 +12,9 @@ use crate::{ use super::TxEnv; +/// Describes a value can also have a custom representation in a mandos scenario. +/// +/// It is based on managed types in order to be embedded into parametric tests too. pub trait AnnotatedValue: Sized where Env: TxEnv, diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_exec.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_exec.rs index 6928ee862b..427218f1c8 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_exec.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_exec.rs @@ -61,7 +61,7 @@ where Tx::new_tx_from_sc() .to(self.basic.to) .egld(self.egld_payment) - .function_call(self.basic.function_call) + .raw_data(self.basic.function_call) .callback(None) } } diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs index 0f870d775e..2a067c761b 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_no_payment.rs @@ -179,6 +179,6 @@ where } pub fn tx(self) -> Tx, (), (), (), (), FunctionCall, ()> { - Tx::new_tx_from_sc().function_call(self.function_call) + Tx::new_tx_from_sc().raw_data(self.function_call) } } diff --git a/framework/base/src/types/interaction/contract_call_legacy/contract_call_trait.rs b/framework/base/src/types/interaction/contract_call_legacy/contract_call_trait.rs index 07b5b86868..70c5faaac3 100644 --- a/framework/base/src/types/interaction/contract_call_legacy/contract_call_trait.rs +++ b/framework/base/src/types/interaction/contract_call_legacy/contract_call_trait.rs @@ -6,6 +6,11 @@ use crate::{ use super::{ContractCallNoPayment, ContractCallWithEgld}; +/// Converts into a legacy contract call. +#[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." +)] pub trait ContractCallBase where SA: CallTypeApi + 'static, diff --git a/framework/base/src/types/interaction/result_handlers.rs b/framework/base/src/types/interaction/result_handlers.rs index f8faf2fe95..dd3a334e2c 100644 --- a/framework/base/src/types/interaction/result_handlers.rs +++ b/framework/base/src/types/interaction/result_handlers.rs @@ -21,30 +21,3 @@ pub use with_new_address::*; pub use with_raw_result::WithRawResult; pub use with_result::WithResult; pub use with_result_as::*; - -use super::TxEnv; - -pub trait TxResultHandler -where - Env: TxEnv, -{ - type OriginalResult; -} - -impl TxResultHandler for () -where - Env: TxEnv, -{ - type OriginalResult = (); -} - -/// Indicates that given result handler is empty, i.e. doesn't cause any side effects and returns nothing. -/// -/// Implemented for `()` and `OriginalResultMarker`. -pub trait TxEmptyResultHandler: TxResultHandler -where - Env: TxEnv, -{ -} - -impl TxEmptyResultHandler for () where Env: TxEnv {} diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 7fc12c896b..b1e6de8a10 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -20,6 +20,13 @@ use super::{ TxToSpecified, UpgradeCall, UNSPECIFIED_GAS_LIMIT, }; +/// Universal representation of a blockchain transaction. +/// +/// Uses 7 generic type arguments to encode all aspects of the transaction. +/// +/// It is future-like, does nothing by itself, it needs a specialized method call to actually run or send it. +/// +/// Rationale: https://twitter.com/andreimmarinica/status/1777157322155966601 #[must_use] pub struct Tx where @@ -40,31 +47,6 @@ where pub result_handler: RH, } -impl Tx -where - Env: TxEnv, - From: TxFrom, - To: TxTo, - Payment: TxPayment, - Gas: TxGas, - Data: TxData, - RH: TxResultHandler, -{ - /// TODO: does nothing, delete, added for easier copy-paste. - #[inline] - pub fn nothing(self) -> Tx { - Tx { - env: self.env, - from: self.from, - to: self.to, - payment: self.payment, - gas: self.gas, - data: self.data, - result_handler: self.result_handler, - } - } -} - impl Tx where Env: TxEnv, @@ -75,6 +57,7 @@ where Data: TxDataFunctionCall, RH: TxResultHandler, { + /// Converts object to a MultiversX transaction data field string. pub fn to_call_data_string(&self) -> ManagedBuffer { self.data.to_call_data_string() } @@ -86,6 +69,7 @@ impl TxBaseWithEnv where Env: TxEnv, { + /// Constructor, needs to take an environment object. #[inline] pub fn new_with_env(env: Env) -> Self { Tx { @@ -109,6 +93,7 @@ where Data: TxData, RH: TxResultHandler, { + /// Specifies transaction sender. pub fn from(self, from: From) -> Tx where From: TxFrom, @@ -281,6 +266,9 @@ where self.payment(payment.into()) } + /// Converts argument to `EgldOrMultiEsdtPayment`, then sets it as payment. + /// + /// In most cases, `payment` should be used instead. pub fn egld_or_multi_esdt>>( self, payment: P, @@ -419,36 +407,33 @@ where Gas: TxGas, RH: TxResultHandler, { + /// Sets the data field. Do not use directly. #[inline] - pub fn raw_call>>( - self, - function_name: N, - ) -> Tx, RH> { + #[doc(hidden)] + pub fn raw_data(self, data: Data) -> Tx + where + Data: TxData, + { Tx { env: self.env, from: self.from, to: self.to, payment: self.payment, gas: self.gas, - data: FunctionCall::new(function_name), + data, result_handler: self.result_handler, } } + /// Starts a contract call, serialized by hand. + /// + /// Whenever possible, should use proxies instead, since manual serialization is not type-safe. #[inline] - pub fn function_call( + pub fn raw_call>>( self, - call: FunctionCall, + function_name: N, ) -> Tx, RH> { - Tx { - env: self.env, - from: self.from, - to: self.to, - payment: self.payment, - gas: self.gas, - data: call, - result_handler: self.result_handler, - } + self.raw_data(FunctionCall::new(function_name)) } } @@ -461,6 +446,7 @@ where Gas: TxGas, RH: TxResultHandler, { + /// Converts tx to a simple FunctionCall, to be used as argument or data in contracts. pub fn into_function_call(self) -> FunctionCall { self.data } @@ -474,12 +460,12 @@ where Gas: TxGas, { /// Merges the argument data into the current tx. - /// Used for function calls originating in proxies. + /// Used for function calls originating in legacy proxies. /// /// Different environment in the argument allowed because of compatibility with old proxies. /// /// Method still subject to considerable change. - pub fn call( + pub fn legacy_proxy_call( self, call: Tx, OriginalResultMarker>, ) -> Tx, OriginalResultMarker> @@ -508,18 +494,22 @@ where Gas: TxGas, RH: TxResultHandler, { - #[inline] - pub fn function_name>>(mut self, function_name: N) -> Self { - self.data.function_name = function_name.into(); - self - } - + /// Adds argument to function call. + /// + /// Whenever possible, use proxies instead. + /// + /// It serializes the value, but does not enforce type safety. #[inline] pub fn argument(mut self, arg: &T) -> Self { self.data = self.data.argument(arg); self } + /// Adds serialized argument to function call. + /// + /// Whenever possible, use proxies instead. + /// + /// Doesa not serialize, does not enforce type safety. #[inline] pub fn arguments_raw(mut self, raw: ManagedArgBuffer) -> Self { self.data.arg_buffer = raw; @@ -536,6 +526,9 @@ where Gas: TxGas, Data: TxData, { + /// Type marker to set the original contract or VM function return type. + /// + /// Only the compile-time type annotation is given. #[inline] pub fn original_result( self, @@ -559,6 +552,9 @@ where To: TxTo, Gas: TxGas, { + /// Starts a proxy call, deploy, or upgrade. + /// + /// The proxy object will be given, the subsequent call will be from a proxy context, containing all the contract endpoint names. pub fn typed(self, proxy: Proxy) -> Proxy::TxProxyMethods where Proxy: TxProxyTrait, @@ -578,6 +574,7 @@ where Data: TxData, ResultList: RHList, { + /// Adds a result handler that doesn't return anything. #[inline] pub fn with_result( self, @@ -598,6 +595,7 @@ where } } + /// Adds a result handler that can also return processed data. #[inline] pub fn returns( self, @@ -619,44 +617,6 @@ where } } -impl ContractCallBase - for Tx< - TxScEnv, - (), - To, - Payment, - (), - FunctionCall, - OriginalResultMarker, - > -where - Api: CallTypeApi + 'static, - To: TxToSpecified>, - Payment: TxPayment>, - OriginalResult: TopEncodeMulti, -{ - type OriginalResult = OriginalResult; - - fn into_normalized(self) -> ContractCallWithEgld { - self.payment.with_normalized( - &self.env, - &self.from, - self.to, - self.data, - |norm_to, norm_egld, norm_fc| ContractCallWithEgld { - basic: ContractCallNoPayment { - _phantom: core::marker::PhantomData, - to: norm_to.clone(), - function_call: norm_fc.clone(), - explicit_gas_limit: UNSPECIFIED_GAS_LIMIT, - _return_type: core::marker::PhantomData, - }, - egld_payment: norm_egld.clone(), - }, - ) - } -} - impl Tx where Env: TxEnv, @@ -666,38 +626,11 @@ where Gas: TxGas, RH: TxResultHandler, { + /// Starts a contract deploy call, serialized by hand. + /// + /// Whenever possible, should use proxies instead, since manual serialization is not type-safe. pub fn raw_deploy(self) -> Tx, RH> { - Tx { - env: self.env, - from: self.from, - to: self.to, - payment: self.payment, - gas: self.gas, - data: DeployCall::default(), - result_handler: self.result_handler, - } - } -} - -impl Tx -where - Env: TxEnv, - From: TxFrom, - To: TxTo, - Payment: TxPaymentEgldOnly, - Gas: TxGas, - RH: TxResultHandler, -{ - pub fn raw_upgrade(self) -> Tx, RH> { - Tx { - env: self.env, - from: self.from, - to: self.to, - payment: self.payment, - gas: self.gas, - data: UpgradeCall::default(), - result_handler: self.result_handler, - } + self.raw_data(DeployCall::default()) } } @@ -710,6 +643,7 @@ where Gas: TxGas, RH: TxResultHandler, { + /// Sets upgrade code source as explicit code bytes. pub fn code( self, code: CodeValue, @@ -728,6 +662,7 @@ where } } + /// Sets upgrade code source as another deployed contract code. pub fn from_source( self, source_address: FromSourceValue, @@ -756,6 +691,7 @@ where Gas: TxGas, RH: TxResultHandler, { + /// Sets deploy code source as explicit code bytes. pub fn code( self, code: CodeValue, @@ -774,6 +710,7 @@ where } } + /// Sets deploy code source as another deployed contract code. pub fn from_source( self, source_address: FromSourceValue, @@ -804,17 +741,28 @@ where CodeSource: TxCodeSource, RH: TxResultHandler, { + /// Sets code metadata to deploy. pub fn code_metadata(mut self, code_metadata: CodeMetadata) -> Self { self.data = self.data.code_metadata(code_metadata); self } + /// Adds argument to a contract deploy. + /// + /// Whenever possible, use proxies instead. + /// + /// It serializes the value, but does not enforce type safety. #[inline] pub fn argument(mut self, arg: &T) -> Self { self.data = self.data.argument(arg); self } + /// Adds serialized argument to a contract deploy. + /// + /// Whenever possible, use proxies instead. + /// + /// Doesa not serialize, does not enforce type safety. #[inline] pub fn arguments_raw(mut self, raw: ManagedArgBuffer) -> Self { self.data.arg_buffer = raw; @@ -845,25 +793,20 @@ where } } -impl Tx +impl Tx where - Env: TxEnvWithTxHash, - From: TxFromSpecified, + Env: TxEnv, + From: TxFrom, To: TxTo, Payment: TxPaymentEgldOnly, Gas: TxGas, - Data: TxDataFunctionCall, RH: TxResultHandler, { - /// Sets the mock transaction hash to be used in a test. + /// Starts a contract deploy upgrade, serialized by hand. /// - /// Only allowed in tests. - pub fn tx_hash(mut self, tx_hash: H) -> Self - where - H256: core::convert::From, - { - self.env.set_tx_hash(H256::from(tx_hash)); - self + /// Whenever possible, should use proxies instead, since manual serialization is not type-safe. + pub fn raw_upgrade(self) -> Tx, RH> { + self.raw_data(UpgradeCall::default()) } } @@ -883,12 +826,22 @@ where self } + /// Adds argument to upgrade call. + /// + /// Whenever possible, use proxies instead. + /// + /// It serializes the value, but does not enforce type safety. #[inline] pub fn argument(mut self, arg: &T) -> Self { self.data = self.data.argument(arg); self } + /// Adds serialized argument to an upgrade call. + /// + /// Whenever possible, use proxies instead. + /// + /// Doesa not serialize, does not enforce type safety. #[inline] pub fn arguments_raw(mut self, raw: ManagedArgBuffer) -> Self { self.data.arg_buffer = raw; @@ -896,6 +849,28 @@ where } } +impl Tx +where + Env: TxEnvWithTxHash, + From: TxFromSpecified, + To: TxTo, + Payment: TxPaymentEgldOnly, + Gas: TxGas, + Data: TxDataFunctionCall, + RH: TxResultHandler, +{ + /// Sets the mock transaction hash to be used in a test. + /// + /// Only allowed in tests. + pub fn tx_hash(mut self, tx_hash: H) -> Self + where + H256: core::convert::From, + { + self.env.set_tx_hash(H256::from(tx_hash)); + self + } +} + impl From< Tx< @@ -935,3 +910,42 @@ where } } } + +// Conversion from new syntax to old syntax. +impl ContractCallBase + for Tx< + TxScEnv, + (), + To, + Payment, + (), + FunctionCall, + OriginalResultMarker, + > +where + Api: CallTypeApi + 'static, + To: TxToSpecified>, + Payment: TxPayment>, + OriginalResult: TopEncodeMulti, +{ + type OriginalResult = OriginalResult; + + fn into_normalized(self) -> ContractCallWithEgld { + self.payment.with_normalized( + &self.env, + &self.from, + self.to, + self.data, + |norm_to, norm_egld, norm_fc| ContractCallWithEgld { + basic: ContractCallNoPayment { + _phantom: core::marker::PhantomData, + to: norm_to.clone(), + function_call: norm_fc.clone(), + explicit_gas_limit: UNSPECIFIED_GAS_LIMIT, + _return_type: core::marker::PhantomData, + }, + egld_payment: norm_egld.clone(), + }, + ) + } +} diff --git a/framework/base/src/types/interaction/tx_data.rs b/framework/base/src/types/interaction/tx_data.rs index dc6db88135..ddab631b1a 100644 --- a/framework/base/src/types/interaction/tx_data.rs +++ b/framework/base/src/types/interaction/tx_data.rs @@ -15,6 +15,9 @@ use crate::{ use super::TxEnv; +/// Marks the data field of a transaction in `Tx`. +/// +/// Can be nothing, deploy data, call data, etc. pub trait TxData where Env: TxEnv, diff --git a/framework/base/src/types/interaction/tx_exec/tx_env_sc.rs b/framework/base/src/types/interaction/tx_exec/tx_env_sc.rs index 48cf21b0bb..249d74c2bc 100644 --- a/framework/base/src/types/interaction/tx_exec/tx_env_sc.rs +++ b/framework/base/src/types/interaction/tx_exec/tx_env_sc.rs @@ -9,6 +9,9 @@ use crate::{ }, }; +/// The transaction environment used in calls launched from a SC. +/// +/// Contains no data, just a generic type for the (also zero-sized) API. pub struct TxScEnv where Api: CallTypeApi, diff --git a/framework/base/src/types/interaction/tx_exec/tx_exec_sync.rs b/framework/base/src/types/interaction/tx_exec/tx_exec_sync.rs index e66e76cf26..4ab9c29759 100644 --- a/framework/base/src/types/interaction/tx_exec/tx_exec_sync.rs +++ b/framework/base/src/types/interaction/tx_exec/tx_exec_sync.rs @@ -48,6 +48,9 @@ where (raw_result, self.result_handler) } + /// Executes transaction synchronously. + /// + /// Only works with contracts from the same shard. pub fn sync_call(self) -> ::Unpacked { let (raw_result, result_handler) = self.execute_sync_call_raw(); let sync_raw_result = SyncCallRawResult(raw_result); @@ -79,6 +82,9 @@ where (raw_result, self.result_handler) } + /// Executes transaction synchronously, in the same context (performed in the name of the caller). + /// + /// Only works with contracts from the same shard. pub fn sync_call_same_context(self) -> ::Unpacked { let (raw_result, result_handler) = self.execute_sync_call_same_context_raw(); let sync_raw_result = SyncCallRawResult(raw_result); @@ -114,6 +120,9 @@ where (raw_result, self.result_handler) } + /// Executes transaction synchronously, in readonly mode (target contract cannot have its state altered). + /// + /// Only works with contracts from the same shard. pub fn sync_call_readonly(self) -> ::Unpacked { let (raw_result, result_handler) = self.execute_sync_call_readonly_raw(); let sync_raw_result = SyncCallRawResult(raw_result); diff --git a/framework/base/src/types/interaction/tx_exec/tx_exec_te.rs b/framework/base/src/types/interaction/tx_exec/tx_exec_te.rs index a484dd2fdb..b9db7539b9 100644 --- a/framework/base/src/types/interaction/tx_exec/tx_exec_te.rs +++ b/framework/base/src/types/interaction/tx_exec/tx_exec_te.rs @@ -22,6 +22,7 @@ where }); } + /// Sends transaction asynchronously, and doesn't wait for callback ("fire and forget".) pub fn transfer_execute(self) { let gas_limit: u64; if self.data.is_no_call() { diff --git a/framework/base/src/types/interaction/tx_from.rs b/framework/base/src/types/interaction/tx_from.rs index 039cb2c34c..ff5dd73b88 100644 --- a/framework/base/src/types/interaction/tx_from.rs +++ b/framework/base/src/types/interaction/tx_from.rs @@ -2,6 +2,7 @@ use crate::types::{heap::Address, ManagedAddress}; use super::{AnnotatedValue, TxEnv}; +/// Marks the sender of any transaction. pub trait TxFrom where Env: TxEnv, @@ -9,6 +10,9 @@ where fn resolve_address(&self, env: &Env) -> ManagedAddress; } +/// Marks the non-empty sender of a transaction. +/// +/// Enforces the reciipent to be explicitly specified. pub trait TxFromSpecified: TxFrom + AnnotatedValue> where diff --git a/framework/base/src/types/interaction/tx_result_handler.rs b/framework/base/src/types/interaction/tx_result_handler.rs new file mode 100644 index 0000000000..099d060c44 --- /dev/null +++ b/framework/base/src/types/interaction/tx_result_handler.rs @@ -0,0 +1,33 @@ +use super::TxEnv; + +/// Marks a general result handler, to be used in the transaction unified syntax. +/// +/// Rationale described here: https://twitter.com/andreimmarinica/status/1781371938750841288 +/// +/// Used for: +/// - async callbacks +/// - processing of results in sync calls, tests and interactors. +pub trait TxResultHandler +where + Env: TxEnv, +{ + type OriginalResult; +} + +impl TxResultHandler for () +where + Env: TxEnv, +{ + type OriginalResult = (); +} + +/// Indicates that given result handler is empty, i.e. doesn't cause any side effects and returns nothing. +/// +/// Implemented for `()` and `OriginalResultMarker`. +pub trait TxEmptyResultHandler: TxResultHandler +where + Env: TxEnv, +{ +} + +impl TxEmptyResultHandler for () where Env: TxEnv {} diff --git a/framework/base/src/types/interaction/tx_result_handler_list.rs b/framework/base/src/types/interaction/tx_result_handler_list.rs new file mode 100644 index 0000000000..b66a4ba52e --- /dev/null +++ b/framework/base/src/types/interaction/tx_result_handler_list.rs @@ -0,0 +1,9 @@ +mod original_result; +mod tx_result_handler_list_cons; +mod tx_result_handler_list_exec; +mod tx_result_handler_list_item; + +pub use original_result::OriginalResultMarker; +pub use tx_result_handler_list_cons::*; +pub use tx_result_handler_list_exec::*; +pub use tx_result_handler_list_item::*; diff --git a/framework/base/src/types/interaction/tx_rh_list/tx_rh_original_result.rs b/framework/base/src/types/interaction/tx_result_handler_list/original_result.rs similarity index 100% rename from framework/base/src/types/interaction/tx_rh_list/tx_rh_original_result.rs rename to framework/base/src/types/interaction/tx_result_handler_list/original_result.rs diff --git a/framework/base/src/types/interaction/tx_rh_list/tx_rh_list_cons.rs b/framework/base/src/types/interaction/tx_result_handler_list/tx_result_handler_list_cons.rs similarity index 100% rename from framework/base/src/types/interaction/tx_rh_list/tx_rh_list_cons.rs rename to framework/base/src/types/interaction/tx_result_handler_list/tx_result_handler_list_cons.rs diff --git a/framework/base/src/types/interaction/tx_rh_list/tx_rh_list_exec.rs b/framework/base/src/types/interaction/tx_result_handler_list/tx_result_handler_list_exec.rs similarity index 100% rename from framework/base/src/types/interaction/tx_rh_list/tx_rh_list_exec.rs rename to framework/base/src/types/interaction/tx_result_handler_list/tx_result_handler_list_exec.rs diff --git a/framework/base/src/types/interaction/tx_rh_list/tx_rh_list_item.rs b/framework/base/src/types/interaction/tx_result_handler_list/tx_result_handler_list_item.rs similarity index 100% rename from framework/base/src/types/interaction/tx_rh_list/tx_rh_list_item.rs rename to framework/base/src/types/interaction/tx_result_handler_list/tx_result_handler_list_item.rs diff --git a/framework/base/src/types/interaction/tx_rh_list.rs b/framework/base/src/types/interaction/tx_rh_list.rs deleted file mode 100644 index 7c4ccf74bd..0000000000 --- a/framework/base/src/types/interaction/tx_rh_list.rs +++ /dev/null @@ -1,9 +0,0 @@ -mod tx_rh_list_cons; -mod tx_rh_list_exec; -mod tx_rh_list_item; -mod tx_rh_original_result; - -pub use tx_rh_list_cons::*; -pub use tx_rh_list_exec::*; -pub use tx_rh_list_item::*; -pub use tx_rh_original_result::OriginalResultMarker; diff --git a/framework/base/src/types/interaction/tx_to.rs b/framework/base/src/types/interaction/tx_to.rs index 6ba0f6eec8..ad165a488f 100644 --- a/framework/base/src/types/interaction/tx_to.rs +++ b/framework/base/src/types/interaction/tx_to.rs @@ -2,6 +2,7 @@ use crate::types::{heap::Address, ManagedAddress}; use super::{AnnotatedValue, TxEnv}; +/// Marks the recipient of any transaction. pub trait TxTo where Env: TxEnv, @@ -10,6 +11,9 @@ where impl TxTo for () where Env: TxEnv {} +/// Marks the non-empty recipient of a transaction. +/// +/// Enforces the reciipent to be explicitly specified. pub trait TxToSpecified: TxTo + AnnotatedValue> where Env: TxEnv, diff --git a/framework/scenario/src/scenario/model/step/sc_call_step.rs b/framework/scenario/src/scenario/model/step/sc_call_step.rs index 475ef6ae9b..07bc120fea 100644 --- a/framework/scenario/src/scenario/model/step/sc_call_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_call_step.rs @@ -1,7 +1,4 @@ -use multiversx_sc::{ - abi::TypeAbiFrom, - types::{ContractCallBase, H256}, -}; +use multiversx_sc::{abi::TypeAbiFrom, types::H256}; use crate::{ api::StaticApi, @@ -144,7 +141,7 @@ impl ScCallStep { #[allow(deprecated)] pub fn call(mut self, contract_call: CC) -> super::TypedScCall where - CC: ContractCallBase, + CC: multiversx_sc::types::ContractCallBase, { let (to_str, function, egld_value_expr, scenario_args) = process_contract_call(contract_call); @@ -232,7 +229,7 @@ pub(super) fn process_contract_call( contract_call: CC, ) -> (String, String, BigUintValue, Vec) where - CC: ContractCallBase, + CC: multiversx_sc::types::ContractCallBase, { let normalized_cc = contract_call.into_normalized(); let to_str = format!( diff --git a/framework/scenario/src/scenario/model/step/sc_query_step.rs b/framework/scenario/src/scenario/model/step/sc_query_step.rs index 7a99fd4163..8183dcd579 100644 --- a/framework/scenario/src/scenario/model/step/sc_query_step.rs +++ b/framework/scenario/src/scenario/model/step/sc_query_step.rs @@ -1,7 +1,4 @@ -use multiversx_sc::{ - abi::TypeAbiFrom, - types::{ContractCallBase, H256}, -}; +use multiversx_sc::{abi::TypeAbiFrom, types::H256}; use num_traits::Zero; use crate::{ @@ -65,9 +62,14 @@ impl ScQueryStep { /// - "to" /// - "function" /// - "arguments" + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] + #[allow(deprecated)] pub fn call(mut self, contract_call: CC) -> TypedScQuery where - CC: ContractCallBase, + CC: multiversx_sc::types::ContractCallBase, { let (to_str, function, egld_value_expr, mandos_args) = process_contract_call(contract_call); assert!( @@ -89,6 +91,11 @@ impl ScQueryStep { /// - "expect" /// - "out" /// - "status" set to 0 + #[deprecated( + since = "0.49.0", + note = "Please use the unified transaction syntax instead." + )] + #[allow(deprecated)] pub fn call_expect( self, contract_call: CC, From 473e7892860fd6c08b5ccbd772aea9c83347da23 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 15:04:30 +0300 Subject: [PATCH 132/185] comment --- contracts/examples/adder/interact/src/basic_interact.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/contracts/examples/adder/interact/src/basic_interact.rs b/contracts/examples/adder/interact/src/basic_interact.rs index 363f7efde2..ee11ac5844 100644 --- a/contracts/examples/adder/interact/src/basic_interact.rs +++ b/contracts/examples/adder/interact/src/basic_interact.rs @@ -73,6 +73,9 @@ impl AdderInteract { } async fn deploy(&mut self) { + // warning: multi deploy not yet fully supported + // only works with last deployed address + self.set_state().await; let new_address = self @@ -113,6 +116,10 @@ impl AdderInteract { } let results = buffer.run().await; + + // warning: multi deploy not yet fully supported + // only works with last deployed address + for new_address in results { println!("new address: {new_address}"); From 8d1dae152f347117f8670b1c278dc3baccaa138e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 15:08:26 +0300 Subject: [PATCH 133/185] re-generated proxies --- .../tests/price_aggregator_proxy.rs | 2 ++ .../feature-tests/abi-tester/src/abi_proxy.rs | 27 +++++++++++++++++++ .../scenario-tester/sc-config.toml | 2 +- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs index bc84320d13..ae5e00c94a 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs @@ -340,6 +340,7 @@ where } } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct PriceFeed where @@ -353,6 +354,7 @@ where pub decimals: u8, } +#[type_abi] #[derive(TopEncode)] pub struct NewRoundEvent where diff --git a/contracts/feature-tests/abi-tester/src/abi_proxy.rs b/contracts/feature-tests/abi-tester/src/abi_proxy.rs index a91b6d1961..f02412c39d 100644 --- a/contracts/feature-tests/abi-tester/src/abi_proxy.rs +++ b/contracts/feature-tests/abi-tester/src/abi_proxy.rs @@ -397,11 +397,13 @@ where } } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpInConstructor { pub something: (), } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct AbiTestType { pub nested: OnlyShowsUpAsNested01, @@ -409,15 +411,18 @@ pub struct AbiTestType { pub tuple_madness: (OnlyShowsUpAsNested02, Option>), } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested01 {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested02 { pub something: [u8; 0], } #[rustfmt::skip] +#[type_abi] #[derive(TopEncode, TopDecode)] pub enum AbiEnum { Nothing, @@ -429,12 +434,15 @@ pub enum AbiEnum { }, } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested08 {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested09 {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct AbiManagedType where @@ -445,62 +453,80 @@ where pub managed_buffer: ManagedBuffer, } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested03 {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested04 {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested05 {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested06 {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested07 {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInSingleValueMapper {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInVec {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInArrayVec {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, ManagedVecItem)] pub struct AbiManagedVecItem { pub value1: u32, pub value2: u32, } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInArray {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInBox {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInBoxedSlice {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInRef {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInSlice {} +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNestedInOption {} +#[type_abi] #[derive(TopEncode, TopDecode)] pub struct OnlyShowsUpInEsdtAttr { pub field: OnlyShowsUpAsNested10, } +#[type_abi] #[derive(NestedEncode, NestedDecode, TopEncode, TopDecode)] pub struct OnlyShowsUpAsNested10 {} +#[type_abi] #[derive(TopEncode, TopDecode)] pub enum ExplicitDiscriminant { Zero, @@ -511,6 +537,7 @@ pub enum ExplicitDiscriminant { } #[rustfmt::skip] +#[type_abi] #[derive(TopEncode, TopDecode)] pub enum ExplicitDiscriminantMixed { Zero, diff --git a/contracts/feature-tests/scenario-tester/sc-config.toml b/contracts/feature-tests/scenario-tester/sc-config.toml index 0a83428cbd..4b16ba7311 100644 --- a/contracts/feature-tests/scenario-tester/sc-config.toml +++ b/contracts/feature-tests/scenario-tester/sc-config.toml @@ -1,4 +1,4 @@ [settings] [[proxy]] -path = "src/st_proxy.rs" +path = "src/scenario_tester_proxy.rs" From b4e85ea1306f8ed9a499f05feeb3cb7ef75f749b Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 15:17:20 +0300 Subject: [PATCH 134/185] replaced tabs with spaces --- data/codec-derive/src/nested_de_derive.rs | 24 +++++----- data/codec/src/impl_for_types/impl_tuple.rs | 20 ++++---- .../tests/derive_enum_or_default_test.rs | 18 ++++---- data/codec/tests/derive_enum_test.rs | 40 ++++++++-------- .../derive_struct_or_default_generic_test.rs | 16 +++---- .../tests/derive_struct_or_default_test.rs | 16 +++---- data/codec/tests/derive_struct_test.rs | 16 +++---- data/codec/tests/derive_tuple_struct_test.rs | 10 ++-- framework/base/src/abi/type_abi_impl_basic.rs | 46 +++++++++---------- .../base/src/abi/type_abi_impl_codec_multi.rs | 4 +- framework/derive/src/generate/abi_gen.rs | 18 ++++---- framework/derive/src/generate/callback_gen.rs | 2 +- framework/derive/src/parse/auto_impl_parse.rs | 22 ++++----- framework/derive/src/parse/endpoint_parse.rs | 4 +- framework/derive/src/parse/payable_parse.rs | 16 +++---- .../derive_managed_vec_item_struct_1_test.rs | 14 +++--- .../derive_managed_vec_item_struct_2_test.rs | 28 +++++------ vm/src/world_mock/account_data.rs | 14 +++--- 18 files changed, 164 insertions(+), 164 deletions(-) diff --git a/data/codec-derive/src/nested_de_derive.rs b/data/codec-derive/src/nested_de_derive.rs index 2eb9d18f41..f24ab1a256 100644 --- a/data/codec-derive/src/nested_de_derive.rs +++ b/data/codec-derive/src/nested_de_derive.rs @@ -27,20 +27,20 @@ pub fn variant_dep_decode_snippets( ) -> Vec { let mut previous_disc: Vec = Vec::new(); data_enum - .variants - .iter() - .enumerate() - .map(|(variant_index, variant)| { + .variants + .iter() + .enumerate() + .map(|(variant_index, variant)| { let variant_discriminant = get_discriminant(variant_index, variant, &mut previous_disc); - let variant_ident = &variant.ident; - let variant_field_snippets = fields_decl_syntax(&variant.fields, |index, field| { - dep_decode_snippet(index, field, input_value) - }); - quote! { + let variant_ident = &variant.ident; + let variant_field_snippets = fields_decl_syntax(&variant.fields, |index, field| { + dep_decode_snippet(index, field, input_value) + }); + quote! { #variant_discriminant => core::result::Result::Ok( #name::#variant_ident #variant_field_snippets ), - } - }) - .collect() + } + }) + .collect() } pub fn nested_decode_impl(ast: &syn::DeriveInput) -> TokenStream { diff --git a/data/codec/src/impl_for_types/impl_tuple.rs b/data/codec/src/impl_for_types/impl_tuple.rs index c59ead5126..b5278a92b5 100644 --- a/data/codec/src/impl_for_types/impl_tuple.rs +++ b/data/codec/src/impl_for_types/impl_tuple.rs @@ -11,18 +11,18 @@ macro_rules! tuple_impls { where $($name: NestedEncode,)+ { - fn top_encode_or_handle_err(&self, output: O, h: H) -> Result<(), H::HandledErr> + fn top_encode_or_handle_err(&self, output: O, h: H) -> Result<(), H::HandledErr> where O: TopEncodeOutput, H: EncodeErrorHandler, { - let mut buffer = output.start_nested_encode(); - $( + let mut buffer = output.start_nested_encode(); + $( self.$n.dep_encode_or_handle_err(&mut buffer, h)?; )+ - output.finalize_nested_encode(buffer); - Ok(()) - } + output.finalize_nested_encode(buffer); + Ok(()) + } } impl<$($name),+> TopDecode for ($($name,)+) @@ -42,16 +42,16 @@ macro_rules! tuple_impls { where $($name: NestedEncode,)+ { - fn dep_encode_or_handle_err(&self, dest: &mut O, h: H) -> Result<(), H::HandledErr> + fn dep_encode_or_handle_err(&self, dest: &mut O, h: H) -> Result<(), H::HandledErr> where O: NestedEncodeOutput, H: EncodeErrorHandler, { - $( + $( self.$n.dep_encode_or_handle_err(dest, h)?; )+ - Ok(()) - } + Ok(()) + } } impl<$($name),+> NestedDecode for ($($name,)+) diff --git a/data/codec/tests/derive_enum_or_default_test.rs b/data/codec/tests/derive_enum_or_default_test.rs index 24d1017654..7d9b57c755 100644 --- a/data/codec/tests/derive_enum_or_default_test.rs +++ b/data/codec/tests/derive_enum_or_default_test.rs @@ -53,15 +53,15 @@ fn enum_not_defaults() { }; #[rustfmt::skip] - let enum_struct_bytes = &[ - /* discriminant */ 2, - /* int */ 0, 0x42, - /* seq length */ 0, 0, 0, 5, - /* seq contents */ 1, 2, 3, 4, 5, - /* another_byte */ 6, - /* uint_32 */ 0x00, 0x01, 0x23, 0x45, - /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, - ]; + let enum_struct_bytes = &[ + /* discriminant */ 2, + /* int */ 0, 0x42, + /* seq length */ 0, 0, 0, 5, + /* seq contents */ 1, 2, 3, 4, 5, + /* another_byte */ 6, + /* uint_32 */ 0x00, 0x01, 0x23, 0x45, + /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, + ]; check_top_encode_decode(enum_struct, enum_struct_bytes); } diff --git a/data/codec/tests/derive_enum_test.rs b/data/codec/tests/derive_enum_test.rs index b4626400ac..bd798b33ee 100644 --- a/data/codec/tests/derive_enum_test.rs +++ b/data/codec/tests/derive_enum_test.rs @@ -68,11 +68,11 @@ fn field_enum_variant_with_value() { let enum_tuple_0 = EnumWithEverything::Write(Vec::new(), 0); #[rustfmt::skip] - let enum_tuple_0_bytes = &[ - /* discriminant */ 2, - /* vec length */ 0, 0, 0, 0, - /* u16 */ 0, 0, - ]; + let enum_tuple_0_bytes = &[ + /* discriminant */ 2, + /* vec length */ 0, 0, 0, 0, + /* u16 */ 0, 0, + ]; check_top_encode_decode(enum_tuple_0.clone(), enum_tuple_0_bytes); check_dep_encode_decode(enum_tuple_0, enum_tuple_0_bytes); } @@ -81,12 +81,12 @@ fn field_enum_variant_with_value() { fn field_enum_variant_with_tuple() { let enum_tuple_1 = EnumWithEverything::Write([1, 2, 3].to_vec(), 4); #[rustfmt::skip] - let enum_tuple_1_bytes = &[ - /* discriminant */ 2, - /* vec length */ 0, 0, 0, 3, - /* vec contents */ 1, 2, 3, - /* an extra 16 */ 0, 4, - ]; + let enum_tuple_1_bytes = &[ + /* discriminant */ 2, + /* vec length */ 0, 0, 0, 3, + /* vec contents */ 1, 2, 3, + /* an extra 16 */ 0, 4, + ]; check_top_encode_decode(enum_tuple_1.clone(), enum_tuple_1_bytes); check_dep_encode_decode(enum_tuple_1, enum_tuple_1_bytes); @@ -103,15 +103,15 @@ fn field_enum_struct_variant() { }; #[rustfmt::skip] - let enum_struct_bytes = &[ - /* discriminant */ 3, - /* int */ 0, 0x42, - /* seq length */ 0, 0, 0, 5, - /* seq contents */ 1, 2, 3, 4, 5, - /* another_byte */ 6, - /* uint_32 */ 0x00, 0x01, 0x23, 0x45, - /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, - ]; + let enum_struct_bytes = &[ + /* discriminant */ 3, + /* int */ 0, 0x42, + /* seq length */ 0, 0, 0, 5, + /* seq contents */ 1, 2, 3, 4, 5, + /* another_byte */ 6, + /* uint_32 */ 0x00, 0x01, 0x23, 0x45, + /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, + ]; check_top_encode_decode(enum_struct.clone(), enum_struct_bytes); check_dep_encode_decode(enum_struct, enum_struct_bytes); diff --git a/data/codec/tests/derive_struct_or_default_generic_test.rs b/data/codec/tests/derive_struct_or_default_generic_test.rs index e8ab6bbe20..d7631b0ae2 100644 --- a/data/codec/tests/derive_struct_or_default_generic_test.rs +++ b/data/codec/tests/derive_struct_or_default_generic_test.rs @@ -63,14 +63,14 @@ fn struct_or_default_not_default() { }; #[rustfmt::skip] - let bytes_1 = &[ - /* int */ 0, 0x42, - /* seq length */ 0, 0, 0, 5, - /* seq contents */ 1, 2, 3, 4, 5, - /* another_byte */ 6, - /* uint_32 */ 0x00, 0x01, 0x23, 0x45, - /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, - ]; + let bytes_1 = &[ + /* int */ 0, 0x42, + /* seq length */ 0, 0, 0, 5, + /* seq contents */ 1, 2, 3, 4, 5, + /* another_byte */ 6, + /* uint_32 */ 0x00, 0x01, 0x23, 0x45, + /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, + ]; check_top_encode_decode(s, bytes_1); } diff --git a/data/codec/tests/derive_struct_or_default_test.rs b/data/codec/tests/derive_struct_or_default_test.rs index 1b75d5962c..8953b94dc6 100644 --- a/data/codec/tests/derive_struct_or_default_test.rs +++ b/data/codec/tests/derive_struct_or_default_test.rs @@ -54,14 +54,14 @@ fn struct_or_default_not_default() { }; #[rustfmt::skip] - let bytes_1 = &[ - /* int */ 0, 0x42, - /* seq length */ 0, 0, 0, 5, - /* seq contents */ 1, 2, 3, 4, 5, - /* another_byte */ 6, - /* uint_32 */ 0x00, 0x01, 0x23, 0x45, - /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, - ]; + let bytes_1 = &[ + /* int */ 0, 0x42, + /* seq length */ 0, 0, 0, 5, + /* seq contents */ 1, 2, 3, 4, 5, + /* another_byte */ 6, + /* uint_32 */ 0x00, 0x01, 0x23, 0x45, + /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, + ]; check_top_encode_decode(s, bytes_1); } diff --git a/data/codec/tests/derive_struct_test.rs b/data/codec/tests/derive_struct_test.rs index b7967dd9ae..fbe293b7e1 100644 --- a/data/codec/tests/derive_struct_test.rs +++ b/data/codec/tests/derive_struct_test.rs @@ -26,14 +26,14 @@ fn struct_named_fields_test() { }; #[rustfmt::skip] - let bytes_1 = &[ - /* int */ 0, 0x42, - /* seq length */ 0, 0, 0, 5, - /* seq contents */ 1, 2, 3, 4, 5, - /* another_byte */ 6, - /* uint_32 */ 0x00, 0x01, 0x23, 0x45, - /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, - ]; + let bytes_1 = &[ + /* int */ 0, 0x42, + /* seq length */ 0, 0, 0, 5, + /* seq contents */ 1, 2, 3, 4, 5, + /* another_byte */ 6, + /* uint_32 */ 0x00, 0x01, 0x23, 0x45, + /* uint_64 */ 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, + ]; check_top_encode_decode(s.clone(), bytes_1); check_dep_encode_decode(s, bytes_1); diff --git a/data/codec/tests/derive_tuple_struct_test.rs b/data/codec/tests/derive_tuple_struct_test.rs index 53e17ff529..4d6b3c9559 100644 --- a/data/codec/tests/derive_tuple_struct_test.rs +++ b/data/codec/tests/derive_tuple_struct_test.rs @@ -14,11 +14,11 @@ fn tuple_struct_derive_test() { let s = TupleStruct(8, 16, 32); #[rustfmt::skip] - let bytes = &[ - /* 0: u8 */ 8, - /* 1: u32 */ 0, 16, - /* 2: u64 */ 0, 0, 0, 32, - ]; + let bytes = &[ + /* 0: u8 */ 8, + /* 1: u32 */ 0, 16, + /* 2: u64 */ 0, 0, 0, 32, + ]; check_top_encode_decode(s.clone(), bytes); check_dep_encode_decode(s, bytes); diff --git a/framework/base/src/abi/type_abi_impl_basic.rs b/framework/base/src/abi/type_abi_impl_basic.rs index f5f5ece466..878a09bc87 100644 --- a/framework/base/src/abi/type_abi_impl_basic.rs +++ b/framework/base/src/abi/type_abi_impl_basic.rs @@ -303,35 +303,35 @@ macro_rules! tuple_impls { { type Unmanaged = Self; - fn type_name() -> TypeName { - let mut repr = TypeName::from("tuple<"); - $( - if $n > 0 { - repr.push(','); - } - repr.push_str($name::type_name().as_str()); + fn type_name() -> TypeName { + let mut repr = TypeName::from("tuple<"); + $( + if $n > 0 { + repr.push(','); + } + repr.push_str($name::type_name().as_str()); )+ - repr.push('>'); - repr - } + repr.push('>'); + repr + } fn type_name_rust() -> TypeName { - let mut repr = TypeName::from("("); - $( - if $n > 0 { - repr.push_str(", "); - } - repr.push_str($name::type_name_rust().as_str()); + let mut repr = TypeName::from("("); + $( + if $n > 0 { + repr.push_str(", "); + } + repr.push_str($name::type_name_rust().as_str()); )+ - repr.push(')'); - repr - } + repr.push(')'); + repr + } - fn provide_type_descriptions(accumulator: &mut TDC) { - $( - $name::provide_type_descriptions(accumulator); + fn provide_type_descriptions(accumulator: &mut TDC) { + $( + $name::provide_type_descriptions(accumulator); )+ - } + } } )+ } diff --git a/framework/base/src/abi/type_abi_impl_codec_multi.rs b/framework/base/src/abi/type_abi_impl_codec_multi.rs index e86f7c9614..4fc42f37a6 100644 --- a/framework/base/src/abi/type_abi_impl_codec_multi.rs +++ b/framework/base/src/abi/type_abi_impl_codec_multi.rs @@ -115,8 +115,8 @@ macro_rules! multi_arg_impls { } fn provide_type_descriptions(accumulator: &mut TDC) { - $( - $name::provide_type_descriptions(accumulator); + $( + $name::provide_type_descriptions(accumulator); )+ } diff --git a/framework/derive/src/generate/abi_gen.rs b/framework/derive/src/generate/abi_gen.rs index f9a5e8360b..5d5a73934c 100644 --- a/framework/derive/src/generate/abi_gen.rs +++ b/framework/derive/src/generate/abi_gen.rs @@ -197,15 +197,15 @@ fn has_callback(contract: &ContractTrait) -> bool { fn generate_supertrait_snippets(contract: &ContractTrait) -> Vec { contract - .supertraits - .iter() - .map(|supertrait| { - let module_path = &supertrait.module_path; - quote! { - contract_abi.coalesce(<#module_path AbiProvider as multiversx_sc::contract_base::ContractAbiProvider>::abi()); - } - }) - .collect() + .supertraits + .iter() + .map(|supertrait| { + let module_path = &supertrait.module_path; + quote! { + contract_abi.coalesce(<#module_path AbiProvider as multiversx_sc::contract_base::ContractAbiProvider>::abi()); + } + }) + .collect() } fn generate_esdt_attribute_snippets(contract: &ContractTrait) -> Vec { diff --git a/framework/derive/src/generate/callback_gen.rs b/framework/derive/src/generate/callback_gen.rs index 5d1cda744f..d5ed94bc7b 100644 --- a/framework/derive/src/generate/callback_gen.rs +++ b/framework/derive/src/generate/callback_gen.rs @@ -48,7 +48,7 @@ pub fn generate_callback_selector_and_main( let cb_main_body = quote! { if let Some(___cb_closure___) = multiversx_sc::types::CallbackClosureForDeser::storage_load_and_clear::() { if let multiversx_sc::types::CallbackSelectorResult::NotProcessed(_) = - self::EndpointWrappers::callback_selector(self, ___cb_closure___) { + self::EndpointWrappers::callback_selector(self, ___cb_closure___) { multiversx_sc::api::ErrorApiImpl::signal_error( &::error_api_impl(), err_msg::CALLBACK_BAD_FUNC, diff --git a/framework/derive/src/parse/auto_impl_parse.rs b/framework/derive/src/parse/auto_impl_parse.rs index 11553794cd..24002e2139 100644 --- a/framework/derive/src/parse/auto_impl_parse.rs +++ b/framework/derive/src/parse/auto_impl_parse.rs @@ -4,17 +4,17 @@ use super::attributes::*; fn assert_no_other_auto_impl(method: &Method) { assert!( - method.implementation.is_no_implementation(), - "Only one auto-implementation can be specified at one time. Auto-implementations are: {}{}{}{}{}{}{}{}", - "`#[storage_get]`, ", - "`#[storage_set]`, ", - "`#[storage_mapper]`, ", - "`#[storage_is_empty]`, ", - "`#[storage_clear]`, ", - "`#[proxy]`, ", - "`#[module]`, ", - "`#[event]`." - ) + method.implementation.is_no_implementation(), + "Only one auto-implementation can be specified at one time. Auto-implementations are: {}{}{}{}{}{}{}{}", + "`#[storage_get]`, ", + "`#[storage_set]`, ", + "`#[storage_mapper]`, ", + "`#[storage_is_empty]`, ", + "`#[storage_clear]`, ", + "`#[proxy]`, ", + "`#[module]`, ", + "`#[event]`." + ) } pub fn process_event_attribute(attr: &syn::Attribute, method: &mut Method) -> bool { diff --git a/framework/derive/src/parse/endpoint_parse.rs b/framework/derive/src/parse/endpoint_parse.rs index fc68c25c59..5edc30ad08 100644 --- a/framework/derive/src/parse/endpoint_parse.rs +++ b/framework/derive/src/parse/endpoint_parse.rs @@ -15,8 +15,8 @@ use super::{ fn check_single_role(method: &Method) { assert!(matches!(method.public_role, PublicRole::Private), - "Can only annotate with one of the following arguments: `#[init]`, `#[endpoint]`, `#[view]`, `#[callback]`, `#[callback_raw]`, `#[upgrade]`." - ); + "Can only annotate with one of the following arguments: `#[init]`, `#[endpoint]`, `#[view]`, `#[callback]`, `#[callback_raw]`, `#[upgrade]`." + ); } pub fn process_init_attribute( diff --git a/framework/derive/src/parse/payable_parse.rs b/framework/derive/src/parse/payable_parse.rs index 8d199b94a8..91deba4509 100644 --- a/framework/derive/src/parse/payable_parse.rs +++ b/framework/derive/src/parse/payable_parse.rs @@ -6,14 +6,14 @@ pub fn process_payable_attribute( pass_1_data: &mut MethodAttributesPass1, ) -> bool { PayableAttribute::parse(attr).map(|payable_attr| { - if let Some(identifier) = payable_attr.identifier { - pass_1_data.payable = parse_payable_identifier(identifier.as_str()); - } else { - panic!( - "Endpoint `payable` attribute requires one argument. Replace with `#[payable(\"*\")]` or `#[payable(\"EGLD\")]`. Method name: {}", - &pass_1_data.method_name); - } - }).is_some() + if let Some(identifier) = payable_attr.identifier { + pass_1_data.payable = parse_payable_identifier(identifier.as_str()); + } else { + panic!( + "Endpoint `payable` attribute requires one argument. Replace with `#[payable(\"*\")]` or `#[payable(\"EGLD\")]`. Method name: {}", + &pass_1_data.method_name); + } + }).is_some() } fn parse_payable_identifier(identifier: &str) -> MethodPayableMetadata { diff --git a/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs b/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs index f69056f5d6..1673008017 100644 --- a/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs @@ -39,13 +39,13 @@ fn struct_1_encode_decode_skips_reserialization() { }; #[rustfmt::skip] - let bytes_1 = &[ - /* u_8 */ 0x01, - /* u_16 */ 0x00, 0x02, - /* u_32 */ 0x00, 0x00, 0x00, 0x03, - /* u_64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - /* bool */ 0x01, - ]; + let bytes_1 = &[ + /* u_8 */ 0x01, + /* u_16 */ 0x00, 0x02, + /* u_32 */ 0x00, 0x00, 0x00, 0x03, + /* u_64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + /* bool */ 0x01, + ]; check_top_encode_decode(s.clone(), bytes_1); check_dep_encode_decode(s, bytes_1); diff --git a/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs b/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs index 3adfbb34bd..90db2ddddc 100644 --- a/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs @@ -39,15 +39,15 @@ fn struct_to_bytes_writer() { }; #[rustfmt::skip] - let expected_payload = &[ - /* u_8 */ 0x01, - /* u_16 */ 0x00, 0x02, - /* u_32 */ 0x00, 0x00, 0x00, 0x03, - /* u_64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - /* bool */ 0x01, + let expected_payload = &[ + /* u_8 */ 0x01, + /* u_16 */ 0x00, 0x02, + /* u_32 */ 0x00, 0x00, 0x00, 0x03, + /* u_64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + /* bool */ 0x01, /* opt */ 0x01, 0x05, /* arr */ 0x61, 0x11, 0x62, 0x22, - ]; + ]; ::to_byte_writer(&s, |bytes| { assert_eq!(bytes, &expected_payload[..]); @@ -67,15 +67,15 @@ fn struct_2_from_bytes_reader() { }; #[rustfmt::skip] - let payload = &[ - /* u_8 */ 0x01, - /* u_16 */ 0x00, 0x02, - /* u_32 */ 0x00, 0x00, 0x00, 0x03, - /* u_64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - /* bool */ 0x00, + let payload = &[ + /* u_8 */ 0x01, + /* u_16 */ 0x00, 0x02, + /* u_32 */ 0x00, 0x00, 0x00, 0x03, + /* u_64 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + /* bool */ 0x00, /* opt */ 0x01, 0x05, /* arr */ 0x61, 0x11, 0x62, 0x22, - ]; + ]; let struct_from_bytes = ::from_byte_reader(|bytes| { diff --git a/vm/src/world_mock/account_data.rs b/vm/src/world_mock/account_data.rs index 343c49bb8d..9268c4535c 100644 --- a/vm/src/world_mock/account_data.rs +++ b/vm/src/world_mock/account_data.rs @@ -61,13 +61,13 @@ impl fmt::Display for AccountData { write!( f, "AccountData {{ - nonce: {}, - balance: {}, - esdt: [{} ], - username: {}, - storage: [{} ], - developerRewards: {}, - }}", + nonce: {}, + balance: {}, + esdt: [{} ], + username: {}, + storage: [{} ], + developerRewards: {}, + }}", self.nonce, self.egld_balance, self.esdt, From 72751008df70c32cb2a43cf2bb73e3df7f1fa068 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 15:29:06 +0300 Subject: [PATCH 135/185] cleanup --- framework/base/src/macros.rs | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/framework/base/src/macros.rs b/framework/base/src/macros.rs index 55d023ad79..86c963a057 100644 --- a/framework/base/src/macros.rs +++ b/framework/base/src/macros.rs @@ -185,28 +185,3 @@ macro_rules! non_zero_usize { NonZeroUsize::new($input).unwrap_or_else(|| sc_panic!($error_msg)) }; } - -#[macro_export] -macro_rules! constructors_proxy { - ($opt_address:ident) => { - multiversx_sc::types::new_contract_deploy($opt_address); - }; -} - -#[macro_export] -macro_rules! extract_opt_address { - ($address:expr) => {{ - core::mem::replace( - &mut $address.address, - multiversx_sc::types::ManagedOption::none(), - ) - }}; -} - -#[macro_export] -macro_rules! extract_address { - ($address:expr) => {{ - multiversx_sc::extract_opt_address!($address) - .unwrap_or_sc_panic(multiversx_sc::err_msg::RECIPIENT_ADDRESS_NOT_SET) - }}; -} From ce5740130d9d70770114d59c15db389f234b3089 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 17:03:07 +0300 Subject: [PATCH 136/185] release action fix --- .github/workflows/release-upload.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release-upload.yml b/.github/workflows/release-upload.yml index 6031a5d427..6ecb73df9b 100644 --- a/.github/workflows/release-upload.yml +++ b/.github/workflows/release-upload.yml @@ -54,4 +54,3 @@ jobs: file: ./examples-wasm.zip asset_name: examples-wasm.zip overwrite: true - body: "This is my release text" From 1b5839ada22bd517a1634ee5a5e62048d22a959e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 17:18:45 +0300 Subject: [PATCH 137/185] sc 0.49.0, codec 0.18.8, sdk 0.4.0 --- CHANGELOG.md | 8 +++++++ Cargo.lock | 24 +++++++++---------- contracts/benchmarks/large-storage/Cargo.toml | 4 ++-- .../benchmarks/large-storage/meta/Cargo.toml | 2 +- .../benchmarks/large-storage/wasm/Cargo.toml | 2 +- .../mappers/benchmark-common/Cargo.toml | 4 ++-- .../mappers/linked-list-repeat/Cargo.toml | 4 ++-- .../linked-list-repeat/meta/Cargo.toml | 2 +- .../linked-list-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/map-repeat/Cargo.toml | 4 ++-- .../mappers/map-repeat/meta/Cargo.toml | 2 +- .../mappers/map-repeat/wasm/Cargo.toml | 2 +- .../mappers/queue-repeat/Cargo.toml | 4 ++-- .../mappers/queue-repeat/meta/Cargo.toml | 2 +- .../mappers/queue-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/set-repeat/Cargo.toml | 4 ++-- .../mappers/set-repeat/meta/Cargo.toml | 2 +- .../mappers/set-repeat/wasm/Cargo.toml | 2 +- .../mappers/single-value-repeat/Cargo.toml | 4 ++-- .../single-value-repeat/meta/Cargo.toml | 2 +- .../single-value-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/vec-repeat/Cargo.toml | 4 ++-- .../mappers/vec-repeat/meta/Cargo.toml | 2 +- .../mappers/vec-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/send-tx-repeat/Cargo.toml | 4 ++-- .../benchmarks/send-tx-repeat/meta/Cargo.toml | 2 +- .../benchmarks/send-tx-repeat/wasm/Cargo.toml | 2 +- contracts/benchmarks/str-repeat/Cargo.toml | 4 ++-- .../benchmarks/str-repeat/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../benchmarks/str-repeat/wasm/Cargo.toml | 2 +- contracts/core/price-aggregator/Cargo.toml | 8 +++---- .../core/price-aggregator/meta/Cargo.toml | 4 ++-- .../core/price-aggregator/wasm/Cargo.toml | 2 +- contracts/core/wegld-swap/Cargo.toml | 8 +++---- contracts/core/wegld-swap/meta/Cargo.toml | 4 ++-- contracts/core/wegld-swap/wasm/Cargo.toml | 2 +- contracts/examples/adder/Cargo.toml | 4 ++-- contracts/examples/adder/interact/Cargo.toml | 2 +- contracts/examples/adder/meta/Cargo.toml | 2 +- contracts/examples/adder/wasm/Cargo.toml | 2 +- .../bonding-curve-contract/Cargo.toml | 6 ++--- .../bonding-curve-contract/meta/Cargo.toml | 2 +- .../bonding-curve-contract/wasm/Cargo.toml | 2 +- contracts/examples/check-pause/Cargo.toml | 6 ++--- .../examples/check-pause/meta/Cargo.toml | 2 +- .../examples/check-pause/wasm/Cargo.toml | 2 +- .../examples/crowdfunding-esdt/Cargo.toml | 4 ++-- .../crowdfunding-esdt/meta/Cargo.toml | 2 +- .../crowdfunding-esdt/wasm/Cargo.toml | 2 +- contracts/examples/crypto-bubbles/Cargo.toml | 4 ++-- .../examples/crypto-bubbles/meta/Cargo.toml | 2 +- .../examples/crypto-bubbles/wasm/Cargo.toml | 2 +- .../crypto-kitties/common/kitty/Cargo.toml | 2 +- .../crypto-kitties/common/random/Cargo.toml | 2 +- .../crypto-kitties/kitty-auction/Cargo.toml | 4 ++-- .../kitty-auction/meta/Cargo.toml | 2 +- .../kitty-auction/wasm/Cargo.toml | 2 +- .../kitty-genetic-alg/Cargo.toml | 4 ++-- .../kitty-genetic-alg/meta/Cargo.toml | 2 +- .../kitty-genetic-alg/wasm/Cargo.toml | 2 +- .../crypto-kitties/kitty-ownership/Cargo.toml | 4 ++-- .../kitty-ownership/meta/Cargo.toml | 2 +- .../kitty-ownership/wasm/Cargo.toml | 2 +- contracts/examples/crypto-zombies/Cargo.toml | 4 ++-- .../examples/crypto-zombies/meta/Cargo.toml | 2 +- .../examples/crypto-zombies/wasm/Cargo.toml | 2 +- contracts/examples/digital-cash/Cargo.toml | 4 ++-- .../examples/digital-cash/meta/Cargo.toml | 2 +- .../examples/digital-cash/wasm/Cargo.toml | 2 +- contracts/examples/empty/Cargo.toml | 4 ++-- contracts/examples/empty/meta/Cargo.toml | 2 +- contracts/examples/empty/wasm/Cargo.toml | 2 +- .../esdt-transfer-with-fee/Cargo.toml | 4 ++-- .../esdt-transfer-with-fee/meta/Cargo.toml | 2 +- .../esdt-transfer-with-fee/wasm/Cargo.toml | 2 +- contracts/examples/factorial/Cargo.toml | 4 ++-- contracts/examples/factorial/meta/Cargo.toml | 2 +- contracts/examples/factorial/wasm/Cargo.toml | 2 +- contracts/examples/fractional-nfts/Cargo.toml | 6 ++--- .../examples/fractional-nfts/meta/Cargo.toml | 2 +- .../examples/fractional-nfts/wasm/Cargo.toml | 2 +- contracts/examples/lottery-esdt/Cargo.toml | 4 ++-- .../examples/lottery-esdt/meta/Cargo.toml | 2 +- .../examples/lottery-esdt/wasm/Cargo.toml | 2 +- contracts/examples/multisig/Cargo.toml | 8 +++---- .../examples/multisig/interact/Cargo.toml | 6 ++--- contracts/examples/multisig/meta/Cargo.toml | 2 +- .../multisig/wasm-multisig-full/Cargo.toml | 2 +- .../multisig/wasm-multisig-view/Cargo.toml | 2 +- contracts/examples/multisig/wasm/Cargo.toml | 2 +- contracts/examples/nft-minter/Cargo.toml | 4 ++-- contracts/examples/nft-minter/meta/Cargo.toml | 2 +- contracts/examples/nft-minter/wasm/Cargo.toml | 2 +- .../examples/nft-storage-prepay/Cargo.toml | 4 ++-- .../nft-storage-prepay/meta/Cargo.toml | 2 +- .../nft-storage-prepay/wasm/Cargo.toml | 2 +- .../examples/nft-subscription/Cargo.toml | 6 ++--- .../examples/nft-subscription/meta/Cargo.toml | 2 +- .../examples/nft-subscription/wasm/Cargo.toml | 2 +- .../examples/order-book/factory/Cargo.toml | 4 ++-- .../order-book/factory/meta/Cargo.toml | 2 +- .../order-book/factory/wasm/Cargo.toml | 2 +- contracts/examples/order-book/pair/Cargo.toml | 4 ++-- .../examples/order-book/pair/meta/Cargo.toml | 2 +- .../examples/order-book/pair/wasm/Cargo.toml | 2 +- contracts/examples/ping-pong-egld/Cargo.toml | 4 ++-- .../examples/ping-pong-egld/meta/Cargo.toml | 2 +- .../examples/ping-pong-egld/wasm/Cargo.toml | 2 +- contracts/examples/proxy-pause/Cargo.toml | 4 ++-- .../examples/proxy-pause/meta/Cargo.toml | 2 +- .../examples/proxy-pause/wasm/Cargo.toml | 2 +- .../examples/rewards-distribution/Cargo.toml | 6 ++--- .../rewards-distribution/meta/Cargo.toml | 2 +- .../rewards-distribution/wasm/Cargo.toml | 2 +- contracts/examples/seed-nft-minter/Cargo.toml | 6 ++--- .../examples/seed-nft-minter/meta/Cargo.toml | 2 +- .../examples/seed-nft-minter/wasm/Cargo.toml | 2 +- contracts/examples/token-release/Cargo.toml | 4 ++-- .../examples/token-release/meta/Cargo.toml | 2 +- .../examples/token-release/wasm/Cargo.toml | 2 +- contracts/feature-tests/abi-tester/Cargo.toml | 6 ++--- .../abi_tester_expected_main.abi.json | 2 +- .../abi_tester_expected_view.abi.json | 2 +- .../feature-tests/abi-tester/meta/Cargo.toml | 2 +- .../abi-tester/wasm-abi-tester-ev/Cargo.toml | 2 +- .../feature-tests/abi-tester/wasm/Cargo.toml | 2 +- .../feature-tests/alloc-features/Cargo.toml | 4 ++-- .../alloc-features/meta/Cargo.toml | 2 +- .../wasm-alloc-mem-fail/Cargo.toml | 2 +- .../wasm-alloc-mem-leaking/Cargo.toml | 2 +- .../alloc-features/wasm/Cargo.toml | 2 +- .../feature-tests/basic-features/Cargo.toml | 6 ++--- .../basic-features/interact/Cargo.toml | 2 +- .../basic-features/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../basic-features/wasm/Cargo.toml | 2 +- .../big-float-features/Cargo.toml | 4 ++-- .../big-float-features/meta/Cargo.toml | 2 +- .../big-float-features/wasm/Cargo.toml | 2 +- .../feature-tests/composability/Cargo.toml | 4 ++-- .../builtin-func-features/Cargo.toml | 4 ++-- .../builtin-func-features/meta/Cargo.toml | 2 +- .../builtin-func-features/wasm/Cargo.toml | 2 +- .../esdt-contract-pair/Cargo.toml | 4 ++-- .../first-contract/Cargo.toml | 4 ++-- .../first-contract/meta/Cargo.toml | 4 ++-- .../first-contract/wasm/Cargo.toml | 2 +- .../second-contract/Cargo.toml | 4 ++-- .../second-contract/meta/Cargo.toml | 4 ++-- .../second-contract/wasm/Cargo.toml | 2 +- .../Cargo.toml | 4 ++-- .../child/Cargo.toml | 4 ++-- .../child/meta/Cargo.toml | 4 ++-- .../child/wasm/Cargo.toml | 2 +- .../parent/Cargo.toml | 4 ++-- .../parent/meta/Cargo.toml | 4 ++-- .../parent/wasm/Cargo.toml | 2 +- .../composability/forwarder-legacy/Cargo.toml | 4 ++-- .../forwarder-legacy/meta/Cargo.toml | 2 +- .../forwarder-legacy/wasm/Cargo.toml | 2 +- .../composability/forwarder-queue/Cargo.toml | 6 ++--- .../forwarder-queue/meta/Cargo.toml | 2 +- .../wasm-forwarder-queue-promises/Cargo.toml | 2 +- .../forwarder-queue/wasm/Cargo.toml | 2 +- .../composability/forwarder-raw/Cargo.toml | 4 ++-- .../forwarder-raw/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../forwarder-raw/wasm/Cargo.toml | 2 +- .../composability/forwarder/Cargo.toml | 4 ++-- .../composability/forwarder/meta/Cargo.toml | 2 +- .../composability/forwarder/wasm/Cargo.toml | 2 +- .../composability/interact/Cargo.toml | 4 ++-- .../local-esdt-and-nft/Cargo.toml | 4 ++-- .../local-esdt-and-nft/meta/Cargo.toml | 2 +- .../local-esdt-and-nft/wasm/Cargo.toml | 2 +- .../promises-features/Cargo.toml | 2 +- .../promises-features/meta/Cargo.toml | 2 +- .../promises-features/wasm/Cargo.toml | 2 +- .../composability/proxy-test-first/Cargo.toml | 4 ++-- .../proxy-test-first/meta/Cargo.toml | 2 +- .../proxy-test-first/wasm/Cargo.toml | 2 +- .../proxy-test-second/Cargo.toml | 4 ++-- .../proxy-test-second/meta/Cargo.toml | 2 +- .../proxy-test-second/wasm/Cargo.toml | 2 +- .../composability/recursive-caller/Cargo.toml | 4 ++-- .../recursive-caller/meta/Cargo.toml | 2 +- .../recursive-caller/wasm/Cargo.toml | 2 +- .../transfer-role-features/Cargo.toml | 6 ++--- .../transfer-role-features/meta/Cargo.toml | 2 +- .../transfer-role-features/wasm/Cargo.toml | 2 +- .../composability/vault/Cargo.toml | 4 ++-- .../composability/vault/meta/Cargo.toml | 2 +- .../vault/wasm-vault-promises/Cargo.toml | 2 +- .../vault/wasm-vault-upgrade/Cargo.toml | 2 +- .../composability/vault/wasm/Cargo.toml | 2 +- .../crowdfunding-erc20/Cargo.toml | 4 ++-- .../crowdfunding-erc20/meta/Cargo.toml | 2 +- .../crowdfunding-erc20/wasm/Cargo.toml | 2 +- .../erc1155-marketplace/Cargo.toml | 4 ++-- .../erc1155-marketplace/meta/Cargo.toml | 2 +- .../erc1155-marketplace/wasm/Cargo.toml | 2 +- .../erc1155-user-mock/Cargo.toml | 4 ++-- .../erc1155-user-mock/meta/Cargo.toml | 2 +- .../erc1155-user-mock/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc1155/Cargo.toml | 4 ++-- .../erc1155/meta/Cargo.toml | 2 +- .../erc1155/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc20/Cargo.toml | 4 ++-- .../erc-style-contracts/erc20/meta/Cargo.toml | 2 +- .../erc-style-contracts/erc20/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc721/Cargo.toml | 4 ++-- .../erc721/meta/Cargo.toml | 2 +- .../erc721/wasm/Cargo.toml | 2 +- .../lottery-erc20/Cargo.toml | 4 ++-- .../lottery-erc20/meta/Cargo.toml | 2 +- .../lottery-erc20/wasm/Cargo.toml | 2 +- .../esdt-system-sc-mock/Cargo.toml | 4 ++-- .../esdt-system-sc-mock/meta/Cargo.toml | 2 +- .../esdt-system-sc-mock/wasm/Cargo.toml | 2 +- .../exchange-features/Cargo.toml | 4 ++-- .../exchange-features/meta/Cargo.toml | 2 +- .../exchange-features/wasm/Cargo.toml | 2 +- .../formatted-message-features/Cargo.toml | 4 ++-- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- .../managed-map-features/Cargo.toml | 4 ++-- .../managed-map-features/meta/Cargo.toml | 2 +- .../managed-map-features/wasm/Cargo.toml | 2 +- .../multi-contract-features/Cargo.toml | 4 ++-- .../multi-contract-features/meta/Cargo.toml | 2 +- .../wasm-multi-contract-alt-impl/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../multi-contract-features/wasm/Cargo.toml | 2 +- .../panic-message-features/Cargo.toml | 4 ++-- .../panic-message-features/meta/Cargo.toml | 2 +- .../panic-message-features/wasm/Cargo.toml | 2 +- .../feature-tests/payable-features/Cargo.toml | 4 ++-- .../payable-features/meta/Cargo.toml | 2 +- .../payable-features/wasm/Cargo.toml | 2 +- .../rust-snippets-generator-test/Cargo.toml | 4 ++-- .../interact-rs/Cargo.toml | 2 +- .../meta/Cargo.toml | 2 +- .../rust-snippets-generator-test/src/lib.rs | 2 +- .../wasm/Cargo.toml | 2 +- .../rust-testing-framework-tester/Cargo.toml | 4 ++-- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- .../feature-tests/scenario-tester/Cargo.toml | 4 ++-- .../scenario-tester/meta/Cargo.toml | 2 +- .../scenario-tester/wasm/Cargo.toml | 2 +- contracts/feature-tests/use-module/Cargo.toml | 8 +++---- .../feature-tests/use-module/meta/Cargo.toml | 2 +- .../use-module/meta/abi/Cargo.toml | 4 ++-- .../use_module_expected_main.abi.json | 2 +- .../use_module_expected_view.abi.json | 2 +- .../wasm-use-module-view/Cargo.toml | 2 +- .../feature-tests/use-module/wasm/Cargo.toml | 2 +- contracts/modules/Cargo.toml | 4 ++-- data/codec-derive/Cargo.toml | 2 +- data/codec/Cargo.toml | 6 ++--- framework/base/Cargo.toml | 6 ++--- framework/derive/Cargo.toml | 2 +- framework/meta/Cargo.toml | 4 ++-- .../generate_snippets/snippet_crate_gen.rs | 2 +- .../meta/src/cmd/contract/meta_config.rs | 4 ++-- framework/meta/src/version_history.rs | 3 ++- framework/scenario/Cargo.toml | 8 +++---- framework/snippets/Cargo.toml | 6 ++--- framework/wasm-adapter/Cargo.toml | 4 ++-- sdk/core/Cargo.toml | 2 +- tools/mxpy-snippet-generator/Cargo.toml | 2 +- tools/rust-debugger/format-tests/Cargo.toml | 4 ++-- 276 files changed, 415 insertions(+), 406 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 382ea1f2f5..030ef99324 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,14 @@ They are: - `multiversx-chain-scenario-format`, in short `scenario-format`, scenario JSON serializer/deserializer, 1 crate. - `multiversx-sdk`, in short `sdk`, allows communication with the chain(s), 1 crate. +## [sc 0.49.0, codec 0.18.8, sdk 0.4.0] - 2024-05-07 +- Unified transaction syntax + - new syntax for sending transactions from contracts + - new syntax for integration tests: tx, set state, check state, etc. + - new syntax for interactors + - new proxies, generated from sc-meta + - support for upgrade in new proxies +- Improved interactor tx result polling performance. ## [sc 0.48.1, codec 0.18.7] - 2024-04-30 - Simplified decoding of small numbers (i64/u64). diff --git a/Cargo.lock b/Cargo.lock index 4c2fff583b..d3eae4e638 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -1821,7 +1821,7 @@ checksum = "b59072fa0624b55ae5ae3fa6bfa91515bbeb4ac440214bc4a509e2c8806d6e9f" [[package]] name = "multiversx-price-aggregator-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "arrayvec", "getrandom 0.2.14", @@ -1842,7 +1842,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags 2.4.2", "hex-literal", @@ -1853,7 +1853,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -1862,7 +1862,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -1872,7 +1872,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -1883,7 +1883,7 @@ dependencies = [ [[package]] name = "multiversx-sc-meta" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "clap", "colored", @@ -1909,14 +1909,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-scenario" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "base64 0.21.7", "bech32", @@ -1942,7 +1942,7 @@ dependencies = [ [[package]] name = "multiversx-sc-snippets" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "base64 0.21.7", "env_logger", @@ -1957,14 +1957,14 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sdk" -version = "0.4.0-alpha.4" +version = "0.4.0" dependencies = [ "anyhow", "base64 0.21.7", @@ -1988,7 +1988,7 @@ dependencies = [ [[package]] name = "multiversx-wegld-swap-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", "multiversx-sc-modules", diff --git a/contracts/benchmarks/large-storage/Cargo.toml b/contracts/benchmarks/large-storage/Cargo.toml index 238cfc0286..dcc5cdf376 100644 --- a/contracts/benchmarks/large-storage/Cargo.toml +++ b/contracts/benchmarks/large-storage/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/large_storage.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/large-storage/meta/Cargo.toml b/contracts/benchmarks/large-storage/meta/Cargo.toml index 5ab3b3f4ea..7bcc6749aa 100644 --- a/contracts/benchmarks/large-storage/meta/Cargo.toml +++ b/contracts/benchmarks/large-storage/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.toml b/contracts/benchmarks/large-storage/wasm/Cargo.toml index ee513468bf..fde48c533f 100644 --- a/contracts/benchmarks/large-storage/wasm/Cargo.toml +++ b/contracts/benchmarks/large-storage/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/benchmark-common/Cargo.toml b/contracts/benchmarks/mappers/benchmark-common/Cargo.toml index 3143c4c059..e040a59306 100644 --- a/contracts/benchmarks/mappers/benchmark-common/Cargo.toml +++ b/contracts/benchmarks/mappers/benchmark-common/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml index 390e9c729a..f7ed9b60c4 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml index f719432fba..7686ad097b 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml index 5218df0664..cf4d28c279 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/map-repeat/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/Cargo.toml index 53a9c8cb30..19dd700f43 100644 --- a/contracts/benchmarks/mappers/map-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml index b8d61cf474..e2f453869c 100644 --- a/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml index 6153f35d8f..e0cbbf5bb3 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/queue-repeat/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/Cargo.toml index 7eae0e8177..0ef6135592 100644 --- a/contracts/benchmarks/mappers/queue-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml index ef5d420e27..ac96744a95 100644 --- a/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml index 2ebeda1f2e..c878a5a4f1 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/set-repeat/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/Cargo.toml index ebf2958e90..20121d24af 100644 --- a/contracts/benchmarks/mappers/set-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml index 269df5be03..1be790193f 100644 --- a/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml index aa37b34c3e..ea33bd0bf5 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml index 34e3426254..075eb30b8e 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml index 8487ef015b..e693e7e883 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml index 3ac2ae3b96..e74af019ff 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/vec-repeat/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/Cargo.toml index 8c7b4a9d8e..97b51e3a6f 100644 --- a/contracts/benchmarks/mappers/vec-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml index fc6c8ebd33..8a7d769dc1 100644 --- a/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml index 8779eaa521..540da31865 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/send-tx-repeat/Cargo.toml b/contracts/benchmarks/send-tx-repeat/Cargo.toml index 440bfa0946..326bafd16e 100644 --- a/contracts/benchmarks/send-tx-repeat/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/send_tx_repeat.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml b/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml index fb2c8f50cf..78a283168b 100644 --- a/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml index f42955ebbd..d25bec0cbf 100644 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/Cargo.toml b/contracts/benchmarks/str-repeat/Cargo.toml index 0d46d631dd..6fe33bc9df 100644 --- a/contracts/benchmarks/str-repeat/Cargo.toml +++ b/contracts/benchmarks/str-repeat/Cargo.toml @@ -12,10 +12,10 @@ path = "src/str_repeat.rs" managed-buffer-builder-cached = ["multiversx-sc/managed-buffer-builder-cached"] [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/str-repeat/meta/Cargo.toml b/contracts/benchmarks/str-repeat/meta/Cargo.toml index dbf074583d..160503d84f 100644 --- a/contracts/benchmarks/str-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/str-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml index b840dd0a3b..760ea14af5 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml index 53db7f0b4a..f91e231e9b 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml @@ -26,7 +26,7 @@ path = ".." features = ["managed-buffer-builder-cached"] [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.toml b/contracts/benchmarks/str-repeat/wasm/Cargo.toml index fa54772480..c6b036ae15 100644 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/core/price-aggregator/Cargo.toml b/contracts/core/price-aggregator/Cargo.toml index aad9c4ce9c..290806c1f2 100644 --- a/contracts/core/price-aggregator/Cargo.toml +++ b/contracts/core/price-aggregator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-price-aggregator-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" authors = [ "Claudiu-Marcel Bruda ", "MultiversX ", @@ -19,15 +19,15 @@ edition = "2021" path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dependencies] diff --git a/contracts/core/price-aggregator/meta/Cargo.toml b/contracts/core/price-aggregator/meta/Cargo.toml index 5b01eac017..b3ee5b7f88 100644 --- a/contracts/core/price-aggregator/meta/Cargo.toml +++ b/contracts/core/price-aggregator/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/core/price-aggregator/wasm/Cargo.toml b/contracts/core/price-aggregator/wasm/Cargo.toml index c4d502a4ca..11dc27513d 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.toml +++ b/contracts/core/price-aggregator/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/core/wegld-swap/Cargo.toml b/contracts/core/wegld-swap/Cargo.toml index d61623cc64..cb7582ec0a 100644 --- a/contracts/core/wegld-swap/Cargo.toml +++ b/contracts/core/wegld-swap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-wegld-swap-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" authors = [ "Dorin Iancu ", @@ -20,13 +20,13 @@ edition = "2021" path = "src/wegld.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/core/wegld-swap/meta/Cargo.toml b/contracts/core/wegld-swap/meta/Cargo.toml index 2956444fc8..d6d2b99c18 100644 --- a/contracts/core/wegld-swap/meta/Cargo.toml +++ b/contracts/core/wegld-swap/meta/Cargo.toml @@ -11,10 +11,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/core/wegld-swap/wasm/Cargo.toml b/contracts/core/wegld-swap/wasm/Cargo.toml index f21e9e13cb..bd89039edf 100644 --- a/contracts/core/wegld-swap/wasm/Cargo.toml +++ b/contracts/core/wegld-swap/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/adder/Cargo.toml b/contracts/examples/adder/Cargo.toml index 489904d6d6..370ddbcc94 100644 --- a/contracts/examples/adder/Cargo.toml +++ b/contracts/examples/adder/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/adder.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/adder/interact/Cargo.toml b/contracts/examples/adder/interact/Cargo.toml index 3cd72a5e2b..ead28c7bb3 100644 --- a/contracts/examples/adder/interact/Cargo.toml +++ b/contracts/examples/adder/interact/Cargo.toml @@ -18,5 +18,5 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/snippets" diff --git a/contracts/examples/adder/meta/Cargo.toml b/contracts/examples/adder/meta/Cargo.toml index 3e56ed66d7..c4a84b1d55 100644 --- a/contracts/examples/adder/meta/Cargo.toml +++ b/contracts/examples/adder/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/adder/wasm/Cargo.toml b/contracts/examples/adder/wasm/Cargo.toml index a759e0edf8..aafd60afd7 100644 --- a/contracts/examples/adder/wasm/Cargo.toml +++ b/contracts/examples/adder/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/bonding-curve-contract/Cargo.toml b/contracts/examples/bonding-curve-contract/Cargo.toml index 4a9d90bddc..87585ce189 100644 --- a/contracts/examples/bonding-curve-contract/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/bonding_curve_contract.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/bonding-curve-contract/meta/Cargo.toml b/contracts/examples/bonding-curve-contract/meta/Cargo.toml index dbcdbc57e0..a8d9d6f565 100644 --- a/contracts/examples/bonding-curve-contract/meta/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml index bf4f7f2d5b..0490cd4242 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/check-pause/Cargo.toml b/contracts/examples/check-pause/Cargo.toml index 355224e160..8eae83200f 100644 --- a/contracts/examples/check-pause/Cargo.toml +++ b/contracts/examples/check-pause/Cargo.toml @@ -12,14 +12,14 @@ path = "src/check_pause.rs" num-bigint = "0.4" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/check-pause/meta/Cargo.toml b/contracts/examples/check-pause/meta/Cargo.toml index 21465dc7ed..444b267995 100644 --- a/contracts/examples/check-pause/meta/Cargo.toml +++ b/contracts/examples/check-pause/meta/Cargo.toml @@ -9,6 +9,6 @@ authors = ["Alin Cruceat "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/check-pause/wasm/Cargo.toml b/contracts/examples/check-pause/wasm/Cargo.toml index 0602c3b653..1fbff49573 100644 --- a/contracts/examples/check-pause/wasm/Cargo.toml +++ b/contracts/examples/check-pause/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crowdfunding-esdt/Cargo.toml b/contracts/examples/crowdfunding-esdt/Cargo.toml index 498b1999b6..ddacb5ea88 100644 --- a/contracts/examples/crowdfunding-esdt/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/crowdfunding_esdt.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/examples/crowdfunding-esdt/meta/Cargo.toml b/contracts/examples/crowdfunding-esdt/meta/Cargo.toml index 191c2d0a28..fd8c223775 100644 --- a/contracts/examples/crowdfunding-esdt/meta/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml index 93c39e692f..0a40e452fc 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-bubbles/Cargo.toml b/contracts/examples/crypto-bubbles/Cargo.toml index 6e841be6b9..06d8e5bf0e 100644 --- a/contracts/examples/crypto-bubbles/Cargo.toml +++ b/contracts/examples/crypto-bubbles/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/crypto_bubbles.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/crypto-bubbles/meta/Cargo.toml b/contracts/examples/crypto-bubbles/meta/Cargo.toml index 60b167f206..6b38860ee5 100644 --- a/contracts/examples/crypto-bubbles/meta/Cargo.toml +++ b/contracts/examples/crypto-bubbles/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.toml b/contracts/examples/crypto-bubbles/wasm/Cargo.toml index cbfe399baf..67549b7a21 100644 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.toml +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/common/kitty/Cargo.toml b/contracts/examples/crypto-kitties/common/kitty/Cargo.toml index d83a9fdd5d..4eb640e54d 100644 --- a/contracts/examples/crypto-kitties/common/kitty/Cargo.toml +++ b/contracts/examples/crypto-kitties/common/kitty/Cargo.toml @@ -9,7 +9,7 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/base" [dependencies.random] diff --git a/contracts/examples/crypto-kitties/common/random/Cargo.toml b/contracts/examples/crypto-kitties/common/random/Cargo.toml index bfab4a12d7..4bae32ba87 100644 --- a/contracts/examples/crypto-kitties/common/random/Cargo.toml +++ b/contracts/examples/crypto-kitties/common/random/Cargo.toml @@ -8,5 +8,5 @@ edition = "2021" path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/base" diff --git a/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml index ce7971579f..261d16405e 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml @@ -17,9 +17,9 @@ version = "0.0.0" path = "../kitty-ownership" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml index 938f83ffd6..f9f7905ded 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml index 5234956e51..85a3695084 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml index 3027dad875..927d5dddb8 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml @@ -18,9 +18,9 @@ version = "0.0.0" path = "../common/random" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml index c0e781f92f..e2a77bc1b2 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml index f4a92c4b71..16081ba43d 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml index 642afa1862..051e4a41fe 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml @@ -21,9 +21,9 @@ version = "0.0.0" path = "../kitty-genetic-alg" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml index 8937e968d2..9352e5ca50 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml index def5af05df..c8ec0db96b 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-zombies/Cargo.toml b/contracts/examples/crypto-zombies/Cargo.toml index 3888d9ecb7..f0df60381e 100644 --- a/contracts/examples/crypto-zombies/Cargo.toml +++ b/contracts/examples/crypto-zombies/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dependencies.kitty] diff --git a/contracts/examples/crypto-zombies/meta/Cargo.toml b/contracts/examples/crypto-zombies/meta/Cargo.toml index 2d94d2d074..4cda0e49a2 100644 --- a/contracts/examples/crypto-zombies/meta/Cargo.toml +++ b/contracts/examples/crypto-zombies/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.toml b/contracts/examples/crypto-zombies/wasm/Cargo.toml index d99df32433..e434220b42 100644 --- a/contracts/examples/crypto-zombies/wasm/Cargo.toml +++ b/contracts/examples/crypto-zombies/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/digital-cash/Cargo.toml b/contracts/examples/digital-cash/Cargo.toml index 05df36f381..5acc43a29e 100644 --- a/contracts/examples/digital-cash/Cargo.toml +++ b/contracts/examples/digital-cash/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/digital_cash.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/digital-cash/meta/Cargo.toml b/contracts/examples/digital-cash/meta/Cargo.toml index a54b5f1ea3..2109e5f03f 100644 --- a/contracts/examples/digital-cash/meta/Cargo.toml +++ b/contracts/examples/digital-cash/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/digital-cash/wasm/Cargo.toml b/contracts/examples/digital-cash/wasm/Cargo.toml index fd23cf19e3..260968204c 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.toml +++ b/contracts/examples/digital-cash/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/empty/Cargo.toml b/contracts/examples/empty/Cargo.toml index ff22118a94..bc4fd42421 100644 --- a/contracts/examples/empty/Cargo.toml +++ b/contracts/examples/empty/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/empty.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/examples/empty/meta/Cargo.toml b/contracts/examples/empty/meta/Cargo.toml index 80e2c84bdf..e41ae94b75 100644 --- a/contracts/examples/empty/meta/Cargo.toml +++ b/contracts/examples/empty/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/empty/wasm/Cargo.toml b/contracts/examples/empty/wasm/Cargo.toml index 61cf8db541..fe28578b11 100644 --- a/contracts/examples/empty/wasm/Cargo.toml +++ b/contracts/examples/empty/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/esdt-transfer-with-fee/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/Cargo.toml index 10ef50f36c..cb6f14b852 100644 --- a/contracts/examples/esdt-transfer-with-fee/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/esdt_transfer_with_fee.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml index a40832325b..4cbd3d2966 100644 --- a/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml index 07cb085e0f..b69e4d3701 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/factorial/Cargo.toml b/contracts/examples/factorial/Cargo.toml index 49724f1760..deeb24230a 100644 --- a/contracts/examples/factorial/Cargo.toml +++ b/contracts/examples/factorial/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/factorial.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/factorial/meta/Cargo.toml b/contracts/examples/factorial/meta/Cargo.toml index 2a5a7f7a8f..d3030adfea 100644 --- a/contracts/examples/factorial/meta/Cargo.toml +++ b/contracts/examples/factorial/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/factorial/wasm/Cargo.toml b/contracts/examples/factorial/wasm/Cargo.toml index 4625a90cc9..80d3ca57a9 100644 --- a/contracts/examples/factorial/wasm/Cargo.toml +++ b/contracts/examples/factorial/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/fractional-nfts/Cargo.toml b/contracts/examples/fractional-nfts/Cargo.toml index ec60d9d32a..85f79c2d3a 100644 --- a/contracts/examples/fractional-nfts/Cargo.toml +++ b/contracts/examples/fractional-nfts/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/fractional_nfts.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/fractional-nfts/meta/Cargo.toml b/contracts/examples/fractional-nfts/meta/Cargo.toml index d7a32ed9b1..36b7ab580a 100644 --- a/contracts/examples/fractional-nfts/meta/Cargo.toml +++ b/contracts/examples/fractional-nfts/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.toml b/contracts/examples/fractional-nfts/wasm/Cargo.toml index 47c9c4a88c..892c0af17c 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.toml +++ b/contracts/examples/fractional-nfts/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/lottery-esdt/Cargo.toml b/contracts/examples/lottery-esdt/Cargo.toml index c4d7d29cd3..0efa27bad0 100644 --- a/contracts/examples/lottery-esdt/Cargo.toml +++ b/contracts/examples/lottery-esdt/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lottery.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/lottery-esdt/meta/Cargo.toml b/contracts/examples/lottery-esdt/meta/Cargo.toml index b2cd28df5c..c27259bfc9 100644 --- a/contracts/examples/lottery-esdt/meta/Cargo.toml +++ b/contracts/examples/lottery-esdt/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.toml b/contracts/examples/lottery-esdt/wasm/Cargo.toml index 5da7483f04..aa99f1ba8b 100644 --- a/contracts/examples/lottery-esdt/wasm/Cargo.toml +++ b/contracts/examples/lottery-esdt/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/Cargo.toml b/contracts/examples/multisig/Cargo.toml index 035057ec58..0965cf8e44 100644 --- a/contracts/examples/multisig/Cargo.toml +++ b/contracts/examples/multisig/Cargo.toml @@ -9,15 +9,15 @@ publish = false path = "src/multisig.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies.adder] @@ -27,7 +27,7 @@ path = "../adder" path = "../factorial" [dev-dependencies.multiversx-wegld-swap-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../core/wegld-swap" [dev-dependencies] diff --git a/contracts/examples/multisig/interact/Cargo.toml b/contracts/examples/multisig/interact/Cargo.toml index 32869be20c..8e332e4b35 100644 --- a/contracts/examples/multisig/interact/Cargo.toml +++ b/contracts/examples/multisig/interact/Cargo.toml @@ -18,13 +18,13 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../contracts/modules" [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/snippets" [dependencies.multiversx-sc-scenario] -version = "=0.49.0-alpha.4" +version = "=0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/multisig/meta/Cargo.toml b/contracts/examples/multisig/meta/Cargo.toml index 0e29c29265..b5a20507cb 100644 --- a/contracts/examples/multisig/meta/Cargo.toml +++ b/contracts/examples/multisig/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml index a2d98375aa..3496533206 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml index 2c6a48b470..6bca11ea28 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/wasm/Cargo.toml b/contracts/examples/multisig/wasm/Cargo.toml index f2202ffdb1..605ab510d2 100644 --- a/contracts/examples/multisig/wasm/Cargo.toml +++ b/contracts/examples/multisig/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-minter/Cargo.toml b/contracts/examples/nft-minter/Cargo.toml index eb2ec96156..338861c1c6 100644 --- a/contracts/examples/nft-minter/Cargo.toml +++ b/contracts/examples/nft-minter/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-minter/meta/Cargo.toml b/contracts/examples/nft-minter/meta/Cargo.toml index cee7821359..1f9e5c3426 100644 --- a/contracts/examples/nft-minter/meta/Cargo.toml +++ b/contracts/examples/nft-minter/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-minter/wasm/Cargo.toml b/contracts/examples/nft-minter/wasm/Cargo.toml index 241a4215e2..0027925f16 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.toml +++ b/contracts/examples/nft-minter/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-storage-prepay/Cargo.toml b/contracts/examples/nft-storage-prepay/Cargo.toml index 136281df96..1f84d968f1 100644 --- a/contracts/examples/nft-storage-prepay/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/Cargo.toml @@ -10,9 +10,9 @@ path = "src/nft_storage_prepay.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-storage-prepay/meta/Cargo.toml b/contracts/examples/nft-storage-prepay/meta/Cargo.toml index c1ddf2adc1..d5bc2477af 100644 --- a/contracts/examples/nft-storage-prepay/meta/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/meta/Cargo.toml @@ -11,6 +11,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml index 99a5c3c1a6..4bb9934697 100644 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-subscription/Cargo.toml b/contracts/examples/nft-subscription/Cargo.toml index be7a39917e..68d04d57a0 100644 --- a/contracts/examples/nft-subscription/Cargo.toml +++ b/contracts/examples/nft-subscription/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-subscription/meta/Cargo.toml b/contracts/examples/nft-subscription/meta/Cargo.toml index d122df52df..b338b27089 100644 --- a/contracts/examples/nft-subscription/meta/Cargo.toml +++ b/contracts/examples/nft-subscription/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-subscription/wasm/Cargo.toml b/contracts/examples/nft-subscription/wasm/Cargo.toml index 532cc400e4..564dd5b645 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.toml +++ b/contracts/examples/nft-subscription/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/order-book/factory/Cargo.toml b/contracts/examples/order-book/factory/Cargo.toml index 9a4978df8a..9d2461e39a 100644 --- a/contracts/examples/order-book/factory/Cargo.toml +++ b/contracts/examples/order-book/factory/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/order-book/factory/meta/Cargo.toml b/contracts/examples/order-book/factory/meta/Cargo.toml index 3518de30d2..c218e0d100 100644 --- a/contracts/examples/order-book/factory/meta/Cargo.toml +++ b/contracts/examples/order-book/factory/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/order-book/factory/wasm/Cargo.toml b/contracts/examples/order-book/factory/wasm/Cargo.toml index 1ee94f9d8e..bfc68cb87e 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.toml +++ b/contracts/examples/order-book/factory/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/order-book/pair/Cargo.toml b/contracts/examples/order-book/pair/Cargo.toml index a93917179a..c888a2b68b 100644 --- a/contracts/examples/order-book/pair/Cargo.toml +++ b/contracts/examples/order-book/pair/Cargo.toml @@ -8,9 +8,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/order-book/pair/meta/Cargo.toml b/contracts/examples/order-book/pair/meta/Cargo.toml index 6f4ba52f4e..916eeb5b35 100644 --- a/contracts/examples/order-book/pair/meta/Cargo.toml +++ b/contracts/examples/order-book/pair/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/order-book/pair/wasm/Cargo.toml b/contracts/examples/order-book/pair/wasm/Cargo.toml index dd343a9dfc..dbb8cf2ffa 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.toml +++ b/contracts/examples/order-book/pair/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/ping-pong-egld/Cargo.toml b/contracts/examples/ping-pong-egld/Cargo.toml index fc86298452..9b932eeb32 100644 --- a/contracts/examples/ping-pong-egld/Cargo.toml +++ b/contracts/examples/ping-pong-egld/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/ping_pong.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/ping-pong-egld/meta/Cargo.toml b/contracts/examples/ping-pong-egld/meta/Cargo.toml index a8bc467391..0d90a922fa 100644 --- a/contracts/examples/ping-pong-egld/meta/Cargo.toml +++ b/contracts/examples/ping-pong-egld/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.toml b/contracts/examples/ping-pong-egld/wasm/Cargo.toml index 8438778f1b..3fc4f94d78 100644 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.toml +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/proxy-pause/Cargo.toml b/contracts/examples/proxy-pause/Cargo.toml index 382dfd9f27..ebb7a49d11 100644 --- a/contracts/examples/proxy-pause/Cargo.toml +++ b/contracts/examples/proxy-pause/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/proxy_pause.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies.check-pause] diff --git a/contracts/examples/proxy-pause/meta/Cargo.toml b/contracts/examples/proxy-pause/meta/Cargo.toml index 4be34a41ba..8e8fc44c7f 100644 --- a/contracts/examples/proxy-pause/meta/Cargo.toml +++ b/contracts/examples/proxy-pause/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = [ "you",] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/proxy-pause/wasm/Cargo.toml b/contracts/examples/proxy-pause/wasm/Cargo.toml index 939f828e70..6cfffd232a 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.toml +++ b/contracts/examples/proxy-pause/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/rewards-distribution/Cargo.toml b/contracts/examples/rewards-distribution/Cargo.toml index d518ea5586..dad96385d1 100644 --- a/contracts/examples/rewards-distribution/Cargo.toml +++ b/contracts/examples/rewards-distribution/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/rewards_distribution.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/rewards-distribution/meta/Cargo.toml b/contracts/examples/rewards-distribution/meta/Cargo.toml index bfddb43d6f..254c15933f 100644 --- a/contracts/examples/rewards-distribution/meta/Cargo.toml +++ b/contracts/examples/rewards-distribution/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = ["Claudiu-Marcel Bruda "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.toml b/contracts/examples/rewards-distribution/wasm/Cargo.toml index a62cac8525..9f562d7cac 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.toml +++ b/contracts/examples/rewards-distribution/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/seed-nft-minter/Cargo.toml b/contracts/examples/seed-nft-minter/Cargo.toml index a57db6b6dc..2d7df44815 100644 --- a/contracts/examples/seed-nft-minter/Cargo.toml +++ b/contracts/examples/seed-nft-minter/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/seed_nft_minter.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/seed-nft-minter/meta/Cargo.toml b/contracts/examples/seed-nft-minter/meta/Cargo.toml index af481426af..a25a40890d 100644 --- a/contracts/examples/seed-nft-minter/meta/Cargo.toml +++ b/contracts/examples/seed-nft-minter/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = ["Claudiu-Marcel Bruda "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.toml b/contracts/examples/seed-nft-minter/wasm/Cargo.toml index e6a61820c9..7b224ce48c 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.toml +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/token-release/Cargo.toml b/contracts/examples/token-release/Cargo.toml index 7c7c810787..1433b850db 100644 --- a/contracts/examples/token-release/Cargo.toml +++ b/contracts/examples/token-release/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/token_release.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/examples/token-release/meta/Cargo.toml b/contracts/examples/token-release/meta/Cargo.toml index 68be5330b2..990c33fa6f 100644 --- a/contracts/examples/token-release/meta/Cargo.toml +++ b/contracts/examples/token-release/meta/Cargo.toml @@ -10,7 +10,7 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/token-release/wasm/Cargo.toml b/contracts/examples/token-release/wasm/Cargo.toml index bce00fce24..3a3f04c9df 100644 --- a/contracts/examples/token-release/wasm/Cargo.toml +++ b/contracts/examples/token-release/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/abi-tester/Cargo.toml b/contracts/feature-tests/abi-tester/Cargo.toml index 714c488750..a2f0a34982 100644 --- a/contracts/feature-tests/abi-tester/Cargo.toml +++ b/contracts/feature-tests/abi-tester/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/abi_tester.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/meta" diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json index 77d8423bfb..c45d388a93 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0-alpha.4" + "version": "0.49.0" } }, "docs": [ diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json index f678f60c87..10926621d5 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0-alpha.4" + "version": "0.49.0" } }, "docs": [ diff --git a/contracts/feature-tests/abi-tester/meta/Cargo.toml b/contracts/feature-tests/abi-tester/meta/Cargo.toml index 7edae725e5..2d1614552c 100644 --- a/contracts/feature-tests/abi-tester/meta/Cargo.toml +++ b/contracts/feature-tests/abi-tester/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml index 963ef8f870..d8896c6b95 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.toml b/contracts/feature-tests/abi-tester/wasm/Cargo.toml index f5700ad92e..953b746080 100644 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/Cargo.toml b/contracts/feature-tests/alloc-features/Cargo.toml index 3dd34d56a7..a6b7570493 100644 --- a/contracts/feature-tests/alloc-features/Cargo.toml +++ b/contracts/feature-tests/alloc-features/Cargo.toml @@ -9,12 +9,12 @@ publish = false path = "src/alloc_features_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/alloc-features/meta/Cargo.toml b/contracts/feature-tests/alloc-features/meta/Cargo.toml index 3ed3b16104..39e2e2bbb5 100644 --- a/contracts/feature-tests/alloc-features/meta/Cargo.toml +++ b/contracts/feature-tests/alloc-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml index 130a20cf6e..731b271739 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml index aa66bcb1cb..48125b5285 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.toml b/contracts/feature-tests/alloc-features/wasm/Cargo.toml index 0a8f7e641a..cc94610a76 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/basic-features/Cargo.toml b/contracts/feature-tests/basic-features/Cargo.toml index f3633e8bd1..d38410d6b9 100644 --- a/contracts/feature-tests/basic-features/Cargo.toml +++ b/contracts/feature-tests/basic-features/Cargo.toml @@ -9,15 +9,15 @@ publish = false path = "src/basic_features_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/basic-features/interact/Cargo.toml b/contracts/feature-tests/basic-features/interact/Cargo.toml index ef0209cab4..b419907f30 100644 --- a/contracts/feature-tests/basic-features/interact/Cargo.toml +++ b/contracts/feature-tests/basic-features/interact/Cargo.toml @@ -18,5 +18,5 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/snippets" diff --git a/contracts/feature-tests/basic-features/meta/Cargo.toml b/contracts/feature-tests/basic-features/meta/Cargo.toml index 670da00dbd..e3ef8d92db 100644 --- a/contracts/feature-tests/basic-features/meta/Cargo.toml +++ b/contracts/feature-tests/basic-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml index 7d1cc921f4..484bbd9eab 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.toml b/contracts/feature-tests/basic-features/wasm/Cargo.toml index cf42ff107a..e8f2e89165 100644 --- a/contracts/feature-tests/basic-features/wasm/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = true path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/big-float-features/Cargo.toml b/contracts/feature-tests/big-float-features/Cargo.toml index ae27c92b74..9df1290f46 100644 --- a/contracts/feature-tests/big-float-features/Cargo.toml +++ b/contracts/feature-tests/big-float-features/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/big_float_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/big-float-features/meta/Cargo.toml b/contracts/feature-tests/big-float-features/meta/Cargo.toml index 603f584ece..86e89a8b3e 100644 --- a/contracts/feature-tests/big-float-features/meta/Cargo.toml +++ b/contracts/feature-tests/big-float-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.toml b/contracts/feature-tests/big-float-features/wasm/Cargo.toml index 13c3fb8bdc..011e22c44a 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.toml +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/Cargo.toml b/contracts/feature-tests/composability/Cargo.toml index 5d372b4128..a046d2fc04 100644 --- a/contracts/feature-tests/composability/Cargo.toml +++ b/contracts/feature-tests/composability/Cargo.toml @@ -36,9 +36,9 @@ path = "recursive-caller" path = "vault" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/composability/builtin-func-features/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/Cargo.toml index 58c9d24215..b3b2c9f699 100644 --- a/contracts/feature-tests/composability/builtin-func-features/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/builtin_func_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml index 3c33b8d81d..064dbaccaf 100644 --- a/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml index 63dbe95fcb..5cf4535ffd 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml index 63b7e46395..721c6184f3 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml @@ -12,9 +12,9 @@ path = "first-contract" path = "second-contract" [dev-dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml index 49c6e25659..7af866cd4e 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml index ccf10c89ad..4abad84c18 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml index 57c15b6fe2..70121cf1c4 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml index 89fe5071b8..57e6ed92c9 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml @@ -10,10 +10,10 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml index 8788acf4ac..c09425c97d 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml index aa93fcf9d7..676da35aa5 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml index c90b451b29..c5e600ae68 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml @@ -16,9 +16,9 @@ path = "parent" path = "child" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml index a084afe56c..6fc29bfa35 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml @@ -10,9 +10,9 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml index a1b68d9807..0d2a3c28e2 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml index b9678d7c3e..55541c2438 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml index 7fbc51b49a..e590beb2ce 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml index 8e9105a3ad..eaaffc0f52 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml index 62fb2dc77c..708e761902 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml index 8d985f30c1..ab4e3ef6fc 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml @@ -12,10 +12,10 @@ path = "src/forwarder_legacy_main.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml index de74469420..c10276be04 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml index 3ce5ef1de3..6a3b6a7db6 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-queue/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/Cargo.toml index accf0696e9..aff16f1726 100644 --- a/contracts/feature-tests/composability/forwarder-queue/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/forwarder_queue.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" optional = true [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml index 6347cdc858..87460aa1f3 100644 --- a/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml index ea15c56706..738ff2254d 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml index ae6dab9b35..6e68841010 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/Cargo.toml index 98838bf0e4..f7713252f0 100644 --- a/contracts/feature-tests/composability/forwarder-raw/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/forwarder_raw.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml index 221d44e4eb..cdba5af76c 100644 --- a/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml index 208dcd4d05..628a019ba9 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml index 5b4c266c48..4df2025d6e 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml index 63cfbfed3b..2ada534753 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder/Cargo.toml b/contracts/feature-tests/composability/forwarder/Cargo.toml index 6790cc028c..c7c2f34df3 100644 --- a/contracts/feature-tests/composability/forwarder/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/forwarder_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder/meta/Cargo.toml index a6b2ad50fa..28d02e3a90 100644 --- a/contracts/feature-tests/composability/forwarder/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml index 2395849caf..f4afdbd6bc 100644 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/interact/Cargo.toml b/contracts/feature-tests/composability/interact/Cargo.toml index 97cd3f93f5..cacf68eb1d 100644 --- a/contracts/feature-tests/composability/interact/Cargo.toml +++ b/contracts/feature-tests/composability/interact/Cargo.toml @@ -24,9 +24,9 @@ path = "../forwarder-queue" path = "../promises-features" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../contracts/modules" [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/snippets" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml index b969ae9c8b..e5022c4f59 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml @@ -10,9 +10,9 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml index d9aa379fde..e30d729827 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml index 89dfb08625..5aebe2081a 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/promises-features/Cargo.toml b/contracts/feature-tests/composability/promises-features/Cargo.toml index d8f4c2ed7e..77cc9ef833 100644 --- a/contracts/feature-tests/composability/promises-features/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = "src/promises_main.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" diff --git a/contracts/feature-tests/composability/promises-features/meta/Cargo.toml b/contracts/feature-tests/composability/promises-features/meta/Cargo.toml index 16159a0190..28c3c0b2c9 100644 --- a/contracts/feature-tests/composability/promises-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml index cdb0aa0d3e..ed1a31a561 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/proxy-test-first/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/Cargo.toml index 6a9fcceaaf..bc21b32a39 100644 --- a/contracts/feature-tests/composability/proxy-test-first/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/Cargo.toml @@ -12,10 +12,10 @@ path = "src/proxy-test-first.rs" hex-literal = "0.4.1" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml index 02488e11e3..b38a0f5474 100644 --- a/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml index 88a44946b0..9ae8feb646 100644 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/proxy-test-second/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/Cargo.toml index d3d878969d..c9ae4da5f8 100644 --- a/contracts/feature-tests/composability/proxy-test-second/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/proxy-test-second.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml index dcfd56990b..2ca6853d31 100644 --- a/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml index b93eb8a20f..f5f1de43bf 100644 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/recursive-caller/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/Cargo.toml index bd7b5fa4af..a85f718ce4 100644 --- a/contracts/feature-tests/composability/recursive-caller/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/Cargo.toml @@ -12,9 +12,9 @@ path = "src/recursive_caller.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml index 4b2f4f93b8..0c59d660b1 100644 --- a/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml index d12fc3c8c6..7f026d2bf6 100644 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/transfer-role-features/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/Cargo.toml index 9f1da71c0b..8d379cdaed 100644 --- a/contracts/feature-tests/composability/transfer-role-features/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/Cargo.toml @@ -12,13 +12,13 @@ path = "src/lib.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml index 3100fcd04c..f6823d80da 100644 --- a/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml index 6a49bd9d5c..9c071c6f48 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/Cargo.toml b/contracts/feature-tests/composability/vault/Cargo.toml index 58201feda6..b2e54fbf1a 100644 --- a/contracts/feature-tests/composability/vault/Cargo.toml +++ b/contracts/feature-tests/composability/vault/Cargo.toml @@ -10,9 +10,9 @@ path = "src/vault.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/vault/meta/Cargo.toml b/contracts/feature-tests/composability/vault/meta/Cargo.toml index e7d99c51cc..3cb6d85611 100644 --- a/contracts/feature-tests/composability/vault/meta/Cargo.toml +++ b/contracts/feature-tests/composability/vault/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml index 9d3799aedb..ce209e8861 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml index d0e8dd308b..c09b60d9bd 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.toml b/contracts/feature-tests/composability/vault/wasm/Cargo.toml index 7b8ee74e2c..5556a14d7c 100644 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml index f3e9127598..58f8eb9a66 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml @@ -12,10 +12,10 @@ path = "src/crowdfunding_erc20.rs" path = "../erc20" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml index fdee90fda9..c964676fcc 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml index 20285a8b66..846a20893b 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml index 630c24b5f2..3c1fd04452 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml @@ -13,10 +13,10 @@ path = "src/lib.rs" path = "../erc1155" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml index 64f519f9a3..3f010b8d56 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml index b4b0a71b4c..cc9804afef 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml index 27c5f2d2a6..5a35bd1ac8 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml index d662e3f8e9..c95b91c9c8 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml index 0af2d54c37..e993861b13 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml index 1566019c49..6e245b8603 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml @@ -9,12 +9,12 @@ publish = false path = "src/erc1155.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" [dev-dependencies.erc1155-user-mock] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml index 8cad0e03b2..917bcfdf75 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml index 6299d90bcb..1f64f8f90b 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml index 8d12e823b9..e622226f95 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/erc20.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml index 0db234389f..13356ab1e2 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml index 060cf6a1a1..baf2d29699 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml index b0aff72a5c..54d2d63fcc 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml @@ -10,9 +10,9 @@ path = "src/erc721.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml index 05ee5b504e..df452bd789 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml index c18d25cd9b..c248eadc43 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml index 3995505b5a..abea523dd1 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml @@ -12,10 +12,10 @@ path = "src/lottery.rs" path = "../erc20" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml index 81e598d14e..1edc440467 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml index 0bcd0316c2..5538ad6642 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml index 8e8b693ebe..6414a39d8c 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/esdt_system_sc_mock.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml index 425d3ee8eb..f53e18476b 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml index 690f09686b..9ab183ed3f 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/exchange-features/Cargo.toml b/contracts/feature-tests/exchange-features/Cargo.toml index 2963251bb9..8d21d6320b 100644 --- a/contracts/feature-tests/exchange-features/Cargo.toml +++ b/contracts/feature-tests/exchange-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/exchange_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/exchange-features/meta/Cargo.toml b/contracts/feature-tests/exchange-features/meta/Cargo.toml index a5bb2c339e..539f20a16a 100644 --- a/contracts/feature-tests/exchange-features/meta/Cargo.toml +++ b/contracts/feature-tests/exchange-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.toml b/contracts/feature-tests/exchange-features/wasm/Cargo.toml index 9aed886551..415f4440cb 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.toml +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/formatted-message-features/Cargo.toml b/contracts/feature-tests/formatted-message-features/Cargo.toml index 3ae3030b5d..6511a95524 100644 --- a/contracts/feature-tests/formatted-message-features/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/formatted_message_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/formatted-message-features/meta/Cargo.toml b/contracts/feature-tests/formatted-message-features/meta/Cargo.toml index 1dbe41b175..03b89e8914 100644 --- a/contracts/feature-tests/formatted-message-features/meta/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = [ "you",] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml index 8230ed884b..3b59f56fac 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/managed-map-features/Cargo.toml b/contracts/feature-tests/managed-map-features/Cargo.toml index 552cbb84b0..f52eefc261 100644 --- a/contracts/feature-tests/managed-map-features/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/mmap_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/managed-map-features/meta/Cargo.toml b/contracts/feature-tests/managed-map-features/meta/Cargo.toml index 91c7eb646a..ddd71f8b4e 100644 --- a/contracts/feature-tests/managed-map-features/meta/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml index 5762a40856..2124503c5e 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/Cargo.toml b/contracts/feature-tests/multi-contract-features/Cargo.toml index 213f19e779..2d36eb9bc2 100644 --- a/contracts/feature-tests/multi-contract-features/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/Cargo.toml @@ -12,9 +12,9 @@ path = "src/multi_contract_features.rs" example_feature = [] [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/multi-contract-features/meta/Cargo.toml b/contracts/feature-tests/multi-contract-features/meta/Cargo.toml index 866bfa5da1..e3cf62d271 100644 --- a/contracts/feature-tests/multi-contract-features/meta/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml index 1f77f836ed..bb41653159 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml index f6ebe4edb9..458be4822b 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml @@ -26,7 +26,7 @@ path = ".." features = ["example_feature"] [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml index 28a8f95c7c..43e72ed5d9 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml index ba28d1f0d1..5839b62616 100644 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/panic-message-features/Cargo.toml b/contracts/feature-tests/panic-message-features/Cargo.toml index 11eb995356..608aa93444 100644 --- a/contracts/feature-tests/panic-message-features/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/panic_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/panic-message-features/meta/Cargo.toml b/contracts/feature-tests/panic-message-features/meta/Cargo.toml index 7e1007837d..c5ffba6f1a 100644 --- a/contracts/feature-tests/panic-message-features/meta/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml index 3b0455e096..92951f91d9 100644 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/payable-features/Cargo.toml b/contracts/feature-tests/payable-features/Cargo.toml index 7973c85f03..d310d91154 100644 --- a/contracts/feature-tests/payable-features/Cargo.toml +++ b/contracts/feature-tests/payable-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/payable_features.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/payable-features/meta/Cargo.toml b/contracts/feature-tests/payable-features/meta/Cargo.toml index bc934da0cf..88c95cb422 100644 --- a/contracts/feature-tests/payable-features/meta/Cargo.toml +++ b/contracts/feature-tests/payable-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.toml b/contracts/feature-tests/payable-features/wasm/Cargo.toml index 8cd5e49030..0ef022a269 100644 --- a/contracts/feature-tests/payable-features/wasm/Cargo.toml +++ b/contracts/feature-tests/payable-features/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml index 4f4fb8ba56..3519576de9 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml index c84332da38..893542fe1d 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml @@ -13,7 +13,7 @@ path = "src/interactor_main.rs" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/snippets" # [workspace] diff --git a/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml index 5260217e43..3ca3dc298c 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs b/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs index 13fd970d29..160a3556f0 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs +++ b/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs @@ -13,7 +13,7 @@ multiversx_sc::derive_imports!(); // Additionally, we also have to update the interact-rs snippets manually to add relative paths: // [dependencies.multiversx-sc-snippets] -// version = "0.48.1" +// version = "0.49.0" // path = "../../../../framework/snippets" #[derive( diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml index 38946bc17a..200d74fe46 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml index aa9942a6d7..41ba45dadf 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" publish = false [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" features = [ "alloc" ] @@ -17,7 +17,7 @@ path = "../../examples/adder" path = "../../feature-tests/basic-features" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml index 7e63f066fa..02bfe884d6 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml index 26a2d8d271..e9abe077df 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/scenario-tester/Cargo.toml b/contracts/feature-tests/scenario-tester/Cargo.toml index 33c6f5cdcc..6e6fe3b9ba 100644 --- a/contracts/feature-tests/scenario-tester/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/scenario-tester/meta/Cargo.toml b/contracts/feature-tests/scenario-tester/meta/Cargo.toml index 2d689e8a13..4737585715 100644 --- a/contracts/feature-tests/scenario-tester/meta/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/scenario-tester/wasm/Cargo.toml b/contracts/feature-tests/scenario-tester/wasm/Cargo.toml index fc67b3c6dc..672a7c796c 100644 --- a/contracts/feature-tests/scenario-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/use-module/Cargo.toml b/contracts/feature-tests/use-module/Cargo.toml index 24efcdf34c..a98424a2cf 100644 --- a/contracts/feature-tests/use-module/Cargo.toml +++ b/contracts/feature-tests/use-module/Cargo.toml @@ -9,17 +9,17 @@ publish = false path = "src/use_module.rs" [dependencies.multiversx-sc-modules] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../contracts/modules" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/scenario" [dev-dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../framework/meta" diff --git a/contracts/feature-tests/use-module/meta/Cargo.toml b/contracts/feature-tests/use-module/meta/Cargo.toml index bd6cec3fee..f98bb6d842 100644 --- a/contracts/feature-tests/use-module/meta/Cargo.toml +++ b/contracts/feature-tests/use-module/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/use-module/meta/abi/Cargo.toml b/contracts/feature-tests/use-module/meta/abi/Cargo.toml index 7d3415622f..1e5c98bd8f 100644 --- a/contracts/feature-tests/use-module/meta/abi/Cargo.toml +++ b/contracts/feature-tests/use-module/meta/abi/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/use-module/use_module_expected_main.abi.json b/contracts/feature-tests/use-module/use_module_expected_main.abi.json index 372d1ca170..d12b746e0e 100644 --- a/contracts/feature-tests/use-module/use_module_expected_main.abi.json +++ b/contracts/feature-tests/use-module/use_module_expected_main.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0-alpha.4" + "version": "0.49.0" } }, "docs": [ diff --git a/contracts/feature-tests/use-module/use_module_expected_view.abi.json b/contracts/feature-tests/use-module/use_module_expected_view.abi.json index 7b0ae08a4f..4ea01b94a8 100644 --- a/contracts/feature-tests/use-module/use_module_expected_view.abi.json +++ b/contracts/feature-tests/use-module/use_module_expected_view.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0-alpha.4" + "version": "0.49.0" } }, "docs": [ diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml index 62a866a3e3..eea6ec7dc1 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/use-module/wasm/Cargo.toml b/contracts/feature-tests/use-module/wasm/Cargo.toml index f514309260..50a3d5bf82 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm/Cargo.toml @@ -25,7 +25,7 @@ overflow-checks = false path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/modules/Cargo.toml b/contracts/modules/Cargo.toml index 924bbab515..a9f513191b 100644 --- a/contracts/modules/Cargo.toml +++ b/contracts/modules/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" edition = "2021" authors = ["MultiversX "] @@ -17,5 +17,5 @@ categories = ["no-std", "wasm", "cryptography::cryptocurrencies"] alloc = ["multiversx-sc/alloc"] [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../framework/base" diff --git a/data/codec-derive/Cargo.toml b/data/codec-derive/Cargo.toml index 25c6a716b0..e1cd5d43ad 100644 --- a/data/codec-derive/Cargo.toml +++ b/data/codec-derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" edition = "2021" authors = ["dorin.iancu ", "Andrei Marinica ", "MultiversX "] diff --git a/data/codec/Cargo.toml b/data/codec/Cargo.toml index d3d8d14099..126e22e54f 100644 --- a/data/codec/Cargo.toml +++ b/data/codec/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] @@ -19,7 +19,7 @@ alloc = [] [dependencies.multiversx-sc-codec-derive] path = "../codec-derive" -version = "=0.18.7" +version = "=0.18.8" optional = true [dependencies] @@ -28,4 +28,4 @@ num-bigint = { version = "=0.4.4", optional = true } # can only be used in std c [dev-dependencies.multiversx-sc-codec-derive] path = "../codec-derive" -version = "=0.18.7" +version = "=0.18.8" diff --git a/framework/base/Cargo.toml b/framework/base/Cargo.toml index de706261d1..50e7274de5 100644 --- a/framework/base/Cargo.toml +++ b/framework/base/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] @@ -28,10 +28,10 @@ bitflags = "=2.4.2" num-traits = { version = "=0.2.17", default-features = false } [dependencies.multiversx-sc-derive] -version = "=0.49.0-alpha.4" +version = "=0.49.0" path = "../derive" [dependencies.multiversx-sc-codec] -version = "=0.18.7" +version = "=0.18.8" path = "../../data/codec" features = ["derive"] diff --git a/framework/derive/Cargo.toml b/framework/derive/Cargo.toml index c9c1c4635c..65ccd606ec 100644 --- a/framework/derive/Cargo.toml +++ b/framework/derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] diff --git a/framework/meta/Cargo.toml b/framework/meta/Cargo.toml index 805f3e7942..ef881a2f8c 100644 --- a/framework/meta/Cargo.toml +++ b/framework/meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-meta" -version = "0.49.0-alpha.4" +version = "0.49.0" edition = "2021" authors = [ @@ -52,7 +52,7 @@ pathdiff = { version = "0.2.1", optional = true } common-path = { version = "1.0.0", optional = true } [dependencies.multiversx-sc] -version = "=0.49.0-alpha.4" +version = "=0.49.0" path = "../base" features = ["alloc", "num-bigint"] diff --git a/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs b/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs index 72a192b0aa..09a2efeca1 100644 --- a/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs +++ b/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs @@ -69,7 +69,7 @@ path = "src/{SNIPPETS_SOURCE_FILE_NAME}" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.48.1" +version = "0.49.0" # [workspace] diff --git a/framework/meta/src/cmd/contract/meta_config.rs b/framework/meta/src/cmd/contract/meta_config.rs index cf5b91aa48..1e75900261 100644 --- a/framework/meta/src/cmd/contract/meta_config.rs +++ b/framework/meta/src/cmd/contract/meta_config.rs @@ -205,7 +205,7 @@ overflow-checks = false path = \"..\" [dependencies.multiversx-sc-wasm-adapter] -version = \"0.48.1\" +version = \"0.49.0\" path = \"../../../../framework/wasm-adapter\" [workspace] @@ -218,7 +218,7 @@ members = [\".\"] name: "test".to_string(), edition: "2021".to_string(), profile: ContractVariantProfile::default(), - framework_version: "0.48.1".to_string(), + framework_version: "0.49.0".to_string(), framework_path: Option::Some("../../../framework/base".to_string()), contract_features: Vec::::new(), }; diff --git a/framework/meta/src/version_history.rs b/framework/meta/src/version_history.rs index 5db786b025..146ebc4d57 100644 --- a/framework/meta/src/version_history.rs +++ b/framework/meta/src/version_history.rs @@ -3,7 +3,7 @@ use crate::{framework_version, framework_versions, version::FrameworkVersion}; /// The last version to be used for upgrades and templates. /// /// Should be edited every time a new version of the framework is released. -pub const LAST_VERSION: FrameworkVersion = framework_version!(0.48.1); +pub const LAST_VERSION: FrameworkVersion = framework_version!(0.49.0); /// Indicates where to stop with the upgrades. pub const LAST_UPGRADE_VERSION: FrameworkVersion = LAST_VERSION; @@ -68,6 +68,7 @@ pub const VERSIONS: &[FrameworkVersion] = framework_versions![ 0.47.8, 0.48.0, 0.48.1, + 0.49.0, ]; #[rustfmt::skip] diff --git a/framework/scenario/Cargo.toml b/framework/scenario/Cargo.toml index d946575a3c..5ad46c5c1a 100644 --- a/framework/scenario/Cargo.toml +++ b/framework/scenario/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-scenario" -version = "0.49.0-alpha.4" +version = "0.49.0" edition = "2021" authors = [ @@ -40,12 +40,12 @@ path = "src/main.rs" run-go-tests = [] [dependencies.multiversx-sc] -version = "=0.49.0-alpha.4" +version = "=0.49.0" features = ["alloc", "num-bigint"] path = "../base" [dependencies.multiversx-sc-meta] -version = "=0.49.0-alpha.4" +version = "=0.49.0" path = "../meta" [dependencies.multiversx-chain-scenario-format] @@ -60,5 +60,5 @@ version = "=0.8.3" path = "../../vm" [dependencies.multiversx-sdk] -version = "=0.4.0-alpha.4" +version = "=0.4.0" path = "../../sdk/core" diff --git a/framework/snippets/Cargo.toml b/framework/snippets/Cargo.toml index 954ebb2ea9..8ce800326f 100644 --- a/framework/snippets/Cargo.toml +++ b/framework/snippets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-snippets" -version = "0.49.0-alpha.4" +version = "0.49.0" edition = "2021" authors = ["MultiversX "] @@ -23,9 +23,9 @@ futures = "0.3" rand = "0.8.5" [dependencies.multiversx-sc-scenario] -version = "=0.49.0-alpha.4" +version = "=0.49.0" path = "../scenario" [dependencies.multiversx-sdk] -version = "=0.4.0-alpha.4" +version = "=0.4.0" path = "../../sdk/core" diff --git a/framework/wasm-adapter/Cargo.toml b/framework/wasm-adapter/Cargo.toml index 8db81d396e..89aabf537c 100644 --- a/framework/wasm-adapter/Cargo.toml +++ b/framework/wasm-adapter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" edition = "2021" authors = [ @@ -22,5 +22,5 @@ categories = [ ] [dependencies.multiversx-sc] -version = "=0.49.0-alpha.4" +version = "=0.49.0" path = "../base" diff --git a/sdk/core/Cargo.toml b/sdk/core/Cargo.toml index 88b496cd3d..d8039324ba 100644 --- a/sdk/core/Cargo.toml +++ b/sdk/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sdk" -version = "0.4.0-alpha.4" +version = "0.4.0" edition = "2021" authors = [ diff --git a/tools/mxpy-snippet-generator/Cargo.toml b/tools/mxpy-snippet-generator/Cargo.toml index 8390f16c01..44f616b0f3 100644 --- a/tools/mxpy-snippet-generator/Cargo.toml +++ b/tools/mxpy-snippet-generator/Cargo.toml @@ -10,7 +10,7 @@ name = "mxpy-snippet-generator" path = "src/mxpy_snippet_generator.rs" [dependencies.multiversx-sc] -version = "0.49.0-alpha.4" +version = "0.49.0" path = "../../framework/base" [dependencies] diff --git a/tools/rust-debugger/format-tests/Cargo.toml b/tools/rust-debugger/format-tests/Cargo.toml index b44925e9d1..1e44ac884f 100644 --- a/tools/rust-debugger/format-tests/Cargo.toml +++ b/tools/rust-debugger/format-tests/Cargo.toml @@ -9,11 +9,11 @@ name = "format-tests" path = "src/format_tests.rs" [dependencies.multiversx-sc] -version = "=0.49.0-alpha.4" +version = "=0.49.0" path = "../../../framework/base" [dependencies.multiversx-sc-scenario] -version = "=0.49.0-alpha.4" +version = "=0.49.0" path = "../../../framework/scenario" [dependencies.multiversx-chain-vm] From ebd08263ee80c4a44b574a5ba1c5b67ab9e88e1e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 17:32:46 +0300 Subject: [PATCH 138/185] Cargo.lock update --- .../benchmarks/large-storage/wasm/Cargo.lock | 14 ++++++------ .../linked-list-repeat/wasm/Cargo.lock | 14 ++++++------ .../mappers/map-repeat/wasm/Cargo.lock | 14 ++++++------ .../mappers/queue-repeat/wasm/Cargo.lock | 14 ++++++------ .../mappers/set-repeat/wasm/Cargo.lock | 14 ++++++------ .../single-value-repeat/wasm/Cargo.lock | 14 ++++++------ .../mappers/vec-repeat/wasm/Cargo.lock | 14 ++++++------ .../benchmarks/send-tx-repeat/wasm/Cargo.lock | 14 ++++++------ .../Cargo.lock | 14 ++++++------ .../Cargo.lock | 14 ++++++------ .../benchmarks/str-repeat/wasm/Cargo.lock | 14 ++++++------ .../core/price-aggregator/wasm/Cargo.lock | 22 +++++++++---------- contracts/examples/adder/wasm/Cargo.lock | 14 ++++++------ .../bonding-curve-contract/wasm/Cargo.lock | 16 +++++++------- .../examples/check-pause/wasm/Cargo.lock | 16 +++++++------- .../crowdfunding-esdt/wasm/Cargo.lock | 14 ++++++------ .../examples/crypto-bubbles/wasm/Cargo.lock | 14 ++++++------ .../kitty-auction/wasm/Cargo.lock | 14 ++++++------ .../kitty-genetic-alg/wasm/Cargo.lock | 14 ++++++------ .../kitty-ownership/wasm/Cargo.lock | 14 ++++++------ .../examples/crypto-zombies/wasm/Cargo.lock | 14 ++++++------ .../examples/digital-cash/wasm/Cargo.lock | 14 ++++++------ contracts/examples/empty/wasm/Cargo.lock | 14 ++++++------ .../esdt-transfer-with-fee/wasm/Cargo.lock | 14 ++++++------ contracts/examples/factorial/wasm/Cargo.lock | 14 ++++++------ .../examples/fractional-nfts/wasm/Cargo.lock | 16 +++++++------- .../examples/lottery-esdt/wasm/Cargo.lock | 14 ++++++------ .../multisig/wasm-multisig-full/Cargo.lock | 16 +++++++------- .../multisig/wasm-multisig-view/Cargo.lock | 16 +++++++------- contracts/examples/multisig/wasm/Cargo.lock | 16 +++++++------- contracts/examples/nft-minter/wasm/Cargo.lock | 14 ++++++------ .../nft-storage-prepay/wasm/Cargo.lock | 14 ++++++------ .../examples/nft-subscription/wasm/Cargo.lock | 16 +++++++------- .../order-book/factory/wasm/Cargo.lock | 14 ++++++------ .../examples/order-book/pair/wasm/Cargo.lock | 14 ++++++------ .../examples/ping-pong-egld/wasm/Cargo.lock | 14 ++++++------ .../examples/proxy-pause/wasm/Cargo.lock | 14 ++++++------ .../rewards-distribution/wasm/Cargo.lock | 16 +++++++------- .../examples/seed-nft-minter/wasm/Cargo.lock | 16 +++++++------- .../examples/token-release/wasm/Cargo.lock | 14 ++++++------ .../abi-tester/wasm-abi-tester-ev/Cargo.lock | 14 ++++++------ .../feature-tests/abi-tester/wasm/Cargo.lock | 14 ++++++------ .../wasm-alloc-mem-fail/Cargo.lock | 14 ++++++------ .../wasm-alloc-mem-leaking/Cargo.lock | 14 ++++++------ .../alloc-features/wasm/Cargo.lock | 14 ++++++------ .../Cargo.lock | 16 +++++++------- .../basic-features/wasm/Cargo.lock | 16 +++++++------- .../big-float-features/wasm/Cargo.lock | 14 ++++++------ .../builtin-func-features/wasm/Cargo.lock | 14 ++++++------ .../first-contract/wasm/Cargo.lock | 14 ++++++------ .../second-contract/wasm/Cargo.lock | 14 ++++++------ .../child/wasm/Cargo.lock | 14 ++++++------ .../parent/wasm/Cargo.lock | 14 ++++++------ .../forwarder-legacy/wasm/Cargo.lock | 14 ++++++------ .../wasm-forwarder-queue-promises/Cargo.lock | 14 ++++++------ .../forwarder-queue/wasm/Cargo.lock | 14 ++++++------ .../Cargo.lock | 14 ++++++------ .../Cargo.lock | 14 ++++++------ .../forwarder-raw/wasm/Cargo.lock | 14 ++++++------ .../composability/forwarder/wasm/Cargo.lock | 14 ++++++------ .../local-esdt-and-nft/wasm/Cargo.lock | 14 ++++++------ .../promises-features/wasm/Cargo.lock | 14 ++++++------ .../proxy-test-first/wasm/Cargo.lock | 14 ++++++------ .../proxy-test-second/wasm/Cargo.lock | 14 ++++++------ .../recursive-caller/wasm/Cargo.lock | 14 ++++++------ .../transfer-role-features/wasm/Cargo.lock | 16 +++++++------- .../vault/wasm-vault-promises/Cargo.lock | 14 ++++++------ .../vault/wasm-vault-upgrade/Cargo.lock | 14 ++++++------ .../composability/vault/wasm/Cargo.lock | 14 ++++++------ .../crowdfunding-erc20/wasm/Cargo.lock | 14 ++++++------ .../erc1155-marketplace/wasm/Cargo.lock | 14 ++++++------ .../erc1155-user-mock/wasm/Cargo.lock | 14 ++++++------ .../erc1155/wasm/Cargo.lock | 14 ++++++------ .../erc-style-contracts/erc20/wasm/Cargo.lock | 14 ++++++------ .../erc721/wasm/Cargo.lock | 14 ++++++------ .../lottery-erc20/wasm/Cargo.lock | 14 ++++++------ .../esdt-system-sc-mock/wasm/Cargo.lock | 14 ++++++------ .../exchange-features/wasm/Cargo.lock | 14 ++++++------ .../wasm/Cargo.lock | 14 ++++++------ .../managed-map-features/wasm/Cargo.lock | 14 ++++++------ .../wasm-multi-contract-alt-impl/Cargo.lock | 14 ++++++------ .../Cargo.lock | 14 ++++++------ .../Cargo.lock | 14 ++++++------ .../multi-contract-features/wasm/Cargo.lock | 14 ++++++------ .../panic-message-features/wasm/Cargo.lock | 14 ++++++------ .../payable-features/wasm/Cargo.lock | 14 ++++++------ .../wasm/Cargo.lock | 14 ++++++------ .../wasm/Cargo.lock | 14 ++++++------ .../scenario-tester/wasm/Cargo.lock | 14 ++++++------ .../wasm-use-module-view/Cargo.lock | 16 +++++++------- .../feature-tests/use-module/wasm/Cargo.lock | 16 +++++++------- 91 files changed, 655 insertions(+), 655 deletions(-) diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.lock b/contracts/benchmarks/large-storage/wasm/Cargo.lock index b662f443d9..3b11d697fe 100755 --- a/contracts/benchmarks/large-storage/wasm/Cargo.lock +++ b/contracts/benchmarks/large-storage/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock index 7e08a995d1..449c08ea0f 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "benchmark-common" @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock index 1c21676a00..19bbfef34c 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "benchmark-common" @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock index ad70d21672..3142322933 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "benchmark-common" @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock index 1cee879d4d..5f6c1735e6 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "benchmark-common" @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock index dbb15cc548..8b63d51212 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "benchmark-common" @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock index b212e81e0d..66f60c60c1 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "benchmark-common" @@ -47,7 +47,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -58,7 +58,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock index 5dca9592c8..cf7a8f3585 100755 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock index e33366ed86..f855655dcc 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock index 6ccbcbaadd..938e18a3af 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.lock b/contracts/benchmarks/str-repeat/wasm/Cargo.lock index 39020dc5b8..e7ac6d7c34 100755 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/core/price-aggregator/wasm/Cargo.lock b/contracts/core/price-aggregator/wasm/Cargo.lock index e67c9cc32c..22f75ad2dc 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.lock +++ b/contracts/core/price-aggregator/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,9 +40,9 @@ checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] name = "getrandom" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "js-sys", @@ -86,7 +86,7 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "multiversx-price-aggregator-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "arrayvec", "getrandom", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -116,7 +116,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -124,7 +124,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -134,7 +134,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -145,14 +145,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/adder/wasm/Cargo.lock b/contracts/examples/adder/wasm/Cargo.lock index 2773eb0d37..32d924124d 100755 --- a/contracts/examples/adder/wasm/Cargo.lock +++ b/contracts/examples/adder/wasm/Cargo.lock @@ -25,9 +25,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock index 698514f67d..1651cd25a5 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/check-pause/wasm/Cargo.lock b/contracts/examples/check-pause/wasm/Cargo.lock index 814b67a5c7..08d28dc3c1 100644 --- a/contracts/examples/check-pause/wasm/Cargo.lock +++ b/contracts/examples/check-pause/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock index 346820f735..bd090a21c2 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.lock b/contracts/examples/crypto-bubbles/wasm/Cargo.lock index a3381f8c16..02af9ea52a 100755 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.lock +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock index a5bb4027f4..c4ed9a8d55 100755 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -113,7 +113,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -124,7 +124,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock index 264017dfc5..1cfdbcd549 100755 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -65,7 +65,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock index 69e81a180a..51f1a57e2c 100755 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -104,7 +104,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -115,7 +115,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.lock b/contracts/examples/crypto-zombies/wasm/Cargo.lock index 01b50384d8..fd15242089 100755 --- a/contracts/examples/crypto-zombies/wasm/Cargo.lock +++ b/contracts/examples/crypto-zombies/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -64,7 +64,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -83,7 +83,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -93,7 +93,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -104,7 +104,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/digital-cash/wasm/Cargo.lock b/contracts/examples/digital-cash/wasm/Cargo.lock index db281885ba..b219c11d18 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.lock +++ b/contracts/examples/digital-cash/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/empty/wasm/Cargo.lock b/contracts/examples/empty/wasm/Cargo.lock index 791a8a78d4..0e20a220f6 100755 --- a/contracts/examples/empty/wasm/Cargo.lock +++ b/contracts/examples/empty/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock index b18d50c99d..cbd337a9a1 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/factorial/wasm/Cargo.lock b/contracts/examples/factorial/wasm/Cargo.lock index f11e7fea1f..b6292af287 100755 --- a/contracts/examples/factorial/wasm/Cargo.lock +++ b/contracts/examples/factorial/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.lock b/contracts/examples/fractional-nfts/wasm/Cargo.lock index 5c51eaa65f..ac836d1710 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.lock +++ b/contracts/examples/fractional-nfts/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.lock b/contracts/examples/lottery-esdt/wasm/Cargo.lock index 3618971bb7..f2208fefe8 100755 --- a/contracts/examples/lottery-esdt/wasm/Cargo.lock +++ b/contracts/examples/lottery-esdt/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock index 657d9df054..c70b17ae5c 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock index 8ad4962469..557912beb6 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/multisig/wasm/Cargo.lock b/contracts/examples/multisig/wasm/Cargo.lock index 4ca5fcc903..e1bc7eb308 100755 --- a/contracts/examples/multisig/wasm/Cargo.lock +++ b/contracts/examples/multisig/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-minter/wasm/Cargo.lock b/contracts/examples/nft-minter/wasm/Cargo.lock index aac2ace620..bf942dd476 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.lock +++ b/contracts/examples/nft-minter/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock index f877f05711..7905f9c5f5 100755 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/nft-subscription/wasm/Cargo.lock b/contracts/examples/nft-subscription/wasm/Cargo.lock index e8b62546de..63c6100a8e 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.lock +++ b/contracts/examples/nft-subscription/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/order-book/factory/wasm/Cargo.lock b/contracts/examples/order-book/factory/wasm/Cargo.lock index 7d38576ac4..755a1b87a7 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.lock +++ b/contracts/examples/order-book/factory/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/order-book/pair/wasm/Cargo.lock b/contracts/examples/order-book/pair/wasm/Cargo.lock index 38fbac9a8f..65336f77d0 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.lock +++ b/contracts/examples/order-book/pair/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.lock b/contracts/examples/ping-pong-egld/wasm/Cargo.lock index a2d0636590..2ec97eef16 100755 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.lock +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/proxy-pause/wasm/Cargo.lock b/contracts/examples/proxy-pause/wasm/Cargo.lock index 5edbcad6e8..bab5be1cc9 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.lock +++ b/contracts/examples/proxy-pause/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.lock b/contracts/examples/rewards-distribution/wasm/Cargo.lock index 018b42f4dc..ac36f04261 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.lock +++ b/contracts/examples/rewards-distribution/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.lock b/contracts/examples/seed-nft-minter/wasm/Cargo.lock index 70729a49cd..c88d3f49ab 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.lock +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/examples/token-release/wasm/Cargo.lock b/contracts/examples/token-release/wasm/Cargo.lock index 5ec1dea342..082c8ec2a8 100644 --- a/contracts/examples/token-release/wasm/Cargo.lock +++ b/contracts/examples/token-release/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock index fee4cf1dbc..dbd1ba809d 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock @@ -25,9 +25,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.lock b/contracts/feature-tests/abi-tester/wasm/Cargo.lock index e5e8466144..09d6167d6f 100755 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.lock @@ -25,9 +25,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock index 8b16c89d1b..2e1236933d 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock @@ -25,9 +25,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock index a9d74ed0f6..72aef64716 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock @@ -25,9 +25,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.lock b/contracts/feature-tests/alloc-features/wasm/Cargo.lock index df6ddbb5b6..52ee29d13c 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.lock @@ -25,9 +25,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock index 58a94ca113..24e1340805 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "basic-features" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.lock b/contracts/feature-tests/basic-features/wasm/Cargo.lock index c44431afb1..d047f9419c 100755 --- a/contracts/feature-tests/basic-features/wasm/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "basic-features" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,14 +96,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.lock b/contracts/feature-tests/big-float-features/wasm/Cargo.lock index 8e2d6618a0..5c8dfe26aa 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.lock +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "big-float-features" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock index a1e69001c6..cdbde8f3c9 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock index 5a7020c0cc..17abe8ee97 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock index c4c31a8fb6..324de28ec0 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock index 77bbdd0fb0..9586e596a4 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock index 375b37c6d9..42635f16d6 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock index 6f2efbb4a7..33eb4d9098 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -85,7 +85,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock index 345df6ab7c..e25422de65 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock index 618aeb9569..568fd2b429 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock index 4efcd69b75..21a05a9eb7 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock index 5eebcf9076..e6fc2f76dc 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock index 25b4034e97..0ff5143f0a 100755 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock index 9ac4d71496..574f224fed 100755 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock index a8525f910a..3b8b768bbb 100755 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock index 1b366a0da0..bb3a4eb0f1 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock index 582b043d05..dc198f5877 100755 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock index bc6cb03e36..3061dd4018 100755 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock index 612de9c53d..a72449da83 100755 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock index 62d98f1411..6af6ebb20e 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock index ec577ac90a..cbff398e5d 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock index 6d9e7ffafe..1a01ab9815 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.lock b/contracts/feature-tests/composability/vault/wasm/Cargo.lock index 64462a7d14..07c100c584 100755 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock index 9848b01662..892b386530 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -63,7 +63,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock index df492c51db..8207501bb8 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -63,7 +63,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock index dc29477e1d..238894c1be 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock index f34cb19087..9c0eff36ac 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock index b0ba8e546c..96b0e0dd78 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock index 9b4caaf7b6..3f6cc428c2 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock index 64019726c1..4beaf5a751 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -103,7 +103,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock index b66a768ae1..8ab3a45af6 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.lock b/contracts/feature-tests/exchange-features/wasm/Cargo.lock index adf5bb4ee3..4580ca7fa2 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.lock +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock index 9f3eabdcfc..5539245761 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock index 59d4875222..a4d915beb4 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock index bd6f9e8daf..ef7b7dd9e6 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock index a234b10710..009eb5a826 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock index b74f0b96b8..b32b3af13d 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock index 7b7b14b240..55f0d7e4de 100755 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -66,7 +66,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -74,7 +74,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +95,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock index f05b039ab2..4b9d2dd045 100755 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.lock b/contracts/feature-tests/payable-features/wasm/Cargo.lock index 46f3efdb23..bb15e9082b 100755 --- a/contracts/feature-tests/payable-features/wasm/Cargo.lock +++ b/contracts/feature-tests/payable-features/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock index c5a3c14f3b..f13fb3b27a 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock index b9637d20a1..0b3ae5f87c 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/scenario-tester/wasm/Cargo.lock b/contracts/feature-tests/scenario-tester/wasm/Cargo.lock index c92359d81b..66eca188da 100755 --- a/contracts/feature-tests/scenario-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/scenario-tester/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.6" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.6" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +80,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock index f5320776c8..6d3a67850c 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] diff --git a/contracts/feature-tests/use-module/wasm/Cargo.lock b/contracts/feature-tests/use-module/wasm/Cargo.lock index 29c091ca70..7bd3915e63 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm/Cargo.lock @@ -10,9 +10,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "bitflags", "hex-literal", @@ -51,7 +51,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.7" +version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.7" +version = "0.18.8" dependencies = [ "hex", "proc-macro2", @@ -69,7 +69,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "hex", "proc-macro2", @@ -80,14 +80,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0-alpha.4" +version = "0.49.0" dependencies = [ "multiversx-sc", ] From df58c72a935efa5192f4e1705d30297fb62cd9ee Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 18:00:14 +0300 Subject: [PATCH 139/185] removed crypto-kitties dependency from crypto-zombies --- Cargo.lock | 1 - .../kitty-ownership/sc-config.toml | 2 +- contracts/examples/crypto-zombies/Cargo.toml | 4 -- .../examples/crypto-zombies/src/kitty_obj.rs | 40 +++++++++++++++++++ .../src/kitty_ownership_proxy.rs | 2 +- contracts/examples/crypto-zombies/src/lib.rs | 1 + .../crypto-zombies/src/zombie_feeding.rs | 2 +- 7 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 contracts/examples/crypto-zombies/src/kitty_obj.rs diff --git a/Cargo.lock b/Cargo.lock index d3eae4e638..f6ce6930f2 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -630,7 +630,6 @@ dependencies = [ name = "crypto-zombies" version = "0.0.0" dependencies = [ - "kitty", "multiversx-sc", "multiversx-sc-scenario", ] diff --git a/contracts/examples/crypto-kitties/kitty-ownership/sc-config.toml b/contracts/examples/crypto-kitties/kitty-ownership/sc-config.toml index 202f19e321..8af6863e4b 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/sc-config.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/sc-config.toml @@ -8,4 +8,4 @@ to = "kitty" path = "../../crypto-zombies/src/kitty_ownership_proxy.rs" [[proxy.path-rename]] from = "kitty::kitty" -to = "kitty" +to = "crate::kitty_obj" diff --git a/contracts/examples/crypto-zombies/Cargo.toml b/contracts/examples/crypto-zombies/Cargo.toml index f0df60381e..19c94cebbb 100644 --- a/contracts/examples/crypto-zombies/Cargo.toml +++ b/contracts/examples/crypto-zombies/Cargo.toml @@ -15,7 +15,3 @@ path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] version = "0.49.0" path = "../../../framework/scenario" - -[dependencies.kitty] -version = "0.0.0" -path = "../../../contracts/examples/crypto-kitties/common/kitty" diff --git a/contracts/examples/crypto-zombies/src/kitty_obj.rs b/contracts/examples/crypto-zombies/src/kitty_obj.rs new file mode 100644 index 0000000000..acdc23cfca --- /dev/null +++ b/contracts/examples/crypto-zombies/src/kitty_obj.rs @@ -0,0 +1,40 @@ +use multiversx_sc::derive_imports::*; + +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi)] +pub struct Kitty { + pub genes: KittyGenes, + pub birth_time: u64, // timestamp + pub cooldown_end: u64, // timestamp, used for pregnancy timer and siring cooldown + pub matron_id: u32, + pub sire_id: u32, + pub siring_with_id: u32, // for pregnant cats, 0 otherwise + pub nr_children: u16, // cooldown period increases exponentially with every breeding/siring + pub generation: u16, // max(sire_gen, matron_gen) + 1. Generation also influences cooldown. +} + +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi)] +pub struct KittyGenes { + pub fur_color: Color, + pub eye_color: Color, + pub meow_power: u8, // the higher the value, the louder the cat +} + +#[derive(NestedEncode, NestedDecode, TopEncode, TopDecode, TypeAbi)] +pub struct Color { + pub r: u8, + pub g: u8, + pub b: u8, +} + +impl KittyGenes { + pub fn get_as_u64(&self) -> u64 { + (self.fur_color.as_u64() << 12 | self.eye_color.as_u64()) << 4 + | self.meow_power.to_be() as u64 + } +} + +impl Color { + pub fn as_u64(&self) -> u64 { + ((self.r.to_be() as u64) << 4 | self.r.to_be() as u64) << 4 | self.r.to_be() as u64 + } +} diff --git a/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs b/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs index 87f5bdb4a2..595c1612c7 100644 --- a/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs +++ b/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs @@ -241,7 +241,7 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall { + ) -> TxProxyCall { self.wrapped_tx .raw_call("getKittyById") .argument(&kitty_id) diff --git a/contracts/examples/crypto-zombies/src/lib.rs b/contracts/examples/crypto-zombies/src/lib.rs index 9fea3b3099..a79de4fcb0 100644 --- a/contracts/examples/crypto-zombies/src/lib.rs +++ b/contracts/examples/crypto-zombies/src/lib.rs @@ -2,6 +2,7 @@ use multiversx_sc::imports::*; +pub mod kitty_obj; pub mod kitty_ownership_proxy; pub mod proxy_crypto_zombies; mod storage; diff --git a/contracts/examples/crypto-zombies/src/zombie_feeding.rs b/contracts/examples/crypto-zombies/src/zombie_feeding.rs index 56ef89cb7c..f98e48452b 100644 --- a/contracts/examples/crypto-zombies/src/zombie_feeding.rs +++ b/contracts/examples/crypto-zombies/src/zombie_feeding.rs @@ -38,7 +38,7 @@ pub trait ZombieFeeding: #[callback] fn get_kitty_callback( &self, - #[call_result] result: ManagedAsyncCallResult, + #[call_result] result: ManagedAsyncCallResult, zombie_id: usize, ) { match result { From 9c3b4ccce4471034691a2a917cf431c1351e0687 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 19:23:05 +0300 Subject: [PATCH 140/185] removed CodecFrom --- .../src/{equivalent => }/codec_convert.rs | 11 ++-- data/codec/src/equivalent/codec_from.rs | 55 ------------------ data/codec/src/equivalent/codec_into.rs | 16 ------ data/codec/src/equivalent/mod.rs | 9 --- data/codec/src/lib.rs | 5 +- data/codec/src/multi_types/mod.rs | 2 - .../src/multi_types/multi_value_ignore.rs | 7 +-- .../src/multi_types/multi_value_optional.rs | 21 +------ .../multi_types/multi_value_placeholder.rs | 10 +--- framework/base/src/imports.rs | 4 +- framework/base/src/lib.rs | 1 - .../base/src/storage/mappers/bi_di_mapper.rs | 11 +--- .../src/storage/mappers/linked_list_mapper.rs | 12 +--- .../base/src/storage/mappers/map_mapper.rs | 11 +--- .../base/src/storage/mappers/queue_mapper.rs | 11 +--- .../base/src/storage/mappers/set_mapper.rs | 11 +--- .../storage/mappers/single_value_mapper.rs | 32 ++--------- .../mappers/token/fungible_token_mapper.rs | 7 +-- .../token/non_fungible_token_mapper.rs | 9 +-- .../src/storage/mappers/unique_id_mapper.rs | 8 +-- .../storage/mappers/unordered_set_mapper.rs | 11 +--- .../base/src/storage/mappers/user_mapper.rs | 8 +-- .../base/src/storage/mappers/vec_mapper.rs | 11 +--- .../types/interaction/expr/test_address.rs | 3 +- .../types/interaction/expr/test_sc_address.rs | 3 +- .../interaction/expr/test_token_identifier.rs | 3 +- .../markers/esdt_system_sc_address.rs | 3 +- .../types/io/operation_completion_status.rs | 6 +- .../base/src/types/managed/basic/big_float.rs | 7 +-- .../base/src/types/managed/basic/big_int.rs | 57 ++++++++----------- .../base/src/types/managed/basic/big_uint.rs | 51 +++++++---------- .../src/types/managed/basic/managed_buffer.rs | 17 +----- .../multi_value/multi_value_encoded.rs | 24 +------- .../wrapped/egld_or_esdt_token_identifier.rs | 7 --- .../wrapped/egld_or_esdt_token_payment.rs | 6 +- .../wrapped/egld_or_multi_esdt_payment.rs | 3 - .../types/managed/wrapped/managed_address.rs | 21 +------ .../types/managed/wrapped/token_identifier.rs | 5 -- .../scenario/src/facade/contract_info.rs | 9 +-- .../src/facade/expr/bech32_address.rs | 5 -- 40 files changed, 97 insertions(+), 416 deletions(-) rename data/codec/src/{equivalent => }/codec_convert.rs (85%) delete mode 100644 data/codec/src/equivalent/codec_from.rs delete mode 100644 data/codec/src/equivalent/codec_into.rs delete mode 100644 data/codec/src/equivalent/mod.rs diff --git a/data/codec/src/equivalent/codec_convert.rs b/data/codec/src/codec_convert.rs similarity index 85% rename from data/codec/src/equivalent/codec_convert.rs rename to data/codec/src/codec_convert.rs index 34b5f28879..566035dfc3 100644 --- a/data/codec/src/equivalent/codec_convert.rs +++ b/data/codec/src/codec_convert.rs @@ -1,13 +1,16 @@ use unwrap_infallible::UnwrapInfallible; use crate::{ - CodecFrom, PanicErrorHandler, TopDecodeMultiInput, TopEncodeMulti, TopEncodeMultiOutput, + PanicErrorHandler, TopDecodeMulti, TopDecodeMultiInput, TopEncodeMulti, TopEncodeMultiOutput, }; +/// Little experiment: conversion using the codec. +/// +/// Not used anywhere. pub fn codec_convert_or_panic(from: From) -> To where From: TopEncodeMulti, - To: CodecFrom, + To: TopDecodeMulti, Medium: Default + TopDecodeMultiInput + TopEncodeMultiOutput, { let mut medium: Medium = Default::default(); @@ -34,9 +37,7 @@ mod test { where T1: TopEncodeMulti, T2: TopEncodeMulti, - u32: CodecFrom, - u32: CodecFrom, - R: CodecFrom, + R: TopDecodeMulti, { let conv_x = codec_convert_or_panic::>>(x); let conv_y = codec_convert_or_panic::>>(y); diff --git a/data/codec/src/equivalent/codec_from.rs b/data/codec/src/equivalent/codec_from.rs deleted file mode 100644 index f6fc1ffda2..0000000000 --- a/data/codec/src/equivalent/codec_from.rs +++ /dev/null @@ -1,55 +0,0 @@ -use crate::{TopDecodeMulti, TopEncodeMulti}; - -/// Signals that after serializing `T`, we can safely deserialize it as `Self`. -#[deprecated(since = "0.49.0", note = "Please use trait `TypeAbiFrom` instead.")] -pub trait CodecFrom: TopDecodeMulti -where - T: TopEncodeMulti, -{ -} - -#[deprecated(since = "0.49.0", note = "Please use trait `TypeAbiFrom` instead.")] -pub auto trait CodecFromSelf {} - -impl CodecFrom for T where T: TopEncodeMulti + TopDecodeMulti + CodecFromSelf {} - -impl<'a, T> CodecFrom<&'a T> for T -where - &'a T: TopEncodeMulti, - T: TopDecodeMulti, -{ -} - -// Unsigned integer types: the contract can return a smaller capacity result and and we can interpret it as a larger capacity type. - -impl CodecFrom for u64 {} -impl CodecFrom for u64 {} -impl CodecFrom for u64 {} -impl CodecFrom for u64 {} - -impl CodecFrom for u32 {} -impl CodecFrom for u32 {} -impl CodecFrom for u32 {} - -impl CodecFrom for usize {} -impl CodecFrom for usize {} -impl CodecFrom for usize {} - -impl CodecFrom for u16 {} - -// Signed, the same. - -impl CodecFrom for i64 {} -impl CodecFrom for i64 {} -impl CodecFrom for i64 {} -impl CodecFrom for i64 {} - -impl CodecFrom for i32 {} -impl CodecFrom for i32 {} -impl CodecFrom for i32 {} - -impl CodecFrom for isize {} -impl CodecFrom for isize {} -impl CodecFrom for isize {} - -impl CodecFrom for i16 {} diff --git a/data/codec/src/equivalent/codec_into.rs b/data/codec/src/equivalent/codec_into.rs deleted file mode 100644 index 06013c41bb..0000000000 --- a/data/codec/src/equivalent/codec_into.rs +++ /dev/null @@ -1,16 +0,0 @@ -use crate::{CodecFrom, TopDecodeMulti, TopEncodeMulti}; - -/// Signals that we can safely serialize `Self` in order to obtain a `T` on the other size. -#[deprecated(since = "0.49.0", note = "Please use trait `TypeAbiFrom` instead.")] -pub trait CodecInto: TopEncodeMulti -where - T: TopDecodeMulti, -{ -} - -impl CodecInto for I -where - I: TopEncodeMulti, - F: CodecFrom, -{ -} diff --git a/data/codec/src/equivalent/mod.rs b/data/codec/src/equivalent/mod.rs deleted file mode 100644 index 632fef5ae1..0000000000 --- a/data/codec/src/equivalent/mod.rs +++ /dev/null @@ -1,9 +0,0 @@ -#![allow(deprecated)] - -mod codec_convert; -mod codec_from; -mod codec_into; - -pub use codec_convert::*; -pub use codec_from::{CodecFrom, CodecFromSelf}; -pub use codec_into::CodecInto; diff --git a/data/codec/src/lib.rs b/data/codec/src/lib.rs index 6ee069e3d0..2833dd4ed4 100644 --- a/data/codec/src/lib.rs +++ b/data/codec/src/lib.rs @@ -1,7 +1,5 @@ #![no_std] #![feature(try_trait_v2)] -#![feature(auto_traits)] -#![feature(negative_impls)] extern crate alloc; @@ -20,10 +18,10 @@ pub use num_bigint; // TODO: group into smaller sub-modules +pub mod codec_convert; mod codec_err; mod codec_err_handler; mod default_traits; -mod equivalent; mod impl_for_types; mod multi; pub mod multi_types; @@ -42,7 +40,6 @@ pub use crate::{ pub use codec_err::{DecodeError, EncodeError}; pub use codec_err_handler::*; pub use default_traits::{DecodeDefault, EncodeDefault}; -pub use equivalent::*; pub use impl_for_types::impl_empty::Empty; pub use multi::*; pub use single::*; diff --git a/data/codec/src/multi_types/mod.rs b/data/codec/src/multi_types/mod.rs index 0a7ae541c4..2bb9948b41 100644 --- a/data/codec/src/multi_types/mod.rs +++ b/data/codec/src/multi_types/mod.rs @@ -1,5 +1,3 @@ -#![allow(deprecated)] // TODO: remove after deleting CodecFrom - mod multi_value_ignore; mod multi_value_optional; mod multi_value_placeholder; diff --git a/data/codec/src/multi_types/multi_value_ignore.rs b/data/codec/src/multi_types/multi_value_ignore.rs index 3522315a86..a621c76d22 100644 --- a/data/codec/src/multi_types/multi_value_ignore.rs +++ b/data/codec/src/multi_types/multi_value_ignore.rs @@ -1,6 +1,6 @@ use crate::{ - CodecFrom, CodecFromSelf, DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, - TopDecodeMultiInput, TopEncodeMulti, TopEncodeMultiOutput, + DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, TopDecodeMultiInput, TopEncodeMulti, + TopEncodeMultiOutput, }; /// Structure that allows taking a variable number of arguments, @@ -28,6 +28,3 @@ impl TopDecodeMulti for IgnoreValue { Ok(IgnoreValue) } } - -impl !CodecFromSelf for IgnoreValue {} -impl CodecFrom for IgnoreValue where T: TopEncodeMulti {} diff --git a/data/codec/src/multi_types/multi_value_optional.rs b/data/codec/src/multi_types/multi_value_optional.rs index d634d2a7e5..bcdf2a6460 100644 --- a/data/codec/src/multi_types/multi_value_optional.rs +++ b/data/codec/src/multi_types/multi_value_optional.rs @@ -1,8 +1,8 @@ use core::fmt::Debug; use crate::{ - CodecFrom, CodecFromSelf, DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, - TopDecodeMultiInput, TopEncodeMulti, TopEncodeMultiOutput, + DecodeErrorHandler, EncodeErrorHandler, TopDecodeMulti, TopDecodeMultiInput, TopEncodeMulti, + TopEncodeMultiOutput, }; /// A smart contract argument or result that can be missing. @@ -80,23 +80,6 @@ where } } -impl !CodecFromSelf for OptionalValue {} - -impl CodecFrom> for OptionalValue -where - T: TopEncodeMulti + TopDecodeMulti, - U: CodecFrom, - OptionalValue: TopEncodeMulti, -{ -} - -impl CodecFrom for OptionalValue -where - T: TopEncodeMulti + TopDecodeMulti, - U: CodecFrom + CodecFromSelf + TopEncodeMulti + TopDecodeMulti, -{ -} - impl Debug for OptionalValue where T: Debug, diff --git a/data/codec/src/multi_types/multi_value_placeholder.rs b/data/codec/src/multi_types/multi_value_placeholder.rs index 1265342f9f..34b4af73a3 100644 --- a/data/codec/src/multi_types/multi_value_placeholder.rs +++ b/data/codec/src/multi_types/multi_value_placeholder.rs @@ -1,6 +1,6 @@ use crate::{ - CodecFrom, CodecFromSelf, DecodeError, DecodeErrorHandler, EncodeError, EncodeErrorHandler, - TopDecodeMulti, TopDecodeMultiInput, TopEncodeMulti, TopEncodeMultiOutput, + DecodeError, DecodeErrorHandler, EncodeError, EncodeErrorHandler, TopDecodeMulti, + TopDecodeMultiInput, TopEncodeMulti, TopEncodeMultiOutput, }; /// Temporary value used for any kind of templates. @@ -19,9 +19,6 @@ impl TopEncodeMulti for PlaceholderInput { } } -impl !CodecFromSelf for PlaceholderInput {} -impl CodecFrom for T where T: TopDecodeMulti + CodecFromSelf {} - /// Temporary value used for any kind of templates. /// /// Can be used for compiling example code, in which it decodes from anything, but will always fail at runtime. @@ -37,6 +34,3 @@ impl TopDecodeMulti for PlaceholderOutput { Err(h.handle_error(DecodeError::from("placeholder only, cannot decode"))) } } - -impl !CodecFromSelf for PlaceholderOutput {} -impl CodecFrom for PlaceholderOutput where T: TopEncodeMulti + CodecFromSelf {} diff --git a/framework/base/src/imports.rs b/framework/base/src/imports.rs index 016aa7bb4e..f8fa5cd6cf 100644 --- a/framework/base/src/imports.rs +++ b/framework/base/src/imports.rs @@ -3,8 +3,8 @@ pub use crate::{ api::{ErrorApiImpl, ManagedTypeApi, VMApi}, arrayvec::ArrayVec, codec::{ - multi_types::*, CodecFrom, CodecFromSelf, CodecInto, DecodeError, Empty, IntoMultiValue, - NestedDecode, NestedEncode, TopDecode, TopEncode, + multi_types::*, DecodeError, Empty, IntoMultiValue, NestedDecode, NestedEncode, TopDecode, + TopEncode, }, contract_base::{ContractBase, ProxyObjBase, ProxyObjNew}, err_msg, diff --git a/framework/base/src/lib.rs b/framework/base/src/lib.rs index 1827dc2727..0a39af959f 100644 --- a/framework/base/src/lib.rs +++ b/framework/base/src/lib.rs @@ -1,7 +1,6 @@ #![no_std] #![feature(try_trait_v2)] #![feature(control_flow_enum)] -#![feature(negative_impls)] #![feature(generic_const_exprs)] #![allow(incomplete_features)] #![allow(deprecated)] diff --git a/framework/base/src/storage/mappers/bi_di_mapper.rs b/framework/base/src/storage/mappers/bi_di_mapper.rs index 4c59caa0ce..c47f38474c 100644 --- a/framework/base/src/storage/mappers/bi_di_mapper.rs +++ b/framework/base/src/storage/mappers/bi_di_mapper.rs @@ -3,7 +3,7 @@ use core::marker::PhantomData; use crate::{ abi::TypeAbiFrom, codec::{ - multi_encode_iter_or_handle_err, multi_types::MultiValue2, CodecFrom, EncodeErrorHandler, + multi_encode_iter_or_handle_err, multi_types::MultiValue2, EncodeErrorHandler, NestedDecode, NestedEncode, TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, }, types::ManagedAddress, @@ -299,15 +299,6 @@ where } } -impl CodecFrom> - for MultiValueEncoded> -where - SA: StorageMapperApi, - K: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq, - V: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static + Default + PartialEq, -{ -} - impl TypeAbiFrom> for MultiValueEncoded> where diff --git a/framework/base/src/storage/mappers/linked_list_mapper.rs b/framework/base/src/storage/mappers/linked_list_mapper.rs index d2d8af3b10..fd65fdec91 100644 --- a/framework/base/src/storage/mappers/linked_list_mapper.rs +++ b/framework/base/src/storage/mappers/linked_list_mapper.rs @@ -13,8 +13,8 @@ use crate::{ NestedDecode, NestedEncode, TopDecode, TopDecodeOrDefault, TopEncode, TopEncodeOrDefault, }, - CodecFrom, DecodeDefault, EncodeDefault, EncodeErrorHandler, NestedDecode, NestedEncode, - TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, + DecodeDefault, EncodeDefault, EncodeErrorHandler, NestedDecode, NestedEncode, TopDecode, + TopEncode, TopEncodeMulti, TopEncodeMultiOutput, }, storage::{storage_set, StorageKey}, types::{heap::BoxedBytes, ManagedAddress, ManagedType, MultiValueEncoded}, @@ -612,14 +612,6 @@ where } } -impl CodecFrom> for MultiValueEncoded -where - SA: StorageMapperApi, - T: TopEncode + TopDecode + NestedEncode + NestedDecode + Clone, - U: CodecFrom, -{ -} - impl TypeAbiFrom> for MultiValueEncoded where SA: StorageMapperApi, diff --git a/framework/base/src/storage/mappers/map_mapper.rs b/framework/base/src/storage/mappers/map_mapper.rs index eda95d8930..aa5d105b9e 100644 --- a/framework/base/src/storage/mappers/map_mapper.rs +++ b/framework/base/src/storage/mappers/map_mapper.rs @@ -8,7 +8,7 @@ use crate::{ abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ - multi_encode_iter_or_handle_err, multi_types::MultiValue2, CodecFrom, EncodeErrorHandler, + multi_encode_iter_or_handle_err, multi_types::MultiValue2, EncodeErrorHandler, NestedDecode, NestedEncode, TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, }, storage::{storage_clear, storage_set, StorageKey}, @@ -539,15 +539,6 @@ where } } -impl CodecFrom> - for MultiValueEncoded> -where - SA: StorageMapperApi, - K: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, - V: TopEncode + TopDecode + 'static, -{ -} - impl TypeAbiFrom> for MultiValueEncoded> where diff --git a/framework/base/src/storage/mappers/queue_mapper.rs b/framework/base/src/storage/mappers/queue_mapper.rs index a1ba11e2a6..ac65764c36 100644 --- a/framework/base/src/storage/mappers/queue_mapper.rs +++ b/framework/base/src/storage/mappers/queue_mapper.rs @@ -10,8 +10,8 @@ use crate::{ codec::{ self, derive::{TopDecode, TopDecodeOrDefault, TopEncode, TopEncodeOrDefault}, - multi_encode_iter_or_handle_err, CodecFrom, DecodeDefault, EncodeDefault, - EncodeErrorHandler, TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, + multi_encode_iter_or_handle_err, DecodeDefault, EncodeDefault, EncodeErrorHandler, + TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, }, storage::{storage_set, StorageKey}, types::{ManagedAddress, ManagedType, MultiValueEncoded}, @@ -518,13 +518,6 @@ where } } -impl CodecFrom> for MultiValueEncoded -where - SA: StorageMapperApi, - T: TopEncode + TopDecode, -{ -} - impl TypeAbiFrom> for MultiValueEncoded where SA: StorageMapperApi, diff --git a/framework/base/src/storage/mappers/set_mapper.rs b/framework/base/src/storage/mappers/set_mapper.rs index 1579f1938e..2ab1deb4f2 100644 --- a/framework/base/src/storage/mappers/set_mapper.rs +++ b/framework/base/src/storage/mappers/set_mapper.rs @@ -8,8 +8,8 @@ use crate::{ abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ - self, multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, NestedDecode, - NestedEncode, TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, + self, multi_encode_iter_or_handle_err, EncodeErrorHandler, NestedDecode, NestedEncode, + TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, }, storage::{storage_get_from_address, storage_set, StorageKey}, storage_get, storage_get_len, @@ -294,13 +294,6 @@ where } } -impl CodecFrom> for MultiValueEncoded -where - SA: StorageMapperApi, - T: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, -{ -} - impl TypeAbiFrom> for MultiValueEncoded where SA: StorageMapperApi, diff --git a/framework/base/src/storage/mappers/single_value_mapper.rs b/framework/base/src/storage/mappers/single_value_mapper.rs index dfaa41a393..8d7694c070 100644 --- a/framework/base/src/storage/mappers/single_value_mapper.rs +++ b/framework/base/src/storage/mappers/single_value_mapper.rs @@ -8,9 +8,8 @@ use crate::{ abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ - multi_types::PlaceholderOutput, CodecFrom, CodecFromSelf, DecodeErrorHandler, - EncodeErrorHandler, TopDecode, TopDecodeInput, TopEncode, TopEncodeMulti, - TopEncodeMultiOutput, TopEncodeOutput, + multi_types::PlaceholderOutput, DecodeErrorHandler, EncodeErrorHandler, TopDecode, + TopDecodeInput, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, TopEncodeOutput, }, storage::{storage_clear, storage_set, StorageKey}, types::{ManagedAddress, ManagedType}, @@ -158,7 +157,7 @@ where /// Intermediary type for deserializing the result of an endpoint that returns a `SingleValueMapper`. /// -/// Necessary because we cannot implement `CodecFrom` directly on `T`. +/// Necessary because we cannot implement `TypeAbiFrom` directly on `T`. pub struct SingleValue(T); impl TopEncode for SingleValue { @@ -194,34 +193,11 @@ impl SingleValue { } } -impl !CodecFromSelf for SingleValueMapper -where - SA: StorageMapperApi, - A: StorageAddress, - T: TopEncode + TopDecode, -{ -} - -impl CodecFrom> for SingleValue -where - SA: StorageMapperApi, - T: TopEncode + TopDecode, - R: TopDecode + CodecFrom, -{ -} - impl TypeAbiFrom> for SingleValue where SA: StorageMapperApi, T: TopEncode + TopDecode, - R: TopDecode + CodecFrom, -{ -} - -impl CodecFrom> for PlaceholderOutput -where - SA: StorageMapperApi, - T: TopEncode + TopDecode, + R: TopDecode + TypeAbiFrom, { } diff --git a/framework/base/src/storage/mappers/token/fungible_token_mapper.rs b/framework/base/src/storage/mappers/token/fungible_token_mapper.rs index 6164e919df..384e0d6096 100644 --- a/framework/base/src/storage/mappers/token/fungible_token_mapper.rs +++ b/framework/base/src/storage/mappers/token/fungible_token_mapper.rs @@ -1,7 +1,7 @@ use crate::{ abi::{TypeAbi, TypeAbiFrom}, api::ErrorApiImpl, - codec::{CodecFrom, EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput}, + codec::{EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput}, storage_clear, storage_get, storage_set, types::{ system_proxy::{ESDTSystemSCProxy, FungibleTokenProperties}, @@ -270,11 +270,6 @@ where } } -impl CodecFrom> for TokenIdentifier where - SA: StorageMapperApi + CallTypeApi -{ -} - impl TypeAbiFrom> for TokenIdentifier where SA: StorageMapperApi + CallTypeApi { diff --git a/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs b/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs index 193c73bc68..cb0e645bc4 100644 --- a/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs +++ b/framework/base/src/storage/mappers/token/non_fungible_token_mapper.rs @@ -1,8 +1,6 @@ use crate::{ abi::TypeAbiFrom, - codec::{ - CodecFrom, EncodeErrorHandler, TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, - }, + codec::{EncodeErrorHandler, TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput}, storage_clear, storage_get, storage_set, types::{ system_proxy::ESDTSystemSCProxy, ESDTSystemSCAddress, EgldPayment, FunctionCall, @@ -411,11 +409,6 @@ where } } -impl CodecFrom> for TokenIdentifier where - SA: StorageMapperApi + CallTypeApi -{ -} - impl TypeAbiFrom> for TokenIdentifier where SA: StorageMapperApi + CallTypeApi { diff --git a/framework/base/src/storage/mappers/unique_id_mapper.rs b/framework/base/src/storage/mappers/unique_id_mapper.rs index 4eb3a7d638..4ee1faa624 100644 --- a/framework/base/src/storage/mappers/unique_id_mapper.rs +++ b/framework/base/src/storage/mappers/unique_id_mapper.rs @@ -1,8 +1,7 @@ use crate::{ abi::TypeAbiFrom, codec::{ - multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, TopEncodeMulti, - TopEncodeMultiOutput, + multi_encode_iter_or_handle_err, EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput, }, types::ManagedAddress, }; @@ -214,11 +213,6 @@ where } } -impl CodecFrom> for MultiValueEncoded where - SA: StorageMapperApi -{ -} - impl TypeAbiFrom> for MultiValueEncoded where SA: StorageMapperApi { diff --git a/framework/base/src/storage/mappers/unordered_set_mapper.rs b/framework/base/src/storage/mappers/unordered_set_mapper.rs index 2b0cf7cac1..254e56c6b5 100644 --- a/framework/base/src/storage/mappers/unordered_set_mapper.rs +++ b/framework/base/src/storage/mappers/unordered_set_mapper.rs @@ -9,8 +9,8 @@ use crate::{ abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::StorageMapperApi, codec::{ - multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, NestedDecode, NestedEncode, - TopDecode, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, + multi_encode_iter_or_handle_err, EncodeErrorHandler, NestedDecode, NestedEncode, TopDecode, + TopEncode, TopEncodeMulti, TopEncodeMultiOutput, }, storage::StorageKey, storage_clear, storage_set, @@ -225,13 +225,6 @@ where } } -impl CodecFrom> for MultiValueEncoded -where - SA: StorageMapperApi, - T: TopEncode + TopDecode + NestedEncode + NestedDecode + 'static, -{ -} - impl TypeAbiFrom> for MultiValueEncoded where SA: StorageMapperApi, diff --git a/framework/base/src/storage/mappers/user_mapper.rs b/framework/base/src/storage/mappers/user_mapper.rs index 6d511fe567..52039da9d5 100644 --- a/framework/base/src/storage/mappers/user_mapper.rs +++ b/framework/base/src/storage/mappers/user_mapper.rs @@ -3,8 +3,7 @@ use core::marker::PhantomData; use crate::{ abi::TypeAbiFrom, codec::{ - multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, TopEncodeMulti, - TopEncodeMultiOutput, + multi_encode_iter_or_handle_err, EncodeErrorHandler, TopEncodeMulti, TopEncodeMultiOutput, }, }; @@ -222,11 +221,6 @@ where } } -impl CodecFrom> for MultiValueEncoded> where - SA: StorageMapperApi -{ -} - impl TypeAbiFrom> for MultiValueEncoded> where SA: StorageMapperApi { diff --git a/framework/base/src/storage/mappers/vec_mapper.rs b/framework/base/src/storage/mappers/vec_mapper.rs index 5bde908ee2..de2eb55d82 100644 --- a/framework/base/src/storage/mappers/vec_mapper.rs +++ b/framework/base/src/storage/mappers/vec_mapper.rs @@ -6,8 +6,8 @@ use crate::{ abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::{ErrorApiImpl, StorageMapperApi}, codec::{ - multi_encode_iter_or_handle_err, CodecFrom, EncodeErrorHandler, TopDecode, TopEncode, - TopEncodeMulti, TopEncodeMultiOutput, + multi_encode_iter_or_handle_err, EncodeErrorHandler, TopDecode, TopEncode, TopEncodeMulti, + TopEncodeMultiOutput, }, storage::{storage_clear, storage_set, StorageKey}, types::{ManagedAddress, ManagedType, MultiValueEncoded}, @@ -344,13 +344,6 @@ where } } -impl CodecFrom> for MultiValueEncoded -where - SA: StorageMapperApi, - T: TopEncode + TopDecode, -{ -} - impl TypeAbiFrom> for MultiValueEncoded where SA: StorageMapperApi, diff --git a/framework/base/src/types/interaction/expr/test_address.rs b/framework/base/src/types/interaction/expr/test_address.rs index d2824002ba..6cd8a54753 100644 --- a/framework/base/src/types/interaction/expr/test_address.rs +++ b/framework/base/src/types/interaction/expr/test_address.rs @@ -1,6 +1,6 @@ use core::ptr; -use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; +use multiversx_sc_codec::{EncodeErrorHandler, TopEncode, TopEncodeOutput}; use crate::{ abi::TypeAbiFrom, @@ -85,7 +85,6 @@ impl<'a> TopEncode for TestAddress<'a> { } } -impl<'a, Api> CodecFrom> for ManagedAddress where Api: ManagedTypeApi {} impl<'a, Api> TypeAbiFrom> for ManagedAddress where Api: ManagedTypeApi {} #[cfg(test)] diff --git a/framework/base/src/types/interaction/expr/test_sc_address.rs b/framework/base/src/types/interaction/expr/test_sc_address.rs index c752777bfa..9059df1b88 100644 --- a/framework/base/src/types/interaction/expr/test_sc_address.rs +++ b/framework/base/src/types/interaction/expr/test_sc_address.rs @@ -1,6 +1,6 @@ use core::ptr; -use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; +use multiversx_sc_codec::{EncodeErrorHandler, TopEncode, TopEncodeOutput}; use crate::{ abi::TypeAbiFrom, @@ -105,7 +105,6 @@ impl<'a> TopEncode for TestSCAddress<'a> { } } -impl<'a, Api> CodecFrom> for ManagedAddress where Api: ManagedTypeApi {} impl<'a, Api> TypeAbiFrom> for ManagedAddress where Api: ManagedTypeApi {} #[cfg(test)] diff --git a/framework/base/src/types/interaction/expr/test_token_identifier.rs b/framework/base/src/types/interaction/expr/test_token_identifier.rs index 1230a15664..47568b37ba 100644 --- a/framework/base/src/types/interaction/expr/test_token_identifier.rs +++ b/framework/base/src/types/interaction/expr/test_token_identifier.rs @@ -1,4 +1,4 @@ -use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; +use multiversx_sc_codec::{EncodeErrorHandler, TopEncode, TopEncodeOutput}; use crate::{ abi::TypeAbiFrom, @@ -62,6 +62,5 @@ impl<'a> TopEncode for TestTokenIdentifier<'a> { } } -impl<'a, Api> CodecFrom> for TokenIdentifier where Api: ManagedTypeApi {} impl<'a, Api> TypeAbiFrom> for TokenIdentifier where Api: ManagedTypeApi {} diff --git a/framework/base/src/types/interaction/markers/esdt_system_sc_address.rs b/framework/base/src/types/interaction/markers/esdt_system_sc_address.rs index 0cfe2e5588..b7b646ae16 100644 --- a/framework/base/src/types/interaction/markers/esdt_system_sc_address.rs +++ b/framework/base/src/types/interaction/markers/esdt_system_sc_address.rs @@ -1,5 +1,5 @@ use hex_literal::hex; -use multiversx_sc_codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}; +use multiversx_sc_codec::{EncodeErrorHandler, TopEncode, TopEncodeOutput}; use crate::{ abi::TypeAbiFrom, @@ -61,7 +61,6 @@ impl TopEncode for ESDTSystemSCAddress { } } -impl CodecFrom for ManagedAddress where M: ManagedTypeApi {} impl TypeAbiFrom for ManagedAddress where M: ManagedTypeApi {} impl core::fmt::Display for ESDTSystemSCAddress { diff --git a/framework/base/src/types/io/operation_completion_status.rs b/framework/base/src/types/io/operation_completion_status.rs index b1da830356..95fc52f2ed 100644 --- a/framework/base/src/types/io/operation_completion_status.rs +++ b/framework/base/src/types/io/operation_completion_status.rs @@ -8,7 +8,7 @@ use crate::{ TypeDescriptionContainer, TypeName, }, api::ManagedTypeApi, - codec::{CodecFrom, EncodeErrorHandler}, + codec::EncodeErrorHandler, types::ManagedBuffer, }; @@ -73,10 +73,6 @@ impl TopDecode for OperationCompletionStatus { } } -impl CodecFrom for ManagedBuffer {} -impl CodecFrom for crate::types::heap::BoxedBytes {} -impl CodecFrom for crate::types::heap::Vec {} - impl TypeAbiFrom for ManagedBuffer {} impl TypeAbiFrom for crate::types::heap::BoxedBytes {} impl TypeAbiFrom for crate::types::heap::Vec {} diff --git a/framework/base/src/types/managed/basic/big_float.rs b/framework/base/src/types/managed/basic/big_float.rs index dd8a04b080..9723b96eac 100644 --- a/framework/base/src/types/managed/basic/big_float.rs +++ b/framework/base/src/types/managed/basic/big_float.rs @@ -10,9 +10,8 @@ use crate::{ use alloc::string::String; use crate::codec::{ - CodecFromSelf, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, - NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, - TryStaticCast, + DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, + NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, TryStaticCast, }; #[derive(Debug)] @@ -93,8 +92,6 @@ big_float_conv_num! {isize} big_float_conv_num! {i16} big_float_conv_num! {i8} -impl CodecFromSelf for BigFloat where M: ManagedTypeApi {} - impl BigFloat { #[inline] pub fn neg(&self) -> Self { diff --git a/framework/base/src/types/managed/basic/big_int.rs b/framework/base/src/types/managed/basic/big_int.rs index b73fbab6fa..7f84593f2b 100644 --- a/framework/base/src/types/managed/basic/big_int.rs +++ b/framework/base/src/types/managed/basic/big_int.rs @@ -7,9 +7,8 @@ use crate::{ ManagedTypeApi, ManagedTypeApiImpl, RawHandle, StaticVarApiImpl, }, codec::{ - CodecFrom, CodecFromSelf, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, - NestedDecodeInput, NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, - TopEncodeOutput, TryStaticCast, + DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, + NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, TryStaticCast, }, formatter::{hex_util::encode_bytes_as_hex, FormatByteReceiver, SCDisplay}, types::{heap::BoxedBytes, BigUint, ManagedBuffer, ManagedOption, ManagedType, Sign}, @@ -100,9 +99,6 @@ macro_rules! big_int_conv_num { } } - impl CodecFrom<$num_ty> for BigInt {} - impl CodecFrom<&$num_ty> for BigInt {} - impl TypeAbiFrom<$num_ty> for BigInt {} impl TypeAbiFrom<&$num_ty> for BigInt {} }; @@ -115,12 +111,29 @@ big_int_conv_num! {isize} big_int_conv_num! {i16} big_int_conv_num! {i8} -impl CodecFromSelf for BigInt where M: ManagedTypeApi {} - #[cfg(feature = "num-bigint")] -impl CodecFrom for BigInt {} +impl TypeAbiFrom for BigInt {} #[cfg(feature = "num-bigint")] -impl CodecFrom> for crate::codec::num_bigint::BigInt {} +impl TypeAbiFrom> for crate::codec::num_bigint::BigInt {} + +impl TypeAbiFrom for BigInt where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for BigInt where M: ManagedTypeApi {} + +impl crate::abi::TypeAbi for BigInt { + #[cfg(feature = "num-bigint")] + type Unmanaged = crate::codec::num_bigint::BigInt; + + #[cfg(not(feature = "num-bigint"))] + type Unmanaged = Self; + + fn type_name() -> TypeName { + TypeName::from("BigInt") + } + + fn type_name_rust() -> TypeName { + TypeName::from("BigInt<$API>") + } +} #[cfg(feature = "num-bigint")] impl From<&crate::codec::num_bigint::BigInt> for BigInt { @@ -302,30 +315,6 @@ impl TopDecode for BigInt { } } -#[cfg(feature = "num-bigint")] -impl TypeAbiFrom for BigInt {} -#[cfg(feature = "num-bigint")] -impl TypeAbiFrom> for crate::codec::num_bigint::BigInt {} - -impl TypeAbiFrom for BigInt where M: ManagedTypeApi {} -impl TypeAbiFrom<&Self> for BigInt where M: ManagedTypeApi {} - -impl crate::abi::TypeAbi for BigInt { - #[cfg(feature = "num-bigint")] - type Unmanaged = crate::codec::num_bigint::BigInt; - - #[cfg(not(feature = "num-bigint"))] - type Unmanaged = Self; - - fn type_name() -> TypeName { - TypeName::from("BigInt") - } - - fn type_name_rust() -> TypeName { - TypeName::from("BigInt<$API>") - } -} - impl BigInt { #[must_use] pub fn pow(&self, exp: u32) -> Self { diff --git a/framework/base/src/types/managed/basic/big_uint.rs b/framework/base/src/types/managed/basic/big_uint.rs index 34a6c6df23..9575e37fd6 100644 --- a/framework/base/src/types/managed/basic/big_uint.rs +++ b/framework/base/src/types/managed/basic/big_uint.rs @@ -7,9 +7,8 @@ use crate::{ ManagedTypeApi, ManagedTypeApiImpl, RawHandle, StaticVarApiImpl, }, codec::{ - CodecFrom, CodecFromSelf, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, - NestedDecodeInput, NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, - TopEncodeOutput, TryStaticCast, + DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, + NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, TryStaticCast, }, formatter::{hex_util::encode_bytes_as_hex, FormatBuffer, FormatByteReceiver, SCDisplay}, types::{heap::BoxedBytes, ManagedBuffer, ManagedBufferCachedBuilder, ManagedType}, @@ -94,7 +93,6 @@ macro_rules! big_uint_conv_num { } } - impl CodecFrom<$num_ty> for BigUint {} impl TypeAbiFrom<$num_ty> for BigUint {} }; } @@ -105,18 +103,30 @@ big_uint_conv_num! {usize} big_uint_conv_num! {u16} big_uint_conv_num! {u8} -impl CodecFromSelf for BigUint where M: ManagedTypeApi {} - -#[cfg(feature = "num-bigint")] -impl CodecFrom for BigUint {} -#[cfg(feature = "num-bigint")] -impl CodecFrom> for crate::codec::num_bigint::BigUint {} - #[cfg(feature = "num-bigint")] impl TypeAbiFrom for BigUint {} #[cfg(feature = "num-bigint")] impl TypeAbiFrom> for crate::codec::num_bigint::BigUint {} +impl TypeAbiFrom for BigUint where M: ManagedTypeApi {} +impl TypeAbiFrom<&Self> for BigUint where M: ManagedTypeApi {} + +impl TypeAbi for BigUint { + #[cfg(feature = "num-bigint")] + type Unmanaged = crate::codec::num_bigint::BigUint; + + #[cfg(not(feature = "num-bigint"))] + type Unmanaged = Self; + + fn type_name() -> TypeName { + TypeName::from("BigUint") + } + + fn type_name_rust() -> TypeName { + TypeName::from("BigUint<$API>") + } +} + #[cfg(feature = "num-bigint")] impl From<&crate::codec::num_bigint::BigUint> for BigUint { fn from(alloc_big_uint: &crate::codec::num_bigint::BigUint) -> Self { @@ -293,25 +303,6 @@ impl TopDecode for BigUint { } } -impl TypeAbiFrom for BigUint where M: ManagedTypeApi {} -impl TypeAbiFrom<&Self> for BigUint where M: ManagedTypeApi {} - -impl TypeAbi for BigUint { - #[cfg(feature = "num-bigint")] - type Unmanaged = crate::codec::num_bigint::BigUint; - - #[cfg(not(feature = "num-bigint"))] - type Unmanaged = Self; - - fn type_name() -> TypeName { - TypeName::from("BigUint") - } - - fn type_name_rust() -> TypeName { - TypeName::from("BigUint<$API>") - } -} - impl SCDisplay for BigUint { fn fmt(&self, f: &mut F) { let str_handle: M::ManagedBufferHandle = use_raw_handle(const_handles::MBUF_TEMPORARY_1); diff --git a/framework/base/src/types/managed/basic/managed_buffer.rs b/framework/base/src/types/managed/basic/managed_buffer.rs index 358444c445..d232776b2e 100644 --- a/framework/base/src/types/managed/basic/managed_buffer.rs +++ b/framework/base/src/types/managed/basic/managed_buffer.rs @@ -5,9 +5,9 @@ use crate::{ ManagedTypeApi, StaticVarApiImpl, }, codec::{ - CodecFrom, CodecFromSelf, DecodeErrorHandler, Empty, EncodeErrorHandler, NestedDecode, - NestedDecodeInput, NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, - TopEncodeOutput, TryStaticCast, + DecodeErrorHandler, Empty, EncodeErrorHandler, NestedDecode, NestedDecodeInput, + NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, + TryStaticCast, }, formatter::{ hex_util::encode_bytes_as_hex, FormatBuffer, FormatByteReceiver, SCBinary, SCDisplay, @@ -413,23 +413,12 @@ impl TopEncode for ManagedBuffer { } } -impl CodecFromSelf for ManagedBuffer where M: ManagedTypeApi {} - -impl CodecFrom<&[u8]> for ManagedBuffer where M: ManagedTypeApi {} -impl CodecFrom<&str> for ManagedBuffer where M: ManagedTypeApi {} -impl CodecFrom<&[u8; N]> for ManagedBuffer where M: ManagedTypeApi {} - impl TypeAbiFrom<&[u8]> for ManagedBuffer where M: ManagedTypeApi {} impl TypeAbiFrom<&str> for ManagedBuffer where M: ManagedTypeApi {} impl TypeAbiFrom<&[u8; N]> for ManagedBuffer where M: ManagedTypeApi {} macro_rules! managed_buffer_codec_from_impl_bi_di { ($other_ty:ty) => { - impl CodecFrom<$other_ty> for ManagedBuffer {} - impl CodecFrom<&$other_ty> for ManagedBuffer {} - impl CodecFrom> for $other_ty {} - impl CodecFrom<&ManagedBuffer> for $other_ty {} - impl TypeAbiFrom<$other_ty> for ManagedBuffer {} impl TypeAbiFrom<&$other_ty> for ManagedBuffer {} impl TypeAbiFrom> for $other_ty {} diff --git a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs index 86b9d5334f..18a9498da4 100644 --- a/framework/base/src/types/managed/multi_value/multi_value_encoded.rs +++ b/framework/base/src/types/managed/multi_value/multi_value_encoded.rs @@ -4,7 +4,7 @@ use crate::{ abi::{TypeAbi, TypeAbiFrom, TypeDescriptionContainer, TypeName}, api::{ErrorApi, ManagedTypeApi}, codec::{ - try_cast_execute_or_else, CodecFromSelf, DecodeErrorHandler, EncodeErrorHandler, TopDecode, + try_cast_execute_or_else, DecodeErrorHandler, EncodeErrorHandler, TopDecode, TopDecodeMulti, TopDecodeMultiInput, TopDecodeMultiLength, TopEncode, TopEncodeMulti, TopEncodeMultiOutput, }, @@ -263,19 +263,8 @@ where } } -impl CodecFromSelf for MultiValueEncoded where M: ManagedTypeApi {} - -#[cfg(feature = "alloc")] -use crate::codec::{multi_types::MultiValueVec, CodecFrom}; - #[cfg(feature = "alloc")] -impl CodecFrom> for MultiValueEncoded -where - M: ManagedTypeApi + ErrorApi, - T: TopEncodeMulti, - U: CodecFrom, -{ -} +use crate::codec::multi_types::MultiValueVec; #[cfg(feature = "alloc")] impl TypeAbiFrom> for MultiValueEncoded @@ -286,15 +275,6 @@ where { } -#[cfg(feature = "alloc")] -impl CodecFrom> for MultiValueVec -where - M: ManagedTypeApi + ErrorApi, - T: TopEncodeMulti, - U: CodecFrom, -{ -} - #[cfg(feature = "alloc")] impl TypeAbiFrom> for MultiValueVec where diff --git a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs index 8fa90f8186..557e4ce84a 100644 --- a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_identifier.rs @@ -206,13 +206,6 @@ impl TopDecode for EgldOrEsdtTokenIdentifier { } } -impl CodecFromSelf for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} - -impl CodecFrom> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} -impl CodecFrom<&TokenIdentifier> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} -impl CodecFrom<&[u8]> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} -impl CodecFrom<&str> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} - impl TypeAbiFrom> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} impl TypeAbiFrom<&TokenIdentifier> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} impl TypeAbiFrom<&[u8]> for EgldOrEsdtTokenIdentifier where M: ManagedTypeApi {} diff --git a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_payment.rs b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_payment.rs index ffce0c44e7..d896fa3058 100644 --- a/framework/base/src/types/managed/wrapped/egld_or_esdt_token_payment.rs +++ b/framework/base/src/types/managed/wrapped/egld_or_esdt_token_payment.rs @@ -1,4 +1,5 @@ use crate::{ + abi::TypeAbiFrom, api::ManagedTypeApi, types::{BigUint, EgldOrEsdtTokenIdentifier}, }; @@ -6,7 +7,6 @@ use crate::{ use crate::codec::{ self, derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, - CodecFrom, CodecFromSelf, }; use crate as multiversx_sc; // needed by the TypeAbi generated code @@ -126,9 +126,7 @@ impl From> for EgldOrEsdtTokenPayment } } -impl CodecFromSelf for EgldOrEsdtTokenPayment where M: ManagedTypeApi {} - -impl CodecFrom<&[u8]> for EgldOrEsdtTokenPayment where M: ManagedTypeApi {} +impl TypeAbiFrom<&[u8]> for EgldOrEsdtTokenPayment where M: ManagedTypeApi {} impl EgldOrEsdtTokenPayment { pub fn as_refs(&self) -> EgldOrEsdtTokenPaymentRefs<'_, M> { diff --git a/framework/base/src/types/managed/wrapped/egld_or_multi_esdt_payment.rs b/framework/base/src/types/managed/wrapped/egld_or_multi_esdt_payment.rs index 838fc278a4..4c3187e3c9 100644 --- a/framework/base/src/types/managed/wrapped/egld_or_multi_esdt_payment.rs +++ b/framework/base/src/types/managed/wrapped/egld_or_multi_esdt_payment.rs @@ -4,7 +4,6 @@ use crate::{ codec::{ self, derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, - CodecFromSelf, }, types::BigUint, }; @@ -23,8 +22,6 @@ pub enum EgldOrMultiEsdtPayment { MultiEsdt(ManagedVec>), } -impl CodecFromSelf for EgldOrMultiEsdtPayment where M: ManagedTypeApi {} - impl EgldOrMultiEsdtPayment { pub fn is_empty(&self) -> bool { match self { diff --git a/framework/base/src/types/managed/wrapped/managed_address.rs b/framework/base/src/types/managed/wrapped/managed_address.rs index 318e5940ce..bb5db20bc6 100644 --- a/framework/base/src/types/managed/wrapped/managed_address.rs +++ b/framework/base/src/types/managed/wrapped/managed_address.rs @@ -4,9 +4,9 @@ use crate::{ abi::{TypeAbi, TypeAbiFrom, TypeName}, api::ManagedTypeApi, codec::{ - CodecFrom, CodecFromSelf, DecodeError, DecodeErrorHandler, EncodeErrorHandler, - NestedDecode, NestedDecodeInput, NestedEncode, NestedEncodeOutput, TopDecode, - TopDecodeInput, TopEncode, TopEncodeOutput, TryStaticCast, + DecodeError, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, + NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, + TryStaticCast, }, formatter::{hex_util::encode_bytes_as_hex, FormatByteReceiver, SCLowerHex}, types::{heap::Address, ManagedBuffer, ManagedByteArray, ManagedType}, @@ -278,23 +278,8 @@ impl core::fmt::Debug for ManagedAddress { } } -impl CodecFromSelf for ManagedAddress where M: ManagedTypeApi {} - -impl CodecFrom<[u8; 32]> for ManagedAddress where M: ManagedTypeApi {} impl TypeAbiFrom<[u8; 32]> for ManagedAddress where M: ManagedTypeApi {} -#[cfg(feature = "alloc")] -impl CodecFrom

for ManagedAddress where M: ManagedTypeApi {} - -#[cfg(feature = "alloc")] -impl CodecFrom<&Address> for ManagedAddress where M: ManagedTypeApi {} - -#[cfg(feature = "alloc")] -impl CodecFrom> for Address where M: ManagedTypeApi {} - -#[cfg(feature = "alloc")] -impl CodecFrom<&ManagedAddress> for Address where M: ManagedTypeApi {} - #[cfg(feature = "alloc")] impl TypeAbiFrom
for ManagedAddress where M: ManagedTypeApi {} diff --git a/framework/base/src/types/managed/wrapped/token_identifier.rs b/framework/base/src/types/managed/wrapped/token_identifier.rs index f4c978b0d1..f8ae1a6984 100644 --- a/framework/base/src/types/managed/wrapped/token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/token_identifier.rs @@ -162,11 +162,6 @@ impl TopDecode for TokenIdentifier { } } -impl CodecFromSelf for TokenIdentifier where M: ManagedTypeApi {} - -impl CodecFrom<&[u8]> for TokenIdentifier where M: ManagedTypeApi {} -impl CodecFrom> for TokenIdentifier where M: ManagedTypeApi {} - impl TypeAbiFrom<&[u8]> for TokenIdentifier where M: ManagedTypeApi {} impl TypeAbiFrom> for TokenIdentifier where M: ManagedTypeApi {} diff --git a/framework/scenario/src/facade/contract_info.rs b/framework/scenario/src/facade/contract_info.rs index e7b4dd0190..73b0f4935c 100644 --- a/framework/scenario/src/facade/contract_info.rs +++ b/framework/scenario/src/facade/contract_info.rs @@ -1,5 +1,3 @@ -#![allow(deprecated)] // TODO: remove after deleting CodecFrom - use std::ops::{Deref, DerefMut}; use multiversx_sc::{ @@ -9,7 +7,7 @@ use multiversx_sc::{ use crate::multiversx_sc::{ api::ManagedTypeApi, - codec::{CodecFrom, EncodeErrorHandler, TopEncode, TopEncodeOutput}, + codec::{EncodeErrorHandler, TopEncode, TopEncodeOutput}, contract_base::ProxyObjNew, types::{Address, ManagedAddress}, }; @@ -106,11 +104,6 @@ impl TopEncode for ContractInfo

{ } } -impl CodecFrom> for Address {} -impl CodecFrom<&ContractInfo

> for Address {} -impl CodecFrom> for ManagedAddress {} -impl CodecFrom<&ContractInfo

> for ManagedAddress {} - impl TypeAbiFrom> for Address {} impl TypeAbiFrom<&ContractInfo

> for Address {} impl TypeAbiFrom> for ManagedAddress {} diff --git a/framework/scenario/src/facade/expr/bech32_address.rs b/framework/scenario/src/facade/expr/bech32_address.rs index 76fca96c86..d07cf207e0 100644 --- a/framework/scenario/src/facade/expr/bech32_address.rs +++ b/framework/scenario/src/facade/expr/bech32_address.rs @@ -178,11 +178,6 @@ impl TopDecode for Bech32Address { } } -#[allow(deprecated)] -impl CodecFrom for ManagedAddress where M: ManagedTypeApi {} -#[allow(deprecated)] -impl CodecFrom<&Bech32Address> for ManagedAddress where M: ManagedTypeApi {} - impl TypeAbiFrom for ManagedAddress where M: ManagedTypeApi {} impl TypeAbiFrom<&Bech32Address> for ManagedAddress where M: ManagedTypeApi {} From 0ab784e81b20f4ba95ce6ad18bcd155d2a2dfcdc Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Tue, 7 May 2024 21:33:39 +0300 Subject: [PATCH 141/185] remove lang_items - add abort panic in profile dev in .toml wasm --- contracts/examples/adder/wasm/Cargo.lock | 8 +++++++ contracts/examples/adder/wasm/Cargo.toml | 3 +++ contracts/examples/adder/wasm/src/lib.rs | 2 -- .../bonding-curve-contract/wasm/Cargo.lock | 8 +++++++ .../bonding-curve-contract/wasm/Cargo.toml | 3 +++ .../bonding-curve-contract/wasm/src/lib.rs | 2 -- .../examples/check-pause/wasm/Cargo.lock | 8 +++++++ .../examples/check-pause/wasm/Cargo.toml | 3 +++ .../examples/check-pause/wasm/src/lib.rs | 2 -- .../crowdfunding-esdt/wasm/Cargo.lock | 8 +++++++ .../crowdfunding-esdt/wasm/Cargo.toml | 3 +++ .../crowdfunding-esdt/wasm/src/lib.rs | 2 -- .../examples/crypto-bubbles/wasm/Cargo.lock | 8 +++++++ .../examples/crypto-bubbles/wasm/Cargo.toml | 3 +++ .../examples/crypto-bubbles/wasm/src/lib.rs | 2 -- .../kitty-auction/wasm/Cargo.lock | 8 +++++++ .../kitty-auction/wasm/Cargo.toml | 3 +++ .../kitty-auction/wasm/src/lib.rs | 2 -- .../kitty-genetic-alg/wasm/Cargo.lock | 8 +++++++ .../kitty-genetic-alg/wasm/Cargo.toml | 3 +++ .../kitty-genetic-alg/wasm/src/lib.rs | 2 -- .../kitty-ownership/wasm/Cargo.lock | 8 +++++++ .../kitty-ownership/wasm/Cargo.toml | 3 +++ .../kitty-ownership/wasm/src/lib.rs | 2 -- .../examples/crypto-zombies/wasm/Cargo.lock | 24 +++++++------------ .../examples/crypto-zombies/wasm/Cargo.toml | 3 +++ .../examples/crypto-zombies/wasm/src/lib.rs | 2 -- .../examples/digital-cash/wasm/Cargo.lock | 8 +++++++ .../examples/digital-cash/wasm/Cargo.toml | 3 +++ .../examples/digital-cash/wasm/src/lib.rs | 2 -- contracts/examples/empty/wasm/Cargo.lock | 8 +++++++ contracts/examples/empty/wasm/Cargo.toml | 3 +++ contracts/examples/empty/wasm/src/lib.rs | 2 -- .../esdt-transfer-with-fee/wasm/Cargo.lock | 8 +++++++ .../esdt-transfer-with-fee/wasm/Cargo.toml | 3 +++ .../esdt-transfer-with-fee/wasm/src/lib.rs | 2 -- contracts/examples/factorial/wasm/Cargo.lock | 8 +++++++ contracts/examples/factorial/wasm/Cargo.toml | 3 +++ contracts/examples/factorial/wasm/src/lib.rs | 2 -- .../examples/fractional-nfts/wasm/Cargo.lock | 8 +++++++ .../examples/fractional-nfts/wasm/Cargo.toml | 3 +++ .../examples/fractional-nfts/wasm/src/lib.rs | 2 -- .../examples/lottery-esdt/wasm/Cargo.lock | 8 +++++++ .../examples/lottery-esdt/wasm/Cargo.toml | 3 +++ .../examples/lottery-esdt/wasm/src/lib.rs | 2 -- .../multisig/wasm-multisig-full/Cargo.lock | 8 +++++++ .../multisig/wasm-multisig-full/Cargo.toml | 3 +++ .../multisig/wasm-multisig-full/src/lib.rs | 2 -- .../multisig/wasm-multisig-view/Cargo.lock | 8 +++++++ .../multisig/wasm-multisig-view/Cargo.toml | 3 +++ .../multisig/wasm-multisig-view/src/lib.rs | 2 -- contracts/examples/multisig/wasm/Cargo.lock | 8 +++++++ contracts/examples/multisig/wasm/Cargo.toml | 3 +++ contracts/examples/multisig/wasm/src/lib.rs | 2 -- contracts/examples/nft-minter/wasm/Cargo.lock | 8 +++++++ contracts/examples/nft-minter/wasm/Cargo.toml | 3 +++ contracts/examples/nft-minter/wasm/src/lib.rs | 2 -- .../nft-storage-prepay/wasm/Cargo.lock | 8 +++++++ .../nft-storage-prepay/wasm/Cargo.toml | 3 +++ .../nft-storage-prepay/wasm/src/lib.rs | 2 -- .../examples/nft-subscription/wasm/Cargo.lock | 8 +++++++ .../examples/nft-subscription/wasm/Cargo.toml | 3 +++ .../examples/nft-subscription/wasm/src/lib.rs | 2 -- .../order-book/factory/wasm/Cargo.lock | 8 +++++++ .../order-book/factory/wasm/Cargo.toml | 3 +++ .../order-book/factory/wasm/src/lib.rs | 2 -- .../examples/order-book/pair/wasm/Cargo.lock | 8 +++++++ .../examples/order-book/pair/wasm/Cargo.toml | 3 +++ .../examples/order-book/pair/wasm/src/lib.rs | 2 -- .../examples/ping-pong-egld/wasm/Cargo.lock | 8 +++++++ .../examples/ping-pong-egld/wasm/Cargo.toml | 3 +++ .../examples/ping-pong-egld/wasm/src/lib.rs | 2 -- .../examples/proxy-pause/wasm/Cargo.lock | 8 +++++++ .../examples/proxy-pause/wasm/Cargo.toml | 3 +++ .../examples/proxy-pause/wasm/src/lib.rs | 2 -- .../rewards-distribution/wasm/Cargo.lock | 8 +++++++ .../rewards-distribution/wasm/Cargo.toml | 3 +++ .../rewards-distribution/wasm/src/lib.rs | 2 -- .../examples/seed-nft-minter/wasm/Cargo.lock | 8 +++++++ .../examples/seed-nft-minter/wasm/Cargo.toml | 3 +++ .../examples/seed-nft-minter/wasm/src/lib.rs | 2 -- .../examples/token-release/wasm/Cargo.lock | 8 +++++++ .../examples/token-release/wasm/Cargo.toml | 3 +++ .../examples/token-release/wasm/src/lib.rs | 2 -- .../abi-tester/wasm-abi-tester-ev/Cargo.lock | 8 +++++++ .../abi-tester/wasm-abi-tester-ev/Cargo.toml | 3 +++ .../abi-tester/wasm-abi-tester-ev/src/lib.rs | 2 -- .../feature-tests/abi-tester/wasm/Cargo.lock | 8 +++++++ .../feature-tests/abi-tester/wasm/Cargo.toml | 3 +++ .../feature-tests/abi-tester/wasm/src/lib.rs | 2 -- .../wasm-alloc-mem-fail/Cargo.lock | 8 +++++++ .../wasm-alloc-mem-fail/Cargo.toml | 3 +++ .../wasm-alloc-mem-fail/src/lib.rs | 2 -- .../wasm-alloc-mem-leaking/Cargo.lock | 8 +++++++ .../wasm-alloc-mem-leaking/Cargo.toml | 3 +++ .../wasm-alloc-mem-leaking/src/lib.rs | 2 -- .../alloc-features/wasm/Cargo.lock | 8 +++++++ .../alloc-features/wasm/Cargo.toml | 3 +++ .../alloc-features/wasm/src/lib.rs | 2 -- .../Cargo.lock | 8 +++++++ .../Cargo.toml | 3 +++ .../src/lib.rs | 2 -- .../basic-features/wasm/Cargo.lock | 8 +++++++ .../basic-features/wasm/Cargo.toml | 3 +++ .../basic-features/wasm/src/lib.rs | 2 -- .../big-float-features/wasm/Cargo.lock | 8 +++++++ .../big-float-features/wasm/Cargo.toml | 3 +++ .../big-float-features/wasm/src/lib.rs | 2 -- .../builtin-func-features/wasm/Cargo.lock | 8 +++++++ .../builtin-func-features/wasm/Cargo.toml | 3 +++ .../builtin-func-features/wasm/src/lib.rs | 2 -- .../first-contract/wasm/Cargo.lock | 8 +++++++ .../first-contract/wasm/Cargo.toml | 3 +++ .../first-contract/wasm/src/lib.rs | 2 -- .../second-contract/wasm/Cargo.lock | 8 +++++++ .../second-contract/wasm/Cargo.toml | 3 +++ .../second-contract/wasm/src/lib.rs | 2 -- .../child/wasm/Cargo.lock | 8 +++++++ .../child/wasm/Cargo.toml | 3 +++ .../child/wasm/src/lib.rs | 2 -- .../parent/wasm/Cargo.lock | 8 +++++++ .../parent/wasm/Cargo.toml | 3 +++ .../parent/wasm/src/lib.rs | 2 -- .../forwarder-legacy/wasm/Cargo.lock | 8 +++++++ .../forwarder-legacy/wasm/Cargo.toml | 3 +++ .../forwarder-legacy/wasm/src/lib.rs | 2 -- .../wasm-forwarder-queue-promises/Cargo.lock | 8 +++++++ .../wasm-forwarder-queue-promises/Cargo.toml | 3 +++ .../wasm-forwarder-queue-promises/src/lib.rs | 2 -- .../forwarder-queue/wasm/Cargo.lock | 8 +++++++ .../forwarder-queue/wasm/Cargo.toml | 3 +++ .../forwarder-queue/wasm/src/lib.rs | 2 -- .../Cargo.lock | 8 +++++++ .../Cargo.toml | 3 +++ .../src/lib.rs | 2 -- .../Cargo.lock | 8 +++++++ .../Cargo.toml | 3 +++ .../src/lib.rs | 2 -- .../forwarder-raw/wasm/Cargo.lock | 8 +++++++ .../forwarder-raw/wasm/Cargo.toml | 3 +++ .../forwarder-raw/wasm/src/lib.rs | 2 -- .../composability/forwarder/wasm/Cargo.lock | 8 +++++++ .../composability/forwarder/wasm/Cargo.toml | 3 +++ .../composability/forwarder/wasm/src/lib.rs | 2 -- .../local-esdt-and-nft/wasm/Cargo.lock | 8 +++++++ .../local-esdt-and-nft/wasm/Cargo.toml | 3 +++ .../local-esdt-and-nft/wasm/src/lib.rs | 2 -- .../promises-features/wasm/Cargo.lock | 8 +++++++ .../promises-features/wasm/Cargo.toml | 3 +++ .../promises-features/wasm/src/lib.rs | 2 -- .../proxy-test-first/wasm/Cargo.lock | 8 +++++++ .../proxy-test-first/wasm/Cargo.toml | 3 +++ .../proxy-test-first/wasm/src/lib.rs | 2 -- .../proxy-test-second/wasm/Cargo.lock | 8 +++++++ .../proxy-test-second/wasm/Cargo.toml | 3 +++ .../proxy-test-second/wasm/src/lib.rs | 2 -- .../recursive-caller/wasm/Cargo.lock | 8 +++++++ .../recursive-caller/wasm/Cargo.toml | 3 +++ .../recursive-caller/wasm/src/lib.rs | 2 -- .../transfer-role-features/wasm/Cargo.lock | 8 +++++++ .../transfer-role-features/wasm/Cargo.toml | 3 +++ .../transfer-role-features/wasm/src/lib.rs | 2 -- .../vault/wasm-vault-promises/Cargo.lock | 8 +++++++ .../vault/wasm-vault-promises/Cargo.toml | 3 +++ .../vault/wasm-vault-promises/src/lib.rs | 2 -- .../vault/wasm-vault-upgrade/Cargo.lock | 8 +++++++ .../vault/wasm-vault-upgrade/Cargo.toml | 3 +++ .../vault/wasm-vault-upgrade/src/lib.rs | 2 -- .../composability/vault/wasm/Cargo.lock | 8 +++++++ .../composability/vault/wasm/Cargo.toml | 3 +++ .../composability/vault/wasm/src/lib.rs | 2 -- .../crowdfunding-erc20/wasm/Cargo.lock | 8 +++++++ .../crowdfunding-erc20/wasm/Cargo.toml | 3 +++ .../crowdfunding-erc20/wasm/src/lib.rs | 2 -- .../erc1155-marketplace/wasm/Cargo.lock | 8 +++++++ .../erc1155-marketplace/wasm/Cargo.toml | 3 +++ .../erc1155-marketplace/wasm/src/lib.rs | 2 -- .../erc1155-user-mock/wasm/Cargo.lock | 8 +++++++ .../erc1155-user-mock/wasm/Cargo.toml | 3 +++ .../erc1155-user-mock/wasm/src/lib.rs | 2 -- .../erc1155/wasm/Cargo.lock | 8 +++++++ .../erc1155/wasm/Cargo.toml | 3 +++ .../erc1155/wasm/src/lib.rs | 2 -- .../erc-style-contracts/erc20/wasm/Cargo.lock | 8 +++++++ .../erc-style-contracts/erc20/wasm/Cargo.toml | 3 +++ .../erc-style-contracts/erc20/wasm/src/lib.rs | 2 -- .../erc721/wasm/Cargo.lock | 8 +++++++ .../erc721/wasm/Cargo.toml | 3 +++ .../erc721/wasm/src/lib.rs | 2 -- .../lottery-erc20/wasm/Cargo.lock | 8 +++++++ .../lottery-erc20/wasm/Cargo.toml | 3 +++ .../lottery-erc20/wasm/src/lib.rs | 2 -- .../esdt-system-sc-mock/wasm/Cargo.lock | 8 +++++++ .../esdt-system-sc-mock/wasm/Cargo.toml | 3 +++ .../esdt-system-sc-mock/wasm/src/lib.rs | 2 -- .../exchange-features/wasm/Cargo.lock | 8 +++++++ .../exchange-features/wasm/Cargo.toml | 3 +++ .../exchange-features/wasm/src/lib.rs | 2 -- .../wasm/Cargo.lock | 8 +++++++ .../wasm/Cargo.toml | 3 +++ .../wasm/src/lib.rs | 2 -- .../managed-map-features/wasm/Cargo.lock | 8 +++++++ .../managed-map-features/wasm/Cargo.toml | 3 +++ .../managed-map-features/wasm/src/lib.rs | 2 -- .../wasm-multi-contract-alt-impl/Cargo.lock | 8 +++++++ .../wasm-multi-contract-alt-impl/Cargo.toml | 3 +++ .../wasm-multi-contract-alt-impl/src/lib.rs | 2 -- .../Cargo.lock | 8 +++++++ .../Cargo.toml | 3 +++ .../src/lib.rs | 2 -- .../Cargo.lock | 8 +++++++ .../Cargo.toml | 3 +++ .../src/lib.rs | 2 -- .../multi-contract-features/wasm/Cargo.lock | 8 +++++++ .../multi-contract-features/wasm/Cargo.toml | 3 +++ .../multi-contract-features/wasm/src/lib.rs | 2 -- .../panic-message-features/wasm/Cargo.lock | 8 +++++++ .../panic-message-features/wasm/Cargo.toml | 3 +++ .../panic-message-features/wasm/src/lib.rs | 2 -- .../payable-features/wasm/Cargo.lock | 8 +++++++ .../payable-features/wasm/Cargo.toml | 3 +++ .../payable-features/wasm/src/lib.rs | 2 -- .../wasm/Cargo.lock | 8 +++++++ .../wasm/Cargo.toml | 3 +++ .../wasm/src/lib.rs | 2 -- .../wasm/Cargo.lock | 8 +++++++ .../wasm/Cargo.toml | 3 +++ .../wasm/src/lib.rs | 2 -- .../scenario-tester/wasm/Cargo.lock | 8 +++++++ .../scenario-tester/wasm/Cargo.toml | 3 +++ .../scenario-tester/wasm/src/lib.rs | 2 -- .../wasm-use-module-view/Cargo.lock | 8 +++++++ .../wasm-use-module-view/Cargo.toml | 3 +++ .../wasm-use-module-view/src/lib.rs | 2 -- .../feature-tests/use-module/wasm/Cargo.lock | 8 +++++++ .../feature-tests/use-module/wasm/Cargo.toml | 3 +++ .../feature-tests/use-module/wasm/src/lib.rs | 2 -- framework/meta/src/cargo_toml_contents.rs | 19 +++++++++++++++ .../meta/src/cmd/contract/meta_config.rs | 3 +++ .../cmd/contract/sc_config/wasm_crate_gen.rs | 5 +--- framework/wasm-adapter/src/wasm_macros.rs | 6 ----- 241 files changed, 892 insertions(+), 184 deletions(-) diff --git a/contracts/examples/adder/wasm/Cargo.lock b/contracts/examples/adder/wasm/Cargo.lock index 32d924124d..23067b448c 100755 --- a/contracts/examples/adder/wasm/Cargo.lock +++ b/contracts/examples/adder/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/adder/wasm/Cargo.toml b/contracts/examples/adder/wasm/Cargo.toml index aafd60afd7..71a97ec561 100644 --- a/contracts/examples/adder/wasm/Cargo.toml +++ b/contracts/examples/adder/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.adder] path = ".." diff --git a/contracts/examples/adder/wasm/src/lib.rs b/contracts/examples/adder/wasm/src/lib.rs index f5f1d356c2..19ea33c7e1 100644 --- a/contracts/examples/adder/wasm/src/lib.rs +++ b/contracts/examples/adder/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock index 1651cd25a5..97fff17f19 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml index 0490cd4242..9b0f4d51d2 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.bonding-curve-contract] path = ".." diff --git a/contracts/examples/bonding-curve-contract/wasm/src/lib.rs b/contracts/examples/bonding-curve-contract/wasm/src/lib.rs index ca35cf266b..9c9061f01f 100644 --- a/contracts/examples/bonding-curve-contract/wasm/src/lib.rs +++ b/contracts/examples/bonding-curve-contract/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 12 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/check-pause/wasm/Cargo.lock b/contracts/examples/check-pause/wasm/Cargo.lock index 08d28dc3c1..8c1752ba37 100644 --- a/contracts/examples/check-pause/wasm/Cargo.lock +++ b/contracts/examples/check-pause/wasm/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/check-pause/wasm/Cargo.toml b/contracts/examples/check-pause/wasm/Cargo.toml index 1fbff49573..7cde896cec 100644 --- a/contracts/examples/check-pause/wasm/Cargo.toml +++ b/contracts/examples/check-pause/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.check-pause] path = ".." diff --git a/contracts/examples/check-pause/wasm/src/lib.rs b/contracts/examples/check-pause/wasm/src/lib.rs index 550768b6ee..5bf4ed5b95 100644 --- a/contracts/examples/check-pause/wasm/src/lib.rs +++ b/contracts/examples/check-pause/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 6 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock index bd090a21c2..82975c4c9e 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml index 0a40e452fc..f8e5f35db8 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.crowdfunding-esdt] path = ".." diff --git a/contracts/examples/crowdfunding-esdt/wasm/src/lib.rs b/contracts/examples/crowdfunding-esdt/wasm/src/lib.rs index 6a27253313..eb3d65740b 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/src/lib.rs +++ b/contracts/examples/crowdfunding-esdt/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.lock b/contracts/examples/crypto-bubbles/wasm/Cargo.lock index 02af9ea52a..461663fb08 100755 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.lock +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.toml b/contracts/examples/crypto-bubbles/wasm/Cargo.toml index 67549b7a21..db047fad7e 100644 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.toml +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.crypto-bubbles] path = ".." diff --git a/contracts/examples/crypto-bubbles/wasm/src/lib.rs b/contracts/examples/crypto-bubbles/wasm/src/lib.rs index 97bc42e80e..925de32570 100644 --- a/contracts/examples/crypto-bubbles/wasm/src/lib.rs +++ b/contracts/examples/crypto-bubbles/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 8 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock index c4ed9a8d55..3429cfc2aa 100755 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock @@ -91,6 +91,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -99,6 +100,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -204,3 +206,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml index 85a3695084..860539a5f0 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.kitty-auction] path = ".." diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/src/lib.rs b/contracts/examples/crypto-kitties/kitty-auction/wasm/src/lib.rs index 7101d00f12..6d115b6c92 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/src/lib.rs +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 11 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock index 1cfdbcd549..34b214a29f 100755 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock @@ -72,6 +72,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -80,6 +81,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -185,3 +187,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml index 16081ba43d..81e5ce96cd 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.kitty-genetic-alg] path = ".." diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/src/lib.rs b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/src/lib.rs index 3bee7743a1..822a3104af 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/src/lib.rs +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock index 51f1a57e2c..c2ff73c1a1 100755 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock @@ -82,6 +82,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -90,6 +91,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -195,3 +197,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml index c8ec0db96b..c6526438af 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.kitty-ownership] path = ".." diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/src/lib.rs b/contracts/examples/crypto-kitties/kitty-ownership/wasm/src/lib.rs index 9154e40f13..9a5ffdaba8 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/src/lib.rs +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 23 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.lock b/contracts/examples/crypto-zombies/wasm/Cargo.lock index fd15242089..daaa6008dd 100755 --- a/contracts/examples/crypto-zombies/wasm/Cargo.lock +++ b/contracts/examples/crypto-zombies/wasm/Cargo.lock @@ -24,7 +24,6 @@ checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" name = "crypto-zombies" version = "0.0.0" dependencies = [ - "kitty", "multiversx-sc", ] @@ -54,14 +53,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" -[[package]] -name = "kitty" -version = "0.0.0" -dependencies = [ - "multiversx-sc", - "random", -] - [[package]] name = "multiversx-sc" version = "0.49.0" @@ -71,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -79,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -155,13 +148,6 @@ dependencies = [ "nibble_vec", ] -[[package]] -name = "random" -version = "0.0.0" -dependencies = [ - "multiversx-sc", -] - [[package]] name = "smallvec" version = "1.13.2" @@ -184,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.toml b/contracts/examples/crypto-zombies/wasm/Cargo.toml index e434220b42..3529d541a7 100644 --- a/contracts/examples/crypto-zombies/wasm/Cargo.toml +++ b/contracts/examples/crypto-zombies/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.crypto-zombies] path = ".." diff --git a/contracts/examples/crypto-zombies/wasm/src/lib.rs b/contracts/examples/crypto-zombies/wasm/src/lib.rs index 13e3db684c..9cfc27bbd9 100644 --- a/contracts/examples/crypto-zombies/wasm/src/lib.rs +++ b/contracts/examples/crypto-zombies/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 20 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/digital-cash/wasm/Cargo.lock b/contracts/examples/digital-cash/wasm/Cargo.lock index b219c11d18..b1af97d669 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.lock +++ b/contracts/examples/digital-cash/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/digital-cash/wasm/Cargo.toml b/contracts/examples/digital-cash/wasm/Cargo.toml index 260968204c..7a5e5d2c38 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.toml +++ b/contracts/examples/digital-cash/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.digital-cash] path = ".." diff --git a/contracts/examples/digital-cash/wasm/src/lib.rs b/contracts/examples/digital-cash/wasm/src/lib.rs index 728d658a67..b010630ba6 100644 --- a/contracts/examples/digital-cash/wasm/src/lib.rs +++ b/contracts/examples/digital-cash/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 14 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/empty/wasm/Cargo.lock b/contracts/examples/empty/wasm/Cargo.lock index 0e20a220f6..dbc333b9ad 100755 --- a/contracts/examples/empty/wasm/Cargo.lock +++ b/contracts/examples/empty/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/empty/wasm/Cargo.toml b/contracts/examples/empty/wasm/Cargo.toml index fe28578b11..46be2fc8d9 100644 --- a/contracts/examples/empty/wasm/Cargo.toml +++ b/contracts/examples/empty/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.empty] path = ".." diff --git a/contracts/examples/empty/wasm/src/lib.rs b/contracts/examples/empty/wasm/src/lib.rs index 53a9c2f2f1..2d1910c9bd 100644 --- a/contracts/examples/empty/wasm/src/lib.rs +++ b/contracts/examples/empty/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock index cbd337a9a1..2ef8eb993d 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml index b69e4d3701..52bde7e951 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.esdt-transfer-with-fee] path = ".." diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/src/lib.rs b/contracts/examples/esdt-transfer-with-fee/wasm/src/lib.rs index 879ee2a1af..cd2ccdbd51 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/src/lib.rs +++ b/contracts/examples/esdt-transfer-with-fee/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 8 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/factorial/wasm/Cargo.lock b/contracts/examples/factorial/wasm/Cargo.lock index b6292af287..c735d1dc1e 100755 --- a/contracts/examples/factorial/wasm/Cargo.lock +++ b/contracts/examples/factorial/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/factorial/wasm/Cargo.toml b/contracts/examples/factorial/wasm/Cargo.toml index 80d3ca57a9..59a8684d25 100644 --- a/contracts/examples/factorial/wasm/Cargo.toml +++ b/contracts/examples/factorial/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.factorial] path = ".." diff --git a/contracts/examples/factorial/wasm/src/lib.rs b/contracts/examples/factorial/wasm/src/lib.rs index 969872f107..5bf5db395c 100644 --- a/contracts/examples/factorial/wasm/src/lib.rs +++ b/contracts/examples/factorial/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.lock b/contracts/examples/fractional-nfts/wasm/Cargo.lock index ac836d1710..40e63cd58f 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.lock +++ b/contracts/examples/fractional-nfts/wasm/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.toml b/contracts/examples/fractional-nfts/wasm/Cargo.toml index 892c0af17c..40e0e872f9 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.toml +++ b/contracts/examples/fractional-nfts/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.fractional-nfts] path = ".." diff --git a/contracts/examples/fractional-nfts/wasm/src/lib.rs b/contracts/examples/fractional-nfts/wasm/src/lib.rs index 2af55430fa..567d172c78 100644 --- a/contracts/examples/fractional-nfts/wasm/src/lib.rs +++ b/contracts/examples/fractional-nfts/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 6 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.lock b/contracts/examples/lottery-esdt/wasm/Cargo.lock index f2208fefe8..2f8a7a39c2 100755 --- a/contracts/examples/lottery-esdt/wasm/Cargo.lock +++ b/contracts/examples/lottery-esdt/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.toml b/contracts/examples/lottery-esdt/wasm/Cargo.toml index aa99f1ba8b..43f02beaa6 100644 --- a/contracts/examples/lottery-esdt/wasm/Cargo.toml +++ b/contracts/examples/lottery-esdt/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.lottery-esdt] path = ".." diff --git a/contracts/examples/lottery-esdt/wasm/src/lib.rs b/contracts/examples/lottery-esdt/wasm/src/lib.rs index 71be1abb68..a1184cee72 100644 --- a/contracts/examples/lottery-esdt/wasm/src/lib.rs +++ b/contracts/examples/lottery-esdt/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 9 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock index c70b17ae5c..f8b39788d9 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml index 3496533206..56574d7e99 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multisig] path = ".." diff --git a/contracts/examples/multisig/wasm-multisig-full/src/lib.rs b/contracts/examples/multisig/wasm-multisig-full/src/lib.rs index 254c27444a..c62c8ef62b 100644 --- a/contracts/examples/multisig/wasm-multisig-full/src/lib.rs +++ b/contracts/examples/multisig/wasm-multisig-full/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 31 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock index 557912beb6..6695e773fd 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml index 6bca11ea28..a268fc278e 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multisig] path = ".." diff --git a/contracts/examples/multisig/wasm-multisig-view/src/lib.rs b/contracts/examples/multisig/wasm-multisig-view/src/lib.rs index c01d319c88..de4e6479d6 100644 --- a/contracts/examples/multisig/wasm-multisig-view/src/lib.rs +++ b/contracts/examples/multisig/wasm-multisig-view/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/multisig/wasm/Cargo.lock b/contracts/examples/multisig/wasm/Cargo.lock index e1bc7eb308..c909fdc3cb 100755 --- a/contracts/examples/multisig/wasm/Cargo.lock +++ b/contracts/examples/multisig/wasm/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/multisig/wasm/Cargo.toml b/contracts/examples/multisig/wasm/Cargo.toml index 605ab510d2..25e029859c 100644 --- a/contracts/examples/multisig/wasm/Cargo.toml +++ b/contracts/examples/multisig/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multisig] path = ".." diff --git a/contracts/examples/multisig/wasm/src/lib.rs b/contracts/examples/multisig/wasm/src/lib.rs index ab19ce2ad3..2d7e536d14 100644 --- a/contracts/examples/multisig/wasm/src/lib.rs +++ b/contracts/examples/multisig/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 23 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/nft-minter/wasm/Cargo.lock b/contracts/examples/nft-minter/wasm/Cargo.lock index bf942dd476..49df94c669 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.lock +++ b/contracts/examples/nft-minter/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/nft-minter/wasm/Cargo.toml b/contracts/examples/nft-minter/wasm/Cargo.toml index 0027925f16..c7d2ff1569 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.toml +++ b/contracts/examples/nft-minter/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.nft-minter] path = ".." diff --git a/contracts/examples/nft-minter/wasm/src/lib.rs b/contracts/examples/nft-minter/wasm/src/lib.rs index aab639db54..daef60b06e 100644 --- a/contracts/examples/nft-minter/wasm/src/lib.rs +++ b/contracts/examples/nft-minter/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 8 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock index 7905f9c5f5..7768750592 100755 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml index 4bb9934697..8755b0181f 100644 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.nft-storage-prepay] path = ".." diff --git a/contracts/examples/nft-storage-prepay/wasm/src/lib.rs b/contracts/examples/nft-storage-prepay/wasm/src/lib.rs index 4f9e57e282..cbcfccb60f 100644 --- a/contracts/examples/nft-storage-prepay/wasm/src/lib.rs +++ b/contracts/examples/nft-storage-prepay/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/nft-subscription/wasm/Cargo.lock b/contracts/examples/nft-subscription/wasm/Cargo.lock index 63c6100a8e..b3c296aff1 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.lock +++ b/contracts/examples/nft-subscription/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/nft-subscription/wasm/Cargo.toml b/contracts/examples/nft-subscription/wasm/Cargo.toml index 564dd5b645..4f4defe1d1 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.toml +++ b/contracts/examples/nft-subscription/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.nft-subscription] path = ".." diff --git a/contracts/examples/nft-subscription/wasm/src/lib.rs b/contracts/examples/nft-subscription/wasm/src/lib.rs index 2c95afe219..07b9b6e288 100644 --- a/contracts/examples/nft-subscription/wasm/src/lib.rs +++ b/contracts/examples/nft-subscription/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 7 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/order-book/factory/wasm/Cargo.lock b/contracts/examples/order-book/factory/wasm/Cargo.lock index 755a1b87a7..362ce65cc0 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.lock +++ b/contracts/examples/order-book/factory/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/order-book/factory/wasm/Cargo.toml b/contracts/examples/order-book/factory/wasm/Cargo.toml index bfc68cb87e..447881dd39 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.toml +++ b/contracts/examples/order-book/factory/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.order-book-factory] path = ".." diff --git a/contracts/examples/order-book/factory/wasm/src/lib.rs b/contracts/examples/order-book/factory/wasm/src/lib.rs index 97a9ff166d..be215e6f41 100644 --- a/contracts/examples/order-book/factory/wasm/src/lib.rs +++ b/contracts/examples/order-book/factory/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/order-book/pair/wasm/Cargo.lock b/contracts/examples/order-book/pair/wasm/Cargo.lock index 65336f77d0..3d9462d6d6 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.lock +++ b/contracts/examples/order-book/pair/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/order-book/pair/wasm/Cargo.toml b/contracts/examples/order-book/pair/wasm/Cargo.toml index dbb8cf2ffa..b2ccac9166 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.toml +++ b/contracts/examples/order-book/pair/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.order-book-pair] path = ".." diff --git a/contracts/examples/order-book/pair/wasm/src/lib.rs b/contracts/examples/order-book/pair/wasm/src/lib.rs index ba30c0e8e9..2a4b058a13 100644 --- a/contracts/examples/order-book/pair/wasm/src/lib.rs +++ b/contracts/examples/order-book/pair/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 15 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.lock b/contracts/examples/ping-pong-egld/wasm/Cargo.lock index 2ec97eef16..6867ae9bf6 100755 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.lock +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.toml b/contracts/examples/ping-pong-egld/wasm/Cargo.toml index 3fc4f94d78..3da28b8cd9 100644 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.toml +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.ping-pong-egld] path = ".." diff --git a/contracts/examples/ping-pong-egld/wasm/src/lib.rs b/contracts/examples/ping-pong-egld/wasm/src/lib.rs index b3fb0e62cb..35bade6af2 100644 --- a/contracts/examples/ping-pong-egld/wasm/src/lib.rs +++ b/contracts/examples/ping-pong-egld/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 13 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/proxy-pause/wasm/Cargo.lock b/contracts/examples/proxy-pause/wasm/Cargo.lock index bab5be1cc9..45f61ca9b2 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.lock +++ b/contracts/examples/proxy-pause/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/proxy-pause/wasm/Cargo.toml b/contracts/examples/proxy-pause/wasm/Cargo.toml index 6cfffd232a..038b546376 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.toml +++ b/contracts/examples/proxy-pause/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.proxy-pause] path = ".." diff --git a/contracts/examples/proxy-pause/wasm/src/lib.rs b/contracts/examples/proxy-pause/wasm/src/lib.rs index 62e1c633ca..e2a1a07417 100644 --- a/contracts/examples/proxy-pause/wasm/src/lib.rs +++ b/contracts/examples/proxy-pause/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.lock b/contracts/examples/rewards-distribution/wasm/Cargo.lock index ac36f04261..67cddf29a5 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.lock +++ b/contracts/examples/rewards-distribution/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.toml b/contracts/examples/rewards-distribution/wasm/Cargo.toml index 9f562d7cac..c2c9f1f27b 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.toml +++ b/contracts/examples/rewards-distribution/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.rewards-distribution] path = ".." diff --git a/contracts/examples/rewards-distribution/wasm/src/lib.rs b/contracts/examples/rewards-distribution/wasm/src/lib.rs index b41b365c4e..34397de228 100644 --- a/contracts/examples/rewards-distribution/wasm/src/lib.rs +++ b/contracts/examples/rewards-distribution/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 15 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.lock b/contracts/examples/seed-nft-minter/wasm/Cargo.lock index c88d3f49ab..41afdbaf4c 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.lock +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.toml b/contracts/examples/seed-nft-minter/wasm/Cargo.toml index 7b224ce48c..e908400d3f 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.toml +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.seed-nft-minter] path = ".." diff --git a/contracts/examples/seed-nft-minter/wasm/src/lib.rs b/contracts/examples/seed-nft-minter/wasm/src/lib.rs index e4aec1825d..5f0e0090d6 100644 --- a/contracts/examples/seed-nft-minter/wasm/src/lib.rs +++ b/contracts/examples/seed-nft-minter/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 11 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/examples/token-release/wasm/Cargo.lock b/contracts/examples/token-release/wasm/Cargo.lock index 082c8ec2a8..2dc67fca16 100644 --- a/contracts/examples/token-release/wasm/Cargo.lock +++ b/contracts/examples/token-release/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/examples/token-release/wasm/Cargo.toml b/contracts/examples/token-release/wasm/Cargo.toml index 3a3f04c9df..f1d2ab14d8 100644 --- a/contracts/examples/token-release/wasm/Cargo.toml +++ b/contracts/examples/token-release/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.token-release] path = ".." diff --git a/contracts/examples/token-release/wasm/src/lib.rs b/contracts/examples/token-release/wasm/src/lib.rs index be580b5ccd..4dd7699632 100644 --- a/contracts/examples/token-release/wasm/src/lib.rs +++ b/contracts/examples/token-release/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 15 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock index dbd1ba809d..b15de5154a 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml index d8896c6b95..0842c1c928 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.abi-tester] path = ".." diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/src/lib.rs b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/src/lib.rs index 5fe18202f2..8569b396ce 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/src/lib.rs +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.lock b/contracts/feature-tests/abi-tester/wasm/Cargo.lock index 09d6167d6f..97c4e422b9 100755 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.toml b/contracts/feature-tests/abi-tester/wasm/Cargo.toml index 953b746080..191ee3e3a0 100644 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.abi-tester] path = ".." diff --git a/contracts/feature-tests/abi-tester/wasm/src/lib.rs b/contracts/feature-tests/abi-tester/wasm/src/lib.rs index cf9aa68978..dcfd861dd0 100644 --- a/contracts/feature-tests/abi-tester/wasm/src/lib.rs +++ b/contracts/feature-tests/abi-tester/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 31 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock index 2e1236933d..8ef8bda743 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml index 731b271739..ce413d1f36 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.alloc-features] path = ".." diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/src/lib.rs b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/src/lib.rs index 675bddb53d..f903442a51 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/src/lib.rs +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 67 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock index 72aef64716..94d26f6126 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml index 48125b5285..682f6897d8 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.alloc-features] path = ".." diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/src/lib.rs b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/src/lib.rs index 55d2f88725..9d069ce40f 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/src/lib.rs +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 67 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(leaking); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.lock b/contracts/feature-tests/alloc-features/wasm/Cargo.lock index 52ee29d13c..62bc5036eb 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.toml b/contracts/feature-tests/alloc-features/wasm/Cargo.toml index cc94610a76..2fcade81d3 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.alloc-features] path = ".." diff --git a/contracts/feature-tests/alloc-features/wasm/src/lib.rs b/contracts/feature-tests/alloc-features/wasm/src/lib.rs index f01cc37f8b..d56e4d69ba 100644 --- a/contracts/feature-tests/alloc-features/wasm/src/lib.rs +++ b/contracts/feature-tests/alloc-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 66 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(static64k); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock index 24e1340805..20a75d222d 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml index 484bbd9eab..a701d5f906 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.basic-features] path = ".." diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/src/lib.rs b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/src/lib.rs index af26877c00..94dd839f14 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/src/lib.rs +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.lock b/contracts/feature-tests/basic-features/wasm/Cargo.lock index d047f9419c..3d14641d4b 100755 --- a/contracts/feature-tests/basic-features/wasm/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.toml b/contracts/feature-tests/basic-features/wasm/Cargo.toml index e8f2e89165..8c72470601 100644 --- a/contracts/feature-tests/basic-features/wasm/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = true +[profile.dev] +panic = "abort" + [dependencies.basic-features] path = ".." diff --git a/contracts/feature-tests/basic-features/wasm/src/lib.rs b/contracts/feature-tests/basic-features/wasm/src/lib.rs index dba8d815a6..d2948e2da4 100644 --- a/contracts/feature-tests/basic-features/wasm/src/lib.rs +++ b/contracts/feature-tests/basic-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 389 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.lock b/contracts/feature-tests/big-float-features/wasm/Cargo.lock index 5c8dfe26aa..4601a0ccbc 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.lock +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.toml b/contracts/feature-tests/big-float-features/wasm/Cargo.toml index 011e22c44a..4b6f46e94f 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.toml +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.big-float-features] path = ".." diff --git a/contracts/feature-tests/big-float-features/wasm/src/lib.rs b/contracts/feature-tests/big-float-features/wasm/src/lib.rs index 1219ed8ad0..6ec41ff9e9 100644 --- a/contracts/feature-tests/big-float-features/wasm/src/lib.rs +++ b/contracts/feature-tests/big-float-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 72 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock index cdbde8f3c9..76bebbeaf8 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml index 5cf4535ffd..f40186154b 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.builtin-func-features] path = ".." diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/src/lib.rs b/contracts/feature-tests/composability/builtin-func-features/wasm/src/lib.rs index b6175c29b0..832df1781b 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock index 17abe8ee97..48cd0bd939 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml index 70121cf1c4..9c42dd837a 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.first-contract] path = ".." diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/src/lib.rs b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/src/lib.rs index 163070bd0a..d9f268f9e4 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 9 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock index 324de28ec0..7c4cd2db7d 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml index 676da35aa5..30e743e020 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.second-contract] path = ".." diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/src/lib.rs b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/src/lib.rs index 574e5e91d2..98c500b82d 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock index 9586e596a4..899af3402e 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml index 55541c2438..88e099d8f2 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.child] path = ".." diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/src/lib.rs b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/src/lib.rs index 0610352c5f..53bbaadccd 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock index 42635f16d6..5bb0b14391 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml index 708e761902..d199c61242 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.parent] path = ".." diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/src/lib.rs b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/src/lib.rs index 6af21719dc..2f027b22cd 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 6 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock index 33eb4d9098..45311016f2 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock @@ -63,6 +63,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -71,6 +72,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -170,6 +172,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "vault" version = "0.0.0" diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml index 6a3b6a7db6..b8a9a65275 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.forwarder-legacy] path = ".." diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/src/lib.rs b/contracts/feature-tests/composability/forwarder-legacy/wasm/src/lib.rs index 180b626b66..120b11b7cf 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 70 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock index e25422de65..7504443ae8 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml index 738ff2254d..cad1551134 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.forwarder-queue] path = ".." diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/src/lib.rs b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/src/lib.rs index 639d22d1e1..1d83661126 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/src/lib.rs +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 13 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock index 568fd2b429..8a2ef8c020 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml index 6e68841010..fbac1eb7ec 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.forwarder-queue] path = ".." diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/src/lib.rs b/contracts/feature-tests/composability/forwarder-queue/wasm/src/lib.rs index 45c5b3c92f..7613a7ad95 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 12 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock index 21a05a9eb7..70c4bf7dd1 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml index 628a019ba9..e030257845 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.forwarder-raw] path = ".." diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/src/lib.rs b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/src/lib.rs index cd1297b69f..590e75b609 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/src/lib.rs +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock index e6fc2f76dc..c7a59d3589 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml index 4df2025d6e..c593100248 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.forwarder-raw] path = ".." diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/src/lib.rs b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/src/lib.rs index dd5b4bb3b1..39a1ffb566 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/src/lib.rs +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 2 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock index 0ff5143f0a..f6256fab59 100755 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml index 2ada534753..8f81ce9f86 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.forwarder-raw] path = ".." diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/src/lib.rs b/contracts/feature-tests/composability/forwarder-raw/wasm/src/lib.rs index 980ea6ce70..16ff76235c 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 27 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock index 574f224fed..e32f2d4cc8 100755 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml index f4afdbd6bc..a5298af2e0 100644 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.forwarder] path = ".." diff --git a/contracts/feature-tests/composability/forwarder/wasm/src/lib.rs b/contracts/feature-tests/composability/forwarder/wasm/src/lib.rs index 2fe9d2486c..fd2567f244 100644 --- a/contracts/feature-tests/composability/forwarder/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/forwarder/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 68 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock index 3b8b768bbb..827e0c2700 100755 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml index 5aebe2081a..5130c19326 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.local-esdt-and-nft] path = ".." diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/src/lib.rs b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/src/lib.rs index 5bd9fa54c0..7fc777de65 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 20 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock index bb3a4eb0f1..798fb2efc5 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml index ed1a31a561..528f5ad3ef 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.promises-features] path = ".." 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 e9b079caf6..1dc649df0d 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/promises-features/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 15 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock index dc198f5877..a7fb1045c9 100755 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -169,3 +171,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml index 9ae8feb646..db6e8bb399 100644 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.proxy-test-first] path = ".." diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/src/lib.rs b/contracts/feature-tests/composability/proxy-test-first/wasm/src/lib.rs index f9ce7c6833..9f5f0bb847 100644 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 8 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(static64k); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock index 3061dd4018..a2c21a5277 100755 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml index f5f1de43bf..1d1aa84adc 100644 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.proxy-test-second] path = ".." diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/src/lib.rs b/contracts/feature-tests/composability/proxy-test-second/wasm/src/lib.rs index d920e6b80c..b2e0cd610d 100644 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 6 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(static64k); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock index a72449da83..1a9593a100 100755 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -170,6 +172,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "vault" version = "0.0.0" diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml index 7f026d2bf6..c41db08c8d 100644 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.recursive-caller] path = ".." diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/src/lib.rs b/contracts/feature-tests/composability/recursive-caller/wasm/src/lib.rs index 3e2da1f9b6..a129056010 100644 --- a/contracts/feature-tests/composability/recursive-caller/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/recursive-caller/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock index 6af6ebb20e..03f068e55d 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml index 9c071c6f48..7611455289 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.transfer-role-features] path = ".." diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/src/lib.rs b/contracts/feature-tests/composability/transfer-role-features/wasm/src/lib.rs index 317595fcea..9f507871cd 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock index cbff398e5d..e7814de3fe 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -154,6 +156,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "vault" version = "0.0.0" diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml index ce209e8861..c15f4e3fcb 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.vault] path = ".." diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/src/lib.rs b/contracts/feature-tests/composability/vault/wasm-vault-promises/src/lib.rs index 6a814f3b57..014291f680 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/src/lib.rs +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 18 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock index 1a01ab9815..a6af059da3 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -154,6 +156,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "vault" version = "0.0.0" diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml index c09b60d9bd..8b00dd7f79 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.vault] path = ".." diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/src/lib.rs b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/src/lib.rs index 1592f8eec6..15f7408f1f 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/src/lib.rs +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 2 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.lock b/contracts/feature-tests/composability/vault/wasm/Cargo.lock index 07c100c584..535771da90 100755 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -154,6 +156,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "vault" version = "0.0.0" diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.toml b/contracts/feature-tests/composability/vault/wasm/Cargo.toml index 5556a14d7c..b2c689042d 100644 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.vault] path = ".." diff --git a/contracts/feature-tests/composability/vault/wasm/src/lib.rs b/contracts/feature-tests/composability/vault/wasm/src/lib.rs index 30a7fadf8b..9849ddf8ae 100644 --- a/contracts/feature-tests/composability/vault/wasm/src/lib.rs +++ b/contracts/feature-tests/composability/vault/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 18 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock index 892b386530..70f19c039e 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock @@ -70,6 +70,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -78,6 +79,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml index 846a20893b..353260c769 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.crowdfunding-erc20] path = ".." diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/src/lib.rs b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/src/lib.rs index d71ab01834..2493301277 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/src/lib.rs +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock index 8207501bb8..61db6090c6 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock @@ -70,6 +70,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -78,6 +79,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml index cc9804afef..4ab22904d3 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.erc1155-marketplace] path = ".." diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/src/lib.rs b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/src/lib.rs index 442a245237..4cb87cbdfd 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/src/lib.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 14 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(static64k); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock index 238894c1be..b5bd1e2e54 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml index e993861b13..a643999ba9 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.erc1155-user-mock] path = ".." diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/src/lib.rs b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/src/lib.rs index f3281811d5..a0c2470012 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/src/lib.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock index 9c0eff36ac..0ed0c6f26c 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml index 1f64f8f90b..edae4b9512 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.erc1155] path = ".." diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/src/lib.rs b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/src/lib.rs index 051c2d54fa..f3fcf7cd71 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/src/lib.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 15 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(static64k); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock index 96b0e0dd78..b88c35d4cf 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml index baf2d29699..737591bb25 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.erc20] path = ".." diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/src/lib.rs b/contracts/feature-tests/erc-style-contracts/erc20/wasm/src/lib.rs index 22fe14729a..0a3607ddc0 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/src/lib.rs +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 8 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock index 3f6cc428c2..beda86f834 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml index c248eadc43..883748a64d 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.erc721] path = ".." diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/src/lib.rs b/contracts/feature-tests/erc-style-contracts/erc721/wasm/src/lib.rs index 1f97c9968b..4adcd25ca0 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/src/lib.rs +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock index 4beaf5a751..25805516fc 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock @@ -70,6 +70,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -78,6 +79,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml index 5538ad6642..a60943441f 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.lottery-erc20] path = ".." diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/src/lib.rs b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/src/lib.rs index ff416cf4b9..b247fc3493 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/src/lib.rs +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 9 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(static64k); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock index 8ab3a45af6..bd9b34096b 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml index 9ab183ed3f..2a12a6d9ab 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.esdt-system-sc-mock] path = ".." diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/src/lib.rs b/contracts/feature-tests/esdt-system-sc-mock/wasm/src/lib.rs index 24e6d08cd1..8301d8cf9c 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/src/lib.rs +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 8 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.lock b/contracts/feature-tests/exchange-features/wasm/Cargo.lock index 4580ca7fa2..69c406fcf8 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.lock +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.toml b/contracts/feature-tests/exchange-features/wasm/Cargo.toml index 415f4440cb..a4f0852da8 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.toml +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.exchange-features] path = ".." diff --git a/contracts/feature-tests/exchange-features/wasm/src/lib.rs b/contracts/feature-tests/exchange-features/wasm/src/lib.rs index 944349b256..b420653525 100644 --- a/contracts/feature-tests/exchange-features/wasm/src/lib.rs +++ b/contracts/feature-tests/exchange-features/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock index 5539245761..f1ab6b2c73 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml index 3b59f56fac..dc6fa80f06 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.formatted-message-features] path = ".." diff --git a/contracts/feature-tests/formatted-message-features/wasm/src/lib.rs b/contracts/feature-tests/formatted-message-features/wasm/src/lib.rs index 7a07a6ec82..34c6f81e59 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/src/lib.rs +++ b/contracts/feature-tests/formatted-message-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 18 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock index a4d915beb4..3a15719b4c 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml index 2124503c5e..7451a29f06 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.managed-map-features] path = ".." diff --git a/contracts/feature-tests/managed-map-features/wasm/src/lib.rs b/contracts/feature-tests/managed-map-features/wasm/src/lib.rs index 2f32f8bf49..943fc9cb9a 100644 --- a/contracts/feature-tests/managed-map-features/wasm/src/lib.rs +++ b/contracts/feature-tests/managed-map-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock index ef7b7dd9e6..2b979d5734 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml index bb41653159..1ad18e13e1 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multi-contract-features] path = ".." diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/src/lib.rs b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/src/lib.rs index ba8838b6e4..3a496abdbe 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/src/lib.rs +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock index 009eb5a826..31641794f0 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml index 458be4822b..5f56a568a8 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multi-contract-features] path = ".." features = ["example_feature"] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/src/lib.rs b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/src/lib.rs index 655e83240c..9602c289bf 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/src/lib.rs +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock index b32b3af13d..8393f20a47 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml index 43e72ed5d9..7ff6790e03 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multi-contract-features] path = ".." diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/src/lib.rs b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/src/lib.rs index 871bfb5bca..85b69baf08 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/src/lib.rs +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock index 55f0d7e4de..ecb432decb 100755 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -70,6 +71,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml index 5839b62616..1a86cf9c8d 100644 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multi-contract-features] path = ".." diff --git a/contracts/feature-tests/multi-contract-features/wasm/src/lib.rs b/contracts/feature-tests/multi-contract-features/wasm/src/lib.rs index 655e83240c..9602c289bf 100644 --- a/contracts/feature-tests/multi-contract-features/wasm/src/lib.rs +++ b/contracts/feature-tests/multi-contract-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock index 4b9d2dd045..669be54be6 100755 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml index 92951f91d9..49e1111e0a 100644 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.panic-message-features] path = ".." diff --git a/contracts/feature-tests/panic-message-features/wasm/src/lib.rs b/contracts/feature-tests/panic-message-features/wasm/src/lib.rs index a347a1aaa3..b42857cfc0 100644 --- a/contracts/feature-tests/panic-message-features/wasm/src/lib.rs +++ b/contracts/feature-tests/panic-message-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler_with_message!(); diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.lock b/contracts/feature-tests/payable-features/wasm/Cargo.lock index bb15e9082b..95c693e19b 100755 --- a/contracts/feature-tests/payable-features/wasm/Cargo.lock +++ b/contracts/feature-tests/payable-features/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.toml b/contracts/feature-tests/payable-features/wasm/Cargo.toml index 0ef022a269..20041a83c9 100644 --- a/contracts/feature-tests/payable-features/wasm/Cargo.toml +++ b/contracts/feature-tests/payable-features/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.payable-features] path = ".." diff --git a/contracts/feature-tests/payable-features/wasm/src/lib.rs b/contracts/feature-tests/payable-features/wasm/src/lib.rs index 9614f000c0..41f085e638 100644 --- a/contracts/feature-tests/payable-features/wasm/src/lib.rs +++ b/contracts/feature-tests/payable-features/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 17 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock index f13fb3b27a..8883d18727 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml index 200d74fe46..ea261b7c3a 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.rust-snippets-generator-test] path = ".." diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/src/lib.rs b/contracts/feature-tests/rust-snippets-generator-test/wasm/src/lib.rs index d4405d49e8..c0432d8a8f 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/src/lib.rs +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 18 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock index 0b3ae5f87c..7e56191556 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml index e9abe077df..12847d64bc 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.rust-testing-framework-tester] path = ".." diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/src/lib.rs b/contracts/feature-tests/rust-testing-framework-tester/wasm/src/lib.rs index e8aaa36184..3943837d34 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/src/lib.rs +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 28 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(static64k); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/scenario-tester/wasm/Cargo.lock b/contracts/feature-tests/scenario-tester/wasm/Cargo.lock index 66eca188da..5d8bd88449 100755 --- a/contracts/feature-tests/scenario-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/scenario-tester/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/feature-tests/scenario-tester/wasm/Cargo.toml b/contracts/feature-tests/scenario-tester/wasm/Cargo.toml index 672a7c796c..603e662f9d 100644 --- a/contracts/feature-tests/scenario-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.scenario-tester] path = ".." diff --git a/contracts/feature-tests/scenario-tester/wasm/src/lib.rs b/contracts/feature-tests/scenario-tester/wasm/src/lib.rs index ae1ba48ffd..28922bb61e 100644 --- a/contracts/feature-tests/scenario-tester/wasm/src/lib.rs +++ b/contracts/feature-tests/scenario-tester/wasm/src/lib.rs @@ -11,8 +11,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock index 6d3a67850c..dbfa03678b 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -161,6 +163,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "use-module" version = "0.0.0" diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml index eea6ec7dc1..ceeef70516 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.use-module] path = ".." diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/src/lib.rs b/contracts/feature-tests/use-module/wasm-use-module-view/src/lib.rs index b1ea58a65a..4a5b43d1de 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/src/lib.rs +++ b/contracts/feature-tests/use-module/wasm-use-module-view/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/feature-tests/use-module/wasm/Cargo.lock b/contracts/feature-tests/use-module/wasm/Cargo.lock index 7bd3915e63..0ae23a9263 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm/Cargo.lock @@ -47,6 +47,7 @@ dependencies = [ "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] @@ -55,6 +56,7 @@ version = "0.18.8" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] @@ -161,6 +163,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "use-module" version = "0.0.0" diff --git a/contracts/feature-tests/use-module/wasm/Cargo.toml b/contracts/feature-tests/use-module/wasm/Cargo.toml index 50a3d5bf82..a69dc56cf6 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.use-module] path = ".." diff --git a/contracts/feature-tests/use-module/wasm/src/lib.rs b/contracts/feature-tests/use-module/wasm/src/lib.rs index 88422e3c83..7171b56ecd 100644 --- a/contracts/feature-tests/use-module/wasm/src/lib.rs +++ b/contracts/feature-tests/use-module/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 65 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/framework/meta/src/cargo_toml_contents.rs b/framework/meta/src/cargo_toml_contents.rs index 1a6596a68d..3ad86c648f 100644 --- a/framework/meta/src/cargo_toml_contents.rs +++ b/framework/meta/src/cargo_toml_contents.rs @@ -218,15 +218,34 @@ impl CargoTomlContents { Value::Boolean(contract_profile.overflow_checks), ); + // add contract variant profile let mut toml_table = toml::map::Map::new(); toml_table.insert("release".to_string(), toml::Value::Table(profile_props)); + // add profile dev + let mut dev_value = toml::map::Map::new(); + dev_value.insert("panic".to_string(), Value::String("abort".to_string())); + toml_table.insert("dev".to_string(), toml::Value::Table(dev_value)); + self.toml_value .as_table_mut() .expect("malformed package in Cargo.toml") .insert("profile".to_string(), toml::Value::Table(toml_table)); } + pub fn add_dev_profile(&mut self) { + let mut value = toml::map::Map::new(); + value.insert("panic".to_string(), Value::String("abort".to_string())); + + let mut toml_table = toml::map::Map::new(); + toml_table.insert("dev".to_string(), toml::Value::Table(value)); + + self.toml_value + .as_table_mut() + .expect("malformed profile dev in Cargo.toml ") + .insert("profile".to_string(), toml::Value::Table(toml_table)); + } + pub fn add_workspace(&mut self, members: &[&str]) { let array: Vec = members .iter() diff --git a/framework/meta/src/cmd/contract/meta_config.rs b/framework/meta/src/cmd/contract/meta_config.rs index 1e75900261..7543327d06 100644 --- a/framework/meta/src/cmd/contract/meta_config.rs +++ b/framework/meta/src/cmd/contract/meta_config.rs @@ -201,6 +201,9 @@ debug = false panic = \"abort\" overflow-checks = false +[profile.dev] +panic = \"abort\" + [dependencies.test-crate-name] path = \"..\" diff --git a/framework/meta/src/cmd/contract/sc_config/wasm_crate_gen.rs b/framework/meta/src/cmd/contract/sc_config/wasm_crate_gen.rs index 4117cc24f8..3b0a82c717 100644 --- a/framework/meta/src/cmd/contract/sc_config/wasm_crate_gen.rs +++ b/framework/meta/src/cmd/contract/sc_config/wasm_crate_gen.rs @@ -27,7 +27,7 @@ const FEATURES_PRE_RUSTC_1_71: &str = " // Configuration that works with rustc < 1.71.0. // TODO: Recommended rustc version: 1.73.0 or newer. -#![feature(alloc_error_handler, lang_items)] +#![feature(alloc_error_handler)] "; const VER_1_73: &str = "1.73.0-nightly"; @@ -36,13 +36,10 @@ const FEATURES_PRE_RUSTC_1_73: &str = " // Configuration that works with rustc < 1.73.0. // TODO: Recommended rustc version: 1.73.0 or newer. -#![feature(lang_items)] "; const FEATURES_DEFAULT: &str = " #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] "; impl ContractVariant { diff --git a/framework/wasm-adapter/src/wasm_macros.rs b/framework/wasm-adapter/src/wasm_macros.rs index 206070a91c..0d2ae296a3 100644 --- a/framework/wasm-adapter/src/wasm_macros.rs +++ b/framework/wasm-adapter/src/wasm_macros.rs @@ -28,9 +28,6 @@ macro_rules! panic_handler { fn panic_fmt(panic_info: &multiversx_sc_wasm_adapter::panic::PanicInfo) -> ! { multiversx_sc_wasm_adapter::panic::panic_fmt(panic_info) } - - #[lang = "eh_personality"] - fn eh_personality() {} }; } @@ -41,9 +38,6 @@ macro_rules! panic_handler_with_message { fn panic_fmt(panic_info: &multiversx_sc_wasm_adapter::panic::PanicInfo) -> ! { multiversx_sc_wasm_adapter::panic::panic_fmt_with_message(panic_info) } - - #[lang = "eh_personality"] - fn eh_personality() {} }; } From 693e0aa119a49847a5a021690fcbdf9ecfcc0290 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Tue, 7 May 2024 19:35:09 +0300 Subject: [PATCH 142/185] removed try trait v2 --- .../scenarios/sc_result.scen.json | 6 +-- .../src/macro_features_legacy.rs | 21 ++-------- .../wasm-alloc-mem-fail/src/lib.rs | 8 ++-- .../wasm-alloc-mem-leaking/src/lib.rs | 8 ++-- .../alloc-features/wasm/src/lib.rs | 8 ++-- data/codec/src/lib.rs | 1 - framework/base/src/lib.rs | 2 - framework/base/src/types/io/sc_result.rs | 41 ------------------- 8 files changed, 16 insertions(+), 79 deletions(-) diff --git a/contracts/feature-tests/alloc-features/scenarios/sc_result.scen.json b/contracts/feature-tests/alloc-features/scenarios/sc_result.scen.json index a3f22fd47f..b4fac3e261 100644 --- a/contracts/feature-tests/alloc-features/scenarios/sc_result.scen.json +++ b/contracts/feature-tests/alloc-features/scenarios/sc_result.scen.json @@ -60,7 +60,7 @@ "tx": { "from": "address:an_account", "to": "sc:alloc-features", - "function": "result_err_from_bytes_1", + "function": "result_err_from_bytes", "arguments": [ "str:test error message" ], @@ -82,7 +82,7 @@ "tx": { "from": "address:an_account", "to": "sc:alloc-features", - "function": "result_err_from_bytes_2", + "function": "result_err_from_bytes", "arguments": [ "str:test error message" ], @@ -104,7 +104,7 @@ "tx": { "from": "address:an_account", "to": "sc:alloc-features", - "function": "result_err_from_bytes_3", + "function": "result_err_from_bytes", "arguments": [ "str:test error message" ], diff --git a/contracts/feature-tests/alloc-features/src/macro_features_legacy.rs b/contracts/feature-tests/alloc-features/src/macro_features_legacy.rs index 1efc5ff38e..0a33d06c05 100644 --- a/contracts/feature-tests/alloc-features/src/macro_features_legacy.rs +++ b/contracts/feature-tests/alloc-features/src/macro_features_legacy.rs @@ -27,18 +27,7 @@ pub trait MacroFeaturesLegacy { } #[view] - fn result_err_from_bytes_1(&self, e: BoxedBytes) -> SCResult<(), ManagedSCError> { - SCResult::Err(e.into())?; - unreachable!() - } - - #[view] - fn result_err_from_bytes_2<'a>(&self, e: &'a [u8]) -> SCResult<(), ManagedSCError> { - SCResult::Err(e.into()) - } - - #[view] - fn result_err_from_bytes_3(&self, e: Vec) -> SCResult<(), ManagedSCError> { + fn result_err_from_bytes(&self, e: BoxedBytes) -> SCResult<(), ManagedSCError> { SCResult::Err(e.into()) } @@ -55,15 +44,13 @@ pub trait MacroFeaturesLegacy { #[endpoint] fn result_echo(&self, arg: Option, test: bool) -> SCResult { require!(test, "test argument is false"); - let unwrapped = - SCResult::::from_result(arg.ok_or("option argument is none"))?; - SCResult::Ok(unwrapped) + + SCResult::::from_result(arg.ok_or("option argument is none")) } #[endpoint] fn result_echo_2(&self, arg: Option) -> SCResult { - let unwrapped = arg.ok_or("option argument is none")?; - SCResult::Ok(unwrapped) + arg.ok_or("option argument is none").into() } #[endpoint] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/src/lib.rs b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/src/lib.rs index f903442a51..f6acd5959c 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/src/lib.rs +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/src/lib.rs @@ -5,9 +5,9 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 65 +// Endpoints: 63 // Async Callback (empty): 1 -// Total number of exported functions: 67 +// Total number of exported functions: 65 #![no_std] @@ -52,9 +52,7 @@ multiversx_sc_wasm_adapter::endpoints! { only_owner_legacy => only_owner_legacy return_sc_error => return_sc_error result_ok => result_ok - result_err_from_bytes_1 => result_err_from_bytes_1 - result_err_from_bytes_2 => result_err_from_bytes_2 - result_err_from_bytes_3 => result_err_from_bytes_3 + result_err_from_bytes => result_err_from_bytes result_err_from_string => result_err_from_string result_err_from_str => result_err_from_str result_echo => result_echo diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/src/lib.rs b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/src/lib.rs index 9d069ce40f..9056a19d65 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/src/lib.rs +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/src/lib.rs @@ -5,9 +5,9 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 65 +// Endpoints: 63 // Async Callback (empty): 1 -// Total number of exported functions: 67 +// Total number of exported functions: 65 #![no_std] @@ -52,9 +52,7 @@ multiversx_sc_wasm_adapter::endpoints! { only_owner_legacy => only_owner_legacy return_sc_error => return_sc_error result_ok => result_ok - result_err_from_bytes_1 => result_err_from_bytes_1 - result_err_from_bytes_2 => result_err_from_bytes_2 - result_err_from_bytes_3 => result_err_from_bytes_3 + result_err_from_bytes => result_err_from_bytes result_err_from_string => result_err_from_string result_err_from_str => result_err_from_str result_echo => result_echo diff --git a/contracts/feature-tests/alloc-features/wasm/src/lib.rs b/contracts/feature-tests/alloc-features/wasm/src/lib.rs index d56e4d69ba..3b8d0b84e3 100644 --- a/contracts/feature-tests/alloc-features/wasm/src/lib.rs +++ b/contracts/feature-tests/alloc-features/wasm/src/lib.rs @@ -5,9 +5,9 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 64 +// Endpoints: 62 // Async Callback (empty): 1 -// Total number of exported functions: 66 +// Total number of exported functions: 64 #![no_std] @@ -52,9 +52,7 @@ multiversx_sc_wasm_adapter::endpoints! { only_owner_legacy => only_owner_legacy return_sc_error => return_sc_error result_ok => result_ok - result_err_from_bytes_1 => result_err_from_bytes_1 - result_err_from_bytes_2 => result_err_from_bytes_2 - result_err_from_bytes_3 => result_err_from_bytes_3 + result_err_from_bytes => result_err_from_bytes result_err_from_string => result_err_from_string result_err_from_str => result_err_from_str result_echo => result_echo diff --git a/data/codec/src/lib.rs b/data/codec/src/lib.rs index 2833dd4ed4..dac8727604 100644 --- a/data/codec/src/lib.rs +++ b/data/codec/src/lib.rs @@ -1,5 +1,4 @@ #![no_std] -#![feature(try_trait_v2)] extern crate alloc; diff --git a/framework/base/src/lib.rs b/framework/base/src/lib.rs index 0a39af959f..2b9f8669f7 100644 --- a/framework/base/src/lib.rs +++ b/framework/base/src/lib.rs @@ -1,6 +1,4 @@ #![no_std] -#![feature(try_trait_v2)] -#![feature(control_flow_enum)] #![feature(generic_const_exprs)] #![allow(incomplete_features)] #![allow(deprecated)] diff --git a/framework/base/src/types/io/sc_result.rs b/framework/base/src/types/io/sc_result.rs index 183ade9f4b..de000fa1e1 100644 --- a/framework/base/src/types/io/sc_result.rs +++ b/framework/base/src/types/io/sc_result.rs @@ -9,10 +9,6 @@ use crate::{ abi::{OutputAbis, TypeAbi, TypeDescriptionContainer, TypeName}, api::EndpointFinishApi, }; -use core::{ - convert, - ops::{ControlFlow, FromResidual, Try}, -}; use super::{SCError, StaticSCError}; @@ -81,43 +77,6 @@ impl SCResult { } } -/// Implementing the `Try` trait overloads the `?` operator. -/// Documentation on the new version of the trait: -/// -impl Try for SCResult { - type Output = T; - type Residual = E; - - fn branch(self) -> ControlFlow { - match self { - SCResult::Ok(t) => ControlFlow::Continue(t), - SCResult::Err(e) => ControlFlow::Break(e), - } - } - fn from_output(v: T) -> Self { - SCResult::Ok(v) - } -} - -impl FromResidual for SCResult { - fn from_residual(r: E) -> Self { - SCResult::Err(r) - } -} - -impl FromResidual> for SCResult -where - FromErr: Into, -{ - fn from_residual(residual: Result) -> Self { - let e = match residual { - Ok(_) => unreachable!(), - Err(err) => err, - }; - SCResult::Err(e.into()) - } -} - impl TopEncodeMulti for SCResult where T: TopEncodeMulti, From 18872ac11825075b40a5dc8e6168ca3872ae9990 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 09:14:41 +0300 Subject: [PATCH 143/185] panic message simplified, test fix --- .../scenarios/error-message-after-log.txt | 3 ++- .../panic-message-features/scenarios/error-message.txt | 3 ++- .../panic-message-features/tests/pmf_scenario_rs_test.rs | 1 + framework/wasm-adapter/src/panic.rs | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/contracts/feature-tests/panic-message-features/scenarios/error-message-after-log.txt b/contracts/feature-tests/panic-message-features/scenarios/error-message-after-log.txt index 09fa24df8b..0902894d05 100644 --- a/contracts/feature-tests/panic-message-features/scenarios/error-message-after-log.txt +++ b/contracts/feature-tests/panic-message-features/scenarios/error-message-after-log.txt @@ -1 +1,2 @@ -panic occured: PanicInfo { payload: Any { .. }, message: Some(panic after log), location: Location { file: "panic_features.rs", line: 22, col: 9 }, can_unwind: true, force_no_backtrace: false } \ No newline at end of file +panic occurred: panicked at panic_features.rs:22:9: +panic after log \ No newline at end of file diff --git a/contracts/feature-tests/panic-message-features/scenarios/error-message.txt b/contracts/feature-tests/panic-message-features/scenarios/error-message.txt index 0c49fcc44d..b161bad102 100644 --- a/contracts/feature-tests/panic-message-features/scenarios/error-message.txt +++ b/contracts/feature-tests/panic-message-features/scenarios/error-message.txt @@ -1 +1,2 @@ -panic occured: PanicInfo { payload: Any { .. }, message: Some(example panic message 123), location: Location { file: "panic_features.rs", line: 22, col: 9 }, can_unwind: true, force_no_backtrace: false } \ No newline at end of file +panic occurred: panicked at panic_features.rs:15:9: +example panic message 123 \ No newline at end of file diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_scenario_rs_test.rs b/contracts/feature-tests/panic-message-features/tests/pmf_scenario_rs_test.rs index 2f9355f0d1..93db854e46 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_scenario_rs_test.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_scenario_rs_test.rs @@ -19,6 +19,7 @@ fn panic_after_log_rs() { world().run("scenarios/panic-after-log.scen.json"); } +#[ignore = "PanicInfo currently not available, TODO: use std::panic::set_hook"] #[test] fn panic_message_rs() { world().run("scenarios/panic-message.scen.json"); diff --git a/framework/wasm-adapter/src/panic.rs b/framework/wasm-adapter/src/panic.rs index 59a9545835..bd7cb707f1 100644 --- a/framework/wasm-adapter/src/panic.rs +++ b/framework/wasm-adapter/src/panic.rs @@ -20,7 +20,7 @@ pub fn panic_fmt_with_message(panic_info: &PanicInfo) -> ! { let mut panic_msg = ManagedPanicMessage::default(); panic_msg.append_str("panic occurred: "); - core::fmt::write(&mut panic_msg, format_args!("{:?}", panic_info)) + core::fmt::write(&mut panic_msg, format_args!("{panic_info}")) .unwrap_or_else(|_| panic_msg.append_str("unable to write panic")); VmApiImpl::error_api_impl().signal_error_from_buffer(panic_msg.buffer.get_handle()) From e035b044f84c20f4223919a945219918f823cde8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 09:21:03 +0300 Subject: [PATCH 144/185] cleanup --- framework/wasm-adapter/src/panic.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/framework/wasm-adapter/src/panic.rs b/framework/wasm-adapter/src/panic.rs index bd7cb707f1..00dc658a7a 100644 --- a/framework/wasm-adapter/src/panic.rs +++ b/framework/wasm-adapter/src/panic.rs @@ -35,10 +35,6 @@ impl ManagedPanicMessage { fn append_str(&mut self, s: &str) { self.buffer.append_bytes(s.as_bytes()); } - - fn _overwrite(&mut self, s: &str) { - self.buffer.overwrite(s.as_bytes()); - } } impl core::fmt::Write for ManagedPanicMessage { From 6de666ec38280f2200dfa83dfa9844505dfacc91 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 07:45:15 +0300 Subject: [PATCH 145/185] wasm crate cleanup --- contracts/benchmarks/large-storage/wasm/Cargo.toml | 3 +++ contracts/benchmarks/large-storage/wasm/src/lib.rs | 2 -- .../benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml | 3 +++ .../benchmarks/mappers/linked-list-repeat/wasm/src/lib.rs | 2 -- contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml | 3 +++ contracts/benchmarks/mappers/map-repeat/wasm/src/lib.rs | 2 -- contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml | 3 +++ contracts/benchmarks/mappers/queue-repeat/wasm/src/lib.rs | 2 -- contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml | 3 +++ contracts/benchmarks/mappers/set-repeat/wasm/src/lib.rs | 2 -- .../benchmarks/mappers/single-value-repeat/wasm/Cargo.toml | 3 +++ .../benchmarks/mappers/single-value-repeat/wasm/src/lib.rs | 2 -- contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml | 3 +++ contracts/benchmarks/mappers/vec-repeat/wasm/src/lib.rs | 2 -- contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml | 3 +++ contracts/benchmarks/send-tx-repeat/wasm/src/lib.rs | 2 -- .../str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml | 3 +++ .../str-repeat/wasm-str-repeat-mb-builder-basic/src/lib.rs | 2 -- .../str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml | 3 +++ .../str-repeat/wasm-str-repeat-mb-builder-cached/src/lib.rs | 2 -- contracts/benchmarks/str-repeat/wasm/Cargo.toml | 3 +++ contracts/benchmarks/str-repeat/wasm/src/lib.rs | 2 -- contracts/core/price-aggregator/wasm/Cargo.toml | 3 +++ contracts/core/price-aggregator/wasm/src/lib.rs | 2 -- contracts/core/wegld-swap/wasm/Cargo.toml | 3 +++ contracts/core/wegld-swap/wasm/src/lib.rs | 2 -- 26 files changed, 39 insertions(+), 26 deletions(-) diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.toml b/contracts/benchmarks/large-storage/wasm/Cargo.toml index fde48c533f..27442eadd5 100644 --- a/contracts/benchmarks/large-storage/wasm/Cargo.toml +++ b/contracts/benchmarks/large-storage/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.large-storage] path = ".." diff --git a/contracts/benchmarks/large-storage/wasm/src/lib.rs b/contracts/benchmarks/large-storage/wasm/src/lib.rs index 7637992615..fcaf9afbee 100644 --- a/contracts/benchmarks/large-storage/wasm/src/lib.rs +++ b/contracts/benchmarks/large-storage/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 4 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml index cf4d28c279..f901bcd893 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.linked-list-repeat] path = ".." diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/src/lib.rs b/contracts/benchmarks/mappers/linked-list-repeat/wasm/src/lib.rs index 626c63d138..1e79aa533a 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/src/lib.rs +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml index e0cbbf5bb3..a37c36a723 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.map-repeat] path = ".." diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/src/lib.rs b/contracts/benchmarks/mappers/map-repeat/wasm/src/lib.rs index cd006d5384..3d670243ff 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/src/lib.rs +++ b/contracts/benchmarks/mappers/map-repeat/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 8 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml index c878a5a4f1..86baf16ed1 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.queue-repeat] path = ".." diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/src/lib.rs b/contracts/benchmarks/mappers/queue-repeat/wasm/src/lib.rs index 9eb5f3ac5b..887fb0c6e6 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/src/lib.rs +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml index ea33bd0bf5..32140cb3c9 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.set-repeat] path = ".." diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/src/lib.rs b/contracts/benchmarks/mappers/set-repeat/wasm/src/lib.rs index 26158eb9da..7a1a61db74 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/src/lib.rs +++ b/contracts/benchmarks/mappers/set-repeat/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml index e74af019ff..fb2acc6ebc 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.single-value-repeat] path = ".." diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/src/lib.rs b/contracts/benchmarks/mappers/single-value-repeat/wasm/src/lib.rs index ced8d7e061..0c377e4821 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/src/lib.rs +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 8 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml index 540da31865..e66c6adebe 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.vec-repeat] path = ".." diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/src/lib.rs b/contracts/benchmarks/mappers/vec-repeat/wasm/src/lib.rs index 353338d425..6f915470d8 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/src/lib.rs +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 10 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml index d25bec0cbf..647b00bce5 100644 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.send-tx-repeat] path = ".." diff --git a/contracts/benchmarks/send-tx-repeat/wasm/src/lib.rs b/contracts/benchmarks/send-tx-repeat/wasm/src/lib.rs index 756fb62d43..acc9b4d8da 100644 --- a/contracts/benchmarks/send-tx-repeat/wasm/src/lib.rs +++ b/contracts/benchmarks/send-tx-repeat/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml index 760ea14af5..a4eeb33b9a 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.str-repeat] path = ".." diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/src/lib.rs b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/src/lib.rs index 868b673634..68be3133c5 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/src/lib.rs +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml index f91e231e9b..d0ad7a5766 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.str-repeat] path = ".." features = ["managed-buffer-builder-cached"] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/src/lib.rs b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/src/lib.rs index 868b673634..68be3133c5 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/src/lib.rs +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 3 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.toml b/contracts/benchmarks/str-repeat/wasm/Cargo.toml index c6b036ae15..6416f35226 100644 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.str-repeat] path = ".." diff --git a/contracts/benchmarks/str-repeat/wasm/src/lib.rs b/contracts/benchmarks/str-repeat/wasm/src/lib.rs index 45af6112da..1d059d343c 100644 --- a/contracts/benchmarks/str-repeat/wasm/src/lib.rs +++ b/contracts/benchmarks/str-repeat/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 5 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(leaking); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/core/price-aggregator/wasm/Cargo.toml b/contracts/core/price-aggregator/wasm/Cargo.toml index 11dc27513d..cef8117a00 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.toml +++ b/contracts/core/price-aggregator/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multiversx-price-aggregator-sc] path = ".." diff --git a/contracts/core/price-aggregator/wasm/src/lib.rs b/contracts/core/price-aggregator/wasm/src/lib.rs index 54fe29d855..667c425afd 100644 --- a/contracts/core/price-aggregator/wasm/src/lib.rs +++ b/contracts/core/price-aggregator/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 23 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); diff --git a/contracts/core/wegld-swap/wasm/Cargo.toml b/contracts/core/wegld-swap/wasm/Cargo.toml index bd89039edf..f2cd3330e8 100644 --- a/contracts/core/wegld-swap/wasm/Cargo.toml +++ b/contracts/core/wegld-swap/wasm/Cargo.toml @@ -21,6 +21,9 @@ debug = false panic = "abort" overflow-checks = false +[profile.dev] +panic = "abort" + [dependencies.multiversx-wegld-swap-sc] path = ".." diff --git a/contracts/core/wegld-swap/wasm/src/lib.rs b/contracts/core/wegld-swap/wasm/src/lib.rs index 40848a69a7..efb2e9bd60 100644 --- a/contracts/core/wegld-swap/wasm/src/lib.rs +++ b/contracts/core/wegld-swap/wasm/src/lib.rs @@ -10,8 +10,6 @@ // Total number of exported functions: 9 #![no_std] -#![allow(internal_features)] -#![feature(lang_items)] multiversx_sc_wasm_adapter::allocator!(); multiversx_sc_wasm_adapter::panic_handler!(); From 0d18789dc42278842d6f3ed83222b471d2791c80 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 08:01:38 +0300 Subject: [PATCH 146/185] removed feature exit_status_error --- .../format-tests/tests/run_format_tests.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tools/rust-debugger/format-tests/tests/run_format_tests.rs b/tools/rust-debugger/format-tests/tests/run_format_tests.rs index 489d765ef3..6d61931f39 100644 --- a/tools/rust-debugger/format-tests/tests/run_format_tests.rs +++ b/tools/rust-debugger/format-tests/tests/run_format_tests.rs @@ -1,5 +1,3 @@ -#![feature(exit_status_error)] - #[cfg(test)] use std::{io::BufRead, path::Path, process::Command}; @@ -60,10 +58,10 @@ fn run_format_tests() { .output() .expect("Failed to run debugger"); - debugger_output - .status - .exit_ok() - .expect("Debugger returned a non-zero status"); + assert!( + debugger_output.status.success(), + "Debugger returned a non-zero status" + ); let stdout_lines: Vec = debugger_output .stdout From fdcb2cbfadf553dfe10570243b5497d5821b89db Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 18:07:01 +0300 Subject: [PATCH 147/185] mn vec item refactor, initial payload impl, removed for arrays --- .../managed_vec_array_push.scen.json | 52 - .../src/managed_vec_features.rs | 10 - .../tests/basic_features_scenario_go_test.rs | 5 - .../tests/basic_features_scenario_rs_test.rs | 5 - .../base/src/types/flags/esdt_local_role.rs | 15 +- .../esdt_token_payment_multi_value.rs | 1 + .../managed/wrapped/esdt_token_payment.rs | 3 +- .../types/managed/wrapped/managed_option.rs | 3 +- .../types/managed/wrapped/managed_vec_item.rs | 58 +- .../wrapped/managed_vec_item_payload.rs | 1083 +++++++++++++++++ .../base/src/types/managed/wrapped/mod.rs | 2 + .../derive/src/managed_vec_item_derive.rs | 2 + .../src/api/impl_vh/debug_handle_vh.rs | 2 + .../derive_managed_vec_item_struct_2_test.rs | 6 +- 14 files changed, 1119 insertions(+), 128 deletions(-) delete mode 100644 contracts/feature-tests/basic-features/scenarios/managed_vec_array_push.scen.json create mode 100644 framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs diff --git a/contracts/feature-tests/basic-features/scenarios/managed_vec_array_push.scen.json b/contracts/feature-tests/basic-features/scenarios/managed_vec_array_push.scen.json deleted file mode 100644 index 1412fd5e31..0000000000 --- a/contracts/feature-tests/basic-features/scenarios/managed_vec_array_push.scen.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "steps": [ - { - "step": "setState", - "accounts": { - "sc:basic-features": { - "nonce": "0", - "balance": "0", - "code": "mxsc:../output/basic-features.mxsc.json" - }, - "address:an_account": { - "nonce": "0", - "balance": "0" - } - } - }, - { - "step": "scQuery", - "id": "1", - "tx": { - "to": "sc:basic-features", - "function": "managed_vec_array_push", - "arguments": [ - "", - "str:12345" - ] - }, - "expect": { - "out": [ - "str:12345" - ] - } - }, - { - "step": "scQuery", - "id": "1", - "tx": { - "to": "sc:basic-features", - "function": "managed_vec_array_push", - "arguments": [ - "str:12345", - "str:67890" - ] - }, - "expect": { - "out": [ - "str:1234567890" - ] - } - } - ] -} diff --git a/contracts/feature-tests/basic-features/src/managed_vec_features.rs b/contracts/feature-tests/basic-features/src/managed_vec_features.rs index 63aaab5811..6f42d104be 100644 --- a/contracts/feature-tests/basic-features/src/managed_vec_features.rs +++ b/contracts/feature-tests/basic-features/src/managed_vec_features.rs @@ -67,16 +67,6 @@ pub trait ManagedVecFeatures { mv.contains(&item) } - #[endpoint] - fn managed_vec_array_push( - &self, - mut mv: ManagedVec<[u8; 5]>, - item: [u8; 5], - ) -> ManagedVec<[u8; 5]> { - mv.push(item); - mv - } - #[endpoint] fn managed_ref_explicit(&self, mv: ManagedVec, index: usize) -> BigUint { let value: ManagedRef = mv.get(index); diff --git a/contracts/feature-tests/basic-features/tests/basic_features_scenario_go_test.rs b/contracts/feature-tests/basic-features/tests/basic_features_scenario_go_test.rs index 3c75401525..6ef518cf9f 100644 --- a/contracts/feature-tests/basic-features/tests/basic_features_scenario_go_test.rs +++ b/contracts/feature-tests/basic-features/tests/basic_features_scenario_go_test.rs @@ -255,11 +255,6 @@ fn managed_vec_address_push_go() { world().run("scenarios/managed_vec_address_push.scen.json"); } -#[test] -fn managed_vec_array_push_go() { - world().run("scenarios/managed_vec_array_push.scen.json"); -} - #[test] fn managed_vec_biguint_push_go() { world().run("scenarios/managed_vec_biguint_push.scen.json"); diff --git a/contracts/feature-tests/basic-features/tests/basic_features_scenario_rs_test.rs b/contracts/feature-tests/basic-features/tests/basic_features_scenario_rs_test.rs index 0129da845e..a799f9218a 100644 --- a/contracts/feature-tests/basic-features/tests/basic_features_scenario_rs_test.rs +++ b/contracts/feature-tests/basic-features/tests/basic_features_scenario_rs_test.rs @@ -271,11 +271,6 @@ fn managed_vec_address_push_rs() { world().run("scenarios/managed_vec_address_push.scen.json"); } -#[test] -fn managed_vec_array_push_rs() { - world().run("scenarios/managed_vec_array_push.scen.json"); -} - #[test] fn managed_vec_biguint_push_rs() { world().run("scenarios/managed_vec_biguint_push.scen.json"); diff --git a/framework/base/src/types/flags/esdt_local_role.rs b/framework/base/src/types/flags/esdt_local_role.rs index 9bc5edfc68..196d1c3f8a 100644 --- a/framework/base/src/types/flags/esdt_local_role.rs +++ b/framework/base/src/types/flags/esdt_local_role.rs @@ -1,11 +1,13 @@ -use crate::{ - codec, - codec::derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, -}; - use super::EsdtLocalRoleFlags; use crate as multiversx_sc; -use crate::{derive::type_abi, types::ManagedVecItem}; +use crate::{ + codec::{ + self, + derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, + }, + derive::type_abi, + types::{ManagedVecItem, ManagedVecItemPayloadBuffer}, +}; static ESDT_ROLE_NONE: &[u8] = &[]; static ESDT_ROLE_LOCAL_MINT: &[u8] = b"ESDTRoleLocalMint"; @@ -137,6 +139,7 @@ impl<'a> From<&'a [u8]> for EsdtLocalRole { } impl ManagedVecItem for EsdtLocalRole { + type PAYLOAD = ManagedVecItemPayloadBuffer<1>; const PAYLOAD_SIZE: usize = 1; const SKIPS_RESERIALIZATION: bool = false; // TODO: might be ok to be true, but needs testing type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs b/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs index d9b312f45b..ff4d0f70e7 100644 --- a/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs +++ b/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs @@ -40,6 +40,7 @@ impl EsdtTokenPaymentMultiValue { } impl ManagedVecItem for EsdtTokenPaymentMultiValue { + type PAYLOAD = as ManagedVecItem>::PAYLOAD; const PAYLOAD_SIZE: usize = EsdtTokenPayment::::PAYLOAD_SIZE; const SKIPS_RESERIALIZATION: bool = EsdtTokenPayment::::SKIPS_RESERIALIZATION; type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/wrapped/esdt_token_payment.rs b/framework/base/src/types/managed/wrapped/esdt_token_payment.rs index ac7a54c442..85e33e6d8e 100644 --- a/framework/base/src/types/managed/wrapped/esdt_token_payment.rs +++ b/framework/base/src/types/managed/wrapped/esdt_token_payment.rs @@ -13,7 +13,7 @@ use crate::{ derive::type_abi, }; -use super::ManagedVec; +use super::{ManagedVec, ManagedVecItemPayloadBuffer}; #[type_abi] #[derive(TopEncode, NestedEncode, Clone, PartialEq, Eq, Debug)] @@ -185,6 +185,7 @@ impl IntoMultiValue for EsdtTokenPayment { } impl ManagedVecItem for EsdtTokenPayment { + type PAYLOAD = ManagedVecItemPayloadBuffer<4>; const PAYLOAD_SIZE: usize = 16; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/wrapped/managed_option.rs b/framework/base/src/types/managed/wrapped/managed_option.rs index a34a4f7ab3..f29158f9fa 100644 --- a/framework/base/src/types/managed/wrapped/managed_option.rs +++ b/framework/base/src/types/managed/wrapped/managed_option.rs @@ -14,7 +14,7 @@ use crate::{ types::{ManagedRef, ManagedType}, }; -use super::ManagedVecItem; +use super::{ManagedVecItem, ManagedVecItemPayloadBuffer}; /// A very efficient optional managed type. /// @@ -195,6 +195,7 @@ where M: ManagedTypeApi, T: ManagedType + 'static, { + type PAYLOAD = ManagedVecItemPayloadBuffer<4>; const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item.rs b/framework/base/src/types/managed/wrapped/managed_vec_item.rs index 100a85ec14..0242663d32 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_item.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_item.rs @@ -1,4 +1,4 @@ -use core::{borrow::Borrow, mem::MaybeUninit}; +use core::borrow::Borrow; use crate::{ api::ManagedTypeApi, @@ -8,12 +8,16 @@ use crate::{ }, }; +use super::{ManagedVecItemPayload, ManagedVecItemPayloadAdd, ManagedVecItemPayloadBuffer}; + /// Types that implement this trait can be items inside a `ManagedVec`. /// All these types need a payload, i.e a representation that gets stored /// in the underlying managed buffer. /// Not all data needs to be stored as payload, for instance for most managed types /// the payload is just the handle, whereas the mai ndata is kept by the VM. pub trait ManagedVecItem: 'static { + type PAYLOAD: ManagedVecItemPayload; + /// Size of the data stored in the underlying `ManagedBuffer`. const PAYLOAD_SIZE: usize; @@ -50,6 +54,7 @@ pub trait ManagedVecItem: 'static { macro_rules! impl_int { ($ty:ident, $payload_size:expr) => { impl ManagedVecItem for $ty { + type PAYLOAD = ManagedVecItemPayloadBuffer<$payload_size>; const PAYLOAD_SIZE: usize = $payload_size; const SKIPS_RESERIALIZATION: bool = true; type Ref<'a> = Self; @@ -79,6 +84,7 @@ impl_int! {i32, 4} impl_int! {i64, 8} impl ManagedVecItem for usize { + type PAYLOAD = ManagedVecItemPayloadBuffer<4>; const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = true; type Ref<'a> = Self; @@ -102,6 +108,7 @@ impl ManagedVecItem for usize { } impl ManagedVecItem for bool { + type PAYLOAD = ManagedVecItemPayloadBuffer<1>; const PAYLOAD_SIZE: usize = 1; const SKIPS_RESERIALIZATION: bool = true; type Ref<'a> = Self; @@ -126,9 +133,11 @@ impl ManagedVecItem for bool { impl ManagedVecItem for Option where + ManagedVecItemPayloadBuffer<1>: ManagedVecItemPayloadAdd, [(); 1 + T::PAYLOAD_SIZE]:, T: ManagedVecItem, { + type PAYLOAD = as ManagedVecItemPayloadAdd>::Output; const PAYLOAD_SIZE: usize = 1 + T::PAYLOAD_SIZE; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = Self; @@ -166,6 +175,7 @@ where macro_rules! impl_managed_type { ($ty:ident) => { impl ManagedVecItem for $ty { + type PAYLOAD = ManagedVecItemPayloadBuffer<4>; const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = ManagedRef<'a, M, Self>; @@ -200,6 +210,7 @@ impl ManagedVecItem for ManagedByteArray where M: ManagedTypeApi, { + type PAYLOAD = ManagedVecItemPayloadBuffer<4>; const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = ManagedRef<'a, M, Self>; @@ -224,55 +235,12 @@ where } } -impl ManagedVecItem for [T; N] -where - [(); T::PAYLOAD_SIZE * N]:, - T: ManagedVecItem, -{ - const PAYLOAD_SIZE: usize = T::PAYLOAD_SIZE * N; - const SKIPS_RESERIALIZATION: bool = T::SKIPS_RESERIALIZATION; - type Ref<'a> = Self; - - fn from_byte_reader(mut reader: Reader) -> Self { - let mut byte_arr: [u8; T::PAYLOAD_SIZE * N] = [0; T::PAYLOAD_SIZE * N]; - reader(&mut byte_arr[..]); - let mut result: [T; N] = unsafe { MaybeUninit::zeroed().assume_init() }; - let mut from_index = 0; - for item in result.iter_mut() { - let to_index = from_index + T::PAYLOAD_SIZE; - *item = T::from_byte_reader(|bytes| { - bytes.copy_from_slice(&byte_arr[from_index..to_index]); - }); - from_index = to_index; - } - result - } - - unsafe fn from_byte_reader_as_borrow<'a, Reader: FnMut(&mut [u8])>( - reader: Reader, - ) -> Self::Ref<'a> { - Self::from_byte_reader(reader) - } - - fn to_byte_writer R>(&self, mut writer: Writer) -> R { - let mut byte_arr: [u8; T::PAYLOAD_SIZE * N] = [0; T::PAYLOAD_SIZE * N]; - let mut from_index = 0; - for item in self { - let to_index = from_index + T::PAYLOAD_SIZE; - item.to_byte_writer(|bytes| { - byte_arr[from_index..to_index].copy_from_slice(bytes); - }); - from_index = to_index; - } - writer(&byte_arr[..]) - } -} - impl ManagedVecItem for ManagedVec where M: ManagedTypeApi, T: ManagedVecItem, { + type PAYLOAD = ManagedVecItemPayloadBuffer<4>; const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = ManagedRef<'a, M, Self>; diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs new file mode 100644 index 0000000000..cfe1ed4389 --- /dev/null +++ b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs @@ -0,0 +1,1083 @@ +pub trait ManagedVecItemPayload { + fn new_buffer() -> Self; + + fn payload_size() -> usize; + + fn payload_slice(&mut self) -> &mut [u8]; +} + +pub struct TempPayload; + +impl ManagedVecItemPayload for TempPayload { + fn new_buffer() -> Self { + panic!("nope!") + } + + fn payload_size() -> usize { + panic!("nope!") + } + + fn payload_slice(&mut self) -> &mut [u8] { + panic!("nope!") + } +} + +pub struct ManagedVecItemPayloadBuffer { + buffer: [u8; N], +} + +impl ManagedVecItemPayload for ManagedVecItemPayloadBuffer { + fn new_buffer() -> Self { + ManagedVecItemPayloadBuffer { buffer: [0u8; N] } + } + + fn payload_size() -> usize { + N + } + + fn payload_slice(&mut self) -> &mut [u8] { + &mut self.buffer[..] + } +} + +pub trait ManagedVecItemPayloadAdd: ManagedVecItemPayload +where + Rhs: ManagedVecItemPayload, +{ + type Output: ManagedVecItemPayload; +} + +macro_rules! payload_add { + ($dec1:expr, $dec2:expr, $result_add:expr) => { + impl ManagedVecItemPayloadAdd> + for ManagedVecItemPayloadBuffer<$dec1> + { + type Output = ManagedVecItemPayloadBuffer<$result_add>; + } + }; +} + +payload_add!(1usize, 1usize, 2usize); +payload_add!(1usize, 2usize, 3usize); +payload_add!(1usize, 3usize, 4usize); +payload_add!(1usize, 4usize, 5usize); +payload_add!(1usize, 5usize, 6usize); +payload_add!(1usize, 6usize, 7usize); +payload_add!(1usize, 7usize, 8usize); +payload_add!(1usize, 8usize, 9usize); +payload_add!(1usize, 9usize, 10usize); +payload_add!(1usize, 10usize, 11usize); +payload_add!(1usize, 11usize, 12usize); +payload_add!(1usize, 12usize, 13usize); +payload_add!(1usize, 13usize, 14usize); +payload_add!(1usize, 14usize, 15usize); +payload_add!(1usize, 15usize, 16usize); +payload_add!(1usize, 16usize, 17usize); +payload_add!(1usize, 17usize, 18usize); +payload_add!(1usize, 18usize, 19usize); +payload_add!(1usize, 19usize, 20usize); +payload_add!(1usize, 20usize, 21usize); +payload_add!(1usize, 21usize, 22usize); +payload_add!(1usize, 22usize, 23usize); +payload_add!(1usize, 23usize, 24usize); +payload_add!(1usize, 24usize, 25usize); +payload_add!(1usize, 25usize, 26usize); +payload_add!(1usize, 26usize, 27usize); +payload_add!(1usize, 27usize, 28usize); +payload_add!(1usize, 28usize, 29usize); +payload_add!(1usize, 29usize, 30usize); +payload_add!(1usize, 30usize, 31usize); +payload_add!(1usize, 31usize, 32usize); +payload_add!(1usize, 32usize, 33usize); +payload_add!(2usize, 1usize, 3usize); +payload_add!(2usize, 2usize, 4usize); +payload_add!(2usize, 3usize, 5usize); +payload_add!(2usize, 4usize, 6usize); +payload_add!(2usize, 5usize, 7usize); +payload_add!(2usize, 6usize, 8usize); +payload_add!(2usize, 7usize, 9usize); +payload_add!(2usize, 8usize, 10usize); +payload_add!(2usize, 9usize, 11usize); +payload_add!(2usize, 10usize, 12usize); +payload_add!(2usize, 11usize, 13usize); +payload_add!(2usize, 12usize, 14usize); +payload_add!(2usize, 13usize, 15usize); +payload_add!(2usize, 14usize, 16usize); +payload_add!(2usize, 15usize, 17usize); +payload_add!(2usize, 16usize, 18usize); +payload_add!(2usize, 17usize, 19usize); +payload_add!(2usize, 18usize, 20usize); +payload_add!(2usize, 19usize, 21usize); +payload_add!(2usize, 20usize, 22usize); +payload_add!(2usize, 21usize, 23usize); +payload_add!(2usize, 22usize, 24usize); +payload_add!(2usize, 23usize, 25usize); +payload_add!(2usize, 24usize, 26usize); +payload_add!(2usize, 25usize, 27usize); +payload_add!(2usize, 26usize, 28usize); +payload_add!(2usize, 27usize, 29usize); +payload_add!(2usize, 28usize, 30usize); +payload_add!(2usize, 29usize, 31usize); +payload_add!(2usize, 30usize, 32usize); +payload_add!(2usize, 31usize, 33usize); +payload_add!(2usize, 32usize, 34usize); +payload_add!(3usize, 1usize, 4usize); +payload_add!(3usize, 2usize, 5usize); +payload_add!(3usize, 3usize, 6usize); +payload_add!(3usize, 4usize, 7usize); +payload_add!(3usize, 5usize, 8usize); +payload_add!(3usize, 6usize, 9usize); +payload_add!(3usize, 7usize, 10usize); +payload_add!(3usize, 8usize, 11usize); +payload_add!(3usize, 9usize, 12usize); +payload_add!(3usize, 10usize, 13usize); +payload_add!(3usize, 11usize, 14usize); +payload_add!(3usize, 12usize, 15usize); +payload_add!(3usize, 13usize, 16usize); +payload_add!(3usize, 14usize, 17usize); +payload_add!(3usize, 15usize, 18usize); +payload_add!(3usize, 16usize, 19usize); +payload_add!(3usize, 17usize, 20usize); +payload_add!(3usize, 18usize, 21usize); +payload_add!(3usize, 19usize, 22usize); +payload_add!(3usize, 20usize, 23usize); +payload_add!(3usize, 21usize, 24usize); +payload_add!(3usize, 22usize, 25usize); +payload_add!(3usize, 23usize, 26usize); +payload_add!(3usize, 24usize, 27usize); +payload_add!(3usize, 25usize, 28usize); +payload_add!(3usize, 26usize, 29usize); +payload_add!(3usize, 27usize, 30usize); +payload_add!(3usize, 28usize, 31usize); +payload_add!(3usize, 29usize, 32usize); +payload_add!(3usize, 30usize, 33usize); +payload_add!(3usize, 31usize, 34usize); +payload_add!(3usize, 32usize, 35usize); +payload_add!(4usize, 1usize, 5usize); +payload_add!(4usize, 2usize, 6usize); +payload_add!(4usize, 3usize, 7usize); +payload_add!(4usize, 4usize, 8usize); +payload_add!(4usize, 5usize, 9usize); +payload_add!(4usize, 6usize, 10usize); +payload_add!(4usize, 7usize, 11usize); +payload_add!(4usize, 8usize, 12usize); +payload_add!(4usize, 9usize, 13usize); +payload_add!(4usize, 10usize, 14usize); +payload_add!(4usize, 11usize, 15usize); +payload_add!(4usize, 12usize, 16usize); +payload_add!(4usize, 13usize, 17usize); +payload_add!(4usize, 14usize, 18usize); +payload_add!(4usize, 15usize, 19usize); +payload_add!(4usize, 16usize, 20usize); +payload_add!(4usize, 17usize, 21usize); +payload_add!(4usize, 18usize, 22usize); +payload_add!(4usize, 19usize, 23usize); +payload_add!(4usize, 20usize, 24usize); +payload_add!(4usize, 21usize, 25usize); +payload_add!(4usize, 22usize, 26usize); +payload_add!(4usize, 23usize, 27usize); +payload_add!(4usize, 24usize, 28usize); +payload_add!(4usize, 25usize, 29usize); +payload_add!(4usize, 26usize, 30usize); +payload_add!(4usize, 27usize, 31usize); +payload_add!(4usize, 28usize, 32usize); +payload_add!(4usize, 29usize, 33usize); +payload_add!(4usize, 30usize, 34usize); +payload_add!(4usize, 31usize, 35usize); +payload_add!(4usize, 32usize, 36usize); +payload_add!(5usize, 1usize, 6usize); +payload_add!(5usize, 2usize, 7usize); +payload_add!(5usize, 3usize, 8usize); +payload_add!(5usize, 4usize, 9usize); +payload_add!(5usize, 5usize, 10usize); +payload_add!(5usize, 6usize, 11usize); +payload_add!(5usize, 7usize, 12usize); +payload_add!(5usize, 8usize, 13usize); +payload_add!(5usize, 9usize, 14usize); +payload_add!(5usize, 10usize, 15usize); +payload_add!(5usize, 11usize, 16usize); +payload_add!(5usize, 12usize, 17usize); +payload_add!(5usize, 13usize, 18usize); +payload_add!(5usize, 14usize, 19usize); +payload_add!(5usize, 15usize, 20usize); +payload_add!(5usize, 16usize, 21usize); +payload_add!(5usize, 17usize, 22usize); +payload_add!(5usize, 18usize, 23usize); +payload_add!(5usize, 19usize, 24usize); +payload_add!(5usize, 20usize, 25usize); +payload_add!(5usize, 21usize, 26usize); +payload_add!(5usize, 22usize, 27usize); +payload_add!(5usize, 23usize, 28usize); +payload_add!(5usize, 24usize, 29usize); +payload_add!(5usize, 25usize, 30usize); +payload_add!(5usize, 26usize, 31usize); +payload_add!(5usize, 27usize, 32usize); +payload_add!(5usize, 28usize, 33usize); +payload_add!(5usize, 29usize, 34usize); +payload_add!(5usize, 30usize, 35usize); +payload_add!(5usize, 31usize, 36usize); +payload_add!(5usize, 32usize, 37usize); +payload_add!(6usize, 1usize, 7usize); +payload_add!(6usize, 2usize, 8usize); +payload_add!(6usize, 3usize, 9usize); +payload_add!(6usize, 4usize, 10usize); +payload_add!(6usize, 5usize, 11usize); +payload_add!(6usize, 6usize, 12usize); +payload_add!(6usize, 7usize, 13usize); +payload_add!(6usize, 8usize, 14usize); +payload_add!(6usize, 9usize, 15usize); +payload_add!(6usize, 10usize, 16usize); +payload_add!(6usize, 11usize, 17usize); +payload_add!(6usize, 12usize, 18usize); +payload_add!(6usize, 13usize, 19usize); +payload_add!(6usize, 14usize, 20usize); +payload_add!(6usize, 15usize, 21usize); +payload_add!(6usize, 16usize, 22usize); +payload_add!(6usize, 17usize, 23usize); +payload_add!(6usize, 18usize, 24usize); +payload_add!(6usize, 19usize, 25usize); +payload_add!(6usize, 20usize, 26usize); +payload_add!(6usize, 21usize, 27usize); +payload_add!(6usize, 22usize, 28usize); +payload_add!(6usize, 23usize, 29usize); +payload_add!(6usize, 24usize, 30usize); +payload_add!(6usize, 25usize, 31usize); +payload_add!(6usize, 26usize, 32usize); +payload_add!(6usize, 27usize, 33usize); +payload_add!(6usize, 28usize, 34usize); +payload_add!(6usize, 29usize, 35usize); +payload_add!(6usize, 30usize, 36usize); +payload_add!(6usize, 31usize, 37usize); +payload_add!(6usize, 32usize, 38usize); +payload_add!(7usize, 1usize, 8usize); +payload_add!(7usize, 2usize, 9usize); +payload_add!(7usize, 3usize, 10usize); +payload_add!(7usize, 4usize, 11usize); +payload_add!(7usize, 5usize, 12usize); +payload_add!(7usize, 6usize, 13usize); +payload_add!(7usize, 7usize, 14usize); +payload_add!(7usize, 8usize, 15usize); +payload_add!(7usize, 9usize, 16usize); +payload_add!(7usize, 10usize, 17usize); +payload_add!(7usize, 11usize, 18usize); +payload_add!(7usize, 12usize, 19usize); +payload_add!(7usize, 13usize, 20usize); +payload_add!(7usize, 14usize, 21usize); +payload_add!(7usize, 15usize, 22usize); +payload_add!(7usize, 16usize, 23usize); +payload_add!(7usize, 17usize, 24usize); +payload_add!(7usize, 18usize, 25usize); +payload_add!(7usize, 19usize, 26usize); +payload_add!(7usize, 20usize, 27usize); +payload_add!(7usize, 21usize, 28usize); +payload_add!(7usize, 22usize, 29usize); +payload_add!(7usize, 23usize, 30usize); +payload_add!(7usize, 24usize, 31usize); +payload_add!(7usize, 25usize, 32usize); +payload_add!(7usize, 26usize, 33usize); +payload_add!(7usize, 27usize, 34usize); +payload_add!(7usize, 28usize, 35usize); +payload_add!(7usize, 29usize, 36usize); +payload_add!(7usize, 30usize, 37usize); +payload_add!(7usize, 31usize, 38usize); +payload_add!(7usize, 32usize, 39usize); +payload_add!(8usize, 1usize, 9usize); +payload_add!(8usize, 2usize, 10usize); +payload_add!(8usize, 3usize, 11usize); +payload_add!(8usize, 4usize, 12usize); +payload_add!(8usize, 5usize, 13usize); +payload_add!(8usize, 6usize, 14usize); +payload_add!(8usize, 7usize, 15usize); +payload_add!(8usize, 8usize, 16usize); +payload_add!(8usize, 9usize, 17usize); +payload_add!(8usize, 10usize, 18usize); +payload_add!(8usize, 11usize, 19usize); +payload_add!(8usize, 12usize, 20usize); +payload_add!(8usize, 13usize, 21usize); +payload_add!(8usize, 14usize, 22usize); +payload_add!(8usize, 15usize, 23usize); +payload_add!(8usize, 16usize, 24usize); +payload_add!(8usize, 17usize, 25usize); +payload_add!(8usize, 18usize, 26usize); +payload_add!(8usize, 19usize, 27usize); +payload_add!(8usize, 20usize, 28usize); +payload_add!(8usize, 21usize, 29usize); +payload_add!(8usize, 22usize, 30usize); +payload_add!(8usize, 23usize, 31usize); +payload_add!(8usize, 24usize, 32usize); +payload_add!(8usize, 25usize, 33usize); +payload_add!(8usize, 26usize, 34usize); +payload_add!(8usize, 27usize, 35usize); +payload_add!(8usize, 28usize, 36usize); +payload_add!(8usize, 29usize, 37usize); +payload_add!(8usize, 30usize, 38usize); +payload_add!(8usize, 31usize, 39usize); +payload_add!(8usize, 32usize, 40usize); +payload_add!(9usize, 1usize, 10usize); +payload_add!(9usize, 2usize, 11usize); +payload_add!(9usize, 3usize, 12usize); +payload_add!(9usize, 4usize, 13usize); +payload_add!(9usize, 5usize, 14usize); +payload_add!(9usize, 6usize, 15usize); +payload_add!(9usize, 7usize, 16usize); +payload_add!(9usize, 8usize, 17usize); +payload_add!(9usize, 9usize, 18usize); +payload_add!(9usize, 10usize, 19usize); +payload_add!(9usize, 11usize, 20usize); +payload_add!(9usize, 12usize, 21usize); +payload_add!(9usize, 13usize, 22usize); +payload_add!(9usize, 14usize, 23usize); +payload_add!(9usize, 15usize, 24usize); +payload_add!(9usize, 16usize, 25usize); +payload_add!(9usize, 17usize, 26usize); +payload_add!(9usize, 18usize, 27usize); +payload_add!(9usize, 19usize, 28usize); +payload_add!(9usize, 20usize, 29usize); +payload_add!(9usize, 21usize, 30usize); +payload_add!(9usize, 22usize, 31usize); +payload_add!(9usize, 23usize, 32usize); +payload_add!(9usize, 24usize, 33usize); +payload_add!(9usize, 25usize, 34usize); +payload_add!(9usize, 26usize, 35usize); +payload_add!(9usize, 27usize, 36usize); +payload_add!(9usize, 28usize, 37usize); +payload_add!(9usize, 29usize, 38usize); +payload_add!(9usize, 30usize, 39usize); +payload_add!(9usize, 31usize, 40usize); +payload_add!(9usize, 32usize, 41usize); +payload_add!(10usize, 1usize, 11usize); +payload_add!(10usize, 2usize, 12usize); +payload_add!(10usize, 3usize, 13usize); +payload_add!(10usize, 4usize, 14usize); +payload_add!(10usize, 5usize, 15usize); +payload_add!(10usize, 6usize, 16usize); +payload_add!(10usize, 7usize, 17usize); +payload_add!(10usize, 8usize, 18usize); +payload_add!(10usize, 9usize, 19usize); +payload_add!(10usize, 10usize, 20usize); +payload_add!(10usize, 11usize, 21usize); +payload_add!(10usize, 12usize, 22usize); +payload_add!(10usize, 13usize, 23usize); +payload_add!(10usize, 14usize, 24usize); +payload_add!(10usize, 15usize, 25usize); +payload_add!(10usize, 16usize, 26usize); +payload_add!(10usize, 17usize, 27usize); +payload_add!(10usize, 18usize, 28usize); +payload_add!(10usize, 19usize, 29usize); +payload_add!(10usize, 20usize, 30usize); +payload_add!(10usize, 21usize, 31usize); +payload_add!(10usize, 22usize, 32usize); +payload_add!(10usize, 23usize, 33usize); +payload_add!(10usize, 24usize, 34usize); +payload_add!(10usize, 25usize, 35usize); +payload_add!(10usize, 26usize, 36usize); +payload_add!(10usize, 27usize, 37usize); +payload_add!(10usize, 28usize, 38usize); +payload_add!(10usize, 29usize, 39usize); +payload_add!(10usize, 30usize, 40usize); +payload_add!(10usize, 31usize, 41usize); +payload_add!(10usize, 32usize, 42usize); +payload_add!(11usize, 1usize, 12usize); +payload_add!(11usize, 2usize, 13usize); +payload_add!(11usize, 3usize, 14usize); +payload_add!(11usize, 4usize, 15usize); +payload_add!(11usize, 5usize, 16usize); +payload_add!(11usize, 6usize, 17usize); +payload_add!(11usize, 7usize, 18usize); +payload_add!(11usize, 8usize, 19usize); +payload_add!(11usize, 9usize, 20usize); +payload_add!(11usize, 10usize, 21usize); +payload_add!(11usize, 11usize, 22usize); +payload_add!(11usize, 12usize, 23usize); +payload_add!(11usize, 13usize, 24usize); +payload_add!(11usize, 14usize, 25usize); +payload_add!(11usize, 15usize, 26usize); +payload_add!(11usize, 16usize, 27usize); +payload_add!(11usize, 17usize, 28usize); +payload_add!(11usize, 18usize, 29usize); +payload_add!(11usize, 19usize, 30usize); +payload_add!(11usize, 20usize, 31usize); +payload_add!(11usize, 21usize, 32usize); +payload_add!(11usize, 22usize, 33usize); +payload_add!(11usize, 23usize, 34usize); +payload_add!(11usize, 24usize, 35usize); +payload_add!(11usize, 25usize, 36usize); +payload_add!(11usize, 26usize, 37usize); +payload_add!(11usize, 27usize, 38usize); +payload_add!(11usize, 28usize, 39usize); +payload_add!(11usize, 29usize, 40usize); +payload_add!(11usize, 30usize, 41usize); +payload_add!(11usize, 31usize, 42usize); +payload_add!(11usize, 32usize, 43usize); +payload_add!(12usize, 1usize, 13usize); +payload_add!(12usize, 2usize, 14usize); +payload_add!(12usize, 3usize, 15usize); +payload_add!(12usize, 4usize, 16usize); +payload_add!(12usize, 5usize, 17usize); +payload_add!(12usize, 6usize, 18usize); +payload_add!(12usize, 7usize, 19usize); +payload_add!(12usize, 8usize, 20usize); +payload_add!(12usize, 9usize, 21usize); +payload_add!(12usize, 10usize, 22usize); +payload_add!(12usize, 11usize, 23usize); +payload_add!(12usize, 12usize, 24usize); +payload_add!(12usize, 13usize, 25usize); +payload_add!(12usize, 14usize, 26usize); +payload_add!(12usize, 15usize, 27usize); +payload_add!(12usize, 16usize, 28usize); +payload_add!(12usize, 17usize, 29usize); +payload_add!(12usize, 18usize, 30usize); +payload_add!(12usize, 19usize, 31usize); +payload_add!(12usize, 20usize, 32usize); +payload_add!(12usize, 21usize, 33usize); +payload_add!(12usize, 22usize, 34usize); +payload_add!(12usize, 23usize, 35usize); +payload_add!(12usize, 24usize, 36usize); +payload_add!(12usize, 25usize, 37usize); +payload_add!(12usize, 26usize, 38usize); +payload_add!(12usize, 27usize, 39usize); +payload_add!(12usize, 28usize, 40usize); +payload_add!(12usize, 29usize, 41usize); +payload_add!(12usize, 30usize, 42usize); +payload_add!(12usize, 31usize, 43usize); +payload_add!(12usize, 32usize, 44usize); +payload_add!(13usize, 1usize, 14usize); +payload_add!(13usize, 2usize, 15usize); +payload_add!(13usize, 3usize, 16usize); +payload_add!(13usize, 4usize, 17usize); +payload_add!(13usize, 5usize, 18usize); +payload_add!(13usize, 6usize, 19usize); +payload_add!(13usize, 7usize, 20usize); +payload_add!(13usize, 8usize, 21usize); +payload_add!(13usize, 9usize, 22usize); +payload_add!(13usize, 10usize, 23usize); +payload_add!(13usize, 11usize, 24usize); +payload_add!(13usize, 12usize, 25usize); +payload_add!(13usize, 13usize, 26usize); +payload_add!(13usize, 14usize, 27usize); +payload_add!(13usize, 15usize, 28usize); +payload_add!(13usize, 16usize, 29usize); +payload_add!(13usize, 17usize, 30usize); +payload_add!(13usize, 18usize, 31usize); +payload_add!(13usize, 19usize, 32usize); +payload_add!(13usize, 20usize, 33usize); +payload_add!(13usize, 21usize, 34usize); +payload_add!(13usize, 22usize, 35usize); +payload_add!(13usize, 23usize, 36usize); +payload_add!(13usize, 24usize, 37usize); +payload_add!(13usize, 25usize, 38usize); +payload_add!(13usize, 26usize, 39usize); +payload_add!(13usize, 27usize, 40usize); +payload_add!(13usize, 28usize, 41usize); +payload_add!(13usize, 29usize, 42usize); +payload_add!(13usize, 30usize, 43usize); +payload_add!(13usize, 31usize, 44usize); +payload_add!(13usize, 32usize, 45usize); +payload_add!(14usize, 1usize, 15usize); +payload_add!(14usize, 2usize, 16usize); +payload_add!(14usize, 3usize, 17usize); +payload_add!(14usize, 4usize, 18usize); +payload_add!(14usize, 5usize, 19usize); +payload_add!(14usize, 6usize, 20usize); +payload_add!(14usize, 7usize, 21usize); +payload_add!(14usize, 8usize, 22usize); +payload_add!(14usize, 9usize, 23usize); +payload_add!(14usize, 10usize, 24usize); +payload_add!(14usize, 11usize, 25usize); +payload_add!(14usize, 12usize, 26usize); +payload_add!(14usize, 13usize, 27usize); +payload_add!(14usize, 14usize, 28usize); +payload_add!(14usize, 15usize, 29usize); +payload_add!(14usize, 16usize, 30usize); +payload_add!(14usize, 17usize, 31usize); +payload_add!(14usize, 18usize, 32usize); +payload_add!(14usize, 19usize, 33usize); +payload_add!(14usize, 20usize, 34usize); +payload_add!(14usize, 21usize, 35usize); +payload_add!(14usize, 22usize, 36usize); +payload_add!(14usize, 23usize, 37usize); +payload_add!(14usize, 24usize, 38usize); +payload_add!(14usize, 25usize, 39usize); +payload_add!(14usize, 26usize, 40usize); +payload_add!(14usize, 27usize, 41usize); +payload_add!(14usize, 28usize, 42usize); +payload_add!(14usize, 29usize, 43usize); +payload_add!(14usize, 30usize, 44usize); +payload_add!(14usize, 31usize, 45usize); +payload_add!(14usize, 32usize, 46usize); +payload_add!(15usize, 1usize, 16usize); +payload_add!(15usize, 2usize, 17usize); +payload_add!(15usize, 3usize, 18usize); +payload_add!(15usize, 4usize, 19usize); +payload_add!(15usize, 5usize, 20usize); +payload_add!(15usize, 6usize, 21usize); +payload_add!(15usize, 7usize, 22usize); +payload_add!(15usize, 8usize, 23usize); +payload_add!(15usize, 9usize, 24usize); +payload_add!(15usize, 10usize, 25usize); +payload_add!(15usize, 11usize, 26usize); +payload_add!(15usize, 12usize, 27usize); +payload_add!(15usize, 13usize, 28usize); +payload_add!(15usize, 14usize, 29usize); +payload_add!(15usize, 15usize, 30usize); +payload_add!(15usize, 16usize, 31usize); +payload_add!(15usize, 17usize, 32usize); +payload_add!(15usize, 18usize, 33usize); +payload_add!(15usize, 19usize, 34usize); +payload_add!(15usize, 20usize, 35usize); +payload_add!(15usize, 21usize, 36usize); +payload_add!(15usize, 22usize, 37usize); +payload_add!(15usize, 23usize, 38usize); +payload_add!(15usize, 24usize, 39usize); +payload_add!(15usize, 25usize, 40usize); +payload_add!(15usize, 26usize, 41usize); +payload_add!(15usize, 27usize, 42usize); +payload_add!(15usize, 28usize, 43usize); +payload_add!(15usize, 29usize, 44usize); +payload_add!(15usize, 30usize, 45usize); +payload_add!(15usize, 31usize, 46usize); +payload_add!(15usize, 32usize, 47usize); +payload_add!(16usize, 1usize, 17usize); +payload_add!(16usize, 2usize, 18usize); +payload_add!(16usize, 3usize, 19usize); +payload_add!(16usize, 4usize, 20usize); +payload_add!(16usize, 5usize, 21usize); +payload_add!(16usize, 6usize, 22usize); +payload_add!(16usize, 7usize, 23usize); +payload_add!(16usize, 8usize, 24usize); +payload_add!(16usize, 9usize, 25usize); +payload_add!(16usize, 10usize, 26usize); +payload_add!(16usize, 11usize, 27usize); +payload_add!(16usize, 12usize, 28usize); +payload_add!(16usize, 13usize, 29usize); +payload_add!(16usize, 14usize, 30usize); +payload_add!(16usize, 15usize, 31usize); +payload_add!(16usize, 16usize, 32usize); +payload_add!(16usize, 17usize, 33usize); +payload_add!(16usize, 18usize, 34usize); +payload_add!(16usize, 19usize, 35usize); +payload_add!(16usize, 20usize, 36usize); +payload_add!(16usize, 21usize, 37usize); +payload_add!(16usize, 22usize, 38usize); +payload_add!(16usize, 23usize, 39usize); +payload_add!(16usize, 24usize, 40usize); +payload_add!(16usize, 25usize, 41usize); +payload_add!(16usize, 26usize, 42usize); +payload_add!(16usize, 27usize, 43usize); +payload_add!(16usize, 28usize, 44usize); +payload_add!(16usize, 29usize, 45usize); +payload_add!(16usize, 30usize, 46usize); +payload_add!(16usize, 31usize, 47usize); +payload_add!(16usize, 32usize, 48usize); +payload_add!(17usize, 1usize, 18usize); +payload_add!(17usize, 2usize, 19usize); +payload_add!(17usize, 3usize, 20usize); +payload_add!(17usize, 4usize, 21usize); +payload_add!(17usize, 5usize, 22usize); +payload_add!(17usize, 6usize, 23usize); +payload_add!(17usize, 7usize, 24usize); +payload_add!(17usize, 8usize, 25usize); +payload_add!(17usize, 9usize, 26usize); +payload_add!(17usize, 10usize, 27usize); +payload_add!(17usize, 11usize, 28usize); +payload_add!(17usize, 12usize, 29usize); +payload_add!(17usize, 13usize, 30usize); +payload_add!(17usize, 14usize, 31usize); +payload_add!(17usize, 15usize, 32usize); +payload_add!(17usize, 16usize, 33usize); +payload_add!(17usize, 17usize, 34usize); +payload_add!(17usize, 18usize, 35usize); +payload_add!(17usize, 19usize, 36usize); +payload_add!(17usize, 20usize, 37usize); +payload_add!(17usize, 21usize, 38usize); +payload_add!(17usize, 22usize, 39usize); +payload_add!(17usize, 23usize, 40usize); +payload_add!(17usize, 24usize, 41usize); +payload_add!(17usize, 25usize, 42usize); +payload_add!(17usize, 26usize, 43usize); +payload_add!(17usize, 27usize, 44usize); +payload_add!(17usize, 28usize, 45usize); +payload_add!(17usize, 29usize, 46usize); +payload_add!(17usize, 30usize, 47usize); +payload_add!(17usize, 31usize, 48usize); +payload_add!(17usize, 32usize, 49usize); +payload_add!(18usize, 1usize, 19usize); +payload_add!(18usize, 2usize, 20usize); +payload_add!(18usize, 3usize, 21usize); +payload_add!(18usize, 4usize, 22usize); +payload_add!(18usize, 5usize, 23usize); +payload_add!(18usize, 6usize, 24usize); +payload_add!(18usize, 7usize, 25usize); +payload_add!(18usize, 8usize, 26usize); +payload_add!(18usize, 9usize, 27usize); +payload_add!(18usize, 10usize, 28usize); +payload_add!(18usize, 11usize, 29usize); +payload_add!(18usize, 12usize, 30usize); +payload_add!(18usize, 13usize, 31usize); +payload_add!(18usize, 14usize, 32usize); +payload_add!(18usize, 15usize, 33usize); +payload_add!(18usize, 16usize, 34usize); +payload_add!(18usize, 17usize, 35usize); +payload_add!(18usize, 18usize, 36usize); +payload_add!(18usize, 19usize, 37usize); +payload_add!(18usize, 20usize, 38usize); +payload_add!(18usize, 21usize, 39usize); +payload_add!(18usize, 22usize, 40usize); +payload_add!(18usize, 23usize, 41usize); +payload_add!(18usize, 24usize, 42usize); +payload_add!(18usize, 25usize, 43usize); +payload_add!(18usize, 26usize, 44usize); +payload_add!(18usize, 27usize, 45usize); +payload_add!(18usize, 28usize, 46usize); +payload_add!(18usize, 29usize, 47usize); +payload_add!(18usize, 30usize, 48usize); +payload_add!(18usize, 31usize, 49usize); +payload_add!(18usize, 32usize, 50usize); +payload_add!(19usize, 1usize, 20usize); +payload_add!(19usize, 2usize, 21usize); +payload_add!(19usize, 3usize, 22usize); +payload_add!(19usize, 4usize, 23usize); +payload_add!(19usize, 5usize, 24usize); +payload_add!(19usize, 6usize, 25usize); +payload_add!(19usize, 7usize, 26usize); +payload_add!(19usize, 8usize, 27usize); +payload_add!(19usize, 9usize, 28usize); +payload_add!(19usize, 10usize, 29usize); +payload_add!(19usize, 11usize, 30usize); +payload_add!(19usize, 12usize, 31usize); +payload_add!(19usize, 13usize, 32usize); +payload_add!(19usize, 14usize, 33usize); +payload_add!(19usize, 15usize, 34usize); +payload_add!(19usize, 16usize, 35usize); +payload_add!(19usize, 17usize, 36usize); +payload_add!(19usize, 18usize, 37usize); +payload_add!(19usize, 19usize, 38usize); +payload_add!(19usize, 20usize, 39usize); +payload_add!(19usize, 21usize, 40usize); +payload_add!(19usize, 22usize, 41usize); +payload_add!(19usize, 23usize, 42usize); +payload_add!(19usize, 24usize, 43usize); +payload_add!(19usize, 25usize, 44usize); +payload_add!(19usize, 26usize, 45usize); +payload_add!(19usize, 27usize, 46usize); +payload_add!(19usize, 28usize, 47usize); +payload_add!(19usize, 29usize, 48usize); +payload_add!(19usize, 30usize, 49usize); +payload_add!(19usize, 31usize, 50usize); +payload_add!(19usize, 32usize, 51usize); +payload_add!(20usize, 1usize, 21usize); +payload_add!(20usize, 2usize, 22usize); +payload_add!(20usize, 3usize, 23usize); +payload_add!(20usize, 4usize, 24usize); +payload_add!(20usize, 5usize, 25usize); +payload_add!(20usize, 6usize, 26usize); +payload_add!(20usize, 7usize, 27usize); +payload_add!(20usize, 8usize, 28usize); +payload_add!(20usize, 9usize, 29usize); +payload_add!(20usize, 10usize, 30usize); +payload_add!(20usize, 11usize, 31usize); +payload_add!(20usize, 12usize, 32usize); +payload_add!(20usize, 13usize, 33usize); +payload_add!(20usize, 14usize, 34usize); +payload_add!(20usize, 15usize, 35usize); +payload_add!(20usize, 16usize, 36usize); +payload_add!(20usize, 17usize, 37usize); +payload_add!(20usize, 18usize, 38usize); +payload_add!(20usize, 19usize, 39usize); +payload_add!(20usize, 20usize, 40usize); +payload_add!(20usize, 21usize, 41usize); +payload_add!(20usize, 22usize, 42usize); +payload_add!(20usize, 23usize, 43usize); +payload_add!(20usize, 24usize, 44usize); +payload_add!(20usize, 25usize, 45usize); +payload_add!(20usize, 26usize, 46usize); +payload_add!(20usize, 27usize, 47usize); +payload_add!(20usize, 28usize, 48usize); +payload_add!(20usize, 29usize, 49usize); +payload_add!(20usize, 30usize, 50usize); +payload_add!(20usize, 31usize, 51usize); +payload_add!(20usize, 32usize, 52usize); +payload_add!(21usize, 1usize, 22usize); +payload_add!(21usize, 2usize, 23usize); +payload_add!(21usize, 3usize, 24usize); +payload_add!(21usize, 4usize, 25usize); +payload_add!(21usize, 5usize, 26usize); +payload_add!(21usize, 6usize, 27usize); +payload_add!(21usize, 7usize, 28usize); +payload_add!(21usize, 8usize, 29usize); +payload_add!(21usize, 9usize, 30usize); +payload_add!(21usize, 10usize, 31usize); +payload_add!(21usize, 11usize, 32usize); +payload_add!(21usize, 12usize, 33usize); +payload_add!(21usize, 13usize, 34usize); +payload_add!(21usize, 14usize, 35usize); +payload_add!(21usize, 15usize, 36usize); +payload_add!(21usize, 16usize, 37usize); +payload_add!(21usize, 17usize, 38usize); +payload_add!(21usize, 18usize, 39usize); +payload_add!(21usize, 19usize, 40usize); +payload_add!(21usize, 20usize, 41usize); +payload_add!(21usize, 21usize, 42usize); +payload_add!(21usize, 22usize, 43usize); +payload_add!(21usize, 23usize, 44usize); +payload_add!(21usize, 24usize, 45usize); +payload_add!(21usize, 25usize, 46usize); +payload_add!(21usize, 26usize, 47usize); +payload_add!(21usize, 27usize, 48usize); +payload_add!(21usize, 28usize, 49usize); +payload_add!(21usize, 29usize, 50usize); +payload_add!(21usize, 30usize, 51usize); +payload_add!(21usize, 31usize, 52usize); +payload_add!(21usize, 32usize, 53usize); +payload_add!(22usize, 1usize, 23usize); +payload_add!(22usize, 2usize, 24usize); +payload_add!(22usize, 3usize, 25usize); +payload_add!(22usize, 4usize, 26usize); +payload_add!(22usize, 5usize, 27usize); +payload_add!(22usize, 6usize, 28usize); +payload_add!(22usize, 7usize, 29usize); +payload_add!(22usize, 8usize, 30usize); +payload_add!(22usize, 9usize, 31usize); +payload_add!(22usize, 10usize, 32usize); +payload_add!(22usize, 11usize, 33usize); +payload_add!(22usize, 12usize, 34usize); +payload_add!(22usize, 13usize, 35usize); +payload_add!(22usize, 14usize, 36usize); +payload_add!(22usize, 15usize, 37usize); +payload_add!(22usize, 16usize, 38usize); +payload_add!(22usize, 17usize, 39usize); +payload_add!(22usize, 18usize, 40usize); +payload_add!(22usize, 19usize, 41usize); +payload_add!(22usize, 20usize, 42usize); +payload_add!(22usize, 21usize, 43usize); +payload_add!(22usize, 22usize, 44usize); +payload_add!(22usize, 23usize, 45usize); +payload_add!(22usize, 24usize, 46usize); +payload_add!(22usize, 25usize, 47usize); +payload_add!(22usize, 26usize, 48usize); +payload_add!(22usize, 27usize, 49usize); +payload_add!(22usize, 28usize, 50usize); +payload_add!(22usize, 29usize, 51usize); +payload_add!(22usize, 30usize, 52usize); +payload_add!(22usize, 31usize, 53usize); +payload_add!(22usize, 32usize, 54usize); +payload_add!(23usize, 1usize, 24usize); +payload_add!(23usize, 2usize, 25usize); +payload_add!(23usize, 3usize, 26usize); +payload_add!(23usize, 4usize, 27usize); +payload_add!(23usize, 5usize, 28usize); +payload_add!(23usize, 6usize, 29usize); +payload_add!(23usize, 7usize, 30usize); +payload_add!(23usize, 8usize, 31usize); +payload_add!(23usize, 9usize, 32usize); +payload_add!(23usize, 10usize, 33usize); +payload_add!(23usize, 11usize, 34usize); +payload_add!(23usize, 12usize, 35usize); +payload_add!(23usize, 13usize, 36usize); +payload_add!(23usize, 14usize, 37usize); +payload_add!(23usize, 15usize, 38usize); +payload_add!(23usize, 16usize, 39usize); +payload_add!(23usize, 17usize, 40usize); +payload_add!(23usize, 18usize, 41usize); +payload_add!(23usize, 19usize, 42usize); +payload_add!(23usize, 20usize, 43usize); +payload_add!(23usize, 21usize, 44usize); +payload_add!(23usize, 22usize, 45usize); +payload_add!(23usize, 23usize, 46usize); +payload_add!(23usize, 24usize, 47usize); +payload_add!(23usize, 25usize, 48usize); +payload_add!(23usize, 26usize, 49usize); +payload_add!(23usize, 27usize, 50usize); +payload_add!(23usize, 28usize, 51usize); +payload_add!(23usize, 29usize, 52usize); +payload_add!(23usize, 30usize, 53usize); +payload_add!(23usize, 31usize, 54usize); +payload_add!(23usize, 32usize, 55usize); +payload_add!(24usize, 1usize, 25usize); +payload_add!(24usize, 2usize, 26usize); +payload_add!(24usize, 3usize, 27usize); +payload_add!(24usize, 4usize, 28usize); +payload_add!(24usize, 5usize, 29usize); +payload_add!(24usize, 6usize, 30usize); +payload_add!(24usize, 7usize, 31usize); +payload_add!(24usize, 8usize, 32usize); +payload_add!(24usize, 9usize, 33usize); +payload_add!(24usize, 10usize, 34usize); +payload_add!(24usize, 11usize, 35usize); +payload_add!(24usize, 12usize, 36usize); +payload_add!(24usize, 13usize, 37usize); +payload_add!(24usize, 14usize, 38usize); +payload_add!(24usize, 15usize, 39usize); +payload_add!(24usize, 16usize, 40usize); +payload_add!(24usize, 17usize, 41usize); +payload_add!(24usize, 18usize, 42usize); +payload_add!(24usize, 19usize, 43usize); +payload_add!(24usize, 20usize, 44usize); +payload_add!(24usize, 21usize, 45usize); +payload_add!(24usize, 22usize, 46usize); +payload_add!(24usize, 23usize, 47usize); +payload_add!(24usize, 24usize, 48usize); +payload_add!(24usize, 25usize, 49usize); +payload_add!(24usize, 26usize, 50usize); +payload_add!(24usize, 27usize, 51usize); +payload_add!(24usize, 28usize, 52usize); +payload_add!(24usize, 29usize, 53usize); +payload_add!(24usize, 30usize, 54usize); +payload_add!(24usize, 31usize, 55usize); +payload_add!(24usize, 32usize, 56usize); +payload_add!(25usize, 1usize, 26usize); +payload_add!(25usize, 2usize, 27usize); +payload_add!(25usize, 3usize, 28usize); +payload_add!(25usize, 4usize, 29usize); +payload_add!(25usize, 5usize, 30usize); +payload_add!(25usize, 6usize, 31usize); +payload_add!(25usize, 7usize, 32usize); +payload_add!(25usize, 8usize, 33usize); +payload_add!(25usize, 9usize, 34usize); +payload_add!(25usize, 10usize, 35usize); +payload_add!(25usize, 11usize, 36usize); +payload_add!(25usize, 12usize, 37usize); +payload_add!(25usize, 13usize, 38usize); +payload_add!(25usize, 14usize, 39usize); +payload_add!(25usize, 15usize, 40usize); +payload_add!(25usize, 16usize, 41usize); +payload_add!(25usize, 17usize, 42usize); +payload_add!(25usize, 18usize, 43usize); +payload_add!(25usize, 19usize, 44usize); +payload_add!(25usize, 20usize, 45usize); +payload_add!(25usize, 21usize, 46usize); +payload_add!(25usize, 22usize, 47usize); +payload_add!(25usize, 23usize, 48usize); +payload_add!(25usize, 24usize, 49usize); +payload_add!(25usize, 25usize, 50usize); +payload_add!(25usize, 26usize, 51usize); +payload_add!(25usize, 27usize, 52usize); +payload_add!(25usize, 28usize, 53usize); +payload_add!(25usize, 29usize, 54usize); +payload_add!(25usize, 30usize, 55usize); +payload_add!(25usize, 31usize, 56usize); +payload_add!(25usize, 32usize, 57usize); +payload_add!(26usize, 1usize, 27usize); +payload_add!(26usize, 2usize, 28usize); +payload_add!(26usize, 3usize, 29usize); +payload_add!(26usize, 4usize, 30usize); +payload_add!(26usize, 5usize, 31usize); +payload_add!(26usize, 6usize, 32usize); +payload_add!(26usize, 7usize, 33usize); +payload_add!(26usize, 8usize, 34usize); +payload_add!(26usize, 9usize, 35usize); +payload_add!(26usize, 10usize, 36usize); +payload_add!(26usize, 11usize, 37usize); +payload_add!(26usize, 12usize, 38usize); +payload_add!(26usize, 13usize, 39usize); +payload_add!(26usize, 14usize, 40usize); +payload_add!(26usize, 15usize, 41usize); +payload_add!(26usize, 16usize, 42usize); +payload_add!(26usize, 17usize, 43usize); +payload_add!(26usize, 18usize, 44usize); +payload_add!(26usize, 19usize, 45usize); +payload_add!(26usize, 20usize, 46usize); +payload_add!(26usize, 21usize, 47usize); +payload_add!(26usize, 22usize, 48usize); +payload_add!(26usize, 23usize, 49usize); +payload_add!(26usize, 24usize, 50usize); +payload_add!(26usize, 25usize, 51usize); +payload_add!(26usize, 26usize, 52usize); +payload_add!(26usize, 27usize, 53usize); +payload_add!(26usize, 28usize, 54usize); +payload_add!(26usize, 29usize, 55usize); +payload_add!(26usize, 30usize, 56usize); +payload_add!(26usize, 31usize, 57usize); +payload_add!(26usize, 32usize, 58usize); +payload_add!(27usize, 1usize, 28usize); +payload_add!(27usize, 2usize, 29usize); +payload_add!(27usize, 3usize, 30usize); +payload_add!(27usize, 4usize, 31usize); +payload_add!(27usize, 5usize, 32usize); +payload_add!(27usize, 6usize, 33usize); +payload_add!(27usize, 7usize, 34usize); +payload_add!(27usize, 8usize, 35usize); +payload_add!(27usize, 9usize, 36usize); +payload_add!(27usize, 10usize, 37usize); +payload_add!(27usize, 11usize, 38usize); +payload_add!(27usize, 12usize, 39usize); +payload_add!(27usize, 13usize, 40usize); +payload_add!(27usize, 14usize, 41usize); +payload_add!(27usize, 15usize, 42usize); +payload_add!(27usize, 16usize, 43usize); +payload_add!(27usize, 17usize, 44usize); +payload_add!(27usize, 18usize, 45usize); +payload_add!(27usize, 19usize, 46usize); +payload_add!(27usize, 20usize, 47usize); +payload_add!(27usize, 21usize, 48usize); +payload_add!(27usize, 22usize, 49usize); +payload_add!(27usize, 23usize, 50usize); +payload_add!(27usize, 24usize, 51usize); +payload_add!(27usize, 25usize, 52usize); +payload_add!(27usize, 26usize, 53usize); +payload_add!(27usize, 27usize, 54usize); +payload_add!(27usize, 28usize, 55usize); +payload_add!(27usize, 29usize, 56usize); +payload_add!(27usize, 30usize, 57usize); +payload_add!(27usize, 31usize, 58usize); +payload_add!(27usize, 32usize, 59usize); +payload_add!(28usize, 1usize, 29usize); +payload_add!(28usize, 2usize, 30usize); +payload_add!(28usize, 3usize, 31usize); +payload_add!(28usize, 4usize, 32usize); +payload_add!(28usize, 5usize, 33usize); +payload_add!(28usize, 6usize, 34usize); +payload_add!(28usize, 7usize, 35usize); +payload_add!(28usize, 8usize, 36usize); +payload_add!(28usize, 9usize, 37usize); +payload_add!(28usize, 10usize, 38usize); +payload_add!(28usize, 11usize, 39usize); +payload_add!(28usize, 12usize, 40usize); +payload_add!(28usize, 13usize, 41usize); +payload_add!(28usize, 14usize, 42usize); +payload_add!(28usize, 15usize, 43usize); +payload_add!(28usize, 16usize, 44usize); +payload_add!(28usize, 17usize, 45usize); +payload_add!(28usize, 18usize, 46usize); +payload_add!(28usize, 19usize, 47usize); +payload_add!(28usize, 20usize, 48usize); +payload_add!(28usize, 21usize, 49usize); +payload_add!(28usize, 22usize, 50usize); +payload_add!(28usize, 23usize, 51usize); +payload_add!(28usize, 24usize, 52usize); +payload_add!(28usize, 25usize, 53usize); +payload_add!(28usize, 26usize, 54usize); +payload_add!(28usize, 27usize, 55usize); +payload_add!(28usize, 28usize, 56usize); +payload_add!(28usize, 29usize, 57usize); +payload_add!(28usize, 30usize, 58usize); +payload_add!(28usize, 31usize, 59usize); +payload_add!(28usize, 32usize, 60usize); +payload_add!(29usize, 1usize, 30usize); +payload_add!(29usize, 2usize, 31usize); +payload_add!(29usize, 3usize, 32usize); +payload_add!(29usize, 4usize, 33usize); +payload_add!(29usize, 5usize, 34usize); +payload_add!(29usize, 6usize, 35usize); +payload_add!(29usize, 7usize, 36usize); +payload_add!(29usize, 8usize, 37usize); +payload_add!(29usize, 9usize, 38usize); +payload_add!(29usize, 10usize, 39usize); +payload_add!(29usize, 11usize, 40usize); +payload_add!(29usize, 12usize, 41usize); +payload_add!(29usize, 13usize, 42usize); +payload_add!(29usize, 14usize, 43usize); +payload_add!(29usize, 15usize, 44usize); +payload_add!(29usize, 16usize, 45usize); +payload_add!(29usize, 17usize, 46usize); +payload_add!(29usize, 18usize, 47usize); +payload_add!(29usize, 19usize, 48usize); +payload_add!(29usize, 20usize, 49usize); +payload_add!(29usize, 21usize, 50usize); +payload_add!(29usize, 22usize, 51usize); +payload_add!(29usize, 23usize, 52usize); +payload_add!(29usize, 24usize, 53usize); +payload_add!(29usize, 25usize, 54usize); +payload_add!(29usize, 26usize, 55usize); +payload_add!(29usize, 27usize, 56usize); +payload_add!(29usize, 28usize, 57usize); +payload_add!(29usize, 29usize, 58usize); +payload_add!(29usize, 30usize, 59usize); +payload_add!(29usize, 31usize, 60usize); +payload_add!(29usize, 32usize, 61usize); +payload_add!(30usize, 1usize, 31usize); +payload_add!(30usize, 2usize, 32usize); +payload_add!(30usize, 3usize, 33usize); +payload_add!(30usize, 4usize, 34usize); +payload_add!(30usize, 5usize, 35usize); +payload_add!(30usize, 6usize, 36usize); +payload_add!(30usize, 7usize, 37usize); +payload_add!(30usize, 8usize, 38usize); +payload_add!(30usize, 9usize, 39usize); +payload_add!(30usize, 10usize, 40usize); +payload_add!(30usize, 11usize, 41usize); +payload_add!(30usize, 12usize, 42usize); +payload_add!(30usize, 13usize, 43usize); +payload_add!(30usize, 14usize, 44usize); +payload_add!(30usize, 15usize, 45usize); +payload_add!(30usize, 16usize, 46usize); +payload_add!(30usize, 17usize, 47usize); +payload_add!(30usize, 18usize, 48usize); +payload_add!(30usize, 19usize, 49usize); +payload_add!(30usize, 20usize, 50usize); +payload_add!(30usize, 21usize, 51usize); +payload_add!(30usize, 22usize, 52usize); +payload_add!(30usize, 23usize, 53usize); +payload_add!(30usize, 24usize, 54usize); +payload_add!(30usize, 25usize, 55usize); +payload_add!(30usize, 26usize, 56usize); +payload_add!(30usize, 27usize, 57usize); +payload_add!(30usize, 28usize, 58usize); +payload_add!(30usize, 29usize, 59usize); +payload_add!(30usize, 30usize, 60usize); +payload_add!(30usize, 31usize, 61usize); +payload_add!(30usize, 32usize, 62usize); +payload_add!(31usize, 1usize, 32usize); +payload_add!(31usize, 2usize, 33usize); +payload_add!(31usize, 3usize, 34usize); +payload_add!(31usize, 4usize, 35usize); +payload_add!(31usize, 5usize, 36usize); +payload_add!(31usize, 6usize, 37usize); +payload_add!(31usize, 7usize, 38usize); +payload_add!(31usize, 8usize, 39usize); +payload_add!(31usize, 9usize, 40usize); +payload_add!(31usize, 10usize, 41usize); +payload_add!(31usize, 11usize, 42usize); +payload_add!(31usize, 12usize, 43usize); +payload_add!(31usize, 13usize, 44usize); +payload_add!(31usize, 14usize, 45usize); +payload_add!(31usize, 15usize, 46usize); +payload_add!(31usize, 16usize, 47usize); +payload_add!(31usize, 17usize, 48usize); +payload_add!(31usize, 18usize, 49usize); +payload_add!(31usize, 19usize, 50usize); +payload_add!(31usize, 20usize, 51usize); +payload_add!(31usize, 21usize, 52usize); +payload_add!(31usize, 22usize, 53usize); +payload_add!(31usize, 23usize, 54usize); +payload_add!(31usize, 24usize, 55usize); +payload_add!(31usize, 25usize, 56usize); +payload_add!(31usize, 26usize, 57usize); +payload_add!(31usize, 27usize, 58usize); +payload_add!(31usize, 28usize, 59usize); +payload_add!(31usize, 29usize, 60usize); +payload_add!(31usize, 30usize, 61usize); +payload_add!(31usize, 31usize, 62usize); +payload_add!(31usize, 32usize, 63usize); +payload_add!(32usize, 1usize, 33usize); +payload_add!(32usize, 2usize, 34usize); +payload_add!(32usize, 3usize, 35usize); +payload_add!(32usize, 4usize, 36usize); +payload_add!(32usize, 5usize, 37usize); +payload_add!(32usize, 6usize, 38usize); +payload_add!(32usize, 7usize, 39usize); +payload_add!(32usize, 8usize, 40usize); +payload_add!(32usize, 9usize, 41usize); +payload_add!(32usize, 10usize, 42usize); +payload_add!(32usize, 11usize, 43usize); +payload_add!(32usize, 12usize, 44usize); +payload_add!(32usize, 13usize, 45usize); +payload_add!(32usize, 14usize, 46usize); +payload_add!(32usize, 15usize, 47usize); +payload_add!(32usize, 16usize, 48usize); +payload_add!(32usize, 17usize, 49usize); +payload_add!(32usize, 18usize, 50usize); +payload_add!(32usize, 19usize, 51usize); +payload_add!(32usize, 20usize, 52usize); +payload_add!(32usize, 21usize, 53usize); +payload_add!(32usize, 22usize, 54usize); +payload_add!(32usize, 23usize, 55usize); +payload_add!(32usize, 24usize, 56usize); +payload_add!(32usize, 25usize, 57usize); +payload_add!(32usize, 26usize, 58usize); +payload_add!(32usize, 27usize, 59usize); +payload_add!(32usize, 28usize, 60usize); +payload_add!(32usize, 29usize, 61usize); +payload_add!(32usize, 30usize, 62usize); +payload_add!(32usize, 31usize, 63usize); +payload_add!(32usize, 32usize, 64usize); diff --git a/framework/base/src/types/managed/wrapped/mod.rs b/framework/base/src/types/managed/wrapped/mod.rs index c5d8d03391..fc6485c802 100644 --- a/framework/base/src/types/managed/wrapped/mod.rs +++ b/framework/base/src/types/managed/wrapped/mod.rs @@ -11,6 +11,7 @@ mod managed_option; mod managed_ref; mod managed_vec; mod managed_vec_item; +mod managed_vec_item_payload; mod managed_vec_owned_iter; mod managed_vec_ref; mod managed_vec_ref_iter; @@ -33,6 +34,7 @@ pub use managed_option::ManagedOption; pub use managed_ref::ManagedRef; pub use managed_vec::ManagedVec; pub use managed_vec_item::ManagedVecItem; +pub use managed_vec_item_payload::*; pub use managed_vec_owned_iter::ManagedVecOwnedIterator; pub use managed_vec_ref::ManagedVecRef; pub use managed_vec_ref_iter::ManagedVecRefIterator; diff --git a/framework/derive/src/managed_vec_item_derive.rs b/framework/derive/src/managed_vec_item_derive.rs index a65f62a37c..5ade7c5232 100644 --- a/framework/derive/src/managed_vec_item_derive.rs +++ b/framework/derive/src/managed_vec_item_derive.rs @@ -130,6 +130,7 @@ fn enum_derive(data_enum: &syn::DataEnum, ast: &syn::DeriveInput) -> TokenStream let gen = quote! { impl #impl_generics multiversx_sc::types::ManagedVecItem for #name #ty_generics #where_clause { + type PAYLOAD = multiversx_sc::types::ManagedVecItemPayloadBuffer<1>; const PAYLOAD_SIZE: usize = 1; const SKIPS_RESERIALIZATION: bool = true; type Ref<'a> = Self; @@ -171,6 +172,7 @@ fn struct_derive(data_struct: &syn::DataStruct, ast: &syn::DeriveInput) -> Token let gen = quote! { impl #impl_generics multiversx_sc::types::ManagedVecItem for #name #ty_generics #where_clause { + type PAYLOAD = multiversx_sc::types::TempPayload; const PAYLOAD_SIZE: usize = #(#payload_snippets)+*; const SKIPS_RESERIALIZATION: bool = #(#skips_reserialization_snippets)&&*; type Ref<'a> = Self; diff --git a/framework/scenario/src/api/impl_vh/debug_handle_vh.rs b/framework/scenario/src/api/impl_vh/debug_handle_vh.rs index 6174bc06b7..2f350946ba 100644 --- a/framework/scenario/src/api/impl_vh/debug_handle_vh.rs +++ b/framework/scenario/src/api/impl_vh/debug_handle_vh.rs @@ -77,6 +77,8 @@ impl From for DebugHandle { } impl ManagedVecItem for DebugHandle { + type PAYLOAD = ::PAYLOAD; + const PAYLOAD_SIZE: usize = ::PAYLOAD_SIZE; const SKIPS_RESERIALIZATION: bool = ::SKIPS_RESERIALIZATION; diff --git a/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs b/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs index 90db2ddddc..672476af1f 100644 --- a/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs @@ -13,7 +13,7 @@ pub struct Struct2 { pub u_64: u64, pub bool_field: bool, pub opt_field: Option, - pub arr: [u16; 2], + pub arr: u32, } #[test] @@ -35,7 +35,7 @@ fn struct_to_bytes_writer() { u_64: 4u64, bool_field: true, opt_field: Some(5), - arr: [0x6111, 0x6222], + arr: 0x61116222, }; #[rustfmt::skip] @@ -63,7 +63,7 @@ fn struct_2_from_bytes_reader() { u_64: 4u64, bool_field: false, opt_field: Some(5), - arr: [0x6111, 0x6222], + arr: 0x61116222, }; #[rustfmt::skip] From 319c25a3b9b291784a035a1121e020cbabb80856 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 19:46:21 +0300 Subject: [PATCH 148/185] mn vec item refactor: replaced usage of PAYLOAD_SIZE --- .../managed/wrapped/esdt_token_payment.rs | 2 +- .../types/managed/wrapped/managed_vec_item.rs | 28 +- .../wrapped/managed_vec_item_nested_tuple.rs | 38 + .../wrapped/managed_vec_item_payload.rs | 1296 ++++++++++++++++- .../managed/wrapped/managed_vec_owned_iter.rs | 8 +- .../managed/wrapped/managed_vec_ref_iter.rs | 10 +- .../base/src/types/managed/wrapped/mod.rs | 2 + .../derive/src/managed_vec_item_derive.rs | 49 +- .../derive_managed_vec_item_biguint_test.rs | 16 +- ...anaged_vec_item_esdt_token_payment_test.rs | 20 +- .../derive_managed_vec_item_simple_enum.rs | 2 +- .../derive_managed_vec_item_struct_1_test.rs | 14 +- .../derive_managed_vec_item_struct_2_test.rs | 2 +- vm/src/tx_mock/tx_managed_types/handle_map.rs | 4 +- 14 files changed, 1420 insertions(+), 71 deletions(-) create mode 100644 framework/base/src/types/managed/wrapped/managed_vec_item_nested_tuple.rs diff --git a/framework/base/src/types/managed/wrapped/esdt_token_payment.rs b/framework/base/src/types/managed/wrapped/esdt_token_payment.rs index 85e33e6d8e..4d22d0ebe6 100644 --- a/framework/base/src/types/managed/wrapped/esdt_token_payment.rs +++ b/framework/base/src/types/managed/wrapped/esdt_token_payment.rs @@ -185,7 +185,7 @@ impl IntoMultiValue for EsdtTokenPayment { } impl ManagedVecItem for EsdtTokenPayment { - type PAYLOAD = ManagedVecItemPayloadBuffer<4>; + type PAYLOAD = ManagedVecItemPayloadBuffer<16>; const PAYLOAD_SIZE: usize = 16; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item.rs b/framework/base/src/types/managed/wrapped/managed_vec_item.rs index 0242663d32..0a507aae25 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_item.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_item.rs @@ -8,7 +8,7 @@ use crate::{ }, }; -use super::{ManagedVecItemPayload, ManagedVecItemPayloadAdd, ManagedVecItemPayloadBuffer}; +use super::{ManagedVecItemNestedTuple, ManagedVecItemPayload, ManagedVecItemPayloadBuffer}; /// Types that implement this trait can be items inside a `ManagedVec`. /// All these types need a payload, i.e a representation that gets stored @@ -36,6 +36,10 @@ pub trait ManagedVecItem: 'static { /// TODO: wrap other types in readonly wrapper. type Ref<'a>: Borrow; + fn payload_size() -> usize { + Self::PAYLOAD::payload_size() + } + /// Parses given bytes as a an owned object. fn from_byte_reader(reader: Reader) -> Self; @@ -133,23 +137,24 @@ impl ManagedVecItem for bool { impl ManagedVecItem for Option where - ManagedVecItemPayloadBuffer<1>: ManagedVecItemPayloadAdd, + (u8, (T, ())): ManagedVecItemNestedTuple, [(); 1 + T::PAYLOAD_SIZE]:, T: ManagedVecItem, { - type PAYLOAD = as ManagedVecItemPayloadAdd>::Output; + type PAYLOAD = <(u8, (T, ())) as ManagedVecItemNestedTuple>::PAYLOAD; const PAYLOAD_SIZE: usize = 1 + T::PAYLOAD_SIZE; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = Self; fn from_byte_reader(mut reader: Reader) -> Self { - let mut byte_arr: [u8; 1 + T::PAYLOAD_SIZE] = [0u8; 1 + T::PAYLOAD_SIZE]; - reader(&mut byte_arr[..]); - if byte_arr[0] == 0 { + let mut payload = Self::PAYLOAD::new_buffer(); + let payload_slice = payload.payload_slice(); + reader(payload_slice); + if payload_slice[0] == 0 { None } else { Some(T::from_byte_reader(|bytes| { - bytes.copy_from_slice(&byte_arr[1..]); + bytes.copy_from_slice(&payload_slice[1..]); })) } } @@ -161,14 +166,15 @@ where } fn to_byte_writer R>(&self, mut writer: Writer) -> R { - let mut byte_arr: [u8; 1 + T::PAYLOAD_SIZE] = [0u8; 1 + T::PAYLOAD_SIZE]; + let mut payload = Self::PAYLOAD::new_buffer(); + let slice = payload.payload_slice(); if let Some(t) = self { - byte_arr[0] = 1; + slice[0] = 1; T::to_byte_writer(t, |bytes| { - byte_arr[1..].copy_from_slice(bytes); + slice[1..].copy_from_slice(bytes); }); } - writer(&byte_arr[..]) + writer(slice) } } diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item_nested_tuple.rs b/framework/base/src/types/managed/wrapped/managed_vec_item_nested_tuple.rs new file mode 100644 index 0000000000..2d4826272a --- /dev/null +++ b/framework/base/src/types/managed/wrapped/managed_vec_item_nested_tuple.rs @@ -0,0 +1,38 @@ +use super::{ + ManagedVecItem, ManagedVecItemEmptyPayload, ManagedVecItemPayload, ManagedVecItemPayloadAdd, +}; + +pub trait ManagedVecItemNestedTuple { + type PAYLOAD: ManagedVecItemPayload; +} + +impl ManagedVecItemNestedTuple for () { + type PAYLOAD = ManagedVecItemEmptyPayload; +} + +impl ManagedVecItemNestedTuple for (Head, Tail) +where + Head: ManagedVecItem, + Tail: ManagedVecItemNestedTuple, + Head::PAYLOAD: ManagedVecItemPayloadAdd, +{ + type PAYLOAD = >::Output; +} + +#[cfg(test)] +pub mod tests { + use super::*; + + #[test] + fn managed_vec_item_nesteds_tuple_test() { + assert_payload_size::<()>(0); + assert_payload_size::<(u8, ())>(1); + assert_payload_size::<(usize, ())>(4); + assert_payload_size::<(usize, (usize, ()))>(8); + assert_payload_size::<(Option, ())>(5); + } + + fn assert_payload_size(expected_size: usize) { + assert_eq!(N::PAYLOAD::payload_size(), expected_size); + } +} diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs index cfe1ed4389..253ac1fba9 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs @@ -6,19 +6,19 @@ pub trait ManagedVecItemPayload { fn payload_slice(&mut self) -> &mut [u8]; } -pub struct TempPayload; +pub struct ManagedVecItemEmptyPayload; -impl ManagedVecItemPayload for TempPayload { +impl ManagedVecItemPayload for ManagedVecItemEmptyPayload { fn new_buffer() -> Self { - panic!("nope!") + ManagedVecItemEmptyPayload } fn payload_size() -> usize { - panic!("nope!") + 0 } fn payload_slice(&mut self) -> &mut [u8] { - panic!("nope!") + &mut [] } } @@ -47,6 +47,12 @@ where type Output: ManagedVecItemPayload; } +impl ManagedVecItemPayloadAdd + for ManagedVecItemPayloadBuffer +{ + type Output = Self; +} + macro_rules! payload_add { ($dec1:expr, $dec2:expr, $result_add:expr) => { impl ManagedVecItemPayloadAdd> @@ -89,6 +95,22 @@ payload_add!(1usize, 29usize, 30usize); payload_add!(1usize, 30usize, 31usize); payload_add!(1usize, 31usize, 32usize); payload_add!(1usize, 32usize, 33usize); +payload_add!(1usize, 33usize, 34usize); +payload_add!(1usize, 34usize, 35usize); +payload_add!(1usize, 35usize, 36usize); +payload_add!(1usize, 36usize, 37usize); +payload_add!(1usize, 37usize, 38usize); +payload_add!(1usize, 38usize, 39usize); +payload_add!(1usize, 39usize, 40usize); +payload_add!(1usize, 40usize, 41usize); +payload_add!(1usize, 41usize, 42usize); +payload_add!(1usize, 42usize, 43usize); +payload_add!(1usize, 43usize, 44usize); +payload_add!(1usize, 44usize, 45usize); +payload_add!(1usize, 45usize, 46usize); +payload_add!(1usize, 46usize, 47usize); +payload_add!(1usize, 47usize, 48usize); +payload_add!(1usize, 48usize, 49usize); payload_add!(2usize, 1usize, 3usize); payload_add!(2usize, 2usize, 4usize); payload_add!(2usize, 3usize, 5usize); @@ -121,6 +143,22 @@ payload_add!(2usize, 29usize, 31usize); payload_add!(2usize, 30usize, 32usize); payload_add!(2usize, 31usize, 33usize); payload_add!(2usize, 32usize, 34usize); +payload_add!(2usize, 33usize, 35usize); +payload_add!(2usize, 34usize, 36usize); +payload_add!(2usize, 35usize, 37usize); +payload_add!(2usize, 36usize, 38usize); +payload_add!(2usize, 37usize, 39usize); +payload_add!(2usize, 38usize, 40usize); +payload_add!(2usize, 39usize, 41usize); +payload_add!(2usize, 40usize, 42usize); +payload_add!(2usize, 41usize, 43usize); +payload_add!(2usize, 42usize, 44usize); +payload_add!(2usize, 43usize, 45usize); +payload_add!(2usize, 44usize, 46usize); +payload_add!(2usize, 45usize, 47usize); +payload_add!(2usize, 46usize, 48usize); +payload_add!(2usize, 47usize, 49usize); +payload_add!(2usize, 48usize, 50usize); payload_add!(3usize, 1usize, 4usize); payload_add!(3usize, 2usize, 5usize); payload_add!(3usize, 3usize, 6usize); @@ -153,6 +191,22 @@ payload_add!(3usize, 29usize, 32usize); payload_add!(3usize, 30usize, 33usize); payload_add!(3usize, 31usize, 34usize); payload_add!(3usize, 32usize, 35usize); +payload_add!(3usize, 33usize, 36usize); +payload_add!(3usize, 34usize, 37usize); +payload_add!(3usize, 35usize, 38usize); +payload_add!(3usize, 36usize, 39usize); +payload_add!(3usize, 37usize, 40usize); +payload_add!(3usize, 38usize, 41usize); +payload_add!(3usize, 39usize, 42usize); +payload_add!(3usize, 40usize, 43usize); +payload_add!(3usize, 41usize, 44usize); +payload_add!(3usize, 42usize, 45usize); +payload_add!(3usize, 43usize, 46usize); +payload_add!(3usize, 44usize, 47usize); +payload_add!(3usize, 45usize, 48usize); +payload_add!(3usize, 46usize, 49usize); +payload_add!(3usize, 47usize, 50usize); +payload_add!(3usize, 48usize, 51usize); payload_add!(4usize, 1usize, 5usize); payload_add!(4usize, 2usize, 6usize); payload_add!(4usize, 3usize, 7usize); @@ -185,6 +239,22 @@ payload_add!(4usize, 29usize, 33usize); payload_add!(4usize, 30usize, 34usize); payload_add!(4usize, 31usize, 35usize); payload_add!(4usize, 32usize, 36usize); +payload_add!(4usize, 33usize, 37usize); +payload_add!(4usize, 34usize, 38usize); +payload_add!(4usize, 35usize, 39usize); +payload_add!(4usize, 36usize, 40usize); +payload_add!(4usize, 37usize, 41usize); +payload_add!(4usize, 38usize, 42usize); +payload_add!(4usize, 39usize, 43usize); +payload_add!(4usize, 40usize, 44usize); +payload_add!(4usize, 41usize, 45usize); +payload_add!(4usize, 42usize, 46usize); +payload_add!(4usize, 43usize, 47usize); +payload_add!(4usize, 44usize, 48usize); +payload_add!(4usize, 45usize, 49usize); +payload_add!(4usize, 46usize, 50usize); +payload_add!(4usize, 47usize, 51usize); +payload_add!(4usize, 48usize, 52usize); payload_add!(5usize, 1usize, 6usize); payload_add!(5usize, 2usize, 7usize); payload_add!(5usize, 3usize, 8usize); @@ -217,6 +287,22 @@ payload_add!(5usize, 29usize, 34usize); payload_add!(5usize, 30usize, 35usize); payload_add!(5usize, 31usize, 36usize); payload_add!(5usize, 32usize, 37usize); +payload_add!(5usize, 33usize, 38usize); +payload_add!(5usize, 34usize, 39usize); +payload_add!(5usize, 35usize, 40usize); +payload_add!(5usize, 36usize, 41usize); +payload_add!(5usize, 37usize, 42usize); +payload_add!(5usize, 38usize, 43usize); +payload_add!(5usize, 39usize, 44usize); +payload_add!(5usize, 40usize, 45usize); +payload_add!(5usize, 41usize, 46usize); +payload_add!(5usize, 42usize, 47usize); +payload_add!(5usize, 43usize, 48usize); +payload_add!(5usize, 44usize, 49usize); +payload_add!(5usize, 45usize, 50usize); +payload_add!(5usize, 46usize, 51usize); +payload_add!(5usize, 47usize, 52usize); +payload_add!(5usize, 48usize, 53usize); payload_add!(6usize, 1usize, 7usize); payload_add!(6usize, 2usize, 8usize); payload_add!(6usize, 3usize, 9usize); @@ -249,6 +335,22 @@ payload_add!(6usize, 29usize, 35usize); payload_add!(6usize, 30usize, 36usize); payload_add!(6usize, 31usize, 37usize); payload_add!(6usize, 32usize, 38usize); +payload_add!(6usize, 33usize, 39usize); +payload_add!(6usize, 34usize, 40usize); +payload_add!(6usize, 35usize, 41usize); +payload_add!(6usize, 36usize, 42usize); +payload_add!(6usize, 37usize, 43usize); +payload_add!(6usize, 38usize, 44usize); +payload_add!(6usize, 39usize, 45usize); +payload_add!(6usize, 40usize, 46usize); +payload_add!(6usize, 41usize, 47usize); +payload_add!(6usize, 42usize, 48usize); +payload_add!(6usize, 43usize, 49usize); +payload_add!(6usize, 44usize, 50usize); +payload_add!(6usize, 45usize, 51usize); +payload_add!(6usize, 46usize, 52usize); +payload_add!(6usize, 47usize, 53usize); +payload_add!(6usize, 48usize, 54usize); payload_add!(7usize, 1usize, 8usize); payload_add!(7usize, 2usize, 9usize); payload_add!(7usize, 3usize, 10usize); @@ -281,6 +383,22 @@ payload_add!(7usize, 29usize, 36usize); payload_add!(7usize, 30usize, 37usize); payload_add!(7usize, 31usize, 38usize); payload_add!(7usize, 32usize, 39usize); +payload_add!(7usize, 33usize, 40usize); +payload_add!(7usize, 34usize, 41usize); +payload_add!(7usize, 35usize, 42usize); +payload_add!(7usize, 36usize, 43usize); +payload_add!(7usize, 37usize, 44usize); +payload_add!(7usize, 38usize, 45usize); +payload_add!(7usize, 39usize, 46usize); +payload_add!(7usize, 40usize, 47usize); +payload_add!(7usize, 41usize, 48usize); +payload_add!(7usize, 42usize, 49usize); +payload_add!(7usize, 43usize, 50usize); +payload_add!(7usize, 44usize, 51usize); +payload_add!(7usize, 45usize, 52usize); +payload_add!(7usize, 46usize, 53usize); +payload_add!(7usize, 47usize, 54usize); +payload_add!(7usize, 48usize, 55usize); payload_add!(8usize, 1usize, 9usize); payload_add!(8usize, 2usize, 10usize); payload_add!(8usize, 3usize, 11usize); @@ -313,6 +431,22 @@ payload_add!(8usize, 29usize, 37usize); payload_add!(8usize, 30usize, 38usize); payload_add!(8usize, 31usize, 39usize); payload_add!(8usize, 32usize, 40usize); +payload_add!(8usize, 33usize, 41usize); +payload_add!(8usize, 34usize, 42usize); +payload_add!(8usize, 35usize, 43usize); +payload_add!(8usize, 36usize, 44usize); +payload_add!(8usize, 37usize, 45usize); +payload_add!(8usize, 38usize, 46usize); +payload_add!(8usize, 39usize, 47usize); +payload_add!(8usize, 40usize, 48usize); +payload_add!(8usize, 41usize, 49usize); +payload_add!(8usize, 42usize, 50usize); +payload_add!(8usize, 43usize, 51usize); +payload_add!(8usize, 44usize, 52usize); +payload_add!(8usize, 45usize, 53usize); +payload_add!(8usize, 46usize, 54usize); +payload_add!(8usize, 47usize, 55usize); +payload_add!(8usize, 48usize, 56usize); payload_add!(9usize, 1usize, 10usize); payload_add!(9usize, 2usize, 11usize); payload_add!(9usize, 3usize, 12usize); @@ -345,6 +479,22 @@ payload_add!(9usize, 29usize, 38usize); payload_add!(9usize, 30usize, 39usize); payload_add!(9usize, 31usize, 40usize); payload_add!(9usize, 32usize, 41usize); +payload_add!(9usize, 33usize, 42usize); +payload_add!(9usize, 34usize, 43usize); +payload_add!(9usize, 35usize, 44usize); +payload_add!(9usize, 36usize, 45usize); +payload_add!(9usize, 37usize, 46usize); +payload_add!(9usize, 38usize, 47usize); +payload_add!(9usize, 39usize, 48usize); +payload_add!(9usize, 40usize, 49usize); +payload_add!(9usize, 41usize, 50usize); +payload_add!(9usize, 42usize, 51usize); +payload_add!(9usize, 43usize, 52usize); +payload_add!(9usize, 44usize, 53usize); +payload_add!(9usize, 45usize, 54usize); +payload_add!(9usize, 46usize, 55usize); +payload_add!(9usize, 47usize, 56usize); +payload_add!(9usize, 48usize, 57usize); payload_add!(10usize, 1usize, 11usize); payload_add!(10usize, 2usize, 12usize); payload_add!(10usize, 3usize, 13usize); @@ -377,6 +527,22 @@ payload_add!(10usize, 29usize, 39usize); payload_add!(10usize, 30usize, 40usize); payload_add!(10usize, 31usize, 41usize); payload_add!(10usize, 32usize, 42usize); +payload_add!(10usize, 33usize, 43usize); +payload_add!(10usize, 34usize, 44usize); +payload_add!(10usize, 35usize, 45usize); +payload_add!(10usize, 36usize, 46usize); +payload_add!(10usize, 37usize, 47usize); +payload_add!(10usize, 38usize, 48usize); +payload_add!(10usize, 39usize, 49usize); +payload_add!(10usize, 40usize, 50usize); +payload_add!(10usize, 41usize, 51usize); +payload_add!(10usize, 42usize, 52usize); +payload_add!(10usize, 43usize, 53usize); +payload_add!(10usize, 44usize, 54usize); +payload_add!(10usize, 45usize, 55usize); +payload_add!(10usize, 46usize, 56usize); +payload_add!(10usize, 47usize, 57usize); +payload_add!(10usize, 48usize, 58usize); payload_add!(11usize, 1usize, 12usize); payload_add!(11usize, 2usize, 13usize); payload_add!(11usize, 3usize, 14usize); @@ -409,6 +575,22 @@ payload_add!(11usize, 29usize, 40usize); payload_add!(11usize, 30usize, 41usize); payload_add!(11usize, 31usize, 42usize); payload_add!(11usize, 32usize, 43usize); +payload_add!(11usize, 33usize, 44usize); +payload_add!(11usize, 34usize, 45usize); +payload_add!(11usize, 35usize, 46usize); +payload_add!(11usize, 36usize, 47usize); +payload_add!(11usize, 37usize, 48usize); +payload_add!(11usize, 38usize, 49usize); +payload_add!(11usize, 39usize, 50usize); +payload_add!(11usize, 40usize, 51usize); +payload_add!(11usize, 41usize, 52usize); +payload_add!(11usize, 42usize, 53usize); +payload_add!(11usize, 43usize, 54usize); +payload_add!(11usize, 44usize, 55usize); +payload_add!(11usize, 45usize, 56usize); +payload_add!(11usize, 46usize, 57usize); +payload_add!(11usize, 47usize, 58usize); +payload_add!(11usize, 48usize, 59usize); payload_add!(12usize, 1usize, 13usize); payload_add!(12usize, 2usize, 14usize); payload_add!(12usize, 3usize, 15usize); @@ -441,6 +623,22 @@ payload_add!(12usize, 29usize, 41usize); payload_add!(12usize, 30usize, 42usize); payload_add!(12usize, 31usize, 43usize); payload_add!(12usize, 32usize, 44usize); +payload_add!(12usize, 33usize, 45usize); +payload_add!(12usize, 34usize, 46usize); +payload_add!(12usize, 35usize, 47usize); +payload_add!(12usize, 36usize, 48usize); +payload_add!(12usize, 37usize, 49usize); +payload_add!(12usize, 38usize, 50usize); +payload_add!(12usize, 39usize, 51usize); +payload_add!(12usize, 40usize, 52usize); +payload_add!(12usize, 41usize, 53usize); +payload_add!(12usize, 42usize, 54usize); +payload_add!(12usize, 43usize, 55usize); +payload_add!(12usize, 44usize, 56usize); +payload_add!(12usize, 45usize, 57usize); +payload_add!(12usize, 46usize, 58usize); +payload_add!(12usize, 47usize, 59usize); +payload_add!(12usize, 48usize, 60usize); payload_add!(13usize, 1usize, 14usize); payload_add!(13usize, 2usize, 15usize); payload_add!(13usize, 3usize, 16usize); @@ -473,6 +671,22 @@ payload_add!(13usize, 29usize, 42usize); payload_add!(13usize, 30usize, 43usize); payload_add!(13usize, 31usize, 44usize); payload_add!(13usize, 32usize, 45usize); +payload_add!(13usize, 33usize, 46usize); +payload_add!(13usize, 34usize, 47usize); +payload_add!(13usize, 35usize, 48usize); +payload_add!(13usize, 36usize, 49usize); +payload_add!(13usize, 37usize, 50usize); +payload_add!(13usize, 38usize, 51usize); +payload_add!(13usize, 39usize, 52usize); +payload_add!(13usize, 40usize, 53usize); +payload_add!(13usize, 41usize, 54usize); +payload_add!(13usize, 42usize, 55usize); +payload_add!(13usize, 43usize, 56usize); +payload_add!(13usize, 44usize, 57usize); +payload_add!(13usize, 45usize, 58usize); +payload_add!(13usize, 46usize, 59usize); +payload_add!(13usize, 47usize, 60usize); +payload_add!(13usize, 48usize, 61usize); payload_add!(14usize, 1usize, 15usize); payload_add!(14usize, 2usize, 16usize); payload_add!(14usize, 3usize, 17usize); @@ -505,6 +719,22 @@ payload_add!(14usize, 29usize, 43usize); payload_add!(14usize, 30usize, 44usize); payload_add!(14usize, 31usize, 45usize); payload_add!(14usize, 32usize, 46usize); +payload_add!(14usize, 33usize, 47usize); +payload_add!(14usize, 34usize, 48usize); +payload_add!(14usize, 35usize, 49usize); +payload_add!(14usize, 36usize, 50usize); +payload_add!(14usize, 37usize, 51usize); +payload_add!(14usize, 38usize, 52usize); +payload_add!(14usize, 39usize, 53usize); +payload_add!(14usize, 40usize, 54usize); +payload_add!(14usize, 41usize, 55usize); +payload_add!(14usize, 42usize, 56usize); +payload_add!(14usize, 43usize, 57usize); +payload_add!(14usize, 44usize, 58usize); +payload_add!(14usize, 45usize, 59usize); +payload_add!(14usize, 46usize, 60usize); +payload_add!(14usize, 47usize, 61usize); +payload_add!(14usize, 48usize, 62usize); payload_add!(15usize, 1usize, 16usize); payload_add!(15usize, 2usize, 17usize); payload_add!(15usize, 3usize, 18usize); @@ -537,6 +767,22 @@ payload_add!(15usize, 29usize, 44usize); payload_add!(15usize, 30usize, 45usize); payload_add!(15usize, 31usize, 46usize); payload_add!(15usize, 32usize, 47usize); +payload_add!(15usize, 33usize, 48usize); +payload_add!(15usize, 34usize, 49usize); +payload_add!(15usize, 35usize, 50usize); +payload_add!(15usize, 36usize, 51usize); +payload_add!(15usize, 37usize, 52usize); +payload_add!(15usize, 38usize, 53usize); +payload_add!(15usize, 39usize, 54usize); +payload_add!(15usize, 40usize, 55usize); +payload_add!(15usize, 41usize, 56usize); +payload_add!(15usize, 42usize, 57usize); +payload_add!(15usize, 43usize, 58usize); +payload_add!(15usize, 44usize, 59usize); +payload_add!(15usize, 45usize, 60usize); +payload_add!(15usize, 46usize, 61usize); +payload_add!(15usize, 47usize, 62usize); +payload_add!(15usize, 48usize, 63usize); payload_add!(16usize, 1usize, 17usize); payload_add!(16usize, 2usize, 18usize); payload_add!(16usize, 3usize, 19usize); @@ -569,6 +815,22 @@ payload_add!(16usize, 29usize, 45usize); payload_add!(16usize, 30usize, 46usize); payload_add!(16usize, 31usize, 47usize); payload_add!(16usize, 32usize, 48usize); +payload_add!(16usize, 33usize, 49usize); +payload_add!(16usize, 34usize, 50usize); +payload_add!(16usize, 35usize, 51usize); +payload_add!(16usize, 36usize, 52usize); +payload_add!(16usize, 37usize, 53usize); +payload_add!(16usize, 38usize, 54usize); +payload_add!(16usize, 39usize, 55usize); +payload_add!(16usize, 40usize, 56usize); +payload_add!(16usize, 41usize, 57usize); +payload_add!(16usize, 42usize, 58usize); +payload_add!(16usize, 43usize, 59usize); +payload_add!(16usize, 44usize, 60usize); +payload_add!(16usize, 45usize, 61usize); +payload_add!(16usize, 46usize, 62usize); +payload_add!(16usize, 47usize, 63usize); +payload_add!(16usize, 48usize, 64usize); payload_add!(17usize, 1usize, 18usize); payload_add!(17usize, 2usize, 19usize); payload_add!(17usize, 3usize, 20usize); @@ -601,6 +863,22 @@ payload_add!(17usize, 29usize, 46usize); payload_add!(17usize, 30usize, 47usize); payload_add!(17usize, 31usize, 48usize); payload_add!(17usize, 32usize, 49usize); +payload_add!(17usize, 33usize, 50usize); +payload_add!(17usize, 34usize, 51usize); +payload_add!(17usize, 35usize, 52usize); +payload_add!(17usize, 36usize, 53usize); +payload_add!(17usize, 37usize, 54usize); +payload_add!(17usize, 38usize, 55usize); +payload_add!(17usize, 39usize, 56usize); +payload_add!(17usize, 40usize, 57usize); +payload_add!(17usize, 41usize, 58usize); +payload_add!(17usize, 42usize, 59usize); +payload_add!(17usize, 43usize, 60usize); +payload_add!(17usize, 44usize, 61usize); +payload_add!(17usize, 45usize, 62usize); +payload_add!(17usize, 46usize, 63usize); +payload_add!(17usize, 47usize, 64usize); +payload_add!(17usize, 48usize, 65usize); payload_add!(18usize, 1usize, 19usize); payload_add!(18usize, 2usize, 20usize); payload_add!(18usize, 3usize, 21usize); @@ -633,6 +911,22 @@ payload_add!(18usize, 29usize, 47usize); payload_add!(18usize, 30usize, 48usize); payload_add!(18usize, 31usize, 49usize); payload_add!(18usize, 32usize, 50usize); +payload_add!(18usize, 33usize, 51usize); +payload_add!(18usize, 34usize, 52usize); +payload_add!(18usize, 35usize, 53usize); +payload_add!(18usize, 36usize, 54usize); +payload_add!(18usize, 37usize, 55usize); +payload_add!(18usize, 38usize, 56usize); +payload_add!(18usize, 39usize, 57usize); +payload_add!(18usize, 40usize, 58usize); +payload_add!(18usize, 41usize, 59usize); +payload_add!(18usize, 42usize, 60usize); +payload_add!(18usize, 43usize, 61usize); +payload_add!(18usize, 44usize, 62usize); +payload_add!(18usize, 45usize, 63usize); +payload_add!(18usize, 46usize, 64usize); +payload_add!(18usize, 47usize, 65usize); +payload_add!(18usize, 48usize, 66usize); payload_add!(19usize, 1usize, 20usize); payload_add!(19usize, 2usize, 21usize); payload_add!(19usize, 3usize, 22usize); @@ -665,6 +959,22 @@ payload_add!(19usize, 29usize, 48usize); payload_add!(19usize, 30usize, 49usize); payload_add!(19usize, 31usize, 50usize); payload_add!(19usize, 32usize, 51usize); +payload_add!(19usize, 33usize, 52usize); +payload_add!(19usize, 34usize, 53usize); +payload_add!(19usize, 35usize, 54usize); +payload_add!(19usize, 36usize, 55usize); +payload_add!(19usize, 37usize, 56usize); +payload_add!(19usize, 38usize, 57usize); +payload_add!(19usize, 39usize, 58usize); +payload_add!(19usize, 40usize, 59usize); +payload_add!(19usize, 41usize, 60usize); +payload_add!(19usize, 42usize, 61usize); +payload_add!(19usize, 43usize, 62usize); +payload_add!(19usize, 44usize, 63usize); +payload_add!(19usize, 45usize, 64usize); +payload_add!(19usize, 46usize, 65usize); +payload_add!(19usize, 47usize, 66usize); +payload_add!(19usize, 48usize, 67usize); payload_add!(20usize, 1usize, 21usize); payload_add!(20usize, 2usize, 22usize); payload_add!(20usize, 3usize, 23usize); @@ -697,6 +1007,22 @@ payload_add!(20usize, 29usize, 49usize); payload_add!(20usize, 30usize, 50usize); payload_add!(20usize, 31usize, 51usize); payload_add!(20usize, 32usize, 52usize); +payload_add!(20usize, 33usize, 53usize); +payload_add!(20usize, 34usize, 54usize); +payload_add!(20usize, 35usize, 55usize); +payload_add!(20usize, 36usize, 56usize); +payload_add!(20usize, 37usize, 57usize); +payload_add!(20usize, 38usize, 58usize); +payload_add!(20usize, 39usize, 59usize); +payload_add!(20usize, 40usize, 60usize); +payload_add!(20usize, 41usize, 61usize); +payload_add!(20usize, 42usize, 62usize); +payload_add!(20usize, 43usize, 63usize); +payload_add!(20usize, 44usize, 64usize); +payload_add!(20usize, 45usize, 65usize); +payload_add!(20usize, 46usize, 66usize); +payload_add!(20usize, 47usize, 67usize); +payload_add!(20usize, 48usize, 68usize); payload_add!(21usize, 1usize, 22usize); payload_add!(21usize, 2usize, 23usize); payload_add!(21usize, 3usize, 24usize); @@ -729,6 +1055,22 @@ payload_add!(21usize, 29usize, 50usize); payload_add!(21usize, 30usize, 51usize); payload_add!(21usize, 31usize, 52usize); payload_add!(21usize, 32usize, 53usize); +payload_add!(21usize, 33usize, 54usize); +payload_add!(21usize, 34usize, 55usize); +payload_add!(21usize, 35usize, 56usize); +payload_add!(21usize, 36usize, 57usize); +payload_add!(21usize, 37usize, 58usize); +payload_add!(21usize, 38usize, 59usize); +payload_add!(21usize, 39usize, 60usize); +payload_add!(21usize, 40usize, 61usize); +payload_add!(21usize, 41usize, 62usize); +payload_add!(21usize, 42usize, 63usize); +payload_add!(21usize, 43usize, 64usize); +payload_add!(21usize, 44usize, 65usize); +payload_add!(21usize, 45usize, 66usize); +payload_add!(21usize, 46usize, 67usize); +payload_add!(21usize, 47usize, 68usize); +payload_add!(21usize, 48usize, 69usize); payload_add!(22usize, 1usize, 23usize); payload_add!(22usize, 2usize, 24usize); payload_add!(22usize, 3usize, 25usize); @@ -761,6 +1103,22 @@ payload_add!(22usize, 29usize, 51usize); payload_add!(22usize, 30usize, 52usize); payload_add!(22usize, 31usize, 53usize); payload_add!(22usize, 32usize, 54usize); +payload_add!(22usize, 33usize, 55usize); +payload_add!(22usize, 34usize, 56usize); +payload_add!(22usize, 35usize, 57usize); +payload_add!(22usize, 36usize, 58usize); +payload_add!(22usize, 37usize, 59usize); +payload_add!(22usize, 38usize, 60usize); +payload_add!(22usize, 39usize, 61usize); +payload_add!(22usize, 40usize, 62usize); +payload_add!(22usize, 41usize, 63usize); +payload_add!(22usize, 42usize, 64usize); +payload_add!(22usize, 43usize, 65usize); +payload_add!(22usize, 44usize, 66usize); +payload_add!(22usize, 45usize, 67usize); +payload_add!(22usize, 46usize, 68usize); +payload_add!(22usize, 47usize, 69usize); +payload_add!(22usize, 48usize, 70usize); payload_add!(23usize, 1usize, 24usize); payload_add!(23usize, 2usize, 25usize); payload_add!(23usize, 3usize, 26usize); @@ -793,6 +1151,22 @@ payload_add!(23usize, 29usize, 52usize); payload_add!(23usize, 30usize, 53usize); payload_add!(23usize, 31usize, 54usize); payload_add!(23usize, 32usize, 55usize); +payload_add!(23usize, 33usize, 56usize); +payload_add!(23usize, 34usize, 57usize); +payload_add!(23usize, 35usize, 58usize); +payload_add!(23usize, 36usize, 59usize); +payload_add!(23usize, 37usize, 60usize); +payload_add!(23usize, 38usize, 61usize); +payload_add!(23usize, 39usize, 62usize); +payload_add!(23usize, 40usize, 63usize); +payload_add!(23usize, 41usize, 64usize); +payload_add!(23usize, 42usize, 65usize); +payload_add!(23usize, 43usize, 66usize); +payload_add!(23usize, 44usize, 67usize); +payload_add!(23usize, 45usize, 68usize); +payload_add!(23usize, 46usize, 69usize); +payload_add!(23usize, 47usize, 70usize); +payload_add!(23usize, 48usize, 71usize); payload_add!(24usize, 1usize, 25usize); payload_add!(24usize, 2usize, 26usize); payload_add!(24usize, 3usize, 27usize); @@ -825,6 +1199,22 @@ payload_add!(24usize, 29usize, 53usize); payload_add!(24usize, 30usize, 54usize); payload_add!(24usize, 31usize, 55usize); payload_add!(24usize, 32usize, 56usize); +payload_add!(24usize, 33usize, 57usize); +payload_add!(24usize, 34usize, 58usize); +payload_add!(24usize, 35usize, 59usize); +payload_add!(24usize, 36usize, 60usize); +payload_add!(24usize, 37usize, 61usize); +payload_add!(24usize, 38usize, 62usize); +payload_add!(24usize, 39usize, 63usize); +payload_add!(24usize, 40usize, 64usize); +payload_add!(24usize, 41usize, 65usize); +payload_add!(24usize, 42usize, 66usize); +payload_add!(24usize, 43usize, 67usize); +payload_add!(24usize, 44usize, 68usize); +payload_add!(24usize, 45usize, 69usize); +payload_add!(24usize, 46usize, 70usize); +payload_add!(24usize, 47usize, 71usize); +payload_add!(24usize, 48usize, 72usize); payload_add!(25usize, 1usize, 26usize); payload_add!(25usize, 2usize, 27usize); payload_add!(25usize, 3usize, 28usize); @@ -857,6 +1247,22 @@ payload_add!(25usize, 29usize, 54usize); payload_add!(25usize, 30usize, 55usize); payload_add!(25usize, 31usize, 56usize); payload_add!(25usize, 32usize, 57usize); +payload_add!(25usize, 33usize, 58usize); +payload_add!(25usize, 34usize, 59usize); +payload_add!(25usize, 35usize, 60usize); +payload_add!(25usize, 36usize, 61usize); +payload_add!(25usize, 37usize, 62usize); +payload_add!(25usize, 38usize, 63usize); +payload_add!(25usize, 39usize, 64usize); +payload_add!(25usize, 40usize, 65usize); +payload_add!(25usize, 41usize, 66usize); +payload_add!(25usize, 42usize, 67usize); +payload_add!(25usize, 43usize, 68usize); +payload_add!(25usize, 44usize, 69usize); +payload_add!(25usize, 45usize, 70usize); +payload_add!(25usize, 46usize, 71usize); +payload_add!(25usize, 47usize, 72usize); +payload_add!(25usize, 48usize, 73usize); payload_add!(26usize, 1usize, 27usize); payload_add!(26usize, 2usize, 28usize); payload_add!(26usize, 3usize, 29usize); @@ -889,6 +1295,22 @@ payload_add!(26usize, 29usize, 55usize); payload_add!(26usize, 30usize, 56usize); payload_add!(26usize, 31usize, 57usize); payload_add!(26usize, 32usize, 58usize); +payload_add!(26usize, 33usize, 59usize); +payload_add!(26usize, 34usize, 60usize); +payload_add!(26usize, 35usize, 61usize); +payload_add!(26usize, 36usize, 62usize); +payload_add!(26usize, 37usize, 63usize); +payload_add!(26usize, 38usize, 64usize); +payload_add!(26usize, 39usize, 65usize); +payload_add!(26usize, 40usize, 66usize); +payload_add!(26usize, 41usize, 67usize); +payload_add!(26usize, 42usize, 68usize); +payload_add!(26usize, 43usize, 69usize); +payload_add!(26usize, 44usize, 70usize); +payload_add!(26usize, 45usize, 71usize); +payload_add!(26usize, 46usize, 72usize); +payload_add!(26usize, 47usize, 73usize); +payload_add!(26usize, 48usize, 74usize); payload_add!(27usize, 1usize, 28usize); payload_add!(27usize, 2usize, 29usize); payload_add!(27usize, 3usize, 30usize); @@ -921,6 +1343,22 @@ payload_add!(27usize, 29usize, 56usize); payload_add!(27usize, 30usize, 57usize); payload_add!(27usize, 31usize, 58usize); payload_add!(27usize, 32usize, 59usize); +payload_add!(27usize, 33usize, 60usize); +payload_add!(27usize, 34usize, 61usize); +payload_add!(27usize, 35usize, 62usize); +payload_add!(27usize, 36usize, 63usize); +payload_add!(27usize, 37usize, 64usize); +payload_add!(27usize, 38usize, 65usize); +payload_add!(27usize, 39usize, 66usize); +payload_add!(27usize, 40usize, 67usize); +payload_add!(27usize, 41usize, 68usize); +payload_add!(27usize, 42usize, 69usize); +payload_add!(27usize, 43usize, 70usize); +payload_add!(27usize, 44usize, 71usize); +payload_add!(27usize, 45usize, 72usize); +payload_add!(27usize, 46usize, 73usize); +payload_add!(27usize, 47usize, 74usize); +payload_add!(27usize, 48usize, 75usize); payload_add!(28usize, 1usize, 29usize); payload_add!(28usize, 2usize, 30usize); payload_add!(28usize, 3usize, 31usize); @@ -953,6 +1391,22 @@ payload_add!(28usize, 29usize, 57usize); payload_add!(28usize, 30usize, 58usize); payload_add!(28usize, 31usize, 59usize); payload_add!(28usize, 32usize, 60usize); +payload_add!(28usize, 33usize, 61usize); +payload_add!(28usize, 34usize, 62usize); +payload_add!(28usize, 35usize, 63usize); +payload_add!(28usize, 36usize, 64usize); +payload_add!(28usize, 37usize, 65usize); +payload_add!(28usize, 38usize, 66usize); +payload_add!(28usize, 39usize, 67usize); +payload_add!(28usize, 40usize, 68usize); +payload_add!(28usize, 41usize, 69usize); +payload_add!(28usize, 42usize, 70usize); +payload_add!(28usize, 43usize, 71usize); +payload_add!(28usize, 44usize, 72usize); +payload_add!(28usize, 45usize, 73usize); +payload_add!(28usize, 46usize, 74usize); +payload_add!(28usize, 47usize, 75usize); +payload_add!(28usize, 48usize, 76usize); payload_add!(29usize, 1usize, 30usize); payload_add!(29usize, 2usize, 31usize); payload_add!(29usize, 3usize, 32usize); @@ -985,6 +1439,22 @@ payload_add!(29usize, 29usize, 58usize); payload_add!(29usize, 30usize, 59usize); payload_add!(29usize, 31usize, 60usize); payload_add!(29usize, 32usize, 61usize); +payload_add!(29usize, 33usize, 62usize); +payload_add!(29usize, 34usize, 63usize); +payload_add!(29usize, 35usize, 64usize); +payload_add!(29usize, 36usize, 65usize); +payload_add!(29usize, 37usize, 66usize); +payload_add!(29usize, 38usize, 67usize); +payload_add!(29usize, 39usize, 68usize); +payload_add!(29usize, 40usize, 69usize); +payload_add!(29usize, 41usize, 70usize); +payload_add!(29usize, 42usize, 71usize); +payload_add!(29usize, 43usize, 72usize); +payload_add!(29usize, 44usize, 73usize); +payload_add!(29usize, 45usize, 74usize); +payload_add!(29usize, 46usize, 75usize); +payload_add!(29usize, 47usize, 76usize); +payload_add!(29usize, 48usize, 77usize); payload_add!(30usize, 1usize, 31usize); payload_add!(30usize, 2usize, 32usize); payload_add!(30usize, 3usize, 33usize); @@ -1017,6 +1487,22 @@ payload_add!(30usize, 29usize, 59usize); payload_add!(30usize, 30usize, 60usize); payload_add!(30usize, 31usize, 61usize); payload_add!(30usize, 32usize, 62usize); +payload_add!(30usize, 33usize, 63usize); +payload_add!(30usize, 34usize, 64usize); +payload_add!(30usize, 35usize, 65usize); +payload_add!(30usize, 36usize, 66usize); +payload_add!(30usize, 37usize, 67usize); +payload_add!(30usize, 38usize, 68usize); +payload_add!(30usize, 39usize, 69usize); +payload_add!(30usize, 40usize, 70usize); +payload_add!(30usize, 41usize, 71usize); +payload_add!(30usize, 42usize, 72usize); +payload_add!(30usize, 43usize, 73usize); +payload_add!(30usize, 44usize, 74usize); +payload_add!(30usize, 45usize, 75usize); +payload_add!(30usize, 46usize, 76usize); +payload_add!(30usize, 47usize, 77usize); +payload_add!(30usize, 48usize, 78usize); payload_add!(31usize, 1usize, 32usize); payload_add!(31usize, 2usize, 33usize); payload_add!(31usize, 3usize, 34usize); @@ -1049,6 +1535,22 @@ payload_add!(31usize, 29usize, 60usize); payload_add!(31usize, 30usize, 61usize); payload_add!(31usize, 31usize, 62usize); payload_add!(31usize, 32usize, 63usize); +payload_add!(31usize, 33usize, 64usize); +payload_add!(31usize, 34usize, 65usize); +payload_add!(31usize, 35usize, 66usize); +payload_add!(31usize, 36usize, 67usize); +payload_add!(31usize, 37usize, 68usize); +payload_add!(31usize, 38usize, 69usize); +payload_add!(31usize, 39usize, 70usize); +payload_add!(31usize, 40usize, 71usize); +payload_add!(31usize, 41usize, 72usize); +payload_add!(31usize, 42usize, 73usize); +payload_add!(31usize, 43usize, 74usize); +payload_add!(31usize, 44usize, 75usize); +payload_add!(31usize, 45usize, 76usize); +payload_add!(31usize, 46usize, 77usize); +payload_add!(31usize, 47usize, 78usize); +payload_add!(31usize, 48usize, 79usize); payload_add!(32usize, 1usize, 33usize); payload_add!(32usize, 2usize, 34usize); payload_add!(32usize, 3usize, 35usize); @@ -1081,3 +1583,787 @@ payload_add!(32usize, 29usize, 61usize); payload_add!(32usize, 30usize, 62usize); payload_add!(32usize, 31usize, 63usize); payload_add!(32usize, 32usize, 64usize); +payload_add!(32usize, 33usize, 65usize); +payload_add!(32usize, 34usize, 66usize); +payload_add!(32usize, 35usize, 67usize); +payload_add!(32usize, 36usize, 68usize); +payload_add!(32usize, 37usize, 69usize); +payload_add!(32usize, 38usize, 70usize); +payload_add!(32usize, 39usize, 71usize); +payload_add!(32usize, 40usize, 72usize); +payload_add!(32usize, 41usize, 73usize); +payload_add!(32usize, 42usize, 74usize); +payload_add!(32usize, 43usize, 75usize); +payload_add!(32usize, 44usize, 76usize); +payload_add!(32usize, 45usize, 77usize); +payload_add!(32usize, 46usize, 78usize); +payload_add!(32usize, 47usize, 79usize); +payload_add!(32usize, 48usize, 80usize); +payload_add!(33usize, 1usize, 34usize); +payload_add!(33usize, 2usize, 35usize); +payload_add!(33usize, 3usize, 36usize); +payload_add!(33usize, 4usize, 37usize); +payload_add!(33usize, 5usize, 38usize); +payload_add!(33usize, 6usize, 39usize); +payload_add!(33usize, 7usize, 40usize); +payload_add!(33usize, 8usize, 41usize); +payload_add!(33usize, 9usize, 42usize); +payload_add!(33usize, 10usize, 43usize); +payload_add!(33usize, 11usize, 44usize); +payload_add!(33usize, 12usize, 45usize); +payload_add!(33usize, 13usize, 46usize); +payload_add!(33usize, 14usize, 47usize); +payload_add!(33usize, 15usize, 48usize); +payload_add!(33usize, 16usize, 49usize); +payload_add!(33usize, 17usize, 50usize); +payload_add!(33usize, 18usize, 51usize); +payload_add!(33usize, 19usize, 52usize); +payload_add!(33usize, 20usize, 53usize); +payload_add!(33usize, 21usize, 54usize); +payload_add!(33usize, 22usize, 55usize); +payload_add!(33usize, 23usize, 56usize); +payload_add!(33usize, 24usize, 57usize); +payload_add!(33usize, 25usize, 58usize); +payload_add!(33usize, 26usize, 59usize); +payload_add!(33usize, 27usize, 60usize); +payload_add!(33usize, 28usize, 61usize); +payload_add!(33usize, 29usize, 62usize); +payload_add!(33usize, 30usize, 63usize); +payload_add!(33usize, 31usize, 64usize); +payload_add!(33usize, 32usize, 65usize); +payload_add!(33usize, 33usize, 66usize); +payload_add!(33usize, 34usize, 67usize); +payload_add!(33usize, 35usize, 68usize); +payload_add!(33usize, 36usize, 69usize); +payload_add!(33usize, 37usize, 70usize); +payload_add!(33usize, 38usize, 71usize); +payload_add!(33usize, 39usize, 72usize); +payload_add!(33usize, 40usize, 73usize); +payload_add!(33usize, 41usize, 74usize); +payload_add!(33usize, 42usize, 75usize); +payload_add!(33usize, 43usize, 76usize); +payload_add!(33usize, 44usize, 77usize); +payload_add!(33usize, 45usize, 78usize); +payload_add!(33usize, 46usize, 79usize); +payload_add!(33usize, 47usize, 80usize); +payload_add!(33usize, 48usize, 81usize); +payload_add!(34usize, 1usize, 35usize); +payload_add!(34usize, 2usize, 36usize); +payload_add!(34usize, 3usize, 37usize); +payload_add!(34usize, 4usize, 38usize); +payload_add!(34usize, 5usize, 39usize); +payload_add!(34usize, 6usize, 40usize); +payload_add!(34usize, 7usize, 41usize); +payload_add!(34usize, 8usize, 42usize); +payload_add!(34usize, 9usize, 43usize); +payload_add!(34usize, 10usize, 44usize); +payload_add!(34usize, 11usize, 45usize); +payload_add!(34usize, 12usize, 46usize); +payload_add!(34usize, 13usize, 47usize); +payload_add!(34usize, 14usize, 48usize); +payload_add!(34usize, 15usize, 49usize); +payload_add!(34usize, 16usize, 50usize); +payload_add!(34usize, 17usize, 51usize); +payload_add!(34usize, 18usize, 52usize); +payload_add!(34usize, 19usize, 53usize); +payload_add!(34usize, 20usize, 54usize); +payload_add!(34usize, 21usize, 55usize); +payload_add!(34usize, 22usize, 56usize); +payload_add!(34usize, 23usize, 57usize); +payload_add!(34usize, 24usize, 58usize); +payload_add!(34usize, 25usize, 59usize); +payload_add!(34usize, 26usize, 60usize); +payload_add!(34usize, 27usize, 61usize); +payload_add!(34usize, 28usize, 62usize); +payload_add!(34usize, 29usize, 63usize); +payload_add!(34usize, 30usize, 64usize); +payload_add!(34usize, 31usize, 65usize); +payload_add!(34usize, 32usize, 66usize); +payload_add!(34usize, 33usize, 67usize); +payload_add!(34usize, 34usize, 68usize); +payload_add!(34usize, 35usize, 69usize); +payload_add!(34usize, 36usize, 70usize); +payload_add!(34usize, 37usize, 71usize); +payload_add!(34usize, 38usize, 72usize); +payload_add!(34usize, 39usize, 73usize); +payload_add!(34usize, 40usize, 74usize); +payload_add!(34usize, 41usize, 75usize); +payload_add!(34usize, 42usize, 76usize); +payload_add!(34usize, 43usize, 77usize); +payload_add!(34usize, 44usize, 78usize); +payload_add!(34usize, 45usize, 79usize); +payload_add!(34usize, 46usize, 80usize); +payload_add!(34usize, 47usize, 81usize); +payload_add!(34usize, 48usize, 82usize); +payload_add!(35usize, 1usize, 36usize); +payload_add!(35usize, 2usize, 37usize); +payload_add!(35usize, 3usize, 38usize); +payload_add!(35usize, 4usize, 39usize); +payload_add!(35usize, 5usize, 40usize); +payload_add!(35usize, 6usize, 41usize); +payload_add!(35usize, 7usize, 42usize); +payload_add!(35usize, 8usize, 43usize); +payload_add!(35usize, 9usize, 44usize); +payload_add!(35usize, 10usize, 45usize); +payload_add!(35usize, 11usize, 46usize); +payload_add!(35usize, 12usize, 47usize); +payload_add!(35usize, 13usize, 48usize); +payload_add!(35usize, 14usize, 49usize); +payload_add!(35usize, 15usize, 50usize); +payload_add!(35usize, 16usize, 51usize); +payload_add!(35usize, 17usize, 52usize); +payload_add!(35usize, 18usize, 53usize); +payload_add!(35usize, 19usize, 54usize); +payload_add!(35usize, 20usize, 55usize); +payload_add!(35usize, 21usize, 56usize); +payload_add!(35usize, 22usize, 57usize); +payload_add!(35usize, 23usize, 58usize); +payload_add!(35usize, 24usize, 59usize); +payload_add!(35usize, 25usize, 60usize); +payload_add!(35usize, 26usize, 61usize); +payload_add!(35usize, 27usize, 62usize); +payload_add!(35usize, 28usize, 63usize); +payload_add!(35usize, 29usize, 64usize); +payload_add!(35usize, 30usize, 65usize); +payload_add!(35usize, 31usize, 66usize); +payload_add!(35usize, 32usize, 67usize); +payload_add!(35usize, 33usize, 68usize); +payload_add!(35usize, 34usize, 69usize); +payload_add!(35usize, 35usize, 70usize); +payload_add!(35usize, 36usize, 71usize); +payload_add!(35usize, 37usize, 72usize); +payload_add!(35usize, 38usize, 73usize); +payload_add!(35usize, 39usize, 74usize); +payload_add!(35usize, 40usize, 75usize); +payload_add!(35usize, 41usize, 76usize); +payload_add!(35usize, 42usize, 77usize); +payload_add!(35usize, 43usize, 78usize); +payload_add!(35usize, 44usize, 79usize); +payload_add!(35usize, 45usize, 80usize); +payload_add!(35usize, 46usize, 81usize); +payload_add!(35usize, 47usize, 82usize); +payload_add!(35usize, 48usize, 83usize); +payload_add!(36usize, 1usize, 37usize); +payload_add!(36usize, 2usize, 38usize); +payload_add!(36usize, 3usize, 39usize); +payload_add!(36usize, 4usize, 40usize); +payload_add!(36usize, 5usize, 41usize); +payload_add!(36usize, 6usize, 42usize); +payload_add!(36usize, 7usize, 43usize); +payload_add!(36usize, 8usize, 44usize); +payload_add!(36usize, 9usize, 45usize); +payload_add!(36usize, 10usize, 46usize); +payload_add!(36usize, 11usize, 47usize); +payload_add!(36usize, 12usize, 48usize); +payload_add!(36usize, 13usize, 49usize); +payload_add!(36usize, 14usize, 50usize); +payload_add!(36usize, 15usize, 51usize); +payload_add!(36usize, 16usize, 52usize); +payload_add!(36usize, 17usize, 53usize); +payload_add!(36usize, 18usize, 54usize); +payload_add!(36usize, 19usize, 55usize); +payload_add!(36usize, 20usize, 56usize); +payload_add!(36usize, 21usize, 57usize); +payload_add!(36usize, 22usize, 58usize); +payload_add!(36usize, 23usize, 59usize); +payload_add!(36usize, 24usize, 60usize); +payload_add!(36usize, 25usize, 61usize); +payload_add!(36usize, 26usize, 62usize); +payload_add!(36usize, 27usize, 63usize); +payload_add!(36usize, 28usize, 64usize); +payload_add!(36usize, 29usize, 65usize); +payload_add!(36usize, 30usize, 66usize); +payload_add!(36usize, 31usize, 67usize); +payload_add!(36usize, 32usize, 68usize); +payload_add!(36usize, 33usize, 69usize); +payload_add!(36usize, 34usize, 70usize); +payload_add!(36usize, 35usize, 71usize); +payload_add!(36usize, 36usize, 72usize); +payload_add!(36usize, 37usize, 73usize); +payload_add!(36usize, 38usize, 74usize); +payload_add!(36usize, 39usize, 75usize); +payload_add!(36usize, 40usize, 76usize); +payload_add!(36usize, 41usize, 77usize); +payload_add!(36usize, 42usize, 78usize); +payload_add!(36usize, 43usize, 79usize); +payload_add!(36usize, 44usize, 80usize); +payload_add!(36usize, 45usize, 81usize); +payload_add!(36usize, 46usize, 82usize); +payload_add!(36usize, 47usize, 83usize); +payload_add!(36usize, 48usize, 84usize); +payload_add!(37usize, 1usize, 38usize); +payload_add!(37usize, 2usize, 39usize); +payload_add!(37usize, 3usize, 40usize); +payload_add!(37usize, 4usize, 41usize); +payload_add!(37usize, 5usize, 42usize); +payload_add!(37usize, 6usize, 43usize); +payload_add!(37usize, 7usize, 44usize); +payload_add!(37usize, 8usize, 45usize); +payload_add!(37usize, 9usize, 46usize); +payload_add!(37usize, 10usize, 47usize); +payload_add!(37usize, 11usize, 48usize); +payload_add!(37usize, 12usize, 49usize); +payload_add!(37usize, 13usize, 50usize); +payload_add!(37usize, 14usize, 51usize); +payload_add!(37usize, 15usize, 52usize); +payload_add!(37usize, 16usize, 53usize); +payload_add!(37usize, 17usize, 54usize); +payload_add!(37usize, 18usize, 55usize); +payload_add!(37usize, 19usize, 56usize); +payload_add!(37usize, 20usize, 57usize); +payload_add!(37usize, 21usize, 58usize); +payload_add!(37usize, 22usize, 59usize); +payload_add!(37usize, 23usize, 60usize); +payload_add!(37usize, 24usize, 61usize); +payload_add!(37usize, 25usize, 62usize); +payload_add!(37usize, 26usize, 63usize); +payload_add!(37usize, 27usize, 64usize); +payload_add!(37usize, 28usize, 65usize); +payload_add!(37usize, 29usize, 66usize); +payload_add!(37usize, 30usize, 67usize); +payload_add!(37usize, 31usize, 68usize); +payload_add!(37usize, 32usize, 69usize); +payload_add!(37usize, 33usize, 70usize); +payload_add!(37usize, 34usize, 71usize); +payload_add!(37usize, 35usize, 72usize); +payload_add!(37usize, 36usize, 73usize); +payload_add!(37usize, 37usize, 74usize); +payload_add!(37usize, 38usize, 75usize); +payload_add!(37usize, 39usize, 76usize); +payload_add!(37usize, 40usize, 77usize); +payload_add!(37usize, 41usize, 78usize); +payload_add!(37usize, 42usize, 79usize); +payload_add!(37usize, 43usize, 80usize); +payload_add!(37usize, 44usize, 81usize); +payload_add!(37usize, 45usize, 82usize); +payload_add!(37usize, 46usize, 83usize); +payload_add!(37usize, 47usize, 84usize); +payload_add!(37usize, 48usize, 85usize); +payload_add!(38usize, 1usize, 39usize); +payload_add!(38usize, 2usize, 40usize); +payload_add!(38usize, 3usize, 41usize); +payload_add!(38usize, 4usize, 42usize); +payload_add!(38usize, 5usize, 43usize); +payload_add!(38usize, 6usize, 44usize); +payload_add!(38usize, 7usize, 45usize); +payload_add!(38usize, 8usize, 46usize); +payload_add!(38usize, 9usize, 47usize); +payload_add!(38usize, 10usize, 48usize); +payload_add!(38usize, 11usize, 49usize); +payload_add!(38usize, 12usize, 50usize); +payload_add!(38usize, 13usize, 51usize); +payload_add!(38usize, 14usize, 52usize); +payload_add!(38usize, 15usize, 53usize); +payload_add!(38usize, 16usize, 54usize); +payload_add!(38usize, 17usize, 55usize); +payload_add!(38usize, 18usize, 56usize); +payload_add!(38usize, 19usize, 57usize); +payload_add!(38usize, 20usize, 58usize); +payload_add!(38usize, 21usize, 59usize); +payload_add!(38usize, 22usize, 60usize); +payload_add!(38usize, 23usize, 61usize); +payload_add!(38usize, 24usize, 62usize); +payload_add!(38usize, 25usize, 63usize); +payload_add!(38usize, 26usize, 64usize); +payload_add!(38usize, 27usize, 65usize); +payload_add!(38usize, 28usize, 66usize); +payload_add!(38usize, 29usize, 67usize); +payload_add!(38usize, 30usize, 68usize); +payload_add!(38usize, 31usize, 69usize); +payload_add!(38usize, 32usize, 70usize); +payload_add!(38usize, 33usize, 71usize); +payload_add!(38usize, 34usize, 72usize); +payload_add!(38usize, 35usize, 73usize); +payload_add!(38usize, 36usize, 74usize); +payload_add!(38usize, 37usize, 75usize); +payload_add!(38usize, 38usize, 76usize); +payload_add!(38usize, 39usize, 77usize); +payload_add!(38usize, 40usize, 78usize); +payload_add!(38usize, 41usize, 79usize); +payload_add!(38usize, 42usize, 80usize); +payload_add!(38usize, 43usize, 81usize); +payload_add!(38usize, 44usize, 82usize); +payload_add!(38usize, 45usize, 83usize); +payload_add!(38usize, 46usize, 84usize); +payload_add!(38usize, 47usize, 85usize); +payload_add!(38usize, 48usize, 86usize); +payload_add!(39usize, 1usize, 40usize); +payload_add!(39usize, 2usize, 41usize); +payload_add!(39usize, 3usize, 42usize); +payload_add!(39usize, 4usize, 43usize); +payload_add!(39usize, 5usize, 44usize); +payload_add!(39usize, 6usize, 45usize); +payload_add!(39usize, 7usize, 46usize); +payload_add!(39usize, 8usize, 47usize); +payload_add!(39usize, 9usize, 48usize); +payload_add!(39usize, 10usize, 49usize); +payload_add!(39usize, 11usize, 50usize); +payload_add!(39usize, 12usize, 51usize); +payload_add!(39usize, 13usize, 52usize); +payload_add!(39usize, 14usize, 53usize); +payload_add!(39usize, 15usize, 54usize); +payload_add!(39usize, 16usize, 55usize); +payload_add!(39usize, 17usize, 56usize); +payload_add!(39usize, 18usize, 57usize); +payload_add!(39usize, 19usize, 58usize); +payload_add!(39usize, 20usize, 59usize); +payload_add!(39usize, 21usize, 60usize); +payload_add!(39usize, 22usize, 61usize); +payload_add!(39usize, 23usize, 62usize); +payload_add!(39usize, 24usize, 63usize); +payload_add!(39usize, 25usize, 64usize); +payload_add!(39usize, 26usize, 65usize); +payload_add!(39usize, 27usize, 66usize); +payload_add!(39usize, 28usize, 67usize); +payload_add!(39usize, 29usize, 68usize); +payload_add!(39usize, 30usize, 69usize); +payload_add!(39usize, 31usize, 70usize); +payload_add!(39usize, 32usize, 71usize); +payload_add!(39usize, 33usize, 72usize); +payload_add!(39usize, 34usize, 73usize); +payload_add!(39usize, 35usize, 74usize); +payload_add!(39usize, 36usize, 75usize); +payload_add!(39usize, 37usize, 76usize); +payload_add!(39usize, 38usize, 77usize); +payload_add!(39usize, 39usize, 78usize); +payload_add!(39usize, 40usize, 79usize); +payload_add!(39usize, 41usize, 80usize); +payload_add!(39usize, 42usize, 81usize); +payload_add!(39usize, 43usize, 82usize); +payload_add!(39usize, 44usize, 83usize); +payload_add!(39usize, 45usize, 84usize); +payload_add!(39usize, 46usize, 85usize); +payload_add!(39usize, 47usize, 86usize); +payload_add!(39usize, 48usize, 87usize); +payload_add!(40usize, 1usize, 41usize); +payload_add!(40usize, 2usize, 42usize); +payload_add!(40usize, 3usize, 43usize); +payload_add!(40usize, 4usize, 44usize); +payload_add!(40usize, 5usize, 45usize); +payload_add!(40usize, 6usize, 46usize); +payload_add!(40usize, 7usize, 47usize); +payload_add!(40usize, 8usize, 48usize); +payload_add!(40usize, 9usize, 49usize); +payload_add!(40usize, 10usize, 50usize); +payload_add!(40usize, 11usize, 51usize); +payload_add!(40usize, 12usize, 52usize); +payload_add!(40usize, 13usize, 53usize); +payload_add!(40usize, 14usize, 54usize); +payload_add!(40usize, 15usize, 55usize); +payload_add!(40usize, 16usize, 56usize); +payload_add!(40usize, 17usize, 57usize); +payload_add!(40usize, 18usize, 58usize); +payload_add!(40usize, 19usize, 59usize); +payload_add!(40usize, 20usize, 60usize); +payload_add!(40usize, 21usize, 61usize); +payload_add!(40usize, 22usize, 62usize); +payload_add!(40usize, 23usize, 63usize); +payload_add!(40usize, 24usize, 64usize); +payload_add!(40usize, 25usize, 65usize); +payload_add!(40usize, 26usize, 66usize); +payload_add!(40usize, 27usize, 67usize); +payload_add!(40usize, 28usize, 68usize); +payload_add!(40usize, 29usize, 69usize); +payload_add!(40usize, 30usize, 70usize); +payload_add!(40usize, 31usize, 71usize); +payload_add!(40usize, 32usize, 72usize); +payload_add!(40usize, 33usize, 73usize); +payload_add!(40usize, 34usize, 74usize); +payload_add!(40usize, 35usize, 75usize); +payload_add!(40usize, 36usize, 76usize); +payload_add!(40usize, 37usize, 77usize); +payload_add!(40usize, 38usize, 78usize); +payload_add!(40usize, 39usize, 79usize); +payload_add!(40usize, 40usize, 80usize); +payload_add!(40usize, 41usize, 81usize); +payload_add!(40usize, 42usize, 82usize); +payload_add!(40usize, 43usize, 83usize); +payload_add!(40usize, 44usize, 84usize); +payload_add!(40usize, 45usize, 85usize); +payload_add!(40usize, 46usize, 86usize); +payload_add!(40usize, 47usize, 87usize); +payload_add!(40usize, 48usize, 88usize); +payload_add!(41usize, 1usize, 42usize); +payload_add!(41usize, 2usize, 43usize); +payload_add!(41usize, 3usize, 44usize); +payload_add!(41usize, 4usize, 45usize); +payload_add!(41usize, 5usize, 46usize); +payload_add!(41usize, 6usize, 47usize); +payload_add!(41usize, 7usize, 48usize); +payload_add!(41usize, 8usize, 49usize); +payload_add!(41usize, 9usize, 50usize); +payload_add!(41usize, 10usize, 51usize); +payload_add!(41usize, 11usize, 52usize); +payload_add!(41usize, 12usize, 53usize); +payload_add!(41usize, 13usize, 54usize); +payload_add!(41usize, 14usize, 55usize); +payload_add!(41usize, 15usize, 56usize); +payload_add!(41usize, 16usize, 57usize); +payload_add!(41usize, 17usize, 58usize); +payload_add!(41usize, 18usize, 59usize); +payload_add!(41usize, 19usize, 60usize); +payload_add!(41usize, 20usize, 61usize); +payload_add!(41usize, 21usize, 62usize); +payload_add!(41usize, 22usize, 63usize); +payload_add!(41usize, 23usize, 64usize); +payload_add!(41usize, 24usize, 65usize); +payload_add!(41usize, 25usize, 66usize); +payload_add!(41usize, 26usize, 67usize); +payload_add!(41usize, 27usize, 68usize); +payload_add!(41usize, 28usize, 69usize); +payload_add!(41usize, 29usize, 70usize); +payload_add!(41usize, 30usize, 71usize); +payload_add!(41usize, 31usize, 72usize); +payload_add!(41usize, 32usize, 73usize); +payload_add!(41usize, 33usize, 74usize); +payload_add!(41usize, 34usize, 75usize); +payload_add!(41usize, 35usize, 76usize); +payload_add!(41usize, 36usize, 77usize); +payload_add!(41usize, 37usize, 78usize); +payload_add!(41usize, 38usize, 79usize); +payload_add!(41usize, 39usize, 80usize); +payload_add!(41usize, 40usize, 81usize); +payload_add!(41usize, 41usize, 82usize); +payload_add!(41usize, 42usize, 83usize); +payload_add!(41usize, 43usize, 84usize); +payload_add!(41usize, 44usize, 85usize); +payload_add!(41usize, 45usize, 86usize); +payload_add!(41usize, 46usize, 87usize); +payload_add!(41usize, 47usize, 88usize); +payload_add!(41usize, 48usize, 89usize); +payload_add!(42usize, 1usize, 43usize); +payload_add!(42usize, 2usize, 44usize); +payload_add!(42usize, 3usize, 45usize); +payload_add!(42usize, 4usize, 46usize); +payload_add!(42usize, 5usize, 47usize); +payload_add!(42usize, 6usize, 48usize); +payload_add!(42usize, 7usize, 49usize); +payload_add!(42usize, 8usize, 50usize); +payload_add!(42usize, 9usize, 51usize); +payload_add!(42usize, 10usize, 52usize); +payload_add!(42usize, 11usize, 53usize); +payload_add!(42usize, 12usize, 54usize); +payload_add!(42usize, 13usize, 55usize); +payload_add!(42usize, 14usize, 56usize); +payload_add!(42usize, 15usize, 57usize); +payload_add!(42usize, 16usize, 58usize); +payload_add!(42usize, 17usize, 59usize); +payload_add!(42usize, 18usize, 60usize); +payload_add!(42usize, 19usize, 61usize); +payload_add!(42usize, 20usize, 62usize); +payload_add!(42usize, 21usize, 63usize); +payload_add!(42usize, 22usize, 64usize); +payload_add!(42usize, 23usize, 65usize); +payload_add!(42usize, 24usize, 66usize); +payload_add!(42usize, 25usize, 67usize); +payload_add!(42usize, 26usize, 68usize); +payload_add!(42usize, 27usize, 69usize); +payload_add!(42usize, 28usize, 70usize); +payload_add!(42usize, 29usize, 71usize); +payload_add!(42usize, 30usize, 72usize); +payload_add!(42usize, 31usize, 73usize); +payload_add!(42usize, 32usize, 74usize); +payload_add!(42usize, 33usize, 75usize); +payload_add!(42usize, 34usize, 76usize); +payload_add!(42usize, 35usize, 77usize); +payload_add!(42usize, 36usize, 78usize); +payload_add!(42usize, 37usize, 79usize); +payload_add!(42usize, 38usize, 80usize); +payload_add!(42usize, 39usize, 81usize); +payload_add!(42usize, 40usize, 82usize); +payload_add!(42usize, 41usize, 83usize); +payload_add!(42usize, 42usize, 84usize); +payload_add!(42usize, 43usize, 85usize); +payload_add!(42usize, 44usize, 86usize); +payload_add!(42usize, 45usize, 87usize); +payload_add!(42usize, 46usize, 88usize); +payload_add!(42usize, 47usize, 89usize); +payload_add!(42usize, 48usize, 90usize); +payload_add!(43usize, 1usize, 44usize); +payload_add!(43usize, 2usize, 45usize); +payload_add!(43usize, 3usize, 46usize); +payload_add!(43usize, 4usize, 47usize); +payload_add!(43usize, 5usize, 48usize); +payload_add!(43usize, 6usize, 49usize); +payload_add!(43usize, 7usize, 50usize); +payload_add!(43usize, 8usize, 51usize); +payload_add!(43usize, 9usize, 52usize); +payload_add!(43usize, 10usize, 53usize); +payload_add!(43usize, 11usize, 54usize); +payload_add!(43usize, 12usize, 55usize); +payload_add!(43usize, 13usize, 56usize); +payload_add!(43usize, 14usize, 57usize); +payload_add!(43usize, 15usize, 58usize); +payload_add!(43usize, 16usize, 59usize); +payload_add!(43usize, 17usize, 60usize); +payload_add!(43usize, 18usize, 61usize); +payload_add!(43usize, 19usize, 62usize); +payload_add!(43usize, 20usize, 63usize); +payload_add!(43usize, 21usize, 64usize); +payload_add!(43usize, 22usize, 65usize); +payload_add!(43usize, 23usize, 66usize); +payload_add!(43usize, 24usize, 67usize); +payload_add!(43usize, 25usize, 68usize); +payload_add!(43usize, 26usize, 69usize); +payload_add!(43usize, 27usize, 70usize); +payload_add!(43usize, 28usize, 71usize); +payload_add!(43usize, 29usize, 72usize); +payload_add!(43usize, 30usize, 73usize); +payload_add!(43usize, 31usize, 74usize); +payload_add!(43usize, 32usize, 75usize); +payload_add!(43usize, 33usize, 76usize); +payload_add!(43usize, 34usize, 77usize); +payload_add!(43usize, 35usize, 78usize); +payload_add!(43usize, 36usize, 79usize); +payload_add!(43usize, 37usize, 80usize); +payload_add!(43usize, 38usize, 81usize); +payload_add!(43usize, 39usize, 82usize); +payload_add!(43usize, 40usize, 83usize); +payload_add!(43usize, 41usize, 84usize); +payload_add!(43usize, 42usize, 85usize); +payload_add!(43usize, 43usize, 86usize); +payload_add!(43usize, 44usize, 87usize); +payload_add!(43usize, 45usize, 88usize); +payload_add!(43usize, 46usize, 89usize); +payload_add!(43usize, 47usize, 90usize); +payload_add!(43usize, 48usize, 91usize); +payload_add!(44usize, 1usize, 45usize); +payload_add!(44usize, 2usize, 46usize); +payload_add!(44usize, 3usize, 47usize); +payload_add!(44usize, 4usize, 48usize); +payload_add!(44usize, 5usize, 49usize); +payload_add!(44usize, 6usize, 50usize); +payload_add!(44usize, 7usize, 51usize); +payload_add!(44usize, 8usize, 52usize); +payload_add!(44usize, 9usize, 53usize); +payload_add!(44usize, 10usize, 54usize); +payload_add!(44usize, 11usize, 55usize); +payload_add!(44usize, 12usize, 56usize); +payload_add!(44usize, 13usize, 57usize); +payload_add!(44usize, 14usize, 58usize); +payload_add!(44usize, 15usize, 59usize); +payload_add!(44usize, 16usize, 60usize); +payload_add!(44usize, 17usize, 61usize); +payload_add!(44usize, 18usize, 62usize); +payload_add!(44usize, 19usize, 63usize); +payload_add!(44usize, 20usize, 64usize); +payload_add!(44usize, 21usize, 65usize); +payload_add!(44usize, 22usize, 66usize); +payload_add!(44usize, 23usize, 67usize); +payload_add!(44usize, 24usize, 68usize); +payload_add!(44usize, 25usize, 69usize); +payload_add!(44usize, 26usize, 70usize); +payload_add!(44usize, 27usize, 71usize); +payload_add!(44usize, 28usize, 72usize); +payload_add!(44usize, 29usize, 73usize); +payload_add!(44usize, 30usize, 74usize); +payload_add!(44usize, 31usize, 75usize); +payload_add!(44usize, 32usize, 76usize); +payload_add!(44usize, 33usize, 77usize); +payload_add!(44usize, 34usize, 78usize); +payload_add!(44usize, 35usize, 79usize); +payload_add!(44usize, 36usize, 80usize); +payload_add!(44usize, 37usize, 81usize); +payload_add!(44usize, 38usize, 82usize); +payload_add!(44usize, 39usize, 83usize); +payload_add!(44usize, 40usize, 84usize); +payload_add!(44usize, 41usize, 85usize); +payload_add!(44usize, 42usize, 86usize); +payload_add!(44usize, 43usize, 87usize); +payload_add!(44usize, 44usize, 88usize); +payload_add!(44usize, 45usize, 89usize); +payload_add!(44usize, 46usize, 90usize); +payload_add!(44usize, 47usize, 91usize); +payload_add!(44usize, 48usize, 92usize); +payload_add!(45usize, 1usize, 46usize); +payload_add!(45usize, 2usize, 47usize); +payload_add!(45usize, 3usize, 48usize); +payload_add!(45usize, 4usize, 49usize); +payload_add!(45usize, 5usize, 50usize); +payload_add!(45usize, 6usize, 51usize); +payload_add!(45usize, 7usize, 52usize); +payload_add!(45usize, 8usize, 53usize); +payload_add!(45usize, 9usize, 54usize); +payload_add!(45usize, 10usize, 55usize); +payload_add!(45usize, 11usize, 56usize); +payload_add!(45usize, 12usize, 57usize); +payload_add!(45usize, 13usize, 58usize); +payload_add!(45usize, 14usize, 59usize); +payload_add!(45usize, 15usize, 60usize); +payload_add!(45usize, 16usize, 61usize); +payload_add!(45usize, 17usize, 62usize); +payload_add!(45usize, 18usize, 63usize); +payload_add!(45usize, 19usize, 64usize); +payload_add!(45usize, 20usize, 65usize); +payload_add!(45usize, 21usize, 66usize); +payload_add!(45usize, 22usize, 67usize); +payload_add!(45usize, 23usize, 68usize); +payload_add!(45usize, 24usize, 69usize); +payload_add!(45usize, 25usize, 70usize); +payload_add!(45usize, 26usize, 71usize); +payload_add!(45usize, 27usize, 72usize); +payload_add!(45usize, 28usize, 73usize); +payload_add!(45usize, 29usize, 74usize); +payload_add!(45usize, 30usize, 75usize); +payload_add!(45usize, 31usize, 76usize); +payload_add!(45usize, 32usize, 77usize); +payload_add!(45usize, 33usize, 78usize); +payload_add!(45usize, 34usize, 79usize); +payload_add!(45usize, 35usize, 80usize); +payload_add!(45usize, 36usize, 81usize); +payload_add!(45usize, 37usize, 82usize); +payload_add!(45usize, 38usize, 83usize); +payload_add!(45usize, 39usize, 84usize); +payload_add!(45usize, 40usize, 85usize); +payload_add!(45usize, 41usize, 86usize); +payload_add!(45usize, 42usize, 87usize); +payload_add!(45usize, 43usize, 88usize); +payload_add!(45usize, 44usize, 89usize); +payload_add!(45usize, 45usize, 90usize); +payload_add!(45usize, 46usize, 91usize); +payload_add!(45usize, 47usize, 92usize); +payload_add!(45usize, 48usize, 93usize); +payload_add!(46usize, 1usize, 47usize); +payload_add!(46usize, 2usize, 48usize); +payload_add!(46usize, 3usize, 49usize); +payload_add!(46usize, 4usize, 50usize); +payload_add!(46usize, 5usize, 51usize); +payload_add!(46usize, 6usize, 52usize); +payload_add!(46usize, 7usize, 53usize); +payload_add!(46usize, 8usize, 54usize); +payload_add!(46usize, 9usize, 55usize); +payload_add!(46usize, 10usize, 56usize); +payload_add!(46usize, 11usize, 57usize); +payload_add!(46usize, 12usize, 58usize); +payload_add!(46usize, 13usize, 59usize); +payload_add!(46usize, 14usize, 60usize); +payload_add!(46usize, 15usize, 61usize); +payload_add!(46usize, 16usize, 62usize); +payload_add!(46usize, 17usize, 63usize); +payload_add!(46usize, 18usize, 64usize); +payload_add!(46usize, 19usize, 65usize); +payload_add!(46usize, 20usize, 66usize); +payload_add!(46usize, 21usize, 67usize); +payload_add!(46usize, 22usize, 68usize); +payload_add!(46usize, 23usize, 69usize); +payload_add!(46usize, 24usize, 70usize); +payload_add!(46usize, 25usize, 71usize); +payload_add!(46usize, 26usize, 72usize); +payload_add!(46usize, 27usize, 73usize); +payload_add!(46usize, 28usize, 74usize); +payload_add!(46usize, 29usize, 75usize); +payload_add!(46usize, 30usize, 76usize); +payload_add!(46usize, 31usize, 77usize); +payload_add!(46usize, 32usize, 78usize); +payload_add!(46usize, 33usize, 79usize); +payload_add!(46usize, 34usize, 80usize); +payload_add!(46usize, 35usize, 81usize); +payload_add!(46usize, 36usize, 82usize); +payload_add!(46usize, 37usize, 83usize); +payload_add!(46usize, 38usize, 84usize); +payload_add!(46usize, 39usize, 85usize); +payload_add!(46usize, 40usize, 86usize); +payload_add!(46usize, 41usize, 87usize); +payload_add!(46usize, 42usize, 88usize); +payload_add!(46usize, 43usize, 89usize); +payload_add!(46usize, 44usize, 90usize); +payload_add!(46usize, 45usize, 91usize); +payload_add!(46usize, 46usize, 92usize); +payload_add!(46usize, 47usize, 93usize); +payload_add!(46usize, 48usize, 94usize); +payload_add!(47usize, 1usize, 48usize); +payload_add!(47usize, 2usize, 49usize); +payload_add!(47usize, 3usize, 50usize); +payload_add!(47usize, 4usize, 51usize); +payload_add!(47usize, 5usize, 52usize); +payload_add!(47usize, 6usize, 53usize); +payload_add!(47usize, 7usize, 54usize); +payload_add!(47usize, 8usize, 55usize); +payload_add!(47usize, 9usize, 56usize); +payload_add!(47usize, 10usize, 57usize); +payload_add!(47usize, 11usize, 58usize); +payload_add!(47usize, 12usize, 59usize); +payload_add!(47usize, 13usize, 60usize); +payload_add!(47usize, 14usize, 61usize); +payload_add!(47usize, 15usize, 62usize); +payload_add!(47usize, 16usize, 63usize); +payload_add!(47usize, 17usize, 64usize); +payload_add!(47usize, 18usize, 65usize); +payload_add!(47usize, 19usize, 66usize); +payload_add!(47usize, 20usize, 67usize); +payload_add!(47usize, 21usize, 68usize); +payload_add!(47usize, 22usize, 69usize); +payload_add!(47usize, 23usize, 70usize); +payload_add!(47usize, 24usize, 71usize); +payload_add!(47usize, 25usize, 72usize); +payload_add!(47usize, 26usize, 73usize); +payload_add!(47usize, 27usize, 74usize); +payload_add!(47usize, 28usize, 75usize); +payload_add!(47usize, 29usize, 76usize); +payload_add!(47usize, 30usize, 77usize); +payload_add!(47usize, 31usize, 78usize); +payload_add!(47usize, 32usize, 79usize); +payload_add!(47usize, 33usize, 80usize); +payload_add!(47usize, 34usize, 81usize); +payload_add!(47usize, 35usize, 82usize); +payload_add!(47usize, 36usize, 83usize); +payload_add!(47usize, 37usize, 84usize); +payload_add!(47usize, 38usize, 85usize); +payload_add!(47usize, 39usize, 86usize); +payload_add!(47usize, 40usize, 87usize); +payload_add!(47usize, 41usize, 88usize); +payload_add!(47usize, 42usize, 89usize); +payload_add!(47usize, 43usize, 90usize); +payload_add!(47usize, 44usize, 91usize); +payload_add!(47usize, 45usize, 92usize); +payload_add!(47usize, 46usize, 93usize); +payload_add!(47usize, 47usize, 94usize); +payload_add!(47usize, 48usize, 95usize); +payload_add!(48usize, 1usize, 49usize); +payload_add!(48usize, 2usize, 50usize); +payload_add!(48usize, 3usize, 51usize); +payload_add!(48usize, 4usize, 52usize); +payload_add!(48usize, 5usize, 53usize); +payload_add!(48usize, 6usize, 54usize); +payload_add!(48usize, 7usize, 55usize); +payload_add!(48usize, 8usize, 56usize); +payload_add!(48usize, 9usize, 57usize); +payload_add!(48usize, 10usize, 58usize); +payload_add!(48usize, 11usize, 59usize); +payload_add!(48usize, 12usize, 60usize); +payload_add!(48usize, 13usize, 61usize); +payload_add!(48usize, 14usize, 62usize); +payload_add!(48usize, 15usize, 63usize); +payload_add!(48usize, 16usize, 64usize); +payload_add!(48usize, 17usize, 65usize); +payload_add!(48usize, 18usize, 66usize); +payload_add!(48usize, 19usize, 67usize); +payload_add!(48usize, 20usize, 68usize); +payload_add!(48usize, 21usize, 69usize); +payload_add!(48usize, 22usize, 70usize); +payload_add!(48usize, 23usize, 71usize); +payload_add!(48usize, 24usize, 72usize); +payload_add!(48usize, 25usize, 73usize); +payload_add!(48usize, 26usize, 74usize); +payload_add!(48usize, 27usize, 75usize); +payload_add!(48usize, 28usize, 76usize); +payload_add!(48usize, 29usize, 77usize); +payload_add!(48usize, 30usize, 78usize); +payload_add!(48usize, 31usize, 79usize); +payload_add!(48usize, 32usize, 80usize); +payload_add!(48usize, 33usize, 81usize); +payload_add!(48usize, 34usize, 82usize); +payload_add!(48usize, 35usize, 83usize); +payload_add!(48usize, 36usize, 84usize); +payload_add!(48usize, 37usize, 85usize); +payload_add!(48usize, 38usize, 86usize); +payload_add!(48usize, 39usize, 87usize); +payload_add!(48usize, 40usize, 88usize); +payload_add!(48usize, 41usize, 89usize); +payload_add!(48usize, 42usize, 90usize); +payload_add!(48usize, 43usize, 91usize); +payload_add!(48usize, 44usize, 92usize); +payload_add!(48usize, 45usize, 93usize); +payload_add!(48usize, 46usize, 94usize); +payload_add!(48usize, 47usize, 95usize); +payload_add!(48usize, 48usize, 96usize); diff --git a/framework/base/src/types/managed/wrapped/managed_vec_owned_iter.rs b/framework/base/src/types/managed/wrapped/managed_vec_owned_iter.rs index a40c8c798f..f6a3ac4e44 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_owned_iter.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_owned_iter.rs @@ -1,4 +1,4 @@ -use crate::api::ManagedTypeApi; +use crate::{api::ManagedTypeApi, types::ManagedVecItemPayload}; use super::{ManagedVec, ManagedVecItem}; @@ -48,7 +48,7 @@ where fn next(&mut self) -> Option { // managedrev / reference type - let next_byte_start = self.byte_start + T::PAYLOAD_SIZE; + let next_byte_start = self.byte_start + T::PAYLOAD::payload_size(); if next_byte_start > self.byte_end { return None; } @@ -82,10 +82,10 @@ where T: ManagedVecItem, { fn next_back(&mut self) -> Option { - if self.byte_start + T::PAYLOAD_SIZE > self.byte_end { + if self.byte_start + T::PAYLOAD::payload_size() > self.byte_end { return None; } - self.byte_end -= T::PAYLOAD_SIZE; + self.byte_end -= T::PAYLOAD::payload_size(); let result = T::from_byte_reader(|dest_slice| { let _ = self diff --git a/framework/base/src/types/managed/wrapped/managed_vec_ref_iter.rs b/framework/base/src/types/managed/wrapped/managed_vec_ref_iter.rs index 13d837510f..0a2a243ac0 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_ref_iter.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_ref_iter.rs @@ -1,6 +1,6 @@ use crate::api::ManagedTypeApi; -use super::{ManagedVec, ManagedVecItem}; +use super::{ManagedVec, ManagedVecItem, ManagedVecItemPayload}; pub struct ManagedVecRefIterator<'a, M, T> where @@ -34,7 +34,7 @@ where type Item = T::Ref<'a>; fn next(&mut self) -> Option { - let next_byte_start = self.byte_start + T::PAYLOAD_SIZE; + let next_byte_start = self.byte_start + T::PAYLOAD::payload_size(); if next_byte_start > self.byte_end { return None; } @@ -52,7 +52,7 @@ where } fn size_hint(&self) -> (usize, Option) { - let remaining = (self.byte_end - self.byte_start) / T::PAYLOAD_SIZE; + let remaining = (self.byte_end - self.byte_start) / T::PAYLOAD::payload_size(); (remaining, Some(remaining)) } } @@ -70,10 +70,10 @@ where T: ManagedVecItem, { fn next_back(&mut self) -> Option { - if self.byte_start + T::PAYLOAD_SIZE > self.byte_end { + if self.byte_start + T::PAYLOAD::payload_size() > self.byte_end { return None; } - self.byte_end -= T::PAYLOAD_SIZE; + self.byte_end -= T::PAYLOAD::payload_size(); let result = unsafe { T::from_byte_reader_as_borrow(|dest_slice| { diff --git a/framework/base/src/types/managed/wrapped/mod.rs b/framework/base/src/types/managed/wrapped/mod.rs index fc6485c802..aef9ed6e87 100644 --- a/framework/base/src/types/managed/wrapped/mod.rs +++ b/framework/base/src/types/managed/wrapped/mod.rs @@ -11,6 +11,7 @@ mod managed_option; mod managed_ref; mod managed_vec; mod managed_vec_item; +mod managed_vec_item_nested_tuple; mod managed_vec_item_payload; mod managed_vec_owned_iter; mod managed_vec_ref; @@ -34,6 +35,7 @@ pub use managed_option::ManagedOption; pub use managed_ref::ManagedRef; pub use managed_vec::ManagedVec; pub use managed_vec_item::ManagedVecItem; +pub use managed_vec_item_nested_tuple::ManagedVecItemNestedTuple; pub use managed_vec_item_payload::*; pub use managed_vec_owned_iter::ManagedVecOwnedIterator; pub use managed_vec_ref::ManagedVecRef; diff --git a/framework/derive/src/managed_vec_item_derive.rs b/framework/derive/src/managed_vec_item_derive.rs index 5ade7c5232..c78f54d455 100644 --- a/framework/derive/src/managed_vec_item_derive.rs +++ b/framework/derive/src/managed_vec_item_derive.rs @@ -28,6 +28,22 @@ fn generate_payload_snippets(fields: &syn::Fields) -> Vec proc_macro2::TokenStream { + match fields { + syn::Fields::Named(fields_named) => { + let types: Vec<_> = fields_named.named.iter().map(|field| &field.ty).collect(); + let mut result = quote! { () }; + for ty in types.iter().rev() { + result = quote! { (#ty, #result) }; + } + result + }, + _ => { + panic!("ManagedVecItem only supports named fields") + }, + } +} + fn generate_skips_reserialization_snippets(fields: &syn::Fields) -> Vec { match fields { syn::Fields::Named(fields_named) => fields_named @@ -56,8 +72,8 @@ fn generate_from_byte_reader_snippets(fields: &syn::Fields) -> Vec::PAYLOAD_SIZE; - bytes.copy_from_slice(&arr[index .. next_index]); + let next_index = index + <#type_name as multiversx_sc::types::ManagedVecItem>::payload_size(); + bytes.copy_from_slice(&payload_slice[index .. next_index]); index = next_index; }), } @@ -79,8 +95,8 @@ fn generate_to_byte_writer_snippets(fields: &syn::Fields) -> Vec::PAYLOAD_SIZE; - arr[index .. next_index].copy_from_slice(bytes); + let next_index = index + <#type_name as multiversx_sc::types::ManagedVecItem>::payload_size(); + payload_slice[index .. next_index].copy_from_slice(bytes); index = next_index; }); } @@ -92,16 +108,10 @@ fn generate_to_byte_writer_snippets(fields: &syn::Fields) -> Vec proc_macro2::TokenStream { - let name = &ast.ident; - let self_expr = if ast.generics.params.is_empty() { - quote! { #name } - } else { - quote! { #name } - }; +fn generate_payload_buffer_snippet() -> proc_macro2::TokenStream { quote! { - const SELF_PAYLOAD_SIZE: usize = <#self_expr as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE; - let mut arr: [u8; SELF_PAYLOAD_SIZE] = [0u8; SELF_PAYLOAD_SIZE]; + let mut payload = ::new_buffer(); + let payload_slice = multiversx_sc::types::ManagedVecItemPayload::payload_slice(&mut payload); } } @@ -162,24 +172,25 @@ fn enum_derive(data_enum: &syn::DataEnum, ast: &syn::DeriveInput) -> TokenStream fn struct_derive(data_struct: &syn::DataStruct, ast: &syn::DeriveInput) -> TokenStream { let name = &ast.ident; let (impl_generics, ty_generics, where_clause) = &ast.generics.split_for_impl(); + let payload_nested_tuple = generate_payload_nested_tuple(&data_struct.fields); let payload_snippets = generate_payload_snippets(&data_struct.fields); let skips_reserialization_snippets = generate_skips_reserialization_snippets(&data_struct.fields); let from_byte_reader_snippets = generate_from_byte_reader_snippets(&data_struct.fields); let to_byte_writer_snippets = generate_to_byte_writer_snippets(&data_struct.fields); - let array_init_snippet = generate_array_init_snippet(ast); + let payload_buffer_snippet = generate_payload_buffer_snippet(); let gen = quote! { impl #impl_generics multiversx_sc::types::ManagedVecItem for #name #ty_generics #where_clause { - type PAYLOAD = multiversx_sc::types::TempPayload; + type PAYLOAD = <#payload_nested_tuple as multiversx_sc::types::ManagedVecItemNestedTuple>::PAYLOAD; const PAYLOAD_SIZE: usize = #(#payload_snippets)+*; const SKIPS_RESERIALIZATION: bool = #(#skips_reserialization_snippets)&&*; type Ref<'a> = Self; fn from_byte_reader(mut reader: Reader) -> Self { - #array_init_snippet - reader(&mut arr[..]); + #payload_buffer_snippet + reader(payload_slice); let mut index = 0; #name { @@ -192,12 +203,12 @@ fn struct_derive(data_struct: &syn::DataStruct, ast: &syn::DeriveInput) -> Token } fn to_byte_writer R>(&self, mut writer: Writer) -> R { - #array_init_snippet + #payload_buffer_snippet let mut index = 0; #(#to_byte_writer_snippets)* - writer(&arr[..]) + writer(&payload_slice[..]) } } }; diff --git a/framework/scenario/tests/derive_managed_vec_item_biguint_test.rs b/framework/scenario/tests/derive_managed_vec_item_biguint_test.rs index 66bafe5278..cdf518016c 100644 --- a/framework/scenario/tests/derive_managed_vec_item_biguint_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_biguint_test.rs @@ -3,7 +3,7 @@ use multiversx_sc::{ codec, codec::derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, derive::ManagedVecItem, - types::{BigUint, ManagedType}, + types::{BigUint, ManagedType, ManagedVecItemPayload}, }; use multiversx_sc_scenario::api::StaticApi; @@ -22,7 +22,8 @@ pub struct ManagedStructWithBigUint { #[allow(clippy::assertions_on_constants)] fn struct_with_numbers_static() { assert_eq!( - as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE, + as multiversx_sc::types::ManagedVecItem>::payload_size( + ), 8 ); assert!( @@ -37,8 +38,9 @@ fn managed_struct_to_bytes_writer() { big_uint: BigUint::from(fortytwo), num: 0x12345, }; - let mut arr: [u8; 8] = [0u8; - as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE]; + + let mut payload = as multiversx_sc::types::ManagedVecItem>::PAYLOAD::new_buffer(); + let payload_slice = payload.payload_slice(); let handle_bytes = s.big_uint.get_handle().to_be_bytes(); let expected = [0xff, 0xff, 0xff, handle_bytes[3], 0x00, 0x01, 0x23, 0x45]; @@ -46,9 +48,9 @@ fn managed_struct_to_bytes_writer() { as multiversx_sc::types::ManagedVecItem>::to_byte_writer( &s, |bytes| { - arr[0.. as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE].copy_from_slice(bytes); + payload_slice.copy_from_slice(bytes); - assert_eq!(arr, expected); + assert_eq!(payload_slice, expected); }, ); } @@ -68,7 +70,7 @@ fn managed_struct_from_bytes_reader() { bytes.copy_from_slice( &arr [0 - .. as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE], + .. as multiversx_sc::types::ManagedVecItem>::payload_size()], ); }, ); diff --git a/framework/scenario/tests/derive_managed_vec_item_esdt_token_payment_test.rs b/framework/scenario/tests/derive_managed_vec_item_esdt_token_payment_test.rs index 1e0889c27c..b9ec6a3173 100644 --- a/framework/scenario/tests/derive_managed_vec_item_esdt_token_payment_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_esdt_token_payment_test.rs @@ -3,7 +3,10 @@ use multiversx_sc::{ codec, codec::derive::{NestedDecode, NestedEncode, TopDecode, TopEncode}, derive::ManagedVecItem, - types::{BigUint, EsdtTokenPayment, ManagedByteArray, ManagedType, TokenIdentifier}, + types::{ + BigUint, EsdtTokenPayment, ManagedByteArray, ManagedType, ManagedVecItemPayload, + TokenIdentifier, + }, }; use multiversx_sc_scenario::api::StaticApi; @@ -26,7 +29,7 @@ pub struct ManagedStructWithToken { #[allow(clippy::assertions_on_constants)] fn struct_with_numbers_static() { assert_eq!( - as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE, + as multiversx_sc::types::ManagedVecItem>::payload_size(), 28 ); assert!( @@ -46,8 +49,9 @@ fn struct_to_bytes_writer() { eth_address_1: ManagedByteArray::new_from_bytes(&[1u8; 20]), eth_address_2: ManagedByteArray::new_from_bytes(&[2u8; 20]), }; - let mut arr: [u8; 28] = [0u8; - as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE]; + + let mut payload = as multiversx_sc::types::ManagedVecItem>::PAYLOAD::new_buffer(); + let payload_slice = payload.payload_slice(); let handle1 = s.token.token_identifier.get_handle().to_be_bytes(); let handle2 = s.token.amount.get_handle().to_be_bytes(); @@ -62,11 +66,9 @@ fn struct_to_bytes_writer() { as multiversx_sc::types::ManagedVecItem>::to_byte_writer( &s, |bytes| { - arr[0 - .. as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE] - .copy_from_slice(bytes); + payload_slice.copy_from_slice(bytes); - assert_eq!(arr, expected); + assert_eq!(payload_slice, expected); }, ); } @@ -96,7 +98,7 @@ fn struct_from_bytes_reader() { bytes.copy_from_slice( &arr [0 - .. as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE], + .. as multiversx_sc::types::ManagedVecItem>::payload_size()], ); }, ); diff --git a/framework/scenario/tests/derive_managed_vec_item_simple_enum.rs b/framework/scenario/tests/derive_managed_vec_item_simple_enum.rs index 23e7caca77..1c139f5b84 100644 --- a/framework/scenario/tests/derive_managed_vec_item_simple_enum.rs +++ b/framework/scenario/tests/derive_managed_vec_item_simple_enum.rs @@ -19,7 +19,7 @@ enum SimpleEnum { #[allow(clippy::assertions_on_constants)] fn enum_static() { assert_eq!( - ::PAYLOAD_SIZE, + ::payload_size(), 1 ); assert!(::SKIPS_RESERIALIZATION); diff --git a/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs b/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs index 1673008017..a1b2b056ef 100644 --- a/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs @@ -1,4 +1,5 @@ use multiversx_sc::codec::test_util::{check_dep_encode_decode, check_top_encode_decode}; +use multiversx_sc::types::ManagedVecItemPayload; multiversx_sc::derive_imports!(); @@ -20,7 +21,7 @@ pub struct Struct1 { #[allow(clippy::assertions_on_constants)] fn struct_1_static() { assert_eq!( - ::PAYLOAD_SIZE, + ::payload_size(), 16 ); assert!(::SKIPS_RESERIALIZATION); @@ -60,13 +61,14 @@ fn struct_1_to_bytes_writer() { u_64: 4u64, bool_field: true, }; - let mut arr: [u8; 16] = [0u8; ::PAYLOAD_SIZE]; + + let mut payload = ::PAYLOAD::new_buffer(); + let payload_slice = payload.payload_slice(); ::to_byte_writer(&s, |bytes| { - arr[0..::PAYLOAD_SIZE] - .copy_from_slice(bytes); + payload_slice.copy_from_slice(bytes); assert_eq!( - arr, + payload_slice, [ 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, @@ -92,7 +94,7 @@ fn struct_1_from_bytes_reader() { let struct_from_bytes = ::from_byte_reader(|bytes| { bytes.copy_from_slice( - &arr[0..::PAYLOAD_SIZE], + &arr[0..::payload_size()], ); }); assert_eq!(s, struct_from_bytes); diff --git a/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs b/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs index 672476af1f..87fee5ed62 100644 --- a/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_struct_2_test.rs @@ -20,7 +20,7 @@ pub struct Struct2 { #[allow(clippy::assertions_on_constants)] fn struct_2_static() { assert_eq!( - ::PAYLOAD_SIZE, + ::payload_size(), 22 ); assert!(!::SKIPS_RESERIALIZATION); diff --git a/vm/src/tx_mock/tx_managed_types/handle_map.rs b/vm/src/tx_mock/tx_managed_types/handle_map.rs index 62f9c04659..4473e9104b 100644 --- a/vm/src/tx_mock/tx_managed_types/handle_map.rs +++ b/vm/src/tx_mock/tx_managed_types/handle_map.rs @@ -34,14 +34,14 @@ impl HandleMap { // TODO: consider simulating the actual error from the VM self.map .get(&handle) - .unwrap_or_else(|| panic!("handle not found")) + .unwrap_or_else(|| panic!("handle not found: {handle}")) } pub fn get_mut(&mut self, handle: RawHandle) -> &mut V { // TODO: consider simulating the actual error from the VM self.map .get_mut(&handle) - .unwrap_or_else(|| panic!("handle not found")) + .unwrap_or_else(|| panic!("handle not found: {handle}")) } pub fn insert(&mut self, handle: RawHandle, value: V) { From 0d950c277b88d5b4bfea8b1fc39d507fddbb51d7 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 20:00:31 +0300 Subject: [PATCH 149/185] mn vec item refactor: removed PAYLOAD_SIZE --- .../base/src/types/flags/esdt_local_role.rs | 1 - .../esdt_token_payment_multi_value.rs | 1 - .../wrapped/encoded_managed_vec_item.rs | 18 +++------- .../managed/wrapped/esdt_token_payment.rs | 5 ++- .../types/managed/wrapped/managed_option.rs | 1 - .../src/types/managed/wrapped/managed_vec.rs | 35 +++++++------------ .../types/managed/wrapped/managed_vec_item.rs | 16 ++------- .../wrapped/managed_vec_item_payload.rs | 16 +++++++-- .../managed/wrapped/managed_vec_owned_iter.rs | 11 +++--- .../managed/wrapped/managed_vec_ref_iter.rs | 10 +++--- .../derive/src/managed_vec_item_derive.rs | 24 +------------ .../src/api/impl_vh/debug_handle_vh.rs | 2 -- .../derive_managed_vec_item_biguint_test.rs | 4 +-- ...anaged_vec_item_esdt_token_payment_test.rs | 2 +- .../derive_managed_vec_item_struct_1_test.rs | 10 +++--- 15 files changed, 55 insertions(+), 101 deletions(-) diff --git a/framework/base/src/types/flags/esdt_local_role.rs b/framework/base/src/types/flags/esdt_local_role.rs index 196d1c3f8a..b66ac612f5 100644 --- a/framework/base/src/types/flags/esdt_local_role.rs +++ b/framework/base/src/types/flags/esdt_local_role.rs @@ -140,7 +140,6 @@ impl<'a> From<&'a [u8]> for EsdtLocalRole { impl ManagedVecItem for EsdtLocalRole { type PAYLOAD = ManagedVecItemPayloadBuffer<1>; - const PAYLOAD_SIZE: usize = 1; const SKIPS_RESERIALIZATION: bool = false; // TODO: might be ok to be true, but needs testing type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs b/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs index ff4d0f70e7..7e7cd934a3 100644 --- a/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs +++ b/framework/base/src/types/managed/multi_value/esdt_token_payment_multi_value.rs @@ -41,7 +41,6 @@ impl EsdtTokenPaymentMultiValue { impl ManagedVecItem for EsdtTokenPaymentMultiValue { type PAYLOAD = as ManagedVecItem>::PAYLOAD; - const PAYLOAD_SIZE: usize = EsdtTokenPayment::::PAYLOAD_SIZE; const SKIPS_RESERIALIZATION: bool = EsdtTokenPayment::::SKIPS_RESERIALIZATION; type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/wrapped/encoded_managed_vec_item.rs b/framework/base/src/types/managed/wrapped/encoded_managed_vec_item.rs index 12a0e3defc..fd7af7c51f 100644 --- a/framework/base/src/types/managed/wrapped/encoded_managed_vec_item.rs +++ b/framework/base/src/types/managed/wrapped/encoded_managed_vec_item.rs @@ -1,23 +1,21 @@ -use super::ManagedVecItem; +use super::{ManagedVecItem, ManagedVecItemPayload}; use core::{cmp::Ordering, marker::PhantomData}; pub struct EncodedManagedVecItem where T: ManagedVecItem, - [(); ::PAYLOAD_SIZE]:, { - pub encoded: [u8; ::PAYLOAD_SIZE], + pub encoded: T::PAYLOAD, _phantom: PhantomData, } impl EncodedManagedVecItem where T: ManagedVecItem, - [(); ::PAYLOAD_SIZE]:, { pub(crate) fn decode(&self) -> T { T::from_byte_reader(|item_bytes| { - item_bytes.copy_from_slice(&self.encoded); + item_bytes.copy_from_slice(self.encoded.payload_slice()); }) } } @@ -25,7 +23,6 @@ where impl PartialEq for EncodedManagedVecItem where T: PartialEq + ManagedVecItem, - [(); ::PAYLOAD_SIZE]:, { #[inline] fn eq(&self, other: &Self) -> bool { @@ -33,17 +30,11 @@ where } } -impl Eq for EncodedManagedVecItem -where - T: Eq + ManagedVecItem, - [(); ::PAYLOAD_SIZE]:, -{ -} +impl Eq for EncodedManagedVecItem where T: Eq + ManagedVecItem {} impl PartialOrd for EncodedManagedVecItem where T: PartialOrd + ManagedVecItem, - [(); ::PAYLOAD_SIZE]:, { #[inline] fn partial_cmp(&self, other: &Self) -> Option { @@ -54,7 +45,6 @@ where impl Ord for EncodedManagedVecItem where T: Ord + ManagedVecItem, - [(); ::PAYLOAD_SIZE]:, { fn cmp(&self, other: &Self) -> Ordering { self.decode().cmp(&other.decode()) diff --git a/framework/base/src/types/managed/wrapped/esdt_token_payment.rs b/framework/base/src/types/managed/wrapped/esdt_token_payment.rs index 4d22d0ebe6..32862726ed 100644 --- a/framework/base/src/types/managed/wrapped/esdt_token_payment.rs +++ b/framework/base/src/types/managed/wrapped/esdt_token_payment.rs @@ -158,7 +158,7 @@ where T: ManagedVecItem, { ManagedVecItem::from_byte_reader(|bytes| { - let size = T::PAYLOAD_SIZE; + let size = T::payload_size(); bytes.copy_from_slice(&arr[*index..*index + size]); *index += size; }) @@ -169,7 +169,7 @@ where T: ManagedVecItem, { ManagedVecItem::to_byte_writer(item, |bytes| { - let size = T::PAYLOAD_SIZE; + let size = T::payload_size(); arr[*index..*index + size].copy_from_slice(bytes); *index += size; }); @@ -186,7 +186,6 @@ impl IntoMultiValue for EsdtTokenPayment { impl ManagedVecItem for EsdtTokenPayment { type PAYLOAD = ManagedVecItemPayloadBuffer<16>; - const PAYLOAD_SIZE: usize = 16; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/wrapped/managed_option.rs b/framework/base/src/types/managed/wrapped/managed_option.rs index f29158f9fa..ddedbbdb8d 100644 --- a/framework/base/src/types/managed/wrapped/managed_option.rs +++ b/framework/base/src/types/managed/wrapped/managed_option.rs @@ -196,7 +196,6 @@ where T: ManagedType + 'static, { type PAYLOAD = ManagedVecItemPayloadBuffer<4>; - const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = Self; diff --git a/framework/base/src/types/managed/wrapped/managed_vec.rs b/framework/base/src/types/managed/wrapped/managed_vec.rs index 8ba9b1d355..e37dd872d5 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec.rs @@ -123,7 +123,7 @@ where /// Number of items. #[inline] pub fn len(&self) -> usize { - self.byte_len() / T::PAYLOAD_SIZE + self.byte_len() / T::payload_size() } #[inline] @@ -132,7 +132,7 @@ where } pub fn try_get(&self, index: usize) -> Option> { - let byte_index = index * T::PAYLOAD_SIZE; + let byte_index = index * T::payload_size(); let mut load_result = Ok(()); let result = unsafe { T::from_byte_reader_as_borrow(|dest_slice| { @@ -178,7 +178,7 @@ where } pub(super) unsafe fn get_unsafe(&self, index: usize) -> T { - let byte_index = index * T::PAYLOAD_SIZE; + let byte_index = index * T::payload_size(); let mut load_result = Ok(()); let result = T::from_byte_reader(|dest_slice| { load_result = self.buffer.load_slice(byte_index, dest_slice); @@ -191,15 +191,15 @@ where } pub fn set(&mut self, index: usize, item: &T) -> Result<(), InvalidSliceError> { - let byte_index = index * T::PAYLOAD_SIZE; + let byte_index = index * T::payload_size(); item.to_byte_writer(|slice| self.buffer.set_slice(byte_index, slice)) } /// Returns a new `ManagedVec`, containing the [start_index, end_index) range of elements. /// Returns `None` if any index is out of range pub fn slice(&self, start_index: usize, end_index: usize) -> Option { - let byte_start = start_index * T::PAYLOAD_SIZE; - let byte_end = end_index * T::PAYLOAD_SIZE; + let byte_start = start_index * T::payload_size(); + let byte_end = end_index * T::payload_size(); let opt_buffer = self.buffer.copy_slice(byte_start, byte_end - byte_start); opt_buffer.map(ManagedVec::new_from_raw_buffer) } @@ -314,10 +314,9 @@ where fn with_self_as_slice(&self, f: F) -> R where F: FnOnce(&[EncodedManagedVecItem]) -> R, - [(); T::PAYLOAD_SIZE]:, { self.buffer.with_buffer_contents(|bytes| { - let item_len = bytes.len() / T::PAYLOAD_SIZE; + let item_len = bytes.len() / T::payload_size(); let values = Self::transmute_slice(bytes, item_len); f(values) }) @@ -326,14 +325,13 @@ where fn with_self_as_slice_mut(&mut self, f: F) where F: FnOnce(&mut [EncodedManagedVecItem]) -> &[EncodedManagedVecItem], - [(); T::PAYLOAD_SIZE]:, { self.buffer.with_buffer_contents_mut(|bytes| { - let item_len = bytes.len() / T::PAYLOAD_SIZE; + let item_len = bytes.len() / T::payload_size(); let values = Self::transmute_slice_mut(bytes, item_len); let result = f(values); - let result_len = result.len() * T::PAYLOAD_SIZE; + let result_len = result.len() * T::payload_size(); Self::transmute_slice(result, result_len) }); } @@ -357,7 +355,6 @@ impl ManagedVec where M: ManagedTypeApi, T: ManagedVecItem + Ord + Debug, - [(); T::PAYLOAD_SIZE]:, { pub fn sort(&mut self) { self.with_self_as_slice_mut(|slice| { @@ -398,10 +395,7 @@ where }); } - pub fn sort_unstable(&mut self) - where - [(); T::PAYLOAD_SIZE]:, - { + pub fn sort_unstable(&mut self) { self.with_self_as_slice_mut(|slice| { slice.sort_unstable(); slice @@ -411,7 +405,6 @@ where pub fn sort_unstable_by(&mut self, mut compare: F) where F: FnMut(&T, &T) -> Ordering, - [(); T::PAYLOAD_SIZE]:, { self.with_self_as_slice_mut(|slice| { slice.sort_unstable_by(|a, b| compare(&a.decode(), &b.decode())); @@ -423,7 +416,6 @@ where where F: FnMut(&T) -> K, K: Ord, - [(); T::PAYLOAD_SIZE]:, { self.with_self_as_slice_mut(|slice| { slice.sort_unstable_by_key(|a| f(&a.decode())); @@ -463,10 +455,7 @@ where M: ManagedTypeApi, T: ManagedVecItem + PartialEq + Debug, { - pub fn dedup(&mut self) - where - [(); T::PAYLOAD_SIZE]:, - { + pub fn dedup(&mut self) { self.with_self_as_slice_mut(|slice| { let same_bucket = |a, b| a == b; let len = slice.len(); @@ -539,7 +528,7 @@ where if self_item != other_item { return false; } - byte_index += T::PAYLOAD_SIZE; + byte_index += T::payload_size(); } true } diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item.rs b/framework/base/src/types/managed/wrapped/managed_vec_item.rs index 0a507aae25..648635e143 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_item.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_item.rs @@ -16,11 +16,9 @@ use super::{ManagedVecItemNestedTuple, ManagedVecItemPayload, ManagedVecItemPayl /// Not all data needs to be stored as payload, for instance for most managed types /// the payload is just the handle, whereas the mai ndata is kept by the VM. pub trait ManagedVecItem: 'static { + /// Type managing the underlying binary representation in a ManagedVec.. type PAYLOAD: ManagedVecItemPayload; - /// Size of the data stored in the underlying `ManagedBuffer`. - const PAYLOAD_SIZE: usize; - /// If true, then the encoding of the item is identical to the payload, /// and no further conversion is necessary /// (the underlying buffer can be used as-is during serialization). @@ -59,7 +57,6 @@ macro_rules! impl_int { ($ty:ident, $payload_size:expr) => { impl ManagedVecItem for $ty { type PAYLOAD = ManagedVecItemPayloadBuffer<$payload_size>; - const PAYLOAD_SIZE: usize = $payload_size; const SKIPS_RESERIALIZATION: bool = true; type Ref<'a> = Self; fn from_byte_reader(mut reader: Reader) -> Self { @@ -89,7 +86,6 @@ impl_int! {i64, 8} impl ManagedVecItem for usize { type PAYLOAD = ManagedVecItemPayloadBuffer<4>; - const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = true; type Ref<'a> = Self; @@ -113,7 +109,6 @@ impl ManagedVecItem for usize { impl ManagedVecItem for bool { type PAYLOAD = ManagedVecItemPayloadBuffer<1>; - const PAYLOAD_SIZE: usize = 1; const SKIPS_RESERIALIZATION: bool = true; type Ref<'a> = Self; @@ -138,17 +133,15 @@ impl ManagedVecItem for bool { impl ManagedVecItem for Option where (u8, (T, ())): ManagedVecItemNestedTuple, - [(); 1 + T::PAYLOAD_SIZE]:, T: ManagedVecItem, { type PAYLOAD = <(u8, (T, ())) as ManagedVecItemNestedTuple>::PAYLOAD; - const PAYLOAD_SIZE: usize = 1 + T::PAYLOAD_SIZE; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = Self; fn from_byte_reader(mut reader: Reader) -> Self { let mut payload = Self::PAYLOAD::new_buffer(); - let payload_slice = payload.payload_slice(); + let payload_slice = payload.payload_slice_mut(); reader(payload_slice); if payload_slice[0] == 0 { None @@ -167,7 +160,7 @@ where fn to_byte_writer R>(&self, mut writer: Writer) -> R { let mut payload = Self::PAYLOAD::new_buffer(); - let slice = payload.payload_slice(); + let slice = payload.payload_slice_mut(); if let Some(t) = self { slice[0] = 1; T::to_byte_writer(t, |bytes| { @@ -182,7 +175,6 @@ macro_rules! impl_managed_type { ($ty:ident) => { impl ManagedVecItem for $ty { type PAYLOAD = ManagedVecItemPayloadBuffer<4>; - const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = ManagedRef<'a, M, Self>; @@ -217,7 +209,6 @@ where M: ManagedTypeApi, { type PAYLOAD = ManagedVecItemPayloadBuffer<4>; - const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = ManagedRef<'a, M, Self>; @@ -247,7 +238,6 @@ where T: ManagedVecItem, { type PAYLOAD = ManagedVecItemPayloadBuffer<4>; - const PAYLOAD_SIZE: usize = 4; const SKIPS_RESERIALIZATION: bool = false; type Ref<'a> = ManagedRef<'a, M, Self>; diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs index 253ac1fba9..860725d71d 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs @@ -3,7 +3,9 @@ pub trait ManagedVecItemPayload { fn payload_size() -> usize; - fn payload_slice(&mut self) -> &mut [u8]; + fn payload_slice(&self) -> &[u8]; + + fn payload_slice_mut(&mut self) -> &mut [u8]; } pub struct ManagedVecItemEmptyPayload; @@ -17,7 +19,11 @@ impl ManagedVecItemPayload for ManagedVecItemEmptyPayload { 0 } - fn payload_slice(&mut self) -> &mut [u8] { + fn payload_slice(&self) -> &[u8] { + &[] + } + + fn payload_slice_mut(&mut self) -> &mut [u8] { &mut [] } } @@ -35,7 +41,11 @@ impl ManagedVecItemPayload for ManagedVecItemPayloadBuffer { N } - fn payload_slice(&mut self) -> &mut [u8] { + fn payload_slice(&self) -> &[u8] { + &self.buffer[..] + } + + fn payload_slice_mut(&mut self) -> &mut [u8] { &mut self.buffer[..] } } diff --git a/framework/base/src/types/managed/wrapped/managed_vec_owned_iter.rs b/framework/base/src/types/managed/wrapped/managed_vec_owned_iter.rs index f6a3ac4e44..20942e70d4 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_owned_iter.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_owned_iter.rs @@ -1,4 +1,4 @@ -use crate::{api::ManagedTypeApi, types::ManagedVecItemPayload}; +use crate::api::ManagedTypeApi; use super::{ManagedVec, ManagedVecItem}; @@ -48,7 +48,7 @@ where fn next(&mut self) -> Option { // managedrev / reference type - let next_byte_start = self.byte_start + T::PAYLOAD::payload_size(); + let next_byte_start = self.byte_start + T::payload_size(); if next_byte_start > self.byte_end { return None; } @@ -64,7 +64,8 @@ where } fn size_hint(&self) -> (usize, Option) { - let remaining = (self.byte_end - self.byte_start) / T::PAYLOAD_SIZE; + let size = T::payload_size(); + let remaining = (self.byte_end - self.byte_start) / size; (remaining, Some(remaining)) } } @@ -82,10 +83,10 @@ where T: ManagedVecItem, { fn next_back(&mut self) -> Option { - if self.byte_start + T::PAYLOAD::payload_size() > self.byte_end { + if self.byte_start + T::payload_size() > self.byte_end { return None; } - self.byte_end -= T::PAYLOAD::payload_size(); + self.byte_end -= T::payload_size(); let result = T::from_byte_reader(|dest_slice| { let _ = self diff --git a/framework/base/src/types/managed/wrapped/managed_vec_ref_iter.rs b/framework/base/src/types/managed/wrapped/managed_vec_ref_iter.rs index 0a2a243ac0..ad04b5eaf4 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_ref_iter.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_ref_iter.rs @@ -1,6 +1,6 @@ use crate::api::ManagedTypeApi; -use super::{ManagedVec, ManagedVecItem, ManagedVecItemPayload}; +use super::{ManagedVec, ManagedVecItem}; pub struct ManagedVecRefIterator<'a, M, T> where @@ -34,7 +34,7 @@ where type Item = T::Ref<'a>; fn next(&mut self) -> Option { - let next_byte_start = self.byte_start + T::PAYLOAD::payload_size(); + let next_byte_start = self.byte_start + T::payload_size(); if next_byte_start > self.byte_end { return None; } @@ -52,7 +52,7 @@ where } fn size_hint(&self) -> (usize, Option) { - let remaining = (self.byte_end - self.byte_start) / T::PAYLOAD::payload_size(); + let remaining = (self.byte_end - self.byte_start) / T::payload_size(); (remaining, Some(remaining)) } } @@ -70,10 +70,10 @@ where T: ManagedVecItem, { fn next_back(&mut self) -> Option { - if self.byte_start + T::PAYLOAD::payload_size() > self.byte_end { + if self.byte_start + T::payload_size() > self.byte_end { return None; } - self.byte_end -= T::PAYLOAD::payload_size(); + self.byte_end -= T::payload_size(); let result = unsafe { T::from_byte_reader_as_borrow(|dest_slice| { diff --git a/framework/derive/src/managed_vec_item_derive.rs b/framework/derive/src/managed_vec_item_derive.rs index c78f54d455..1755182f34 100644 --- a/framework/derive/src/managed_vec_item_derive.rs +++ b/framework/derive/src/managed_vec_item_derive.rs @@ -9,25 +9,6 @@ pub fn managed_vec_item_derive(ast: &syn::DeriveInput) -> TokenStream { } } -fn type_payload_size(type_name: &syn::Type) -> proc_macro2::TokenStream { - quote! { - <#type_name as multiversx_sc::types::ManagedVecItem>::PAYLOAD_SIZE - } -} - -fn generate_payload_snippets(fields: &syn::Fields) -> Vec { - match fields { - syn::Fields::Named(fields_named) => fields_named - .named - .iter() - .map(|field| type_payload_size(&field.ty)) - .collect(), - _ => { - panic!("ManagedVecItem only supports named fields") - }, - } -} - fn generate_payload_nested_tuple(fields: &syn::Fields) -> proc_macro2::TokenStream { match fields { syn::Fields::Named(fields_named) => { @@ -111,7 +92,7 @@ fn generate_to_byte_writer_snippets(fields: &syn::Fields) -> Vec proc_macro2::TokenStream { quote! { let mut payload = ::new_buffer(); - let payload_slice = multiversx_sc::types::ManagedVecItemPayload::payload_slice(&mut payload); + let payload_slice = multiversx_sc::types::ManagedVecItemPayload::payload_slice_mut(&mut payload); } } @@ -141,7 +122,6 @@ fn enum_derive(data_enum: &syn::DataEnum, ast: &syn::DeriveInput) -> TokenStream let gen = quote! { impl #impl_generics multiversx_sc::types::ManagedVecItem for #name #ty_generics #where_clause { type PAYLOAD = multiversx_sc::types::ManagedVecItemPayloadBuffer<1>; - const PAYLOAD_SIZE: usize = 1; const SKIPS_RESERIALIZATION: bool = true; type Ref<'a> = Self; @@ -173,7 +153,6 @@ fn struct_derive(data_struct: &syn::DataStruct, ast: &syn::DeriveInput) -> Token let name = &ast.ident; let (impl_generics, ty_generics, where_clause) = &ast.generics.split_for_impl(); let payload_nested_tuple = generate_payload_nested_tuple(&data_struct.fields); - let payload_snippets = generate_payload_snippets(&data_struct.fields); let skips_reserialization_snippets = generate_skips_reserialization_snippets(&data_struct.fields); let from_byte_reader_snippets = generate_from_byte_reader_snippets(&data_struct.fields); @@ -184,7 +163,6 @@ fn struct_derive(data_struct: &syn::DataStruct, ast: &syn::DeriveInput) -> Token let gen = quote! { impl #impl_generics multiversx_sc::types::ManagedVecItem for #name #ty_generics #where_clause { type PAYLOAD = <#payload_nested_tuple as multiversx_sc::types::ManagedVecItemNestedTuple>::PAYLOAD; - const PAYLOAD_SIZE: usize = #(#payload_snippets)+*; const SKIPS_RESERIALIZATION: bool = #(#skips_reserialization_snippets)&&*; type Ref<'a> = Self; diff --git a/framework/scenario/src/api/impl_vh/debug_handle_vh.rs b/framework/scenario/src/api/impl_vh/debug_handle_vh.rs index 2f350946ba..0623270758 100644 --- a/framework/scenario/src/api/impl_vh/debug_handle_vh.rs +++ b/framework/scenario/src/api/impl_vh/debug_handle_vh.rs @@ -79,8 +79,6 @@ impl From for DebugHandle { impl ManagedVecItem for DebugHandle { type PAYLOAD = ::PAYLOAD; - const PAYLOAD_SIZE: usize = ::PAYLOAD_SIZE; - const SKIPS_RESERIALIZATION: bool = ::SKIPS_RESERIALIZATION; type Ref<'a> = Self; diff --git a/framework/scenario/tests/derive_managed_vec_item_biguint_test.rs b/framework/scenario/tests/derive_managed_vec_item_biguint_test.rs index cdf518016c..9e0cfa8c74 100644 --- a/framework/scenario/tests/derive_managed_vec_item_biguint_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_biguint_test.rs @@ -38,9 +38,9 @@ fn managed_struct_to_bytes_writer() { big_uint: BigUint::from(fortytwo), num: 0x12345, }; - + let mut payload = as multiversx_sc::types::ManagedVecItem>::PAYLOAD::new_buffer(); - let payload_slice = payload.payload_slice(); + let payload_slice = payload.payload_slice_mut(); let handle_bytes = s.big_uint.get_handle().to_be_bytes(); let expected = [0xff, 0xff, 0xff, handle_bytes[3], 0x00, 0x01, 0x23, 0x45]; diff --git a/framework/scenario/tests/derive_managed_vec_item_esdt_token_payment_test.rs b/framework/scenario/tests/derive_managed_vec_item_esdt_token_payment_test.rs index b9ec6a3173..fc7d95343e 100644 --- a/framework/scenario/tests/derive_managed_vec_item_esdt_token_payment_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_esdt_token_payment_test.rs @@ -51,7 +51,7 @@ fn struct_to_bytes_writer() { }; let mut payload = as multiversx_sc::types::ManagedVecItem>::PAYLOAD::new_buffer(); - let payload_slice = payload.payload_slice(); + let payload_slice = payload.payload_slice_mut(); let handle1 = s.token.token_identifier.get_handle().to_be_bytes(); let handle2 = s.token.amount.get_handle().to_be_bytes(); diff --git a/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs b/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs index a1b2b056ef..e5ee344e3c 100644 --- a/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs +++ b/framework/scenario/tests/derive_managed_vec_item_struct_1_test.rs @@ -1,5 +1,7 @@ -use multiversx_sc::codec::test_util::{check_dep_encode_decode, check_top_encode_decode}; -use multiversx_sc::types::ManagedVecItemPayload; +use multiversx_sc::{ + codec::test_util::{check_dep_encode_decode, check_top_encode_decode}, + types::ManagedVecItemPayload, +}; multiversx_sc::derive_imports!(); @@ -61,9 +63,9 @@ fn struct_1_to_bytes_writer() { u_64: 4u64, bool_field: true, }; - + let mut payload = ::PAYLOAD::new_buffer(); - let payload_slice = payload.payload_slice(); + let payload_slice = payload.payload_slice_mut(); ::to_byte_writer(&s, |bytes| { payload_slice.copy_from_slice(bytes); From d729831e74743cb56f142e616fbab6a4efd7e1ba Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 20:02:51 +0300 Subject: [PATCH 150/185] removed generic_const_exprs feature --- framework/base/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/framework/base/src/lib.rs b/framework/base/src/lib.rs index 2b9f8669f7..8214ecb4bd 100644 --- a/framework/base/src/lib.rs +++ b/framework/base/src/lib.rs @@ -1,6 +1,5 @@ #![no_std] -#![feature(generic_const_exprs)] -#![allow(incomplete_features)] + #![allow(deprecated)] pub use multiversx_sc_derive::{self as derive, contract, module, proxy}; From 777600c41f42809dab271fe400e0ffd03a975593 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Wed, 8 May 2024 20:07:53 +0300 Subject: [PATCH 151/185] docs --- .../managed/wrapped/managed_vec_item_nested_tuple.rs | 2 ++ .../managed/wrapped/managed_vec_item_payload.rs | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item_nested_tuple.rs b/framework/base/src/types/managed/wrapped/managed_vec_item_nested_tuple.rs index 2d4826272a..3a25bf4993 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_item_nested_tuple.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_item_nested_tuple.rs @@ -2,10 +2,12 @@ use super::{ ManagedVecItem, ManagedVecItemEmptyPayload, ManagedVecItemPayload, ManagedVecItemPayloadAdd, }; +/// Syntactic sugar, that allows us to more easily represent composite payloads as nested tuples. pub trait ManagedVecItemNestedTuple { type PAYLOAD: ManagedVecItemPayload; } +/// End of the list. impl ManagedVecItemNestedTuple for () { type PAYLOAD = ManagedVecItemEmptyPayload; } diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs index 860725d71d..f5bf96e4a4 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs @@ -1,3 +1,6 @@ +/// Describes the binary represetnation of a ManagedVecItem. +/// +/// It is always an array that can be allocated directly on stack. pub trait ManagedVecItemPayload { fn new_buffer() -> Self; @@ -8,6 +11,9 @@ pub trait ManagedVecItemPayload { fn payload_slice_mut(&mut self) -> &mut [u8]; } +/// Empty ManagedVecItem. +/// +/// Only used as type, never as implementation, since all ManagedVecItem have some data in them. pub struct ManagedVecItemEmptyPayload; impl ManagedVecItemPayload for ManagedVecItemEmptyPayload { @@ -28,6 +34,7 @@ impl ManagedVecItemPayload for ManagedVecItemEmptyPayload { } } +/// The main ManagedVecItemPayload implementation. Uses an array in its implementation. pub struct ManagedVecItemPayloadBuffer { buffer: [u8; N], } @@ -50,6 +57,11 @@ impl ManagedVecItemPayload for ManagedVecItemPayloadBuffer { } } +/// Describes concatantion of smaller payloads into a larger one. +/// +/// There is no runtime implementation, just a type-level addition. +/// +/// Implemented via macros, because generic const expressions are currently unstable. pub trait ManagedVecItemPayloadAdd: ManagedVecItemPayload where Rhs: ManagedVecItemPayload, From 9c72ecb6695ff2630d69461d1c835d27ca036555 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 12:00:45 +0300 Subject: [PATCH 152/185] replace quote! - semver --- framework/derive/src/format/semver_tuple.rs | 54 +++++++++++---------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/framework/derive/src/format/semver_tuple.rs b/framework/derive/src/format/semver_tuple.rs index e4c3c33fcc..665bf90db9 100644 --- a/framework/derive/src/format/semver_tuple.rs +++ b/framework/derive/src/format/semver_tuple.rs @@ -1,37 +1,39 @@ -use proc_macro::{quote, Literal}; +use quote::quote; use crate::format::format_tokenize; pub fn semver_tuple(input: proc_macro::TokenStream) -> proc_macro::TokenStream { let tokens: Vec = format_tokenize::tokenize(input); - tokens - .iter() - .map(|token| match token { - proc_macro::TokenTree::Group(lit) => { - let format_string = lit.stream().to_string(); - - let version_tokens: Vec<&str> = format_string.split('.').collect(); - assert!( - version_tokens.len() == 3, - "The argument does not have the required format." - ); - - let major = u64_literal_from_str(version_tokens[0]); - let minor = u64_literal_from_str(version_tokens[1]); - let patch = u64_literal_from_str(version_tokens[2]); - - quote!( - ($major, $minor, $patch) - ) - }, - _ => panic!("Tokentree does not match with the requirements"), - }) - .collect() + tokens.iter().map(convert_token_tree).collect() } -fn u64_literal_from_str(s: &str) -> proc_macro::TokenTree { - proc_macro::TokenTree::Literal(Literal::u64_suffixed( +fn convert_token_tree(token: &proc_macro::TokenTree) -> proc_macro::TokenStream { + match token { + proc_macro::TokenTree::Group(lit) => { + let format_string = lit.stream().to_string(); + + let version_tokens: Vec<&str> = format_string.split('.').collect(); + assert!( + version_tokens.len() == 3, + "The argument does not have the required format." + ); + + let major = u64_literal_from_str(version_tokens[0]); + let minor = u64_literal_from_str(version_tokens[1]); + let patch = u64_literal_from_str(version_tokens[2]); + + quote! { + (#major, #minor, #patch) + } + .into() + }, + _ => panic!("Tokentree does not match with the requirements"), + } +} + +fn u64_literal_from_str(s: &str) -> proc_macro2::TokenTree { + proc_macro2::TokenTree::Literal(proc_macro2::Literal::u64_suffixed( s.parse().expect("failed to parse token as u64"), )) } From 246dbf75bacea652ba08a400611a08a2413b863f Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 12:01:03 +0300 Subject: [PATCH 153/185] cargo fmt --- framework/base/src/lib.rs | 1 - .../src/types/managed/wrapped/managed_vec_item_payload.rs | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/framework/base/src/lib.rs b/framework/base/src/lib.rs index 8214ecb4bd..3b8fc6c0f5 100644 --- a/framework/base/src/lib.rs +++ b/framework/base/src/lib.rs @@ -1,5 +1,4 @@ #![no_std] - #![allow(deprecated)] pub use multiversx_sc_derive::{self as derive, contract, module, proxy}; diff --git a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs index f5bf96e4a4..0d0a8d7e99 100644 --- a/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs +++ b/framework/base/src/types/managed/wrapped/managed_vec_item_payload.rs @@ -1,5 +1,5 @@ /// Describes the binary represetnation of a ManagedVecItem. -/// +/// /// It is always an array that can be allocated directly on stack. pub trait ManagedVecItemPayload { fn new_buffer() -> Self; @@ -12,7 +12,7 @@ pub trait ManagedVecItemPayload { } /// Empty ManagedVecItem. -/// +/// /// Only used as type, never as implementation, since all ManagedVecItem have some data in them. pub struct ManagedVecItemEmptyPayload; @@ -58,9 +58,9 @@ impl ManagedVecItemPayload for ManagedVecItemPayloadBuffer { } /// Describes concatantion of smaller payloads into a larger one. -/// +/// /// There is no runtime implementation, just a type-level addition. -/// +/// /// Implemented via macros, because generic const expressions are currently unstable. pub trait ManagedVecItemPayloadAdd: ManagedVecItemPayload where From 9b74eaca658c71afdc46e838b7752701cebd9228 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 12:25:02 +0300 Subject: [PATCH 154/185] replace quote! - format_receiver_args, cleanup --- .../derive/src/format/format_args_macro.rs | 46 +++++++++++-------- .../derive/src/format/format_tokenize.rs | 16 +++---- framework/derive/src/format/semver_tuple.rs | 9 ++-- framework/derive/src/lib.rs | 4 +- 4 files changed, 41 insertions(+), 34 deletions(-) diff --git a/framework/derive/src/format/format_args_macro.rs b/framework/derive/src/format/format_args_macro.rs index 5e0ea07b63..080edf5bab 100644 --- a/framework/derive/src/format/format_args_macro.rs +++ b/framework/derive/src/format/format_args_macro.rs @@ -1,21 +1,21 @@ -use proc_macro::quote; +use quote::quote; use crate::{format::format_tokenize, generate::util::byte_str_literal}; use super::{count_args, parse_format_string, FormatPartType}; -pub fn format_receiver_args_macro(input: proc_macro::TokenStream) -> proc_macro::TokenStream { +pub fn format_receiver_args_macro(input: proc_macro2::TokenStream) -> proc_macro2::TokenStream { let tokens = format_tokenize::tokenize(input); assert!( tokens.len() > 2, "format_receiver_args macro requires at least 2 arguments" ); let num_arguments = tokens.len() - 2; - let mut tokens_iter = tokens.into_iter(); + let mut tokens_iter: std::vec::IntoIter = tokens.into_iter(); let accumulator_expr = tokens_iter.next().unwrap(); let format_string_token = tokens_iter.next().unwrap(); - let format_string = if let proc_macro::TokenTree::Literal(lit) = format_string_token { + let format_string = if let proc_macro2::TokenTree::Literal(lit) = format_string_token { lit.to_string() } else { panic!( @@ -30,37 +30,45 @@ pub fn format_receiver_args_macro(input: proc_macro::TokenStream) -> proc_macro: "Number of placeholders ({num_placeholders}) does not match number of arguments ({num_arguments})." ); + format_tokens(format_str_parts, accumulator_expr, tokens_iter) +} + +fn format_tokens( + format_str_parts: Vec, + accumulator_expr: proc_macro2::TokenTree, + mut tokens_iter: std::vec::IntoIter, +) -> proc_macro2::TokenStream { format_str_parts.into_iter().map(|part| { match part { FormatPartType::StaticAscii(ascii_string) => { let str_as_bytes = byte_str_literal(ascii_string.as_bytes()); - quote! ( - multiversx_sc::formatter::FormatBuffer::append_ascii(&mut $accumulator_expr, $str_as_bytes); - ) + quote! { + multiversx_sc::formatter::FormatBuffer::append_ascii(&mut #accumulator_expr, #str_as_bytes); + } }, FormatPartType::Display => { let arg_expr = tokens_iter.next().unwrap(); - quote! ( - multiversx_sc::formatter::FormatBuffer::append_display(&mut $accumulator_expr, &$arg_expr); - ) + quote! { + multiversx_sc::formatter::FormatBuffer::append_display(&mut #accumulator_expr, &#arg_expr); + } }, FormatPartType::LowerHex => { let arg_expr = tokens_iter.next().unwrap(); - quote! ( - multiversx_sc::formatter::FormatBuffer::append_lower_hex(&mut $accumulator_expr, &$arg_expr); - ) + quote! { + multiversx_sc::formatter::FormatBuffer::append_lower_hex(&mut #accumulator_expr, &#arg_expr); + } }, FormatPartType::Codec => { let arg_expr = tokens_iter.next().unwrap(); - quote! ( - multiversx_sc::formatter::FormatBuffer::append_codec(&mut $accumulator_expr, &$arg_expr); - ) + quote! { + multiversx_sc::formatter::FormatBuffer::append_codec(&mut #accumulator_expr, &#arg_expr); + } }, FormatPartType::Bytes => { let arg_expr = tokens_iter.next().unwrap(); - quote! ( - multiversx_sc::formatter::FormatBuffer::append_binary(&mut $accumulator_expr, &$arg_expr); - ) + quote! { + multiversx_sc::formatter::FormatBuffer::append_binary(&mut #accumulator_expr, &#arg_expr); + } }, } }).collect() diff --git a/framework/derive/src/format/format_tokenize.rs b/framework/derive/src/format/format_tokenize.rs index 1e8dfe0bfb..2e9beb4294 100644 --- a/framework/derive/src/format/format_tokenize.rs +++ b/framework/derive/src/format/format_tokenize.rs @@ -1,7 +1,7 @@ -use proc_macro::Group; +use proc_macro2::Group; -fn token_tree_is_comma(tt: &proc_macro::TokenTree) -> bool { - if let proc_macro::TokenTree::Punct(punct) = &tt { +fn token_tree_is_comma(tt: &proc_macro2::TokenTree) -> bool { + if let proc_macro2::TokenTree::Punct(punct) = &tt { punct.as_char() == ',' } else { false @@ -9,20 +9,20 @@ fn token_tree_is_comma(tt: &proc_macro::TokenTree) -> bool { } fn flush_token_buffer( - output: &mut Vec, - mut buffer: Vec, + output: &mut Vec, + mut buffer: Vec, ) { match buffer.len() { 0 => panic!("empty tokens not allowed in push_format macro"), 1 => output.append(&mut buffer), - _ => output.push(proc_macro::TokenTree::Group(Group::new( - proc_macro::Delimiter::Parenthesis, + _ => output.push(proc_macro2::TokenTree::Group(Group::new( + proc_macro2::Delimiter::Parenthesis, buffer.into_iter().collect(), ))), } } -pub fn tokenize(input: proc_macro::TokenStream) -> Vec { +pub fn tokenize(input: proc_macro2::TokenStream) -> Vec { let mut buffer = Vec::new(); let mut output = Vec::new(); for tt in input.into_iter() { diff --git a/framework/derive/src/format/semver_tuple.rs b/framework/derive/src/format/semver_tuple.rs index 665bf90db9..f10036a973 100644 --- a/framework/derive/src/format/semver_tuple.rs +++ b/framework/derive/src/format/semver_tuple.rs @@ -2,15 +2,15 @@ use quote::quote; use crate::format::format_tokenize; -pub fn semver_tuple(input: proc_macro::TokenStream) -> proc_macro::TokenStream { - let tokens: Vec = format_tokenize::tokenize(input); +pub fn semver_tuple(input: proc_macro2::TokenStream) -> proc_macro2::TokenStream { + let tokens = format_tokenize::tokenize(input); tokens.iter().map(convert_token_tree).collect() } -fn convert_token_tree(token: &proc_macro::TokenTree) -> proc_macro::TokenStream { +fn convert_token_tree(token: &proc_macro2::TokenTree) -> proc_macro2::TokenStream { match token { - proc_macro::TokenTree::Group(lit) => { + proc_macro2::TokenTree::Group(lit) => { let format_string = lit.stream().to_string(); let version_tokens: Vec<&str> = format_string.split('.').collect(); @@ -26,7 +26,6 @@ fn convert_token_tree(token: &proc_macro::TokenTree) -> proc_macro::TokenStream quote! { (#major, #minor, #patch) } - .into() }, _ => panic!("Tokentree does not match with the requirements"), } diff --git a/framework/derive/src/lib.rs b/framework/derive/src/lib.rs index 917ecb2159..e30c08298e 100644 --- a/framework/derive/src/lib.rs +++ b/framework/derive/src/lib.rs @@ -68,10 +68,10 @@ pub fn managed_vec_item_derive(input: proc_macro::TokenStream) -> proc_macro::To #[proc_macro] pub fn format_receiver_args(input: proc_macro::TokenStream) -> proc_macro::TokenStream { - format::format_receiver_args_macro(input) + format::format_receiver_args_macro(input.into()).into() } #[proc_macro] pub fn semver_tuple(input: proc_macro::TokenStream) -> proc_macro::TokenStream { - format::semver_tuple(input) + format::semver_tuple(input.into()).into() } From 3f80b73c74f72de3e692e85cd3a3b8af453aa199 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 12:32:47 +0300 Subject: [PATCH 155/185] removed feature proc_macro_quote --- framework/derive/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/framework/derive/src/lib.rs b/framework/derive/src/lib.rs index e30c08298e..7f32bb2133 100644 --- a/framework/derive/src/lib.rs +++ b/framework/derive/src/lib.rs @@ -1,7 +1,5 @@ -#![allow(stable_features)] // ensure we don't run out of macro stack #![recursion_limit = "1024"] -#![feature(proc_macro_quote)] #[macro_use] extern crate syn; From 713ed43052be3874127eccc720ef8eea8fb7140c Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 12:35:59 +0300 Subject: [PATCH 156/185] removed feature trait_alias --- contracts/modules/src/lib.rs | 1 - .../token_merge/custom_merged_token_attributes.rs | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/contracts/modules/src/lib.rs b/contracts/modules/src/lib.rs index 58b5da9c73..d3b6c29f85 100644 --- a/contracts/modules/src/lib.rs +++ b/contracts/modules/src/lib.rs @@ -1,5 +1,4 @@ #![no_std] -#![feature(trait_alias)] pub mod bonding_curve; pub mod claim_developer_rewards; diff --git a/contracts/modules/src/token_merge/custom_merged_token_attributes.rs b/contracts/modules/src/token_merge/custom_merged_token_attributes.rs index 0585685fd8..8d06d3530d 100644 --- a/contracts/modules/src/token_merge/custom_merged_token_attributes.rs +++ b/contracts/modules/src/token_merge/custom_merged_token_attributes.rs @@ -6,9 +6,19 @@ use multiversx_sc::codec::Empty; use super::merged_token_instances::MergedTokenInstances; -pub trait AllMergeScTraits = super::merged_token_setup::MergedTokenSetupModule +pub trait AllMergeScTraits: + super::merged_token_setup::MergedTokenSetupModule + crate::default_issue_callbacks::DefaultIssueCallbacksModule - + crate::pause::PauseModule; + + crate::pause::PauseModule +{ +} + +impl AllMergeScTraits for T where + T: super::merged_token_setup::MergedTokenSetupModule + + crate::default_issue_callbacks::DefaultIssueCallbacksModule + + crate::pause::PauseModule +{ +} pub trait MergedTokenAttributesCreator { type ScType: AllMergeScTraits; From ca4afe3c3c781f6eed9f9e66c12dd574d7360ff0 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 12:41:19 +0300 Subject: [PATCH 157/185] eval_to_array removed const (const ptr::copy_nonoverlapping not stable) --- framework/base/src/types/interaction/expr/test_address.rs | 2 +- framework/base/src/types/interaction/expr/test_sc_address.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/base/src/types/interaction/expr/test_address.rs b/framework/base/src/types/interaction/expr/test_address.rs index 6cd8a54753..88799c06d2 100644 --- a/framework/base/src/types/interaction/expr/test_address.rs +++ b/framework/base/src/types/interaction/expr/test_address.rs @@ -27,7 +27,7 @@ impl<'a> TestAddress<'a> { TestAddress { name } } - pub const fn eval_to_array(&self) -> [u8; 32] { + pub fn eval_to_array(&self) -> [u8; 32] { let result = [b'_'; 32]; let expr_bytes = self.name.as_bytes(); let mut len = expr_bytes.len(); diff --git a/framework/base/src/types/interaction/expr/test_sc_address.rs b/framework/base/src/types/interaction/expr/test_sc_address.rs index 9059df1b88..bf01de38bf 100644 --- a/framework/base/src/types/interaction/expr/test_sc_address.rs +++ b/framework/base/src/types/interaction/expr/test_sc_address.rs @@ -67,7 +67,7 @@ impl<'a, Env> TxTo for TestSCAddress<'a> where Env: TxEnv {} impl<'a, Env> TxToSpecified for TestSCAddress<'a> where Env: TxEnv {} impl<'a> TestSCAddress<'a> { - pub const fn eval_to_array(&self) -> [u8; 32] { + pub fn eval_to_array(&self) -> [u8; 32] { let result = *b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00______________________"; let expr_bytes = self.name.as_bytes(); let mut len = expr_bytes.len(); From 29b6f2887a21bb022ef1df8cf165fc7681149cb8 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Thu, 9 May 2024 14:05:12 +0300 Subject: [PATCH 158/185] removed unused function --- framework/meta/src/cargo_toml_contents.rs | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/framework/meta/src/cargo_toml_contents.rs b/framework/meta/src/cargo_toml_contents.rs index 3ad86c648f..efe0148c76 100644 --- a/framework/meta/src/cargo_toml_contents.rs +++ b/framework/meta/src/cargo_toml_contents.rs @@ -233,19 +233,6 @@ impl CargoTomlContents { .insert("profile".to_string(), toml::Value::Table(toml_table)); } - pub fn add_dev_profile(&mut self) { - let mut value = toml::map::Map::new(); - value.insert("panic".to_string(), Value::String("abort".to_string())); - - let mut toml_table = toml::map::Map::new(); - toml_table.insert("dev".to_string(), toml::Value::Table(value)); - - self.toml_value - .as_table_mut() - .expect("malformed profile dev in Cargo.toml ") - .insert("profile".to_string(), toml::Value::Table(toml_table)); - } - pub fn add_workspace(&mut self, members: &[&str]) { let array: Vec = members .iter() From dc0998e595269c9cf8d6c654d0b0aaf96cc95b4a Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Thu, 9 May 2024 15:56:08 +0300 Subject: [PATCH 159/185] non payable flag - detect non-payable endpoints --- contracts/examples/adder/src/adder_proxy.rs | 4 ++++ .../cmd/contract/generate_proxy/proxy_generator.rs | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/contracts/examples/adder/src/adder_proxy.rs b/contracts/examples/adder/src/adder_proxy.rs index b7a7025709..0e9d77d692 100644 --- a/contracts/examples/adder/src/adder_proxy.rs +++ b/contracts/examples/adder/src/adder_proxy.rs @@ -53,6 +53,7 @@ where .raw_deploy() .argument(&initial_value) .original_result() + // non_payable } } @@ -75,6 +76,7 @@ where .raw_upgrade() .argument(&initial_value) .original_result() + // non_payable } } @@ -93,6 +95,7 @@ where self.wrapped_tx .raw_call("getSum") .original_result() + // non_payable } /// Add desired amount to the storage variable. @@ -106,5 +109,6 @@ where .raw_call("add") .argument(&value) .original_result() + // non_payable } } diff --git a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs index 9c0e2a2479..676b145627 100644 --- a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs +++ b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs @@ -196,6 +196,7 @@ where } self.write_constructor_header(&constructor_abi); self.write_constructor_content(constructor_abi.inputs); + self.payable_mark(constructor_abi.payable_in_tokens); self.write_end_of_function(); } @@ -217,6 +218,7 @@ where } self.write_upgrade_header(&upgrade); self.write_upgrade_content(upgrade.inputs); + self.payable_mark(upgrade.payable_in_tokens); self.write_end_of_function(); } @@ -233,6 +235,7 @@ where } self.write_endpoint_header(&endpoint_abi); self.write_endpoint_content(&endpoint_abi); + self.payable_mark(endpoint_abi.payable_in_tokens); self.write_end_of_function(); } @@ -432,6 +435,14 @@ where } } + fn payable_mark(&mut self, payable_in_tokens: Vec) { + if payable_in_tokens.is_empty() { + self.writeln(" // non_payable"); + } else { + self.writeln(" // payable"); + } + } + fn write_enum( &mut self, enum_variants: &Vec, From f22567667f9d8fe8b46677253c19e059d3d3d9e8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 20:11:09 +0300 Subject: [PATCH 160/185] upgraded dependencies --- Cargo.lock | 347 +++++++++++++++++++++++++++------- data/codec-derive/Cargo.toml | 6 +- data/codec/Cargo.toml | 2 +- framework/base/Cargo.toml | 4 +- framework/derive/Cargo.toml | 6 +- framework/meta/Cargo.toml | 8 +- framework/scenario/Cargo.toml | 2 +- framework/snippets/Cargo.toml | 2 +- sdk/core/Cargo.toml | 4 +- vm/Cargo.toml | 2 +- 10 files changed, 298 insertions(+), 85 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 41871e3141..9e833243ba 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -60,6 +60,18 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -140,6 +152,15 @@ version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + [[package]] name = "arrayvec" version = "0.7.4" @@ -167,12 +188,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.0" @@ -277,9 +292,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "block-buffer" @@ -655,6 +670,17 @@ dependencies = [ "zeroize", ] +[[package]] +name = "derive_arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "digest" version = "0.9.0" @@ -691,6 +717,17 @@ dependencies = [ "multiversx-sc-meta", ] +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ed25519" version = "1.5.3" @@ -1261,9 +1298,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069" dependencies = [ "bytes", "fnv", @@ -1283,6 +1320,9 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", +] [[package]] name = "heck" @@ -1319,9 +1359,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.12" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -1330,12 +1370,24 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ "bytes", "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", "pin-project-lite", ] @@ -1345,12 +1397,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - [[package]] name = "humantime" version = "2.1.0" @@ -1359,39 +1405,58 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.28" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", "http", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", + "http-body-util", "hyper", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -1797,7 +1862,7 @@ dependencies = [ name = "multiversx-chain-vm" version = "0.8.3" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "colored", "ed25519-dalek", "hex", @@ -1843,7 +1908,7 @@ dependencies = [ name = "multiversx-sc" version = "0.49.0" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", @@ -1919,7 +1984,7 @@ dependencies = [ name = "multiversx-sc-scenario" version = "0.49.0" dependencies = [ - "base64 0.21.7", + "base64", "bech32", "clap", "colored", @@ -1946,7 +2011,7 @@ dependencies = [ name = "multiversx-sc-snippets" version = "0.49.0" dependencies = [ - "base64 0.21.7", + "base64", "env_logger", "futures", "hex", @@ -1969,7 +2034,7 @@ name = "multiversx-sdk" version = "0.4.0" dependencies = [ "anyhow", - "base64 0.21.7", + "base64", "bech32", "bip39", "hex", @@ -2095,11 +2160,10 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -2115,9 +2179,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -2132,6 +2196,27 @@ dependencies = [ "libc", ] +[[package]] +name = "num_enum" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "object" version = "0.32.2" @@ -2159,7 +2244,7 @@ version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cfg-if", "foreign-types", "libc", @@ -2314,7 +2399,7 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.22.0", + "base64", "serde", ] @@ -2324,6 +2409,26 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "pin-project-lite" version = "0.2.14" @@ -2364,11 +2469,20 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -2457,9 +2571,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -2584,7 +2698,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", ] [[package]] @@ -2618,20 +2732,23 @@ checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ - "base64 0.21.7", + "base64", "bytes", "encoding_rs", + "futures-channel", "futures-core", "futures-util", "h2", "http", "http-body", + "http-body-util", "hyper", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -2747,7 +2864,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", @@ -2756,13 +2873,20 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.21.7", + "base64", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + [[package]] name = "ryu" version = "1.0.17" @@ -3090,9 +3214,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -3138,6 +3262,26 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "thiserror" +version = "1.0.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3233,7 +3377,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.22.12", ] [[package]] @@ -3245,6 +3389,17 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.5.40", +] + [[package]] name = "toml_edit" version = "0.22.12" @@ -3255,9 +3410,31 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.7", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + [[package]] name = "tower-service" version = "0.3.2" @@ -3270,6 +3447,7 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ + "log", "pin-project-lite", "tracing-core", ] @@ -3525,20 +3703,22 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasmparser" -version = "0.121.2" +version = "0.207.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" +checksum = "e19bb9f8ab07616da582ef8adb24c54f1424c7ec876720b7da9db8ec0626c92c" dependencies = [ - "bitflags 2.4.2", + "ahash", + "bitflags 2.5.0", + "hashbrown", "indexmap", "semver", ] [[package]] name = "wasmprinter" -version = "0.2.80" +version = "0.207.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60e73986a6b7fdfedb7c5bf9e7eb71135486507c8fbc4c0c42cffcb6532988b7" +checksum = "9c2d8a7b4dabb460208e6b4334d9db5766e84505038b2529e69c3d07ac619115" dependencies = [ "anyhow", "wasmparser", @@ -3702,6 +3882,15 @@ version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" version = "0.6.7" @@ -3713,14 +3902,34 @@ dependencies = [ [[package]] name = "winreg" -version = "0.50.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ "cfg-if", "windows-sys 0.48.0", ] +[[package]] +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zeroize" version = "1.7.0" @@ -3743,12 +3952,16 @@ dependencies = [ [[package]] name = "zip" -version = "0.6.6" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +checksum = "006d078b7b6fc587bb25e022ad39e7086f44e5c4fef6076964ea601533241beb" dependencies = [ - "byteorder", + "arbitrary", "crc32fast", "crossbeam-utils", + "displaydoc", "flate2", + "indexmap", + "num_enum", + "thiserror", ] diff --git a/data/codec-derive/Cargo.toml b/data/codec-derive/Cargo.toml index e1cd5d43ad..9bc69bdc55 100644 --- a/data/codec-derive/Cargo.toml +++ b/data/codec-derive/Cargo.toml @@ -21,7 +21,7 @@ proc-macro = true default = ["syn/full", "syn/parsing", "syn/extra-traits"] [dependencies] -proc-macro2 = "=1.0.78" -quote = "=1.0.35" -syn = "=2.0.48" +proc-macro2 = "=1.0.82" +quote = "=1.0.36" +syn = "=2.0.61" hex = "=0.4.3" diff --git a/data/codec/Cargo.toml b/data/codec/Cargo.toml index 5016492cec..1b45cf90ae 100644 --- a/data/codec/Cargo.toml +++ b/data/codec/Cargo.toml @@ -24,7 +24,7 @@ optional = true [dependencies] arrayvec = { version = "=0.7.4", default-features = false } -num-bigint = { version = "=0.4.4", optional = true } # can only be used in std contexts +num-bigint = { version = "=0.4.5", optional = true } # can only be used in std contexts unwrap-infallible = "0.1.5" [dev-dependencies.multiversx-sc-codec-derive] diff --git a/framework/base/Cargo.toml b/framework/base/Cargo.toml index de4538c928..b16a3a7357 100644 --- a/framework/base/Cargo.toml +++ b/framework/base/Cargo.toml @@ -24,8 +24,8 @@ esdt-token-payment-legacy-decode = [] [dependencies] hex-literal = "=0.4.1" -bitflags = "=2.4.2" -num-traits = { version = "=0.2.17", default-features = false } +bitflags = "=2.5.0" +num-traits = { version = "=0.2.19", default-features = false } unwrap-infallible = "0.1.5" [dependencies.multiversx-sc-derive] diff --git a/framework/derive/Cargo.toml b/framework/derive/Cargo.toml index 65ccd606ec..c8f5f2b337 100644 --- a/framework/derive/Cargo.toml +++ b/framework/derive/Cargo.toml @@ -14,9 +14,9 @@ keywords = ["multiversx", "blockchain", "contract"] categories = ["cryptography::cryptocurrencies", "development-tools::procedural-macro-helpers"] [dependencies] -proc-macro2 = "=1.0.78" -quote = "=1.0.35" -syn = "=2.0.48" +proc-macro2 = "=1.0.82" +quote = "=1.0.36" +syn = "=2.0.61" hex = "=0.4.3" radix_trie = "=0.2.1" diff --git a/framework/meta/Cargo.toml b/framework/meta/Cargo.toml index ef881a2f8c..9c6f2b49c7 100644 --- a/framework/meta/Cargo.toml +++ b/framework/meta/Cargo.toml @@ -40,13 +40,13 @@ colored = "2.0" lazy_static = "1.4.0" convert_case = "0.6.0" hex = "0.4" -wasmparser = "0.121.0" -wasmprinter = "0.2.71" +wasmparser = "0.207" +wasmprinter = "0.207" semver = "1.0.20" ruplacer = { version = "0.8.1", default-features = false, optional = true } -reqwest = { version = "0.11.4", features = ["blocking", "json"], optional = true } -zip = { version = "0.6.4", features = ["deflate"], default-features = false, optional = true } +reqwest = { version = "0.12", features = ["blocking", "json"], optional = true } +zip = { version = "1.2", features = ["deflate"], default-features = false, optional = true } copy_dir = { version = "0.1.2", optional = true } pathdiff = { version = "0.2.1", optional = true } common-path = { version = "1.0.0", optional = true } diff --git a/framework/scenario/Cargo.toml b/framework/scenario/Cargo.toml index 2dd61e602a..4f8e2de5cd 100644 --- a/framework/scenario/Cargo.toml +++ b/framework/scenario/Cargo.toml @@ -17,7 +17,7 @@ keywords = ["multiversx", "blockchain", "contract", "debug"] categories = ["cryptography::cryptocurrencies", "development-tools::debugging"] [dependencies] -base64 = "0.21.5" +base64 = "0.22" num-bigint = "0.4" num-traits = "0.2" hex = "0.4" diff --git a/framework/snippets/Cargo.toml b/framework/snippets/Cargo.toml index 8ce800326f..eca0ac6dc1 100644 --- a/framework/snippets/Cargo.toml +++ b/framework/snippets/Cargo.toml @@ -16,7 +16,7 @@ categories = ["cryptography::cryptocurrencies"] [dependencies] tokio = { version = "1.24", features = ["full"] } hex = "0.4" -base64 = "0.21.5" +base64 = "0.22" log = "0.4.17" env_logger = "0.11" futures = "0.3" diff --git a/sdk/core/Cargo.toml b/sdk/core/Cargo.toml index d8039324ba..2ca965fc83 100644 --- a/sdk/core/Cargo.toml +++ b/sdk/core/Cargo.toml @@ -17,7 +17,7 @@ keywords = ["multiversx", "blockchain", "sdk", "api"] [dependencies] tokio = { version = "1.24", features = ["full"] } -reqwest = { version = "0.11.4", features = ["blocking", "json"] } +reqwest = { version = "0.12", features = ["blocking", "json"] } serde = { version = "1.0.130", features = ["derive"] } serde_json = { version = "1.0.68", features = ["preserve_order"] } serde_repr = "0.1.8" @@ -28,7 +28,7 @@ sha2 = "0.10.8" sha3 = "0.10.8" hmac = { version = "0.12.1", features = ["std"] } hex = "0.4.3" -base64 = "0.21.5" +base64 = "0.22" pbkdf2 = { version = "0.12.2", default-features = false } zeroize = "1.4.2" bech32 = "0.9" diff --git a/vm/Cargo.toml b/vm/Cargo.toml index 2246fc453a..eddc7cb8e1 100644 --- a/vm/Cargo.toml +++ b/vm/Cargo.toml @@ -27,7 +27,7 @@ rand_seeder = "0.2.2" ed25519-dalek = "1.0.1" itertools = "0.12.0" hex-literal = "=0.4.1" -bitflags = "=2.4.2" +bitflags = "=2.5.0" colored = "2.1.0" [dependencies.multiversx-chain-vm-executor] From a5d4b84bf6ff24518234163344ede51592bc2a60 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 21:59:01 +0300 Subject: [PATCH 161/185] non payable flag - in proxy generator --- .../annotated/annotated_impl_big_uint.rs | 15 ++- .../base/src/types/interaction/tx_payment.rs | 11 +++ .../interaction/tx_payment/tx_payment_none.rs | 6 +- .../tx_payment/tx_payment_not_payable.rs | 57 +++++++++++ .../base/src/types/interaction/tx_proxy.rs | 25 +++++ .../generate_proxy/proxy_generator.rs | 96 ++++++++++--------- .../facade/world_tx/scenario_query_call.rs | 13 ++- .../scenario/tx_to_step/tx_to_step_query.rs | 5 +- .../interactor_tx/interactor_query_call.rs | 13 ++- 9 files changed, 180 insertions(+), 61 deletions(-) create mode 100644 framework/base/src/types/interaction/tx_payment/tx_payment_not_payable.rs diff --git a/framework/base/src/types/interaction/annotated/annotated_impl_big_uint.rs b/framework/base/src/types/interaction/annotated/annotated_impl_big_uint.rs index 685af7fdb3..5bf0b55007 100644 --- a/framework/base/src/types/interaction/annotated/annotated_impl_big_uint.rs +++ b/framework/base/src/types/interaction/annotated/annotated_impl_big_uint.rs @@ -1,4 +1,4 @@ -use crate::types::{BigUint, ManagedBuffer, ManagedRef}; +use crate::types::{BigUint, ManagedBuffer, ManagedRef, NotPayable}; use super::{AnnotatedValue, TxEnv}; @@ -112,3 +112,16 @@ where BigUint::zero() } } + +impl AnnotatedValue> for NotPayable +where + Env: TxEnv, +{ + fn annotation(&self, _env: &Env) -> ManagedBuffer { + ManagedBuffer::from("0") + } + + fn to_value(&self, _env: &Env) -> BigUint { + BigUint::zero() + } +} diff --git a/framework/base/src/types/interaction/tx_payment.rs b/framework/base/src/types/interaction/tx_payment.rs index e72a5b9fa6..7821797812 100644 --- a/framework/base/src/types/interaction/tx_payment.rs +++ b/framework/base/src/types/interaction/tx_payment.rs @@ -6,6 +6,7 @@ mod tx_payment_egld_or_multi_esdt_ref; mod tx_payment_egld_value; mod tx_payment_multi_esdt; mod tx_payment_none; +mod tx_payment_not_payable; mod tx_payment_single_esdt; mod tx_payment_single_esdt_ref; mod tx_payment_single_esdt_triple; @@ -13,6 +14,7 @@ mod tx_payment_single_esdt_triple; pub use tx_payment_egld::{Egld, EgldPayment}; pub use tx_payment_egld_value::TxEgldValue; pub use tx_payment_multi_esdt::TxPaymentMultiEsdt; +pub use tx_payment_not_payable::NotPayable; use crate::{ api::ManagedTypeApi, @@ -57,6 +59,15 @@ where fn into_full_payment_data(self, env: &Env) -> FullPaymentData; } +/// Marker trait that indicates that payment field contains no payment. +/// +/// Implemented by `()` and `NotPayable`. +pub trait TxNoPayment: TxPayment +where + Env: TxEnv, +{ +} + /// Marks a payment object that only contains EGLD or nothing at all. pub trait TxPaymentEgldOnly: TxPayment + AnnotatedValue> where diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_none.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_none.rs index fe6016e43b..01965c8edc 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_none.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_none.rs @@ -1,6 +1,8 @@ use crate::types::{BigUint, ManagedAddress, TxFrom, TxToSpecified}; -use super::{Egld, FullPaymentData, FunctionCall, TxEnv, TxPayment, TxPaymentEgldOnly}; +use super::{ + Egld, FullPaymentData, FunctionCall, TxEnv, TxNoPayment, TxPayment, TxPaymentEgldOnly, +}; impl TxPayment for () where @@ -41,4 +43,6 @@ where } } +impl TxNoPayment for () where Env: TxEnv {} + impl TxPaymentEgldOnly for () where Env: TxEnv {} diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_not_payable.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_not_payable.rs new file mode 100644 index 0000000000..bf43ba1cfd --- /dev/null +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_not_payable.rs @@ -0,0 +1,57 @@ +use crate::types::{BigUint, ManagedAddress, TxFrom, TxToSpecified}; + +use super::{FullPaymentData, FunctionCall, TxEnv, TxNoPayment, TxPayment, TxPaymentEgldOnly}; + +/// Transaction marker, which indicates that a transaction should never have any payment added to it. +/// +/// The implementation is completely identical to the empty payment `()`, +/// the only difference is that the payment methods in `Tx` can only be called on top of `()` payment, not `NotPayable`. +/// +/// So basically, `NotPayable` acts as a seal, preventing further payments to be added. +pub struct NotPayable; + +impl TxPayment for NotPayable +where + Env: TxEnv, +{ + #[inline] + fn is_no_payment(&self, _env: &Env) -> bool { + true + } + + #[inline] + fn perform_transfer_execute( + self, + env: &Env, + to: &ManagedAddress, + gas_limit: u64, + fc: FunctionCall, + ) { + ().perform_transfer_execute(env, to, gas_limit, fc); + } + + #[inline] + fn with_normalized( + self, + env: &Env, + from: &From, + to: To, + fc: FunctionCall, + f: F, + ) -> R + where + From: TxFrom, + To: TxToSpecified, + F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + { + ().with_normalized(env, from, to, fc, f) + } + + fn into_full_payment_data(self, _env: &Env) -> FullPaymentData { + FullPaymentData::default() + } +} + +impl TxNoPayment for NotPayable where Env: TxEnv {} + +impl TxPaymentEgldOnly for NotPayable where Env: TxEnv {} diff --git a/framework/base/src/types/interaction/tx_proxy.rs b/framework/base/src/types/interaction/tx_proxy.rs index 2929a7bc4b..e0b62e006a 100644 --- a/framework/base/src/types/interaction/tx_proxy.rs +++ b/framework/base/src/types/interaction/tx_proxy.rs @@ -21,17 +21,42 @@ where } /// Alias for a `Tx` generated from a proxy, in `init`. +/// +/// Replaced by `TxTypedDeploy`. pub type TxProxyDeploy = Tx, OriginalResultMarker>; +/// Alias for a `Tx` generated from a proxy, in `init`. +pub type TxTypedDeploy = + Tx, OriginalResultMarker>; + /// Alias for a `Tx` generated from a proxy, in an endpoint. +/// +/// Replaced by `TxTypedCall`. pub type TxProxyCall = Tx::Api>, OriginalResultMarker>; +/// Alias for a `Tx` generated from a proxy, in an endpoint. +pub type TxTypedCall = Tx< + Env, + From, + To, + Payment, + Gas, + FunctionCall<::Api>, + OriginalResultMarker, +>; + /// Alias for a `Tx` generated from a proxy, in `upgrade`. +/// +/// Replaced by `TxTypedUpgrade`. pub type TxProxyUpgrade = Tx, OriginalResultMarker>; +/// Alias for a `Tx` generated from a proxy, in `upgrade`. +pub type TxTypedUpgrade = + Tx, OriginalResultMarker>; + /// Trait that is automatically implemented for all types that are allowed as proxy inputs. /// /// Is automatically implemented for all traits that are `TypeAbiInto + TopEncodeMulti`. diff --git a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs index 676b145627..0bc7a73447 100644 --- a/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs +++ b/framework/meta/src/cmd/contract/generate_proxy/proxy_generator.rs @@ -195,8 +195,7 @@ where self.writeln(""); } self.write_constructor_header(&constructor_abi); - self.write_constructor_content(constructor_abi.inputs); - self.payable_mark(constructor_abi.payable_in_tokens); + self.write_constructor_content(&constructor_abi); self.write_end_of_function(); } @@ -217,8 +216,7 @@ where self.writeln(""); } self.write_upgrade_header(&upgrade); - self.write_upgrade_content(upgrade.inputs); - self.payable_mark(upgrade.payable_in_tokens); + self.write_upgrade_content(&upgrade); self.write_end_of_function(); } @@ -235,7 +233,6 @@ where } self.write_endpoint_header(&endpoint_abi); self.write_endpoint_content(&endpoint_abi); - self.payable_mark(endpoint_abi.payable_in_tokens); self.write_end_of_function(); } @@ -294,47 +291,51 @@ where fn write_constructor_header(&mut self, constructor_abi: &EndpointAbi) { self.write_fn_signature(constructor_abi); - self.write_constructor_output(&constructor_abi.outputs); + self.write_constructor_output(constructor_abi); } fn write_upgrade_header(&mut self, constructor_abi: &EndpointAbi) { self.write_fn_signature(constructor_abi); - self.write_upgrade_output(&constructor_abi.outputs); + self.write_upgrade_output(constructor_abi); } fn write_endpoint_header(&mut self, constructor_abi: &EndpointAbi) { self.write_fn_signature(constructor_abi); - self.write_endpoint_output(&constructor_abi.outputs); + self.write_endpoint_output(constructor_abi); } - fn write_constructor_content(&mut self, inputs: Vec) { - self.writeln( - " self.wrapped_tx - .raw_deploy()", - ); - for input in inputs.iter() { + fn write_constructor_content(&mut self, constructor_abi: &EndpointAbi) { + self.writeln(" self.wrapped_tx"); + if constructor_abi.payable_in_tokens.is_empty() { + self.writeln(" .payment(NotPayable)"); + } + self.writeln(" .raw_deploy()"); + for input in constructor_abi.inputs.iter() { self.writeln(format!(" .argument(&{})", input.arg_name)); } self.writeln(" .original_result()"); } - fn write_upgrade_content(&mut self, inputs: Vec) { - self.writeln( - " self.wrapped_tx - .raw_upgrade()", - ); - for input in inputs.iter() { + fn write_upgrade_content(&mut self, constructor_abi: &EndpointAbi) { + self.writeln(" self.wrapped_tx"); + if constructor_abi.payable_in_tokens.is_empty() { + self.writeln(" .payment(NotPayable)"); + } + self.writeln(" .raw_upgrade()"); + for input in constructor_abi.inputs.iter() { self.writeln(format!(" .argument(&{})", input.arg_name)); } self.writeln(" .original_result()"); } fn write_endpoint_content(&mut self, endpoint: &EndpointAbi) { - self.writeln(format!( - " self.wrapped_tx - .raw_call(\"{}\")", - endpoint.name - )); + self.writeln(" self.wrapped_tx"); + + if endpoint.payable_in_tokens.is_empty() { + self.writeln(" .payment(NotPayable)"); + } + + self.writeln(format!(" .raw_call(\"{}\")", endpoint.name)); for input in endpoint.inputs.iter() { self.writeln(format!(" .argument(&{})", input.arg_name)); @@ -388,30 +389,39 @@ where self.write(" ) "); } - fn write_constructor_output(&mut self, outputs: &[OutputAbi]) { - self.write("-> TxProxyDeploy TxTypedDeploy {"); } - fn write_upgrade_output(&mut self, outputs: &[OutputAbi]) { - self.write("-> TxProxyUpgrade TxTypedUpgrade {"); } - fn write_endpoint_output(&mut self, outputs: &[OutputAbi]) { - self.write("-> TxProxyCall TxTypedCall {"); } + fn write_payment_type(&mut self, abi: &EndpointAbi) { + if abi.payable_in_tokens.is_empty() { + self.write("NotPayable, "); + } else { + self.write("(), "); + } + } + fn parse_and_write_outputs(&mut self, outputs: &[OutputAbi]) { match outputs.len() { 0 => { @@ -435,14 +445,6 @@ where } } - fn payable_mark(&mut self, payable_in_tokens: Vec) { - if payable_in_tokens.is_empty() { - self.writeln(" // non_payable"); - } else { - self.writeln(" // payable"); - } - } - fn write_enum( &mut self, enum_variants: &Vec, diff --git a/framework/scenario/src/facade/world_tx/scenario_query_call.rs b/framework/scenario/src/facade/world_tx/scenario_query_call.rs index dbcf3130f5..dc416439b4 100644 --- a/framework/scenario/src/facade/world_tx/scenario_query_call.rs +++ b/framework/scenario/src/facade/world_tx/scenario_query_call.rs @@ -2,7 +2,7 @@ use multiversx_sc::{ tuple_util::NestedTupleFlatten, types::{ FunctionCall, ManagedAddress, ManagedBuffer, RHListExec, Tx, TxBaseWithEnv, TxEnv, - TxToSpecified, + TxNoPayment, TxToSpecified, }, }; @@ -42,10 +42,11 @@ impl<'w> ScenarioTxEnv for ScenarioEnvQuery<'w> { } } -impl<'w, To, RH> ScenarioTxRun - for Tx, (), To, (), (), FunctionCall, RH> +impl<'w, To, Payment, RH> ScenarioTxRun + for Tx, (), To, Payment, (), FunctionCall, RH> where To: TxToSpecified>, + Payment: TxNoPayment>, RH: RHListExec>, RH::ListReturns: NestedTupleFlatten, { @@ -65,13 +66,15 @@ impl ScenarioWorld { Tx::new_with_env(env) } - pub fn chain_query(&mut self, f: F) -> &mut Self + pub fn chain_query(&mut self, f: F) -> &mut Self where To: TxToSpecified, + Payment: TxNoPayment, RH: RHListExec, F: FnOnce( TxBaseWithEnv, - ) -> Tx, RH>, + ) + -> Tx, RH>, { let env = self.new_env_data(); let tx_base = TxBaseWithEnv::new_with_env(env); diff --git a/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs b/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs index aaeb3b70c3..3a94a1887d 100644 --- a/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs +++ b/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs @@ -1,13 +1,14 @@ -use multiversx_sc::types::{FunctionCall, RHListExec, Tx, TxEnv, TxToSpecified}; +use multiversx_sc::types::{FunctionCall, RHListExec, Tx, TxEnv, TxNoPayment, TxToSpecified}; use crate::scenario_model::{ScQueryStep, TxExpect, TxResponse}; use super::{address_annotated, StepWrapper, TxToQueryStep}; -impl TxToQueryStep for Tx, RH> +impl TxToQueryStep for Tx, RH> where Env: TxEnv, To: TxToSpecified, + Payment: TxNoPayment, RH: RHListExec, { type Step = ScQueryStep; diff --git a/framework/snippets/src/interactor_tx/interactor_query_call.rs b/framework/snippets/src/interactor_tx/interactor_query_call.rs index 55421743c5..9068b906e5 100644 --- a/framework/snippets/src/interactor_tx/interactor_query_call.rs +++ b/framework/snippets/src/interactor_tx/interactor_query_call.rs @@ -2,7 +2,7 @@ use multiversx_sc_scenario::{ api::StaticApi, multiversx_sc::{ tuple_util::NestedTupleFlatten, - types::{FunctionCall, RHListExec, Tx, TxBaseWithEnv, TxToSpecified}, + types::{FunctionCall, RHListExec, Tx, TxBaseWithEnv, TxNoPayment, TxToSpecified}, }, scenario::tx_to_step::TxToQueryStep, scenario_model::TxResponse, @@ -13,10 +13,11 @@ use crate::Interactor; use super::{InteractorPrepareAsync, InteractorQueryEnv, InteractorQueryStep}; -impl<'w, To, RH> InteractorPrepareAsync - for Tx, (), To, (), (), FunctionCall, RH> +impl<'w, To, Payment, RH> InteractorPrepareAsync + for Tx, (), To, Payment, (), FunctionCall, RH> where To: TxToSpecified>, + Payment: TxNoPayment>, RH: RHListExec>, RH::ListReturns: NestedTupleFlatten, { @@ -45,13 +46,15 @@ where } impl Interactor { - pub async fn chain_query(&mut self, f: F) -> &mut Self + pub async fn chain_query(&mut self, f: F) -> &mut Self where To: TxToSpecified, + Payment: TxNoPayment, RH: RHListExec, F: FnOnce( TxBaseWithEnv, - ) -> Tx, RH>, + ) + -> Tx, RH>, { let env = self.new_env_data(); let tx_base = TxBaseWithEnv::new_with_env(env); From 5550346b0a4fca9c744c71fdf809c552702843b2 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 23:11:29 +0300 Subject: [PATCH 162/185] re-generated proxies --- .../tests/price_aggregator_proxy.rs | 65 ++++--- contracts/examples/adder/src/adder_proxy.rs | 16 +- .../src/crowdfunding_esdt_proxy.rs | 26 ++- .../src/kitty_ownership_proxy.rs | 65 ++++--- .../src/kitty_genetic_alg_proxy.rs | 6 +- .../src/kitty_ownership_proxy.rs | 65 ++++--- .../src/proxy_crypto_zombies.rs | 56 ++++-- .../digital-cash/src/digital_cash_proxy.rs | 34 ++-- .../examples/multisig/src/multisig_proxy.rs | 88 ++++++--- .../src/rewards_distribution_proxy.rs | 40 ++-- .../src/seed_nft_minter_proxy.rs | 28 ++- .../feature-tests/abi-tester/src/abi_proxy.rs | 95 +++++---- .../parent/src/child_proxy.rs | 8 +- .../forwarder/src/forwarder_proxy.rs | 182 +++++++++++------- .../forwarder/src/vault_proxy.rs | 47 +++-- .../promises-features/src/vault_proxy.rs | 47 +++-- .../recursive-caller/src/self_proxy.rs | 6 +- .../recursive-caller/src/vault_proxy.rs | 47 +++-- .../crowdfunding-erc20/src/erc20_proxy.rs | 21 +- .../erc1155-marketplace/src/erc1155_proxy.rs | 42 ++-- .../lottery-erc20/src/erc20_proxy.rs | 21 +- .../panic-message-features/tests/pmf_proxy.rs | 12 +- .../src/scenario_tester_proxy.rs | 12 +- 23 files changed, 663 insertions(+), 366 deletions(-) diff --git a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs index ae5e00c94a..e96244d668 100644 --- a/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs +++ b/contracts/core/price-aggregator/tests/price_aggregator_proxy.rs @@ -58,8 +58,9 @@ where slash_quorum: Arg3, submission_count: Arg4, oracles: Arg5, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&staking_token) .argument(&staking_amount) @@ -87,8 +88,9 @@ where self, staking_amount: Arg0, slash_amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("changeAmounts") .argument(&staking_amount) .argument(&slash_amount) @@ -100,8 +102,9 @@ where >( self, oracles: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("addOracles") .argument(&oracles) .original_result() @@ -116,8 +119,9 @@ where self, submission_count: Arg0, oracles: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("removeOracles") .argument(&submission_count) .argument(&oracles) @@ -137,8 +141,9 @@ where submission_timestamp: Arg2, price: Arg3, decimals: Arg4, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("submit") .argument(&from) .argument(&to) @@ -153,8 +158,9 @@ where >( self, submissions: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("submitBatch") .argument(&submissions) .original_result() @@ -162,8 +168,9 @@ where pub fn latest_round_data( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("latestRoundData") .original_result() } @@ -175,8 +182,9 @@ where self, from: Arg0, to: Arg1, - ) -> TxProxyCall, ManagedBuffer, u64, BigUint, u8>> { + ) -> TxTypedCall, ManagedBuffer, u64, BigUint, u8>> { self.wrapped_tx + .payment(NotPayable) .raw_call("latestPriceFeed") .argument(&from) .argument(&to) @@ -190,8 +198,9 @@ where self, from: Arg0, to: Arg1, - ) -> TxProxyCall, ManagedBuffer, u64, BigUint, u8>>> { + ) -> TxTypedCall, ManagedBuffer, u64, BigUint, u8>>> { self.wrapped_tx + .payment(NotPayable) .raw_call("latestPriceFeedOptional") .argument(&from) .argument(&to) @@ -203,8 +212,9 @@ where >( self, submission_count: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("setSubmissionCount") .argument(&submission_count) .original_result() @@ -212,8 +222,9 @@ where pub fn get_oracles( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("getOracles") .original_result() } @@ -227,8 +238,9 @@ where from: Arg0, to: Arg1, decimals: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("setPairDecimals") .argument(&from) .argument(&to) @@ -243,8 +255,9 @@ where self, from: Arg0, to: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getPairDecimals") .argument(&from) .argument(&to) @@ -253,39 +266,43 @@ where pub fn submission_count( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("submission_count") .original_result() } pub fn pause_endpoint( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("pause") .original_result() } pub fn unpause_endpoint( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("unpause") .original_result() } pub fn paused_status( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("isPaused") .original_result() } pub fn stake( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("stake") .original_result() @@ -296,8 +313,9 @@ where >( self, unstake_amount: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("unstake") .argument(&unstake_amount) .original_result() @@ -308,8 +326,9 @@ where >( self, member_to_slash: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("voteSlashMember") .argument(&member_to_slash) .original_result() @@ -320,8 +339,9 @@ where >( self, member_to_slash: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("cancelVoteSlashMember") .argument(&member_to_slash) .original_result() @@ -332,8 +352,9 @@ where >( self, member_to_slash: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("slashMember") .argument(&member_to_slash) .original_result() diff --git a/contracts/examples/adder/src/adder_proxy.rs b/contracts/examples/adder/src/adder_proxy.rs index 0e9d77d692..fd79b14ac8 100644 --- a/contracts/examples/adder/src/adder_proxy.rs +++ b/contracts/examples/adder/src/adder_proxy.rs @@ -48,12 +48,12 @@ where >( self, initial_value: Arg0, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&initial_value) .original_result() - // non_payable } } @@ -71,12 +71,12 @@ where >( self, initial_value: Arg0, - ) -> TxProxyUpgrade { + ) -> TxTypedUpgrade { self.wrapped_tx + .payment(NotPayable) .raw_upgrade() .argument(&initial_value) .original_result() - // non_payable } } @@ -91,11 +91,11 @@ where { pub fn sum( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getSum") .original_result() - // non_payable } /// Add desired amount to the storage variable. @@ -104,11 +104,11 @@ where >( self, value: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("add") .argument(&value) .original_result() - // non_payable } } diff --git a/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs b/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs index a1fe1dddda..aabd42cc08 100644 --- a/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs +++ b/contracts/examples/crowdfunding-esdt/src/crowdfunding_esdt_proxy.rs @@ -52,8 +52,9 @@ where target: Arg0, deadline: Arg1, token_identifier: Arg2, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&target) .argument(&deadline) @@ -73,7 +74,7 @@ where { pub fn fund( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("fund") .original_result() @@ -81,40 +82,45 @@ where pub fn status( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("status") .original_result() } pub fn get_current_funds( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getCurrentFunds") .original_result() } pub fn claim( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("claim") .original_result() } pub fn target( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getTarget") .original_result() } pub fn deadline( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getDeadline") .original_result() } @@ -124,8 +130,9 @@ where >( self, donor: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getDeposit") .argument(&donor) .original_result() @@ -133,8 +140,9 @@ where pub fn cf_token_identifier( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getCrowdfundingTokenIdentifier") .original_result() } diff --git a/contracts/examples/crypto-kitties/kitty-auction/src/kitty_ownership_proxy.rs b/contracts/examples/crypto-kitties/kitty-auction/src/kitty_ownership_proxy.rs index 87f5bdb4a2..bc9c123f8e 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/src/kitty_ownership_proxy.rs +++ b/contracts/examples/crypto-kitties/kitty-auction/src/kitty_ownership_proxy.rs @@ -52,8 +52,9 @@ where birth_fee: Arg0, opt_gene_science_contract_address: Arg1, opt_kitty_auction_contract_address: Arg2, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&birth_fee) .argument(&opt_gene_science_contract_address) @@ -76,8 +77,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("setGeneScienceContractAddress") .argument(&address) .original_result() @@ -88,8 +90,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("setKittyAuctionContractAddress") .argument(&address) .original_result() @@ -97,16 +100,18 @@ where pub fn claim( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("claim") .original_result() } pub fn total_supply( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("totalSupply") .original_result() } @@ -116,8 +121,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("balanceOf") .argument(&address) .original_result() @@ -128,8 +134,9 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("ownerOf") .argument(&kitty_id) .original_result() @@ -142,8 +149,9 @@ where self, to: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("approve") .argument(&to) .argument(&kitty_id) @@ -157,8 +165,9 @@ where self, to: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transfer") .argument(&to) .argument(&kitty_id) @@ -174,8 +183,9 @@ where from: Arg0, to: Arg1, kitty_id: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transfer_from") .argument(&from) .argument(&to) @@ -188,8 +198,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("tokensOfOwner") .argument(&address) .original_result() @@ -202,8 +213,9 @@ where self, by: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("allowAuctioning") .argument(&by) .argument(&kitty_id) @@ -219,8 +231,9 @@ where approved_address: Arg0, kitty_owner: Arg1, kitty_id: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("approveSiringAndReturnKitty") .argument(&approved_address) .argument(&kitty_owner) @@ -230,8 +243,9 @@ where pub fn create_gen_zero_kitty( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("createGenZeroKitty") .original_result() } @@ -241,8 +255,9 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getKittyById") .argument(&kitty_id) .original_result() @@ -253,8 +268,9 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("isReadyToBreed") .argument(&kitty_id) .original_result() @@ -265,8 +281,9 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("isPregnant") .argument(&kitty_id) .original_result() @@ -279,8 +296,9 @@ where self, matron_id: Arg0, sire_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("canBreedWith") .argument(&matron_id) .argument(&sire_id) @@ -294,8 +312,9 @@ where self, address: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("approveSiring") .argument(&address) .argument(&kitty_id) @@ -309,7 +328,7 @@ where self, matron_id: Arg0, sire_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("breedWith") .argument(&matron_id) @@ -322,8 +341,9 @@ where >( self, matron_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("giveBirth") .argument(&matron_id) .original_result() @@ -331,8 +351,9 @@ where pub fn birth_fee( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("birthFee") .original_result() } diff --git a/contracts/examples/crypto-kitties/kitty-ownership/src/kitty_genetic_alg_proxy.rs b/contracts/examples/crypto-kitties/kitty-ownership/src/kitty_genetic_alg_proxy.rs index 1acee7fe43..2388d92f1b 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/src/kitty_genetic_alg_proxy.rs +++ b/contracts/examples/crypto-kitties/kitty-ownership/src/kitty_genetic_alg_proxy.rs @@ -45,8 +45,9 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .original_result() } @@ -68,8 +69,9 @@ where self, matron: Arg0, sire: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("generateKittyGenes") .argument(&matron) .argument(&sire) diff --git a/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs b/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs index 595c1612c7..3673b97ea5 100644 --- a/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs +++ b/contracts/examples/crypto-zombies/src/kitty_ownership_proxy.rs @@ -52,8 +52,9 @@ where birth_fee: Arg0, opt_gene_science_contract_address: Arg1, opt_kitty_auction_contract_address: Arg2, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&birth_fee) .argument(&opt_gene_science_contract_address) @@ -76,8 +77,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("setGeneScienceContractAddress") .argument(&address) .original_result() @@ -88,8 +90,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("setKittyAuctionContractAddress") .argument(&address) .original_result() @@ -97,16 +100,18 @@ where pub fn claim( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("claim") .original_result() } pub fn total_supply( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("totalSupply") .original_result() } @@ -116,8 +121,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("balanceOf") .argument(&address) .original_result() @@ -128,8 +134,9 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("ownerOf") .argument(&kitty_id) .original_result() @@ -142,8 +149,9 @@ where self, to: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("approve") .argument(&to) .argument(&kitty_id) @@ -157,8 +165,9 @@ where self, to: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transfer") .argument(&to) .argument(&kitty_id) @@ -174,8 +183,9 @@ where from: Arg0, to: Arg1, kitty_id: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transfer_from") .argument(&from) .argument(&to) @@ -188,8 +198,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("tokensOfOwner") .argument(&address) .original_result() @@ -202,8 +213,9 @@ where self, by: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("allowAuctioning") .argument(&by) .argument(&kitty_id) @@ -219,8 +231,9 @@ where approved_address: Arg0, kitty_owner: Arg1, kitty_id: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("approveSiringAndReturnKitty") .argument(&approved_address) .argument(&kitty_owner) @@ -230,8 +243,9 @@ where pub fn create_gen_zero_kitty( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("createGenZeroKitty") .original_result() } @@ -241,8 +255,9 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getKittyById") .argument(&kitty_id) .original_result() @@ -253,8 +268,9 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("isReadyToBreed") .argument(&kitty_id) .original_result() @@ -265,8 +281,9 @@ where >( self, kitty_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("isPregnant") .argument(&kitty_id) .original_result() @@ -279,8 +296,9 @@ where self, matron_id: Arg0, sire_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("canBreedWith") .argument(&matron_id) .argument(&sire_id) @@ -294,8 +312,9 @@ where self, address: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("approveSiring") .argument(&address) .argument(&kitty_id) @@ -309,7 +328,7 @@ where self, matron_id: Arg0, sire_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("breedWith") .argument(&matron_id) @@ -322,8 +341,9 @@ where >( self, matron_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("giveBirth") .argument(&matron_id) .original_result() @@ -331,8 +351,9 @@ where pub fn birth_fee( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("birthFee") .original_result() } diff --git a/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs b/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs index 1e056fee19..561563132c 100644 --- a/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs +++ b/contracts/examples/crypto-zombies/src/proxy_crypto_zombies.rs @@ -45,8 +45,9 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .original_result() } @@ -63,8 +64,9 @@ where { pub fn upgrade( self, - ) -> TxProxyUpgrade { + ) -> TxTypedUpgrade { self.wrapped_tx + .payment(NotPayable) .raw_upgrade() .original_result() } @@ -84,8 +86,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("set_crypto_kitties_sc_address") .argument(&address) .original_result() @@ -93,8 +96,9 @@ where pub fn generate_random_dna( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("generate_random_dna") .original_result() } @@ -104,8 +108,9 @@ where >( self, name: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("create_random_zombie") .argument(&name) .original_result() @@ -116,8 +121,9 @@ where >( self, zombie_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("is_ready") .argument(&zombie_id) .original_result() @@ -130,8 +136,9 @@ where self, zombie_id: Arg0, kitty_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("feed_on_kitty") .argument(&zombie_id) .argument(&kitty_id) @@ -140,16 +147,18 @@ where pub fn dna_digits( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("dna_digits") .original_result() } pub fn zombies_count( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("zombies_count") .original_result() } @@ -159,8 +168,9 @@ where >( self, id: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("zombies") .argument(&id) .original_result() @@ -171,8 +181,9 @@ where >( self, id: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("zombie_owner") .argument(&id) .original_result() @@ -180,16 +191,18 @@ where pub fn crypto_kitties_sc_address( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("crypto_kitties_sc_address") .original_result() } pub fn cooldown_time( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("cooldown_time") .original_result() } @@ -199,8 +212,9 @@ where >( self, owner: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("owned_zombies") .argument(&owner) .original_result() @@ -211,7 +225,7 @@ where >( self, zombie_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("level_up") .argument(&zombie_id) @@ -220,8 +234,9 @@ where pub fn withdraw( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("withdraw") .original_result() } @@ -233,8 +248,9 @@ where self, zombie_id: Arg0, name: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("change_name") .argument(&zombie_id) .argument(&name) @@ -248,8 +264,9 @@ where self, zombie_id: Arg0, dna: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("change_dna") .argument(&zombie_id) .argument(&dna) @@ -263,8 +280,9 @@ where self, zombie_id: Arg0, target_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("attack") .argument(&zombie_id) .argument(&target_id) diff --git a/contracts/examples/digital-cash/src/digital_cash_proxy.rs b/contracts/examples/digital-cash/src/digital_cash_proxy.rs index 85e7dc06ae..e2893794b9 100644 --- a/contracts/examples/digital-cash/src/digital_cash_proxy.rs +++ b/contracts/examples/digital-cash/src/digital_cash_proxy.rs @@ -50,8 +50,9 @@ where self, fee: Arg0, token: Arg1, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&fee) .argument(&token) @@ -75,8 +76,9 @@ where self, fee: Arg0, token: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("whitelistFeeToken") .argument(&fee) .argument(&token) @@ -88,8 +90,9 @@ where >( self, token: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("blacklistFeeToken") .argument(&token) .original_result() @@ -97,8 +100,9 @@ where pub fn claim_fees( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("claimFees") .original_result() } @@ -112,8 +116,9 @@ where address: Arg0, token: Arg1, nonce: Arg2, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getAmount") .argument(&address) .argument(&token) @@ -128,7 +133,7 @@ where self, address: Arg0, valability: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("payFeeAndFundESDT") .argument(&address) @@ -143,7 +148,7 @@ where self, address: Arg0, valability: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("payFeeAndFundEGLD") .argument(&address) @@ -158,7 +163,7 @@ where self, address: Arg0, valability: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("fund") .argument(&address) @@ -171,7 +176,7 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("depositFees") .argument(&address) @@ -183,8 +188,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("withdraw") .argument(&address) .original_result() @@ -197,8 +203,9 @@ where self, address: Arg0, signature: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("claim") .argument(&address) .argument(&signature) @@ -214,7 +221,7 @@ where address: Arg0, forward_address: Arg1, signature: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward") .argument(&address) @@ -228,8 +235,9 @@ where >( self, donor: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("deposit") .argument(&donor) .original_result() diff --git a/contracts/examples/multisig/src/multisig_proxy.rs b/contracts/examples/multisig/src/multisig_proxy.rs index 6f789f298a..d3a3e32e0e 100644 --- a/contracts/examples/multisig/src/multisig_proxy.rs +++ b/contracts/examples/multisig/src/multisig_proxy.rs @@ -50,8 +50,9 @@ where self, quorum: Arg0, board: Arg1, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&quorum) .argument(&board) @@ -75,8 +76,9 @@ where self, quorum: Arg0, board: Arg1, - ) -> TxProxyUpgrade { + ) -> TxTypedUpgrade { self.wrapped_tx + .payment(NotPayable) .raw_upgrade() .argument(&quorum) .argument(&board) @@ -96,7 +98,7 @@ where /// Allows the contract to receive funds even if it is marked as unpayable in the protocol. pub fn deposit( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("deposit") .original_result() @@ -109,8 +111,9 @@ where /// - (number of signers followed by) list of signer addresses. pub fn get_pending_action_full_info( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("getPendingActionFullInfo") .original_result() } @@ -124,8 +127,9 @@ where self, user: Arg0, action_id: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("signed") .argument(&user) .argument(&action_id) @@ -141,8 +145,9 @@ where >( self, user: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("userRole") .argument(&user) .original_result() @@ -151,8 +156,9 @@ where /// Lists all users that can sign actions. pub fn get_all_board_members( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("getAllBoardMembers") .original_result() } @@ -160,8 +166,9 @@ where /// Lists all proposers that are not board members. pub fn get_all_proposers( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("getAllProposers") .original_result() } @@ -172,8 +179,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("sign") .argument(&action_id) .original_result() @@ -186,8 +194,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("unsign") .argument(&action_id) .original_result() @@ -201,8 +210,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("discardAction") .argument(&action_id) .original_result() @@ -211,8 +221,9 @@ where /// Minimum number of signatures needed to perform any action. pub fn quorum( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getQuorum") .original_result() } @@ -221,8 +232,9 @@ where /// It is kept in sync with the user list by the contract. pub fn num_board_members( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getNumBoardMembers") .original_result() } @@ -231,8 +243,9 @@ where /// It is kept in sync with the user list by the contract. pub fn num_proposers( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getNumProposers") .original_result() } @@ -241,8 +254,9 @@ where /// 0 means that no action was ever proposed yet. pub fn get_action_last_index( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getActionLastIndex") .original_result() } @@ -253,8 +267,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getActionData") .argument(&action_id) .original_result() @@ -268,8 +283,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("getActionSigners") .argument(&action_id) .original_result() @@ -282,8 +298,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getActionSignerCount") .argument(&action_id) .original_result() @@ -299,8 +316,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getActionValidSignerCount") .argument(&action_id) .original_result() @@ -313,8 +331,9 @@ where >( self, board_member_address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("proposeAddBoardMember") .argument(&board_member_address) .original_result() @@ -327,8 +346,9 @@ where >( self, proposer_address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("proposeAddProposer") .argument(&proposer_address) .original_result() @@ -340,8 +360,9 @@ where >( self, user_address: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("proposeRemoveUser") .argument(&user_address) .original_result() @@ -352,8 +373,9 @@ where >( self, new_quorum: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("proposeChangeQuorum") .argument(&new_quorum) .original_result() @@ -372,8 +394,9 @@ where to: Arg0, egld_amount: Arg1, function_call: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("proposeTransferExecute") .argument(&to) .argument(&egld_amount) @@ -395,8 +418,9 @@ where to: Arg0, egld_amount: Arg1, function_call: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("proposeAsyncCall") .argument(&to) .argument(&egld_amount) @@ -415,8 +439,9 @@ where source: Arg1, code_metadata: Arg2, arguments: Arg3, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("proposeSCDeployFromSource") .argument(&amount) .argument(&source) @@ -438,8 +463,9 @@ where source: Arg2, code_metadata: Arg3, arguments: Arg4, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("proposeSCUpgradeFromSource") .argument(&sc_address) .argument(&amount) @@ -455,8 +481,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("quorumReached") .argument(&action_id) .original_result() @@ -468,8 +495,9 @@ where >( self, action_id: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("performAction") .argument(&action_id) .original_result() @@ -482,7 +510,7 @@ where self, dns_address: Arg0, name: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("dnsRegister") .argument(&dns_address) diff --git a/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs b/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs index 83ec15b473..68ddd7800f 100644 --- a/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs +++ b/contracts/examples/rewards-distribution/src/rewards_distribution_proxy.rs @@ -50,8 +50,9 @@ where self, seed_nft_minter_address: Arg0, brackets: Arg1, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&seed_nft_minter_address) .argument(&brackets) @@ -70,7 +71,7 @@ where { pub fn deposit_royalties( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("depositRoyalties") .original_result() @@ -78,8 +79,9 @@ where pub fn raffle( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("raffle") .original_result() } @@ -93,7 +95,7 @@ where raffle_id_start: Arg0, raffle_id_end: Arg1, reward_tokens: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("claimRewards") .argument(&raffle_id_start) @@ -113,8 +115,9 @@ where reward_token_id: Arg1, reward_token_nonce: Arg2, nft_nonce: Arg3, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("computeClaimableAmount") .argument(&raffle_id) .argument(&reward_token_id) @@ -125,16 +128,18 @@ where pub fn raffle_id( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getRaffleId") .original_result() } pub fn completed_raffle_id_count( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getCompletedRaffleIdCount") .original_result() } @@ -148,8 +153,9 @@ where raffle_id: Arg0, reward_token_id: Arg1, reward_token_nonce: Arg2, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getRoyalties") .argument(&raffle_id) .argument(&reward_token_id) @@ -164,8 +170,9 @@ where self, raffle_id: Arg0, nft_nonce: Arg1, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getNftRewardPercent") .argument(&raffle_id) .argument(&nft_nonce) @@ -183,8 +190,9 @@ where reward_token_id: Arg1, reward_token_nonce: Arg2, nft_nonce: Arg3, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getWasClaimed") .argument(&raffle_id) .argument(&reward_token_id) @@ -195,32 +203,36 @@ where pub fn seed_nft_minter_address( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getSeedNftMinterAddress") .original_result() } pub fn brackets( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getBrackets") .original_result() } pub fn last_raffle_epoch( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getLastRaffleEpoch") .original_result() } pub fn nft_token_id( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getNftTokenId") .original_result() } diff --git a/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs b/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs index 84349daae7..e25ef3fa44 100644 --- a/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs +++ b/contracts/examples/rewards-distribution/src/seed_nft_minter_proxy.rs @@ -50,8 +50,9 @@ where self, marketplaces: Arg0, distribution: Arg1, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&marketplaces) .argument(&distribution) @@ -83,8 +84,9 @@ where selling_price: Arg3, opt_token_used_as_payment: Arg4, opt_token_used_as_payment_nonce: Arg5, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("createNft") .argument(&name) .argument(&royalties) @@ -102,8 +104,9 @@ where self, token_id: Arg0, token_nonce: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("claimAndDistribute") .argument(&token_id) .argument(&token_nonce) @@ -112,24 +115,27 @@ where pub fn marketplaces( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("getMarketplaces") .original_result() } pub fn nft_count( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getNftCount") .original_result() } pub fn distribution_rules( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("getDistributionRules") .original_result() } @@ -141,7 +147,7 @@ where self, token_display_name: Arg0, token_ticker: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("issueToken") .argument(&token_display_name) @@ -154,7 +160,7 @@ where >( self, nft_nonce: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("buyNft") .argument(&nft_nonce) @@ -166,8 +172,9 @@ where >( self, nft_nonce: Arg0, - ) -> TxProxyCall, u64, BigUint>>> { + ) -> TxTypedCall, u64, BigUint>>> { self.wrapped_tx + .payment(NotPayable) .raw_call("getNftPrice") .argument(&nft_nonce) .original_result() @@ -175,8 +182,9 @@ where pub fn nft_token_id( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getNftTokenId") .original_result() } diff --git a/contracts/feature-tests/abi-tester/src/abi_proxy.rs b/contracts/feature-tests/abi-tester/src/abi_proxy.rs index f02412c39d..55f3a6e6ef 100644 --- a/contracts/feature-tests/abi-tester/src/abi_proxy.rs +++ b/contracts/feature-tests/abi-tester/src/abi_proxy.rs @@ -51,7 +51,7 @@ where self, _constructor_arg_1: Arg0, _constructor_arg_2: Arg1, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx .raw_deploy() .argument(&_constructor_arg_1) @@ -77,8 +77,9 @@ where self, _constructor_arg_1: Arg0, _constructor_arg_2: Arg1, - ) -> TxProxyUpgrade { + ) -> TxTypedUpgrade { self.wrapped_tx + .payment(NotPayable) .raw_upgrade() .argument(&_constructor_arg_1) .argument(&_constructor_arg_2) @@ -101,8 +102,9 @@ where >( self, att: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_abi_test_type") .argument(&att) .original_result() @@ -113,8 +115,9 @@ where >( self, e: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_enum") .argument(&e) .original_result() @@ -125,8 +128,9 @@ where >( self, _arg: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("take_managed_type") .argument(&_arg) .original_result() @@ -134,16 +138,18 @@ where pub fn multi_result_3( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("multi_result_3") .original_result() } pub fn multi_result_4( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("multi_result_4") .original_result() } @@ -155,8 +161,9 @@ where self, _simple_arg: Arg0, _var_args: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("var_args") .argument(&_simple_arg) .argument(&_var_args) @@ -165,8 +172,9 @@ where pub fn multi_result_vec( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("multi_result_vec") .original_result() } @@ -178,8 +186,9 @@ where self, _simple_arg: Arg0, _opt_args: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("optional_arg") .argument(&_simple_arg) .argument(&_opt_args) @@ -188,8 +197,9 @@ where pub fn optional_result( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("optional_result") .original_result() } @@ -201,8 +211,9 @@ where self, address: Arg0, h256: Arg1, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("address_vs_h256") .argument(&address) .argument(&h256) @@ -216,8 +227,9 @@ where self, address: Arg0, byte_array: Arg1, - ) -> TxProxyCall, ManagedByteArray>> { + ) -> TxTypedCall, ManagedByteArray>> { self.wrapped_tx + .payment(NotPayable) .raw_call("managed_address_vs_byte_array") .argument(&address) .argument(&byte_array) @@ -226,56 +238,63 @@ where pub fn esdt_local_role( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("esdt_local_role") .original_result() } pub fn esdt_token_payment( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("esdt_token_payment") .original_result() } pub fn esdt_token_data( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("esdt_token_data") .original_result() } pub fn sample_storage_mapper( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("sample_storage_mapper") .original_result() } pub fn item_for_vec( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_vec") .original_result() } pub fn item_for_array_vec( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_array_vec") .original_result() } pub fn item_for_managed_vec( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_managed_vec") .original_result() } @@ -285,8 +304,9 @@ where >( self, _array: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_array") .argument(&_array) .original_result() @@ -294,16 +314,18 @@ where pub fn item_for_box( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_box") .original_result() } pub fn item_for_boxed_slice( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_boxed_slice") .original_result() } @@ -313,8 +335,9 @@ where >( self, _ref: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_ref") .argument(&_ref) .original_result() @@ -325,8 +348,9 @@ where >( self, _ref: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_slice") .argument(&_ref) .original_result() @@ -334,23 +358,25 @@ where pub fn item_for_option( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("item_for_option") .original_result() } pub fn operation_completion_status( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("operation_completion_status") .original_result() } pub fn payable_egld( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("payable_egld") .original_result() @@ -358,7 +384,7 @@ where pub fn payable_some_token( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("payable_some_token") .original_result() @@ -366,7 +392,7 @@ where pub fn payable_any_token( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("payable_any_token") .original_result() @@ -374,24 +400,27 @@ where pub fn external_view( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("external_view") .original_result() } pub fn label_a( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("label_a") .original_result() } pub fn label_b( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("label_b") .original_result() } diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/child_proxy.rs b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/child_proxy.rs index b4808f8eba..3f60b0cc2e 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/child_proxy.rs +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/src/child_proxy.rs @@ -45,8 +45,9 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .original_result() } @@ -70,7 +71,7 @@ where token_display_name: Arg0, token_ticker: Arg1, initial_supply: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("issueWrappedEgld") .argument(&token_display_name) @@ -81,8 +82,9 @@ where pub fn wrapped_egld_token_identifier( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getWrappedEgldTokenIdentifier") .original_result() } diff --git a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs index c5e53db05d..156241596d 100644 --- a/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs +++ b/contracts/feature-tests/composability/forwarder/src/forwarder_proxy.rs @@ -45,8 +45,9 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .original_result() } @@ -68,8 +69,9 @@ where self, to: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("send_egld") .argument(&to) .argument(&amount) @@ -83,7 +85,7 @@ where self, to: Arg0, args: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("echo_arguments_sync") .argument(&to) @@ -98,7 +100,7 @@ where self, to: Arg0, args: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("echo_arguments_sync_twice") .argument(&to) @@ -111,7 +113,7 @@ where >( self, to: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_sync_accept_funds") .argument(&to) @@ -125,7 +127,7 @@ where self, to: Arg0, percentage_fees: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_sync_accept_funds_with_fees") .argument(&to) @@ -138,7 +140,7 @@ where >( self, to: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_sync_accept_funds_then_read") .argument(&to) @@ -156,8 +158,9 @@ where token: Arg1, token_nonce: Arg2, amount: Arg3, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("forward_sync_retrieve_funds") .argument(&to) .argument(&token) @@ -175,7 +178,7 @@ where to: Arg0, token: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_sync_retrieve_funds_with_accept_func") .argument(&to) @@ -186,7 +189,7 @@ where pub fn accept_funds_func( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("accept_funds_func") .original_result() @@ -199,8 +202,9 @@ where self, to: Arg0, token_payments: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("forward_sync_accept_funds_multi_transfer") .argument(&to) .argument(&token_payments) @@ -214,8 +218,9 @@ where self, to: Arg0, args: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_args_async") .argument(&to) .argument(&args) @@ -227,7 +232,7 @@ where >( self, to: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_async_accept_funds") .argument(&to) @@ -239,7 +244,7 @@ where >( self, to: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_async_accept_funds_half_payment") .argument(&to) @@ -253,7 +258,7 @@ where self, to: Arg0, percentage_fees: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_async_accept_funds_with_fees") .argument(&to) @@ -272,8 +277,9 @@ where token: Arg1, token_nonce: Arg2, amount: Arg3, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("forward_async_retrieve_funds") .argument(&to) .argument(&token) @@ -291,8 +297,9 @@ where to: Arg0, token_identifier: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("send_funds_twice") .argument(&to) .argument(&token_identifier) @@ -307,8 +314,9 @@ where self, to: Arg0, token_payments: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("send_async_accept_multi_transfer") .argument(&to) .argument(&token_payments) @@ -317,8 +325,9 @@ where pub fn callback_data( self, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("callback_data") .original_result() } @@ -328,8 +337,9 @@ where >( self, index: Arg0, - ) -> TxProxyCall, EgldOrEsdtTokenIdentifier, u64, BigUint, MultiValueManagedVec>>> { + ) -> TxTypedCall, EgldOrEsdtTokenIdentifier, u64, BigUint, MultiValueManagedVec>>> { self.wrapped_tx + .payment(NotPayable) .raw_call("callback_data_at_index") .argument(&index) .original_result() @@ -337,8 +347,9 @@ where pub fn clear_callback_data( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("clear_callback_data") .original_result() } @@ -348,7 +359,7 @@ where >( self, to: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_transf_exec_accept_funds") .argument(&to) @@ -362,7 +373,7 @@ where self, to: Arg0, percentage_fees: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_transf_execu_accept_funds_with_fees") .argument(&to) @@ -375,7 +386,7 @@ where >( self, to: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("forward_transf_exec_accept_funds_twice") .argument(&to) @@ -389,7 +400,7 @@ where >( self, to: Arg0, - ) -> TxProxyCall, EgldOrEsdtTokenIdentifier>> { + ) -> TxTypedCall, EgldOrEsdtTokenIdentifier>> { self.wrapped_tx .raw_call("forward_transf_exec_accept_funds_return_values") .argument(&to) @@ -403,8 +414,9 @@ where self, to: Arg0, token_payments: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transf_exec_multi_accept_funds") .argument(&to) .argument(&token_payments) @@ -418,8 +430,9 @@ where self, to: Arg0, token_payments: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("forward_transf_exec_reject_funds_multi_transfer") .argument(&to) .argument(&token_payments) @@ -433,8 +446,9 @@ where self, to: Arg0, token_payments: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transf_exec_multi_reject_funds") .argument(&to) .argument(&token_payments) @@ -448,8 +462,9 @@ where self, child_sc_address: Arg0, new_owner: Arg1, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("changeOwnerAddress") .argument(&child_sc_address) .argument(&new_owner) @@ -463,8 +478,9 @@ where self, code: Arg0, opt_arg: Arg1, - ) -> TxProxyCall, OptionalValue>>> { + ) -> TxTypedCall, OptionalValue>>> { self.wrapped_tx + .payment(NotPayable) .raw_call("deploy_contract") .argument(&code) .argument(&opt_arg) @@ -476,8 +492,9 @@ where >( self, code: Arg0, - ) -> TxProxyCall, ManagedAddress>> { + ) -> TxTypedCall, ManagedAddress>> { self.wrapped_tx + .payment(NotPayable) .raw_call("deploy_two_contracts") .argument(&code) .original_result() @@ -490,8 +507,9 @@ where self, source_address: Arg0, opt_arg: Arg1, - ) -> TxProxyCall, OptionalValue>>> { + ) -> TxTypedCall, OptionalValue>>> { self.wrapped_tx + .payment(NotPayable) .raw_call("deploy_vault_from_source") .argument(&source_address) .argument(&opt_arg) @@ -507,8 +525,9 @@ where child_sc_address: Arg0, new_code: Arg1, opt_arg: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("upgradeVault") .argument(&child_sc_address) .argument(&new_code) @@ -525,8 +544,9 @@ where child_sc_address: Arg0, source_address: Arg1, opt_arg: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("upgrade_vault_from_source") .argument(&child_sc_address) .argument(&source_address) @@ -539,8 +559,9 @@ where >( self, token_identifier: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getFungibleEsdtBalance") .argument(&token_identifier) .original_result() @@ -551,8 +572,9 @@ where >( self, token_identifier: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getCurrentNftNonce") .argument(&token_identifier) .original_result() @@ -567,8 +589,9 @@ where to: Arg0, token_id: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("send_esdt") .argument(&to) .argument(&token_id) @@ -583,7 +606,7 @@ where self, to: Arg0, percentage_fees: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("send_esdt_with_fees") .argument(&to) @@ -602,8 +625,9 @@ where token_id: Arg1, amount_first_time: Arg2, amount_second_time: Arg3, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("send_esdt_twice") .argument(&to) .argument(&token_id) @@ -619,8 +643,9 @@ where self, to: Arg0, token_payments: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("send_esdt_direct_multi_transfer") .argument(&to) .argument(&token_payments) @@ -636,7 +661,7 @@ where token_display_name: Arg0, token_ticker: Arg1, initial_supply: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("issue_fungible_token") .argument(&token_display_name) @@ -652,8 +677,9 @@ where self, token_identifier: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("local_mint") .argument(&token_identifier) .argument(&amount) @@ -667,8 +693,9 @@ where self, token_identifier: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("local_burn") .argument(&token_identifier) .argument(&amount) @@ -680,8 +707,9 @@ where >( self, token_id: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("get_esdt_local_roles") .argument(&token_id) .original_result() @@ -696,8 +724,9 @@ where address: Arg0, token_id: Arg1, nonce: Arg2, - ) -> TxProxyCall, bool, ManagedBuffer, ManagedBuffer, ManagedBuffer, ManagedAddress, BigUint, ManagedVec>>> { + ) -> TxTypedCall, bool, ManagedBuffer, ManagedBuffer, ManagedBuffer, ManagedAddress, BigUint, ManagedVec>>> { self.wrapped_tx + .payment(NotPayable) .raw_call("get_esdt_token_data") .argument(&address) .argument(&token_id) @@ -714,8 +743,9 @@ where address: Arg0, token_id: Arg1, nonce: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("is_esdt_frozen") .argument(&address) .argument(&token_id) @@ -728,8 +758,9 @@ where >( self, token_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("is_esdt_paused") .argument(&token_id) .original_result() @@ -740,8 +771,9 @@ where >( self, token_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("is_esdt_limited_transfer") .argument(&token_id) .original_result() @@ -752,8 +784,9 @@ where >( self, token_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("validate_token_identifier") .argument(&token_id) .original_result() @@ -766,7 +799,7 @@ where self, token_display_name: Arg0, token_ticker: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("sft_issue") .argument(&token_display_name) @@ -781,8 +814,9 @@ where self, token_identifier: Arg0, nonce: Arg1, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("get_nft_balance") .argument(&token_identifier) .argument(&nonce) @@ -798,7 +832,7 @@ where nft_id: Arg0, nft_nonce: Arg1, nft_amount: Arg2, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx .raw_call("buy_nft") .argument(&nft_id) @@ -814,7 +848,7 @@ where self, token_display_name: Arg0, token_ticker: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("nft_issue") .argument(&token_display_name) @@ -839,8 +873,9 @@ where hash: Arg4, color: Arg5, uri: Arg6, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("nft_create") .argument(&token_identifier) .argument(&amount) @@ -861,8 +896,9 @@ where token_identifier: Arg0, amount: Arg1, color: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("nft_create_compact") .argument(&token_identifier) .argument(&amount) @@ -879,8 +915,9 @@ where token_identifier: Arg0, nonce: Arg1, uris: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("nft_add_uris") .argument(&token_identifier) .argument(&nonce) @@ -897,8 +934,9 @@ where token_identifier: Arg0, nonce: Arg1, new_attributes: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("nft_update_attributes") .argument(&token_identifier) .argument(&nonce) @@ -923,8 +961,9 @@ where hash: Arg4, uri: Arg5, attrs_arg: Arg6, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("nft_decode_complex_attributes") .argument(&token_identifier) .argument(&amount) @@ -945,8 +984,9 @@ where token_identifier: Arg0, nonce: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("nft_add_quantity") .argument(&token_identifier) .argument(&nonce) @@ -963,8 +1003,9 @@ where token_identifier: Arg0, nonce: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("nft_burn") .argument(&token_identifier) .argument(&nonce) @@ -983,8 +1024,9 @@ where token_identifier: Arg1, nonce: Arg2, amount: Arg3, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transfer_nft_via_async_call") .argument(&to) .argument(&token_identifier) @@ -1008,8 +1050,9 @@ where amount: Arg3, function: Arg4, arguments: Arg5, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transfer_nft_and_execute") .argument(&to) .argument(&token_identifier) @@ -1039,8 +1082,9 @@ where hash: Arg5, color: Arg6, uri: Arg7, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("create_and_send") .argument(&to) .argument(&token_identifier) @@ -1062,8 +1106,9 @@ where address: Arg0, token_identifier: Arg1, roles: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("setLocalRoles") .argument(&address) .argument(&token_identifier) @@ -1080,8 +1125,9 @@ where address: Arg0, token_identifier: Arg1, roles: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("unsetLocalRoles") .argument(&address) .argument(&token_identifier) @@ -1091,16 +1137,18 @@ where pub fn last_issued_token( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("lastIssuedToken") .original_result() } pub fn last_error_message( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("lastErrorMessage") .original_result() } diff --git a/contracts/feature-tests/composability/forwarder/src/vault_proxy.rs b/contracts/feature-tests/composability/forwarder/src/vault_proxy.rs index c43f59c36a..24e6f12e69 100644 --- a/contracts/feature-tests/composability/forwarder/src/vault_proxy.rs +++ b/contracts/feature-tests/composability/forwarder/src/vault_proxy.rs @@ -48,8 +48,9 @@ where >( self, opt_arg_to_echo: Arg0, - ) -> TxProxyDeploy>> { + ) -> TxTypedDeploy>> { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&opt_arg_to_echo) .original_result() @@ -70,8 +71,9 @@ where >( self, opt_arg_to_echo: Arg0, - ) -> TxProxyUpgrade>>> { + ) -> TxTypedUpgrade>>> { self.wrapped_tx + .payment(NotPayable) .raw_upgrade() .argument(&opt_arg_to_echo) .original_result() @@ -92,8 +94,9 @@ where >( self, args: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_arguments") .argument(&args) .original_result() @@ -104,8 +107,9 @@ where >( self, args: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_arguments_without_storage") .argument(&args) .original_result() @@ -113,15 +117,16 @@ where pub fn echo_caller( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_caller") .original_result() } pub fn accept_funds( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("accept_funds") .original_result() @@ -129,7 +134,7 @@ where pub fn accept_funds_echo_payment( self, - ) -> TxProxyCall, MultiValueEncoded>>> { + ) -> TxTypedCall, MultiValueEncoded>>> { self.wrapped_tx .raw_call("accept_funds_echo_payment") .original_result() @@ -137,7 +142,7 @@ where pub fn accept_funds_single_esdt_transfer( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("accept_funds_single_esdt_transfer") .original_result() @@ -145,7 +150,7 @@ where pub fn reject_funds( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("reject_funds") .original_result() @@ -160,7 +165,7 @@ where token: Arg0, amount: Arg1, opt_receive_func: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("retrieve_funds_with_transfer_exec") .argument(&token) @@ -176,7 +181,7 @@ where self, back_transfers: Arg0, back_transfer_value: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("retrieve_funds_promises") .argument(&back_transfers) @@ -193,8 +198,9 @@ where token: Arg0, nonce: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("retrieve_funds") .argument(&token) .argument(&nonce) @@ -207,8 +213,9 @@ where >( self, token_payments: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("retrieve_multi_funds_async") .argument(&token_payments) .original_result() @@ -216,7 +223,7 @@ where pub fn burn_and_create_retrieve_async( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("burn_and_create_retrieve_async") .original_result() @@ -224,8 +231,9 @@ where pub fn get_owner_address( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("get_owner_address") .original_result() } @@ -237,8 +245,9 @@ where >( self, endpoint: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("call_counts") .argument(&endpoint) .original_result() @@ -246,16 +255,18 @@ where pub fn num_called_retrieve_funds_promises( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("num_called_retrieve_funds_promises") .original_result() } pub fn num_async_calls_sent_from_child( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("num_async_calls_sent_from_child") .original_result() } diff --git a/contracts/feature-tests/composability/promises-features/src/vault_proxy.rs b/contracts/feature-tests/composability/promises-features/src/vault_proxy.rs index c43f59c36a..24e6f12e69 100644 --- a/contracts/feature-tests/composability/promises-features/src/vault_proxy.rs +++ b/contracts/feature-tests/composability/promises-features/src/vault_proxy.rs @@ -48,8 +48,9 @@ where >( self, opt_arg_to_echo: Arg0, - ) -> TxProxyDeploy>> { + ) -> TxTypedDeploy>> { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&opt_arg_to_echo) .original_result() @@ -70,8 +71,9 @@ where >( self, opt_arg_to_echo: Arg0, - ) -> TxProxyUpgrade>>> { + ) -> TxTypedUpgrade>>> { self.wrapped_tx + .payment(NotPayable) .raw_upgrade() .argument(&opt_arg_to_echo) .original_result() @@ -92,8 +94,9 @@ where >( self, args: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_arguments") .argument(&args) .original_result() @@ -104,8 +107,9 @@ where >( self, args: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_arguments_without_storage") .argument(&args) .original_result() @@ -113,15 +117,16 @@ where pub fn echo_caller( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_caller") .original_result() } pub fn accept_funds( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("accept_funds") .original_result() @@ -129,7 +134,7 @@ where pub fn accept_funds_echo_payment( self, - ) -> TxProxyCall, MultiValueEncoded>>> { + ) -> TxTypedCall, MultiValueEncoded>>> { self.wrapped_tx .raw_call("accept_funds_echo_payment") .original_result() @@ -137,7 +142,7 @@ where pub fn accept_funds_single_esdt_transfer( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("accept_funds_single_esdt_transfer") .original_result() @@ -145,7 +150,7 @@ where pub fn reject_funds( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("reject_funds") .original_result() @@ -160,7 +165,7 @@ where token: Arg0, amount: Arg1, opt_receive_func: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("retrieve_funds_with_transfer_exec") .argument(&token) @@ -176,7 +181,7 @@ where self, back_transfers: Arg0, back_transfer_value: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("retrieve_funds_promises") .argument(&back_transfers) @@ -193,8 +198,9 @@ where token: Arg0, nonce: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("retrieve_funds") .argument(&token) .argument(&nonce) @@ -207,8 +213,9 @@ where >( self, token_payments: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("retrieve_multi_funds_async") .argument(&token_payments) .original_result() @@ -216,7 +223,7 @@ where pub fn burn_and_create_retrieve_async( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("burn_and_create_retrieve_async") .original_result() @@ -224,8 +231,9 @@ where pub fn get_owner_address( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("get_owner_address") .original_result() } @@ -237,8 +245,9 @@ where >( self, endpoint: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("call_counts") .argument(&endpoint) .original_result() @@ -246,16 +255,18 @@ where pub fn num_called_retrieve_funds_promises( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("num_called_retrieve_funds_promises") .original_result() } pub fn num_async_calls_sent_from_child( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("num_async_calls_sent_from_child") .original_result() } diff --git a/contracts/feature-tests/composability/recursive-caller/src/self_proxy.rs b/contracts/feature-tests/composability/recursive-caller/src/self_proxy.rs index 7fd86a1c8f..6e55b345df 100644 --- a/contracts/feature-tests/composability/recursive-caller/src/self_proxy.rs +++ b/contracts/feature-tests/composability/recursive-caller/src/self_proxy.rs @@ -45,8 +45,9 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .original_result() } @@ -72,8 +73,9 @@ where token_identifier: Arg1, amount: Arg2, counter: Arg3, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("recursive_send_funds") .argument(&to) .argument(&token_identifier) diff --git a/contracts/feature-tests/composability/recursive-caller/src/vault_proxy.rs b/contracts/feature-tests/composability/recursive-caller/src/vault_proxy.rs index c43f59c36a..24e6f12e69 100644 --- a/contracts/feature-tests/composability/recursive-caller/src/vault_proxy.rs +++ b/contracts/feature-tests/composability/recursive-caller/src/vault_proxy.rs @@ -48,8 +48,9 @@ where >( self, opt_arg_to_echo: Arg0, - ) -> TxProxyDeploy>> { + ) -> TxTypedDeploy>> { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&opt_arg_to_echo) .original_result() @@ -70,8 +71,9 @@ where >( self, opt_arg_to_echo: Arg0, - ) -> TxProxyUpgrade>>> { + ) -> TxTypedUpgrade>>> { self.wrapped_tx + .payment(NotPayable) .raw_upgrade() .argument(&opt_arg_to_echo) .original_result() @@ -92,8 +94,9 @@ where >( self, args: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_arguments") .argument(&args) .original_result() @@ -104,8 +107,9 @@ where >( self, args: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_arguments_without_storage") .argument(&args) .original_result() @@ -113,15 +117,16 @@ where pub fn echo_caller( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("echo_caller") .original_result() } pub fn accept_funds( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("accept_funds") .original_result() @@ -129,7 +134,7 @@ where pub fn accept_funds_echo_payment( self, - ) -> TxProxyCall, MultiValueEncoded>>> { + ) -> TxTypedCall, MultiValueEncoded>>> { self.wrapped_tx .raw_call("accept_funds_echo_payment") .original_result() @@ -137,7 +142,7 @@ where pub fn accept_funds_single_esdt_transfer( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("accept_funds_single_esdt_transfer") .original_result() @@ -145,7 +150,7 @@ where pub fn reject_funds( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("reject_funds") .original_result() @@ -160,7 +165,7 @@ where token: Arg0, amount: Arg1, opt_receive_func: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("retrieve_funds_with_transfer_exec") .argument(&token) @@ -176,7 +181,7 @@ where self, back_transfers: Arg0, back_transfer_value: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("retrieve_funds_promises") .argument(&back_transfers) @@ -193,8 +198,9 @@ where token: Arg0, nonce: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("retrieve_funds") .argument(&token) .argument(&nonce) @@ -207,8 +213,9 @@ where >( self, token_payments: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("retrieve_multi_funds_async") .argument(&token_payments) .original_result() @@ -216,7 +223,7 @@ where pub fn burn_and_create_retrieve_async( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("burn_and_create_retrieve_async") .original_result() @@ -224,8 +231,9 @@ where pub fn get_owner_address( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("get_owner_address") .original_result() } @@ -237,8 +245,9 @@ where >( self, endpoint: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("call_counts") .argument(&endpoint) .original_result() @@ -246,16 +255,18 @@ where pub fn num_called_retrieve_funds_promises( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("num_called_retrieve_funds_promises") .original_result() } pub fn num_async_calls_sent_from_child( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("num_async_calls_sent_from_child") .original_result() } diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/erc20_proxy.rs b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/erc20_proxy.rs index eaceb1da73..cda5046b56 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/erc20_proxy.rs +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/src/erc20_proxy.rs @@ -50,8 +50,9 @@ where >( self, total_supply: Arg0, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&total_supply) .original_result() @@ -70,8 +71,9 @@ where /// Total number of tokens in existence. pub fn total_supply( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("totalSupply") .original_result() } @@ -87,8 +89,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("balanceOf") .argument(&address) .original_result() @@ -108,8 +111,9 @@ where self, owner: Arg0, spender: Arg1, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("allowance") .argument(&owner) .argument(&spender) @@ -129,8 +133,9 @@ where self, to: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transfer") .argument(&to) .argument(&amount) @@ -154,8 +159,9 @@ where sender: Arg0, recipient: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transferFrom") .argument(&sender) .argument(&recipient) @@ -178,8 +184,9 @@ where self, spender: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("approve") .argument(&spender) .argument(&amount) diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/erc1155_proxy.rs b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/erc1155_proxy.rs index 899a036f41..f3fdd90854 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/erc1155_proxy.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/src/erc1155_proxy.rs @@ -45,8 +45,9 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .original_result() } @@ -75,8 +76,9 @@ where type_id: Arg2, value: Arg3, data: Arg4, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("safeTransferFrom") .argument(&from) .argument(&to) @@ -100,8 +102,9 @@ where type_ids: Arg2, values: Arg3, data: Arg4, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("safeBatchTransferFrom") .argument(&from) .argument(&to) @@ -118,8 +121,9 @@ where self, operator: Arg0, approved: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("setApprovalForAll") .argument(&operator) .argument(&approved) @@ -135,8 +139,9 @@ where uri: Arg0, initial_supply: Arg1, is_fungible: Arg2, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("createToken") .argument(&uri) .argument(&initial_supply) @@ -151,8 +156,9 @@ where self, type_id: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("mint") .argument(&type_id) .argument(&amount) @@ -166,8 +172,9 @@ where self, type_id: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("burn") .argument(&type_id) .argument(&amount) @@ -181,8 +188,9 @@ where self, owner: Arg0, type_id: Arg1, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("balanceOf") .argument(&owner) .argument(&type_id) @@ -194,8 +202,9 @@ where >( self, owner_type_id_pairs: Arg0, - ) -> TxProxyCall>> { + ) -> TxTypedCall>> { self.wrapped_tx + .payment(NotPayable) .raw_call("balanceOfBatch") .argument(&owner_type_id_pairs) .original_result() @@ -208,8 +217,9 @@ where self, type_id: Arg0, nft_id: Arg1, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getTokenOwner") .argument(&type_id) .argument(&nft_id) @@ -221,8 +231,9 @@ where >( self, type_id: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getTokenTypeCreator") .argument(&type_id) .original_result() @@ -233,8 +244,9 @@ where >( self, type_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("getTokenTypeUri") .argument(&type_id) .original_result() @@ -245,8 +257,9 @@ where >( self, type_id: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("isFungible") .argument(&type_id) .original_result() @@ -259,8 +272,9 @@ where self, operator: Arg0, owner: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("isApprovedForAll") .argument(&operator) .argument(&owner) diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/erc20_proxy.rs b/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/erc20_proxy.rs index eaceb1da73..cda5046b56 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/erc20_proxy.rs +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/src/erc20_proxy.rs @@ -50,8 +50,9 @@ where >( self, total_supply: Arg0, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&total_supply) .original_result() @@ -70,8 +71,9 @@ where /// Total number of tokens in existence. pub fn total_supply( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("totalSupply") .original_result() } @@ -87,8 +89,9 @@ where >( self, address: Arg0, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("balanceOf") .argument(&address) .original_result() @@ -108,8 +111,9 @@ where self, owner: Arg0, spender: Arg1, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("allowance") .argument(&owner) .argument(&spender) @@ -129,8 +133,9 @@ where self, to: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transfer") .argument(&to) .argument(&amount) @@ -154,8 +159,9 @@ where sender: Arg0, recipient: Arg1, amount: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transferFrom") .argument(&sender) .argument(&recipient) @@ -178,8 +184,9 @@ where self, spender: Arg0, amount: Arg1, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("approve") .argument(&spender) .argument(&amount) diff --git a/contracts/feature-tests/panic-message-features/tests/pmf_proxy.rs b/contracts/feature-tests/panic-message-features/tests/pmf_proxy.rs index 6e4c6e0cea..c8864f2d4b 100644 --- a/contracts/feature-tests/panic-message-features/tests/pmf_proxy.rs +++ b/contracts/feature-tests/panic-message-features/tests/pmf_proxy.rs @@ -45,8 +45,9 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .original_result() } @@ -66,8 +67,9 @@ where >( self, some_value: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("panicWithMessage") .argument(&some_value) .original_result() @@ -76,16 +78,18 @@ where /// Logs do not get recorded in case of panic. pub fn panic_after_log( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("panicAfterLog") .original_result() } pub fn sc_panic( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("sc_panic") .original_result() } diff --git a/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs b/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs index 3358a126e4..3de83d499d 100644 --- a/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs +++ b/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs @@ -48,8 +48,9 @@ where >( self, initial_value: Arg0, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx + .payment(NotPayable) .raw_deploy() .argument(&initial_value) .original_result() @@ -70,8 +71,9 @@ where >( self, initial_value: Arg0, - ) -> TxProxyUpgrade { + ) -> TxTypedUpgrade { self.wrapped_tx + .payment(NotPayable) .raw_upgrade() .argument(&initial_value) .original_result() @@ -89,8 +91,9 @@ where { pub fn sum( self, - ) -> TxProxyCall> { + ) -> TxTypedCall> { self.wrapped_tx + .payment(NotPayable) .raw_call("getSum") .original_result() } @@ -101,8 +104,9 @@ where >( self, value: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("add") .argument(&value) .original_result() From c0bc121ecc6e66f65ba594c469df87ed5ca3917f Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 00:23:35 +0300 Subject: [PATCH 163/185] unified syntax - with_normalized produces owned FunctionCall --- framework/base/src/types/interaction/tx_payment.rs | 2 +- .../src/types/interaction/tx_payment/tx_payment_egld.rs | 4 ++-- .../interaction/tx_payment/tx_payment_egld_or_esdt.rs | 4 ++-- .../tx_payment/tx_payment_egld_or_esdt_refs.rs | 2 +- .../tx_payment/tx_payment_egld_or_multi_esdt.rs | 4 ++-- .../tx_payment/tx_payment_egld_or_multi_esdt_ref.rs | 2 +- .../types/interaction/tx_payment/tx_payment_multi_esdt.rs | 8 ++++---- .../src/types/interaction/tx_payment/tx_payment_none.rs | 4 ++-- .../interaction/tx_payment/tx_payment_single_esdt.rs | 4 ++-- .../interaction/tx_payment/tx_payment_single_esdt_ref.rs | 6 +++--- .../tx_payment/tx_payment_single_esdt_triple.rs | 2 +- 11 files changed, 21 insertions(+), 21 deletions(-) diff --git a/framework/base/src/types/interaction/tx_payment.rs b/framework/base/src/types/interaction/tx_payment.rs index e72a5b9fa6..ea8400dab5 100644 --- a/framework/base/src/types/interaction/tx_payment.rs +++ b/framework/base/src/types/interaction/tx_payment.rs @@ -51,7 +51,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R; + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R; /// Payment data to be used by the testing framework. Will be refactored. fn into_full_payment_data(self, env: &Env) -> FullPaymentData; diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_egld.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_egld.rs index ad0969aca1..25c84c3339 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_egld.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_egld.rs @@ -53,11 +53,11 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { to.with_address_ref(env, |to_addr| { self.0 - .with_value_ref(env, |egld_value| f(to_addr, egld_value, &fc)) + .with_value_ref(env, |egld_value| f(to_addr, egld_value, fc)) }) } diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_esdt.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_esdt.rs index a4ac0577ff..b4a95f54ac 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_esdt.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_esdt.rs @@ -35,7 +35,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { self.map_ref_egld_or_esdt( (to, fc, f), @@ -82,7 +82,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { self.map_egld_or_esdt( (to, fc, f), diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_esdt_refs.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_esdt_refs.rs index fe0bc1352d..14f9058b55 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_esdt_refs.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_esdt_refs.rs @@ -35,7 +35,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { self.map_egld_or_esdt( (to, fc, f), diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_multi_esdt.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_multi_esdt.rs index 2538383494..79cd7f9f72 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_multi_esdt.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_multi_esdt.rs @@ -38,7 +38,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { match self { EgldOrMultiEsdtPayment::Egld(egld_amount) => { @@ -98,7 +98,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { match self { EgldOrMultiEsdtPayment::Egld(egld_amount) => { diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_multi_esdt_ref.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_multi_esdt_ref.rs index 2bce84e1ff..9d4eb6c20a 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_multi_esdt_ref.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_egld_or_multi_esdt_ref.rs @@ -38,7 +38,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { match self { EgldOrMultiEsdtPaymentRefs::Egld(egld_amount) => { diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_multi_esdt.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_multi_esdt.rs index 892fd2c114..c19dd98d4f 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_multi_esdt.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_multi_esdt.rs @@ -56,14 +56,14 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { match self.len() { 0 => ().with_normalized(env, from, to, fc, f), 1 => self.get(0).as_refs().with_normalized(env, from, to, fc, f), _ => to.with_address_ref(env, |to_addr| { let fc_conv = fc.convert_to_multi_transfer_esdt_call(to_addr, self); - f(&from.resolve_address(env), &BigUint::zero(), &fc_conv) + f(&from.resolve_address(env), &BigUint::zero(), fc_conv) }), } } @@ -106,7 +106,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { self.deref().with_normalized(env, from, to, fc, f) } @@ -145,7 +145,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { (&self).with_normalized(env, from, to, fc, f) } diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_none.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_none.rs index fe6016e43b..a7ad7c57dc 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_none.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_none.rs @@ -31,9 +31,9 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { - to.with_address_ref(env, |to_addr| f(to_addr, &BigUint::zero(), &fc)) + to.with_address_ref(env, |to_addr| f(to_addr, &BigUint::zero(), fc)) } fn into_full_payment_data(self, _env: &Env) -> FullPaymentData { diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt.rs index 975a5d0d78..4d329cbcf6 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt.rs @@ -34,7 +34,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { self.as_refs().with_normalized(env, from, to, fc, f) } @@ -80,7 +80,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { self.as_refs().with_normalized(env, from, to, fc, f) } diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt_ref.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt_ref.rs index bc5e2532a8..0ccc4b869a 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt_ref.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt_ref.rs @@ -57,15 +57,15 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { to.with_address_ref(env, |to_addr| { if self.token_nonce == 0 { let fc_conv = fc.convert_to_single_transfer_fungible_call(self); - f(to_addr, &BigUint::zero(), &fc_conv) + f(to_addr, &BigUint::zero(), fc_conv) } else { let fc_conv = fc.convert_to_single_transfer_nft_call(to_addr, self); - f(&from.resolve_address(env), &BigUint::zero(), &fc_conv) + f(&from.resolve_address(env), &BigUint::zero(), fc_conv) } }) } diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt_triple.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt_triple.rs index c49062eb27..0ef85acd7f 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt_triple.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_single_esdt_triple.rs @@ -33,7 +33,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { EsdtTokenPayment::from(self).with_normalized(env, from, to, fc, f) } From 504f70740d791cf0333dde4204c7b243c9c59287 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 00:52:52 +0300 Subject: [PATCH 164/185] multisig interactor - fixed wegld scenario --- Cargo.lock | 1 + contracts/core/wegld-swap/sc-config.toml | 2 + .../examples/multisig/interact/Cargo.toml | 4 + .../examples/multisig/interact/config.toml | 2 + .../interact/src/multisig_interact.rs | 9 +- .../interact/src/multisig_interact_config.rs | 25 ++-- .../interact/src/multisig_interact_wegld.rs | 45 +++--- .../multisig/interact/src/wegld_proxy.rs | 129 ++++++++++++++++++ contracts/examples/multisig/wegld_proxy.rs | 129 ++++++++++++++++++ framework/base/src/types/interaction/tx.rs | 34 +++++ .../base/src/types/interaction/tx_payment.rs | 2 +- .../tx_payment/tx_payment_not_payable.rs | 2 +- .../types/managed/wrapped/token_identifier.rs | 6 + .../scenario/tx_to_step/tx_to_step_query.rs | 3 +- .../scenario/src/standalone/account_tool.rs | 10 +- 15 files changed, 364 insertions(+), 39 deletions(-) create mode 100644 contracts/core/wegld-swap/sc-config.toml create mode 100644 contracts/examples/multisig/interact/src/wegld_proxy.rs create mode 100644 contracts/examples/multisig/wegld_proxy.rs diff --git a/Cargo.lock b/Cargo.lock index 9e833243ba..fe83047020 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -1830,6 +1830,7 @@ version = "0.0.0" dependencies = [ "clap", "multisig", + "multiversx-sc", "multiversx-sc-modules", "multiversx-sc-scenario", "multiversx-sc-snippets", diff --git a/contracts/core/wegld-swap/sc-config.toml b/contracts/core/wegld-swap/sc-config.toml new file mode 100644 index 0000000000..27465ed64a --- /dev/null +++ b/contracts/core/wegld-swap/sc-config.toml @@ -0,0 +1,2 @@ +[[proxy]] +path = "../../examples/multisig/interact/src/wegld_proxy.rs" diff --git a/contracts/examples/multisig/interact/Cargo.toml b/contracts/examples/multisig/interact/Cargo.toml index 8e332e4b35..ee40893001 100644 --- a/contracts/examples/multisig/interact/Cargo.toml +++ b/contracts/examples/multisig/interact/Cargo.toml @@ -28,3 +28,7 @@ path = "../../../../framework/snippets" [dependencies.multiversx-sc-scenario] version = "=0.49.0" path = "../../../../framework/scenario" + +[dependencies.multiversx-sc] +version = "=0.49.0" +path = "../../../../framework/base" diff --git a/contracts/examples/multisig/interact/config.toml b/contracts/examples/multisig/interact/config.toml index a3b733f73d..cff3e1a76c 100644 --- a/contracts/examples/multisig/interact/config.toml +++ b/contracts/examples/multisig/interact/config.toml @@ -1,2 +1,4 @@ gateway = 'https://devnet-gateway.multiversx.com' quorum = 2 +wegld_address = "erd1qqqqqqqqqqqqqpgqqkwzsxkjc83vlfex9dmznwm7tjvxlqqkpauqx0n782" +wegld_token_identifier = "WEGLD-a28c59" diff --git a/contracts/examples/multisig/interact/src/multisig_interact.rs b/contracts/examples/multisig/interact/src/multisig_interact.rs index eaef5d8448..497b6636dd 100644 --- a/contracts/examples/multisig/interact/src/multisig_interact.rs +++ b/contracts/examples/multisig/interact/src/multisig_interact.rs @@ -3,6 +3,7 @@ mod multisig_interact_config; mod multisig_interact_nfts; mod multisig_interact_state; mod multisig_interact_wegld; +mod wegld_proxy; use clap::Parser; use multisig::multisig_proxy; @@ -78,13 +79,14 @@ struct MultisigInteract { wallet_address: Bech32Address, collection_token_identifier: String, multisig_code: BytesValue, + config: Config, state: State, } impl MultisigInteract { async fn init() -> Self { let config = Config::load_config(); - let mut interactor = Interactor::new(config.gateway()) + let mut interactor = Interactor::new(&config.gateway) .await .with_tracer(INTERACTOR_SCENARIO_TRACE_PATH) .await; @@ -99,6 +101,7 @@ impl MultisigInteract { wallet_address: wallet_address.into(), collection_token_identifier: String::new(), multisig_code, + config, state: State::load_state(), } } @@ -132,7 +135,7 @@ impl MultisigInteract { let board = self.board(); - let quorum = Config::load_config().quorum(); + let quorum = self.config.quorum; let new_address = self .interactor .tx() @@ -160,7 +163,7 @@ impl MultisigInteract { println!("deploying {count} contracts..."); let board = self.board(); - let quorum = Config::load_config().quorum(); + let quorum = Config::load_config().quorum; let mut buffer = self.interactor.homogenous_call_buffer(); for _ in 0..*count { buffer.push_tx(|tx| { diff --git a/contracts/examples/multisig/interact/src/multisig_interact_config.rs b/contracts/examples/multisig/interact/src/multisig_interact_config.rs index 2a7ea60f3a..501deab9d3 100644 --- a/contracts/examples/multisig/interact/src/multisig_interact_config.rs +++ b/contracts/examples/multisig/interact/src/multisig_interact_config.rs @@ -1,3 +1,4 @@ +use multiversx_sc_scenario::imports::Bech32Address; use serde::Deserialize; use std::io::Read; @@ -7,8 +8,10 @@ const CONFIG_FILE: &str = "config.toml"; /// Multisig Interact configuration #[derive(Debug, Deserialize)] pub struct Config { - gateway: String, - quorum: usize, + pub gateway: String, + pub quorum: usize, + pub wegld_address: Bech32Address, + pub wegld_token_identifier: String, } impl Config { @@ -20,13 +23,17 @@ impl Config { toml::from_str(&content).unwrap() } - // Returns the gateway - pub fn gateway(&self) -> &str { - &self.gateway - } + // // Returns the gateway + // pub fn gateway(&self) -> &str { + // &self.gateway + // } // Returns the quorum - pub fn quorum(&self) -> usize { - self.quorum - } + // pub fn quorum(&self) -> usize { + // self.quorum + // } + + // pub fn wegld_address(&self) -> Bech32Address { + // Bech32Address::from_bech32_string(bech32) + // } } diff --git a/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs b/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs index a59e686e2a..00722b8c6b 100644 --- a/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs +++ b/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs @@ -4,8 +4,8 @@ use multiversx_sc_snippets::imports::*; use super::*; -const WEGLD_SWAP_SC_BECH32: &str = "erd1qqqqqqqqqqqqqpgqcy2wua5cq59y6sxqj2ka3scayh5e5ms7cthqht8xtp"; -const WEGLD_TOKEN_IDENTIFIER: &str = "WEGLD-6cf38e"; +// const WEGLD_SWAP_SC_BECH32: &str = "erd1qqqqqqqqqqqqqpgqqkwzsxkjc83vlfex9dmznwm7tjvxlqqkpauqx0n782"; // shard 0 +// const WEGLD_TOKEN_IDENTIFIER: TestTokenIdentifier = TestTokenIdentifier::new("WEGLD-a28c59"); const WRAP_AMOUNT: u64 = 50000000000000000; // 0.05 EGLD const UNWRAP_AMOUNT: u64 = 25000000000000000; // 0.025 WEGLD @@ -36,13 +36,20 @@ impl MultisigInteract { pub async fn wegld_swap_set_state(&mut self) { self.interactor - .retrieve_account(&Bech32Address::from_bech32_string( - WEGLD_SWAP_SC_BECH32.to_owned(), - )) + .retrieve_account(&self.config.wegld_address) .await; } async fn propose_wrap_egld(&mut self) -> usize { + let (action_to, action_egld, action_fc) = self + .interactor + .tx() + .to(&self.config.wegld_address) + .typed(wegld_proxy::EgldEsdtSwapProxy) + .wrap_egld() + .egld(WRAP_AMOUNT) + .into_normalized(); + let action_id = self .interactor .tx() @@ -50,11 +57,7 @@ impl MultisigInteract { .to(self.state.current_multisig_address()) .gas(NumExpr("10,000,000")) .typed(multisig_proxy::MultisigProxy) - .propose_async_call( - bech32::decode(WEGLD_SWAP_SC_BECH32), - WRAP_AMOUNT, - FunctionCall::new("wrapEgld"), - ) + .propose_async_call(action_to, action_egld, action_fc) .returns(ReturnsResult) .prepare_async() .run() @@ -65,13 +68,18 @@ impl MultisigInteract { } async fn propose_unwrap_egld(&mut self) -> usize { - let to = ManagedAddress::::from(bech32::decode(WEGLD_SWAP_SC_BECH32)); - let payment = EsdtTokenPayment::new( - TokenIdentifier::from(WEGLD_TOKEN_IDENTIFIER), - 0u64, - UNWRAP_AMOUNT.into(), - ); - let function_call = FunctionCall::new("unwrapEgld"); + let (action_to, action_egld, action_fc) = self + .interactor + .tx() + .to(&self.config.wegld_address) + .typed(wegld_proxy::EgldEsdtSwapProxy) + .unwrap_egld() + .single_esdt( + &TokenIdentifier::from(&self.config.wegld_token_identifier), + 0u64, + &UNWRAP_AMOUNT.into(), + ) + .into_normalized(); let action_id = self .interactor @@ -80,8 +88,7 @@ impl MultisigInteract { .to(self.state.current_multisig_address()) .gas(NumExpr("10,000,000")) .typed(multisig_proxy::MultisigProxy) - .propose_async_call(to, 0u64, function_call) - .esdt(payment) + .propose_async_call(action_to, action_egld, action_fc) .returns(ReturnsResult) .prepare_async() .run() diff --git a/contracts/examples/multisig/interact/src/wegld_proxy.rs b/contracts/examples/multisig/interact/src/wegld_proxy.rs new file mode 100644 index 0000000000..404831a1bd --- /dev/null +++ b/contracts/examples/multisig/interact/src/wegld_proxy.rs @@ -0,0 +1,129 @@ +// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +#![allow(dead_code)] +#![allow(clippy::all)] + +use multiversx_sc::proxy_imports::*; + +pub struct EgldEsdtSwapProxy; + +impl TxProxyTrait for EgldEsdtSwapProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = EgldEsdtSwapProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + EgldEsdtSwapProxyMethods { wrapped_tx: tx } + } +} + +pub struct EgldEsdtSwapProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl EgldEsdtSwapProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init< + Arg0: ProxyArg>, + >( + self, + wrapped_egld_token_id: Arg0, + ) -> TxTypedDeploy { + self.wrapped_tx + .payment(NotPayable) + .raw_deploy() + .argument(&wrapped_egld_token_id) + .original_result() + } +} + +#[rustfmt::skip] +impl EgldEsdtSwapProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn wrap_egld( + self, + ) -> TxTypedCall> { + self.wrapped_tx + .raw_call("wrapEgld") + .original_result() + } + + pub fn unwrap_egld( + self, + ) -> TxTypedCall { + self.wrapped_tx + .raw_call("unwrapEgld") + .original_result() + } + + pub fn get_locked_egld_balance( + self, + ) -> TxTypedCall> { + self.wrapped_tx + .payment(NotPayable) + .raw_call("getLockedEgldBalance") + .original_result() + } + + pub fn wrapped_egld_token_id( + self, + ) -> TxTypedCall> { + self.wrapped_tx + .payment(NotPayable) + .raw_call("getWrappedEgldTokenId") + .original_result() + } + + pub fn pause_endpoint( + self, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("pause") + .original_result() + } + + pub fn unpause_endpoint( + self, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("unpause") + .original_result() + } + + pub fn paused_status( + self, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("isPaused") + .original_result() + } +} diff --git a/contracts/examples/multisig/wegld_proxy.rs b/contracts/examples/multisig/wegld_proxy.rs new file mode 100644 index 0000000000..404831a1bd --- /dev/null +++ b/contracts/examples/multisig/wegld_proxy.rs @@ -0,0 +1,129 @@ +// Code generated by the multiversx-sc proxy generator. DO NOT EDIT. + +//////////////////////////////////////////////////// +////////////////// AUTO-GENERATED ////////////////// +//////////////////////////////////////////////////// + +#![allow(dead_code)] +#![allow(clippy::all)] + +use multiversx_sc::proxy_imports::*; + +pub struct EgldEsdtSwapProxy; + +impl TxProxyTrait for EgldEsdtSwapProxy +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + type TxProxyMethods = EgldEsdtSwapProxyMethods; + + fn proxy_methods(self, tx: Tx) -> Self::TxProxyMethods { + EgldEsdtSwapProxyMethods { wrapped_tx: tx } + } +} + +pub struct EgldEsdtSwapProxyMethods +where + Env: TxEnv, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + wrapped_tx: Tx, +} + +#[rustfmt::skip] +impl EgldEsdtSwapProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + Gas: TxGas, +{ + pub fn init< + Arg0: ProxyArg>, + >( + self, + wrapped_egld_token_id: Arg0, + ) -> TxTypedDeploy { + self.wrapped_tx + .payment(NotPayable) + .raw_deploy() + .argument(&wrapped_egld_token_id) + .original_result() + } +} + +#[rustfmt::skip] +impl EgldEsdtSwapProxyMethods +where + Env: TxEnv, + Env::Api: VMApi, + From: TxFrom, + To: TxTo, + Gas: TxGas, +{ + pub fn wrap_egld( + self, + ) -> TxTypedCall> { + self.wrapped_tx + .raw_call("wrapEgld") + .original_result() + } + + pub fn unwrap_egld( + self, + ) -> TxTypedCall { + self.wrapped_tx + .raw_call("unwrapEgld") + .original_result() + } + + pub fn get_locked_egld_balance( + self, + ) -> TxTypedCall> { + self.wrapped_tx + .payment(NotPayable) + .raw_call("getLockedEgldBalance") + .original_result() + } + + pub fn wrapped_egld_token_id( + self, + ) -> TxTypedCall> { + self.wrapped_tx + .payment(NotPayable) + .raw_call("getWrappedEgldTokenId") + .original_result() + } + + pub fn pause_endpoint( + self, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("pause") + .original_result() + } + + pub fn unpause_endpoint( + self, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("unpause") + .original_result() + } + + pub fn paused_status( + self, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("isPaused") + .original_result() + } +} diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index b1e6de8a10..9b9f9a99f4 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -452,6 +452,40 @@ where } } +impl Tx, RH> +where + Env: TxEnv, + From: TxFrom, + To: TxToSpecified, + Payment: TxPayment, + Gas: TxGas, + RH: TxResultHandler, +{ + /// Producs the normalized function call, i.e. with builtin function calls for ESDT transfers. + /// + /// The output is a triple, made up of + /// - the recipient (some builtin functions are called with recipient = sender), + /// - EGLD value, + /// - the normalized function call. + /// + /// Warning: some clones are performed, it is not optimized for contracts, but can be used nonetheless. + pub fn into_normalized( + self, + ) -> ( + ManagedAddress, + BigUint, + FunctionCall, + ) { + self.payment.with_normalized( + &self.env, + &self.from, + self.to, + self.data, + |norm_to, norm_egld, norm_fc| (norm_to.clone(), norm_egld.clone(), norm_fc), + ) + } +} + impl Tx where Env: TxEnv, diff --git a/framework/base/src/types/interaction/tx_payment.rs b/framework/base/src/types/interaction/tx_payment.rs index 3a4db68478..13cbb6c06b 100644 --- a/framework/base/src/types/interaction/tx_payment.rs +++ b/framework/base/src/types/interaction/tx_payment.rs @@ -60,7 +60,7 @@ where } /// Marker trait that indicates that payment field contains no payment. -/// +/// /// Implemented by `()` and `NotPayable`. pub trait TxNoPayment: TxPayment where diff --git a/framework/base/src/types/interaction/tx_payment/tx_payment_not_payable.rs b/framework/base/src/types/interaction/tx_payment/tx_payment_not_payable.rs index bf43ba1cfd..a198a50c98 100644 --- a/framework/base/src/types/interaction/tx_payment/tx_payment_not_payable.rs +++ b/framework/base/src/types/interaction/tx_payment/tx_payment_not_payable.rs @@ -42,7 +42,7 @@ where where From: TxFrom, To: TxToSpecified, - F: FnOnce(&ManagedAddress, &BigUint, &FunctionCall) -> R, + F: FnOnce(&ManagedAddress, &BigUint, FunctionCall) -> R, { ().with_normalized(env, from, to, fc, f) } diff --git a/framework/base/src/types/managed/wrapped/token_identifier.rs b/framework/base/src/types/managed/wrapped/token_identifier.rs index f8ae1a6984..861e964e8a 100644 --- a/framework/base/src/types/managed/wrapped/token_identifier.rs +++ b/framework/base/src/types/managed/wrapped/token_identifier.rs @@ -96,6 +96,12 @@ impl From<&str> for TokenIdentifier { } } +impl From<&crate::types::heap::String> for TokenIdentifier { + fn from(s: &crate::types::heap::String) -> Self { + TokenIdentifier::from(s.as_bytes()) + } +} + impl PartialEq for TokenIdentifier { #[inline] fn eq(&self, other: &Self) -> bool { diff --git a/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs b/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs index 3a94a1887d..b9e25a707d 100644 --- a/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs +++ b/framework/scenario/src/scenario/tx_to_step/tx_to_step_query.rs @@ -4,7 +4,8 @@ use crate::scenario_model::{ScQueryStep, TxExpect, TxResponse}; use super::{address_annotated, StepWrapper, TxToQueryStep}; -impl TxToQueryStep for Tx, RH> +impl TxToQueryStep + for Tx, RH> where Env: TxEnv, To: TxToSpecified, diff --git a/framework/scenario/src/standalone/account_tool.rs b/framework/scenario/src/standalone/account_tool.rs index 1ea1e2f6b4..b6db384b91 100644 --- a/framework/scenario/src/standalone/account_tool.rs +++ b/framework/scenario/src/standalone/account_tool.rs @@ -75,14 +75,14 @@ pub fn set_account( account_state.storage = convert_storage(account_storage); for (_, esdt_balance) in account_esdt.iter() { - account_state = account_state.esdt_balance( - format!("str:{}", esdt_balance.token_identifier).as_str(), - esdt_balance.balance.as_str(), - ); + let token_id_expr = format!("str:{}", esdt_balance.token_identifier); + account_state = + account_state.esdt_balance(token_id_expr.as_str(), esdt_balance.balance.as_str()); } for (token_id, esdt_roles) in account_esdt_roles { - account_state = account_state.esdt_roles(token_id.as_str(), esdt_roles); + let token_id_expr = format!("str:{token_id}"); + account_state = account_state.esdt_roles(token_id_expr.as_str(), esdt_roles); } account_state From c5c310ea9214232a923843088f38bfb30e18f628 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 01:00:32 +0300 Subject: [PATCH 165/185] multisig interactor - query WEGLD token id --- .../examples/multisig/interact/config.toml | 1 - .../interact/src/multisig_interact_config.rs | 15 ----------- .../interact/src/multisig_interact_wegld.rs | 25 +++++++++++++++---- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/contracts/examples/multisig/interact/config.toml b/contracts/examples/multisig/interact/config.toml index cff3e1a76c..029fab5ac7 100644 --- a/contracts/examples/multisig/interact/config.toml +++ b/contracts/examples/multisig/interact/config.toml @@ -1,4 +1,3 @@ gateway = 'https://devnet-gateway.multiversx.com' quorum = 2 wegld_address = "erd1qqqqqqqqqqqqqpgqqkwzsxkjc83vlfex9dmznwm7tjvxlqqkpauqx0n782" -wegld_token_identifier = "WEGLD-a28c59" diff --git a/contracts/examples/multisig/interact/src/multisig_interact_config.rs b/contracts/examples/multisig/interact/src/multisig_interact_config.rs index 501deab9d3..4aa9903cc0 100644 --- a/contracts/examples/multisig/interact/src/multisig_interact_config.rs +++ b/contracts/examples/multisig/interact/src/multisig_interact_config.rs @@ -11,7 +11,6 @@ pub struct Config { pub gateway: String, pub quorum: usize, pub wegld_address: Bech32Address, - pub wegld_token_identifier: String, } impl Config { @@ -22,18 +21,4 @@ impl Config { file.read_to_string(&mut content).unwrap(); toml::from_str(&content).unwrap() } - - // // Returns the gateway - // pub fn gateway(&self) -> &str { - // &self.gateway - // } - - // Returns the quorum - // pub fn quorum(&self) -> usize { - // self.quorum - // } - - // pub fn wegld_address(&self) -> Bech32Address { - // Bech32Address::from_bech32_string(bech32) - // } } diff --git a/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs b/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs index 00722b8c6b..9cf5ad9e6e 100644 --- a/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs +++ b/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs @@ -67,18 +67,33 @@ impl MultisigInteract { action_id } + pub async fn query_wegld_token_identifier(&mut self) -> TokenIdentifier { + let wegld_token_id = self + .interactor + .query() + .to(&self.config.wegld_address) + .typed(wegld_proxy::EgldEsdtSwapProxy) + .wrapped_egld_token_id() + .returns(ReturnsResult) + .prepare_async() + .run() + .await; + + println!("WEGLD token identifier: {wegld_token_id}"); + + wegld_token_id + } + async fn propose_unwrap_egld(&mut self) -> usize { + let wegld_token_id = self.query_wegld_token_identifier().await; + let (action_to, action_egld, action_fc) = self .interactor .tx() .to(&self.config.wegld_address) .typed(wegld_proxy::EgldEsdtSwapProxy) .unwrap_egld() - .single_esdt( - &TokenIdentifier::from(&self.config.wegld_token_identifier), - 0u64, - &UNWRAP_AMOUNT.into(), - ) + .single_esdt(&wegld_token_id, 0u64, &UNWRAP_AMOUNT.into()) .into_normalized(); let action_id = self From 05dfc01e3fc7314ec0b6459e879f88f00a84c307 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 01:27:47 +0300 Subject: [PATCH 166/185] unified syntax - normalize method refactor --- .../interact/src/multisig_interact_wegld.rs | 15 +++--- framework/base/src/types/interaction/tx.rs | 46 ++++++++++++++----- 2 files changed, 42 insertions(+), 19 deletions(-) diff --git a/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs b/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs index 9cf5ad9e6e..97344d8603 100644 --- a/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs +++ b/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs @@ -41,14 +41,13 @@ impl MultisigInteract { } async fn propose_wrap_egld(&mut self) -> usize { - let (action_to, action_egld, action_fc) = self + let function_call = self .interactor .tx() .to(&self.config.wegld_address) .typed(wegld_proxy::EgldEsdtSwapProxy) .wrap_egld() - .egld(WRAP_AMOUNT) - .into_normalized(); + .into_function_call(); let action_id = self .interactor @@ -57,7 +56,7 @@ impl MultisigInteract { .to(self.state.current_multisig_address()) .gas(NumExpr("10,000,000")) .typed(multisig_proxy::MultisigProxy) - .propose_async_call(action_to, action_egld, action_fc) + .propose_async_call(&self.config.wegld_address, WRAP_AMOUNT, function_call) .returns(ReturnsResult) .prepare_async() .run() @@ -87,14 +86,16 @@ impl MultisigInteract { async fn propose_unwrap_egld(&mut self) -> usize { let wegld_token_id = self.query_wegld_token_identifier().await; - let (action_to, action_egld, action_fc) = self + let normalized_tx = self .interactor .tx() .to(&self.config.wegld_address) .typed(wegld_proxy::EgldEsdtSwapProxy) .unwrap_egld() .single_esdt(&wegld_token_id, 0u64, &UNWRAP_AMOUNT.into()) - .into_normalized(); + .normalize(); + let normalized_to = normalized_tx.to; + let normalized_data = normalized_tx.data; let action_id = self .interactor @@ -103,7 +104,7 @@ impl MultisigInteract { .to(self.state.current_multisig_address()) .gas(NumExpr("10,000,000")) .typed(multisig_proxy::MultisigProxy) - .propose_async_call(action_to, action_egld, action_fc) + .propose_async_call(normalized_to, 0u64, normalized_data) .returns(ReturnsResult) .prepare_async() .run() diff --git a/framework/base/src/types/interaction/tx.rs b/framework/base/src/types/interaction/tx.rs index 9b9f9a99f4..4ed8603734 100644 --- a/framework/base/src/types/interaction/tx.rs +++ b/framework/base/src/types/interaction/tx.rs @@ -461,28 +461,50 @@ where Gas: TxGas, RH: TxResultHandler, { - /// Producs the normalized function call, i.e. with builtin function calls for ESDT transfers. + /// Produces the normalized function call, i.e. with builtin function calls for ESDT transfers. /// - /// The output is a triple, made up of - /// - the recipient (some builtin functions are called with recipient = sender), - /// - EGLD value, - /// - the normalized function call. + /// The resulting transaction can differ from the input in several ways: + /// - the recipient is changed (some builtin functions are called with recipient = sender), + /// - the function call becomes a builtin function call. /// - /// Warning: some clones are performed, it is not optimized for contracts, but can be used nonetheless. - pub fn into_normalized( + /// ## Important + /// + /// Do not call this before sending transactions! Normalization is don automatically whenever necessary. + /// Only use when you need the normalized data, e.g. for a multisig. + /// + /// ## Warning + /// + /// To produce owned values, some clones are performed. + /// It is not optimized for contracts, but can be used nonetheless. + #[allow(clippy::type_complexity)] + pub fn normalize( self, - ) -> ( + ) -> Tx< + Env, + From, ManagedAddress, - BigUint, + EgldPayment, + Gas, FunctionCall, - ) { - self.payment.with_normalized( + RH, + > { + let (norm_to, norm_egld, norm_fc) = self.payment.with_normalized( &self.env, &self.from, self.to, self.data, |norm_to, norm_egld, norm_fc| (norm_to.clone(), norm_egld.clone(), norm_fc), - ) + ); + + Tx { + env: self.env, + from: self.from, + to: norm_to, + payment: Egld(norm_egld), + gas: self.gas, + data: norm_fc, + result_handler: self.result_handler, + } } } From 58ac9536b037c304b6377b23174742b1d629e58d Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 02:08:23 +0300 Subject: [PATCH 167/185] non payable flag - in system proxies & other proxies --- .../src/nft_marketplace_proxy.rs | 2 +- .../nft-minter/src/nft_marketplace_proxy.rs | 2 +- .../proxy-pause/src/pause_sc_proxy.rs | 4 +- .../tests/mock_seed_nft_minter_proxy.rs | 4 +- .../src/nft_marketplace_proxy.rs | 4 +- .../proxy-test-first/src/message_me_proxy.rs | 6 +-- .../proxy-test-first/src/pay_me_proxy.rs | 8 +-- .../erc1155/src/erc1155_user_proxy.rs | 4 +- contracts/modules/src/dns_proxy.rs | 2 +- .../contract_base/wrappers/send_wrapper.rs | 24 +++++++-- .../system_proxy/builtin_func_proxy.rs | 33 ++++++++---- .../system_proxy/esdt_system_sc_proxy.rs | 52 ++++++++++++------- 12 files changed, 93 insertions(+), 52 deletions(-) diff --git a/contracts/examples/fractional-nfts/src/nft_marketplace_proxy.rs b/contracts/examples/fractional-nfts/src/nft_marketplace_proxy.rs index b977042583..7b45fa08e2 100644 --- a/contracts/examples/fractional-nfts/src/nft_marketplace_proxy.rs +++ b/contracts/examples/fractional-nfts/src/nft_marketplace_proxy.rs @@ -46,7 +46,7 @@ where claim_destination: Arg0, token_id: Arg1, token_nonce: Arg2, - ) -> TxProxyCall, ManagedVec>>> { + ) -> TxTypedCall, ManagedVec>>> { self.wrapped_tx .raw_call("claimTokens") .argument(&claim_destination) diff --git a/contracts/examples/nft-minter/src/nft_marketplace_proxy.rs b/contracts/examples/nft-minter/src/nft_marketplace_proxy.rs index 7c6028d1fd..84a291bbe4 100644 --- a/contracts/examples/nft-minter/src/nft_marketplace_proxy.rs +++ b/contracts/examples/nft-minter/src/nft_marketplace_proxy.rs @@ -44,7 +44,7 @@ where token_id: Arg0, token_nonce: Arg1, claim_destination: Arg2, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("claimTokens") .argument(&token_id) diff --git a/contracts/examples/proxy-pause/src/pause_sc_proxy.rs b/contracts/examples/proxy-pause/src/pause_sc_proxy.rs index 6f5fc834b9..a547030978 100644 --- a/contracts/examples/proxy-pause/src/pause_sc_proxy.rs +++ b/contracts/examples/proxy-pause/src/pause_sc_proxy.rs @@ -37,7 +37,7 @@ where { pub fn pause( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("pause") .original_result() @@ -45,7 +45,7 @@ where pub fn unpause( self, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("unpause") .original_result() diff --git a/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs b/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs index 379b8e0d05..00cc59adb5 100644 --- a/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs +++ b/contracts/examples/rewards-distribution/tests/mock_seed_nft_minter_proxy.rs @@ -39,7 +39,7 @@ where >( self, nft_token_id: Arg0, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx .raw_deploy() .argument(&nft_token_id) @@ -61,7 +61,7 @@ where >( self, nft_count: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("setNftCount") .argument(&nft_count) diff --git a/contracts/examples/seed-nft-minter/src/nft_marketplace_proxy.rs b/contracts/examples/seed-nft-minter/src/nft_marketplace_proxy.rs index e41b477e03..dc41de1948 100644 --- a/contracts/examples/seed-nft-minter/src/nft_marketplace_proxy.rs +++ b/contracts/examples/seed-nft-minter/src/nft_marketplace_proxy.rs @@ -38,7 +38,7 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx .raw_deploy() .original_result() @@ -63,7 +63,7 @@ where claim_destination: Arg0, token_id: Arg1, token_nonce: Arg2, - ) -> TxProxyCall, ManagedVec>>> { + ) -> TxTypedCall, ManagedVec>>> { self.wrapped_tx .raw_call("claimTokens") .argument(&claim_destination) diff --git a/contracts/feature-tests/composability/proxy-test-first/src/message_me_proxy.rs b/contracts/feature-tests/composability/proxy-test-first/src/message_me_proxy.rs index 4609a3a0bd..fbe4ebf1a8 100644 --- a/contracts/feature-tests/composability/proxy-test-first/src/message_me_proxy.rs +++ b/contracts/feature-tests/composability/proxy-test-first/src/message_me_proxy.rs @@ -48,7 +48,7 @@ where >( self, init_arg: Arg0, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx .raw_deploy() .argument(&init_arg) @@ -67,7 +67,7 @@ where { pub fn upgrade( self, - ) -> TxProxyUpgrade { + ) -> TxTypedUpgrade { self.wrapped_tx .raw_upgrade() .original_result() @@ -94,7 +94,7 @@ where arg2: Arg1, arg3: Arg2, arg4: Arg3, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("messageMe") .argument(&arg1) diff --git a/contracts/feature-tests/composability/proxy-test-first/src/pay_me_proxy.rs b/contracts/feature-tests/composability/proxy-test-first/src/pay_me_proxy.rs index cfd32f2516..38f620a84c 100644 --- a/contracts/feature-tests/composability/proxy-test-first/src/pay_me_proxy.rs +++ b/contracts/feature-tests/composability/proxy-test-first/src/pay_me_proxy.rs @@ -45,7 +45,7 @@ where { pub fn init( self, - ) -> TxProxyDeploy { + ) -> TxTypedDeploy { self.wrapped_tx .raw_deploy() .original_result() @@ -63,7 +63,7 @@ where { pub fn upgrade( self, - ) -> TxProxyUpgrade { + ) -> TxTypedUpgrade { self.wrapped_tx .raw_upgrade() .original_result() @@ -84,7 +84,7 @@ where >( self, arg1: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("payMe") .argument(&arg1) @@ -96,7 +96,7 @@ where >( self, arg1: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("payMeWithResult") .argument(&arg1) diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155_user_proxy.rs b/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155_user_proxy.rs index 600c12792f..13c0fce3b6 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155_user_proxy.rs +++ b/contracts/feature-tests/erc-style-contracts/erc1155/src/erc1155_user_proxy.rs @@ -50,7 +50,7 @@ where type_id: Arg2, value: Arg3, data: Arg4, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("onERC1155Received") .argument(&operator) @@ -74,7 +74,7 @@ where type_ids: Arg2, values: Arg3, data: Arg4, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("onERC1155BatchReceived") .argument(&operator) diff --git a/contracts/modules/src/dns_proxy.rs b/contracts/modules/src/dns_proxy.rs index 25ac68e4c4..8ef8a82b94 100644 --- a/contracts/modules/src/dns_proxy.rs +++ b/contracts/modules/src/dns_proxy.rs @@ -42,7 +42,7 @@ where >( self, name: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx .raw_call("register") .argument(&name) diff --git a/framework/base/src/contract_base/wrappers/send_wrapper.rs b/framework/base/src/contract_base/wrappers/send_wrapper.rs index 11a8f748fc..3a11bde247 100644 --- a/framework/base/src/contract_base/wrappers/send_wrapper.rs +++ b/framework/base/src/contract_base/wrappers/send_wrapper.rs @@ -8,7 +8,7 @@ use crate::{ types::{ system_proxy, BigUint, ContractCallNoPayment, ESDTSystemSCAddress, EgldOrEsdtTokenIdentifier, EsdtTokenPayment, FunctionCall, GasLeft, ManagedAddress, - ManagedArgBuffer, ManagedBuffer, ManagedType, ManagedVec, OriginalResultMarker, + ManagedArgBuffer, ManagedBuffer, ManagedType, ManagedVec, NotPayable, OriginalResultMarker, ReturnsRawResult, ReturnsResult, ToSelf, TokenIdentifier, Tx, TxScEnv, }, }; @@ -357,8 +357,15 @@ where pub fn claim_developer_rewards( &self, child_sc_address: ManagedAddress, - ) -> Tx, (), ManagedAddress, (), (), FunctionCall, OriginalResultMarker<()>> - { + ) -> Tx< + TxScEnv, + (), + ManagedAddress, + NotPayable, + (), + FunctionCall, + OriginalResultMarker<()>, + > { Tx::new_tx_from_sc() .to(child_sc_address) .typed(system_proxy::UserBuiltinProxy) @@ -371,8 +378,15 @@ where &self, child_sc_address: ManagedAddress, new_owner: &ManagedAddress, - ) -> Tx, (), ManagedAddress, (), (), FunctionCall, OriginalResultMarker<()>> - { + ) -> Tx< + TxScEnv, + (), + ManagedAddress, + NotPayable, + (), + FunctionCall, + OriginalResultMarker<()>, + > { Tx::new_tx_from_sc() .to(child_sc_address) .typed(system_proxy::UserBuiltinProxy) diff --git a/framework/base/src/types/interaction/system_proxy/builtin_func_proxy.rs b/framework/base/src/types/interaction/system_proxy/builtin_func_proxy.rs index 11972f72e8..7b5e2fefb2 100644 --- a/framework/base/src/types/interaction/system_proxy/builtin_func_proxy.rs +++ b/framework/base/src/types/interaction/system_proxy/builtin_func_proxy.rs @@ -1,8 +1,8 @@ use multiversx_sc_codec::{Empty, TopEncode}; use crate::types::{ - BigUint, ManagedAddress, ManagedBuffer, ManagedVec, ProxyArg, TokenIdentifier, Tx, TxEnv, - TxFrom, TxGas, TxProxyCall, TxProxyTrait, TxTo, + BigUint, ManagedAddress, ManagedBuffer, ManagedVec, NotPayable, ProxyArg, TokenIdentifier, Tx, + TxEnv, TxFrom, TxGas, TxProxyTrait, TxTo, TxTypedCall, }; use super::builtin_func_names::{ @@ -49,21 +49,24 @@ where pub fn set_user_name>>( self, name: Arg0, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call(SET_USERNAME_FUNC_NAME) .argument(&name) .original_result() } - pub fn delete_user_name(self) -> TxProxyCall { + pub fn delete_user_name(self) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call(DELETE_USERNAME_FUNC_NAME) .original_result() } - pub fn claim_developer_rewards(self) -> TxProxyCall { + pub fn claim_developer_rewards(self) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call(CLAIM_DEVELOPER_REWARDS_FUNC_NAME) .original_result() } @@ -71,8 +74,9 @@ where pub fn change_owner_address( self, new_owner: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call(CHANGE_OWNER_BUILTIN_FUNC_NAME) .argument(new_owner) .original_result() @@ -83,10 +87,11 @@ where token: &TokenIdentifier, nonce: u64, amount: &BigUint, - ) -> TxProxyCall { + ) -> TxTypedCall { if nonce == 0 { return self .wrapped_tx + .payment(NotPayable) .raw_call(ESDT_LOCAL_BURN_FUNC_NAME) .argument(token) .argument(amount) @@ -94,6 +99,7 @@ where } self.wrapped_tx + .payment(NotPayable) .raw_call(ESDT_NFT_BURN_FUNC_NAME) .argument(token) .argument(&nonce) @@ -106,16 +112,18 @@ where token: &TokenIdentifier, nonce: u64, amount: &BigUint, - ) -> TxProxyCall { + ) -> TxTypedCall { if nonce == 0 { return self .wrapped_tx + .payment(NotPayable) .raw_call(ESDT_LOCAL_MINT_FUNC_NAME) .argument(token) .argument(amount) .original_result(); } self.wrapped_tx + .payment(NotPayable) .raw_call(ESDT_NFT_ADD_QUANTITY_FUNC_NAME) .argument(token) .argument(&nonce) @@ -128,9 +136,10 @@ where token_id: &TokenIdentifier, nft_nonce: u64, new_uris: &ManagedVec>, - ) -> TxProxyCall { + ) -> TxTypedCall { let mut tx = self .wrapped_tx + .payment(NotPayable) .raw_call(ESDT_NFT_ADD_URI_FUNC_NAME) .argument(token_id) .argument(&nft_nonce); @@ -147,8 +156,9 @@ where token_id: &TokenIdentifier, nft_nonce: u64, new_attributes: &T, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call(ESDT_NFT_UPDATE_ATTRIBUTES_FUNC_NAME) .argument(token_id) .argument(&nft_nonce) @@ -166,9 +176,10 @@ where hash: &ManagedBuffer, attributes: &T, uris: &ManagedVec>, - ) -> TxProxyCall { + ) -> TxTypedCall { let mut tx = self .wrapped_tx + .payment(NotPayable) .raw_call(ESDT_NFT_CREATE_FUNC_NAME) .argument(token) .argument(amount) diff --git a/framework/base/src/types/interaction/system_proxy/esdt_system_sc_proxy.rs b/framework/base/src/types/interaction/system_proxy/esdt_system_sc_proxy.rs index 3589f4ce28..2717b793d2 100644 --- a/framework/base/src/types/interaction/system_proxy/esdt_system_sc_proxy.rs +++ b/framework/base/src/types/interaction/system_proxy/esdt_system_sc_proxy.rs @@ -4,8 +4,8 @@ use crate::{ api::CallTypeApi, types::{ BigUint, EgldPayment, EsdtLocalRole, EsdtTokenType, FunctionCall, ManagedAddress, - ManagedBuffer, OriginalResultMarker, TokenIdentifier, Tx, TxEnv, TxFrom, TxGas, - TxProxyCall, TxProxyTrait, TxTo, + ManagedBuffer, NotPayable, OriginalResultMarker, TokenIdentifier, Tx, TxEnv, TxFrom, TxGas, + TxProxyTrait, TxTo, TxTypedCall, }, }; @@ -272,8 +272,9 @@ where self, token_identifier: &TokenIdentifier, amount: &BigUint, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("mint") .argument(token_identifier) .argument(amount) @@ -286,8 +287,9 @@ where self, token_identifier: &TokenIdentifier, amount: &BigUint, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("ESDTBurn") .argument(token_identifier) .argument(amount) @@ -299,8 +301,9 @@ where pub fn pause( self, token_identifier: &TokenIdentifier, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("pause") .argument(token_identifier) .original_result() @@ -310,8 +313,9 @@ where pub fn unpause( self, token_identifier: &TokenIdentifier, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("unPause") .argument(token_identifier) .original_result() @@ -324,8 +328,9 @@ where self, token_identifier: &TokenIdentifier, address: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("freeze") .argument(token_identifier) .argument(address) @@ -337,8 +342,9 @@ where self, token_identifier: &TokenIdentifier, address: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("unFreeze") .argument(token_identifier) .argument(address) @@ -353,8 +359,9 @@ where self, token_identifier: &TokenIdentifier, address: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("wipe") .argument(token_identifier) .argument(address) @@ -369,8 +376,9 @@ where token_identifier: &TokenIdentifier, nft_nonce: u64, address: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("freezeSingleNFT") .argument(token_identifier) .argument(&nft_nonce) @@ -384,8 +392,9 @@ where token_identifier: &TokenIdentifier, nft_nonce: u64, address: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("unFreezeSingleNFT") .argument(token_identifier) .argument(&nft_nonce) @@ -402,8 +411,9 @@ where token_identifier: &TokenIdentifier, nft_nonce: u64, address: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("wipeSingleNFT") .argument(token_identifier) .argument(&nft_nonce) @@ -417,8 +427,9 @@ where self, token_identifier: &TokenIdentifier, num_decimals: usize, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("changeSFTToMetaESDT") .argument(&token_identifier) .argument(&num_decimals) @@ -434,9 +445,10 @@ where address: &ManagedAddress, token_identifier: &TokenIdentifier, roles_iter: RoleIter, - ) -> TxProxyCall { + ) -> TxTypedCall { let mut tx = self .wrapped_tx + .payment(NotPayable) .raw_call("setSpecialRole") .argument(token_identifier) .argument(address); @@ -458,9 +470,10 @@ where address: &ManagedAddress, token_identifier: &TokenIdentifier, roles_iter: RoleIter, - ) -> TxProxyCall { + ) -> TxTypedCall { let mut tx = self .wrapped_tx + .payment(NotPayable) .raw_call("unSetSpecialRole") .argument(token_identifier) .argument(address); @@ -477,8 +490,9 @@ where self, token_identifier: &TokenIdentifier, new_owner: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transferOwnership") .argument(token_identifier) .argument(new_owner) @@ -490,8 +504,9 @@ where token_identifier: &TokenIdentifier, old_creator: &ManagedAddress, new_creator: &ManagedAddress, - ) -> TxProxyCall { + ) -> TxTypedCall { self.wrapped_tx + .payment(NotPayable) .raw_call("transferNFTCreateRole") .argument(token_identifier) .argument(old_creator) @@ -503,9 +518,10 @@ where self, token_identifier: &TokenIdentifier, property_arguments: &TokenPropertyArguments, - ) -> TxProxyCall { + ) -> TxTypedCall { let mut tx = self .wrapped_tx + .payment(NotPayable) .raw_call("controlChanges") .argument(token_identifier); append_token_property_arguments(&mut tx.data, property_arguments); From 86c650097e46029f1c87b0776aaca12b4f9e407e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 10:12:15 +0300 Subject: [PATCH 168/185] cleanup --- .../examples/multisig/interact/src/multisig_interact_wegld.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs b/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs index 97344d8603..7774bc02d4 100644 --- a/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs +++ b/contracts/examples/multisig/interact/src/multisig_interact_wegld.rs @@ -4,8 +4,6 @@ use multiversx_sc_snippets::imports::*; use super::*; -// const WEGLD_SWAP_SC_BECH32: &str = "erd1qqqqqqqqqqqqqpgqqkwzsxkjc83vlfex9dmznwm7tjvxlqqkpauqx0n782"; // shard 0 -// const WEGLD_TOKEN_IDENTIFIER: TestTokenIdentifier = TestTokenIdentifier::new("WEGLD-a28c59"); const WRAP_AMOUNT: u64 = 50000000000000000; // 0.05 EGLD const UNWRAP_AMOUNT: u64 = 25000000000000000; // 0.025 WEGLD From 6a99b98c424cacd49edeceb476f489a6966a338d Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 11:13:37 +0300 Subject: [PATCH 169/185] test cleanup --- framework/meta/src/cmd/contract/meta_config.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/meta/src/cmd/contract/meta_config.rs b/framework/meta/src/cmd/contract/meta_config.rs index 7543327d06..a33fb98c5d 100644 --- a/framework/meta/src/cmd/contract/meta_config.rs +++ b/framework/meta/src/cmd/contract/meta_config.rs @@ -208,7 +208,7 @@ panic = \"abort\" path = \"..\" [dependencies.multiversx-sc-wasm-adapter] -version = \"0.49.0\" +version = \"x.y.z\" path = \"../../../../framework/wasm-adapter\" [workspace] @@ -221,7 +221,7 @@ members = [\".\"] name: "test".to_string(), edition: "2021".to_string(), profile: ContractVariantProfile::default(), - framework_version: "0.49.0".to_string(), + framework_version: "x.y.z".to_string(), framework_path: Option::Some("../../../framework/base".to_string()), contract_features: Vec::::new(), }; From a3e554eaa9edd39c0d530006852addface2df58b Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 11:16:02 +0300 Subject: [PATCH 170/185] sc 0.50.0, codec 0.19.0, vm 0.8.4, sdk 0.4.1 --- CHANGELOG.md | 8 ++++++ Cargo.lock | 26 +++++++++---------- contracts/benchmarks/large-storage/Cargo.toml | 4 +-- .../benchmarks/large-storage/meta/Cargo.toml | 2 +- .../benchmarks/large-storage/wasm/Cargo.toml | 2 +- .../mappers/benchmark-common/Cargo.toml | 4 +-- .../mappers/linked-list-repeat/Cargo.toml | 4 +-- .../linked-list-repeat/meta/Cargo.toml | 2 +- .../linked-list-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/map-repeat/Cargo.toml | 4 +-- .../mappers/map-repeat/meta/Cargo.toml | 2 +- .../mappers/map-repeat/wasm/Cargo.toml | 2 +- .../mappers/queue-repeat/Cargo.toml | 4 +-- .../mappers/queue-repeat/meta/Cargo.toml | 2 +- .../mappers/queue-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/set-repeat/Cargo.toml | 4 +-- .../mappers/set-repeat/meta/Cargo.toml | 2 +- .../mappers/set-repeat/wasm/Cargo.toml | 2 +- .../mappers/single-value-repeat/Cargo.toml | 4 +-- .../single-value-repeat/meta/Cargo.toml | 2 +- .../single-value-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/mappers/vec-repeat/Cargo.toml | 4 +-- .../mappers/vec-repeat/meta/Cargo.toml | 2 +- .../mappers/vec-repeat/wasm/Cargo.toml | 2 +- .../benchmarks/send-tx-repeat/Cargo.toml | 4 +-- .../benchmarks/send-tx-repeat/meta/Cargo.toml | 2 +- .../benchmarks/send-tx-repeat/wasm/Cargo.toml | 2 +- contracts/benchmarks/str-repeat/Cargo.toml | 4 +-- .../benchmarks/str-repeat/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../benchmarks/str-repeat/wasm/Cargo.toml | 2 +- contracts/core/price-aggregator/Cargo.toml | 8 +++--- .../core/price-aggregator/meta/Cargo.toml | 4 +-- .../core/price-aggregator/wasm/Cargo.toml | 2 +- contracts/core/wegld-swap/Cargo.toml | 8 +++--- contracts/core/wegld-swap/meta/Cargo.toml | 4 +-- contracts/core/wegld-swap/wasm/Cargo.toml | 2 +- contracts/examples/adder/Cargo.toml | 4 +-- contracts/examples/adder/interact/Cargo.toml | 2 +- contracts/examples/adder/meta/Cargo.toml | 2 +- contracts/examples/adder/wasm/Cargo.toml | 2 +- .../bonding-curve-contract/Cargo.toml | 6 ++--- .../bonding-curve-contract/meta/Cargo.toml | 2 +- .../bonding-curve-contract/wasm/Cargo.toml | 2 +- contracts/examples/check-pause/Cargo.toml | 6 ++--- .../examples/check-pause/meta/Cargo.toml | 2 +- .../examples/check-pause/wasm/Cargo.toml | 2 +- .../examples/crowdfunding-esdt/Cargo.toml | 4 +-- .../crowdfunding-esdt/meta/Cargo.toml | 2 +- .../crowdfunding-esdt/wasm/Cargo.toml | 2 +- contracts/examples/crypto-bubbles/Cargo.toml | 4 +-- .../examples/crypto-bubbles/meta/Cargo.toml | 2 +- .../examples/crypto-bubbles/wasm/Cargo.toml | 2 +- .../crypto-kitties/common/kitty/Cargo.toml | 2 +- .../crypto-kitties/common/random/Cargo.toml | 2 +- .../crypto-kitties/kitty-auction/Cargo.toml | 4 +-- .../kitty-auction/meta/Cargo.toml | 2 +- .../kitty-auction/wasm/Cargo.toml | 2 +- .../kitty-genetic-alg/Cargo.toml | 4 +-- .../kitty-genetic-alg/meta/Cargo.toml | 2 +- .../kitty-genetic-alg/wasm/Cargo.toml | 2 +- .../crypto-kitties/kitty-ownership/Cargo.toml | 4 +-- .../kitty-ownership/meta/Cargo.toml | 2 +- .../kitty-ownership/wasm/Cargo.toml | 2 +- contracts/examples/crypto-zombies/Cargo.toml | 4 +-- .../examples/crypto-zombies/meta/Cargo.toml | 2 +- .../examples/crypto-zombies/wasm/Cargo.toml | 2 +- contracts/examples/digital-cash/Cargo.toml | 4 +-- .../examples/digital-cash/meta/Cargo.toml | 2 +- .../examples/digital-cash/wasm/Cargo.toml | 2 +- contracts/examples/empty/Cargo.toml | 4 +-- contracts/examples/empty/meta/Cargo.toml | 2 +- contracts/examples/empty/wasm/Cargo.toml | 2 +- .../esdt-transfer-with-fee/Cargo.toml | 4 +-- .../esdt-transfer-with-fee/meta/Cargo.toml | 2 +- .../esdt-transfer-with-fee/wasm/Cargo.toml | 2 +- contracts/examples/factorial/Cargo.toml | 4 +-- contracts/examples/factorial/meta/Cargo.toml | 2 +- contracts/examples/factorial/wasm/Cargo.toml | 2 +- contracts/examples/fractional-nfts/Cargo.toml | 6 ++--- .../examples/fractional-nfts/meta/Cargo.toml | 2 +- .../examples/fractional-nfts/wasm/Cargo.toml | 2 +- contracts/examples/lottery-esdt/Cargo.toml | 4 +-- .../examples/lottery-esdt/meta/Cargo.toml | 2 +- .../examples/lottery-esdt/wasm/Cargo.toml | 2 +- contracts/examples/multisig/Cargo.toml | 8 +++--- .../examples/multisig/interact/Cargo.toml | 8 +++--- contracts/examples/multisig/meta/Cargo.toml | 2 +- .../multisig/wasm-multisig-full/Cargo.toml | 2 +- .../multisig/wasm-multisig-view/Cargo.toml | 2 +- contracts/examples/multisig/wasm/Cargo.toml | 2 +- contracts/examples/nft-minter/Cargo.toml | 4 +-- contracts/examples/nft-minter/meta/Cargo.toml | 2 +- contracts/examples/nft-minter/wasm/Cargo.toml | 2 +- .../examples/nft-storage-prepay/Cargo.toml | 4 +-- .../nft-storage-prepay/meta/Cargo.toml | 2 +- .../nft-storage-prepay/wasm/Cargo.toml | 2 +- .../examples/nft-subscription/Cargo.toml | 6 ++--- .../examples/nft-subscription/meta/Cargo.toml | 2 +- .../examples/nft-subscription/wasm/Cargo.toml | 2 +- .../examples/order-book/factory/Cargo.toml | 4 +-- .../order-book/factory/meta/Cargo.toml | 2 +- .../order-book/factory/wasm/Cargo.toml | 2 +- contracts/examples/order-book/pair/Cargo.toml | 4 +-- .../examples/order-book/pair/meta/Cargo.toml | 2 +- .../examples/order-book/pair/wasm/Cargo.toml | 2 +- contracts/examples/ping-pong-egld/Cargo.toml | 4 +-- .../examples/ping-pong-egld/meta/Cargo.toml | 2 +- .../examples/ping-pong-egld/wasm/Cargo.toml | 2 +- contracts/examples/proxy-pause/Cargo.toml | 4 +-- .../examples/proxy-pause/meta/Cargo.toml | 2 +- .../examples/proxy-pause/wasm/Cargo.toml | 2 +- .../examples/rewards-distribution/Cargo.toml | 6 ++--- .../rewards-distribution/meta/Cargo.toml | 2 +- .../rewards-distribution/wasm/Cargo.toml | 2 +- contracts/examples/seed-nft-minter/Cargo.toml | 6 ++--- .../examples/seed-nft-minter/meta/Cargo.toml | 2 +- .../examples/seed-nft-minter/wasm/Cargo.toml | 2 +- contracts/examples/token-release/Cargo.toml | 4 +-- .../examples/token-release/meta/Cargo.toml | 2 +- .../examples/token-release/wasm/Cargo.toml | 2 +- contracts/feature-tests/abi-tester/Cargo.toml | 6 ++--- .../abi_tester_expected_main.abi.json | 2 +- .../abi_tester_expected_view.abi.json | 2 +- .../feature-tests/abi-tester/meta/Cargo.toml | 2 +- .../abi-tester/wasm-abi-tester-ev/Cargo.toml | 2 +- .../feature-tests/abi-tester/wasm/Cargo.toml | 2 +- .../feature-tests/alloc-features/Cargo.toml | 4 +-- .../alloc-features/meta/Cargo.toml | 2 +- .../wasm-alloc-mem-fail/Cargo.toml | 2 +- .../wasm-alloc-mem-leaking/Cargo.toml | 2 +- .../alloc-features/wasm/Cargo.toml | 2 +- .../feature-tests/basic-features/Cargo.toml | 6 ++--- .../basic-features/interact/Cargo.toml | 2 +- .../basic-features/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../basic-features/wasm/Cargo.toml | 2 +- .../big-float-features/Cargo.toml | 4 +-- .../big-float-features/meta/Cargo.toml | 2 +- .../big-float-features/wasm/Cargo.toml | 2 +- .../feature-tests/composability/Cargo.toml | 4 +-- .../builtin-func-features/Cargo.toml | 4 +-- .../builtin-func-features/meta/Cargo.toml | 2 +- .../builtin-func-features/wasm/Cargo.toml | 2 +- .../esdt-contract-pair/Cargo.toml | 4 +-- .../first-contract/Cargo.toml | 4 +-- .../first-contract/meta/Cargo.toml | 4 +-- .../first-contract/wasm/Cargo.toml | 2 +- .../second-contract/Cargo.toml | 4 +-- .../second-contract/meta/Cargo.toml | 4 +-- .../second-contract/wasm/Cargo.toml | 2 +- .../Cargo.toml | 4 +-- .../child/Cargo.toml | 4 +-- .../child/meta/Cargo.toml | 4 +-- .../child/wasm/Cargo.toml | 2 +- .../parent/Cargo.toml | 4 +-- .../parent/meta/Cargo.toml | 4 +-- .../parent/wasm/Cargo.toml | 2 +- .../composability/forwarder-legacy/Cargo.toml | 4 +-- .../forwarder-legacy/meta/Cargo.toml | 2 +- .../forwarder-legacy/wasm/Cargo.toml | 2 +- .../composability/forwarder-queue/Cargo.toml | 6 ++--- .../forwarder-queue/meta/Cargo.toml | 2 +- .../wasm-forwarder-queue-promises/Cargo.toml | 2 +- .../forwarder-queue/wasm/Cargo.toml | 2 +- .../composability/forwarder-raw/Cargo.toml | 4 +-- .../forwarder-raw/meta/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../forwarder-raw/wasm/Cargo.toml | 2 +- .../composability/forwarder/Cargo.toml | 4 +-- .../composability/forwarder/meta/Cargo.toml | 2 +- .../composability/forwarder/wasm/Cargo.toml | 2 +- .../composability/interact/Cargo.toml | 4 +-- .../local-esdt-and-nft/Cargo.toml | 4 +-- .../local-esdt-and-nft/meta/Cargo.toml | 2 +- .../local-esdt-and-nft/wasm/Cargo.toml | 2 +- .../promises-features/Cargo.toml | 2 +- .../promises-features/meta/Cargo.toml | 2 +- .../promises-features/wasm/Cargo.toml | 2 +- .../composability/proxy-test-first/Cargo.toml | 4 +-- .../proxy-test-first/meta/Cargo.toml | 2 +- .../proxy-test-first/wasm/Cargo.toml | 2 +- .../proxy-test-second/Cargo.toml | 4 +-- .../proxy-test-second/meta/Cargo.toml | 2 +- .../proxy-test-second/wasm/Cargo.toml | 2 +- .../composability/recursive-caller/Cargo.toml | 4 +-- .../recursive-caller/meta/Cargo.toml | 2 +- .../recursive-caller/wasm/Cargo.toml | 2 +- .../transfer-role-features/Cargo.toml | 6 ++--- .../transfer-role-features/meta/Cargo.toml | 2 +- .../transfer-role-features/wasm/Cargo.toml | 2 +- .../composability/vault/Cargo.toml | 4 +-- .../composability/vault/meta/Cargo.toml | 2 +- .../vault/wasm-vault-promises/Cargo.toml | 2 +- .../vault/wasm-vault-upgrade/Cargo.toml | 2 +- .../composability/vault/wasm/Cargo.toml | 2 +- .../crowdfunding-erc20/Cargo.toml | 4 +-- .../crowdfunding-erc20/meta/Cargo.toml | 2 +- .../crowdfunding-erc20/wasm/Cargo.toml | 2 +- .../erc1155-marketplace/Cargo.toml | 4 +-- .../erc1155-marketplace/meta/Cargo.toml | 2 +- .../erc1155-marketplace/wasm/Cargo.toml | 2 +- .../erc1155-user-mock/Cargo.toml | 4 +-- .../erc1155-user-mock/meta/Cargo.toml | 2 +- .../erc1155-user-mock/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc1155/Cargo.toml | 4 +-- .../erc1155/meta/Cargo.toml | 2 +- .../erc1155/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc20/Cargo.toml | 4 +-- .../erc-style-contracts/erc20/meta/Cargo.toml | 2 +- .../erc-style-contracts/erc20/wasm/Cargo.toml | 2 +- .../erc-style-contracts/erc721/Cargo.toml | 4 +-- .../erc721/meta/Cargo.toml | 2 +- .../erc721/wasm/Cargo.toml | 2 +- .../lottery-erc20/Cargo.toml | 4 +-- .../lottery-erc20/meta/Cargo.toml | 2 +- .../lottery-erc20/wasm/Cargo.toml | 2 +- .../esdt-system-sc-mock/Cargo.toml | 4 +-- .../esdt-system-sc-mock/meta/Cargo.toml | 2 +- .../esdt-system-sc-mock/wasm/Cargo.toml | 2 +- .../exchange-features/Cargo.toml | 4 +-- .../exchange-features/meta/Cargo.toml | 2 +- .../exchange-features/wasm/Cargo.toml | 2 +- .../formatted-message-features/Cargo.toml | 4 +-- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- .../managed-map-features/Cargo.toml | 4 +-- .../managed-map-features/meta/Cargo.toml | 2 +- .../managed-map-features/wasm/Cargo.toml | 2 +- .../multi-contract-features/Cargo.toml | 4 +-- .../multi-contract-features/meta/Cargo.toml | 2 +- .../wasm-multi-contract-alt-impl/Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../Cargo.toml | 2 +- .../multi-contract-features/wasm/Cargo.toml | 2 +- .../panic-message-features/Cargo.toml | 4 +-- .../panic-message-features/meta/Cargo.toml | 2 +- .../panic-message-features/wasm/Cargo.toml | 2 +- .../feature-tests/payable-features/Cargo.toml | 4 +-- .../payable-features/meta/Cargo.toml | 2 +- .../payable-features/wasm/Cargo.toml | 2 +- .../rust-snippets-generator-test/Cargo.toml | 4 +-- .../interact-rs/Cargo.toml | 2 +- .../meta/Cargo.toml | 2 +- .../rust-snippets-generator-test/src/lib.rs | 2 +- .../wasm/Cargo.toml | 2 +- .../rust-testing-framework-tester/Cargo.toml | 4 +-- .../meta/Cargo.toml | 2 +- .../wasm/Cargo.toml | 2 +- .../feature-tests/scenario-tester/Cargo.toml | 4 +-- .../scenario-tester/meta/Cargo.toml | 2 +- .../scenario-tester/wasm/Cargo.toml | 2 +- contracts/feature-tests/use-module/Cargo.toml | 8 +++--- .../feature-tests/use-module/meta/Cargo.toml | 2 +- .../use-module/meta/abi/Cargo.toml | 4 +-- .../use_module_expected_main.abi.json | 2 +- .../use_module_expected_view.abi.json | 2 +- .../wasm-use-module-view/Cargo.toml | 2 +- .../feature-tests/use-module/wasm/Cargo.toml | 2 +- contracts/modules/Cargo.toml | 4 +-- data/codec-derive/Cargo.toml | 2 +- data/codec/Cargo.toml | 6 ++--- framework/base/Cargo.toml | 6 ++--- framework/derive/Cargo.toml | 2 +- framework/meta/Cargo.toml | 4 +-- .../generate_snippets/snippet_crate_gen.rs | 2 +- framework/meta/src/version_history.rs | 3 ++- framework/scenario/Cargo.toml | 10 +++---- framework/snippets/Cargo.toml | 6 ++--- framework/wasm-adapter/Cargo.toml | 4 +-- sdk/core/Cargo.toml | 2 +- tools/mxpy-snippet-generator/Cargo.toml | 2 +- tools/rust-debugger/format-tests/Cargo.toml | 6 ++--- vm/Cargo.toml | 2 +- 276 files changed, 418 insertions(+), 409 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 030ef99324..5c2352ff1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,14 @@ They are: - `multiversx-chain-scenario-format`, in short `scenario-format`, scenario JSON serializer/deserializer, 1 crate. - `multiversx-sdk`, in short `sdk`, allows communication with the chain(s), 1 crate. +## [sc 0.50.0, codec 0.19.0, vm 0.8.4, sdk 0.4.1] - 2024-05-10 +- Framework now runs on **stable** Rust. All unstable features were removed. The most important changes enabling this: + - `CodecFrom` completely removed, `TypeAbiFrom` was used instead since 0.49.0. + - `ManagedVecItem` payload redesigned. + - Contract panic message mechanism improved. +- Unified syntax: + - `NotPayable` marker type in proxies, which prevents callers to add payment to a non-payable endpoint. + ## [sc 0.49.0, codec 0.18.8, sdk 0.4.0] - 2024-05-07 - Unified transaction syntax - new syntax for sending transactions from contracts diff --git a/Cargo.lock b/Cargo.lock index fe83047020..8dba3c1854 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -1861,7 +1861,7 @@ dependencies = [ [[package]] name = "multiversx-chain-vm" -version = "0.8.3" +version = "0.8.4" dependencies = [ "bitflags 2.5.0", "colored", @@ -1886,7 +1886,7 @@ checksum = "b59072fa0624b55ae5ae3fa6bfa91515bbeb4ac440214bc4a509e2c8806d6e9f" [[package]] name = "multiversx-price-aggregator-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "arrayvec", "getrandom 0.2.14", @@ -1907,7 +1907,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags 2.5.0", "hex-literal", @@ -1919,7 +1919,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -1929,7 +1929,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -1939,7 +1939,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -1950,7 +1950,7 @@ dependencies = [ [[package]] name = "multiversx-sc-meta" -version = "0.49.0" +version = "0.50.0" dependencies = [ "clap", "colored", @@ -1976,14 +1976,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-scenario" -version = "0.49.0" +version = "0.50.0" dependencies = [ "base64", "bech32", @@ -2010,7 +2010,7 @@ dependencies = [ [[package]] name = "multiversx-sc-snippets" -version = "0.49.0" +version = "0.50.0" dependencies = [ "base64", "env_logger", @@ -2025,14 +2025,14 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sdk" -version = "0.4.0" +version = "0.4.1" dependencies = [ "anyhow", "base64", @@ -2056,7 +2056,7 @@ dependencies = [ [[package]] name = "multiversx-wegld-swap-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", "multiversx-sc-modules", diff --git a/contracts/benchmarks/large-storage/Cargo.toml b/contracts/benchmarks/large-storage/Cargo.toml index dcc5cdf376..ad60a82f74 100644 --- a/contracts/benchmarks/large-storage/Cargo.toml +++ b/contracts/benchmarks/large-storage/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/large_storage.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/large-storage/meta/Cargo.toml b/contracts/benchmarks/large-storage/meta/Cargo.toml index 7bcc6749aa..43caaeea37 100644 --- a/contracts/benchmarks/large-storage/meta/Cargo.toml +++ b/contracts/benchmarks/large-storage/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.toml b/contracts/benchmarks/large-storage/wasm/Cargo.toml index 27442eadd5..37792b12f1 100644 --- a/contracts/benchmarks/large-storage/wasm/Cargo.toml +++ b/contracts/benchmarks/large-storage/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/benchmark-common/Cargo.toml b/contracts/benchmarks/mappers/benchmark-common/Cargo.toml index e040a59306..95d8d11ca4 100644 --- a/contracts/benchmarks/mappers/benchmark-common/Cargo.toml +++ b/contracts/benchmarks/mappers/benchmark-common/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml index f7ed9b60c4..693d4816b1 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml index 7686ad097b..f87d3e08ac 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml index f901bcd893..f99021343c 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/map-repeat/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/Cargo.toml index 19dd700f43..93ce0cf9fb 100644 --- a/contracts/benchmarks/mappers/map-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml index e2f453869c..37ca3cb2a6 100644 --- a/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml index a37c36a723..3a425203e2 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/queue-repeat/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/Cargo.toml index 0ef6135592..527ff13d73 100644 --- a/contracts/benchmarks/mappers/queue-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml index ac96744a95..d3edc93457 100644 --- a/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml index 86baf16ed1..6a874745ac 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/set-repeat/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/Cargo.toml index 20121d24af..dca506d44f 100644 --- a/contracts/benchmarks/mappers/set-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml index 1be790193f..5e6c8268b1 100644 --- a/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml index 32140cb3c9..f7173dc593 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml index 075eb30b8e..2d5cdaf3a9 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml index e693e7e883..38641c9dc7 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml index fb2acc6ebc..c8cd8d7c58 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/mappers/vec-repeat/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/Cargo.toml index 97b51e3a6f..318cb5fa3c 100644 --- a/contracts/benchmarks/mappers/vec-repeat/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/Cargo.toml @@ -13,9 +13,9 @@ path = "../benchmark-common" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml index 8a7d769dc1..c2d42c1e53 100644 --- a/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml index e66c6adebe..1f2160a463 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/send-tx-repeat/Cargo.toml b/contracts/benchmarks/send-tx-repeat/Cargo.toml index 326bafd16e..0cb5a4595e 100644 --- a/contracts/benchmarks/send-tx-repeat/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/send_tx_repeat.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml b/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml index 78a283168b..a0ee585630 100644 --- a/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml index 647b00bce5..5141d7db8b 100644 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/Cargo.toml b/contracts/benchmarks/str-repeat/Cargo.toml index 6fe33bc9df..0afdad980c 100644 --- a/contracts/benchmarks/str-repeat/Cargo.toml +++ b/contracts/benchmarks/str-repeat/Cargo.toml @@ -12,10 +12,10 @@ path = "src/str_repeat.rs" managed-buffer-builder-cached = ["multiversx-sc/managed-buffer-builder-cached"] [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/benchmarks/str-repeat/meta/Cargo.toml b/contracts/benchmarks/str-repeat/meta/Cargo.toml index 160503d84f..2a053f362a 100644 --- a/contracts/benchmarks/str-repeat/meta/Cargo.toml +++ b/contracts/benchmarks/str-repeat/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml index a4eeb33b9a..37f8484af3 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml index d0ad7a5766..16d624e31a 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.toml @@ -29,7 +29,7 @@ path = ".." features = ["managed-buffer-builder-cached"] [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.toml b/contracts/benchmarks/str-repeat/wasm/Cargo.toml index 6416f35226..94a9cee235 100644 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.toml +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/core/price-aggregator/Cargo.toml b/contracts/core/price-aggregator/Cargo.toml index 290806c1f2..93a8b91d51 100644 --- a/contracts/core/price-aggregator/Cargo.toml +++ b/contracts/core/price-aggregator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-price-aggregator-sc" -version = "0.49.0" +version = "0.50.0" authors = [ "Claudiu-Marcel Bruda ", "MultiversX ", @@ -19,15 +19,15 @@ edition = "2021" path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dependencies] diff --git a/contracts/core/price-aggregator/meta/Cargo.toml b/contracts/core/price-aggregator/meta/Cargo.toml index b3ee5b7f88..e39ae566e3 100644 --- a/contracts/core/price-aggregator/meta/Cargo.toml +++ b/contracts/core/price-aggregator/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/core/price-aggregator/wasm/Cargo.toml b/contracts/core/price-aggregator/wasm/Cargo.toml index cef8117a00..fbbdfb7394 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.toml +++ b/contracts/core/price-aggregator/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/core/wegld-swap/Cargo.toml b/contracts/core/wegld-swap/Cargo.toml index cb7582ec0a..f7b430a05f 100644 --- a/contracts/core/wegld-swap/Cargo.toml +++ b/contracts/core/wegld-swap/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-wegld-swap-sc" -version = "0.49.0" +version = "0.50.0" authors = [ "Dorin Iancu ", @@ -20,13 +20,13 @@ edition = "2021" path = "src/wegld.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/core/wegld-swap/meta/Cargo.toml b/contracts/core/wegld-swap/meta/Cargo.toml index d6d2b99c18..141e7af488 100644 --- a/contracts/core/wegld-swap/meta/Cargo.toml +++ b/contracts/core/wegld-swap/meta/Cargo.toml @@ -11,10 +11,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/core/wegld-swap/wasm/Cargo.toml b/contracts/core/wegld-swap/wasm/Cargo.toml index f2cd3330e8..1ba58a7626 100644 --- a/contracts/core/wegld-swap/wasm/Cargo.toml +++ b/contracts/core/wegld-swap/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/adder/Cargo.toml b/contracts/examples/adder/Cargo.toml index 370ddbcc94..01d7d11103 100644 --- a/contracts/examples/adder/Cargo.toml +++ b/contracts/examples/adder/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/adder.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/adder/interact/Cargo.toml b/contracts/examples/adder/interact/Cargo.toml index ead28c7bb3..3df4b6b103 100644 --- a/contracts/examples/adder/interact/Cargo.toml +++ b/contracts/examples/adder/interact/Cargo.toml @@ -18,5 +18,5 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/snippets" diff --git a/contracts/examples/adder/meta/Cargo.toml b/contracts/examples/adder/meta/Cargo.toml index c4a84b1d55..8a6f226a36 100644 --- a/contracts/examples/adder/meta/Cargo.toml +++ b/contracts/examples/adder/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/adder/wasm/Cargo.toml b/contracts/examples/adder/wasm/Cargo.toml index 71a97ec561..3b0e9c91af 100644 --- a/contracts/examples/adder/wasm/Cargo.toml +++ b/contracts/examples/adder/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/bonding-curve-contract/Cargo.toml b/contracts/examples/bonding-curve-contract/Cargo.toml index 87585ce189..fce63da78e 100644 --- a/contracts/examples/bonding-curve-contract/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/bonding_curve_contract.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/bonding-curve-contract/meta/Cargo.toml b/contracts/examples/bonding-curve-contract/meta/Cargo.toml index a8d9d6f565..e723215167 100644 --- a/contracts/examples/bonding-curve-contract/meta/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml index 9b0f4d51d2..b982e3bdf1 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.toml +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/check-pause/Cargo.toml b/contracts/examples/check-pause/Cargo.toml index 8eae83200f..599627d6fa 100644 --- a/contracts/examples/check-pause/Cargo.toml +++ b/contracts/examples/check-pause/Cargo.toml @@ -12,14 +12,14 @@ path = "src/check_pause.rs" num-bigint = "0.4" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/check-pause/meta/Cargo.toml b/contracts/examples/check-pause/meta/Cargo.toml index 444b267995..0725414e65 100644 --- a/contracts/examples/check-pause/meta/Cargo.toml +++ b/contracts/examples/check-pause/meta/Cargo.toml @@ -9,6 +9,6 @@ authors = ["Alin Cruceat "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/check-pause/wasm/Cargo.toml b/contracts/examples/check-pause/wasm/Cargo.toml index 7cde896cec..29e92731fb 100644 --- a/contracts/examples/check-pause/wasm/Cargo.toml +++ b/contracts/examples/check-pause/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crowdfunding-esdt/Cargo.toml b/contracts/examples/crowdfunding-esdt/Cargo.toml index ddacb5ea88..4f423292e1 100644 --- a/contracts/examples/crowdfunding-esdt/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/crowdfunding_esdt.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/examples/crowdfunding-esdt/meta/Cargo.toml b/contracts/examples/crowdfunding-esdt/meta/Cargo.toml index fd8c223775..b15a3ac041 100644 --- a/contracts/examples/crowdfunding-esdt/meta/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml index f8e5f35db8..bd584a528d 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-bubbles/Cargo.toml b/contracts/examples/crypto-bubbles/Cargo.toml index 06d8e5bf0e..4b3d2fa178 100644 --- a/contracts/examples/crypto-bubbles/Cargo.toml +++ b/contracts/examples/crypto-bubbles/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/crypto_bubbles.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/crypto-bubbles/meta/Cargo.toml b/contracts/examples/crypto-bubbles/meta/Cargo.toml index 6b38860ee5..519eacd8e6 100644 --- a/contracts/examples/crypto-bubbles/meta/Cargo.toml +++ b/contracts/examples/crypto-bubbles/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.toml b/contracts/examples/crypto-bubbles/wasm/Cargo.toml index db047fad7e..422c67a898 100644 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.toml +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/common/kitty/Cargo.toml b/contracts/examples/crypto-kitties/common/kitty/Cargo.toml index 4eb640e54d..7168dbee64 100644 --- a/contracts/examples/crypto-kitties/common/kitty/Cargo.toml +++ b/contracts/examples/crypto-kitties/common/kitty/Cargo.toml @@ -9,7 +9,7 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/base" [dependencies.random] diff --git a/contracts/examples/crypto-kitties/common/random/Cargo.toml b/contracts/examples/crypto-kitties/common/random/Cargo.toml index 4bae32ba87..cb4dabd43a 100644 --- a/contracts/examples/crypto-kitties/common/random/Cargo.toml +++ b/contracts/examples/crypto-kitties/common/random/Cargo.toml @@ -8,5 +8,5 @@ edition = "2021" path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/base" diff --git a/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml index 261d16405e..0d2443aac3 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/Cargo.toml @@ -17,9 +17,9 @@ version = "0.0.0" path = "../kitty-ownership" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml index f9f7905ded..4cc88d99bb 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml index 860539a5f0..ba25624426 100644 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml index 927d5dddb8..4eafac5572 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/Cargo.toml @@ -18,9 +18,9 @@ version = "0.0.0" path = "../common/random" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml index e2a77bc1b2..4fc99625d7 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml index 81e5ce96cd..fd704cc077 100644 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml index 051e4a41fe..5b1f9edb3d 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/Cargo.toml @@ -21,9 +21,9 @@ version = "0.0.0" path = "../kitty-genetic-alg" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml index 9352e5ca50..88740f3eaf 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml index c6526438af..acc9e65db5 100644 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/crypto-zombies/Cargo.toml b/contracts/examples/crypto-zombies/Cargo.toml index 19c94cebbb..08c3e904f5 100644 --- a/contracts/examples/crypto-zombies/Cargo.toml +++ b/contracts/examples/crypto-zombies/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/crypto-zombies/meta/Cargo.toml b/contracts/examples/crypto-zombies/meta/Cargo.toml index 4cda0e49a2..e71bcdf1aa 100644 --- a/contracts/examples/crypto-zombies/meta/Cargo.toml +++ b/contracts/examples/crypto-zombies/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.toml b/contracts/examples/crypto-zombies/wasm/Cargo.toml index 3529d541a7..07e1f9f79b 100644 --- a/contracts/examples/crypto-zombies/wasm/Cargo.toml +++ b/contracts/examples/crypto-zombies/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/digital-cash/Cargo.toml b/contracts/examples/digital-cash/Cargo.toml index 5acc43a29e..8a81d21842 100644 --- a/contracts/examples/digital-cash/Cargo.toml +++ b/contracts/examples/digital-cash/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/digital_cash.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/digital-cash/meta/Cargo.toml b/contracts/examples/digital-cash/meta/Cargo.toml index 2109e5f03f..9684210470 100644 --- a/contracts/examples/digital-cash/meta/Cargo.toml +++ b/contracts/examples/digital-cash/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/digital-cash/wasm/Cargo.toml b/contracts/examples/digital-cash/wasm/Cargo.toml index 7a5e5d2c38..c3e7ab8992 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.toml +++ b/contracts/examples/digital-cash/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/empty/Cargo.toml b/contracts/examples/empty/Cargo.toml index bc4fd42421..f7567c795c 100644 --- a/contracts/examples/empty/Cargo.toml +++ b/contracts/examples/empty/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/empty.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/examples/empty/meta/Cargo.toml b/contracts/examples/empty/meta/Cargo.toml index e41ae94b75..18045a22fe 100644 --- a/contracts/examples/empty/meta/Cargo.toml +++ b/contracts/examples/empty/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/empty/wasm/Cargo.toml b/contracts/examples/empty/wasm/Cargo.toml index 46be2fc8d9..986b5d4b40 100644 --- a/contracts/examples/empty/wasm/Cargo.toml +++ b/contracts/examples/empty/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/esdt-transfer-with-fee/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/Cargo.toml index cb6f14b852..18913a6a88 100644 --- a/contracts/examples/esdt-transfer-with-fee/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/esdt_transfer_with_fee.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml index 4cbd3d2966..e16702134c 100644 --- a/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml index 52bde7e951..908bf4efc1 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/factorial/Cargo.toml b/contracts/examples/factorial/Cargo.toml index deeb24230a..c2dd6c42d8 100644 --- a/contracts/examples/factorial/Cargo.toml +++ b/contracts/examples/factorial/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/factorial.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/factorial/meta/Cargo.toml b/contracts/examples/factorial/meta/Cargo.toml index d3030adfea..74f7c6dbe9 100644 --- a/contracts/examples/factorial/meta/Cargo.toml +++ b/contracts/examples/factorial/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/factorial/wasm/Cargo.toml b/contracts/examples/factorial/wasm/Cargo.toml index 59a8684d25..f4d306ec6d 100644 --- a/contracts/examples/factorial/wasm/Cargo.toml +++ b/contracts/examples/factorial/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/fractional-nfts/Cargo.toml b/contracts/examples/fractional-nfts/Cargo.toml index 85f79c2d3a..e3b4dd4721 100644 --- a/contracts/examples/fractional-nfts/Cargo.toml +++ b/contracts/examples/fractional-nfts/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/fractional_nfts.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/fractional-nfts/meta/Cargo.toml b/contracts/examples/fractional-nfts/meta/Cargo.toml index 36b7ab580a..07ab765495 100644 --- a/contracts/examples/fractional-nfts/meta/Cargo.toml +++ b/contracts/examples/fractional-nfts/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.toml b/contracts/examples/fractional-nfts/wasm/Cargo.toml index 40e0e872f9..e912cbed4b 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.toml +++ b/contracts/examples/fractional-nfts/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/lottery-esdt/Cargo.toml b/contracts/examples/lottery-esdt/Cargo.toml index 0efa27bad0..f6d4acb67e 100644 --- a/contracts/examples/lottery-esdt/Cargo.toml +++ b/contracts/examples/lottery-esdt/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lottery.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/lottery-esdt/meta/Cargo.toml b/contracts/examples/lottery-esdt/meta/Cargo.toml index c27259bfc9..2f737d5182 100644 --- a/contracts/examples/lottery-esdt/meta/Cargo.toml +++ b/contracts/examples/lottery-esdt/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.toml b/contracts/examples/lottery-esdt/wasm/Cargo.toml index 43f02beaa6..060058ceb5 100644 --- a/contracts/examples/lottery-esdt/wasm/Cargo.toml +++ b/contracts/examples/lottery-esdt/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/Cargo.toml b/contracts/examples/multisig/Cargo.toml index 0965cf8e44..102e7fff83 100644 --- a/contracts/examples/multisig/Cargo.toml +++ b/contracts/examples/multisig/Cargo.toml @@ -9,15 +9,15 @@ publish = false path = "src/multisig.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies.adder] @@ -27,7 +27,7 @@ path = "../adder" path = "../factorial" [dev-dependencies.multiversx-wegld-swap-sc] -version = "0.49.0" +version = "0.50.0" path = "../../core/wegld-swap" [dev-dependencies] diff --git a/contracts/examples/multisig/interact/Cargo.toml b/contracts/examples/multisig/interact/Cargo.toml index ee40893001..6d0980b08a 100644 --- a/contracts/examples/multisig/interact/Cargo.toml +++ b/contracts/examples/multisig/interact/Cargo.toml @@ -18,17 +18,17 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../../contracts/modules" [dependencies.multiversx-sc-snippets] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/snippets" [dependencies.multiversx-sc-scenario] -version = "=0.49.0" +version = "=0.50.0" path = "../../../../framework/scenario" [dependencies.multiversx-sc] -version = "=0.49.0" +version = "=0.50.0" path = "../../../../framework/base" diff --git a/contracts/examples/multisig/meta/Cargo.toml b/contracts/examples/multisig/meta/Cargo.toml index b5a20507cb..18643a8af8 100644 --- a/contracts/examples/multisig/meta/Cargo.toml +++ b/contracts/examples/multisig/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml index 56574d7e99..9339183ea0 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml index a268fc278e..9a1691b304 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.toml +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/multisig/wasm/Cargo.toml b/contracts/examples/multisig/wasm/Cargo.toml index 25e029859c..15c6fcdda4 100644 --- a/contracts/examples/multisig/wasm/Cargo.toml +++ b/contracts/examples/multisig/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-minter/Cargo.toml b/contracts/examples/nft-minter/Cargo.toml index 338861c1c6..6a6dc93818 100644 --- a/contracts/examples/nft-minter/Cargo.toml +++ b/contracts/examples/nft-minter/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-minter/meta/Cargo.toml b/contracts/examples/nft-minter/meta/Cargo.toml index 1f9e5c3426..64c911d3eb 100644 --- a/contracts/examples/nft-minter/meta/Cargo.toml +++ b/contracts/examples/nft-minter/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-minter/wasm/Cargo.toml b/contracts/examples/nft-minter/wasm/Cargo.toml index c7d2ff1569..d641e48f53 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.toml +++ b/contracts/examples/nft-minter/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-storage-prepay/Cargo.toml b/contracts/examples/nft-storage-prepay/Cargo.toml index 1f84d968f1..85ce98347a 100644 --- a/contracts/examples/nft-storage-prepay/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/Cargo.toml @@ -10,9 +10,9 @@ path = "src/nft_storage_prepay.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-storage-prepay/meta/Cargo.toml b/contracts/examples/nft-storage-prepay/meta/Cargo.toml index d5bc2477af..f84e4d7e0b 100644 --- a/contracts/examples/nft-storage-prepay/meta/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/meta/Cargo.toml @@ -11,6 +11,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml index 8755b0181f..7b9b0b7b5a 100644 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.toml +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/nft-subscription/Cargo.toml b/contracts/examples/nft-subscription/Cargo.toml index 68d04d57a0..e9b428722c 100644 --- a/contracts/examples/nft-subscription/Cargo.toml +++ b/contracts/examples/nft-subscription/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/nft-subscription/meta/Cargo.toml b/contracts/examples/nft-subscription/meta/Cargo.toml index b338b27089..a7149fa9dd 100644 --- a/contracts/examples/nft-subscription/meta/Cargo.toml +++ b/contracts/examples/nft-subscription/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/nft-subscription/wasm/Cargo.toml b/contracts/examples/nft-subscription/wasm/Cargo.toml index 4f4defe1d1..3eb795ed69 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.toml +++ b/contracts/examples/nft-subscription/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/order-book/factory/Cargo.toml b/contracts/examples/order-book/factory/Cargo.toml index 9d2461e39a..0565667f2b 100644 --- a/contracts/examples/order-book/factory/Cargo.toml +++ b/contracts/examples/order-book/factory/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/order-book/factory/meta/Cargo.toml b/contracts/examples/order-book/factory/meta/Cargo.toml index c218e0d100..4bf0679153 100644 --- a/contracts/examples/order-book/factory/meta/Cargo.toml +++ b/contracts/examples/order-book/factory/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/order-book/factory/wasm/Cargo.toml b/contracts/examples/order-book/factory/wasm/Cargo.toml index 447881dd39..b9bc987077 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.toml +++ b/contracts/examples/order-book/factory/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/order-book/pair/Cargo.toml b/contracts/examples/order-book/pair/Cargo.toml index c888a2b68b..506621642f 100644 --- a/contracts/examples/order-book/pair/Cargo.toml +++ b/contracts/examples/order-book/pair/Cargo.toml @@ -8,9 +8,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/examples/order-book/pair/meta/Cargo.toml b/contracts/examples/order-book/pair/meta/Cargo.toml index 916eeb5b35..434e1a0753 100644 --- a/contracts/examples/order-book/pair/meta/Cargo.toml +++ b/contracts/examples/order-book/pair/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/examples/order-book/pair/wasm/Cargo.toml b/contracts/examples/order-book/pair/wasm/Cargo.toml index b2ccac9166..1e51e9c3fb 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.toml +++ b/contracts/examples/order-book/pair/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/ping-pong-egld/Cargo.toml b/contracts/examples/ping-pong-egld/Cargo.toml index 9b932eeb32..0cf328ce40 100644 --- a/contracts/examples/ping-pong-egld/Cargo.toml +++ b/contracts/examples/ping-pong-egld/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/ping_pong.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/ping-pong-egld/meta/Cargo.toml b/contracts/examples/ping-pong-egld/meta/Cargo.toml index 0d90a922fa..948d484e68 100644 --- a/contracts/examples/ping-pong-egld/meta/Cargo.toml +++ b/contracts/examples/ping-pong-egld/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.toml b/contracts/examples/ping-pong-egld/wasm/Cargo.toml index 3da28b8cd9..6d50aca185 100644 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.toml +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/proxy-pause/Cargo.toml b/contracts/examples/proxy-pause/Cargo.toml index ebb7a49d11..9a406d26e3 100644 --- a/contracts/examples/proxy-pause/Cargo.toml +++ b/contracts/examples/proxy-pause/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/proxy_pause.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies.check-pause] diff --git a/contracts/examples/proxy-pause/meta/Cargo.toml b/contracts/examples/proxy-pause/meta/Cargo.toml index 8e8fc44c7f..9aa661cca5 100644 --- a/contracts/examples/proxy-pause/meta/Cargo.toml +++ b/contracts/examples/proxy-pause/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = [ "you",] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/proxy-pause/wasm/Cargo.toml b/contracts/examples/proxy-pause/wasm/Cargo.toml index 038b546376..94aa50c199 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.toml +++ b/contracts/examples/proxy-pause/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/rewards-distribution/Cargo.toml b/contracts/examples/rewards-distribution/Cargo.toml index dad96385d1..06a8a138e0 100644 --- a/contracts/examples/rewards-distribution/Cargo.toml +++ b/contracts/examples/rewards-distribution/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/rewards_distribution.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/rewards-distribution/meta/Cargo.toml b/contracts/examples/rewards-distribution/meta/Cargo.toml index 254c15933f..4ee4f2feb1 100644 --- a/contracts/examples/rewards-distribution/meta/Cargo.toml +++ b/contracts/examples/rewards-distribution/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = ["Claudiu-Marcel Bruda "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.toml b/contracts/examples/rewards-distribution/wasm/Cargo.toml index c2c9f1f27b..9f260e035e 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.toml +++ b/contracts/examples/rewards-distribution/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/seed-nft-minter/Cargo.toml b/contracts/examples/seed-nft-minter/Cargo.toml index 2d7df44815..b69d9c9a1b 100644 --- a/contracts/examples/seed-nft-minter/Cargo.toml +++ b/contracts/examples/seed-nft-minter/Cargo.toml @@ -9,13 +9,13 @@ publish = false path = "src/seed_nft_minter.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/seed-nft-minter/meta/Cargo.toml b/contracts/examples/seed-nft-minter/meta/Cargo.toml index a25a40890d..8c9b014b15 100644 --- a/contracts/examples/seed-nft-minter/meta/Cargo.toml +++ b/contracts/examples/seed-nft-minter/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = ["Claudiu-Marcel Bruda "] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.toml b/contracts/examples/seed-nft-minter/wasm/Cargo.toml index e908400d3f..7ff1aa3167 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.toml +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/examples/token-release/Cargo.toml b/contracts/examples/token-release/Cargo.toml index 1433b850db..a9dd91049c 100644 --- a/contracts/examples/token-release/Cargo.toml +++ b/contracts/examples/token-release/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/token_release.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/examples/token-release/meta/Cargo.toml b/contracts/examples/token-release/meta/Cargo.toml index 990c33fa6f..6472c62dbe 100644 --- a/contracts/examples/token-release/meta/Cargo.toml +++ b/contracts/examples/token-release/meta/Cargo.toml @@ -10,7 +10,7 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/examples/token-release/wasm/Cargo.toml b/contracts/examples/token-release/wasm/Cargo.toml index f1d2ab14d8..7ba8ba53de 100644 --- a/contracts/examples/token-release/wasm/Cargo.toml +++ b/contracts/examples/token-release/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/abi-tester/Cargo.toml b/contracts/feature-tests/abi-tester/Cargo.toml index a2f0a34982..b91a4658f8 100644 --- a/contracts/feature-tests/abi-tester/Cargo.toml +++ b/contracts/feature-tests/abi-tester/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/abi_tester.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/meta" diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json index c45d388a93..83cee8e243 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_main.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0" + "version": "0.50.0" } }, "docs": [ diff --git a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json index 10926621d5..616cb2c407 100644 --- a/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json +++ b/contracts/feature-tests/abi-tester/abi_tester_expected_view.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0" + "version": "0.50.0" } }, "docs": [ diff --git a/contracts/feature-tests/abi-tester/meta/Cargo.toml b/contracts/feature-tests/abi-tester/meta/Cargo.toml index 2d1614552c..484740f799 100644 --- a/contracts/feature-tests/abi-tester/meta/Cargo.toml +++ b/contracts/feature-tests/abi-tester/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml index 0842c1c928..c987cc1014 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.toml b/contracts/feature-tests/abi-tester/wasm/Cargo.toml index 191ee3e3a0..a4c112d54a 100644 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/Cargo.toml b/contracts/feature-tests/alloc-features/Cargo.toml index a6b7570493..deba8cc77f 100644 --- a/contracts/feature-tests/alloc-features/Cargo.toml +++ b/contracts/feature-tests/alloc-features/Cargo.toml @@ -9,12 +9,12 @@ publish = false path = "src/alloc_features_main.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/alloc-features/meta/Cargo.toml b/contracts/feature-tests/alloc-features/meta/Cargo.toml index 39e2e2bbb5..2476a7d590 100644 --- a/contracts/feature-tests/alloc-features/meta/Cargo.toml +++ b/contracts/feature-tests/alloc-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml index ce413d1f36..15c2824e8e 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml index 682f6897d8..b53825c649 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.toml b/contracts/feature-tests/alloc-features/wasm/Cargo.toml index 2fcade81d3..5483e7d87d 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.toml +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/basic-features/Cargo.toml b/contracts/feature-tests/basic-features/Cargo.toml index d38410d6b9..8b738d1002 100644 --- a/contracts/feature-tests/basic-features/Cargo.toml +++ b/contracts/feature-tests/basic-features/Cargo.toml @@ -9,15 +9,15 @@ publish = false path = "src/basic_features_main.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/basic-features/interact/Cargo.toml b/contracts/feature-tests/basic-features/interact/Cargo.toml index b419907f30..60de45ea57 100644 --- a/contracts/feature-tests/basic-features/interact/Cargo.toml +++ b/contracts/feature-tests/basic-features/interact/Cargo.toml @@ -18,5 +18,5 @@ toml = "0.8.6" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/snippets" diff --git a/contracts/feature-tests/basic-features/meta/Cargo.toml b/contracts/feature-tests/basic-features/meta/Cargo.toml index e3ef8d92db..f19e1049ea 100644 --- a/contracts/feature-tests/basic-features/meta/Cargo.toml +++ b/contracts/feature-tests/basic-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml index a701d5f906..c6aa9bf34d 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.toml b/contracts/feature-tests/basic-features/wasm/Cargo.toml index 8c72470601..f74de0e5bf 100644 --- a/contracts/feature-tests/basic-features/wasm/Cargo.toml +++ b/contracts/feature-tests/basic-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/big-float-features/Cargo.toml b/contracts/feature-tests/big-float-features/Cargo.toml index 9df1290f46..b6f5d8a268 100644 --- a/contracts/feature-tests/big-float-features/Cargo.toml +++ b/contracts/feature-tests/big-float-features/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/big_float_main.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/big-float-features/meta/Cargo.toml b/contracts/feature-tests/big-float-features/meta/Cargo.toml index 86e89a8b3e..2190f2d33a 100644 --- a/contracts/feature-tests/big-float-features/meta/Cargo.toml +++ b/contracts/feature-tests/big-float-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.toml b/contracts/feature-tests/big-float-features/wasm/Cargo.toml index 4b6f46e94f..3e42661142 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.toml +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/Cargo.toml b/contracts/feature-tests/composability/Cargo.toml index a046d2fc04..6b8aece3a1 100644 --- a/contracts/feature-tests/composability/Cargo.toml +++ b/contracts/feature-tests/composability/Cargo.toml @@ -36,9 +36,9 @@ path = "recursive-caller" path = "vault" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/composability/builtin-func-features/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/Cargo.toml index b3b2c9f699..e681d83de5 100644 --- a/contracts/feature-tests/composability/builtin-func-features/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/builtin_func_features.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml index 064dbaccaf..c21206f6b7 100644 --- a/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml index f40186154b..fb41856a7b 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml index 721c6184f3..c8590eddc0 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/Cargo.toml @@ -12,9 +12,9 @@ path = "first-contract" path = "second-contract" [dev-dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml index 7af866cd4e..5df5441b60 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml index 4abad84c18..7cb1c1954f 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml index 9c42dd837a..5f227a3bbd 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml index 57e6ed92c9..4876471d56 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/Cargo.toml @@ -10,10 +10,10 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml index c09425c97d..ec4dd76d45 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml index 30e743e020..c112f28171 100644 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml index c5e600ae68..4d454c45bd 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/Cargo.toml @@ -16,9 +16,9 @@ path = "parent" path = "child" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml index 6fc29bfa35..58cf6fb6c1 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/Cargo.toml @@ -10,9 +10,9 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml index 0d2a3c28e2..2c3435f72f 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml index 88e099d8f2..08b87de82c 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml index e590beb2ce..40809b2ff8 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml index eaaffc0f52..1900e42ce5 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/meta/Cargo.toml @@ -8,10 +8,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml index d199c61242..8ae671f12c 100644 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml index ab4e3ef6fc..c296870251 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/Cargo.toml @@ -12,10 +12,10 @@ path = "src/forwarder_legacy_main.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml index c10276be04..698488368f 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml index b8a9a65275..d05dbe3ef7 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-queue/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/Cargo.toml index aff16f1726..48077eca8b 100644 --- a/contracts/feature-tests/composability/forwarder-queue/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/Cargo.toml @@ -9,14 +9,14 @@ publish = false path = "src/forwarder_queue.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" optional = true [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml index 87460aa1f3..4870962372 100644 --- a/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml index cad1551134..2486716bd7 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml index fbac1eb7ec..c961e16432 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/Cargo.toml index f7713252f0..bc898280c5 100644 --- a/contracts/feature-tests/composability/forwarder-raw/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/forwarder_raw.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml index cdba5af76c..c09653539c 100644 --- a/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml index e030257845..e1564c014d 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml index c593100248..5aab141abf 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml index 8f81ce9f86..34acac241a 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/forwarder/Cargo.toml b/contracts/feature-tests/composability/forwarder/Cargo.toml index c7c2f34df3..e8bac116cc 100644 --- a/contracts/feature-tests/composability/forwarder/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/forwarder_main.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/forwarder/meta/Cargo.toml b/contracts/feature-tests/composability/forwarder/meta/Cargo.toml index 28d02e3a90..5423d48966 100644 --- a/contracts/feature-tests/composability/forwarder/meta/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml index a5298af2e0..b7e6d9fc22 100644 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/interact/Cargo.toml b/contracts/feature-tests/composability/interact/Cargo.toml index cacf68eb1d..0b0fc143e0 100644 --- a/contracts/feature-tests/composability/interact/Cargo.toml +++ b/contracts/feature-tests/composability/interact/Cargo.toml @@ -24,9 +24,9 @@ path = "../forwarder-queue" path = "../promises-features" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../../contracts/modules" [dependencies.multiversx-sc-snippets] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/snippets" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml index e5022c4f59..6abdbbd6ad 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/Cargo.toml @@ -10,9 +10,9 @@ path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml index e30d729827..8be9e00cca 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml index 5130c19326..0bef6ec952 100644 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/promises-features/Cargo.toml b/contracts/feature-tests/composability/promises-features/Cargo.toml index 77cc9ef833..d859fa9184 100644 --- a/contracts/feature-tests/composability/promises-features/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = "src/promises_main.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" diff --git a/contracts/feature-tests/composability/promises-features/meta/Cargo.toml b/contracts/feature-tests/composability/promises-features/meta/Cargo.toml index 28c3c0b2c9..51b36cf55b 100644 --- a/contracts/feature-tests/composability/promises-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml index 528f5ad3ef..2a50527d00 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/proxy-test-first/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/Cargo.toml index bc21b32a39..5089ae8e5e 100644 --- a/contracts/feature-tests/composability/proxy-test-first/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/Cargo.toml @@ -12,10 +12,10 @@ path = "src/proxy-test-first.rs" hex-literal = "0.4.1" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml index b38a0f5474..a959e10a20 100644 --- a/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml index db6e8bb399..fb2967736b 100644 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/proxy-test-second/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/Cargo.toml index c9ae4da5f8..c37c88fa75 100644 --- a/contracts/feature-tests/composability/proxy-test-second/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/proxy-test-second.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml index 2ca6853d31..e4859fb220 100644 --- a/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml index 1d1aa84adc..fd2120ffa2 100644 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/recursive-caller/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/Cargo.toml index a85f718ce4..ecdcf89509 100644 --- a/contracts/feature-tests/composability/recursive-caller/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/Cargo.toml @@ -12,9 +12,9 @@ path = "src/recursive_caller.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml index 0c59d660b1..dc3784bfab 100644 --- a/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml index c41db08c8d..b52712716e 100644 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/transfer-role-features/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/Cargo.toml index 8d379cdaed..f1a1fc9d62 100644 --- a/contracts/feature-tests/composability/transfer-role-features/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/Cargo.toml @@ -12,13 +12,13 @@ path = "src/lib.rs" path = "../vault" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../../contracts/modules" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml index f6823d80da..8d0fcbb68b 100644 --- a/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml index 7611455289..e613b90c3e 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/Cargo.toml b/contracts/feature-tests/composability/vault/Cargo.toml index b2e54fbf1a..4da10eadf2 100644 --- a/contracts/feature-tests/composability/vault/Cargo.toml +++ b/contracts/feature-tests/composability/vault/Cargo.toml @@ -10,9 +10,9 @@ path = "src/vault.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/composability/vault/meta/Cargo.toml b/contracts/feature-tests/composability/vault/meta/Cargo.toml index 3cb6d85611..bba19b1692 100644 --- a/contracts/feature-tests/composability/vault/meta/Cargo.toml +++ b/contracts/feature-tests/composability/vault/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml index c15f4e3fcb..7ae312d234 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml index 8b00dd7f79..1ac9d7a3eb 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.toml b/contracts/feature-tests/composability/vault/wasm/Cargo.toml index b2c689042d..dcad7dd470 100644 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.toml +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml index 58f8eb9a66..af59c252e1 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/Cargo.toml @@ -12,10 +12,10 @@ path = "src/crowdfunding_erc20.rs" path = "../erc20" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml index c964676fcc..109640cbff 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml index 353260c769..a12ad76ba5 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml index 3c1fd04452..1ed1db494f 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/Cargo.toml @@ -13,10 +13,10 @@ path = "src/lib.rs" path = "../erc1155" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml index 3f010b8d56..d0c6a8f89a 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml index 4ab22904d3..920cdb6d18 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml index 5a35bd1ac8..20e6accec6 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml index c95b91c9c8..ff51534af6 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml index a643999ba9..99ab569a9b 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml index 6e245b8603..cd026019d1 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/Cargo.toml @@ -9,12 +9,12 @@ publish = false path = "src/erc1155.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" [dev-dependencies.erc1155-user-mock] diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml index 917bcfdf75..8920ff26ca 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml index edae4b9512..226a4e656d 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml index e622226f95..4e79b41a48 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/erc20.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml index 13356ab1e2..7ecffa7baf 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml index 737591bb25..f7d2303648 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml index 54d2d63fcc..36b342c5fb 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/Cargo.toml @@ -10,9 +10,9 @@ path = "src/erc721.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml index df452bd789..7109f4e70a 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml index 883748a64d..8bda1c73ec 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml index abea523dd1..f439cf41d4 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/Cargo.toml @@ -12,10 +12,10 @@ path = "src/lottery.rs" path = "../erc20" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" features = ["alloc"] [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/scenario" diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml index 1edc440467..4d09e600fe 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml index a60943441f..fc81c88fd1 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml index 6414a39d8c..c6b14eadc7 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/esdt_system_sc_mock.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml index f53e18476b..18eb3960d2 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml index 2a12a6d9ab..7697d25efc 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/exchange-features/Cargo.toml b/contracts/feature-tests/exchange-features/Cargo.toml index 8d21d6320b..5ab2bdea18 100644 --- a/contracts/feature-tests/exchange-features/Cargo.toml +++ b/contracts/feature-tests/exchange-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/exchange_features.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/exchange-features/meta/Cargo.toml b/contracts/feature-tests/exchange-features/meta/Cargo.toml index 539f20a16a..0b7383402f 100644 --- a/contracts/feature-tests/exchange-features/meta/Cargo.toml +++ b/contracts/feature-tests/exchange-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.toml b/contracts/feature-tests/exchange-features/wasm/Cargo.toml index a4f0852da8..0141df21ea 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.toml +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/formatted-message-features/Cargo.toml b/contracts/feature-tests/formatted-message-features/Cargo.toml index 6511a95524..cd344b485b 100644 --- a/contracts/feature-tests/formatted-message-features/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/formatted_message_features.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/formatted-message-features/meta/Cargo.toml b/contracts/feature-tests/formatted-message-features/meta/Cargo.toml index 03b89e8914..38d0e6a75b 100644 --- a/contracts/feature-tests/formatted-message-features/meta/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/meta/Cargo.toml @@ -11,6 +11,6 @@ authors = [ "you",] path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml index dc6fa80f06..15bb2c28c0 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/managed-map-features/Cargo.toml b/contracts/feature-tests/managed-map-features/Cargo.toml index f52eefc261..5142134a89 100644 --- a/contracts/feature-tests/managed-map-features/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/Cargo.toml @@ -9,11 +9,11 @@ publish = false path = "src/mmap_features.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies.esdt-system-sc-mock] diff --git a/contracts/feature-tests/managed-map-features/meta/Cargo.toml b/contracts/feature-tests/managed-map-features/meta/Cargo.toml index ddd71f8b4e..710215d3ea 100644 --- a/contracts/feature-tests/managed-map-features/meta/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml index 7451a29f06..19b7f4231d 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.toml +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/Cargo.toml b/contracts/feature-tests/multi-contract-features/Cargo.toml index 2d36eb9bc2..9716c53dfc 100644 --- a/contracts/feature-tests/multi-contract-features/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/Cargo.toml @@ -12,9 +12,9 @@ path = "src/multi_contract_features.rs" example_feature = [] [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/multi-contract-features/meta/Cargo.toml b/contracts/feature-tests/multi-contract-features/meta/Cargo.toml index e3cf62d271..749f427f52 100644 --- a/contracts/feature-tests/multi-contract-features/meta/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml index 1ad18e13e1..2bc184ff09 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml index 5f56a568a8..ac7e6331ce 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.toml @@ -29,7 +29,7 @@ path = ".." features = ["example_feature"] [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml index 7ff6790e03..bc869f15fe 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml index 1a86cf9c8d..654a0bb859 100644 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/panic-message-features/Cargo.toml b/contracts/feature-tests/panic-message-features/Cargo.toml index 608aa93444..36e475bb60 100644 --- a/contracts/feature-tests/panic-message-features/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/panic_features.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/panic-message-features/meta/Cargo.toml b/contracts/feature-tests/panic-message-features/meta/Cargo.toml index c5ffba6f1a..98832309a9 100644 --- a/contracts/feature-tests/panic-message-features/meta/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml index 49e1111e0a..9e7e11f1ef 100644 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.toml +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/payable-features/Cargo.toml b/contracts/feature-tests/payable-features/Cargo.toml index d310d91154..b1a8eada8b 100644 --- a/contracts/feature-tests/payable-features/Cargo.toml +++ b/contracts/feature-tests/payable-features/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/payable_features.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/payable-features/meta/Cargo.toml b/contracts/feature-tests/payable-features/meta/Cargo.toml index 88c95cb422..4c8a0c1e82 100644 --- a/contracts/feature-tests/payable-features/meta/Cargo.toml +++ b/contracts/feature-tests/payable-features/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.toml b/contracts/feature-tests/payable-features/wasm/Cargo.toml index 20041a83c9..7077b92045 100644 --- a/contracts/feature-tests/payable-features/wasm/Cargo.toml +++ b/contracts/feature-tests/payable-features/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml index 3519576de9..28b21758f1 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml index 893542fe1d..dee69733d5 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/interact-rs/Cargo.toml @@ -13,7 +13,7 @@ path = "src/interactor_main.rs" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/snippets" # [workspace] diff --git a/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml index 3ca3dc298c..449c0c22c6 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs b/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs index 160a3556f0..39e3d6f0ec 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs +++ b/contracts/feature-tests/rust-snippets-generator-test/src/lib.rs @@ -13,7 +13,7 @@ multiversx_sc::derive_imports!(); // Additionally, we also have to update the interact-rs snippets manually to add relative paths: // [dependencies.multiversx-sc-snippets] -// version = "0.49.0" +// version = "0.50.0" // path = "../../../../framework/snippets" #[derive( diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml index ea261b7c3a..cfda3e917b 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml index 41ba45dadf..8a972dee28 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" publish = false [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" features = [ "alloc" ] @@ -17,7 +17,7 @@ path = "../../examples/adder" path = "../../feature-tests/basic-features" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies] diff --git a/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml index 02bfe884d6..2ab1f50f29 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml index 12847d64bc..55fe7b60eb 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/scenario-tester/Cargo.toml b/contracts/feature-tests/scenario-tester/Cargo.toml index 6e6fe3b9ba..7730957bf3 100644 --- a/contracts/feature-tests/scenario-tester/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/Cargo.toml @@ -9,9 +9,9 @@ publish = false path = "src/lib.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" diff --git a/contracts/feature-tests/scenario-tester/meta/Cargo.toml b/contracts/feature-tests/scenario-tester/meta/Cargo.toml index 4737585715..5e098c989a 100644 --- a/contracts/feature-tests/scenario-tester/meta/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/meta/Cargo.toml @@ -8,6 +8,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/scenario-tester/wasm/Cargo.toml b/contracts/feature-tests/scenario-tester/wasm/Cargo.toml index 603e662f9d..0119b76a59 100644 --- a/contracts/feature-tests/scenario-tester/wasm/Cargo.toml +++ b/contracts/feature-tests/scenario-tester/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/use-module/Cargo.toml b/contracts/feature-tests/use-module/Cargo.toml index a98424a2cf..96a755fa3e 100644 --- a/contracts/feature-tests/use-module/Cargo.toml +++ b/contracts/feature-tests/use-module/Cargo.toml @@ -9,17 +9,17 @@ publish = false path = "src/use_module.rs" [dependencies.multiversx-sc-modules] -version = "0.49.0" +version = "0.50.0" path = "../../../contracts/modules" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/base" [dev-dependencies.multiversx-sc-scenario] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/scenario" [dev-dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../framework/meta" diff --git a/contracts/feature-tests/use-module/meta/Cargo.toml b/contracts/feature-tests/use-module/meta/Cargo.toml index f98bb6d842..e236f28a16 100644 --- a/contracts/feature-tests/use-module/meta/Cargo.toml +++ b/contracts/feature-tests/use-module/meta/Cargo.toml @@ -9,6 +9,6 @@ publish = false path = ".." [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/use-module/meta/abi/Cargo.toml b/contracts/feature-tests/use-module/meta/abi/Cargo.toml index 1e5c98bd8f..2e3972993d 100644 --- a/contracts/feature-tests/use-module/meta/abi/Cargo.toml +++ b/contracts/feature-tests/use-module/meta/abi/Cargo.toml @@ -9,10 +9,10 @@ publish = false path = ".." [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/base" [dependencies.multiversx-sc-meta] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/meta" default-features = false diff --git a/contracts/feature-tests/use-module/use_module_expected_main.abi.json b/contracts/feature-tests/use-module/use_module_expected_main.abi.json index d12b746e0e..4bb1d59883 100644 --- a/contracts/feature-tests/use-module/use_module_expected_main.abi.json +++ b/contracts/feature-tests/use-module/use_module_expected_main.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0" + "version": "0.50.0" } }, "docs": [ diff --git a/contracts/feature-tests/use-module/use_module_expected_view.abi.json b/contracts/feature-tests/use-module/use_module_expected_view.abi.json index 4ea01b94a8..921701e29f 100644 --- a/contracts/feature-tests/use-module/use_module_expected_view.abi.json +++ b/contracts/feature-tests/use-module/use_module_expected_view.abi.json @@ -14,7 +14,7 @@ }, "framework": { "name": "multiversx-sc", - "version": "0.49.0" + "version": "0.50.0" } }, "docs": [ diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml index ceeef70516..0578f1a8dc 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/feature-tests/use-module/wasm/Cargo.toml b/contracts/feature-tests/use-module/wasm/Cargo.toml index a69dc56cf6..fb19580638 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.toml +++ b/contracts/feature-tests/use-module/wasm/Cargo.toml @@ -28,7 +28,7 @@ panic = "abort" path = ".." [dependencies.multiversx-sc-wasm-adapter] -version = "0.49.0" +version = "0.50.0" path = "../../../../framework/wasm-adapter" [workspace] diff --git a/contracts/modules/Cargo.toml b/contracts/modules/Cargo.toml index a9f513191b..88e24c875d 100644 --- a/contracts/modules/Cargo.toml +++ b/contracts/modules/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" edition = "2021" authors = ["MultiversX "] @@ -17,5 +17,5 @@ categories = ["no-std", "wasm", "cryptography::cryptocurrencies"] alloc = ["multiversx-sc/alloc"] [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../framework/base" diff --git a/data/codec-derive/Cargo.toml b/data/codec-derive/Cargo.toml index 9bc69bdc55..574b7dcb2c 100644 --- a/data/codec-derive/Cargo.toml +++ b/data/codec-derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" edition = "2021" authors = ["dorin.iancu ", "Andrei Marinica ", "MultiversX "] diff --git a/data/codec/Cargo.toml b/data/codec/Cargo.toml index 1b45cf90ae..d1acc107bf 100644 --- a/data/codec/Cargo.toml +++ b/data/codec/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] @@ -19,7 +19,7 @@ alloc = [] [dependencies.multiversx-sc-codec-derive] path = "../codec-derive" -version = "=0.18.8" +version = "=0.19.0" optional = true [dependencies] @@ -29,4 +29,4 @@ unwrap-infallible = "0.1.5" [dev-dependencies.multiversx-sc-codec-derive] path = "../codec-derive" -version = "=0.18.8" +version = "=0.19.0" diff --git a/framework/base/Cargo.toml b/framework/base/Cargo.toml index b16a3a7357..c112d5ae7f 100644 --- a/framework/base/Cargo.toml +++ b/framework/base/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] @@ -29,10 +29,10 @@ num-traits = { version = "=0.2.19", default-features = false } unwrap-infallible = "0.1.5" [dependencies.multiversx-sc-derive] -version = "=0.49.0" +version = "=0.50.0" path = "../derive" [dependencies.multiversx-sc-codec] -version = "=0.18.8" +version = "=0.19.0" path = "../../data/codec" features = ["derive"] diff --git a/framework/derive/Cargo.toml b/framework/derive/Cargo.toml index c8f5f2b337..dfbd737e90 100644 --- a/framework/derive/Cargo.toml +++ b/framework/derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" edition = "2021" authors = ["Andrei Marinica ", "MultiversX "] diff --git a/framework/meta/Cargo.toml b/framework/meta/Cargo.toml index 9c6f2b49c7..104675190b 100644 --- a/framework/meta/Cargo.toml +++ b/framework/meta/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-meta" -version = "0.49.0" +version = "0.50.0" edition = "2021" authors = [ @@ -52,7 +52,7 @@ pathdiff = { version = "0.2.1", optional = true } common-path = { version = "1.0.0", optional = true } [dependencies.multiversx-sc] -version = "=0.49.0" +version = "=0.50.0" path = "../base" features = ["alloc", "num-bigint"] diff --git a/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs b/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs index 09a2efeca1..d5f0ef31b0 100644 --- a/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs +++ b/framework/meta/src/cmd/contract/generate_snippets/snippet_crate_gen.rs @@ -69,7 +69,7 @@ path = "src/{SNIPPETS_SOURCE_FILE_NAME}" path = ".." [dependencies.multiversx-sc-snippets] -version = "0.49.0" +version = "0.50.0" # [workspace] diff --git a/framework/meta/src/version_history.rs b/framework/meta/src/version_history.rs index 146ebc4d57..e79db2e046 100644 --- a/framework/meta/src/version_history.rs +++ b/framework/meta/src/version_history.rs @@ -3,7 +3,7 @@ use crate::{framework_version, framework_versions, version::FrameworkVersion}; /// The last version to be used for upgrades and templates. /// /// Should be edited every time a new version of the framework is released. -pub const LAST_VERSION: FrameworkVersion = framework_version!(0.49.0); +pub const LAST_VERSION: FrameworkVersion = framework_version!(0.50.0); /// Indicates where to stop with the upgrades. pub const LAST_UPGRADE_VERSION: FrameworkVersion = LAST_VERSION; @@ -69,6 +69,7 @@ pub const VERSIONS: &[FrameworkVersion] = framework_versions![ 0.48.0, 0.48.1, 0.49.0, + 0.50.0, ]; #[rustfmt::skip] diff --git a/framework/scenario/Cargo.toml b/framework/scenario/Cargo.toml index 4f8e2de5cd..2495f292f5 100644 --- a/framework/scenario/Cargo.toml +++ b/framework/scenario/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-scenario" -version = "0.49.0" +version = "0.50.0" edition = "2021" authors = [ @@ -41,12 +41,12 @@ path = "src/main.rs" run-go-tests = [] [dependencies.multiversx-sc] -version = "=0.49.0" +version = "=0.50.0" features = ["alloc", "num-bigint"] path = "../base" [dependencies.multiversx-sc-meta] -version = "=0.49.0" +version = "=0.50.0" path = "../meta" [dependencies.multiversx-chain-scenario-format] @@ -57,9 +57,9 @@ path = "../../sdk/scenario-format" version = "0.2.0" [dependencies.multiversx-chain-vm] -version = "=0.8.3" +version = "=0.8.4" path = "../../vm" [dependencies.multiversx-sdk] -version = "=0.4.0" +version = "=0.4.1" path = "../../sdk/core" diff --git a/framework/snippets/Cargo.toml b/framework/snippets/Cargo.toml index eca0ac6dc1..8b0cdc9e20 100644 --- a/framework/snippets/Cargo.toml +++ b/framework/snippets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-snippets" -version = "0.49.0" +version = "0.50.0" edition = "2021" authors = ["MultiversX "] @@ -23,9 +23,9 @@ futures = "0.3" rand = "0.8.5" [dependencies.multiversx-sc-scenario] -version = "=0.49.0" +version = "=0.50.0" path = "../scenario" [dependencies.multiversx-sdk] -version = "=0.4.0" +version = "=0.4.1" path = "../../sdk/core" diff --git a/framework/wasm-adapter/Cargo.toml b/framework/wasm-adapter/Cargo.toml index 89aabf537c..4391acb65c 100644 --- a/framework/wasm-adapter/Cargo.toml +++ b/framework/wasm-adapter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" edition = "2021" authors = [ @@ -22,5 +22,5 @@ categories = [ ] [dependencies.multiversx-sc] -version = "=0.49.0" +version = "=0.50.0" path = "../base" diff --git a/sdk/core/Cargo.toml b/sdk/core/Cargo.toml index 2ca965fc83..319c81b137 100644 --- a/sdk/core/Cargo.toml +++ b/sdk/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-sdk" -version = "0.4.0" +version = "0.4.1" edition = "2021" authors = [ diff --git a/tools/mxpy-snippet-generator/Cargo.toml b/tools/mxpy-snippet-generator/Cargo.toml index 44f616b0f3..56b9e733c1 100644 --- a/tools/mxpy-snippet-generator/Cargo.toml +++ b/tools/mxpy-snippet-generator/Cargo.toml @@ -10,7 +10,7 @@ name = "mxpy-snippet-generator" path = "src/mxpy_snippet_generator.rs" [dependencies.multiversx-sc] -version = "0.49.0" +version = "0.50.0" path = "../../framework/base" [dependencies] diff --git a/tools/rust-debugger/format-tests/Cargo.toml b/tools/rust-debugger/format-tests/Cargo.toml index 1e44ac884f..33f3e4f4da 100644 --- a/tools/rust-debugger/format-tests/Cargo.toml +++ b/tools/rust-debugger/format-tests/Cargo.toml @@ -9,15 +9,15 @@ name = "format-tests" path = "src/format_tests.rs" [dependencies.multiversx-sc] -version = "=0.49.0" +version = "=0.50.0" path = "../../../framework/base" [dependencies.multiversx-sc-scenario] -version = "=0.49.0" +version = "=0.50.0" path = "../../../framework/scenario" [dependencies.multiversx-chain-vm] -version = "=0.8.3" +version = "=0.8.4" path = "../../../vm" [dev-dependencies] diff --git a/vm/Cargo.toml b/vm/Cargo.toml index eddc7cb8e1..907308f94f 100644 --- a/vm/Cargo.toml +++ b/vm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiversx-chain-vm" -version = "0.8.3" +version = "0.8.4" edition = "2021" authors = [ From c3818e9ec2050f7f7a4da203b29ae7e571943f36 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Fri, 10 May 2024 11:40:11 +0300 Subject: [PATCH 171/185] Cargo.lock update --- .../benchmarks/large-storage/wasm/Cargo.lock | 38 ++++++++++------- .../linked-list-repeat/wasm/Cargo.lock | 38 ++++++++++------- .../mappers/map-repeat/wasm/Cargo.lock | 38 ++++++++++------- .../mappers/queue-repeat/wasm/Cargo.lock | 38 ++++++++++------- .../mappers/set-repeat/wasm/Cargo.lock | 38 ++++++++++------- .../single-value-repeat/wasm/Cargo.lock | 38 ++++++++++------- .../mappers/vec-repeat/wasm/Cargo.lock | 38 ++++++++++------- .../benchmarks/send-tx-repeat/wasm/Cargo.lock | 38 ++++++++++------- .../Cargo.lock | 38 ++++++++++------- .../Cargo.lock | 38 ++++++++++------- .../benchmarks/str-repeat/wasm/Cargo.lock | 38 ++++++++++------- .../core/price-aggregator/wasm/Cargo.lock | 42 +++++++++++-------- contracts/examples/adder/wasm/Cargo.lock | 30 ++++++------- .../bonding-curve-contract/wasm/Cargo.lock | 32 +++++++------- .../examples/check-pause/wasm/Cargo.lock | 32 +++++++------- .../crowdfunding-esdt/wasm/Cargo.lock | 30 ++++++------- .../examples/crypto-bubbles/wasm/Cargo.lock | 30 ++++++------- .../kitty-auction/wasm/Cargo.lock | 30 ++++++------- .../kitty-genetic-alg/wasm/Cargo.lock | 30 ++++++------- .../kitty-ownership/wasm/Cargo.lock | 30 ++++++------- .../examples/crypto-zombies/wasm/Cargo.lock | 30 ++++++------- .../examples/digital-cash/wasm/Cargo.lock | 30 ++++++------- contracts/examples/empty/wasm/Cargo.lock | 30 ++++++------- .../esdt-transfer-with-fee/wasm/Cargo.lock | 30 ++++++------- contracts/examples/factorial/wasm/Cargo.lock | 30 ++++++------- .../examples/fractional-nfts/wasm/Cargo.lock | 32 +++++++------- .../examples/lottery-esdt/wasm/Cargo.lock | 30 ++++++------- .../multisig/wasm-multisig-full/Cargo.lock | 32 +++++++------- .../multisig/wasm-multisig-view/Cargo.lock | 32 +++++++------- contracts/examples/multisig/wasm/Cargo.lock | 32 +++++++------- contracts/examples/nft-minter/wasm/Cargo.lock | 30 ++++++------- .../nft-storage-prepay/wasm/Cargo.lock | 30 ++++++------- .../examples/nft-subscription/wasm/Cargo.lock | 32 +++++++------- .../order-book/factory/wasm/Cargo.lock | 30 ++++++------- .../examples/order-book/pair/wasm/Cargo.lock | 30 ++++++------- .../examples/ping-pong-egld/wasm/Cargo.lock | 30 ++++++------- .../examples/proxy-pause/wasm/Cargo.lock | 30 ++++++------- .../rewards-distribution/wasm/Cargo.lock | 32 +++++++------- .../examples/seed-nft-minter/wasm/Cargo.lock | 32 +++++++------- .../examples/token-release/wasm/Cargo.lock | 30 ++++++------- .../abi-tester/wasm-abi-tester-ev/Cargo.lock | 30 ++++++------- .../feature-tests/abi-tester/wasm/Cargo.lock | 30 ++++++------- .../wasm-alloc-mem-fail/Cargo.lock | 30 ++++++------- .../wasm-alloc-mem-leaking/Cargo.lock | 30 ++++++------- .../alloc-features/wasm/Cargo.lock | 30 ++++++------- .../Cargo.lock | 32 +++++++------- .../basic-features/wasm/Cargo.lock | 32 +++++++------- .../basic-features/wasm/src/lib.rs | 5 +-- .../big-float-features/wasm/Cargo.lock | 30 ++++++------- .../builtin-func-features/wasm/Cargo.lock | 30 ++++++------- .../first-contract/wasm/Cargo.lock | 30 ++++++------- .../second-contract/wasm/Cargo.lock | 30 ++++++------- .../child/wasm/Cargo.lock | 30 ++++++------- .../parent/wasm/Cargo.lock | 30 ++++++------- .../forwarder-legacy/wasm/Cargo.lock | 30 ++++++------- .../wasm-forwarder-queue-promises/Cargo.lock | 30 ++++++------- .../forwarder-queue/wasm/Cargo.lock | 30 ++++++------- .../Cargo.lock | 30 ++++++------- .../Cargo.lock | 30 ++++++------- .../forwarder-raw/wasm/Cargo.lock | 30 ++++++------- .../composability/forwarder/wasm/Cargo.lock | 30 ++++++------- .../local-esdt-and-nft/wasm/Cargo.lock | 30 ++++++------- .../promises-features/wasm/Cargo.lock | 30 ++++++------- .../proxy-test-first/wasm/Cargo.lock | 30 ++++++------- .../proxy-test-second/wasm/Cargo.lock | 30 ++++++------- .../recursive-caller/wasm/Cargo.lock | 30 ++++++------- .../transfer-role-features/wasm/Cargo.lock | 32 +++++++------- .../vault/wasm-vault-promises/Cargo.lock | 30 ++++++------- .../vault/wasm-vault-upgrade/Cargo.lock | 30 ++++++------- .../composability/vault/wasm/Cargo.lock | 30 ++++++------- .../crowdfunding-erc20/wasm/Cargo.lock | 30 ++++++------- .../erc1155-marketplace/wasm/Cargo.lock | 30 ++++++------- .../erc1155-user-mock/wasm/Cargo.lock | 30 ++++++------- .../erc1155/wasm/Cargo.lock | 30 ++++++------- .../erc-style-contracts/erc20/wasm/Cargo.lock | 30 ++++++------- .../erc721/wasm/Cargo.lock | 30 ++++++------- .../lottery-erc20/wasm/Cargo.lock | 30 ++++++------- .../esdt-system-sc-mock/wasm/Cargo.lock | 30 ++++++------- .../exchange-features/wasm/Cargo.lock | 30 ++++++------- .../wasm/Cargo.lock | 30 ++++++------- .../managed-map-features/wasm/Cargo.lock | 30 ++++++------- .../wasm-multi-contract-alt-impl/Cargo.lock | 30 ++++++------- .../Cargo.lock | 30 ++++++------- .../Cargo.lock | 30 ++++++------- .../multi-contract-features/wasm/Cargo.lock | 30 ++++++------- .../panic-message-features/wasm/Cargo.lock | 30 ++++++------- .../payable-features/wasm/Cargo.lock | 30 ++++++------- .../wasm/Cargo.lock | 30 ++++++------- .../wasm/Cargo.lock | 30 ++++++------- .../scenario-tester/wasm/Cargo.lock | 30 ++++++------- .../wasm-use-module-view/Cargo.lock | 32 +++++++------- .../feature-tests/use-module/wasm/Cargo.lock | 32 +++++++------- 92 files changed, 1479 insertions(+), 1384 deletions(-) diff --git a/contracts/benchmarks/large-storage/wasm/Cargo.lock b/contracts/benchmarks/large-storage/wasm/Cargo.lock index 3b11d697fe..dba248ea1e 100755 --- a/contracts/benchmarks/large-storage/wasm/Cargo.lock +++ b/contracts/benchmarks/large-storage/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,26 +55,28 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -84,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -95,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -111,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -154,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock index 449c08ea0f..abf67723b1 100644 --- a/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/linked-list-repeat/wasm/Cargo.lock @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -63,26 +63,28 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -92,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -103,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -119,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -162,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock index 19bbfef34c..f01af1f56f 100644 --- a/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/map-repeat/wasm/Cargo.lock @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -63,26 +63,28 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -92,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -103,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -119,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -162,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock index 3142322933..6906ca7296 100644 --- a/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/queue-repeat/wasm/Cargo.lock @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -47,26 +47,28 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -76,7 +78,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +89,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -103,18 +105,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -137,9 +139,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -162,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock index 5f6c1735e6..f5de0ccba1 100644 --- a/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/set-repeat/wasm/Cargo.lock @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -47,26 +47,28 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -76,7 +78,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +89,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -103,27 +105,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -162,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock index 8b63d51212..c9cfc96106 100644 --- a/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/single-value-repeat/wasm/Cargo.lock @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -47,26 +47,28 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -76,7 +78,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +89,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -103,27 +105,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -162,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -176,3 +178,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock index 66f60c60c1..8fd083636f 100644 --- a/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/mappers/vec-repeat/wasm/Cargo.lock @@ -23,9 +23,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -47,26 +47,28 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -76,7 +78,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +89,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -103,27 +105,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -146,9 +148,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -161,6 +163,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "vec-repeat" version = "0.0.0" diff --git a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock index cf7a8f3585..7c7075cab8 100755 --- a/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/send-tx-repeat/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,26 +40,28 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -69,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -96,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -154,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock index f855655dcc..5944a194d0 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-basic/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,26 +40,28 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -69,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -96,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -154,9 +156,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock index 938e18a3af..7a929b52ce 100644 --- a/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm-str-repeat-mb-builder-cached/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,26 +40,28 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -69,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -96,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -154,9 +156,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/benchmarks/str-repeat/wasm/Cargo.lock b/contracts/benchmarks/str-repeat/wasm/Cargo.lock index e7ac6d7c34..db58ccefaa 100755 --- a/contracts/benchmarks/str-repeat/wasm/Cargo.lock +++ b/contracts/benchmarks/str-repeat/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,26 +40,28 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -69,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -80,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -96,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -154,9 +156,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -168,3 +170,9 @@ name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" diff --git a/contracts/core/price-aggregator/wasm/Cargo.lock b/contracts/core/price-aggregator/wasm/Cargo.lock index 22f75ad2dc..3d174ea714 100644 --- a/contracts/core/price-aggregator/wasm/Cargo.lock +++ b/contracts/core/price-aggregator/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bumpalo" @@ -86,7 +86,7 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "multiversx-price-aggregator-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "arrayvec", "getrandom", @@ -105,26 +105,28 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", "multiversx-sc-codec", "multiversx-sc-derive", "num-traits", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", + "unwrap-infallible", ] [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -134,7 +136,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -145,14 +147,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -168,9 +170,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -189,18 +191,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -253,9 +255,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", @@ -268,6 +270,12 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unwrap-infallible" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151ac09978d3c2862c4e39b557f4eceee2cc72150bc4cb4f16abf061b6e381fb" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" diff --git a/contracts/examples/adder/wasm/Cargo.lock b/contracts/examples/adder/wasm/Cargo.lock index 23067b448c..c994e313a0 100755 --- a/contracts/examples/adder/wasm/Cargo.lock +++ b/contracts/examples/adder/wasm/Cargo.lock @@ -31,9 +31,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock index 97fff17f19..b49f1e8035 100644 --- a/contracts/examples/bonding-curve-contract/wasm/Cargo.lock +++ b/contracts/examples/bonding-curve-contract/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bonding-curve-contract" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,14 +98,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/check-pause/wasm/Cargo.lock b/contracts/examples/check-pause/wasm/Cargo.lock index 8c1752ba37..02663fa3ba 100644 --- a/contracts/examples/check-pause/wasm/Cargo.lock +++ b/contracts/examples/check-pause/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "check-pause" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,14 +98,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock index 82975c4c9e..742d20da66 100644 --- a/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock +++ b/contracts/examples/crowdfunding-esdt/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "crowdfunding-esdt" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/crypto-bubbles/wasm/Cargo.lock b/contracts/examples/crypto-bubbles/wasm/Cargo.lock index 461663fb08..99a6cfd4a4 100755 --- a/contracts/examples/crypto-bubbles/wasm/Cargo.lock +++ b/contracts/examples/crypto-bubbles/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "crypto-bubbles" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock index 3429cfc2aa..b9eba6f8b8 100755 --- a/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-auction/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -115,7 +115,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -126,7 +126,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -142,27 +142,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -192,9 +192,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock index 34b214a29f..9bd41c51e5 100755 --- a/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-genetic-alg/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -65,7 +65,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -107,7 +107,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -123,27 +123,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -173,9 +173,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock index c2ff73c1a1..fdc162f861 100755 --- a/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock +++ b/contracts/examples/crypto-kitties/kitty-ownership/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -96,7 +96,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -106,7 +106,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -117,7 +117,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -133,27 +133,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -183,9 +183,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/crypto-zombies/wasm/Cargo.lock b/contracts/examples/crypto-zombies/wasm/Cargo.lock index daaa6008dd..950cdb9357 100755 --- a/contracts/examples/crypto-zombies/wasm/Cargo.lock +++ b/contracts/examples/crypto-zombies/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "crypto-zombies" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/digital-cash/wasm/Cargo.lock b/contracts/examples/digital-cash/wasm/Cargo.lock index b1af97d669..2e8e5cce1b 100644 --- a/contracts/examples/digital-cash/wasm/Cargo.lock +++ b/contracts/examples/digital-cash/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "digital-cash" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/empty/wasm/Cargo.lock b/contracts/examples/empty/wasm/Cargo.lock index dbc333b9ad..ba7c3877e7 100755 --- a/contracts/examples/empty/wasm/Cargo.lock +++ b/contracts/examples/empty/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "empty" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock index 2ef8eb993d..afe6c093a1 100644 --- a/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock +++ b/contracts/examples/esdt-transfer-with-fee/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/factorial/wasm/Cargo.lock b/contracts/examples/factorial/wasm/Cargo.lock index c735d1dc1e..3ba746104c 100755 --- a/contracts/examples/factorial/wasm/Cargo.lock +++ b/contracts/examples/factorial/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/fractional-nfts/wasm/Cargo.lock b/contracts/examples/fractional-nfts/wasm/Cargo.lock index 40e63cd58f..f0edb04b88 100644 --- a/contracts/examples/fractional-nfts/wasm/Cargo.lock +++ b/contracts/examples/fractional-nfts/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,14 +98,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/lottery-esdt/wasm/Cargo.lock b/contracts/examples/lottery-esdt/wasm/Cargo.lock index 2f8a7a39c2..663e91c194 100755 --- a/contracts/examples/lottery-esdt/wasm/Cargo.lock +++ b/contracts/examples/lottery-esdt/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock index f8b39788d9..46e9d7a771 100644 --- a/contracts/examples/multisig/wasm-multisig-full/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-full/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,14 +98,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock index 6695e773fd..8983c03f09 100644 --- a/contracts/examples/multisig/wasm-multisig-view/Cargo.lock +++ b/contracts/examples/multisig/wasm-multisig-view/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,14 +98,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/multisig/wasm/Cargo.lock b/contracts/examples/multisig/wasm/Cargo.lock index c909fdc3cb..f17285f0dd 100755 --- a/contracts/examples/multisig/wasm/Cargo.lock +++ b/contracts/examples/multisig/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -56,7 +56,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,14 +98,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/nft-minter/wasm/Cargo.lock b/contracts/examples/nft-minter/wasm/Cargo.lock index 49df94c669..d2834d4c77 100644 --- a/contracts/examples/nft-minter/wasm/Cargo.lock +++ b/contracts/examples/nft-minter/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock index 7768750592..d74010ae43 100755 --- a/contracts/examples/nft-storage-prepay/wasm/Cargo.lock +++ b/contracts/examples/nft-storage-prepay/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/nft-subscription/wasm/Cargo.lock b/contracts/examples/nft-subscription/wasm/Cargo.lock index b3c296aff1..e3c54a2497 100644 --- a/contracts/examples/nft-subscription/wasm/Cargo.lock +++ b/contracts/examples/nft-subscription/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,14 +82,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/order-book/factory/wasm/Cargo.lock b/contracts/examples/order-book/factory/wasm/Cargo.lock index 362ce65cc0..8ffc6240e7 100644 --- a/contracts/examples/order-book/factory/wasm/Cargo.lock +++ b/contracts/examples/order-book/factory/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,9 +98,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -122,18 +122,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/order-book/pair/wasm/Cargo.lock b/contracts/examples/order-book/pair/wasm/Cargo.lock index 3d9462d6d6..1bd8cbe37a 100644 --- a/contracts/examples/order-book/pair/wasm/Cargo.lock +++ b/contracts/examples/order-book/pair/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,9 +98,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -122,18 +122,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/ping-pong-egld/wasm/Cargo.lock b/contracts/examples/ping-pong-egld/wasm/Cargo.lock index 6867ae9bf6..d3023cb2e3 100755 --- a/contracts/examples/ping-pong-egld/wasm/Cargo.lock +++ b/contracts/examples/ping-pong-egld/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,9 +98,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -122,18 +122,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/proxy-pause/wasm/Cargo.lock b/contracts/examples/proxy-pause/wasm/Cargo.lock index 45f61ca9b2..847c806b19 100644 --- a/contracts/examples/proxy-pause/wasm/Cargo.lock +++ b/contracts/examples/proxy-pause/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,18 +98,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/rewards-distribution/wasm/Cargo.lock b/contracts/examples/rewards-distribution/wasm/Cargo.lock index 67cddf29a5..97dace01a5 100644 --- a/contracts/examples/rewards-distribution/wasm/Cargo.lock +++ b/contracts/examples/rewards-distribution/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,14 +82,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -105,27 +105,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/seed-nft-minter/wasm/Cargo.lock b/contracts/examples/seed-nft-minter/wasm/Cargo.lock index 41afdbaf4c..d53e946cb8 100644 --- a/contracts/examples/seed-nft-minter/wasm/Cargo.lock +++ b/contracts/examples/seed-nft-minter/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,14 +82,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -105,27 +105,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/examples/token-release/wasm/Cargo.lock b/contracts/examples/token-release/wasm/Cargo.lock index 2dc67fca16..2619711a03 100644 --- a/contracts/examples/token-release/wasm/Cargo.lock +++ b/contracts/examples/token-release/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -141,9 +141,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock index b15de5154a..0fe6289884 100644 --- a/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm-abi-tester-ev/Cargo.lock @@ -31,9 +31,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/abi-tester/wasm/Cargo.lock b/contracts/feature-tests/abi-tester/wasm/Cargo.lock index 97c4e422b9..3e2b76af84 100755 --- a/contracts/feature-tests/abi-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/abi-tester/wasm/Cargo.lock @@ -31,9 +31,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock index 8ef8bda743..895f73e9ea 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-fail/Cargo.lock @@ -31,9 +31,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock index 94d26f6126..569d223c0a 100644 --- a/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm-alloc-mem-leaking/Cargo.lock @@ -31,9 +31,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/alloc-features/wasm/Cargo.lock b/contracts/feature-tests/alloc-features/wasm/Cargo.lock index 62bc5036eb..5b65d38617 100644 --- a/contracts/feature-tests/alloc-features/wasm/Cargo.lock +++ b/contracts/feature-tests/alloc-features/wasm/Cargo.lock @@ -31,9 +31,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock index 20a75d222d..09b815e212 100644 --- a/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm-basic-features-storage-bytes/Cargo.lock @@ -32,9 +32,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,14 +98,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/basic-features/wasm/Cargo.lock b/contracts/feature-tests/basic-features/wasm/Cargo.lock index 3d14641d4b..c78556dc4b 100755 --- a/contracts/feature-tests/basic-features/wasm/Cargo.lock +++ b/contracts/feature-tests/basic-features/wasm/Cargo.lock @@ -32,9 +32,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,14 +98,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/basic-features/wasm/src/lib.rs b/contracts/feature-tests/basic-features/wasm/src/lib.rs index d2948e2da4..de77a1fc25 100644 --- a/contracts/feature-tests/basic-features/wasm/src/lib.rs +++ b/contracts/feature-tests/basic-features/wasm/src/lib.rs @@ -5,9 +5,9 @@ //////////////////////////////////////////////////// // Init: 1 -// Endpoints: 387 +// Endpoints: 386 // Async Callback: 1 -// Total number of exported functions: 389 +// Total number of exported functions: 388 #![no_std] @@ -216,7 +216,6 @@ multiversx_sc_wasm_adapter::endpoints! { managed_vec_remove => managed_vec_remove managed_vec_find => managed_vec_find managed_vec_contains => managed_vec_contains - managed_vec_array_push => managed_vec_array_push managed_ref_explicit => managed_ref_explicit storage_read_raw => storage_read_raw storage_write_raw => storage_write_raw diff --git a/contracts/feature-tests/big-float-features/wasm/Cargo.lock b/contracts/feature-tests/big-float-features/wasm/Cargo.lock index 4601a0ccbc..ed078497ec 100644 --- a/contracts/feature-tests/big-float-features/wasm/Cargo.lock +++ b/contracts/feature-tests/big-float-features/wasm/Cargo.lock @@ -31,9 +31,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock index 76bebbeaf8..d76bfcb071 100644 --- a/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/builtin-func-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "builtin-func-features" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock index 48cd0bd939..147d33461a 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/first-contract/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock index 7c4cd2db7d..0ba488c7f0 100755 --- a/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/esdt-contract-pair/second-contract/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock index 899af3402e..5e1f7962e5 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/child/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "child" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock index 5bb0b14391..9b4494f52d 100755 --- a/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/execute-on-dest-esdt-issue-callback/parent/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,9 +98,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -122,18 +122,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock index 45311016f2..10b0b8bb6b 100644 --- a/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-legacy/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -56,7 +56,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -68,7 +68,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -87,7 +87,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -98,7 +98,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -114,27 +114,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -157,9 +157,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock index 7504443ae8..53f727c8bb 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm-forwarder-queue-promises/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock index 8a2ef8c020..2d19b02273 100644 --- a/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-queue/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock index 70c4bf7dd1..d68fadc22b 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-async-call/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock index c7a59d3589..d0ceea329c 100644 --- a/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm-forwarder-raw-init-sync-call/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock index f6256fab59..1198a98032 100755 --- a/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder-raw/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock index e32f2d4cc8..82868ca831 100755 --- a/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/forwarder/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock index 827e0c2700..675b646869 100755 --- a/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/local-esdt-and-nft/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock index 798fb2efc5..aca77da79a 100644 --- a/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/promises-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,18 +98,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock index a7fb1045c9..7a57ca96e9 100755 --- a/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-first/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,18 +98,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -132,9 +132,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -157,9 +157,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock index a2c21a5277..a6efc4baf2 100755 --- a/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/proxy-test-second/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,18 +98,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock index 1a9593a100..a90e94b50b 100755 --- a/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/recursive-caller/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -157,9 +157,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock index 03f068e55d..903256d62d 100644 --- a/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/transfer-role-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,14 +82,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -105,27 +105,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -148,9 +148,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock index e7814de3fe..defff5603f 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-promises/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -141,9 +141,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock index a6af059da3..8e49a1b12a 100644 --- a/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm-vault-upgrade/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -141,9 +141,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/composability/vault/wasm/Cargo.lock b/contracts/feature-tests/composability/vault/wasm/Cargo.lock index 535771da90..8e92e97d0b 100755 --- a/contracts/feature-tests/composability/vault/wasm/Cargo.lock +++ b/contracts/feature-tests/composability/vault/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -141,9 +141,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock index 70f19c039e..2448257cd8 100644 --- a/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/crowdfunding-erc20/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "crowdfunding-erc20" @@ -63,7 +63,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock index 61db6090c6..582dc8915a 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-marketplace/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -63,7 +63,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock index b5bd1e2e54..a192c28d8c 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155-user-mock/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock index 0ed0c6f26c..9daeb0cf09 100644 --- a/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc1155/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock index b88c35d4cf..f1cf13367b 100644 --- a/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc20/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock index beda86f834..c4e0d566e7 100644 --- a/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/erc721/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock index 25805516fc..96f07c2c88 100644 --- a/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock +++ b/contracts/feature-tests/erc-style-contracts/lottery-erc20/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -75,7 +75,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -84,7 +84,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -94,7 +94,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -105,7 +105,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -121,27 +121,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -164,9 +164,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock index bd9b34096b..ae4e178cc2 100644 --- a/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock +++ b/contracts/feature-tests/esdt-system-sc-mock/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/exchange-features/wasm/Cargo.lock b/contracts/feature-tests/exchange-features/wasm/Cargo.lock index 69c406fcf8..8075f5308f 100644 --- a/contracts/feature-tests/exchange-features/wasm/Cargo.lock +++ b/contracts/feature-tests/exchange-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock index f1ab6b2c73..309ac697f0 100644 --- a/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/formatted-message-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock index 3a15719b4c..8f4f06d835 100644 --- a/contracts/feature-tests/managed-map-features/wasm/Cargo.lock +++ b/contracts/feature-tests/managed-map-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock index 2b979d5734..c14b804e1d 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-alt-impl/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock index 31641794f0..ebd96f0db1 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-example-feature/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock index 8393f20a47..31453833e4 100644 --- a/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm-multi-contract-features-view/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock index ecb432decb..7e144359de 100755 --- a/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock +++ b/contracts/feature-tests/multi-contract-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -55,7 +55,7 @@ dependencies = [ [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -67,7 +67,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -76,7 +76,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -86,7 +86,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -97,7 +97,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -113,27 +113,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock index 669be54be6..7bac41daab 100755 --- a/contracts/feature-tests/panic-message-features/wasm/Cargo.lock +++ b/contracts/feature-tests/panic-message-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,9 +98,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -122,18 +122,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/payable-features/wasm/Cargo.lock b/contracts/feature-tests/payable-features/wasm/Cargo.lock index 95c693e19b..2ed0cebf41 100755 --- a/contracts/feature-tests/payable-features/wasm/Cargo.lock +++ b/contracts/feature-tests/payable-features/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,9 +98,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -122,18 +122,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock index 8883d18727..af4771b552 100644 --- a/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-snippets-generator-test/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock index 7e56191556..38d62aa581 100644 --- a/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/rust-testing-framework-tester/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/scenario-tester/wasm/Cargo.lock b/contracts/feature-tests/scenario-tester/wasm/Cargo.lock index 5d8bd88449..690945d5c6 100755 --- a/contracts/feature-tests/scenario-tester/wasm/Cargo.lock +++ b/contracts/feature-tests/scenario-tester/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,7 +82,7 @@ dependencies = [ [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -98,27 +98,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -156,9 +156,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock index dbfa03678b..8d520677dd 100644 --- a/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm-use-module-view/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,14 +82,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -105,27 +105,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -148,9 +148,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", diff --git a/contracts/feature-tests/use-module/wasm/Cargo.lock b/contracts/feature-tests/use-module/wasm/Cargo.lock index 0ae23a9263..ffcc630369 100644 --- a/contracts/feature-tests/use-module/wasm/Cargo.lock +++ b/contracts/feature-tests/use-module/wasm/Cargo.lock @@ -16,9 +16,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "endian-type" @@ -40,7 +40,7 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "multiversx-sc" -version = "0.49.0" +version = "0.50.0" dependencies = [ "bitflags", "hex-literal", @@ -52,7 +52,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec" -version = "0.18.8" +version = "0.19.0" dependencies = [ "arrayvec", "multiversx-sc-codec-derive", @@ -61,7 +61,7 @@ dependencies = [ [[package]] name = "multiversx-sc-codec-derive" -version = "0.18.8" +version = "0.19.0" dependencies = [ "hex", "proc-macro2", @@ -71,7 +71,7 @@ dependencies = [ [[package]] name = "multiversx-sc-derive" -version = "0.49.0" +version = "0.50.0" dependencies = [ "hex", "proc-macro2", @@ -82,14 +82,14 @@ dependencies = [ [[package]] name = "multiversx-sc-modules" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] [[package]] name = "multiversx-sc-wasm-adapter" -version = "0.49.0" +version = "0.50.0" dependencies = [ "multiversx-sc", ] @@ -105,27 +105,27 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -148,9 +148,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "syn" -version = "2.0.48" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", "quote", From b9c36b1ef2bd3177c525e744c51fe0cd79119bc8 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 12:47:40 +0300 Subject: [PATCH 172/185] fixed new lints --- data/codec/tests/derive_struct_with_generic_test.rs | 1 + framework/base/src/types/managed/wrapped/managed_address.rs | 6 ------ .../src/api/managed_types/static_var_api_node.rs | 1 + 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/data/codec/tests/derive_struct_with_generic_test.rs b/data/codec/tests/derive_struct_with_generic_test.rs index 80739b01b1..bde74b0a9d 100644 --- a/data/codec/tests/derive_struct_with_generic_test.rs +++ b/data/codec/tests/derive_struct_with_generic_test.rs @@ -9,6 +9,7 @@ use codec::{ // to test, run the following command in the crate folder: // cargo expand --test struct_with_generic_derive_test > expanded.rs +#[allow(dead_code)] trait SimpleTrait { fn simple_function(&self); } diff --git a/framework/base/src/types/managed/wrapped/managed_address.rs b/framework/base/src/types/managed/wrapped/managed_address.rs index bb5db20bc6..ca871a718b 100644 --- a/framework/base/src/types/managed/wrapped/managed_address.rs +++ b/framework/base/src/types/managed/wrapped/managed_address.rs @@ -6,7 +6,6 @@ use crate::{ codec::{ DecodeError, DecodeErrorHandler, EncodeErrorHandler, NestedDecode, NestedDecodeInput, NestedEncode, NestedEncodeOutput, TopDecode, TopDecodeInput, TopEncode, TopEncodeOutput, - TryStaticCast, }, formatter::{hex_util::encode_bytes_as_hex, FormatByteReceiver, SCLowerHex}, types::{heap::Address, ManagedBuffer, ManagedByteArray, ManagedType}, @@ -200,11 +199,6 @@ where } } -#[derive(Clone)] -pub(crate) struct ManagedBufferSizeContext(pub usize); - -impl TryStaticCast for ManagedBufferSizeContext {} - impl NestedEncode for ManagedAddress where M: ManagedTypeApi, diff --git a/framework/wasm-adapter/src/api/managed_types/static_var_api_node.rs b/framework/wasm-adapter/src/api/managed_types/static_var_api_node.rs index 272bbba578..51284fcb34 100644 --- a/framework/wasm-adapter/src/api/managed_types/static_var_api_node.rs +++ b/framework/wasm-adapter/src/api/managed_types/static_var_api_node.rs @@ -31,6 +31,7 @@ impl StaticVarApi for VmApiImpl { } impl StaticVarApiImpl for VmApiImpl { + #[allow(static_mut_refs)] fn with_lockable_static_buffer R>(&self, f: F) -> R { unsafe { f(&mut STATIC_BUFFER) } } From 071715234f68173eee8bd33e8fb95abc7d70f9c6 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Thu, 9 May 2024 13:19:41 +0300 Subject: [PATCH 173/185] Stable Rust: GitHub Actions & toolchain --- .github/workflows/actions-nightly.yml | 24 ++++++++++++++++++++ .github/workflows/actions.yml | 2 +- .github/workflows/lldb-formatter-tests.yml | 2 +- .github/workflows/release-upload.yml | 2 +- .github/workflows/template-test-current.yml | 2 +- .github/workflows/template-test-released.yml | 2 +- rust-toolchain.toml | 2 +- 7 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/actions-nightly.yml diff --git a/.github/workflows/actions-nightly.yml b/.github/workflows/actions-nightly.yml new file mode 100644 index 0000000000..4589f2e60b --- /dev/null +++ b/.github/workflows/actions-nightly.yml @@ -0,0 +1,24 @@ +name: CI + +on: + push: + branches: + - master + pull_request: + workflow_dispatch: + +permissions: + checks: write + pull-requests: write + +jobs: + contracts: + name: Contracts (nightly) + uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@v3.1.0 + with: + rust-toolchain: nightly-2023-12-11 + path-to-sc-meta: framework/meta + mx-scenario-go-version: v2.1.0-alpha + coverage-args: --ignore-filename-regex='meta/src' --ignore-filename-regex='wasm-adapter' --ignore-filename-regex='benchmarks/' --ignore-filename-regex='tests/' --output ./coverage.md + secrets: + token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index d9d598ab33..dc0bcc8596 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -16,7 +16,7 @@ jobs: name: Contracts uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@v3.1.0 with: - rust-toolchain: nightly-2023-12-11 + rust-toolchain: stable path-to-sc-meta: framework/meta mx-scenario-go-version: v2.1.0-alpha coverage-args: --ignore-filename-regex='meta/src' --ignore-filename-regex='wasm-adapter' --ignore-filename-regex='benchmarks/' --ignore-filename-regex='tests/' --output ./coverage.md diff --git a/.github/workflows/lldb-formatter-tests.yml b/.github/workflows/lldb-formatter-tests.yml index 36f2d29f08..9aaba9eadd 100644 --- a/.github/workflows/lldb-formatter-tests.yml +++ b/.github/workflows/lldb-formatter-tests.yml @@ -16,7 +16,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: default: true - toolchain: nightly-2023-12-11 + toolchain: stable - name: Download vscode-lldb uses: robinraju/release-downloader@v1.5 diff --git a/.github/workflows/release-upload.yml b/.github/workflows/release-upload.yml index 6ecb73df9b..1309c97e5f 100644 --- a/.github/workflows/release-upload.yml +++ b/.github/workflows/release-upload.yml @@ -20,7 +20,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1 with: default: true - toolchain: nightly-2023-12-11 + toolchain: stable target: wasm32-unknown-unknown - name: Setup the PATH variable diff --git a/.github/workflows/template-test-current.yml b/.github/workflows/template-test-current.yml index 457a91435a..56382850fe 100644 --- a/.github/workflows/template-test-current.yml +++ b/.github/workflows/template-test-current.yml @@ -22,7 +22,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1 with: default: true - toolchain: nightly-2023-12-11 + toolchain: stable target: wasm32-unknown-unknown - name: Install prerequisites diff --git a/.github/workflows/template-test-released.yml b/.github/workflows/template-test-released.yml index 8d60860f08..e6227765db 100644 --- a/.github/workflows/template-test-released.yml +++ b/.github/workflows/template-test-released.yml @@ -22,7 +22,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1 with: default: true - toolchain: nightly-2023-12-11 + toolchain: stable target: wasm32-unknown-unknown - name: Install prerequisites diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 9a2458c117..292fe499e3 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly-2023-12-11" +channel = "stable" From 294261d203bda9b8366b81047417129cd4361c8b Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Fri, 10 May 2024 20:50:30 +0300 Subject: [PATCH 174/185] disable contract size report on nightly actions --- .github/workflows/actions-nightly.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/actions-nightly.yml b/.github/workflows/actions-nightly.yml index 4589f2e60b..7b1199a237 100644 --- a/.github/workflows/actions-nightly.yml +++ b/.github/workflows/actions-nightly.yml @@ -14,10 +14,11 @@ permissions: jobs: contracts: name: Contracts (nightly) - uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@v3.1.0 + uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@c721fa99bea9d34624fa7ee58729301116518eea with: rust-toolchain: nightly-2023-12-11 path-to-sc-meta: framework/meta + enable-contracts-size-report: 'false' mx-scenario-go-version: v2.1.0-alpha coverage-args: --ignore-filename-regex='meta/src' --ignore-filename-regex='wasm-adapter' --ignore-filename-regex='benchmarks/' --ignore-filename-regex='tests/' --output ./coverage.md secrets: From b3ebe61d9b96a1b39fbea706dc3b0e1c84476492 Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Fri, 10 May 2024 20:52:53 +0300 Subject: [PATCH 175/185] disable contract size report on nightly actions --- .github/workflows/actions-nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/actions-nightly.yml b/.github/workflows/actions-nightly.yml index 7b1199a237..27122568d3 100644 --- a/.github/workflows/actions-nightly.yml +++ b/.github/workflows/actions-nightly.yml @@ -14,7 +14,7 @@ permissions: jobs: contracts: name: Contracts (nightly) - uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@c721fa99bea9d34624fa7ee58729301116518eea + uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@11821017a15f590ba3308f5721e92ec78797c4c8 with: rust-toolchain: nightly-2023-12-11 path-to-sc-meta: framework/meta From 8d8abb1e1ac6043a4901fa0932dbd243b4c2c224 Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Fri, 10 May 2024 20:53:55 +0300 Subject: [PATCH 176/185] disable contract size report on nightly actions --- .github/workflows/actions-nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/actions-nightly.yml b/.github/workflows/actions-nightly.yml index 27122568d3..1a7b47624d 100644 --- a/.github/workflows/actions-nightly.yml +++ b/.github/workflows/actions-nightly.yml @@ -18,7 +18,7 @@ jobs: with: rust-toolchain: nightly-2023-12-11 path-to-sc-meta: framework/meta - enable-contracts-size-report: 'false' + enable-contracts-size-report: false mx-scenario-go-version: v2.1.0-alpha coverage-args: --ignore-filename-regex='meta/src' --ignore-filename-regex='wasm-adapter' --ignore-filename-regex='benchmarks/' --ignore-filename-regex='tests/' --output ./coverage.md secrets: From 1e6a8e6f41523e4b095132894269692af4673887 Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Fri, 10 May 2024 20:55:47 +0300 Subject: [PATCH 177/185] disable contract size report on nightly actions --- .github/workflows/actions-nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/actions-nightly.yml b/.github/workflows/actions-nightly.yml index 1a7b47624d..d4412df7af 100644 --- a/.github/workflows/actions-nightly.yml +++ b/.github/workflows/actions-nightly.yml @@ -14,7 +14,7 @@ permissions: jobs: contracts: name: Contracts (nightly) - uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@11821017a15f590ba3308f5721e92ec78797c4c8 + uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@a6f57c43a0ae9c6d3bafffa01b5aa46dea0c3d3e with: rust-toolchain: nightly-2023-12-11 path-to-sc-meta: framework/meta From 747afd51ec1cb6bd2b2559ab75e21c78abc58a12 Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Mon, 13 May 2024 11:43:17 +0300 Subject: [PATCH 178/185] use stable version of sc-actions --- .github/workflows/actions-nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/actions-nightly.yml b/.github/workflows/actions-nightly.yml index d4412df7af..a94745de41 100644 --- a/.github/workflows/actions-nightly.yml +++ b/.github/workflows/actions-nightly.yml @@ -14,7 +14,7 @@ permissions: jobs: contracts: name: Contracts (nightly) - uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@a6f57c43a0ae9c6d3bafffa01b5aa46dea0c3d3e + uses: multiversx/mx-sc-actions/.github/workflows/contracts.yml@v3.2.0 with: rust-toolchain: nightly-2023-12-11 path-to-sc-meta: framework/meta From 8d0715a6c090e0fd08d6d65274608e674bfb5b2c Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 13 May 2024 12:36:11 +0300 Subject: [PATCH 179/185] implement from conversion for MultiValueN --- .../feature-tests/scenario-tester/src/lib.rs | 11 ++++ .../src/scenario_tester_proxy.rs | 28 +++++++++++ .../scenario-tester/tests/st_blackbox_test.rs | 17 +++++++ .../scenario-tester/wasm/src/lib.rs | 6 ++- .../base/src/abi/type_abi_impl_codec_multi.rs | 50 +++++++++---------- 5 files changed, 85 insertions(+), 27 deletions(-) diff --git a/contracts/feature-tests/scenario-tester/src/lib.rs b/contracts/feature-tests/scenario-tester/src/lib.rs index 015b3e82c2..5b2365a741 100644 --- a/contracts/feature-tests/scenario-tester/src/lib.rs +++ b/contracts/feature-tests/scenario-tester/src/lib.rs @@ -27,4 +27,15 @@ pub trait ScenarioTester { fn add(&self, value: BigUint) { self.sum().update(|sum| *sum += value); } + + /// Tests "from" conversion for MultiValueN parameters + #[endpoint] + fn multi_param(&self, _value: MultiValue2) {} + + /// Tests "from" conversion for MultiValueN return function + #[endpoint] + fn multi_return(&self, value: BigUint) -> MultiValue2 { + let value1 = value.clone().add(1u32); + (value, value1).into() + } } diff --git a/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs b/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs index 3de83d499d..66976893c2 100644 --- a/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs +++ b/contracts/feature-tests/scenario-tester/src/scenario_tester_proxy.rs @@ -111,4 +111,32 @@ where .argument(&value) .original_result() } + + /// Tests "from" conversion for MultiValueN parameters + pub fn multi_param< + Arg0: ProxyArg, BigUint>>, + >( + self, + _value: Arg0, + ) -> TxTypedCall { + self.wrapped_tx + .payment(NotPayable) + .raw_call("multi_param") + .argument(&_value) + .original_result() + } + + /// Tests "from" conversion for MultiValueN return function + pub fn multi_return< + Arg0: ProxyArg>, + >( + self, + value: Arg0, + ) -> TxTypedCall, BigUint>> { + self.wrapped_tx + .payment(NotPayable) + .raw_call("multi_return") + .argument(&value) + .original_result() + } } diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 20ff801864..90721fbd0d 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -95,6 +95,23 @@ fn st_blackbox() { .add(1u32) .run(); + world + .tx() + .from(OTHER_ADDRESS) + .to(ST_ADDRESS) + .typed(scenario_tester_proxy::ScenarioTesterProxy) + .multi_param(MultiValue2((1u32, 1u16))) + .run(); + + world + .tx() + .from(OTHER_ADDRESS) + .to(ST_ADDRESS) + .typed(scenario_tester_proxy::ScenarioTesterProxy) + .multi_return(1u32) + .returns(ExpectValue(MultiValue2((1u32, 2u32)))) + .run(); + world.write_scenario_trace("trace1.scen.json"); } diff --git a/contracts/feature-tests/scenario-tester/wasm/src/lib.rs b/contracts/feature-tests/scenario-tester/wasm/src/lib.rs index 28922bb61e..7976698233 100644 --- a/contracts/feature-tests/scenario-tester/wasm/src/lib.rs +++ b/contracts/feature-tests/scenario-tester/wasm/src/lib.rs @@ -6,9 +6,9 @@ // Init: 1 // Upgrade: 1 -// Endpoints: 2 +// Endpoints: 4 // Async Callback (empty): 1 -// Total number of exported functions: 5 +// Total number of exported functions: 7 #![no_std] @@ -22,6 +22,8 @@ multiversx_sc_wasm_adapter::endpoints! { upgrade => upgrade getSum => sum add => add + multi_param => multi_param + multi_return => multi_return ) } diff --git a/framework/base/src/abi/type_abi_impl_codec_multi.rs b/framework/base/src/abi/type_abi_impl_codec_multi.rs index 4fc42f37a6..fa27b98670 100644 --- a/framework/base/src/abi/type_abi_impl_codec_multi.rs +++ b/framework/base/src/abi/type_abi_impl_codec_multi.rs @@ -75,16 +75,16 @@ impl TypeAbi for OptionalValue { } macro_rules! multi_arg_impls { - ($(($mval_struct:ident $($n:tt $name:ident)+) )+) => { + ($(($mval_struct:ident $($n:tt $t:ident $u:ident)+) )+) => { $( - impl<$($name),+ > TypeAbiFrom for crate::codec::multi_types::$mval_struct<$($name,)+> + impl<$($t, $u),+ > TypeAbiFrom> for crate::codec::multi_types::$mval_struct<$($t,)+> where - $($name: TypeAbi,)+ + $($t: TypeAbiFrom<$u>,)+ {} - impl<$($name),+ > TypeAbi for crate::codec::multi_types::$mval_struct<$($name,)+> + impl<$($t),+ > TypeAbi for crate::codec::multi_types::$mval_struct<$($t,)+> where - $($name: TypeAbi,)+ + $($t: TypeAbi,)+ { type Unmanaged = Self; @@ -95,7 +95,7 @@ macro_rules! multi_arg_impls { if $n > 0 { repr.push(','); } - repr.push_str($name::type_name().as_str()); + repr.push_str($t::type_name().as_str()); )+ repr.push('>'); repr @@ -108,7 +108,7 @@ macro_rules! multi_arg_impls { if $n > 0 { repr.push_str(", "); } - repr.push_str($name::type_name_rust().as_str()); + repr.push_str($t::type_name_rust().as_str()); )+ repr.push('>'); repr @@ -116,7 +116,7 @@ macro_rules! multi_arg_impls { fn provide_type_descriptions(accumulator: &mut TDC) { $( - $name::provide_type_descriptions(accumulator); + $t::provide_type_descriptions(accumulator); )+ } @@ -128,10 +128,10 @@ macro_rules! multi_arg_impls { let mut result = OutputAbis::new(); $( if output_names.len() > $n { - result.append(&mut $name::output_abis(&[output_names[$n]])); + result.append(&mut $t::output_abis(&[output_names[$n]])); } else { - result.append(&mut $name::output_abis(&[])); + result.append(&mut $t::output_abis(&[])); } )+ @@ -143,19 +143,19 @@ macro_rules! multi_arg_impls { } multi_arg_impls! { - (MultiValue2 0 T0 1 T1) - (MultiValue3 0 T0 1 T1 2 T2) - (MultiValue4 0 T0 1 T1 2 T2 3 T3) - (MultiValue5 0 T0 1 T1 2 T2 3 T3 4 T4) - (MultiValue6 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5) - (MultiValue7 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6) - (MultiValue8 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7) - (MultiValue9 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8) - (MultiValue10 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9) - (MultiValue11 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10) - (MultiValue12 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11) - (MultiValue13 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12) - (MultiValue14 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12 13 T13) - (MultiValue15 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12 13 T13 14 T14) - (MultiValue16 0 T0 1 T1 2 T2 3 T3 4 T4 5 T5 6 T6 7 T7 8 T8 9 T9 10 T10 11 T11 12 T12 13 T13 14 T14 15 T15) + (MultiValue2 0 T0 U0 1 T1 U1) + (MultiValue3 0 T0 U0 1 T1 U1 2 T2 U2) + (MultiValue4 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3) + (MultiValue5 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4) + (MultiValue6 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5) + (MultiValue7 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6) + (MultiValue8 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7) + (MultiValue9 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7 8 T8 U8) + (MultiValue10 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7 8 T8 U8 9 T9 U9) + (MultiValue11 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7 8 T8 U8 9 T9 U9 10 T10 U10) + (MultiValue12 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7 8 T8 U8 9 T9 U9 10 T10 U10 11 T11 U11) + (MultiValue13 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7 8 T8 U8 9 T9 U9 10 T10 U10 11 T11 U11 12 T12 U12) + (MultiValue14 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7 8 T8 U8 9 T9 U9 10 T10 U10 11 T11 U11 12 T12 U12 13 T13 U13) + (MultiValue15 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7 8 T8 U8 9 T9 U9 10 T10 U10 11 T11 U11 12 T12 U12 13 T13 U13 14 T14 U14) + (MultiValue16 0 T0 U0 1 T1 U1 2 T2 U2 3 T3 U3 4 T4 U4 5 T5 U5 6 T6 U6 7 T7 U7 8 T8 U8 9 T9 U9 10 T10 U10 11 T11 U11 12 T12 U12 13 T13 U13 14 T14 U14 15 T15 U15) } From 8bbca64fa081d773512a987d2d83d8b10b9a9473 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 13 May 2024 13:56:09 +0300 Subject: [PATCH 180/185] clippy fix - unknown_lints --- framework/wasm-adapter/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/wasm-adapter/src/lib.rs b/framework/wasm-adapter/src/lib.rs index 4fb63ea0f0..9bd84315c5 100644 --- a/framework/wasm-adapter/src/lib.rs +++ b/framework/wasm-adapter/src/lib.rs @@ -1,4 +1,5 @@ #![no_std] +#![allow(unknown_lints)] // Allows us to use alloc::vec::Vec; // TODO: get rid of the legacy API and also of this. From 6da405b581f3a6e14b3bf80461c7752d33429658 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 13 May 2024 14:42:27 +0300 Subject: [PATCH 181/185] clipply fix --- framework/base/src/abi.rs | 2 +- .../src/storage/mappers/ordered_binary_tree_mapper.rs | 2 +- .../cmd/contract/sc_config/contract_variant_settings.rs | 4 ++-- framework/scenario/src/api/local_api_vh/print_api_vh.rs | 2 +- framework/scenario/src/facade/expr/bech32_address.rs | 2 +- .../scenario/src/facade/world_tx/scenario_set_state.rs | 6 ++++-- framework/scenario/src/whitebox_legacy/tx_mandos.rs | 4 ++-- .../wasm-adapter/src/wasm_alloc/leaking_allocator.rs | 1 + framework/wasm-adapter/src/wasm_alloc/static_allocator.rs | 1 + sdk/core/src/crypto/private_key.rs | 8 +++++--- sdk/core/src/crypto/public_key.rs | 8 +++++--- sdk/core/src/data/address.rs | 8 ++++---- .../src/value_interpreter/reconstructor.rs | 2 +- .../mxpy-snippet-generator/src/mxpy_snippet_generator.rs | 2 +- .../general/claim_developer_rewards_mock.rs | 2 +- vm/src/tx_mock/tx_async_call_data.rs | 4 +++- vm/src/tx_mock/tx_cache_source.rs | 2 +- vm/src/world_mock/esdt_instances.rs | 4 ++-- 18 files changed, 37 insertions(+), 27 deletions(-) diff --git a/framework/base/src/abi.rs b/framework/base/src/abi.rs index 993518acb2..c031a62166 100644 --- a/framework/base/src/abi.rs +++ b/framework/base/src/abi.rs @@ -25,7 +25,7 @@ pub use type_description_container::*; pub type TypeName = alloc::string::String; -#[derive(Clone, Debug, PartialEq, Eq)] +#[derive(Clone, Default, Debug, PartialEq, Eq)] pub struct TypeNames { pub abi: alloc::string::String, pub rust: alloc::string::String, diff --git a/framework/base/src/storage/mappers/ordered_binary_tree_mapper.rs b/framework/base/src/storage/mappers/ordered_binary_tree_mapper.rs index fbc3de782f..064e90551c 100644 --- a/framework/base/src/storage/mappers/ordered_binary_tree_mapper.rs +++ b/framework/base/src/storage/mappers/ordered_binary_tree_mapper.rs @@ -239,7 +239,7 @@ where let mut opt_new_node_parent = None; let mut opt_current_node = self.get_root(); while opt_current_node.is_some() { - opt_new_node_parent = opt_current_node.clone(); + opt_new_node_parent.clone_from(&opt_current_node); let current_node = unsafe { opt_current_node.unwrap_unchecked() }; if new_node.data == current_node.data { diff --git a/framework/meta/src/cmd/contract/sc_config/contract_variant_settings.rs b/framework/meta/src/cmd/contract/sc_config/contract_variant_settings.rs index a6a40a4142..b0af57deef 100644 --- a/framework/meta/src/cmd/contract/sc_config/contract_variant_settings.rs +++ b/framework/meta/src/cmd/contract/sc_config/contract_variant_settings.rs @@ -81,7 +81,7 @@ impl ContractVariantProfile { result.codegen_units = codegen_units; } if let Some(opt_level) = &serde_profile.opt_level { - result.opt_level = opt_level.clone(); + result.opt_level.clone_from(opt_level); } if let Some(lto) = serde_profile.lto { result.lto = lto; @@ -90,7 +90,7 @@ impl ContractVariantProfile { result.debug = debug; } if let Some(panic) = &serde_profile.panic { - result.panic = panic.clone(); + result.panic.clone_from(panic); } if let Some(overflow_checks) = serde_profile.overflow_checks { result.overflow_checks = overflow_checks; diff --git a/framework/scenario/src/api/local_api_vh/print_api_vh.rs b/framework/scenario/src/api/local_api_vh/print_api_vh.rs index 58cdb7fd16..6d3f9b3dbe 100644 --- a/framework/scenario/src/api/local_api_vh/print_api_vh.rs +++ b/framework/scenario/src/api/local_api_vh/print_api_vh.rs @@ -8,7 +8,7 @@ use multiversx_sc::{ use crate::api::{VMHooksApi, VMHooksApiBackend}; thread_local!( - static PRINTED_MESSAGES: RefCell> = RefCell::new(Vec::new()) + static PRINTED_MESSAGES: RefCell> = const { RefCell::new(Vec::new()) } ); impl VMHooksApi { diff --git a/framework/scenario/src/facade/expr/bech32_address.rs b/framework/scenario/src/facade/expr/bech32_address.rs index d07cf207e0..c404d17e27 100644 --- a/framework/scenario/src/facade/expr/bech32_address.rs +++ b/framework/scenario/src/facade/expr/bech32_address.rs @@ -198,7 +198,7 @@ impl<'de> Deserialize<'de> for Bech32Address { // some old interactors have it serialized like this let mut bech32 = String::deserialize(deserializer)?; if let Some(stripped) = bech32.strip_prefix("bech32:") { - bech32 = stripped.to_owned(); + bech32 = stripped.to_string(); } Ok(Bech32Address::from_bech32_string(bech32)) } diff --git a/framework/scenario/src/facade/world_tx/scenario_set_state.rs b/framework/scenario/src/facade/world_tx/scenario_set_state.rs index aa9a4ccd9b..d036d647cd 100644 --- a/framework/scenario/src/facade/world_tx/scenario_set_state.rs +++ b/framework/scenario/src/facade/world_tx/scenario_set_state.rs @@ -74,7 +74,7 @@ impl ScenarioWorld { let accounts = &mut self.get_mut_state().accounts; for (vm_address_key, account) in accounts.iter_mut() { if vm_address_key == &address_value.to_vm_address() { - account.egld_balance = balance_value.value.clone(); + account.egld_balance.clone_from(&balance_value.value); } } } @@ -158,7 +158,9 @@ impl ScenarioWorld { let accounts = &mut self.get_mut_state().accounts; for (vm_address, account) in accounts.iter_mut() { if vm_address == &AddressKey::from(address).to_vm_address() { - account.developer_rewards = BigUintValue::from(developer_rewards).value.clone(); + account + .developer_rewards + .clone_from(&BigUintValue::from(developer_rewards).value); } } } diff --git a/framework/scenario/src/whitebox_legacy/tx_mandos.rs b/framework/scenario/src/whitebox_legacy/tx_mandos.rs index 6d7babb5ba..505591bc68 100644 --- a/framework/scenario/src/whitebox_legacy/tx_mandos.rs +++ b/framework/scenario/src/whitebox_legacy/tx_mandos.rs @@ -31,7 +31,7 @@ impl ScCallMandos { } pub fn add_egld_value(&mut self, egld_value: &num_bigint::BigUint) { - self.egld_value = egld_value.clone(); + self.egld_value.clone_from(egld_value); } pub fn add_esdt_transfer( @@ -101,6 +101,6 @@ impl TxExpectMandos { } pub fn set_message(&mut self, msg: &str) { - self.message = msg.to_owned(); + self.message = msg.to_string(); } } diff --git a/framework/wasm-adapter/src/wasm_alloc/leaking_allocator.rs b/framework/wasm-adapter/src/wasm_alloc/leaking_allocator.rs index 59bfa218ab..8a40b0ac68 100644 --- a/framework/wasm-adapter/src/wasm_alloc/leaking_allocator.rs +++ b/framework/wasm-adapter/src/wasm_alloc/leaking_allocator.rs @@ -19,6 +19,7 @@ pub struct LeakingAllocator { unsafe impl Sync for LeakingAllocator {} impl LeakingAllocator { + #[allow(clippy::new_without_default)] pub const fn new() -> Self { LeakingAllocator { used: UnsafeCell::new(0), diff --git a/framework/wasm-adapter/src/wasm_alloc/static_allocator.rs b/framework/wasm-adapter/src/wasm_alloc/static_allocator.rs index 0b0ae4d87e..00b7088d61 100644 --- a/framework/wasm-adapter/src/wasm_alloc/static_allocator.rs +++ b/framework/wasm-adapter/src/wasm_alloc/static_allocator.rs @@ -25,6 +25,7 @@ pub struct StaticAllocator { } impl StaticAllocator { + #[allow(clippy::new_without_default)] pub const fn new() -> Self { StaticAllocator { arena: UnsafeCell::new([0; SIZE]), diff --git a/sdk/core/src/crypto/private_key.rs b/sdk/core/src/crypto/private_key.rs index 16870e7230..58ef821974 100644 --- a/sdk/core/src/crypto/private_key.rs +++ b/sdk/core/src/crypto/private_key.rs @@ -1,3 +1,5 @@ +use std::fmt::Display; + use super::edwards25519::{sc_mul_add, sc_reduce}; use crate::crypto::edwards25519::extended_group_element::ExtendedGroupElement; use anyhow::{anyhow, Result}; @@ -126,9 +128,9 @@ impl PrivateKey { } } -impl ToString for PrivateKey { - fn to_string(&self) -> String { - hex::encode(&self.0[..32]) +impl Display for PrivateKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + hex::encode(&self.0[..32]).fmt(f) } } diff --git a/sdk/core/src/crypto/public_key.rs b/sdk/core/src/crypto/public_key.rs index 3013123dbd..89b5211262 100644 --- a/sdk/core/src/crypto/public_key.rs +++ b/sdk/core/src/crypto/public_key.rs @@ -1,3 +1,5 @@ +use std::fmt::Display; + use super::private_key::PrivateKey; use anyhow::Result; use bech32::{self, ToBase32, Variant}; @@ -44,9 +46,9 @@ impl<'a> From<&'a PrivateKey> for PublicKey { } } -impl ToString for PublicKey { - fn to_string(&self) -> String { - hex::encode(self.0) +impl Display for PublicKey { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + hex::encode(self.0).fmt(f) } } diff --git a/sdk/core/src/data/address.rs b/sdk/core/src/data/address.rs index 8c4af1fb37..f8ac4212c3 100644 --- a/sdk/core/src/data/address.rs +++ b/sdk/core/src/data/address.rs @@ -1,4 +1,4 @@ -use std::fmt::Debug; +use std::fmt::{Debug, Display}; use crate::crypto::public_key::PublicKey; use anyhow::Result; @@ -51,9 +51,9 @@ impl<'a> From<&'a PublicKey> for Address { } } -impl ToString for Address { - fn to_string(&self) -> String { - self.to_bech32_string().unwrap() +impl Display for Address { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_str(self.to_bech32_string().unwrap().as_str()) } } diff --git a/sdk/scenario-format/src/value_interpreter/reconstructor.rs b/sdk/scenario-format/src/value_interpreter/reconstructor.rs index 8ff0b47bf8..6efacefba4 100644 --- a/sdk/scenario-format/src/value_interpreter/reconstructor.rs +++ b/sdk/scenario-format/src/value_interpreter/reconstructor.rs @@ -133,7 +133,7 @@ fn address_pretty(value: &[u8]) -> String { format!("address:{}", address_str.trim_end_matches('_').to_owned()) } else { let mut address_str = String::from_utf8_lossy(&value[..SC_ADDRESS_LENGTH - 1]).to_string(); - address_str = address_str.trim_end_matches('_').to_owned(); + address_str = address_str.trim_end_matches('_').to_string(); let shard_id = value[SC_ADDRESS_LENGTH - 1]; let address_expr = format!("address:{address_str}#{shard_id:02x}"); if !can_interpret_as_string(&[value[SC_ADDRESS_LENGTH - 1]]) { diff --git a/tools/mxpy-snippet-generator/src/mxpy_snippet_generator.rs b/tools/mxpy-snippet-generator/src/mxpy_snippet_generator.rs index 02521cbfad..4a4f397b98 100644 --- a/tools/mxpy-snippet-generator/src/mxpy_snippet_generator.rs +++ b/tools/mxpy-snippet-generator/src/mxpy_snippet_generator.rs @@ -133,7 +133,7 @@ impl MxpySnippetGenerator { } pub fn set_egld_value(&mut self, egld_value: &num_bigint::BigUint) { - self.egld_value = egld_value.clone(); + self.egld_value.clone_from(egld_value); } pub fn add_esdt_transfer( diff --git a/vm/src/tx_execution/builtin_function_mocks/general/claim_developer_rewards_mock.rs b/vm/src/tx_execution/builtin_function_mocks/general/claim_developer_rewards_mock.rs index 82bda4fa7d..0b7e9c694f 100644 --- a/vm/src/tx_execution/builtin_function_mocks/general/claim_developer_rewards_mock.rs +++ b/vm/src/tx_execution/builtin_function_mocks/general/claim_developer_rewards_mock.rs @@ -37,7 +37,7 @@ impl BuiltinFunction for ClaimDeveloperRewards { tx_cache.with_account_mut(&tx_input.to, |account| { if account.contract_owner == Some(tx_input.from.clone()) { - developer_rewards = account.developer_rewards.clone(); + developer_rewards.clone_from(&account.developer_rewards); account.developer_rewards = BigUint::zero(); caller_is_owner = true; } diff --git a/vm/src/tx_mock/tx_async_call_data.rs b/vm/src/tx_mock/tx_async_call_data.rs index f30cd9a3c2..45cbce639c 100644 --- a/vm/src/tx_mock/tx_async_call_data.rs +++ b/vm/src/tx_mock/tx_async_call_data.rs @@ -93,7 +93,9 @@ fn extract_callback_payments( if !token_transfers.is_empty() { callback_payments.esdt_values = token_transfers.transfers; } else { - callback_payments.egld_value = async_call.call_value.clone(); + callback_payments + .egld_value + .clone_from(&async_call.call_value); } break; } diff --git a/vm/src/tx_mock/tx_cache_source.rs b/vm/src/tx_mock/tx_cache_source.rs index aee7ff96c5..55540137a9 100644 --- a/vm/src/tx_mock/tx_cache_source.rs +++ b/vm/src/tx_mock/tx_cache_source.rs @@ -23,7 +23,7 @@ impl TxCacheSource for TxCache { impl TxCacheSource for BlockchainState { fn load_account(&self, address: &VMAddress) -> Option { - self.accounts.get(address).map(AccountData::clone) + self.accounts.get(address).cloned() } fn blockchain_ref(&self) -> &BlockchainState { diff --git a/vm/src/world_mock/esdt_instances.rs b/vm/src/world_mock/esdt_instances.rs index 7fd574fac5..74c2432281 100644 --- a/vm/src/world_mock/esdt_instances.rs +++ b/vm/src/world_mock/esdt_instances.rs @@ -57,9 +57,9 @@ impl EsdtInstances { .0 .entry(nonce) .and_modify(|instance| { - instance.balance = value.clone(); + instance.balance.clone_from(value); instance.nonce = nonce; - instance.metadata = metadata.clone(); + instance.metadata.clone_from(&metadata); }) .or_insert_with(|| EsdtInstance { nonce, From 93f53adeb0626a6a5c1235103be6ae60e4f1aa4e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 13 May 2024 14:42:38 +0300 Subject: [PATCH 182/185] rustfmt.toml fix --- rustfmt.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rustfmt.toml b/rustfmt.toml index 8484a95cce..29b99b9ba4 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -12,7 +12,7 @@ # This should actually automatically be shipped with cargo fmt or rustfmt itself! # ---------------------------------------------------------------------------------- -imports_granularity="Crate" +# imports_granularity="Crate" # Use verbose output. # Default: false From 1b6ab0d2ca5420b6f07de5db5b55884e0684ac0e Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 13 May 2024 16:04:31 +0300 Subject: [PATCH 183/185] cargo update --- Cargo.lock | 161 +++++++++++++++++++---------------------------------- 1 file changed, 58 insertions(+), 103 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8dba3c1854..17d5b64293 100755 --- a/Cargo.lock +++ b/Cargo.lock @@ -100,47 +100,48 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -148,9 +149,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.82" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519" +checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" [[package]] name = "arbitrary" @@ -169,9 +170,9 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" @@ -190,9 +191,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "basic-features" @@ -377,9 +378,9 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.96" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd" +checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" [[package]] name = "cfg-if" @@ -464,9 +465,9 @@ checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "colored" @@ -902,9 +903,9 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", "windows-sys 0.52.0", @@ -1266,9 +1267,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "js-sys", @@ -1515,6 +1516,12 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + [[package]] name = "itertools" version = "0.12.1" @@ -1889,7 +1896,7 @@ name = "multiversx-price-aggregator-sc" version = "0.50.0" dependencies = [ "arrayvec", - "getrandom 0.2.14", + "getrandom 0.2.15", "multiversx-sc", "multiversx-sc-modules", "multiversx-sc-scenario", @@ -2197,27 +2204,6 @@ dependencies = [ "libc", ] -[[package]] -name = "num_enum" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" -dependencies = [ - "num_enum_derive", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "object" version = "0.32.2" @@ -2470,15 +2456,6 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "proc-macro-crate" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" -dependencies = [ - "toml_edit 0.21.1", -] - [[package]] name = "proc-macro2" version = "1.0.82" @@ -2648,7 +2625,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.14", + "getrandom 0.2.15", ] [[package]] @@ -2846,9 +2823,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc_version" @@ -2890,9 +2867,9 @@ checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -2953,11 +2930,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "core-foundation", "core-foundation-sys", "libc", @@ -2966,9 +2943,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -2993,9 +2970,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "send-tx-repeat" @@ -3015,18 +2992,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.199" +version = "1.0.201" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" +checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.199" +version = "1.0.201" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" +checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" dependencies = [ "proc-macro2", "quote", @@ -3035,9 +3012,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "indexmap", "itoa", @@ -3356,16 +3333,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -3378,7 +3354,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.12", + "toml_edit", ] [[package]] @@ -3390,17 +3366,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.22.12" @@ -3411,7 +3376,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.7", + "winnow", ] [[package]] @@ -3885,18 +3850,9 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" -version = "0.5.40" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b9415ee827af173ebb3f15f9083df5a122eb93572ec28741fb153356ea2578" +checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" dependencies = [ "memchr", ] @@ -3953,9 +3909,9 @@ dependencies = [ [[package]] name = "zip" -version = "1.2.1" +version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006d078b7b6fc587bb25e022ad39e7086f44e5c4fef6076964ea601533241beb" +checksum = "c700ea425e148de30c29c580c1f9508b93ca57ad31c9f4e96b83c194c37a7a8f" dependencies = [ "arbitrary", "crc32fast", @@ -3963,6 +3919,5 @@ dependencies = [ "displaydoc", "flate2", "indexmap", - "num_enum", "thiserror", ] From c8b5323849635b1480ace5e969e46399e0694064 Mon Sep 17 00:00:00 2001 From: Andrei Marinica Date: Mon, 13 May 2024 17:07:48 +0300 Subject: [PATCH 184/185] typo in type_name_rust --- framework/base/src/types/interaction/managed_arg_buffer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/base/src/types/interaction/managed_arg_buffer.rs b/framework/base/src/types/interaction/managed_arg_buffer.rs index a2159bbd11..c6dae76afd 100644 --- a/framework/base/src/types/interaction/managed_arg_buffer.rs +++ b/framework/base/src/types/interaction/managed_arg_buffer.rs @@ -319,6 +319,6 @@ where } fn type_name_rust() -> TypeName { - "ManagedArgBufer<$API>".into() + "ManagedArgBuffer<$API>".into() } } From c1299d0f7ab1d1892ae96a3fcf0748660d3bbb67 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Mon, 13 May 2024 20:27:13 +0300 Subject: [PATCH 185/185] add changes from review - unmanaged type --- contracts/feature-tests/scenario-tester/src/lib.rs | 4 ++-- .../scenario-tester/tests/st_blackbox_test.rs | 13 +++++++++++++ framework/base/src/abi/type_abi_impl_codec_multi.rs | 6 +++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/contracts/feature-tests/scenario-tester/src/lib.rs b/contracts/feature-tests/scenario-tester/src/lib.rs index 5b2365a741..97c352adeb 100644 --- a/contracts/feature-tests/scenario-tester/src/lib.rs +++ b/contracts/feature-tests/scenario-tester/src/lib.rs @@ -35,7 +35,7 @@ pub trait ScenarioTester { /// Tests "from" conversion for MultiValueN return function #[endpoint] fn multi_return(&self, value: BigUint) -> MultiValue2 { - let value1 = value.clone().add(1u32); - (value, value1).into() + let value_plus_one = &value + 1u32; + (value, value_plus_one).into() } } diff --git a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs index 90721fbd0d..e4ab2b4b4d 100644 --- a/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs +++ b/contracts/feature-tests/scenario-tester/tests/st_blackbox_test.rs @@ -112,6 +112,19 @@ fn st_blackbox() { .returns(ExpectValue(MultiValue2((1u32, 2u32)))) .run(); + let value = world + .tx() + .from(OTHER_ADDRESS) + .to(ST_ADDRESS) + .typed(scenario_tester_proxy::ScenarioTesterProxy) + .multi_return(1u32) + .returns(ReturnsResultUnmanaged) + .run(); + assert_eq!( + value, + MultiValue2((RustBigUint::from(1u32), RustBigUint::from(2u32))) + ); + world.write_scenario_trace("trace1.scen.json"); } diff --git a/framework/base/src/abi/type_abi_impl_codec_multi.rs b/framework/base/src/abi/type_abi_impl_codec_multi.rs index fa27b98670..6b1cf9ab72 100644 --- a/framework/base/src/abi/type_abi_impl_codec_multi.rs +++ b/framework/base/src/abi/type_abi_impl_codec_multi.rs @@ -77,16 +77,16 @@ impl TypeAbi for OptionalValue { macro_rules! multi_arg_impls { ($(($mval_struct:ident $($n:tt $t:ident $u:ident)+) )+) => { $( - impl<$($t, $u),+ > TypeAbiFrom> for crate::codec::multi_types::$mval_struct<$($t,)+> + impl<$($t, $u),+> TypeAbiFrom> for crate::codec::multi_types::$mval_struct<$($t,)+> where $($t: TypeAbiFrom<$u>,)+ {} - impl<$($t),+ > TypeAbi for crate::codec::multi_types::$mval_struct<$($t,)+> + impl<$($t),+> TypeAbi for crate::codec::multi_types::$mval_struct<$($t,)+> where $($t: TypeAbi,)+ { - type Unmanaged = Self; + type Unmanaged = crate::codec::multi_types::$mval_struct<$($t::Unmanaged,)+>; fn type_name() -> TypeName { let mut repr = TypeName::from("multi");