@w3lib/evm-batch-call 0.4.2 → 0.6.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.
Files changed (128) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +242 -2
  3. package/dist/fallback.d.ts +5 -0
  4. package/dist/fallback.d.ts.map +1 -1
  5. package/dist/fallback.js +7 -0
  6. package/dist/fallback.js.map +1 -1
  7. package/dist/liquidity/common.d.ts +72 -0
  8. package/dist/liquidity/common.d.ts.map +1 -0
  9. package/dist/liquidity/common.js +271 -0
  10. package/dist/liquidity/common.js.map +1 -0
  11. package/dist/liquidity/concentrated.d.ts +19 -0
  12. package/dist/liquidity/concentrated.d.ts.map +1 -0
  13. package/dist/liquidity/concentrated.js +106 -0
  14. package/dist/liquidity/concentrated.js.map +1 -0
  15. package/dist/liquidity/index.d.ts +42 -0
  16. package/dist/liquidity/index.d.ts.map +1 -0
  17. package/dist/liquidity/index.js +143 -0
  18. package/dist/liquidity/index.js.map +1 -0
  19. package/dist/liquidity/types.d.ts +182 -0
  20. package/dist/liquidity/types.d.ts.map +1 -0
  21. package/dist/liquidity/types.js +2 -0
  22. package/dist/liquidity/types.js.map +1 -0
  23. package/dist/liquidity/v2.d.ts +5 -0
  24. package/dist/liquidity/v2.d.ts.map +1 -0
  25. package/dist/liquidity/v2.js +342 -0
  26. package/dist/liquidity/v2.js.map +1 -0
  27. package/dist/liquidity/v3.d.ts +6 -0
  28. package/dist/liquidity/v3.d.ts.map +1 -0
  29. package/dist/liquidity/v3.js +310 -0
  30. package/dist/liquidity/v3.js.map +1 -0
  31. package/dist/liquidity/v4.d.ts +5 -0
  32. package/dist/liquidity/v4.d.ts.map +1 -0
  33. package/dist/liquidity/v4.js +279 -0
  34. package/dist/liquidity/v4.js.map +1 -0
  35. package/dist/lp.d.ts +156 -0
  36. package/dist/lp.d.ts.map +1 -0
  37. package/dist/lp.js +510 -0
  38. package/dist/lp.js.map +1 -0
  39. package/dist/lpMath.d.ts +80 -0
  40. package/dist/lpMath.d.ts.map +1 -0
  41. package/dist/lpMath.js +312 -0
  42. package/dist/lpMath.js.map +1 -0
  43. package/dist/lpV4.d.ts +108 -0
  44. package/dist/lpV4.d.ts.map +1 -0
  45. package/dist/lpV4.js +283 -0
  46. package/dist/lpV4.js.map +1 -0
  47. package/dist/owner.d.ts +1 -1
  48. package/dist/owner.d.ts.map +1 -1
  49. package/dist/owner.js +18 -5
  50. package/dist/owner.js.map +1 -1
  51. package/dist/scan.d.ts +54 -0
  52. package/dist/scan.d.ts.map +1 -1
  53. package/dist/scan.js +124 -92
  54. package/dist/scan.js.map +1 -1
  55. package/dist/source.d.ts +2 -0
  56. package/dist/source.d.ts.map +1 -1
  57. package/dist/source.js +4 -0
  58. package/dist/source.js.map +1 -1
  59. package/dist/subpaths/liquidity.d.ts +24 -0
  60. package/dist/subpaths/liquidity.d.ts.map +1 -0
  61. package/dist/subpaths/liquidity.js +21 -0
  62. package/dist/subpaths/liquidity.js.map +1 -0
  63. package/dist/subpaths/lp.d.ts +33 -0
  64. package/dist/subpaths/lp.d.ts.map +1 -0
  65. package/dist/subpaths/lp.js +47 -0
  66. package/dist/subpaths/lp.js.map +1 -0
  67. package/dist/subpaths/write.d.ts +20 -0
  68. package/dist/subpaths/write.d.ts.map +1 -0
  69. package/dist/subpaths/write.js +18 -0
  70. package/dist/subpaths/write.js.map +1 -0
  71. package/dist/tron.d.ts +2 -0
  72. package/dist/tron.d.ts.map +1 -1
  73. package/dist/tron.js +4 -0
  74. package/dist/tron.js.map +1 -1
  75. package/dist/write/batch.d.ts +88 -0
  76. package/dist/write/batch.d.ts.map +1 -0
  77. package/dist/write/batch.js +231 -0
  78. package/dist/write/batch.js.map +1 -0
  79. package/dist/write/collect.d.ts +53 -0
  80. package/dist/write/collect.d.ts.map +1 -0
  81. package/dist/write/collect.js +255 -0
  82. package/dist/write/collect.js.map +1 -0
  83. package/dist/write/rpc.d.ts +68 -0
  84. package/dist/write/rpc.d.ts.map +1 -0
  85. package/dist/write/rpc.js +236 -0
  86. package/dist/write/rpc.js.map +1 -0
  87. package/dist/write/send.d.ts +124 -0
  88. package/dist/write/send.d.ts.map +1 -0
  89. package/dist/write/send.js +373 -0
  90. package/dist/write/send.js.map +1 -0
  91. package/dist/write/signer.d.ts +58 -0
  92. package/dist/write/signer.d.ts.map +1 -0
  93. package/dist/write/signer.js +41 -0
  94. package/dist/write/signer.js.map +1 -0
  95. package/dist/write/transfer.d.ts +83 -0
  96. package/dist/write/transfer.d.ts.map +1 -0
  97. package/dist/write/transfer.js +259 -0
  98. package/dist/write/transfer.js.map +1 -0
  99. package/dist/write/tron.d.ts +60 -0
  100. package/dist/write/tron.d.ts.map +1 -0
  101. package/dist/write/tron.js +960 -0
  102. package/dist/write/tron.js.map +1 -0
  103. package/package.json +26 -5
  104. package/src/fallback.ts +8 -0
  105. package/src/liquidity/common.ts +314 -0
  106. package/src/liquidity/concentrated.ts +121 -0
  107. package/src/liquidity/index.ts +171 -0
  108. package/src/liquidity/types.ts +194 -0
  109. package/src/liquidity/v2.ts +371 -0
  110. package/src/liquidity/v3.ts +382 -0
  111. package/src/liquidity/v4.ts +348 -0
  112. package/src/lp.ts +739 -0
  113. package/src/lpMath.ts +336 -0
  114. package/src/lpV4.ts +406 -0
  115. package/src/owner.ts +19 -6
  116. package/src/scan.ts +155 -86
  117. package/src/source.ts +5 -0
  118. package/src/subpaths/liquidity.ts +52 -0
  119. package/src/subpaths/lp.ts +90 -0
  120. package/src/subpaths/write.ts +26 -0
  121. package/src/tron.ts +5 -0
  122. package/src/write/batch.ts +302 -0
  123. package/src/write/collect.ts +312 -0
  124. package/src/write/rpc.ts +277 -0
  125. package/src/write/send.ts +490 -0
  126. package/src/write/signer.ts +90 -0
  127. package/src/write/transfer.ts +344 -0
  128. package/src/write/tron.ts +1105 -0
