@gearbox-protocol/sdk 3.0.0-vfour.4 → 3.0.0-vfour.5

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.
@@ -1,13 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  var viem = require('viem');
4
- var sdkGov = require('@gearbox-protocol/sdk-gov');
5
4
  var utils = require('viem/utils');
6
- var actions = require('viem/actions');
5
+ var dateFns = require('date-fns');
7
6
  var chains$1 = require('viem/chains');
7
+ var actions = require('viem/actions');
8
8
  var eventemitter3 = require('eventemitter3');
9
9
  var evmConnector = require('@redstone-finance/evm-connector');
10
10
  var redstoneProtocol = require('redstone-protocol');
11
+ var sdkGov = require('@gearbox-protocol/sdk-gov');
11
12
  var aura = require('@gearbox-protocol/sdk-gov/lib/tokens/aura');
12
13
 
13
14
  // src/accounts/CreditAccountsService.ts
@@ -12413,6 +12414,18 @@ var routerV3Abi = [
12413
12414
  // src/constants/addresses.ts
12414
12415
  var ADDRESS_0X0 = "0x0000000000000000000000000000000000000000";
12415
12416
  var NOT_DEPLOYED = "0xNOT DEPLOYED";
12417
+ var USDC = {
12418
+ Mainnet: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
12419
+ Arbitrum: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
12420
+ Optimism: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
12421
+ Base: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
12422
+ };
12423
+ var TIMELOCK = {
12424
+ Mainnet: "0xa133C9A92Fb8dDB962Af1cbae58b2723A0bdf23b",
12425
+ Arbitrum: "0x148DD932eCe1155c11006F5650c6Ff428f8D374A",
12426
+ Optimism: "0x148DD932eCe1155c11006F5650c6Ff428f8D374A",
12427
+ Base: NOT_DEPLOYED
12428
+ };
12416
12429
 
12417
12430
  // src/constants/address-provider.ts
12418
12431
  var NO_VERSION = 0;
@@ -12449,6 +12462,34 @@ var ADDRESS_PROVIDER = {
12449
12462
  Base: NOT_DEPLOYED
12450
12463
  };
12451
12464
 
12465
+ // src/constants/bot-permissions.ts
12466
+ var BotPermissions = /* @__PURE__ */ ((BotPermissions2) => {
12467
+ BotPermissions2[BotPermissions2["ADD_COLLATERAL"] = 1] = "ADD_COLLATERAL";
12468
+ BotPermissions2[BotPermissions2["INCREASE_DEBT"] = 2] = "INCREASE_DEBT";
12469
+ BotPermissions2[BotPermissions2["DECREASE_DEBT"] = 4] = "DECREASE_DEBT";
12470
+ BotPermissions2[BotPermissions2["ENABLE_TOKEN"] = 8] = "ENABLE_TOKEN";
12471
+ BotPermissions2[BotPermissions2["DISABLE_TOKEN"] = 16] = "DISABLE_TOKEN";
12472
+ BotPermissions2[BotPermissions2["WITHDRAW_COLLATERAL"] = 32] = "WITHDRAW_COLLATERAL";
12473
+ BotPermissions2[BotPermissions2["UPDATE_QUOTA"] = 64] = "UPDATE_QUOTA";
12474
+ BotPermissions2[BotPermissions2["REVOKE_ALLOWANCES"] = 128] = "REVOKE_ALLOWANCES";
12475
+ BotPermissions2[BotPermissions2["EXTERNAL_CALLS"] = 65536] = "EXTERNAL_CALLS";
12476
+ BotPermissions2[BotPermissions2["ALL_CREDIT_FACADE_CALLS"] = 255] = "ALL_CREDIT_FACADE_CALLS";
12477
+ BotPermissions2[BotPermissions2["ALLS"] = 65791] = "ALLS";
12478
+ return BotPermissions2;
12479
+ })(BotPermissions || {});
12480
+ function botPermissionsToString(value) {
12481
+ let result = "";
12482
+ for (let i = 0; i < 16; i++) {
12483
+ if ((value & 1n << BigInt(i)) !== 0n) {
12484
+ if (result.length > 0) {
12485
+ result += " | ";
12486
+ }
12487
+ result += BotPermissions[1 << i];
12488
+ }
12489
+ }
12490
+ return result;
12491
+ }
12492
+
12452
12493
  // src/constants/math.ts
12453
12494
  var MIN_INT96 = -39614081257132168796771975168n;
12454
12495
  var MAX_UINT256 = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
@@ -12619,6 +12660,91 @@ function createRawTx(to, parameters, description) {
12619
12660
  description
12620
12661
  };
12621
12662
  }
