10749 lines
371 KiB
JSON
10749 lines
371 KiB
JSON
{
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
} |