@gearbox-protocol/sdk 8.2.1 → 8.3.0-next.2
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/dev/AccountOpener.js +3 -3
- package/dist/cjs/plugins/adapters/BalancerV2VaultAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/BalancerV3RouterAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/CamelotV3AdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/ConvexV1BaseRewardPoolAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/ConvexV1BoosterAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/Curve2AssetsAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/Curve3AssetsAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/Curve4AssetsAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/CurveV1AdapterDeposit.js +1 -1
- package/dist/cjs/plugins/adapters/CurveV1AdapterStETHContract.js +1 -1
- package/dist/cjs/plugins/adapters/CurveV1StableNGAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/DaiUsdsAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/ERC4626AdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/EqualizerRouterAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/MellowERC4626VaultAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/MellowVaultAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/PendleRouterAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/StakingRewardsAdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/UniswapV2AdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/UniswapV3AdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/VelodromeV2AdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/WstETHV1AdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/YearnV2AdapterContract.js +1 -1
- package/dist/cjs/plugins/adapters/index.js +2 -2
- package/dist/cjs/plugins/degen-distributors/DegenDistributorsPlugin.js +1 -1
- package/dist/cjs/plugins/pools-history/Pools7DAgoPlugin.js +1 -1
- package/dist/cjs/sdk/accounts/CreditAccountsService.js +3 -3
- package/dist/cjs/sdk/base/BaseContract.js +2 -2
- package/dist/cjs/sdk/core/address-provider/AbstractAddressProviderContract.js +1 -1
- package/dist/cjs/sdk/index.js +2 -2
- package/dist/cjs/sdk/market/MarketConfiguratorContract.js +1 -1
- package/dist/cjs/sdk/market/MarketRegister.js +42 -33
- package/dist/cjs/sdk/market/MarketSuite.js +5 -8
- package/dist/cjs/sdk/market/pool/PoolSuite.js +2 -2
- package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +25 -0
- package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +2 -2
- package/dist/cjs/sdk/plugins/V300StalenessPeriodPlugin.js +0 -1
- package/dist/cjs/sdk/router/PathOptionFactory.js +1 -1
- package/dist/cjs/sdk/router/RouterV300Contract.js +1 -1
- package/dist/cjs/sdk/router/RouterV310Contract.js +2 -2
- package/dist/cjs/sdk/sdk-legacy/core/creditAccount.js +37 -17
- package/dist/cjs/sdk/sdk-legacy/core/strategy.js +1 -1
- package/dist/cjs/sdk/sdk-legacy/gearboxRewards/api.js +21 -8
- package/dist/cjs/sdk/sdk-legacy/gearboxRewards/apy.js +20 -17
- package/dist/cjs/sdk/sdk-legacy/gearboxRewards/extraAPY.js +4 -2
- package/dist/cjs/sdk/utils/createRawTx.js +1 -1
- package/dist/cjs/sdk/utils/formatter.js +4 -4
- package/dist/cjs/sdk/utils/viem/simulateWithPriceUpdates.js +2 -2
- package/dist/esm/dev/AccountOpener.js +3 -3
- package/dist/esm/plugins/adapters/BalancerV2VaultAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/BalancerV3RouterAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/CamelotV3AdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/ConvexV1BaseRewardPoolAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/ConvexV1BoosterAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/Curve2AssetsAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/Curve3AssetsAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/Curve4AssetsAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/CurveV1AdapterDeposit.js +1 -1
- package/dist/esm/plugins/adapters/CurveV1AdapterStETHContract.js +1 -1
- package/dist/esm/plugins/adapters/CurveV1StableNGAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/DaiUsdsAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/ERC4626AdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/EqualizerRouterAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/MellowERC4626VaultAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/MellowVaultAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/PendleRouterAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/StakingRewardsAdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/UniswapV2AdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/UniswapV3AdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/VelodromeV2AdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/WstETHV1AdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/YearnV2AdapterContract.js +1 -1
- package/dist/esm/plugins/adapters/index.js +1 -1
- package/dist/esm/plugins/degen-distributors/DegenDistributorsPlugin.js +1 -1
- package/dist/esm/plugins/pools-history/Pools7DAgoPlugin.js +1 -1
- package/dist/esm/sdk/GearboxSDK.js +1 -1
- package/dist/esm/sdk/accounts/CreditAccountsService.js +3 -3
- package/dist/esm/sdk/base/BaseContract.js +2 -2
- package/dist/esm/sdk/core/address-provider/AbstractAddressProviderContract.js +1 -1
- package/dist/esm/sdk/index.js +1 -1
- package/dist/esm/sdk/market/MarketConfiguratorContract.js +1 -1
- package/dist/esm/sdk/market/MarketRegister.js +42 -33
- package/dist/esm/sdk/market/MarketSuite.js +5 -8
- package/dist/esm/sdk/market/pool/PoolSuite.js +2 -2
- package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +25 -0
- package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +2 -2
- package/dist/esm/sdk/plugins/V300StalenessPeriodPlugin.js +0 -1
- package/dist/esm/sdk/router/PathOptionFactory.js +1 -1
- package/dist/esm/sdk/router/RouterV300Contract.js +1 -1
- package/dist/esm/sdk/router/RouterV310Contract.js +2 -2
- package/dist/esm/sdk/sdk-legacy/core/creditAccount.js +37 -17
- package/dist/esm/sdk/sdk-legacy/core/creditSession.js +1 -1
- package/dist/esm/sdk/sdk-legacy/core/strategy.js +1 -1
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/api.js +22 -9
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/apy.js +20 -17
- package/dist/esm/sdk/sdk-legacy/gearboxRewards/extraAPY.js +4 -2
- package/dist/esm/sdk/utils/createRawTx.js +1 -1
- package/dist/esm/sdk/utils/formatter.js +4 -4
- package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +2 -2
- package/dist/types/plugins/adapters/index.d.ts +1 -1
- package/dist/types/plugins/bots/BotsPlugin.d.ts +1 -1
- package/dist/types/sdk/index.d.ts +1 -1
- package/dist/types/sdk/market/MarketRegister.d.ts +3 -7
- package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +13 -1
- package/dist/types/sdk/types/state.d.ts +1 -1
- package/package.json +9 -23
|
@@ -53,7 +53,7 @@ class AccountOpener extends import_sdk.SDKConstruct {
|
|
|
53
53
|
});
|
|
54
54
|
try {
|
|
55
55
|
this.#faucet = options.faucet ?? service.sdk.addressProvider.getAddress("FAUCET");
|
|
56
|
-
} catch (
|
|
56
|
+
} catch (_e) {
|
|
57
57
|
this.#logger?.warn("faucet not found, will not claim from faucet");
|
|
58
58
|
}
|
|
59
59
|
this.#borrower = options.borrower;
|
|
@@ -275,7 +275,7 @@ class AccountOpener extends import_sdk.SDKConstruct {
|
|
|
275
275
|
minAvailableByPool[cm.pool] = (minAvailableByPool[cm.pool] ?? 0n) + minDebt * (leverage - import_sdk.PERCENTAGE_FACTOR) / import_sdk.PERCENTAGE_FACTOR * this.#poolDepositMultiplier / import_sdk.PERCENTAGE_FACTOR;
|
|
276
276
|
}
|
|
277
277
|
let totalUSD = 0n;
|
|
278
|
-
|
|
278
|
+
const deposits = [];
|
|
279
279
|
for (const [p, minAvailable] of Object.entries(minAvailableByPool)) {
|
|
280
280
|
const market = this.sdk.marketRegister.findByPool(p);
|
|
281
281
|
const pool = market.pool.pool;
|
|
@@ -363,7 +363,7 @@ class AccountOpener extends import_sdk.SDKConstruct {
|
|
|
363
363
|
async #prepareBorrower(targets) {
|
|
364
364
|
const borrower = await this.#getBorrower();
|
|
365
365
|
let claimUSD = 0n;
|
|
366
|
-
|
|
366
|
+
const degenNFTS = {};
|
|
367
367
|
for (const target of targets) {
|
|
368
368
|
const cm = this.sdk.marketRegister.findCreditManager(
|
|
369
369
|
target.creditManager
|
|
@@ -21,8 +21,8 @@ __export(BalancerV2VaultAdapterContract_exports, {
|
|
|
21
21
|
BalancerV2VaultAdapterContract: () => BalancerV2VaultAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(BalancerV2VaultAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iBalancerV2VaultAdapterAbi;
|
|
27
27
|
class BalancerV2VaultAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(BalancerV3RouterAdapterContract_exports, {
|
|
|
21
21
|
BalancerV3RouterAdapterContract: () => BalancerV3RouterAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(BalancerV3RouterAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iBalancerV3RouterAdapterAbi;
|
|
27
27
|
class BalancerV3RouterAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(CamelotV3AdapterContract_exports, {
|
|
|
21
21
|
CamelotV3AdapterContract: () => CamelotV3AdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(CamelotV3AdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iCamelotV3AdapterAbi;
|
|
27
27
|
class CamelotV3AdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(ConvexV1BaseRewardPoolAdapterContract_exports, {
|
|
|
21
21
|
ConvexV1BaseRewardPoolAdapterContract: () => ConvexV1BaseRewardPoolAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(ConvexV1BaseRewardPoolAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iConvexV1BaseRewardPoolAdapterAbi;
|
|
27
27
|
class ConvexV1BaseRewardPoolAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(ConvexV1BoosterAdapterContract_exports, {
|
|
|
21
21
|
ConvexV1BoosterAdapterContract: () => ConvexV1BoosterAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(ConvexV1BoosterAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iConvexV1BoosterAdapterAbi;
|
|
27
27
|
class ConvexV1BoosterAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(Curve2AssetsAdapterContract_exports, {
|
|
|
21
21
|
Curve2AssetsAdapterContract: () => Curve2AssetsAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(Curve2AssetsAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iCurveV1_2AssetsAdapterAbi;
|
|
27
27
|
class Curve2AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(Curve3AssetsAdapterContract_exports, {
|
|
|
21
21
|
Curve3AssetsAdapterContract: () => Curve3AssetsAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(Curve3AssetsAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iCurveV1_3AssetsAdapterAbi;
|
|
27
27
|
class Curve3AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(Curve4AssetsAdapterContract_exports, {
|
|
|
21
21
|
Curve4AssetsAdapterContract: () => Curve4AssetsAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(Curve4AssetsAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iCurveV1_4AssetsAdapterAbi;
|
|
27
27
|
class Curve4AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(CurveV1AdapterDeposit_exports, {
|
|
|
21
21
|
CurveV1AdapterDeposit: () => CurveV1AdapterDeposit
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(CurveV1AdapterDeposit_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iCurveV1AdapterAbi;
|
|
27
27
|
class CurveV1AdapterDeposit extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(CurveV1AdapterStETHContract_exports, {
|
|
|
21
21
|
CurveV1AdapterStETHContract: () => CurveV1AdapterStETHContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(CurveV1AdapterStETHContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iCurveV1_2AssetsAdapterAbi;
|
|
27
27
|
class CurveV1AdapterStETHContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(CurveV1StableNGAdapterContract_exports, {
|
|
|
21
21
|
CurveV1StableNGAdapterContract: () => CurveV1StableNGAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(CurveV1StableNGAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iCurveV1StableNgAdapterAbi;
|
|
27
27
|
class CurveV1StableNGAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(DaiUsdsAdapterContract_exports, {
|
|
|
21
21
|
DaiUsdsAdapterContract: () => DaiUsdsAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(DaiUsdsAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iDaiUsdsAdapterAbi;
|
|
27
27
|
class DaiUsdsAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(ERC4626AdapterContract_exports, {
|
|
|
21
21
|
ERC4626AdapterContract: () => ERC4626AdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(ERC4626AdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.ierc4626AdapterAbi;
|
|
27
27
|
class ERC4626AdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(EqualizerRouterAdapterContract_exports, {
|
|
|
21
21
|
EqualizerRouterAdapterContract: () => EqualizerRouterAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(EqualizerRouterAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iEqualizerRouterAdapterAbi;
|
|
27
27
|
class EqualizerRouterAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(MellowERC4626VaultAdapterContract_exports, {
|
|
|
21
21
|
MellowERC4626VaultAdapterContract: () => MellowERC4626VaultAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(MellowERC4626VaultAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.ierc4626AdapterAbi;
|
|
27
27
|
class MellowERC4626VaultAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(MellowVaultAdapterContract_exports, {
|
|
|
21
21
|
MellowVaultAdapterContract: () => MellowVaultAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(MellowVaultAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iMellowVaultAdapterAbi;
|
|
27
27
|
class MellowVaultAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(PendleRouterAdapterContract_exports, {
|
|
|
21
21
|
PendleRouterAdapterContract: () => PendleRouterAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(PendleRouterAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iPendleRouterAdapterAbi;
|
|
27
27
|
class PendleRouterAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(StakingRewardsAdapterContract_exports, {
|
|
|
21
21
|
StakingRewardsAdapterContract: () => StakingRewardsAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(StakingRewardsAdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iStakingRewardsAdapterAbi;
|
|
27
27
|
class StakingRewardsAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -22,8 +22,8 @@ __export(UniswapV2AdapterContract_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(UniswapV2AdapterContract_exports);
|
|
24
24
|
var import_sdk = require("../../sdk/index.js");
|
|
25
|
-
var import_abi = require("./abi/index.js");
|
|
26
25
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
26
|
+
var import_abi = require("./abi/index.js");
|
|
27
27
|
const abi = import_abi.iUniswapV2AdapterAbi;
|
|
28
28
|
class UniswapV2AdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
29
29
|
constructor(sdk, args) {
|
|
@@ -22,8 +22,8 @@ __export(UniswapV3AdapterContract_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(UniswapV3AdapterContract_exports);
|
|
24
24
|
var import_sdk = require("../../sdk/index.js");
|
|
25
|
-
var import_abi = require("./abi/index.js");
|
|
26
25
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
26
|
+
var import_abi = require("./abi/index.js");
|
|
27
27
|
const abi = import_abi.iUniswapV3AdapterAbi;
|
|
28
28
|
class UniswapV3AdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
29
29
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(VelodromeV2AdapterContract_exports, {
|
|
|
21
21
|
VelodromeV2RouterAdapterContract: () => VelodromeV2RouterAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(VelodromeV2AdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iVelodromeV2RouterAdapterAbi;
|
|
27
27
|
class VelodromeV2RouterAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(WstETHV1AdapterContract_exports, {
|
|
|
21
21
|
WstETHV1AdapterContract: () => WstETHV1AdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(WstETHV1AdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iwstEthv1AdapterAbi;
|
|
27
27
|
class WstETHV1AdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -21,8 +21,8 @@ __export(YearnV2AdapterContract_exports, {
|
|
|
21
21
|
YearnV2RouterAdapterContract: () => YearnV2RouterAdapterContract
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(YearnV2AdapterContract_exports);
|
|
24
|
-
var import_abi = require("./abi/index.js");
|
|
25
24
|
var import_AbstractAdapter = require("./AbstractAdapter.js");
|
|
25
|
+
var import_abi = require("./abi/index.js");
|
|
26
26
|
const abi = import_abi.iYearnV2AdapterAbi;
|
|
27
27
|
class YearnV2RouterAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
|
|
28
28
|
constructor(sdk, args) {
|
|
@@ -15,9 +15,9 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
|
|
|
15
15
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
16
|
var adapters_exports = {};
|
|
17
17
|
module.exports = __toCommonJS(adapters_exports);
|
|
18
|
-
__reExport(adapters_exports, require("./abi/index.js"), module.exports);
|
|
19
18
|
__reExport(adapters_exports, require("./AbstractAdapter.js"), module.exports);
|
|
20
19
|
__reExport(adapters_exports, require("./AdaptersPlugin.js"), module.exports);
|
|
20
|
+
__reExport(adapters_exports, require("./abi/index.js"), module.exports);
|
|
21
21
|
__reExport(adapters_exports, require("./BalancerV2VaultAdapterContract.js"), module.exports);
|
|
22
22
|
__reExport(adapters_exports, require("./BalancerV3RouterAdapterContract.js"), module.exports);
|
|
23
23
|
__reExport(adapters_exports, require("./CamelotV3AdapterContract.js"), module.exports);
|
|
@@ -44,9 +44,9 @@ __reExport(adapters_exports, require("./WstETHV1AdapterContract.js"), module.exp
|
|
|
44
44
|
__reExport(adapters_exports, require("./YearnV2AdapterContract.js"), module.exports);
|
|
45
45
|
// Annotate the CommonJS export names for ESM import in node:
|
|
46
46
|
0 && (module.exports = {
|
|
47
|
-
...require("./abi/index.js"),
|
|
48
47
|
...require("./AbstractAdapter.js"),
|
|
49
48
|
...require("./AdaptersPlugin.js"),
|
|
49
|
+
...require("./abi/index.js"),
|
|
50
50
|
...require("./BalancerV2VaultAdapterContract.js"),
|
|
51
51
|
...require("./BalancerV3RouterAdapterContract.js"),
|
|
52
52
|
...require("./CamelotV3AdapterContract.js"),
|
|
@@ -54,7 +54,7 @@ class DegenDistributorsPlugin extends import_sdk.BasePlugin {
|
|
|
54
54
|
const cfgLC = cfg.toLowerCase();
|
|
55
55
|
const r = distributorByConfigurator?.[cfgLC];
|
|
56
56
|
if (r.status === "fulfilled") {
|
|
57
|
-
this.#distributors
|
|
57
|
+
this.#distributors?.upsert(pool, r.value);
|
|
58
58
|
} else {
|
|
59
59
|
this.sdk.logger?.error(
|
|
60
60
|
`failed to load degen distributor for market configurator ${this.labelAddress(cfg)} and pool ${this.labelAddress(pool)}: ${r.reason}`
|
|
@@ -57,7 +57,7 @@ class Pools7DAgoPlugin extends import_sdk.BasePlugin {
|
|
|
57
57
|
const cfg = m.configurator.address;
|
|
58
58
|
const pool = m.pool.pool.address;
|
|
59
59
|
if (r.status === "success") {
|
|
60
|
-
this.#pools7DAgo
|
|
60
|
+
this.#pools7DAgo?.upsert(m.pool.pool.address, {
|
|
61
61
|
dieselRate: r.result.dieselRate,
|
|
62
62
|
pool
|
|
63
63
|
});
|
|
@@ -67,7 +67,7 @@ class CreditAccountsService extends import_base.SDKConstruct {
|
|
|
67
67
|
// @ts-expect-error
|
|
68
68
|
gas: this.sdk.gasLimit
|
|
69
69
|
});
|
|
70
|
-
} catch (
|
|
70
|
+
} catch (_e) {
|
|
71
71
|
return void 0;
|
|
72
72
|
}
|
|
73
73
|
if (raw.success) {
|
|
@@ -1122,7 +1122,7 @@ class CreditAccountsService extends import_base.SDKConstruct {
|
|
|
1122
1122
|
const poolAddressLc = poolAddress.toLowerCase();
|
|
1123
1123
|
return getWithdrawCall(cmAdapters[poolAddressLc], a);
|
|
1124
1124
|
});
|
|
1125
|
-
const skyStkCalls = sky.
|
|
1125
|
+
const skyStkCalls = sky.flatMap((a) => {
|
|
1126
1126
|
const symbol = import_sdk_gov_legacy.tokenSymbolByAddress[a.token];
|
|
1127
1127
|
const { pool } = import_sdk_gov_legacy.stakingRewardsTokens[symbol];
|
|
1128
1128
|
const poolAddress = currentContractsData[pool];
|
|
@@ -1131,7 +1131,7 @@ class CreditAccountsService extends import_base.SDKConstruct {
|
|
|
1131
1131
|
}
|
|
1132
1132
|
const poolAddressLc = poolAddress.toLowerCase();
|
|
1133
1133
|
return getWithdrawCall_Rewards(cmAdapters[poolAddressLc], a);
|
|
1134
|
-
})
|
|
1134
|
+
});
|
|
1135
1135
|
const unwrapCalls = [...convexStkCalls, ...auraStkCalls, ...skyStkCalls];
|
|
1136
1136
|
const withdraw = assets.map((a) => {
|
|
1137
1137
|
const symbol = import_sdk_gov_legacy.tokenSymbolByAddress[a.token];
|
|
@@ -111,13 +111,13 @@ class BaseContract extends import_SDKConstruct.SDKConstruct {
|
|
|
111
111
|
data: calldata
|
|
112
112
|
});
|
|
113
113
|
const abiItem = this.abi.find(
|
|
114
|
-
(abiItem2) => abiItem2
|
|
114
|
+
(abiItem2) => abiItem2?.name === decoded.functionName && abiItem2?.type === "function"
|
|
115
115
|
);
|
|
116
116
|
if (!abiItem) {
|
|
117
117
|
return `Unknown function: ${decoded.functionName}`;
|
|
118
118
|
}
|
|
119
119
|
let paramsHuman;
|
|
120
|
-
|
|
120
|
+
const humanParams = this.parseFunctionParams(decoded);
|
|
121
121
|
if (humanParams) {
|
|
122
122
|
paramsHuman = humanParams.map((value, i) => {
|
|
123
123
|
return `${abiItem.inputs[i].name}: ${value}`;
|
|
@@ -32,7 +32,7 @@ class AbstractAddressProviderContract extends import_base.BaseContract {
|
|
|
32
32
|
this.#addresses = addresses;
|
|
33
33
|
}
|
|
34
34
|
setInternalAddress(key, address, version) {
|
|
35
|
-
|
|
35
|
+
const k = (0, import_viem.isHex)(key) ? (0, import_viem.hexToString)(key, { size: 32 }) : key;
|
|
36
36
|
if (!this.#addresses[k]) {
|
|
37
37
|
this.#addresses[k] = {};
|
|
38
38
|
}
|
package/dist/cjs/sdk/index.js
CHANGED
|
@@ -20,8 +20,8 @@ __reExport(sdk_exports, require("./base/index.js"), module.exports);
|
|
|
20
20
|
__reExport(sdk_exports, require("./chain/index.js"), module.exports);
|
|
21
21
|
__reExport(sdk_exports, require("./constants/index.js"), module.exports);
|
|
22
22
|
__reExport(sdk_exports, require("./core/index.js"), module.exports);
|
|
23
|
-
__reExport(sdk_exports, require("./gauges/index.js"), module.exports);
|
|
24
23
|
__reExport(sdk_exports, require("./GearboxSDK.js"), module.exports);
|
|
24
|
+
__reExport(sdk_exports, require("./gauges/index.js"), module.exports);
|
|
25
25
|
__reExport(sdk_exports, require("./market/index.js"), module.exports);
|
|
26
26
|
__reExport(sdk_exports, require("./plugins/index.js"), module.exports);
|
|
27
27
|
__reExport(sdk_exports, require("./router/index.js"), module.exports);
|
|
@@ -37,8 +37,8 @@ __reExport(sdk_exports, require("./utils/viem/index.js"), module.exports);
|
|
|
37
37
|
...require("./chain/index.js"),
|
|
38
38
|
...require("./constants/index.js"),
|
|
39
39
|
...require("./core/index.js"),
|
|
40
|
-
...require("./gauges/index.js"),
|
|
41
40
|
...require("./GearboxSDK.js"),
|
|
41
|
+
...require("./gauges/index.js"),
|
|
42
42
|
...require("./market/index.js"),
|
|
43
43
|
...require("./plugins/index.js"),
|
|
44
44
|
...require("./router/index.js"),
|
|
@@ -44,7 +44,7 @@ class MarketConfiguratorContract extends import_base.BaseContract {
|
|
|
44
44
|
});
|
|
45
45
|
this.sdk.provider.addressLabels.set(
|
|
46
46
|
this.address,
|
|
47
|
-
|
|
47
|
+
`Market configurator ${this.#curatorName}`
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
50
|
async getPeripheryContract(contract) {
|
|
@@ -26,6 +26,7 @@ var import_base = require("../base/index.js");
|
|
|
26
26
|
var import_constants = require("../constants/index.js");
|
|
27
27
|
var import_utils = require("../utils/index.js");
|
|
28
28
|
var import_viem = require("../utils/viem/index.js");
|
|
29
|
+
var import_MarketConfiguratorContract = require("./MarketConfiguratorContract.js");
|
|
29
30
|
var import_MarketSuite = require("./MarketSuite.js");
|
|
30
31
|
class MarketRegister extends import_base.SDKConstruct {
|
|
31
32
|
#logger;
|
|
@@ -34,6 +35,10 @@ class MarketRegister extends import_base.SDKConstruct {
|
|
|
34
35
|
*/
|
|
35
36
|
#markets = new import_utils.AddressMap(void 0, "markets");
|
|
36
37
|
#marketFilter;
|
|
38
|
+
#marketConfigurators = new import_utils.AddressMap(
|
|
39
|
+
void 0,
|
|
40
|
+
"marketConfigurators"
|
|
41
|
+
);
|
|
37
42
|
constructor(sdk) {
|
|
38
43
|
super(sdk);
|
|
39
44
|
this.#logger = (0, import_utils.childLogger)("MarketRegister", sdk.logger);
|
|
@@ -46,11 +51,7 @@ class MarketRegister extends import_base.SDKConstruct {
|
|
|
46
51
|
new import_MarketSuite.MarketSuite(this.sdk, data)
|
|
47
52
|
);
|
|
48
53
|
}
|
|
49
|
-
this.#
|
|
50
|
-
configurators: this.marketConfigurators.map((c) => c.address),
|
|
51
|
-
pools: [],
|
|
52
|
-
underlying: import_constants.ADDRESS_0X0
|
|
53
|
-
};
|
|
54
|
+
this.#setMarketFilter(this.marketConfigurators.map((c) => c.address));
|
|
54
55
|
}
|
|
55
56
|
async loadMarkets(marketConfigurators, ignoreUpdateablePrices) {
|
|
56
57
|
if (!marketConfigurators.length) {
|
|
@@ -61,35 +62,43 @@ class MarketRegister extends import_base.SDKConstruct {
|
|
|
61
62
|
}
|
|
62
63
|
await this.#loadMarkets(marketConfigurators, [], ignoreUpdateablePrices);
|
|
63
64
|
}
|
|
65
|
+
#setMarketFilter(configurators, pools = []) {
|
|
66
|
+
for (const c of configurators) {
|
|
67
|
+
this.#marketConfigurators.upsert(
|
|
68
|
+
c,
|
|
69
|
+
new import_MarketConfiguratorContract.MarketConfiguratorContract(this.sdk, c)
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
this.#marketFilter = {
|
|
73
|
+
configurators,
|
|
74
|
+
pools,
|
|
75
|
+
underlying: import_constants.ADDRESS_0X0
|
|
76
|
+
};
|
|
77
|
+
}
|
|
64
78
|
get marketFilter() {
|
|
79
|
+
if (!this.#marketFilter) {
|
|
80
|
+
throw new Error(
|
|
81
|
+
"market filter is not set, check if market register was properly attached or hydrated"
|
|
82
|
+
);
|
|
83
|
+
}
|
|
65
84
|
return this.#marketFilter;
|
|
66
85
|
}
|
|
67
86
|
async syncState(skipPriceUpdate) {
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
} else {
|
|
74
|
-
nonDirtyOracles.push(m.priceOracle.address);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if (dirtyPools.length) {
|
|
78
|
-
this.#logger?.debug(`need to reload ${dirtyPools.length} markets`);
|
|
87
|
+
const dirty = this.markets.some((m) => m.dirty) || this.marketConfigurators.some((c) => c.dirty);
|
|
88
|
+
if (dirty) {
|
|
89
|
+
this.#logger?.debug(
|
|
90
|
+
"some markets or market configurators are dirty, reloading everything"
|
|
91
|
+
);
|
|
79
92
|
await this.#loadMarkets(
|
|
80
|
-
|
|
81
|
-
|
|
93
|
+
[...this.marketFilter.configurators],
|
|
94
|
+
[...this.marketFilter.pools]
|
|
82
95
|
);
|
|
83
|
-
} else if (!skipPriceUpdate
|
|
84
|
-
await this.updatePrices(
|
|
96
|
+
} else if (!skipPriceUpdate) {
|
|
97
|
+
await this.updatePrices();
|
|
85
98
|
}
|
|
86
99
|
}
|
|
87
100
|
async #loadMarkets(configurators, pools, ignoreUpdateablePrices) {
|
|
88
|
-
this.#
|
|
89
|
-
configurators,
|
|
90
|
-
pools,
|
|
91
|
-
underlying: import_constants.ADDRESS_0X0
|
|
92
|
-
};
|
|
101
|
+
this.#setMarketFilter(configurators, pools);
|
|
93
102
|
const [marketCompressorAddress] = this.sdk.addressProvider.mustGetLatest(
|
|
94
103
|
import_constants.AP_MARKET_COMPRESSOR,
|
|
95
104
|
import_constants.VERSION_RANGE_310
|
|
@@ -118,7 +127,7 @@ class MarketRegister extends import_base.SDKConstruct {
|
|
|
118
127
|
abi: import_compressors.iMarketCompressorAbi,
|
|
119
128
|
address: marketCompressorAddress,
|
|
120
129
|
functionName: "getMarkets",
|
|
121
|
-
args: [this
|
|
130
|
+
args: [this.marketFilter]
|
|
122
131
|
}
|
|
123
132
|
],
|
|
124
133
|
blockNumber: this.sdk.currentBlock,
|
|
@@ -131,7 +140,7 @@ class MarketRegister extends import_base.SDKConstruct {
|
|
|
131
140
|
abi: import_compressors.iMarketCompressorAbi,
|
|
132
141
|
address: marketCompressorAddress,
|
|
133
142
|
functionName: "getMarkets",
|
|
134
|
-
args: [this
|
|
143
|
+
args: [this.marketFilter],
|
|
135
144
|
blockNumber: this.sdk.currentBlock,
|
|
136
145
|
// @ts-expect-error
|
|
137
146
|
gas: this.sdk.gasLimit
|
|
@@ -179,7 +188,11 @@ class MarketRegister extends import_base.SDKConstruct {
|
|
|
179
188
|
}
|
|
180
189
|
}
|
|
181
190
|
get watchAddresses() {
|
|
182
|
-
return new Set(
|
|
191
|
+
return /* @__PURE__ */ new Set([
|
|
192
|
+
...this.markets.flatMap((m) => Array.from(m.watchAddresses)),
|
|
193
|
+
// this is needed to handle edge case of market configurator without markets, to detect CreateMarket event
|
|
194
|
+
...this.marketFilter.configurators
|
|
195
|
+
]);
|
|
183
196
|
}
|
|
184
197
|
get state() {
|
|
185
198
|
return this.markets.map((market) => market.state);
|
|
@@ -196,11 +209,7 @@ class MarketRegister extends import_base.SDKConstruct {
|
|
|
196
209
|
return this.markets.flatMap((market) => market.creditManagers);
|
|
197
210
|
}
|
|
198
211
|
get marketConfigurators() {
|
|
199
|
-
|
|
200
|
-
for (const m of this.markets) {
|
|
201
|
-
result.add(m.configurator);
|
|
202
|
-
}
|
|
203
|
-
return Array.from(result);
|
|
212
|
+
return this.#marketConfigurators.values();
|
|
204
213
|
}
|
|
205
214
|
findCreditManager(creditManager) {
|
|
206
215
|
const addr = creditManager.toLowerCase();
|
|
@@ -39,16 +39,13 @@ class MarketSuite extends import_base.SDKConstruct {
|
|
|
39
39
|
constructor(sdk, marketData) {
|
|
40
40
|
super(sdk);
|
|
41
41
|
this.state = marketData;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
configurator = new import_MarketConfiguratorContract.MarketConfiguratorContract(
|
|
47
|
-
sdk,
|
|
48
|
-
marketData.configurator
|
|
42
|
+
const mc = sdk.contracts.mustGet(marketData.configurator);
|
|
43
|
+
if (!(mc instanceof import_MarketConfiguratorContract.MarketConfiguratorContract)) {
|
|
44
|
+
throw new Error(
|
|
45
|
+
`Market configurator ${marketData.configurator} is not a market configurator`
|
|
49
46
|
);
|
|
50
47
|
}
|
|
51
|
-
this.configurator =
|
|
48
|
+
this.configurator = mc;
|
|
52
49
|
this.acl = marketData.acl;
|
|
53
50
|
for (const t of marketData.tokens) {
|
|
54
51
|
sdk.tokensMeta.upsert(t.addr, t);
|
|
@@ -61,7 +61,7 @@ class PoolSuite extends import_base.SDKConstruct {
|
|
|
61
61
|
return this.rateKeeper;
|
|
62
62
|
}
|
|
63
63
|
throw new Error(
|
|
64
|
-
|
|
64
|
+
`Rate keeper is not a gauge, but a ${this.rateKeeper.contractType}`
|
|
65
65
|
);
|
|
66
66
|
}
|
|
67
67
|
get tumbler() {
|
|
@@ -69,7 +69,7 @@ class PoolSuite extends import_base.SDKConstruct {
|
|
|
69
69
|
return this.rateKeeper;
|
|
70
70
|
}
|
|
71
71
|
throw new Error(
|
|
72
|
-
|
|
72
|
+
`Rate keeper is not a tumbler, but a ${this.rateKeeper.contractType}`
|
|
73
73
|
);
|
|
74
74
|
}
|
|
75
75
|
get linearModel() {
|
|
@@ -98,6 +98,31 @@ class PriceFeedRegister extends import_base.SDKConstruct {
|
|
|
98
98
|
this.#latestUpdate = latestUpdate;
|
|
99
99
|
return result;
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Similar to generatePriceFeedsUpdateTxs, but will generate necessary price update transactions for external price feeds
|
|
103
|
+
* This does not add feeds to this register, so they won't be implicitly included in future generatePriceFeedsUpdateTxs calls
|
|
104
|
+
* @param feeds
|
|
105
|
+
* @param block
|
|
106
|
+
* @returns
|
|
107
|
+
*/
|
|
108
|
+
async generateExternalPriceFeedsUpdateTxs(feeds, block) {
|
|
109
|
+
const [priceFeedCompressorAddress] = this.sdk.addressProvider.mustGetLatest(
|
|
110
|
+
import_constants.AP_PRICE_FEED_COMPRESSOR,
|
|
111
|
+
import_constants.VERSION_RANGE_310
|
|
112
|
+
);
|
|
113
|
+
const blockParam = block ?? { blockNumber: this.sdk.currentBlock };
|
|
114
|
+
const result = await this.provider.publicClient.readContract({
|
|
115
|
+
address: priceFeedCompressorAddress,
|
|
116
|
+
abi: import_compressors.iPriceFeedCompressorAbi,
|
|
117
|
+
functionName: "loadPriceFeedTree",
|
|
118
|
+
args: [feeds],
|
|
119
|
+
...blockParam,
|
|
120
|
+
// @ts-expect-error
|
|
121
|
+
gas: this.sdk.gasLimit
|
|
122
|
+
});
|
|
123
|
+
const feedContracts = result.map((data) => this.create(data));
|
|
124
|
+
return this.generatePriceFeedsUpdateTxs(feedContracts);
|
|
125
|
+
}
|
|
101
126
|
has(address) {
|
|
102
127
|
return this.#feeds.has(address);
|
|
103
128
|
}
|
|
@@ -41,8 +41,8 @@ class PythUpdater extends import_base.SDKConstruct {
|
|
|
41
41
|
this.#logger = (0, import_utils.childLogger)("PythUpdater", sdk.logger);
|
|
42
42
|
this.#ignoreMissingFeeds = opts.ignoreMissingFeeds;
|
|
43
43
|
this.#api = opts.apiProxy ?? "https://hermes.pyth.network/v2/updates/price/";
|
|
44
|
-
this.#api = this.#api.endsWith("/") ? this.#api : this.#api
|
|
45
|
-
|
|
44
|
+
this.#api = this.#api.endsWith("/") ? this.#api : `${this.#api}/`;
|
|
45
|
+
const ts = opts.historicTimestamp;
|
|
46
46
|
if (ts) {
|
|
47
47
|
this.#historicalTimestamp = ts === true ? Number(this.sdk.timestamp) : ts;
|
|
48
48
|
}
|