12663
+ var percentFmt = (v, raw = true) => `${(Number(v) / 100).toFixed(2)}%` + (raw ? ` [${v}]` : "");
12664
+ function formatBNvalue(num, decimals2, precision, raw = true) {
12665
+ return `${formatBN(num, decimals2, precision)}` + (raw ? ` [ ${num} ]` : "");
12666
+ }
12667
+ function formatBN(num, decimals2, precision) {
12668
+ if (num === void 0) {
12669
+ return "-";
12670
+ }
12671
+ const numBInt = BigInt(num);
12672
+ const limitedNum = limitNum(numBInt, decimals2);
12673
+ const limitedPrecision = limitPrecision(limitedNum, precision);
12674
+ return toHumanFormat(limitedNum, limitedPrecision);
12675
+ }
12676
+ var limitPrecision = (n, p) => {
12677
+ const notZero = n !== 0n;
12678
+ if (n <= 10n && notZero) {
12679
+ return 6;
12680
+ }
12681
+ if (n <= 100n && notZero) {
12682
+ return 5;
12683
+ }
12684
+ if (n <= 1000n && notZero) {
12685
+ return 4;
12686
+ }
12687
+ if (n <= 10000n && notZero) {
12688
+ return 3;
12689
+ }
12690
+ if (p === void 0 && n > 10n ** 21n) {
12691
+ return 2;
12692
+ }
12693
+ if (p === void 0 && n > 10n ** 24n) {
12694
+ return 0;
12695
+ }
12696
+ return p;
12697
+ };
12698
+ var limitNum = (n, d = 18) => {
12699
+ let limited = n <= 2n ? 0n : n;
12700
+ if (d <= 6) {
12701
+ return limited * 10n ** BigInt(6 - d);
12702
+ } else {
12703
+ return limited / 10n ** BigInt(d - 6);
12704
+ }
12705
+ };
12706
+ function toHumanFormat(num, precision = 2) {
12707
+ if (num >= BigInt(1e15)) {
12708
+ return `${formatBn4dig(num / BigInt(1e9), precision)}Bn`;
12709
+ }
12710
+ if (num >= BigInt(1e12)) {
12711
+ return `${formatBn4dig(num / BigInt(1e6), precision)}M`;
12712
+ }
12713
+ if (num >= BigInt(1e9)) {
12714
+ return `${formatBn4dig(num / BigInt(1e3), precision)}K`;
12715
+ }
12716
+ return formatBn4dig(num, precision);
12717
+ }
12718
+ function formatBn4dig(num, precision = 2) {
12719
+ if (precision > 6) {
12720
+ throw new Error("Precision is too high, try <= 6");
12721
+ }
12722
+ const numStr = num.toString();
12723
+ if (numStr.length <= 6) {
12724
+ const completed = "0".repeat(6 - numStr.length) + numStr;
12725
+ return `0.${completed.slice(0, precision)}`;
12726
+ }
12727
+ return `${numStr.slice(0, numStr.length - 6)}.${numStr.slice(
12728
+ numStr.length - 6,
12729
+ numStr.length - 6 + precision
12730
+ )}`;
12731
+ }
12732
+ function fmtBinaryMask(mask) {
12733
+ return mask.toString(2).padStart(64, "0");
12734
+ }
12735
+ function numberWithCommas(x) {
12736
+ return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
12737
+ }
12738
+ function formatDuration(seconds, raw = true) {
12739
+ const now = Math.floor(Date.now() / 1e3) * 1e3;
12740
+ const start = new Date(now);
12741
+ const end = new Date(now + seconds * 1e3);
12742
+ const duration = dateFns.intervalToDuration({ start, end });
12743
+ return `${dateFns.formatDuration(duration)}` + (raw ? `[${seconds.toString()}]` : "");
12744
+ }
12745
+ function formatNumberToString_(value) {
12746
+ return value.toLocaleString("en-US", { minimumIntegerDigits: 1, useGrouping: true }).replaceAll(",", "_");
12747
+ }
12622
12748
 
12623
12749
  // src/base/AddressLabeller.ts
12624
12750
  var AddressLabeller = class {
@@ -12641,29 +12767,6 @@ var AddressLabeller = class {
12641
12767
  return this.#labels.asRecord();
12642
12768
  }
12643
12769
  };
12644
- function initLegacyLabels(labeller, network) {
12645
- Object.entries(sdkGov.tokenDataByNetwork[network]).forEach(([label, address]) => {
12646
- labeller.set(address, label);
12647
- });
12648
- Object.entries(sdkGov.tickerTokensByNetwork[network]).forEach(([label, address]) => {
12649
- labeller.set(address, label);
12650
- });
12651
- Object.entries(sdkGov.contractsByNetwork[network]).forEach(([label, address]) => {
12652
- labeller.set(address, label);
12653
- });
12654
- const multisigs = [
12655
- { safe: sdkGov.MULTISIG, label: "Multisig" },
12656
- { safe: sdkGov.ROUTER_MULTISIG_ADDRESS, label: "RouterMultisig" },
12657
- { safe: sdkGov.VETO_ADMIN, label: "VetoAdmin" },
12658
- { safe: sdkGov.TREASURY, label: "Treasury" }
12659
- ];
12660
- multisigs.forEach(({ safe, label }) => {
12661
- labeller.set(safe[network], label);
12662
- });
12663
- sdkGov.emergencyLiquidators.forEach((address) => {
12664
- labeller.set(address, "EmergencyLiquidator");
12665
- });
12666
- }
12667
12770
 
12668
12771
  // src/base/SDKConstruct.ts
