@dstoken-solana/rwa-rbac 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/AssetController.d.ts +15 -23
- package/dist/client/AssetController.d.ts.map +1 -1
- package/dist/client/AssetController.js +343 -0
- package/dist/client/AssetController.js.map +1 -0
- package/dist/client/IdentityMetadataRegistry.d.ts +5 -5
- package/dist/client/IdentityMetadataRegistry.d.ts.map +1 -1
- package/dist/client/IdentityMetadataRegistry.js +354 -0
- package/dist/client/IdentityMetadataRegistry.js.map +1 -0
- package/dist/client/IdentityRegistry.d.ts +4 -4
- package/dist/client/IdentityRegistry.d.ts.map +1 -1
- package/dist/client/IdentityRegistry.js +200 -0
- package/dist/client/IdentityRegistry.js.map +1 -0
- package/dist/client/PolicyEngine.d.ts +7 -7
- package/dist/client/PolicyEngine.js +260 -0
- package/dist/client/PolicyEngine.js.map +1 -0
- package/dist/client/RwaRbacClient.d.ts.map +1 -1
- package/dist/client/RwaRbacClient.js +250 -0
- package/dist/client/RwaRbacClient.js.map +1 -0
- package/dist/client/index.js +6 -0
- package/dist/client/index.js.map +1 -0
- package/dist/constants.js +5 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.es.js +313 -234
- package/dist/index.js +6 -4975
- package/dist/index.js.map +1 -0
- package/dist/pdas.d.ts.map +1 -1
- package/dist/pdas.js +38 -0
- package/dist/pdas.js.map +1 -0
- package/dist/types/flags.d.ts +28 -28
- package/dist/types/flags.d.ts.map +1 -1
- package/dist/types/flags.js +47 -0
- package/dist/types/flags.js.map +1 -0
- package/dist/types/generated/index.js +4 -0
- package/dist/types/generated/index.js.map +1 -0
- package/dist/types/generated/rwa_imr.d.ts +37 -0
- package/dist/types/generated/rwa_imr.d.ts.map +1 -1
- package/dist/types/generated/rwa_imr.js +2 -0
- package/dist/types/generated/rwa_imr.js.map +1 -0
- package/dist/types/generated/rwa_imr.json +902 -0
- package/dist/types/generated/rwa_rbac.d.ts +145 -98
- package/dist/types/generated/rwa_rbac.d.ts.map +1 -1
- package/dist/types/generated/rwa_rbac.js +2 -0
- package/dist/types/generated/rwa_rbac.js.map +1 -0
- package/dist/types/generated/rwa_rbac.json +2621 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/instructions.d.ts +8 -1
- package/dist/types/instructions.d.ts.map +1 -1
- package/dist/types/instructions.js +2 -0
- package/dist/types/instructions.js.map +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +8 -0
- package/dist/utils.js.map +1 -0
- package/package.json +13 -13
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { utils } from "@coral-xyz/anchor";
|
|
11
|
+
import { PublicKey, SystemProgram, } from "@solana/web3.js";
|
|
12
|
+
import { deriveControllerAuthorityPda, deriveInvestorPda, getEventAuthority, } from "../pdas";
|
|
13
|
+
import { getIdentityAccountPda, getIdentityRegistryPda, getPolicyEnginePda, getTrackerAccountPda, getWalletIdentityAccountPda, identityRegistryProgramId, policyEngineProgramId, getIdentityRegistryEventAuthority, } from "@dstoken-solana/rwa-token-sdk";
|
|
14
|
+
import { IMR_PROGRAM } from "../constants";
|
|
15
|
+
/**
|
|
16
|
+
* Role-based access client for accessing Identity Metadata Registry.
|
|
17
|
+
*/
|
|
18
|
+
export class IdentityMetadataRegistry {
|
|
19
|
+
constructor(rwaClient, rbacProgram, imrProgram) {
|
|
20
|
+
this.rwaClient = rwaClient;
|
|
21
|
+
this.rbacProgram = rbacProgram;
|
|
22
|
+
this.imrProgram = imrProgram;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parses inner instructions data field for array of events emitted by program using CPI Events.
|
|
26
|
+
* @param ixs - Array of CompiledInstruction from a transaction inner instructions.
|
|
27
|
+
* @returns Array of Events
|
|
28
|
+
* */
|
|
29
|
+
parseEvents(ixs) {
|
|
30
|
+
const eventCoder = this.imrProgram.coder.events;
|
|
31
|
+
const events = ixs
|
|
32
|
+
.map(({ data }) => {
|
|
33
|
+
try {
|
|
34
|
+
const buffer = Buffer.from(utils.bytes.bs58.decode(data));
|
|
35
|
+
const event = eventCoder.decode(utils.bytes.base64.encode(buffer.slice(8)));
|
|
36
|
+
return event;
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
console.error("Error decoding events", err);
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
.filter((v) => v != null);
|
|
43
|
+
return events;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Asynchronously generates instructions to setup an investor.
|
|
47
|
+
* @param args - {@link SetupInvestorArgs}
|
|
48
|
+
* @param authority - RBAC AssetAccessController ControllerAuthority.
|
|
49
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
50
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
51
|
+
* @returns A Promise that resolves to the instructions to setup an investor.
|
|
52
|
+
*
|
|
53
|
+
* It is required for at least a single user to be setup before issuing tokens.
|
|
54
|
+
*/
|
|
55
|
+
setupUserIxns(args, assetAccessController, authorizedUserRole) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const returnIxs = [];
|
|
58
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
59
|
+
const identityRegistry = getIdentityRegistryPda(args.assetMint);
|
|
60
|
+
const investor = deriveInvestorPda(args.investorId, identityRegistry);
|
|
61
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, investor.toString() // Investor is owner of IdentityAccount
|
|
62
|
+
);
|
|
63
|
+
const assetMintKey = new PublicKey(args.assetMint);
|
|
64
|
+
const registerIx = yield this.imrProgram.methods
|
|
65
|
+
.registerInvestor(args.investorId, args.collisionHash, args.levels[0], args.expiries[0], args.country, args.proofHashes[0])
|
|
66
|
+
.accountsStrict({
|
|
67
|
+
payer: args.payer,
|
|
68
|
+
authority: controllerAuthority,
|
|
69
|
+
investor,
|
|
70
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
71
|
+
identityRegistry,
|
|
72
|
+
identityAccount,
|
|
73
|
+
walletIdentity: getWalletIdentityAccountPda(args.assetMint, investor.toString() // Investor is owner of IdentityAccount
|
|
74
|
+
),
|
|
75
|
+
systemProgram: SystemProgram.programId,
|
|
76
|
+
eventAuthority: getEventAuthority(IMR_PROGRAM),
|
|
77
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
78
|
+
program: identityRegistryProgramId,
|
|
79
|
+
policyEngineProgram: policyEngineProgramId,
|
|
80
|
+
trackerAccount: getTrackerAccountPda(args.assetMint, investor.toString()),
|
|
81
|
+
assetMint: assetMintKey,
|
|
82
|
+
})
|
|
83
|
+
.instruction();
|
|
84
|
+
returnIxs.push(yield this.rbacProgram.methods
|
|
85
|
+
.registerInvestor(registerIx.data)
|
|
86
|
+
.accountsStrict({
|
|
87
|
+
payer: args.payer,
|
|
88
|
+
user: args.signer,
|
|
89
|
+
controllerAuthority,
|
|
90
|
+
assetAccessController,
|
|
91
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
92
|
+
identityMetadataRegistryProgram: IMR_PROGRAM,
|
|
93
|
+
investor,
|
|
94
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
95
|
+
identityRegistry,
|
|
96
|
+
identityAccount,
|
|
97
|
+
walletIdentity: getWalletIdentityAccountPda(args.assetMint, investor.toString()),
|
|
98
|
+
systemProgram: SystemProgram.programId,
|
|
99
|
+
eventAuthorityIdentityMetadataRegistry: getEventAuthority(IMR_PROGRAM),
|
|
100
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
101
|
+
policyEngineProgram: policyEngineProgramId,
|
|
102
|
+
trackerAccount: getTrackerAccountPda(args.assetMint, investor.toString()),
|
|
103
|
+
assetMint: assetMintKey,
|
|
104
|
+
})
|
|
105
|
+
.instruction());
|
|
106
|
+
if (args.levels.length > 1) {
|
|
107
|
+
returnIxs.push(yield this.addLevels({
|
|
108
|
+
payer: args.payer,
|
|
109
|
+
signer: args.signer,
|
|
110
|
+
investorId: args.investorId,
|
|
111
|
+
assetMint: args.assetMint,
|
|
112
|
+
levels: args.levels.slice(1),
|
|
113
|
+
expiries: args.expiries.slice(1),
|
|
114
|
+
proofHashes: args.proofHashes.slice(1),
|
|
115
|
+
enforceLimits: args.enforceLimits,
|
|
116
|
+
}, assetAccessController, authorizedUserRole));
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
ixs: returnIxs,
|
|
120
|
+
signers: [],
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Asynchronously add levels to investor.
|
|
126
|
+
* @param args - {@link AddLevelsArgs}
|
|
127
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
128
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
129
|
+
* @returns A Promise that resolves to the instructions to add levels.
|
|
130
|
+
* */
|
|
131
|
+
addLevels(args, assetAccessController, authorizedUserRole) {
|
|
132
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
133
|
+
var _a;
|
|
134
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
135
|
+
const identityRegistry = getIdentityRegistryPda(args.assetMint);
|
|
136
|
+
const investor = deriveInvestorPda(args.investorId, identityRegistry);
|
|
137
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, investor.toString());
|
|
138
|
+
const trackerAccount = getTrackerAccountPda(args.assetMint, investor.toString());
|
|
139
|
+
const ix = yield this.imrProgram.methods
|
|
140
|
+
.addLevels(Buffer.from(args.levels), args.expiries, args.proofHashes, (_a = args.enforceLimits) !== null && _a !== void 0 ? _a : false)
|
|
141
|
+
.accountsStrict({
|
|
142
|
+
payer: args.payer,
|
|
143
|
+
authority: controllerAuthority,
|
|
144
|
+
investor,
|
|
145
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
146
|
+
identityRegistry,
|
|
147
|
+
identityAccount,
|
|
148
|
+
systemProgram: SystemProgram.programId,
|
|
149
|
+
policyEngineProgram: policyEngineProgramId,
|
|
150
|
+
policyEngine: getPolicyEnginePda(args.assetMint),
|
|
151
|
+
trackerAccount,
|
|
152
|
+
assetMint: args.assetMint,
|
|
153
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
154
|
+
eventAuthority: getEventAuthority(IMR_PROGRAM),
|
|
155
|
+
program: IMR_PROGRAM,
|
|
156
|
+
})
|
|
157
|
+
.instruction();
|
|
158
|
+
return this.rbacProgram.methods
|
|
159
|
+
.addLevels(ix.data)
|
|
160
|
+
.accountsStrict({
|
|
161
|
+
payer: args.payer,
|
|
162
|
+
user: args.signer,
|
|
163
|
+
controllerAuthority,
|
|
164
|
+
assetAccessController,
|
|
165
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
166
|
+
identityMetadataRegistryProgram: IMR_PROGRAM,
|
|
167
|
+
investor,
|
|
168
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
169
|
+
identityRegistry,
|
|
170
|
+
identityAccount,
|
|
171
|
+
systemProgram: SystemProgram.programId,
|
|
172
|
+
policyEngineProgram: policyEngineProgramId,
|
|
173
|
+
policyEngine: getPolicyEnginePda(args.assetMint),
|
|
174
|
+
trackerAccount,
|
|
175
|
+
assetMint: args.assetMint,
|
|
176
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
177
|
+
eventAuthorityIdentityMetadataRegistry: getEventAuthority(IMR_PROGRAM),
|
|
178
|
+
})
|
|
179
|
+
.instruction();
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Asynchronously change country for the Investor.
|
|
184
|
+
* @param args - {@link ChangeCountryArgs}
|
|
185
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
186
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
187
|
+
* @returns A Promise that resolves to the instructions to change the country.
|
|
188
|
+
* */
|
|
189
|
+
changeCountry(args, assetAccessController, authorizedUserRole) {
|
|
190
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
+
var _a;
|
|
192
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
193
|
+
const identityRegistry = getIdentityRegistryPda(args.assetMint);
|
|
194
|
+
const investor = deriveInvestorPda(args.investorId, identityRegistry);
|
|
195
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, investor.toString());
|
|
196
|
+
const trackerAccount = getTrackerAccountPda(args.assetMint, investor.toString());
|
|
197
|
+
const ix = yield this.imrProgram.methods
|
|
198
|
+
.changeCountry(args.country, (_a = args.enforceLimits) !== null && _a !== void 0 ? _a : false)
|
|
199
|
+
.accountsStrict({
|
|
200
|
+
payer: args.payer,
|
|
201
|
+
authority: controllerAuthority,
|
|
202
|
+
investor,
|
|
203
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
204
|
+
identityRegistry,
|
|
205
|
+
identityAccount,
|
|
206
|
+
policyEngineProgram: policyEngineProgramId,
|
|
207
|
+
policyEngine: getPolicyEnginePda(args.assetMint),
|
|
208
|
+
trackerAccount,
|
|
209
|
+
assetMint: args.assetMint,
|
|
210
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
211
|
+
})
|
|
212
|
+
.instruction();
|
|
213
|
+
return this.rbacProgram.methods
|
|
214
|
+
.changeCountry(ix.data)
|
|
215
|
+
.accountsStrict({
|
|
216
|
+
payer: args.payer,
|
|
217
|
+
user: args.signer,
|
|
218
|
+
controllerAuthority,
|
|
219
|
+
assetAccessController,
|
|
220
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
221
|
+
identityMetadataRegistryProgram: IMR_PROGRAM,
|
|
222
|
+
investor,
|
|
223
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
224
|
+
identityRegistry,
|
|
225
|
+
identityAccount,
|
|
226
|
+
policyEngineProgram: policyEngineProgramId,
|
|
227
|
+
policyEngine: getPolicyEnginePda(args.assetMint),
|
|
228
|
+
trackerAccount,
|
|
229
|
+
assetMint: args.assetMint,
|
|
230
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
231
|
+
})
|
|
232
|
+
.instruction();
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Asynchronously remove levels from an investor.
|
|
237
|
+
* @param args - {@link RemoveLevelsArgs}
|
|
238
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
239
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
240
|
+
* @returns A Promise that resolves to the instructions to remove levels.
|
|
241
|
+
* */
|
|
242
|
+
removeLevels(args, assetAccessController, authorizedUserRole) {
|
|
243
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
244
|
+
var _a;
|
|
245
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
246
|
+
const identityRegistry = getIdentityRegistryPda(args.assetMint);
|
|
247
|
+
const investor = deriveInvestorPda(args.investorId, identityRegistry);
|
|
248
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, investor.toString());
|
|
249
|
+
const trackerAccount = getTrackerAccountPda(args.assetMint, investor.toString());
|
|
250
|
+
const ix = yield this.imrProgram.methods
|
|
251
|
+
.removeLevels(Buffer.from(args.levels), (_a = args.enforceLimits) !== null && _a !== void 0 ? _a : false)
|
|
252
|
+
.accountsStrict({
|
|
253
|
+
payer: args.payer,
|
|
254
|
+
authority: controllerAuthority,
|
|
255
|
+
investor,
|
|
256
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
257
|
+
identityRegistry,
|
|
258
|
+
identityAccount,
|
|
259
|
+
systemProgram: SystemProgram.programId,
|
|
260
|
+
policyEngineProgram: policyEngineProgramId,
|
|
261
|
+
policyEngine: getPolicyEnginePda(args.assetMint),
|
|
262
|
+
trackerAccount,
|
|
263
|
+
assetMint: args.assetMint,
|
|
264
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
265
|
+
})
|
|
266
|
+
.instruction();
|
|
267
|
+
return this.rbacProgram.methods
|
|
268
|
+
.removeLevels(ix.data)
|
|
269
|
+
.accountsStrict({
|
|
270
|
+
payer: args.payer,
|
|
271
|
+
user: args.signer,
|
|
272
|
+
controllerAuthority,
|
|
273
|
+
assetAccessController,
|
|
274
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
275
|
+
identityMetadataRegistryProgram: IMR_PROGRAM,
|
|
276
|
+
investor,
|
|
277
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
278
|
+
identityRegistry,
|
|
279
|
+
identityAccount,
|
|
280
|
+
systemProgram: SystemProgram.programId,
|
|
281
|
+
policyEngineProgram: policyEngineProgramId,
|
|
282
|
+
policyEngine: getPolicyEnginePda(args.assetMint),
|
|
283
|
+
trackerAccount,
|
|
284
|
+
assetMint: args.assetMint,
|
|
285
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
286
|
+
})
|
|
287
|
+
.instruction();
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Asynchronously remove an investor.
|
|
292
|
+
* @param args - {@link RemoveLevelsArgs}
|
|
293
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
294
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
295
|
+
* @returns A Promise that resolves to the instructions to remove an investor.
|
|
296
|
+
* */
|
|
297
|
+
removeInvestor(args, assetAccessController, authorizedUserRole) {
|
|
298
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
299
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
300
|
+
const identityRegistry = getIdentityRegistryPda(args.assetMint);
|
|
301
|
+
const investor = deriveInvestorPda(args.investorId, identityRegistry);
|
|
302
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, investor.toString());
|
|
303
|
+
return this.rbacProgram.methods
|
|
304
|
+
.removeInvestor()
|
|
305
|
+
.accountsStrict({
|
|
306
|
+
payer: args.payer,
|
|
307
|
+
user: args.signer,
|
|
308
|
+
controllerAuthority,
|
|
309
|
+
assetAccessController,
|
|
310
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
311
|
+
identityMetadataRegistryProgram: IMR_PROGRAM,
|
|
312
|
+
investor,
|
|
313
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
314
|
+
identityRegistry,
|
|
315
|
+
identityAccount,
|
|
316
|
+
walletIdentity: getWalletIdentityAccountPda(args.assetMint, investor.toString()),
|
|
317
|
+
policyEngineProgram: policyEngineProgramId,
|
|
318
|
+
trackerAccount: getTrackerAccountPda(args.assetMint, investor.toString()),
|
|
319
|
+
eventAuthorityIdentityMetadataRegistry: getEventAuthority(IMR_PROGRAM),
|
|
320
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
321
|
+
assetMint: args.assetMint,
|
|
322
|
+
})
|
|
323
|
+
.instruction();
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Asynchronously attach a wallet to IdentityAccouont for the Investor.
|
|
328
|
+
* @param args - {@link AttachWalletByInvestorArgs}
|
|
329
|
+
* */
|
|
330
|
+
attachWalletByInvestor(args) {
|
|
331
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
332
|
+
const identityRegistry = getIdentityRegistryPda(args.assetMint);
|
|
333
|
+
const investor = deriveInvestorPda(args.investorId, identityRegistry);
|
|
334
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, investor.toString());
|
|
335
|
+
return this.imrProgram.methods
|
|
336
|
+
.attachWalletByInvestor(args.newWallet)
|
|
337
|
+
.accountsStrict({
|
|
338
|
+
payer: args.payer,
|
|
339
|
+
wallet: args.signer,
|
|
340
|
+
investor,
|
|
341
|
+
walletIdentity: getWalletIdentityAccountPda(args.assetMint, args.signer),
|
|
342
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
343
|
+
newWalletIdentity: getWalletIdentityAccountPda(args.assetMint, args.newWallet.toString()),
|
|
344
|
+
identityAccount,
|
|
345
|
+
identityRegistry,
|
|
346
|
+
assetMint: args.assetMint,
|
|
347
|
+
systemProgram: SystemProgram.programId,
|
|
348
|
+
eventAuthorityIdentityRegistry: getIdentityRegistryEventAuthority(),
|
|
349
|
+
})
|
|
350
|
+
.instruction();
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=IdentityMetadataRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityMetadataRegistry.js","sourceRoot":"","sources":["../../src/client/IdentityMetadataRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export declare class IdentityRegistry {
|
|
|
15
15
|
* @param args - {@link SetupUserArgs}
|
|
16
16
|
* @param authority - RBAC AssetAccessController ControllerAuthority.
|
|
17
17
|
* @param assetAccessController - RBAC AssetAccessController account.
|
|
18
|
-
* @param authorizedUserRole -
|
|
18
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
19
19
|
* @returns A Promise that resolves to the instructions to setup a user.
|
|
20
20
|
*
|
|
21
21
|
* It is required for at least a single user to be setup before issuing tokens.
|
|
@@ -26,7 +26,7 @@ export declare class IdentityRegistry {
|
|
|
26
26
|
* @param args - {@link SetupUserArgs}
|
|
27
27
|
* @param authority - RBAC AssetAccessController ControllerAuthority.
|
|
28
28
|
* @param assetAccessController - RBAC AssetAccessController account.
|
|
29
|
-
* @param authorizedUserRole -
|
|
29
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
30
30
|
* @returns A Promise that resolves to the instructions to setup a user.
|
|
31
31
|
*
|
|
32
32
|
* It is required for at least a single user to be setup before issuing tokens.
|
|
@@ -36,7 +36,7 @@ export declare class IdentityRegistry {
|
|
|
36
36
|
* Asynchronously generates instruction to attach wallet to identity.
|
|
37
37
|
* @param args - {@link AttachDetachWalletArgs}
|
|
38
38
|
* @param assetAccessController - RBAC AssetAccessController account.
|
|
39
|
-
* @param authorizedUserRole -
|
|
39
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
40
40
|
* @returns A Promise that resolves to attach wallet.
|
|
41
41
|
* */
|
|
42
42
|
attachWalletToIdentityIxn(args: AttachDetachWalletArgs, assetAccessController: PublicKey, authorizedUserRole?: PublicKey): Promise<TransactionInstruction>;
|
|
@@ -44,7 +44,7 @@ export declare class IdentityRegistry {
|
|
|
44
44
|
* Asynchronously generates instruction to detach wallet from identity.
|
|
45
45
|
* @param args - {@link AttachDetachWalletArgs}
|
|
46
46
|
* @param assetAccessController - RBAC AssetAccessController account.
|
|
47
|
-
* @param authorizedUserRole -
|
|
47
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
48
48
|
* @returns A Promise that resolves to detach wallet.
|
|
49
49
|
* */
|
|
50
50
|
detachWalletFromIdentityIxn(args: AttachDetachWalletArgs, assetAccessController: PublicKey, authorizedUserRole?: PublicKey): Promise<TransactionInstruction>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IdentityRegistry.d.ts","sourceRoot":"","sources":["../../src/client/IdentityRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"IdentityRegistry.d.ts","sourceRoot":"","sources":["../../src/client/IdentityRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EASL,QAAQ,EAER,SAAS,EACT,aAAa,EACd,MAAM,+BAA+B,CAAC;AAQvC;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAElB,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC;IAK/D;;;;;;;;;OASG;IACG,aAAa,CACjB,IAAI,EAAE,aAAa,EACnB,qBAAqB,EAAE,SAAS,EAChC,kBAAkB,CAAC,EAAE,SAAS,GAC7B,OAAO,CAAC,QAAQ,CAAC;IAwCpB;;;;;;;;;OASG;IACG,aAAa,CACjB,IAAI,EAAE,kBAAkB,EACxB,qBAAqB,EAAE,SAAS,EAChC,kBAAkB,CAAC,EAAE,SAAS,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IA0ClC;;;;;;SAMK;IACC,yBAAyB,CAC7B,IAAI,EAAE,sBAAsB,EAC5B,qBAAqB,EAAE,SAAS,EAChC,kBAAkB,CAAC,EAAE,SAAS,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAiDlC;;;;;;SAMK;IACC,2BAA2B,CAC/B,IAAI,EAAE,sBAAsB,EAC5B,qBAAqB,EAAE,SAAS,EAChC,kBAAkB,CAAC,EAAE,SAAS,GAC7B,OAAO,CAAC,sBAAsB,CAAC;CAmDnC"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { PublicKey } from "@solana/web3.js";
|
|
11
|
+
import { getIdentityAccount, getIdentityAccountPda, getIdentityRegistryEventAuthority, getIdentityRegistryPda, getIdentityRegistryProgram, getTrackerAccountPda, getWalletIdentityAccountPda, identityRegistryProgramId, policyEngineProgramId, } from "@dstoken-solana/rwa-token-sdk";
|
|
12
|
+
import { deriveControllerAuthorityPda } from "../pdas";
|
|
13
|
+
import { SystemProgram } from "@solana/web3.js";
|
|
14
|
+
import { getAssociatedTokenAddressSync, TOKEN_2022_PROGRAM_ID, } from "@solana/spl-token";
|
|
15
|
+
/**
|
|
16
|
+
* Represents the role-based access client for Identity Registry for an RWA.
|
|
17
|
+
*/
|
|
18
|
+
export class IdentityRegistry {
|
|
19
|
+
constructor(rwaClient, rbacProgram) {
|
|
20
|
+
this.rwaClient = rwaClient;
|
|
21
|
+
this.rbacProgram = rbacProgram;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Asynchronously generates instructions to setup a non-investor user with an identity account.
|
|
25
|
+
* @param args - {@link SetupUserArgs}
|
|
26
|
+
* @param authority - RBAC AssetAccessController ControllerAuthority.
|
|
27
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
28
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
29
|
+
* @returns A Promise that resolves to the instructions to setup a user.
|
|
30
|
+
*
|
|
31
|
+
* It is required for at least a single user to be setup before issuing tokens.
|
|
32
|
+
*/
|
|
33
|
+
setupUserIxns(args, assetAccessController, authorizedUserRole) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const { ixs } = yield this.rwaClient.identityRegistry.setupUserIxns(args);
|
|
36
|
+
const returnIxs = [];
|
|
37
|
+
const identityAccountIx = ixs[0];
|
|
38
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
39
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, args.owner);
|
|
40
|
+
returnIxs.push(yield this.rbacProgram.methods
|
|
41
|
+
.createIdentityAccount(identityAccountIx.data)
|
|
42
|
+
.accountsStrict({
|
|
43
|
+
payer: args.payer,
|
|
44
|
+
user: args.signer,
|
|
45
|
+
controllerAuthority,
|
|
46
|
+
assetAccessController,
|
|
47
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
48
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
49
|
+
identityRegistry: getIdentityRegistryPda(args.assetMint),
|
|
50
|
+
identityAccount,
|
|
51
|
+
walletIdentity: getWalletIdentityAccountPda(args.assetMint, args.owner),
|
|
52
|
+
systemProgram: SystemProgram.programId,
|
|
53
|
+
eventAuthority: getIdentityRegistryEventAuthority(),
|
|
54
|
+
policyEngineProgram: policyEngineProgramId,
|
|
55
|
+
trackerAccount: getTrackerAccountPda(args.assetMint, args.owner),
|
|
56
|
+
assetMint: args.assetMint,
|
|
57
|
+
})
|
|
58
|
+
.instruction());
|
|
59
|
+
return {
|
|
60
|
+
ixs: returnIxs,
|
|
61
|
+
signers: [],
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Asynchronously generates instructions to remove a non-investor user with an identity account.
|
|
67
|
+
* @param args - {@link SetupUserArgs}
|
|
68
|
+
* @param authority - RBAC AssetAccessController ControllerAuthority.
|
|
69
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
70
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
71
|
+
* @returns A Promise that resolves to the instructions to setup a user.
|
|
72
|
+
*
|
|
73
|
+
* It is required for at least a single user to be setup before issuing tokens.
|
|
74
|
+
*/
|
|
75
|
+
removeUserIxn(args, assetAccessController, authorizedUserRole) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const ix = yield this.rwaClient.identityRegistry.revokeIdentityAccount(args);
|
|
78
|
+
const identityAccountAddress = getIdentityAccountPda(args.assetMint, args.owner);
|
|
79
|
+
const identityAccount = yield getIdentityAccount(identityAccountAddress, this.rwaClient.provider);
|
|
80
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
81
|
+
const returnIx = yield this.rbacProgram.methods
|
|
82
|
+
.removeIdentityAccount(ix.data)
|
|
83
|
+
.accountsStrict({
|
|
84
|
+
payer: args.payer,
|
|
85
|
+
user: args.signer,
|
|
86
|
+
controllerAuthority,
|
|
87
|
+
assetAccessController,
|
|
88
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
89
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
90
|
+
identityRegistry: getIdentityRegistryPda(args.assetMint),
|
|
91
|
+
identityAccount: identityAccountAddress,
|
|
92
|
+
walletIdentity: getWalletIdentityAccountPda(args.assetMint, args.owner),
|
|
93
|
+
eventAuthority: getIdentityRegistryEventAuthority(),
|
|
94
|
+
identityOwner: identityAccount.owner,
|
|
95
|
+
policyEngineProgram: policyEngineProgramId,
|
|
96
|
+
trackerAccount: getTrackerAccountPda(args.assetMint, args.owner),
|
|
97
|
+
assetMint: args.assetMint,
|
|
98
|
+
})
|
|
99
|
+
.instruction();
|
|
100
|
+
return returnIx;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Asynchronously generates instruction to attach wallet to identity.
|
|
105
|
+
* @param args - {@link AttachDetachWalletArgs}
|
|
106
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
107
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
108
|
+
* @returns A Promise that resolves to attach wallet.
|
|
109
|
+
* */
|
|
110
|
+
attachWalletToIdentityIxn(args, assetAccessController, authorizedUserRole) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
113
|
+
const identityProgram = getIdentityRegistryProgram(this.rwaClient.provider);
|
|
114
|
+
const identityRegistry = getIdentityRegistryPda(args.assetMint);
|
|
115
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, args.owner);
|
|
116
|
+
const newWalletIdentityAccount = getIdentityAccountPda(args.assetMint, args.wallet);
|
|
117
|
+
const walletIdentity = getWalletIdentityAccountPda(args.assetMint, args.wallet.toString());
|
|
118
|
+
const ix = yield identityProgram.methods
|
|
119
|
+
.attachWalletToIdentity(new PublicKey(args.wallet))
|
|
120
|
+
.accountsStrict({
|
|
121
|
+
payer: args.payer,
|
|
122
|
+
authority: controllerAuthority,
|
|
123
|
+
identityAccount,
|
|
124
|
+
identityRegistry,
|
|
125
|
+
assetMint: args.assetMint,
|
|
126
|
+
walletIdentity,
|
|
127
|
+
systemProgram: SystemProgram.programId,
|
|
128
|
+
eventAuthority: getIdentityRegistryEventAuthority(),
|
|
129
|
+
program: identityRegistryProgramId,
|
|
130
|
+
})
|
|
131
|
+
.instruction();
|
|
132
|
+
return this.rbacProgram.methods
|
|
133
|
+
.attachWalletToIdentity(ix.data)
|
|
134
|
+
.accountsStrict({
|
|
135
|
+
payer: args.payer,
|
|
136
|
+
user: args.signer,
|
|
137
|
+
controllerAuthority,
|
|
138
|
+
assetAccessController,
|
|
139
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
140
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
141
|
+
identityAccount,
|
|
142
|
+
identityRegistry,
|
|
143
|
+
assetMint: args.assetMint,
|
|
144
|
+
walletIdentity,
|
|
145
|
+
systemProgram: SystemProgram.programId,
|
|
146
|
+
eventAuthority: getIdentityRegistryEventAuthority(),
|
|
147
|
+
})
|
|
148
|
+
.instruction();
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Asynchronously generates instruction to detach wallet from identity.
|
|
153
|
+
* @param args - {@link AttachDetachWalletArgs}
|
|
154
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
155
|
+
* @param authorizedUserRole - UserRole authorized to invoke instruction.
|
|
156
|
+
* @returns A Promise that resolves to detach wallet.
|
|
157
|
+
* */
|
|
158
|
+
detachWalletFromIdentityIxn(args, assetAccessController, authorizedUserRole) {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
const controllerAuthority = deriveControllerAuthorityPda(assetAccessController);
|
|
161
|
+
const identityProgram = getIdentityRegistryProgram(this.rwaClient.provider);
|
|
162
|
+
const identityRegistry = getIdentityRegistryPda(args.assetMint);
|
|
163
|
+
const identityAccount = getIdentityAccountPda(args.assetMint, args.owner);
|
|
164
|
+
const walletIdentity = getWalletIdentityAccountPda(args.assetMint, args.wallet.toString());
|
|
165
|
+
const tokenAccount = getAssociatedTokenAddressSync(new PublicKey(args.assetMint), new PublicKey(args.wallet), false, TOKEN_2022_PROGRAM_ID);
|
|
166
|
+
const ix = yield identityProgram.methods
|
|
167
|
+
.detachWalletFromIdentity()
|
|
168
|
+
.accountsStrict({
|
|
169
|
+
payer: args.payer,
|
|
170
|
+
authority: controllerAuthority,
|
|
171
|
+
walletIdentity,
|
|
172
|
+
identityAccount,
|
|
173
|
+
identityRegistry,
|
|
174
|
+
eventAuthority: getIdentityRegistryEventAuthority(),
|
|
175
|
+
program: identityRegistryProgramId,
|
|
176
|
+
tokenAccount: tokenAccount,
|
|
177
|
+
assetMint: args.assetMint,
|
|
178
|
+
})
|
|
179
|
+
.instruction();
|
|
180
|
+
return this.rbacProgram.methods
|
|
181
|
+
.detachWalletFromIdentity(ix.data)
|
|
182
|
+
.accountsStrict({
|
|
183
|
+
payer: args.payer,
|
|
184
|
+
user: args.signer,
|
|
185
|
+
controllerAuthority,
|
|
186
|
+
assetAccessController,
|
|
187
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
188
|
+
identityRegistryProgram: identityRegistryProgramId,
|
|
189
|
+
walletIdentity,
|
|
190
|
+
identityAccount,
|
|
191
|
+
identityRegistry,
|
|
192
|
+
eventAuthority: getIdentityRegistryEventAuthority(),
|
|
193
|
+
tokenAccount: tokenAccount,
|
|
194
|
+
assetMint: args.assetMint,
|
|
195
|
+
})
|
|
196
|
+
.instruction();
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=IdentityRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityRegistry.js","sourceRoot":"","sources":["../../src/client/IdentityRegistry.ts"],"names":[],"mappings":"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"}
|