package/dist/scan.js CHANGED
@@ -112,6 +112,107 @@ async function loadState(storage, key) {
112
112
  return undefined;
113
113
  }
114
114
  }
115
+ /**
116
+ * 增量扫描日志(transferScan、LP 仓位的 V4 扫描共用):从上次的位置往后扫到最新区块前 confirmations 个区块,
117
+ * 区块范围按节点的限制自动调整,限频 / 超时退避重试,节点不开放 getLogs 时暂停一段时间。
118
+ * 返回新的进度;拿不到最新区块且没有旧进度时返回 null
119
+ */
120
+ export async function runLogScan(run) {
121
+ const { provider, saved, filter, collect, maxRange, maxRequests, timeBudget, confirmations } = run;
122
+ if (saved?.pausedUntil && Date.now() < saved.pausedUntil) {
123
+ return saved;
124
+ }
125
+ const startedAt = Date.now();
126
+ let target;
127
+ try {
128
+ target = (await provider.getBlockNumber()) - confirmations;
129
+ }
130
+ catch {
131
+ return saved ?? null; // 节点不支持 / 暂时不可用:返回已有的进度
132
+ }
133
+ const now = Date.now();
134
+ let state;
135
+ if (saved) {
136
+ state = { ...saved, items: [...saved.items] };
137
+ delete state.pausedUntil;
138
+ if (state.rangeLimitAt !== undefined && now - state.rangeLimitAt > RANGE_LIMIT_TTL) {
139
+ delete state.rangeLimit;
140
+ delete state.rangeLimitAt;
141
+ }
142
+ }
143
+ else {
144
+ const cursor = Math.max(-1, Math.min(target, run.initialCursor(target)));
145
+ state = { startBlock: cursor + 1, cursor, items: [], blockRange: maxRange };
146
+ }
147
+ const items = new Set(state.items);
148
+ const cap = () => Math.min(maxRange, state.rangeLimit ?? maxRange);
149
+ const setLimit = (limit) => {
150
+ state.rangeLimit = limit;
151
+ state.rangeLimitAt = Date.now();
152
+ };
153
+ let range = Math.min(state.blockRange, cap());
154
+ let successes = 0;
155
+ let transient = 0;
156
+ for (let requests = 0; requests < maxRequests && state.cursor < target; requests++) {
157
+ if ((timeBudget > 0 && Date.now() - startedAt >= timeBudget) || run.signal?.aborted) {
158
+ break; // 超出时间预算 / 已取消,留到下次调用
159
+ }
160
+ const fromBlock = state.cursor + 1;
161
+ const toBlock = Math.min(target, fromBlock + range - 1);
162
+ try {
163
+ const logs = await provider.getLogs({ ...(filter.address ? { address: filter.address } : {}), fromBlock, toBlock, topics: filter.topics });
164
+ for (const log of logs) {
165
+ const item = collect(log);
166
+ if (item !== null) {
167
+ items.add(item);
168
+ }
169
+ }
170
+ state.cursor = toBlock;
171
+ transient = 0;
172
+ if (++successes >= GROW_AFTER && range < cap()) {
173
+ range = Math.min(cap(), range * 2); // 之前缩小过(偶发错误 / 换了节点):逐步放大回去
174
+ successes = 0;
175
+ }
176
+ }
177
+ catch (err) {
178
+ successes = 0;
179
+ const texts = errorTexts(err);
180
+ const kinds = texts.map(kindOf);
181
+ // 上次成功的节点这次的错误最能说明问题(其他节点可能一直就不能用,它们的报错不代表当前范围有问题)
182
+ const preferred = err instanceof GetLogsError && err.preferred !== undefined ? kindOf(errorText(err.preferred)) : undefined;
183
+ const limit = parseRangeLimit(texts);
184
+ if (limit !== null && limit < range) {
185
+ range = limit; // 节点明确给了范围上限
186
+ setLimit(limit);
187
+ }
188
+ else if (kinds.every((k) => k === 'unsupported')) {
189
+ // 所有节点都不开放 getLogs:暂停一段时间,避免每次调用都白发请求
190
+ state.pausedUntil = Date.now() + PAUSE_ON_UNSUPPORTED;
191
+ break;
192
+ }
193
+ else if (preferred === 'transient' || (preferred === undefined && kinds.every((k) => k === 'transient' || k === 'unsupported'))) {
194
+ // 在用的节点只是限频 / 超时:不缩小范围,退避后重试;连续 3 次就留到下次调用
195
+ const remaining = timeBudget > 0 ? timeBudget - (Date.now() - startedAt) : Infinity;
196
+ if (++transient >= 3 || remaining <= 0) {
197
+ break;
198
+ }
199
+ await sleep(Math.min(500 * transient, remaining));
200
+ }
201
+ else if (range > 1) {
202
+ range = Math.max(1, Math.floor(range / 2)); // 范围超限但没说上限:减半再试
203
+ setLimit(range);
204
+ }
205
+ else {
206
+ state.pausedUntil = Date.now() + PAUSE_ON_UNSUPPORTED; // 连 1 个区块都查不了
207
+ break;
208
+ }
209
+ }
210
+ }
211
+ state.blockRange = range;
212
+ state.items = [...items];
213
+ run.onDone?.(state, target);
214
+ return state;
215
+ }
115
216
  /**
116
217
  * 增量扫描地址收到的 ERC20 代币(Transfer 事件,to = 该地址):第一次调用记下当前区块,之后每次从上次的位置往后扫。
117
218
  * 用来补充代币列表发现不了的新代币。作为代币来源使用:`combine(defaultTokenSource(), transferScan())`,
@@ -135,106 +236,37 @@ export function transferScan(options = {}) {
135
236
  }
136
237
  const key = `${chainId}:${owner.toLowerCase()}`;
137
238
  const saved = await loadState(storage, key);
138
- const toResult = (state) => (state?.tokens ?? []).map((address) => ({ address }));
139
- if (saved?.pausedUntil && Date.now() < saved.pausedUntil) {
140
- return toResult(saved);
141
- }
142
- const startedAt = Date.now();
143
- let target;
144
- try {
145
- target = (await provider.getBlockNumber()) - confirmations;
146
- }
147
- catch {
148
- return saved ? toResult(saved) : null; // 节点不支持 / 暂时不可用:返回已发现的代币
149
- }
150
- const now = Date.now();
151
- let state;
152
- if (saved) {
153
- state = { ...saved, tokens: [...saved.tokens] };
154
- delete state.pausedUntil;
155
- if (state.rangeLimitAt !== undefined && now - state.rangeLimitAt > RANGE_LIMIT_TTL) {
156
- delete state.rangeLimit;
157
- delete state.rangeLimitAt;
158
- }
159
- }
160
- else {
161
- const cursor = Math.max(-1, target - lookback);
162
- state = { startBlock: cursor + 1, cursor, tokens: [], blockRange: maxRange };
163
- }
164
- const tokens = new Set(state.tokens);
239
+ const toResult = (tokens) => tokens.map((address) => ({ address }));
165
240
  const ownerTopic = `0x${owner.slice(2).toLowerCase().padStart(64, '0')}`;
166
- const cap = () => Math.min(maxRange, state.rangeLimit ?? maxRange);
167
- const setLimit = (limit) => {
168
- state.rangeLimit = limit;
169
- state.rangeLimitAt = Date.now();
170
- };
171
- let range = Math.min(state.blockRange, cap());
172
- let successes = 0;
173
- let transient = 0;
174
- for (let requests = 0; requests < maxRequests && state.cursor < target; requests++) {
175
- if (timeBudget > 0 && Date.now() - startedAt >= timeBudget) {
176
- break; // 超出时间预算,留到下次调用
177
- }
178
- const fromBlock = state.cursor + 1;
179
- const toBlock = Math.min(target, fromBlock + range - 1);
180
- try {
181
- const logs = await provider.getLogs({ fromBlock, toBlock, topics: [TRANSFER_TOPIC, null, ownerTopic] });
182
- for (const log of logs) {
183
- // ERC20 的 Transfer 有 3 个 topic;ERC721 的 tokenId 也是 indexed,有 4 个,排除
184
- if (log.topics.length === 3) {
185
- tokens.add(log.address.toLowerCase());
186
- }
187
- }
188
- state.cursor = toBlock;
189
- transient = 0;
190
- if (++successes >= GROW_AFTER && range < cap()) {
191
- range = Math.min(cap(), range * 2); // 之前缩小过(偶发错误 / 换了节点):逐步放大回去
192
- successes = 0;
193
- }
194
- }
195
- catch (err) {
196
- successes = 0;
197
- const texts = errorTexts(err);
198
- const kinds = texts.map(kindOf);
199
- // 上次成功的节点这次的错误最能说明问题(其他节点可能一直就不能用,它们的报错不代表当前范围有问题)
200
- const preferred = err instanceof GetLogsError && err.preferred !== undefined ? kindOf(errorText(err.preferred)) : undefined;
201
- const limit = parseRangeLimit(texts);
202
- if (limit !== null && limit < range) {
203
- range = limit; // 节点明确给了范围上限
204
- setLimit(limit);
205
- }
206
- else if (kinds.every((k) => k === 'unsupported')) {
207
- // 所有节点都不开放 getLogs:暂停一段时间,避免每次调用都白发请求
208
- state.pausedUntil = Date.now() + PAUSE_ON_UNSUPPORTED;
209
- break;
210
- }
211
- else if (preferred === 'transient' || (preferred === undefined && kinds.every((k) => k === 'transient' || k === 'unsupported'))) {
212
- // 在用的节点只是限频 / 超时:不缩小范围,退避后重试;连续 3 次就留到下次调用
213
- const remaining = timeBudget > 0 ? timeBudget - (Date.now() - startedAt) : Infinity;
214
- if (++transient >= 3 || remaining <= 0) {
215
- break;
216
- }
217
- await sleep(Math.min(500 * transient, remaining));
218
- }
219
- else if (range > 1) {
220
- range = Math.max(1, Math.floor(range / 2)); // 范围超限但没说上限:减半再试
221
- setLimit(range);
222
- }
223
- else {
224
- state.pausedUntil = Date.now() + PAUSE_ON_UNSUPPORTED; // 连 1 个区块都查不了
225
- break;
226
- }
227
- }
241
+ const savedProgress = saved && { ...saved, items: saved.tokens };
242
+ const progress = await runLogScan({
243
+ provider,
244
+ saved: savedProgress,
245
+ initialCursor: (target) => target - lookback,
246
+ filter: { topics: [TRANSFER_TOPIC, null, ownerTopic] },
247
+ // ERC20 的 Transfer 有 3 个 topic;ERC721 的 tokenId 也是 indexed,有 4 个,排除
248
+ collect: (log) => (log.topics.length === 3 ? log.address.toLowerCase() : null),
249
+ maxRange,
250
+ maxRequests,
251
+ timeBudget,
252
+ confirmations,
253
+ });
254
+ if (!progress) {
255
+ return null;
256
+ }
257
+ // 暂停中 / 拿不到最新区块:进度没变,不用写回
258
+ if (progress === savedProgress) {
259
+ return toResult(progress.items);
228
260
  }
229
- state.blockRange = range;
230
- state.tokens = [...tokens];
261
+ const { items, ...rest } = progress;
262
+ const state = { ...rest, tokens: items };
231
263
  try {
232
264
  await storage.set(key, state);
233
265
  }
234
266
  catch {
235
267
  // 存储不可用:只影响下次能否接着扫
236
268
  }
237
- return toResult(state);
269
+ return toResult(state.tokens);
238
270
  },
239
271
  };
240
272
  }
package/dist/scan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
package/dist/source.d.ts CHANGED
@@ -39,6 +39,8 @@ export declare class ChainCheckedProvider implements EthersLikeProvider {
39
39
  readonly timeout: number;
40
40
  constructor(inner: EthersLikeProvider, chainId: number, source: ProviderSource, timeout: number);
41
41
  call(tx: TransactionRequest): Promise<string>;
42
+ /** 对内层节点做任意请求,同样先校验链(写操作模块用) */
43
+ request<T>(fn: (inner: EthersLikeProvider) => Promise<T>): Promise<T>;
42
44
  getBalance(...args: Parameters<EthersLikeProvider['getBalance']>): Promise<bigint>;