12669
12772
  var SDKConstruct = class {
@@ -12813,12 +12916,48 @@ var VotingContractStatus = /* @__PURE__ */ ((VotingContractStatus2) => {
12813
12916
  VotingContractStatus2[VotingContractStatus2["UNVOTE_ONLY"] = 2] = "UNVOTE_ONLY";
12814
12917
  return VotingContractStatus2;
12815
12918
  })(VotingContractStatus || {});
12919
+ var SUPPORTED_CHAINS = [
12920
+ "Mainnet",
12921
+ "Arbitrum",
12922
+ "Optimism",
12923
+ "Base"
12924
+ ];
12925
+ var chains = {
12926
+ Mainnet: chains$1.mainnet,
12927
+ Arbitrum: chains$1.arbitrum,
12928
+ Optimism: chains$1.optimism,
12929
+ Base: chains$1.base
12930
+ };
12931
+ var Provider = class {
12932
+ chainId;
12933
+ chain;
12934
+ networkType;
12935
+ publicClient;
12936
+ addressLabels;
12937
+ constructor(opts) {
12938
+ const { chainId, networkType, rpcURL, timeout = 12e4 } = opts;
12939
+ this.chainId = chainId;
12940
+ this.networkType = networkType;
12941
+ this.chain = viem.defineChain({
12942
+ ...chains[networkType],
12943
+ id: chainId
12944
+ });
12945
+ this.publicClient = viem.createPublicClient({
12946
+ chain: this.chain,
12947
+ transport: viem.http(rpcURL, { timeout })
12948
+ // for SDK they could be multiple RPCs
12949
+ });
12950
+ this.addressLabels = new AddressLabeller();
12951
+ }
12952
+ };
12953
+
12954
+ // src/utils/viem/detectNetwork.ts
12816
12955
  async function detectNetwork(client) {
12817
- for (const chain of sdkGov.supportedChains) {
12956
+ for (const chain of SUPPORTED_CHAINS) {
12818
12957
  try {
12819
12958
  await client.readContract({
12820
12959
  abi: ierc20MetadataAbi,
12821
- address: sdkGov.tokenDataByNetwork[chain].USDC,
12960
+ address: USDC[chain],
12822
12961
  functionName: "symbol"
12823
12962
  });
12824
12963
  return chain;
@@ -13309,43 +13448,6 @@ function rawTxToMulticallPriceUpdate(tx) {
13309
13448
  args
13310
13449
  };
13311
13450
  }
13312
- var SUPPORTED_CHAINS = [
13313
- "Mainnet",
13314
- "Arbitrum",
13315
- "Optimism",
13316
- "Base"
13317
- ];
13318
- var chains = {
13319
- Mainnet: chains$1.mainnet,
13320
- Arbitrum: chains$1.arbitrum,
13321
- Optimism: chains$1.optimism,
13322
- Base: chains$1.base
13323
- };
13324
- var Provider = class {
13325
- chainId;
13326
- chain;
13327
- networkType;
13328
- publicClient;
13329
- /**
13330
- * Note: use interface here to hide implementation that uses sdk-gov
13331
- */
13332
- addressLabels;
13333
- constructor(opts) {
13334
- const { chainId, networkType, rpcURL, timeout = 12e4 } = opts;
13335
- this.chainId = chainId;
13336
- this.networkType = networkType;
13337
- this.chain = viem.defineChain({
13338
- ...chains[networkType],
13339
- id: chainId
13340
- });
13341
- this.publicClient = viem.createPublicClient({
13342
- chain: this.chain,
13343
- transport: viem.http(rpcURL, { timeout })
13344
- // for SDK they could be multiple RPCs
13345
- });
13346
- this.addressLabels = new AddressLabeller();
13347
- }
13348
- };
13349
13451
  var AddressProviderContractV3_1 = class extends BaseContract {
13350
13452
  #addresses = {};
13351
13453
  versions = {};
@@ -13460,7 +13562,7 @@ var BotListContract = class extends BaseContract {
13460
13562
  return [
13461
13563
  this.addressLabels.get(bot),
13462
13564
  this.addressLabels.get(creditManager),
13463
- sdkGov.botPermissionsToString(permissions)
13565
+ botPermissionsToString(permissions)
13464
13566
  ];
13465
13567
  }
13466
13568
  default:
@@ -13491,7 +13593,7 @@ var BotListContract = class extends BaseContract {
13491
13593
  break;
13492
13594
  case "SetBotSpecialPermissions":
13493
13595
  this.logger?.debug(
13494
- `Bot ${parsedLog.args.bot} has been given permissions ${sdkGov.botPermissionsToString(
13596
+ `Bot ${parsedLog.args.bot} has been given permissions ${botPermissionsToString(
13495
13597
  parsedLog.args.permissions
13496
13598
  )} for credit manager ${parsedLog.args.creditManager}`
13497
13599
  );
@@ -13531,16 +13633,18 @@ var GearStakingContract = class extends BaseContract {
13531
13633
  };
13532
13634
  }
13533
13635
  };
13636
+
13637
+ // src/market/CreditConfiguratorContract.ts
13534
13638
  var CreditConfiguratorContract = class extends BaseContract {
13535
13639
  adapters = [];
13536
13640
  emergencyLiquidators = [];
13537
- constructor(sdk, { creditConfigurator, creditManager }, emergencyLiquidators2) {
13641
+ constructor(sdk, { creditConfigurator, creditManager }, emergencyLiquidators) {
13538
13642
  super(sdk, {
13539
13643
  ...creditConfigurator.baseParams,
13540
13644
  name: `CreditConfigurator(${creditManager.name})`,
13541
13645
  abi: creditConfiguratorV3Abi
13542
13646
  });
13543
- this.emergencyLiquidators = [...emergencyLiquidators2];
13647
+ this.emergencyLiquidators = [...emergencyLiquidators];
13544
13648
  }
13545
13649
  get state() {
13546
13650
  return {
@@ -13553,7 +13657,7 @@ var CreditConfiguratorContract = class extends BaseContract {
13553
13657
  case "addCollateralToken":
13554
13658
  case "setLiquidationThreshold": {
13555
13659
  const [token, lt] = params.args;
13556
- return [this.addressLabels.get(token), sdkGov.percentFmt(lt)];
13660
+ return [this.addressLabels.get(token), percentFmt(lt)];
13557
13661
  }
13558
13662
  case "setExpirationDate": {
13559
13663
  const [expirationDate] = params.args;
@@ -13568,11 +13672,11 @@ var CreditConfiguratorContract = class extends BaseContract {
13568
13672
  liquidationPremiumExpired
13569
13673
  ] = params.args;
13570
13674
  return [
13571
- sdkGov.percentFmt(feeInterest),
13572
- sdkGov.percentFmt(feeLiquidation),
13573
- sdkGov.percentFmt(liquidationPremium),
13574
- sdkGov.percentFmt(feeLiquidationExpired),
13575
- sdkGov.percentFmt(liquidationPremiumExpired)
13675
+ percentFmt(feeInterest),
13676
+ percentFmt(feeLiquidation),
13677
+ percentFmt(liquidationPremium),
13678
+ percentFmt(feeLiquidationExpired),
13679
+ percentFmt(liquidationPremiumExpired)
13576
13680
  ];
13577
13681
  }
13578
13682
  // case "setMinDebtLimit":
@@ -13588,9 +13692,9 @@ var CreditConfiguratorContract = class extends BaseContract {
13588
13692
  const [token, liquidationThresholdFinal, rampStart, rampDuration] = params.args;
13589
13693
  return [
13590
13694
  this.addressLabels.get(token),
13591
- sdkGov.percentFmt(liquidationThresholdFinal),
13695
+ percentFmt(liquidationThresholdFinal),
13592
13696
  `${rampStart}`,
13593
- sdkGov.formatDuration(rampDuration)
13697
+ formatDuration(rampDuration)
13594
13698
  ];
13595
13699
  }
13596
13700
  default:
@@ -13598,6 +13702,8 @@ var CreditConfiguratorContract = class extends BaseContract {
13598
13702
  }
13599
13703
  }
13600
13704
  };
13705
+
13706
+ // src/market/CreditFacadeContract.ts
13601
13707
  var CreditFacadeContract = class extends BaseContract {
13602
13708
  state;
13603
13709
  constructor(sdk, { creditFacade, creditManager }) {
@@ -13664,7 +13770,7 @@ var CreditFacadeContract = class extends BaseContract {
13664
13770
  return [
13665
13771
  this.addressLabels.get(creditAccount),
13666
13772
  this.addressLabels.get(bot),
13667
- sdkGov.fmtBinaryMask(permissions)
13773
+ fmtBinaryMask(permissions)
13668
13774
  ];
13669
13775
  }
13670
13776
  default:
@@ -13729,7 +13835,7 @@ var CreditFactory = class {
13729
13835
  // TODO:
13730
13836
  // adapterFactory: AdapterFactory;
13731
13837
  constructor(sdk, marketData, index) {
13732
- const { creditManagers, pool, emergencyLiquidators: emergencyLiquidators2 } = marketData;
13838
+ const { creditManagers, pool, emergencyLiquidators } = marketData;
13733
13839
  const creditManager = creditManagers[index];
13734
13840
  const { name, collateralTokens, liquidationThresholds } = creditManager.creditManager;
13735
13841
  this.name = name;
@@ -13743,7 +13849,7 @@ var CreditFactory = class {
13743
13849
  this.creditConfigurator = new CreditConfiguratorContract(
13744
13850
  sdk,
13745
13851
  creditManager,
13746
- emergencyLiquidators2
13852
+ emergencyLiquidators
13747
13853
  );
13748
13854
  }
13749
13855
  async tvl() {
@@ -13871,7 +13977,7 @@ var PoolContract = class extends BaseContract {
13871
13977
  ...this.contractData,
13872
13978
  lastBaseInterestUpdate: data.lastBaseInterestUpdate,
13873
13979
  underlying: data.underlying,
13874
- decimals: sdkGov.decimals[sdkGov.getTokenSymbol(data.underlying)],
13980
+ decimals: sdk.marketRegister.tokensMeta.mustGet(data.underlying).decimals,
13875
13981
  creditManagerDebtParams,
13876
13982
  withdrawFee: Number(data.withdrawFee)
13877
13983
  };
@@ -13898,7 +14004,7 @@ var PoolContract = class extends BaseContract {
13898
14004
  case "deposit": {
13899
14005
  const [amount, onBehalfOf] = params.args;
13900
14006
  return [
13901
- sdkGov.formatBN(amount, this.state.decimals),
14007
+ formatBN(amount, this.state.decimals),
13902
14008
  this.addressLabels.get(onBehalfOf)
13903
14009
  ];
13904
14010
  }
@@ -13907,6 +14013,8 @@ var PoolContract = class extends BaseContract {
13907
14013
  }
13908
14014
  }
13909
14015
  };
14016
+
14017
+ // src/market/PoolQuotaKeeperContract.ts
13910
14018
  var PoolQuotaKeeperContract = class extends BaseContract {
13911
14019
  decimals;
13912
14020
  state;
@@ -13916,7 +14024,9 @@ var PoolQuotaKeeperContract = class extends BaseContract {
13916
14024
  name: `PoolQuotaKeeper(${pool.name})`,
13917
14025
  abi: poolQuotaKeeperV3Abi
13918
14026
  });
13919
- this.decimals = sdkGov.decimals[sdkGov.getTokenSymbol(pool.underlying)];
14027
+ this.decimals = sdk.marketRegister.tokensMeta.mustGet(
14028
+ pool.underlying
14029
+ ).decimals;
13920
14030
  this.state = {
13921
14031
  ...this.contractData,
13922
14032
  quotas: Object.fromEntries(
@@ -14292,7 +14402,7 @@ var Erc4626PriceFeedContract = class extends AbstractLPPriceFeedContract {
14292
14402
  };
14293
14403
  }
14294
14404
  async getValue() {
14295
- const decimals4 = await this.sdk.provider.publicClient.readContract({
14405
+ const decimals2 = await this.sdk.provider.publicClient.readContract({
14296
14406
  abi: erc20Abi,
14297
14407
  address: this.lpContract,
14298
14408
  functionName: "decimals"
@@ -14301,7 +14411,7 @@ var Erc4626PriceFeedContract = class extends AbstractLPPriceFeedContract {
14301
14411
  abi: viem.erc4626Abi,
14302
14412
  address: this.lpContract,
14303
14413
  functionName: "convertToAssets",
14304
- args: [10n ** BigInt(decimals4)]
14414
+ args: [10n ** BigInt(decimals2)]
14305
14415
  });
14306
14416
  return price;
14307
14417
  }
@@ -14855,7 +14965,8 @@ var PriceOracleContract = class extends BaseContract {
14855
14965
  // }
14856
14966
  #labelPriceFeed(address, usage, token) {
14857
14967
  this.sdk.provider.addressLabels.set(address, (label) => {
14858
- let pricefeedTag = `${sdkGov.getTokenSymbolOrTicker(token)}.${usage}`;
14968
+ const { symbol } = this.sdk.marketRegister.tokensMeta.mustGet(token);
14969
+ let pricefeedTag = `${symbol}.${usage}`;
14859
14970
  if (label) {
14860
14971
  pricefeedTag = `${label}, ${pricefeedTag}`;
14861
14972
  }
@@ -14908,14 +15019,15 @@ var MarketFactory = class {
14908
15019
  creditManagers = [];
14909
15020
  constructor(sdk, marketData) {
14910
15021
  this.riskCurator = marketData.owner;
15022
+ for (const t of marketData.tokens) {
15023
+ sdk.marketRegister.tokensMeta.upsert(t.addr, t);
15024
+ sdk.provider.addressLabels.set(t.addr, t.symbol);
15025
+ }
14911
15026
  this.poolFactory = new PoolFactory(sdk, marketData);
14912
15027
  for (let i = 0; i < marketData.creditManagers.length; i++) {
14913
15028
  this.creditManagers.push(new CreditFactory(sdk, marketData, i));
14914
15029
  }
14915
15030
  this.priceOracle = new PriceOracleContract(sdk, marketData.priceOracleData);
14916
- for (const t of marketData.tokens) {
14917
- sdk.provider.addressLabels.set(t.addr, t.symbol);
14918
- }
14919
15031
  }
14920
15032
  get state() {
14921
15033
  return {
@@ -15076,7 +15188,7 @@ var PathOptionFactory = class _PathOptionFactory {
15076
15188
  }
15077
15189
  static getBalancerPools(balances) {
15078
15190
  const nonZeroBalances = Object.entries(balances).filter(
15079
- ([, balance]) => sdkGov.toBigInt(balance.balance) > 1
15191
+ ([, balance]) => balance.balance > 1
15080
15192
  );
15081
15193
  const balancerPools = nonZeroBalances.map(([token]) => sdkGov.getTokenSymbol(token)).filter((symbol) => sdkGov.isBalancerLPToken(symbol));
15082
15194
  const balancerAuraTokens = Object.entries(aura.auraTokens).filter(([, data]) => sdkGov.isBalancerLPToken(data.underlying)).map(([token]) => token);
@@ -15299,8 +15411,8 @@ var RouterV3Contract = class extends BaseContract {
15299
15411
  const token = t;
15300
15412
  const isEnabled = (mask & ca.enabledTokensMask) !== 0n;
15301
15413
  expectedBalances[token] = { token, balance };
15302
- const decimals4 = this.sdk.marketRegister.tokensMeta.mustGet(token).decimals;
15303
- const minBalance = 10n ** BigInt(Math.max(8, decimals4) - 8);
15414
+ const decimals2 = this.sdk.marketRegister.tokensMeta.mustGet(token).decimals;
15415
+ const minBalance = 10n ** BigInt(Math.max(8, decimals2) - 8);
15304
15416
  if (balance < minBalance || !isEnabled) {
15305
15417
  leftoverBalances[token] = { token, balance };
15306
15418
  }
@@ -15427,7 +15539,9 @@ var GearboxSDK = class _GearboxSDK extends eventemitter3.EventEmitter {
15427
15539
  gearStakingAddress
15428
15540
  );
15429
15541
  this.#marketRegister = new MarketRegister(this);
15430
- await this.#marketRegister.loadMarkets([sdkGov.TIMELOCK.Mainnet]);
15542
+ await this.#marketRegister.loadMarkets([
15543
+ TIMELOCK[this.provider.networkType]
15544
+ ]);
15431
15545
  try {
15432
15546
  const router = this.#addressProvider.getLatestVersion(AP_ROUTER);
15433
15547
  this.#router = new RouterV3Contract(this, router);
@@ -15488,7 +15602,7 @@ var GearboxSDK = class _GearboxSDK extends eventemitter3.EventEmitter {
15488
15602
  async tvl() {
15489
15603
  const { tvl, tvlUSD } = await this.marketRegister.tvl();
15490
15604
  this.logger?.info(tvl);
15491
- this.logger?.info(`Total TVL: ${sdkGov.formatBN(tvlUSD, 8)}`);
15605
+ this.logger?.info(`Total TVL: ${formatBN(tvlUSD, 8)}`);
15492
15606
  }
15493
15607
  async syncState(toBlock, timestamp) {
15494
15608
  if (toBlock <= this.currentBlock) {
@@ -15555,7 +15669,7 @@ var GearboxSDK = class _GearboxSDK extends eventemitter3.EventEmitter {
15555
15669
  return this.#router;
15556
15670
  }
15557
15671
  };
15558
- function convertCreditFacadeStateToHuman(state, decimals4, labelAddress, _raw = true) {
15672
+ function convertCreditFacadeStateToHuman(state, decimals2, labelAddress, _raw = true) {
15559
15673
  return {
15560
15674
  ...convertBaseContractState(state, labelAddress),
15561
15675
  maxQuotaMultiplier: state.maxQuotaMultiplier,
@@ -15565,11 +15679,11 @@ function convertCreditFacadeStateToHuman(state, decimals4, labelAddress, _raw =
15565
15679
  expirationDate: state.expirationDate,
15566
15680
  maxDebtPerBlockMultiplier: state.maxDebtPerBlockMultiplier,
15567
15681
  botList: labelAddress(state.botList),
15568
- minDebt: sdkGov.formatBNvalue(state.minDebt, decimals4),
15569
- maxDebt: sdkGov.formatBNvalue(state.maxDebt, decimals4),
15570
- currentCumulativeLoss: sdkGov.formatBNvalue(state.currentCumulativeLoss, decimals4),
15571
- maxCumulativeLoss: sdkGov.formatBNvalue(state.maxCumulativeLoss, decimals4),
15572
- forbiddenTokenMask: sdkGov.fmtBinaryMask(state.forbiddenTokenMask),
15682
+ minDebt: formatBNvalue(state.minDebt, decimals2),
15683
+ maxDebt: formatBNvalue(state.maxDebt, decimals2),
15684
+ currentCumulativeLoss: formatBNvalue(state.currentCumulativeLoss, decimals2),
15685
+ maxCumulativeLoss: formatBNvalue(state.maxCumulativeLoss, decimals2),
15686
+ forbiddenTokenMask: fmtBinaryMask(state.forbiddenTokenMask),
15573
15687
  isPaused: state.isPaused
15574
15688
  };
15575
15689
  }
@@ -15587,18 +15701,18 @@ function convertCreditManagerStateToHuman(state, labelAddress, raw = true) {
15587
15701
  collateralTokens: Object.fromEntries(
15588
15702
  Object.entries(state.collateralTokens).map(([k, v]) => [
15589
15703
  labelAddress(k),
15590
- sdkGov.percentFmt(v, raw)
15704
+ percentFmt(v, raw)
15591
15705
  ])
15592
15706
  ),
15593
- feeInterest: sdkGov.percentFmt(state.feeInterest, raw),
15594
- feeLiquidation: sdkGov.percentFmt(state.feeLiquidation, raw),
15595
- liquidationDiscount: sdkGov.percentFmt(state.liquidationDiscount, raw),
15596
- feeLiquidationExpired: sdkGov.percentFmt(state.feeLiquidationExpired, raw),
15597
- liquidationDiscountExpired: sdkGov.percentFmt(
15707
+ feeInterest: percentFmt(state.feeInterest, raw),
15708
+ feeLiquidation: percentFmt(state.feeLiquidation, raw),
15709
+ liquidationDiscount: percentFmt(state.liquidationDiscount, raw),
15710
+ feeLiquidationExpired: percentFmt(state.feeLiquidationExpired, raw),
15711
+ liquidationDiscountExpired: percentFmt(
15598
15712
  state.liquidationDiscountExpired,
15599
15713
  raw
15600
15714
  ),
15601
- quotedTokensMask: sdkGov.fmtBinaryMask(state.quotedTokensMask),
15715
+ quotedTokensMask: fmtBinaryMask(state.quotedTokensMask),
15602
15716
  contractsToAdapters: Object.fromEntries(
15603
15717
  Object.entries(state.contractsToAdapters).map(([k, v]) => [
15604
15718
  labelAddress(k),
@@ -15632,6 +15746,8 @@ function convertCreditFactoryStateToHuman(state, labelAddress, _raw = true) {
15632
15746
  )
15633
15747
  };
15634
15748
  }
15749
+
15750
+ // src/state/poolStateHuman.ts
15635
15751
  function convertPoolStateToHuman(state, labelAddress, raw = true) {
15636
15752
  return {
15637
15753
  ...convertBaseContractState(state, labelAddress),
@@ -15639,27 +15755,27 @@ function convertPoolStateToHuman(state, labelAddress, raw = true) {
15639
15755
  symbol: state.symbol,
15640
15756
  name: state.name,
15641
15757
  decimals: state.decimals,
15642
- availableLiquidity: sdkGov.formatBNvalue(
15758
+ availableLiquidity: formatBNvalue(
15643
15759
  state.availableLiquidity,
15644
15760
  state.decimals,
15645
15761
  2,
15646
15762
  raw
15647
15763
  ),
15648
- expectedLiquidity: sdkGov.formatBNvalue(
15764
+ expectedLiquidity: formatBNvalue(
15649
15765
  state.expectedLiquidity,
15650
15766
  state.decimals,
15651
15767
  2,
15652
15768
  raw
15653
15769
  ),
15654
- totalBorrowed: sdkGov.formatBNvalue(state.totalBorrowed, state.decimals, 2, raw),
15655
- totalDebtLimit: sdkGov.formatBNvalue(state.totalDebtLimit, state.decimals, 2, raw),
15770
+ totalBorrowed: formatBNvalue(state.totalBorrowed, state.decimals, 2, raw),
15771
+ totalDebtLimit: formatBNvalue(state.totalDebtLimit, state.decimals, 2, raw),
15656
15772
  creditManagerDebtParams: Object.fromEntries(
15657
15773
  Object.entries(state.creditManagerDebtParams).map(([cm, params]) => [
15658
15774
  labelAddress(cm),
15659
15775
  {
15660
- borrowed: sdkGov.formatBNvalue(params.borrowed, state.decimals, 2, raw),
15661
- limit: sdkGov.formatBNvalue(params.limit, state.decimals, 2, raw),
15662
- availableToBorrow: sdkGov.formatBNvalue(
15776
+ borrowed: formatBNvalue(params.borrowed, state.decimals, 2, raw),
15777
+ limit: formatBNvalue(params.limit, state.decimals, 2, raw),
15778
+ availableToBorrow: formatBNvalue(
15663
15779
  params.availableToBorrow,
15664
15780
  state.decimals,
15665
15781
  2,
@@ -15668,28 +15784,28 @@ function convertPoolStateToHuman(state, labelAddress, raw = true) {
15668
15784
  }
15669
15785
  ])
15670
15786
  ),
15671
- totalAssets: sdkGov.formatBNvalue(state.totalAssets, state.decimals, 2, raw),
15672
- totalSupply: sdkGov.formatBNvalue(state.totalSupply, state.decimals, 2, raw),
15673
- supplyRate: `${sdkGov.formatBNvalue(state.supplyRate, 25, 2, raw)}%`,
15674
- baseInterestIndex: `${sdkGov.formatBNvalue(state.totalSupply, 25, 2, raw)}%`,
15675
- baseInterestRate: `${sdkGov.formatBNvalue(state.totalSupply, 25, 2, raw)}%`,
15676
- withdrawFee: sdkGov.percentFmt(state.withdrawFee),
15787
+ totalAssets: formatBNvalue(state.totalAssets, state.decimals, 2, raw),
15788
+ totalSupply: formatBNvalue(state.totalSupply, state.decimals, 2, raw),
15789
+ supplyRate: `${formatBNvalue(state.supplyRate, 25, 2, raw)}%`,
15790
+ baseInterestIndex: `${formatBNvalue(state.totalSupply, 25, 2, raw)}%`,
15791
+ baseInterestRate: `${formatBNvalue(state.totalSupply, 25, 2, raw)}%`,
15792
+ withdrawFee: percentFmt(state.withdrawFee),
15677
15793
  lastBaseInterestUpdate: state.lastBaseInterestUpdate.toString(),
15678
15794
  baseInterestIndexLU: state.lastBaseInterestUpdate.toString(),
15679
15795
  isPaused: state.isPaused
15680
15796
  };
15681
15797
  }
15682
- function convertPoolQuotaKeeperStateToHuman(state, decimals4, labelAddress, raw = true) {
15798
+ function convertPoolQuotaKeeperStateToHuman(state, decimals2, labelAddress, raw = true) {
15683
15799
  return {
15684
15800
  ...convertBaseContractState(state, labelAddress),
15685
15801
  quotas: Object.entries(state.quotas).reduce(
15686
15802
  (acc, [address, params]) => ({
15687
15803
  ...acc,
15688
15804
  [address]: {
15689
- rate: sdkGov.percentFmt(params.rate, raw),
15690
- quotaIncreaseFee: sdkGov.percentFmt(params.quotaIncreaseFee, raw),
15691
- totalQuoted: sdkGov.formatBNvalue(params.totalQuoted, decimals4, 2, raw),
15692
- limit: sdkGov.formatBNvalue(params.limit, decimals4, 2, raw),
15805
+ rate: percentFmt(params.rate, raw),
15806
+ quotaIncreaseFee: percentFmt(params.quotaIncreaseFee, raw),
15807
+ totalQuoted: formatBNvalue(params.totalQuoted, decimals2, 2, raw),
15808
+ limit: formatBNvalue(params.limit, decimals2, 2, raw),
15693
15809
  isActive: params.isActive
15694
15810
  }
15695
15811
  }),
@@ -15700,12 +15816,12 @@ function convertPoolQuotaKeeperStateToHuman(state, decimals4, labelAddress, raw
15700
15816
  function convertLinearModelStateToHuman(state, labelAddress, raw = true) {
15701
15817
  return {
15702
15818
  ...convertBaseContractState(state, labelAddress),
15703
- U1: sdkGov.percentFmt(state.U1, raw),
15704
- U2: sdkGov.percentFmt(state.U2, raw),
15705
- Rbase: sdkGov.percentFmt(state.Rbase, raw),
15706
- Rslope1: sdkGov.percentFmt(state.Rslope1, raw),
15707
- Rslope2: sdkGov.percentFmt(state.Rslope2, raw),
15708
- Rslope3: sdkGov.percentFmt(state.Rslope3, raw),
15819
+ U1: percentFmt(state.U1, raw),
15820
+ U2: percentFmt(state.U2, raw),
15821
+ Rbase: percentFmt(state.Rbase, raw),
15822
+ Rslope1: percentFmt(state.Rslope1, raw),
15823
+ Rslope2: percentFmt(state.Rslope2, raw),
15824
+ Rslope3: percentFmt(state.Rslope3, raw),
15709
15825
  isBorrowingMoreU2Forbidden: state.isBorrowingMoreU2Forbidden
15710
15826
  };
15711
15827
  }
@@ -15718,11 +15834,11 @@ function convertGaugeStateToHuman(state, labelAddress, raw = true) {
15718
15834
  (acc, [address, params]) => ({
15719
15835
  ...acc,
15720
15836
  [address]: {
15721
- minRate: sdkGov.percentFmt(params.minRate, raw),
15722
- maxRate: sdkGov.percentFmt(params.maxRate, raw),
15837
+ minRate: percentFmt(params.minRate, raw),
15838
+ maxRate: percentFmt(params.maxRate, raw),
15723
15839
  totalVotesLpSide: params.totalVotesLpSide / 1e18,
15724
15840
  totalVotesCaSide: params.totalVotesCaSide / 1e18,
15725
- rate: sdkGov.percentFmt(params.rate, raw)
15841
+ rate: percentFmt(params.rate, raw)
15726
15842
  }
15727
15843
  }),
15728
15844
  {}
@@ -15742,6 +15858,8 @@ function convertPoolFactoryStateToHuman(state, labelAddress, raw = true) {
15742
15858
  gauge: convertGaugeStateToHuman(state.gauge, labelAddress, raw)
15743
15859
  };
15744
15860
  }
15861
+
15862
+ // src/state/priceFactoryStateHuman.ts
15745
15863
  function convertPriceOracleStateToHuman(state, labelAddress, _raw = true) {
15746
15864
  return {
15747
15865
  priceOracleV3: {
@@ -15771,7 +15889,7 @@ function convertPriceFeedStateToHuman(state, labelAddress, raw = true) {
15771
15889
  pricefeeds: state.pricefeeds.map(
15772
15890
  (pf) => convertPriceFeedStateToHuman(pf, labelAddress)
15773
15891
  ),
15774
- stalenessPeriod: sdkGov.formatDuration(state.stalenessPeriod, raw)
15892
+ stalenessPeriod: formatDuration(state.stalenessPeriod, raw)
15775
15893
  };
15776
15894
  }
15777
15895
  case "PF_REDSTONE_ORACLE": {
@@ -15779,7 +15897,7 @@ function convertPriceFeedStateToHuman(state, labelAddress, raw = true) {
15779
15897
  ...state,
15780
15898
  ...convertBaseContractState(state, labelAddress),
15781
15899
  contractType: "PF_REDSTONE_ORACLE",
15782
- stalenessPeriod: sdkGov.formatDuration(state.stalenessPeriod, raw)
15900
+ stalenessPeriod: formatDuration(state.stalenessPeriod, raw)
15783
15901
  };
15784
15902
  }
15785
15903
  default: {
@@ -15789,7 +15907,7 @@ function convertPriceFeedStateToHuman(state, labelAddress, raw = true) {
15789
15907
  pricefeeds: state.pricefeeds.map(
15790
15908
  (pf) => convertPriceFeedStateToHuman(pf, labelAddress)
15791
15909
  ),
15792
- stalenessPeriod: sdkGov.formatDuration(state.stalenessPeriod, raw)
15910
+ stalenessPeriod: formatDuration(state.stalenessPeriod, raw)
15793
15911
  };
15794
15912
  }
15795
15913
  }
@@ -15956,6 +16074,7 @@ exports.BalancerStablePriceFeedContract = BalancerStablePriceFeedContract;
15956
16074
  exports.BalancerWeightedPriceFeedContract = BalancerWeightedPriceFeedContract;
15957
16075
  exports.BaseContract = BaseContract;
15958
16076
  exports.BotListContract = BotListContract;
16077
+ exports.BotPermissions = BotPermissions;
15959
16078
  exports.BoundedPriceFeedContract = BoundedPriceFeedContract;
15960
16079
  exports.ChainlinkPriceFeedContract = ChainlinkPriceFeedContract;
15961
16080
  exports.CompositePriceFeedContract = CompositePriceFeedContract;
@@ -15989,10 +16108,13 @@ exports.Provider = Provider;
15989
16108
  exports.RedstonePriceFeedContract = RedstonePriceFeedContract;
15990
16109
  exports.SDKConstruct = SDKConstruct;
15991
16110
  exports.SUPPORTED_CHAINS = SUPPORTED_CHAINS;
16111
+ exports.TIMELOCK = TIMELOCK;
16112
+ exports.USDC = USDC;
15992
16113
  exports.VotingContractStatus = VotingContractStatus;
15993
16114
  exports.WstETHPriceFeedContract = WstETHPriceFeedContract;
15994
16115
  exports.YearnPriceFeedContract = YearnPriceFeedContract;
15995
16116
  exports.ZeroPriceFeedContract = ZeroPriceFeedContract;
16117
+ exports.botPermissionsToString = botPermissionsToString;
15996
16118
  exports.bytes32ToString = bytes32ToString;
15997
16119
  exports.chains = chains;
15998
16120
  exports.childLogger = childLogger;
@@ -16013,6 +16135,14 @@ exports.convertRouterStateToHuman = convertRouterStateToHuman;
16013
16135
  exports.convertRouterV3StateToHuman = convertRouterV3StateToHuman;
16014
16136
  exports.convertZapperRegisterStateToHuman = convertZapperRegisterStateToHuman;
16015
16137
  exports.createRawTx = createRawTx;
16016
- exports.initLegacyLabels = initLegacyLabels;
16138
+ exports.fmtBinaryMask = fmtBinaryMask;
16139
+ exports.formatBN = formatBN;
16140
+ exports.formatBNvalue = formatBNvalue;
16141
+ exports.formatBn4dig = formatBn4dig;
16142
+ exports.formatDuration = formatDuration;
16143
+ exports.formatNumberToString_ = formatNumberToString_;
16017
16144
  exports.json_parse = json_parse;
16018
16145
  exports.json_stringify = json_stringify;
16146
+ exports.numberWithCommas = numberWithCommas;
16147
+ exports.percentFmt = percentFmt;
16148
+ exports.toHumanFormat = toHumanFormat;