Skip to main content

aptos_contract

Macro aptos_contract 

aptos_contract!() { /* proc-macro */ }
Available on crate feature macros only.
Expand description

Generates type-safe contract bindings from an ABI.

§Syntax

aptos_contract! {
    name: StructName,
    abi: "{ ... JSON ABI ... }",
    // Optional: Move source for better parameter names
    source: "module 0x1::coin { ... }"
}

§Example

use aptos_sdk_macros::aptos_contract;

aptos_contract! {
    name: AptosCoin,
    abi: r#"{
        "address": "0x1",
        "name": "aptos_coin",
        "exposed_functions": [
            {
                "name": "transfer",
                "visibility": "public",
                "is_entry": true,
                "is_view": false,
                "generic_type_params": [],
                "params": ["&signer", "address", "u64"],
                "return": []
            }
        ],
        "structs": []
    }"#
}

// Now you can use:
let payload = AptosCoin::transfer(recipient_addr, 1000)?;