From c72a55083bdddda033e582ab36de338cc62d2529 Mon Sep 17 00:00:00 2001 From: gcranju <134275268+gcranju@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:59:14 +0545 Subject: [PATCH] fix: rlp issue resolved (#420) --- contracts/soroban/libs/soroban-rlp/src/decoder.rs | 3 +++ contracts/soroban/libs/soroban-rlp/src/utils.rs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/contracts/soroban/libs/soroban-rlp/src/decoder.rs b/contracts/soroban/libs/soroban-rlp/src/decoder.rs index 37b83405b..9d05760db 100644 --- a/contracts/soroban/libs/soroban-rlp/src/decoder.rs +++ b/contracts/soroban/libs/soroban-rlp/src/decoder.rs @@ -131,6 +131,9 @@ pub fn decode_u64(env: &Env, bytes: Bytes) -> u64 { } pub fn decode_u128(env: &Env, bytes: Bytes) -> u128 { + if bytes.len() == 1 { + return bytes_to_u128(bytes); + } let decoded = decode(&env, bytes); bytes_to_u128(decoded) } diff --git a/contracts/soroban/libs/soroban-rlp/src/utils.rs b/contracts/soroban/libs/soroban-rlp/src/utils.rs index b359078ca..403cac527 100644 --- a/contracts/soroban/libs/soroban-rlp/src/utils.rs +++ b/contracts/soroban/libs/soroban-rlp/src/utils.rs @@ -53,7 +53,7 @@ pub fn bytes_to_u64(bytes: Bytes) -> u64 { } pub fn u128_to_bytes(env: &Env, number: u128) -> Bytes { - let mut bytes: Bytes = Bytes::new(&env); + let mut bytes = bytes!(&env, 0x00); let mut i = 15; let mut leading_zero = true; while i >= 0 {