@gearbox-protocol/sdk 13.6.0-kyc.7 → 13.6.1

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 (155) hide show
  1. package/dist/cjs/dev/AccountOpener.js +5 -45
  2. package/dist/cjs/dev/logSplitterTransport.js +10 -1
  3. package/dist/cjs/plugins/adapters/abi/actionAbi.js +1 -1
  4. package/dist/cjs/plugins/adapters/abi/conctructorAbi.js +1 -1
  5. package/dist/cjs/plugins/adapters/createAdapter.js +1 -1
  6. package/dist/cjs/plugins/adapters/types.js +1 -1
  7. package/dist/cjs/plugins/apy/ApyPlugin.js +266 -0
  8. package/dist/cjs/plugins/apy/apy-cache.js +120 -0
  9. package/dist/cjs/plugins/apy/apy-parser.js +169 -0
  10. package/dist/cjs/{sdk/market/kyc/securitize → plugins/apy}/constants.js +6 -3
  11. package/dist/cjs/{sdk/market/kyc/securitize → plugins/apy}/index.js +14 -6
  12. package/dist/cjs/{sdk/market/kyc/securitize/types.js → plugins/apy/pool-apy-types.js} +2 -2
  13. package/dist/cjs/plugins/apy/pool-apy-utils.js +141 -0
  14. package/dist/cjs/rewards/rewards/extra-apy.js +10 -8
  15. package/dist/cjs/sdk/GearboxSDK.js +5 -52
  16. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +16 -324
  17. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +1 -7
  18. package/dist/cjs/sdk/base/TokensMeta.js +43 -32
  19. package/dist/cjs/sdk/base/token-types.js +0 -9
  20. package/dist/cjs/sdk/chain/chains.js +32 -17
  21. package/dist/cjs/sdk/constants/address-provider.js +0 -3
  22. package/dist/cjs/sdk/market/MarketRegister.js +116 -70
  23. package/dist/cjs/sdk/market/MarketSuite.js +0 -3
  24. package/dist/cjs/sdk/market/index.js +0 -2
  25. package/dist/cjs/sdk/market/pool/PoolSuite.js +0 -3
  26. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +2 -11
  27. package/dist/cjs/sdk/market/pool/index.js +0 -2
  28. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -3
  29. package/dist/cjs/sdk/options.js +1 -7
  30. package/dist/cjs/sdk/pools/PoolService.js +12 -104
  31. package/dist/cjs/sdk/utils/viem/index.js +0 -2
  32. package/dist/cjs/sdk/utils/viem/simulateWithPriceUpdates.js +39 -2
  33. package/dist/esm/dev/AccountOpener.js +6 -47
  34. package/dist/esm/dev/logSplitterTransport.js +10 -1
  35. package/dist/esm/plugins/adapters/abi/actionAbi.js +1 -1
  36. package/dist/esm/plugins/adapters/abi/conctructorAbi.js +1 -1
  37. package/dist/esm/plugins/adapters/createAdapter.js +1 -1
  38. package/dist/esm/plugins/adapters/types.js +1 -1
  39. package/dist/esm/plugins/apy/ApyPlugin.js +255 -0
  40. package/dist/esm/plugins/apy/apy-cache.js +86 -0
  41. package/dist/esm/plugins/apy/apy-parser.js +143 -0
  42. package/dist/esm/plugins/apy/constants.js +6 -0
  43. package/dist/esm/plugins/apy/index.js +7 -0
  44. package/dist/esm/plugins/apy/pool-apy-utils.js +113 -0
  45. package/dist/esm/rewards/rewards/extra-apy.js +10 -8
  46. package/dist/esm/sdk/GearboxSDK.js +6 -56
  47. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +17 -328
  48. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +1 -7
  49. package/dist/esm/sdk/base/TokensMeta.js +45 -32
  50. package/dist/esm/sdk/base/token-types.js +0 -6
  51. package/dist/esm/sdk/chain/chains.js +32 -17
  52. package/dist/esm/sdk/constants/address-provider.js +0 -2
  53. package/dist/esm/sdk/market/MarketRegister.js +118 -74
  54. package/dist/esm/sdk/market/MarketSuite.js +0 -3
  55. package/dist/esm/sdk/market/index.js +0 -1
  56. package/dist/esm/sdk/market/pool/PoolSuite.js +0 -3
  57. package/dist/esm/sdk/market/pool/PoolV310Contract.js +2 -11
  58. package/dist/esm/sdk/market/pool/index.js +0 -1
  59. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +3 -3
  60. package/dist/esm/sdk/options.js +1 -7
  61. package/dist/esm/sdk/pools/PoolService.js +13 -109
  62. package/dist/esm/sdk/utils/viem/index.js +0 -1
  63. package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +41 -2
  64. package/dist/types/dev/logSplitterTransport.d.ts +3 -1
  65. package/dist/types/plugins/adapters/types.d.ts +2 -2
  66. package/dist/types/plugins/apy/ApyPlugin.d.ts +46 -0
  67. package/dist/types/plugins/apy/apy-cache.d.ts +28 -0
  68. package/dist/types/plugins/apy/apy-parser.d.ts +5 -0
  69. package/dist/types/plugins/apy/constants.d.ts +2 -0
  70. package/dist/types/plugins/apy/index.d.ts +7 -0
  71. package/dist/types/plugins/apy/pool-apy-types.d.ts +41 -0
  72. package/dist/types/plugins/apy/pool-apy-utils.d.ts +73 -0
  73. package/dist/types/plugins/apy/types.d.ts +37 -0
  74. package/dist/types/rewards/rewards/api.d.ts +10 -1
  75. package/dist/types/rewards/rewards/common.d.ts +0 -10
  76. package/dist/types/rewards/rewards/extra-apy.d.ts +4 -6
  77. package/dist/types/sdk/GearboxSDK.d.ts +0 -7
  78. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +2 -52
  79. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  80. package/dist/types/sdk/accounts/types.d.ts +13 -93
  81. package/dist/types/sdk/base/TokensMeta.d.ts +3 -14
  82. package/dist/types/sdk/base/token-types.d.ts +4 -44
  83. package/dist/types/sdk/base/types.d.ts +11 -116
  84. package/dist/types/sdk/chain/chains.d.ts +5 -5
  85. package/dist/types/sdk/constants/address-provider.d.ts +0 -1
  86. package/dist/types/sdk/market/MarketRegister.d.ts +9 -6
  87. package/dist/types/sdk/market/MarketSuite.d.ts +0 -2
  88. package/dist/types/sdk/market/index.d.ts +0 -1
  89. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +2 -3
  90. package/dist/types/sdk/market/oracle/types.d.ts +10 -3
  91. package/dist/types/sdk/market/pool/PoolSuite.d.ts +0 -2
  92. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +2 -6
  93. package/dist/types/sdk/market/pool/index.d.ts +0 -1
  94. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +1 -1
  95. package/dist/types/sdk/market/types.d.ts +1 -1
  96. package/dist/types/sdk/options.d.ts +0 -1
  97. package/dist/types/sdk/pools/PoolService.d.ts +8 -8
  98. package/dist/types/sdk/pools/types.d.ts +1 -1
  99. package/dist/types/sdk/types/state-human.d.ts +0 -2
  100. package/dist/types/sdk/types/state.d.ts +0 -5
  101. package/dist/types/sdk/utils/viem/index.d.ts +0 -1
  102. package/package.json +2 -3
  103. package/dist/cjs/abi/kyc/iDSRegistryService.js +0 -70
  104. package/dist/cjs/abi/kyc/iDSToken.js +0 -71
  105. package/dist/cjs/abi/kyc/iKYCCompressor.js +0 -196
  106. package/dist/cjs/abi/kyc/iKYCFactory.js +0 -122
  107. package/dist/cjs/abi/kyc/iKYCUnderlying.js +0 -401
  108. package/dist/cjs/abi/kyc/iSecuritizeDegenNFT.js +0 -326
  109. package/dist/cjs/abi/kyc/iSecuritizeKYCFactory.js +0 -319
  110. package/dist/cjs/plugins/pools-history/Pools7DAgoPlugin.js +0 -108
  111. package/dist/cjs/plugins/pools-history/index.js +0 -24
  112. package/dist/cjs/sdk/market/kyc/KYCRegistry.js +0 -269
  113. package/dist/cjs/sdk/market/kyc/index.js +0 -26
  114. package/dist/cjs/sdk/market/kyc/securitize/SecuritizeKYCFactory.js +0 -244
  115. package/dist/cjs/sdk/market/kyc/types.js +0 -34
  116. package/dist/cjs/sdk/utils/viem/executeDelegatedMulticalls.js +0 -38
  117. package/dist/esm/abi/kyc/iDSRegistryService.js +0 -46
  118. package/dist/esm/abi/kyc/iDSToken.js +0 -47
  119. package/dist/esm/abi/kyc/iKYCCompressor.js +0 -172
  120. package/dist/esm/abi/kyc/iKYCFactory.js +0 -98
  121. package/dist/esm/abi/kyc/iKYCUnderlying.js +0 -377
  122. package/dist/esm/abi/kyc/iSecuritizeDegenNFT.js +0 -302
  123. package/dist/esm/abi/kyc/iSecuritizeKYCFactory.js +0 -295
  124. package/dist/esm/plugins/pools-history/Pools7DAgoPlugin.js +0 -90
  125. package/dist/esm/plugins/pools-history/index.js +0 -2
  126. package/dist/esm/sdk/market/kyc/KYCRegistry.js +0 -253
  127. package/dist/esm/sdk/market/kyc/index.js +0 -3
  128. package/dist/esm/sdk/market/kyc/securitize/SecuritizeKYCFactory.js +0 -220
  129. package/dist/esm/sdk/market/kyc/securitize/constants.js +0 -4
  130. package/dist/esm/sdk/market/kyc/securitize/index.js +0 -3
  131. package/dist/esm/sdk/market/kyc/types.js +0 -9
  132. package/dist/esm/sdk/utils/viem/executeDelegatedMulticalls.js +0 -14
  133. package/dist/types/abi/kyc/iDSRegistryService.d.ts +0 -71
  134. package/dist/types/abi/kyc/iDSToken.d.ts +0 -67
  135. package/dist/types/abi/kyc/iKYCCompressor.d.ts +0 -228
  136. package/dist/types/abi/kyc/iKYCFactory.d.ts +0 -139
  137. package/dist/types/abi/kyc/iKYCUnderlying.d.ts +0 -548
  138. package/dist/types/abi/kyc/iSecuritizeDegenNFT.d.ts +0 -404
  139. package/dist/types/abi/kyc/iSecuritizeKYCFactory.d.ts +0 -376
  140. package/dist/types/plugins/pools-history/Pools7DAgoPlugin.d.ts +0 -20
  141. package/dist/types/plugins/pools-history/index.d.ts +0 -2
  142. package/dist/types/plugins/pools-history/types.d.ts +0 -9
  143. package/dist/types/sdk/market/kyc/KYCRegistry.d.ts +0 -52
  144. package/dist/types/sdk/market/kyc/index.d.ts +0 -3
  145. package/dist/types/sdk/market/kyc/securitize/SecuritizeKYCFactory.d.ts +0 -428
  146. package/dist/types/sdk/market/kyc/securitize/constants.d.ts +0 -1
  147. package/dist/types/sdk/market/kyc/securitize/index.d.ts +0 -3
  148. package/dist/types/sdk/market/kyc/securitize/types.d.ts +0 -127
  149. package/dist/types/sdk/market/kyc/types.d.ts +0 -170
  150. package/dist/types/sdk/utils/viem/executeDelegatedMulticalls.d.ts +0 -28
  151. /package/dist/cjs/plugins/{pools-history → apy}/package.json +0 -0
  152. /package/dist/cjs/plugins/{pools-history → apy}/types.js +0 -0
  153. /package/dist/esm/plugins/{pools-history → apy}/package.json +0 -0
  154. /package/dist/esm/plugins/{pools-history/types.js → apy/pool-apy-types.js} +0 -0
  155. /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";