43
45
  getBlockNumber(): Promise<number>;
44
46
  getLogs(filter: Parameters<NonNullable<EthersLikeProvider['getLogs']>>[0]): Promise<Awaited<ReturnType<NonNullable<EthersLikeProvider['getLogs']>>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAEjI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,EAAsC,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAExF,OAAO,EAA+B,WAAW,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAEhH;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,kBAAkB,GAAG,eAAe,GAAG,WAAW,CAAA;AAExF,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,uDAAuD;IACvD,IAAI,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,SAAS,CAAC,CAAA;CACzD;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,0CAA0C;AAC1C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKpE;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GAAG,SAAS,EAC9D,OAAO,GAAE,aAAkB,GAC1B,kBAAkB,CAuBpB;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAuBxD;AAKD;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;;IAI3D,QAAQ,CAAC,KAAK,EAAE,kBAAkB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM;gBAHf,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM;IAiC1B,IAAI,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C,UAAU,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlF,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAQjC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAQ9I,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAGpC"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAEjI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,EAAsC,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAExF,OAAO,EAA+B,WAAW,EAAE,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAEhH;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,kBAAkB,GAAG,eAAe,GAAG,WAAW,CAAA;AAExF,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,uDAAuD;IACvD,IAAI,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,SAAS,CAAC,CAAA;CACzD;AAED,OAAO,EAAE,WAAW,EAAE,CAAA;AAEtB,0CAA0C;AAC1C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKpE;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GAAG,SAAS,EAC9D,OAAO,GAAE,aAAkB,GAC1B,kBAAkB,CAuBpB;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAuBxD;AAKD;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;;IAI3D,QAAQ,CAAC,KAAK,EAAE,kBAAkB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM;gBAHf,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM;IAiC1B,IAAI,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C,gCAAgC;IAChC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIrE,UAAU,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlF,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAQjC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAQ9I,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAGpC"}
