@dstoken-solana/rwa-rbac 0.0.1-rc0
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 +98 -0
- package/dist/client/AssetController.d.ts.map +1 -0
- package/dist/client/AssetController.js +535 -0
- package/dist/client/AssetController.js.map +1 -0
- package/dist/client/IdentityMetadataRegistry.d.ts +64 -0
- package/dist/client/IdentityMetadataRegistry.d.ts.map +1 -0
- package/dist/client/IdentityMetadataRegistry.js +399 -0
- package/dist/client/IdentityMetadataRegistry.js.map +1 -0
- package/dist/client/IdentityRegistry.d.ts +65 -0
- package/dist/client/IdentityRegistry.d.ts.map +1 -0
- package/dist/client/IdentityRegistry.js +328 -0
- package/dist/client/IdentityRegistry.js.map +1 -0
- package/dist/client/PolicyEngine.d.ts +74 -0
- package/dist/client/PolicyEngine.d.ts.map +1 -0
- package/dist/client/PolicyEngine.js +286 -0
- package/dist/client/PolicyEngine.js.map +1 -0
- package/dist/client/RwaRbacClient.d.ts +70 -0
- package/dist/client/RwaRbacClient.d.ts.map +1 -0
- package/dist/client/RwaRbacClient.js +269 -0
- package/dist/client/RwaRbacClient.js.map +1 -0
- package/dist/client/TokenLocks.d.ts +55 -0
- package/dist/client/TokenLocks.d.ts.map +1 -0
- package/dist/client/TokenLocks.js +320 -0
- package/dist/client/TokenLocks.js.map +1 -0
- package/dist/client/index.d.ts +7 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +23 -0
- package/dist/client/index.js.map +1 -0
- package/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/pdas.d.ts +9 -0
- package/dist/pdas.d.ts.map +1 -0
- package/dist/pdas.js +52 -0
- package/dist/pdas.js.map +1 -0
- package/dist/types/flags.d.ts +43 -0
- package/dist/types/flags.d.ts.map +1 -0
- package/dist/types/flags.js +48 -0
- package/dist/types/flags.js.map +1 -0
- package/dist/types/generated/index.d.ts +8 -0
- package/dist/types/generated/index.d.ts.map +1 -0
- package/dist/types/generated/index.js +13 -0
- package/dist/types/generated/index.js.map +1 -0
- package/dist/types/generated/rwa_imr.d.ts +592 -0
- package/dist/types/generated/rwa_imr.d.ts.map +1 -0
- package/dist/types/generated/rwa_imr.js +3 -0
- package/dist/types/generated/rwa_imr.js.map +1 -0
- package/dist/types/generated/rwa_imr.json +585 -0
- package/dist/types/generated/rwa_rbac.d.ts +2671 -0
- package/dist/types/generated/rwa_rbac.d.ts.map +1 -0
- package/dist/types/generated/rwa_rbac.js +3 -0
- package/dist/types/generated/rwa_rbac.js.map +1 -0
- package/dist/types/generated/rwa_rbac.json +2664 -0
- package/dist/types/generated/token_locks.d.ts +649 -0
- package/dist/types/generated/token_locks.d.ts.map +1 -0
- package/dist/types/generated/token_locks.js +3 -0
- package/dist/types/generated/token_locks.js.map +1 -0
- package/dist/types/generated/token_locks.json +642 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +20 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/instructions.d.ts +213 -0
- package/dist/types/instructions.d.ts.map +1 -0
- package/dist/types/instructions.js +3 -0
- package/dist/types/instructions.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +16 -0
- package/dist/utils.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Program } from "@coral-xyz/anchor";
|
|
2
|
+
import { PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
3
|
+
import { RwaRbac } from "../types/generated/rwa_rbac";
|
|
4
|
+
import { TokenLocks as TokenLocksType } from "../types/generated/token_locks";
|
|
5
|
+
import { RwaClient } from "@dstoken-solana/rwa-token-sdk";
|
|
6
|
+
import { AddTokenLockArgs, CreateOrCloseInvestorLocksArgs, RemoveTokenLockArgs } from "../types/instructions";
|
|
7
|
+
import { Commitment } from "@solana/web3.js";
|
|
8
|
+
/**
|
|
9
|
+
* Role-based access client for accessing Token Locks
|
|
10
|
+
*/
|
|
11
|
+
export declare class TokenLocks {
|
|
12
|
+
rwaClient: RwaClient;
|
|
13
|
+
rbacProgram: Program<RwaRbac>;
|
|
14
|
+
tokenLocksProgram: Program<TokenLocksType>;
|
|
15
|
+
constructor(rwaClient: RwaClient, rbacProgram: Program<RwaRbac>, tokenLocksProgram: Program<TokenLocksType>);
|
|
16
|
+
/**
|
|
17
|
+
* Asynchronously create InvestorLocks account for a wallet.
|
|
18
|
+
* @param args - {@link CreateOrCloseInvestorLocksArgs}
|
|
19
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
20
|
+
* @param authorizedUserRole - Optional UserRole account. Required if user is not an admin.
|
|
21
|
+
* @returns A Promise that resolves to a transaction instruction.
|
|
22
|
+
* */
|
|
23
|
+
createInvestorLocks(args: CreateOrCloseInvestorLocksArgs, assetAccessController: PublicKey, authorizedUserRole?: PublicKey): Promise<TransactionInstruction>;
|
|
24
|
+
/**
|
|
25
|
+
* Asynchronously close InvestorLocks account for a wallet.
|
|
26
|
+
* @param args - {@link CreateOrCloseInvestorLocksArgs}
|
|
27
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
28
|
+
* @param authorizedUserRole - Optional UserRole account. Required if user is not an admin.
|
|
29
|
+
* @returns A Promise that resolves to a transaction instruction.
|
|
30
|
+
* */
|
|
31
|
+
closeInvestorLocks(args: CreateOrCloseInvestorLocksArgs, assetAccessController: PublicKey, authorizedUserRole?: PublicKey): Promise<TransactionInstruction>;
|
|
32
|
+
/**
|
|
33
|
+
* Asynchronously add a lock to InvestorLocks.
|
|
34
|
+
* @param args - {@link AddTokenLockArgs}
|
|
35
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
36
|
+
* @param authorizedUserRole - Optional UserRole account. Required if user is not an admin.
|
|
37
|
+
* @returns A Promise that resolves to a transaction instruction.
|
|
38
|
+
* */
|
|
39
|
+
addTokenLock(args: AddTokenLockArgs, assetAccessController: PublicKey, authorizedUserRole?: PublicKey): Promise<TransactionInstruction>;
|
|
40
|
+
/**
|
|
41
|
+
* Asynchronously remove a lock from InvestorLocks using RBAC authority.
|
|
42
|
+
* @param args - {@link RemoveTokenLockArgs}
|
|
43
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
44
|
+
* @param authorizedUserRole - Optional UserRole account. Required if user is not an admin.
|
|
45
|
+
* @returns A Promise that resolves to a transaction instruction.
|
|
46
|
+
* */
|
|
47
|
+
removeTokenLock(args: RemoveTokenLockArgs, assetAccessController: PublicKey, authorizedUserRole?: PublicKey): Promise<TransactionInstruction>;
|
|
48
|
+
/**
|
|
49
|
+
* Asynchronously fetches a token account.
|
|
50
|
+
* @param account - Account to load.
|
|
51
|
+
* @returns A Promise that resolves to a token account.
|
|
52
|
+
* */
|
|
53
|
+
fetchTokenAccount(account: PublicKey, commitment?: Commitment): Promise<import("@solana/spl-token").Account>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=TokenLocks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenLocks.d.ts","sourceRoot":"","sources":["../../src/client/TokenLocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,SAAS,EAET,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAO9E,OAAO,EAWL,SAAS,EACV,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,qBAAa,UAAU;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;gBAGzC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,EAC7B,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC;IAO5C;;;;;;SAMK;IACC,mBAAmB,CACvB,IAAI,EAAE,8BAA8B,EACpC,qBAAqB,EAAE,SAAS,EAChC,kBAAkB,CAAC,EAAE,SAAS,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAiClC;;;;;;SAMK;IACC,kBAAkB,CACtB,IAAI,EAAE,8BAA8B,EACpC,qBAAqB,EAAE,SAAS,EAChC,kBAAkB,CAAC,EAAE,SAAS,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IA0BlC;;;;;;SAMK;IACC,YAAY,CAChB,IAAI,EAAE,gBAAgB,EACtB,qBAAqB,EAAE,SAAS,EAChC,kBAAkB,CAAC,EAAE,SAAS,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IA6HlC;;;;;;SAMK;IACC,eAAe,CACnB,IAAI,EAAE,mBAAmB,EACzB,qBAAqB,EAAE,SAAS,EAChC,kBAAkB,CAAC,EAAE,SAAS,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IA0FlC;;;;SAIK;IACC,iBAAiB,CACrB,OAAO,EAAE,SAAS,EAClB,UAAU,GAAE,UAAwB;CASvC"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.TokenLocks = void 0;
|
|
40
|
+
var web3_js_1 = require("@solana/web3.js");
|
|
41
|
+
var spl_token_1 = require("@solana/spl-token");
|
|
42
|
+
var pdas_1 = require("../pdas");
|
|
43
|
+
var rwa_token_sdk_1 = require("@dstoken-solana/rwa-token-sdk");
|
|
44
|
+
var constants_1 = require("../constants");
|
|
45
|
+
/**
|
|
46
|
+
* Role-based access client for accessing Token Locks
|
|
47
|
+
*/
|
|
48
|
+
var TokenLocks = /** @class */ (function () {
|
|
49
|
+
function TokenLocks(rwaClient, rbacProgram, tokenLocksProgram) {
|
|
50
|
+
this.rwaClient = rwaClient;
|
|
51
|
+
this.rbacProgram = rbacProgram;
|
|
52
|
+
this.tokenLocksProgram = tokenLocksProgram;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Asynchronously create InvestorLocks account for a wallet.
|
|
56
|
+
* @param args - {@link CreateOrCloseInvestorLocksArgs}
|
|
57
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
58
|
+
* @param authorizedUserRole - Optional UserRole account. Required if user is not an admin.
|
|
59
|
+
* @returns A Promise that resolves to a transaction instruction.
|
|
60
|
+
* */
|
|
61
|
+
TokenLocks.prototype.createInvestorLocks = function (args, assetAccessController, authorizedUserRole) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
63
|
+
var identityRegistry, investor;
|
|
64
|
+
return __generator(this, function (_a) {
|
|
65
|
+
identityRegistry = (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint);
|
|
66
|
+
investor = (0, pdas_1.deriveInvestorPda)(args.investorId, identityRegistry);
|
|
67
|
+
return [2 /*return*/, this.rbacProgram.methods
|
|
68
|
+
.createInvestorLocks()
|
|
69
|
+
.accountsStrict({
|
|
70
|
+
payer: args.payer,
|
|
71
|
+
user: args.signer,
|
|
72
|
+
controllerAuthority: (0, pdas_1.deriveControllerAuthorityPda)(assetAccessController),
|
|
73
|
+
assetAccessController: assetAccessController,
|
|
74
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
75
|
+
tokenLocksProgram: constants_1.TL_PROGRAM,
|
|
76
|
+
investorLocks: (0, pdas_1.deriveInvestorLocks)(args.investorId, identityRegistry),
|
|
77
|
+
investor: investor,
|
|
78
|
+
identityAccount: (0, rwa_token_sdk_1.getIdentityAccountPda)(args.assetMint, investor.toString()),
|
|
79
|
+
assetMint: args.assetMint,
|
|
80
|
+
lockedTokenAccount: (0, pdas_1.deriveLockedTokenAccount)(args.investorId, identityRegistry),
|
|
81
|
+
assetController: (0, rwa_token_sdk_1.getAssetControllerPda)(args.assetMint),
|
|
82
|
+
assetControllerProgram: rwa_token_sdk_1.assetControllerProgramId,
|
|
83
|
+
tokenProgram: spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
84
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
85
|
+
})
|
|
86
|
+
.instruction()];
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Asynchronously close InvestorLocks account for a wallet.
|
|
92
|
+
* @param args - {@link CreateOrCloseInvestorLocksArgs}
|
|
93
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
94
|
+
* @param authorizedUserRole - Optional UserRole account. Required if user is not an admin.
|
|
95
|
+
* @returns A Promise that resolves to a transaction instruction.
|
|
96
|
+
* */
|
|
97
|
+
TokenLocks.prototype.closeInvestorLocks = function (args, assetAccessController, authorizedUserRole) {
|
|
98
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
99
|
+
var controllerAuthority, identityRegistry;
|
|
100
|
+
return __generator(this, function (_a) {
|
|
101
|
+
controllerAuthority = (0, pdas_1.deriveControllerAuthorityPda)(assetAccessController);
|
|
102
|
+
identityRegistry = (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint);
|
|
103
|
+
return [2 /*return*/, this.rbacProgram.methods
|
|
104
|
+
.closeInvestorLocks()
|
|
105
|
+
.accountsStrict({
|
|
106
|
+
payer: args.payer,
|
|
107
|
+
user: args.signer,
|
|
108
|
+
controllerAuthority: controllerAuthority,
|
|
109
|
+
assetAccessController: assetAccessController,
|
|
110
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
111
|
+
tokenLocksProgram: constants_1.TL_PROGRAM,
|
|
112
|
+
investorLocks: (0, pdas_1.deriveInvestorLocks)(args.investorId, identityRegistry),
|
|
113
|
+
investor: (0, pdas_1.deriveInvestorPda)(args.investorId, identityRegistry),
|
|
114
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
115
|
+
tokenProgram: spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
116
|
+
lockedTokenAccount: (0, pdas_1.deriveLockedTokenAccount)(args.investorId, identityRegistry),
|
|
117
|
+
})
|
|
118
|
+
.instruction()];
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Asynchronously add a lock to InvestorLocks.
|
|
124
|
+
* @param args - {@link AddTokenLockArgs}
|
|
125
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
126
|
+
* @param authorizedUserRole - Optional UserRole account. Required if user is not an admin.
|
|
127
|
+
* @returns A Promise that resolves to a transaction instruction.
|
|
128
|
+
* */
|
|
129
|
+
TokenLocks.prototype.addTokenLock = function (args, assetAccessController, authorizedUserRole) {
|
|
130
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
131
|
+
var assetController, identityRegistry, investorLocks, investor, unlockedTokenAccount, controllerAuthority, ix;
|
|
132
|
+
return __generator(this, function (_a) {
|
|
133
|
+
switch (_a.label) {
|
|
134
|
+
case 0:
|
|
135
|
+
assetController = (0, rwa_token_sdk_1.getAssetControllerPda)(args.assetMint);
|
|
136
|
+
identityRegistry = (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint);
|
|
137
|
+
investorLocks = (0, pdas_1.deriveInvestorLocks)(args.investorId, identityRegistry);
|
|
138
|
+
investor = (0, pdas_1.deriveInvestorPda)(args.investorId, identityRegistry);
|
|
139
|
+
unlockedTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(new web3_js_1.PublicKey(args.assetMint), args.wallet, false, spl_token_1.TOKEN_2022_PROGRAM_ID);
|
|
140
|
+
controllerAuthority = (0, pdas_1.deriveControllerAuthorityPda)(assetAccessController);
|
|
141
|
+
return [4 /*yield*/, this.tokenLocksProgram.methods
|
|
142
|
+
.addTokenLock(args.value, args.releaseTime, args.reasonCode, args.reasonString)
|
|
143
|
+
.accountsStrict({
|
|
144
|
+
payer: args.payer,
|
|
145
|
+
authority: controllerAuthority,
|
|
146
|
+
investorLocks: investorLocks,
|
|
147
|
+
investor: investor,
|
|
148
|
+
assetMint: args.assetMint,
|
|
149
|
+
identityAccount: (0, rwa_token_sdk_1.getIdentityAccountPda)(args.assetMint, investor.toString()),
|
|
150
|
+
unlockedTokenAccount: unlockedTokenAccount,
|
|
151
|
+
lockedTokenAccount: (0, pdas_1.deriveLockedTokenAccount)(args.investorId, identityRegistry),
|
|
152
|
+
assetController: assetController,
|
|
153
|
+
assetControllerProgram: rwa_token_sdk_1.assetControllerProgramId,
|
|
154
|
+
tokenProgram: spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
155
|
+
identityRegistry: (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint),
|
|
156
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
157
|
+
walletIdentityAccount: (0, rwa_token_sdk_1.getWalletIdentityAccountPda)(args.assetMint, args.wallet.toString()),
|
|
158
|
+
})
|
|
159
|
+
.instruction()];
|
|
160
|
+
case 1:
|
|
161
|
+
ix = _a.sent();
|
|
162
|
+
return [2 /*return*/, this.rbacProgram.methods
|
|
163
|
+
.addTokenLock(ix.data)
|
|
164
|
+
.accountsStrict({
|
|
165
|
+
payer: args.payer,
|
|
166
|
+
user: args.signer,
|
|
167
|
+
controllerAuthority: controllerAuthority,
|
|
168
|
+
assetAccessController: assetAccessController,
|
|
169
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
170
|
+
tokenLocksProgram: constants_1.TL_PROGRAM,
|
|
171
|
+
investorLocks: investorLocks,
|
|
172
|
+
investor: investor,
|
|
173
|
+
assetMint: args.assetMint,
|
|
174
|
+
unlockedTokenAccount: unlockedTokenAccount,
|
|
175
|
+
lockedTokenAccount: (0, pdas_1.deriveLockedTokenAccount)(args.investorId, identityRegistry),
|
|
176
|
+
assetController: assetController,
|
|
177
|
+
identityRegistry: (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint),
|
|
178
|
+
assetControllerProgram: rwa_token_sdk_1.assetControllerProgramId,
|
|
179
|
+
tokenProgram: spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
180
|
+
systemProgram: web3_js_1.SystemProgram.programId,
|
|
181
|
+
identityAccount: (0, rwa_token_sdk_1.getIdentityAccountPda)(args.assetMint, investor.toString()),
|
|
182
|
+
walletIdentityAccount: (0, rwa_token_sdk_1.getWalletIdentityAccountPda)(args.assetMint, args.wallet.toString()),
|
|
183
|
+
})
|
|
184
|
+
.remainingAccounts([
|
|
185
|
+
{
|
|
186
|
+
pubkey: (0, rwa_token_sdk_1.getPolicyEnginePda)(args.assetMint),
|
|
187
|
+
isWritable: true,
|
|
188
|
+
isSigner: false,
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
pubkey: rwa_token_sdk_1.identityRegistryProgramId,
|
|
192
|
+
isWritable: false,
|
|
193
|
+
isSigner: false,
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
pubkey: rwa_token_sdk_1.policyEngineProgramId,
|
|
197
|
+
isWritable: false,
|
|
198
|
+
isSigner: false,
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
pubkey: (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint),
|
|
202
|
+
isWritable: false,
|
|
203
|
+
isSigner: false,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
pubkey: (0, rwa_token_sdk_1.getTrackerAccountPda)(args.assetMint, investor.toString()),
|
|
207
|
+
isWritable: true,
|
|
208
|
+
isSigner: false,
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
pubkey: (0, rwa_token_sdk_1.getExtraMetasListPda)(args.assetMint),
|
|
212
|
+
isWritable: false,
|
|
213
|
+
isSigner: false,
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
pubkey: (0, rwa_token_sdk_1.getWalletIdentityAccountPda)(args.assetMint, investor.toString()),
|
|
217
|
+
isWritable: false,
|
|
218
|
+
isSigner: false,
|
|
219
|
+
},
|
|
220
|
+
])
|
|
221
|
+
.instruction()];
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Asynchronously remove a lock from InvestorLocks using RBAC authority.
|
|
228
|
+
* @param args - {@link RemoveTokenLockArgs}
|
|
229
|
+
* @param assetAccessController - RBAC AssetAccessController account.
|
|
230
|
+
* @param authorizedUserRole - Optional UserRole account. Required if user is not an admin.
|
|
231
|
+
* @returns A Promise that resolves to a transaction instruction.
|
|
232
|
+
* */
|
|
233
|
+
TokenLocks.prototype.removeTokenLock = function (args, assetAccessController, authorizedUserRole) {
|
|
234
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
235
|
+
var assetController, identityRegistry, investorLocks, investor, unlockedTokenAccount, controllerAuthority;
|
|
236
|
+
return __generator(this, function (_a) {
|
|
237
|
+
assetController = (0, rwa_token_sdk_1.getAssetControllerPda)(args.assetMint);
|
|
238
|
+
identityRegistry = (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint);
|
|
239
|
+
investorLocks = (0, pdas_1.deriveInvestorLocks)(args.investorId, identityRegistry);
|
|
240
|
+
investor = (0, pdas_1.deriveInvestorPda)(args.investorId, identityRegistry);
|
|
241
|
+
unlockedTokenAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(new web3_js_1.PublicKey(args.assetMint), args.wallet, false, spl_token_1.TOKEN_2022_PROGRAM_ID);
|
|
242
|
+
controllerAuthority = (0, pdas_1.deriveControllerAuthorityPda)(assetAccessController);
|
|
243
|
+
return [2 /*return*/, this.rbacProgram.methods
|
|
244
|
+
.removeTokenLock(Buffer.from(args.indices))
|
|
245
|
+
.accountsStrict({
|
|
246
|
+
user: args.signer,
|
|
247
|
+
controllerAuthority: controllerAuthority,
|
|
248
|
+
assetAccessController: assetAccessController,
|
|
249
|
+
authorizedUserRole: authorizedUserRole || null,
|
|
250
|
+
tokenLocksProgram: constants_1.TL_PROGRAM,
|
|
251
|
+
investorLocks: investorLocks,
|
|
252
|
+
investor: investor,
|
|
253
|
+
identityAccount: (0, rwa_token_sdk_1.getIdentityAccountPda)(args.assetMint, investor.toString()),
|
|
254
|
+
walletIdentityAccount: (0, rwa_token_sdk_1.getWalletIdentityAccountPda)(args.assetMint, args.wallet.toString()),
|
|
255
|
+
assetMint: args.assetMint,
|
|
256
|
+
unlockedTokenAccount: unlockedTokenAccount,
|
|
257
|
+
lockedTokenAccount: (0, pdas_1.deriveLockedTokenAccount)(args.investorId, identityRegistry),
|
|
258
|
+
assetController: assetController,
|
|
259
|
+
identityRegistry: (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint),
|
|
260
|
+
assetControllerProgram: rwa_token_sdk_1.assetControllerProgramId,
|
|
261
|
+
tokenProgram: spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
262
|
+
})
|
|
263
|
+
.remainingAccounts([
|
|
264
|
+
{
|
|
265
|
+
pubkey: (0, rwa_token_sdk_1.getPolicyEnginePda)(args.assetMint),
|
|
266
|
+
isWritable: true,
|
|
267
|
+
isSigner: false,
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
pubkey: rwa_token_sdk_1.identityRegistryProgramId,
|
|
271
|
+
isWritable: false,
|
|
272
|
+
isSigner: false,
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
pubkey: rwa_token_sdk_1.policyEngineProgramId,
|
|
276
|
+
isWritable: false,
|
|
277
|
+
isSigner: false,
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
pubkey: (0, rwa_token_sdk_1.getIdentityRegistryPda)(args.assetMint),
|
|
281
|
+
isWritable: false,
|
|
282
|
+
isSigner: false,
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
pubkey: (0, rwa_token_sdk_1.getTrackerAccountPda)(args.assetMint, investor.toString()),
|
|
286
|
+
isWritable: true,
|
|
287
|
+
isSigner: false,
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
pubkey: (0, rwa_token_sdk_1.getExtraMetasListPda)(args.assetMint),
|
|
291
|
+
isWritable: false,
|
|
292
|
+
isSigner: false,
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
pubkey: (0, rwa_token_sdk_1.getWalletIdentityAccountPda)(args.assetMint, investor.toString()),
|
|
296
|
+
isWritable: false,
|
|
297
|
+
isSigner: false,
|
|
298
|
+
},
|
|
299
|
+
])
|
|
300
|
+
.instruction()];
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
};
|
|
304
|
+
/**
|
|
305
|
+
* Asynchronously fetches a token account.
|
|
306
|
+
* @param account - Account to load.
|
|
307
|
+
* @returns A Promise that resolves to a token account.
|
|
308
|
+
* */
|
|
309
|
+
TokenLocks.prototype.fetchTokenAccount = function (account_1) {
|
|
310
|
+
return __awaiter(this, arguments, void 0, function (account, commitment) {
|
|
311
|
+
if (commitment === void 0) { commitment = "processed"; }
|
|
312
|
+
return __generator(this, function (_a) {
|
|
313
|
+
return [2 /*return*/, (0, spl_token_1.getAccount)(this.rwaClient.provider.connection, account, commitment, spl_token_1.TOKEN_2022_PROGRAM_ID)];
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
};
|
|
317
|
+
return TokenLocks;
|
|
318
|
+
}());
|
|
319
|
+
exports.TokenLocks = TokenLocks;
|
|
320
|
+
//# sourceMappingURL=TokenLocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenLocks.js","sourceRoot":"","sources":["../../src/client/TokenLocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./RwaRbacClient"), exports);
|
|
18
|
+
__exportStar(require("./AssetController"), exports);
|
|
19
|
+
__exportStar(require("./IdentityRegistry"), exports);
|
|
20
|
+
__exportStar(require("./IdentityMetadataRegistry"), exports);
|
|
21
|
+
__exportStar(require("./PolicyEngine"), exports);
|
|
22
|
+
__exportStar(require("./TokenLocks"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,oDAAkC;AAClC,qDAAmC;AACnC,6DAA2C;AAC3C,iDAA+B;AAC/B,+CAA6B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,eAAO,MAAM,WAAW,WAEvB,CAAC;AAEF,eAAO,MAAM,YAAY,WAExB,CAAC;AAEF,eAAO,MAAM,UAAU,WAEtB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TL_PROGRAM = exports.RBAC_PROGRAM = exports.IMR_PROGRAM = void 0;
|
|
4
|
+
var web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
exports.IMR_PROGRAM = new web3_js_1.PublicKey("D2V7wTBbNCKgYwirgRUnSmc2QyKnHSVmRotWJ4rz8Jp9");
|
|
6
|
+
exports.RBAC_PROGRAM = new web3_js_1.PublicKey("3g6fUgMsJQhjPUYxNjEU5PyzGf8DerbDx8p5Qh4yMnRR");
|
|
7
|
+
exports.TL_PROGRAM = new web3_js_1.PublicKey("9bNt3ZiZpDdHqAt5Q1Wq6twFe5RKmMCwA7MJyK2HgGnU");
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAE/B,QAAA,WAAW,GAAG,IAAI,mBAAS,CACtC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,YAAY,GAAG,IAAI,mBAAS,CACvC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,UAAU,GAAG,IAAI,mBAAS,CACrC,8CAA8C,CAC/C,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./pdas"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./client"), exports);
|
|
20
|
+
__exportStar(require("./constants"), exports);
|
|
21
|
+
__exportStar(require("./utils"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,0CAAwB;AACxB,2CAAyB;AACzB,8CAA4B;AAC5B,0CAAwB"}
|
package/dist/pdas.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BN } from "@coral-xyz/anchor";
|
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
|
3
|
+
export declare const deriveInvestorLocks: (investorId: string, identityRegistry: PublicKey, programId?: PublicKey) => PublicKey;
|
|
4
|
+
export declare const deriveLockedTokenAccount: (investorId: string, identityRegistry: PublicKey, programId?: PublicKey) => PublicKey;
|
|
5
|
+
export declare const deriveInvestorPda: (investorId: string, identityRegistry: PublicKey, programId?: PublicKey) => PublicKey;
|
|
6
|
+
export declare const deriveAssetAccessControllerPda: (uniqueSeed: PublicKey, programId?: PublicKey) => PublicKey;
|
|
7
|
+
export declare const deriveControllerAuthorityPda: (assetAccessController: PublicKey, programId?: PublicKey) => PublicKey;
|
|
8
|
+
export declare const deriveUserRolePda: (id: BN, assetAccessController: PublicKey, programId?: PublicKey) => PublicKey;
|
|
9
|
+
//# sourceMappingURL=pdas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdas.d.ts","sourceRoot":"","sources":["../src/pdas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,eAAO,MAAM,mBAAmB,eAClB,MAAM,oBACA,SAAS,qCAW5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,eACvB,MAAM,oBACA,SAAS,qCAW5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,eAChB,MAAM,oBACA,SAAS,qCAW5B,CAAC;AAEF,eAAO,MAAM,8BAA8B,eAC7B,SAAS,qCAOtB,CAAC;AAEF,eAAO,MAAM,4BAA4B,0BAChB,SAAS,qCAOjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,OACxB,EAAE,yBACiB,SAAS,qCAWjC,CAAC"}
|
package/dist/pdas.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deriveUserRolePda = exports.deriveControllerAuthorityPda = exports.deriveAssetAccessControllerPda = exports.deriveInvestorPda = exports.deriveLockedTokenAccount = exports.deriveInvestorLocks = void 0;
|
|
4
|
+
var web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
var constants_1 = require("./constants");
|
|
6
|
+
var deriveInvestorLocks = function (investorId, identityRegistry, programId) {
|
|
7
|
+
if (programId === void 0) { programId = constants_1.TL_PROGRAM; }
|
|
8
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
9
|
+
Buffer.from(investorId),
|
|
10
|
+
identityRegistry.toBuffer(),
|
|
11
|
+
Buffer.from("InvestorLocks"),
|
|
12
|
+
], programId)[0];
|
|
13
|
+
};
|
|
14
|
+
exports.deriveInvestorLocks = deriveInvestorLocks;
|
|
15
|
+
var deriveLockedTokenAccount = function (investorId, identityRegistry, programId) {
|
|
16
|
+
if (programId === void 0) { programId = constants_1.TL_PROGRAM; }
|
|
17
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
18
|
+
Buffer.from(investorId),
|
|
19
|
+
identityRegistry.toBuffer(),
|
|
20
|
+
Buffer.from("LockedTokenAccount"),
|
|
21
|
+
], programId)[0];
|
|
22
|
+
};
|
|
23
|
+
exports.deriveLockedTokenAccount = deriveLockedTokenAccount;
|
|
24
|
+
var deriveInvestorPda = function (investorId, identityRegistry, programId) {
|
|
25
|
+
if (programId === void 0) { programId = constants_1.IMR_PROGRAM; }
|
|
26
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
27
|
+
Buffer.from(investorId),
|
|
28
|
+
identityRegistry.toBuffer(),
|
|
29
|
+
Buffer.from("Investor"),
|
|
30
|
+
], programId)[0];
|
|
31
|
+
};
|
|
32
|
+
exports.deriveInvestorPda = deriveInvestorPda;
|
|
33
|
+
var deriveAssetAccessControllerPda = function (uniqueSeed, programId) {
|
|
34
|
+
if (programId === void 0) { programId = constants_1.RBAC_PROGRAM; }
|
|
35
|
+
return web3_js_1.PublicKey.findProgramAddressSync([uniqueSeed.toBuffer(), Buffer.from("AssetAccessController")], programId)[0];
|
|
36
|
+
};
|
|
37
|
+
exports.deriveAssetAccessControllerPda = deriveAssetAccessControllerPda;
|
|
38
|
+
var deriveControllerAuthorityPda = function (assetAccessController, programId) {
|
|
39
|
+
if (programId === void 0) { programId = constants_1.RBAC_PROGRAM; }
|
|
40
|
+
return web3_js_1.PublicKey.findProgramAddressSync([assetAccessController.toBuffer()], programId)[0];
|
|
41
|
+
};
|
|
42
|
+
exports.deriveControllerAuthorityPda = deriveControllerAuthorityPda;
|
|
43
|
+
var deriveUserRolePda = function (id, assetAccessController, programId) {
|
|
44
|
+
if (programId === void 0) { programId = constants_1.RBAC_PROGRAM; }
|
|
45
|
+
return web3_js_1.PublicKey.findProgramAddressSync([
|
|
46
|
+
id.toArrayLike(Buffer, "le", 8),
|
|
47
|
+
assetAccessController.toBuffer(),
|
|
48
|
+
Buffer.from("UserRole"),
|
|
49
|
+
], programId)[0];
|
|
50
|
+
};
|
|
51
|
+
exports.deriveUserRolePda = deriveUserRolePda;
|
|
52
|
+
//# sourceMappingURL=pdas.js.map
|
package/dist/pdas.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pdas.js","sourceRoot":"","sources":["../src/pdas.ts"],"names":[],"mappings":";;;AACA,2CAA4C;AAC5C,yCAAoE;AAE7D,IAAM,mBAAmB,GAAG,UACjC,UAAkB,EAClB,gBAA2B,EAC3B,SAAsB;IAAtB,0BAAA,EAAA,YAAY,sBAAU;IAEtB,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACvB,gBAAgB,CAAC,QAAQ,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;KAC7B,EACD,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAbW,QAAA,mBAAmB,uBAa9B;AAEK,IAAM,wBAAwB,GAAG,UACtC,UAAkB,EAClB,gBAA2B,EAC3B,SAAsB;IAAtB,0BAAA,EAAA,YAAY,sBAAU;IAEtB,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACvB,gBAAgB,CAAC,QAAQ,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC;KAClC,EACD,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAbW,QAAA,wBAAwB,4BAanC;AAEK,IAAM,iBAAiB,GAAG,UAC/B,UAAkB,EAClB,gBAA2B,EAC3B,SAAuB;IAAvB,0BAAA,EAAA,YAAY,uBAAW;IAEvB,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACvB,gBAAgB,CAAC,QAAQ,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;KACxB,EACD,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B;AAEK,IAAM,8BAA8B,GAAG,UAC5C,UAAqB,EACrB,SAAwB;IAAxB,0BAAA,EAAA,YAAY,wBAAY;IAExB,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAC7D,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AARW,QAAA,8BAA8B,kCAQzC;AAEK,IAAM,4BAA4B,GAAG,UAC1C,qBAAgC,EAChC,SAAwB;IAAxB,0BAAA,EAAA,YAAY,wBAAY;IAExB,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC,EAClC,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AARW,QAAA,4BAA4B,gCAQvC;AAEK,IAAM,iBAAiB,GAAG,UAC/B,EAAM,EACN,qBAAgC,EAChC,SAAwB;IAAxB,0BAAA,EAAA,YAAY,wBAAY;IAExB,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,qBAAqB,CAAC,QAAQ,EAAE;QAChC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;KACxB,EACD,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export declare enum AdminFlags {
|
|
2
|
+
NONE = 0,
|
|
3
|
+
CREATE_OR_DELETE_USER_ROLE = 1,
|
|
4
|
+
MODIFY_USER_ROLE = 2,
|
|
5
|
+
ASSIGN_OR_REMOVE_ANY_USER_ROLE = 4,
|
|
6
|
+
ASSIGN_OR_REMOVE_CURRENT_ROLE = 8,
|
|
7
|
+
ALL = 15
|
|
8
|
+
}
|
|
9
|
+
export declare enum MediciFlags {
|
|
10
|
+
NONE = 0,
|
|
11
|
+
UPDATE_ASSET_METADATA = 1,
|
|
12
|
+
THAW_TOKEN_ACCOUNT = 2,
|
|
13
|
+
FREEZE_TOKEN_ACCOUNT = 4,
|
|
14
|
+
ISSUE_TOKENS = 8,
|
|
15
|
+
REVOKE_TOKENS = 16,
|
|
16
|
+
CLOSE_MINT_ACCOUNT = 32,
|
|
17
|
+
UPDATE_INTEREST_BEARING_MINT_RATE = 64,
|
|
18
|
+
ATTACH_TO_POLICY_ACCOUNT = 128,
|
|
19
|
+
CREATE_POLICY_ACCOUNT = 256,
|
|
20
|
+
DETACH_FROM_POLICY_ACCOUNT = 512,
|
|
21
|
+
ADD_LEVELS = 1024,
|
|
22
|
+
ADD_LEVEL_TO_IDENTITY_ACCOUNT = 2048,
|
|
23
|
+
REGISTER_INVESTOR = 4096,
|
|
24
|
+
REMOVE_LEVELS = 8192,
|
|
25
|
+
REMOVE_INVESTOR = 16384,
|
|
26
|
+
EDIT_IDENTITY_METADATA = 32768,
|
|
27
|
+
REFRESH_LEVEL_TO_IDENTITY_ACCOUNT = 65536,
|
|
28
|
+
ATTACH_WALLET_TO_IDENTITY = 131072,
|
|
29
|
+
DETACH_WALLET_FROM_IDENTITY = 262144,
|
|
30
|
+
SEIZE_TOKENS = 524288,
|
|
31
|
+
CREATE_IDENTITY_ACCOUNT = 1048576,
|
|
32
|
+
CREATE_INVESTOR_LOCKS = 2097152,
|
|
33
|
+
CLOSE_INVESTOR_LOCKS = 4194304,
|
|
34
|
+
ADD_TOKEN_LOCK = 8388608,
|
|
35
|
+
REMOVE_TOKEN_LOCK = 16777216,
|
|
36
|
+
CHANGE_COUNTERS = 33554432,
|
|
37
|
+
CHANGE_COUNTER_LIMITS = 67108864,
|
|
38
|
+
CHANGE_COUNTRY = 134217728,
|
|
39
|
+
CHANGE_MAPPING = 268435456,
|
|
40
|
+
CHANGE_ISSUANCE_POLICIES = 536870912,
|
|
41
|
+
ALL = 1073741823
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=flags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/types/flags.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,IAAI,IAAI;IACR,0BAA0B,IAAS;IACnC,gBAAgB,IAAS;IACzB,8BAA8B,IAAS;IACvC,6BAA6B,IAAS;IACtC,GAAG,KAAe;CACnB;AAED,oBAAY,WAAW;IACrB,IAAI,IAAI;IACR,qBAAqB,IAAS;IAC9B,kBAAkB,IAAS;IAC3B,oBAAoB,IAAS;IAC7B,YAAY,IAAS;IACrB,aAAa,KAAS;IACtB,kBAAkB,KAAS;IAC3B,iCAAiC,KAAS;IAC1C,wBAAwB,MAAS;IACjC,qBAAqB,MAAS;IAC9B,0BAA0B,MAAS;IACnC,UAAU,OAAU;IACpB,6BAA6B,OAAU;IACvC,iBAAiB,OAAU;IAC3B,aAAa,OAAU;IACvB,eAAe,QAAU;IACzB,sBAAsB,QAAU;IAChC,iCAAiC,QAAU;IAC3C,yBAAyB,SAAU;IACnC,2BAA2B,SAAU;IACrC,YAAY,SAAU;IACtB,uBAAuB,UAAU;IACjC,qBAAqB,UAAU;IAC/B,oBAAoB,UAAU;IAC9B,cAAc,UAAU;IACxB,iBAAiB,WAAU;IAC3B,eAAe,WAAU;IACzB,qBAAqB,WAAU;IAC/B,cAAc,YAAU;IACxB,cAAc,YAAU;IACxB,wBAAwB,YAAU;IAClC,GAAG,aAAgB;CACpB"}
|