@gearbox-protocol/sdk 3.0.0-next.200 → 3.0.0-next.202
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/lib/contracts/contractsRegister.d.ts +2 -2
- package/lib/contracts/contractsRegister.js +4 -1
- package/lib/core/pool.d.ts +1 -0
- package/lib/core/pool.js +2 -0
- package/lib/core/transactions.d.ts +28 -1
- package/lib/core/transactions.js +59 -1
- package/lib/gearboxRewards/api.d.ts +6 -2
- package/lib/gearboxRewards/api.js +44 -27
- package/lib/payload/pool.d.ts +1 -0
- package/lib/tokens/tokenData.js +4 -4
- package/package.json +2 -2
|
@@ -5,7 +5,7 @@ type MainnetCreditManagersV2 = "DAI_V2" | "USDC_V2" | "WETH_V2" | "WSTETH_V2" |
|
|
|
5
5
|
type MainnetCreditManagersV2_1 = "WETH_V2_1";
|
|
6
6
|
type MainnetCreditManagersV3 = "USDC_V3_TRADE_TIER_1" | "USDC_V3_TRADE_TIER_2" | "USDC_V3_TRADE_TIER_3" | "WBTC_V3_TRADE_TIER_1" | "WBTC_V3_TRADE_TIER_2" | "WBTC_V3_TRADE_TIER_3" | "WETH_V3_TRADE_TIER_1" | "WETH_V3_TRADE_TIER_2" | "WETH_V3_TRADE_TIER_3" | "USDC_V3_FARM" | "WETH_V3_FARM" | "WETH_V3_RESTAKING" | "USDT_V3_TIER_1_BROKEN" | "GHO_V3_TIER_1" | "DAI_V3_TIER_1" | "USDT_V3_TIER_1" | "CRVUSD_V3_TIER_1";
|
|
7
7
|
export type MainnetCreditManagers = MainnetCreditManagersV1 | MainnetCreditManagersV2 | MainnetCreditManagersV2_1 | MainnetCreditManagersV3;
|
|
8
|
-
export type ArbitrumCreditManagers = "USDC_E_V3_TRADE_TIER_1" | "USDC_E_V3_TRADE_TIER_2" | "WETH_V3_TRADE_TIER_1" | "WETH_V3_TRADE_TIER_2";
|
|
8
|
+
export type ArbitrumCreditManagers = "USDC_E_V3_TRADE_TIER_1" | "USDC_E_V3_TRADE_TIER_2" | "USDC_V3_TRADE_TIER_1" | "USDC_V3_TRADE_TIER_2" | "WETH_V3_TRADE_TIER_1" | "WETH_V3_TRADE_TIER_2";
|
|
9
9
|
export type OptimismCreditManagers = "USDC_E_V3_TIER_1" | "USDC_E_V3_TIER_2" | "WETH_V3_TIER_1" | "WETH_V3_TRADE_TIER_2";
|
|
10
10
|
export type BaseCreditManagers = never;
|
|
11
11
|
type CreditManagersListType = {
|
|
@@ -17,7 +17,7 @@ export declare const creditManagerByAddress: Record<string, SupportedCreditManag
|
|
|
17
17
|
export type MainnetPoolsV1 = "DAI_V1" | "USDC_V1" | "WETH_V1" | "WBTC_V1" | "WSTETH_V1" | "FRAX_V1";
|
|
18
18
|
export type MainnetPoolsV3 = "USDC_V3_TRADE" | "WETH_V3_TRADE" | "WBTC_V3_TRADE" | "USDT_V3_BROKEN" | "GHO_V3" | "DAI_V3" | "USDT_V3" | "CRVUSD_V3";
|
|
19
19
|
export type MainnetPools = MainnetPoolsV1 | MainnetPoolsV3;
|
|
20
|
-
export type ArbitrumPools = "USDC_V3" | "WETH_V3";
|
|
20
|
+
export type ArbitrumPools = "USDC_V3" | "USDC_e_V3" | "WETH_V3";
|
|
21
21
|
export type OptimismPools = "USDC_V3" | "WETH_V3";
|
|
22
22
|
export type BasePools = never;
|
|
23
23
|
type PoolsListType = {
|
|
@@ -42,6 +42,8 @@ exports.creditManagerByNetwork = {
|
|
|
42
42
|
Arbitrum: {
|
|
43
43
|
USDC_E_V3_TRADE_TIER_1: "0x75bc0fef1c93723be3d73b2000b5ba139a0c680c".toLowerCase(),
|
|
44
44
|
USDC_E_V3_TRADE_TIER_2: "0xb4bc02c0859b372c61abccfa5df91b1ccaa4dd1f".toLowerCase(),
|
|
45
|
+
USDC_V3_TRADE_TIER_1: "0xe5e2d4bb15d26a6036805fce666c5488367623e2".toLowerCase(),
|
|
46
|
+
USDC_V3_TRADE_TIER_2: "0xb780dd9cec259a0bbf7b32587802f33730353e86".toLowerCase(),
|
|
45
47
|
WETH_V3_TRADE_TIER_1: "0xcedaa4b4a42c0a771f6c24a3745c3ca3ed73f17a".toLowerCase(),
|
|
46
48
|
WETH_V3_TRADE_TIER_2: "0x3ab1d35500d2da4216f5863229a7b81e2f6ff976".toLowerCase(),
|
|
47
49
|
},
|
|
@@ -77,7 +79,8 @@ exports.poolByNetwork = {
|
|
|
77
79
|
CRVUSD_V3: "0x8ef73f036feec873d0b2fd20892215df5b8bdd72".toLowerCase(),
|
|
78
80
|
},
|
|
79
81
|
Arbitrum: {
|
|
80
|
-
|
|
82
|
+
USDC_e_V3: "0xa76c604145d7394dec36c49af494c144ff327861".toLowerCase(),
|
|
83
|
+
USDC_V3: "0x890a69ef363c9c7bdd5e36eb95ceb569f63acbf6".toLowerCase(),
|
|
81
84
|
WETH_V3: "0x04419d3509f13054f60d253e0c79491d9e683399".toLowerCase(),
|
|
82
85
|
},
|
|
83
86
|
Optimism: {
|
package/lib/core/pool.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare class PoolData {
|
|
|
9
9
|
readonly underlyingToken: string;
|
|
10
10
|
readonly dieselToken: string;
|
|
11
11
|
readonly stakedDieselToken: Array<string>;
|
|
12
|
+
readonly stakedDieselToken_old: Array<string>;
|
|
12
13
|
readonly isPaused: boolean;
|
|
13
14
|
readonly version: number;
|
|
14
15
|
readonly poolQuotaKeeper: string;
|
package/lib/core/pool.js
CHANGED
|
@@ -10,6 +10,7 @@ class PoolData {
|
|
|
10
10
|
underlyingToken;
|
|
11
11
|
dieselToken;
|
|
12
12
|
stakedDieselToken;
|
|
13
|
+
stakedDieselToken_old;
|
|
13
14
|
isPaused;
|
|
14
15
|
version;
|
|
15
16
|
poolQuotaKeeper;
|
|
@@ -43,6 +44,7 @@ class PoolData {
|
|
|
43
44
|
this.underlyingToken = payload.underlying.toLowerCase();
|
|
44
45
|
this.dieselToken = payload.dieselToken.toLowerCase();
|
|
45
46
|
this.stakedDieselToken = (extra.stakedDieselToken || []).map(t => t.toLowerCase());
|
|
47
|
+
this.stakedDieselToken_old = (extra.stakedDieselToken_old || []).map(t => t.toLowerCase());
|
|
46
48
|
this.isPaused = payload.isPaused;
|
|
47
49
|
this.version = Number(payload.version);
|
|
48
50
|
this.poolQuotaKeeper = payload.poolQuotaKeeper.toLowerCase();
|
|
@@ -10,7 +10,7 @@ interface PoolEvent {
|
|
|
10
10
|
readonly poolName?: string;
|
|
11
11
|
}
|
|
12
12
|
export interface TxSerialized {
|
|
13
|
-
type: "TxAddLiquidity" | "TxRemoveLiquidity" | "TxSwap" | "TxAddCollateral" | "TxIncreaseBorrowAmount" | "TxDecreaseBorrowAmount" | "TxOpenAccount" | "TxRepayAccount" | "TxCloseAccount" | "TxApprove" | "TxOpenMultitokenAccount" | "TxClaimReward" | "TxClaimNFT" | "TxClaimRewards" | "TxEnableTokens" | "TxUpdateQuota" | "TxGaugeStake" | "TxGaugeUnstake" | "TxGaugeClaim" | "TxGaugeVote" | "TxWithdrawCollateral" | "TxAddBot" | "TxRemoveBot" | "TxLiquidateAccount";
|
|
13
|
+
type: "TxAddLiquidity" | "TxRemoveLiquidity" | "TxSwap" | "TxAddCollateral" | "TxIncreaseBorrowAmount" | "TxDecreaseBorrowAmount" | "TxOpenAccount" | "TxRepayAccount" | "TxCloseAccount" | "TxApprove" | "TxOpenMultitokenAccount" | "TxClaimReward" | "TxClaimNFT" | "TxClaimRewards" | "TxEnableTokens" | "TxUpdateQuota" | "TxGaugeStake" | "TxGaugeUnstake" | "TxGaugeClaim" | "TxGaugeVote" | "TxWithdrawCollateral" | "TxAddBot" | "TxRemoveBot" | "TxLiquidateAccount" | "TxStakeDiesel" | "TxUnstakeDiesel";
|
|
14
14
|
content: string;
|
|
15
15
|
}
|
|
16
16
|
export declare class TxSerializer {
|
|
@@ -47,6 +47,33 @@ export declare class TxRemoveLiquidity extends EVMTx implements PoolEvent {
|
|
|
47
47
|
toString(): string;
|
|
48
48
|
serialize(): TxSerialized;
|
|
49
49
|
}
|
|
50
|
+
interface TxStakeDieselProps extends EVMTxProps {
|
|
51
|
+
amount: bigint;
|
|
52
|
+
from: string;
|
|
53
|
+
to: string;
|
|
54
|
+
pool: string;
|
|
55
|
+
poolName?: string;
|
|
56
|
+
}
|
|
57
|
+
export declare class TxStakeDiesel extends EVMTx implements PoolEvent {
|
|
58
|
+
readonly amount: bigint;
|
|
59
|
+
readonly from: string;
|
|
60
|
+
readonly to: string;
|
|
61
|
+
readonly pool: string;
|
|
62
|
+
readonly poolName?: string;
|
|
63
|
+
constructor(opts: TxStakeDieselProps);
|
|
64
|
+
toString(): string;
|
|
65
|
+
serialize(): TxSerialized;
|
|
66
|
+
}
|
|
67
|
+
export declare class TxUnstakeDiesel extends EVMTx implements PoolEvent {
|
|
68
|
+
readonly amount: bigint;
|
|
69
|
+
readonly from: string;
|
|
70
|
+
readonly to: string;
|
|
71
|
+
readonly pool: string;
|
|
72
|
+
readonly poolName?: string;
|
|
73
|
+
constructor(opts: TxStakeDieselProps);
|
|
74
|
+
toString(): string;
|
|
75
|
+
serialize(): TxSerialized;
|
|
76
|
+
}
|
|
50
77
|
interface SwapProps extends EVMTxProps {
|
|
51
78
|
protocol: string;
|
|
52
79
|
operation: string;
|
package/lib/core/transactions.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TxRemoveBot = exports.TxAddBot = exports.TxWithdrawCollateral = exports.TxGaugeVote = exports.TxGaugeClaim = exports.TxGaugeUnstake = exports.TxGaugeStake = exports.TxUpdateQuota = exports.TxEnableTokens = exports.TxApprove = exports.TxCloseAccount = exports.TxLiquidateAccount = exports.TxRepayAccount = exports.TxClaimRewards = exports.TxClaimNFT = exports.TxClaimReward = exports.TxOpenMultitokenAccount = exports.TxOpenAccount = exports.TxDecreaseBorrowAmount = exports.TxIncreaseBorrowAmount = exports.TxAddCollateral = exports.TXSwap = exports.TxRemoveLiquidity = exports.TxAddLiquidity = exports.TxSerializer = void 0;
|
|
3
|
+
exports.TxRemoveBot = exports.TxAddBot = exports.TxWithdrawCollateral = exports.TxGaugeVote = exports.TxGaugeClaim = exports.TxGaugeUnstake = exports.TxGaugeStake = exports.TxUpdateQuota = exports.TxEnableTokens = exports.TxApprove = exports.TxCloseAccount = exports.TxLiquidateAccount = exports.TxRepayAccount = exports.TxClaimRewards = exports.TxClaimNFT = exports.TxClaimReward = exports.TxOpenMultitokenAccount = exports.TxOpenAccount = exports.TxDecreaseBorrowAmount = exports.TxIncreaseBorrowAmount = exports.TxAddCollateral = exports.TXSwap = exports.TxUnstakeDiesel = exports.TxStakeDiesel = exports.TxRemoveLiquidity = exports.TxAddLiquidity = exports.TxSerializer = void 0;
|
|
4
4
|
const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
|
|
5
5
|
const contractsRegister_1 = require("../contracts/contractsRegister");
|
|
6
6
|
const math_1 = require("../utils/math");
|
|
@@ -61,6 +61,10 @@ class TxSerializer {
|
|
|
61
61
|
return new TxRemoveBot(params);
|
|
62
62
|
case "TxLiquidateAccount":
|
|
63
63
|
return new TxLiquidateAccount(params);
|
|
64
|
+
case "TxStakeDiesel":
|
|
65
|
+
return new TxStakeDiesel(params);
|
|
66
|
+
case "TxUnstakeDiesel":
|
|
67
|
+
return new TxUnstakeDiesel(params);
|
|
64
68
|
default:
|
|
65
69
|
throw new Error(`Unknown transaction for parsing: ${e.type}`);
|
|
66
70
|
}
|
|
@@ -116,6 +120,60 @@ class TxRemoveLiquidity extends eventOrTx_1.EVMTx {
|
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
122
|
exports.TxRemoveLiquidity = TxRemoveLiquidity;
|
|
123
|
+
class TxStakeDiesel extends eventOrTx_1.EVMTx {
|
|
124
|
+
amount;
|
|
125
|
+
from;
|
|
126
|
+
to;
|
|
127
|
+
pool;
|
|
128
|
+
poolName;
|
|
129
|
+
constructor(opts) {
|
|
130
|
+
super(opts);
|
|
131
|
+
this.amount = opts.amount;
|
|
132
|
+
this.from = opts.from;
|
|
133
|
+
this.to = opts.to;
|
|
134
|
+
this.pool = opts.pool;
|
|
135
|
+
this.poolName = opts.poolName;
|
|
136
|
+
}
|
|
137
|
+
toString() {
|
|
138
|
+
const [fromSymbol, fromDecimals] = (0, sdk_gov_1.extractTokenData)(this.from);
|
|
139
|
+
const [toSymbol] = (0, sdk_gov_1.extractTokenData)(this.to);
|
|
140
|
+
return `${this.poolName || (0, contractsRegister_1.getContractName)(this.pool)}: Stake ${(0, sdk_gov_1.formatBN)(this.amount, fromDecimals || 18)} ${fromSymbol} => ${toSymbol}`;
|
|
141
|
+
}
|
|
142
|
+
serialize() {
|
|
143
|
+
return {
|
|
144
|
+
type: "TxStakeDiesel",
|
|
145
|
+
content: JSON.stringify(this),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
exports.TxStakeDiesel = TxStakeDiesel;
|
|
150
|
+
class TxUnstakeDiesel extends eventOrTx_1.EVMTx {
|
|
151
|
+
amount;
|
|
152
|
+
from;
|
|
153
|
+
to;
|
|
154
|
+
pool;
|
|
155
|
+
poolName;
|
|
156
|
+
constructor(opts) {
|
|
157
|
+
super(opts);
|
|
158
|
+
this.amount = opts.amount;
|
|
159
|
+
this.from = opts.from;
|
|
160
|
+
this.to = opts.to;
|
|
161
|
+
this.pool = opts.pool;
|
|
162
|
+
this.poolName = opts.poolName;
|
|
163
|
+
}
|
|
164
|
+
toString() {
|
|
165
|
+
const [fromSymbol, fromDecimals] = (0, sdk_gov_1.extractTokenData)(this.from);
|
|
166
|
+
const [toSymbol] = (0, sdk_gov_1.extractTokenData)(this.to);
|
|
167
|
+
return `${this.poolName || (0, contractsRegister_1.getContractName)(this.pool)}: Unstake ${(0, sdk_gov_1.formatBN)(this.amount, fromDecimals || 18)} ${fromSymbol} => ${toSymbol}`;
|
|
168
|
+
}
|
|
169
|
+
serialize() {
|
|
170
|
+
return {
|
|
171
|
+
type: "TxUnstakeDiesel",
|
|
172
|
+
content: JSON.stringify(this),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.TxUnstakeDiesel = TxUnstakeDiesel;
|
|
119
177
|
class TXSwap extends eventOrTx_1.EVMTx {
|
|
120
178
|
protocol;
|
|
121
179
|
operation;
|
|
@@ -34,12 +34,14 @@ export type FarmInfo = FarmInfoOutput & {
|
|
|
34
34
|
symbol: SupportedToken;
|
|
35
35
|
};
|
|
36
36
|
type PoolsWithExtraRewardsList = Record<NetworkType, Array<SupportedToken>>;
|
|
37
|
+
type ReportHandler = (e: unknown, description?: string) => void;
|
|
37
38
|
export interface GetLmRewardsInfoProps {
|
|
38
39
|
currentTokenData: Record<SupportedToken, string>;
|
|
39
40
|
provider: Provider | Signer;
|
|
40
41
|
multicallAddress: string;
|
|
41
42
|
poolsWithExtraRewards?: PoolsWithExtraRewardsList;
|
|
42
43
|
network: NetworkType;
|
|
44
|
+
reportError?: ReportHandler;
|
|
43
45
|
}
|
|
44
46
|
export interface GetLmRewardsProps {
|
|
45
47
|
baseRewardPoolsInfo: Record<string, FarmInfo>;
|
|
@@ -48,6 +50,7 @@ export interface GetLmRewardsProps {
|
|
|
48
50
|
provider: Provider | Signer;
|
|
49
51
|
airdropDistributorAddress: string | undefined;
|
|
50
52
|
network: NetworkType;
|
|
53
|
+
reportError?: ReportHandler;
|
|
51
54
|
}
|
|
52
55
|
export interface ClaimLmRewardsV2Props {
|
|
53
56
|
signer: Signer;
|
|
@@ -61,7 +64,7 @@ export interface ClaimLmRewardsV3Props {
|
|
|
61
64
|
signer: Signer;
|
|
62
65
|
}
|
|
63
66
|
export declare class GearboxRewardsApi {
|
|
64
|
-
static getLmRewardsInfo({ currentTokenData, provider, multicallAddress, poolsWithExtraRewards, network, }: GetLmRewardsInfoProps): Promise<{
|
|
67
|
+
static getLmRewardsInfo({ currentTokenData, provider, multicallAddress, poolsWithExtraRewards, network, reportError, }: GetLmRewardsInfoProps): Promise<{
|
|
65
68
|
rewardPoolsInfo: Record<string, FarmInfo[]>;
|
|
66
69
|
baseRewardPoolsInfo: Record<string, FarmInfo>;
|
|
67
70
|
extraRewardPoolsInfo: Record<string, FarmInfo[]>;
|
|
@@ -70,9 +73,10 @@ export declare class GearboxRewardsApi {
|
|
|
70
73
|
static getLmRewardsV2({ provider, account, currentTokenData, network, airdropDistributorAddress, }: GetLmRewardsProps): Promise<{
|
|
71
74
|
rewards: GearboxLmReward[];
|
|
72
75
|
}>;
|
|
73
|
-
static getLmRewardsV3({ baseRewardPoolsInfo, currentTokenData, provider, account, network, }: GetLmRewardsProps): Promise<{
|
|
76
|
+
static getLmRewardsV3({ baseRewardPoolsInfo, currentTokenData, provider, account, network, reportError, }: GetLmRewardsProps): Promise<{
|
|
74
77
|
rewards: (GearboxLmReward | GearboxLmReward[])[];
|
|
75
78
|
}>;
|
|
79
|
+
private static extractFulfilled;
|
|
76
80
|
static claimLmRewardsV2({ signer, account, provider, network, airdropDistributorAddress, }: ClaimLmRewardsV2Props): Promise<import("ethers").TransactionResponse | import("../utils/calls").MinimalTxInfo>;
|
|
77
81
|
static claimLmRewardsV3({ reward, signer }: ClaimLmRewardsV3Props): Promise<import("ethers").TransactionResponse | import("../utils/calls").MinimalTxInfo>;
|
|
78
82
|
private static getMerkle;
|
|
@@ -14,13 +14,13 @@ const math_1 = require("../utils/math");
|
|
|
14
14
|
const abi_1 = require("./abi");
|
|
15
15
|
const merklAPI_1 = require("./merklAPI");
|
|
16
16
|
const DEFAULT_POOLS_WITH_EXTRA_REWARDS = {
|
|
17
|
-
Mainnet: ["
|
|
17
|
+
Mainnet: ["sdcrvUSDV3"],
|
|
18
18
|
Arbitrum: [],
|
|
19
19
|
Optimism: [],
|
|
20
20
|
Base: [],
|
|
21
21
|
};
|
|
22
22
|
class GearboxRewardsApi {
|
|
23
|
-
static async getLmRewardsInfo({ currentTokenData, provider, multicallAddress, poolsWithExtraRewards = DEFAULT_POOLS_WITH_EXTRA_REWARDS, network, }) {
|
|
23
|
+
static async getLmRewardsInfo({ currentTokenData, provider, multicallAddress, poolsWithExtraRewards = DEFAULT_POOLS_WITH_EXTRA_REWARDS, network, reportError, }) {
|
|
24
24
|
const poolTokens = sdk_gov_1.TypedObjectUtils.entries(currentTokenData).filter(([symbol]) => (0, sdk_gov_1.isDieselStakedToken)(symbol));
|
|
25
25
|
const farmInfoCalls = poolTokens.map(([, address]) => ({
|
|
26
26
|
address: address,
|
|
@@ -45,7 +45,7 @@ class GearboxRewardsApi {
|
|
|
45
45
|
};
|
|
46
46
|
const tokenWithExtraRewards = poolsWithExtraRewards[network] || [];
|
|
47
47
|
const chainId = sdk_gov_1.CHAINS[network];
|
|
48
|
-
const [
|
|
48
|
+
const [mc, ...extra] = await Promise.allSettled([
|
|
49
49
|
(0, sdk_gov_1.multicall)([
|
|
50
50
|
blockTimestampCall,
|
|
51
51
|
...farmInfoCalls,
|
|
@@ -59,15 +59,18 @@ class GearboxRewardsApi {
|
|
|
59
59
|
},
|
|
60
60
|
}))),
|
|
61
61
|
]);
|
|
62
|
+
const mcResponse = this.extractFulfilled(mc, reportError, "rewardsInfoMulticall") || [];
|
|
63
|
+
const [blockTimestamp = 0n, ...restMCResponse] = mcResponse;
|
|
62
64
|
const farmInfoCallsEnd = farmInfoCalls.length;
|
|
63
|
-
const farmInfo =
|
|
65
|
+
const farmInfo = restMCResponse.slice(0, farmInfoCallsEnd);
|
|
64
66
|
const farmSupplyCallsEnd = farmInfoCallsEnd + farmSupplyCalls.length;
|
|
65
|
-
const farmSupply =
|
|
67
|
+
const farmSupply = restMCResponse.slice(farmInfoCallsEnd, farmSupplyCallsEnd);
|
|
66
68
|
const rewardTokenCallsEnd = farmSupplyCallsEnd + rewardTokenCalls.length;
|
|
67
|
-
const rewardTokens =
|
|
68
|
-
const extraRewards =
|
|
69
|
+
const rewardTokens = restMCResponse.slice(farmSupplyCallsEnd, rewardTokenCallsEnd);
|
|
70
|
+
const extraRewards = extra.reduce((acc, r, index) => {
|
|
69
71
|
const stakedSymbol = tokenWithExtraRewards[index];
|
|
70
|
-
const
|
|
72
|
+
const safeResp = this.extractFulfilled(r, reportError, `merkleCampaign: ${stakedSymbol}`);
|
|
73
|
+
const l = safeResp?.data.reduce((infos, d) => {
|
|
71
74
|
const started = (0, sdk_gov_1.toBigInt)(d.startTimestamp || 0);
|
|
72
75
|
const finished = (0, sdk_gov_1.toBigInt)(d.endTimestamp || 0);
|
|
73
76
|
if (blockTimestamp >= started && blockTimestamp <= finished) {
|
|
@@ -86,25 +89,27 @@ class GearboxRewardsApi {
|
|
|
86
89
|
}
|
|
87
90
|
return infos;
|
|
88
91
|
}, []);
|
|
89
|
-
|
|
92
|
+
if (l) {
|
|
93
|
+
acc[currentTokenData[stakedSymbol]] = l;
|
|
94
|
+
}
|
|
90
95
|
return acc;
|
|
91
96
|
}, {});
|
|
92
97
|
const rewardPoolsInfo = poolTokens.reduce((acc, [, address], i) => {
|
|
93
98
|
const currentInfo = farmInfo[i];
|
|
94
99
|
const [symbol] = (0, sdk_gov_1.extractTokenData)(rewardTokens[i] || "");
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
100
|
+
if (symbol) {
|
|
101
|
+
const baseReward = {
|
|
102
|
+
duration: currentInfo.duration,
|
|
103
|
+
finished: currentInfo.finished,
|
|
104
|
+
reward: currentInfo.reward,
|
|
105
|
+
balance: currentInfo.balance,
|
|
106
|
+
symbol: symbol,
|
|
107
|
+
};
|
|
108
|
+
const extra = extraRewards[address] || [];
|
|
109
|
+
acc.base[address] = baseReward;
|
|
110
|
+
acc.extra[address] = extra;
|
|
111
|
+
acc.all[address] = [baseReward, ...extra];
|
|
112
|
+
}
|
|
108
113
|
return acc;
|
|
109
114
|
}, { base: {}, extra: {}, all: {} });
|
|
110
115
|
const rewardPoolsSupply = poolTokens.reduce((acc, [, address], i) => {
|
|
@@ -141,7 +146,7 @@ class GearboxRewardsApi {
|
|
|
141
146
|
];
|
|
142
147
|
return { rewards: rewards };
|
|
143
148
|
}
|
|
144
|
-
static async getLmRewardsV3({ baseRewardPoolsInfo, currentTokenData, provider, account, network, }) {
|
|
149
|
+
static async getLmRewardsV3({ baseRewardPoolsInfo, currentTokenData, provider, account, network, reportError, }) {
|
|
145
150
|
const poolTokens = Object.keys(baseRewardPoolsInfo);
|
|
146
151
|
const farmedCalls = poolTokens.map(address => ({
|
|
147
152
|
address: address,
|
|
@@ -158,10 +163,8 @@ class GearboxRewardsApi {
|
|
|
158
163
|
},
|
|
159
164
|
})),
|
|
160
165
|
]);
|
|
161
|
-
const gearboxLm = gearboxLmResponse
|
|
162
|
-
const merkleXYZLM = merkleXYZLMResponse
|
|
163
|
-
? merkleXYZLMResponse.value?.data
|
|
164
|
-
: undefined;
|
|
166
|
+
const gearboxLm = this.extractFulfilled(gearboxLmResponse, reportError, "v3Rewards") || [];
|
|
167
|
+
const merkleXYZLM = this.extractFulfilled(merkleXYZLMResponse, reportError, "merkleRewards")?.data;
|
|
165
168
|
const PREFIX = "ERC20";
|
|
166
169
|
const REWARD_KEYS_RECORD = poolTokens.reduce((acc, t) => {
|
|
167
170
|
const key = [PREFIX, (0, ethers_1.getAddress)(t)].join("_");
|
|
@@ -205,6 +208,20 @@ class GearboxRewardsApi {
|
|
|
205
208
|
rewards: [...nonZero, ...extraRewards, zero],
|
|
206
209
|
};
|
|
207
210
|
}
|
|
211
|
+
static extractFulfilled(r, reportError, description) {
|
|
212
|
+
if (r.status === "fulfilled") {
|
|
213
|
+
return r.value;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
if (reportError) {
|
|
217
|
+
reportError(r.reason, description);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
console.error(r.reason);
|
|
221
|
+
}
|
|
222
|
+
return undefined;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
208
225
|
static async claimLmRewardsV2({ signer, account, provider, network, airdropDistributorAddress, }) {
|
|
209
226
|
if (!airdropDistributorAddress)
|
|
210
227
|
throw new Error(`V2 rewards are not supported on chain: ${network}`);
|
package/lib/payload/pool.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export type PoolDataPayload = Omit<ExcludeArrayProps<PoolDataStructOutput>, "zap
|
|
|
7
7
|
};
|
|
8
8
|
export interface PoolDataExtraPayload {
|
|
9
9
|
stakedDieselToken: Array<string>;
|
|
10
|
+
stakedDieselToken_old: Array<string>;
|
|
10
11
|
supplyAPY7D: number | undefined;
|
|
11
12
|
}
|
|
12
13
|
export type LinearModel = Omit<ExcludeArrayProps<LinearModelStructOutput>, "version"> & {
|
package/lib/tokens/tokenData.js
CHANGED
|
@@ -4,6 +4,9 @@ exports.TokenData = void 0;
|
|
|
4
4
|
const config_1 = require("../config");
|
|
5
5
|
const ALIASES = {
|
|
6
6
|
USDC_e: "USDC.e",
|
|
7
|
+
dUSDC_eV3: "dUSDC.eV3",
|
|
8
|
+
sdUSDC_eV3: "sdUSDC.eV3",
|
|
9
|
+
sdWETHV3_OLD: "sdWETHV3 Old",
|
|
7
10
|
};
|
|
8
11
|
const NETWROK_DEPENDENT_ALIASES = {
|
|
9
12
|
Mainnet: {},
|
|
@@ -11,10 +14,7 @@ const NETWROK_DEPENDENT_ALIASES = {
|
|
|
11
14
|
dUSDCV3: "dUSDC.eV3",
|
|
12
15
|
sdUSDCV3: "sdUSDC.eV3",
|
|
13
16
|
},
|
|
14
|
-
Arbitrum: {
|
|
15
|
-
dUSDCV3: "dUSDC.eV3",
|
|
16
|
-
sdUSDCV3: "sdUSDC.eV3",
|
|
17
|
-
},
|
|
17
|
+
Arbitrum: {},
|
|
18
18
|
Base: {},
|
|
19
19
|
};
|
|
20
20
|
class TokenData {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gearbox-protocol/sdk",
|
|
3
|
-
"version": "3.0.0-next.
|
|
3
|
+
"version": "3.0.0-next.202",
|
|
4
4
|
"description": "Gearbox SDK",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@gearbox-protocol/bots-v3": "^1.5.1",
|
|
34
|
-
"@gearbox-protocol/sdk-gov": "^2.
|
|
34
|
+
"@gearbox-protocol/sdk-gov": "^2.8.1",
|
|
35
35
|
"axios": "^1.2.6",
|
|
36
36
|
"decimal.js-light": "^2.5.1",
|
|
37
37
|
"deep-eql": "^4.1.0",
|