viem 0.0.1-alpha.18 → 0.0.1-alpha.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chains.js +5 -5
- package/dist/chains.mjs +1 -1
- package/dist/{chunk-3EXLRM3B.js → chunk-24EKKMUO.js} +12 -12
- package/dist/{chunk-3EXLRM3B.js.map → chunk-24EKKMUO.js.map} +0 -0
- package/dist/{chunk-6CXRXH25.js → chunk-BZFF747V.js} +2 -2
- package/dist/{chunk-6CXRXH25.js.map → chunk-BZFF747V.js.map} +0 -0
- package/dist/{chunk-XQZRYOPA.js → chunk-CTU4PQLY.js} +14 -14
- package/dist/{chunk-XQZRYOPA.js.map → chunk-CTU4PQLY.js.map} +0 -0
- package/dist/{chunk-TO7QJO5X.mjs → chunk-E7LH5H76.mjs} +2 -2
- package/dist/{chunk-TO7QJO5X.mjs.map → chunk-E7LH5H76.mjs.map} +0 -0
- package/dist/{chunk-BW2LPGYJ.js → chunk-HRE6LYF3.js} +13 -13
- package/dist/{chunk-BW2LPGYJ.js.map → chunk-HRE6LYF3.js.map} +0 -0
- package/dist/{chunk-OGQGNULX.mjs → chunk-IVWG22RQ.mjs} +14 -3
- package/dist/chunk-IVWG22RQ.mjs.map +1 -0
- package/dist/{chunk-3E5WSIQU.mjs → chunk-NSRORL3O.mjs} +2 -2
- package/dist/{chunk-3E5WSIQU.mjs.map → chunk-NSRORL3O.mjs.map} +0 -0
- package/dist/{chunk-A4HJ47I6.js → chunk-NYMS65YI.js} +69 -58
- package/dist/chunk-NYMS65YI.js.map +1 -0
- package/dist/{chunk-NSPSPOUF.mjs → chunk-PHSAQQGZ.mjs} +2 -2
- package/dist/{chunk-NSPSPOUF.mjs.map → chunk-PHSAQQGZ.mjs.map} +0 -0
- package/dist/{chunk-Y3PSHZGB.mjs → chunk-VAT5CEF7.mjs} +2 -2
- package/dist/{chunk-Y3PSHZGB.mjs.map → chunk-VAT5CEF7.mjs.map} +0 -0
- package/dist/clients/index.d.ts +6 -6
- package/dist/clients/index.js +3 -3
- package/dist/clients/index.mjs +2 -2
- package/dist/{createClient-aadeff37.d.ts → createClient-03ba79e8.d.ts} +1 -1
- package/dist/{createPublicClient-88f35518.d.ts → createPublicClient-818241ba.d.ts} +2 -2
- package/dist/{createTestClient-fbf66ec2.d.ts → createTestClient-24eb7be8.d.ts} +2 -2
- package/dist/{createWalletClient-b13dabd6.d.ts → createWalletClient-7cbd6ad1.d.ts} +2 -2
- package/dist/{eip1193-3a40c941.d.ts → eip1193-71d8e27d.d.ts} +1 -1
- package/dist/index.d.ts +26 -13
- package/dist/index.js +8 -6
- package/dist/index.mjs +7 -5
- package/dist/public.d.ts +6 -6
- package/dist/public.js +4 -4
- package/dist/public.mjs +3 -3
- package/dist/{sendTransaction-bd109cd4.d.ts → sendTransaction-d09961a7.d.ts} +1 -1
- package/dist/{stopImpersonatingAccount-6603ebdd.d.ts → stopImpersonatingAccount-c8a00be7.d.ts} +1 -1
- package/dist/test.d.ts +4 -4
- package/dist/test.js +3 -3
- package/dist/test.mjs +2 -2
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.mjs +1 -1
- package/dist/wallet.d.ts +5 -5
- package/dist/wallet.js +3 -3
- package/dist/wallet.mjs +2 -2
- package/dist/{watchAsset-7ef25553.d.ts → watchAsset-c39645b7.d.ts} +2 -2
- package/dist/{watchPendingTransactions-7cbbef80.d.ts → watchPendingTransactions-01e6be4f.d.ts} +3 -3
- package/dist/{webSocket-2a77cdb3.d.ts → webSocket-3a00015b.d.ts} +1 -1
- package/dist/window.d.ts +1 -1
- package/package.json +1 -1
- package/src/actions/index.test.ts +1 -0
- package/src/actions/index.ts +3 -0
- package/src/actions/public/getStorageAt.test.ts +34 -0
- package/src/actions/public/getStorageAt.ts +32 -0
- package/src/actions/public/index.test.ts +1 -0
- package/src/actions/public/index.ts +3 -0
- package/src/index.test.ts +1 -0
- package/src/index.ts +3 -0
- package/src/types/eip1193.ts +1 -1
- package/dist/chunk-A4HJ47I6.js.map +0 -1
- package/dist/chunk-OGQGNULX.mjs.map +0 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
2
2
|
|
3
|
-
var
|
3
|
+
var _chunkHRE6LYF3js = require('./chunk-HRE6LYF3.js');
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -25,7 +25,7 @@ var _chunkBW2LPGYJjs = require('./chunk-BW2LPGYJ.js');
|
|
25
25
|
|
26
26
|
|
27
27
|
|
28
|
-
var
|
28
|
+
var _chunkBZFF747Vjs = require('./chunk-BZFF747V.js');
|
29
29
|
|
30
30
|
// src/actions/public/call.ts
|
31
31
|
async function call(client, {
|
@@ -45,10 +45,10 @@ async function call(client, {
|
|
45
45
|
...rest
|
46
46
|
}) {
|
47
47
|
if (maxFeePerGas !== void 0 && maxPriorityFeePerGas !== void 0 && maxFeePerGas < maxPriorityFeePerGas)
|
48
|
-
throw new (0,
|
49
|
-
const blockNumberHex = blockNumber ?
|
48
|
+
throw new (0, _chunkBZFF747Vjs.InvalidGasArgumentsError)();
|
49
|
+
const blockNumberHex = blockNumber ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
50
50
|
const formatter = _optionalChain([chain, 'optionalAccess', _ => _.formatters, 'optionalAccess', _2 => _2.transactionRequest]);
|
51
|
-
const request_ =
|
51
|
+
const request_ = _chunkBZFF747Vjs.format.call(void 0,
|
52
52
|
{
|
53
53
|
from,
|
54
54
|
accessList,
|
@@ -60,10 +60,10 @@ async function call(client, {
|
|
60
60
|
nonce,
|
61
61
|
to,
|
62
62
|
value,
|
63
|
-
...
|
63
|
+
..._chunkBZFF747Vjs.extract.call(void 0, rest, { formatter })
|
64
64
|
},
|
65
65
|
{
|
66
|
-
formatter: formatter ||
|
66
|
+
formatter: formatter || _chunkBZFF747Vjs.formatTransactionRequest
|
67
67
|
}
|
68
68
|
);
|
69
69
|
const response = await client.request({
|
@@ -83,7 +83,7 @@ async function simulateContract(client, {
|
|
83
83
|
functionName,
|
84
84
|
...callRequest
|
85
85
|
}) {
|
86
|
-
const calldata =
|
86
|
+
const calldata = _chunkBZFF747Vjs.encodeFunctionData.call(void 0, {
|
87
87
|
abi,
|
88
88
|
args,
|
89
89
|
functionName
|
@@ -94,7 +94,7 @@ async function simulateContract(client, {
|
|
94
94
|
to: address,
|
95
95
|
...callRequest
|
96
96
|
});
|
97
|
-
const result =
|
97
|
+
const result = _chunkBZFF747Vjs.decodeFunctionResult.call(void 0, {
|
98
98
|
abi,
|
99
99
|
functionName,
|
100
100
|
data: data || "0x"
|
@@ -110,7 +110,7 @@ async function simulateContract(client, {
|
|
110
110
|
}
|
111
111
|
};
|
112
112
|
} catch (err) {
|
113
|
-
throw
|
113
|
+
throw _chunkBZFF747Vjs.getContractError.call(void 0, err, {
|
114
114
|
abi,
|
115
115
|
address,
|
116
116
|
args,
|
@@ -138,12 +138,12 @@ async function createBlockFilter(client) {
|
|
138
138
|
|
139
139
|
// src/actions/public/deployContract.ts
|
140
140
|
function deployContract(walletClient, { abi, args, bytecode, ...request }) {
|
141
|
-
const calldata =
|
141
|
+
const calldata = _chunkBZFF747Vjs.encodeDeployData.call(void 0, {
|
142
142
|
abi,
|
143
143
|
args,
|
144
144
|
bytecode
|
145
145
|
});
|
146
|
-
return
|
146
|
+
return _chunkHRE6LYF3js.sendTransaction.call(void 0, walletClient, {
|
147
147
|
...request,
|
148
148
|
data: calldata
|
149
149
|
});
|
@@ -162,16 +162,16 @@ async function estimateGas(client, {
|
|
162
162
|
to,
|
163
163
|
value
|
164
164
|
}) {
|
165
|
-
const blockNumberHex = blockNumber ?
|
165
|
+
const blockNumberHex = blockNumber ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
166
166
|
const parameters = {
|
167
167
|
data,
|
168
168
|
from,
|
169
|
-
gas: gas ?
|
170
|
-
gasPrice: gasPrice ?
|
171
|
-
maxFeePerGas: maxFeePerGas ?
|
172
|
-
maxPriorityFeePerGas: maxPriorityFeePerGas ?
|
169
|
+
gas: gas ? _chunkBZFF747Vjs.numberToHex.call(void 0, gas) : void 0,
|
170
|
+
gasPrice: gasPrice ? _chunkBZFF747Vjs.numberToHex.call(void 0, gasPrice) : void 0,
|
171
|
+
maxFeePerGas: maxFeePerGas ? _chunkBZFF747Vjs.numberToHex.call(void 0, maxFeePerGas) : void 0,
|
172
|
+
maxPriorityFeePerGas: maxPriorityFeePerGas ? _chunkBZFF747Vjs.numberToHex.call(void 0, maxPriorityFeePerGas) : void 0,
|
173
173
|
to,
|
174
|
-
value: value ?
|
174
|
+
value: value ? _chunkBZFF747Vjs.numberToHex.call(void 0, value) : void 0
|
175
175
|
};
|
176
176
|
const balance = await client.request({
|
177
177
|
method: "eth_estimateGas",
|
@@ -182,7 +182,7 @@ async function estimateGas(client, {
|
|
182
182
|
|
183
183
|
// src/actions/public/getBalance.ts
|
184
184
|
async function getBalance(client, { address, blockNumber, blockTag = "latest" }) {
|
185
|
-
const blockNumberHex = blockNumber ?
|
185
|
+
const blockNumberHex = blockNumber ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
186
186
|
const balance = await client.request({
|
187
187
|
method: "eth_getBalance",
|
188
188
|
params: [address, blockNumberHex || blockTag]
|
@@ -197,7 +197,7 @@ async function getBlock(client, {
|
|
197
197
|
blockTag = "latest",
|
198
198
|
includeTransactions = false
|
199
199
|
} = {}) {
|
200
|
-
const blockNumberHex = blockNumber !== void 0 ?
|
200
|
+
const blockNumberHex = blockNumber !== void 0 ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
201
201
|
let block = null;
|
202
202
|
if (blockHash) {
|
203
203
|
block = await client.request({
|
@@ -211,19 +211,19 @@ async function getBlock(client, {
|
|
211
211
|
});
|
212
212
|
}
|
213
213
|
if (!block)
|
214
|
-
throw new (0,
|
215
|
-
return
|
216
|
-
formatter: _optionalChain([client, 'access', _3 => _3.chain, 'optionalAccess', _4 => _4.formatters, 'optionalAccess', _5 => _5.block]) ||
|
214
|
+
throw new (0, _chunkBZFF747Vjs.BlockNotFoundError)({ blockHash, blockNumber });
|
215
|
+
return _chunkBZFF747Vjs.format.call(void 0, block, {
|
216
|
+
formatter: _optionalChain([client, 'access', _3 => _3.chain, 'optionalAccess', _4 => _4.formatters, 'optionalAccess', _5 => _5.block]) || _chunkBZFF747Vjs.formatBlock
|
217
217
|
});
|
218
218
|
}
|
219
219
|
|
220
220
|
// src/actions/public/getBlockNumber.ts
|
221
221
|
var cacheKey = (id) => `blockNumber.${id}`;
|
222
222
|
function getBlockNumberCache(id) {
|
223
|
-
return
|
223
|
+
return _chunkBZFF747Vjs.getCache.call(void 0, cacheKey(id));
|
224
224
|
}
|
225
225
|
async function getBlockNumber(client, { maxAge = client.pollingInterval } = {}) {
|
226
|
-
const blockNumberHex = await
|
226
|
+
const blockNumberHex = await _chunkBZFF747Vjs.withCache.call(void 0,
|
227
227
|
() => client.request({
|
228
228
|
method: "eth_blockNumber"
|
229
229
|
}),
|
@@ -238,7 +238,7 @@ async function getBlockTransactionCount(client, {
|
|
238
238
|
blockNumber,
|
239
239
|
blockTag = "latest"
|
240
240
|
} = {}) {
|
241
|
-
const blockNumberHex = blockNumber !== void 0 ?
|
241
|
+
const blockNumberHex = blockNumber !== void 0 ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
242
242
|
let count = null;
|
243
243
|
if (blockHash) {
|
244
244
|
count = await client.request({
|
@@ -251,12 +251,12 @@ async function getBlockTransactionCount(client, {
|
|
251
251
|
params: [blockNumberHex || blockTag]
|
252
252
|
});
|
253
253
|
}
|
254
|
-
return
|
254
|
+
return _chunkBZFF747Vjs.hexToNumber.call(void 0, count);
|
255
255
|
}
|
256
256
|
|
257
257
|
// src/actions/public/getBytecode.ts
|
258
258
|
async function getBytecode(client, { address, blockNumber, blockTag = "latest" }) {
|
259
|
-
const blockNumberHex = blockNumber !== void 0 ?
|
259
|
+
const blockNumberHex = blockNumber !== void 0 ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
260
260
|
const hex = await client.request({
|
261
261
|
method: "eth_getCode",
|
262
262
|
params: [address, blockNumberHex || blockTag]
|
@@ -269,7 +269,7 @@ async function getBytecode(client, { address, blockNumber, blockTag = "latest" }
|
|
269
269
|
// src/actions/public/getChainId.ts
|
270
270
|
async function getChainId(client) {
|
271
271
|
const chainIdHex = await client.request({ method: "eth_chainId" });
|
272
|
-
return
|
272
|
+
return _chunkBZFF747Vjs.hexToNumber.call(void 0, chainIdHex);
|
273
273
|
}
|
274
274
|
|
275
275
|
// src/actions/public/getFeeHistory.ts
|
@@ -279,16 +279,16 @@ async function getFeeHistory(client, {
|
|
279
279
|
blockTag = "latest",
|
280
280
|
rewardPercentiles
|
281
281
|
}) {
|
282
|
-
const blockNumberHex = blockNumber ?
|
282
|
+
const blockNumberHex = blockNumber ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
283
283
|
const feeHistory = await client.request({
|
284
284
|
method: "eth_feeHistory",
|
285
285
|
params: [
|
286
|
-
|
286
|
+
_chunkBZFF747Vjs.numberToHex.call(void 0, blockCount),
|
287
287
|
blockNumberHex || blockTag,
|
288
288
|
rewardPercentiles
|
289
289
|
]
|
290
290
|
});
|
291
|
-
return
|
291
|
+
return _chunkBZFF747Vjs.formatFeeHistory.call(void 0, feeHistory);
|
292
292
|
}
|
293
293
|
|
294
294
|
// src/actions/public/getFilterChanges.ts
|
@@ -298,7 +298,7 @@ async function getFilterChanges(client, { filter }) {
|
|
298
298
|
params: [filter.id]
|
299
299
|
});
|
300
300
|
return logs.map(
|
301
|
-
(log) => typeof log === "string" ? log :
|
301
|
+
(log) => typeof log === "string" ? log : _chunkBZFF747Vjs.formatLog.call(void 0, log)
|
302
302
|
);
|
303
303
|
}
|
304
304
|
|
@@ -308,7 +308,7 @@ async function getFilterLogs(client, { filter }) {
|
|
308
308
|
method: "eth_getFilterLogs",
|
309
309
|
params: [filter.id]
|
310
310
|
});
|
311
|
-
return logs.map(
|
311
|
+
return logs.map(_chunkBZFF747Vjs.formatLog);
|
312
312
|
}
|
313
313
|
|
314
314
|
// src/actions/public/getGasPrice.ts
|
@@ -324,7 +324,7 @@ function buildFilterTopics({
|
|
324
324
|
event,
|
325
325
|
args: _args
|
326
326
|
}) {
|
327
|
-
const signature =
|
327
|
+
const signature = _chunkBZFF747Vjs.getEventSignature.call(void 0, event);
|
328
328
|
return [signature];
|
329
329
|
}
|
330
330
|
|
@@ -354,13 +354,23 @@ async function getLogs(client, {
|
|
354
354
|
{
|
355
355
|
address,
|
356
356
|
topics,
|
357
|
-
fromBlock: typeof fromBlock === "bigint" ?
|
358
|
-
toBlock: typeof toBlock === "bigint" ?
|
357
|
+
fromBlock: typeof fromBlock === "bigint" ? _chunkBZFF747Vjs.numberToHex.call(void 0, fromBlock) : fromBlock,
|
358
|
+
toBlock: typeof toBlock === "bigint" ? _chunkBZFF747Vjs.numberToHex.call(void 0, toBlock) : toBlock
|
359
359
|
}
|
360
360
|
]
|
361
361
|
});
|
362
362
|
}
|
363
|
-
return logs.map(
|
363
|
+
return logs.map(_chunkBZFF747Vjs.formatLog);
|
364
|
+
}
|
365
|
+
|
366
|
+
// src/actions/public/getStorageAt.ts
|
367
|
+
async function getStorageAt(client, { address, blockNumber, blockTag = "latest", slot }) {
|
368
|
+
const blockNumberHex = blockNumber !== void 0 ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
369
|
+
const data = await client.request({
|
370
|
+
method: "eth_getStorageAt",
|
371
|
+
params: [address, slot, blockNumberHex || blockTag]
|
372
|
+
});
|
373
|
+
return data;
|
364
374
|
}
|
365
375
|
|
366
376
|
// src/actions/public/getTransaction.ts
|
@@ -371,7 +381,7 @@ async function getTransaction(client, {
|
|
371
381
|
hash,
|
372
382
|
index
|
373
383
|
}) {
|
374
|
-
const blockNumberHex = blockNumber !== void 0 ?
|
384
|
+
const blockNumberHex = blockNumber !== void 0 ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : void 0;
|
375
385
|
let transaction = null;
|
376
386
|
if (hash) {
|
377
387
|
transaction = await client.request({
|
@@ -381,24 +391,24 @@ async function getTransaction(client, {
|
|
381
391
|
} else if (blockHash) {
|
382
392
|
transaction = await client.request({
|
383
393
|
method: "eth_getTransactionByBlockHashAndIndex",
|
384
|
-
params: [blockHash,
|
394
|
+
params: [blockHash, _chunkBZFF747Vjs.numberToHex.call(void 0, index)]
|
385
395
|
});
|
386
396
|
} else if (blockNumberHex || blockTag) {
|
387
397
|
transaction = await client.request({
|
388
398
|
method: "eth_getTransactionByBlockNumberAndIndex",
|
389
|
-
params: [blockNumberHex || blockTag,
|
399
|
+
params: [blockNumberHex || blockTag, _chunkBZFF747Vjs.numberToHex.call(void 0, index)]
|
390
400
|
});
|
391
401
|
}
|
392
402
|
if (!transaction)
|
393
|
-
throw new (0,
|
403
|
+
throw new (0, _chunkBZFF747Vjs.TransactionNotFoundError)({
|
394
404
|
blockHash,
|
395
405
|
blockNumber,
|
396
406
|
blockTag,
|
397
407
|
hash,
|
398
408
|
index
|
399
409
|
});
|
400
|
-
return
|
401
|
-
formatter: _optionalChain([client, 'access', _6 => _6.chain, 'optionalAccess', _7 => _7.formatters, 'optionalAccess', _8 => _8.transaction]) ||
|
410
|
+
return _chunkBZFF747Vjs.format.call(void 0, transaction, {
|
411
|
+
formatter: _optionalChain([client, 'access', _6 => _6.chain, 'optionalAccess', _7 => _7.formatters, 'optionalAccess', _8 => _8.transaction]) || _chunkBZFF747Vjs.formatTransaction
|
402
412
|
});
|
403
413
|
}
|
404
414
|
|
@@ -418,9 +428,9 @@ async function getTransactionConfirmations(client, { hash, transactionReceipt })
|
|
418
428
|
async function getTransactionCount(client, { address, blockTag = "latest", blockNumber }) {
|
419
429
|
const count = await client.request({
|
420
430
|
method: "eth_getTransactionCount",
|
421
|
-
params: [address, blockNumber ?
|
431
|
+
params: [address, blockNumber ? _chunkBZFF747Vjs.numberToHex.call(void 0, blockNumber) : blockTag]
|
422
432
|
});
|
423
|
-
return
|
433
|
+
return _chunkBZFF747Vjs.hexToNumber.call(void 0, count);
|
424
434
|
}
|
425
435
|
|
426
436
|
// src/actions/public/getTransactionReceipt.ts
|
@@ -430,9 +440,9 @@ async function getTransactionReceipt(client, { hash }) {
|
|
430
440
|
params: [hash]
|
431
441
|
});
|
432
442
|
if (!receipt)
|
433
|
-
throw new (0,
|
434
|
-
return
|
435
|
-
formatter: _optionalChain([client, 'access', _11 => _11.chain, 'optionalAccess', _12 => _12.formatters, 'optionalAccess', _13 => _13.transactionReceipt]) ||
|
443
|
+
throw new (0, _chunkBZFF747Vjs.TransactionReceiptNotFoundError)({ hash });
|
444
|
+
return _chunkBZFF747Vjs.format.call(void 0, receipt, {
|
445
|
+
formatter: _optionalChain([client, 'access', _11 => _11.chain, 'optionalAccess', _12 => _12.formatters, 'optionalAccess', _13 => _13.transactionReceipt]) || _chunkBZFF747Vjs.formatTransactionReceipt
|
436
446
|
});
|
437
447
|
}
|
438
448
|
|
@@ -444,7 +454,7 @@ async function readContract(client, {
|
|
444
454
|
functionName,
|
445
455
|
...callRequest
|
446
456
|
}) {
|
447
|
-
const calldata =
|
457
|
+
const calldata = _chunkBZFF747Vjs.encodeFunctionData.call(void 0, {
|
448
458
|
abi,
|
449
459
|
args,
|
450
460
|
functionName
|
@@ -455,13 +465,13 @@ async function readContract(client, {
|
|
455
465
|
to: address,
|
456
466
|
...callRequest
|
457
467
|
});
|
458
|
-
return
|
468
|
+
return _chunkBZFF747Vjs.decodeFunctionResult.call(void 0, {
|
459
469
|
abi,
|
460
470
|
functionName,
|
461
471
|
data: data || "0x"
|
462
472
|
});
|
463
473
|
} catch (err) {
|
464
|
-
throw
|
474
|
+
throw _chunkBZFF747Vjs.getContractError.call(void 0, err, {
|
465
475
|
abi,
|
466
476
|
address,
|
467
477
|
args,
|
@@ -529,12 +539,12 @@ function poll(fn, { emitOnBegin, initialWaitTime, interval }) {
|
|
529
539
|
if (emitOnBegin)
|
530
540
|
data = await fn({ unpoll: unwatch });
|
531
541
|
const initialWait = await _asyncNullishCoalesce(await _optionalChain([initialWaitTime, 'optionalCall', _17 => _17(data)]), async () => ( interval));
|
532
|
-
await
|
542
|
+
await _chunkBZFF747Vjs.wait.call(void 0, initialWait);
|
533
543
|
const poll2 = async () => {
|
534
544
|
if (!active)
|
535
545
|
return;
|
536
546
|
await fn({ unpoll: unwatch });
|
537
|
-
await
|
547
|
+
await _chunkBZFF747Vjs.wait.call(void 0, interval);
|
538
548
|
poll2();
|
539
549
|
};
|
540
550
|
poll2();
|
@@ -715,7 +725,7 @@ async function waitForTransactionReceipt(client, {
|
|
715
725
|
return new Promise((resolve, reject) => {
|
716
726
|
if (timeout)
|
717
727
|
setTimeout(
|
718
|
-
() => reject(new (0,
|
728
|
+
() => reject(new (0, _chunkBZFF747Vjs.WaitForTransactionReceiptTimeoutError)({ hash })),
|
719
729
|
timeout
|
720
730
|
);
|
721
731
|
const unobserve = observe(
|
@@ -745,7 +755,7 @@ async function waitForTransactionReceipt(client, {
|
|
745
755
|
return;
|
746
756
|
done(() => emit.resolve(receipt));
|
747
757
|
} catch (err) {
|
748
|
-
if (transaction && (err instanceof
|
758
|
+
if (transaction && (err instanceof _chunkBZFF747Vjs.TransactionNotFoundError || err instanceof _chunkBZFF747Vjs.TransactionReceiptNotFoundError)) {
|
749
759
|
replacedTransaction = transaction;
|
750
760
|
const block = await getBlock(client, {
|
751
761
|
blockNumber,
|
@@ -817,5 +827,6 @@ async function waitForTransactionReceipt(client, {
|
|
817
827
|
|
818
828
|
|
819
829
|
|
820
|
-
|
821
|
-
|
830
|
+
|
831
|
+
exports.call = call; exports.simulateContract = simulateContract; exports.createPendingTransactionFilter = createPendingTransactionFilter; exports.createBlockFilter = createBlockFilter; exports.deployContract = deployContract; exports.estimateGas = estimateGas; exports.getBalance = getBalance; exports.getBlock = getBlock; exports.getBlockNumberCache = getBlockNumberCache; exports.getBlockNumber = getBlockNumber; exports.getBlockTransactionCount = getBlockTransactionCount; exports.getBytecode = getBytecode; exports.getChainId = getChainId; exports.getFeeHistory = getFeeHistory; exports.getFilterChanges = getFilterChanges; exports.getFilterLogs = getFilterLogs; exports.getGasPrice = getGasPrice; exports.getLogs = getLogs; exports.getStorageAt = getStorageAt; exports.getTransaction = getTransaction; exports.getTransactionConfirmations = getTransactionConfirmations; exports.getTransactionCount = getTransactionCount; exports.getTransactionReceipt = getTransactionReceipt; exports.readContract = readContract; exports.uninstallFilter = uninstallFilter; exports.waitForTransactionReceipt = waitForTransactionReceipt; exports.watchBlockNumber = watchBlockNumber; exports.watchBlocks = watchBlocks; exports.watchPendingTransactions = watchPendingTransactions;
|
832
|
+
//# sourceMappingURL=chunk-NYMS65YI.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/actions/public/call.ts","../src/actions/public/simulateContract.ts","../src/actions/public/createPendingTransactionFilter.ts","../src/actions/public/createBlockFilter.ts","../src/actions/public/deployContract.ts","../src/actions/public/estimateGas.ts","../src/actions/public/getBalance.ts","../src/actions/public/getBlock.ts","../src/actions/public/getBlockNumber.ts","../src/actions/public/getBlockTransactionCount.ts","../src/actions/public/getBytecode.ts","../src/actions/public/getChainId.ts","../src/actions/public/getFeeHistory.ts","../src/actions/public/getFilterChanges.ts","../src/actions/public/getFilterLogs.ts","../src/actions/public/getGasPrice.ts","../src/actions/public/createEventFilter.ts","../src/actions/public/getLogs.ts","../src/actions/public/getStorageAt.ts","../src/actions/public/getTransaction.ts","../src/actions/public/getTransactionConfirmations.ts","../src/actions/public/getTransactionCount.ts","../src/actions/public/getTransactionReceipt.ts","../src/actions/public/readContract.ts","../src/actions/public/uninstallFilter.ts","../src/utils/observe.ts","../src/utils/poll.ts","../src/actions/public/watchBlockNumber.ts","../src/actions/public/watchBlocks.ts","../src/actions/public/watchPendingTransactions.ts","../src/actions/public/waitForTransactionReceipt.ts"],"names":["listeners","cleanup","poll","block"],"mappings":"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","sourcesContent":["import type { Chain, Formatter } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport { InvalidGasArgumentsError } from '../../errors'\nimport type {\n Address,\n BlockTag,\n Hex,\n MergeIntersectionProperties,\n TransactionRequest,\n} from '../../types'\nimport { extract, Formatted, TransactionRequestFormatter } from '../../utils'\nimport { format, formatTransactionRequest, numberToHex } from '../../utils'\n\nexport type FormattedCall<\n TFormatter extends Formatter | undefined = Formatter,\n> = MergeIntersectionProperties<\n Formatted<TFormatter, TransactionRequest, true>,\n TransactionRequest\n>\n\nexport type CallArgs<TChain extends Chain = Chain> = FormattedCall<\n TransactionRequestFormatter<TChain>\n> & {\n chain?: TChain\n from?: Address\n} & (\n | {\n /** The balance of the account at a block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockNumber?: never\n /** The balance of the account at a block tag. */\n blockTag?: BlockTag\n }\n )\n\nexport type CallResponse = { data: Hex | undefined }\n\nexport async function call<TChain extends Chain>(\n client: PublicClient,\n {\n blockNumber,\n blockTag = 'latest',\n chain,\n from,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest\n }: CallArgs<TChain>,\n): Promise<CallResponse> {\n if (\n maxFeePerGas !== undefined &&\n maxPriorityFeePerGas !== undefined &&\n maxFeePerGas < maxPriorityFeePerGas\n )\n throw new InvalidGasArgumentsError()\n\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n\n const formatter = chain?.formatters?.transactionRequest\n const request_ = format(\n {\n from,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { formatter }),\n } as TransactionRequest,\n {\n formatter: formatter || formatTransactionRequest,\n },\n )\n\n const response = await client.request({\n method: 'eth_call',\n params: [request_, blockNumberHex || blockTag],\n })\n if (response === '0x') return { data: undefined }\n return { data: response }\n}\n","import { Abi } from 'abitype'\n\nimport type { Chain, Formatter } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport type {\n Address,\n ExtractArgsFromAbi,\n ExtractResultFromAbi,\n ExtractFunctionNameFromAbi,\n GetValue,\n} from '../../types'\nimport {\n EncodeFunctionDataArgs,\n decodeFunctionResult,\n encodeFunctionData,\n getContractError,\n} from '../../utils'\nimport { WriteContractArgs } from '../wallet'\nimport { call, CallArgs } from './call'\n\nexport type SimulateContractArgs<\n TChain extends Chain = Chain,\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = any,\n> = Omit<CallArgs<TChain>, 'to' | 'data' | 'value'> & {\n address: Address\n abi: TAbi\n functionName: ExtractFunctionNameFromAbi<\n TAbi,\n TFunctionName,\n 'payable' | 'nonpayable'\n >\n value?: GetValue<TAbi, TFunctionName, CallArgs<TChain>['value']>\n} & ExtractArgsFromAbi<TAbi, TFunctionName>\n\nexport type SimulateContractResponse<\n TChain extends Chain = Chain,\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = string,\n> = {\n result: ExtractResultFromAbi<TAbi, TFunctionName>\n request: WriteContractArgs<TChain, TAbi, TFunctionName> & {\n address: Address\n abi: TAbi\n functionName: ExtractFunctionNameFromAbi<TAbi, TFunctionName>\n } & ExtractArgsFromAbi<TAbi, TFunctionName>\n}\n\nexport async function simulateContract<\n TChain extends Chain,\n TAbi extends Abi = Abi,\n TFunctionName extends string = any,\n>(\n client: PublicClient,\n {\n abi,\n address,\n args,\n functionName,\n ...callRequest\n }: SimulateContractArgs<TChain, TAbi, TFunctionName>,\n): Promise<SimulateContractResponse<TChain, TAbi, TFunctionName>> {\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataArgs<TAbi, TFunctionName>)\n try {\n const { data } = await call(client, {\n data: calldata,\n to: address,\n ...callRequest,\n } as unknown as CallArgs<TChain>)\n const result = decodeFunctionResult({\n abi,\n functionName,\n data: data || '0x',\n })\n return {\n result,\n request: {\n abi,\n address,\n args,\n functionName,\n ...callRequest,\n },\n } as unknown as SimulateContractResponse<TChain, TAbi, TFunctionName>\n } catch (err) {\n throw getContractError(err, {\n abi,\n address,\n args,\n functionName,\n sender: callRequest.from,\n })\n }\n}\n","import type { PublicClient } from '../../clients'\n\nimport type { Filter } from '../../types'\n\nexport type CreatePendingTransactionFilterResponse = Filter<'transaction'>\n\nexport async function createPendingTransactionFilter(\n client: PublicClient,\n): Promise<CreatePendingTransactionFilterResponse> {\n const id = await client.request({\n method: 'eth_newPendingTransactionFilter',\n })\n return { id, type: 'transaction' }\n}\n","import type { PublicClient } from '../../clients'\n\nimport type { Filter } from '../../types'\n\nexport type CreateBlockFilterResponse = Filter<'block'>\n\nexport async function createBlockFilter(\n client: PublicClient,\n): Promise<CreateBlockFilterResponse> {\n const id = await client.request({\n method: 'eth_newBlockFilter',\n })\n return { id, type: 'block' }\n}\n","import { Abi } from 'abitype'\nimport { Chain } from '../../chains'\nimport { WalletClient } from '../../clients'\n\nimport { ExtractConstructorArgsFromAbi, Hex } from '../../types'\nimport { encodeDeployData } from '../../utils'\nimport {\n sendTransaction,\n SendTransactionArgs,\n SendTransactionResponse,\n} from '../wallet'\n\nexport type DeployContractArgs<\n TChain extends Chain = Chain,\n TAbi extends Abi = Abi,\n> = Omit<\n SendTransactionArgs<TChain>,\n 'accessList' | 'to' | 'data' | 'value'\n> & {\n abi: TAbi\n bytecode: Hex\n} & ExtractConstructorArgsFromAbi<TAbi>\n\nexport type DeployContractResponse = SendTransactionResponse\n\nexport function deployContract<TChain extends Chain, TAbi extends Abi = Abi>(\n walletClient: WalletClient,\n { abi, args, bytecode, ...request }: DeployContractArgs<TChain, TAbi>,\n): Promise<DeployContractResponse> {\n const calldata = encodeDeployData({\n abi,\n args,\n bytecode,\n } as unknown as DeployContractArgs<TChain, TAbi>)\n return sendTransaction(walletClient, {\n ...request,\n data: calldata,\n } as unknown as SendTransactionArgs<TChain>)\n}\n","import type { PublicClient } from '../../clients'\nimport type {\n BlockTag,\n EstimateGasParameters,\n RpcEstimateGasParameters,\n} from '../../types'\nimport { numberToHex } from '../../utils'\n\nexport type EstimateGasArgs = EstimateGasParameters &\n (\n | {\n /** The balance of the account at a block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockNumber?: never\n /** The balance of the account at a block tag. */\n blockTag?: BlockTag\n }\n )\n\nexport type EstimateGasResponse = bigint\n\n/**\n * @description Estimates the gas necessary to complete a transaction without submitting it to the network.\n */\nexport async function estimateGas(\n client: PublicClient,\n {\n blockNumber,\n blockTag = 'latest',\n data,\n from,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n to,\n value,\n }: EstimateGasArgs,\n): Promise<EstimateGasResponse> {\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n const parameters = {\n data,\n from,\n gas: gas ? numberToHex(gas) : undefined,\n gasPrice: gasPrice ? numberToHex(gasPrice) : undefined,\n maxFeePerGas: maxFeePerGas ? numberToHex(maxFeePerGas) : undefined,\n maxPriorityFeePerGas: maxPriorityFeePerGas\n ? numberToHex(maxPriorityFeePerGas)\n : undefined,\n to,\n value: value ? numberToHex(value) : undefined,\n } as RpcEstimateGasParameters\n const balance = await client.request({\n method: 'eth_estimateGas',\n params: [parameters, blockNumberHex || blockTag],\n })\n return BigInt(balance)\n}\n","import type { PublicClient } from '../../clients'\nimport type { Address, BlockTag } from '../../types'\nimport { numberToHex } from '../../utils'\n\nexport type GetBalanceArgs = {\n /** The address of the account. */\n address: Address\n} & (\n | {\n /** The balance of the account at a block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockNumber?: never\n /** The balance of the account at a block tag. */\n blockTag?: BlockTag\n }\n)\n\nexport type GetBalanceResponse = bigint\n\n/**\n * @description Returns the balance of an address in wei.\n */\nexport async function getBalance(\n client: PublicClient,\n { address, blockNumber, blockTag = 'latest' }: GetBalanceArgs,\n): Promise<GetBalanceResponse> {\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n\n const balance = await client.request({\n method: 'eth_getBalance',\n params: [address, blockNumberHex || blockTag],\n })\n return BigInt(balance)\n}\n","import type { Chain } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport { BlockNotFoundError } from '../../errors'\nimport type { BlockTag, Hash, RpcBlock } from '../../types'\nimport type { BlockFormatter, FormattedBlock } from '../../utils'\nimport { format, formatBlock, numberToHex } from '../../utils'\n\nexport type GetBlockArgs = {\n /** Whether or not to include transaction data in the response. */\n includeTransactions?: boolean\n} & (\n | {\n /** Hash of the block. */\n blockHash?: Hash\n blockNumber?: never\n blockTag?: never\n }\n | {\n blockHash?: never\n /** The block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockHash?: never\n blockNumber?: never\n /** The block tag. Defaults to 'latest'. */\n blockTag?: BlockTag\n }\n)\n\nexport type GetBlockResponse<TChain extends Chain = Chain> = FormattedBlock<\n BlockFormatter<TChain>\n>\n\nexport async function getBlock<TChain extends Chain>(\n client: PublicClient<any, TChain>,\n {\n blockHash,\n blockNumber,\n blockTag = 'latest',\n includeTransactions = false,\n }: GetBlockArgs = {},\n): Promise<GetBlockResponse<TChain>> {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n let block: RpcBlock | null = null\n if (blockHash) {\n block = await client.request({\n method: 'eth_getBlockByHash',\n params: [blockHash, includeTransactions],\n })\n } else {\n block = await client.request({\n method: 'eth_getBlockByNumber',\n params: [blockNumberHex || blockTag, includeTransactions],\n })\n }\n\n if (!block) throw new BlockNotFoundError({ blockHash, blockNumber })\n\n return format(block, {\n formatter: client.chain?.formatters?.block || formatBlock,\n })\n}\n","import type { PublicClient } from '../../clients'\nimport { getCache, withCache } from '../../utils/promise'\n\nexport type GetBlockNumberArgs = {\n /** The maximum age (in ms) of the cached value. */\n maxAge?: number\n}\n\nexport type GetBlockNumberResponse = bigint\n\nconst cacheKey = (id: string) => `blockNumber.${id}`\n\nexport function getBlockNumberCache(id: string) {\n return getCache(cacheKey(id))\n}\n\n/**\n * @description Returns the number of the most recent block seen.\n */\nexport async function getBlockNumber(\n client: PublicClient,\n { maxAge = client.pollingInterval }: GetBlockNumberArgs = {},\n): Promise<GetBlockNumberResponse> {\n const blockNumberHex = await withCache(\n () =>\n client.request({\n method: 'eth_blockNumber',\n }),\n { cacheKey: cacheKey(client.uid), maxAge },\n )\n return BigInt(blockNumberHex)\n}\n","import type { Chain } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport type { BlockTag, Hash, Quantity } from '../../types'\nimport { hexToNumber, numberToHex } from '../../utils'\n\nexport type GetBlockTransactionCountArgs =\n | {\n /** Hash of the block. */\n blockHash?: Hash\n blockNumber?: never\n blockTag?: never\n }\n | {\n blockHash?: never\n /** The block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockHash?: never\n blockNumber?: never\n /** The block tag. Defaults to 'latest'. */\n blockTag?: BlockTag\n }\n\nexport type GetBlockTransactionCountResponse = number\n\nexport async function getBlockTransactionCount<TChain extends Chain>(\n client: PublicClient<any, TChain>,\n {\n blockHash,\n blockNumber,\n blockTag = 'latest',\n }: GetBlockTransactionCountArgs = {},\n): Promise<GetBlockTransactionCountResponse> {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n let count: Quantity | null = null\n if (blockHash) {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByHash',\n params: [blockHash],\n })\n } else {\n count = await client.request({\n method: 'eth_getBlockTransactionCountByNumber',\n params: [blockNumberHex || blockTag],\n })\n }\n\n return hexToNumber(count)\n}\n","import { PublicClient } from '../../clients'\nimport { Address, BlockTag, Hex } from '../../types'\nimport { numberToHex } from '../../utils'\n\nexport type GetBytecodeArgs = {\n address: Address\n} & (\n | {\n blockNumber?: never\n blockTag?: BlockTag\n }\n | {\n blockNumber?: bigint\n blockTag?: never\n }\n)\n\nexport type GetBytecodeResponse = Hex | undefined\n\nexport async function getBytecode(\n client: PublicClient,\n { address, blockNumber, blockTag = 'latest' }: GetBytecodeArgs,\n): Promise<GetBytecodeResponse> {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n const hex = await client.request({\n method: 'eth_getCode',\n params: [address, blockNumberHex || blockTag],\n })\n if (hex === '0x') return undefined\n return hex\n}\n","import type { PublicClient } from '../../clients'\nimport { hexToNumber } from '../../utils'\n\nexport async function getChainId(client: PublicClient) {\n const chainIdHex = await client.request({ method: 'eth_chainId' })\n return hexToNumber(chainIdHex)\n}\n","import type { PublicClient } from '../../clients'\nimport type { BlockTag, FeeHistory } from '../../types'\n\nimport { numberToHex } from '../../utils'\nimport { formatFeeHistory } from '../../utils/formatters'\n\nexport type GetFeeHistoryArgs = {\n blockCount: number\n rewardPercentiles: number[]\n} & (\n | {\n blockNumber?: never\n blockTag?: BlockTag\n }\n | {\n blockNumber?: bigint\n blockTag?: never\n }\n)\nexport type GetFeeHistoryResponse = FeeHistory\n\n/**\n * @description Returns a collection of historical gas information.\n */\nexport async function getFeeHistory(\n client: PublicClient,\n {\n blockCount,\n blockNumber,\n blockTag = 'latest',\n rewardPercentiles,\n }: GetFeeHistoryArgs,\n): Promise<GetFeeHistoryResponse> {\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined\n const feeHistory = await client.request({\n method: 'eth_feeHistory',\n params: [\n numberToHex(blockCount),\n blockNumberHex || blockTag,\n rewardPercentiles,\n ],\n })\n return formatFeeHistory(feeHistory)\n}\n","import type { PublicClient } from '../../clients'\nimport type { Filter, FilterType, Hash, Log } from '../../types'\n\nimport { formatLog } from '../../utils/formatters/log'\n\nexport type GetFilterChangesArgs<TFilterType extends FilterType> = {\n filter: Filter<TFilterType>\n}\nexport type GetFilterChangesResponse<TFilterType extends FilterType> =\n TFilterType extends 'event' ? Log[] : Hash[]\n\nexport async function getFilterChanges<TFilterType extends FilterType>(\n client: PublicClient,\n { filter }: GetFilterChangesArgs<TFilterType>,\n) {\n const logs = await client.request({\n method: 'eth_getFilterChanges',\n params: [filter.id],\n })\n return logs.map((log) =>\n typeof log === 'string' ? log : formatLog(log),\n ) as GetFilterChangesResponse<TFilterType>\n}\n","import type { PublicClient } from '../../clients'\nimport type { Filter, FilterType, Hash, Log } from '../../types'\n\nimport { formatLog } from '../../utils/formatters/log'\n\nexport type GetFilterLogsArgs = {\n filter: Filter<'event'>\n}\nexport type GetFilterLogsResponse = Log[]\n\nexport async function getFilterLogs<TFilterType extends FilterType>(\n client: PublicClient,\n { filter }: GetFilterLogsArgs,\n): Promise<GetFilterLogsResponse> {\n const logs = await client.request({\n method: 'eth_getFilterLogs',\n params: [filter.id],\n })\n return logs.map(formatLog)\n}\n","import type { PublicClient } from '../../clients'\n\nexport type GetGasPriceResponse = bigint\n\n/**\n * @description Returns the current price of gas (in wei).\n */\nexport async function getGasPrice(\n client: PublicClient,\n): Promise<GetGasPriceResponse> {\n const gasPrice = await client.request({\n method: 'eth_gasPrice',\n })\n return BigInt(gasPrice)\n}\n","import type { PublicClient } from '../../clients'\n\nimport type {\n Address,\n BlockNumber,\n BlockTag,\n ExtractArgsFromEventDefinition,\n Filter,\n LogTopic,\n} from '../../types'\nimport { getEventSignature, numberToHex } from '../../utils'\n\nexport type EventFilterArgs<TEventDefinition extends `${string}(${string})`> =\n ExtractArgsFromEventDefinition<TEventDefinition>\n\nexport type CreateEventFilterArgs<\n TEventDefinition extends `${string}(${string})`,\n> = {\n address?: Address | Address[]\n fromBlock?: BlockNumber | BlockTag\n toBlock?: BlockNumber | BlockTag\n} & (\n | {\n event: TEventDefinition\n args?: EventFilterArgs<TEventDefinition>\n }\n | {\n event?: never\n args?: never\n }\n)\nexport type CreateEventFilterResponse = Filter<'event'>\n\nexport async function createEventFilter<\n TEventDefinition extends `${string}(${string})`,\n>(\n client: PublicClient,\n {\n address,\n event,\n args,\n fromBlock,\n toBlock,\n }: CreateEventFilterArgs<TEventDefinition> = {},\n): Promise<CreateEventFilterResponse> {\n let topics: LogTopic[] = []\n if (event) {\n topics = buildFilterTopics({ event, args })\n }\n const id = await client.request({\n method: 'eth_newFilter',\n params: [\n {\n address,\n fromBlock:\n typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n ...(topics.length ? { topics } : {}),\n },\n ],\n })\n return { id, type: 'event' }\n}\n\nexport function buildFilterTopics<\n TEventDefinition extends `${string}(${string})`,\n>({\n event,\n args: _args,\n}: {\n event: TEventDefinition\n args?: EventFilterArgs<TEventDefinition>\n}) {\n const signature = getEventSignature(event)\n\n // TODO: support args\n\n return [signature]\n}\n","import type { PublicClient } from '../../clients'\nimport type {\n Log,\n RpcLog,\n Address,\n BlockNumber,\n BlockTag,\n Hash,\n LogTopic,\n} from '../../types'\nimport { numberToHex } from '../../utils'\nimport { formatLog } from '../../utils/formatters/log'\nimport { buildFilterTopics, EventFilterArgs } from './createEventFilter'\n\nexport type GetLogsArgs<TEventDefinition extends `${string}(${string})`> = {\n /** Address or list of addresses from which logs originated */\n address?: Address | Address[]\n} & (\n | { event: TEventDefinition; args?: EventFilterArgs<TEventDefinition> }\n | {\n event?: never\n args?: never\n }\n) &\n (\n | {\n /** Block number or tag after which to include logs */\n fromBlock?: BlockNumber<bigint> | BlockTag\n /** Block number or tag before which to include logs */\n toBlock?: BlockNumber<bigint> | BlockTag\n blockHash?: never\n }\n | {\n fromBlock?: never\n toBlock?: never\n /** Hash of block to include logs from */\n blockHash?: Hash\n }\n )\n\nexport type GetLogsResponse = Log[]\n\n/**\n * @description Returns a collection of event logs.\n */\nexport async function getLogs<TEventDefinition extends `${string}(${string})`,>(\n client: PublicClient,\n {\n address,\n blockHash,\n fromBlock,\n toBlock,\n event,\n args,\n }: GetLogsArgs<TEventDefinition> = {},\n): Promise<GetLogsResponse> {\n let topics: LogTopic[] = []\n if (event) {\n topics = buildFilterTopics({ event, args })\n }\n let logs: RpcLog[]\n if (blockHash) {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [{ address, topics, blockHash }],\n })\n } else {\n logs = await client.request({\n method: 'eth_getLogs',\n params: [\n {\n address,\n topics,\n fromBlock:\n typeof fromBlock === 'bigint' ? numberToHex(fromBlock) : fromBlock,\n toBlock: typeof toBlock === 'bigint' ? numberToHex(toBlock) : toBlock,\n },\n ],\n })\n }\n\n return logs.map(formatLog)\n}\n","import { PublicClient } from '../../clients'\nimport { Address, BlockTag, Hex } from '../../types'\nimport { numberToHex } from '../../utils'\n\nexport type GetStorageAtArgs = {\n address: Address\n slot: Hex\n} & (\n | {\n blockNumber?: never\n blockTag?: BlockTag\n }\n | {\n blockNumber?: bigint\n blockTag?: never\n }\n)\n\nexport type GetStorageAtResponse = Hex | undefined\n\nexport async function getStorageAt(\n client: PublicClient,\n { address, blockNumber, blockTag = 'latest', slot }: GetStorageAtArgs,\n): Promise<GetStorageAtResponse> {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n const data = await client.request({\n method: 'eth_getStorageAt',\n params: [address, slot, blockNumberHex || blockTag],\n })\n return data\n}\n","import type { Chain } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport { TransactionNotFoundError } from '../../errors'\nimport type { BlockTag, Hash, RpcTransaction } from '../../types'\nimport { format, numberToHex } from '../../utils'\nimport type {\n FormattedTransaction,\n TransactionFormatter,\n} from '../../utils/formatters/transaction'\nimport { formatTransaction } from '../../utils/formatters/transaction'\n\nexport type GetTransactionArgs =\n | {\n /** The block hash */\n blockHash: Hash\n blockNumber?: never\n blockTag?: never\n hash?: never\n /** The index of the transaction on the block. */\n index: number\n }\n | {\n blockHash?: never\n /** The block number */\n blockNumber: bigint\n blockTag?: never\n hash?: never\n /** The index of the transaction on the block. */\n index: number\n }\n | {\n blockHash?: never\n blockNumber?: never\n /** The block tag. */\n blockTag: BlockTag\n hash?: never\n /** The index of the transaction on the block. */\n index: number\n }\n | {\n blockHash?: never\n blockNumber?: never\n blockTag?: never\n /** The hash of the transaction. */\n hash: Hash\n index?: number\n }\n\nexport type GetTransactionResponse<TChain extends Chain = Chain> =\n FormattedTransaction<TransactionFormatter<TChain>>\n\n/** @description Returns information about a transaction given a hash or block identifier. */\nexport async function getTransaction<TChain extends Chain>(\n client: PublicClient<any, TChain>,\n {\n blockHash,\n blockNumber,\n blockTag = 'latest',\n hash,\n index,\n }: GetTransactionArgs,\n): Promise<GetTransactionResponse<TChain>> {\n const blockNumberHex =\n blockNumber !== undefined ? numberToHex(blockNumber) : undefined\n\n let transaction: RpcTransaction | null = null\n if (hash) {\n transaction = await client.request({\n method: 'eth_getTransactionByHash',\n params: [hash],\n })\n } else if (blockHash) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockHashAndIndex',\n params: [blockHash, numberToHex(index)],\n })\n } else if (blockNumberHex || blockTag) {\n transaction = await client.request({\n method: 'eth_getTransactionByBlockNumberAndIndex',\n params: [blockNumberHex || blockTag, numberToHex(index)],\n })\n }\n\n if (!transaction)\n throw new TransactionNotFoundError({\n blockHash,\n blockNumber,\n blockTag,\n hash,\n index,\n })\n\n return format(transaction, {\n formatter: client.chain?.formatters?.transaction || formatTransaction,\n })\n}\n","import type { Chain } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport type { Hash } from '../../types'\nimport type {\n FormattedTransactionReceipt,\n TransactionReceiptFormatter,\n} from '../../utils'\nimport { getBlockNumber } from './getBlockNumber'\nimport { getTransaction } from './getTransaction'\n\nexport type GetTransactionConfirmationsArgs<TChain extends Chain> =\n | {\n /** The transaction hash. */\n hash: Hash\n transactionReceipt?: never\n }\n | {\n hash?: never\n /** The transaction receipt. */\n transactionReceipt: FormattedTransactionReceipt<\n TransactionReceiptFormatter<TChain>\n >\n }\n\nexport type GetTransactionConfirmationsResponse = bigint\n\nexport async function getTransactionConfirmations<TChain extends Chain>(\n client: PublicClient<any, TChain>,\n { hash, transactionReceipt }: GetTransactionConfirmationsArgs<TChain>,\n): Promise<GetTransactionConfirmationsResponse> {\n const [blockNumber, transaction] = await Promise.all([\n getBlockNumber(client),\n hash ? getTransaction(client, { hash }) : undefined,\n ])\n const transactionBlockNumber =\n transactionReceipt?.blockNumber || transaction?.blockNumber\n if (!transactionBlockNumber) return 0n\n return blockNumber - transactionBlockNumber! + 1n\n}\n","import type { PublicClient } from '../../clients'\nimport type { Address, BlockTag } from '../../types'\nimport { hexToNumber, numberToHex } from '../../utils'\n\nexport type GetTransactionCountArgs = {\n /** The account address. */\n address: Address\n} & (\n | {\n /** The block number. */\n blockNumber?: bigint\n blockTag?: never\n }\n | {\n blockNumber?: never\n /** The block tag. Defaults to 'latest'. */\n blockTag?: BlockTag\n }\n)\nexport type GetTransactionCountResponse = number\n\n/**\n * @description Returns the number of transactions an account has broadcast / sent.\n */\nexport async function getTransactionCount(\n client: PublicClient,\n { address, blockTag = 'latest', blockNumber }: GetTransactionCountArgs,\n): Promise<GetTransactionCountResponse> {\n const count = await client.request({\n method: 'eth_getTransactionCount',\n params: [address, blockNumber ? numberToHex(blockNumber) : blockTag],\n })\n return hexToNumber(count)\n}\n","import type { Chain } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport { TransactionReceiptNotFoundError } from '../../errors'\nimport type { Hash } from '../../types'\nimport { format } from '../../utils'\nimport type {\n FormattedTransactionReceipt,\n TransactionReceiptFormatter,\n} from '../../utils/formatters/transactionReceipt'\nimport { formatTransactionReceipt } from '../../utils/formatters/transactionReceipt'\n\nexport type GetTransactionReceiptArgs = {\n /** The hash of the transaction. */\n hash: Hash\n}\n\nexport type GetTransactionReceiptResponse<TChain extends Chain = Chain> =\n FormattedTransactionReceipt<TransactionReceiptFormatter<TChain>>\n\nexport async function getTransactionReceipt<TChain extends Chain>(\n client: PublicClient<any, TChain>,\n { hash }: GetTransactionReceiptArgs,\n) {\n const receipt = await client.request({\n method: 'eth_getTransactionReceipt',\n params: [hash],\n })\n\n if (!receipt) throw new TransactionReceiptNotFoundError({ hash })\n\n return format(receipt, {\n formatter:\n client.chain?.formatters?.transactionReceipt || formatTransactionReceipt,\n }) as GetTransactionReceiptResponse<TChain>\n}\n","import { Abi } from 'abitype'\n\nimport type { Chain, Formatter } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport type {\n Address,\n ExtractArgsFromAbi,\n ExtractResultFromAbi,\n ExtractFunctionNameFromAbi,\n} from '../../types'\nimport {\n EncodeFunctionDataArgs,\n decodeFunctionResult,\n encodeFunctionData,\n getContractError,\n} from '../../utils'\nimport { call, CallArgs, FormattedCall } from './call'\n\nexport type FormattedReadContract<\n TFormatter extends Formatter | undefined = Formatter,\n> = FormattedCall<TFormatter>\n\nexport type ReadContractArgs<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = any,\n> = Omit<\n CallArgs,\n | 'accessList'\n | 'chain'\n | 'from'\n | 'gas'\n | 'gasPrice'\n | 'maxFeePerGas'\n | 'maxPriorityFeePerGas'\n | 'nonce'\n | 'to'\n | 'data'\n | 'value'\n> & {\n address: Address\n abi: TAbi\n functionName: ExtractFunctionNameFromAbi<TAbi, TFunctionName, 'pure' | 'view'>\n} & ExtractArgsFromAbi<TAbi, TFunctionName>\n\nexport type ReadContractResponse<\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = string,\n> = ExtractResultFromAbi<TAbi, TFunctionName>\n\nexport async function readContract<\n TAbi extends Abi = Abi,\n TFunctionName extends string = any,\n>(\n client: PublicClient,\n {\n abi,\n address,\n args,\n functionName,\n ...callRequest\n }: ReadContractArgs<TAbi, TFunctionName>,\n): Promise<ReadContractResponse<TAbi, TFunctionName>> {\n const calldata = encodeFunctionData({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataArgs<TAbi, TFunctionName>)\n try {\n const { data } = await call(client, {\n data: calldata,\n to: address,\n ...callRequest,\n } as unknown as CallArgs)\n return decodeFunctionResult({\n abi,\n functionName,\n data: data || '0x',\n })\n } catch (err) {\n throw getContractError(err, {\n abi,\n address,\n args,\n functionName,\n })\n }\n}\n","import type { PublicClient } from '../../clients'\nimport type { Filter } from '../../types'\n\nexport type UninstallFilterArgs = {\n filter: Filter<any>\n}\nexport type UninstallFilterResponse = boolean\n\nexport async function uninstallFilter(\n client: PublicClient,\n { filter }: UninstallFilterArgs,\n): Promise<UninstallFilterResponse> {\n return client.request({\n method: 'eth_uninstallFilter',\n params: [filter.id],\n })\n}\n","import type { MaybePromise } from '../types/utils'\n\ntype Callback = ((...args: any[]) => any) | undefined\ntype Callbacks = Record<string, Callback>\n\nconst listenersCache = new Map<string, { id: number; fns: Callbacks }[]>()\nconst cleanupCache = new Map<string, () => void>()\n\ntype EmitFunction<TCallbacks extends Callbacks> = (\n emit: TCallbacks,\n) => MaybePromise<void | (() => void)>\n\nlet callbackCount = 0\n\n/**\n * @description Sets up an observer for a given function. If another function\n * is set up under the same observer id, the function will only be called once\n * for both instances of the observer.\n */\nexport function observe<TCallbacks extends Callbacks>(\n observerId: string,\n callbacks: TCallbacks,\n fn: EmitFunction<TCallbacks>,\n) {\n const callbackId = ++callbackCount\n\n const getListeners = () => listenersCache.get(observerId) || []\n\n const unsubscribe = () => {\n const listeners = getListeners()\n listenersCache.set(\n observerId,\n listeners.filter((cb: any) => cb.id !== callbackId),\n )\n }\n\n const unwatch = () => {\n const cleanup = cleanupCache.get(observerId)\n if (getListeners().length === 1 && cleanup) cleanup()\n unsubscribe()\n }\n\n const listeners = getListeners()\n listenersCache.set(observerId, [\n ...listeners,\n { id: callbackId, fns: callbacks },\n ])\n\n if (listeners && listeners.length > 0) return unwatch\n\n let emit: TCallbacks = {} as TCallbacks\n for (const key in callbacks) {\n emit[key] = ((\n ...args: Parameters<NonNullable<TCallbacks[keyof TCallbacks]>>\n ) => {\n const listeners = getListeners()\n if (listeners.length === 0) return\n listeners.forEach((listener) => listener.fns[key]?.(...args))\n }) as TCallbacks[Extract<keyof TCallbacks, string>]\n }\n\n const cleanup = fn(emit)\n if (typeof cleanup === 'function') cleanupCache.set(observerId, cleanup)\n\n return unwatch\n}\n","import { wait } from './wait'\n\ntype PollOptions<TData> = {\n // Whether or not to emit when the polling starts.\n emitOnBegin?: boolean\n // The initial wait time (in ms) before polling.\n initialWaitTime?: (data: TData | void) => Promise<number>\n // The interval (in ms).\n interval: number\n}\n\n/**\n * @description Polls a function at a specified interval.\n */\nexport function poll<TData>(\n fn: ({ unpoll }: { unpoll: () => void }) => Promise<TData | void>,\n { emitOnBegin, initialWaitTime, interval }: PollOptions<TData>,\n) {\n let active = true\n\n const unwatch = () => (active = false)\n\n const watch = async () => {\n let data: TData | void\n if (emitOnBegin) data = await fn({ unpoll: unwatch })\n\n const initialWait = (await initialWaitTime?.(data)) ?? interval\n await wait(initialWait)\n\n const poll = async () => {\n if (!active) return\n await fn({ unpoll: unwatch })\n await wait(interval)\n poll()\n }\n\n poll()\n }\n watch()\n\n return unwatch\n}\n","import type { PublicClient } from '../../clients'\nimport { observe } from '../../utils/observe'\nimport { poll } from '../../utils/poll'\nimport type { GetBlockNumberResponse } from './getBlockNumber'\nimport { getBlockNumber } from './getBlockNumber'\n\nexport type OnBlockNumberResponse = GetBlockNumberResponse\nexport type OnBlockNumber = (\n blockNumber: OnBlockNumberResponse,\n prevBlockNumber: OnBlockNumberResponse | undefined,\n) => void\n\nexport type WatchBlockNumberArgs = {\n /** Whether or not to emit the missed block numbers to the callback. */\n emitMissed?: boolean\n /** Whether or not to emit the latest block number to the callback when the subscription opens. */\n emitOnBegin?: boolean\n /** The callback to call when a new block number is received. */\n onBlockNumber: OnBlockNumber\n /** The callback to call when an error occurred when trying to get for a new block. */\n onError?: (error: Error) => void\n /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */\n pollingInterval?: number\n}\n\n/** @description Watches and returns incoming block numbers. */\nexport function watchBlockNumber(\n client: PublicClient,\n {\n emitOnBegin = false,\n emitMissed = false,\n onBlockNumber,\n onError,\n pollingInterval = client.pollingInterval,\n }: WatchBlockNumberArgs,\n) {\n const observerId = JSON.stringify([\n 'watchBlockNumber',\n client.uid,\n emitOnBegin,\n emitMissed,\n pollingInterval,\n ])\n\n let prevBlockNumber: GetBlockNumberResponse | undefined\n\n return observe(observerId, { onBlockNumber, onError }, (emit) =>\n poll(\n async () => {\n try {\n const blockNumber = await getBlockNumber(client, { maxAge: 0 })\n\n if (prevBlockNumber) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (blockNumber === prevBlockNumber) return\n\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (blockNumber - prevBlockNumber > 1 && emitMissed) {\n for (let i = prevBlockNumber + 1n; i < blockNumber; i++) {\n emit.onBlockNumber(i, prevBlockNumber)\n prevBlockNumber = i\n }\n }\n }\n prevBlockNumber = blockNumber\n emit.onBlockNumber(blockNumber, prevBlockNumber)\n } catch (err) {\n emit.onError?.(err as Error)\n }\n },\n {\n emitOnBegin,\n interval: pollingInterval,\n },\n ),\n )\n}\n","import type { Chain } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport type { BlockTag } from '../../types'\nimport { observe } from '../../utils/observe'\nimport { poll } from '../../utils/poll'\nimport type { GetBlockResponse } from './getBlock'\nimport { getBlock } from './getBlock'\n\nexport type OnBlockResponse<TChain extends Chain = Chain> =\n GetBlockResponse<TChain>\nexport type OnBlock<TChain extends Chain = Chain> = (\n block: OnBlockResponse<TChain>,\n prevBlock: OnBlockResponse<TChain> | undefined,\n) => void\n\nexport type WatchBlocksArgs<TChain extends Chain = Chain> = {\n /** The block tag. Defaults to \"latest\". */\n blockTag?: BlockTag\n /** Whether or not to emit the missed blocks to the callback. */\n emitMissed?: boolean\n /** Whether or not to emit the block to the callback when the subscription opens. */\n emitOnBegin?: boolean\n /** The callback to call when a new block is received. */\n onBlock: OnBlock<TChain>\n /** The callback to call when an error occurred when trying to get for a new block. */\n onError?: (error: Error) => void\n /** Whether or not to include transaction data in the response. */\n includeTransactions?: boolean\n /** Polling frequency (in ms). Defaults to the client's pollingInterval config. */\n pollingInterval?: number\n}\n\n/** @description Watches and returns information for incoming blocks. */\nexport function watchBlocks<TChain extends Chain>(\n client: PublicClient<any, TChain>,\n {\n blockTag = 'latest',\n emitMissed = false,\n emitOnBegin = false,\n onBlock,\n onError,\n includeTransactions = false,\n pollingInterval = client.pollingInterval,\n }: WatchBlocksArgs<TChain>,\n) {\n const observerId = JSON.stringify([\n 'watchBlocks',\n client.uid,\n emitMissed,\n emitOnBegin,\n includeTransactions,\n pollingInterval,\n ])\n\n let prevBlock: GetBlockResponse<TChain> | undefined\n\n return observe(observerId, { onBlock, onError }, (emit) =>\n poll(\n async () => {\n try {\n const block = await getBlock(client, {\n blockTag,\n includeTransactions,\n })\n if (block.number && prevBlock?.number) {\n // If the current block number is the same as the previous,\n // we can skip.\n if (block.number === prevBlock.number) return\n\n // If we have missed out on some previous blocks, and the\n // `emitMissed` flag is truthy, let's emit those blocks.\n if (block.number - prevBlock.number > 1 && emitMissed) {\n for (let i = prevBlock?.number + 1n; i < block.number; i++) {\n const block = await getBlock(client, {\n blockNumber: i,\n includeTransactions,\n })\n emit.onBlock(block, prevBlock)\n prevBlock = block\n }\n }\n }\n emit.onBlock(block, prevBlock)\n prevBlock = block\n } catch (err) {\n emit.onError?.(err as Error)\n }\n },\n {\n emitOnBegin,\n interval: pollingInterval,\n },\n ),\n )\n}\n","import type { PublicClient } from '../../clients'\nimport type { Filter, Hash } from '../../types'\nimport { observe } from '../../utils/observe'\nimport { poll } from '../../utils/poll'\nimport { createPendingTransactionFilter } from './createPendingTransactionFilter'\nimport { getFilterChanges } from './getFilterChanges'\nimport { uninstallFilter } from './uninstallFilter'\n\nexport type OnTransactionsResponse = Hash[]\nexport type OnTransactions = (transactions: OnTransactionsResponse) => void\n\nexport type WatchPendingTransactionsArgs = {\n /** Whether or not the transaction hashes should be batched on each invocation. */\n batch?: boolean\n /** The callback to call when an error occurred when trying to get for a new block. */\n onError?: (error: Error) => void\n /** The callback to call when new transactions are received. */\n onTransactions: OnTransactions\n /** Polling frequency (in ms). Defaults to Client's pollingInterval config. */\n pollingInterval?: number\n}\n\nexport function watchPendingTransactions(\n client: PublicClient,\n {\n batch = true,\n onError,\n onTransactions,\n pollingInterval = client.pollingInterval,\n }: WatchPendingTransactionsArgs,\n) {\n const observerId = JSON.stringify([\n 'watchPendingTransactions',\n client.uid,\n batch,\n pollingInterval,\n ])\n\n return observe(observerId, { onTransactions, onError }, (emit) => {\n let filter: Filter<'transaction'>\n\n const unwatch = poll(\n async () => {\n try {\n if (!filter) {\n try {\n filter = await createPendingTransactionFilter(client)\n return\n } catch (err) {\n unwatch()\n throw err\n }\n }\n\n const hashes = await getFilterChanges(client, { filter })\n if (batch) emit.onTransactions(hashes)\n else hashes.forEach((hash) => emit.onTransactions([hash]))\n } catch (err) {\n emit.onError?.(err as Error)\n }\n },\n {\n emitOnBegin: true,\n interval: pollingInterval,\n },\n )\n\n return async () => {\n if (filter) await uninstallFilter(client, { filter })\n unwatch()\n }\n })\n}\n","import type { Chain } from '../../chains'\nimport type { PublicClient } from '../../clients'\nimport {\n TransactionNotFoundError,\n TransactionReceiptNotFoundError,\n WaitForTransactionReceiptTimeoutError,\n} from '../../errors'\nimport type { Hash, Transaction } from '../../types'\nimport { observe } from '../../utils/observe'\nimport { getBlock, watchBlockNumber } from '../public'\n\nimport type { GetTransactionResponse } from './getTransaction'\nimport { getTransaction } from './getTransaction'\nimport type { GetTransactionReceiptResponse } from './getTransactionReceipt'\nimport { getTransactionReceipt } from './getTransactionReceipt'\n\nexport type ReplacementReason = 'cancelled' | 'replaced' | 'repriced'\nexport type ReplacementResponse<TChain extends Chain = Chain> = {\n reason: ReplacementReason\n replacedTransaction: Transaction\n transaction: Transaction\n transactionReceipt: GetTransactionReceiptResponse<TChain>\n}\n\nexport type WaitForTransactionReceiptResponse<TChain extends Chain = Chain> =\n GetTransactionReceiptResponse<TChain>\n\nexport type WaitForTransactionReceiptArgs<TChain extends Chain = Chain> = {\n /** The number of confirmations (blocks that have passed) to wait before resolving. */\n confirmations?: number\n /** The hash of the transaction. */\n hash: Hash\n onReplaced?: (response: ReplacementResponse<TChain>) => void\n /** Polling frequency (in ms). Defaults to the client's pollingInterval config. */\n pollingInterval?: number\n /** Optional timeout (in milliseconds) to wait before stopping polling. */\n timeout?: number\n}\n\nexport async function waitForTransactionReceipt<TChain extends Chain>(\n client: PublicClient<any, TChain>,\n {\n confirmations = 1,\n hash,\n onReplaced,\n pollingInterval = client.pollingInterval,\n timeout,\n }: WaitForTransactionReceiptArgs<TChain>,\n): Promise<WaitForTransactionReceiptResponse<TChain>> {\n const observerId = JSON.stringify([\n 'waitForTransactionReceipt',\n client.uid,\n hash,\n ])\n\n let transaction: GetTransactionResponse<TChain> | undefined\n let replacedTransaction: GetTransactionResponse<TChain> | undefined\n let receipt: GetTransactionReceiptResponse<TChain>\n\n return new Promise((resolve, reject) => {\n if (timeout)\n setTimeout(\n () => reject(new WaitForTransactionReceiptTimeoutError({ hash })),\n timeout,\n )\n\n const unobserve = observe(\n observerId,\n { onReplaced, resolve, reject },\n (emit) => {\n const unwatch = watchBlockNumber(client, {\n emitMissed: true,\n emitOnBegin: true,\n pollingInterval,\n async onBlockNumber(blockNumber) {\n const done = async (fn: () => void) => {\n unwatch()\n fn()\n unobserve()\n }\n\n try {\n // If we already have a valid receipt, let's check if we have enough\n // confirmations. If we do, then we can resolve.\n if (receipt) {\n if (blockNumber - receipt.blockNumber + 1n < confirmations)\n return\n\n done(() => emit.resolve(receipt))\n return\n }\n\n // Get the transaction to check if it's been replaced.\n transaction = await getTransaction(client, { hash })\n\n // Get the receipt to check if it's been processed.\n receipt = await getTransactionReceipt(client, { hash })\n\n // Check if we have enough confirmations. If not, continue polling.\n if (blockNumber - receipt.blockNumber + 1n < confirmations) return\n\n done(() => emit.resolve(receipt))\n } catch (err) {\n // If the receipt is not found, the transaction will be pending.\n // We need to check if it has potentially been replaced.\n if (\n transaction &&\n (err instanceof TransactionNotFoundError ||\n err instanceof TransactionReceiptNotFoundError)\n ) {\n replacedTransaction = transaction\n\n // Let's retrieve the transactions from the current block.\n const block = await getBlock(client, {\n blockNumber,\n includeTransactions: true,\n })\n\n const replacementTransaction = (\n block.transactions as Transaction[]\n ).find(\n ({ from, nonce }) =>\n from === replacedTransaction!.from &&\n nonce === replacedTransaction!.nonce,\n )\n\n // If we couldn't find a replacement transaction, continue polling.\n if (!replacementTransaction) return\n\n // If we found a replacement transaction, return it's receipt.\n receipt = await getTransactionReceipt(client, {\n hash: replacementTransaction.hash,\n })\n\n // Check if we have enough confirmations. If not, continue polling.\n if (blockNumber - receipt.blockNumber + 1n < confirmations)\n return\n\n let reason: ReplacementReason = 'replaced'\n if (\n replacementTransaction.to === replacedTransaction.to &&\n replacementTransaction.value === replacedTransaction.value\n ) {\n reason = 'repriced'\n } else if (\n replacementTransaction.from === replacementTransaction.to &&\n replacementTransaction.value === 0n\n ) {\n reason = 'cancelled'\n }\n\n done(() => {\n emit.onReplaced?.({\n reason,\n replacedTransaction: replacedTransaction!,\n transaction: replacementTransaction,\n transactionReceipt: receipt,\n })\n emit.resolve(receipt)\n })\n } else {\n done(() => emit.reject(err))\n }\n }\n },\n })\n return unwatch\n },\n )\n })\n}\n"]}
|
@@ -9,7 +9,7 @@ var __publicField = (obj, key, value) => {
|
|
9
9
|
var package_default = {
|
10
10
|
name: "viem",
|
11
11
|
description: "TypeScript Interface for Ethereum",
|
12
|
-
version: "0.0.1-alpha.
|
12
|
+
version: "0.0.1-alpha.19",
|
13
13
|
scripts: {
|
14
14
|
anvil: "source .env && anvil --fork-url $VITE_ANVIL_FORK_URL --fork-block-number $VITE_ANVIL_BLOCK_NUMBER --block-time $VITE_ANVIL_BLOCK_TIME",
|
15
15
|
bench: "vitest bench --no-threads",
|
@@ -2642,4 +2642,4 @@ export {
|
|
2642
2642
|
WaitForTransactionReceiptTimeoutError,
|
2643
2643
|
UrlRequiredError
|
2644
2644
|
};
|
2645
|
-
//# sourceMappingURL=chunk-
|
2645
|
+
//# sourceMappingURL=chunk-PHSAQQGZ.mjs.map
|
File without changes
|
@@ -9,7 +9,7 @@ import {
|
|
9
9
|
formatTransactionRequest,
|
10
10
|
getAddress,
|
11
11
|
numberToHex
|
12
|
-
} from "./chunk-
|
12
|
+
} from "./chunk-PHSAQQGZ.mjs";
|
13
13
|
|
14
14
|
// src/actions/wallet/addChain.ts
|
15
15
|
async function addChain(client, chain) {
|
@@ -173,4 +173,4 @@ export {
|
|
173
173
|
watchAsset,
|
174
174
|
writeContract
|
175
175
|
};
|
176
|
-
//# sourceMappingURL=chunk-
|
176
|
+
//# sourceMappingURL=chunk-VAT5CEF7.mjs.map
|
File without changes
|
package/dist/clients/index.d.ts
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
export { C as Client, a as ClientConfig, T as Transport, b as TransportConfig, c as createClient, d as createTransport } from '../createClient-
|
2
|
-
export { C as CustomTransport, a as CustomTransportConfig, F as FallbackTransport, b as FallbackTransportConfig, H as HttpTransport, c as HttpTransportConfig, W as WebSocketTransport, d as WebSocketTransportConfig, e as custom, f as fallback, h as http, w as webSocket } from '../webSocket-
|
3
|
-
export { P as PublicClient, a as PublicClientConfig, c as createPublicClient } from '../createPublicClient-
|
4
|
-
export { T as TestClient, a as TestClientConfig, c as createTestClient } from '../createTestClient-
|
5
|
-
export { W as WalletClient, a as WalletClientConfig, c as createWalletClient } from '../createWalletClient-
|
1
|
+
export { C as Client, a as ClientConfig, T as Transport, b as TransportConfig, c as createClient, d as createTransport } from '../createClient-03ba79e8.js';
|
2
|
+
export { C as CustomTransport, a as CustomTransportConfig, F as FallbackTransport, b as FallbackTransportConfig, H as HttpTransport, c as HttpTransportConfig, W as WebSocketTransport, d as WebSocketTransportConfig, e as custom, f as fallback, h as http, w as webSocket } from '../webSocket-3a00015b.js';
|
3
|
+
export { P as PublicClient, a as PublicClientConfig, c as createPublicClient } from '../createPublicClient-818241ba.js';
|
4
|
+
export { T as TestClient, a as TestClientConfig, c as createTestClient } from '../createTestClient-24eb7be8.js';
|
5
|
+
export { W as WalletClient, a as WalletClientConfig, c as createWalletClient } from '../createWalletClient-7cbd6ad1.js';
|
6
6
|
import '../chains.js';
|
7
7
|
import '../rpc-858670f1.js';
|
8
8
|
import '@wagmi/chains';
|
9
|
-
import '../eip1193-
|
9
|
+
import '../eip1193-71d8e27d.js';
|
10
10
|
import '../rpc-26932bae.js';
|
package/dist/clients/index.js
CHANGED
@@ -8,8 +8,8 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
var
|
12
|
-
require('../chunk-
|
11
|
+
var _chunk24EKKMUOjs = require('../chunk-24EKKMUO.js');
|
12
|
+
require('../chunk-BZFF747V.js');
|
13
13
|
|
14
14
|
|
15
15
|
|
@@ -20,5 +20,5 @@ require('../chunk-6CXRXH25.js');
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
exports.createClient =
|
23
|
+
exports.createClient = _chunk24EKKMUOjs.createClient; exports.createPublicClient = _chunk24EKKMUOjs.createPublicClient; exports.createTestClient = _chunk24EKKMUOjs.createTestClient; exports.createTransport = _chunk24EKKMUOjs.createTransport; exports.createWalletClient = _chunk24EKKMUOjs.createWalletClient; exports.custom = _chunk24EKKMUOjs.custom; exports.fallback = _chunk24EKKMUOjs.fallback; exports.http = _chunk24EKKMUOjs.http; exports.webSocket = _chunk24EKKMUOjs.webSocket;
|
24
24
|
//# sourceMappingURL=index.js.map
|
package/dist/clients/index.mjs
CHANGED