Icon HelpCircleForumIcon Link

⌘K

Icon HelpCircleForumIcon Link
EVM Address

Icon LinkEvmAddress

In the Rust SDK, Ethereum Virtual Machine (EVM) addresses can be represented with the EvmAddress type. Its definition matches with the Sway standard library type with the same name and will be converted accordingly when interacting with contracts:

pub struct EvmAddress {
    // An evm address is only 20 bytes, the first 12 bytes should be set to 0
    value: Bits256,
}

Here's an example:

let b256 = Bits256(hasher.finalize().into());
let arg = EvmAddress::from(b256);
 
let call_handler = contract_instance.methods().takes_evm_address(arg);
Icon InfoCircle

Note: when creating an EvmAddress from Bits256, the first 12 bytes will be cleared because an EVM address is only 20 bytes long.