@gearbox-protocol/sdk 13.5.0 → 13.6.0-kyc.2

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 (98) hide show
  1. package/dist/cjs/abi/kyc/iKYCCompressor.js +196 -0
  2. package/dist/cjs/abi/kyc/iKYCFactory.js +122 -0
  3. package/dist/cjs/abi/kyc/iKYCUnderlying.js +401 -0
  4. package/dist/cjs/abi/kyc/iSecuritizeDegenNFT.js +326 -0
  5. package/dist/cjs/abi/kyc/iSecuritizeKYCFactory.js +319 -0
  6. package/dist/cjs/dev/AccountOpener.js +45 -5
  7. package/dist/cjs/sdk/GearboxSDK.js +51 -4
  8. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +331 -16
  9. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +7 -1
  10. package/dist/cjs/sdk/base/TokensMeta.js +32 -43
  11. package/dist/cjs/sdk/base/token-types.js +9 -0
  12. package/dist/cjs/sdk/chain/chains.js +2 -1
  13. package/dist/cjs/sdk/constants/address-provider.js +3 -0
  14. package/dist/cjs/sdk/market/MarketRegister.js +70 -116
  15. package/dist/cjs/sdk/market/MarketSuite.js +3 -0
  16. package/dist/cjs/sdk/market/kyc/KYCRegister.js +255 -0
  17. package/dist/cjs/sdk/market/kyc/index.js +24 -0
  18. package/dist/cjs/sdk/market/kyc/securitize/SecuritizeKYCFactory.js +229 -0
  19. package/dist/cjs/sdk/market/kyc/securitize/constants.js +28 -0
  20. package/dist/cjs/sdk/market/kyc/securitize/index.js +26 -0
  21. package/dist/cjs/sdk/market/kyc/securitize/types.js +16 -0
  22. package/dist/cjs/sdk/market/kyc/types.js +29 -0
  23. package/dist/cjs/sdk/market/pool/PoolSuite.js +3 -0
  24. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +11 -2
  25. package/dist/cjs/sdk/market/pool/index.js +2 -0
  26. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -3
  27. package/dist/cjs/sdk/options.js +6 -0
  28. package/dist/cjs/sdk/pools/PoolService.js +104 -12
  29. package/dist/cjs/sdk/utils/viem/executeDelegatedMulticalls.js +38 -0
  30. package/dist/cjs/sdk/utils/viem/index.js +2 -0
  31. package/dist/esm/abi/kyc/iKYCCompressor.js +172 -0
  32. package/dist/esm/abi/kyc/iKYCFactory.js +98 -0
  33. package/dist/esm/abi/kyc/iKYCUnderlying.js +377 -0
  34. package/dist/esm/abi/kyc/iSecuritizeDegenNFT.js +302 -0
  35. package/dist/esm/abi/kyc/iSecuritizeKYCFactory.js +295 -0
  36. package/dist/esm/dev/AccountOpener.js +47 -6
  37. package/dist/esm/sdk/GearboxSDK.js +55 -5
  38. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +332 -17
  39. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +7 -1
  40. package/dist/esm/sdk/base/TokensMeta.js +32 -45
  41. package/dist/esm/sdk/base/token-types.js +6 -0
  42. package/dist/esm/sdk/chain/chains.js +2 -1
  43. package/dist/esm/sdk/constants/address-provider.js +2 -0
  44. package/dist/esm/sdk/market/MarketRegister.js +74 -118
  45. package/dist/esm/sdk/market/MarketSuite.js +3 -0
  46. package/dist/esm/sdk/market/kyc/KYCRegister.js +239 -0
  47. package/dist/esm/sdk/market/kyc/index.js +2 -0
  48. package/dist/esm/sdk/market/kyc/securitize/SecuritizeKYCFactory.js +205 -0
  49. package/dist/esm/sdk/market/kyc/securitize/constants.js +4 -0
  50. package/dist/esm/sdk/market/kyc/securitize/index.js +3 -0
  51. package/dist/esm/sdk/market/kyc/securitize/types.js +0 -0
  52. package/dist/esm/sdk/market/kyc/types.js +5 -0
  53. package/dist/esm/sdk/market/pool/PoolSuite.js +3 -0
  54. package/dist/esm/sdk/market/pool/PoolV310Contract.js +11 -2
  55. package/dist/esm/sdk/market/pool/index.js +1 -0
  56. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -3
  57. package/dist/esm/sdk/options.js +6 -0
  58. package/dist/esm/sdk/pools/PoolService.js +109 -13
  59. package/dist/esm/sdk/utils/viem/executeDelegatedMulticalls.js +14 -0
  60. package/dist/esm/sdk/utils/viem/index.js +1 -0
  61. package/dist/types/abi/kyc/iKYCCompressor.d.ts +228 -0
  62. package/dist/types/abi/kyc/iKYCFactory.d.ts +139 -0
  63. package/dist/types/abi/kyc/iKYCUnderlying.d.ts +548 -0
  64. package/dist/types/abi/kyc/iSecuritizeDegenNFT.d.ts +404 -0
  65. package/dist/types/abi/kyc/iSecuritizeKYCFactory.d.ts +376 -0
  66. package/dist/types/sdk/GearboxSDK.d.ts +7 -0
  67. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +55 -2
  68. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  69. package/dist/types/sdk/accounts/types.d.ts +93 -13
  70. package/dist/types/sdk/base/TokensMeta.d.ts +14 -3
  71. package/dist/types/sdk/base/token-types.d.ts +44 -4
  72. package/dist/types/sdk/base/types.d.ts +116 -2
  73. package/dist/types/sdk/chain/chains.d.ts +5 -1
  74. package/dist/types/sdk/constants/address-provider.d.ts +1 -0
  75. package/dist/types/sdk/market/MarketRegister.d.ts +6 -9
  76. package/dist/types/sdk/market/MarketSuite.d.ts +2 -0
  77. package/dist/types/sdk/market/kyc/KYCRegister.d.ts +31 -0
  78. package/dist/types/sdk/market/kyc/index.d.ts +2 -0
  79. package/dist/types/sdk/market/kyc/securitize/SecuritizeKYCFactory.d.ts +420 -0
  80. package/dist/types/sdk/market/kyc/securitize/constants.d.ts +1 -0
  81. package/dist/types/sdk/market/kyc/securitize/index.d.ts +3 -0
  82. package/dist/types/sdk/market/kyc/securitize/types.d.ts +62 -0
  83. package/dist/types/sdk/market/kyc/types.d.ts +93 -0
  84. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +3 -2
  85. package/dist/types/sdk/market/oracle/types.d.ts +3 -10
  86. package/dist/types/sdk/market/pool/PoolSuite.d.ts +2 -0
  87. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +6 -2
  88. package/dist/types/sdk/market/pool/index.d.ts +1 -0
  89. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +1 -1
  90. package/dist/types/sdk/market/types.d.ts +1 -1
  91. package/dist/types/sdk/options.d.ts +1 -0
  92. package/dist/types/sdk/pools/PoolService.d.ts +8 -8
  93. package/dist/types/sdk/pools/types.d.ts +1 -1
  94. package/dist/types/sdk/types/state-human.d.ts +2 -0
  95. package/dist/types/sdk/types/state.d.ts +5 -0
  96. package/dist/types/sdk/utils/viem/executeDelegatedMulticalls.d.ts +11 -0
  97. package/dist/types/sdk/utils/viem/index.d.ts +1 -0
  98. package/package.json +3 -2