package/dist/source.js CHANGED
@@ -115,6 +115,10 @@ export class ChainCheckedProvider {
115
115
  call(tx) {
116
116
  return this.#run(() => this.inner.call(tx));
117
117
  }
118
+ /** 对内层节点做任意请求,同样先校验链(写操作模块用) */
119
+ request(fn) {
120
+ return this.#run(() => fn(this.inner));
121
+ }
118
122
  getBalance(...args) {
119
123
  return this.#run(() => this.inner.getBalance(...args));
120
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 添加 / 移除流动性(子路径 `@w3lib/evm-batch-call/liquidity`):V2(Router)、V3(仓位 NFT)、Uniswap V4(PositionManager + Permit2),
3
+ * 包括 Tron 上的 SunSwap V2 / V3。不放在主入口,不用时打包不会带上这部分代码。
4
+ *
5
+ * - build*:只读取、不签名,返回预计的数量和要按顺序发送的交易(授权在前),可以当作报价,也可以交给钱包自己发送
6
+ * - addLiquidity / removeLiquidity / collectFees:构建后用私钥 / ethers Signer / 浏览器钱包签名发送(同 /write 的 batchCall)
7
+ *
8
+ * ```ts
9
+ * import { getLpPositions } from '@w3lib/evm-batch-call/lp'
10
+ * import { addLiquidity, buildAddLiquidity, removeLiquidity } from '@w3lib/evm-batch-call/liquidity'
11
+ *
12
+ * const plan = await buildAddLiquidity(multi, owner, { protocol: 'pancakeswap-v3', tokenA: WBNB, tokenB: USDT, fee: 500, priceLower: 550, priceUpper: 650, amountAFormatted: '1' })
13
+ * await addLiquidity(multi, privateKey, { protocol: 'pancakeswap-v2', tokenA: NATIVE_TOKEN, tokenB: USDT, amountAFormatted: '0.1' })
14
+ * const [position] = await getLpPositions(owner, { chainId: 56 })
15
+ * await removeLiquidity(multi, privateKey, { position, percent: 50 })
16
+ * ```
17
+ */
18
+ export { addLiquidity, buildAddLiquidity, buildCollectFees, buildRemoveLiquidity, collectFees, removeLiquidity, } from '../liquidity/index.js';
19
+ export { PERMIT2_ADDRESS } from '../liquidity/common.js';
20
+ export type { AddLiquidityParams, CollectFeesParams, IncreaseLiquidityParams, LiquidityOptions, LiquidityPlan, LiquidityResult, LiquiditySendOptions, LiquidityTx, LiquidityTxResult, NewPositionParams, PositionRef, RemoveLiquidityParams, } from '../liquidity/types.js';
21
+ export { getLiquidityForAmounts, getMaxAmounts, getMinAmounts, getMintAmounts, getTickAtSqrtRatio, nearestUsableTick, priceToSqrtPriceX96, priceToTick, } from '../lpMath.js';
22
+ export type { LpPosition, LpProtocol, LpToken } from '../lp.js';
23
+ export type { SignerInput, WriteResult, WriteStatus } from '../subpaths/write.js';
24
+ //# sourceMappingURL=liquidity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidity.d.ts","sourceRoot":"","sources":["../../src/subpaths/liquidity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,GACZ,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC/D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 添加 / 移除流动性(子路径 `@w3lib/evm-batch-call/liquidity`):V2(Router)、V3(仓位 NFT)、Uniswap V4(PositionManager + Permit2),
3
+ * 包括 Tron 上的 SunSwap V2 / V3。不放在主入口,不用时打包不会带上这部分代码。
4
+ *
5
+ * - build*:只读取、不签名,返回预计的数量和要按顺序发送的交易(授权在前),可以当作报价,也可以交给钱包自己发送
6
+ * - addLiquidity / removeLiquidity / collectFees:构建后用私钥 / ethers Signer / 浏览器钱包签名发送(同 /write 的 batchCall)
7
+ *
8
+ * ```ts
9
+ * import { getLpPositions } from '@w3lib/evm-batch-call/lp'
10
+ * import { addLiquidity, buildAddLiquidity, removeLiquidity } from '@w3lib/evm-batch-call/liquidity'
11
+ *
12
+ * const plan = await buildAddLiquidity(multi, owner, { protocol: 'pancakeswap-v3', tokenA: WBNB, tokenB: USDT, fee: 500, priceLower: 550, priceUpper: 650, amountAFormatted: '1' })
13
+ * await addLiquidity(multi, privateKey, { protocol: 'pancakeswap-v2', tokenA: NATIVE_TOKEN, tokenB: USDT, amountAFormatted: '0.1' })
14
+ * const [position] = await getLpPositions(owner, { chainId: 56 })
15
+ * await removeLiquidity(multi, privateKey, { position, percent: 50 })
16
+ * ```
17
+ */
18
+ export { addLiquidity, buildAddLiquidity, buildCollectFees, buildRemoveLiquidity, collectFees, removeLiquidity, } from '../liquidity/index.js';
19
+ export { PERMIT2_ADDRESS } from '../liquidity/common.js';
20
+ export { getLiquidityForAmounts, getMaxAmounts, getMinAmounts, getMintAmounts, getTickAtSqrtRatio, nearestUsableTick, priceToSqrtPriceX96, priceToTick, } from '../lpMath.js';
21
+ //# sourceMappingURL=liquidity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidity.js","sourceRoot":"","sources":["../../src/subpaths/liquidity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAexD,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,GACZ,MAAM,cAAc,CAAA"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * LP 仓位(子路径 `@w3lib/evm-batch-call/lp`):查一个地址在各 DEX 的流动性仓位——V2 的 LP 代币、V3 / V4 的仓位 NFT,
3
+ * 代币数量、未领取的手续费、可选的美元价值。不放在主入口,不用时打包不会带上这部分代码。
4
+ *
5
+ * ```ts
6
+ * import { getLpPositions } from '@w3lib/evm-batch-call/lp'
7
+ *
8
+ * await getLpPositions(user, { chainId: 56 }) // 节点参数与 getBalances 相同
9
+ * await getLpPositions(user, { chainId: 56, prices: true }) // 带美元价值(DefiLlama)
10
+ * ```
11
+ */
12
+ import { type LpPosition, type LpPositionsOptions } from '../lp.js';
13
+ import { type ShortcutProviderOptions } from '../shortcuts.js';
14
+ export { LP_PROTOCOLS, LP_QUOTE_TOKENS, lpPositions, resolveLpProtocols, type LpConcentratedPosition, type LpPosition, type LpPositionsOptions, type LpProtocol, type LpToken, type LpV2Position, type LpVersion, } from '../lp.js';
15
+ export { decodePositionInfo, keyValueLpScanStorage, memoryLpScanStorage, poolIdOf, type LpScanStorage, type LpV4Options, type V4ScanOptions, type V4ScanProgress, } from '../lpV4.js';
16
+ export { MAX_SQRT_RATIO, MAX_TICK, MIN_SQRT_RATIO, MIN_TICK, getAmountsForLiquidity, getFeeGrowthInside, getFeesEarned, getLiquidityForAmounts, getMaxAmounts, getMinAmounts, getMintAmounts, getSqrtRatioAtTick, getTickAtSqrtRatio, nearestUsableTick, priceToSqrtPriceX96, priceToTick, sqrtPriceToPrice, tickToPrice, } from '../lpMath.js';
17
+ export { defillamaPrices, type PriceSource } from '../owner.js';
18
+ export interface GetLpPositionsOptions extends LpPositionsOptions, ShortcutProviderOptions {
19
+ }
20
+ /**
21
+ * 查一个地址的 LP 仓位(V2 LP 代币、V3 仓位 NFT;V4 仓位 NFT 需要传 v4.tokenIds 或开启 v4.scan),所有合约读取用 multicall 批量完成。
22
+ *
23
+ * ```ts
24
+ * await getLpPositions(user, { chainId: 56 })
25
+ * // [{ version: 'v3', protocol: 'pancakeswap-v3', pool, tokenId: '123', token0: { symbol: 'WBNB', … }, token1: { symbol: 'USDT', … },
26
+ * // amount0Formatted: '1.2', amount1Formatted: '700', fees0Formatted: '0.003', fees1Formatted: '1.8', inRange: true, … },
27
+ * // { version: 'v2', protocol: 'pancakeswap-v2', pool, balance, share: 0.0001, amount0Formatted, amount1Formatted, … }]
28
+ * await getLpPositions(user, { chainId: 56, tokens: heldTokens }) // V2:用持有的代币 × 计价币找池子
29
+ * await getLpPositions(user, { chainId: 56, prices: true }) // 带美元价值,按价值排序
30
+ * ```
31
+ */
32
+ export declare function getLpPositions(owner: string, options?: GetLpPositionsOptions): Promise<LpPosition[]>;
33
+ //# sourceMappingURL=lp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp.d.ts","sourceRoot":"","sources":["../../src/subpaths/lp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAe,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAChF,OAAO,EAAW,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEvE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,SAAS,GACf,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAE/D,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB,EAAE,uBAAuB;CAAG;AAE7F;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAgBxG"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * LP 仓位(子路径 `@w3lib/evm-batch-call/lp`):查一个地址在各 DEX 的流动性仓位——V2 的 LP 代币、V3 / V4 的仓位 NFT,
3
+ * 代币数量、未领取的手续费、可选的美元价值。不放在主入口,不用时打包不会带上这部分代码。
4
+ *
5
+ * ```ts
6
+ * import { getLpPositions } from '@w3lib/evm-batch-call/lp'
7
+ *
8
+ * await getLpPositions(user, { chainId: 56 }) // 节点参数与 getBalances 相同
9
+ * await getLpPositions(user, { chainId: 56, prices: true }) // 带美元价值(DefiLlama)
10
+ * ```
11
+ */
12
+ import { lpPositions } from '../lp.js';
13
+ import { resolve } from '../shortcuts.js';
14
+ export { LP_PROTOCOLS, LP_QUOTE_TOKENS, lpPositions, resolveLpProtocols, } from '../lp.js';
15
+ export { decodePositionInfo, keyValueLpScanStorage, memoryLpScanStorage, poolIdOf, } from '../lpV4.js';
16
+ export { MAX_SQRT_RATIO, MAX_TICK, MIN_SQRT_RATIO, MIN_TICK, getAmountsForLiquidity, getFeeGrowthInside, getFeesEarned, getLiquidityForAmounts, getMaxAmounts, getMinAmounts, getMintAmounts, getSqrtRatioAtTick, getTickAtSqrtRatio, nearestUsableTick, priceToSqrtPriceX96, priceToTick, sqrtPriceToPrice, tickToPrice, } from '../lpMath.js';
17
+ export { defillamaPrices } from '../owner.js';
18
+ /**
19
+ * 查一个地址的 LP 仓位(V2 LP 代币、V3 仓位 NFT;V4 仓位 NFT 需要传 v4.tokenIds 或开启 v4.scan),所有合约读取用 multicall 批量完成。
20
+ *
21
+ * ```ts
22
+ * await getLpPositions(user, { chainId: 56 })
23
+ * // [{ version: 'v3', protocol: 'pancakeswap-v3', pool, tokenId: '123', token0: { symbol: 'WBNB', … }, token1: { symbol: 'USDT', … },
24
+ * // amount0Formatted: '1.2', amount1Formatted: '700', fees0Formatted: '0.003', fees1Formatted: '1.8', inRange: true, … },
25
+ * // { version: 'v2', protocol: 'pancakeswap-v2', pool, balance, share: 0.0001, amount0Formatted, amount1Formatted, … }]
26
+ * await getLpPositions(user, { chainId: 56, tokens: heldTokens }) // V2:用持有的代币 × 计价币找池子
27
+ * await getLpPositions(user, { chainId: 56, prices: true }) // 带美元价值,按价值排序
28
+ * ```
29
+ */
30
+ export function getLpPositions(owner, options = {}) {
31
+ const { provider, overrides, own } = resolve(options, [
32
+ 'protocols',
33
+ 'versions',
34
+ 'pools',
35
+ 'tokens',
36
+ 'quoteTokens',
37
+ 'source',
38
+ 'includeClosed',
39
+ 'maxPositions',
40
+ 'v4',
41
+ 'prices',
42
+ 'onPriceError',
43
+ 'fetch',
44
+ ]);
45
+ return lpPositions(provider, owner, { ...overrides, ...own });
46
+ }
47
+ //# sourceMappingURL=lp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lp.js","sourceRoot":"","sources":["../../src/subpaths/lp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAA4C,MAAM,UAAU,CAAA;AAChF,OAAO,EAAE,OAAO,EAAgC,MAAM,iBAAiB,CAAA;AAEvE,OAAO,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,GAQnB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,GAKT,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,cAAc,EACd,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAA;AAI/D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,UAAiC,EAAE;IAC/E,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;QACpD,WAAW;QACX,UAAU;QACV,OAAO;QACP,QAAQ;QACR,aAAa;QACb,QAAQ;QACR,eAAe;QACf,cAAc;QACd,IAAI;QACJ,QAAQ;QACR,cAAc;QACd,OAAO;KACR,CAAC,CAAA;IACF,OAAO,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;AAC/D,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * 批量写操作(子路径 `@w3lib/evm-batch-call/write`):批量调用合约、一对多转账、多钱包归集。
3
+ * 不放在主入口,只做查询时打包不会带上这部分代码。
4
+ *
5
+ * ```ts
6
+ * import { Provider, NATIVE_TOKEN } from '@w3lib/evm-batch-call'
7
+ * import { batchCall, batchCollect, batchTransfer } from '@w3lib/evm-batch-call/write'
8
+ *
9
+ * const multi = new Provider(56, rpcUrl)
10
+ * await batchTransfer(multi, privateKey, [{ to: a, formatted: '1.5' }, { to: b, formatted: '2' }], { token: USDT })
11
+ * await batchCollect(multi, [key1, key2], hotWallet, { tokens: [USDT, NATIVE_TOKEN], gasWallet: gasKey })
12
+ * await batchCall(multi, [{ from: privateKey, call: usdt.approve(router, amount) }, { from: privateKey, to: router, data }])
13
+ * ```
14
+ */
15
+ export { SIMPLE_7702_ACCOUNT, batchCall, revokeDelegation, type BatchCallMode, type BatchCallOptions, type WriteCall, } from '../write/batch.js';
16
+ export { batchCollect, type BatchCollectOptions, type CollectItemResult, type CollectResult } from '../write/collect.js';
17
+ export { DISPERSE_ADDRESS, batchTransfer, type ApproveResult, type BatchTransferOptions, type TransferItem, type TransferMode, type TransferResult } from '../write/transfer.js';
18
+ export type { SendOptions, TronSendOptions, WriteResult, WriteStatus } from '../write/send.js';
19
+ export type { SignerInput, TronSigner, TronWalletLike, WriteSigner } from '../write/signer.js';
20
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/subpaths/write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChL,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9F,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * 批量写操作(子路径 `@w3lib/evm-batch-call/write`):批量调用合约、一对多转账、多钱包归集。
3
+ * 不放在主入口,只做查询时打包不会带上这部分代码。
4
+ *
5
+ * ```ts
6
+ * import { Provider, NATIVE_TOKEN } from '@w3lib/evm-batch-call'
7
+ * import { batchCall, batchCollect, batchTransfer } from '@w3lib/evm-batch-call/write'
8
+ *
9
+ * const multi = new Provider(56, rpcUrl)
10
+ * await batchTransfer(multi, privateKey, [{ to: a, formatted: '1.5' }, { to: b, formatted: '2' }], { token: USDT })
11
+ * await batchCollect(multi, [key1, key2], hotWallet, { tokens: [USDT, NATIVE_TOKEN], gasWallet: gasKey })
12
+ * await batchCall(multi, [{ from: privateKey, call: usdt.approve(router, amount) }, { from: privateKey, to: router, data }])
13
+ * ```
14
+ */
15
+ export { SIMPLE_7702_ACCOUNT, batchCall, revokeDelegation, } from '../write/batch.js';
16
+ export { batchCollect } from '../write/collect.js';
17
+ export { DISPERSE_ADDRESS, batchTransfer } from '../write/transfer.js';
18
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/subpaths/write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,mBAAmB,EACnB,SAAS,EACT,gBAAgB,GAIjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAwE,MAAM,qBAAqB,CAAA;AACxH,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAA4G,MAAM,sBAAsB,CAAA"}
package/dist/tron.d.ts CHANGED
@@ -62,6 +62,8 @@ export declare class TronProvider implements EthersLikeProvider {
62
62
  * 默认以当前连接的钱包地址作为调用者(预执行时 msg.sender 即用户)。
63
63
  */
64
64
  static fromTronWeb(tronWeb: TronWebLike, options?: Omit<TronProviderOptions, 'request' | 'fullHost'>): TronProvider;
65
+ /** 直接请求 HTTP API(如 'wallet/getnowblock'),同样经过限流和 429 退避(写操作模块用) */
66
+ request(path: string, body?: Record<string, unknown>): Promise<any>;
65
67
  call(tx: TransactionRequest): Promise<string>;
66
68
  /** chainId = 创世区块哈希的最后 4 字节(与 TronGrid /jsonrpc 的 eth_chainId 一致,主网 728126428) */
67
69
  getChainId(): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../src/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,kBAAkB,EACxB,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,sDAAsD;AACtD,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAIV,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcpD;AAED,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWrD;AAMD,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,QAAQ,EAAE;QAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrH,cAAc,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;CAC7C;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;AAEvF,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;CACzD;AAcD;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,kBAAkB;;gBAUzC,OAAO,GAAE,mBAAwB;IA6B7C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAM,GAAG,YAAY;IAQjH,IAAI,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiDnD,kFAAkF;IAC5E,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAS7B,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAmDxE"}
1
+ {"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../src/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,kBAAkB,EACxB,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,sDAAsD;AACtD,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAIV,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcpD;AAED,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWrD;AAMD,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,QAAQ,EAAE;QAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrH,cAAc,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;CAC7C;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;AAEvF,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;CACzD;AAcD;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,kBAAkB;;gBAUzC,OAAO,GAAE,mBAAwB;IA6B7C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAM,GAAG,YAAY;IAQvH,mEAAmE;IACnE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjE,IAAI,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiDnD,kFAAkF;IAC5E,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAS7B,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAmDxE"}
package/dist/tron.js CHANGED
@@ -111,6 +111,10 @@ export class TronProvider {
111
111
  request: (path, body) => tronWeb.fullNode.request(path, body, 'post'),
112
112
  });
113
113
  }
114
+ /** 直接请求 HTTP API(如 'wallet/getnowblock'),同样经过限流和 429 退避(写操作模块用) */
115
+ request(path, body = {}) {
116
+ return this.#limit(() => this.#request(path, body));
117
+ }
114
118
  async call(tx) {
115
119
  assertLatest(tx.blockTag);
116
120
  const body = {