@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.
- package/dist/cjs/common-utils/charts/credit-manager-payload.js +16 -0
- package/dist/cjs/common-utils/charts/credit-manager.js +134 -0
- package/dist/cjs/common-utils/charts/credit-session.js +257 -0
- package/dist/cjs/common-utils/charts/credit-sessions-payload.js +16 -0
- package/dist/cjs/common-utils/charts/graph-payload.js +16 -0
- package/dist/cjs/common-utils/charts/index.js +36 -0
- package/dist/cjs/common-utils/charts/pool-payload.js +16 -0
- package/dist/cjs/common-utils/charts/pool.js +199 -0
- package/dist/cjs/common-utils/charts/token-data.js +91 -0
- package/dist/cjs/common-utils/index.js +4 -0
- package/dist/cjs/common-utils/static/index.js +28 -0
- package/dist/cjs/common-utils/static/migration-config.js +16 -0
- package/dist/cjs/common-utils/static/pool-config.js +16 -0
- package/dist/cjs/common-utils/static/strategy.js +16 -0
- package/dist/cjs/common-utils/static/trading-pair.js +16 -0
- package/dist/cjs/common-utils/utils/{assetsMath.js → assets-math.js} +13 -13
- package/dist/cjs/common-utils/utils/{bigintMath.js → bigint-math.js} +3 -3
- package/dist/cjs/common-utils/utils/creditAccount/{calcHealthFactor.js → calc-health-factor.js} +9 -9
- package/dist/cjs/common-utils/utils/creditAccount/{calcOverallAPY.js → calc-overall-apy.js} +8 -8
- package/dist/cjs/common-utils/utils/creditAccount/{calcQuotaBorrowRate.js → calc-quota-borrow-rate.js} +3 -3
- package/dist/cjs/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.js → calc-relative-base-borrow-rate.js} +3 -3
- package/dist/cjs/common-utils/utils/creditAccount/debt.js +4 -4
- package/dist/cjs/common-utils/utils/creditAccount/{getTimeToLiquidation.js → get-time-to-liquidation.js} +3 -3
- package/dist/cjs/common-utils/utils/creditAccount/index.js +16 -16
- package/dist/cjs/common-utils/utils/creditAccount/{liquidationPrice.js → liquidation-price.js} +3 -3
- package/dist/cjs/common-utils/utils/creditAccount/{quotaUtils.js → quota-utils.js} +8 -8
- package/dist/cjs/common-utils/utils/creditAccount/sort.js +3 -3
- package/dist/cjs/common-utils/utils/index.js +6 -8
- package/dist/cjs/common-utils/utils/{priceMath.js → price-math.js} +3 -3
- package/dist/cjs/dev/AccountOpener.js +5 -45
- package/dist/cjs/dev/index.js +0 -2
- package/dist/cjs/plugins/zappers/ZappersPlugin.js +144 -0
- package/dist/cjs/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +6 -110
- package/dist/cjs/plugins/zappers/index.js +26 -0
- package/dist/cjs/plugins/zappers/package.json +1 -0
- package/dist/cjs/rewards/apy/index.js +24 -0
- package/dist/cjs/rewards/apy/output-details.js +16 -0
- package/dist/cjs/rewards/apy/output.js +16 -0
- package/dist/cjs/rewards/index.js +24 -0
- package/dist/cjs/rewards/package.json +1 -0
- package/dist/cjs/rewards/rewards/api.js +226 -0
- package/dist/cjs/rewards/rewards/apy.js +177 -0
- package/dist/cjs/rewards/rewards/common.js +16 -0
- package/dist/cjs/rewards/rewards/extra-apy.js +132 -0
- package/dist/cjs/rewards/rewards/index.js +28 -0
- package/dist/cjs/rewards/rewards/merkl-api.js +52 -0
- package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +104 -462
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +5 -16
- package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -1
- package/dist/cjs/sdk/base/TokensMeta.js +32 -255
- package/dist/cjs/sdk/base/index.js +0 -2
- package/dist/cjs/sdk/chain/chains.js +1 -2
- package/dist/cjs/sdk/constants/index.js +2 -0
- package/dist/cjs/sdk/{base/token-types.js → constants/phantom-tokens.js} +3 -9
- package/dist/cjs/sdk/market/MarketRegister.js +2 -2
- package/dist/cjs/sdk/market/MarketSuite.js +0 -6
- package/dist/cjs/sdk/market/index.js +1 -3
- package/dist/cjs/sdk/market/pool/PoolSuite.js +0 -3
- package/dist/cjs/sdk/market/pool/PoolV310Contract.js +2 -17
- package/dist/cjs/sdk/market/pool/index.js +0 -4
- package/dist/cjs/sdk/pools/AbstractPoolService.js +137 -0
- package/dist/cjs/{abi/iStateSerializer.js → sdk/pools/PoolServiceV310.js} +8 -14
- package/dist/cjs/sdk/pools/createPoolService.js +35 -0
- package/dist/cjs/sdk/pools/index.js +4 -2
- package/dist/cjs/sdk/utils/AddressMap.js +1 -1
- package/dist/cjs/sdk/utils/viem/sendRawTx.js +0 -16
- package/dist/esm/common-utils/charts/credit-manager.js +115 -0
- package/dist/esm/common-utils/charts/credit-session.js +233 -0
- package/dist/esm/common-utils/charts/credit-sessions-payload.js +0 -0
- package/dist/esm/common-utils/charts/graph-payload.js +0 -0
- package/dist/esm/common-utils/charts/index.js +8 -0
- package/dist/esm/common-utils/charts/pool-payload.js +0 -0
- package/dist/esm/common-utils/charts/pool.js +179 -0
- package/dist/esm/common-utils/charts/token-data.js +67 -0
- package/dist/esm/common-utils/index.js +2 -0
- package/dist/esm/common-utils/static/index.js +4 -0
- package/dist/esm/common-utils/static/migration-config.js +0 -0
- package/dist/esm/common-utils/static/pool-config.js +0 -0
- package/dist/esm/common-utils/static/strategy.js +0 -0
- package/dist/esm/common-utils/static/trading-pair.js +0 -0
- package/dist/esm/common-utils/utils/{assetsMath.js → assets-math.js} +2 -2
- package/dist/esm/common-utils/utils/creditAccount/{calcHealthFactor.js → calc-health-factor.js} +2 -2
- package/dist/esm/common-utils/utils/creditAccount/{calcOverallAPY.js → calc-overall-apy.js} +1 -1
- package/dist/esm/common-utils/utils/creditAccount/debt.js +2 -2
- package/dist/esm/common-utils/utils/creditAccount/index.js +8 -8
- package/dist/esm/common-utils/utils/creditAccount/{quotaUtils.js → quota-utils.js} +1 -1
- package/dist/esm/common-utils/utils/creditAccount/sort.js +1 -1
- package/dist/esm/common-utils/utils/index.js +3 -4
- package/dist/esm/dev/AccountOpener.js +6 -47
- package/dist/esm/dev/index.js +0 -2
- package/dist/esm/plugins/zappers/ZappersPlugin.js +126 -0
- package/dist/esm/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +2 -109
- package/dist/esm/plugins/zappers/index.js +3 -0
- package/dist/esm/plugins/zappers/package.json +1 -0
- package/dist/esm/plugins/zappers/types.js +0 -0
- package/dist/esm/rewards/apy/index.js +2 -0
- package/dist/esm/rewards/apy/output-details.js +0 -0
- package/dist/esm/rewards/apy/output.js +0 -0
- package/dist/esm/rewards/index.js +2 -0
- package/dist/esm/rewards/package.json +1 -0
- package/dist/esm/rewards/rewards/api.js +204 -0
- package/dist/esm/rewards/rewards/apy.js +160 -0
- package/dist/esm/rewards/rewards/common.js +0 -0
- package/dist/esm/rewards/rewards/extra-apy.js +101 -0
- package/dist/esm/rewards/rewards/index.js +4 -0
- package/dist/esm/rewards/rewards/merkl-api.js +18 -0
- package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +104 -462
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +5 -16
- package/dist/esm/sdk/base/ChainContractsRegister.js +1 -1
- package/dist/esm/sdk/base/TokensMeta.js +32 -261
- package/dist/esm/sdk/base/index.js +0 -1
- package/dist/esm/sdk/chain/chains.js +1 -2
- package/dist/esm/sdk/constants/index.js +1 -0
- package/dist/esm/sdk/{base/token-types.js → constants/phantom-tokens.js} +0 -4
- package/dist/esm/sdk/market/MarketRegister.js +2 -2
- package/dist/esm/sdk/market/MarketSuite.js +0 -6
- package/dist/esm/sdk/market/index.js +0 -1
- package/dist/esm/sdk/market/pool/PoolSuite.js +0 -3
- package/dist/esm/sdk/market/pool/PoolV310Contract.js +2 -17
- package/dist/esm/sdk/market/pool/index.js +0 -2
- package/dist/esm/sdk/pools/AbstractPoolService.js +113 -0
- package/dist/esm/sdk/pools/PoolServiceV310.js +6 -0
- package/dist/esm/sdk/pools/createPoolService.js +11 -0
- package/dist/esm/sdk/pools/index.js +2 -1
- package/dist/esm/sdk/utils/AddressMap.js +1 -1
- package/dist/esm/sdk/utils/viem/sendRawTx.js +1 -19
- package/dist/types/common-utils/charts/credit-manager-payload.d.ts +50 -0
- package/dist/types/common-utils/charts/credit-manager.d.ts +48 -0
- package/dist/types/common-utils/charts/credit-session.d.ts +111 -0
- package/dist/types/common-utils/charts/credit-sessions-payload.d.ts +111 -0
- package/dist/types/common-utils/charts/graph-payload.d.ts +10 -0
- package/dist/types/common-utils/charts/index.d.ts +8 -0
- package/dist/types/common-utils/charts/pool-payload.d.ts +111 -0
- package/dist/types/common-utils/charts/pool.d.ts +91 -0
- package/dist/types/common-utils/charts/token-data.d.ts +20 -0
- package/dist/types/common-utils/index.d.ts +2 -0
- package/dist/types/common-utils/static/index.d.ts +4 -0
- package/dist/types/common-utils/static/migration-config.d.ts +10 -0
- package/dist/types/common-utils/static/pool-config.d.ts +11 -0
- package/dist/types/common-utils/static/strategy.d.ts +78 -0
- package/dist/types/common-utils/static/trading-pair.d.ts +15 -0
- package/dist/types/common-utils/utils/creditAccount/index.d.ts +8 -8
- package/dist/types/common-utils/utils/index.d.ts +3 -4
- package/dist/types/dev/index.d.ts +1 -1
- package/dist/types/plugins/zappers/ZappersPlugin.d.ts +18 -0
- package/dist/types/plugins/zappers/extraZappers.d.ts +6 -0
- package/dist/types/plugins/zappers/index.d.ts +3 -0
- package/dist/types/plugins/zappers/types.d.ts +12 -0
- package/dist/types/rewards/apy/index.d.ts +2 -0
- package/dist/types/rewards/apy/output-details.d.ts +97 -0
- package/dist/types/rewards/apy/output.d.ts +22 -0
- package/dist/types/rewards/index.d.ts +2 -0
- package/dist/types/rewards/rewards/api.d.ts +49 -0
- package/dist/types/rewards/rewards/apy.d.ts +41 -0
- package/dist/types/rewards/rewards/common.d.ts +16 -0
- package/dist/types/rewards/rewards/extra-apy.d.ts +30 -0
- package/dist/types/rewards/rewards/index.d.ts +4 -0
- package/dist/types/rewards/rewards/merkl-api.d.ts +45 -0
- package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +27 -123
- package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
- package/dist/types/sdk/accounts/types.d.ts +8 -108
- package/dist/types/sdk/base/TokensMeta.d.ts +18 -34
- package/dist/types/sdk/base/index.d.ts +0 -1
- package/dist/types/sdk/base/types.d.ts +1 -0
- package/dist/types/sdk/chain/chains.d.ts +1 -1
- package/dist/types/sdk/constants/index.d.ts +1 -0
- package/dist/types/sdk/constants/phantom-tokens.d.ts +2 -0
- package/dist/types/sdk/market/MarketRegister.d.ts +2 -2
- package/dist/types/sdk/market/MarketSuite.d.ts +0 -3
- package/dist/types/sdk/market/index.d.ts +0 -1
- package/dist/types/sdk/market/pool/PoolSuite.d.ts +0 -2
- package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +2 -6
- package/dist/types/sdk/market/pool/index.d.ts +0 -2
- package/dist/types/sdk/pools/AbstractPoolService.d.ts +9 -0
- package/dist/types/sdk/pools/PoolServiceV310.d.ts +4 -0
- package/dist/types/sdk/pools/createPoolService.d.ts +3 -0
- package/dist/types/sdk/pools/index.d.ts +2 -1
- package/dist/types/sdk/pools/types.d.ts +63 -84
- package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
- package/dist/types/sdk/utils/viem/sendRawTx.d.ts +1 -5
- package/package.json +6 -1
- package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +0 -263
- package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +0 -278
- package/dist/cjs/common-utils/utils/endpoints.js +0 -65
- package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +0 -97
- package/dist/cjs/sdk/pools/PoolService.js +0 -391
- package/dist/esm/abi/310/iSecuritizeDegenNFT.js +0 -239
- package/dist/esm/abi/310/iSecuritizeKYCFactory.js +0 -254
- package/dist/esm/abi/iStateSerializer.js +0 -12
- package/dist/esm/common-utils/utils/endpoints.js +0 -41
- package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +0 -73
- package/dist/esm/sdk/pools/PoolService.js +0 -371
- package/dist/types/abi/310/iSecuritizeDegenNFT.d.ts +0 -324
- package/dist/types/abi/310/iSecuritizeKYCFactory.d.ts +0 -322
- package/dist/types/abi/iStateSerializer.d.ts +0 -11
- package/dist/types/common-utils/utils/endpoints.d.ts +0 -27
- package/dist/types/sdk/base/token-types.d.ts +0 -33
- package/dist/types/sdk/market/ZapperRegister.d.ts +0 -17
- package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +0 -345
- package/dist/types/sdk/market/types.d.ts +0 -10
- package/dist/types/sdk/pools/PoolService.d.ts +0 -14
- /package/dist/cjs/{sdk/market → plugins/zappers}/types.js +0 -0
- /package/dist/esm/{sdk/market/types.js → common-utils/charts/credit-manager-payload.js} +0 -0
- /package/dist/esm/common-utils/utils/{bigintMath.js → bigint-math.js} +0 -0
- /package/dist/esm/common-utils/utils/creditAccount/{calcQuotaBorrowRate.js → calc-quota-borrow-rate.js} +0 -0
- /package/dist/esm/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.js → calc-relative-base-borrow-rate.js} +0 -0
- /package/dist/esm/common-utils/utils/creditAccount/{getTimeToLiquidation.js → get-time-to-liquidation.js} +0 -0
- /package/dist/esm/common-utils/utils/creditAccount/{liquidationPrice.js → liquidation-price.js} +0 -0
- /package/dist/esm/common-utils/utils/{priceMath.js → price-math.js} +0 -0
- /package/dist/types/common-utils/utils/{assetsMath.d.ts → assets-math.d.ts} +0 -0
- /package/dist/types/common-utils/utils/{bigintMath.d.ts → bigint-math.d.ts} +0 -0
- /package/dist/types/common-utils/utils/creditAccount/{calcHealthFactor.d.ts → calc-health-factor.d.ts} +0 -0
- /package/dist/types/common-utils/utils/creditAccount/{calcOverallAPY.d.ts → calc-overall-apy.d.ts} +0 -0
- /package/dist/types/common-utils/utils/creditAccount/{calcQuotaBorrowRate.d.ts → calc-quota-borrow-rate.d.ts} +0 -0
- /package/dist/types/common-utils/utils/creditAccount/{calcRelativeBaseBorrowRate.d.ts → calc-relative-base-borrow-rate.d.ts} +0 -0
- /package/dist/types/common-utils/utils/creditAccount/{getTimeToLiquidation.d.ts → get-time-to-liquidation.d.ts} +0 -0
- /package/dist/types/common-utils/utils/creditAccount/{liquidationPrice.d.ts → liquidation-price.d.ts} +0 -0
- /package/dist/types/common-utils/utils/creditAccount/{quotaUtils.d.ts → quota-utils.d.ts} +0 -0
- /package/dist/types/common-utils/utils/{priceMath.d.ts → price-math.d.ts} +0 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PERCENTAGE_DECIMALS,
|
|
3
|
+
PERCENTAGE_FACTOR,
|
|
4
|
+
rayToNumber,
|
|
5
|
+
toBigInt
|
|
6
|
+
} from "../../sdk/index.js";
|
|
7
|
+
class ChartsPoolData {
|
|
8
|
+
address;
|
|
9
|
+
underlyingToken;
|
|
10
|
+
dieselToken;
|
|
11
|
+
version;
|
|
12
|
+
name;
|
|
13
|
+
marketConfigurator;
|
|
14
|
+
addLiqCount;
|
|
15
|
+
addedLiquidity;
|
|
16
|
+
removeLiqCount;
|
|
17
|
+
removedLiquidity;
|
|
18
|
+
earned7D;
|
|
19
|
+
earned7DInUSD;
|
|
20
|
+
utilization;
|
|
21
|
+
dieselRate;
|
|
22
|
+
dieselRateRay;
|
|
23
|
+
depositAPY;
|
|
24
|
+
depositAPYRay;
|
|
25
|
+
borrowAPY;
|
|
26
|
+
borrowAPYRay;
|
|
27
|
+
lmAPY;
|
|
28
|
+
lmRewardAll;
|
|
29
|
+
availableLiquidity;
|
|
30
|
+
availableLiquidityChange;
|
|
31
|
+
availableLiquidityInUSD;
|
|
32
|
+
caLockedValue;
|
|
33
|
+
caLockedValueChange;
|
|
34
|
+
caLockedValueInUSD;
|
|
35
|
+
expectedLiquidity;
|
|
36
|
+
expectedLiquidityChange;
|
|
37
|
+
expectedLiquidityInUSD;
|
|
38
|
+
expectedLiqWeekAgo;
|
|
39
|
+
expectedLiquidityLimit;
|
|
40
|
+
expectedLiquidityLimitInUSD;
|
|
41
|
+
totalBorrowed;
|
|
42
|
+
totalBorrowedChange;
|
|
43
|
+
totalBorrowedInUSD;
|
|
44
|
+
debtWithInterest;
|
|
45
|
+
debtWithInterestChange;
|
|
46
|
+
debtWithInterestInUSD;
|
|
47
|
+
debtWithInterestOld;
|
|
48
|
+
oldAvailableLiquidity;
|
|
49
|
+
oldCALockedValue;
|
|
50
|
+
oldExpectedLiquidity;
|
|
51
|
+
oldTotalBorrowed;
|
|
52
|
+
withdrawFee;
|
|
53
|
+
depositAPY1DAverage;
|
|
54
|
+
depositAPY1DAverageChange;
|
|
55
|
+
depositAPY7DAverage;
|
|
56
|
+
depositAPY30DAverage;
|
|
57
|
+
oldUniqueLPs;
|
|
58
|
+
uniqueLPs;
|
|
59
|
+
uniqueLPsChange;
|
|
60
|
+
constructor(payload) {
|
|
61
|
+
this.address = (payload.addr || "").toLowerCase();
|
|
62
|
+
this.underlyingToken = (payload.underlyingToken || "").toLowerCase();
|
|
63
|
+
this.dieselToken = (payload.dieselToken || "").toLowerCase();
|
|
64
|
+
this.version = payload.version || 1;
|
|
65
|
+
this.name = payload.name || "";
|
|
66
|
+
this.marketConfigurator = (payload.market || "").toLowerCase();
|
|
67
|
+
this.earned7D = payload.earned7D || 0;
|
|
68
|
+
this.earned7DInUSD = payload.earned7DInUSD || 0;
|
|
69
|
+
this.dieselRate = rayToNumber(payload.dieselRate_RAY || 0);
|
|
70
|
+
this.dieselRateRay = toBigInt(payload.dieselRate_RAY || 0);
|
|
71
|
+
this.depositAPY = rayToNumber(payload.depositAPY_RAY || 0) * Number(PERCENTAGE_DECIMALS);
|
|
72
|
+
this.depositAPYRay = toBigInt(payload.depositAPY_RAY);
|
|
73
|
+
this.borrowAPY = rayToNumber(payload.borrowAPY_RAY || 0) * Number(PERCENTAGE_DECIMALS);
|
|
74
|
+
this.borrowAPYRay = toBigInt(payload.borrowAPY_RAY || 0);
|
|
75
|
+
this.lmAPY = (payload.lmAPY || 0) / Number(PERCENTAGE_DECIMALS);
|
|
76
|
+
this.lmRewardAll = (payload.lmRewardAll || []).map((r) => ({
|
|
77
|
+
apy: (r.apy || 0) / Number(PERCENTAGE_DECIMALS),
|
|
78
|
+
token: (r.token || "").toLowerCase()
|
|
79
|
+
}));
|
|
80
|
+
const expected = toBigInt(payload.expectedLiquidity || 0);
|
|
81
|
+
const available = toBigInt(payload.availableLiquidity || 0);
|
|
82
|
+
this.availableLiquidity = available;
|
|
83
|
+
this.oldAvailableLiquidity = toBigInt(payload.availableLiquidityOld || 0);
|
|
84
|
+
this.availableLiquidityChange = (payload.availableLiquidity10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
|
|
85
|
+
this.availableLiquidityInUSD = payload.availableLiquidityInUSD || 0;
|
|
86
|
+
this.utilization = ChartsPoolData.calculateUtilization(expected, available);
|
|
87
|
+
this.caLockedValue = payload.caLockedValue || 0;
|
|
88
|
+
this.oldCALockedValue = payload.caLockedValueOld || 0;
|
|
89
|
+
this.caLockedValueChange = (payload.caLockedValue10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
|
|
90
|
+
this.caLockedValueInUSD = payload.caLockedValueUSD || 0;
|
|
91
|
+
this.expectedLiquidity = toBigInt(payload.expectedLiquidity || 0);
|
|
92
|
+
this.oldExpectedLiquidity = toBigInt(payload.expectedLiquidityOld || 0);
|
|
93
|
+
this.expectedLiquidityChange = (payload.expectedLiquidity10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
|
|
94
|
+
this.expectedLiquidityInUSD = payload.expectedLiquidityInUSD || 0;
|
|
95
|
+
this.expectedLiqWeekAgo = payload.expectedLiqWeekAgo || 0;
|
|
96
|
+
this.expectedLiquidityLimit = toBigInt(payload.expectedLiquidityLimit || 0);
|
|
97
|
+
this.expectedLiquidityLimitInUSD = payload.expectedLiquidityLimitInUSD || 0;
|
|
98
|
+
this.totalBorrowed = toBigInt(payload.totalBorrowed || 0);
|
|
99
|
+
this.oldTotalBorrowed = toBigInt(payload.totalBorrowedOld || 0);
|
|
100
|
+
this.totalBorrowedChange = (payload.totalBorrowed10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
|
|
101
|
+
this.totalBorrowedInUSD = payload.totalBorrowedInUSD || 0;
|
|
102
|
+
this.debtWithInterest = toBigInt(payload.debtWithInterest || 0);
|
|
103
|
+
this.debtWithInterestOld = toBigInt(payload.debtWithInterestOld || 0);
|
|
104
|
+
this.debtWithInterestChange = (payload.debtWithInterest10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
|
|
105
|
+
this.debtWithInterestInUSD = payload.debtWithInterestInUSD || 0;
|
|
106
|
+
this.withdrawFee = payload.withdrawFee || 0;
|
|
107
|
+
this.addLiqCount = payload.addLiqCount || 0;
|
|
108
|
+
this.addedLiquidity = payload.addedLiquidity || 0;
|
|
109
|
+
this.removeLiqCount = payload.removeLiqCount || 0;
|
|
110
|
+
this.removedLiquidity = payload.removedLiquidity || 0;
|
|
111
|
+
this.depositAPY1DAverage = (payload.depositAPY1DAverage || 0) / Number(PERCENTAGE_DECIMALS);
|
|
112
|
+
this.depositAPY1DAverageChange = (payload.depositAPY1DAverage10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
|
|
113
|
+
this.depositAPY7DAverage = (payload.depositAPY7DAverage || 0) / Number(PERCENTAGE_DECIMALS);
|
|
114
|
+
this.depositAPY30DAverage = (payload.depositAPY30DAverage || 0) / Number(PERCENTAGE_DECIMALS);
|
|
115
|
+
this.uniqueLPs = payload.uniqueLPs || 0;
|
|
116
|
+
this.oldUniqueLPs = payload.uniqueLPsOld || 0;
|
|
117
|
+
this.uniqueLPsChange = (payload.uniqueLPs10kBasis || 0) * Number(PERCENTAGE_DECIMALS);
|
|
118
|
+
}
|
|
119
|
+
static calculateUtilization(expected, available) {
|
|
120
|
+
if (expected === 0n) return 0;
|
|
121
|
+
const borrowed = expected - available;
|
|
122
|
+
const u = Number(borrowed * PERCENTAGE_FACTOR / expected) / Number(PERCENTAGE_DECIMALS);
|
|
123
|
+
return Math.max(0, u);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
class UserPoolData {
|
|
127
|
+
id;
|
|
128
|
+
address;
|
|
129
|
+
dieselToken;
|
|
130
|
+
underlyingToken;
|
|
131
|
+
marketConfigurator;
|
|
132
|
+
depositAPY;
|
|
133
|
+
depositAPYRay;
|
|
134
|
+
lmRewardAll;
|
|
135
|
+
providedLiquidity;
|
|
136
|
+
providedLiquidityInUSD;
|
|
137
|
+
dieselBalance;
|
|
138
|
+
dieselBalanceInUSD;
|
|
139
|
+
userRewards;
|
|
140
|
+
pnlInNativeToken;
|
|
141
|
+
pnlInUSD;
|
|
142
|
+
addedLiq;
|
|
143
|
+
addLiqCount;
|
|
144
|
+
removeLiqCount;
|
|
145
|
+
removedLiq;
|
|
146
|
+
constructor(payload) {
|
|
147
|
+
this.id = (payload.pool || "").toLowerCase();
|
|
148
|
+
this.address = (payload.pool || "").toLowerCase();
|
|
149
|
+
this.underlyingToken = (payload.underlyingToken || "").toLowerCase();
|
|
150
|
+
this.dieselToken = (payload.dieselToken || "").toLowerCase();
|
|
151
|
+
this.marketConfigurator = (payload.market || "").toLowerCase();
|
|
152
|
+
this.depositAPY = rayToNumber(payload.depositAPY_RAY || 0) * Number(PERCENTAGE_DECIMALS);
|
|
153
|
+
this.depositAPYRay = toBigInt(payload.depositAPY_RAY || 0);
|
|
154
|
+
this.lmRewardAll = (payload.lmRewardAll || []).map((r) => ({
|
|
155
|
+
apy: (r.apy || 0) / Number(PERCENTAGE_DECIMALS),
|
|
156
|
+
token: (r.token || "").toLowerCase()
|
|
157
|
+
}));
|
|
158
|
+
this.providedLiquidity = toBigInt(payload.liqValue || 0);
|
|
159
|
+
this.providedLiquidityInUSD = payload.liqValueInUSD;
|
|
160
|
+
this.dieselBalance = toBigInt(payload.dieselBalanceBI || 0);
|
|
161
|
+
this.dieselBalanceInUSD = payload.dieselBalance;
|
|
162
|
+
this.userRewards = (payload.userRewards || []).map((r) => ({
|
|
163
|
+
token: (r.rewardToken || "").toLowerCase(),
|
|
164
|
+
pool: (r.pool || "").toLowerCase(),
|
|
165
|
+
lmRewards: toBigInt(r.lmRewards || 0),
|
|
166
|
+
lmRewardsInUSD: r.lmRewardsInUSD
|
|
167
|
+
}));
|
|
168
|
+
this.pnlInNativeToken = payload.liqPnlInNativeToken;
|
|
169
|
+
this.pnlInUSD = payload.liqPnlInUSD;
|
|
170
|
+
this.addedLiq = payload.addedLiq;
|
|
171
|
+
this.addLiqCount = payload.addLiqCount;
|
|
172
|
+
this.removeLiqCount = payload.removeLiqCount;
|
|
173
|
+
this.removedLiq = payload.removedLiq;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
export {
|
|
177
|
+
ChartsPoolData,
|
|
178
|
+
UserPoolData
|
|
179
|
+
};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
const HUMAN_READABLE_TITLES = {
|
|
2
|
+
USDC_e: "USDC.e",
|
|
3
|
+
dUSDC_eV3: "dUSDC.eV3",
|
|
4
|
+
sdUSDC_eV3: "sdUSDC.eV3",
|
|
5
|
+
sdWETHV3_OLD: "sdWETHV3 Old",
|
|
6
|
+
PT_rsETH_26SEP2024: "pt.rsETH(26.09.24)",
|
|
7
|
+
PT_sUSDe_26DEC2024: "pt.sUSDe(26.12.24)",
|
|
8
|
+
PT_eETH_26DEC2024: "pt.eETH(26.12.24)",
|
|
9
|
+
PT_ezETH_26DEC2024: "pt.ezETH(26.12.24)",
|
|
10
|
+
PT_eBTC_26DEC2024: "pt.eBTC(26.12.24)",
|
|
11
|
+
PT_LBTC_27MAR2025: "pt.LBTC(27.03.25)",
|
|
12
|
+
PT_cornLBTC_26DEC2024: "pt.c.LBTC(26.12.24)",
|
|
13
|
+
PT_corn_eBTC_27MAR2025: "pt.c.eBTC(27.03.25)",
|
|
14
|
+
PT_corn_pumpBTC_26DEC2024: "pt.c.pumpBTC(26.12.24)",
|
|
15
|
+
PT_sUSDe_27MAR2025: "pt.sUSDe(27.03.25)",
|
|
16
|
+
PT_sUSDe_29MAY2025: "pt.sUSDe(29.05.25)",
|
|
17
|
+
PT_beraSTONE_10APR2025: "pt.beraSTONE(10.04.25)",
|
|
18
|
+
PT_uptBTC_14AUG2025: "pt.uptBTC(14.08.25)",
|
|
19
|
+
PT_sUSDX_1SEP2025: "pt.sUSDX(1.09.25)",
|
|
20
|
+
PT_sUSDf_25SEP2025: "pt.sUSDf(25.09.25)",
|
|
21
|
+
"PT-sUSDf-29JAN2026": "pt.sUSDf(29.01.26)",
|
|
22
|
+
PT_USDf_29JAN2026: "pt.USDf(29.01.26)",
|
|
23
|
+
stkcvxllamathena_v3_1: "stkcvxllamathena",
|
|
24
|
+
stkcvxRLUSDUSDC_v3_1: "stkcvxRLUSDUSDC",
|
|
25
|
+
"PT-wstUSR-25SEP2025": "pt.wstUSR(25.09.25)",
|
|
26
|
+
"PT-yUSD-27NOV2025": "pt.yUSD(27.11.25)",
|
|
27
|
+
"PT-pUSDe-16OCT2025": "pt.pUSDe(16.10.25)",
|
|
28
|
+
"PT-USDe-15JAN2026": "pt.USDe(15.01.26)",
|
|
29
|
+
"PT-sUSDe-15JAN2026": "pt.sUSDe(15.01.26)",
|
|
30
|
+
"PT-syrupUSDT-29JAN2026": "pt.syrupUSDT(29.01.26)",
|
|
31
|
+
"PT-USDai-19MAR2026": "pt.USDai(19.03.26)",
|
|
32
|
+
"PT-sUSDai-19MAR2026": "pt.sUSDai(19.03.26)",
|
|
33
|
+
"LP-syrupUSDT-29JAN2026": "lp.syrupUSDT(29.01.26)",
|
|
34
|
+
["0xab7d50fc2486a1ac06516e2ece9dadc95ba8cd20".toLowerCase()]: "cp0xLRT\xA0\u2192\xA0wstETH",
|
|
35
|
+
["0x6252467c2fefb61cb55180282943139baeea36c5".toLowerCase()]: "rstETH\xA0\u2192\xA0wstETH",
|
|
36
|
+
["0xd412ca00d177eba2843348f9c50dd17bfce32c40".toLowerCase()]: "pzETH\xA0\u2192\xA0wstETH",
|
|
37
|
+
["0x26c98674e623647f11909791593fa3b6e9406c67".toLowerCase()]: "steak7LRT\xA0\u2192\xA0wstETH",
|
|
38
|
+
["0x9fb930eacadad079683a4758424a53b9b3692775".toLowerCase()]: "Re7LRT\xA0\u2192\xA0wstETH",
|
|
39
|
+
["0xd7f1A4e3aba92a9D20987C752Bd4a6cc759D7738".toLowerCase()]: "hgETH\xA0\u2192\xA0rsETH",
|
|
40
|
+
["0xd2a72aa2d3f2815673f4bb887559c333d7f1f34f".toLowerCase()]: "mEDGE\xA0\u2192\xA0USDC",
|
|
41
|
+
ETHPlus: "ETH+"
|
|
42
|
+
};
|
|
43
|
+
class TokenData {
|
|
44
|
+
address;
|
|
45
|
+
title;
|
|
46
|
+
symbol;
|
|
47
|
+
name;
|
|
48
|
+
decimals;
|
|
49
|
+
icon;
|
|
50
|
+
isPhantom;
|
|
51
|
+
constructor(payload) {
|
|
52
|
+
const address = payload.addr.toLowerCase();
|
|
53
|
+
this.address = address;
|
|
54
|
+
this.title = HUMAN_READABLE_TITLES[payload.symbol] || HUMAN_READABLE_TITLES[address] || payload.title || payload.symbol;
|
|
55
|
+
this.symbol = payload.symbol;
|
|
56
|
+
this.name = payload.name;
|
|
57
|
+
this.decimals = payload.decimals;
|
|
58
|
+
this.icon = TokenData.getTokenIcon(payload.symbol);
|
|
59
|
+
this.isPhantom = payload.isPhantom ?? false;
|
|
60
|
+
}
|
|
61
|
+
static getTokenIcon(symbol) {
|
|
62
|
+
return `https://static.gearbox.finance/tokens/${symbol.toLowerCase()}.svg`;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export {
|
|
66
|
+
TokenData
|
|
67
|
+
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BigIntMath } from "./
|
|
1
|
+
import { BigIntMath } from "./bigint-math.js";
|
|
2
2
|
import { sortBalances } from "./creditAccount/sort.js";
|
|
3
|
-
import { PriceUtils } from "./
|
|
3
|
+
import { PriceUtils } from "./price-math.js";
|
|
4
4
|
class AssetUtils {
|
|
5
5
|
constructor() {
|
|
6
6
|
}
|
package/dist/esm/common-utils/utils/creditAccount/{calcHealthFactor.js → calc-health-factor.js}
RENAMED
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
PERCENTAGE_FACTOR,
|
|
3
3
|
PRICE_DECIMALS
|
|
4
4
|
} from "../../../sdk/index.js";
|
|
5
|
-
import { BigIntMath } from "../
|
|
6
|
-
import { PriceUtils } from "../
|
|
5
|
+
import { BigIntMath } from "../bigint-math.js";
|
|
6
|
+
import { PriceUtils } from "../price-math.js";
|
|
7
7
|
const MAX_UINT16 = 65535;
|
|
8
8
|
function calcHealthFactor({
|
|
9
9
|
assets,
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
PRICE_DECIMALS_POW,
|
|
4
4
|
WAD_DECIMALS_POW
|
|
5
5
|
} from "../../../sdk/index.js";
|
|
6
|
-
import { BigIntMath } from "../
|
|
7
|
-
import { PriceUtils } from "../
|
|
6
|
+
import { BigIntMath } from "../bigint-math.js";
|
|
7
|
+
import { PriceUtils } from "../price-math.js";
|
|
8
8
|
function calcMaxDebtIncrease(healthFactor, debt, underlyingLT, minHf = Number(PERCENTAGE_FACTOR)) {
|
|
9
9
|
const result = debt * BigInt(healthFactor - minHf) / BigInt(minHf - underlyingLT);
|
|
10
10
|
return BigIntMath.max(0n, result);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./
|
|
1
|
+
export * from "./calc-health-factor.js";
|
|
2
|
+
export * from "./calc-overall-apy.js";
|
|
3
|
+
export * from "./calc-quota-borrow-rate.js";
|
|
4
|
+
export * from "./calc-quota-borrow-rate.js";
|
|
5
|
+
export * from "./calc-relative-base-borrow-rate.js";
|
|
6
6
|
export * from "./debt.js";
|
|
7
|
-
export * from "./
|
|
8
|
-
export * from "./
|
|
9
|
-
export * from "./
|
|
7
|
+
export * from "./get-time-to-liquidation.js";
|
|
8
|
+
export * from "./liquidation-price.js";
|
|
9
|
+
export * from "./quota-utils.js";
|
|
10
10
|
export * from "./sort.js";
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
MIN_INT96,
|
|
3
3
|
PERCENTAGE_FACTOR
|
|
4
4
|
} from "../../../sdk/index.js";
|
|
5
|
-
import { BigIntMath } from "../
|
|
5
|
+
import { BigIntMath } from "../bigint-math.js";
|
|
6
6
|
function roundUpQuota(quotaChange) {
|
|
7
7
|
return quotaChange !== MIN_INT96 ? quotaChange / PERCENTAGE_FACTOR * PERCENTAGE_FACTOR : quotaChange;
|
|
8
8
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PRICE_DECIMALS } from "../../../sdk/index.js";
|
|
2
|
-
import { PriceUtils } from "../
|
|
2
|
+
import { PriceUtils } from "../price-math.js";
|
|
3
3
|
function sortBalances(balances, prices, tokens) {
|
|
4
4
|
return Object.entries(balances).sort(
|
|
5
5
|
([addr1, amount1], [addr2, amount2]) => {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
1
|
+
export * from "./assets-math.js";
|
|
2
|
+
export * from "./bigint-math.js";
|
|
3
3
|
export * from "./creditAccount/index.js";
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./priceMath.js";
|
|
4
|
+
export * from "./price-math.js";
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
parseEventLogs
|
|
7
7
|
} from "viem";
|
|
8
8
|
import { generatePrivateKey, privateKeyToAccount } from "viem/accounts";
|
|
9
|
-
import { iCreditFacadeV310Abi } from "../abi/310/generated.js";
|
|
9
|
+
import { iCreditFacadeV310Abi, iPoolV310Abi } from "../abi/310/generated.js";
|
|
10
10
|
import { ierc20Abi } from "../abi/iERC20.js";
|
|
11
11
|
import {
|
|
12
12
|
ADDRESS_0X0,
|
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
childLogger,
|
|
16
16
|
MAX_UINT256,
|
|
17
17
|
PERCENTAGE_FACTOR,
|
|
18
|
-
PoolService,
|
|
19
18
|
SDKConstruct,
|
|
20
19
|
sendRawTx
|
|
21
20
|
} from "../sdk/index.js";
|
|
@@ -44,7 +43,6 @@ class AccountOpener extends SDKConstruct {
|
|
|
44
43
|
#minDebtMultiplier;
|
|
45
44
|
#allowMint;
|
|
46
45
|
#leverageDelta;
|
|
47
|
-
#poolService;
|
|
48
46
|
constructor(service, options_ = {}) {
|
|
49
47
|
super(service.sdk);
|
|
50
48
|
const {
|
|
@@ -70,7 +68,6 @@ class AccountOpener extends SDKConstruct {
|
|
|
70
68
|
this.#poolDepositMultiplier = BigInt(poolDepositMultiplier);
|
|
71
69
|
this.#minDebtMultiplier = BigInt(minDebtMultiplier);
|
|
72
70
|
this.#leverageDelta = BigInt(leverageDelta);
|
|
73
|
-
this.#poolService = new PoolService(service.sdk);
|
|
74
71
|
this.#logger?.info(
|
|
75
72
|
{
|
|
76
73
|
borrower: privateKeyToAccount(this.borrowerKey).address,
|
|
@@ -108,10 +105,6 @@ class AccountOpener extends SDKConstruct {
|
|
|
108
105
|
},
|
|
109
106
|
"opening credit accounts"
|
|
110
107
|
);
|
|
111
|
-
await Promise.all([
|
|
112
|
-
this.sdk.tokensMeta.loadTokenData(),
|
|
113
|
-
this.sdk.marketRegister.loadZappers()
|
|
114
|
-
]);
|
|
115
108
|
let deposits = [];
|
|
116
109
|
if (depositIntoPools) {
|
|
117
110
|
try {
|
|
@@ -463,34 +456,9 @@ class AccountOpener extends SDKConstruct {
|
|
|
463
456
|
this.#logger?.debug(
|
|
464
457
|
`depositor balance in underlying: ${this.sdk.tokensMeta.formatBN(pool.underlying, allowance, { symbol: true })}`
|
|
465
458
|
);
|
|
466
|
-
const tokensOut = this.#poolService.getDepositTokensOut(
|
|
467
|
-
address,
|
|
468
|
-
underlying
|
|
469
|
-
);
|
|
470
|
-
this.#logger?.debug(
|
|
471
|
-
{ tokensOut: tokensOut.map((t) => this.labelAddress(t)) },
|
|
472
|
-
"deposit tokens out"
|
|
473
|
-
);
|
|
474
|
-
if (tokensOut.length === 0) {
|
|
475
|
-
throw new Error(`no tokens out found for pool ${poolName}`);
|
|
476
|
-
}
|
|
477
|
-
const tokenOut = tokensOut[0];
|
|
478
|
-
const metadata = this.#poolService.getDepositMetadata(
|
|
479
|
-
address,
|
|
480
|
-
underlying,
|
|
481
|
-
tokenOut
|
|
482
|
-
);
|
|
483
|
-
this.logger?.debug(
|
|
484
|
-
{
|
|
485
|
-
underlying: this.labelAddress(underlying),
|
|
486
|
-
tokenOut: this.labelAddress(tokenOut),
|
|
487
|
-
...metadata
|
|
488
|
-
},
|
|
489
|
-
"pool deposit metadata"
|
|
490
|
-
);
|
|
491
459
|
txHash = await this.#anvil.writeContract({
|
|
492
460
|
account: depositor,
|
|
493
|
-
address:
|
|
461
|
+
address: underlying,
|
|
494
462
|
abi: ierc20Abi,
|
|
495
463
|
functionName: "approve",
|
|
496
464
|
args: [address, allowance],
|
|
@@ -507,21 +475,12 @@ class AccountOpener extends SDKConstruct {
|
|
|
507
475
|
this.#logger?.debug(
|
|
508
476
|
`depositor approved underlying for pool ${poolName}: ${txHash}`
|
|
509
477
|
);
|
|
510
|
-
const depositCall = this.#poolService.addLiquidity({
|
|
511
|
-
collateral: { token: underlying, balance: amount },
|
|
512
|
-
pool: address,
|
|
513
|
-
wallet: depositor.address,
|
|
514
|
-
meta: metadata
|
|
515
|
-
});
|
|
516
|
-
if (!depositCall) {
|
|
517
|
-
throw new Error(`no deposit call could be created for ${poolName}`);
|
|
518
|
-
}
|
|
519
478
|
txHash = await this.#anvil.writeContract({
|
|
520
479
|
account: depositor,
|
|
521
|
-
address
|
|
522
|
-
abi:
|
|
523
|
-
functionName:
|
|
524
|
-
args:
|
|
480
|
+
address,
|
|
481
|
+
abi: iPoolV310Abi,
|
|
482
|
+
functionName: "deposit",
|
|
483
|
+
args: [amount, depositor.address],
|
|
525
484
|
chain: this.#anvil.chain
|
|
526
485
|
});
|
|
527
486
|
receipt = await this.#anvil.waitForTransactionReceipt({ hash: txHash });
|
package/dist/esm/dev/index.js
CHANGED
|
@@ -11,7 +11,6 @@ export * from "./isRateLimitError.js";
|
|
|
11
11
|
export * from "./isTransientError.js";
|
|
12
12
|
import {
|
|
13
13
|
isRangeError,
|
|
14
|
-
LogSplitterTransportOptions,
|
|
15
14
|
logSplitterTransport
|
|
16
15
|
} from "./logSplitterTransport.js";
|
|
17
16
|
export * from "./ltUtils.js";
|
|
@@ -24,7 +23,6 @@ export * from "./resilientTransport.js";
|
|
|
24
23
|
export * from "./transports.js";
|
|
25
24
|
export * from "./types.js";
|
|
26
25
|
export {
|
|
27
|
-
LogSplitterTransportOptions,
|
|
28
26
|
isRangeError,
|
|
29
27
|
logSplitterTransport
|
|
30
28
|
};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
|
|
2
|
+
import {
|
|
3
|
+
AddressMap,
|
|
4
|
+
AP_PERIPHERY_COMPRESSOR,
|
|
5
|
+
BasePlugin,
|
|
6
|
+
hexEq,
|
|
7
|
+
VERSION_RANGE_310
|
|
8
|
+
} from "../../sdk/index.js";
|
|
9
|
+
class ZappersPlugin extends BasePlugin {
|
|
10
|
+
#zappers;
|
|
11
|
+
#extraZappers;
|
|
12
|
+
constructor(extraZappers = [], loadOnAttach = false) {
|
|
13
|
+
super(loadOnAttach);
|
|
14
|
+
this.#extraZappers = this.#addExtraZappers(extraZappers);
|
|
15
|
+
}
|
|
16
|
+
async load(force) {
|
|
17
|
+
if (!force && this.loaded) {
|
|
18
|
+
return this.state;
|
|
19
|
+
}
|
|
20
|
+
const [pcAddr] = this.sdk.addressProvider.mustGetLatest(
|
|
21
|
+
AP_PERIPHERY_COMPRESSOR,
|
|
22
|
+
VERSION_RANGE_310
|
|
23
|
+
);
|
|
24
|
+
this.sdk.logger?.debug(
|
|
25
|
+
`loading zappers with periphery compressor ${pcAddr}`
|
|
26
|
+
);
|
|
27
|
+
const markets = this.sdk.marketRegister.markets;
|
|
28
|
+
const resp = await this.client.multicall({
|
|
29
|
+
contracts: markets.map(
|
|
30
|
+
(m) => ({
|
|
31
|
+
abi: peripheryCompressorAbi,
|
|
32
|
+
address: pcAddr,
|
|
33
|
+
functionName: "getZappers",
|
|
34
|
+
args: [m.configurator.address, m.pool.pool.address]
|
|
35
|
+
})
|
|
36
|
+
),
|
|
37
|
+
allowFailure: true,
|
|
38
|
+
batchSize: 0,
|
|
39
|
+
blockNumber: this.sdk.currentBlock
|
|
40
|
+
});
|
|
41
|
+
this.#zappers = new AddressMap(void 0, "zappers");
|
|
42
|
+
for (let i = 0; i < resp.length; i++) {
|
|
43
|
+
const { status, result, error } = resp[i];
|
|
44
|
+
const marketConfigurator = markets[i].configurator.address;
|
|
45
|
+
const pool = markets[i].pool.pool.address;
|
|
46
|
+
if (status === "success") {
|
|
47
|
+
this.#zappers.upsert(
|
|
48
|
+
pool,
|
|
49
|
+
result.map((z) => ({ ...z, pool }))
|
|
50
|
+
);
|
|
51
|
+
} else {
|
|
52
|
+
this.sdk.logger?.error(
|
|
53
|
+
`failed to load zapper for market configurator ${this.labelAddress(
|
|
54
|
+
marketConfigurator
|
|
55
|
+
)} and pool ${this.labelAddress(pool)}: ${error}`
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
this.#loadZapperTokens();
|
|
60
|
+
return this.state;
|
|
61
|
+
}
|
|
62
|
+
#addExtraZappers(extraZappers) {
|
|
63
|
+
const zappers = new AddressMap();
|
|
64
|
+
for (const z of extraZappers) {
|
|
65
|
+
const existing = zappers?.get(z.pool);
|
|
66
|
+
if (existing) {
|
|
67
|
+
const hasZapper = existing.some(
|
|
68
|
+
(zz) => hexEq(zz.baseParams.addr, z.baseParams.addr)
|
|
69
|
+
);
|
|
70
|
+
if (!hasZapper) {
|
|
71
|
+
existing.push(z);
|
|
72
|
+
}
|
|
73
|
+
} else {
|
|
74
|
+
zappers?.upsert(z.pool, [z]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return zappers;
|
|
78
|
+
}
|
|
79
|
+
get extraZappers() {
|
|
80
|
+
if (!this.#extraZappers) {
|
|
81
|
+
console.error("extra zappers not attached");
|
|
82
|
+
return new AddressMap();
|
|
83
|
+
}
|
|
84
|
+
return this.#extraZappers;
|
|
85
|
+
}
|
|
86
|
+
get zappers() {
|
|
87
|
+
if (!this.#zappers) {
|
|
88
|
+
throw new Error("zappers plugin not attached");
|
|
89
|
+
}
|
|
90
|
+
return this.#zappers;
|
|
91
|
+
}
|
|
92
|
+
get loaded() {
|
|
93
|
+
return !!this.#zappers;
|
|
94
|
+
}
|
|
95
|
+
stateHuman(_) {
|
|
96
|
+
return this.zappers.values().flatMap(
|
|
97
|
+
(l) => l.flatMap((z) => ({
|
|
98
|
+
address: z.baseParams.addr,
|
|
99
|
+
contractType: z.baseParams.contractType,
|
|
100
|
+
version: Number(z.baseParams.version),
|
|
101
|
+
tokenIn: this.labelAddress(z.tokenIn.addr),
|
|
102
|
+
tokenOut: this.labelAddress(z.tokenOut.addr)
|
|
103
|
+
}))
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
get state() {
|
|
107
|
+
return {
|
|
108
|
+
zappers: this.zappers.asRecord()
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
hydrate(state) {
|
|
112
|
+
this.#zappers = new AddressMap(Object.entries(state.zappers), "zappers");
|
|
113
|
+
this.#loadZapperTokens();
|
|
114
|
+
}
|
|
115
|
+
#loadZapperTokens() {
|
|
116
|
+
const zappersTokens = this.zappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
|
|
117
|
+
const extraZappersTokens = this.extraZappers.values().flatMap((l) => l.flatMap((z) => [z.tokenIn, z.tokenOut]));
|
|
118
|
+
for (const t of [...zappersTokens, ...extraZappersTokens]) {
|
|
119
|
+
this.sdk.tokensMeta.upsert(t.addr, t);
|
|
120
|
+
this.sdk.setAddressLabel(t.addr, t.symbol);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export {
|
|
125
|
+
ZappersPlugin
|
|
126
|
+
};
|