@gearbox-protocol/sdk 13.3.0-next.2 → 13.3.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 (219) hide show
  1. package/dist/cjs/common-utils/charts/credit-manager-payload.js +16 -0
  2. package/dist/cjs/common-utils/charts/credit-manager.js +134 -0
  3. package/dist/cjs/common-utils/charts/credit-session.js +257 -0
  4. package/dist/cjs/common-utils/charts/credit-sessions-payload.js +16 -0
  5. package/dist/cjs/common-utils/charts/graph-payload.js +16 -0
  6. package/dist/cjs/common-utils/charts/index.js +36 -0
  7. package/dist/cjs/common-utils/charts/pool-payload.js +16 -0
  8. package/dist/cjs/common-utils/charts/pool.js +199 -0
  9. package/dist/cjs/common-utils/charts/token-data.js +91 -0
  10. package/dist/cjs/common-utils/index.js +4 -0
  11. package/dist/cjs/common-utils/static/index.js +28 -0
  12. package/dist/cjs/common-utils/static/migration-config.js +16 -0
  13. package/dist/cjs/common-utils/static/pool-config.js +16 -0
  14. package/dist/cjs/common-utils/static/strategy.js +16 -0
  15. package/dist/cjs/common-utils/static/trading-pair.js +16 -0
  16. package/dist/cjs/common-utils/utils/{assetsMath.js → assets-math.js} +13 -13
  17. package/dist/cjs/common-utils/utils/{bigintMath.js → bigint-math.js} +3 -3
  18. package/dist/cjs/common-utils/utils/creditAccount/{calcHealthFactor.js → calc-health-factor.js} +9 -9
  19. package/dist/cjs/common-utils/utils/creditAccount/{calcOverallAPY.js → calc-overall-apy.js} +8 -8
  20. package/dist/cjs/common-utils/utils/creditAccount/{calcQuotaBorrowRate.js → calc-quota-borrow-rate.js} +3 -3
  21. package/dist/cjs/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.js → calc-relative-base-borrow-rate.js} +3 -3
  22. package/dist/cjs/common-utils/utils/creditAccount/debt.js +4 -4
  23. package/dist/cjs/common-utils/utils/creditAccount/{getTimeToLiquidation.js → get-time-to-liquidation.js} +3 -3
  24. package/dist/cjs/common-utils/utils/creditAccount/index.js +16 -16
  25. package/dist/cjs/common-utils/utils/creditAccount/{liquidationPrice.js → liquidation-price.js} +3 -3
  26. package/dist/cjs/common-utils/utils/creditAccount/{quotaUtils.js → quota-utils.js} +8 -8
  27. package/dist/cjs/common-utils/utils/creditAccount/sort.js +3 -3
  28. package/dist/cjs/common-utils/utils/index.js +6 -8
  29. package/dist/cjs/common-utils/utils/{priceMath.js → price-math.js} +3 -3
  30. package/dist/cjs/dev/AccountOpener.js +5 -45
  31. package/dist/cjs/dev/index.js +0 -2
  32. package/dist/cjs/plugins/zappers/ZappersPlugin.js +144 -0
  33. package/dist/cjs/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +6 -110
  34. package/dist/cjs/plugins/zappers/index.js +26 -0
  35. package/dist/cjs/plugins/zappers/package.json +1 -0
  36. package/dist/cjs/rewards/apy/index.js +24 -0
  37. package/dist/cjs/rewards/apy/output-details.js +16 -0
  38. package/dist/cjs/rewards/apy/output.js +16 -0
  39. package/dist/cjs/rewards/index.js +24 -0
  40. package/dist/cjs/rewards/package.json +1 -0
  41. package/dist/cjs/rewards/rewards/api.js +226 -0
  42. package/dist/cjs/rewards/rewards/apy.js +177 -0
  43. package/dist/cjs/rewards/rewards/common.js +16 -0
  44. package/dist/cjs/rewards/rewards/extra-apy.js +132 -0
  45. package/dist/cjs/rewards/rewards/index.js +28 -0
  46. package/dist/cjs/rewards/rewards/merkl-api.js +52 -0
  47. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +104 -462
  48. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +5 -16
  49. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -1
  50. package/dist/cjs/sdk/base/TokensMeta.js +32 -255
  51. package/dist/cjs/sdk/base/index.js +0 -2
  52. package/dist/cjs/sdk/chain/chains.js +1 -2
  53. package/dist/cjs/sdk/constants/index.js +2 -0
  54. package/dist/cjs/sdk/{base/token-types.js → constants/phantom-tokens.js} +3 -9
  55. package/dist/cjs/sdk/market/MarketRegister.js +2 -2
  56. package/dist/cjs/sdk/market/MarketSuite.js +0 -6
  57. package/dist/cjs/sdk/market/index.js +1 -3
  58. package/dist/cjs/sdk/market/pool/PoolSuite.js +0 -3
  59. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +2 -17
  60. package/dist/cjs/sdk/market/pool/index.js +0 -4
  61. package/dist/cjs/sdk/pools/AbstractPoolService.js +137 -0
  62. package/dist/cjs/{abi/iStateSerializer.js → sdk/pools/PoolServiceV310.js} +8 -14
  63. package/dist/cjs/sdk/pools/createPoolService.js +35 -0
  64. package/dist/cjs/sdk/pools/index.js +4 -2
  65. package/dist/cjs/sdk/utils/AddressMap.js +1 -1
  66. package/dist/cjs/sdk/utils/viem/sendRawTx.js +0 -16
  67. package/dist/esm/common-utils/charts/credit-manager.js +115 -0
  68. package/dist/esm/common-utils/charts/credit-session.js +233 -0
  69. package/dist/esm/common-utils/charts/credit-sessions-payload.js +0 -0
  70. package/dist/esm/common-utils/charts/graph-payload.js +0 -0
  71. package/dist/esm/common-utils/charts/index.js +8 -0
  72. package/dist/esm/common-utils/charts/pool-payload.js +0 -0
  73. package/dist/esm/common-utils/charts/pool.js +179 -0
  74. package/dist/esm/common-utils/charts/token-data.js +67 -0
  75. package/dist/esm/common-utils/index.js +2 -0
  76. package/dist/esm/common-utils/static/index.js +4 -0
  77. package/dist/esm/common-utils/static/migration-config.js +0 -0
  78. package/dist/esm/common-utils/static/pool-config.js +0 -0
  79. package/dist/esm/common-utils/static/strategy.js +0 -0
  80. package/dist/esm/common-utils/static/trading-pair.js +0 -0
  81. package/dist/esm/common-utils/utils/{assetsMath.js → assets-math.js} +2 -2
  82. package/dist/esm/common-utils/utils/creditAccount/{calcHealthFactor.js → calc-health-factor.js} +2 -2
  83. package/dist/esm/common-utils/utils/creditAccount/{calcOverallAPY.js → calc-overall-apy.js} +1 -1
  84. package/dist/esm/common-utils/utils/creditAccount/debt.js +2 -2
  85. package/dist/esm/common-utils/utils/creditAccount/index.js +8 -8
  86. package/dist/esm/common-utils/utils/creditAccount/{quotaUtils.js → quota-utils.js} +1 -1
  87. package/dist/esm/common-utils/utils/creditAccount/sort.js +1 -1
  88. package/dist/esm/common-utils/utils/index.js +3 -4
  89. package/dist/esm/dev/AccountOpener.js +6 -47
  90. package/dist/esm/dev/index.js +0 -2
  91. package/dist/esm/plugins/zappers/ZappersPlugin.js +126 -0
  92. package/dist/esm/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +2 -109
  93. package/dist/esm/plugins/zappers/index.js +3 -0
  94. package/dist/esm/plugins/zappers/package.json +1 -0
  95. package/dist/esm/plugins/zappers/types.js +0 -0
  96. package/dist/esm/rewards/apy/index.js +2 -0
  97. package/dist/esm/rewards/apy/output-details.js +0 -0
  98. package/dist/esm/rewards/apy/output.js +0 -0
  99. package/dist/esm/rewards/index.js +2 -0
  100. package/dist/esm/rewards/package.json +1 -0
  101. package/dist/esm/rewards/rewards/api.js +204 -0
  102. package/dist/esm/rewards/rewards/apy.js +160 -0
  103. package/dist/esm/rewards/rewards/common.js +0 -0
  104. package/dist/esm/rewards/rewards/extra-apy.js +101 -0
  105. package/dist/esm/rewards/rewards/index.js +4 -0
  106. package/dist/esm/rewards/rewards/merkl-api.js +18 -0
  107. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +104 -462
  108. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +5 -16
  109. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -1
  110. package/dist/esm/sdk/base/TokensMeta.js +32 -261
  111. package/dist/esm/sdk/base/index.js +0 -1
  112. package/dist/esm/sdk/chain/chains.js +1 -2
  113. package/dist/esm/sdk/constants/index.js +1 -0
  114. package/dist/esm/sdk/{base/token-types.js → constants/phantom-tokens.js} +0 -4
  115. package/dist/esm/sdk/market/MarketRegister.js +2 -2
  116. package/dist/esm/sdk/market/MarketSuite.js +0 -6
  117. package/dist/esm/sdk/market/index.js +0 -1
  118. package/dist/esm/sdk/market/pool/PoolSuite.js +0 -3
  119. package/dist/esm/sdk/market/pool/PoolV310Contract.js +2 -17
  120. package/dist/esm/sdk/market/pool/index.js +0 -2
  121. package/dist/esm/sdk/pools/AbstractPoolService.js +113 -0
  122. package/dist/esm/sdk/pools/PoolServiceV310.js +6 -0
  123. package/dist/esm/sdk/pools/createPoolService.js +11 -0
  124. package/dist/esm/sdk/pools/index.js +2 -1
  125. package/dist/esm/sdk/utils/AddressMap.js +1 -1
  126. package/dist/esm/sdk/utils/viem/sendRawTx.js +1 -19
  127. package/dist/types/common-utils/charts/credit-manager-payload.d.ts +50 -0
  128. package/dist/types/common-utils/charts/credit-manager.d.ts +48 -0
  129. package/dist/types/common-utils/charts/credit-session.d.ts +111 -0
  130. package/dist/types/common-utils/charts/credit-sessions-payload.d.ts +111 -0
  131. package/dist/types/common-utils/charts/graph-payload.d.ts +10 -0
  132. package/dist/types/common-utils/charts/index.d.ts +8 -0
  133. package/dist/types/common-utils/charts/pool-payload.d.ts +111 -0
  134. package/dist/types/common-utils/charts/pool.d.ts +91 -0
  135. package/dist/types/common-utils/charts/token-data.d.ts +20 -0
  136. package/dist/types/common-utils/index.d.ts +2 -0
  137. package/dist/types/common-utils/static/index.d.ts +4 -0
  138. package/dist/types/common-utils/static/migration-config.d.ts +10 -0
  139. package/dist/types/common-utils/static/pool-config.d.ts +11 -0
  140. package/dist/types/common-utils/static/strategy.d.ts +78 -0
  141. package/dist/types/common-utils/static/trading-pair.d.ts +15 -0
  142. package/dist/types/common-utils/utils/creditAccount/index.d.ts +8 -8
  143. package/dist/types/common-utils/utils/index.d.ts +3 -4
  144. package/dist/types/dev/index.d.ts +1 -1
  145. package/dist/types/plugins/zappers/ZappersPlugin.d.ts +18 -0
  146. package/dist/types/plugins/zappers/extraZappers.d.ts +6 -0
  147. package/dist/types/plugins/zappers/index.d.ts +3 -0
  148. package/dist/types/plugins/zappers/types.d.ts +12 -0
  149. package/dist/types/rewards/apy/index.d.ts +2 -0
  150. package/dist/types/rewards/apy/output-details.d.ts +97 -0
  151. package/dist/types/rewards/apy/output.d.ts +22 -0
  152. package/dist/types/rewards/index.d.ts +2 -0
  153. package/dist/types/rewards/rewards/api.d.ts +49 -0
  154. package/dist/types/rewards/rewards/apy.d.ts +41 -0
  155. package/dist/types/rewards/rewards/common.d.ts +16 -0
  156. package/dist/types/rewards/rewards/extra-apy.d.ts +30 -0
  157. package/dist/types/rewards/rewards/index.d.ts +4 -0
  158. package/dist/types/rewards/rewards/merkl-api.d.ts +45 -0
  159. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +27 -123
  160. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  161. package/dist/types/sdk/accounts/types.d.ts +8 -108
  162. package/dist/types/sdk/base/TokensMeta.d.ts +18 -34
  163. package/dist/types/sdk/base/index.d.ts +0 -1
  164. package/dist/types/sdk/base/types.d.ts +1 -0
  165. package/dist/types/sdk/chain/chains.d.ts +1 -1
  166. package/dist/types/sdk/constants/index.d.ts +1 -0
  167. package/dist/types/sdk/constants/phantom-tokens.d.ts +2 -0
  168. package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
  169. package/dist/types/sdk/market/MarketSuite.d.ts +0 -3
  170. package/dist/types/sdk/market/index.d.ts +0 -1
  171. package/dist/types/sdk/market/pool/PoolSuite.d.ts +0 -2
  172. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +2 -6
  173. package/dist/types/sdk/market/pool/index.d.ts +0 -2
  174. package/dist/types/sdk/pools/AbstractPoolService.d.ts +9 -0
  175. package/dist/types/sdk/pools/PoolServiceV310.d.ts +4 -0
  176. package/dist/types/sdk/pools/createPoolService.d.ts +3 -0
  177. package/dist/types/sdk/pools/index.d.ts +2 -1
  178. package/dist/types/sdk/pools/types.d.ts +63 -84
  179. package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
  180. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +1 -5
  181. package/package.json +6 -1
  182. package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +0 -263
  183. package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +0 -278
  184. package/dist/cjs/common-utils/utils/endpoints.js +0 -65
  185. package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +0 -97
  186. package/dist/cjs/sdk/pools/PoolService.js +0 -391
  187. package/dist/esm/abi/310/iSecuritizeDegenNFT.js +0 -239
  188. package/dist/esm/abi/310/iSecuritizeKYCFactory.js +0 -254
  189. package/dist/esm/abi/iStateSerializer.js +0 -12
  190. package/dist/esm/common-utils/utils/endpoints.js +0 -41
  191. package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +0 -73
  192. package/dist/esm/sdk/pools/PoolService.js +0 -371
  193. package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +0 -324
  194. package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +0 -322
  195. package/dist/types/abi/iStateSerializer.d.ts +0 -11
  196. package/dist/types/common-utils/utils/endpoints.d.ts +0 -27
  197. package/dist/types/sdk/base/token-types.d.ts +0 -33
  198. package/dist/types/sdk/market/ZapperRegister.d.ts +0 -17
  199. package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +0 -345
  200. package/dist/types/sdk/market/types.d.ts +0 -10
  201. package/dist/types/sdk/pools/PoolService.d.ts +0 -14
  202. /package/dist/cjs/{sdk/market → plugins/zappers}/types.js +0 -0
  203. /package/dist/esm/{sdk/market/types.js → common-utils/charts/credit-manager-payload.js} +0 -0
  204. /package/dist/esm/common-utils/utils/{bigintMath.js → bigint-math.js} +0 -0
  205. /package/dist/esm/common-utils/utils/creditAccount/{calcQuotaBorrowRate.js → calc-quota-borrow-rate.js} +0 -0
  206. /package/dist/esm/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.js → calc-relative-base-borrow-rate.js} +0 -0
  207. /package/dist/esm/common-utils/utils/creditAccount/{getTimeToLiquidation.js → get-time-to-liquidation.js} +0 -0
  208. /package/dist/esm/common-utils/utils/creditAccount/{liquidationPrice.js → liquidation-price.js} +0 -0
  209. /package/dist/esm/common-utils/utils/{priceMath.js → price-math.js} +0 -0
  210. /package/dist/types/common-utils/utils/{assetsMath.d.ts → assets-math.d.ts} +0 -0
  211. /package/dist/types/common-utils/utils/{bigintMath.d.ts → bigint-math.d.ts} +0 -0
  212. /package/dist/types/common-utils/utils/creditAccount/{calcHealthFactor.d.ts → calc-health-factor.d.ts} +0 -0
  213. /package/dist/types/common-utils/utils/creditAccount/{calcOverallAPY.d.ts → calc-overall-apy.d.ts} +0 -0
  214. /package/dist/types/common-utils/utils/creditAccount/{calcQuotaBorrowRate.d.ts → calc-quota-borrow-rate.d.ts} +0 -0
  215. /package/dist/types/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.d.ts → calc-relative-base-borrow-rate.d.ts} +0 -0
  216. /package/dist/types/common-utils/utils/creditAccount/{getTimeToLiquidation.d.ts → get-time-to-liquidation.d.ts} +0 -0
  217. /package/dist/types/common-utils/utils/creditAccount/{liquidationPrice.d.ts → liquidation-price.d.ts} +0 -0
  218. /package/dist/types/common-utils/utils/creditAccount/{quotaUtils.d.ts → quota-utils.d.ts} +0 -0
  219. /package/dist/types/common-utils/utils/{priceMath.d.ts → price-math.d.ts} +0 -0
