@gearbox-protocol/sdk 14.0.0 → 14.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 (109) hide show
  1. package/dist/cjs/abi/kyc/iDSRegistryService.js +149 -0
  2. package/dist/cjs/abi/kyc/iDSToken.js +71 -0
  3. package/dist/cjs/abi/kyc/iKYCCompressor.js +196 -0
  4. package/dist/cjs/abi/kyc/iKYCFactory.js +122 -0
  5. package/dist/cjs/abi/kyc/iKYCUnderlying.js +401 -0
  6. package/dist/cjs/abi/kyc/iSecuritizeDegenNFT.js +326 -0
  7. package/dist/cjs/abi/kyc/iSecuritizeKYCFactory.js +319 -0
  8. package/dist/cjs/dev/AccountOpener.js +45 -5
  9. package/dist/cjs/sdk/OnchainSDK.js +55 -5
  10. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +335 -21
  11. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +7 -1
  12. package/dist/cjs/sdk/base/TokensMeta.js +22 -42
  13. package/dist/cjs/sdk/base/token-types.js +9 -0
  14. package/dist/cjs/sdk/chain/chains.js +18 -1
  15. package/dist/cjs/sdk/constants/address-provider.js +3 -0
  16. package/dist/cjs/sdk/market/MarketRegister.js +70 -116
  17. package/dist/cjs/sdk/market/MarketSuite.js +3 -0
  18. package/dist/cjs/sdk/market/index.js +2 -0
  19. package/dist/cjs/sdk/market/kyc/KYCRegistry.js +269 -0
  20. package/dist/cjs/sdk/market/kyc/index.js +26 -0
  21. package/dist/cjs/sdk/market/kyc/securitize/SecuritizeKYCFactory.js +242 -0
  22. package/dist/cjs/sdk/market/kyc/securitize/constants.js +28 -0
  23. package/dist/cjs/sdk/market/kyc/securitize/index.js +26 -0
  24. package/dist/cjs/sdk/market/kyc/securitize/types.js +16 -0
  25. package/dist/cjs/sdk/{accounts/utils.js → market/kyc/types.js} +11 -15
  26. package/dist/cjs/sdk/market/pool/PoolSuite.js +3 -0
  27. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +11 -2
  28. package/dist/cjs/sdk/market/pool/index.js +2 -0
  29. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -3
  30. package/dist/cjs/sdk/options.js +6 -0
  31. package/dist/cjs/sdk/pools/PoolService.js +104 -12
  32. package/dist/cjs/sdk/utils/viem/executeDelegatedMulticalls.js +38 -0
  33. package/dist/cjs/sdk/utils/viem/index.js +2 -0
  34. package/dist/esm/abi/kyc/iDSRegistryService.js +125 -0
  35. package/dist/esm/abi/kyc/iDSToken.js +47 -0
  36. package/dist/esm/abi/kyc/iKYCCompressor.js +172 -0
  37. package/dist/esm/abi/kyc/iKYCFactory.js +98 -0
  38. package/dist/esm/abi/kyc/iKYCUnderlying.js +377 -0
  39. package/dist/esm/abi/kyc/iSecuritizeDegenNFT.js +302 -0
  40. package/dist/esm/abi/kyc/iSecuritizeKYCFactory.js +295 -0
  41. package/dist/esm/dev/AccountOpener.js +47 -6
  42. package/dist/esm/sdk/OnchainSDK.js +57 -5
  43. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +336 -22
  44. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +7 -1
  45. package/dist/esm/sdk/base/TokensMeta.js +22 -44
  46. package/dist/esm/sdk/base/token-types.js +6 -0
  47. package/dist/esm/sdk/chain/chains.js +18 -1
  48. package/dist/esm/sdk/constants/address-provider.js +2 -0
  49. package/dist/esm/sdk/market/MarketRegister.js +74 -118
  50. package/dist/esm/sdk/market/MarketSuite.js +3 -0
  51. package/dist/esm/sdk/market/index.js +1 -0
  52. package/dist/esm/sdk/market/kyc/KYCRegistry.js +253 -0
  53. package/dist/esm/sdk/market/kyc/index.js +3 -0
  54. package/dist/esm/sdk/market/kyc/securitize/SecuritizeKYCFactory.js +218 -0
  55. package/dist/esm/sdk/market/kyc/securitize/constants.js +4 -0
  56. package/dist/esm/sdk/market/kyc/securitize/index.js +3 -0
  57. package/dist/esm/sdk/market/kyc/securitize/types.js +0 -0
  58. package/dist/esm/sdk/market/kyc/types.js +9 -0
  59. package/dist/esm/sdk/market/pool/PoolSuite.js +3 -0
  60. package/dist/esm/sdk/market/pool/PoolV310Contract.js +11 -2
  61. package/dist/esm/sdk/market/pool/index.js +1 -0
  62. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -3
  63. package/dist/esm/sdk/options.js +6 -0
  64. package/dist/esm/sdk/pools/PoolService.js +109 -13
  65. package/dist/esm/sdk/utils/viem/executeDelegatedMulticalls.js +14 -0
  66. package/dist/esm/sdk/utils/viem/index.js +1 -0
  67. package/dist/types/abi/kyc/iDSRegistryService.d.ts +191 -0
  68. package/dist/types/abi/kyc/iDSToken.d.ts +67 -0
  69. package/dist/types/abi/kyc/iKYCCompressor.d.ts +228 -0
  70. package/dist/types/abi/kyc/iKYCFactory.d.ts +139 -0
  71. package/dist/types/abi/kyc/iKYCUnderlying.d.ts +548 -0
  72. package/dist/types/abi/kyc/iSecuritizeDegenNFT.d.ts +404 -0
  73. package/dist/types/abi/kyc/iSecuritizeKYCFactory.d.ts +376 -0
  74. package/dist/types/sdk/OnchainSDK.d.ts +19 -1
  75. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +59 -6
  76. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  77. package/dist/types/sdk/accounts/types.d.ts +114 -14
  78. package/dist/types/sdk/base/TokensMeta.d.ts +14 -3
  79. package/dist/types/sdk/base/token-types.d.ts +44 -4
  80. package/dist/types/sdk/base/types.d.ts +116 -2
  81. package/dist/types/sdk/chain/chains.d.ts +5 -1
  82. package/dist/types/sdk/constants/address-provider.d.ts +1 -0
  83. package/dist/types/sdk/market/MarketRegister.d.ts +6 -9
  84. package/dist/types/sdk/market/MarketSuite.d.ts +2 -0
  85. package/dist/types/sdk/market/index.d.ts +1 -0
  86. package/dist/types/sdk/market/kyc/KYCRegistry.d.ts +52 -0
  87. package/dist/types/sdk/market/kyc/index.d.ts +3 -0
  88. package/dist/types/sdk/market/kyc/securitize/SecuritizeKYCFactory.d.ts +429 -0
  89. package/dist/types/sdk/market/kyc/securitize/constants.d.ts +1 -0
  90. package/dist/types/sdk/market/kyc/securitize/index.d.ts +3 -0
  91. package/dist/types/sdk/market/kyc/securitize/types.d.ts +136 -0
  92. package/dist/types/sdk/market/kyc/types.d.ts +171 -0
  93. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +3 -2
  94. package/dist/types/sdk/market/oracle/types.d.ts +3 -10
  95. package/dist/types/sdk/market/pool/PoolSuite.d.ts +2 -0
  96. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +6 -2
  97. package/dist/types/sdk/market/pool/index.d.ts +1 -0
  98. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +1 -1
  99. package/dist/types/sdk/market/types.d.ts +1 -1
  100. package/dist/types/sdk/options.d.ts +1 -0
  101. package/dist/types/sdk/pools/PoolService.d.ts +8 -8
  102. package/dist/types/sdk/pools/types.d.ts +1 -1
  103. package/dist/types/sdk/types/state-human.d.ts +2 -0
  104. package/dist/types/sdk/types/state.d.ts +5 -0
  105. package/dist/types/sdk/utils/viem/executeDelegatedMulticalls.d.ts +28 -0
  106. package/dist/types/sdk/utils/viem/index.d.ts +1 -0
  107. package/package.json +1 -1
  108. package/dist/esm/sdk/accounts/utils.js +0 -14
  109. package/dist/types/sdk/accounts/utils.d.ts +0 -2
