@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.
Files changed (79) hide show
  1. package/dist/cjs/client.js +198 -0
  2. package/dist/cjs/client.js.map +1 -0
  3. package/dist/cjs/constants/index.js +211 -0
  4. package/dist/cjs/constants/index.js.map +1 -0
  5. package/dist/cjs/errors/index.js +218 -0
  6. package/dist/cjs/errors/index.js.map +1 -0
  7. package/dist/cjs/index.js +51 -0
  8. package/dist/cjs/index.js.map +1 -0
  9. package/dist/cjs/modules/compliance.js +202 -0
  10. package/dist/cjs/modules/compliance.js.map +1 -0
  11. package/dist/cjs/modules/index.js +18 -0
  12. package/dist/cjs/modules/index.js.map +1 -0
  13. package/dist/cjs/modules/kyc.js +278 -0
  14. package/dist/cjs/modules/kyc.js.map +1 -0
  15. package/dist/cjs/modules/token.js +365 -0
  16. package/dist/cjs/modules/token.js.map +1 -0
  17. package/dist/cjs/modules/yield.js +406 -0
  18. package/dist/cjs/modules/yield.js.map +1 -0
  19. package/dist/cjs/package.json +3 -0
  20. package/dist/cjs/types/index.js +20 -0
  21. package/dist/cjs/types/index.js.map +1 -0
  22. package/dist/cjs/utils/index.js +206 -0
  23. package/dist/cjs/utils/index.js.map +1 -0
  24. package/dist/esm/client.js +194 -0
  25. package/dist/esm/client.js.map +1 -0
  26. package/dist/esm/constants/index.js +208 -0
  27. package/dist/esm/constants/index.js.map +1 -0
  28. package/dist/esm/errors/index.js +209 -0
  29. package/dist/esm/errors/index.js.map +1 -0
  30. package/dist/esm/index.js +17 -0
  31. package/dist/esm/index.js.map +1 -0
  32. package/dist/esm/modules/compliance.js +198 -0
  33. package/dist/esm/modules/compliance.js.map +1 -0
  34. package/dist/esm/modules/index.js +8 -0
  35. package/dist/esm/modules/index.js.map +1 -0
  36. package/dist/esm/modules/kyc.js +273 -0
  37. package/dist/esm/modules/kyc.js.map +1 -0
  38. package/dist/esm/modules/token.js +360 -0
  39. package/dist/esm/modules/token.js.map +1 -0
  40. package/dist/esm/modules/yield.js +401 -0
  41. package/dist/esm/modules/yield.js.map +1 -0
  42. package/dist/esm/types/index.js +17 -0
  43. package/dist/esm/types/index.js.map +1 -0
  44. package/dist/esm/utils/index.js +188 -0
  45. package/dist/esm/utils/index.js.map +1 -0
  46. package/dist/types/client.d.ts +93 -0
  47. package/dist/types/client.d.ts.map +1 -0
  48. package/dist/types/constants/index.d.ts +83 -0
  49. package/dist/types/constants/index.d.ts.map +1 -0
  50. package/dist/types/errors/index.d.ts +83 -0
  51. package/dist/types/errors/index.d.ts.map +1 -0
  52. package/dist/types/index.d.ts +13 -0
  53. package/dist/types/index.d.ts.map +1 -0
  54. package/dist/types/modules/compliance.d.ts +29 -0
  55. package/dist/types/modules/compliance.d.ts.map +1 -0
  56. package/dist/types/modules/index.d.ts +8 -0
  57. package/dist/types/modules/index.d.ts.map +1 -0
  58. package/dist/types/modules/kyc.d.ts +131 -0
  59. package/dist/types/modules/kyc.d.ts.map +1 -0
  60. package/dist/types/modules/token.d.ts +145 -0
  61. package/dist/types/modules/token.d.ts.map +1 -0
  62. package/dist/types/modules/yield.d.ts +143 -0
  63. package/dist/types/modules/yield.d.ts.map +1 -0
  64. package/dist/types/types/index.d.ts +254 -0
  65. package/dist/types/types/index.d.ts.map +1 -0
  66. package/dist/types/utils/index.d.ts +80 -0
  67. package/dist/types/utils/index.d.ts.map +1 -0
  68. package/package.json +52 -0
  69. package/src/client.ts +258 -0
  70. package/src/constants/index.ts +226 -0
  71. package/src/errors/index.ts +291 -0
  72. package/src/index.ts +42 -0
  73. package/src/modules/compliance.ts +252 -0
  74. package/src/modules/index.ts +8 -0
  75. package/src/modules/kyc.ts +446 -0
  76. package/src/modules/token.ts +488 -0
  77. package/src/modules/yield.ts +566 -0
  78. package/src/types/index.ts +326 -0
  79. 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":";AAAA;;GAEG;;;AAEH,mCAA4D;AAS5D,4CAAgD;AAChD,sCAAoE;AACpE,oCAUkB;AAiBlB;;GAEG;AACH,MAAa,mBAAmB;IACX,SAAS,CAAkB;IAC3B,QAAQ,CAAS;IACjB,WAAW,CAAS;IAErC,gCAAgC;IACvB,OAAO,CAAS;IAEzB,YACI,OAAe,EACf,QAAkB,EAClB,MAAqB,EACrB,OAAe,EACf,UAAkB;QAElB,IAAI,CAAC,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAE9B,IAAI,CAAC,SAAS,GAAG,IAAI,eAAM,CAAC,QAAQ,CAChC,IAAI,CAAC,OAAO,EACZ,4BAAgB,EAChB,MAAM,IAAI,QAAQ,CACrB,CAAC;IACN,CAAC;IAED;;oEAEgE;IAEhE;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB;QAClC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAC/E,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAC7B,CAAC;QAEF,OAAO;YACH,QAAQ;YACR,IAAI,EAAE,IAAyB;YAC/B,MAAM,EAAE,IAAA,uBAAe,EAAC,MAAM,CAAC;YAC/B,YAAY;SACf,CAAC;IACN,CAAC;IAED;;oEAEgE;IAEhE;;OAEG;IACH,KAAK,CAAC,WAAW,CACb,QAAgB,EAChB,IAAuB,EACvB,UAAgB,EAChB,YAAoB,EACpB,OAA4B;QAE5B,MAAM,eAAe,GAAG,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,IAAA,aAAK,EAClB,KAAK,IAAI,EAAE;gBACP,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,MAAM,IAAA,6BAAqB,EAC7D,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CACxC,eAAe,EACf,IAAI,EACJ,eAAe,EACf,YAAY,CACf,CACJ,CAAC;gBACF,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAC7B,eAAe,EACf,IAAI,EACJ,eAAe,EACf,YAAY,EACZ,EAAE,QAAQ,EAAE,CACf,CAAC;YACN,CAAC,EACD,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CACjG,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9D,OAAO,IAAA,+BAAuB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAA,2BAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACjE,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAChB,QAAgB,EAChB,IAAuB,EACvB,UAAgB,EAChB,OAA4B;QAE5B,MAAM,eAAe,GAAG,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,IAAA,uBAAe,EAAC,UAAU,CAAC,CAAC;QAEpD,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,IAAA,aAAK,EAClB,KAAK,IAAI,EAAE;gBACP,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,MAAM,IAAA,6BAAqB,EAC7D,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAC3C,eAAe,EACf,IAAI,EACJ,eAAe,CAClB,CACJ,CAAC;gBACF,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAChC,eAAe,EACf,IAAI,EACJ,eAAe,EACf,EAAE,QAAQ,EAAE,CACf,CAAC;YACN,CAAC,EACD,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CACjG,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9D,OAAO,IAAA,+BAAuB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAA,2BAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,QAAgB,EAAE,OAA4B;QAC/D,MAAM,eAAe,GAAG,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC;QAEnD,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,IAAA,aAAK,EAClB,KAAK,IAAI,EAAE;gBACP,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,MAAM,IAAA,6BAAqB,EAC7D,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,eAAe,CAAC,CACnE,CAAC;gBACF,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxE,CAAC,EACD,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CACjG,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9D,OAAO,IAAA,+BAAuB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAA,2BAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACnB,SAKE,EACF,OAA4B;QAE5B,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,wBAAgB,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAEpD,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,IAAA,aAAK,EAClB,KAAK,IAAI,EAAE;gBACP,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,MAAM,IAAA,6BAAqB,EAC7D,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CACzF,CAAC;gBACF,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9F,CAAC,EACD,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CACjG,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9D,OAAO,IAAA,+BAAuB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAA,2BAAkB,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAED;;oEAEgE;IAEhE;;OAEG;IACH,kBAAkB,CACd,QAA6E;QAE7E,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,IAAY,EAAE,MAAc,EAAE,EAAE;YAChE,QAAQ,CAAC,QAAQ,EAAE,IAAyB,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAoC;QAClD,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,iBAAiB,CACb,QAAmF;QAEnF,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,SAAiB,EAAE,EAAE;YACtE,QAAQ,CAAC,QAAQ,EAAE,OAA4B,EAAE,SAAS,CAAC,CAAC;QAChE,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;CACJ;AAtPD,kDAsPC;AAED;;GAEG;AACH,MAAa,SAAS;IACD,SAAS,CAAW;IACpB,OAAO,CAAgB;IACvB,QAAQ,CAAS;IACjB,WAAW,CAAS;IAC7B,YAAY,GAAuB,IAAI,CAAC;IAEhD,YAAY,QAAkB,EAAE,MAAqB,EAAE,OAAe,EAAE,UAAkB;QACtF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAe;QACnB,IAAI,CAAC,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,iBAAQ,CAAC,kBAAS,CAAC,eAAe,EAAE,6BAA6B,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,mBAAmB,CAC1B,OAAO,EACP,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,WAAW,CACnB,CAAC;IACN,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,QAAsD;QAC9D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC/B,8CAA8C;YAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QACjC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,eAAuB,EAAE,OAAiB;QAC3D,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,MAAM,IAAI,iBAAQ,CACd,kBAAS,CAAC,uBAAuB,EACjC,wDAAwD,CAC3D,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CACpB,eAAuB,EACvB,eAAuB;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAChB,eAAuB,EACvB,eAAuB,EACvB,MAA0B;QAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/C,OAAO,QAAQ,CAAC,WAAW,CACvB,eAAe,EACf,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,YAAY,CACtB,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CACrB,eAAuB,EACvB,OAA+D;QAE/D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;YACnB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU;YAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;SACtC,CAAC,CAAC,CAAC;QACJ,OAAO,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,IAMpB;QACG,OAAO,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,IAAoC;QAC/D,OAAO;YACH,IAAI;YACJ,oBAAoB,EAAE,KAAK,EAAE,eAAuB,EAAE,EAAE;gBACpD,+EAA+E;gBAC/E,OAAO;oBACH,SAAS,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;oBAClE,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,SAAkB;oBAC1B,WAAW,EAAE,WAAW,IAAI,uBAAuB,IAAI,CAAC,GAAG,EAAE,EAAE;iBAClE,CAAC;YACN,CAAC;YACD,WAAW,EAAE,KAAK,IAAI,EAAE;gBACpB,sBAAsB;gBACtB,OAAO,SAAkB,CAAC;YAC9B,CAAC;YACD,qBAAqB,EAAE,KAAK,IAAI,EAAE;gBAC9B,sBAAsB;gBACtB,MAAM,IAAI,iBAAQ,CACd,kBAAS,CAAC,uBAAuB,EACjC,GAAG,IAAI,4FAA4F,CACtG,CAAC;YACN,CAAC;SACJ,CAAC;IACN,CAAC;CACJ;AArJD,8BAqJC"}