Skip to content

Commit

Permalink
EgldOrEsdtTokenIdentifier encode as EGLD-000000 instead of EGLD
Browse files Browse the repository at this point in the history
  • Loading branch information
andrei-marinica committed Dec 23, 2024
1 parent af6e5ff commit 368acea
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -243,11 +243,7 @@ impl<M: ManagedTypeApi> NestedEncode for EgldOrEsdtTokenIdentifier<M> {
O: NestedEncodeOutput,
H: EncodeErrorHandler,
{
if self.is_egld() {
(&Self::EGLD_REPRESENTATION[..]).dep_encode_or_handle_err(dest, h)
} else {
self.buffer.dep_encode_or_handle_err(dest, h)
}
self.buffer.dep_encode_or_handle_err(dest, h)
}
}

Expand All @@ -258,11 +254,7 @@ impl<M: ManagedTypeApi> TopEncode for EgldOrEsdtTokenIdentifier<M> {
O: TopEncodeOutput,
H: EncodeErrorHandler,
{
if self.is_egld() {
(&Self::EGLD_REPRESENTATION[..]).top_encode_or_handle_err(output, h)
} else {
self.buffer.top_encode_or_handle_err(output, h)
}
self.buffer.top_encode_or_handle_err(output, h)
}
}

Expand Down
24 changes: 19 additions & 5 deletions framework/scenario/tests/token_identifier_test.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
use multiversx_sc::types::{
BoxedBytes, EgldOrEsdtTokenIdentifier, EgldOrEsdtTokenPayment, EsdtTokenPayment, ManagedBuffer,
TokenIdentifier,
TokenIdentifier, EGLD_000000_TOKEN_IDENTIFIER,
};
use multiversx_sc_scenario::{
api::StaticApi, managed_egld_token_id, managed_test_util::check_managed_top_encode_decode,
api::StaticApi,
managed_egld_token_id,
managed_test_util::{check_managed_top_decode, check_managed_top_encode_decode},
managed_token_id, managed_token_id_wrapped, multiversx_sc,
};

Expand All @@ -16,19 +18,31 @@ fn test_egld() {
fn test_codec() {
check_managed_top_encode_decode(
EgldOrEsdtTokenIdentifier::<StaticApi>::egld(),
EgldOrEsdtTokenIdentifier::<StaticApi>::EGLD_REPRESENTATION,
EGLD_000000_TOKEN_IDENTIFIER.as_bytes(),
);

let expected = BoxedBytes::from_concat(&[
&[0, 0, 0, 4],
&EgldOrEsdtTokenIdentifier::<StaticApi>::EGLD_REPRESENTATION[..],
&[0, 0, 0, EGLD_000000_TOKEN_IDENTIFIER.len() as u8],
EGLD_000000_TOKEN_IDENTIFIER.as_bytes(),
]);
check_managed_top_encode_decode(
vec![EgldOrEsdtTokenIdentifier::<StaticApi>::egld()],
expected.as_slice(),
);
}

#[test]
fn test_decode_egld() {
let deserialized = check_managed_top_decode::<EgldOrEsdtTokenIdentifier<StaticApi>>(b"EGLD");
assert!(deserialized.is_egld());

let deserialized = check_managed_top_decode::<Vec<EgldOrEsdtTokenIdentifier<StaticApi>>>(
b"\x00\x00\x00\x04EGLD",
);
assert_eq!(deserialized.len(), 1);
assert!(deserialized[0].is_egld());
}

#[test]
#[rustfmt::skip]
fn test_is_valid_esdt_identifier() {
Expand Down

0 comments on commit 368acea

Please sign in to comment.