@@ -0,0 +1,302 @@
1
+ const iSecuritizeDegenNFTAbi = [
2
+ {
3
+ type: "function",
4
+ name: "addRegistrar",
5
+ inputs: [{ name: "registrar", type: "address", internalType: "address" }],
6
+ outputs: [],
7
+ stateMutability: "nonpayable"
8
+ },
9
+ {
10
+ type: "function",
11
+ name: "burn",
12
+ inputs: [
13
+ { name: "wallet", type: "address", internalType: "address" },
14
+ { name: "", type: "uint256", internalType: "uint256" }
15
+ ],
16
+ outputs: [],
17
+ stateMutability: "nonpayable"
18
+ },
19
+ {
20
+ type: "function",
21
+ name: "cacheRegisterSignatures",
22
+ inputs: [
23
+ { name: "investor", type: "address", internalType: "address" },
24
+ {
25
+ name: "signatures",
26
+ type: "tuple[]",
27
+ internalType: "struct ISecuritizeDegenNFT.RegisterMessage[]",
28
+ components: [
29
+ { name: "token", type: "address", internalType: "address" },
30
+ {
31
+ name: "signature",
32
+ type: "tuple",
33
+ internalType: "struct ISecuritizeDegenNFT.Signature",
34
+ components: [
35
+ { name: "deadline", type: "uint256", internalType: "uint256" },
36
+ { name: "signature", type: "bytes", internalType: "bytes" }
37
+ ]
38
+ }
39
+ ]
40
+ }
41
+ ],
42
+ outputs: [],
43
+ stateMutability: "nonpayable"
44
+ },
45
+ {
46
+ type: "function",
47
+ name: "contractType",
48
+ inputs: [],
49
+ outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
50
+ stateMutability: "view"
51
+ },
52
+ {
53
+ type: "function",
54
+ name: "getCachedSignature",
55
+ inputs: [
56
+ { name: "investor", type: "address", internalType: "address" },
57
+ { name: "token", type: "address", internalType: "address" }
58
+ ],
59
+ outputs: [
60
+ {
61
+ name: "",
62
+ type: "tuple",
63
+ internalType: "struct ISecuritizeDegenNFT.Signature",
64
+ components: [
65
+ { name: "deadline", type: "uint256", internalType: "uint256" },
66
+ { name: "signature", type: "bytes", internalType: "bytes" }
67
+ ]
68
+ }
69
+ ],
70
+ stateMutability: "view"
71
+ },
72
+ {
73
+ type: "function",
74
+ name: "getDSTokens",
75
+ inputs: [],
76
+ outputs: [{ name: "", type: "address[]", internalType: "address[]" }],
77
+ stateMutability: "view"
78
+ },
79
+ {
80
+ type: "function",
81
+ name: "getDSTokensData",
82
+ inputs: [],
83
+ outputs: [
84
+ {
85
+ name: "",
86
+ type: "tuple[]",
87
+ internalType: "struct ISecuritizeDegenNFT.DSTokenData[]",
88
+ components: [
89
+ { name: "token", type: "address", internalType: "address" },
90
+ { name: "registrar", type: "address", internalType: "address" },
91
+ { name: "operators", type: "address[]", internalType: "address[]" }
92
+ ]
93
+ }
94
+ ],
95
+ stateMutability: "view"
96
+ },
97
+ {
98
+ type: "function",
99
+ name: "getFactory",
100
+ inputs: [],
101
+ outputs: [{ name: "", type: "address", internalType: "address" }],
102
+ stateMutability: "view"
103
+ },
104
+ {
105
+ type: "function",
106
+ name: "getOperators",
107
+ inputs: [{ name: "token", type: "address", internalType: "address" }],
108
+ outputs: [{ name: "", type: "address[]", internalType: "address[]" }],
109
+ stateMutability: "view"
110
+ },
111
+ {
112
+ type: "function",
113
+ name: "getRegistrar",
114
+ inputs: [{ name: "token", type: "address", internalType: "address" }],
115
+ outputs: [{ name: "", type: "address", internalType: "address" }],
116
+ stateMutability: "view"
117
+ },
118
+ {
119
+ type: "function",
120
+ name: "isDSToken",
121
+ inputs: [{ name: "token", type: "address", internalType: "address" }],
122
+ outputs: [{ name: "", type: "bool", internalType: "bool" }],
123
+ stateMutability: "view"
124
+ },
125
+ {
126
+ type: "function",
127
+ name: "isOperator",
128
+ inputs: [
129
+ { name: "token", type: "address", internalType: "address" },
130
+ { name: "operator", type: "address", internalType: "address" }
131
+ ],
132
+ outputs: [{ name: "", type: "bool", internalType: "bool" }],
133
+ stateMutability: "view"
134
+ },
135
+ {
136
+ type: "function",
137
+ name: "mint",
138
+ inputs: [{ name: "wallet", type: "address", internalType: "address" }],
139
+ outputs: [],
140
+ stateMutability: "nonpayable"
141
+ },
142
+ {
143
+ type: "function",
144
+ name: "registerCreditAccount",
145
+ inputs: [
146
+ { name: "creditAccount", type: "address", internalType: "address" },
147
+ { name: "tokens", type: "address[]", internalType: "address[]" }
148
+ ],
149
+ outputs: [],
150
+ stateMutability: "nonpayable"
151
+ },
152
+ {
153
+ type: "function",
154
+ name: "registerHelperAccount",
155
+ inputs: [
156
+ { name: "creditAccount", type: "address", internalType: "address" },
157
+ { name: "helperAccount", type: "address", internalType: "address" },
158
+ { name: "token", type: "address", internalType: "address" }
159
+ ],
160
+ outputs: [],
161
+ stateMutability: "nonpayable"
162
+ },
163
+ {
164
+ type: "function",
165
+ name: "serialize",
166
+ inputs: [],
167
+ outputs: [{ name: "serializedData", type: "bytes", internalType: "bytes" }],
168
+ stateMutability: "view"
169
+ },
170
+ {
171
+ type: "function",
172
+ name: "setOperatorStatus",
173
+ inputs: [
174
+ { name: "token", type: "address", internalType: "address" },
175
+ { name: "operator", type: "address", internalType: "address" },
176
+ { name: "approved", type: "bool", internalType: "bool" }
177
+ ],
178
+ outputs: [],
179
+ stateMutability: "nonpayable"
180
+ },
181
+ {
182
+ type: "function",
183
+ name: "version",
184
+ inputs: [],
185
+ outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
186
+ stateMutability: "view"
187
+ },
188
+ {
189
+ type: "event",
190
+ name: "Burn",
191
+ inputs: [
192
+ {
193
+ name: "wallet",
194
+ type: "address",
195
+ indexed: true,
196
+ internalType: "address"
197
+ }
198
+ ],
199
+ anonymous: false
200
+ },
201
+ {
202
+ type: "event",
203
+ name: "Mint",
204
+ inputs: [
205
+ {
206
+ name: "wallet",
207
+ type: "address",
208
+ indexed: true,
209
+ internalType: "address"
210
+ }
211
+ ],
212
+ anonymous: false
213
+ },
214
+ {
215
+ type: "event",
216
+ name: "SetOperatorStatus",
217
+ inputs: [
218
+ {
219
+ name: "token",
220
+ type: "address",
221
+ indexed: true,
222
+ internalType: "address"
223
+ },
224
+ {
225
+ name: "operator",
226
+ type: "address",
227
+ indexed: true,
228
+ internalType: "address"
229
+ },
230
+ { name: "approved", type: "bool", indexed: false, internalType: "bool" }
231
+ ],
232
+ anonymous: false
233
+ },
234
+ {
235
+ type: "event",
236
+ name: "SetRegistrar",
237
+ inputs: [
238
+ {
239
+ name: "token",
240
+ type: "address",
241
+ indexed: true,
242
+ internalType: "address"
243
+ },
244
+ {
245
+ name: "registrar",
246
+ type: "address",
247
+ indexed: true,
248
+ internalType: "address"
249
+ }
250
+ ],
251
+ anonymous: false
252
+ },
253
+ {
254
+ type: "error",
255
+ name: "CallerIsNotCreditFacadeException",
256
+ inputs: [{ name: "caller", type: "address", internalType: "address" }]
257
+ },
258
+ {
259
+ type: "error",
260
+ name: "CallerIsNotFactoryException",
261
+ inputs: [{ name: "caller", type: "address", internalType: "address" }]
262
+ },
263
+ {
264
+ type: "error",
265
+ name: "CallerIsNotInstanceOwnerException",
266
+ inputs: [{ name: "caller", type: "address", internalType: "address" }]
267
+ },
268
+ {
269
+ type: "error",
270
+ name: "CallerIsNotOperatorException",
271
+ inputs: [
272
+ { name: "token", type: "address", internalType: "address" },
273
+ { name: "caller", type: "address", internalType: "address" }
274
+ ]
275
+ },
276
+ {
277
+ type: "error",
278
+ name: "CreditAccountNotRegisteredException",
279
+ inputs: [
280
+ { name: "creditAccount", type: "address", internalType: "address" },
281
+ { name: "token", type: "address", internalType: "address" }
282
+ ]
283
+ },
284
+ {
285
+ type: "error",
286
+ name: "RegistrarNotSetForTokenException",
287
+ inputs: [{ name: "token", type: "address", internalType: "address" }]
288
+ },
289
+ {
290
+ type: "error",
291
+ name: "UnknownTokenException",
292
+ inputs: [{ name: "token", type: "address", internalType: "address" }]
293
+ },
294
+ {
295
+ type: "error",
296
+ name: "UnknownWalletException",
297
+ inputs: [{ name: "wallet", type: "address", internalType: "address" }]
298
+ }
299
+ ];
300
+ export {
301
+ iSecuritizeDegenNFTAbi
302
+ };
@@ -0,0 +1,295 @@
1
+ const iSecuritizeKYCFactoryAbi = [
2
+ {
3
+ type: "function",
4
+ name: "contractType",
5
+ inputs: [],
6
+ outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
7
+ stateMutability: "view"
8
+ },
9
+ {
10
+ type: "function",
11
+ name: "getCreditAccounts",
12
+ inputs: [{ name: "investor", type: "address", internalType: "address" }],
13
+ outputs: [{ name: "", type: "address[]", internalType: "address[]" }],
14
+ stateMutability: "view"
15
+ },
16
+ {
17
+ type: "function",
18
+ name: "getDegenNFT",
19
+ inputs: [],
20
+ outputs: [{ name: "", type: "address", internalType: "address" }],
21
+ stateMutability: "view"
22
+ },
23
+ {
24
+ type: "function",
25
+ name: "getInvestor",
26
+ inputs: [
27
+ { name: "creditAccount", type: "address", internalType: "address" }
28
+ ],
29
+ outputs: [{ name: "", type: "address", internalType: "address" }],
30
+ stateMutability: "view"
31
+ },
32
+ {
33
+ type: "function",
34
+ name: "getTokens",
35
+ inputs: [],
36
+ outputs: [{ name: "", type: "address[]", internalType: "address[]" }],
37
+ stateMutability: "view"
38
+ },
39
+ {
40
+ type: "function",
41
+ name: "getWallet",
42
+ inputs: [
43
+ { name: "creditAccount", type: "address", internalType: "address" }
44
+ ],
45
+ outputs: [{ name: "", type: "address", internalType: "address" }],
46
+ stateMutability: "view"
47
+ },
48
+ {
49
+ type: "function",
50
+ name: "isCreditAccount",
51
+ inputs: [
52
+ { name: "creditAccount", type: "address", internalType: "address" }
53
+ ],
54
+ outputs: [{ name: "", type: "bool", internalType: "bool" }],
55
+ stateMutability: "view"
56
+ },
57
+ {
58
+ type: "function",
59
+ name: "isFrozen",
60
+ inputs: [
61
+ { name: "creditAccount", type: "address", internalType: "address" }
62
+ ],
63
+ outputs: [{ name: "", type: "bool", internalType: "bool" }],
64
+ stateMutability: "view"
65
+ },
66
+ {
67
+ type: "function",
68
+ name: "multicall",
69
+ inputs: [
70
+ { name: "creditAccount", type: "address", internalType: "address" },
71
+ {
72
+ name: "calls",
73
+ type: "tuple[]",
74
+ internalType: "struct MultiCall[]",
75
+ components: [
76
+ { name: "target", type: "address", internalType: "address" },
77
+ { name: "callData", type: "bytes", internalType: "bytes" }
78
+ ]
79
+ },
80
+ {
81
+ name: "tokensToRegister",
82
+ type: "address[]",
83
+ internalType: "address[]"
84
+ },
85
+ {
86
+ name: "signaturesToCache",
87
+ type: "tuple[]",
88
+ internalType: "struct ISecuritizeDegenNFT.RegisterMessage[]",
89
+ components: [
90
+ { name: "token", type: "address", internalType: "address" },
91
+ {
92
+ name: "signature",
93
+ type: "tuple",
94
+ internalType: "struct ISecuritizeDegenNFT.Signature",
95
+ components: [
96
+ { name: "deadline", type: "uint256", internalType: "uint256" },
97
+ { name: "signature", type: "bytes", internalType: "bytes" }
98
+ ]
99
+ }
100
+ ]
101
+ }
102
+ ],
103
+ outputs: [],
104
+ stateMutability: "nonpayable"
105
+ },
106
+ {
107
+ type: "function",
108
+ name: "openCreditAccount",
109
+ inputs: [
110
+ { name: "creditManager", type: "address", internalType: "address" },
111
+ {
112
+ name: "calls",
113
+ type: "tuple[]",
114
+ internalType: "struct MultiCall[]",
115
+ components: [
116
+ { name: "target", type: "address", internalType: "address" },
117
+ { name: "callData", type: "bytes", internalType: "bytes" }
118
+ ]
119
+ },
120
+ {
121
+ name: "tokensToRegister",
122
+ type: "address[]",
123
+ internalType: "address[]"
124
+ },
125
+ {
126
+ name: "signaturesToCache",
127
+ type: "tuple[]",
128
+ internalType: "struct ISecuritizeDegenNFT.RegisterMessage[]",
129
+ components: [
130
+ { name: "token", type: "address", internalType: "address" },
131
+ {
132
+ name: "signature",
133
+ type: "tuple",
134
+ internalType: "struct ISecuritizeDegenNFT.Signature",
135
+ components: [
136
+ { name: "deadline", type: "uint256", internalType: "uint256" },
137
+ { name: "signature", type: "bytes", internalType: "bytes" }
138
+ ]
139
+ }
140
+ ]
141
+ }
142
+ ],
143
+ outputs: [
144
+ { name: "creditAccount", type: "address", internalType: "address" },
145
+ { name: "wallet", type: "address", internalType: "address" }
146
+ ],
147
+ stateMutability: "nonpayable"
148
+ },
149
+ {
150
+ type: "function",
151
+ name: "precomputeWalletAddress",
152
+ inputs: [
153
+ { name: "creditManager", type: "address", internalType: "address" },
154
+ { name: "investor", type: "address", internalType: "address" }
155
+ ],
156
+ outputs: [{ name: "", type: "address", internalType: "address" }],
157
+ stateMutability: "view"
158
+ },
159
+ {
160
+ type: "function",
161
+ name: "serialize",
162
+ inputs: [],
163
+ outputs: [{ name: "serializedData", type: "bytes", internalType: "bytes" }],
164
+ stateMutability: "view"
165
+ },
166
+ {
167
+ type: "function",
168
+ name: "setFrozenStatus",
169
+ inputs: [
170
+ { name: "creditAccount", type: "address", internalType: "address" },
171
+ { name: "frozen", type: "bool", internalType: "bool" }
172
+ ],
173
+ outputs: [],
174
+ stateMutability: "nonpayable"
175
+ },
176
+ {
177
+ type: "function",
178
+ name: "setInvestor",
179
+ inputs: [
180
+ { name: "creditAccount", type: "address", internalType: "address" },
181
+ { name: "investor", type: "address", internalType: "address" }
182
+ ],
183
+ outputs: [],
184
+ stateMutability: "nonpayable"
185
+ },
186
+ {
187
+ type: "function",
188
+ name: "version",
189
+ inputs: [],
190
+ outputs: [{ name: "", type: "uint256", internalType: "uint256" }],
191
+ stateMutability: "view"
192
+ },
193
+ {
194
+ type: "event",
195
+ name: "CreateWallet",
196
+ inputs: [
197
+ {
198
+ name: "creditAccount",
199
+ type: "address",
200
+ indexed: true,
201
+ internalType: "address"
202
+ },
203
+ {
204
+ name: "wallet",
205
+ type: "address",
206
+ indexed: true,
207
+ internalType: "address"
208
+ },
209
+ {
210
+ name: "investor",
211
+ type: "address",
212
+ indexed: true,
213
+ internalType: "address"
214
+ }
215
+ ],
216
+ anonymous: false
217
+ },
218
+ {
219
+ type: "event",
220
+ name: "SetFrozenStatus",
221
+ inputs: [
222
+ {
223
+ name: "creditAccount",
224
+ type: "address",
225
+ indexed: true,
226
+ internalType: "address"
227
+ },
228
+ { name: "frozen", type: "bool", indexed: false, internalType: "bool" }
229
+ ],
230
+ anonymous: false
231
+ },
232
+ {
233
+ type: "event",
234
+ name: "SetInvestor",
235
+ inputs: [
236
+ {
237
+ name: "creditAccount",
238
+ type: "address",
239
+ indexed: true,
240
+ internalType: "address"
241
+ },
242
+ {
243
+ name: "oldInvestor",
244
+ type: "address",
245
+ indexed: true,
246
+ internalType: "address"
247
+ },
248
+ {
249
+ name: "newInvestor",
250
+ type: "address",
251
+ indexed: true,
252
+ internalType: "address"
253
+ }
254
+ ],
255
+ anonymous: false
256
+ },
257
+ {
258
+ type: "error",
259
+ name: "CallerIsNotInvestorException",
260
+ inputs: [
261
+ { name: "caller", type: "address", internalType: "address" },
262
+ { name: "creditAccount", type: "address", internalType: "address" }
263
+ ]
264
+ },
265
+ {
266
+ type: "error",
267
+ name: "FrozenCreditAccountException",
268
+ inputs: [
269
+ { name: "creditAccount", type: "address", internalType: "address" }
270
+ ]
271
+ },
272
+ {
273
+ type: "error",
274
+ name: "InvalidCreditManagerException",
275
+ inputs: [
276
+ { name: "creditManager", type: "address", internalType: "address" }
277
+ ]
278
+ },
279
+ {
280
+ type: "error",
281
+ name: "InvalidUnderlyingTokenException",
282
+ inputs: [{ name: "underlying", type: "address", internalType: "address" }]
283
+ },
284
+ {
285
+ type: "error",
286
+ name: "UnknownCreditAccountException",
287
+ inputs: [
288
+ { name: "creditAccount", type: "address", internalType: "address" }
289
+ ]
290
+ },
291
+ { type: "error", name: "ZeroAddressException", inputs: [] }
292
+ ];
293
+ export {
294
+ iSecuritizeKYCFactoryAbi
295
+ };
@@ -6,7 +6,7 @@ import {
6
6
  parseEventLogs
7
7
  } from "viem";
