@gearbox-protocol/sdk 13.3.0-next.3 → 13.3.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 (216) 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/plugins/zappers/ZappersPlugin.js +144 -0
  32. package/dist/cjs/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +6 -110
  33. package/dist/cjs/plugins/zappers/index.js +26 -0
  34. package/dist/cjs/plugins/zappers/package.json +1 -0
  35. package/dist/cjs/rewards/apy/index.js +24 -0
  36. package/dist/cjs/rewards/apy/output-details.js +16 -0
  37. package/dist/cjs/rewards/apy/output.js +16 -0
  38. package/dist/cjs/rewards/index.js +24 -0
  39. package/dist/cjs/rewards/package.json +1 -0
  40. package/dist/cjs/rewards/rewards/api.js +226 -0
  41. package/dist/cjs/rewards/rewards/apy.js +177 -0
  42. package/dist/cjs/rewards/rewards/common.js +16 -0
  43. package/dist/cjs/rewards/rewards/extra-apy.js +132 -0
  44. package/dist/cjs/rewards/rewards/index.js +28 -0
  45. package/dist/cjs/rewards/rewards/merkl-api.js +52 -0
  46. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +104 -462
  47. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +5 -16
  48. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -1
  49. package/dist/cjs/sdk/base/TokensMeta.js +32 -255
  50. package/dist/cjs/sdk/base/index.js +0 -2
  51. package/dist/cjs/sdk/chain/chains.js +1 -2
  52. package/dist/cjs/sdk/constants/index.js +2 -0
  53. package/dist/cjs/sdk/{base/token-types.js → constants/phantom-tokens.js} +3 -9
  54. package/dist/cjs/sdk/market/MarketRegister.js +2 -2
  55. package/dist/cjs/sdk/market/MarketSuite.js +0 -6
  56. package/dist/cjs/sdk/market/index.js +1 -3
  57. package/dist/cjs/sdk/market/pool/PoolSuite.js +0 -3
  58. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +2 -17
  59. package/dist/cjs/sdk/market/pool/index.js +0 -4
  60. package/dist/cjs/sdk/pools/AbstractPoolService.js +137 -0
  61. package/dist/cjs/{abi/iStateSerializer.js → sdk/pools/PoolServiceV310.js} +8 -14
  62. package/dist/cjs/sdk/pools/createPoolService.js +35 -0
  63. package/dist/cjs/sdk/pools/index.js +4 -2
  64. package/dist/cjs/sdk/utils/AddressMap.js +1 -1
  65. package/dist/cjs/sdk/utils/viem/sendRawTx.js +0 -16
  66. package/dist/esm/common-utils/charts/credit-manager.js +115 -0
  67. package/dist/esm/common-utils/charts/credit-session.js +233 -0
  68. package/dist/esm/common-utils/charts/credit-sessions-payload.js +0 -0
  69. package/dist/esm/common-utils/charts/graph-payload.js +0 -0
  70. package/dist/esm/common-utils/charts/index.js +8 -0
  71. package/dist/esm/common-utils/charts/pool-payload.js +0 -0
  72. package/dist/esm/common-utils/charts/pool.js +179 -0
  73. package/dist/esm/common-utils/charts/token-data.js +67 -0
  74. package/dist/esm/common-utils/index.js +2 -0
  75. package/dist/esm/common-utils/static/index.js +4 -0
  76. package/dist/esm/common-utils/static/migration-config.js +0 -0
  77. package/dist/esm/common-utils/static/pool-config.js +0 -0
  78. package/dist/esm/common-utils/static/strategy.js +0 -0
  79. package/dist/esm/common-utils/static/trading-pair.js +0 -0
  80. package/dist/esm/common-utils/utils/{assetsMath.js → assets-math.js} +2 -2
  81. package/dist/esm/common-utils/utils/creditAccount/{calcHealthFactor.js → calc-health-factor.js} +2 -2
  82. package/dist/esm/common-utils/utils/creditAccount/{calcOverallAPY.js → calc-overall-apy.js} +1 -1
  83. package/dist/esm/common-utils/utils/creditAccount/debt.js +2 -2
  84. package/dist/esm/common-utils/utils/creditAccount/index.js +8 -8
  85. package/dist/esm/common-utils/utils/creditAccount/{quotaUtils.js → quota-utils.js} +1 -1
  86. package/dist/esm/common-utils/utils/creditAccount/sort.js +1 -1
  87. package/dist/esm/common-utils/utils/index.js +3 -4
  88. package/dist/esm/dev/AccountOpener.js +6 -47
  89. package/dist/esm/plugins/zappers/ZappersPlugin.js +126 -0
  90. package/dist/esm/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +2 -109
  91. package/dist/esm/plugins/zappers/index.js +3 -0
  92. package/dist/esm/plugins/zappers/package.json +1 -0
  93. package/dist/esm/plugins/zappers/types.js +0 -0
  94. package/dist/esm/rewards/apy/index.js +2 -0
  95. package/dist/esm/rewards/apy/output-details.js +0 -0
  96. package/dist/esm/rewards/apy/output.js +0 -0
  97. package/dist/esm/rewards/index.js +2 -0
  98. package/dist/esm/rewards/package.json +1 -0
  99. package/dist/esm/rewards/rewards/api.js +204 -0
  100. package/dist/esm/rewards/rewards/apy.js +160 -0
  101. package/dist/esm/rewards/rewards/common.js +0 -0
  102. package/dist/esm/rewards/rewards/extra-apy.js +101 -0
  103. package/dist/esm/rewards/rewards/index.js +4 -0
  104. package/dist/esm/rewards/rewards/merkl-api.js +18 -0
  105. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +104 -462
  106. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +5 -16
  107. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -1
  108. package/dist/esm/sdk/base/TokensMeta.js +32 -261
  109. package/dist/esm/sdk/base/index.js +0 -1
  110. package/dist/esm/sdk/chain/chains.js +1 -2
  111. package/dist/esm/sdk/constants/index.js +1 -0
  112. package/dist/esm/sdk/{base/token-types.js → constants/phantom-tokens.js} +0 -4
  113. package/dist/esm/sdk/market/MarketRegister.js +2 -2
  114. package/dist/esm/sdk/market/MarketSuite.js +0 -6
  115. package/dist/esm/sdk/market/index.js +0 -1
  116. package/dist/esm/sdk/market/pool/PoolSuite.js +0 -3
  117. package/dist/esm/sdk/market/pool/PoolV310Contract.js +2 -17
  118. package/dist/esm/sdk/market/pool/index.js +0 -2
  119. package/dist/esm/sdk/pools/AbstractPoolService.js +113 -0
  120. package/dist/esm/sdk/pools/PoolServiceV310.js +6 -0
  121. package/dist/esm/sdk/pools/createPoolService.js +11 -0
  122. package/dist/esm/sdk/pools/index.js +2 -1
  123. package/dist/esm/sdk/utils/AddressMap.js +1 -1
  124. package/dist/esm/sdk/utils/viem/sendRawTx.js +1 -19
  125. package/dist/types/common-utils/charts/credit-manager-payload.d.ts +50 -0
  126. package/dist/types/common-utils/charts/credit-manager.d.ts +48 -0
  127. package/dist/types/common-utils/charts/credit-session.d.ts +111 -0
  128. package/dist/types/common-utils/charts/credit-sessions-payload.d.ts +111 -0
  129. package/dist/types/common-utils/charts/graph-payload.d.ts +10 -0
  130. package/dist/types/common-utils/charts/index.d.ts +8 -0
  131. package/dist/types/common-utils/charts/pool-payload.d.ts +111 -0
  132. package/dist/types/common-utils/charts/pool.d.ts +91 -0
  133. package/dist/types/common-utils/charts/token-data.d.ts +20 -0
  134. package/dist/types/common-utils/index.d.ts +2 -0
  135. package/dist/types/common-utils/static/index.d.ts +4 -0
  136. package/dist/types/common-utils/static/migration-config.d.ts +10 -0
  137. package/dist/types/common-utils/static/pool-config.d.ts +11 -0
  138. package/dist/types/common-utils/static/strategy.d.ts +78 -0
  139. package/dist/types/common-utils/static/trading-pair.d.ts +15 -0
  140. package/dist/types/common-utils/utils/creditAccount/index.d.ts +8 -8
  141. package/dist/types/common-utils/utils/index.d.ts +3 -4
  142. package/dist/types/plugins/zappers/ZappersPlugin.d.ts +18 -0
  143. package/dist/types/plugins/zappers/extraZappers.d.ts +6 -0
  144. package/dist/types/plugins/zappers/index.d.ts +3 -0
  145. package/dist/types/plugins/zappers/types.d.ts +12 -0
  146. package/dist/types/rewards/apy/index.d.ts +2 -0
  147. package/dist/types/rewards/apy/output-details.d.ts +96 -0
  148. package/dist/types/rewards/apy/output.d.ts +22 -0
  149. package/dist/types/rewards/index.d.ts +2 -0
  150. package/dist/types/rewards/rewards/api.d.ts +49 -0
  151. package/dist/types/rewards/rewards/apy.d.ts +41 -0
  152. package/dist/types/rewards/rewards/common.d.ts +16 -0
  153. package/dist/types/rewards/rewards/extra-apy.d.ts +30 -0
  154. package/dist/types/rewards/rewards/index.d.ts +4 -0
  155. package/dist/types/rewards/rewards/merkl-api.d.ts +45 -0
  156. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +27 -123
  157. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  158. package/dist/types/sdk/accounts/types.d.ts +8 -108
  159. package/dist/types/sdk/base/TokensMeta.d.ts +18 -34
  160. package/dist/types/sdk/base/index.d.ts +0 -1
  161. package/dist/types/sdk/base/types.d.ts +1 -0
  162. package/dist/types/sdk/chain/chains.d.ts +1 -1
  163. package/dist/types/sdk/constants/index.d.ts +1 -0
  164. package/dist/types/sdk/constants/phantom-tokens.d.ts +2 -0
  165. package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
  166. package/dist/types/sdk/market/MarketSuite.d.ts +0 -3
  167. package/dist/types/sdk/market/index.d.ts +0 -1
  168. package/dist/types/sdk/market/pool/PoolSuite.d.ts +0 -2
  169. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +2 -6
  170. package/dist/types/sdk/market/pool/index.d.ts +0 -2
  171. package/dist/types/sdk/pools/AbstractPoolService.d.ts +9 -0
  172. package/dist/types/sdk/pools/PoolServiceV310.d.ts +4 -0
  173. package/dist/types/sdk/pools/createPoolService.d.ts +3 -0
  174. package/dist/types/sdk/pools/index.d.ts +2 -1
  175. package/dist/types/sdk/pools/types.d.ts +63 -84
  176. package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
  177. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +1 -5
  178. package/package.json +6 -1
  179. package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +0 -263
  180. package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +0 -278
  181. package/dist/cjs/common-utils/utils/endpoints.js +0 -65
  182. package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +0 -97
  183. package/dist/cjs/sdk/pools/PoolService.js +0 -391
  184. package/dist/esm/abi/310/iSecuritizeDegenNFT.js +0 -239
  185. package/dist/esm/abi/310/iSecuritizeKYCFactory.js +0 -254
  186. package/dist/esm/abi/iStateSerializer.js +0 -12
  187. package/dist/esm/common-utils/utils/endpoints.js +0 -41
  188. package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +0 -73
  189. package/dist/esm/sdk/pools/PoolService.js +0 -371
  190. package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +0 -324
  191. package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +0 -322
  192. package/dist/types/abi/iStateSerializer.d.ts +0 -11
  193. package/dist/types/common-utils/utils/endpoints.d.ts +0 -27
  194. package/dist/types/sdk/base/token-types.d.ts +0 -33
  195. package/dist/types/sdk/market/ZapperRegister.d.ts +0 -17
  196. package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +0 -345
  197. package/dist/types/sdk/market/types.d.ts +0 -10
  198. package/dist/types/sdk/pools/PoolService.d.ts +0 -14
  199. /package/dist/cjs/{sdk/market → plugins/zappers}/types.js +0 -0
  200. /package/dist/esm/{sdk/market/types.js → common-utils/charts/credit-manager-payload.js} +0 -0
  201. /package/dist/esm/common-utils/utils/{bigintMath.js → bigint-math.js} +0 -0
  202. /package/dist/esm/common-utils/utils/creditAccount/{calcQuotaBorrowRate.js → calc-quota-borrow-rate.js} +0 -0
  203. /package/dist/esm/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.js → calc-relative-base-borrow-rate.js} +0 -0
  204. /package/dist/esm/common-utils/utils/creditAccount/{getTimeToLiquidation.js → get-time-to-liquidation.js} +0 -0
  205. /package/dist/esm/common-utils/utils/creditAccount/{liquidationPrice.js → liquidation-price.js} +0 -0
  206. /package/dist/esm/common-utils/utils/{priceMath.js → price-math.js} +0 -0
  207. /package/dist/types/common-utils/utils/{assetsMath.d.ts → assets-math.d.ts} +0 -0
  208. /package/dist/types/common-utils/utils/{bigintMath.d.ts → bigint-math.d.ts} +0 -0
  209. /package/dist/types/common-utils/utils/creditAccount/{calcHealthFactor.d.ts → calc-health-factor.d.ts} +0 -0
  210. /package/dist/types/common-utils/utils/creditAccount/{calcOverallAPY.d.ts → calc-overall-apy.d.ts} +0 -0
  211. /package/dist/types/common-utils/utils/creditAccount/{calcQuotaBorrowRate.d.ts → calc-quota-borrow-rate.d.ts} +0 -0
  212. /package/dist/types/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.d.ts → calc-relative-base-borrow-rate.d.ts} +0 -0
  213. /package/dist/types/common-utils/utils/creditAccount/{getTimeToLiquidation.d.ts → get-time-to-liquidation.d.ts} +0 -0
  214. /package/dist/types/common-utils/utils/creditAccount/{liquidationPrice.d.ts → liquidation-price.d.ts} +0 -0
  215. /package/dist/types/common-utils/utils/creditAccount/{quotaUtils.d.ts → quota-utils.d.ts} +0 -0
  216. /package/dist/types/common-utils/utils/{priceMath.d.ts → price-math.d.ts} +0 -0
