EvmAddress
在 Rust SDK 中,以太坊虚拟机(EVM)地址可以用 EvmAddress
类型表示。其定义与 Sway 标准库中具有相同名称的类型匹配,并在与合约交互时相应地进行转换:
pub struct EvmAddress {
// An evm address is only 20 bytes, the first 12 bytes should be set to 0
value: Bits256,
}
以下是一个示例:
let b256 = Bits256::from_hex_str(
"0x1616060606060606060606060606060606060606060606060606060606060606",
)?;
let evm_address = EvmAddress::from(b256);
let call_handler = contract_instance
.methods()
.evm_address_as_input(evm_address);
注意: 当从
Bits256
创建EvmAddress
时,前 12 字节将被清除,因为 EVM 地址只有 20 字节长。