8
8
  import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
9
- import { iCreditFacadeV310Abi, iPoolV310Abi } from "../abi/310/generated.js";
9
+ import { iCreditFacadeV310Abi } from "../abi/310/generated.js";
10
10
  import { ierc20Abi } from "../abi/iERC20.js";
11
11
  import {
12
12
  ADDRESS_0X0,
@@ -15,6 +15,7 @@ import {
15
15
  childLogger,
16
16
  MAX_UINT256,
17
17
  PERCENTAGE_FACTOR,
18
+ PoolService,
18
19
  SDKConstruct,
19
20
  sendRawTx
20
21
  } from "../sdk/index.js";
@@ -43,6 +44,7 @@ class AccountOpener extends SDKConstruct {
43
44
  #minDebtMultiplier;
44
45
  #allowMint;
45
46
  #leverageDelta;
47
+ #poolService;
46
48
  constructor(service, options_ = {}) {
47
49
  super(service.sdk);
48
50
  const {
@@ -68,6 +70,7 @@ class AccountOpener extends SDKConstruct {
68
70
  this.#poolDepositMultiplier = BigInt(poolDepositMultiplier);
69
71
  this.#minDebtMultiplier = BigInt(minDebtMultiplier);
70
72
  this.#leverageDelta = BigInt(leverageDelta);
73
+ this.#poolService = new PoolService(service.sdk);
71
74
  this.#logger?.info(
72
75
  {
73
76
  borrower: privateKeyToAccount(this.borrowerKey).address,
@@ -105,6 +108,10 @@ class AccountOpener extends SDKConstruct {
105
108
  },
106
109
  "opening credit accounts"
107
110
  );
111
+ await Promise.all([
112
+ this.sdk.tokensMeta.loadTokenData(),
113
+ this.sdk.marketRegister.loadZappers()
114
+ ]);
108
115
  let deposits = [];
109
116
  if (depositIntoPools) {
110
117
  try {
@@ -456,9 +463,34 @@ class AccountOpener extends SDKConstruct {
456
463
  this.#logger?.debug(
457
464
  `depositor balance in underlying: ${this.sdk.tokensMeta.formatBN(pool.underlying, allowance, { symbol: true })}`
458
465
  );
466
+ const tokensOut = this.#poolService.getDepositTokensOut(
467
+ address,
468
+ underlying
469
+ );
470
+ this.#logger?.debug(
471
+ { tokensOut: tokensOut.map((t) => this.labelAddress(t)) },
472
+ "deposit tokens out"
473
+ );
474
+ if (tokensOut.length === 0) {
475
+ throw new Error(`no tokens out found for pool ${poolName}`);
476
+ }
477
+ const tokenOut = tokensOut[0];
478
+ const metadata = this.#poolService.getDepositMetadata(
479
+ address,
480
+ underlying,
481
+ tokenOut
482
+ );
483
+ this.logger?.debug(
484
+ {
485
+ underlying: this.labelAddress(underlying),
486
+ tokenOut: this.labelAddress(tokenOut),
487
+ ...metadata
488
+ },
489
+ "pool deposit metadata"
490
+ );
459
491
  txHash = await this.#anvil.writeContract({
460
492
  account: depositor,
461
- address: underlying,
493
+ address: metadata.approveTarget,
462
494
  abi: ierc20Abi,
463
495
  functionName: "approve",
464
496
  args: [address, allowance],
@@ -475,12 +507,21 @@ class AccountOpener extends SDKConstruct {
475
507
  this.#logger?.debug(
476
508
  `depositor approved underlying for pool ${poolName}: ${txHash}`
477
509
  );
510
+ const depositCall = this.#poolService.addLiquidity({
511
+ collateral: { token: underlying, balance: amount },
512
+ pool: address,
513
+ wallet: depositor.address,
514
+ meta: metadata
515
+ });
516
+ if (!depositCall) {
517
+ throw new Error(`no deposit call could be created for ${poolName}`);
518
+ }
478
519
  txHash = await this.#anvil.writeContract({
479
520
  account: depositor,
480
- address,
481
- abi: iPoolV310Abi,
482
- functionName: "deposit",
483
- args: [amount, depositor.address],
521
+ address: depositCall.target,
522
+ abi: depositCall.abi,
523
+ functionName: depositCall.functionName,
524
+ args: depositCall.args,
484
525
  chain: this.#anvil.chain
485
526
  });
486
527
  receipt = await this.#anvil.waitForTransactionReceipt({ hash: txHash });