@aptos-labs/ts-sdk - v7.1.0
    Preparing search index...

    Class StructEnumArgumentParser

    Parser for struct and enum transaction arguments.

    This class enables passing public copy structs and enums as transaction arguments by automatically fetching module ABIs and encoding values to BCS format.

    // Example 1: Encode a simple struct
    const parser = new StructEnumArgumentParser(config);
    const structTag = parseTypeTag("0x1::test::Point") as TypeTagStruct;
    const value = { x: "10", y: "20" };
    const encoded = await parser.encodeStructArgument(structTag, value);
    // Example 2: Encode an enum variant
    const parser = new StructEnumArgumentParser(config);
    const enumTag = parseTypeTag("0x1::test::Color") as TypeTagStruct;
    const value = { Red: {} }; // No fields
    const encoded = await parser.encodeEnumArgument(enumTag, value);
    // Example 3: Use in transaction builder
    const txn = await aptos.transaction.build.simple({
    sender: alice.accountAddress,
    data: {
    function: "0x1::test::draw_line",
    functionArguments: [
    { start: { x: "0", y: "0" }, end: { x: "10", y: "10" } }, // Line struct
    ],
    },
    });
    // Example 4: Generic structs with type substitution
    const parser = new StructEnumArgumentParser(config);
    const boxTag = parseTypeTag("0x1::test::Box<u64>") as TypeTagStruct;
    const value = { value: "42" };
    const encoded = await parser.encodeStructArgument(boxTag, value);
    // Generic parameter T0 is automatically substituted with u64
    // Example 5: Option enum (dual format support)
    // Vector format (backward compatible):
    functionArguments: [[]]; // None
    functionArguments: [[42]]; // Some(42)

    // Enum format (new standard):
    functionArguments: [{ None: {} }];
    functionArguments: [{ Some: { "0": "42" } }];

    Features:

    • Automatic module ABI fetching and caching
    • Recursive encoding for nested structs/enums
    • Generic type parameter substitution (T0, T1, etc.)
    • Depth limit enforcement (max 7 levels)
    • Support for all Move primitive types
    • Vector encoding with element recursion
    • Special handling for String, Object, Option
    Index

    Constructors

    Methods