elrond-wasm-debug 0.38.0

Elrond WebAssembly smart contract API debugging mocks and utils
Documentation
use elrond_wasm::{
    hex_literal::hex,
    types::{
        BigInt, BigUint, EgldOrEsdtTokenIdentifier, ManagedAddress, ManagedBuffer,
        ManagedByteArray, ManagedVec, TokenIdentifier,
    },
};
use elrond_wasm_debug::DebugApi;

#[test]
fn test_big_uint_format() {
    let _ = DebugApi::dummy();
    let s = format!("{:?}", BigUint::<DebugApi>::from(0x1234u32));
    assert_eq!("BigUint { handle: -100, hex-value-be: \"1234\" }", s);
}

#[test]
fn test_big_int_format_1() {
    let _ = DebugApi::dummy();
    let s = format!("{:?}", BigInt::<DebugApi>::from(0x1234));
    assert_eq!("BigInt { handle: -100, hex-value-be: \"1234\" }", s);
}

#[test]
fn test_big_int_format_2() {
    let _ = DebugApi::dummy();
    let s = format!("{:?}", BigInt::<DebugApi>::from(-0x1234));
    assert_eq!("BigInt { handle: -100, hex-value-be: \"edcc\" }", s);
}

#[test]
fn test_managed_buffer() {
    let _ = DebugApi::dummy();
    let _ = elrond_wasm::hex_literal::hex!("abcd");
    let s = format!("{:?}", ManagedBuffer::<DebugApi>::from(&[0x12, 0x34]));
    assert_eq!("ManagedBuffer { handle: -100, hex-value: \"1234\" }", s);
}

#[test]
fn test_managed_byte_array() {
    let _ = DebugApi::dummy();
    let addr = hex!("01020304050607");
    let s = format!("{:?}", ManagedByteArray::<DebugApi, 7>::from(&addr));
    assert_eq!(
        "ManagedByteArray { handle: -100, size: 7, hex-value: \"01020304050607\" }",
        s
    );
}

#[test]
fn test_managed_address() {
    let _ = DebugApi::dummy();
    let addr = hex!("000000000000000000010000000000000000000000000000000000000002ffff");
    let s = format!("{:?}", ManagedAddress::<DebugApi>::from(&addr));
    assert_eq!("ManagedAddress { handle: -100, hex-value: \"000000000000000000010000000000000000000000000000000000000002ffff\" }", s);
}

#[test]
fn test_managed_address_pretty() {
    let _ = DebugApi::dummy();
    let addr = hex!("000000000000000000010000000000000000000000000000000000000002ffff");
    let s = format!("{:#?}", ManagedAddress::<DebugApi>::from(&addr));
    assert_eq!(
        "ManagedAddress {
    handle: -100,
    hex-value: \"000000000000000000010000000000000000000000000000000000000002ffff\",
}",
        s
    );
}

#[test]
fn test_managed_vec_format_biguint() {
    let _ = DebugApi::dummy();
    let mut mv = ManagedVec::<DebugApi, BigUint<DebugApi>>::new();
    mv.push(BigUint::from(1u32));
    mv.push(BigUint::from(2u32));
    let s = format!("{:?}", &mv);
    assert_eq!("[BigUint { handle: -101, hex-value-be: \"01\" }, BigUint { handle: -102, hex-value-be: \"02\" }]", s);
}

#[test]
fn test_managed_vec_format_egld_or_esdt() {
    let _ = DebugApi::dummy();
    let mut mv = ManagedVec::<DebugApi, EgldOrEsdtTokenIdentifier<DebugApi>>::new();
    mv.push(EgldOrEsdtTokenIdentifier::egld());
    mv.push(EgldOrEsdtTokenIdentifier::esdt(TokenIdentifier::from(
        "MYTOKEN-5678",
    )));
    let s = format!("{:?}", &mv);
    assert_eq!(
        "[EgldOrEsdtTokenIdentifier::Egld, EgldOrEsdtTokenIdentifier::Esdt(\"MYTOKEN-5678\")]",
        s
    );
}