@pancakeswap/multicall 3.7.4 → 3.8.0
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/README.md +1 -1
- package/dist/constants/blockConflictTolerance.d.ts.map +1 -1
- package/dist/constants/contracts.d.ts.map +1 -1
- package/dist/constants/gasLimit.d.ts.map +1 -1
- package/dist/index.js +28 -12
- package/dist/index.mjs +28 -12
- package/dist/multicall.d.ts +11 -1
- package/dist/multicall.d.ts.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ const calls: MulticallRequestWithGas[] = [
|
|
|
31
31
|
},
|
|
32
32
|
]
|
|
33
33
|
|
|
34
|
-
const { results, blockNumber } = await multicallByGasLimit(calls, {
|
|
34
|
+
const { results, blockNumber, chunkCount, chunkSizes } = await multicallByGasLimit(calls, {
|
|
35
35
|
chainId: ChainId.BSC,
|
|
36
36
|
|
|
37
37
|
// Rpc client. Please refer to `PublicClient` from viem
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockConflictTolerance.d.ts","sourceRoot":"","sources":["../../src/constants/blockConflictTolerance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAEjD,eAAO,MAAM,wBAAwB,EAAE;KAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"blockConflictTolerance.d.ts","sourceRoot":"","sources":["../../src/constants/blockConflictTolerance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAEjD,eAAO,MAAM,wBAAwB,EAAE;KAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM;CAoBjE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/constants/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,eAAO,MAAM,iBAAiB,EAAE;KAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/constants/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,eAAO,MAAM,iBAAiB,EAAE;KAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO;CAoB3D,CAAA;AAED,eAAO,MAAM,kBAAkB,+CAA+C,CAAA;AAE9E,eAAO,MAAM,oBAAoB,EAAE;KAChC,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO;CAiB3B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gasLimit.d.ts","sourceRoot":"","sources":["../../src/constants/gasLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C,eAAO,MAAM,0BAA0B,EAAE;KAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"gasLimit.d.ts","sourceRoot":"","sources":["../../src/constants/gasLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,eAAO,MAAM,iBAAiB,aAAa,CAAA;AAE3C,eAAO,MAAM,0BAA0B,EAAE;KAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM;CAMnE,CAAA;AAED,eAAO,MAAM,kBAAkB,WAAW,CAAA;AAE1C,eAAO,MAAM,2BAA2B,EAAE;KAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM;CAEpE,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -12,15 +12,14 @@ var MULTICALL_ADDRESS = {
|
|
|
12
12
|
[chains.ChainId.BSC]: "0x39eecaE833c944ebb94942Fa44CaE46e87a8Da17",
|
|
13
13
|
[chains.ChainId.ETHEREUM]: "0xC0916D7E360c31D5F6D0c497E6a36B7B0E80e3cf",
|
|
14
14
|
[chains.ChainId.ARBITRUM_ONE]: "0xbFfE39cDD04f0183e0493c1Deb6E275c5cf84AdF",
|
|
15
|
-
[chains.ChainId.POLYGON_ZKEVM]: "0xe05b539447B17630Cb087473F6b50E5c5f73FDeb",
|
|
16
15
|
[chains.ChainId.LINEA]: "0x6E6B30d65D605DAa4CaC65eB270100Ecca36b140",
|
|
17
16
|
[chains.ChainId.BASE]: "0x3EFaAb8D7A631cfF5ccF5f149d1Bbb3B5bfda2C0",
|
|
18
17
|
[chains.ChainId.OPBNB]: "0xeF1511D29fB37cb87E33339EeC9BE13AB46E3b50",
|
|
18
|
+
[chains.ChainId.MONAD_MAINNET]: "0x3095eC7D29b588283baB3184fae4dECd54D5D811",
|
|
19
19
|
// Testnets
|
|
20
20
|
[chains.ChainId.BSC_TESTNET]: "0xeeF6ff30cF5D5b8aBA0DE16A01d17A0697a275b5",
|
|
21
21
|
[chains.ChainId.GOERLI]: "0xD55CAFAB2Ffa1139Be46bc5C0b8259c620050dFC",
|
|
22
22
|
[chains.ChainId.ARBITRUM_GOERLI]: "0xe12a5c707Fb528acbE6117b20AF1f7c20b0A8077",
|
|
23
|
-
[chains.ChainId.POLYGON_ZKEVM_TESTNET]: "0x236e713bFF45adb30e25D1c29A887aBCb0Ea7E21",
|
|
24
23
|
[chains.ChainId.ZKSYNC_TESTNET]: "0x8A23CB45E5F4d5a1b2DB673663Ea2aAedc48acff",
|
|
25
24
|
[chains.ChainId.LINEA_TESTNET]: "0x990010b6DBA3e7faa025790bC0433A9f690c65F3",
|
|
26
25
|
[chains.ChainId.BASE_TESTNET]: "0x6F7f93D929d6FBaF16c245e42846EF21aee23437",
|
|
@@ -38,12 +37,11 @@ var MULTICALL3_ADDRESSES = {
|
|
|
38
37
|
[chains.ChainId.ZKSYNC]: "0xF9cda624FBC7e059355ce98a31693d299FACd963",
|
|
39
38
|
[chains.ChainId.ARBITRUM_ONE]: MULTICALL3_ADDRESS,
|
|
40
39
|
[chains.ChainId.ARBITRUM_GOERLI]: MULTICALL3_ADDRESS,
|
|
41
|
-
[chains.ChainId.POLYGON_ZKEVM]: MULTICALL3_ADDRESS,
|
|
42
|
-
[chains.ChainId.POLYGON_ZKEVM_TESTNET]: MULTICALL3_ADDRESS,
|
|
43
40
|
[chains.ChainId.OPBNB]: MULTICALL3_ADDRESS,
|
|
44
41
|
[chains.ChainId.OPBNB_TESTNET]: MULTICALL3_ADDRESS,
|
|
45
42
|
[chains.ChainId.BASE_TESTNET]: MULTICALL3_ADDRESS,
|
|
46
43
|
[chains.ChainId.SCROLL_SEPOLIA]: MULTICALL3_ADDRESS,
|
|
44
|
+
[chains.ChainId.MONAD_MAINNET]: "0x8553AA1615549A86882151784b329B017aA7c832",
|
|
47
45
|
[chains.ChainId.MONAD_TESTNET]: MULTICALL3_ADDRESS,
|
|
48
46
|
[chains.ChainId.SEPOLIA]: MULTICALL3_ADDRESS
|
|
49
47
|
};
|
|
@@ -52,16 +50,15 @@ var BLOCK_CONFLICT_TOLERANCE = {
|
|
|
52
50
|
[chains.ChainId.BSC]: 12,
|
|
53
51
|
[chains.ChainId.ETHEREUM]: 1,
|
|
54
52
|
[chains.ChainId.ARBITRUM_ONE]: 5,
|
|
55
|
-
[chains.ChainId.POLYGON_ZKEVM]: 1,
|
|
56
53
|
[chains.ChainId.ZKSYNC]: 3,
|
|
57
54
|
[chains.ChainId.LINEA]: 3,
|
|
58
55
|
[chains.ChainId.BASE]: 3,
|
|
59
56
|
[chains.ChainId.OPBNB]: 3,
|
|
57
|
+
[chains.ChainId.MONAD_MAINNET]: 3,
|
|
60
58
|
// Testnets
|
|
61
59
|
[chains.ChainId.BSC_TESTNET]: 12,
|
|
62
60
|
[chains.ChainId.GOERLI]: 1,
|
|
63
61
|
[chains.ChainId.ARBITRUM_GOERLI]: 5,
|
|
64
|
-
[chains.ChainId.POLYGON_ZKEVM_TESTNET]: 1,
|
|
65
62
|
[chains.ChainId.ZKSYNC_TESTNET]: 3,
|
|
66
63
|
[chains.ChainId.LINEA_TESTNET]: 3,
|
|
67
64
|
[chains.ChainId.OPBNB_TESTNET]: 3,
|
|
@@ -73,15 +70,13 @@ var DEFAULT_GAS_LIMIT = 150000000n;
|
|
|
73
70
|
var DEFAULT_GAS_LIMIT_BY_CHAIN = {
|
|
74
71
|
[chains.ChainId.BSC]: 100000000n,
|
|
75
72
|
[chains.ChainId.ZKSYNC]: 500000000n,
|
|
76
|
-
[chains.ChainId.POLYGON_ZKEVM]: 1500000n,
|
|
77
73
|
[chains.ChainId.BASE]: 60000000n,
|
|
78
74
|
[chains.ChainId.OPBNB]: 100000000n,
|
|
79
75
|
[chains.ChainId.OPBNB_TESTNET]: 100000000n
|
|
80
76
|
};
|
|
81
77
|
var DEFAULT_GAS_BUFFER = 3000000n;
|
|
82
78
|
var DEFAULT_GAS_BUFFER_BY_CHAIN = {
|
|
83
|
-
[chains.ChainId.BSC]: DEFAULT_GAS_BUFFER
|
|
84
|
-
[chains.ChainId.POLYGON_ZKEVM]: 0n
|
|
79
|
+
[chains.ChainId.BSC]: DEFAULT_GAS_BUFFER
|
|
85
80
|
};
|
|
86
81
|
|
|
87
82
|
// src/abis/IMulticall.ts
|
|
@@ -420,13 +415,16 @@ async function multicallByGasLimit(calls, {
|
|
|
420
415
|
blockConflictTolerance,
|
|
421
416
|
...rest
|
|
422
417
|
}) {
|
|
418
|
+
const startTime = performance.now();
|
|
423
419
|
const gasLimit = await getGasLimit({
|
|
424
420
|
chainId,
|
|
425
421
|
gasBuffer,
|
|
426
422
|
client,
|
|
427
423
|
...rest
|
|
428
424
|
});
|
|
429
|
-
const
|
|
425
|
+
const chunks = splitCallsIntoChunks(calls, gasLimit);
|
|
426
|
+
const chunkSizes = chunks.map((chunk) => chunk.length);
|
|
427
|
+
const callResult = await callByChunks(chunks, {
|
|
430
428
|
gasBuffer,
|
|
431
429
|
client,
|
|
432
430
|
chainId,
|
|
@@ -435,8 +433,25 @@ async function multicallByGasLimit(calls, {
|
|
|
435
433
|
account,
|
|
436
434
|
blockConflictTolerance
|
|
437
435
|
});
|
|
436
|
+
const resultWithChunks = (result) => {
|
|
437
|
+
const endTime = performance.now();
|
|
438
|
+
return {
|
|
439
|
+
...result,
|
|
440
|
+
chunkCount: chunkSizes.length,
|
|
441
|
+
chunkSizes,
|
|
442
|
+
totalGasUsed: result.results.reduce((acc, { gasUsed }) => acc + gasUsed, 0n),
|
|
443
|
+
maxSingleCallGasUsage: result.results.reduce((max, { gasUsed }) => gasUsed > max ? gasUsed : max, 0n),
|
|
444
|
+
minSingleCallGasUsage: result.results.reduce(
|
|
445
|
+
(min, { gasUsed }) => gasUsed < min ? gasUsed : min,
|
|
446
|
+
BigInt(Number.MAX_SAFE_INTEGER)
|
|
447
|
+
),
|
|
448
|
+
avgGasUsagePerCall: result.results.length ? result.results.reduce((acc, { gasUsed }) => acc + gasUsed, 0n) / BigInt(result.results.length) : 0n,
|
|
449
|
+
gasLimit,
|
|
450
|
+
timeUsage: endTime - startTime
|
|
451
|
+
};
|
|
452
|
+
};
|
|
438
453
|
if (!retryFailedCallsWithGreaterLimit) {
|
|
439
|
-
return callResult;
|
|
454
|
+
return resultWithChunks(callResult);
|
|
440
455
|
}
|
|
441
456
|
const { gasLimitMultiplier: retryGasLimitMultiplier, maxRetry = 2 } = retryFailedCallsWithGreaterLimit;
|
|
442
457
|
let retry = 0;
|
|
@@ -481,7 +496,8 @@ async function multicallByGasLimit(calls, {
|
|
|
481
496
|
blockNumber: retryResult.blockNumber
|
|
482
497
|
});
|
|
483
498
|
}
|
|
484
|
-
|
|
499
|
+
const finalResult = await retryFailedCalls(callResult);
|
|
500
|
+
return resultWithChunks(finalResult);
|
|
485
501
|
}
|
|
486
502
|
function formatCallReturn([blockNumber, results, successIndex]) {
|
|
487
503
|
const lastSuccessIndex = Number(successIndex);
|
package/dist/index.mjs
CHANGED
|
@@ -10,15 +10,14 @@ var MULTICALL_ADDRESS = {
|
|
|
10
10
|
[ChainId.BSC]: "0x39eecaE833c944ebb94942Fa44CaE46e87a8Da17",
|
|
11
11
|
[ChainId.ETHEREUM]: "0xC0916D7E360c31D5F6D0c497E6a36B7B0E80e3cf",
|
|
12
12
|
[ChainId.ARBITRUM_ONE]: "0xbFfE39cDD04f0183e0493c1Deb6E275c5cf84AdF",
|
|
13
|
-
[ChainId.POLYGON_ZKEVM]: "0xe05b539447B17630Cb087473F6b50E5c5f73FDeb",
|
|
14
13
|
[ChainId.LINEA]: "0x6E6B30d65D605DAa4CaC65eB270100Ecca36b140",
|
|
15
14
|
[ChainId.BASE]: "0x3EFaAb8D7A631cfF5ccF5f149d1Bbb3B5bfda2C0",
|
|
16
15
|
[ChainId.OPBNB]: "0xeF1511D29fB37cb87E33339EeC9BE13AB46E3b50",
|
|
16
|
+
[ChainId.MONAD_MAINNET]: "0x3095eC7D29b588283baB3184fae4dECd54D5D811",
|
|
17
17
|
// Testnets
|
|
18
18
|
[ChainId.BSC_TESTNET]: "0xeeF6ff30cF5D5b8aBA0DE16A01d17A0697a275b5",
|
|
19
19
|
[ChainId.GOERLI]: "0xD55CAFAB2Ffa1139Be46bc5C0b8259c620050dFC",
|
|
20
20
|
[ChainId.ARBITRUM_GOERLI]: "0xe12a5c707Fb528acbE6117b20AF1f7c20b0A8077",
|
|
21
|
-
[ChainId.POLYGON_ZKEVM_TESTNET]: "0x236e713bFF45adb30e25D1c29A887aBCb0Ea7E21",
|
|
22
21
|
[ChainId.ZKSYNC_TESTNET]: "0x8A23CB45E5F4d5a1b2DB673663Ea2aAedc48acff",
|
|
23
22
|
[ChainId.LINEA_TESTNET]: "0x990010b6DBA3e7faa025790bC0433A9f690c65F3",
|
|
24
23
|
[ChainId.BASE_TESTNET]: "0x6F7f93D929d6FBaF16c245e42846EF21aee23437",
|
|
@@ -36,12 +35,11 @@ var MULTICALL3_ADDRESSES = {
|
|
|
36
35
|
[ChainId.ZKSYNC]: "0xF9cda624FBC7e059355ce98a31693d299FACd963",
|
|
37
36
|
[ChainId.ARBITRUM_ONE]: MULTICALL3_ADDRESS,
|
|
38
37
|
[ChainId.ARBITRUM_GOERLI]: MULTICALL3_ADDRESS,
|
|
39
|
-
[ChainId.POLYGON_ZKEVM]: MULTICALL3_ADDRESS,
|
|
40
|
-
[ChainId.POLYGON_ZKEVM_TESTNET]: MULTICALL3_ADDRESS,
|
|
41
38
|
[ChainId.OPBNB]: MULTICALL3_ADDRESS,
|
|
42
39
|
[ChainId.OPBNB_TESTNET]: MULTICALL3_ADDRESS,
|
|
43
40
|
[ChainId.BASE_TESTNET]: MULTICALL3_ADDRESS,
|
|
44
41
|
[ChainId.SCROLL_SEPOLIA]: MULTICALL3_ADDRESS,
|
|
42
|
+
[ChainId.MONAD_MAINNET]: "0x8553AA1615549A86882151784b329B017aA7c832",
|
|
45
43
|
[ChainId.MONAD_TESTNET]: MULTICALL3_ADDRESS,
|
|
46
44
|
[ChainId.SEPOLIA]: MULTICALL3_ADDRESS
|
|
47
45
|
};
|
|
@@ -50,16 +48,15 @@ var BLOCK_CONFLICT_TOLERANCE = {
|
|
|
50
48
|
[ChainId.BSC]: 12,
|
|
51
49
|
[ChainId.ETHEREUM]: 1,
|
|
52
50
|
[ChainId.ARBITRUM_ONE]: 5,
|
|
53
|
-
[ChainId.POLYGON_ZKEVM]: 1,
|
|
54
51
|
[ChainId.ZKSYNC]: 3,
|
|
55
52
|
[ChainId.LINEA]: 3,
|
|
56
53
|
[ChainId.BASE]: 3,
|
|
57
54
|
[ChainId.OPBNB]: 3,
|
|
55
|
+
[ChainId.MONAD_MAINNET]: 3,
|
|
58
56
|
// Testnets
|
|
59
57
|
[ChainId.BSC_TESTNET]: 12,
|
|
60
58
|
[ChainId.GOERLI]: 1,
|
|
61
59
|
[ChainId.ARBITRUM_GOERLI]: 5,
|
|
62
|
-
[ChainId.POLYGON_ZKEVM_TESTNET]: 1,
|
|
63
60
|
[ChainId.ZKSYNC_TESTNET]: 3,
|
|
64
61
|
[ChainId.LINEA_TESTNET]: 3,
|
|
65
62
|
[ChainId.OPBNB_TESTNET]: 3,
|
|
@@ -71,15 +68,13 @@ var DEFAULT_GAS_LIMIT = 150000000n;
|
|
|
71
68
|
var DEFAULT_GAS_LIMIT_BY_CHAIN = {
|
|
72
69
|
[ChainId.BSC]: 100000000n,
|
|
73
70
|
[ChainId.ZKSYNC]: 500000000n,
|
|
74
|
-
[ChainId.POLYGON_ZKEVM]: 1500000n,
|
|
75
71
|
[ChainId.BASE]: 60000000n,
|
|
76
72
|
[ChainId.OPBNB]: 100000000n,
|
|
77
73
|
[ChainId.OPBNB_TESTNET]: 100000000n
|
|
78
74
|
};
|
|
79
75
|
var DEFAULT_GAS_BUFFER = 3000000n;
|
|
80
76
|
var DEFAULT_GAS_BUFFER_BY_CHAIN = {
|
|
81
|
-
[ChainId.BSC]: DEFAULT_GAS_BUFFER
|
|
82
|
-
[ChainId.POLYGON_ZKEVM]: 0n
|
|
77
|
+
[ChainId.BSC]: DEFAULT_GAS_BUFFER
|
|
83
78
|
};
|
|
84
79
|
|
|
85
80
|
// src/abis/IMulticall.ts
|
|
@@ -418,13 +413,16 @@ async function multicallByGasLimit(calls, {
|
|
|
418
413
|
blockConflictTolerance,
|
|
419
414
|
...rest
|
|
420
415
|
}) {
|
|
416
|
+
const startTime = performance.now();
|
|
421
417
|
const gasLimit = await getGasLimit({
|
|
422
418
|
chainId,
|
|
423
419
|
gasBuffer,
|
|
424
420
|
client,
|
|
425
421
|
...rest
|
|
426
422
|
});
|
|
427
|
-
const
|
|
423
|
+
const chunks = splitCallsIntoChunks(calls, gasLimit);
|
|
424
|
+
const chunkSizes = chunks.map((chunk) => chunk.length);
|
|
425
|
+
const callResult = await callByChunks(chunks, {
|
|
428
426
|
gasBuffer,
|
|
429
427
|
client,
|
|
430
428
|
chainId,
|
|
@@ -433,8 +431,25 @@ async function multicallByGasLimit(calls, {
|
|
|
433
431
|
account,
|
|
434
432
|
blockConflictTolerance
|
|
435
433
|
});
|
|
434
|
+
const resultWithChunks = (result) => {
|
|
435
|
+
const endTime = performance.now();
|
|
436
|
+
return {
|
|
437
|
+
...result,
|
|
438
|
+
chunkCount: chunkSizes.length,
|
|
439
|
+
chunkSizes,
|
|
440
|
+
totalGasUsed: result.results.reduce((acc, { gasUsed }) => acc + gasUsed, 0n),
|
|
441
|
+
maxSingleCallGasUsage: result.results.reduce((max, { gasUsed }) => gasUsed > max ? gasUsed : max, 0n),
|
|
442
|
+
minSingleCallGasUsage: result.results.reduce(
|
|
443
|
+
(min, { gasUsed }) => gasUsed < min ? gasUsed : min,
|
|
444
|
+
BigInt(Number.MAX_SAFE_INTEGER)
|
|
445
|
+
),
|
|
446
|
+
avgGasUsagePerCall: result.results.length ? result.results.reduce((acc, { gasUsed }) => acc + gasUsed, 0n) / BigInt(result.results.length) : 0n,
|
|
447
|
+
gasLimit,
|
|
448
|
+
timeUsage: endTime - startTime
|
|
449
|
+
};
|
|
450
|
+
};
|
|
436
451
|
if (!retryFailedCallsWithGreaterLimit) {
|
|
437
|
-
return callResult;
|
|
452
|
+
return resultWithChunks(callResult);
|
|
438
453
|
}
|
|
439
454
|
const { gasLimitMultiplier: retryGasLimitMultiplier, maxRetry = 2 } = retryFailedCallsWithGreaterLimit;
|
|
440
455
|
let retry = 0;
|
|
@@ -479,7 +494,8 @@ async function multicallByGasLimit(calls, {
|
|
|
479
494
|
blockNumber: retryResult.blockNumber
|
|
480
495
|
});
|
|
481
496
|
}
|
|
482
|
-
|
|
497
|
+
const finalResult = await retryFailedCalls(callResult);
|
|
498
|
+
return resultWithChunks(finalResult);
|
|
483
499
|
}
|
|
484
500
|
function formatCallReturn([blockNumber, results, successIndex]) {
|
|
485
501
|
const lastSuccessIndex = Number(successIndex);
|
package/dist/multicall.d.ts
CHANGED
|
@@ -9,7 +9,17 @@ export type CallByGasLimitParams = AbortControl & GetGasLimitParams & {
|
|
|
9
9
|
maxRetry?: number;
|
|
10
10
|
} | undefined;
|
|
11
11
|
};
|
|
12
|
-
export
|
|
12
|
+
export type MulticallByGasLimitResult = CallResult & {
|
|
13
|
+
chunkCount: number;
|
|
14
|
+
chunkSizes: number[];
|
|
15
|
+
totalGasUsed: bigint;
|
|
16
|
+
gasLimit: bigint;
|
|
17
|
+
maxSingleCallGasUsage: bigint;
|
|
18
|
+
minSingleCallGasUsage: bigint;
|
|
19
|
+
avgGasUsagePerCall: bigint;
|
|
20
|
+
timeUsage: number;
|
|
21
|
+
};
|
|
22
|
+
export declare function multicallByGasLimit(calls: MulticallRequestWithGas[], { chainId, gasBuffer, client, dropUnexecutedCalls, signal, retryFailedCallsWithGreaterLimit, account, blockConflictTolerance, ...rest }: CallByGasLimitParams): Promise<MulticallByGasLimitResult>;
|
|
13
23
|
export type SingleCallResult = {
|
|
14
24
|
result: string;
|
|
15
25
|
gasUsed: bigint;
|
package/dist/multicall.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,iCAAiC,CAAA;AAK1F,OAAO,EAAE,iBAAiB,EAAoC,MAAM,eAAe,CAAA;AAEnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEjD,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAC7C,iBAAiB,GAAG;IAIlB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAG/B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAG7B,gCAAgC,CAAC,EAC7B;QACE,kBAAkB,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACD,SAAS,CAAA;CACd,CAAA;AAEH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,uBAAuB,EAAE,EAChC,EACE,OAAO,EACP,SAAwC,EACxC,MAAM,EACN,mBAAmB,EACnB,MAAM,EACN,gCAAgC,EAChC,OAAO,EACP,sBAAsB,EACtB,GAAG,IAAI,EACR,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,iCAAiC,CAAA;AAK1F,OAAO,EAAE,iBAAiB,EAAoC,MAAM,eAAe,CAAA;AAEnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEjD,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAC7C,iBAAiB,GAAG;IAIlB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAG/B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAG7B,gCAAgC,CAAC,EAC7B;QACE,kBAAkB,EAAE,MAAM,CAAA;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACD,SAAS,CAAA;CACd,CAAA;AAEH,MAAM,MAAM,yBAAyB,GAAG,UAAU,GAAG;IACnD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,qBAAqB,EAAE,MAAM,CAAA;IAC7B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,uBAAuB,EAAE,EAChC,EACE,OAAO,EACP,SAAwC,EACxC,MAAM,EACN,mBAAmB,EACnB,MAAM,EACN,gCAAgC,EAChC,OAAO,EACP,sBAAsB,EACtB,GAAG,IAAI,EACR,EAAE,oBAAoB,GACtB,OAAO,CAAC,yBAAyB,CAAC,CA4FpC;AAOD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAE3B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pancakeswap/multicall",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
10
10
|
"module": "dist/index.mjs",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"viem": "2.
|
|
13
|
-
"@pancakeswap/chains": "0.
|
|
14
|
-
"@pancakeswap/sdk": "5.
|
|
12
|
+
"viem": "2.37.13",
|
|
13
|
+
"@pancakeswap/chains": "0.8.0",
|
|
14
|
+
"@pancakeswap/sdk": "5.9.0"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"tsup": "^6.7.0",
|
|
18
18
|
"@pancakeswap/tsconfig": "0.0.0",
|
|
19
|
-
"@pancakeswap/utils": "8.0.
|
|
19
|
+
"@pancakeswap/utils": "8.0.2"
|
|
20
20
|
},
|
|
21
21
|
"exports": {
|
|
22
22
|
"./package.json": "./package.json",
|