@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.
- package/dist/cjs/index.cjs +267 -137
- package/dist/cjs/index.d.ts +165 -144
- package/dist/esm/index.d.mts +165 -144
- package/dist/esm/index.mjs +208 -90
- package/package.json +2 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -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
|
|
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
|
|
12956
|
+
for (const chain of SUPPORTED_CHAINS) {
|
|
12818
12957
|
try {
|
|
12819
12958
|
await client.readContract({
|
|
12820
12959
|
abi: ierc20MetadataAbi,
|
|
12821
|
-
address:
|
|
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
|
-
|
|
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 ${
|
|
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 },
|
|
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 = [...
|
|
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),
|
|
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
|
-
|
|
13572
|
-
|
|
13573
|
-
|
|
13574
|
-
|
|
13575
|
-
|
|
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
|
-
|
|
13695
|
+
percentFmt(liquidationThresholdFinal),
|
|
13592
13696
|
`${rampStart}`,
|
|
13593
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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(
|
|
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
|
-
|
|
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]) =>
|
|
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
|
|
15303
|
-
const minBalance = 10n ** BigInt(Math.max(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([
|
|
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: ${
|
|
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,
|
|
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:
|
|
15569
|
-
maxDebt:
|
|
15570
|
-
currentCumulativeLoss:
|
|
15571
|
-
maxCumulativeLoss:
|
|
15572
|
-
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
|
-
|
|
15704
|
+
percentFmt(v, raw)
|
|
15591
15705
|
])
|
|
15592
15706
|
),
|
|
15593
|
-
feeInterest:
|
|
15594
|
-
feeLiquidation:
|
|
15595
|
-
liquidationDiscount:
|
|
15596
|
-
feeLiquidationExpired:
|
|
15597
|
-
liquidationDiscountExpired:
|
|
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:
|
|
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:
|
|
15758
|
+
availableLiquidity: formatBNvalue(
|
|
15643
15759
|
state.availableLiquidity,
|
|
15644
15760
|
state.decimals,
|
|
15645
15761
|
2,
|
|
15646
15762
|
raw
|
|
15647
15763
|
),
|
|
15648
|
-
expectedLiquidity:
|
|
15764
|
+
expectedLiquidity: formatBNvalue(
|
|
15649
15765
|
state.expectedLiquidity,
|
|
15650
15766
|
state.decimals,
|
|
15651
15767
|
2,
|
|
15652
15768
|
raw
|
|
15653
15769
|
),
|
|
15654
|
-
totalBorrowed:
|
|
15655
|
-
totalDebtLimit:
|
|
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:
|
|
15661
|
-
limit:
|
|
15662
|
-
availableToBorrow:
|
|
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:
|
|
15672
|
-
totalSupply:
|
|
15673
|
-
supplyRate: `${
|
|
15674
|
-
baseInterestIndex: `${
|
|
15675
|
-
baseInterestRate: `${
|
|
15676
|
-
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,
|
|
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:
|
|
15690
|
-
quotaIncreaseFee:
|
|
15691
|
-
totalQuoted:
|
|
15692
|
-
limit:
|
|
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:
|
|
15704
|
-
U2:
|
|
15705
|
-
Rbase:
|
|
15706
|
-
Rslope1:
|
|
15707
|
-
Rslope2:
|
|
15708
|
-
Rslope3:
|
|
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:
|
|
15722
|
-
maxRate:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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;
|