@@ -65,7 +65,7 @@ class CreditAccountServiceV310 extends import_AbstractCreditAccountsService.Abst
65
65
  })
66
66
  };
67
67
  const calls = [...priceUpdatesCalls, addBotCall];
68
- const tx = targetContract.type === "creditAccount" ? await this.multicallTx(cm, targetContract.creditAccount, calls) : void 0;
68
+ const tx = targetContract.type === "creditAccount" ? cm.creditFacade.multicall(targetContract.creditAccount, calls) : void 0;
69
69
  return { tx, calls, creditFacade: cm.creditFacade };
70
70
  }
71
71
  /**
@@ -100,7 +100,7 @@ class CreditAccountServiceV310 extends import_AbstractCreditAccountsService.Abst
100
100
  averageQuota
101
101
  })
102
102
  ];
103
- const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
103
+ const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
104
104
  return { tx, calls, creditFacade: cm.creditFacade };
105
105
  }
106
106
  /**
@@ -113,13 +113,11 @@ class CreditAccountServiceV310 extends import_AbstractCreditAccountsService.Abst
113
113
  creditAccount: ca,
114
114
  permits,
115
115
  to,
116
- tokensToClaim,
117
- calls: wrapCalls = []
116
+ tokensToClaim
118
117
  }) {
119
118
  const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
120
119
  const addCollateral = collateralAssets.filter((a) => a.balance > 0);
121
120
  const router = this.sdk.routerFor(ca);
122
- const unwrapCalls = await this.getRedeemDiffCalls(1n, ca.creditManager) ?? [];
123
121
  const claimPath = await router.findClaimAllRewards({
124
122
  tokensToClaim,
125
123
  creditAccount: ca
@@ -131,21 +129,14 @@ class CreditAccountServiceV310 extends import_AbstractCreditAccountsService.Abst
131
129
  const calls = [
132
130
  ...operation === "close" ? [] : priceUpdates,
133
131
  ...this.prepareAddCollateral(ca.creditFacade, addCollateral, permits),
134
- ...wrapCalls,
135
132
  ...this.prepareDisableQuotas(ca),
136
133
  ...this.prepareDecreaseDebt(ca),
137
- ...unwrapCalls,
138
134
  ...claimPath.calls,
139
135
  ...assetsToWithdraw.map(
140
136
  (t) => this.prepareWithdrawToken(ca.creditFacade, t.token, import_math.MAX_UINT256, to)
141
137
  )
142
138
  ];
143
- const tx = await this.closeCreditAccountTx(
144
- cm,
145
- ca.creditAccount,
146
- calls,
147
- operation
148
- );
139
+ const tx = operation === "close" ? cm.creditFacade.closeCreditAccount(ca.creditAccount, calls) : cm.creditFacade.multicall(ca.creditAccount, calls);
149
140
  return { tx, calls, creditFacade: cm.creditFacade };
150
141
  }
151
142
  /**
@@ -169,13 +160,11 @@ class CreditAccountServiceV310 extends import_AbstractCreditAccountsService.Abst
169
160
  creditManager: ca.creditManager,
170
161
  creditAccount: ca
171
162
  });
172
- const wrapCalls = await this.getDepositDiffCalls(1n, ca.creditManager) ?? [];
173
163
  const addCollateral = collateralAssets.filter((a) => a.balance > 0);
174
164
  const calls = [
175
165
  ...priceUpdates,
176
166
  ...this.prepareAddCollateral(ca.creditFacade, addCollateral, permits),
177
167
  ...claimPath.calls,
178
- ...wrapCalls,
179
168
  ...assetsToWithdraw.map(
180
169
  (t) => this.prepareWithdrawToken(ca.creditFacade, t.token, import_math.MAX_UINT256, to)
181
170
  )
@@ -219,7 +208,7 @@ class CreditAccountServiceV310 extends import_AbstractCreditAccountsService.Abst
219
208
  ...claimPath.calls,
220
209
  ...this.prepareUpdateQuotas(ca.creditFacade, { minQuota, averageQuota })
221
210
  ];
222
- const tx = await this.multicallTx(cm, ca.creditAccount, calls);
211
+ const tx = cm.creditFacade.multicall(ca.creditAccount, calls);
223
212
  return { tx, calls, creditFacade: cm.creditFacade };
224
213
  }
225
214
  async previewWithdrawLlamathenaProportionally(_) {
@@ -38,7 +38,7 @@ class ChainContractsRegister {
38
38
  logger;
39
39
  constructor(client, logger) {
40
40
  this.client = client;
41
- this.tokensMeta = new import_TokensMeta.TokensMeta(client, logger);
41
+ this.tokensMeta = new import_TokensMeta.TokensMeta(client);
42
42
  this.logger = logger;
43
43
  }
44
44
  resetContracts() {
@@ -21,36 +21,18 @@ __export(TokensMeta_exports, {
21
21
  TokensMeta: () => TokensMeta
22
22
  });
23
23
  module.exports = __toCommonJS(TokensMeta_exports);
24
- var import_viem = require("viem");
25
- var import_iSecuritizeDegenNFT = require("../../abi/310/iSecuritizeDegenNFT.js");
26
- var import_iSecuritizeKYCFactory = require("../../abi/310/iSecuritizeKYCFactory.js");
27
- var import_iStateSerializer = require("../../abi/iStateSerializer.js");
28
24
  var import_iVersion = require("../../abi/iVersion.js");
29
25
  var import_utils = require("../utils/index.js");
30
- var import_token_types = require("./token-types.js");
31
26
  class TokensMeta extends import_utils.AddressMap {
32
27
  #client;
33
- #tokenDataLoaded = new import_utils.AddressSet();
34
- #logger;
35
- constructor(client, logger) {
28
+ #phantomTokensLoaded;
29
+ constructor(client) {
36
30
  super(void 0, "tokensMeta");
37
31
  this.#client = client;
38
- this.#logger = logger?.child?.({ name: "TokensMeta" }) ?? logger;
39
32
  }
40
33
  reset() {
41
34
  this.clear();
42
- this.#tokenDataLoaded.clear();
43
- }
44
- upsert(address, value) {
45
- let v = value;
46
- const existing = this.get(address);
47
- if (existing && v) {
48
- v = {
49
- ...existing,
50
- ...v
51
- };
52
- }
53
- super.upsert(address, v);
35
+ this.#phantomTokensLoaded = void 0;
54
36
  }
55
37
  symbol(token) {
56
38
  return this.mustGet(token).symbol;
@@ -59,78 +41,27 @@ class TokensMeta extends import_utils.AddressMap {
59
41
  return this.mustGet(token).decimals;
60
42
  }
61
43
  /**
62
- * Returns true if the token is a phantom token, throws if the token data is not loaded
63
- * @param t
64
- * @returns
65
- */
66
- isPhantomToken(t) {
67
- if (!this.#tokenDataLoaded.has(t.addr)) {
68
- throw new Error(
69
- `extended token data not loaded for ${t.symbol} (${t.addr})`
70
- );
71
- }
72
- return !!t.contractType?.startsWith("PHANTOM_TOKEN::");
73
- }
74
- /**
75
- * Returns true if the token is a KYC underlying token, throws if the token data is not loaded
76
- * @param t
77
- * @returns
44
+ * Returns the phantom token type for a given token, or undefined for normal tokens
45
+ * Throws if the phantom token data is not loaded
78
46
  */
