@bridgesplit/rwa-token-sdk
Version:
RWA Token SDK for the development of permissioned tokens on SVM blockchains.
582 lines (581 loc) • 16.8 kB
JSON
{
"address": "idtynCMYbdisCTv4FrCWPSQboZb1uM4TV2cPi79yxQf",
"metadata": {
"name": "identity_registry",
"version": "0.0.1",
"spec": "0.1.0",
"description": "The Identity Registry Program (IRP) manages the configurable issuance and tracking of on-chain identities to enable on-chain transaction permissioning.",
"repository": "https://github.com/bridgesplit/rwa"
},
"instructions": [
{
"name": "add_level_to_identity_account",
"docs": [
"add level to identity account"
],
"discriminator": [
102,
204,
64,
169,
252,
177,
192,
232
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "signer",
"signer": true
},
{
"name": "identity_registry"
},
{
"name": "identity_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "identity_registry"
},
{
"kind": "account",
"path": "identity_account.owner",
"account": "IdentityAccount"
}
]
}
},
{
"name": "identity_metadata_account",
"writable": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "level",
"type": "u8"
}
]
},
{
"name": "create_identity_account",
"docs": [
"identity functions",
"create identity account"
],
"discriminator": [
82,
240,
35,
129,
113,
134,
116,
70
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "signer",
"signer": true
},
{
"name": "identity_registry"
},
{
"name": "identity_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "identity_registry"
},
{
"kind": "arg",
"path": "owner"
}
]
}
},
{
"name": "identity_metadata_account",
"writable": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "owner",
"type": "pubkey"
},
{
"name": "level",
"type": "u8"
}
]
},
{
"name": "create_identity_registry",
"docs": [
"registry functions",
"create identity registry"
],
"discriminator": [
180,
3,
39,
22,
183,
212,
39,
209
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "signer",
"signer": true
},
{
"name": "asset_mint"
},
{
"name": "identity_registry_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "asset_mint"
}
]
}
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "authority",
"type": "pubkey"
},
{
"name": "delegate",
"type": {
"option": "pubkey"
}
}
]
},
{
"name": "delegate_identity_regsitry",
"docs": [
"delegate identity registry"
],
"discriminator": [
29,
162,
167,
70,
52,
79,
50,
65
],
"accounts": [
{
"name": "authority",
"signer": true
},
{
"name": "identity_registry_account",
"writable": true
}
],
"args": [
{
"name": "delegate",
"type": "pubkey"
}
]
},
{
"name": "edit_identity_metdata",
"docs": [
"edit identity metadata"
],
"discriminator": [
140,
213,
200,
29,
44,
134,
114,
206
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "signer",
"signer": true
},
{
"name": "identity_registry"
},
{
"name": "identity_metadata_account",
"writable": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "level",
"type": "u8"
},
{
"name": "max_allowed",
"type": {
"option": "u64"
}
}
]
},
{
"name": "remove_level_from_identity_account",
"docs": [
"remove level from identity account"
],
"discriminator": [
194,
231,
187,
54,
197,
136,
170,
55
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "signer",
"signer": true
},
{
"name": "identity_registry"
},
{
"name": "identity_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "identity_registry"
},
{
"kind": "account",
"path": "identity_account.owner",
"account": "IdentityAccount"
}
]
}
},
{
"name": "identity_metadata_account",
"writable": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "level",
"type": "u8"
}
]
},
{
"name": "revoke_identity_account",
"docs": [
"revoke user identity account by closing account"
],
"discriminator": [
77,
88,
182,
61,
235,
49,
2,
137
],
"accounts": [
{
"name": "payer",
"writable": true,
"signer": true
},
{
"name": "signer",
"signer": true
},
{
"name": "identity_registry",
"pda": {
"seeds": [
{
"kind": "account",
"path": "identity_registry.asset_mint",
"account": "IdentityRegistryAccount"
}
]
}
},
{
"name": "identity_account",
"writable": true,
"pda": {
"seeds": [
{
"kind": "account",
"path": "identity_registry"
},
{
"kind": "account",
"path": "identity_account.owner",
"account": "IdentityAccount"
}
]
}
}
],
"args": [
{
"name": "_owner",
"type": "pubkey"
}
]
}
],
"accounts": [
{
"name": "IdentityAccount",
"discriminator": [
194,
90,
181,
160,
182,
206,
116,
158
]
},
{
"name": "IdentityMetadataAccount",
"discriminator": [
170,
131,
34,
74,
232,
122,
201,
9
]
},
{
"name": "IdentityRegistryAccount",
"discriminator": [
154,
254,
118,
4,
115,
36,
125,
78
]
}
],
"errors": [
{
"code": 6000,
"name": "LevelAlreadyPresent",
"msg": "Identity level has already been attached to user"
},
{
"code": 6001,
"name": "MaxLevelsExceeded",
"msg": "Number of levels that can be attached to user has been exceeded"
},
{
"code": 6002,
"name": "LevelNotFound",
"msg": "Level to be removed not found"
},
{
"code": 6003,
"name": "UnauthorizedSigner",
"msg": "Unauthorized signer"
},
{
"code": 6004,
"name": "LimitReached",
"msg": "Identity limit reached"
}
],
"types": [
{
"name": "IdentityAccount",
"type": {
"kind": "struct",
"fields": [
{
"name": "version",
"docs": [
"version of the account"
],
"type": "u8"
},
{
"name": "identity_registry",
"docs": [
"identity registry to which the account belongs"
],
"type": "pubkey"
},
{
"name": "owner",
"docs": [
"owner of the identity account"
],
"type": "pubkey"
},
{
"name": "levels",
"type": "bytes"
}
]
}
},
{
"name": "IdentityMetadataAccount",
"type": {
"kind": "struct",
"fields": [
{
"name": "version",
"docs": [
"version of the account"
],
"type": "u8"
},
{
"name": "identity_registry",
"docs": [
"identity registry to which the account belongs"
],
"type": "pubkey"
},
{
"name": "level",
"docs": [
"identity level"
],
"type": "u8"
},
{
"name": "current_users",
"docs": [
"current number of users"
],
"type": "u64"
},
{
"name": "max_users",
"docs": [
"max number of users"
],
"type": "u64"
}
]
}
},
{
"name": "IdentityRegistryAccount",
"type": {
"kind": "struct",
"fields": [
{
"name": "version",
"type": "u8"
},
{
"name": "asset_mint",
"docs": [
"corresponding asset mint"
],
"type": "pubkey"
},
{
"name": "authority",
"docs": [
"authority to manage the registry"
],
"type": "pubkey"
},
{
"name": "delegate",
"docs": [
"registry delegate"
],
"type": "pubkey"
}
]
}
}
]
}