@mantle-rwa/sdk 0.1.0
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/cjs/client.js +198 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/constants/index.js +211 -0
- package/dist/cjs/constants/index.js.map +1 -0
- package/dist/cjs/errors/index.js +218 -0
- package/dist/cjs/errors/index.js.map +1 -0
- package/dist/cjs/index.js +51 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/modules/compliance.js +202 -0
- package/dist/cjs/modules/compliance.js.map +1 -0
- package/dist/cjs/modules/index.js +18 -0
- package/dist/cjs/modules/index.js.map +1 -0
- package/dist/cjs/modules/kyc.js +278 -0
- package/dist/cjs/modules/kyc.js.map +1 -0
- package/dist/cjs/modules/token.js +365 -0
- package/dist/cjs/modules/token.js.map +1 -0
- package/dist/cjs/modules/yield.js +406 -0
- package/dist/cjs/modules/yield.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/types/index.js +20 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/utils/index.js +206 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/esm/client.js +194 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/constants/index.js +208 -0
- package/dist/esm/constants/index.js.map +1 -0
- package/dist/esm/errors/index.js +209 -0
- package/dist/esm/errors/index.js.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/modules/compliance.js +198 -0
- package/dist/esm/modules/compliance.js.map +1 -0
- package/dist/esm/modules/index.js +8 -0
- package/dist/esm/modules/index.js.map +1 -0
- package/dist/esm/modules/kyc.js +273 -0
- package/dist/esm/modules/kyc.js.map +1 -0
- package/dist/esm/modules/token.js +360 -0
- package/dist/esm/modules/token.js.map +1 -0
- package/dist/esm/modules/yield.js +401 -0
- package/dist/esm/modules/yield.js.map +1 -0
- package/dist/esm/types/index.js +17 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/utils/index.js +188 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/types/client.d.ts +93 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/constants/index.d.ts +83 -0
- package/dist/types/constants/index.d.ts.map +1 -0
- package/dist/types/errors/index.d.ts +83 -0
- package/dist/types/errors/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/modules/compliance.d.ts +29 -0
- package/dist/types/modules/compliance.d.ts.map +1 -0
- package/dist/types/modules/index.d.ts +8 -0
- package/dist/types/modules/index.d.ts.map +1 -0
- package/dist/types/modules/kyc.d.ts +131 -0
- package/dist/types/modules/kyc.d.ts.map +1 -0
- package/dist/types/modules/token.d.ts +145 -0
- package/dist/types/modules/token.d.ts.map +1 -0
- package/dist/types/modules/yield.d.ts +143 -0
- package/dist/types/modules/yield.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +254 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +80 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/package.json +52 -0
- package/src/client.ts +258 -0
- package/src/constants/index.ts +226 -0
- package/src/errors/index.ts +291 -0
- package/src/index.ts +42 -0
- package/src/modules/compliance.ts +252 -0
- package/src/modules/index.ts +8 -0
- package/src/modules/kyc.ts +446 -0
- package/src/modules/token.ts +488 -0
- package/src/modules/yield.ts +566 -0
- package/src/types/index.ts +326 -0
- package/src/utils/index.ts +240 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @mantle-rwa/sdk
|
|
4
|
+
* TypeScript SDK for Real-World Asset tokenization on Mantle Network
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
18
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.calculatePercentage = exports.isExpired = exports.dateToTimestamp = exports.timestampToDate = exports.hashIdentityData = exports.formatAmount = exports.parseAmount = exports.normalizeAddress = exports.isValidAddress = exports.ComplianceModule = exports.YieldDistributorInstance = exports.YieldModule = exports.KYCRegistryInstance = exports.KYCModule = exports.TokenInstance = exports.TokenModule = exports.RWAClient = void 0;
|
|
22
|
+
// Core client
|
|
23
|
+
var client_1 = require("./client");
|
|
24
|
+
Object.defineProperty(exports, "RWAClient", { enumerable: true, get: function () { return client_1.RWAClient; } });
|
|
25
|
+
// Modules
|
|
26
|
+
var modules_1 = require("./modules");
|
|
27
|
+
Object.defineProperty(exports, "TokenModule", { enumerable: true, get: function () { return modules_1.TokenModule; } });
|
|
28
|
+
Object.defineProperty(exports, "TokenInstance", { enumerable: true, get: function () { return modules_1.TokenInstance; } });
|
|
29
|
+
Object.defineProperty(exports, "KYCModule", { enumerable: true, get: function () { return modules_1.KYCModule; } });
|
|
30
|
+
Object.defineProperty(exports, "KYCRegistryInstance", { enumerable: true, get: function () { return modules_1.KYCRegistryInstance; } });
|
|
31
|
+
Object.defineProperty(exports, "YieldModule", { enumerable: true, get: function () { return modules_1.YieldModule; } });
|
|
32
|
+
Object.defineProperty(exports, "YieldDistributorInstance", { enumerable: true, get: function () { return modules_1.YieldDistributorInstance; } });
|
|
33
|
+
Object.defineProperty(exports, "ComplianceModule", { enumerable: true, get: function () { return modules_1.ComplianceModule; } });
|
|
34
|
+
// Types
|
|
35
|
+
__exportStar(require("./types"), exports);
|
|
36
|
+
// Errors
|
|
37
|
+
__exportStar(require("./errors"), exports);
|
|
38
|
+
// Constants
|
|
39
|
+
__exportStar(require("./constants"), exports);
|
|
40
|
+
// Utilities
|
|
41
|
+
var utils_1 = require("./utils");
|
|
42
|
+
Object.defineProperty(exports, "isValidAddress", { enumerable: true, get: function () { return utils_1.isValidAddress; } });
|
|
43
|
+
Object.defineProperty(exports, "normalizeAddress", { enumerable: true, get: function () { return utils_1.normalizeAddress; } });
|
|
44
|
+
Object.defineProperty(exports, "parseAmount", { enumerable: true, get: function () { return utils_1.parseAmount; } });
|
|
45
|
+
Object.defineProperty(exports, "formatAmount", { enumerable: true, get: function () { return utils_1.formatAmount; } });
|
|
46
|
+
Object.defineProperty(exports, "hashIdentityData", { enumerable: true, get: function () { return utils_1.hashIdentityData; } });
|
|
47
|
+
Object.defineProperty(exports, "timestampToDate", { enumerable: true, get: function () { return utils_1.timestampToDate; } });
|
|
48
|
+
Object.defineProperty(exports, "dateToTimestamp", { enumerable: true, get: function () { return utils_1.dateToTimestamp; } });
|
|
49
|
+
Object.defineProperty(exports, "isExpired", { enumerable: true, get: function () { return utils_1.isExpired; } });
|
|
50
|
+
Object.defineProperty(exports, "calculatePercentage", { enumerable: true, get: function () { return utils_1.calculatePercentage; } });
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,cAAc;AACd,mCAAqC;AAA5B,mGAAA,SAAS,OAAA;AAGlB,UAAU;AACV,qCAQmB;AAPf,sGAAA,WAAW,OAAA;AACX,wGAAA,aAAa,OAAA;AACb,oGAAA,SAAS,OAAA;AACT,8GAAA,mBAAmB,OAAA;AACnB,sGAAA,WAAW,OAAA;AACX,mHAAA,wBAAwB,OAAA;AACxB,2GAAA,gBAAgB,OAAA;AAIpB,QAAQ;AACR,0CAAwB;AAExB,SAAS;AACT,2CAAyB;AAEzB,YAAY;AACZ,8CAA4B;AAE5B,YAAY;AACZ,iCAUiB;AATb,uGAAA,cAAc,OAAA;AACd,yGAAA,gBAAgB,OAAA;AAChB,oGAAA,WAAW,OAAA;AACX,qGAAA,YAAY,OAAA;AACZ,yGAAA,gBAAgB,OAAA;AAChB,wGAAA,eAAe,OAAA;AACf,wGAAA,eAAe,OAAA;AACf,kGAAA,SAAS,OAAA;AACT,4GAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ComplianceModule - Handles transfer eligibility and compliance reporting
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ComplianceModule = void 0;
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
9
|
+
const errors_1 = require("../errors");
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
/**
|
|
12
|
+
* Module for compliance operations
|
|
13
|
+
*/
|
|
14
|
+
class ComplianceModule {
|
|
15
|
+
_provider;
|
|
16
|
+
constructor(provider, _signer) {
|
|
17
|
+
this._provider = provider;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Check if a transfer is eligible
|
|
21
|
+
*/
|
|
22
|
+
async checkTransferEligibility(tokenAddress, from, to, amount) {
|
|
23
|
+
if (!(0, utils_1.isValidAddress)(tokenAddress)) {
|
|
24
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.INVALID_ADDRESS, `Invalid token address: ${tokenAddress}`);
|
|
25
|
+
}
|
|
26
|
+
if (!(0, utils_1.isValidAddress)(from)) {
|
|
27
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.INVALID_ADDRESS, `Invalid from address: ${from}`);
|
|
28
|
+
}
|
|
29
|
+
if (!(0, utils_1.isValidAddress)(to)) {
|
|
30
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.INVALID_ADDRESS, `Invalid to address: ${to}`);
|
|
31
|
+
}
|
|
32
|
+
const token = new ethers_1.ethers.Contract(tokenAddress, constants_1.RWA_TOKEN_ABI, this._provider);
|
|
33
|
+
const checks = [];
|
|
34
|
+
// Check 1: Token not paused
|
|
35
|
+
try {
|
|
36
|
+
const paused = await token.paused();
|
|
37
|
+
checks.push({
|
|
38
|
+
name: 'Token Active',
|
|
39
|
+
passed: !paused,
|
|
40
|
+
details: paused ? 'Token transfers are currently paused' : 'Token is active',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
checks.push({
|
|
45
|
+
name: 'Token Active',
|
|
46
|
+
passed: false,
|
|
47
|
+
details: 'Unable to check pause status',
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// Check 2: Sender has sufficient balance
|
|
51
|
+
try {
|
|
52
|
+
const balance = await token.balanceOf((0, utils_1.normalizeAddress)(from));
|
|
53
|
+
const amountWei = (0, utils_1.parseAmount)(amount);
|
|
54
|
+
const hasBalance = balance >= amountWei;
|
|
55
|
+
checks.push({
|
|
56
|
+
name: 'Sufficient Balance',
|
|
57
|
+
passed: hasBalance,
|
|
58
|
+
details: hasBalance
|
|
59
|
+
? `Balance: ${balance.toString()}`
|
|
60
|
+
: `Insufficient balance. Has: ${balance.toString()}, Needs: ${amountWei.toString()}`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
checks.push({
|
|
65
|
+
name: 'Sufficient Balance',
|
|
66
|
+
passed: false,
|
|
67
|
+
details: 'Unable to check balance',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
// Check 3: KYC verification for sender and recipient
|
|
71
|
+
try {
|
|
72
|
+
const kycRegistryAddress = await token.kycRegistry();
|
|
73
|
+
if (kycRegistryAddress !== ethers_1.ethers.ZeroAddress) {
|
|
74
|
+
const kycRegistry = new ethers_1.ethers.Contract(kycRegistryAddress, constants_1.KYC_REGISTRY_ABI, this._provider);
|
|
75
|
+
// Check sender (skip for minting from zero address)
|
|
76
|
+
if (from !== ethers_1.ethers.ZeroAddress) {
|
|
77
|
+
const senderVerified = await kycRegistry.isVerified((0, utils_1.normalizeAddress)(from));
|
|
78
|
+
checks.push({
|
|
79
|
+
name: 'Sender KYC Verified',
|
|
80
|
+
passed: senderVerified,
|
|
81
|
+
details: senderVerified
|
|
82
|
+
? 'Sender is KYC verified'
|
|
83
|
+
: 'Sender is not KYC verified or verification has expired',
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
// Check recipient
|
|
87
|
+
const recipientVerified = await kycRegistry.isVerified((0, utils_1.normalizeAddress)(to));
|
|
88
|
+
checks.push({
|
|
89
|
+
name: 'Recipient KYC Verified',
|
|
90
|
+
passed: recipientVerified,
|
|
91
|
+
details: recipientVerified
|
|
92
|
+
? 'Recipient is KYC verified'
|
|
93
|
+
: 'Recipient is not KYC verified or verification has expired',
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
checks.push({
|
|
99
|
+
name: 'KYC Verification',
|
|
100
|
+
passed: false,
|
|
101
|
+
details: 'Unable to check KYC status',
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// Check 4: Compliance modules
|
|
105
|
+
try {
|
|
106
|
+
const [allowed, reason] = await token.isTransferAllowed((0, utils_1.normalizeAddress)(from), (0, utils_1.normalizeAddress)(to), (0, utils_1.parseAmount)(amount));
|
|
107
|
+
checks.push({
|
|
108
|
+
name: 'Compliance Modules',
|
|
109
|
+
passed: allowed,
|
|
110
|
+
details: allowed ? 'All compliance checks passed' : reason,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
checks.push({
|
|
115
|
+
name: 'Compliance Modules',
|
|
116
|
+
passed: false,
|
|
117
|
+
details: 'Unable to check compliance modules',
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
// Determine overall eligibility
|
|
121
|
+
const allPassed = checks.every((c) => c.passed);
|
|
122
|
+
const failedCheck = checks.find((c) => !c.passed);
|
|
123
|
+
return {
|
|
124
|
+
eligible: allPassed,
|
|
125
|
+
reason: allPassed ? undefined : failedCheck?.details,
|
|
126
|
+
checks,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Generate a compliance report for a token
|
|
131
|
+
*/
|
|
132
|
+
async generateComplianceReport(tokenAddress) {
|
|
133
|
+
if (!(0, utils_1.isValidAddress)(tokenAddress)) {
|
|
134
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.INVALID_ADDRESS, `Invalid token address: ${tokenAddress}`);
|
|
135
|
+
}
|
|
136
|
+
const token = new ethers_1.ethers.Contract(tokenAddress, constants_1.RWA_TOKEN_ABI, this._provider);
|
|
137
|
+
// Get KYC registry - verify it exists
|
|
138
|
+
try {
|
|
139
|
+
await token.kycRegistry();
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.INVALID_CONFIGURATION, 'Unable to get KYC registry from token contract');
|
|
143
|
+
}
|
|
144
|
+
// Note: In a production implementation, this would require an indexer
|
|
145
|
+
// to track all token holders and their KYC status. This is a simplified
|
|
146
|
+
// version that returns placeholder data.
|
|
147
|
+
const report = {
|
|
148
|
+
generatedAt: new Date(),
|
|
149
|
+
tokenAddress: (0, utils_1.normalizeAddress)(tokenAddress),
|
|
150
|
+
totalHolders: 0, // Would need indexer
|
|
151
|
+
verifiedHolders: 0, // Would need indexer
|
|
152
|
+
accreditedHolders: 0, // Would need indexer
|
|
153
|
+
transfersBlocked: 0, // Would need event indexing
|
|
154
|
+
complianceScore: 100, // Placeholder
|
|
155
|
+
};
|
|
156
|
+
return report;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Export a compliance report in various formats
|
|
160
|
+
*/
|
|
161
|
+
async exportReport(report, format) {
|
|
162
|
+
switch (format) {
|
|
163
|
+
case 'json':
|
|
164
|
+
return Buffer.from(JSON.stringify(report, null, 2));
|
|
165
|
+
case 'csv': {
|
|
166
|
+
const headers = Object.keys(report).join(',');
|
|
167
|
+
const values = Object.values(report)
|
|
168
|
+
.map((v) => (v instanceof Date ? v.toISOString() : String(v)))
|
|
169
|
+
.join(',');
|
|
170
|
+
return Buffer.from(`${headers}\n${values}`);
|
|
171
|
+
}
|
|
172
|
+
case 'pdf':
|
|
173
|
+
// PDF generation would require a library like pdfkit
|
|
174
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.INVALID_CONFIGURATION, 'PDF export requires additional dependencies. Use JSON or CSV format.');
|
|
175
|
+
default:
|
|
176
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.INVALID_CONFIGURATION, `Unsupported export format: ${format}`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Prepare filing data for regulatory submissions
|
|
181
|
+
*/
|
|
182
|
+
async prepareFilingData(tokenAddress, filingType, startDate, endDate) {
|
|
183
|
+
const report = await this.generateComplianceReport(tokenAddress);
|
|
184
|
+
return {
|
|
185
|
+
filingType,
|
|
186
|
+
tokenAddress: (0, utils_1.normalizeAddress)(tokenAddress),
|
|
187
|
+
reportingPeriod: {
|
|
188
|
+
start: startDate || new Date(Date.now() - 30 * 24 * 60 * 60 * 1000), // Default: 30 days ago
|
|
189
|
+
end: endDate || new Date(),
|
|
190
|
+
},
|
|
191
|
+
data: {
|
|
192
|
+
totalHolders: report.totalHolders,
|
|
193
|
+
verifiedHolders: report.verifiedHolders,
|
|
194
|
+
accreditedHolders: report.accreditedHolders,
|
|
195
|
+
complianceScore: report.complianceScore,
|
|
196
|
+
generatedAt: report.generatedAt.toISOString(),
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
exports.ComplianceModule = ComplianceModule;
|
|
202
|
+
//# sourceMappingURL=compliance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../src/modules/compliance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* SDK Modules
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ComplianceModule = exports.YieldDistributorInstance = exports.YieldModule = exports.KYCRegistryInstance = exports.KYCModule = exports.TokenInstance = exports.TokenModule = void 0;
|
|
7
|
+
var token_1 = require("./token");
|
|
8
|
+
Object.defineProperty(exports, "TokenModule", { enumerable: true, get: function () { return token_1.TokenModule; } });
|
|
9
|
+
Object.defineProperty(exports, "TokenInstance", { enumerable: true, get: function () { return token_1.TokenInstance; } });
|
|
10
|
+
var kyc_1 = require("./kyc");
|
|
11
|
+
Object.defineProperty(exports, "KYCModule", { enumerable: true, get: function () { return kyc_1.KYCModule; } });
|
|
12
|
+
Object.defineProperty(exports, "KYCRegistryInstance", { enumerable: true, get: function () { return kyc_1.KYCRegistryInstance; } });
|
|
13
|
+
var yield_1 = require("./yield");
|
|
14
|
+
Object.defineProperty(exports, "YieldModule", { enumerable: true, get: function () { return yield_1.YieldModule; } });
|
|
15
|
+
Object.defineProperty(exports, "YieldDistributorInstance", { enumerable: true, get: function () { return yield_1.YieldDistributorInstance; } });
|
|
16
|
+
var compliance_1 = require("./compliance");
|
|
17
|
+
Object.defineProperty(exports, "ComplianceModule", { enumerable: true, get: function () { return compliance_1.ComplianceModule; } });
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iCAAqD;AAA5C,oGAAA,WAAW,OAAA;AAAE,sGAAA,aAAa,OAAA;AACnC,6BAAyE;AAAhE,gGAAA,SAAS,OAAA;AAAE,0GAAA,mBAAmB,OAAA;AACvC,iCAAgE;AAAvD,oGAAA,WAAW,OAAA;AAAE,iHAAA,wBAAwB,OAAA;AAC9C,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* KYCModule - Handles KYC registry interactions and provider integrations
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.KYCModule = exports.KYCRegistryInstance = void 0;
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
8
|
+
const constants_1 = require("../constants");
|
|
9
|
+
const errors_1 = require("../errors");
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
/**
|
|
12
|
+
* Instance of a connected KYC registry
|
|
13
|
+
*/
|
|
14
|
+
class KYCRegistryInstance {
|
|
15
|
+
_contract;
|
|
16
|
+
_retries;
|
|
17
|
+
_retryDelay;
|
|
18
|
+
/** Registry contract address */
|
|
19
|
+
address;
|
|
20
|
+
constructor(address, provider, signer, retries, retryDelay) {
|
|
21
|
+
this.address = (0, utils_1.normalizeAddress)(address);
|
|
22
|
+
this._retries = retries;
|
|
23
|
+
this._retryDelay = retryDelay;
|
|
24
|
+
this._contract = new ethers_1.ethers.Contract(this.address, constants_1.KYC_REGISTRY_ABI, signer || provider);
|
|
25
|
+
}
|
|
26
|
+
/*//////////////////////////////////////////////////////////////
|
|
27
|
+
READ FUNCTIONS
|
|
28
|
+
//////////////////////////////////////////////////////////////*/
|
|
29
|
+
/**
|
|
30
|
+
* Check if an investor is verified
|
|
31
|
+
*/
|
|
32
|
+
async isVerified(investor) {
|
|
33
|
+
return this._contract.isVerified((0, utils_1.normalizeAddress)(investor));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check if an investor is accredited
|
|
37
|
+
*/
|
|
38
|
+
async isAccredited(investor) {
|
|
39
|
+
return this._contract.isAccredited((0, utils_1.normalizeAddress)(investor));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get investor information
|
|
43
|
+
*/
|
|
44
|
+
async getInvestorInfo(investor) {
|
|
45
|
+
const [verified, tier, expiry, identityHash] = await this._contract.getInvestorInfo((0, utils_1.normalizeAddress)(investor));
|
|
46
|
+
return {
|
|
47
|
+
verified,
|
|
48
|
+
tier: tier,
|
|
49
|
+
expiry: (0, utils_1.timestampToDate)(expiry),
|
|
50
|
+
identityHash,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/*//////////////////////////////////////////////////////////////
|
|
54
|
+
WRITE FUNCTIONS
|
|
55
|
+
//////////////////////////////////////////////////////////////*/
|
|
56
|
+
/**
|
|
57
|
+
* Add an investor to the registry
|
|
58
|
+
*/
|
|
59
|
+
async addInvestor(investor, tier, expiryDate, identityHash, options) {
|
|
60
|
+
const investorAddress = (0, utils_1.normalizeAddress)(investor);
|
|
61
|
+
const expiryTimestamp = (0, utils_1.dateToTimestamp)(expiryDate);
|
|
62
|
+
try {
|
|
63
|
+
const tx = await (0, utils_1.retry)(async () => {
|
|
64
|
+
const gasLimit = options?.gasLimit || await (0, utils_1.estimateGasWithBuffer)(() => this._contract.addInvestor.estimateGas(investorAddress, tier, expiryTimestamp, identityHash));
|
|
65
|
+
return this._contract.addInvestor(investorAddress, tier, expiryTimestamp, identityHash, { gasLimit });
|
|
66
|
+
}, { retries: options?.retries ?? this._retries, delay: options?.retryDelay ?? this._retryDelay });
|
|
67
|
+
const receipt = await tx.wait();
|
|
68
|
+
const events = (0, utils_1.parseEvents)(receipt, this._contract.interface);
|
|
69
|
+
return (0, utils_1.createTransactionResult)(receipt, events);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw (0, errors_1.parseContractError)(error, this.address, 'addInvestor');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Update an investor's information
|
|
77
|
+
*/
|
|
78
|
+
async updateInvestor(investor, tier, expiryDate, options) {
|
|
79
|
+
const investorAddress = (0, utils_1.normalizeAddress)(investor);
|
|
80
|
+
const expiryTimestamp = (0, utils_1.dateToTimestamp)(expiryDate);
|
|
81
|
+
try {
|
|
82
|
+
const tx = await (0, utils_1.retry)(async () => {
|
|
83
|
+
const gasLimit = options?.gasLimit || await (0, utils_1.estimateGasWithBuffer)(() => this._contract.updateInvestor.estimateGas(investorAddress, tier, expiryTimestamp));
|
|
84
|
+
return this._contract.updateInvestor(investorAddress, tier, expiryTimestamp, { gasLimit });
|
|
85
|
+
}, { retries: options?.retries ?? this._retries, delay: options?.retryDelay ?? this._retryDelay });
|
|
86
|
+
const receipt = await tx.wait();
|
|
87
|
+
const events = (0, utils_1.parseEvents)(receipt, this._contract.interface);
|
|
88
|
+
return (0, utils_1.createTransactionResult)(receipt, events);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
throw (0, errors_1.parseContractError)(error, this.address, 'updateInvestor');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Remove an investor from the registry
|
|
96
|
+
*/
|
|
97
|
+
async removeInvestor(investor, options) {
|
|
98
|
+
const investorAddress = (0, utils_1.normalizeAddress)(investor);
|
|
99
|
+
try {
|
|
100
|
+
const tx = await (0, utils_1.retry)(async () => {
|
|
101
|
+
const gasLimit = options?.gasLimit || await (0, utils_1.estimateGasWithBuffer)(() => this._contract.removeInvestor.estimateGas(investorAddress));
|
|
102
|
+
return this._contract.removeInvestor(investorAddress, { gasLimit });
|
|
103
|
+
}, { retries: options?.retries ?? this._retries, delay: options?.retryDelay ?? this._retryDelay });
|
|
104
|
+
const receipt = await tx.wait();
|
|
105
|
+
const events = (0, utils_1.parseEvents)(receipt, this._contract.interface);
|
|
106
|
+
return (0, utils_1.createTransactionResult)(receipt, events);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
throw (0, errors_1.parseContractError)(error, this.address, 'removeInvestor');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Batch add investors
|
|
114
|
+
*/
|
|
115
|
+
async batchAddInvestors(investors, options) {
|
|
116
|
+
const addresses = investors.map((i) => (0, utils_1.normalizeAddress)(i.address));
|
|
117
|
+
const tiers = investors.map((i) => i.tier);
|
|
118
|
+
const expiries = investors.map((i) => (0, utils_1.dateToTimestamp)(i.expiryDate));
|
|
119
|
+
const hashes = investors.map((i) => i.identityHash);
|
|
120
|
+
try {
|
|
121
|
+
const tx = await (0, utils_1.retry)(async () => {
|
|
122
|
+
const gasLimit = options?.gasLimit || await (0, utils_1.estimateGasWithBuffer)(() => this._contract.batchAddInvestors.estimateGas(addresses, tiers, expiries, hashes));
|
|
123
|
+
return this._contract.batchAddInvestors(addresses, tiers, expiries, hashes, { gasLimit });
|
|
124
|
+
}, { retries: options?.retries ?? this._retries, delay: options?.retryDelay ?? this._retryDelay });
|
|
125
|
+
const receipt = await tx.wait();
|
|
126
|
+
const events = (0, utils_1.parseEvents)(receipt, this._contract.interface);
|
|
127
|
+
return (0, utils_1.createTransactionResult)(receipt, events);
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
throw (0, errors_1.parseContractError)(error, this.address, 'batchAddInvestors');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/*//////////////////////////////////////////////////////////////
|
|
134
|
+
EVENT LISTENERS
|
|
135
|
+
//////////////////////////////////////////////////////////////*/
|
|
136
|
+
/**
|
|
137
|
+
* Listen for InvestorVerified events
|
|
138
|
+
*/
|
|
139
|
+
onInvestorVerified(callback) {
|
|
140
|
+
const listener = (investor, tier, expiry) => {
|
|
141
|
+
callback(investor, tier, expiry);
|
|
142
|
+
};
|
|
143
|
+
this._contract.on('InvestorVerified', listener);
|
|
144
|
+
return () => this._contract.off('InvestorVerified', listener);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Listen for InvestorRemoved events
|
|
148
|
+
*/
|
|
149
|
+
onInvestorRemoved(callback) {
|
|
150
|
+
const listener = (investor) => callback(investor);
|
|
151
|
+
this._contract.on('InvestorRemoved', listener);
|
|
152
|
+
return () => this._contract.off('InvestorRemoved', listener);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Listen for InvestorUpdated events
|
|
156
|
+
*/
|
|
157
|
+
onInvestorUpdated(callback) {
|
|
158
|
+
const listener = (investor, newTier, newExpiry) => {
|
|
159
|
+
callback(investor, newTier, newExpiry);
|
|
160
|
+
};
|
|
161
|
+
this._contract.on('InvestorUpdated', listener);
|
|
162
|
+
return () => this._contract.off('InvestorUpdated', listener);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.KYCRegistryInstance = KYCRegistryInstance;
|
|
166
|
+
/**
|
|
167
|
+
* Module for KYC operations
|
|
168
|
+
*/
|
|
169
|
+
class KYCModule {
|
|
170
|
+
_provider;
|
|
171
|
+
_signer;
|
|
172
|
+
_retries;
|
|
173
|
+
_retryDelay;
|
|
174
|
+
_kycProvider = null;
|
|
175
|
+
constructor(provider, signer, retries, retryDelay) {
|
|
176
|
+
this._provider = provider;
|
|
177
|
+
this._signer = signer;
|
|
178
|
+
this._retries = retries;
|
|
179
|
+
this._retryDelay = retryDelay;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Connect to an existing KYC registry
|
|
183
|
+
*/
|
|
184
|
+
connect(address) {
|
|
185
|
+
if (!(0, utils_1.isValidAddress)(address)) {
|
|
186
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.INVALID_ADDRESS, `Invalid registry address: ${address}`);
|
|
187
|
+
}
|
|
188
|
+
return new KYCRegistryInstance(address, this._provider, this._signer, this._retries, this._retryDelay);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Set the KYC provider
|
|
192
|
+
*/
|
|
193
|
+
setProvider(provider) {
|
|
194
|
+
if (typeof provider === 'string') {
|
|
195
|
+
// Create stub provider for built-in providers
|
|
196
|
+
this._kycProvider = this._createBuiltInProvider(provider);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
this._kycProvider = provider;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get the current KYC provider
|
|
204
|
+
*/
|
|
205
|
+
get provider() {
|
|
206
|
+
return this._kycProvider;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Initiate verification for an investor
|
|
210
|
+
*/
|
|
211
|
+
async verifyInvestor(investorAddress, options) {
|
|
212
|
+
if (!this._kycProvider) {
|
|
213
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.PROVIDER_NOT_CONFIGURED, 'KYC provider not configured. Call setProvider() first.');
|
|
214
|
+
}
|
|
215
|
+
return this._kycProvider.initiateVerification(investorAddress, options);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Check accreditation status
|
|
219
|
+
*/
|
|
220
|
+
async checkAccreditation(registryAddress, investorAddress) {
|
|
221
|
+
const registry = this.connect(registryAddress);
|
|
222
|
+
const info = await registry.getInvestorInfo(investorAddress);
|
|
223
|
+
return info.tier;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Update registry with verification result
|
|
227
|
+
*/
|
|
228
|
+
async updateRegistry(registryAddress, investorAddress, result) {
|
|
229
|
+
const registry = this.connect(registryAddress);
|
|
230
|
+
return registry.addInvestor(investorAddress, result.tier, result.expiryDate, result.identityHash);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Batch update registry with multiple verification results
|
|
234
|
+
*/
|
|
235
|
+
async batchUpdateRegistry(registryAddress, results) {
|
|
236
|
+
const registry = this.connect(registryAddress);
|
|
237
|
+
const investors = results.map((r) => ({
|
|
238
|
+
address: r.address,
|
|
239
|
+
tier: r.result.tier,
|
|
240
|
+
expiryDate: r.result.expiryDate,
|
|
241
|
+
identityHash: r.result.identityHash,
|
|
242
|
+
}));
|
|
243
|
+
return registry.batchAddInvestors(investors);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Generate identity hash from data
|
|
247
|
+
*/
|
|
248
|
+
generateIdentityHash(data) {
|
|
249
|
+
return (0, utils_1.hashIdentityData)(data);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Create a built-in provider stub
|
|
253
|
+
*/
|
|
254
|
+
_createBuiltInProvider(name) {
|
|
255
|
+
return {
|
|
256
|
+
name,
|
|
257
|
+
initiateVerification: async (investorAddress) => {
|
|
258
|
+
// Stub implementation - in production, this would call the actual provider API
|
|
259
|
+
return {
|
|
260
|
+
sessionId: `${name}-${Date.now()}-${investorAddress.slice(2, 10)}`,
|
|
261
|
+
provider: name,
|
|
262
|
+
status: 'pending',
|
|
263
|
+
redirectUrl: `https://${name}.com/verify?session=${Date.now()}`,
|
|
264
|
+
};
|
|
265
|
+
},
|
|
266
|
+
checkStatus: async () => {
|
|
267
|
+
// Stub implementation
|
|
268
|
+
return 'pending';
|
|
269
|
+
},
|
|
270
|
+
getVerificationResult: async () => {
|
|
271
|
+
// Stub implementation
|
|
272
|
+
throw new errors_1.RWAError(errors_1.ErrorCode.PROVIDER_NOT_CONFIGURED, `${name} provider integration requires API credentials. Configure the provider with your API keys.`);
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
exports.KYCModule = KYCModule;
|
|
278
|
+
//# sourceMappingURL=kyc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kyc.js","sourceRoot":"","sources":["../../../src/modules/kyc.ts"],"names":[],"mappings":"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"}
|