79
- isKYCUnderlying(t) {
80
- if (!this.#tokenDataLoaded.has(t.addr)) {
81
- throw new Error(
82
- `extended token data not loaded for ${t.symbol} (${t.addr})`
83
- );
47
+ phantomTokenType(token) {
48
+ if (!this.#phantomTokensLoaded?.has(token)) {
49
+ throw new Error("phantom token data not loaded");
84
50
  }
85
- return !!t.contractType?.startsWith("KYC_UNDERLYING::");
86
- }
87
- /**
88
- * Returns true if the token is a DSToken, throws if the token data is not loaded
89
- * @param t
90
- * @returns
91
- */
92
- isDSToken(t) {
93
- if (!this.#tokenDataLoaded.has(t.addr)) {
94
- throw new Error(
95
- `extended token data not loaded for ${t.symbol} (${t.addr})`
96
- );
97
- }
98
- return !!t.isDSToken;
51
+ return this.mustGet(token).phantomTokenType;
99
52
  }
100
53
  /**
101
54
  * Returns a map of all phantom tokens
102
- * Throws if token data is not loaded
55
+ * Throws if the phantom token data is not loaded
103
56
  */
104
57
  get phantomTokens() {
105
- const result = new import_utils.AddressMap();
106
- for (const [token, meta] of this.entries()) {
107
- if (this.isPhantomToken(meta)) {
108
- result.upsert(token, meta);
109
- }
58
+ if (!this.#phantomTokensLoaded) {
59
+ throw new Error("phantom tokens not loaded");
110
60
  }
111
- return result;
112
- }
113
- /**
114
- * Returns a map of all KYC underlying tokens
115
- * Throws if token data is not loaded
116
- */
117
- get kycUnderlyings() {
118
- const result = new import_utils.AddressMap();
119
- for (const [token, meta] of this.entries()) {
120
- if (this.isKYCUnderlying(meta)) {
121
- result.upsert(token, meta);
122
- }
123
- }
124
- return result;
125
- }
126
- get dsTokens() {
127
- const result = new import_utils.AddressMap();
128
- for (const [token, meta] of this.entries()) {
129
- if (this.isDSToken(meta)) {
130
- result.upsert(token, meta);
131
- }
132
- }
133
- return result;
61
+ return new import_utils.AddressMap(
62
+ this.entries().filter(([_, v]) => !!v.phantomTokenType),
63
+ "phantomTokens"
64
+ );
134
65
  }
135
66
  formatBN(arg0, arg1, arg2) {
136
67
  const token = typeof arg0 === "object" ? arg0.token : arg0;
@@ -151,184 +82,30 @@ class TokensMeta extends import_utils.AddressMap {
151
82
  return meta;
152
83
  }
153
84
  /**
154
- * Loads token information about phantom tokens, KYC underlying tokens and DSTokens
155
- *
156
- * @param tokens - tokens to load data for, defaults to all tokens
85
+ * Loads phantom token data for all known tokens from chain
157
86
  */
158
- async loadTokenData(...tokens) {
159
- const tokenz = new import_utils.AddressSet(tokens.length > 0 ? tokens : this.keys());
160
- const tokensToLoad = Array.from(tokenz.difference(this.#tokenDataLoaded));
161
- if (tokensToLoad.length === 0) {
162
- return;
163
- }
87
+ async loadPhantomTokens() {
88
+ this.#phantomTokensLoaded = new import_utils.AddressSet();
89
+ const tokens = this.keys();
164
90
  const resp = await this.#client.multicall({
165
- contracts: tokensToLoad.flatMap(
166
- (t) => [
167
- {
168
- address: t,
169
- abi: import_iVersion.iVersionAbi,
170
- functionName: "contractType"
171
- },
172
- {
173
- address: t,
174
- abi: import_iStateSerializer.iStateSerializerAbi,
175
- functionName: "serialize"
176
- }
177
- ]
91
+ contracts: tokens.map(
92
+ (t) => ({
93
+ address: t,
94
+ abi: import_iVersion.iVersionAbi,
95
+ functionName: "contractType"
96
+ })
178
97
  ),
179
98
  allowFailure: true,
180
99
  batchSize: 0
181
100
  });
182
- this.#logger?.debug(`loaded ${resp.length} contract types`);
183
- const kycFactories = new import_utils.AddressSet();
184
- for (let i = 0; i < tokensToLoad.length; i++) {
185
- const meta = this.#overrideTokenMeta(
186
- tokensToLoad[i],
187
- resp[2 * i],
188
- resp[2 * i + 1]
189
- );
190
- this.#tokenDataLoaded.add(tokensToLoad[i]);
191
- if (this.isKYCUnderlying(meta)) {
192
- kycFactories.add(meta.kycFactory);
193
- }
194
- }
195
- this.#logger?.debug(`found ${kycFactories.size} KYC factories`);
196
- await this.#loadDSTokens(kycFactories);
197
- }
198
- #overrideTokenMeta(token, contractTypeResp, serializeResp) {
199
- const meta = this.mustGet(token);
200
- if (contractTypeResp.status === "success") {
201
- const contractType = (0, import_utils.bytes32ToString)(contractTypeResp.result);
202
- if (contractType.startsWith("KYC_UNDERLYING::")) {
203
- if (serializeResp.status === "success") {
204
- this.#overrideKYCUnderlying(meta, contractType, serializeResp.result);
205
- } else {
206
- throw new Error(
207
- `token ${meta.symbol} (${token}) is ${contractType} but serialize failed: ${serializeResp.error}`
208
- );
101
+ for (let i = 0; i < resp.length; i++) {
102
+ if (resp[i].status === "success") {
103
+ const contractType = (0, import_utils.bytes32ToString)(resp[i].result);
104
+ if (contractType.startsWith("PHANTOM_TOKEN::")) {
105
+ this.mustGet(tokens[i]).phantomTokenType = contractType;
209
106
  }
210
- } else {
211
- this.upsert(token, {
212
- ...meta,
213
- contractType
214
- });
215
107
  }
216
- this.#logger?.debug(`token ${meta.symbol} is ${contractType}`);
217
- }
218
- return this.mustGet(token);
219
- }
220
- #overrideKYCUnderlying(meta, contractType, serialized) {
221
- if (contractType === import_token_types.KYC_UNDERLYING_DEFAULT) {
222
- const decoded = (0, import_viem.decodeAbiParameters)(
223
- [
224
- { type: "address", name: "kycFactory" },
225
- { type: "address", name: "asset" }
226
- ],
227
- serialized
228
- );
229
- this.upsert(meta.addr, {
230
- ...meta,
231
- contractType,
232
- kycFactory: decoded[0],
233
- asset: decoded[1]
234
- });
235
- } else if (contractType === import_token_types.KYC_UNDERLYING_ON_DEMAND) {
236
- const decoded = (0, import_viem.decodeAbiParameters)(
237
- [
238
- { type: "address", name: "kycFactory" },
239
- { type: "address", name: "asset" },
240
- { type: "address", name: "pool" },
241
- { type: "address", name: "liquidityProvider" }
242
- ],
243
- serialized
244
- );
245
- this.upsert(meta.addr, {
246
- ...meta,
247
- contractType,
248
- kycFactory: decoded[0],
249
- asset: decoded[1],
250
- pool: decoded[2],
251
- liquidityProvider: decoded[3]
252
- });
253
- }
254
- }
255
- async #loadDSTokens(kycFactories) {
256
- const degenNFTs = await this.#client.multicall({
257
- contracts: kycFactories.map((address) => {
258
- return {
259
- address,
260
- abi: import_iSecuritizeKYCFactory.iSecuritizeKYCFactoryAbi,
261
- functionName: "getDegenNFT"
262
- };
263
- }),
264
- allowFailure: false,
265
- batchSize: 0
266
- });
267
- const resp = await this.#client.multicall({
268
- contracts: degenNFTs.map((address) => {
269
- return {
270
- address,
271
- abi: import_iSecuritizeDegenNFT.iSecuritizeDegenNFTAbi,
272
- functionName: "getDSTokens"
273
- };
274
- }),
275
- allowFailure: false,
276
- batchSize: 0
277
- });
278
- const dsToken = new import_utils.AddressSet(resp.flat());
279
- const tokensToLoad = dsToken.difference(new Set(this.keys()));
280
- this.#logger?.debug(
281
- `found ${dsToken.size} DSTokens in KYC factories, need to load ${tokensToLoad.size} basic metadata`
282
- );
283
- await this.#loadWithoutCompressor(tokensToLoad);
284
- for (const token of dsToken) {
285
- const meta = this.mustGet(token);
286
- this.upsert(token, {
287
- ...meta,
288
- isDSToken: true
289
- });
290
- this.#tokenDataLoaded.add(token);
291
- this.#logger?.debug(`token ${meta.symbol} (${token}) is a DSToken`);
292
- }
293
- }
294
- async #loadWithoutCompressor(tokens_) {
295
- if (tokens_.size === 0) {
296
- return;
297
- }
298
- const tokens = Array.from(tokens_);
299
- const resp = await this.#client.multicall({
300
- contracts: tokens.flatMap(
301
- (t) => [
302
- {
303
- address: t,
304
- abi: import_viem.erc20Abi,
305
- functionName: "symbol"
306
- },
307
- {
308
- address: t,
309
- abi: import_viem.erc20Abi,
310
- functionName: "name"
311
- },
312
- {
313
- address: t,
314
- abi: import_viem.erc20Abi,
315
- functionName: "decimals"
316
- }
317
- ]
318
- ),
319
- allowFailure: false,
320
- batchSize: 0
321
- });
322
- this.#logger?.debug(
323
- `loaded ${resp.length} basic metadata without compressor`
324
- );
325
- for (let i = 0; i < tokens.length; i++) {
326
- this.upsert(tokens[i], {
327
- addr: tokens[i],
328
- symbol: resp[3 * i],
329
- name: resp[3 * i + 1],
330
- decimals: resp[3 * i + 2]
331
- });
108
+ this.#phantomTokensLoaded.add(tokens[i]);
332
109
  }
