@w3lib/evm-batch-call 0.4.0 → 0.4.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.2
4
+
5
+ ### 修复
6
+
7
+ - `minBlock`:节点落后但不报错(返回早于 `minBlock` 的区块)时当场换下一个节点;原来会一直在这个节点上重试,直到约 10 秒后报错,从不问已经跟上的节点。区块号校验移到故障切换里做(deployless 拆成多片时每片各自校验,不会混进落后节点的旧数据):跟上的节点直接给出最新状态,落后的节点之后排到后面;所有节点都落后时按区块号重查一次,然后等待最新状态跟上;落后不进入冷却,也不会被误判成 Multicall3 不可用
8
+
9
+ ## 0.4.1
10
+
11
+ ### 修复
12
+
13
+ - 节点返回 `result: null` 等无法解析的结果时(ethers 报 `INVALID_ARGUMENT`,值为 null),换下一个节点、不冷却(调用方传入 undefined 等非法参数仍直接抛出);原来被当成确定性错误直接抛出、不换节点(如 Unichain 官方节点对未来区块返回 null)
14
+ - `eth_call` 返回空数据(`0x`)或无法解码时换下一个节点重试,不冷却:deployless 原来直接报 `BAD_DATA`;Multicall3 原来偶发一次就在整个会话里弃用(在不支持 deployless 的 Oasis Emerald、Aurora 上会导致批量查询全部失败)。现在最多试 2 个节点:2 个节点都返回空数据(或单节点连续 2 次)才判定合约不可用,10 分钟后重新尝试;有节点返回空数据、其余节点出错时退回 deployless
15
+ - `minBlock`:按区块号重查的结果同样校验区块号——有的节点对未来区块不报错、直接返回最新状态(如 HyperEVM),原来会把早于 `minBlock` 的旧状态当成结果
16
+ - 识别更多节点的“区块不存在”报错(Arbitrum 系 `unsupported block number`、X Layer、Mantle、zkSync、Winchain 等),只换节点、不冷却
17
+ - `stallTimeout`:在并发竞争中输给后发节点的慢节点,冷却期内排到健康节点之后;原来慢但不超时的首选节点永不降级,每次查询都多等一个 `stallTimeout`
18
+ - 钱包等对象节点的健康状态按链分开记:钱包在一条链上出错,不再影响它在其他链上的排序
19
+ - 合并请求结束后移除挂在调用方 `signal` 上的监听(长期存在的 signal 发起多次查询时不再累积)
20
+ - `watchBalances`:新订阅的间隔更短时按上次轮询时间计算下一次,不再因重新计时而推迟
21
+ - 导入代币信息缓存时,时间戳只接受有限值,晚于现在的截到现在(原来未来时间、`NaN` / `Infinity` 会让 name / symbol 永不过期)
22
+
3
23
  ## 0.4.0
4
24
 
5
25
  ### 不兼容的改动
