@pancakeswap/multicall 3.6.2 → 3.6.4

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,5 +1,5 @@
1
- import { BigintIsh } from '@pancakeswap/sdk';
2
1
  import { ChainId } from '@pancakeswap/chains';
2
+ import { BigintIsh } from '@pancakeswap/sdk';
3
3
  import { PublicClient } from 'viem';
4
4
  export type GetGasLimitParams = {
5
5
  chainId: ChainId;
@@ -7,6 +7,7 @@ export type GetGasLimitParams = {
7
7
  gasLimit?: BigintIsh;
8
8
  maxGasLimit?: BigintIsh;
9
9
  gasBuffer?: BigintIsh;
10
+ account?: `0x${string}`;
10
11
  };
11
12
  export declare function getDefaultGasLimit(chainId?: ChainId): bigint;
12
13
  export declare function getDefaultGasBuffer(chainId?: ChainId): bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"getGasLimit.d.ts","sourceRoot":"","sources":["../src/getGasLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAUnC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,YAAY,CAAA;IAGrB,QAAQ,CAAC,EAAE,SAAS,CAAA;IAGpB,WAAW,CAAC,EAAE,SAAS,CAAA;IAEvB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,UAGnD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,OAAO,UAGpD;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAA;AAEpF,wBAAsB,kBAAkB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,wBAAwB,mBAIrF;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,gBAA8C,EAC3D,SAAS,EAAE,cAA6C,EACxD,MAAM,GACP,EAAE,iBAAiB,mBAQnB"}
1
+ {"version":3,"file":"getGasLimit.d.ts","sourceRoot":"","sources":["../src/getGasLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAUnC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,YAAY,CAAA;IAGrB,QAAQ,CAAC,EAAE,SAAS,CAAA;IAGpB,WAAW,CAAC,EAAE,SAAS,CAAA;IAEvB,SAAS,CAAC,EAAE,SAAS,CAAA;IAGrB,OAAO,CAAC,EAAE,KAAK,MAAM,EAAE,CAAA;CACxB,CAAA;AAED,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,UAGnD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,OAAO,UAGpD;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAA;AAEpF,wBAAsB,kBAAkB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,wBAAwB,mBAIrF;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,QAAQ,EAAE,aAAa,EACvB,WAAW,EAAE,gBAA8C,EAC3D,SAAS,EAAE,cAA6C,EACxD,MAAM,GACP,EAAE,iBAAiB,mBAQnB"}
package/dist/index.js CHANGED
@@ -386,47 +386,6 @@ function abortInvariant(signal, message) {
386
386
  function isViemAbortError(e) {
387
387
  return e instanceof viem.BaseError && e.walk((err) => err instanceof viem.TimeoutError) instanceof viem.TimeoutError;
388
388
  }
389
- var stats = {};
390
- var statsCalls = [];
391
- var uniqTargets = /* @__PURE__ */ new Set();
392
- var last = Date.now();
393
- function logStatsInDev(calls, windowMs = 5e3) {
394
- if (process.env.NODE_ENV !== "development") {
395
- return;
396
- }
397
- statsCalls.push({
398
- timestamp: Date.now(),
399
- callNumber: calls.length,
400
- targets: [...new Set(calls.map((call2) => call2.target))]
401
- });
402
- statsCalls = statsCalls.filter((call2) => call2.timestamp >= Date.now() - windowMs);
403
- const now = Date.now();
404
- for (const call2 of calls) {
405
- const { target } = call2;
406
- if (!uniqTargets.has(target)) {
407
- console.log("target", call2.target);
408
- uniqTargets.add(target);
409
- }
410
- const h = viem.keccak256(`0x${target}${call2.callData}`);
411
- if (!stats[target]) {
412
- stats[target] = { events: [], total: 0, uniq: 0 };
413
- }
414
- stats[target].events.push({ timestamp: now, hash: h });
415
- }
416
- const cutoff = now - windowMs;
417
- for (const [target, stat] of Object.entries(stats)) {
418
- stat.events = stat.events.filter((e) => e.timestamp >= cutoff);
419
- stat.total = stat.events.length;
420
- const uniqHashes = new Set(stat.events.map((e) => e.hash));
421
- stat.uniq = uniqHashes.size;
422
- }
423
- const elapsed = Date.now() - last;
424
- if (elapsed > 5e3) {
425
- last = Date.now();
426
- console.log(`Sliding call stats`, stats);
427
- console.log(`history calls`, statsCalls);
428
- }
429
- }
430
389
 
431
390
  // src/getBlockConflictTolerance.ts
432
391
  function getBlockConflictTolerance(chainId) {
@@ -441,9 +400,9 @@ async function multicallByGasLimit(calls, {
441
400
  dropUnexecutedCalls,
442
401
  signal,
443
402
  retryFailedCallsWithGreaterLimit,
403
+ account,
444
404
  ...rest
445
405
  }) {
446
- logStatsInDev(calls);
447
406
  const gasLimit = await getGasLimit({
448
407
  chainId,
449
408
  gasBuffer,
@@ -455,7 +414,8 @@ async function multicallByGasLimit(calls, {
455
414
  client,
456
415
  chainId,
457
416
  dropUnexecutedCalls,
458
- signal
417
+ signal,
418
+ account
459
419
  });
460
420
  if (!retryFailedCallsWithGreaterLimit) {
461
421
  return callResult;
@@ -522,7 +482,8 @@ async function call(calls, params) {
522
482
  gasBuffer = getDefaultGasBuffer(chainId),
523
483
  blockConflictTolerance = getBlockConflictTolerance(chainId),
524
484
  dropUnexecutedCalls = false,
525
- signal
485
+ signal,
486
+ account
526
487
  } = params;
527
488
  if (!calls.length) {
528
489
  return {
@@ -533,7 +494,9 @@ async function call(calls, params) {
533
494
  abortInvariant(signal, "Multicall aborted");
534
495
  const contract = getMulticallContract({ chainId, client });
535
496
  try {
536
- const { result } = await contract.simulate.multicallWithGasLimitation([calls, gasBuffer]);
497
+ const { result } = await contract.simulate.multicallWithGasLimitation([calls, gasBuffer], {
498
+ account
499
+ });
537
500
  const { results, lastSuccessIndex, blockNumber } = formatCallReturn(result);
538
501
  if (lastSuccessIndex === calls.length - 1) {
539
502
  return {
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ChainId } from '@pancakeswap/chains';
2
- import { getContract, keccak256, BaseError, TimeoutError } from 'viem';
2
+ import { getContract, BaseError, TimeoutError } from 'viem';
3
3
 
4
4
  // ../utils/toBigInt.ts
5
5
  function toBigInt(num) {
@@ -384,47 +384,6 @@ function abortInvariant(signal, message) {
384
384
  function isViemAbortError(e) {
385
385
  return e instanceof BaseError && e.walk((err) => err instanceof TimeoutError) instanceof TimeoutError;
386
386
  }
387
- var stats = {};
388
- var statsCalls = [];
389
- var uniqTargets = /* @__PURE__ */ new Set();
390
- var last = Date.now();
391
- function logStatsInDev(calls, windowMs = 5e3) {
392
- if (process.env.NODE_ENV !== "development") {
393
- return;
394
- }
395
- statsCalls.push({
396
- timestamp: Date.now(),
397
- callNumber: calls.length,
398
- targets: [...new Set(calls.map((call2) => call2.target))]
399
- });
400
- statsCalls = statsCalls.filter((call2) => call2.timestamp >= Date.now() - windowMs);
401
- const now = Date.now();
402
- for (const call2 of calls) {
403
- const { target } = call2;
404
- if (!uniqTargets.has(target)) {
405
- console.log("target", call2.target);
406
- uniqTargets.add(target);
407
- }
408
- const h = keccak256(`0x${target}${call2.callData}`);
409
- if (!stats[target]) {
410
- stats[target] = { events: [], total: 0, uniq: 0 };
411
- }
412
- stats[target].events.push({ timestamp: now, hash: h });
413
- }
414
- const cutoff = now - windowMs;
415
- for (const [target, stat] of Object.entries(stats)) {
416
- stat.events = stat.events.filter((e) => e.timestamp >= cutoff);
417
- stat.total = stat.events.length;
418
- const uniqHashes = new Set(stat.events.map((e) => e.hash));
419
- stat.uniq = uniqHashes.size;
420
- }
421
- const elapsed = Date.now() - last;
422
- if (elapsed > 5e3) {
423
- last = Date.now();
424
- console.log(`Sliding call stats`, stats);
425
- console.log(`history calls`, statsCalls);
426
- }
427
- }
428
387
 
429
388
  // src/getBlockConflictTolerance.ts
430
389
  function getBlockConflictTolerance(chainId) {
@@ -439,9 +398,9 @@ async function multicallByGasLimit(calls, {
439
398
  dropUnexecutedCalls,
440
399
  signal,
441
400
  retryFailedCallsWithGreaterLimit,
401
+ account,
442
402
  ...rest
443
403
  }) {
444
- logStatsInDev(calls);
445
404
  const gasLimit = await getGasLimit({
446
405
  chainId,
447
406
  gasBuffer,
@@ -453,7 +412,8 @@ async function multicallByGasLimit(calls, {
453
412
  client,
454
413
  chainId,
455
414
  dropUnexecutedCalls,
456
- signal
415
+ signal,
416
+ account
457
417
  });
458
418
  if (!retryFailedCallsWithGreaterLimit) {
459
419
  return callResult;
@@ -520,7 +480,8 @@ async function call(calls, params) {
520
480
  gasBuffer = getDefaultGasBuffer(chainId),
521
481
  blockConflictTolerance = getBlockConflictTolerance(chainId),
522
482
  dropUnexecutedCalls = false,
523
- signal
483
+ signal,
484
+ account
524
485
  } = params;
525
486
  if (!calls.length) {
526
487
  return {
@@ -531,7 +492,9 @@ async function call(calls, params) {
531
492
  abortInvariant(signal, "Multicall aborted");
532
493
  const contract = getMulticallContract({ chainId, client });
533
494
  try {
534
- const { result } = await contract.simulate.multicallWithGasLimitation([calls, gasBuffer]);
495
+ const { result } = await contract.simulate.multicallWithGasLimitation([calls, gasBuffer], {
496
+ account
497
+ });
535
498
  const { results, lastSuccessIndex, blockNumber } = formatCallReturn(result);
536
499
  if (lastSuccessIndex === calls.length - 1) {
537
500
  return {
@@ -9,7 +9,7 @@ export type CallByGasLimitParams = AbortControl & GetGasLimitParams & {
9
9
  maxRetry?: number;
10
10
  } | undefined;
11
11
  };
12
- export declare function multicallByGasLimit(calls: MulticallRequestWithGas[], { chainId, gasBuffer, client, dropUnexecutedCalls, signal, retryFailedCallsWithGreaterLimit, ...rest }: CallByGasLimitParams): Promise<CallResult>;
12
+ export declare function multicallByGasLimit(calls: MulticallRequestWithGas[], { chainId, gasBuffer, client, dropUnexecutedCalls, signal, retryFailedCallsWithGreaterLimit, account, ...rest }: CallByGasLimitParams): Promise<CallResult>;
13
13
  export type SingleCallResult = {
14
14
  result: string;
15
15
  gasUsed: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"multicall.d.ts","sourceRoot":"","sources":["../src/multicall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,MAAM,iCAAiC,CAAA;AAM1F,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,GAAG,IAAI,EACR,EAAE,oBAAoB,uBAgExB;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"}
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,GAAG,IAAI,EACR,EAAE,oBAAoB,uBAgExB;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.6.2",
3
+ "version": "3.6.4",
4
4
  "sideEffects": false,
5
5
  "files": [
6
6
  "dist"
@@ -10,13 +10,13 @@
10
10
  "module": "dist/index.mjs",
11
11
  "dependencies": {
12
12
  "viem": "^2.22.23",
13
- "@pancakeswap/chains": "0.5.1",
14
- "@pancakeswap/sdk": "5.8.13"
13
+ "@pancakeswap/chains": "0.5.2",
14
+ "@pancakeswap/sdk": "5.8.14"
15
15
  },
16
16
  "devDependencies": {
17
17
  "tsup": "^6.7.0",
18
18
  "@pancakeswap/tsconfig": "0.0.0",
19
- "@pancakeswap/utils": "6.1.0"
19
+ "@pancakeswap/utils": "6.1.3"
20
20
  },
21
21
  "exports": {
22
22
  "./package.json": "./package.json",