mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-05-18 15:09:51 +00:00
Pass `ctx.self_program_id` from `ProgramContext` into `initialize_account` and `mint`, which now assert that the token definition account is owned by the token program. This prevents callers from supplying a foreign-owned account as the definition. See https://github.com/logos-co/spel/issues/172
227 lines
4.5 KiB
JSON
227 lines
4.5 KiB
JSON
{
|
|
"version": "0.1.0",
|
|
"name": "ata",
|
|
"instructions": [
|
|
{
|
|
"name": "create",
|
|
"accounts": [
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "token_definition",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "ata_account",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "transfer",
|
|
"accounts": [
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "sender_ata",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "recipient",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "amount",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "burn",
|
|
"accounts": [
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "holder_ata",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "token_definition",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "amount",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"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": "ata_core::Instruction"
|
|
}
|