333
110
  }
334
111
  }
@@ -22,7 +22,6 @@ __reExport(base_exports, require("./errors.js"), module.exports);
22
22
  __reExport(base_exports, require("./PlaceholderContract.js"), module.exports);
23
23
  __reExport(base_exports, require("./SDKConstruct.js"), module.exports);
24
24
  __reExport(base_exports, require("./TokensMeta.js"), module.exports);
25
- __reExport(base_exports, require("./token-types.js"), module.exports);
26
25
  __reExport(base_exports, require("./types.js"), module.exports);
27
26
  // Annotate the CommonJS export names for ESM import in node:
28
27
  0 && (module.exports = {
@@ -33,6 +32,5 @@ __reExport(base_exports, require("./types.js"), module.exports);
33
32
  ...require("./PlaceholderContract.js"),
34
33
  ...require("./SDKConstruct.js"),
35
34
  ...require("./TokensMeta.js"),
36
- ...require("./token-types.js"),
37
35
  ...require("./types.js")
38
36
  });
@@ -79,8 +79,7 @@ const chains = {
79
79
  "0x601067eba24bb5b558a184fc082525637e96a42d": "Gami Labs"
80
80
  },
81
81
  testMarketConfigurators: {
82
- "0x99df7330bf42d596af2e9d9836d4fc2077c574aa": "M11 Credit",
83
- "0xE0527dE5908B3fc2e054B7eEE0DeF6c9965AbF24": "Securitize"
82
+ "0x99df7330bf42d596af2e9d9836d4fc2077c574aa": "M11 Credit"
84
83
  },