package/README.md CHANGED
@@ -83,7 +83,7 @@ await getBalances(user, tokens, { chainId: 56, withBlock: true }) // 每项带 b
83
83
  ```
84
84
 
85
85
  - **`withBlock`**:区块号与数据在同一次 `eth_call` 里读出(Multicall3 的 `getBlockNumber`;deployless 合约里直接取 `block.number`),不多发请求。`balances` / `tokens` / `allowances` 及对应函数都支持
86
- - **`minBlock`**:先按最新状态查并顺带读区块号;节点落后时按 `minBlock` 指定区块重查——落后的节点对未来区块报错,自动换下一个节点(落后不算故障,不进入冷却);所有节点都落后时每秒重试,最多约 10 秒后抛错,传了 `signal` 时取消后立即停止。重查得到的是 `minBlock` 那个区块的状态(已包含刚确认的交易)。只对最新状态的查询生效(指定了 `blockTag` 时忽略)。Tron 节点只能查最新状态,落后时等节点跟上再查。`nativeBalance: 'rpc'` 时主币余额在批量查询实际读取的区块上用 `eth_getBalance` 读取,与代币余额、`blockNumber` 一致
86
+ - **`minBlock`**:先按最新状态查并顺带读区块号,节点落后(结果的区块号早于 `minBlock`)时当场换下一个节点,跟上的节点直接给出最新状态;所有节点都落后时按 `minBlock` 指定区块重查——落后的节点对未来区块报错或返回较旧区块,同样换节点(落后不算故障,不进入冷却);仍然都落后时每秒重试,最多约 10 秒后抛错,传了 `signal` 时取消后立即停止。重查得到的是 `minBlock` 那个区块的状态(已包含刚确认的交易)。只对最新状态的查询生效(指定了 `blockTag` 时忽略)。Tron 节点只能查最新状态,落后时等节点跟上再查。`nativeBalance: 'rpc'` 时主币余额在批量查询实际读取的区块上用 `eth_getBalance` 读取,与代币余额、`blockNumber` 一致
87
87
  - **`watchBalances`**:相同的节点参数 + 钱包 + 代币 + 选项共用一份轮询(多处订阅时取最小的 `interval`),新订阅者立即拿到最近一次的结果;查询失败调用 `onError`,轮询继续;上一次查询没完成时不会重叠发起;最后一个订阅者取消后停止
88
88
 
89
89
  ### 节点参数
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAkC,KAAK,QAAQ,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAA;AAE7G,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AAG3E,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGnE;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAA;AAE1I,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,KAAK,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAItE,eAAO,MAAM,mBAAmB,WAI9B,CAAA;AAoCF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,4BAA4B;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,GAAE,aAAkB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAmBtB;AA6SD,uBAAuB;AACvB,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAkC,KAAK,QAAQ,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAA;AAE7G,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AAI3E,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGnE;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAA;AAE1I,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,KAAK,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAItE,eAAO,MAAM,mBAAmB,WAI9B,CAAA;AAyJF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,4BAA4B;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,GAAE,aAAkB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAmBtB;AAgXD,uBAAuB;AACvB,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
package/dist/aggregate.js CHANGED
@@ -2,6 +2,7 @@ import { AbiCoder, Interface, concat, dataSlice, id, isError } from 'ethers';
2
2
  import { encodeUint256 } from './call.js';
3
3
  import { DEPLOYLESS_MULTICALL3_BYTECODE } from './deployless.js';
4
4
  import { isExecutionError } from './errors.js';
5
+ import { AllNodesFailedError, FallbackRpc, InvalidResultError, NodeBehindError, isBehind } from './fallback.js';
5
6
  import { MULTICALL3_ADDRESS } from './multicall.js';
6
7
  import { isTronChain } from './tron.js';
7
8
  const balanceOfInterface = new Interface(['function balanceOf(address owner) view returns (uint256)']);
@@ -38,7 +39,115 @@ const AGGREGATE3_RESULT_SELECTOR = id('Aggregate3Result((bool,bytes)[])').slice(
38
39
  * 判定为无效的 multicall 地址(无代码 / 不是 Multicall3),按 chainId+address 记在模块级,
39
40
  * 这样业务里每次 new Provider 也只会多试一次。
40
41
  */
41
- const unusableMulticalls = new Set();
42
+ const unusableMulticalls = new Map();
43
+ /** 判定不可用后多久重新尝试合约(节点偶发返回空数据时不至于整个会话都不用 Multicall3) */
44
+ const UNUSABLE_TTL = 10 * 60 * 1000;
45
+ /** 单节点时连续返回空数据 / 无法解码的次数(多节点时由多个节点一致的结果确认,见 aggregateRawChunk) */
46
+ const invalidStrikes = new Map();
47
+ /**
48
+ * eth_call 并解码 aggregate3 的结果:通过 FallbackRpc 时空数据 / 无法解码的结果换下一个节点(解码只做一次,结果复用);
49
+ * 其他 Provider 不支持校验参数,取到结果后自己校验
50
+ */
51
+ async function callAggregate3(provider, tx, requests, atLeast) {
52
+ const decoded = new Map();
53
+ // deployless 结果超过 24KB 时通过 revert Aggregate3Result 带回:同样校验区块号,落后时换成 NodeBehindError(FallbackRpc 换节点)
54
+ const inspectError = (err) => {
55
+ const results = atLeast === undefined ? null : revertedResults(err);
56
+ if (results) {
57
+ assertAtLeast(requests, results, atLeast);
58
+ }
59
+ };
60
+ const accept = (data) => {
61
+ const results = decodeAggregate3Data(data);
62
+ if (!results) {
63
+ return false;
64
+ }
65
+ // minBlock:结果里的区块号早于要求时节点落后,抛 NodeBehindError 让 FallbackRpc 换下一个节点
66
+ if (atLeast !== undefined) {
67
+ assertAtLeast(requests, results, atLeast);
68
+ }
69
+ decoded.set(data, results);
70
+ return true;
71
+ };
72
+ let data;
73
+ if (provider instanceof FallbackRpc) {
74
+ data = await provider.call(tx, { accept, inspectError });
75
+ }
76
+ else {
77
+ // 其他 Provider 不支持校验参数:取到结果后自己校验(同样包括区块号)
78
+ try {
79
+ data = await provider.call(tx);
80
+ }
81
+ catch (err) {
82
+ inspectError(err);
83
+ throw err;
84
+ }
85
+ if (!accept(data)) {
86
+ throw new InvalidResultError(data);
87
+ }
88
+ }
89
+ const results = decoded.get(data) ?? decodeAggregate3Data(data);
90
+ if (!results) {
91
+ throw new InvalidResultError(data);
92
+ }
93
+ return results;
94
+ }
95
+ /** 已解析过的 revert 结果(同一个错误在 inspectError 和 callDeploylessChunk 里各用一次,只解析一次) */
96
+ const revertedCache = new WeakMap();
97
+ /** deployless 通过 revert Aggregate3Result(...) 带回的结果;不是这种 revert、或数据无法解码时为 null(保留原来的错误) */
98
+ function revertedResults(err) {
99
+ const revertData = err?.data;
100
+ if (!isError(err, 'CALL_EXCEPTION') || !revertData?.startsWith(AGGREGATE3_RESULT_SELECTOR)) {
101
+ return null;
102
+ }
103
+ const cached = revertedCache.get(err);
104
+ if (cached !== undefined) {
105
+ return cached;
106
+ }
107
+ let results;
108
+ try {
109
+ results = decodeAggregate3(AbiCoder.defaultAbiCoder().decode([RESULT_TUPLE], dataSlice(revertData, 4))[0]);
110
+ }
111
+ catch {
112
+ results = null;
113
+ }
114
+ revertedCache.set(err, results);
115
+ return results;
116
+ }
117
+ /** ArbSys.arbBlockNumber() 的结果(Arbitrum 系的 L2 区块号);其他链上 0x64 没有代码、返回空数据,为 null */
118
+ function l2BlockOf(result) {
119
+ return result?.success && result.returnData.length === 66 ? BigInt(result.returnData) : null;
120
+ }
121
+ /**
122
+ * minBlock 校验:这次 eth_call 里附带的区块号查询(BLOCK_NUMBER_REQUEST,Arbitrum 上用一起附带的 L2 区块号)早于要求时,
123
+ * 抛 NodeBehindError(FallbackRpc 换下一个节点)。每次 eth_call 都附带了这两条(deployless 切片时每片各自附带)
124
+ */
125
+ function assertAtLeast(requests, results, atLeast) {
126
+ const blockIndex = requests.lastIndexOf(BLOCK_NUMBER_REQUEST);
127
+ if (blockIndex === -1) {
128
+ return;
129
+ }
130
+ const arbIndex = requests.lastIndexOf(ARB_BLOCK_NUMBER_REQUEST);
131
+ assertBlock((arbIndex === -1 ? null : l2BlockOf(results[arbIndex])) ?? blockOf(results[blockIndex]), atLeast);
132
+ }
133
+ /** 区块号不早于 minBlock,否则节点落后(读不到区块号也按落后处理) */
134
+ function assertBlock(block, atLeast) {
135
+ if (block === null || block < atLeast) {
136
+ throw new NodeBehindError(atLeast, block ?? -1n);
137
+ }
138
+ }
139
+ /** aggregate3 返回数据的解码结果;空数据或无法解码时为 null */
140
+ function decodeAggregate3Data(data) {
141
+ if (!data || data === '0x') {
142
+ return null;
143
+ }
144
+ try {
145
+ return decodeAggregate3(multicall3Interface.decodeFunctionResult('aggregate3', data)[0]);
146
+ }
147
+ catch {
148
+ return null;
149
+ }
150
+ }
42
151
  /**
43
152
  * 执行一批请求,结果与 requests 一一对应。
44
153
  * 有 multicall 合约就调合约的 aggregate3,否则(或合约不可用时)走 deployless。
@@ -74,17 +183,51 @@ async function aggregateChunkAtLeast(ctx, requests, overrides) {
74
183
  const minBlock = overrides.minBlock;
75
184
  // Tron 节点只能查最新状态(不支持按区块号查询)
76
185
  const canPinBlock = !isTronChain(ctx.chainId);
186
+ const atLeast = BigInt(minBlock);
187
+ let pinned = false;
77
188
  return retryUntilCaughtUp(overrides, async () => {
78
- const results = await aggregateChunk(ctx, [...requests, BLOCK_NUMBER_REQUEST], overrides);
79
- if ((blockOf(results[results.length - 1]) ?? -1n) >= BigInt(minBlock)) {
80
- return results.slice(0, -1);
189
+ // 区块号校验在 FallbackRpc 里做:落后的节点(结果的区块号早于 minBlock)当场换下一个节点,跟上的节点直接给出最新状态
190
+ try {
191
+ return withoutBlock(await aggregateChunk(ctx, [...requests, BLOCK_NUMBER_REQUEST], overrides, atLeast));
192
+ }
193
+ catch (err) {
194
+ // 有节点落后(其余节点可能因限频、超时等失败)时,按区块号重查一次;之后只等最新状态跟上,避免每秒把所有节点问两遍
195
+ if (!canPinBlock || pinned || !isBehindFailure(err)) {
196
+ throw err;
197
+ }
198
+ }
199
+ // 按区块号重查:落后的节点对未来区块报错或返回较旧区块,同样校验区块号、换节点;仍然都落后时由 retryUntilCaughtUp 稍等重试。
200
+ // 确认节点都落后后不再重查(只等最新状态跟上);因限频、超时等失败时下次照常重查
201
+ try {
202
+ return withoutBlock(await aggregateChunk(ctx, [...requests, BLOCK_NUMBER_REQUEST], { ...overrides, blockTag: minBlock }, atLeast));
81
203
  }
82
- if (canPinBlock) {
83
- return aggregateChunk(ctx, requests, { ...overrides, blockTag: minBlock });
204
+ catch (err) {
205
+ // 所有节点都落后才不再重查;有节点只是限频、超时等失败时下次照常重查
206
+ if (isAllBehind(err)) {
207
+ pinned = true;
208
+ }
209
+ throw err;
84
210
  }
85
- throw new Error(`Node is behind minBlock ${minBlock}`);
86
211
  });
87
212
  }
213
+ /** 去掉附带的区块号查询(区块号已在每次 eth_call 时由 assertAtLeast 校验过) */
214
+ function withoutBlock(results) {
215
+ return results.slice(0, -1);
216
+ }
217
+ /**
218
+ * 是否有节点落后:结果早于 minBlock(NodeBehindError),或对按区块号的查询报“区块不存在”(header not found 等);
219
+ * 多节点时其中有节点是这样(其余可能是限频、超时等)
220
+ */
221
+ function isBehindFailure(err) {
222
+ return isBehindError(err) || (err instanceof AllNodesFailedError && err.errors.some((e) => isBehindError(e.error)));
223
+ }
224
+ /** 所有节点都落后(单节点时就是它落后) */
225
+ function isAllBehind(err) {
226
+ return isBehindError(err) || (err instanceof AllNodesFailedError && err.errors.every((e) => isBehindError(e.error)));
227
+ }
228
+ function isBehindError(err) {
229
+ return err instanceof NodeBehindError || isBehind(err);
230
+ }
88
231
  /** 节点落后时的重试:确定性错误(合约执行结果)直接抛;其余错误每秒重试,最多约 10 秒;signal 取消后停止 */
89
232
  async function retryUntilCaughtUp(overrides, run) {
90
233
  const deadline = Date.now() + MIN_BLOCK_DEADLINE;
@@ -142,6 +285,8 @@ async function aggregateWithRpcBalances(ctx, requests, overrides) {
142
285
  const block = blockOf(results.pop());
143
286
  otherResults = results;
144
287
  const blockTag = block === null ? overrides.blockTag : Number(block);
288
+ // 已知限制:eth_getBalance 不返回区块号,没法校验。读余额的节点如果忽略区块参数、又比给出 blockTag 的节点落后,
289
+ // 主币余额可能比代币余额早几个块(仍不早于 minBlock 的节点才会给出 blockTag 之后的区块)
145
290
  const read = () => Promise.all(owners.map((owner) => ctx.provider.getBalance(owner, blockTag)));
146
291
  // 只有 minBlock 才等待重试(读的区块可能来自比当前节点更新的节点);只要 withBlock 时出错照常抛出
147
292
  balances = await (overrides.minBlock !== undefined ? retryUntilCaughtUp(overrides, read) : read());
@@ -158,13 +303,13 @@ async function aggregateWithRpcBalances(ctx, requests, overrides) {
158
303
  return requests.map((req) => req.ethBalanceOf === undefined ? otherResults[i++] : { success: true, returnData: encodeUint256(balances[j++]) });
159
304
  }
160
305
  /** 执行一批请求;其中有区块号查询时顺带读 Arbitrum 的 L2 区块号,并用它替换(见 ARB_BLOCK_NUMBER_REQUEST) */
161
- async function aggregateChunk(ctx, requests, overrides) {
306
+ async function aggregateChunk(ctx, requests, overrides, atLeast) {
162
307
  if (!requests.some((req) => req.blockNumber)) {
163
- return aggregateRawChunk(ctx, requests, overrides);
308
+ return aggregateRawChunk(ctx, requests, overrides, atLeast);
164
309
  }
165
- const results = await aggregateRawChunk(ctx, [...requests, ARB_BLOCK_NUMBER_REQUEST], overrides);
310
+ const results = await aggregateRawChunk(ctx, [...requests, ARB_BLOCK_NUMBER_REQUEST], overrides, atLeast);
166
311
  const arb = results.pop();
167
- if (arb.success && arb.returnData.length === 66) {
312
+ if (l2BlockOf(arb) !== null) {
168
313
  requests.forEach((req, i) => {
169
314
  if (req.blockNumber) {
170
315
  results[i] = arb;
@@ -173,43 +318,63 @@ async function aggregateChunk(ctx, requests, overrides) {
173
318
  }
174
319
  return results;
175
320
  }
176
- async function aggregateRawChunk(ctx, requests, overrides) {
321
+ async function aggregateRawChunk(ctx, requests, overrides, atLeast) {
177
322
  const multicall = ctx.multicall;
178
323
  if (multicall && isUsable(ctx.chainId, multicall, overrides.blockTag)) {
179
- const results = await callContract(ctx, multicall, requests, overrides);
324
+ const key = cacheKey(ctx.chainId, multicall.address);
325
+ const results = await callContract(ctx, multicall, requests, overrides, atLeast);
180
326
  if (Array.isArray(results)) {
327
+ invalidStrikes.delete(key);
181
328
  return results;
182
329
  }
183
- // 只有“最新状态下地址上没有可用合约”才记缓存。
330
+ // 只有“最新状态下地址上没有可用合约”才记缓存(10 分钟后重新尝试):
331
+ // - 'invalid'(返回空数据 / 无法解码)要确认过才记:多个节点结果一致,或单节点连续 2 次——节点偶发返回一次 0x 不算
184
332
  // - revert 无数据('reverted')有歧义:可能是 out of gas / 节点 gas 上限、子调用失败而钱包丢了 revert 数据,
185
333
  // 这些情况地址本身是好的,只对这一次退回 deployless,不记缓存
186
334
  // - 历史区块查到无代码可能只是那时还没部署,不能推及 latest
187
- if (results === 'invalid' && isLatest(overrides.blockTag)) {
188
- unusableMulticalls.add(cacheKey(ctx.chainId, multicall.address));
335
+ if (results !== 'reverted' && isLatest(overrides.blockTag)) {
336
+ const strikes = (invalidStrikes.get(key) ?? 0) + 1;
337
+ if (results === 'invalid-confirmed' || strikes >= 2) {
338
+ unusableMulticalls.set(key, Date.now() + UNUSABLE_TTL);
339
+ invalidStrikes.delete(key);
340
+ }
341
+ else {
342
+ invalidStrikes.set(key, strikes);
343
+ }
189
344
  }
190
345
  }
191
- return callDeployless(ctx, requests, overrides);
346
+ return callDeployless(ctx, requests, overrides, atLeast);
192
347
  }
193
348
  /**
194
- * 'invalid':地址上没有代码或返回无法解码;'reverted':执行 revert 且没有 revert 数据。
195
- * 两种情况都退回 deployless。
349
+ * 'invalid':返回空数据(地址上没有代码)或无法解码——经 FallbackRpc 时会先换节点重试;
350
+ * 所有节点(2 个以上)都这样时为 'invalid-confirmed'。'reverted':执行 revert 且没有 revert 数据。
351
+ * 这几种情况都退回 deployless。
196
352
  */
197
- async function callContract(ctx, multicall, requests, overrides) {
353
+ async function callContract(ctx, multicall, requests, overrides, atLeast) {
198
354
  const calls = requests.map((req) => ({
199
355
  target: req.ethBalanceOf || req.blockNumber ? multicall.address : req.target,
200
356
  allowFailure: req.allowFailure,
201
357
  callData: req.callData,
202
358
  }));
203
- let data;
204
359
  try {
205
- data = await ctx.provider.call({
206
- to: multicall.address,
207
- data: multicall3Interface.encodeFunctionData('aggregate3', [calls]),
208
- blockTag: overrides.blockTag,
209
- from: overrides.from,
210
- });
360
+ // 地址上没有代码时 eth_call 返回 0x;空数据 / 无法解码的结果换下一个节点(节点偶发出错时别的节点能给出正确结果)
361
+ return await callAggregate3(ctx.provider, { to: multicall.address, data: multicall3Interface.encodeFunctionData('aggregate3', [calls]), blockTag: overrides.blockTag, from: overrides.from }, requests, atLeast);
211
362
  }
212
363
  catch (err) {
364
+ if (err instanceof InvalidResultError) {
365
+ return 'invalid';
366
+ }
367
+ // 有节点只是落后(minBlock):不能据此判断合约不存在,按落后处理(由 minBlock 的等待重试负责),不记次数
368
+ // (只看 minBlock 校验得出的 NodeBehindError;“区块不存在”的报错和空数据混在一起时照常退回 deployless)
369
+ if (atLeast !== undefined && (err instanceof NodeBehindError || (err instanceof AllNodesFailedError && err.errors.some((e) => e.error instanceof NodeBehindError)))) {
370
+ throw err;
371
+ }
372
+ // 有节点返回空数据、其余节点出错(超时、限频等):合约可能不存在,退回 deployless;
373
+ // 只有 2 个以上节点都返回空数据才算确认,记缓存
374
+ if (err instanceof AllNodesFailedError && err.errors.some((e) => e.error instanceof InvalidResultError)) {
375
+ const invalid = err.errors.filter((e) => e.error instanceof InvalidResultError).length;
376
+ return invalid >= 2 && invalid === err.errors.length ? 'invalid-confirmed' : 'invalid';
377
+ }
213
378
  // aggregate3 自己的失败(allowFailure=false 的子调用失败)会带 "Multicall3: call failed" 的 revert 数据;
214
379
  // 执行层面 revert 且没有数据,基本就是这个地址上不是 Multicall3。
215
380
  // 限流、节点缺状态等错误 ethers 也会包装成 CALL_EXCEPTION,那些要原样抛出,不能把地址判成无效
@@ -218,16 +383,6 @@ async function callContract(ctx, multicall, requests, overrides) {
218
383
  }
219
384
  throw err;
220
385
  }
221
- // 地址上没有代码时 eth_call 返回 0x
222
- if (!data || data === '0x') {
223
- return 'invalid';
224
- }
225
- try {
226
- return decodeAggregate3(multicall3Interface.decodeFunctionResult('aggregate3', data)[0]);
227
- }
228
- catch {
229
- return 'invalid';
230
- }
231
386
  }
232
387
  /**
233
388
  * deployless:字节码 + 构造参数作为合约创建 eth_call 发出。
@@ -236,45 +391,49 @@ async function callContract(ctx, multicall, requests, overrides) {
236
391
  * 合约创建受 EIP-3860 限制,initcode(字节码 + 参数)不能超过 48KB,这里按编码后的大小切片;
237
392
  * 返回超过 24KB 的情况由合约改用 revert 带回,见 contracts/DeploylessMulticall3.sol。
238
393
  */
239
- async function callDeployless(ctx, requests, overrides) {
394
+ async function callDeployless(ctx, requests, overrides, atLeast) {
240
395
  const chunks = splitByInitcodeSize(requests);
241
- const results = await Promise.all(chunks.map((chunk) => callDeploylessChunk(ctx, chunk, overrides)));
396
+ const results = await Promise.all(chunks.map((chunk) => callDeploylessChunk(ctx, chunk, overrides, atLeast)));
242
397
  return results.flat();
243
398
  }
244
- async function callDeploylessChunk(ctx, requests, overrides) {
399
+ async function callDeploylessChunk(ctx, requests, overrides, atLeast) {
400
+ // minBlock:每片都附带区块号查询并各自校验——只校验带区块号的那一片的话,其他片可能来自落后节点、混进旧数据
401
+ const sent = atLeast === undefined
402
+ ? requests
403
+ : [
404
+ ...requests,
405
+ ...(requests.includes(BLOCK_NUMBER_REQUEST) ? [] : [BLOCK_NUMBER_REQUEST]),
406
+ ...(requests.includes(ARB_BLOCK_NUMBER_REQUEST) ? [] : [ARB_BLOCK_NUMBER_REQUEST]),
407
+ ];
245
408
  const args = AbiCoder.defaultAbiCoder().encode([CALL3_TUPLE], [
246
- requests.map(({ target, allowFailure, callData, ethBalanceOf, blockNumber }) => ({
409
+ sent.map(({ target, allowFailure, callData, ethBalanceOf, blockNumber }) => ({
247
410
  target: ethBalanceOf || blockNumber ? MULTICALL3_ADDRESS : target,
248
411
  allowFailure,
249
412
  callData,
250
413
  })),
251
414
  ]);
252
- let data;
253
415
  try {
254
- data = await ctx.provider.call({
255
- data: concat([DEPLOYLESS_MULTICALL3_BYTECODE, args]),
256
- blockTag: overrides.blockTag,
257
- from: overrides.from,
258
- });
416
+ // 返回空数据 / 无法解码(节点不支持合约创建式 eth_call,或偶发出错)时换下一个节点
417
+ const results = await callAggregate3(ctx.provider, { data: concat([DEPLOYLESS_MULTICALL3_BYTECODE, args]), blockTag: overrides.blockTag, from: overrides.from }, sent, atLeast);
418
+ return results.slice(0, requests.length);
259
419
  }
260
420
  catch (err) {
261
- const revertData = err.data;
262
- if (isError(err, 'CALL_EXCEPTION') && revertData?.startsWith(AGGREGATE3_RESULT_SELECTOR)) {
263
- // 结果超过 24KB,合约通过 revert Aggregate3Result(...) 带回
264
- return decodeAggregate3(AbiCoder.defaultAbiCoder().decode([RESULT_TUPLE], dataSlice(revertData, 4))[0]);
421
+ // 结果超过 24KB,合约通过 revert Aggregate3Result(...) 带回(区块号已在 callAggregate3 里校验)
422
+ const reverted = revertedResults(err);
423
+ if (reverted) {
424
+ return reverted.slice(0, requests.length);
265
425
  }
266
426
  // 有的钱包 / 中间层会丢掉 revert 数据,大结果拿不回来:对半拆开重试,小批量能正常 return
267
427
  if (requests.length > 1 && isExecutionError(err) && !hasRevertData(err)) {
268
428
  const mid = Math.ceil(requests.length / 2);
269
429
  const [a, b] = await Promise.all([
270
- callDeploylessChunk(ctx, requests.slice(0, mid), overrides),
271
- callDeploylessChunk(ctx, requests.slice(mid), overrides),
430
+ callDeploylessChunk(ctx, requests.slice(0, mid), overrides, atLeast),
431
+ callDeploylessChunk(ctx, requests.slice(mid), overrides, atLeast),
272
432
  ]);
273
433
  return [...a, ...b];
274
434
  }
275
435
  throw err;
276
436
  }
277
- return decodeAggregate3(multicall3Interface.decodeFunctionResult('aggregate3', data)[0]);
278
437
  }
279
438
  /** EIP-3860 initcode 上限 49152 字节,留出余量 */
280
439
  const MAX_INITCODE_SIZE = 48_000;
@@ -309,8 +468,13 @@ function decodeAggregate3(raw) {
309
468
  return raw.map(([success, returnData]) => ({ success, returnData }));
310
469
  }
311
470
  function isUsable(chainId, multicall, blockTag) {
312
- if (unusableMulticalls.has(cacheKey(chainId, multicall.address))) {
313
- return false;
471
+ const key = cacheKey(chainId, multicall.address);
472
+ const until = unusableMulticalls.get(key);
473
+ if (until !== undefined) {
474
+ if (Date.now() < until) {
475
+ return false;
476
+ }
477
+ unusableMulticalls.delete(key);
314
478
  }
315
479
  if (blockTag === 'earliest') {
316
480
  return false;
@@ -332,5 +496,6 @@ function cacheKey(chainId, address) {
332
496
  /** 测试用:清掉“地址不可用”的缓存 */
333
497
  export function resetMulticallCache() {
334
498
  unusableMulticalls.clear();
499
+ invalidStrikes.clear();
335
500
  }
336
501
  //# sourceMappingURL=aggregate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAmC,MAAM,QAAQ,CAAA;AAE7G,OAAO,EAAE,aAAa,EAAoC,MAAM,WAAW,CAAA;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAkB,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AA+BvC,MAAM,kBAAkB,GAAG,IAAI,SAAS,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAA;AAEtG,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,SAAS,CAAC;IAC/C,kJAAkJ;IAClJ,qEAAqE;IACrE,8DAA8D;CAC/D,CAAC,CAAA;AAEF,gDAAgD;AAChD,MAAM,oBAAoB,GAAgB;IACxC,MAAM,EAAE,kBAAkB;IAC1B,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;IAClE,WAAW,EAAE,IAAI;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,wBAAwB,GAAgB;IAC5C,MAAM,EAAE,4CAA4C;IACpD,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,YAAY,EAAE,mBAAmB;CAC5C,CAAA;AAED,iCAAiC;AACjC,MAAM,wBAAwB,GAAG,IAAI,CAAA;AACrC,MAAM,kBAAkB,GAAG,MAAM,CAAA;AAEjC,MAAM,WAAW,GAAG,4DAA4D,CAAA;AAChF,MAAM,YAAY,GAAG,yCAAyC,CAAA;AAC9D,6CAA6C;AAC7C,MAAM,0BAA0B,GAAG,EAAE,CAAC,kCAAkC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAEtF;;;GAGG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;AAY5C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAqB,EACrB,QAAuB,EACvB,YAA2B,EAAE;IAE7B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,IAAI,UAAU,CAAA;IAC5C,IAAI,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,EAAE,CAAC;QAClF,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC1K,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,cAAc,CAAA;IACrH,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,MAAM,GAAoB,EAAE,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAC1C,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACpF,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;AACvB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,qBAAqB,CAAC,GAAqB,EAAE,QAAuB,EAAE,SAAwB;IAC3G,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAkB,CAAA;IAC7C,4BAA4B;IAC5B,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC7C,OAAO,kBAAkB,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,EAAE,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAA;QACzF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,EAAE,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,+DAA+D;AAC/D,KAAK,UAAU,kBAAkB,CAAI,SAAwB,EAAE,GAAqB;IAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAA;IAChD,SAAS,CAAC;QACR,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,CAAA;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,EAAE,CAAA;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB,GAAG,QAAQ,EAAE,CAAC;gBAC9E,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC,wBAAwB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC7C,OAAO,EAAE,CAAA;QACX,CAAC,EAAE,EAAE,CAAC,CAAA;QACN,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACxB,CAAC,CAAA;QACD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,yBAAyB;AACzB,SAAS,OAAO,CAAC,MAA6B;IAC5C,OAAO,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACzF,CAAC;AAED,4DAA4D;AAC5D,SAAS,cAAc,CAAC,GAAgB,EAAE,KAAa;IACrD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAA;AAC5I,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,wBAAwB,CAAC,GAAqB,EAAE,QAAuB,EAAE,SAAwB;IAC9G,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAsB,CAAC,CAAA;IAChH,MAAM,WAAW,GAAqB,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,CAAA;IAC3E,IAAI,YAAyB,CAAA;IAC7B,IAAI,QAAkB,CAAA;IACtB,2BAA2B;IAC3B,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC7I,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,EAAE,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAA;QAC1F,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QACpC,YAAY,GAAG,OAAO,CAAA;QACtB,MAAM,QAAQ,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpE,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC/F,6DAA6D;QAC7D,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACpG,CAAC;SAAM,CAAC;QACN,CAAC;QAAA,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5C,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;SACvF,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC1B,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAE,YAAY,CAAC,CAAC,EAAE,CAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAW,CAAC,EAAE,CAC1I,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,KAAK,UAAU,cAAc,CAAC,GAAqB,EAAE,QAAuB,EAAE,SAAwB;IACpG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7C,OAAO,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IACpD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,EAAE,wBAAwB,CAAC,EAAE,SAAS,CAAC,CAAA;IAChG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAe,CAAA;IACtC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;YAClB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAqB,EACrB,QAAuB,EACvB,SAAwB;IAExB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAA;IAC/B,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;QACvE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,0BAA0B;QAC1B,+EAA+E;QAC/E,wCAAwC;QACxC,oCAAoC;QACpC,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1D,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;QAClE,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;AACjD,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,YAAY,CACzB,GAAqB,EACrB,SAAoB,EACpB,QAAuB,EACvB,SAAwB;IAExB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM;QAC5E,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CAAC,CAAA;IACH,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC7B,EAAE,EAAE,SAAS,CAAC,OAAO;YACrB,IAAI,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;YACnE,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;SACrB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uFAAuF;QACvF,4CAA4C;QAC5C,4DAA4D;QAC5D,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,0BAA0B;IAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,cAAc,CAC3B,GAAqB,EACrB,QAAuB,EACvB,SAAwB;IAExB,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACpG,OAAO,OAAO,CAAC,IAAI,EAAE,CAAA;AACvB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAqB,EACrB,QAAuB,EACvB,SAAwB;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAC5C,CAAC,WAAW,CAAC,EACb;QACE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/E,MAAM,EAAE,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM;YACjE,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;KACJ,CACF,CAAA;IACD,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC7B,IAAI,EAAE,MAAM,CAAC,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;YACpD,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;SACrB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,UAAU,GAAI,GAAgC,CAAC,IAAI,CAAA;QACzD,IAAI,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,UAAU,EAAE,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACzF,iDAAiD;YACjD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzG,CAAC;QACD,uDAAuD;QACvD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACxE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC/B,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC;gBAC3D,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC;aACzD,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACrB,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IACD,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1F,CAAC;AAED,yCAAyC;AACzC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAChC,MAAM,aAAa,GAAG,CAAC,8BAA8B,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAErE,SAAS,mBAAmB,CAAC,QAAuB;IAClD,yFAAyF;IACzF,MAAM,MAAM,GAAG,iBAAiB,GAAG,aAAa,GAAG,EAAE,CAAA;IACrD,MAAM,MAAM,GAAoB,EAAE,CAAA;IAClC,IAAI,OAAO,GAAkB,EAAE,CAAA;IAC/B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,GAAG,EAAE,CAAA;QACtD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACpB,OAAO,GAAG,EAAE,CAAA;YACZ,IAAI,GAAG,CAAC,CAAA;QACV,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,IAAI,IAAI,QAAQ,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,MAAM,IAAI,GAAI,GAAgC,CAAC,IAAI,CAAA;IACnD,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,gBAAgB,CAAC,GAA8C;IACtE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,SAAoB,EAAE,QAAmB;IAC1E,IAAI,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnD,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,QAAmB;IACnC,OAAO,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAA;AACvG,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,OAAe;IAChD,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAA;AAC9C,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,mBAAmB;IACjC,kBAAkB,CAAC,KAAK,EAAE,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"batcher.d.ts","sourceRoot":"","sources":["../src/batcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAChJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGnD,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,MAAM,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;AAsCzF;;;;GAIG;AACH,qBAAa,OAAO;;gBAMN,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;IAMnD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAE,aAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAS9D;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA0GvF"}
1
+ {"version":3,"file":"batcher.d.ts","sourceRoot":"","sources":["../src/batcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAChJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAGnD,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,MAAM,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;AAuCzF;;;;GAIG;AACH,qBAAa,OAAO;;gBAMN,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;IAMnD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAE,aAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAS9D;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,SAAS,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA6GvF"}
package/dist/batcher.js CHANGED
@@ -2,12 +2,13 @@ import { decodeCall, encodeCall, encodeFailureReason, settleResult } from './cal
2
2
  import { CallFailedError } from './errors.js';
3
3
  /**
4
4
  * 整批请求的 signal:所有调用方都传了 signal、并且都取消后才取消(如 minBlock 的等待重试随之停止);
5
- * 有调用方没传 signal 时返回 undefined(整批照常完成)
5
+ * 有调用方没传 signal 时为 undefined(整批照常完成)。请求结束后调用 dispose,移除挂在调用方 signal 上的监听
6
+ * (调用方可能用一个长期存在的 signal 发起很多次查询)
6
7
  */
7
8
  function combinedSignal(entries) {
8
9
  const signals = [...new Set(entries.map((entry) => entry.signal))];
9
10
  if (!signals.length || signals.some((signal) => signal === undefined)) {
10
- return undefined;
11
+ return { signal: undefined, dispose: () => { } };
11
12
  }
12
13
  const controller = new AbortController();
13
14
  const check = () => {
@@ -17,7 +18,7 @@ function combinedSignal(entries) {
17
18
  };
18
19
  signals.forEach((signal) => signal?.addEventListener('abort', check, { once: true }));
19
20
  check();
20
- return controller.signal;
21
+ return { signal: controller.signal, dispose: () => signals.forEach((signal) => signal?.removeEventListener('abort', check)) };
21
22
  }
22
23
  /**
23
24
  * DataLoader 式的自动合并:各处独立调用 `provider.call(x)`,
@@ -116,13 +117,17 @@ export class Batcher {
116
117
  return;
117
118
  }
118
119
  let results;
120
+ const combined = combinedSignal(entries);
119
121
  try {
120
- results = await this.#run(requests, { ...overrides, signal: combinedSignal(entries) });
122
+ results = await this.#run(requests, { ...overrides, signal: combined.signal });
121
123
  }
122
124
  catch (err) {
123
125
  entries.forEach((entry, i) => requestIndex[i] !== -1 && entry.reject(err));
124
126
  return;
125
127
  }
128
+ finally {
129
+ combined.dispose();
130
+ }
126
131
  entries.forEach((entry, i) => {
127
132
  const index = requestIndex[i];
128
133
  if (index === -1) {
@@ -1 +1 @@
1
- {"version":3,"file":"batcher.js","sourceRoot":"","sources":["../src/batcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batcher.js","sourceRoot":"","sources":["../src/batcher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE1D,eAAO,MAAM,SAAS,2hBAUZ,CAAA;AAEV,KAAK,MAAM,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;AAEjH,+CAA+C;AAC/C,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC7C,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IACxB,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC/B,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IAC1C,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IAC3D,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7E,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;IACzE,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;CAC5F;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,qBAAqB;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,SAAS,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,oCAAoC;IACpC,UAAU,CAAC,EAAE,WAAW,GAAG,UAAU,CAAA;CACtC;AAED,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,GAAG,WAAW,CAAC,CAAA;AAE9E,iCAAiC;AACjC,eAAO,MAAM,6BAA6B,QAAiB,CAAA;AAE3D,QAAA,MAAM,WAAW,QAAkB,CAAA;AAEnC,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,mCAAmC;AACnC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAA;AAEvE,wBAAwB;AACxB,eAAO,MAAM,oBAAoB,yCAA0E,CAAA;AAE3G,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAA;AAErE,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,kBAAkB;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,GAAG,iBAAiB,IAAI;IACnE,OAAO,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAA;IACf,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAA;IAChB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,uCAAuC;IACvC,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,aAAa,SAAS,CAAC,GAAG;IAAE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,CAAA;AAEpH,+CAA+C;AAC/C,eAAO,MAAM,YAAY,+CAA+C,CAAA;AAExE,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAiE,CAAA;AAEpH,4DAA4D;AAC5D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1E,MAAM,WAAW,YAAY;IAC3B,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc;IACd,MAAM,EAAE,OAAO,CAAA;IACf,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,qDAAqD;IACrD,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;CACpC;AAED,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAEtH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,qEAAqE;AACrE,eAAO,MAAM,YAAY,oBAAc,CAAA;AAIvC,UAAU,SAAS;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kEAAkE;IAClE,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAA;CACvC;AAED,UAAU,UAAW,SAAQ,SAAS;IACpC,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAOD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAc5E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAmBxF;AAED,kCAAkC;AAClC,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,mDAAmD;AACnD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAA;IACV,iCAAiC;IACjC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,SAA2B,GAAG,iBAAiB,CAG7F;AAED,6DAA6D;AAC7D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA+B5D;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,IAAI,CA8B5H"}
1
+ {"version":3,"file":"erc20.d.ts","sourceRoot":"","sources":["../src/erc20.ts"],"names":[],"mappings":"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"}