lez-programs/artifacts/token-idl.json
r4bbit f4a0aaf8d0 feat: make use of spel's [#account_type] directive
This annotates custom account data as [#account_type], to allow for deserializing abritrary LEZ account data.

Closes #49
2026-05-12 10:04:22 +02:00

314 lines
6.3 KiB
JSON

{
"version": "0.1.0",
"name": "token",
"instructions": [
{
"name": "transfer",
"accounts": [
{
"name": "sender",
"writable": false,
"signer": false,
"init": false
},
{
"name": "recipient",
"writable": false,
"signer": false,
"init": false
}
],
"args": [
{
"name": "amount_to_transfer",
"type": "u128"
}
]
},
{
"name": "new_fungible_definition",
"accounts": [
{
"name": "definition_target_account",
"writable": false,
"signer": false,
"init": false
},
{
"name": "holding_target_account",
"writable": false,
"signer": false,
"init": false
}
],
"args": [
{
"name": "name",
"type": "string"
},
{
"name": "total_supply",
"type": "u128"
}
]
},
{
"name": "new_definition_with_metadata",
"accounts": [
{
"name": "definition_target_account",
"writable": false,
"signer": false,
"init": false
},
{
"name": "holding_target_account",
"writable": false,
"signer": false,
"init": false
},
{
"name": "metadata_target_account",
"writable": false,
"signer": false,
"init": false
}
],
"args": [
{
"name": "new_definition",
"type": {
"defined": "NewTokenDefinition"
}
},
{
"name": "metadata",
"type": {
"defined": "Box"
}
}
]
},
{
"name": "initialize_account",
"accounts": [
{
"name": "definition_account",
"writable": false,
"signer": false,
"init": false
},
{
"name": "account_to_initialize",
"writable": false,
"signer": false,
"init": false
}
],
"args": []
},
{
"name": "burn",
"accounts": [
{
"name": "definition_account",
"writable": false,
"signer": false,
"init": false
},
{
"name": "user_holding_account",
"writable": false,
"signer": false,
"init": false
}
],
"args": [
{
"name": "amount_to_burn",
"type": "u128"
}
]
},
{
"name": "mint",
"accounts": [
{
"name": "definition_account",
"writable": false,
"signer": false,
"init": false
},
{
"name": "user_holding_account",
"writable": false,
"signer": false,
"init": false
}
],
"args": [
{
"name": "amount_to_mint",
"type": "u128"
}
]
},
{
"name": "print_nft",
"accounts": [
{
"name": "master_account",
"writable": false,
"signer": false,
"init": false
},
{
"name": "printed_account",
"writable": false,
"signer": false,
"init": false
}
],
"args": []
}
],
"accounts": [
{
"name": "TokenDefinition",
"type": {
"kind": "enum",
"variants": [
{
"name": "Fungible",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "total_supply",
"type": "u128"
},
{
"name": "metadata_id",
"type": {
"option": "account_id"
}
}
]
},
{
"name": "NonFungible",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "printable_supply",
"type": "u128"
},
{
"name": "metadata_id",
"type": "account_id"
}
]
}
]
}
},
{
"name": "TokenHolding",
"type": {
"kind": "enum",
"variants": [
{
"name": "Fungible",
"fields": [
{
"name": "definition_id",
"type": "account_id"
},
{
"name": "balance",
"type": "u128"
}
]
},
{
"name": "NftMaster",
"fields": [
{
"name": "definition_id",
"type": "account_id"
},
{
"name": "print_balance",
"type": "u128"
}
]
},
{
"name": "NftPrintedCopy",
"fields": [
{
"name": "definition_id",
"type": "account_id"
},
{
"name": "owned",
"type": "bool"
}
]
}
]
}
},
{
"name": "TokenMetadata",
"type": {
"kind": "struct",
"fields": [
{
"name": "definition_id",
"type": "account_id"
},
{
"name": "standard",
"type": {
"defined": "MetadataStandard"
}
},
{
"name": "uri",
"type": "string"
},
{
"name": "creators",
"type": "string"
},
{
"name": "primary_sale_date",
"type": "u64"
}
]
}
}
],
"types": [
{
"name": "MetadataStandard",
"kind": "enum",
"variants": [
{
"name": "Simple"
},
{
"name": "Expanded"
}
]
}
],
"instruction_type": "token_core::Instruction"
}