@@ -0,0 +1,429 @@
1
+ import { type Address } from "viem";
2
+ import type { GetOpenAccountRequirementsProps } from "../../../accounts/types.js";
3
+ import { BaseContract } from "../../../base/index.js";
4
+ import type { OnchainSDK } from "../../../OnchainSDK.js";
5
+ import type { MultiCall, RawTx } from "../../../types/index.js";
6
+ import type { IKYCFactory, KYCCompressorInvestorData, KYCFactoryData } from "../types.js";
7
+ import { KYC_FACTORY_SECURITIZE } from "./constants.js";
8
+ import type { DStokenData, SecuritizeInvestorData, SecuritizeKYCFactoryStateHuman, SecuritizeOpenAccountRequirements, SecuritizeOperationParams } from "./types.js";
9
+ declare const abi: readonly [{
10
+ readonly type: "function";
11
+ readonly name: "contractType";
12
+ readonly inputs: readonly [];
13
+ readonly outputs: readonly [{
14
+ readonly name: "";
15
+ readonly type: "bytes32";
16
+ readonly internalType: "bytes32";
17
+ }];
18
+ readonly stateMutability: "view";
19
+ }, {
20
+ readonly type: "function";
21
+ readonly name: "getCreditAccounts";
22
+ readonly inputs: readonly [{
23
+ readonly name: "investor";
24
+ readonly type: "address";
25
+ readonly internalType: "address";
26
+ }];
27
+ readonly outputs: readonly [{
28
+ readonly name: "";
29
+ readonly type: "address[]";
30
+ readonly internalType: "address[]";
31
+ }];
32
+ readonly stateMutability: "view";
33
+ }, {
34
+ readonly type: "function";
35
+ readonly name: "getDegenNFT";
36
+ readonly inputs: readonly [];
37
+ readonly outputs: readonly [{
38
+ readonly name: "";
39
+ readonly type: "address";
40
+ readonly internalType: "address";
41
+ }];
42
+ readonly stateMutability: "view";
43
+ }, {
44
+ readonly type: "function";
45
+ readonly name: "getInvestor";
46
+ readonly inputs: readonly [{
47
+ readonly name: "creditAccount";
48
+ readonly type: "address";
49
+ readonly internalType: "address";
50
+ }];
51
+ readonly outputs: readonly [{
52
+ readonly name: "";
53
+ readonly type: "address";
54
+ readonly internalType: "address";
55
+ }];
56
+ readonly stateMutability: "view";
57
+ }, {
58
+ readonly type: "function";
59
+ readonly name: "getTokens";
60
+ readonly inputs: readonly [];
61
+ readonly outputs: readonly [{
62
+ readonly name: "";
63
+ readonly type: "address[]";
64
+ readonly internalType: "address[]";
65
+ }];
66
+ readonly stateMutability: "view";
67
+ }, {
68
+ readonly type: "function";
69
+ readonly name: "getWallet";
70
+ readonly inputs: readonly [{
71
+ readonly name: "creditAccount";
72
+ readonly type: "address";
73
+ readonly internalType: "address";
74
+ }];
75
+ readonly outputs: readonly [{
76
+ readonly name: "";
77
+ readonly type: "address";
78
+ readonly internalType: "address";
79
+ }];
80
+ readonly stateMutability: "view";
81
+ }, {
82
+ readonly type: "function";
83
+ readonly name: "isCreditAccount";
84
+ readonly inputs: readonly [{
85
+ readonly name: "creditAccount";
86
+ readonly type: "address";
87
+ readonly internalType: "address";
88
+ }];
89
+ readonly outputs: readonly [{
90
+ readonly name: "";
91
+ readonly type: "bool";
92
+ readonly internalType: "bool";
93
+ }];
94
+ readonly stateMutability: "view";
95
+ }, {
96
+ readonly type: "function";
97
+ readonly name: "isFrozen";
98
+ readonly inputs: readonly [{
99
+ readonly name: "creditAccount";
100
+ readonly type: "address";
101
+ readonly internalType: "address";
102
+ }];
103
+ readonly outputs: readonly [{
104
+ readonly name: "";
105
+ readonly type: "bool";
106
+ readonly internalType: "bool";
107
+ }];
108
+ readonly stateMutability: "view";
109
+ }, {
110
+ readonly type: "function";
111
+ readonly name: "multicall";
112
+ readonly inputs: readonly [{
113
+ readonly name: "creditAccount";
114
+ readonly type: "address";
115
+ readonly internalType: "address";
116
+ }, {
117
+ readonly name: "calls";
118
+ readonly type: "tuple[]";
119
+ readonly internalType: "struct MultiCall[]";
120
+ readonly components: readonly [{
121
+ readonly name: "target";
122
+ readonly type: "address";
123
+ readonly internalType: "address";
124
+ }, {
125
+ readonly name: "callData";
126
+ readonly type: "bytes";
127
+ readonly internalType: "bytes";
128
+ }];
129
+ }, {
130
+ readonly name: "tokensToRegister";
131
+ readonly type: "address[]";
132
+ readonly internalType: "address[]";
133
+ }, {
134
+ readonly name: "signaturesToCache";
135
+ readonly type: "tuple[]";
136
+ readonly internalType: "struct ISecuritizeDegenNFT.RegisterMessage[]";
137
+ readonly components: readonly [{
138
+ readonly name: "token";
139
+ readonly type: "address";
140
+ readonly internalType: "address";
141
+ }, {
142
+ readonly name: "signature";
143
+ readonly type: "tuple";
144
+ readonly internalType: "struct ISecuritizeDegenNFT.Signature";
145
+ readonly components: readonly [{
146
+ readonly name: "deadline";
147
+ readonly type: "uint256";
148
+ readonly internalType: "uint256";
149
+ }, {
150
+ readonly name: "signature";
151
+ readonly type: "bytes";
152
+ readonly internalType: "bytes";
153
+ }];
154
+ }];
155
+ }];
156
+ readonly outputs: readonly [];
157
+ readonly stateMutability: "nonpayable";
158
+ }, {
159
+ readonly type: "function";
160
+ readonly name: "openCreditAccount";
161
+ readonly inputs: readonly [{
162
+ readonly name: "creditManager";
163
+ readonly type: "address";
164
+ readonly internalType: "address";
165
+ }, {
166
+ readonly name: "calls";
167
+ readonly type: "tuple[]";
168
+ readonly internalType: "struct MultiCall[]";
169
+ readonly components: readonly [{
170
+ readonly name: "target";
171
+ readonly type: "address";
172
+ readonly internalType: "address";
173
+ }, {
174
+ readonly name: "callData";
175
+ readonly type: "bytes";
176
+ readonly internalType: "bytes";
177
+ }];
178
+ }, {
179
+ readonly name: "tokensToRegister";
180
+ readonly type: "address[]";
181
+ readonly internalType: "address[]";
182
+ }, {
183
+ readonly name: "signaturesToCache";
184
+ readonly type: "tuple[]";
185
+ readonly internalType: "struct ISecuritizeDegenNFT.RegisterMessage[]";
186
+ readonly components: readonly [{
187
+ readonly name: "token";
188
+ readonly type: "address";
189
+ readonly internalType: "address";
190
+ }, {
191
+ readonly name: "signature";
192
+ readonly type: "tuple";
193
+ readonly internalType: "struct ISecuritizeDegenNFT.Signature";
194
+ readonly components: readonly [{
195
+ readonly name: "deadline";
196
+ readonly type: "uint256";
197
+ readonly internalType: "uint256";
198
+ }, {
199
+ readonly name: "signature";
200
+ readonly type: "bytes";
201
+ readonly internalType: "bytes";
202
+ }];
203
+ }];
204
+ }];
205
+ readonly outputs: readonly [{
206
+ readonly name: "creditAccount";
207
+ readonly type: "address";
208
+ readonly internalType: "address";
209
+ }, {
210
+ readonly name: "wallet";
211
+ readonly type: "address";
212
+ readonly internalType: "address";
213
+ }];
214
+ readonly stateMutability: "nonpayable";
215
+ }, {
216
+ readonly type: "function";
217
+ readonly name: "precomputeWalletAddress";
218
+ readonly inputs: readonly [{
219
+ readonly name: "creditManager";
220
+ readonly type: "address";
221
+ readonly internalType: "address";
222
+ }, {
223
+ readonly name: "investor";
224
+ readonly type: "address";
225
+ readonly internalType: "address";
226
+ }];
227
+ readonly outputs: readonly [{
228
+ readonly name: "";
229
+ readonly type: "address";
230
+ readonly internalType: "address";
231
+ }];
232
+ readonly stateMutability: "view";
233
+ }, {
234
+ readonly type: "function";
235
+ readonly name: "serialize";
236
+ readonly inputs: readonly [];
237
+ readonly outputs: readonly [{
238
+ readonly name: "serializedData";
239
+ readonly type: "bytes";
240
+ readonly internalType: "bytes";
241
+ }];
242
+ readonly stateMutability: "view";
243
+ }, {
244
+ readonly type: "function";
245
+ readonly name: "setFrozenStatus";
246
+ readonly inputs: readonly [{
247
+ readonly name: "creditAccount";
248
+ readonly type: "address";
249
+ readonly internalType: "address";
250
+ }, {
251
+ readonly name: "frozen";
252
+ readonly type: "bool";
253
+ readonly internalType: "bool";
254
+ }];
255
+ readonly outputs: readonly [];
256
+ readonly stateMutability: "nonpayable";
257
+ }, {
258
+ readonly type: "function";
259
+ readonly name: "setInvestor";
260
+ readonly inputs: readonly [{
261
+ readonly name: "creditAccount";
262
+ readonly type: "address";
263
+ readonly internalType: "address";
264
+ }, {
265
+ readonly name: "investor";
266
+ readonly type: "address";
267
+ readonly internalType: "address";
268
+ }];
269
+ readonly outputs: readonly [];
270
+ readonly stateMutability: "nonpayable";
271
+ }, {
272
+ readonly type: "function";
273
+ readonly name: "version";
274
+ readonly inputs: readonly [];
275
+ readonly outputs: readonly [{
276
+ readonly name: "";
277
+ readonly type: "uint256";
278
+ readonly internalType: "uint256";
279
+ }];
280
+ readonly stateMutability: "view";
281
+ }, {
282
+ readonly type: "event";
283
+ readonly name: "CreateWallet";
284
+ readonly inputs: readonly [{
285
+ readonly name: "creditAccount";
286
+ readonly type: "address";
287
+ readonly indexed: true;
288
+ readonly internalType: "address";
289
+ }, {
290
+ readonly name: "wallet";
291
+ readonly type: "address";
292
+ readonly indexed: true;
293
+ readonly internalType: "address";
294
+ }, {
295
+ readonly name: "investor";
296
+ readonly type: "address";
297
+ readonly indexed: true;
298
+ readonly internalType: "address";
299
+ }];
300
+ readonly anonymous: false;
301
+ }, {
302
+ readonly type: "event";
303
+ readonly name: "SetFrozenStatus";
304
+ readonly inputs: readonly [{
305
+ readonly name: "creditAccount";
306
+ readonly type: "address";
307
+ readonly indexed: true;
308
+ readonly internalType: "address";
309
+ }, {
310
+ readonly name: "frozen";
311
+ readonly type: "bool";
312
+ readonly indexed: false;
313
+ readonly internalType: "bool";
314
+ }];
315
+ readonly anonymous: false;
316
+ }, {
317
+ readonly type: "event";
318
+ readonly name: "SetInvestor";
319
+ readonly inputs: readonly [{
320
+ readonly name: "creditAccount";
321
+ readonly type: "address";
322
+ readonly indexed: true;
323
+ readonly internalType: "address";
324
+ }, {
325
+ readonly name: "oldInvestor";
326
+ readonly type: "address";
327
+ readonly indexed: true;
328
+ readonly internalType: "address";
329
+ }, {
330
+ readonly name: "newInvestor";
331
+ readonly type: "address";
332
+ readonly indexed: true;
333
+ readonly internalType: "address";
334
+ }];
335
+ readonly anonymous: false;
336
+ }, {
337
+ readonly type: "error";
338
+ readonly name: "CallerIsNotInvestorException";
339
+ readonly inputs: readonly [{
340
+ readonly name: "caller";
341
+ readonly type: "address";
342
+ readonly internalType: "address";
343
+ }, {
344
+ readonly name: "creditAccount";
345
+ readonly type: "address";
346
+ readonly internalType: "address";
347
+ }];
348
+ }, {
349
+ readonly type: "error";
350
+ readonly name: "FrozenCreditAccountException";
351
+ readonly inputs: readonly [{
352
+ readonly name: "creditAccount";
353
+ readonly type: "address";
354
+ readonly internalType: "address";
355
+ }];
356
+ }, {
357
+ readonly type: "error";
358
+ readonly name: "InvalidCreditManagerException";
359
+ readonly inputs: readonly [{
360
+ readonly name: "creditManager";
361
+ readonly type: "address";
362
+ readonly internalType: "address";
363
+ }];
364
+ }, {
365
+ readonly type: "error";
366
+ readonly name: "InvalidUnderlyingTokenException";
367
+ readonly inputs: readonly [{
368
+ readonly name: "underlying";
369
+ readonly type: "address";
370
+ readonly internalType: "address";
371
+ }];
372
+ }, {
373
+ readonly type: "error";
374
+ readonly name: "UnknownCreditAccountException";
375
+ readonly inputs: readonly [{
376
+ readonly name: "creditAccount";
377
+ readonly type: "address";
378
+ readonly internalType: "address";
379
+ }];
380
+ }, {
381
+ readonly type: "error";
382
+ readonly name: "ZeroAddressException";
383
+ readonly inputs: readonly [];
384
+ }];
385
+ type abi = typeof abi;
386
+ export declare class SecuritizeKYCFactory extends BaseContract<abi> implements IKYCFactory<typeof KYC_FACTORY_SECURITIZE> {
387
+ #private;
388
+ readonly degenNFT: Address;
389
+ readonly owner: Address;
390
+ readonly dsTokens: DStokenData[];
391
+ readonly contractType = "KYC_FACTORY::SECURITIZE";
392
+ constructor(sdk: OnchainSDK, data: KYCFactoryData);
393
+ /**
394
+ * {@inheritDoc IKYCFactory.decodeInvestorData}
395
+ */
396
+ decodeInvestorData(data: KYCCompressorInvestorData): SecuritizeInvestorData;
397
+ /**
398
+ * {@inheritDoc IKYCFactory.getInvestor}
399
+ */
400
+ getInvestor(creditAccount: Address, fromCache?: boolean): Promise<Address>;
401
+ /**
402
+ * {@inheritDoc IKYCFactory.getApprovalAddress}
403
+ */
404
+ getApprovalAddress(options: {
405
+ creditManager: Address;
406
+ borrower: Address;
407
+ } | {
408
+ creditManager: Address;
409
+ creditAccount: Address;
410
+ }): Promise<Address>;
411
+ /**
412
+ * {@inheritDoc IKYCFactory.getWallet}
413
+ */
414
+ getWallet(creditAccount: Address): Promise<Address>;
415
+ /**
416
+ * {@inheritDoc IKYCFactory.multicall}
417
+ */
418
+ multicall(creditAccount: Address, calls: MultiCall[], options?: SecuritizeOperationParams): RawTx;
419
+ /**
420
+ * {@inheritDoc IKYCFactory.getOpenAccountRequirements}
421
+ */
422
+ getOpenAccountRequirements(investor: Address, props: GetOpenAccountRequirementsProps): Promise<SecuritizeOpenAccountRequirements | undefined>;
423
+ /**
424
+ * {@inheritDoc IKYCFactory.openCreditAccount}
425
+ */
426
+ openCreditAccount(creditManager: Address, calls: MultiCall[], options?: SecuritizeOperationParams): RawTx;
427
+ stateHuman(_raw?: boolean): SecuritizeKYCFactoryStateHuman;
428
+ }
429
+ export {};
@@ -0,0 +1 @@
1
+ export declare const KYC_FACTORY_SECURITIZE = "KYC_FACTORY::SECURITIZE";
@@ -0,0 +1,3 @@
1
+ export * from "./constants.js";
2
+ export * from "./SecuritizeKYCFactory.js";
3
+ export * from "./types.js";
@@ -0,0 +1,136 @@
1
+ import type { Address, Hex } from "viem";
2
+ import type { BaseContractStateHuman } from "../../../types/index.js";
3
+ import type { KYC_FACTORY_SECURITIZE } from "./constants.js";
4
+ /**
5
+ * On-chain data about Securitize DSTokens
6
+ **/
7
+ export interface DStokenData {
8
+ /** DSToken address. */
9
+ address: Address;
10
+ /** Securitize VaultRegistrar for this token. */
11
+ registrar: Address;
12
+ /** Addresses authorised to register vaults for this token. */
13
+ operators: Address[];
14
+ }
15
+ /**
16
+ * Cached registration signature for a single DSToken, stored in the
17
+ * @see SecuritizeDegenNFT in https://github.com/Gearbox-protocol/periphery-v3
18
+ *
19
+ **/
20
+ export interface SecuritizeRegisterMessage {
21
+ /** DSToken address the signature authorises. */
22
+ token: Address;
23
+ /** EIP-712 deadline + raw signature bytes. */
24
+ signature: SecuritizeSignature;
25
+ }
26
+ /**
27
+ * Deadline-bound EIP-712 signature produced by the investor.
28
+ *
29
+ **/
30
+ export interface SecuritizeSignature {
31
+ /** Unix timestamp after which the signature is no longer valid. */
32
+ deadline: bigint;
33
+ /** Raw EIP-712 signature bytes. */
34
+ signature: Hex;
35
+ }
36
+ /**
37
+ * EIP-712 typed-data message that must be signed by the investor to allow the
38
+ * KYC factory to register a credit account as a vault in Securitize's VaultRegistrar
39
+ * @see VaultRegistrar in https://github.com/Gearbox-protocol/periphery-v3
40
+ *
41
+ **/
42
+ export interface SecuritizeRegisterVaultMessage {
43
+ /** EIP-712 domain from the VaultRegistrar contract. */
44
+ domain: {
45
+ name: string;
46
+ version: string;
47
+ chainId: bigint;
48
+ verifyingContract: Address;
49
+ };
50
+ /** Investor EOA that will sign the message. */
51
+ investor: Address;
52
+ /** Operator address (the DegenNFT contract). */
53
+ operator: Address;
54
+ /** DSToken address to register for. */
55
+ token: Address;
56
+ /** Monotonic nonce from VaultRegistrar (investor, operator). */
57
+ nonce: bigint;
58
+ /** Unix timestamp after which the message is no longer valid. */
59
+ deadline: bigint;
60
+ }
61
+ /**
62
+ * Per-credit-account data decoded from the KYC compressor's
63
+ * `getCreditAccountData` extra details for a Securitize factory.
64
+ **/
65
+ export interface SecuritizeCreditAccountData {
66
+ /** Credit account address. */
67
+ creditAccount: Address;
68
+ /** SecuritizeWallet proxy that owns the credit account. */
69
+ wallet: Address;
70
+ /** Whether the Securitize admin has frozen this account. */
71
+ frozen: boolean;
72
+ /** DSToken addresses where this credit account is registered as a vault. */
73
+ registeredTokens: Address[];
74
+ }
75
+ /**
76
+ * Investor-level data decoded from the KYC compressor's `getKYCInvestorData`
77
+ * extra details for a Securitize factory.
78
+ **/
79
+ export interface SecuritizeInvestorData {
80
+ type: typeof KYC_FACTORY_SECURITIZE;
81
+ /** Securitize KYC factory address that produced this data. */
82
+ factory: Address;
83
+ /** Credit accounts owned by the investor through this factory. */
84
+ creditAccounts: SecuritizeCreditAccountData[];
85
+ /** DSToken addresses where the investor is already registered. */
86
+ registeredTokens: Address[];
87
+ /** Cached signatures still valid and reusable for registration. */
88
+ cachedSignatures: SecuritizeRegisterMessage[];
89
+ /** EIP-712 messages the investor must sign to register new vaults. */
90
+ registerVaultMessages: SecuritizeRegisterVaultMessage[];
91
+ }
92
+ /**
93
+ * Human-readable serialisation of {@link SecuritizeKYCFactory} state.
94
+ **/
95
+ export interface SecuritizeKYCFactoryStateHuman extends BaseContractStateHuman {
96
+ owner: string;
97
+ degenNFT: string;
98
+ dsTokens: {
99
+ addr: string;
100
+ symbol: string;
101
+ name: string;
102
+ decimals: number;
103
+ registrar: string;
104
+ operators: string[];
105
+ }[];
106
+ }
107
+ /**
108
+ * Factory-specific parameters for {@link SecuritizeKYCFactory.multicall}
109
+ * and {@link SecuritizeKYCFactory.openCreditAccount}.
110
+ **/
111
+ export interface SecuritizeOperationParams {
112
+ type: typeof KYC_FACTORY_SECURITIZE;
113
+ /** DSToken addresses to register for this operation. */
114
+ tokensToRegister: Address[];
115
+ /** Cached EIP-712 registration signatures to store on-chain. */
116
+ signaturesToCache: SecuritizeRegisterMessage[];
117
+ }
118
+ export interface SecuritizeOpenAccountRequirements {
119
+ type: typeof KYC_FACTORY_SECURITIZE;
120
+ /**
121
+ * User must visit securitize website to register these tokens
122
+ * May be empty if user already registered all required tokens
123
+ */
124
+ securitizeTokensToRegister: Address[];
125
+ /**
126
+ * Desired tokens to register for this operation, must be always present on open credit account
127
+ * Come from strategy configuration
128
+ * Passed to openCreditAccount contract call on securitize factory
129
+ */
130
+ tokensToRegister: Address[];
131
+ /**
132
+ * User must sign these messages to gearbox and provide EIP-712 signatures
133
+ * as {@link SecuritizeRegisterMessage} to gearbox
134
+ */
135
+ requiredSignatures: SecuritizeRegisterVaultMessage[];
136
+ }