@gearbox-protocol/sdk 13.6.0-kyc.7 → 13.6.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 (152) hide show
  1. package/dist/cjs/dev/AccountOpener.js +5 -45
  2. package/dist/cjs/plugins/adapters/abi/actionAbi.js +1 -1
  3. package/dist/cjs/plugins/adapters/abi/conctructorAbi.js +1 -1
  4. package/dist/cjs/plugins/adapters/createAdapter.js +1 -1
  5. package/dist/cjs/plugins/adapters/types.js +1 -1
  6. package/dist/cjs/plugins/apy/ApyPlugin.js +266 -0
  7. package/dist/cjs/plugins/apy/apy-cache.js +120 -0
  8. package/dist/cjs/plugins/apy/apy-parser.js +169 -0
  9. package/dist/cjs/{sdk/market/kyc/securitize → plugins/apy}/constants.js +6 -3
  10. package/dist/cjs/{sdk/market/kyc/securitize → plugins/apy}/index.js +14 -6
  11. package/dist/cjs/{sdk/market/kyc/securitize/types.js → plugins/apy/pool-apy-types.js} +2 -2
  12. package/dist/cjs/plugins/apy/pool-apy-utils.js +141 -0
  13. package/dist/cjs/rewards/rewards/extra-apy.js +10 -8
  14. package/dist/cjs/sdk/GearboxSDK.js +5 -52
  15. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +16 -324
  16. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +1 -7
  17. package/dist/cjs/sdk/base/TokensMeta.js +43 -32
  18. package/dist/cjs/sdk/base/token-types.js +0 -9
  19. package/dist/cjs/sdk/chain/chains.js +32 -17
  20. package/dist/cjs/sdk/constants/address-provider.js +0 -3
  21. package/dist/cjs/sdk/market/MarketRegister.js +116 -70
  22. package/dist/cjs/sdk/market/MarketSuite.js +0 -3
  23. package/dist/cjs/sdk/market/index.js +0 -2
  24. package/dist/cjs/sdk/market/pool/PoolSuite.js +0 -3
  25. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +2 -11
  26. package/dist/cjs/sdk/market/pool/index.js +0 -2
  27. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -3
  28. package/dist/cjs/sdk/options.js +1 -7
  29. package/dist/cjs/sdk/pools/PoolService.js +12 -104
  30. package/dist/cjs/sdk/utils/viem/index.js +0 -2
  31. package/dist/cjs/sdk/utils/viem/simulateWithPriceUpdates.js +39 -2
  32. package/dist/esm/dev/AccountOpener.js +6 -47
  33. package/dist/esm/plugins/adapters/abi/actionAbi.js +1 -1
  34. package/dist/esm/plugins/adapters/abi/conctructorAbi.js +1 -1
  35. package/dist/esm/plugins/adapters/createAdapter.js +1 -1
  36. package/dist/esm/plugins/adapters/types.js +1 -1
  37. package/dist/esm/plugins/apy/ApyPlugin.js +255 -0
  38. package/dist/esm/plugins/apy/apy-cache.js +86 -0
  39. package/dist/esm/plugins/apy/apy-parser.js +143 -0
  40. package/dist/esm/plugins/apy/constants.js +6 -0
  41. package/dist/esm/plugins/apy/index.js +7 -0
  42. package/dist/esm/plugins/apy/pool-apy-utils.js +113 -0
  43. package/dist/esm/rewards/rewards/extra-apy.js +10 -8
  44. package/dist/esm/sdk/GearboxSDK.js +6 -56
  45. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +17 -328
  46. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +1 -7
  47. package/dist/esm/sdk/base/TokensMeta.js +45 -32
  48. package/dist/esm/sdk/base/token-types.js +0 -6
  49. package/dist/esm/sdk/chain/chains.js +32 -17
  50. package/dist/esm/sdk/constants/address-provider.js +0 -2
  51. package/dist/esm/sdk/market/MarketRegister.js +118 -74
  52. package/dist/esm/sdk/market/MarketSuite.js +0 -3
  53. package/dist/esm/sdk/market/index.js +0 -1
  54. package/dist/esm/sdk/market/pool/PoolSuite.js +0 -3
  55. package/dist/esm/sdk/market/pool/PoolV310Contract.js +2 -11
  56. package/dist/esm/sdk/market/pool/index.js +0 -1
  57. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -3
  58. package/dist/esm/sdk/options.js +1 -7
  59. package/dist/esm/sdk/pools/PoolService.js +13 -109
  60. package/dist/esm/sdk/utils/viem/index.js +0 -1
  61. package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +41 -2
  62. package/dist/types/plugins/adapters/types.d.ts +2 -2
  63. package/dist/types/plugins/apy/ApyPlugin.d.ts +46 -0
  64. package/dist/types/plugins/apy/apy-cache.d.ts +28 -0
  65. package/dist/types/plugins/apy/apy-parser.d.ts +5 -0
  66. package/dist/types/plugins/apy/constants.d.ts +2 -0
  67. package/dist/types/plugins/apy/index.d.ts +7 -0
  68. package/dist/types/plugins/apy/pool-apy-types.d.ts +41 -0
  69. package/dist/types/plugins/apy/pool-apy-utils.d.ts +73 -0
  70. package/dist/types/plugins/apy/types.d.ts +37 -0
  71. package/dist/types/rewards/rewards/api.d.ts +10 -1
  72. package/dist/types/rewards/rewards/common.d.ts +0 -10
  73. package/dist/types/rewards/rewards/extra-apy.d.ts +4 -6
  74. package/dist/types/sdk/GearboxSDK.d.ts +0 -7
  75. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +2 -52
  76. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  77. package/dist/types/sdk/accounts/types.d.ts +13 -93
  78. package/dist/types/sdk/base/TokensMeta.d.ts +3 -14
  79. package/dist/types/sdk/base/token-types.d.ts +4 -44
  80. package/dist/types/sdk/base/types.d.ts +11 -116
  81. package/dist/types/sdk/chain/chains.d.ts +5 -5
  82. package/dist/types/sdk/constants/address-provider.d.ts +0 -1
  83. package/dist/types/sdk/market/MarketRegister.d.ts +9 -6
  84. package/dist/types/sdk/market/MarketSuite.d.ts +0 -2
  85. package/dist/types/sdk/market/index.d.ts +0 -1
  86. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +2 -3
  87. package/dist/types/sdk/market/oracle/types.d.ts +10 -3
  88. package/dist/types/sdk/market/pool/PoolSuite.d.ts +0 -2
  89. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +2 -6
  90. package/dist/types/sdk/market/pool/index.d.ts +0 -1
  91. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +1 -1
  92. package/dist/types/sdk/market/types.d.ts +1 -1
  93. package/dist/types/sdk/options.d.ts +0 -1
  94. package/dist/types/sdk/pools/PoolService.d.ts +8 -8
  95. package/dist/types/sdk/pools/types.d.ts +1 -1
  96. package/dist/types/sdk/types/state-human.d.ts +0 -2
  97. package/dist/types/sdk/types/state.d.ts +0 -5
  98. package/dist/types/sdk/utils/viem/index.d.ts +0 -1
  99. package/package.json +2 -3
  100. package/dist/cjs/abi/kyc/iDSRegistryService.js +0 -70
  101. package/dist/cjs/abi/kyc/iDSToken.js +0 -71
  102. package/dist/cjs/abi/kyc/iKYCCompressor.js +0 -196
  103. package/dist/cjs/abi/kyc/iKYCFactory.js +0 -122
  104. package/dist/cjs/abi/kyc/iKYCUnderlying.js +0 -401
  105. package/dist/cjs/abi/kyc/iSecuritizeDegenNFT.js +0 -326
  106. package/dist/cjs/abi/kyc/iSecuritizeKYCFactory.js +0 -319
  107. package/dist/cjs/plugins/pools-history/Pools7DAgoPlugin.js +0 -108
  108. package/dist/cjs/plugins/pools-history/index.js +0 -24
  109. package/dist/cjs/sdk/market/kyc/KYCRegistry.js +0 -269
  110. package/dist/cjs/sdk/market/kyc/index.js +0 -26
  111. package/dist/cjs/sdk/market/kyc/securitize/SecuritizeKYCFactory.js +0 -244
  112. package/dist/cjs/sdk/market/kyc/types.js +0 -34
  113. package/dist/cjs/sdk/utils/viem/executeDelegatedMulticalls.js +0 -38
  114. package/dist/esm/abi/kyc/iDSRegistryService.js +0 -46
  115. package/dist/esm/abi/kyc/iDSToken.js +0 -47
  116. package/dist/esm/abi/kyc/iKYCCompressor.js +0 -172
  117. package/dist/esm/abi/kyc/iKYCFactory.js +0 -98
  118. package/dist/esm/abi/kyc/iKYCUnderlying.js +0 -377
  119. package/dist/esm/abi/kyc/iSecuritizeDegenNFT.js +0 -302
  120. package/dist/esm/abi/kyc/iSecuritizeKYCFactory.js +0 -295
  121. package/dist/esm/plugins/pools-history/Pools7DAgoPlugin.js +0 -90
  122. package/dist/esm/plugins/pools-history/index.js +0 -2
  123. package/dist/esm/sdk/market/kyc/KYCRegistry.js +0 -253
  124. package/dist/esm/sdk/market/kyc/index.js +0 -3
  125. package/dist/esm/sdk/market/kyc/securitize/SecuritizeKYCFactory.js +0 -220
  126. package/dist/esm/sdk/market/kyc/securitize/constants.js +0 -4
  127. package/dist/esm/sdk/market/kyc/securitize/index.js +0 -3
  128. package/dist/esm/sdk/market/kyc/types.js +0 -9
  129. package/dist/esm/sdk/utils/viem/executeDelegatedMulticalls.js +0 -14
  130. package/dist/types/abi/kyc/iDSRegistryService.d.ts +0 -71
  131. package/dist/types/abi/kyc/iDSToken.d.ts +0 -67
  132. package/dist/types/abi/kyc/iKYCCompressor.d.ts +0 -228
  133. package/dist/types/abi/kyc/iKYCFactory.d.ts +0 -139
  134. package/dist/types/abi/kyc/iKYCUnderlying.d.ts +0 -548
  135. package/dist/types/abi/kyc/iSecuritizeDegenNFT.d.ts +0 -404
  136. package/dist/types/abi/kyc/iSecuritizeKYCFactory.d.ts +0 -376
  137. package/dist/types/plugins/pools-history/Pools7DAgoPlugin.d.ts +0 -20
  138. package/dist/types/plugins/pools-history/index.d.ts +0 -2
  139. package/dist/types/plugins/pools-history/types.d.ts +0 -9
  140. package/dist/types/sdk/market/kyc/KYCRegistry.d.ts +0 -52
  141. package/dist/types/sdk/market/kyc/index.d.ts +0 -3
  142. package/dist/types/sdk/market/kyc/securitize/SecuritizeKYCFactory.d.ts +0 -428
  143. package/dist/types/sdk/market/kyc/securitize/constants.d.ts +0 -1
  144. package/dist/types/sdk/market/kyc/securitize/index.d.ts +0 -3
  145. package/dist/types/sdk/market/kyc/securitize/types.d.ts +0 -127
  146. package/dist/types/sdk/market/kyc/types.d.ts +0 -170
  147. package/dist/types/sdk/utils/viem/executeDelegatedMulticalls.d.ts +0 -28
  148. /package/dist/cjs/plugins/{pools-history → apy}/package.json +0 -0
  149. /package/dist/cjs/plugins/{pools-history → apy}/types.js +0 -0
  150. /package/dist/esm/plugins/{pools-history → apy}/package.json +0 -0
  151. /package/dist/esm/plugins/{pools-history/types.js → apy/pool-apy-types.js} +0 -0
  152. /package/dist/esm/{sdk/market/kyc/securitize → plugins/apy}/types.js +0 -0
