lez-programs/artifacts/ata-idl.json
bristinWild 83df2037ef refactor(authority): embed Authority type in TokenDefinition; fix AMM LP minting
Addresses @0x-r4bbit's review:

- lez-authority now provides an Authority(Option<[u8;32]>) newtype and an
  Ownable trait (require_owner / transfer_ownership / renounce_ownership);
  programs embed the authority slot in their account type instead of calling
  a wrapper. Replaces the old AuthoritySlot.
- TokenDefinition::Fungible embeds authority: Authority; TokenDefinition
  implements Ownable.
- Fold mint authority into NewFungibleDefinition { mint_authority: Option<AccountId> };
  remove the separate NewFungibleDefinitionWithAuthority instruction.
- mint/set_authority authorize against the definition account itself (its id
  must match the stored authority and be authorized in the tx), restoring the
  2-account mint shape and supporting PDA authorities.
- Fix AMM: the pool-definition PDA is now the LP token's mint authority, so the
  AMM mints LP at creation and on add-liquidity (was permanently revoked).
- Instruction params use AccountId; remove LP-0013-specific comments.
- Regenerate token/amm/ata/stablecoin IDLs.

Tests: lez-authority 8, token unit 56, token/amm/stablecoin/ata integration all
green under RISC0_DEV_MODE=1; fmt + clippy clean.
2026-07-02 01:18:39 +05:30

246 lines
4.9 KiB
JSON

{
"version": "0.1.0",
"name": "ata",
"instructions": [
{
"name": "create",
"accounts": [
{
"name": "owner",
"writable": true,
"signer": false,
"init": false
},
{
"name": "token_definition",
"writable": false,
"signer": false,
"init": false
},
{
"name": "ata_account",
"writable": true,
"signer": false,
"init": false
}
],
"args": [
{
"name": "token_program_id",
"type": "program_id"
}
]
},
{
"name": "transfer",
"accounts": [
{
"name": "owner",
"writable": false,
"signer": true,
"init": false
},
{
"name": "sender_ata",
"writable": true,
"signer": false,
"init": false
},
{
"name": "recipient",
"writable": true,
"signer": false,
"init": false
}
],
"args": [
{
"name": "token_program_id",
"type": "program_id"
},
{
"name": "amount",
"type": "u128"
}
]
},
{
"name": "burn",
"accounts": [
{
"name": "owner",
"writable": false,
"signer": true,
"init": false
},
{
"name": "holder_ata",
"writable": true,
"signer": false,
"init": false
},
{
"name": "token_definition",
"writable": true,
"signer": false,
"init": false
}
],
"args": [
{
"name": "token_program_id",
"type": "program_id"
},
{
"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": "authority",
"type": {
"defined": "Authority"
}
}
]
},
{
"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"
}