@@ -1,371 +0,0 @@
1
- import { iPoolV310Abi } from "../../abi/310/generated.js";
2
- import { ierc20Abi } from "../../abi/iERC20.js";
3
- import { ierc20ZapperDepositsAbi } from "../../abi/iERC20ZapperDeposits.js";
4
- import { iethZapperDepositsAbi } from "../../abi/iETHZapperDeposits.js";
5
- import { iZapperAbi } from "../../abi/iZapper.js";
6
- import {
7
- KYC_UNDERLYING_DEFAULT,
8
- KYC_UNDERLYING_ON_DEMAND,
9
- SDKConstruct
10
- } from "../base/index.js";
11
- import { AddressSet, hexEq } from "../index.js";
12
- import { AddressMap } from "../utils/index.js";
13
- const NATIVE_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
14
- const POOL_TOKENS_TO_MIGRATE = new AddressMap([
15
- // v2 diesels
16
- ["0x6CFaF95457d7688022FC53e7AbE052ef8DFBbdBA", "dDAI"],
17
- ["0xc411dB5f5Eb3f7d552F9B8454B2D74097ccdE6E3", "dUSDC"],
18
- ["0xe753260F1955e8678DCeA8887759e07aa57E8c54", "dWBTC"],
19
- ["0xF21fc650C1B34eb0FDE786D52d23dA99Db3D6278", "dWETH"],
20
- ["0x2158034dB06f06dcB9A786D2F1F8c38781bA779d", "dwstETH"],
21
- ["0x8A1112AFef7F4FC7c066a77AABBc01b3Fff31D47", "dFRAX"]
22
- ]);
23
- class PoolService extends SDKConstruct {
24
- getDepositTokensIn(pool) {
25
- const underlying = this.#describeUnderlying(pool);
26
- if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
27
- switch (underlying.contractType) {
28
- case KYC_UNDERLYING_DEFAULT:
29
- return this.#depositTokensIn(pool, false);
30
- case KYC_UNDERLYING_ON_DEMAND:
31
- return [underlying.asset];
32
- }
33
- }
34
- return this.#depositTokensIn(pool, true);
35
- }
36
- getDepositTokensOut(pool, tokenIn) {
37
- const underlying = this.#describeUnderlying(pool);
38
- if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
39
- switch (underlying.contractType) {
40
- case KYC_UNDERLYING_DEFAULT:
41
- return this.#depositTokensOut(pool, tokenIn, false);
42
- case KYC_UNDERLYING_ON_DEMAND:
43
- return [];
44
- }
45
- }
46
- return this.#depositTokensOut(pool, tokenIn, true);
47
- }
48
- getDepositMetadata(pool, tokenIn, tokenOut) {
49
- const underlying = this.#describeUnderlying(pool);
50
- if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
51
- switch (underlying.contractType) {
52
- case KYC_UNDERLYING_DEFAULT: {
53
- return this.#depositMetadata(
54
- "kyc-default",
55
- pool,
56
- tokenIn,
57
- tokenOut,
58
- false
59
- );
60
- }
61
- case KYC_UNDERLYING_ON_DEMAND:
62
- return {
63
- zapper: void 0,
64
- approveTarget: underlying.liquidityProvider,
65
- permissible: false,
66
- type: "kyc-on-demand"
67
- };
68
- }
69
- }
70
- return this.#depositMetadata("classic", pool, tokenIn, tokenOut, true);
71
- }
72
- addLiquidity(props) {
73
- const { collateral, meta, permit, referralCode, pool, wallet } = props;
74
- const underlying = this.#describeUnderlying(pool);
75
- if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
76
- if (underlying.contractType === KYC_UNDERLYING_ON_DEMAND) {
77
- return void 0;
78
- }
79
- }
80
- const { zapper } = meta;
81
- if (zapper && hexEq(zapper.tokenIn.addr, NATIVE_ADDRESS)) {
82
- return {
83
- target: zapper.baseParams.addr,
84
- abi: iethZapperDepositsAbi,
85
- functionName: "depositWithReferral",
86
- args: [wallet, referralCode],
87
- value: collateral.balance
88
- };
89
- } else if (zapper) {
90
- return permit ? {
91
- target: zapper.baseParams.addr,
92
- abi: ierc20ZapperDepositsAbi,
93
- functionName: "depositWithReferralAndPermit",
94
- args: [
95
- collateral.balance,
96
- wallet,
97
- referralCode,
98
- permit.deadline,
99
- permit.v,
100
- permit.r,
101
- permit.s
102
- ]
103
- } : {
104
- target: zapper.baseParams.addr,
105
- abi: ierc20ZapperDepositsAbi,
106
- functionName: "depositWithReferral",
107
- args: [collateral.balance, wallet, referralCode]
108
- };
109
- } else {
110
- return {
111
- target: pool,
112
- abi: iPoolV310Abi,
113
- functionName: "depositWithReferral",
114
- args: [collateral.balance, wallet, referralCode]
115
- };
116
- }
117
- }
118
- getWithdrawalTokensIn(pool) {
119
- const underlying = this.#describeUnderlying(pool);
120
- if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
121
- switch (underlying.contractType) {
122
- case KYC_UNDERLYING_DEFAULT:
123
- return this.#withdrawalTokensIn(pool, false);
124
- case KYC_UNDERLYING_ON_DEMAND:
125
- return [];
126
- }
127
- }
128
- return this.#withdrawalTokensIn(pool, true);
129
- }
130
- getWithdrawalTokensOut(pool, tokenIn) {
131
- const underlying = this.#describeUnderlying(pool);
132
- if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
133
- switch (underlying.contractType) {
134
- case KYC_UNDERLYING_DEFAULT:
135
- return this.#withdrawalTokensOut(pool, tokenIn, false);
136
- case KYC_UNDERLYING_ON_DEMAND:
137
- return [underlying.asset];
138
- }
139
- }
140
- return this.#withdrawalTokensOut(pool, tokenIn, true);
141
- }
142
- removeLiquidity(props) {
143
- const { pool, amount, meta, wallet, permit } = props;
144
- const underlying = this.#describeUnderlying(pool);
145
- if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
146
- if (underlying.contractType === KYC_UNDERLYING_ON_DEMAND) {
147
- return {
148
- abi: ierc20Abi,
149
- functionName: "approve",
150
- args: [underlying.liquidityProvider, 0n],
151
- target: underlying.asset
152
- };
153
- }
154
- }
155
- if (meta.zapper) {
156
- return permit ? {
157
- target: meta.zapper.baseParams.addr,
158
- abi: iZapperAbi,
159
- functionName: "redeemWithPermit",
160
- args: [
161
- amount,
162
- wallet,
163
- permit.deadline,
164
- permit.v,
165
- permit.r,
166
- permit.s
167
- ]
168
- } : {
169
- target: meta.zapper.baseParams.addr,
170
- abi: iZapperAbi,
171
- functionName: "redeem",
172
- args: [amount, wallet]
173
- };
174
- }
175
- return {
176
- target: pool,
177
- abi: iPoolV310Abi,
178
- functionName: "redeem",
179
- args: [amount, wallet, wallet]
180
- };
181
- }
182
- getWithdrawalMetadata(pool, tokenIn, tokenOut) {
183
- const underlying = this.#describeUnderlying(pool);
184
- if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
185
- switch (underlying.contractType) {
186
- case KYC_UNDERLYING_DEFAULT: {
187
- return this.#withdrawalMetadata(
188
- "kyc-default",
189
- pool,
190
- tokenIn,
191
- tokenOut,
192
- false
193
- );
194
- }
195
- case KYC_UNDERLYING_ON_DEMAND:
196
- return {
197
- zapper: void 0,
198
- approveTarget: void 0,
199
- permissible: false,
200
- type: "kyc-on-demand"
201
- };
202
- }
203
- }
204
- return this.#withdrawalMetadata("classic", pool, tokenIn, tokenOut, true);
205
- }
206
- /**
207
- * Filter out v2 diesel tokens (can come from migration v2 -> v3 zappers)
208
- * Also omits "migration" zappers (v3 -> v3.1) since they are treated in a different way
209
- */
210
- #getDepositZappers(poolAddr) {
211
- const zappers = this.sdk.marketRegister.poolZappers(poolAddr);
212
- return zappers.filter(
213
- (z) => z.type !== "migration" && !POOL_TOKENS_TO_MIGRATE.has(z.tokenIn.addr)
214
- );
215
- }
216
- #depositTokensIn(poolAddr, allowDirectDeposit) {
217
- const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
218
- const result = new AddressSet();
219
- if (allowDirectDeposit) {
220
- result.add(pool.underlying);
221
- }
222
- const zappers = this.#getDepositZappers(poolAddr);
223
- for (const z of zappers) {
224
- if (hexEq(z.tokenOut.addr, poolAddr)) {
225
- result.add(z.tokenIn.addr);
226
- }
227
- }
228
- if (result.size === 0) {
229
- throw new Error(
230
- `No tokensIn found for pool ${this.labelAddress(poolAddr)}`
231
- );
232
- }
233
- return result.asArray();
234
- }
235
- #withdrawalTokensIn(poolAddr, allowDirectDeposit) {
236
- const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
237
- const result = new AddressSet();
238
- if (allowDirectDeposit && pool) {
239
- result.add(poolAddr);
240
- }
241
- const zappers = this.#getDepositZappers(poolAddr);
242
- for (const z of zappers) {
243
- result.add(z.tokenOut.addr);
244
- }
245
- if (result.size === 0) {
246
- throw new Error(
247
- `No tokensIn found for pool ${this.labelAddress(poolAddr)}`
248
- );
249
- }
250
- return result.asArray();
251
- }
252
- #depositTokensOut(poolAddr, tokenIn, allowDirectDeposit) {
253
- const result = new AddressSet();
254
- const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
255
- const zappers = this.#getDepositZappers(poolAddr);
256
- for (const z of zappers) {
257
- if (hexEq(z.tokenIn.addr, tokenIn)) {
258
- result.add(z.tokenOut.addr);
259
- }
260
- }
261
- if (allowDirectDeposit && hexEq(tokenIn, pool.underlying)) {
262
- result.add(poolAddr);
263
- }
264
- if (result.size === 0) {
265
- throw new Error(
266
- `No tokensOut found for tokenIn ${this.labelAddress(
267
- tokenIn
268
- )} on pool ${this.labelAddress(poolAddr)}`
269
- );
270
- }
271
- const r = result.asArray();
272
- return r;
273
- }
274
- #withdrawalTokensOut(poolAddr, tokenIn, allowDirectDeposit) {
275
- const result = new AddressSet();
276
- const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
277
- const zappers = this.#getDepositZappers(poolAddr);
278
- for (const z of zappers) {
279
- if (hexEq(z.tokenOut.addr, tokenIn)) {
280
- result.add(z.tokenIn.addr);
281
- }
282
- }
283
- if (allowDirectDeposit && hexEq(tokenIn, poolAddr)) {
284
- result.add(pool.underlying);
285
- }
286
- if (result.size === 0) {
287
- throw new Error(
288
- `No tokensOut found for tokenIn ${this.labelAddress(
289
- tokenIn
290
- )} on pool ${this.labelAddress(poolAddr)}`
291
- );
292
- }
293
- const r = result.asArray();
294
- return r;
295
- }
296
- /**
297
- * Filter out v2 diesel tokens (can come from migration v2 -> v3 zappers)
298
- * Also omits "migration" zappers (v3 -> v3.1) since they are treated in a different way
299
- */
300
- #getDepositZapper(poolAddr, tokenIn, tokenOut) {
301
- const zappers = this.sdk.marketRegister.getZapper(poolAddr, tokenIn, tokenOut)?.filter(
302
- (z) => z.type !== "migration" && !POOL_TOKENS_TO_MIGRATE.has(z.tokenIn.addr)
303
- );
304
- if (zappers && zappers.length > 1) {
305
- throw new Error(
306
- `Multiple zappers found for tokenIn ${this.labelAddress(
307
- tokenIn
308
- )} and tokenOut ${this.labelAddress(
309
- tokenOut
310
- )} on pool ${this.labelAddress(poolAddr)}`
311
- );
312
- }
313
- return zappers?.[0];
314
- }
315
- #depositMetadata(type, poolAddr, tokenIn, tokenOut, allowDirectDeposit) {
316
- if (!tokenOut) {
317
- throw new Error("tokenOut is required for classic pool deposit");
318
- }
319
- const { pool } = this.sdk.marketRegister.findByPool(poolAddr);
320
- const zapper = this.#getDepositZapper(poolAddr, tokenIn, tokenOut);
321
- if (!zapper && !allowDirectDeposit) {
322
- throw new Error(
323
- `No zapper found for tokenIn ${this.labelAddress(
324
- tokenIn
325
- )} and tokenOut ${this.labelAddress(
326
- tokenOut
327
- )} on pool ${this.labelAddress(poolAddr)}`
328
- );
329
- }
330
- return {
331
- zapper,
332
- // zapper or pool itself
333
- approveTarget: zapper?.baseParams.addr ?? pool.pool.address,
334
- // TODO: instead of permissible, return permitType зависимости от tokenIn
335
- // "none" | "eip2612" | "dai_like";
336
- permissible: !!zapper && !hexEq(tokenIn, NATIVE_ADDRESS),
337
- type
338
- };
339
- }
340
- #withdrawalMetadata(type, poolAddr, tokenIn, tokenOut, allowDirectDeposit) {
341
- if (!tokenOut) {
342
- throw new Error("tokenOut is required for classic pool deposit");
343
- }
344
- const zapper = this.#getDepositZapper(poolAddr, tokenOut, tokenIn);
345
- if (!zapper && !allowDirectDeposit) {
346
- throw new Error(
347
- `No zapper found for tokenIn ${this.labelAddress(
348
- tokenOut
349
- )} and tokenOut ${this.labelAddress(
350
- tokenIn
351
- )} on pool ${this.labelAddress(poolAddr)}`
352
- );
353
- }
354
- return {
355
- zapper,
356
- // zapper or pool itself
357
- approveTarget: zapper?.baseParams.addr,
358
- // TODO: instead of permissible, return permitType зависимости от tokenIn
359
- // "none" | "eip2612" | "dai_like";
360
- permissible: !!zapper,
361
- type
362
- };
363
- }
364
- #describeUnderlying(pool) {
365
- const market = this.sdk.marketRegister.findByPool(pool);
366
- return this.sdk.tokensMeta.mustGet(market.underlying);
367
- }
368
- }
369
- export {
370
- PoolService
371
- };
@@ -1,324 +0,0 @@
1
- export declare const iSecuritizeDegenNFTAbi: readonly [{
2
- readonly type: "function";
3
- readonly name: "addRegistrar";
4
- readonly inputs: readonly [{
5
- readonly name: "registrar";
6
- readonly type: "address";
7
- readonly internalType: "address";
8
- }];
9
- readonly outputs: readonly [];
10
- readonly stateMutability: "nonpayable";
11
- }, {
12
- readonly type: "function";
13
- readonly name: "burn";
14
- readonly inputs: readonly [{
15
- readonly name: "wallet";
16
- readonly type: "address";
17
- readonly internalType: "address";
18
- }, {
19
- readonly name: "";
20
- readonly type: "uint256";
21
- readonly internalType: "uint256";
22
- }];
23
- readonly outputs: readonly [];
24
- readonly stateMutability: "nonpayable";
25
- }, {
26
- readonly type: "function";
27
- readonly name: "contractType";
28
- readonly inputs: readonly [];
29
- readonly outputs: readonly [{
30
- readonly name: "";
31
- readonly type: "bytes32";
32
- readonly internalType: "bytes32";
33
- }];
34
- readonly stateMutability: "view";
35
- }, {
36
- readonly type: "function";
37
- readonly name: "getDSTokens";
38
- readonly inputs: readonly [];
39
- readonly outputs: readonly [{
40
- readonly name: "";
41
- readonly type: "address[]";
42
- readonly internalType: "address[]";
43
- }];
44
- readonly stateMutability: "view";
45
- }, {
46
- readonly type: "function";
47
- readonly name: "getFactory";
48
- readonly inputs: readonly [];
49
- readonly outputs: readonly [{
50
- readonly name: "";
51
- readonly type: "address";
52
- readonly internalType: "address";
53
- }];
54
- readonly stateMutability: "view";
55
- }, {
56
- readonly type: "function";
57
- readonly name: "getOperators";
58
- readonly inputs: readonly [{
59
- readonly name: "token";
60
- readonly type: "address";
61
- readonly internalType: "address";
62
- }];
63
- readonly outputs: readonly [{
64
- readonly name: "";
65
- readonly type: "address[]";
66
- readonly internalType: "address[]";
67
- }];
68
- readonly stateMutability: "view";
69
- }, {
70
- readonly type: "function";
71
- readonly name: "getRegisteredTokens";
72
- readonly inputs: readonly [{
73
- readonly name: "creditAccount";
74
- readonly type: "address";
75
- readonly internalType: "address";
76
- }];
77
- readonly outputs: readonly [{
78
- readonly name: "";
79
- readonly type: "address[]";
80
- readonly internalType: "address[]";
81
- }];
82
- readonly stateMutability: "view";
83
- }, {
84
- readonly type: "function";
85
- readonly name: "getRegistrar";
86
- readonly inputs: readonly [{
87
- readonly name: "token";
88
- readonly type: "address";
89
- readonly internalType: "address";
90
- }];
91
- readonly outputs: readonly [{
92
- readonly name: "";
93
- readonly type: "address";
94
- readonly internalType: "address";
95
- }];
96
- readonly stateMutability: "view";
97
- }, {
98
- readonly type: "function";
99
- readonly name: "isDSToken";
100
- readonly inputs: readonly [{
101
- readonly name: "token";
102
- readonly type: "address";
103
- readonly internalType: "address";
104
- }];
105
- readonly outputs: readonly [{
106
- readonly name: "";
107
- readonly type: "bool";
108
- readonly internalType: "bool";
109
- }];
110
- readonly stateMutability: "view";
111
- }, {
112
- readonly type: "function";
113
- readonly name: "isOperator";
114
- readonly inputs: readonly [{
115
- readonly name: "token";
116
- readonly type: "address";
117
- readonly internalType: "address";
118
- }, {
119
- readonly name: "operator";
120
- readonly type: "address";
121
- readonly internalType: "address";
122
- }];
123
- readonly outputs: readonly [{
124
- readonly name: "";
125
- readonly type: "bool";
126
- readonly internalType: "bool";
127
- }];
128
- readonly stateMutability: "view";
129
- }, {
130
- readonly type: "function";
131
- readonly name: "mint";
132
- readonly inputs: readonly [{
133
- readonly name: "wallet";
134
- readonly type: "address";
135
- readonly internalType: "address";
136
- }];
137
- readonly outputs: readonly [];
138
- readonly stateMutability: "nonpayable";
139
- }, {
140
- readonly type: "function";
141
- readonly name: "registerCreditAccount";
142
- readonly inputs: readonly [{
143
- readonly name: "creditAccount";
144
- readonly type: "address";
145
- readonly internalType: "address";
146
- }, {
147
- readonly name: "tokens";
148
- readonly type: "address[]";
149
- readonly internalType: "address[]";
150
- }];
151
- readonly outputs: readonly [];
152
- readonly stateMutability: "nonpayable";
153
- }, {
154
- readonly type: "function";
155
- readonly name: "registerHelperAccount";
156
- readonly inputs: readonly [{
157
- readonly name: "creditAccount";
158
- readonly type: "address";
159
- readonly internalType: "address";
160
- }, {
161
- readonly name: "helperAccount";
162
- readonly type: "address";
163
- readonly internalType: "address";
164
- }, {
165
- readonly name: "token";
166
- readonly type: "address";
167
- readonly internalType: "address";
168
- }];
169
- readonly outputs: readonly [];
170
- readonly stateMutability: "nonpayable";
171
- }, {
172
- readonly type: "function";
173
- readonly name: "serialize";
174
- readonly inputs: readonly [];
175
- readonly outputs: readonly [{
176
- readonly name: "serializedData";
177
- readonly type: "bytes";
178
- readonly internalType: "bytes";
179
- }];
180
- readonly stateMutability: "view";
181
- }, {
182
- readonly type: "function";
183
- readonly name: "setOperatorStatus";
184
- readonly inputs: readonly [{
185
- readonly name: "token";
186
- readonly type: "address";
187
- readonly internalType: "address";
188
- }, {
189
- readonly name: "operator";
190
- readonly type: "address";
191
- readonly internalType: "address";
192
- }, {
193
- readonly name: "approved";
194
- readonly type: "bool";
195
- readonly internalType: "bool";
196
- }];
197
- readonly outputs: readonly [];
198
- readonly stateMutability: "nonpayable";
199
- }, {
200
- readonly type: "function";
201
- readonly name: "version";
202
- readonly inputs: readonly [];
203
- readonly outputs: readonly [{
204
- readonly name: "";
205
- readonly type: "uint256";
206
- readonly internalType: "uint256";
207
- }];
208
- readonly stateMutability: "view";
209
- }, {
210
- readonly type: "event";
211
- readonly name: "Burn";
212
- readonly inputs: readonly [{
213
- readonly name: "wallet";
214
- readonly type: "address";
215
- readonly indexed: true;
216
- readonly internalType: "address";
217
- }];
218
- readonly anonymous: false;
219
- }, {
220
- readonly type: "event";
221
- readonly name: "Mint";
222
- readonly inputs: readonly [{
223
- readonly name: "wallet";
224
- readonly type: "address";
225
- readonly indexed: true;
226
- readonly internalType: "address";
227
- }];
228
- readonly anonymous: false;
229
- }, {
230
- readonly type: "event";
231
- readonly name: "SetOperatorStatus";
232
- readonly inputs: readonly [{
233
- readonly name: "token";
234
- readonly type: "address";
235
- readonly indexed: true;
236
- readonly internalType: "address";
237
- }, {
238
- readonly name: "operator";
239
- readonly type: "address";
240
- readonly indexed: true;
241
- readonly internalType: "address";
242
- }, {
243
- readonly name: "approved";
244
- readonly type: "bool";
245
- readonly indexed: false;
246
- readonly internalType: "bool";
247
- }];
248
- readonly anonymous: false;
249
- }, {
250
- readonly type: "event";
251
- readonly name: "SetRegistrar";
252
- readonly inputs: readonly [{
253
- readonly name: "token";
254
- readonly type: "address";
255
- readonly indexed: true;
256
- readonly internalType: "address";
257
- }, {
258
- readonly name: "registrar";
259
- readonly type: "address";
260
- readonly indexed: true;
261
- readonly internalType: "address";
262
- }];
263
- readonly anonymous: false;
264
- }, {
265
- readonly type: "error";
266
- readonly name: "CallerIsNotCreditFacadeException";
267
- readonly inputs: readonly [{
268
- readonly name: "caller";
269
- readonly type: "address";
270
- readonly internalType: "address";
271
- }];
272
- }, {
273
- readonly type: "error";
274
- readonly name: "CallerIsNotFactoryException";
275
- readonly inputs: readonly [{
276
- readonly name: "caller";
277
- readonly type: "address";
278
- readonly internalType: "address";
279
- }];
280
- }, {
281
- readonly type: "error";
282
- readonly name: "CallerIsNotInstanceOwnerException";
283
- readonly inputs: readonly [{
284
- readonly name: "caller";
285
- readonly type: "address";
286
- readonly internalType: "address";
287
- }];
288
- }, {
289
- readonly type: "error";
290
- readonly name: "CallerIsNotOperatorException";
291
- readonly inputs: readonly [{
292
- readonly name: "token";
293
- readonly type: "address";
294
- readonly internalType: "address";
295
- }, {
296
- readonly name: "caller";
297
- readonly type: "address";
298
- readonly internalType: "address";
299
- }];
300
- }, {
301
- readonly type: "error";
302
- readonly name: "RegistrarNotSetForTokenException";
303
- readonly inputs: readonly [{
304
- readonly name: "token";
305
- readonly type: "address";
306
- readonly internalType: "address";
307
- }];
308
- }, {
309
- readonly type: "error";
310
- readonly name: "UnknownTokenException";
311
- readonly inputs: readonly [{
312
- readonly name: "token";
313
- readonly type: "address";
314
- readonly internalType: "address";
315
- }];
316
- }, {
317
- readonly type: "error";
318
- readonly name: "UnknownWalletException";
319
- readonly inputs: readonly [{
320
- readonly name: "wallet";
321
- readonly type: "address";
322
- readonly internalType: "address";
323
- }];
324
- }];