@bgd-labs/toolbox 0.0.54 → 0.0.55
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/index.d.mts +42850 -25417
- package/dist/index.d.ts +42850 -25417
- package/dist/index.js +184 -41
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +164 -27
- package/dist/index.mjs.map +1 -1
- package/dist/node.d.mts +6 -1
- package/dist/node.d.ts +6 -1
- package/dist/node.js +184 -41
- package/dist/node.js.map +1 -1
- package/dist/node.mjs +164 -27
- package/dist/node.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -7,18 +7,27 @@ function bitmapToIndexes(bitmap) {
|
|
|
7
7
|
}
|
|
8
8
|
return indexes;
|
|
9
9
|
}
|
|
10
|
-
function getBits(uint256, startBit,
|
|
11
|
-
|
|
10
|
+
function getBits(uint256, startBit, endBit) {
|
|
11
|
+
if (uint256 < 0n) {
|
|
12
|
+
throw new Error("uint256 must be non-negative");
|
|
13
|
+
}
|
|
14
|
+
if (startBit < 0n || endBit < 0n) {
|
|
15
|
+
throw new Error("Bit positions must be non-negative");
|
|
16
|
+
}
|
|
12
17
|
if (startBit > endBit) {
|
|
13
18
|
throw new Error(
|
|
14
19
|
"Invalid bit range: startBit must be less than or equal to endBit"
|
|
15
20
|
);
|
|
16
21
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
if (uint256 === 0n) {
|
|
23
|
+
return 0n;
|
|
24
|
+
}
|
|
25
|
+
const bitLength = uint256.toString(2).length;
|
|
26
|
+
if (startBit >= bitLength) {
|
|
27
|
+
return 0n;
|
|
20
28
|
}
|
|
21
|
-
const
|
|
29
|
+
const actualEndBit = endBit >= bitLength ? BigInt(bitLength - 1) : endBit;
|
|
30
|
+
const mask = (1n << actualEndBit - startBit + 1n) - 1n;
|
|
22
31
|
return uint256 >> startBit & mask;
|
|
23
32
|
}
|
|
24
33
|
function setBits(input, startBit, endBit, replaceValue) {
|
|
@@ -46,10 +55,10 @@ function decodeUserConfiguration(userConfiguration) {
|
|
|
46
55
|
|
|
47
56
|
// src/aave/reserve.ts
|
|
48
57
|
function decodeReserveConfiguration(data) {
|
|
49
|
-
const ltv =
|
|
50
|
-
const liquidationThreshold =
|
|
51
|
-
const liquidationBonus =
|
|
52
|
-
const decimals =
|
|
58
|
+
const ltv = getBits(data, 0n, 15n);
|
|
59
|
+
const liquidationThreshold = getBits(data, 16n, 31n);
|
|
60
|
+
const liquidationBonus = getBits(data, 32n, 47n);
|
|
61
|
+
const decimals = getBits(data, 48n, 55n);
|
|
53
62
|
const active = getBits(data, 56n, 56n);
|
|
54
63
|
const frozen = getBits(data, 57n, 57n);
|
|
55
64
|
const borrowingEnabled = getBits(data, 58n, 58n);
|
|
@@ -61,26 +70,25 @@ function decodeReserveConfiguration(data) {
|
|
|
61
70
|
const borrowCap = getBits(data, 80n, 115n);
|
|
62
71
|
const supplyCap = getBits(data, 116n, 151n);
|
|
63
72
|
const liquidationProtocolFee = Number(getBits(data, 152n, 167n));
|
|
64
|
-
const unbackedMintCap = getBits(data, 176n, 211n);
|
|
65
73
|
const debtCeiling = getBits(data, 212n, 251n);
|
|
66
74
|
const virtualAccountingEnabled = getBits(data, 252n, 252n);
|
|
67
75
|
return {
|
|
68
|
-
ltv,
|
|
69
|
-
liquidationThreshold,
|
|
70
|
-
liquidationBonus,
|
|
71
|
-
decimals,
|
|
76
|
+
ltv: Number(ltv),
|
|
77
|
+
liquidationThreshold: Number(liquidationThreshold),
|
|
78
|
+
liquidationBonus: Number(liquidationBonus),
|
|
79
|
+
decimals: Number(decimals),
|
|
72
80
|
active: !!active,
|
|
73
81
|
frozen: !!frozen,
|
|
74
82
|
borrowingEnabled: !!borrowingEnabled,
|
|
75
83
|
// stableRateBorrowingEnabled: !!stableRateBorrowingEnabled,
|
|
76
84
|
paused: !!paused,
|
|
77
85
|
borrowingInIsolation: !!borrowingInIsolation,
|
|
78
|
-
reserveFactor,
|
|
86
|
+
reserveFactor: Number(reserveFactor),
|
|
79
87
|
borrowCap,
|
|
80
88
|
supplyCap,
|
|
81
|
-
liquidationProtocolFee,
|
|
89
|
+
liquidationProtocolFee: Number(liquidationProtocolFee),
|
|
82
90
|
// eModeCategory,
|
|
83
|
-
unbackedMintCap,
|
|
91
|
+
// unbackedMintCap,
|
|
84
92
|
debtCeiling,
|
|
85
93
|
siloedBorrowingEnabled: !!siloedBorrowingEnabled,
|
|
86
94
|
flashloaningEnabled: !!flashloaningEnabled,
|
|
@@ -16214,7 +16222,84 @@ async function getReserveConfigurations(client, pool, reserves) {
|
|
|
16214
16222
|
};
|
|
16215
16223
|
}
|
|
16216
16224
|
|
|
16217
|
-
//
|
|
16225
|
+
// src/aave/pool/configurations.ts
|
|
16226
|
+
import { readContract as readContract2 } from "viem/actions";
|
|
16227
|
+
async function getCompleteReserveConfiguration(client, poolAddress, reserve) {
|
|
16228
|
+
const [
|
|
16229
|
+
reserveData,
|
|
16230
|
+
deficit,
|
|
16231
|
+
virtualUnderlyingBalance,
|
|
16232
|
+
liquidationGracePeriod
|
|
16233
|
+
] = await Promise.all([
|
|
16234
|
+
readContract2(client, {
|
|
16235
|
+
address: poolAddress,
|
|
16236
|
+
abi: IPool_ABI,
|
|
16237
|
+
functionName: "getReserveData",
|
|
16238
|
+
args: [reserve]
|
|
16239
|
+
}),
|
|
16240
|
+
readContract2(client, {
|
|
16241
|
+
address: poolAddress,
|
|
16242
|
+
abi: IPool_ABI,
|
|
16243
|
+
functionName: "getReserveDeficit",
|
|
16244
|
+
args: [reserve]
|
|
16245
|
+
}),
|
|
16246
|
+
readContract2(client, {
|
|
16247
|
+
address: poolAddress,
|
|
16248
|
+
abi: IPool_ABI,
|
|
16249
|
+
functionName: "getVirtualUnderlyingBalance",
|
|
16250
|
+
args: [reserve]
|
|
16251
|
+
}),
|
|
16252
|
+
readContract2(client, {
|
|
16253
|
+
address: poolAddress,
|
|
16254
|
+
abi: IPool_ABI,
|
|
16255
|
+
functionName: "getLiquidationGracePeriod",
|
|
16256
|
+
args: [reserve]
|
|
16257
|
+
})
|
|
16258
|
+
]);
|
|
16259
|
+
const [
|
|
16260
|
+
scaledATokenTotalSupply,
|
|
16261
|
+
scaledVTokenTotalSupply,
|
|
16262
|
+
availableLiquidity,
|
|
16263
|
+
irParams
|
|
16264
|
+
] = await Promise.all([
|
|
16265
|
+
readContract2(client, {
|
|
16266
|
+
address: reserveData.aTokenAddress,
|
|
16267
|
+
abi: IAToken_ABI,
|
|
16268
|
+
functionName: "scaledTotalSupply"
|
|
16269
|
+
}),
|
|
16270
|
+
readContract2(client, {
|
|
16271
|
+
address: reserveData.variableDebtTokenAddress,
|
|
16272
|
+
abi: IAToken_ABI,
|
|
16273
|
+
functionName: "scaledTotalSupply"
|
|
16274
|
+
}),
|
|
16275
|
+
readContract2(client, {
|
|
16276
|
+
address: reserve,
|
|
16277
|
+
abi: IAToken_ABI,
|
|
16278
|
+
functionName: "balanceOf",
|
|
16279
|
+
args: [reserveData.aTokenAddress]
|
|
16280
|
+
}),
|
|
16281
|
+
readContract2(client, {
|
|
16282
|
+
address: reserveData.interestRateStrategyAddress,
|
|
16283
|
+
abi: IDefaultInterestRateStrategyV2_ABI,
|
|
16284
|
+
functionName: "getInterestRateDataBps",
|
|
16285
|
+
args: [reserve]
|
|
16286
|
+
})
|
|
16287
|
+
]);
|
|
16288
|
+
const config = decodeReserveConfiguration(reserveData.configuration.data);
|
|
16289
|
+
return {
|
|
16290
|
+
...reserveData,
|
|
16291
|
+
...config,
|
|
16292
|
+
deficit,
|
|
16293
|
+
virtualUnderlyingBalance,
|
|
16294
|
+
liquidationGracePeriod,
|
|
16295
|
+
scaledATokenTotalSupply,
|
|
16296
|
+
scaledVTokenTotalSupply,
|
|
16297
|
+
availableLiquidity,
|
|
16298
|
+
...irParams
|
|
16299
|
+
};
|
|
16300
|
+
}
|
|
16301
|
+
|
|
16302
|
+
// ../../node_modules/.pnpm/@bgd-labs+aave-address-book@4.31.0_viem@2.41.2_typescript@5.8.3_zod@3.24.2_/node_modules/@bgd-labs/aave-address-book/dist/abis/IPayloadsControllerCore.mjs
|
|
16218
16303
|
var IPayloadsControllerCore_ABI = [
|
|
16219
16304
|
{
|
|
16220
16305
|
type: "function",
|
|
@@ -16719,7 +16804,7 @@ var IPayloadsControllerCore_ABI = [
|
|
|
16719
16804
|
}
|
|
16720
16805
|
];
|
|
16721
16806
|
|
|
16722
|
-
// ../../node_modules/.pnpm/@bgd-labs+aave-address-book@4.31.0_viem@2.
|
|
16807
|
+
// ../../node_modules/.pnpm/@bgd-labs+aave-address-book@4.31.0_viem@2.41.2_typescript@5.8.3_zod@3.24.2_/node_modules/@bgd-labs/aave-address-book/dist/abis/IGovernanceCore.mjs
|
|
16723
16808
|
var IGovernanceCore_ABI = [
|
|
16724
16809
|
{
|
|
16725
16810
|
type: "function",
|
|
@@ -17752,7 +17837,7 @@ var IGovernanceCore_ABI = [
|
|
|
17752
17837
|
}
|
|
17753
17838
|
];
|
|
17754
17839
|
|
|
17755
|
-
// ../../node_modules/.pnpm/@bgd-labs+aave-address-book@4.31.0_viem@2.
|
|
17840
|
+
// ../../node_modules/.pnpm/@bgd-labs+aave-address-book@4.31.0_viem@2.41.2_typescript@5.8.3_zod@3.24.2_/node_modules/@bgd-labs/aave-address-book/dist/abis/IPool.mjs
|
|
17756
17841
|
var IPool_ABI2 = [
|
|
17757
17842
|
{
|
|
17758
17843
|
type: "function",
|
|
@@ -19795,6 +19880,17 @@ import {
|
|
|
19795
19880
|
toHex,
|
|
19796
19881
|
trim
|
|
19797
19882
|
} from "viem";
|
|
19883
|
+
function getSolidityStorageSlotBytes(mappingSlot, key) {
|
|
19884
|
+
const slot = pad(mappingSlot, { size: 32 });
|
|
19885
|
+
return trim(
|
|
19886
|
+
keccak256(
|
|
19887
|
+
encodeAbiParameters(parseAbiParameters("bytes32, uint256"), [
|
|
19888
|
+
key,
|
|
19889
|
+
BigInt(slot)
|
|
19890
|
+
])
|
|
19891
|
+
)
|
|
19892
|
+
);
|
|
19893
|
+
}
|
|
19798
19894
|
function getSolidityStorageSlotUint(mappingSlot, key) {
|
|
19799
19895
|
return keccak256(
|
|
19800
19896
|
encodeAbiParameters(parseAbiParameters("uint256, uint256"), [
|
|
@@ -19803,6 +19899,39 @@ function getSolidityStorageSlotUint(mappingSlot, key) {
|
|
|
19803
19899
|
])
|
|
19804
19900
|
);
|
|
19805
19901
|
}
|
|
19902
|
+
function getSolidityStorageSlotAddress(mappingSlot, key) {
|
|
19903
|
+
return keccak256(
|
|
19904
|
+
encodeAbiParameters(parseAbiParameters("address, uint256"), [
|
|
19905
|
+
key,
|
|
19906
|
+
BigInt(mappingSlot)
|
|
19907
|
+
])
|
|
19908
|
+
);
|
|
19909
|
+
}
|
|
19910
|
+
function getDynamicArraySlot(baseSlot, arrayIndex, itemSize) {
|
|
19911
|
+
return pad(
|
|
19912
|
+
toHex(
|
|
19913
|
+
fromHex(
|
|
19914
|
+
keccak256(
|
|
19915
|
+
encodeAbiParameters(parseAbiParameters("uint256"), [baseSlot])
|
|
19916
|
+
),
|
|
19917
|
+
"bigint"
|
|
19918
|
+
) + BigInt(arrayIndex * itemSize)
|
|
19919
|
+
),
|
|
19920
|
+
{ size: 32 }
|
|
19921
|
+
);
|
|
19922
|
+
}
|
|
19923
|
+
function getBytesValue(value) {
|
|
19924
|
+
const bytesString = toBytes(value);
|
|
19925
|
+
if (bytesString.length > 31)
|
|
19926
|
+
throw new Error("Error: strings > 31 bytes are not implemented");
|
|
19927
|
+
return concat([
|
|
19928
|
+
toHex(pad(bytesString, { size: 31, dir: "right" })),
|
|
19929
|
+
toHex(bytesString.length * 2, { size: 1 })
|
|
19930
|
+
]);
|
|
19931
|
+
}
|
|
19932
|
+
function bytes32ToAddress(bytes32) {
|
|
19933
|
+
return getAddress(slice(bytes32, 12, 32));
|
|
19934
|
+
}
|
|
19806
19935
|
|
|
19807
19936
|
// src/aave/governance/payloads-controller.ts
|
|
19808
19937
|
import { getBlock } from "viem/actions";
|
|
@@ -20996,7 +21125,8 @@ async function getXLayerSourceCode(params) {
|
|
|
20996
21125
|
import {
|
|
20997
21126
|
createTestClient,
|
|
20998
21127
|
createWalletClient,
|
|
20999
|
-
http
|
|
21128
|
+
http,
|
|
21129
|
+
publicActions
|
|
21000
21130
|
} from "viem";
|
|
21001
21131
|
|
|
21002
21132
|
// src/ecosystem/chainIds.ts
|
|
@@ -21225,7 +21355,7 @@ async function tenderly_createVnet({
|
|
|
21225
21355
|
},
|
|
21226
21356
|
mode: "tenderly",
|
|
21227
21357
|
transport: http(rpc.url, { timeout: 2e5 })
|
|
21228
|
-
}),
|
|
21358
|
+
}).extend(publicActions),
|
|
21229
21359
|
walletClient: createWalletClient({
|
|
21230
21360
|
chain: {
|
|
21231
21361
|
...ChainList[baseChainId],
|
|
@@ -21361,7 +21491,7 @@ var EVENT_DB = [];
|
|
|
21361
21491
|
// src/ecosystem/rpcs.ts
|
|
21362
21492
|
import {
|
|
21363
21493
|
http as http2,
|
|
21364
|
-
|
|
21494
|
+
createPublicClient
|
|
21365
21495
|
} from "viem";
|
|
21366
21496
|
|
|
21367
21497
|
// src/ecosystem/generated/alchemyNetworkMap.ts
|
|
@@ -21902,7 +22032,7 @@ function getClient(chainId, {
|
|
|
21902
22032
|
} = {}) {
|
|
21903
22033
|
if (!clientCache[chainId] || forceRebuildClient) {
|
|
21904
22034
|
const rpcURL = getRPCUrl(chainId, providerConfig);
|
|
21905
|
-
clientCache[chainId] =
|
|
22035
|
+
clientCache[chainId] = createPublicClient({
|
|
21906
22036
|
chain: ChainList[chainId],
|
|
21907
22037
|
transport: http2(rpcURL, httpConfig),
|
|
21908
22038
|
...clientConfig
|
|
@@ -38842,7 +38972,7 @@ async function getVerificationStatus({
|
|
|
38842
38972
|
|
|
38843
38973
|
// src/seatbelt/state.ts
|
|
38844
38974
|
import { getAddress as getAddress3, zeroAddress as zeroAddress2 } from "viem";
|
|
38845
|
-
import { readContract as
|
|
38975
|
+
import { readContract as readContract3 } from "viem/actions";
|
|
38846
38976
|
function isChangeOfType(change, name) {
|
|
38847
38977
|
return change.name === name;
|
|
38848
38978
|
}
|
|
@@ -39051,7 +39181,7 @@ async function enhanceStateDiff(client, diff) {
|
|
|
39051
39181
|
if (isChangeOfType(change, "_reserves")) {
|
|
39052
39182
|
let method = decodeReserveConfigurationV2;
|
|
39053
39183
|
try {
|
|
39054
|
-
await
|
|
39184
|
+
await readContract3(client, {
|
|
39055
39185
|
abi: IPool_ABI,
|
|
39056
39186
|
functionName: "getUserEMode",
|
|
39057
39187
|
args: [zeroAddress2],
|
|
@@ -39395,6 +39525,7 @@ export {
|
|
|
39395
39525
|
assetToBase,
|
|
39396
39526
|
bitmapToIndexes,
|
|
39397
39527
|
blockscoutExplorers,
|
|
39528
|
+
bytes32ToAddress,
|
|
39398
39529
|
calculateAvailableBorrowsMarketReferenceCurrency,
|
|
39399
39530
|
calculateCompoundedInterest,
|
|
39400
39531
|
calculateHealthFactor,
|
|
@@ -39421,10 +39552,13 @@ export {
|
|
|
39421
39552
|
genericIndexer,
|
|
39422
39553
|
getAlchemyRPC,
|
|
39423
39554
|
getBits,
|
|
39555
|
+
getBytesValue,
|
|
39424
39556
|
getClient,
|
|
39557
|
+
getCompleteReserveConfiguration,
|
|
39425
39558
|
getContractDeploymentBlock,
|
|
39426
39559
|
getCurrentDebtBalance,
|
|
39427
39560
|
getCurrentLiquidityBalance,
|
|
39561
|
+
getDynamicArraySlot,
|
|
39428
39562
|
getExplicitRPC,
|
|
39429
39563
|
getExplorer,
|
|
39430
39564
|
getGovernance,
|
|
@@ -39446,6 +39580,9 @@ export {
|
|
|
39446
39580
|
getRPCUrl,
|
|
39447
39581
|
getReserveConfigurations,
|
|
39448
39582
|
getReserveTokens,
|
|
39583
|
+
getSolidityStorageSlotAddress,
|
|
39584
|
+
getSolidityStorageSlotBytes,
|
|
39585
|
+
getSolidityStorageSlotUint,
|
|
39449
39586
|
getSourceCode,
|
|
39450
39587
|
getTenderlyRpc,
|
|
39451
39588
|
getVerificationStatus,
|