{ "address": "XzTT4XB8m7sLD2xi6snefSasaswsKCxx5Tifjondogm", "metadata": { "name": "ondo_gm", "version": "0.1.0", "spec": "0.1.0", "description": "Ondo Finance Global Markets" }, "instructions": [ { "name": "add_to_whitelist", "docs": [ "Add an address to the whitelist", "Signer must have the ADMIN_ROLE_WHITELIST role" ], "discriminator": [ 157, 211, 52, 54, 144, 81, 5, 55 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account that has the authority to add an address to the whitelist" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_WHITELIST` role", "# PDA Seeds", "- ADMIN_ROLE_WHITELIST", "- The authority's address", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 87, 104, 105, 116, 101, 108, 105, 115, 116 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "whitelist", "docs": [ "The Whitelist account being created", "# PDA Seeds", "- WHITELIST_SEED", "- Address being whitelisted" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 119, 104, 105, 116, 101, 108, 105, 115, 116 ] }, { "kind": "arg", "path": "address_to_whitelist" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "address_to_whitelist", "type": "pubkey" } ] }, { "name": "batch_close_attestation_accounts", "docs": [ "Batch close attestation accounts", "", "Accounts to close are passed via remaining_accounts, constraints:", "1. Accounts must be marked writable", "2. No other accounts should present in `remaining_accounts`", "3. Each attestation account must be created by the recipient", "4. Each attestation must be older than 30 seconds", "Unpermissioned" ], "discriminator": [ 73, 167, 240, 82, 80, 48, 205, 207 ], "accounts": [ { "name": "closer", "docs": [ "The user closing the attestation accounts" ], "signer": true }, { "name": "recipient", "docs": [ "The recipient of the lamports from closed attestation accounts", "Must be the creator of each attestation" ], "writable": true }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "burn_usdon", "docs": [ "Burn USDon tokens (admin function)", "Signer must have the BURNER_ROLE_USDON role" ], "discriminator": [ 173, 55, 240, 198, 34, 223, 191, 82 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to burn USDon tokens" ], "writable": true, "signer": true }, { "name": "permanent_delegate", "docs": [ "The permanent delegate PDA (also the mint authority)", "# PDA Seeds", "- MINT_AUTHORITY_SEED", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account containing USDon configuration", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has either the `BURNER_ROLE_USDON` role", "or the `ADMIN_ROLE_USDON` role", "# PDA Seeds", "- Role seed (from the account's role field)", "- The authority's address" ], "pda": { "seeds": [ { "kind": "account", "path": "authority_role_account.role", "account": "Roles" }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The USDon mint" ], "writable": true }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "destination", "docs": [ "The token account to burn tokens from" ], "writable": true } ], "args": [ { "name": "amount", "type": "u64" } ] }, { "name": "close_attestation_account", "docs": [ "Close a single attestation account", "", "The attestation account must be older than 30 seconds to be closed.", "The rent from the closed account is returned to the recipient (original creator).", "Unpermissioned" ], "discriminator": [ 201, 34, 214, 89, 249, 220, 97, 101 ], "accounts": [ { "name": "closer", "docs": [ "The user closing the attestation account" ], "signer": true }, { "name": "attestation", "docs": [ "The attestation account to close", "# PDA Seeds", "- ATTESTATION_ID_SEED", "- _attestation_id" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 97, 116, 116, 101, 115, 116, 97, 116, 105, 111, 110, 95, 105, 100 ] }, { "kind": "arg", "path": "_attestation_id" } ] } }, { "name": "recipient", "docs": [ "The recipient of the lamports from the closed attestation account", "Must be the creator of the attestation", "" ], "writable": true }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "_attestation_id", "type": { "array": [ "u8", 16 ] } } ] }, { "name": "enable_oracle_price", "docs": [ "Enable or disable oracle price for USDon", "Signer must have the ADMIN_ROLE_USDON_MANAGER role" ], "discriminator": [ 31, 98, 115, 216, 241, 185, 41, 109 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the operation" ], "signer": true }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account to be modified", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_USDON_MANAGER` role", "# PDA Seeds", "- ADMIN_ROLE_USDON_MANAGER", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 85, 83, 68, 111, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } } ], "args": [ { "name": "is_enabled", "type": "bool" } ] }, { "name": "grant_gmtoken_factory_role", "docs": [ "Grants the specified GM Token Factory role to the user", "Signer must have the ADMIN_ROLE_GMTOKEN_FACTORY role" ], "discriminator": [ 219, 108, 46, 79, 46, 104, 74, 179 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to grant a GM Token Factory role" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_FACTORY` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_FACTORY`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 70, 97, 99, 116, 111, 114, 121 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_grant", "docs": [ "The new `Roles` account being created for the user", "# PDA Seeds", "- Role seed (from RoleType)", "- User's address" ], "writable": true, "pda": { "seeds": [ { "kind": "arg", "path": "role" }, { "kind": "arg", "path": "user" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "user", "type": "pubkey" } ] }, { "name": "grant_gmtoken_manager_role", "docs": [ "Grant a GM Token Manager role", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 245, 248, 145, 72, 159, 93, 154, 176 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to grant GM Token Manager roles" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- ADMIN_ROLE_GMTOKEN_MANAGER", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_grant", "docs": [ "The new `Roles` account being created for the user", "# PDA Seeds", "- Role seed (from RoleType)", "- User's address" ], "writable": true, "pda": { "seeds": [ { "kind": "arg", "path": "role" }, { "kind": "arg", "path": "user" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "user", "type": "pubkey" } ] }, { "name": "grant_gmtoken_role", "docs": [ "Grants the specified GMToken role to the user", "Signer must have the ADMIN_ROLE_GMTOKEN role" ], "discriminator": [ 80, 114, 198, 5, 12, 2, 84, 105 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to grant GM Token roles" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN` role", "# PDA Seeds", "- ADMIN_ROLE_GMTOKEN", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_grant", "docs": [ "The new Roles account being created for the user", "# PDA Seeds", "- Role seed (from RoleType)", "- User's address" ], "writable": true, "pda": { "seeds": [ { "kind": "arg", "path": "role" }, { "kind": "arg", "path": "user" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "user", "type": "pubkey" } ] }, { "name": "grant_role", "docs": [ "Grants the specified role to a user", "The signer must be the upgrade authority of the program" ], "discriminator": [ 218, 234, 128, 15, 82, 33, 236, 253 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to grant roles, must be the program upgrade authority" ], "signer": true }, { "name": "role_to_grant", "docs": [ "The Roles account to be initialized", "# PDA Seeds", "- The role seed (from RoleType)", "- The user's address" ], "writable": true, "pda": { "seeds": [ { "kind": "arg", "path": "role" }, { "kind": "arg", "path": "user" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" }, { "name": "program", "docs": [ "The Ondo Global Markets program" ], "address": "XzTT4XB8m7sLD2xi6snefSasaswsKCxx5Tifjondogm" }, { "name": "program_data", "docs": [ "The ProgramData account of the Ondo Global Markets program" ] } ], "args": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "user", "type": "pubkey" } ] }, { "name": "grant_sanity_configurer_role", "docs": [ "Grant a configurer role for sanity check", "Signer must have the ADMIN_ROLE_ONDO_SANITY_CHECK role" ], "discriminator": [ 22, 112, 48, 145, 46, 77, 61, 33 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to grant the configurer role" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_ONDO_SANITY_CHECK` role", "# PDA Seeds", "- `ADMIN_ROLE_ONDO_SANITY_CHECK`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 79, 110, 100, 111, 83, 97, 110, 105, 116, 121, 67, 104, 101, 99, 107 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_grant", "docs": [ "The new `Roles` account being created for the user", "# PDA Seeds", "- Role seed (from RoleType)", "- User's address" ], "writable": true, "pda": { "seeds": [ { "kind": "arg", "path": "role" }, { "kind": "arg", "path": "user" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "user", "type": "pubkey" } ] }, { "name": "grant_sanity_setter_role", "docs": [ "Grant a setter role for sanity check", "Signer must have the ADMIN_ROLE_ONDO_SANITY_CHECK role" ], "discriminator": [ 209, 154, 110, 150, 18, 113, 63, 227 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to grant the setter role" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_ONDO_SANITY_CHECK` role", "# PDA Seeds", "- `RoleType::ADMIN_ROLE_ONDO_SANITY_CHECK`", "- `authority` (the authority's address)" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 79, 110, 100, 111, 83, 97, 110, 105, 116, 121, 67, 104, 101, 99, 107 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_grant", "docs": [ "The role account to be initialized for the user", "# PDA Seeds", "- `role.seed()` (the seed for the setter role)", "- `user` (the user's address)" ], "writable": true, "pda": { "seeds": [ { "kind": "arg", "path": "role" }, { "kind": "arg", "path": "user" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "user", "type": "pubkey" } ] }, { "name": "grant_usdon_role", "docs": [ "Grants the specified USDon role to a user", "Signer must have the GUARDIAN_USDON role" ], "discriminator": [ 107, 112, 6, 81, 156, 182, 208, 9 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to grant the role" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `GUARDIAN_USDON` role", "# PDA Seeds", "- GUARDIAN_USDON", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 71, 117, 97, 114, 100, 105, 97, 110, 85, 83, 68, 111, 110 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_grant", "docs": [ "The new `Roles` account being created for the user", "# PDA Seeds", "- Role seed (from RoleType)", "- User's address" ], "writable": true, "pda": { "seeds": [ { "kind": "arg", "path": "role" }, { "kind": "arg", "path": "user" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "user", "type": "pubkey" } ] }, { "name": "init_mint", "docs": [ "Initialize a new GM token mint (without permanent delegate)", "Signer must have the DEPLOYER_ROLE_GMTOKEN_FACTORY role" ], "discriminator": [ 126, 176, 233, 16, 66, 117, 209, 125 ], "accounts": [ { "name": "payer", "docs": [ "The payer account funding the mint account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to deploy new GM tokens" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the user has `DEPLOYER_ROLE_GMTOKEN_FACTORY`", "# PDA Seeds", "- `DEPLOYER_ROLE_GMTOKEN_FACTORY`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 68, 101, 112, 108, 111, 121, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 70, 97, 99, 116, 111, 114, 121 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The new mint account to be initialized", "" ], "writable": true, "signer": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA that will control the mint", "# PDA Seeds", "- `MINT_AUTHORITY_SEED`", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account containing factory configuration", "# PDA Seeds", "- GMTOKEN_MANAGER_STATE_SEED" ], "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [ { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "uri", "type": "string" }, { "name": "freeze_authority", "type": "pubkey" } ] }, { "name": "init_mint_delegate", "docs": [ "Initialize a new token mint with permanent delegate (for USDon)", "Signer must have the DEPLOYER_ROLE_GMTOKEN_FACTORY role" ], "discriminator": [ 66, 23, 77, 148, 164, 53, 165, 83 ], "accounts": [ { "name": "payer", "docs": [ "The payer account funding the mint account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to deploy new tokens" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `DEPLOYER_ROLE_GMTOKEN_FACTORY` role", "# PDA Seeds", "- `DEPLOYER_ROLE_GMTOKEN_FACTORY`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 68, 101, 112, 108, 111, 121, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 70, 97, 99, 116, 111, 114, 121 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The new mint account to be initialized with permanent delegate", "" ], "writable": true, "signer": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA that will control the mint and act as permanent delegate", "# PDA Seeds", "- `MINT_AUTHORITY_SEED`", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account containing factory configuration", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [ { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "uri", "type": "string" }, { "name": "freeze_authority", "type": "pubkey" } ] }, { "name": "initialize_gmtoken_manager", "docs": [ "Initialize the GM token manager state", "", "Sets up the manager with pause states for factory, redemptions, and minting,", "and configures the secp256k1 attestation signer address.", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 118, 57, 145, 134, 233, 31, 145, 47 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to initialize the GM Token Manager" ], "signer": true }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be initialized", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "factory_paused", "type": "bool" }, { "name": "redemptions_paused", "type": "bool" }, { "name": "minting_paused", "type": "bool" }, { "name": "attestation_signer_secp", "type": { "array": [ "u8", 20 ] } }, { "name": "trading_hours_offset", "type": "i64" } ] }, { "name": "initialize_sanity_check", "docs": [ "Initialize sanity check parameters for a token", "", "Sets up price deviation and time delay checks to ensure safe trading.", "Signer must have the ADMIN_ROLE_ONDO_SANITY_CHECK role" ], "discriminator": [ 99, 169, 10, 74, 68, 74, 22, 72 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to initialize the sanity check" ], "signer": true }, { "name": "sanity_check", "docs": [ "The sanity check account to be initialized", "# PDA Seeds", "- `ORACLE_SANITY_CHECK_SEED`", "- `mint` (the mint address of the GM Token for which the sanity check is being initialized)" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_ONDO_SANITY_CHECK` role", "# PDA Seeds", "- `RoleType::ADMIN_ROLE_ONDO_SANITY_CHECK`", "- `authority` (the authority's address)" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 79, 110, 100, 111, 83, 97, 110, 105, 116, 121, 67, 104, 101, 99, 107 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The GM Token mint for which the sanity check is being initialized" ] }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "last_price", "type": "u64" }, { "name": "allowed_deviation_bps", "type": "u64" }, { "name": "max_time_delay", "type": "i64" } ] }, { "name": "initialize_token_limit", "docs": [ "Initialize token-level rate limits", "", "Sets rate limits for the token and default limits for users trading this token.", "Signer must have the DEPLOYER_ROLE_GMTOKEN_FACTORY role" ], "discriminator": [ 187, 218, 162, 146, 4, 49, 163, 240 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to initialize token limit accounts" ], "signer": true }, { "name": "mint", "docs": [ "The GM Token or USDon mint" ] }, { "name": "token_limit", "docs": [ "The `TokenLimit` account to be initialized", "# PDA Seeds", "- `TOKEN_LIMIT_ACCOUNT_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `DEPLOYER_ROLE_GMTOKEN_FACTORY` role", "# PDA Seeds", "- `DEPLOYER_ROLE_GMTOKEN_FACTORY`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 68, 101, 112, 108, 111, 121, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 70, 97, 99, 116, 111, 114, 121 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "rate_limit", "type": { "option": "u64" } }, { "name": "limit_window", "type": { "option": "u64" } }, { "name": "default_user_rate_limit", "type": { "option": "u64" } }, { "name": "default_limit_window", "type": { "option": "u64" } } ] }, { "name": "initialize_usdon_manager", "docs": [ "Initialize the USDon manager state", "", "Sets up the manager with the USDon mint, initial price, oracle configuration,", "and vault addresses for USDC and USDon tokens.", "Signer must have the GUARDIAN_USDON role" ], "discriminator": [ 9, 32, 232, 105, 2, 166, 13, 47 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to initialize the USDon Manager" ], "signer": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA", "# PDA Seeds", "- MINT_AUTHORITY_SEED", "", "Does not need to be checked for correctness as it is uninitialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "usdon_mint", "docs": [ "The USDon mint account", "Must be initialized with mint authority as `mint_authority`", "and use the token-2022 program" ] }, { "name": "usdon_vault", "docs": [ "The USDon vault token account", "Must be the ATA for `usdon_mint` owned by `usdon_manager_state`" ], "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "const", "value": [ 6, 221, 246, 225, 238, 117, 143, 222, 24, 66, 93, 188, 228, 108, 205, 218, 182, 26, 252, 77, 131, 185, 13, 39, 254, 189, 249, 40, 216, 161, 139, 252 ] }, { "kind": "account", "path": "usdon_mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdc_vault", "docs": [ "The USDC vault token account", "Must be the ATA for USDC mint owned by `usdon_manager_state`" ], "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "const", "value": [ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169 ] }, { "kind": "const", "value": [ 198, 250, 122, 243, 190, 219, 173, 58, 61, 101, 243, 106, 171, 201, 116, 49, 177, 187, 228, 194, 210, 246, 224, 228, 124, 166, 2, 3, 69, 47, 93, 97 ] } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account to be initialized", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `GUARDIAN_USDON` role", "# PDA Seeds", "- GUARDIAN_USDON", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 71, 117, 97, 114, 100, 105, 97, 110, 85, 83, 68, 111, 110 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "oracle_price_enabled", "type": "bool" }, { "name": "oracle_price_max_age", "type": "u64" }, { "name": "usdc_price_update_address", "type": "pubkey" } ] }, { "name": "initialize_user", "docs": [ "Initialize a user account with optional rate limits" ], "discriminator": [ 111, 17, 185, 250, 60, 122, 38, 254 ], "accounts": [ { "name": "payer", "docs": [ "Pays for account creation" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to initialize an `OndoUser` account" ], "signer": true }, { "name": "user", "docs": [ "The user for whom the OndoUser account is being initialized" ] }, { "name": "mint", "docs": [ "The GM Token mint associated with the OndoUser account" ] }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "ondo_user", "docs": [ "The `OndoUser` account to be initialized", "# PDA seeds:", "- `ONDO_USER_SEED`", "- User's address,", "- The GM Token's mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 79, 110, 100, 111, 85, 115, 101, 114 ] }, { "kind": "account", "path": "user" }, { "kind": "account", "path": "mint" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "rate_limit", "type": { "option": "u64" } }, { "name": "limit_window", "type": { "option": "u64" } } ] }, { "name": "mint_gm", "docs": [ "Mint GM tokens directly (admin function)", "Signer must have the MINTER_ROLE_GMTOKEN role" ], "discriminator": [ 117, 223, 58, 111, 44, 36, 16, 43 ], "accounts": [ { "name": "payer", "docs": [ "Pays for destination account if needed" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The account with the authority to mint GM Tokens," ], "signer": true }, { "name": "user", "docs": [ "The user receiving the minted tokens" ] }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `MINTER_ROLE_GMTOKEN` role", "# PDA Seeds", "- `MINTER_ROLE_GMTOKEN`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 77, 105, 110, 116, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "oracle_sanity_check", "docs": [ "The `OracleSanityCheck` account validating oracle price updates", "# PDA Seeds", "- `ORACLE_SANITY_CHECK_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "mint_authority", "docs": [ "The mint authority PDA", "# PDA Seeds", "- `MINT_AUTHORITY_SEED`", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "mint", "docs": [ "The GM Token mint to mint from" ], "writable": true, "relations": [ "oracle_sanity_check" ] }, { "name": "destination", "docs": [ "The destination token account to mint tokens to" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "user" }, { "kind": "const", "value": [ 6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206, 235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140, 245, 133, 126, 255, 0, 169 ] }, { "kind": "account", "path": "mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdon_manager_state", "docs": [ "The `USDonManagerState` account for validation", "# PDA Seeds", "- `USDON_MANAGER_STATE_SEED`" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "associated_token_program", "docs": [ "The associated token program" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "amount", "type": "u64" } ] }, { "name": "mint_usdon", "docs": [ "Mint USDon tokens (admin function)", "Signer must have the MINTER_ROLE_USDON role" ], "discriminator": [ 178, 178, 234, 133, 225, 144, 48, 129 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to mint USDon tokens" ], "writable": true, "signer": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA", "# PDA Seeds", "- MINT_AUTHORITY_SEED", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account containing USDon configuration", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has either the `MINTER_ROLE_USDON`", "or `ADMIN_ROLE_USDON` role", "# PDA Seeds", "- Role seed (from the account's role field)", "- The authority's address" ], "pda": { "seeds": [ { "kind": "account", "path": "authority_role_account.role", "account": "Roles" }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The USDon mint" ], "writable": true }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "destination", "docs": [ "The destination token account to mint tokens to" ], "writable": true } ], "args": [ { "name": "amount", "type": "u64" } ] }, { "name": "mint_with_usdc", "docs": [ "Mint GM tokens by paying with USDC", "", "Requires a valid attestation with price, amount, and expiration." ], "discriminator": [ 128, 28, 133, 173, 71, 142, 185, 206 ], "accounts": [ { "name": "user", "docs": [ "The user performing the USDC swap, pays for account creation if needed" ], "writable": true, "signer": true }, { "name": "mint", "docs": [ "The GM Token mint involved in the swap" ], "writable": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA", "# PDA Seeds", "- MINT_AUTHORITY_SEED", "Does not need to be checked for correctness as it is uninitialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "ondo_user", "docs": [ "The OndoUser account tracking user-specific state for this mint", "# PDA Seeds", "- ONDO_USER_SEED", "- User's address", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 79, 110, 100, 111, 85, 115, 101, 114 ] }, { "kind": "account", "path": "user" }, { "kind": "account", "path": "mint" } ] } }, { "name": "token_limit_account", "docs": [ "The TokenLimit account enforcing mint/burn limits for the GM Token", "# PDA Seeds", "- TOKEN_LIMIT_ACCOUNT_SEED", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "sanity_check_account", "docs": [ "The OracleSanityCheck account validating oracle price updates", "# PDA Seeds", "- ORACLE_SANITY_CHECK_SEED", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "user_token_account", "docs": [ "The user's associated token account for the GM Token" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "user" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "attestation_id_account", "docs": [ "The attestation ID account preventing attestation reuse", "# PDA Seeds", "- ATTESTATION_ID_SEED", "- Attestation ID (16-byte array)", "Existence means the attestation has been used." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 97, 116, 116, 101, 115, 116, 97, 116, 105, 111, 110, 95, 105, 100 ] }, { "kind": "arg", "path": "attestation_id" } ] } }, { "name": "whitelist", "docs": [ "The Whitelist account verifying the user is authorized", "# PDA Seeds", "- WHITELIST_SEED", "- User's address", "Validated in instruction handler - returns UserNotWhitelisted if not initialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 119, 104, 105, 116, 101, 108, 105, 115, 116 ] }, { "kind": "account", "path": "user" } ] } }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" }, { "name": "associated_token_program", "docs": [ "The associated token program" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "spl_token_program", "docs": [ "The legacy SPL Token program", "Required when performing swaps between USDC and USDon tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "usdc_price_update", "docs": [ "The oracle price update account for USDC/USD price feed", "Provides real-time price data for USDC token", "Used in swap operations to calculate exchange rates", "Must be recent (within oracle_price_max_age) to ensure price accuracy", "`has_one` ensures that this account matches the expected oracle account stored in the `usdon_manager_state`." ], "relations": [ "usdon_manager_state" ] }, { "name": "usdc_vault", "docs": [ "The USDC vault storing USDC tokens received from users during swaps" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "account", "path": "spl_token_program" }, { "kind": "account", "path": "usdc_mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdon_vault", "docs": [ "The USDon vault storing USDon tokens received from users during swaps" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "usdon_mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdc_mint" }, { "name": "user_usdc_token_account", "docs": [ "The user's USDC token account" ], "writable": true }, { "name": "usdon_mint", "docs": [ "The USDon mint (Token-2022)" ], "writable": true }, { "name": "user_usdon_token_account", "docs": [ "The user's USDon token account" ], "writable": true }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account used as authority for vault operations", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The GmTokenManagerState account managing GM Token operations", "- Stores protocol parameters like factory, redemption, and minting paused.", "# PDA Seeds", "- GMTOKEN_MANAGER_STATE_SEED" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "instructions", "address": "Sysvar1nstructions1111111111111111111111111" }, { "name": "event_authority", "pda": { "seeds": [ { "kind": "const", "value": [ 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "program" } ], "args": [ { "name": "attestation_id", "type": { "array": [ "u8", 16 ] } }, { "name": "price", "type": "u64" }, { "name": "amount", "type": "u64" }, { "name": "expiration", "type": "i64" } ] }, { "name": "mint_with_usdon", "docs": [ "Mint GM tokens by paying with USDon", "", "Requires a valid attestation with price, amount, and expiration." ], "discriminator": [ 25, 116, 92, 45, 43, 188, 95, 58 ], "accounts": [ { "name": "user", "docs": [ "The user performing the USDon swap, pays for account creation if needed" ], "writable": true, "signer": true }, { "name": "mint", "docs": [ "The GM Token mint involved in the swap" ], "writable": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA", "# PDA Seeds", "- MINT_AUTHORITY_SEED", "Does not need to be checked for correctness as it is uninitialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "ondo_user", "docs": [ "The OndoUser account tracking user-specific state for this mint", "# PDA Seeds", "- ONDO_USER_SEED", "- User's address", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 79, 110, 100, 111, 85, 115, 101, 114 ] }, { "kind": "account", "path": "user" }, { "kind": "account", "path": "mint" } ] } }, { "name": "token_limit_account", "docs": [ "The TokenLimit account enforcing mint/burn limits for the GM Token", "# PDA Seeds", "- TOKEN_LIMIT_ACCOUNT_SEED", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "sanity_check_account", "docs": [ "The OracleSanityCheck account validating oracle price updates", "# PDA Seeds", "- ORACLE_SANITY_CHECK_SEED", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "user_token_account", "docs": [ "The user's associated token account for the GM Token" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "user" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "attestation_id_account", "docs": [ "The attestation ID account preventing attestation reuse", "# PDA Seeds", "- ATTESTATION_ID_SEED", "- Attestation ID (16-byte array)", "Existence means the attestation has been used." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 97, 116, 116, 101, 115, 116, 97, 116, 105, 111, 110, 95, 105, 100 ] }, { "kind": "arg", "path": "attestation_id" } ] } }, { "name": "whitelist", "docs": [ "The Whitelist account verifying the user is authorized", "# PDA Seeds", "- WHITELIST_SEED", "- User's address", "Validated in instruction handler - returns UserNotWhitelisted if not initialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 119, 104, 105, 116, 101, 108, 105, 115, 116 ] }, { "kind": "account", "path": "user" } ] } }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" }, { "name": "associated_token_program", "docs": [ "The associated token program" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "usdon_vault", "docs": [ "The USDon vault storing USDon tokens received from users during swaps" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "usdon_mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdon_mint", "docs": [ "The USDon mint (Token-2022)" ], "writable": true }, { "name": "user_usdon_token_account", "docs": [ "The user's USDon token account" ], "writable": true }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account used as authority for vault operations", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The GmTokenManagerState account managing GM Token operations", "- Stores protocol parameters like factory, redemption, and minting paused.", "# PDA Seeds", "- GMTOKEN_MANAGER_STATE_SEED" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "instructions", "address": "Sysvar1nstructions1111111111111111111111111" }, { "name": "event_authority", "pda": { "seeds": [ { "kind": "const", "value": [ 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "program" } ], "args": [ { "name": "attestation_id", "type": { "array": [ "u8", 16 ] } }, { "name": "price", "type": "u64" }, { "name": "amount", "type": "u64" }, { "name": "expiration", "type": "i64" } ] }, { "name": "pause_global_minting", "docs": [ "Pause all mints globally", "Signer must have the PAUSER_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 191, 70, 149, 85, 20, 141, 242, 239 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `PAUSER_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `PAUSER_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 80, 97, 117, 115, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "pause_global_minting_admin", "docs": [ "Pause minting globally (admin function)", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 20, 43, 34, 201, 214, 148, 151, 75 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the unpause/configuration operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "pause_global_redemption", "docs": [ "Pause all redemption globally", "Signer must have the PAUSER_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 169, 5, 1, 19, 183, 71, 133, 147 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `PAUSER_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `PAUSER_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 80, 97, 117, 115, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "pause_global_redemption_admin", "docs": [ "Pause redemption globally (admin function)", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 77, 80, 68, 48, 7, 94, 111, 183 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the unpause/configuration operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "pause_token", "docs": [ "Pause all transfers for a GM token by invoking the pausable token extension", "Signer must have the PAUSER_ROLE_GMTOKEN role" ], "discriminator": [ 226, 150, 72, 211, 159, 51, 226, 39 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause operation" ], "writable": true, "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `PAUSER_ROLE_GMTOKEN` role", "# PDA Seeds", "- `PAUSER_ROLE_GMTOKEN`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 80, 97, 117, 115, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The GM Token mint to pause" ], "writable": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA that has pausable authority", "# PDA Seeds", "- MINT_AUTHORITY_SEED", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] } ], "args": [] }, { "name": "pause_token_factory", "docs": [ "Pause the GM token factory", "Signer must have the PAUSER_ROLE_GMTOKEN_FACTORY role" ], "discriminator": [ 79, 227, 221, 11, 182, 89, 193, 150 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `PAUSER_ROLE_GMTOKEN_FACTORY` role", "# PDA Seeds", "- `PAUSER_ROLE_GMTOKEN_FACTORY`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 80, 97, 117, 115, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 70, 97, 99, 116, 111, 114, 121 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "pause_token_factory_admin", "docs": [ "Pause the GM token factory (admin version)", "Signer must have the ADMIN_ROLE_GMTOKEN_FACTORY role" ], "discriminator": [ 244, 155, 26, 17, 39, 152, 51, 18 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause/unpause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has `ADMIN_ROLE_GMTOKEN_FACTORY` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_FACTORY`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 70, 97, 99, 116, 111, 114, 121 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "pause_token_minting", "docs": [ "Pause minting for a specific token", "Signer must have the PAUSER_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 105, 219, 64, 183, 163, 148, 17, 126 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `PAUSER_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `PAUSER_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 80, 97, 117, 115, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "token_limit_account", "docs": [ "The `TokenLimit` account for the specific GM Token to pause", "# PDA Seeds", "- `TOKEN_LIMIT_ACCOUNT_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "token_limit_account.mint", "account": "TokenLimit" } ] } } ], "args": [] }, { "name": "pause_token_minting_admin", "docs": [ "Pause mints for a specific token (admin function)", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 8, 3, 163, 16, 201, 93, 94, 145 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause/unpause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "token_limit_account", "docs": [ "The `TokenLimit` account for the specific GM Token to pause/unpause", "# PDA Seeds", "- `TOKEN_LIMIT_ACCOUNT_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "token_limit_account.mint", "account": "TokenLimit" } ] } } ], "args": [] }, { "name": "pause_token_redemption", "docs": [ "Pause redemptions for a specific token", "Signer must have the PAUSER_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 232, 134, 32, 8, 70, 234, 54, 216 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `PAUSER_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `PAUSER_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 80, 97, 117, 115, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "token_limit_account", "docs": [ "The `TokenLimit` account for the specific GM Token to pause", "# PDA Seeds", "- `TOKEN_LIMIT_ACCOUNT_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "token_limit_account.mint", "account": "TokenLimit" } ] } } ], "args": [] }, { "name": "pause_token_redemption_admin", "docs": [ "Pause redemptions for a specific token (admin function)", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 62, 162, 192, 223, 22, 143, 110, 191 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause/unpause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "token_limit_account", "docs": [ "The `TokenLimit` account for the specific GM Token to pause/unpause", "# PDA Seeds", "- `TOKEN_LIMIT_ACCOUNT_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "token_limit_account.mint", "account": "TokenLimit" } ] } } ], "args": [] }, { "name": "redeem_for_usdc", "docs": [ "Redeem GM tokens for USDC", "", "Requires a valid attestation with price, amount, and expiration." ], "discriminator": [ 150, 9, 215, 220, 255, 157, 74, 78 ], "accounts": [ { "name": "user", "docs": [ "The user performing the USDC swap, pays for account creation if needed" ], "writable": true, "signer": true }, { "name": "mint", "docs": [ "The GM Token mint involved in the swap" ], "writable": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA", "# PDA Seeds", "- MINT_AUTHORITY_SEED", "Does not need to be checked for correctness as it is uninitialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "ondo_user", "docs": [ "The OndoUser account tracking user-specific state for this mint", "# PDA Seeds", "- ONDO_USER_SEED", "- User's address", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 79, 110, 100, 111, 85, 115, 101, 114 ] }, { "kind": "account", "path": "user" }, { "kind": "account", "path": "mint" } ] } }, { "name": "token_limit_account", "docs": [ "The TokenLimit account enforcing mint/burn limits for the GM Token", "# PDA Seeds", "- TOKEN_LIMIT_ACCOUNT_SEED", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "sanity_check_account", "docs": [ "The OracleSanityCheck account validating oracle price updates", "# PDA Seeds", "- ORACLE_SANITY_CHECK_SEED", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "user_token_account", "docs": [ "The user's associated token account for the GM Token" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "user" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "attestation_id_account", "docs": [ "The attestation ID account preventing attestation reuse", "# PDA Seeds", "- ATTESTATION_ID_SEED", "- Attestation ID (16-byte array)", "Existence means the attestation has been used." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 97, 116, 116, 101, 115, 116, 97, 116, 105, 111, 110, 95, 105, 100 ] }, { "kind": "arg", "path": "attestation_id" } ] } }, { "name": "whitelist", "docs": [ "The Whitelist account verifying the user is authorized", "# PDA Seeds", "- WHITELIST_SEED", "- User's address", "Validated in instruction handler - returns UserNotWhitelisted if not initialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 119, 104, 105, 116, 101, 108, 105, 115, 116 ] }, { "kind": "account", "path": "user" } ] } }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" }, { "name": "associated_token_program", "docs": [ "The associated token program" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "spl_token_program", "docs": [ "The legacy SPL Token program", "Required when performing swaps between USDC and USDon tokens" ], "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" }, { "name": "usdc_price_update", "docs": [ "The oracle price update account for USDC/USD price feed", "Provides real-time price data for USDC token", "Used in swap operations to calculate exchange rates", "Must be recent (within oracle_price_max_age) to ensure price accuracy", "`has_one` ensures that this account matches the expected oracle account stored in the `usdon_manager_state`." ], "relations": [ "usdon_manager_state" ] }, { "name": "usdc_vault", "docs": [ "The USDC vault storing USDC tokens received from users during swaps" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "account", "path": "spl_token_program" }, { "kind": "account", "path": "usdc_mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdon_vault", "docs": [ "The USDon vault storing USDon tokens received from users during swaps" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "usdon_mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdc_mint" }, { "name": "user_usdc_token_account", "docs": [ "The user's USDC token account" ], "writable": true }, { "name": "usdon_mint", "docs": [ "The USDon mint (Token-2022)" ], "writable": true }, { "name": "user_usdon_token_account", "docs": [ "The user's USDon token account" ], "writable": true }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account used as authority for vault operations", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The GmTokenManagerState account managing GM Token operations", "- Stores protocol parameters like factory, redemption, and minting paused.", "# PDA Seeds", "- GMTOKEN_MANAGER_STATE_SEED" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "instructions", "address": "Sysvar1nstructions1111111111111111111111111" }, { "name": "event_authority", "pda": { "seeds": [ { "kind": "const", "value": [ 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "program" } ], "args": [ { "name": "attestation_id", "type": { "array": [ "u8", 16 ] } }, { "name": "price", "type": "u64" }, { "name": "amount", "type": "u64" }, { "name": "expiration", "type": "i64" } ] }, { "name": "redeem_for_usdon", "docs": [ "Redeem GM tokens for USDon", "", "Requires a valid attestation with price, amount, and expiration." ], "discriminator": [ 231, 121, 93, 33, 143, 252, 82, 13 ], "accounts": [ { "name": "user", "docs": [ "The user performing the USDon swap, pays for account creation if needed" ], "writable": true, "signer": true }, { "name": "mint", "docs": [ "The GM Token mint involved in the swap" ], "writable": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA", "# PDA Seeds", "- MINT_AUTHORITY_SEED", "Does not need to be checked for correctness as it is uninitialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "ondo_user", "docs": [ "The OndoUser account tracking user-specific state for this mint", "# PDA Seeds", "- ONDO_USER_SEED", "- User's address", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 79, 110, 100, 111, 85, 115, 101, 114 ] }, { "kind": "account", "path": "user" }, { "kind": "account", "path": "mint" } ] } }, { "name": "token_limit_account", "docs": [ "The TokenLimit account enforcing mint/burn limits for the GM Token", "# PDA Seeds", "- TOKEN_LIMIT_ACCOUNT_SEED", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "sanity_check_account", "docs": [ "The OracleSanityCheck account validating oracle price updates", "# PDA Seeds", "- ORACLE_SANITY_CHECK_SEED", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "user_token_account", "docs": [ "The user's associated token account for the GM Token" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "user" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "attestation_id_account", "docs": [ "The attestation ID account preventing attestation reuse", "# PDA Seeds", "- ATTESTATION_ID_SEED", "- Attestation ID (16-byte array)", "Existence means the attestation has been used." ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 97, 116, 116, 101, 115, 116, 97, 116, 105, 111, 110, 95, 105, 100 ] }, { "kind": "arg", "path": "attestation_id" } ] } }, { "name": "whitelist", "docs": [ "The Whitelist account verifying the user is authorized", "# PDA Seeds", "- WHITELIST_SEED", "- User's address", "Validated in instruction handler - returns UserNotWhitelisted if not initialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 119, 104, 105, 116, 101, 108, 105, 115, 116 ] }, { "kind": "account", "path": "user" } ] } }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" }, { "name": "associated_token_program", "docs": [ "The associated token program" ], "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL" }, { "name": "usdon_vault", "docs": [ "The USDon vault storing USDon tokens received from users during swaps" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "usdon_mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "usdon_mint", "docs": [ "The USDon mint (Token-2022)" ], "writable": true }, { "name": "user_usdon_token_account", "docs": [ "The user's USDon token account" ], "writable": true }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account used as authority for vault operations", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The GmTokenManagerState account managing GM Token operations", "- Stores protocol parameters like factory, redemption, and minting paused.", "# PDA Seeds", "- GMTOKEN_MANAGER_STATE_SEED" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "instructions", "address": "Sysvar1nstructions1111111111111111111111111" }, { "name": "event_authority", "pda": { "seeds": [ { "kind": "const", "value": [ 95, 95, 101, 118, 101, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "program" } ], "args": [ { "name": "attestation_id", "type": { "array": [ "u8", 16 ] } }, { "name": "price", "type": "u64" }, { "name": "amount", "type": "u64" }, { "name": "expiration", "type": "i64" } ] }, { "name": "remove_from_whitelist", "docs": [ "Remove an address from the whitelist", "Signer must have the ADMIN_ROLE_WHITELIST role" ], "discriminator": [ 7, 144, 216, 239, 243, 236, 193, 235 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to remove an address from the whitelist" ], "signer": true }, { "name": "recipient", "docs": [ "Receives the lamports from closing the Whitelist account" ], "writable": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_WHITELIST` role", "# PDA Seeds", "- `ADMIN_ROLE_WHITELIST`", "- The authority's address", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 87, 104, 105, 116, 101, 108, 105, 115, 116 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "whitelist", "docs": [ "The Whitelist account being closed", "# PDA Seeds", "- `WHITELIST_SEED`", "- Address being removed from whitelist" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 119, 104, 105, 116, 101, 108, 105, 115, 116 ] }, { "kind": "arg", "path": "address_to_remove" } ] } } ], "args": [ { "name": "address_to_remove", "type": "pubkey" } ] }, { "name": "resume_global_minting", "docs": [ "Resume all mints globally", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 18, 40, 173, 140, 250, 6, 10, 207 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the unpause/configuration operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "resume_global_redemption", "docs": [ "Resume all redemption globally", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 80, 47, 24, 168, 44, 185, 215, 97 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the unpause/configuration operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "resume_token", "docs": [ "Resume all transfers for a GM token by invoking the pausable token extension to remove a pause.", "Signer must have the UNPAUSER_ROLE_GMTOKEN role" ], "discriminator": [ 173, 116, 46, 190, 81, 191, 249, 83 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the resume operation" ], "writable": true, "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `UNPAUSER_ROLE_GMTOKEN` role", "# PDA Seeds", "- `UNPAUSER_ROLE_GMTOKEN`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 85, 110, 112, 97, 117, 115, 101, 114, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The GM Token mint to resume" ], "writable": true }, { "name": "mint_authority", "docs": [ "The mint authority PDA that has pausable authority", "# PDA Seeds", "- `MINT_AUTHORITY_SEED`", "" ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "token_program", "docs": [ "The token program (Token-2022)" ] } ], "args": [] }, { "name": "resume_token_factory", "docs": [ "Resume the GM token factory", "Signer must have the ADMIN_ROLE_GMTOKEN_FACTORY role" ], "discriminator": [ 235, 37, 239, 145, 244, 212, 31, 37 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause/unpause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has `ADMIN_ROLE_GMTOKEN_FACTORY` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_FACTORY`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 70, 97, 99, 116, 111, 114, 121 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [] }, { "name": "resume_token_minting", "docs": [ "Resume mints for a token (admin function)", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 188, 102, 226, 249, 194, 29, 81, 248 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause/unpause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "token_limit_account", "docs": [ "The `TokenLimit` account for the specific GM Token to pause/unpause", "# PDA Seeds", "- `TOKEN_LIMIT_ACCOUNT_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "token_limit_account.mint", "account": "TokenLimit" } ] } } ], "args": [] }, { "name": "resume_token_redemption", "docs": [ "Resume redemptions for a token (admin function)", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 152, 249, 213, 178, 85, 141, 122, 45 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the pause/unpause operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "token_limit_account", "docs": [ "The `TokenLimit` account for the specific GM Token to pause/unpause", "# PDA Seeds", "- `TOKEN_LIMIT_ACCOUNT_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "token_limit_account.mint", "account": "TokenLimit" } ] } } ], "args": [] }, { "name": "retrieve_tokens", "docs": [ "Retrieve (withdraw) tokens from a vault controlled by the USDon manager", "", "Allows admins to withdraw any tokens (USDC, USDon, etc.) from vaults", "owned by the usdon_manager_state PDA.", "Signer must have the ADMIN_ROLE_USDON_MANAGER role" ], "discriminator": [ 208, 194, 68, 55, 183, 22, 93, 135 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the retrieval operation" ], "signer": true }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account used as authority for vault operations", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_USDON_MANAGER` role", "# PDA Seeds", "- ADMIN_ROLE_USDON_MANAGER", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 85, 83, 68, 111, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "token_mint", "docs": [ "The mint of the token being retrieved" ] }, { "name": "source_vault", "docs": [ "The source vault token account (must be owned by usdon_manager_state)" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "usdon_manager_state" }, { "kind": "account", "path": "token_program" }, { "kind": "account", "path": "token_mint" } ], "program": { "kind": "const", "value": [ 140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142, 13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216, 219, 233, 248, 89 ] } } }, { "name": "destination", "docs": [ "The destination token account to receive the tokens" ], "writable": true }, { "name": "token_program", "docs": [ "The token program (SPL Token or Token-2022)" ] } ], "args": [ { "name": "amount", "type": "u64" } ] }, { "name": "revoke_gmtoken_factory_role", "docs": [ "Revokes the specified GM Token Factory role from the user", "Signer must have the ADMIN_ROLE_GMTOKEN_FACTORY role" ], "discriminator": [ 214, 48, 33, 96, 99, 36, 94, 198 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to revoke a GM Token Factory role" ], "signer": true }, { "name": "recipient", "docs": [ "Receives the lamports from closing the account" ], "writable": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_FACTORY` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_FACTORY`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 70, 97, 99, 116, 111, 114, 121 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_revoke", "docs": [ "The Roles account being closed", "# PDA Seeds", "- `role_to_revoke.role.seed()` (the seed for the role)", "- `role_to_revoke.address` (the user's address)" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "role_to_revoke.role", "account": "Roles" }, { "kind": "account", "path": "role_to_revoke.address", "account": "Roles" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "revoke_gmtoken_manager_role", "docs": [ "Revoke a role from the GM token manager", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 202, 63, 132, 81, 219, 242, 100, 90 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to revoke GM Token Manager roles" ], "signer": true }, { "name": "recipient", "docs": [ "Receives the lamports from closing the Roles account" ], "writable": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_revoke", "docs": [ "The Roles account being closed", "# PDA Seeds", "- `role_to_revoke.role.seed()` (the seed for the role)", "- `role_to_revoke.address` (the user's address)" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "role_to_revoke.role", "account": "Roles" }, { "kind": "account", "path": "role_to_revoke.address", "account": "Roles" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "revoke_gmtoken_role", "docs": [ "Revokes the specified GMToken role from the user", "Signer must have the ADMIN_ROLE_GMTOKEN role" ], "discriminator": [ 108, 55, 0, 39, 40, 39, 103, 144 ], "accounts": [ { "name": "recipient", "docs": [ "The recipient of the closed account lamports" ], "writable": true }, { "name": "authority", "docs": [ "The account with the authority to revoke GM Token roles" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN` role", "# PDA Seeds", "- ADMIN_ROLE_GMTOKEN", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_revoke", "docs": [ "The Roles account being closed", "# PDA Seeds", "- `role_to_revoke.role.seed()` (the seed for the role)", "- `role_to_revoke.address` (the user's address)" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "role_to_revoke.role", "account": "Roles" }, { "kind": "account", "path": "role_to_revoke.address", "account": "Roles" } ] } } ], "args": [] }, { "name": "revoke_role", "docs": [ "Revoke a role by closing the Roles account and reclaim rent", "Signer must be the upgrade authority of the program" ], "discriminator": [ 179, 232, 2, 180, 48, 227, 82, 7 ], "accounts": [ { "name": "recipient", "docs": [ "Receives funds from account closure" ], "writable": true }, { "name": "authority", "docs": [ "The account with the authority to revoke roles, must be the program upgrade authority" ], "signer": true }, { "name": "role_to_revoke", "docs": [ "The Roles account to be closed", "# PDA Seeds", "- `role_to_revoke.role.seed()` (the seed for the role)", "- `role_to_revoke.address` (the user's address)" ], "writable": true, "pda": { "seeds": [ { "kind": "arg", "path": "_role" }, { "kind": "account", "path": "role_to_revoke.address", "account": "Roles" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" }, { "name": "program", "docs": [ "The Ondo Global Markets program" ], "address": "XzTT4XB8m7sLD2xi6snefSasaswsKCxx5Tifjondogm" }, { "name": "program_data", "docs": [ "The ProgramData account of the Ondo Global Markets program" ] } ], "args": [ { "name": "_role", "type": { "defined": { "name": "RoleType" } } } ] }, { "name": "revoke_sanity_configurer_role", "docs": [ "Revoke a configurer role for sanity check", "Signer must have the ADMIN_ROLE_ONDO_SANITY_CHECK role" ], "discriminator": [ 170, 122, 0, 190, 220, 165, 67, 86 ], "accounts": [ { "name": "recipient", "docs": [ "Receives the lamports from closing the Roles account" ], "writable": true }, { "name": "authority", "docs": [ "The account with the authority to revoke the configurer role" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_ONDO_SANITY_CHECK` role", "# PDA Seeds", "- `ADMIN_ROLE_ONDO_SANITY_CHECK`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 79, 110, 100, 111, 83, 97, 110, 105, 116, 121, 67, 104, 101, 99, 107 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_revoke", "docs": [ "The Roles account being closed", "# PDA Seeds", "- `role_to_revoke.role.seed()` (the seed for the configurer role)", "- `role_to_revoke.address` (the user's address)" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "role_to_revoke.role", "account": "Roles" }, { "kind": "account", "path": "role_to_revoke.address", "account": "Roles" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "revoke_sanity_setter_role", "docs": [ "Revoke a setter role for sanity check", "Signer must have the ADMIN_ROLE_ONDO_SANITY_CHECK role" ], "discriminator": [ 224, 165, 35, 213, 84, 53, 9, 229 ], "accounts": [ { "name": "recipient", "docs": [ "Receives the lamports from closing the Roles account" ], "writable": true }, { "name": "authority", "docs": [ "The account that has the authority to revoke the setter role" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The role account of the admin", "# PDA Seeds", "- `RoleType::ADMIN_ROLE_ONDO_SANITY_CHECK`", "- `authority` (the authority's address)" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 79, 110, 100, 111, 83, 97, 110, 105, 116, 121, 67, 104, 101, 99, 107 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_revoke", "docs": [ "The role account to be closed", "# PDA Seeds", "- `role_to_revoke.role.seed()` (the seed for the setter role)", "- `role_to_revoke.address` (the user's address)" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "role_to_revoke.role", "account": "Roles" }, { "kind": "account", "path": "role_to_revoke.address", "account": "Roles" } ] } }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [] }, { "name": "revoke_usdon_role", "docs": [ "Revokes the specified USDon role from a user", "Signer must have the GUARDIAN_USDON role" ], "discriminator": [ 231, 35, 217, 203, 112, 165, 182, 69 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to revoke a role" ], "signer": true }, { "name": "recipient", "docs": [ "Receives the lamports from closing the `Roles` account" ], "writable": true }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `GUARDIAN_USDON` role", "# PDA Seeds", "- GUARDIAN_USDON", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 71, 117, 97, 114, 100, 105, 97, 110, 85, 83, 68, 111, 110 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "role_to_revoke", "docs": [ "The Roles account being closed", "# PDA Seeds", "- Role seed (from RoleType)", "- User's address" ], "writable": true, "pda": { "seeds": [ { "kind": "account", "path": "role_to_revoke.role", "account": "Roles" }, { "kind": "account", "path": "role_to_revoke.address", "account": "Roles" } ] } } ], "args": [] }, { "name": "set_allowed_deviation_bps", "docs": [ "Set allowed price deviation in basis points", "Signer must have the CONFIGURER_ROLE_ONDO_SANITY_CHECK role" ], "discriminator": [ 46, 36, 29, 85, 194, 180, 86, 124 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to configure the sanity check" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `CONFIGURER_ROLE_ONDO_SANITY_CHECK` role", "# PDA Seeds", "- `CONFIGURER_ROLE_ONDO_SANITY_CHECK`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 67, 111, 110, 102, 105, 103, 117, 114, 101, 114, 82, 111, 108, 101, 79, 110, 100, 111, 83, 97, 110, 105, 116, 121, 67, 104, 101, 99, 107 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The GM Token mint" ] }, { "name": "sanity_check_account", "docs": [ "The OracleSanityCheck account to be configured", "# PDA Seeds", "- `ORACLE_SANITY_CHECK_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } } ], "args": [ { "name": "allowed_deviation_bps", "type": "u64" } ] }, { "name": "set_attestation_signer_secp", "docs": [ "Update the secp256k1 attestation signer address", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 121, 157, 129, 65, 181, 51, 55, 0 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the unpause/configuration operation" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The `GmTokenManagerState` account to be modified", "# PDA Seeds", "- `GMTOKEN_MANAGER_STATE_SEED`" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [ { "name": "attestation_signer_secp", "type": { "array": [ "u8", 20 ] } } ] }, { "name": "set_last_price", "docs": [ "Update the last price in sanity check", "Signer must have the SETTER_ROLE_ONDO_SANITY_CHECK role" ], "discriminator": [ 58, 56, 189, 177, 199, 145, 145, 43 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to set the last price" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `SETTER_ROLE_ONDO_SANITY_CHECK` role", "# PDA Seeds", "- `SETTER_ROLE_ONDO_SANITY_CHECK`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 83, 101, 116, 116, 101, 114, 82, 111, 108, 101, 79, 110, 100, 111, 83, 97, 110, 105, 116, 121, 67, 104, 101, 99, 107 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The GM Token mint" ] }, { "name": "sanity_check_account", "docs": [ "The `OracleSanityCheck` account to be updated", "# PDA Seeds", "- `ORACLE_SANITY_CHECK_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } } ], "args": [ { "name": "last_price", "type": "u64" } ] }, { "name": "set_max_time_delay", "docs": [ "Set maximum time delay for sanity check", "Signer must have the CONFIGURER_ROLE_ONDO_SANITY_CHECK role" ], "discriminator": [ 145, 127, 145, 218, 239, 173, 252, 9 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to configure the sanity check" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `CONFIGURER_ROLE_ONDO_SANITY_CHECK` role", "# PDA Seeds", "- `CONFIGURER_ROLE_ONDO_SANITY_CHECK`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 67, 111, 110, 102, 105, 103, 117, 114, 101, 114, 82, 111, 108, 101, 79, 110, 100, 111, 83, 97, 110, 105, 116, 121, 67, 104, 101, 99, 107 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint", "docs": [ "The GM Token mint" ] }, { "name": "sanity_check_account", "docs": [ "The OracleSanityCheck account to be configured", "# PDA Seeds", "- `ORACLE_SANITY_CHECK_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 115, 97, 110, 105, 116, 121, 95, 99, 104, 101, 99, 107 ] }, { "kind": "account", "path": "mint" } ] } } ], "args": [ { "name": "max_time_delay", "type": "i64" } ] }, { "name": "set_ondo_user_limits", "docs": [ "Set rate limit for a user", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 86, 133, 101, 215, 245, 143, 28, 159 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to set user limits" ], "signer": true }, { "name": "mint", "docs": [ "The GM Token mint" ], "relations": [ "token_limit" ] }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "ondo_user", "docs": [ "The `OndoUser` account to update", "# PDA Seeds", "- `ONDO_USER_SEED`", "- User's owner address", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 79, 110, 100, 111, 85, 115, 101, 114 ] }, { "kind": "account", "path": "ondo_user.owner", "account": "OndoUser" }, { "kind": "account", "path": "mint" } ] } }, { "name": "token_limit", "docs": [ "The TokenLimit account", "# PDA Seeds", "- TOKEN_LIMIT_ACCOUNT_SEED", "- Mint address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "mint" } ] } } ], "args": [ { "name": "rate_limit", "type": "u64" }, { "name": "limit_window", "type": "u64" } ] }, { "name": "set_oracle_price_max_age", "docs": [ "Set the maximum age for oracle price data. When USDC oracle prices are more stale than `oracle_price_max_age`", "swaps will halt.", "Signer must have the ADMIN_ROLE_USDON_MANAGER role" ], "discriminator": [ 198, 173, 23, 10, 148, 48, 248, 61 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the operation" ], "signer": true }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account to be modified", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_USDON_MANAGER` role", "# PDA Seeds", "- ADMIN_ROLE_USDON_MANAGER", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 85, 83, 68, 111, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } } ], "args": [ { "name": "oracle_price_max_age", "type": "u64" } ] }, { "name": "set_token_limit", "docs": [ "Update token-level rate limits", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER role" ], "discriminator": [ 216, 80, 182, 245, 223, 87, 77, 53 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to update token limits" ], "writable": true, "signer": true }, { "name": "mint", "docs": [ "The GM Token or USDon mint" ] }, { "name": "token_limit", "docs": [ "The `TokenLimit` account to be updated", "# PDA Seeds", "- `TOKEN_LIMIT_ACCOUNT_SEED`", "- Mint address" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 116, 111, 107, 101, 110 ] }, { "kind": "account", "path": "mint" } ] } }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 71, 77, 84, 111, 107, 101, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } } ], "args": [ { "name": "rate_limit", "type": { "option": "u64" } }, { "name": "limit_window", "type": { "option": "u64" } }, { "name": "default_user_rate_limit", "type": { "option": "u64" } }, { "name": "default_user_limit_window", "type": { "option": "u64" } } ] }, { "name": "set_trading_hours_offset", "docs": [ "Set the trading hours offset", "Signer must have the ADMIN_ROLE_GMTOKEN_MANAGER or ISSUANCE_HOURS_ROLE role" ], "discriminator": [ 65, 114, 20, 50, 234, 67, 255, 126 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to set the trading hours offset" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `ADMIN_ROLE_GMTOKEN_MANAGER` role", "# PDA Seeds", "- `ADMIN_ROLE_GMTOKEN_MANAGER` or `ISSUANCE_HOURS_ROLE`", "- The authority's address" ], "pda": { "seeds": [ { "kind": "account", "path": "authority_role_account.role", "account": "Roles" }, { "kind": "account", "path": "authority" } ] } }, { "name": "gmtoken_manager_state", "docs": [ "The GmTokenManagerState account to be modified" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 103, 109, 116, 111, 107, 101, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } } ], "args": [ { "name": "new_trading_hours_offset", "type": "i64" } ] }, { "name": "set_usdc_price_update_address", "docs": [ "Set the USDC price update address", "Signer must have the ADMIN_ROLE_USDON_MANAGER role" ], "discriminator": [ 12, 142, 252, 201, 224, 148, 254, 32 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to execute the operation" ], "signer": true }, { "name": "usdon_manager_state", "docs": [ "The USDonManagerState account to be modified", "# PDA Seeds", "- USDON_MANAGER_STATE_SEED" ], "writable": true, "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "authority_role_account", "docs": [ "The Roles account verifying the authority has the `ADMIN_ROLE_USDON_MANAGER` role", "# PDA Seeds", "- ADMIN_ROLE_USDON_MANAGER", "- The authority's address" ], "pda": { "seeds": [ { "kind": "const", "value": [ 65, 100, 109, 105, 110, 82, 111, 108, 101, 85, 83, 68, 111, 110, 77, 97, 110, 97, 103, 101, 114 ] }, { "kind": "account", "path": "authority" } ] } } ], "args": [ { "name": "new_price_update_address", "type": "pubkey" } ] }, { "name": "update_scaled_ui_multiplier", "docs": [ "Update the UI multiplier for token display", "Signer must have the UPDATE_MULTIPLIER_ROLE role" ], "discriminator": [ 96, 212, 189, 168, 220, 27, 240, 70 ], "accounts": [ { "name": "authority", "docs": [ "The account with the authority to update the multiplier" ], "writable": true, "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has the `UPDATE_MULTIPLIER_ROLE` role" ], "pda": { "seeds": [ { "kind": "const", "value": [ 85, 112, 100, 97, 116, 101, 77, 117, 108, 116, 105, 112, 108, 105, 101, 114, 82, 111, 108, 101 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint_authority", "docs": [ "Does not need to be checked for correctness as it is uninitialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "mint", "docs": [ "The mint whose scaled UI multiplier is being updated" ], "writable": true }, { "name": "usdon_manager_state", "docs": [ "The USDon manager state account, validates that the mint is not the USDon mint" ], "pda": { "seeds": [ { "kind": "const", "value": [ 117, 115, 100, 111, 110, 95, 109, 97, 110, 97, 103, 101, 114 ] } ] } }, { "name": "token_program", "docs": [ "The token program (should be the spl_token_2022 program)" ] } ], "args": [ { "name": "new_multiplier", "type": "f64" }, { "name": "timestamp", "type": "i64" } ] }, { "name": "update_token_metadata", "docs": [ "Update a token's metadata (name, symbol, URI)", "Signer must have the UPDATE_METADATA_ROLE role" ], "discriminator": [ 243, 6, 8, 23, 126, 181, 251, 158 ], "accounts": [ { "name": "payer", "docs": [ "Pays for fees if needed" ], "writable": true, "signer": true }, { "name": "authority", "docs": [ "The operator updating the metadata, if multisig then this is different to the payer", "Otherwise, the operator is the same as the payer" ], "signer": true }, { "name": "authority_role_account", "docs": [ "The `Roles` account verifying the authority has `UPDATE_METADATA_ROLE` role" ], "pda": { "seeds": [ { "kind": "const", "value": [ 85, 112, 100, 97, 116, 101, 77, 101, 116, 97, 100, 97, 116, 97, 82, 111, 108, 101 ] }, { "kind": "account", "path": "authority" } ] } }, { "name": "mint_authority", "docs": [ "Does not need to be checked for correctness as it is uninitialized." ], "pda": { "seeds": [ { "kind": "const", "value": [ 109, 105, 110, 116, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121 ] } ] } }, { "name": "mint", "docs": [ "The mint whose metadata is being updated" ], "writable": true }, { "name": "token_program", "docs": [ "The token program (should be the spl_token_2022 program)" ] }, { "name": "system_program", "docs": [ "The system program" ], "address": "11111111111111111111111111111111" } ], "args": [ { "name": "new_name", "type": { "option": "string" } }, { "name": "new_symbol", "type": { "option": "string" } }, { "name": "new_uri", "type": { "option": "string" } } ] } ], "accounts": [ { "name": "Attestation", "discriminator": [ 152, 125, 183, 86, 36, 146, 121, 73 ] }, { "name": "GMTokenManagerState", "discriminator": [ 120, 3, 104, 163, 207, 32, 156, 24 ] }, { "name": "OndoUser", "discriminator": [ 20, 5, 255, 14, 176, 93, 189, 142 ] }, { "name": "OracleSanityCheck", "discriminator": [ 27, 186, 33, 40, 113, 34, 206, 76 ] }, { "name": "Roles", "discriminator": [ 177, 37, 17, 201, 242, 158, 212, 65 ] }, { "name": "TokenLimit", "discriminator": [ 130, 254, 128, 120, 255, 3, 217, 51 ] }, { "name": "USDonManagerState", "discriminator": [ 4, 39, 95, 41, 51, 43, 174, 91 ] }, { "name": "Whitelist", "discriminator": [ 204, 176, 52, 79, 146, 121, 54, 247 ] } ], "events": [ { "name": "GMTokenDeployed", "discriminator": [ 155, 46, 81, 223, 209, 203, 89, 46 ] }, { "name": "GMTokenMintingPaused", "discriminator": [ 215, 17, 82, 34, 76, 211, 151, 22 ] }, { "name": "GMTokenPaused", "discriminator": [ 147, 68, 57, 240, 27, 46, 44, 201 ] }, { "name": "GMTokenRedemptionPaused", "discriminator": [ 246, 249, 230, 73, 152, 65, 61, 214 ] }, { "name": "RateLimitTokenSet", "discriminator": [ 133, 18, 77, 154, 53, 236, 197, 235 ] }, { "name": "RateLimitUserSet", "discriminator": [ 175, 49, 222, 84, 192, 105, 171, 129 ] }, { "name": "RoleGranted", "discriminator": [ 220, 183, 89, 228, 143, 63, 246, 58 ] }, { "name": "RoleRevoked", "discriminator": [ 167, 183, 52, 229, 126, 206, 62, 61 ] }, { "name": "SanityCheckSet", "discriminator": [ 9, 207, 117, 155, 44, 153, 31, 234 ] }, { "name": "SanityCheckUpdated", "discriminator": [ 173, 97, 103, 183, 67, 230, 249, 1 ] }, { "name": "SetTradingHoursOffset", "discriminator": [ 122, 8, 3, 44, 200, 105, 217, 208 ] }, { "name": "TokenFactoryPaused", "discriminator": [ 24, 185, 192, 62, 218, 128, 226, 103 ] }, { "name": "TokenManagerMintingPaused", "discriminator": [ 96, 11, 118, 59, 8, 78, 247, 254 ] }, { "name": "TokenManagerRedemptionPaused", "discriminator": [ 66, 222, 165, 60, 32, 59, 135, 161 ] }, { "name": "TokensRetrieved", "discriminator": [ 217, 35, 1, 89, 38, 122, 145, 187 ] }, { "name": "TradeExecuted", "discriminator": [ 41, 110, 64, 129, 60, 79, 179, 80 ] }, { "name": "UserAddedToWhitelist", "discriminator": [ 206, 139, 181, 72, 116, 111, 42, 42 ] }, { "name": "UserRemovedFromWhitelist", "discriminator": [ 106, 223, 245, 11, 213, 150, 2, 15 ] } ], "errors": [ { "code": 6000, "name": "MissingOrMismatchedSecpIx", "msg": "Missing or mismatched secp256k1 verification instruction" }, { "code": 6001, "name": "MalformedSecpIx", "msg": "Malformed secp256k1 instruction" }, { "code": 6002, "name": "WrongSigCount", "msg": "Wrong signature count" }, { "code": 6003, "name": "WrongDigestLen", "msg": "Expected 32-byte hash" }, { "code": 6004, "name": "DigestMismatch", "msg": "Digest mismatch" }, { "code": 6005, "name": "AddressMismatch", "msg": "Recovered address mismatch" } ], "types": [ { "name": "Attestation", "docs": [ "Attestation account to track consumed attestations", "each consumed attestation is stored in its own account" ], "type": { "kind": "struct", "fields": [ { "name": "attestation_id", "type": { "array": [ "u8", 16 ] } }, { "name": "creator", "type": "pubkey" }, { "name": "created_at", "type": "i64" }, { "name": "bump", "type": "u8" } ] } }, { "name": "GMTokenDeployed", "docs": [ "Event emitted when a GM Token is deployed", "Fields:", "- gm_token: The public key of the deployed GM Token" ], "type": { "kind": "struct", "fields": [ { "name": "gm_token", "type": "pubkey" } ] } }, { "name": "GMTokenManagerState", "docs": [ "GM Token Manager State account - tracks global state for GM Token operations" ], "type": { "kind": "struct", "fields": [ { "name": "execution_id", "type": { "option": "u128" } }, { "name": "factory_paused", "type": "bool" }, { "name": "redemption_paused", "type": "bool" }, { "name": "minting_paused", "type": "bool" }, { "name": "bump", "type": "u8" }, { "name": "attestation_signer_secp", "docs": [ "Ethereum address (20 bytes) for secp256k1 signature verification", "Used to verify attestation signatures for buy/sell operations", "All zeros ([0u8; 20]) means not set" ], "type": { "array": [ "u8", 20 ] } }, { "name": "trading_hours_offset", "docs": [ "Trading hours offset from UTC in seconds", "Positive values are east of UTC, negative values are west of UTC" ], "type": "i64" } ] } }, { "name": "GMTokenMintingPaused", "docs": [ "Event emitted when minting for a GM Token is paused or unpaused", "Fields:", "- is_paused: Boolean indicating if minting/redemptions are paused", "- token: The address of the GM Token", "- pauser: The address of the operator who performed the pause/unpause action" ], "type": { "kind": "struct", "fields": [ { "name": "is_paused", "type": "bool" }, { "name": "token", "type": "pubkey" }, { "name": "pauser", "type": "pubkey" } ] } }, { "name": "GMTokenPaused", "docs": [ "Event emitted when a GM Token is paused/unpaused at the mint-level", "Fields:", "- is_paused: Boolean indicating whether the token is paused", "- token: The address of the GM Token", "- pauser: The address of the operator who performed the pause/unpaused action" ], "type": { "kind": "struct", "fields": [ { "name": "is_paused", "type": "bool" }, { "name": "token", "type": "pubkey" }, { "name": "pauser", "type": "pubkey" } ] } }, { "name": "GMTokenRedemptionPaused", "docs": [ "Event emitted redemptions for a GM Token are paused or unpaused", "Fields:", "- is_paused: Boolean indicating if redemptions are paused", "- token: The address of the GM Token", "- pauser: The address of the operator who performed the pause/unpause action" ], "type": { "kind": "struct", "fields": [ { "name": "is_paused", "type": "bool" }, { "name": "token", "type": "pubkey" }, { "name": "pauser", "type": "pubkey" } ] } }, { "name": "OndoUser", "docs": [ "OndoUser state account - tracks user-specific data for a GM Token" ], "type": { "kind": "struct", "fields": [ { "name": "owner", "type": "pubkey" }, { "name": "mint", "type": "pubkey" }, { "name": "rate_limit", "type": { "option": "u64" } }, { "name": "limit_window", "type": { "option": "u64" } }, { "name": "mint_capacity_used", "type": { "option": "u64" } }, { "name": "mint_last_updated", "type": { "option": "i64" } }, { "name": "redeem_capacity_used", "type": { "option": "u64" } }, { "name": "redeem_last_updated", "type": { "option": "i64" } }, { "name": "bump", "type": "u8" } ] } }, { "name": "OracleSanityCheck", "docs": [ "OracleSanityCheck state account - tracks sanity check parameters for a specific mint" ], "type": { "kind": "struct", "fields": [ { "name": "mint", "type": "pubkey" }, { "name": "last_price", "type": "u64" }, { "name": "allowed_deviation_bps", "type": "u64" }, { "name": "max_time_delay", "type": "i64" }, { "name": "price_last_updated", "type": "i64" }, { "name": "bump", "type": "u8" } ] } }, { "name": "RateLimitTokenSet", "docs": [ "Event emitted when a rate limit is set for a token", "Fields:", "- token: The public key of the token for which the rate limit is set", "- limit: The rate limit value", "- limit_window: The time window for the rate limit" ], "type": { "kind": "struct", "fields": [ { "name": "token", "type": "pubkey" }, { "name": "limit", "type": { "option": "u64" } }, { "name": "limit_window", "type": { "option": "u64" } } ] } }, { "name": "RateLimitUserSet", "docs": [ "Event emitted when a rate limit is set for a user", "Fields:", "- user: The public key of the user for whom the rate limit is set", "- limit: The rate limit value" ], "type": { "kind": "struct", "fields": [ { "name": "user", "type": "pubkey" }, { "name": "limit", "type": "u64" } ] } }, { "name": "RoleGranted", "docs": [ "Event emitted when a role is granted to a user", "Fields:", "- role: The role that was granted", "- grantee: The public key of the user who was granted the role", "- granter: The public key of the user who granted the role" ], "type": { "kind": "struct", "fields": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "grantee", "type": "pubkey" }, { "name": "granter", "type": "pubkey" } ] } }, { "name": "RoleRevoked", "docs": [ "Event emitted when a role is revoked from a user", "Fields:", "- role: The role that was revoked", "- grantee: The public key of the user who had the role revoked", "- revoker: The public key of the user who revoked the role" ], "type": { "kind": "struct", "fields": [ { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "grantee", "type": "pubkey" }, { "name": "revoker", "type": "pubkey" } ] } }, { "name": "RoleType", "type": { "kind": "enum", "variants": [ { "name": "MinterRoleUSDon" }, { "name": "BurnerRoleUSDon" }, { "name": "AdminRoleUSDon" }, { "name": "AdminRoleUSDonManager" }, { "name": "GuardianUSDon" }, { "name": "DeployerRoleGMTokenFactory" }, { "name": "PauserRoleGMTokenFactory" }, { "name": "AdminRoleGMTokenFactory" }, { "name": "MinterRoleGMToken" }, { "name": "AdminRoleGMToken" }, { "name": "PauserRoleGMTokenManager" }, { "name": "PauserRoleGMToken" }, { "name": "UnpauserRoleGMToken" }, { "name": "AdminRoleGMTokenManager" }, { "name": "IssuanceHoursRole" }, { "name": "SetterRoleOndoSanityCheck" }, { "name": "ConfigurerRoleOndoSanityCheck" }, { "name": "AdminRoleOndoSanityCheck" }, { "name": "AdminRoleWhitelist" }, { "name": "UpdateMultiplierRole" }, { "name": "UpdateMetadataRole" } ] } }, { "name": "Roles", "docs": [ "Roles state account - tracks role assignments for addresses" ], "type": { "kind": "struct", "fields": [ { "name": "address", "type": "pubkey" }, { "name": "role", "type": { "defined": { "name": "RoleType" } } }, { "name": "bump", "type": "u8" } ] } }, { "name": "SanityCheckSet", "docs": [ "Event emitted when a sanity check is set for a mint", "Fields:", "- mint: The public key of the mint for which the sanity check is set", "- allowed_deviation_bps: The allowed deviation in basis points", "- max_time_delay: The maximum time delay for the sanity check" ], "type": { "kind": "struct", "fields": [ { "name": "mint", "type": "pubkey" }, { "name": "allowed_deviation_bps", "type": "u64" }, { "name": "max_time_delay", "type": "i64" } ] } }, { "name": "SanityCheckUpdated", "docs": [ "Event emitted when a sanity check is updated for a mint", "Fields:", "- mint: The public key of the mint for which the sanity check is updated", "- last_price: The last recorded price (optional)", "- allowed_deviation_bps: The allowed deviation in basis points (optional)", "- max_time_delay: The maximum time delay for the sanity check (optional)" ], "type": { "kind": "struct", "fields": [ { "name": "mint", "type": "pubkey" }, { "name": "last_price", "type": { "option": "u64" } }, { "name": "allowed_deviation_bps", "type": { "option": "u64" } }, { "name": "max_time_delay", "type": { "option": "i64" } } ] } }, { "name": "SetTradingHoursOffset", "docs": [ "Event emitted when the trading hours offset is set", "Fields:", "- prev_trading_hours_offset: The previous trading hours offset", "- new_trading_hours_offset: The new trading hours offset" ], "type": { "kind": "struct", "fields": [ { "name": "prev_trading_hours_offset", "type": "i64" }, { "name": "new_trading_hours_offset", "type": "i64" } ] } }, { "name": "TokenFactoryPaused", "docs": [ "Event emitted when the Token Factory is paused or unpaused", "Fields:", "- is_paused: Boolean indicating if the Token Factory is paused", "- pauser: The address of the operator who performed the pause/unpause action" ], "type": { "kind": "struct", "fields": [ { "name": "is_paused", "type": "bool" }, { "name": "pauser", "type": "pubkey" } ] } }, { "name": "TokenLimit", "docs": [ "TokenLimit state account - tracks global token limit parameters for a specific GM Token" ], "type": { "kind": "struct", "fields": [ { "name": "mint", "type": "pubkey" }, { "name": "rate_limit", "type": { "option": "u64" } }, { "name": "limit_window", "type": { "option": "u64" } }, { "name": "mint_capacity_used", "type": { "option": "u64" } }, { "name": "mint_last_updated", "type": { "option": "i64" } }, { "name": "redeem_capacity_used", "type": { "option": "u64" } }, { "name": "redeem_last_updated", "type": { "option": "i64" } }, { "name": "redemption_paused", "type": "bool" }, { "name": "minting_paused", "type": "bool" }, { "name": "default_user_rate_limit", "type": { "option": "u64" } }, { "name": "default_user_limit_window", "type": { "option": "u64" } }, { "name": "bump", "type": "u8" } ] } }, { "name": "TokenManagerMintingPaused", "docs": [ "Event emitted when GM Token minting is globally paused or unpaused", "Fields:", "- is_paused: Boolean indicating if the minting is globally paused", "- pauser: The address of the user who performed the pause/unpause action" ], "type": { "kind": "struct", "fields": [ { "name": "is_paused", "type": "bool" }, { "name": "pauser", "type": "pubkey" } ] } }, { "name": "TokenManagerRedemptionPaused", "docs": [ "Event emitted when GM Token redemptions are globally paused or unpaused", "Fields:", "- is_paused: Boolean indicating if redemptions are globally paused", "- pauser: The address of the operator who performed the pause/unpause action" ], "type": { "kind": "struct", "fields": [ { "name": "is_paused", "type": "bool" }, { "name": "pauser", "type": "pubkey" } ] } }, { "name": "TokensRetrieved", "docs": [ "Event emitted when tokens are retrieved (withdrawn) from a vault by an admin", "Fields:", "- token: The public key of the token mint being withdrawn", "- to: The destination address receiving the tokens", "- amount: The amount of tokens withdrawn", "- authority: The public key of the admin who executed the withdrawal" ], "type": { "kind": "struct", "fields": [ { "name": "token", "type": "pubkey" }, { "name": "to", "type": "pubkey" }, { "name": "amount", "type": "u64" }, { "name": "authority", "type": "pubkey" } ] } }, { "name": "TradeExecuted", "docs": [ "Event emitted when a trade is executed", "Fields:", "- execution_id: The unique identifier of the trade execution" ], "type": { "kind": "struct", "fields": [ { "name": "execution_id", "type": "u128" } ] } }, { "name": "USDonManagerState", "docs": [ "USDonManagerState state account - tracks global configuration for the USDon stablecoin system" ], "type": { "kind": "struct", "fields": [ { "name": "owner", "type": "pubkey" }, { "name": "usdon_mint", "type": "pubkey" }, { "name": "oracle_price_enabled", "type": "bool" }, { "name": "oracle_price_max_age", "type": "u64" }, { "name": "usdc_price_update", "type": "pubkey" }, { "name": "usdc_vault", "type": "pubkey" }, { "name": "usdon_vault", "type": "pubkey" }, { "name": "bump", "type": "u8" } ] } }, { "name": "UserAddedToWhitelist", "docs": [ "Event emitted when a user is added to the whitelist", "Fields:", "- user: The public key of the user being added to the whitelist", "- added_by: The public key of the admin who added the user to the whitelist" ], "type": { "kind": "struct", "fields": [ { "name": "user", "type": "pubkey" }, { "name": "added_by", "type": "pubkey" } ] } }, { "name": "UserRemovedFromWhitelist", "docs": [ "Event emitted when a user is removed from the whitelist", "Fields:", "- user: The public key of the user being removed from the whitelist", "- removed_by: The public key of the admin who removed the user from the whitelist" ], "type": { "kind": "struct", "fields": [ { "name": "user", "type": "pubkey" }, { "name": "removed_by", "type": "pubkey" } ] } }, { "name": "Whitelist", "docs": [ "Whitelist account - tracks whitelisted addresses.", "", "Used as a marker account - presence of the account indicates whitelisting." ], "type": { "kind": "struct", "fields": [ { "name": "user", "type": "pubkey" } ] } } ] }