radix-transactions 1.3.1

Various Radix transaction models and the manifest compiler/decompiler, from the Radix DLT project.
Documentation
# Set String Metadata on Package
SET_METADATA
    Address("${package_address}")
    "field_name"
    # "Metadata::String" is equivalent to 0u8
    Enum<Metadata::String>(
        "Metadata string value, eg description"
    );

# Set String Metadata on Account component
SET_METADATA
    Address("${account_address}")
    "field_name"
    # "Metadata::String" is equivalent to 0u8
    Enum<Metadata::String>(
        "Metadata string value, eg description"
    );

# Set String Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::String" is equivalent to 0u8
    Enum<Metadata::String>(
        "Metadata string value, eg description"
    );

# Set Bool Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::Bool" is equivalent to 1u8
    Enum<Metadata::Bool>(
        true
    );

# Set u8 Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::U8" is equivalent to 2u8
    Enum<Metadata::U8>(
        123u8
    );

# Set u32 Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::U32" is equivalent to 3u8
    Enum<Metadata::U32>(
        123u32
    );

# Set u64 Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::U64" is equivalent to 4u8
    Enum<Metadata::U64>(
        123u64
    );

# Set i32 Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::I32" is equivalent to 5u8
    Enum<Metadata::I32>(
        -123i32
    );

# Set i64 Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::I64" is equivalent to 6u8
    Enum<Metadata::I64>(
        -123i64
    );

# Set Decimal Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::Decimal" is equivalent to 7u8
    Enum<Metadata::Decimal>( # Single item
        Decimal("10.5")
    );

# Set Address Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::Address" is equivalent to 8u8
    Enum<Metadata::Address>(
        Address("${account_address}")
    );

# Set Public Key Metadata on Resource
# NOTE: Also see "PublicKeyHash" further down
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::PublicKey" is equivalent to 9u8
    Enum<Metadata::PublicKey>(
        Enum<PublicKey::Secp256k1>( # 0u8 = Secp256k1, 1u8 = Ed25519
            # Hex-encoded canonical-Radix encoding of the public key
            Bytes("0000000000000000000000000000000000000000000000000000000000000000ff")
        )
    );

# Set NonFungibleGlobalId Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::NonFungibleGlobalId" is equivalent to 10u8
    Enum<Metadata::NonFungibleGlobalId>(
        NonFungibleGlobalId("${non_fungible_resource_address}:<some_string>")
    );

# Set NonFungibleLocalId Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::NonFungibleLocalId" is equivalent to 11u8
    Enum<Metadata::NonFungibleLocalId>(
        NonFungibleLocalId("<some_string>")
    );

# Set Instant (or the value in seconds since unix epoch) Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::Instant" is equivalent to 12u8
    Enum<Metadata::Instant>(
        # Value in seconds since Unix Epoch
        10000i64
    );

# Set Url Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::Url" is equivalent to 13u8
    Enum<Metadata::Url>( # Single item
        "https://radixdlt.com/index.html"
    );

# Set Origin Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::Origin" is equivalent to 14u8
    Enum<Metadata::Origin>(
        "https://radixdlt.com"
    );

# Set PublicKeyHash Metadata on Resource
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::PublicKeyHash" is equivalent to 15u8
    Enum<Metadata::PublicKeyHash>(
        Enum<PublicKeyHash::Secp256k1>( # 0u8 = Secp256k1, 1u8 = Ed25519
            # The hex-encoded final 29 bytes of the Blake2b-256 hash of the public key bytes (in the canonical Radix encoding)
            Bytes("0000000000000000000000000000000000000000000000000000000000")
        )
    );

# Setting list-based metadata:
# ============================
# If using enum discriminator aliases: Take "Metadata::X" and add Array to the end, eg "Metadata::XArray"
# If using u8 enum discriminators: Add 128 to the single values
#
# Then just make the content an Array<X>.
#
# For example, for strings:
SET_METADATA
    Address("${resource_address}")
    "field_name"
    # "Metadata::StringArray" is equivalent to 128u8
    Enum<Metadata::StringArray>(
        Array<String>(
            "some_string",
            "another_string",
            "yet_another_string"
        )
    );

LOCK_METADATA
    Address("${package_address}")
    "field_name";

LOCK_METADATA
    Address("${account_address}")
    "field_name";

LOCK_METADATA
    Address("${resource_address}")
    "field_name";

REMOVE_METADATA
    Address("${package_address}")
    "field_name";

REMOVE_METADATA
    Address("${account_address}")
    "field_name";

REMOVE_METADATA
    Address("${resource_address}")
    "field_name";