@@ -1,295 +0,0 @@
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
- };
@@ -1,90 +0,0 @@
1
- import { marketCompressorAbi } from "../../abi/compressors/marketCompressor.js";
2
- import {
3
- AddressMap,
4
- AP_MARKET_COMPRESSOR,
5
- BasePlugin,
6
- BLOCKS_PER_WEEK_BY_NETWORK,
7
- VERSION_RANGE_310
8
- } from "../../sdk/index.js";
9
- const MAP_LABEL = "pools7DAgo";
10
- class Pools7DAgoPlugin extends BasePlugin {
11
- #pools7DAgo;
12
- async load(force) {
13
- if (!force && this.loaded) {
14
- return this.state;
15
- }
16
- const targetBlock = this.sdk.currentBlock - BLOCKS_PER_WEEK_BY_NETWORK[this.sdk.networkType];
17
- const [marketCompressorAddress] = this.sdk.addressProvider.mustGetLatest(
18
- AP_MARKET_COMPRESSOR,
19
- VERSION_RANGE_310
20
- );
21
- this.sdk.logger?.debug(
22
- `loading pools 7d ago with market compressor ${marketCompressorAddress}`
23
- );
24
- const markets = this.sdk.marketRegister.markets;
25
- const resp = await this.client.multicall({
26
- allowFailure: true,
27
- contracts: markets.map(
28
- (m) => ({
29
- address: marketCompressorAddress,
30
- abi: marketCompressorAbi,
31
- functionName: "getPoolState",
32
- args: [m.pool.pool.address]
33
- })
34
- ),
35
- blockNumber: targetBlock > 0n ? targetBlock : void 0,
36
- batchSize: 0
37
- });
38
- this.#pools7DAgo = new AddressMap(void 0, MAP_LABEL);
39
- resp.forEach((r, index) => {
40
- const m = markets[index];
41
- const cfg = m.configurator.address;
42
- const pool = m.pool.pool.address;
43
- if (r.status === "success") {
44
- this.#pools7DAgo?.upsert(m.pool.pool.address, {
45
- dieselRate: r.result.dieselRate,
46
- pool
47
- });
48
- } else {
49
- this.sdk.logger?.error(
50
- `failed to load pools 7d ago for market configurator ${this.labelAddress(cfg)} and pool ${this.labelAddress(pool)}: ${r.error}`
51
- );
52
- }
53
- });
54
- return this.state;
55
- }
56
- get loaded() {
57
- return !!this.#pools7DAgo;
58
- }
59
- /**
60
- * Returns a map of pool addresses to minified pool 7d ago state
61
- * @throws if pool 7d ago plugin is not attached
62
- */
63
- get pools7DAgo() {
64
- if (!this.#pools7DAgo) {
65
- throw new Error("pools 7d ago plugin not attached");
66
- }
67
- return this.#pools7DAgo;
68
- }
69
- stateHuman(_) {
70
- return this.pools7DAgo.values().flatMap((p) => ({
71
- address: p.pool,
72
- version: this.version,
73
- dieselRate: p.dieselRate
74
- }));
75
- }
76
- get state() {
77
- return {
78
- pools7DAgo: this.pools7DAgo.asRecord()
79
- };
80
- }
81
- hydrate(state) {
82
- this.#pools7DAgo = new AddressMap(
83
- Object.entries(state.pools7DAgo),
84
- MAP_LABEL
85
- );
86
- }
87
- }
88
- export {
89
- Pools7DAgoPlugin
90
- };
@@ -1,2 +0,0 @@
1
- export * from "./Pools7DAgoPlugin.js";
2
- export * from "./types.js";
@@ -1,253 +0,0 @@
1
- import { decodeAbiParameters } from "viem";
2
- import { iKYCCompressorAbi } from "../../../abi/kyc/iKYCCompressor.js";
3
- import {
4
- KYC_ON_DEMAND_LP_MONOPOLIZED,
5
- KYC_UNDERLYING_DEFAULT,
6
- KYC_UNDERLYING_ON_DEMAND,
7
- SDKConstruct
8
- } from "../../base/index.js";
9
- import { AP_KYC_COMPRESSOR, VERSION_RANGE_310 } from "../../constants/index.js";
10
- import { AddressMap, bytes32ToString } from "../../utils/index.js";
11
- import {
12
- KYC_FACTORY_SECURITIZE,
13
- SecuritizeKYCFactory
14
- } from "./securitize/index.js";
15
- class KYCRegistry extends SDKConstruct {
16
- #state;
17
- #factories = new AddressMap();
18
- /**
19
- * @internal
20
- *
21
- * Returns delegated multicalls for loading all KYC underlying tokens from the on-chain KYC compressor.
22
- * Used by the SDK to compose batched RPC calls.
23
- *
24
- * @param configurators - Market configurators to query.
25
- * @param kycFactories - KYC factory contracts to query.
26
- */
27
- getLoadMulticalls(configurators, kycFactories = []) {
28
- if (!kycFactories.length) return [];
29
- const [kycCompressorAddress] = this.sdk.addressProvider.mustGetLatest(
30
- AP_KYC_COMPRESSOR,
31
- VERSION_RANGE_310
32
- );
33
- return [
34
- {
35
- call: {
36
- abi: iKYCCompressorAbi,
37
- address: kycCompressorAddress,
38
- functionName: "getKYCMarketsData",
39
- args: [configurators, kycFactories]
40
- },
41
- onResult: (resp) => this.setState(resp)
42
- }
43
- ];
44
- }
45
- /**
46
- * Fetches decoded investor data from the on-chain KYC compressor.
47
- *
48
- * Each factory produces its own investor data (e.g. registered tokens,
49
- * cached signatures, EIP-712 messages to sign).
50
- *
51
- * @param investor - Investor EOA address.
52
- * @param factories_ - Optional subset of factory addresses to query.
53
- * When omitted, all loaded factories are used.
54
- */
55
- async getInvestorData(investor, factories_) {
56
- const [kycCompressorAddress] = this.sdk.addressProvider.mustGetLatest(
57
- AP_KYC_COMPRESSOR,
58
- VERSION_RANGE_310
59
- );
60
- let factories = this.#factories.values();
61
- if (factories_?.length) {
62
- factories = factories_.map((f) => this.#factories.mustGet(f));
63
- }
64
- const resp = await this.client.readContract({
65
- abi: iKYCCompressorAbi,
66
- address: kycCompressorAddress,
67
- functionName: "getKYCInvestorData",
68
- args: [investor, factories.map((f) => f.address)]
69
- });
70
- const result = [];
71
- for (let i = 0; i < factories.length; i++) {
72
- const factory = factories[i];
73
- const factoryData = resp[i];
74
- const investorData = factory.decodeInvestorData(factoryData);
75
- result.push(investorData);
76
- }
77
- return result;
78
- }
79
- /** All loaded KYC factory instances. */
80
- get factories() {
81
- return this.#factories.values();
82
- }
83
- /** Raw KYC compressor response, or `undefined` before attach/hydrate. */
84
- get state() {
85
- return this.#state;
86
- }
87
- /**
88
- * Returns a human-readable snapshot of the KYC state.
89
- */
90
- stateHuman(raw) {
91
- return {
92
- factories: this.factories.map((f) => f.stateHuman(raw))
93
- };
94
- }
95
- /**
96
- * @internal
97
- *
98
- * Replaces the internal state with a new KYC compressor response.
99
- * Rebuilds token metadata for KYC underlyings and re-instantiates factory
100
- * wrappers.
101
- */
102
- setState(resp) {
103
- this.#state = resp;
104
- for (const u of resp?.[0] ?? []) {
105
- this.#loadUnderlyingTokenData(u);
106
- }
107
- this.#factories.clear();
108
- for (const f of resp?.[1] ?? []) {
109
- this.#loadKYCFactoryData(f);
110
- }
111
- }
112
- #loadUnderlyingTokenData(u) {
113
- const contractType = bytes32ToString(u.baseParams.contractType);
114
- const meta = this.tokensMeta.get(u.baseParams.addr);
115
- if (!meta) {
116
- throw new Error(
117
- `KYC underlying token ${contractType} (${u.baseParams.addr}) not found in tokensMeta`
118
- );
119
- }
120
- switch (contractType) {
121
- case KYC_UNDERLYING_DEFAULT:
122
- this.#loadKYCUnderlyingDefault(meta, u);
123
- break;
124
- case KYC_UNDERLYING_ON_DEMAND:
125
- this.#loadKYCUnderlyingOnDemand(meta, u);
126
- break;
127
- default:
128
- if (this.sdk.strictContractTypes) {
129
- throw new Error(`Unknown KYC underlying type: ${contractType}`);
130
- }
131
- this.logger?.warn(`unknown KYC underlying type: ${contractType}`);
132
- }
133
- }
134
- #loadKYCUnderlyingDefault(meta, data) {
135
- const decoded = decodeAbiParameters(
136
- [
137
- { name: "factory", type: "address" },
138
- { name: "asset", type: "address" }
139
- ],
140
- data.baseParams.serializedParams
141
- );
142
- this.tokensMeta.upsert(data.baseParams.addr, {
143
- ...meta,
144
- contractType: KYC_UNDERLYING_DEFAULT,
145
- kycFactory: decoded[0],
146
- asset: decoded[1]
147
- });
148
- }
149
- #loadKYCUnderlyingOnDemand(meta, data) {
150
- const decoded = decodeAbiParameters(
151
- [
152
- { name: "factory", type: "address" },
153
- { name: "asset", type: "address" },
154
- { name: "pool", type: "address" },
155
- { name: "liquidityProvider", type: "address" },
156
- { name: "marketConfigurator", type: "address" },
157
- { name: "allowedDepositors", type: "address[]" }
158
- ],
159
- data.baseParams.serializedParams
160
- );
161
- const lpMeta = this.#getOnDemandLPMeta(data.extraDetails);
162
- if (decoded[3] !== lpMeta.addr) {
163
- throw new Error(
164
- `Liquidity provider mismatch: ${decoded[3]} !== ${lpMeta.addr} for on-demand underlying ${data.baseParams.addr}`
165
- );
166
- }
167
- this.tokensMeta.upsert(data.baseParams.addr, {
168
- ...meta,
169
- contractType: KYC_UNDERLYING_ON_DEMAND,
170
- kycFactory: decoded[0],
171
- asset: decoded[1],
172
- pool: decoded[2],
173
- marketConfigurator: decoded[4],
174
- allowedDepositors: decoded[5],
175
- // liquidityProvider: decoded[3],
176
- liquidityProvider: lpMeta
177
- });
178
- }
179
- #getOnDemandLPMeta(extraDetails) {
180
- const [decoded] = decodeAbiParameters(
181
- [
182
- {
183
- name: "baseParams",
184
- type: "tuple",
185
- components: [
186
- { name: "addr", type: "address" },
187
- { name: "version", type: "uint256" },
188
- { name: "contractType", type: "bytes32" },
189
- { name: "serializedParams", type: "bytes" }
190
- ]
191
- }
192
- ],
193
- extraDetails
194
- );
195
- const contractType = bytes32ToString(decoded.contractType);
196
- switch (contractType) {
197
- case KYC_ON_DEMAND_LP_MONOPOLIZED:
198
- return this.#getOnDemandLPMonopolizedMeta(
199
- decoded.addr,
200
- decoded.version,
201
- decoded.serializedParams
202
- );
203
- default:
204
- throw new Error(`Unknown on-demand LP contract type: ${contractType}`);
205
- }
206
- }
207
- #getOnDemandLPMonopolizedMeta(addr, version, serializedParams) {
208
- const [marketConfigurator, depositor, pools] = decodeAbiParameters(
209
- [
210
- { name: "marketConfigurator", type: "address" },
211
- { name: "depositor", type: "address" },
212
- {
213
- name: "pools",
214
- type: "tuple[]",
215
- components: [
216
- { name: "pool", type: "address" },
217
- { name: "wrappedUnderlying", type: "address" },
218
- { name: "unwrappedUnderlying", type: "address" },
219
- { name: "depositAllowance", type: "uint256" },
220
- { name: "claimableAmount", type: "uint256" }
221
- ]
222
- }
223
- ],
224
- serializedParams
225
- );
226
- return {
227
- addr,
228
- version,
229
- contractType: KYC_ON_DEMAND_LP_MONOPOLIZED,
230
- marketConfigurator,
231
- depositor,
232
- pools: [...pools]
233
- };
234
- }
235
- #loadKYCFactoryData(data) {
236
- const contractType = bytes32ToString(data.baseParams.contractType);
237
- switch (contractType) {
238
- case KYC_FACTORY_SECURITIZE:
239
- this.#factories.upsert(
240
- data.baseParams.addr,
241
- new SecuritizeKYCFactory(this.sdk, data)
242
- );
243
- break;
244
- default:
245
- throw new Error(
246
- `Unknown KYC factory type: ${contractType} for ${data.baseParams.addr}`
247
- );
248
- }
249
- }
250
- }
251
- export {
252
- KYCRegistry
253
- };
@@ -1,3 +0,0 @@
1
- export * from "./KYCRegistry.js";
2
- export * from "./securitize/index.js";
3
- export * from "./types.js";