@dstoken-solana/rwa-token-sdk
Version:
RWA Token SDK for the development of permissioned tokens on SVM blockchains.
1,641 lines • 65.7 kB
TypeScript
/**
* Program IDL in camelCase format in order to be used in JS/TS.
*
* Note that this is only a type helper and is not the actual IDL. The original
* IDL can be found at `target/idl/asset_controller.json`.
*/
export type AssetController = {
"address": "7tXjmbkZVY3Gmg9kDBebcNXT1yC5pyoxxXVLwdbv9tvP";
"metadata": {
"name": "assetController";
"version": "0.0.1";
"spec": "0.1.0";
"description": "The Asset Controller Program (ACP) enables core asset management functionality for newly issued assets, including transfer controls and transaction privacy.";
};
"instructions": [
{
"name": "createAssetController";
"docs": [
"create an rwa asset"
];
"discriminator": [
97,
185,
6,
250,
248,
242,
68,
105
];
"accounts": [
{
"name": "payer";
"writable": true;
"signer": true;
},
{
"name": "authority";
},
{
"name": "assetController";
"writable": true;
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "assetMint";
"writable": true;
"signer": true;
},
{
"name": "extraMetasAccount";
"writable": true;
},
{
"name": "policyEngineAccount";
"writable": true;
},
{
"name": "identityRegistryAccount";
"writable": true;
},
{
"name": "policyEngine";
"address": "FsE8mCJyvgMzqJbfHbJQm3iuf3cRZC6n2vZi1Q8rQCy2";
},
{
"name": "identityRegistry";
"address": "GZsnjqT3c5zbHqsctrJ4EG4rbEfo7ZXyyUG7aDJNmxfA";
},
{
"name": "systemProgram";
"address": "11111111111111111111111111111111";
},
{
"name": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
},
{
"name": "eventAuthority";
"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": "args";
"type": {
"defined": {
"name": "createAssetControllerArgs";
};
};
}
];
},
{
"name": "disableMemoTransfer";
"docs": [
"memo transfer disable"
];
"discriminator": [
68,
156,
197,
9,
43,
91,
114,
19
];
"accounts": [
{
"name": "owner";
"signer": true;
},
{
"name": "authority";
"signer": true;
},
{
"name": "assetMint";
},
{
"name": "assetController";
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "tokenAccount";
"writable": true;
},
{
"name": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
},
{
"name": "eventAuthority";
"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": "enableMemoTransfer";
"docs": [
"memo transfer enable"
];
"discriminator": [
186,
78,
97,
172,
71,
172,
99,
0
];
"accounts": [
{
"name": "payer";
"writable": true;
"signer": true;
},
{
"name": "owner";
"signer": true;
},
{
"name": "authority";
"signer": true;
},
{
"name": "assetMint";
},
{
"name": "assetController";
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "tokenAccount";
"writable": true;
"pda": {
"seeds": [
{
"kind": "account";
"path": "owner";
},
{
"kind": "account";
"path": "tokenProgram";
},
{
"kind": "account";
"path": "assetMint";
}
];
"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": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
},
{
"name": "associatedTokenProgram";
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
},
{
"name": "systemProgram";
"address": "11111111111111111111111111111111";
},
{
"name": "eventAuthority";
"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": "freezeTokenAccount";
"docs": [
"freeze token account"
];
"discriminator": [
138,
168,
178,
109,
205,
224,
209,
93
];
"accounts": [
{
"name": "authority";
"signer": true;
},
{
"name": "assetMint";
"writable": true;
},
{
"name": "assetController";
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "tokenAccount";
"writable": true;
},
{
"name": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
}
];
"args": [];
},
{
"name": "issueTokens";
"docs": [
"issue shares of the rwa asset"
];
"discriminator": [
40,
207,
145,
106,
249,
54,
23,
179
];
"accounts": [
{
"name": "payer";
"writable": true;
"signer": true;
},
{
"name": "authority";
"writable": true;
"signer": true;
},
{
"name": "assetMint";
"writable": true;
"relations": [
"identityRegistry",
"trackerAccount"
];
},
{
"name": "assetController";
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "to";
},
{
"name": "tokenAccount";
"writable": true;
"pda": {
"seeds": [
{
"kind": "account";
"path": "to";
},
{
"kind": "account";
"path": "tokenProgram";
},
{
"kind": "account";
"path": "assetMint";
}
];
"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": "identityRegistry";
"relations": [
"identityAccount"
];
},
{
"name": "identityAccount";
"relations": [
"walletIdentityAccount"
];
},
{
"name": "trackerAccount";
"writable": true;
},
{
"name": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
},
{
"name": "associatedTokenProgram";
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
},
{
"name": "systemProgram";
"address": "11111111111111111111111111111111";
},
{
"name": "policyEngineProgram";
"address": "FsE8mCJyvgMzqJbfHbJQm3iuf3cRZC6n2vZi1Q8rQCy2";
},
{
"name": "policyEngine";
"writable": true;
},
{
"name": "walletIdentityAccount";
},
{
"name": "eventAuthority";
"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": "amount";
"type": "u64";
},
{
"name": "issuanceTimestamp";
"type": "i64";
}
];
},
{
"name": "revokeTokens";
"docs": [
"revoke shares of the rwa asset"
];
"discriminator": [
215,
42,
15,
134,
173,
80,
33,
21
];
"accounts": [
{
"name": "authority";
"writable": true;
"signer": true;
},
{
"name": "assetMint";
"writable": true;
"relations": [
"identityRegistry",
"trackerAccount"
];
},
{
"name": "assetController";
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "revokeTokenAccount";
"writable": true;
},
{
"name": "identityRegistry";
"relations": [
"identityAccount"
];
},
{
"name": "identityAccount";
"relations": [
"walletIdentityAccount"
];
},
{
"name": "trackerAccount";
"writable": true;
},
{
"name": "policyEngineProgram";
"address": "FsE8mCJyvgMzqJbfHbJQm3iuf3cRZC6n2vZi1Q8rQCy2";
},
{
"name": "policyEngine";
"writable": true;
},
{
"name": "walletIdentityAccount";
},
{
"name": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
},
{
"name": "associatedTokenProgram";
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
},
{
"name": "systemProgram";
"address": "11111111111111111111111111111111";
},
{
"name": "eventAuthority";
"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": "amount";
"type": "u64";
},
{
"name": "reason";
"type": "string";
}
];
},
{
"name": "seizeTokens";
"docs": [
"seize shares of the rwa asset"
];
"discriminator": [
79,
30,
69,
54,
78,
1,
16,
23
];
"accounts": [
{
"name": "authority";
"writable": true;
"signer": true;
},
{
"name": "assetMint";
},
{
"name": "assetController";
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "destinationTokenAccount";
"writable": true;
},
{
"name": "sourceTokenAccount";
"writable": true;
},
{
"name": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
},
{
"name": "eventAuthority";
"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": "amount";
"type": "u64";
},
{
"name": "reason";
"type": "string";
}
];
},
{
"name": "thawTokenAccount";
"docs": [
"thaw token account"
];
"discriminator": [
199,
172,
96,
93,
244,
252,
137,
171
];
"accounts": [
{
"name": "authority";
"signer": true;
},
{
"name": "assetMint";
"writable": true;
},
{
"name": "assetController";
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "tokenAccount";
"writable": true;
},
{
"name": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
}
];
"args": [];
},
{
"name": "updateMetadata";
"docs": [
"edit metadata of the rwa asset"
];
"discriminator": [
170,
182,
43,
239,
97,
78,
225,
186
];
"accounts": [
{
"name": "payer";
"writable": true;
"signer": true;
},
{
"name": "authority";
"writable": true;
"signer": true;
},
{
"name": "assetMint";
"writable": true;
},
{
"name": "assetController";
"pda": {
"seeds": [
{
"kind": "account";
"path": "assetMint";
}
];
};
},
{
"name": "systemProgram";
"address": "11111111111111111111111111111111";
},
{
"name": "tokenProgram";
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
},
{
"name": "eventAuthority";
"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": "args";
"type": {
"defined": {
"name": "updateAssetMetadataArgs";
};
};
}
];
}
];
"accounts": [
{
"name": "assetControllerAccount";
"discriminator": [
70,
136,
149,
138,
12,
87,
52,
105
];
},
{
"name": "identityAccount";
"discriminator": [
194,
90,
181,
160,
182,
206,
116,
158
];
},
{
"name": "identityRegistryAccount";
"discriminator": [
154,
254,
118,
4,
115,
36,
125,
78
];
},
{
"name": "policyEngineAccount";
"discriminator": [
124,
85,
205,
80,
2,
18,
26,
45
];
},
{
"name": "trackerAccount";
"discriminator": [
83,
95,
166,
148,
57,
30,
90,
210
];
},
{
"name": "walletIdentity";
"discriminator": [
101,
142,
55,
104,
168,
77,
57,
85
];
}
];
"events": [
{
"name": "assetMetadataEvent";
"discriminator": [
90,
19,
200,
229,
103,
82,
218,
16
];
},
{
"name": "burnEvent";
"discriminator": [
33,
89,
47,
117,
82,
124,
238,
250
];
},
{
"name": "extensionMetadataEvent";
"discriminator": [
22,
198,
253,
69,
234,
122,
248,
117
];
},
{
"name": "issueEvent";
"discriminator": [
220,
74,
136,
189,
186,
247,
253,
140
];
},
{
"name": "revokeEvent";
"discriminator": [
87,
202,
67,
213,
43,
84,
177,
3
];
},
{
"name": "seizeEvent";
"discriminator": [
100,
186,
127,
43,
145,
98,
208,
78
];
}
];
"errors": [
{
"code": 6000;
"name": "transferMintNotApproved";
"msg": "Transfer hasnt been approved for the asset mint";
},
{
"code": 6001;
"name": "transferFromNotApproved";
"msg": "Transfer hasnt been approved for from account";
},
{
"code": 6002;
"name": "transferToNotApproved";
"msg": "Transfer hasnt been approved for to account";
},
{
"code": 6003;
"name": "transferAmountNotApproved";
"msg": "Transfer hasnt been approved for the specified amount";
},
{
"code": 6004;
"name": "invalidPolicyAccount";
"msg": "Invalid policy account passed";
},
{
"code": 6005;
"name": "transferSlotNotApproved";
"msg": "Invalid slot for approve account";
},
{
"code": 6006;
"name": "transferHistoryFull";
"msg": "Transfer history is full";
},
{
"code": 6007;
"name": "unauthorized";
"msg": "unauthorized";
},
{
"code": 6008;
"name": "invalidPdaPassedIn";
"msg": "Pda passed in for transfer is wrong";
},
{
"code": 6009;
"name": "tokenAccountNotInitialized";
"msg": "Token account is not initialized";
},
{
"code": 6010;
"name": "tokenAccountAlreadyInitialized";
"msg": "Token account is already initialized";
},
{
"code": 6011;
"name": "invalidIdentityAccounts";
"msg": "Invalid identity accounts";
},
{
"code": 6012;
"name": "invalidAuthority";
"msg": "Invalid authority";
}
];
"types": [
{
"name": "assetControllerAccount";
"type": {
"kind": "struct";
"fields": [
{
"name": "version";
"type": "u8";
},
{
"name": "assetMint";
"docs": [
"mint pubkey"
];
"type": "pubkey";
},
{
"name": "authority";
"docs": [
"authority has the ability to seize, freeze token accounts, etc."
];
"type": "pubkey";
}
];
};
},
{
"name": "assetMetadataEvent";
"type": {
"kind": "struct";
"fields": [
{
"name": "mint";
"type": "string";
},
{
"name": "name";
"type": {
"option": "string";
};
},
{
"name": "symbol";
"type": {
"option": "string";
};
},
{
"name": "uri";
"type": {
"option": "string";
};
},
{
"name": "decimals";
"type": {
"option": "u8";
};
}
];
};
},
{
"name": "burnEvent";
"type": {
"kind": "struct";
"fields": [
{
"name": "amount";
"type": "u64";
},
{
"name": "reason";
"type": "string";
},
{
"name": "wallet";
"type": "pubkey";
},
{
"name": "mint";
"type": "pubkey";
}
];
};
},
{
"name": "counter";
"type": {
"kind": "struct";
"fields": [
{
"name": "value";
"type": "u64";
},
{
"name": "id";
"type": "u8";
},
{
"name": "identityFilter";
"type": {
"defined": {
"name": "identityFilter";
};
};
}
];
};
},
{
"name": "counterLimit";
"type": {
"kind": "enum";
"variants": [
{
"name": "holdersLimit";
"fields": [
{
"name": "max";
"type": "u64";
},
{
"name": "min";
"type": "u64";
},
{
"name": "counterId";
"type": "u8";
}
];
},
{
"name": "groupedHoldersLimit";
"fields": [
{
"name": "max";
"type": "u64";
},
{
"name": "min";
"type": "u64";
},
{
"name": "counters";
"type": "bytes";
}
];
},
{
"name": "percentageLimit";
"fields": [
{
"name": "higherCounterId";
"type": "u8";
},
{
"name": "lowerCounterId";
"type": "u8";
},
{
"name": "minPercentage";
"type": "u8";
},
{
"name": "maxPercentage";
"type": "u8";
}
];
}
];
};
},
{
"name": "createAssetControllerArgs";
"type": {
"kind": "struct";
"fields": [
{
"name": "decimals";
"type": "u8";
},
{
"name": "name";
"type": "string";
},
{
"name": "symbol";
"type": "string";
},
{
"name": "uri";
"type": "string";
}
];
};
},
{
"name": "extensionMetadataEvent";
"type": {
"kind": "struct";
"fields": [
{
"name": "address";
"type": "string";
},
{
"name": "extensionType";
"type": "u8";
},
{
"name": "metadata";
"type": "bytes";
}
];
};
},
{
"name": "filterComparison";
"repr": {
"kind": "rust";
};
"type": {
"kind": "enum";
"variants": [
{
"name": "or";
},
{
"name": "and";
}
];
};
},
{
"name": "filterData";
"type": {
"kind": "struct";
"fields": [
{
"name": "level";
"type": {
"defined": {
"name": "filterLevel";
};
};
},
{
"name": "target";
"type": {
"defined": {
"name": "filterTarget";
};
};
},
{
"name": "mode";
"type": {
"defined": {
"name": "filterMode";
};
};
}
];
};
},
{
"name": "filterInner";
"repr": {
"kind": "rust";
};
"type": {
"kind": "enum";
"variants": [
{
"name": "single";
"fields": [
{
"defined": {
"name": "filterData";
};
}
];
},
{
"name": "tuple";
"fields": [
{
"defined": {
"name": "filterData";
};
},
{
"defined": {
"name": "filterComparison";
};
},
{
"defined": {
"name": "filterData";
};
}
];
},
{
"name": "multiple";
"fields": [
{
"defined": {
"name": "filterComparison";
};
},
{
"vec": {
"defined": {
"name": "filterData";
};
};
}
];
}
];
};
},
{
"name": "filterLevel";
"type": {
"kind": "enum";
"variants": [
{
"name": "level";
"fields": [
"u8"
];
},
{
"name": "levelMappingAny";
"fields": [
"u8"
];
},
{
"name": "levelMapping";
"fields": [
{
"name": "source";
"type": "u8";
},
{
"name": "target";
"type": "u8";
}
];
},
{
"name": "country";
"fields": [
"u8"
];
},
{
"name": "countryMapping";
"fields": [
"u8"
];
}
];
};
},
{
"name": "filterMode";
"repr": {
"kind": "rust";
};
"type": {
"kind": "enum";
"variants": [
{
"name": "include";
},
{
"name": "exclude";
}
];
};
},
{
"name": "filterTarget";
"repr": {
"kind": "rust";
};
"type": {
"kind": "enum";
"variants": [
{
"name": "sender";
},
{
"name": "receiver";
},
{
"name": "bothAnd";
},
{
"name": "bothOr";
}
];
};
},
{
"name": "identityAccount";
"type": {
"kind": "struct";
"fields": [
{
"name": "version";
"docs": [
"version of the account"
];
"type": "u8";
},
{
"name": "identityRegistry";
"docs": [
"identity registry to which the account belongs"
];
"type": "pubkey";
},
{
"name": "owner";
"docs": [
"owner of the identity account"
];
"type": "pubkey";
},
{
"name": "numWallets";
"docs": [
"number of wallets attached to this identity account"
];
"type": "u16";
},
{
"name": "country";
"docs": [
"country code of the user"
];
"type": "u8";
},
{
"name": "levels";
"type": {
"vec": {
"defined": {
"name": "identityLevel";
};
};
};
}
];
};
},
{
"name": "identityFilter";
"repr": {