85
84
  isPublic: true,
86
85
  wellKnownToken: {
@@ -21,6 +21,7 @@ __reExport(constants_exports, require("./bot-permissions.js"), module.exports);
21
21
  __reExport(constants_exports, require("./math.js"), module.exports);
22
22
  __reExport(constants_exports, require("./networks.js"), module.exports);
23
23
  __reExport(constants_exports, require("./periphery.js"), module.exports);
24
+ __reExport(constants_exports, require("./phantom-tokens.js"), module.exports);
24
25
  __reExport(constants_exports, require("./versions.js"), module.exports);
25
26
  // Annotate the CommonJS export names for ESM import in node:
26
27
  0 && (module.exports = {
@@ -30,5 +31,6 @@ __reExport(constants_exports, require("./versions.js"), module.exports);
30
31
  ...require("./math.js"),
31
32
  ...require("./networks.js"),
32
33
  ...require("./periphery.js"),
34
+ ...require("./phantom-tokens.js"),
33
35
  ...require("./versions.js")
34
36
  });
@@ -16,13 +16,11 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var token_types_exports = {};
20
- __export(token_types_exports, {
21
- KYC_UNDERLYING_DEFAULT: () => KYC_UNDERLYING_DEFAULT,
22
- KYC_UNDERLYING_ON_DEMAND: () => KYC_UNDERLYING_ON_DEMAND,
19
+ var phantom_tokens_exports = {};
20
+ __export(phantom_tokens_exports, {
23
21
  PHANTOM_TOKEN_CONTRACT_TYPES: () => PHANTOM_TOKEN_CONTRACT_TYPES
24
22
  });
25
- module.exports = __toCommonJS(token_types_exports);
23
+ module.exports = __toCommonJS(phantom_tokens_exports);
26
24
  const PHANTOM_TOKEN_CONTRACT_TYPES = [
27
25
  "PHANTOM_TOKEN::CONVEX",
28
26
  "PHANTOM_TOKEN::INFINIFI_UNWIND",
@@ -32,11 +30,7 @@ const PHANTOM_TOKEN_CONTRACT_TYPES = [
32
30
  "PHANTOM_TOKEN::STAKING_REWARDS",
33
31
  "PHANTOM_TOKEN::UPSHIFT_WITHDRAW"
34
32
  ];
35
- const KYC_UNDERLYING_DEFAULT = "KYC_UNDERLYING::DEFAULT";
36
- const KYC_UNDERLYING_ON_DEMAND = "KYC_UNDERLYING::ON_DEMAND";
37
33
  // Annotate the CommonJS export names for ESM import in node:
38
34
  0 && (module.exports = {
39
- KYC_UNDERLYING_DEFAULT,
40
- KYC_UNDERLYING_ON_DEMAND,
41
35
  PHANTOM_TOKEN_CONTRACT_TYPES
42
36
  });
@@ -22,13 +22,13 @@ __export(MarketRegister_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(MarketRegister_exports);
24
24
  var import_marketCompressor = require("../../abi/compressors/marketCompressor.js");
25
+ var import_base = require("../base/index.js");
25
26
  var import_constants = require("../constants/index.js");
26
27
  var import_utils = require("../utils/index.js");
27
28
  var import_viem = require("../utils/viem/index.js");
28
29
  var import_MarketConfiguratorContract = require("./MarketConfiguratorContract.js");
29
30
  var import_MarketSuite = require("./MarketSuite.js");
30
- var import_ZapperRegister = require("./ZapperRegister.js");
31
- class MarketRegister extends import_ZapperRegister.ZapperRegister {
31
+ class MarketRegister extends import_base.SDKConstruct {
32
32
  /**
33
33
  * Mapping pool.address -> MarketSuite
34
34
  */
@@ -62,12 +62,6 @@ class MarketSuite extends import_base.SDKConstruct {
62
62
  this.priceOracle = (0, import_oracle.createPriceOracle)(sdk, marketData.priceOracle);
63
63
  this.lossPolicy = (0, import_loss_policy.createLossPolicy)(sdk, marketData.lossPolicy);
64
64
  }
65
- get underlying() {
66
- return this.pool.underlying;
67
- }
68
- async getKYCFactory() {
69
- return this.pool.getKYCFactory();
70
- }
71
65
  get dirty() {
72
66
  return this.configurator.dirty || this.pool.dirty || this.priceOracle.dirty || this.creditManagers.some((cm) => cm.dirty);
73
67
  }
@@ -22,7 +22,6 @@ __reExport(market_exports, require("./MarketSuite.js"), module.exports);
22
22
  __reExport(market_exports, require("./oracle/index.js"), module.exports);
23
23
  __reExport(market_exports, require("./pool/index.js"), module.exports);
24
24
  __reExport(market_exports, require("./pricefeeds/index.js"), module.exports);
25
- __reExport(market_exports, require("./types.js"), module.exports);
26
25
  // Annotate the CommonJS export names for ESM import in node:
27
26
  0 && (module.exports = {
28
27
  ...require("./adapters/index.js"),
@@ -31,6 +30,5 @@ __reExport(market_exports, require("./types.js"), module.exports);
31
30
  ...require("./MarketSuite.js"),
32
31
  ...require("./oracle/index.js"),
33
32
  ...require("./pool/index.js"),
34
- ...require("./pricefeeds/index.js"),
35
- ...require("./types.js")
33
+ ...require("./pricefeeds/index.js")
36
34
  });
@@ -88,9 +88,6 @@ class PoolSuite extends import_base.SDKConstruct {
88
88
  get underlying() {
89
89
  return this.pool.underlying;
90
90
  }
91
- async getKYCFactory() {
92
- return this.pool.getKYCFactory();
93
- }
94
91
  get dirty() {
95
92
  return this.pool.dirty || this.rateKeeper.dirty || this.pqk.dirty || this.interestRateModel.dirty;
96
93
  }
@@ -25,20 +25,16 @@ var import_generated = require("../../../abi/310/generated.js");
25
25
  var import_iPausable = require("../../../abi/iPausable.js");
26
26
  var import_base = require("../../base/index.js");
27
27
  var import_utils = require("../../utils/index.js");
28
- var import_SecuritizeKYCFactory = require("./SecuritizeKYCFactory.js");
29
28
  const abi = [...import_generated.iPoolV310Abi, ...import_iPausable.iPausableAbi];
30
29
  class PoolV310Contract extends import_base.BaseContract {
31
30
  creditManagerDebtParams;
32
- #sdk;
33
- #kycFactory;
34
- constructor(sdk, data) {
31
+ constructor(options, data) {
35
32
  const { baseParams, creditManagerDebtParams, ...rest } = data;
36
- super(sdk, {
33
+ super(options, {
37
34
  ...data.baseParams,
38
35
  name: `PoolV3(${data.name})`,
39
36
  abi
40
37
  });
41
- this.#sdk = sdk;
42
38
  Object.assign(this, rest);
43
39
  this.creditManagerDebtParams = new import_utils.AddressMap(
44
40
  creditManagerDebtParams.map((p) => [p.creditManager, p])
@@ -50,17 +46,6 @@ class PoolV310Contract extends import_base.BaseContract {
50
46
  symbol: data.symbol
51
47
  });
52
48
  }
53
- async getKYCFactory() {
54
- if (this.#kycFactory) {
55
- return this.#kycFactory;
56
- }
57
- await this.#sdk.tokensMeta.loadTokenData(this.underlying);
58
- const u = this.#sdk.tokensMeta.mustGet(this.underlying);
59
- if (this.#sdk.tokensMeta.isKYCUnderlying(u)) {
60
- this.#kycFactory = new import_SecuritizeKYCFactory.SecuritizeKYCFactory(this.#sdk, u.kycFactory);
61
- }
62
- return this.#kycFactory;
63
- }
64
49
  stateHuman(raw = true) {
65
50
  return {
66
51
  ...super.stateHuman(raw),
@@ -18,15 +18,11 @@ module.exports = __toCommonJS(pool_exports);
18
18
  __reExport(pool_exports, require("./GaugeContract.js"), module.exports);
19
19
  __reExport(pool_exports, require("./LinearInterestRateModelContract.js"), module.exports);
20
20
  __reExport(pool_exports, require("./PoolSuite.js"), module.exports);
21
- __reExport(pool_exports, require("./PoolV310Contract.js"), module.exports);
22
- __reExport(pool_exports, require("./SecuritizeKYCFactory.js"), module.exports);
23
21
  __reExport(pool_exports, require("./types.js"), module.exports);
24
22
  // Annotate the CommonJS export names for ESM import in node:
25
23
  0 && (module.exports = {
26
24
  ...require("./GaugeContract.js"),
27
25
  ...require("./LinearInterestRateModelContract.js"),
28
26
  ...require("./PoolSuite.js"),
29
- ...require("./PoolV310Contract.js"),
30
- ...require("./SecuritizeKYCFactory.js"),
31
27
  ...require("./types.js")
32
28
  });