viem 0.2.10 → 0.2.11
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/abi.js +2 -2
- package/dist/abi.mjs +1 -1
- package/dist/accounts/index.js +17 -17
- package/dist/accounts/index.mjs +2 -2
- package/dist/chains.js +89 -89
- package/dist/chains.mjs +1 -1
- package/dist/{chunk-34RQIVOR.mjs → chunk-HU3K54ST.mjs} +122 -38
- package/dist/chunk-HU3K54ST.mjs.map +1 -0
- package/dist/{chunk-6PP4CMLN.js → chunk-MOM6LTRA.js} +126 -42
- package/dist/chunk-MOM6LTRA.js.map +1 -0
- package/dist/{chunk-AQJCWZV6.mjs → chunk-YABBVXPP.mjs} +2 -2
- package/dist/{chunk-I2RHOQQS.js → chunk-YAP7NKRV.js} +6 -6
- package/dist/contract.d.ts +2 -2
- package/dist/contract.js +2 -2
- package/dist/contract.mjs +1 -1
- package/dist/ens.d.ts +1 -1
- package/dist/ens.js +2 -2
- package/dist/ens.mjs +1 -1
- package/dist/ethers.js +4 -4
- package/dist/ethers.mjs +2 -2
- package/dist/{formatAbiItem-e5bbcadb.d.ts → formatAbiItem-aaf282fc.d.ts} +5 -1
- package/dist/{getEnsResolver-314de6e9.d.ts → getEnsResolver-68329c3e.d.ts} +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.js +94 -94
- package/dist/index.mjs +1 -1
- package/dist/{parseGwei-4fb29d96.d.ts → parseGwei-e2b004f8.d.ts} +1 -1
- package/dist/public.d.ts +1 -1
- package/dist/public.js +2 -2
- package/dist/public.mjs +1 -1
- package/dist/test.js +2 -2
- package/dist/test.mjs +1 -1
- package/dist/utils/index.d.ts +5 -5
- package/dist/utils/index.js +4 -2
- package/dist/utils/index.mjs +3 -1
- package/dist/wallet.d.ts +1 -1
- package/dist/wallet.js +2 -2
- package/dist/wallet.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-34RQIVOR.mjs.map +0 -1
- package/dist/chunk-6PP4CMLN.js.map +0 -1
- /package/dist/{chunk-AQJCWZV6.mjs.map → chunk-YABBVXPP.mjs.map} +0 -0
- /package/dist/{chunk-I2RHOQQS.js.map → chunk-YAP7NKRV.js.map} +0 -0
@@ -20,7 +20,7 @@ import "abitype";
|
|
20
20
|
var package_default = {
|
21
21
|
name: "viem",
|
22
22
|
description: "TypeScript Interface for Ethereum",
|
23
|
-
version: "0.2.
|
23
|
+
version: "0.2.11",
|
24
24
|
scripts: {
|
25
25
|
anvil: "dotenv -- sh -c 'anvil --fork-url $VITE_ANVIL_FORK_URL --fork-block-number $VITE_ANVIL_BLOCK_NUMBER --block-time $VITE_ANVIL_BLOCK_TIME'",
|
26
26
|
bench: "vitest bench --no-threads",
|
@@ -287,16 +287,43 @@ var AbiConstructorParamsNotFoundError = class extends BaseError {
|
|
287
287
|
}
|
288
288
|
};
|
289
289
|
var AbiDecodingDataSizeInvalidError = class extends BaseError {
|
290
|
-
constructor(size2) {
|
290
|
+
constructor({ data, size: size2 }) {
|
291
291
|
super(
|
292
292
|
[
|
293
293
|
`Data size of ${size2} bytes is invalid.`,
|
294
294
|
"Size must be in increments of 32 bytes (size % 32 === 0)."
|
295
|
-
].join("\n")
|
295
|
+
].join("\n"),
|
296
|
+
{ metaMessages: [`Data: ${data} (${size2} bytes)`] }
|
296
297
|
);
|
297
298
|
__publicField(this, "name", "AbiDecodingDataSizeInvalidError");
|
298
299
|
}
|
299
300
|
};
|
301
|
+
var AbiDecodingDataSizeTooSmallError = class extends BaseError {
|
302
|
+
constructor({
|
303
|
+
data,
|
304
|
+
params,
|
305
|
+
size: size2
|
306
|
+
}) {
|
307
|
+
super(
|
308
|
+
[`Data size of ${size2} bytes is too small for given parameters.`].join(
|
309
|
+
"\n"
|
310
|
+
),
|
311
|
+
{
|
312
|
+
metaMessages: [
|
313
|
+
`Params: (${formatAbiParams(params, { includeName: true })})`,
|
314
|
+
`Data: ${data} (${size2} bytes)`
|
315
|
+
]
|
316
|
+
}
|
317
|
+
);
|
318
|
+
__publicField(this, "name", "AbiDecodingDataSizeTooSmallError");
|
319
|
+
__publicField(this, "data");
|
320
|
+
__publicField(this, "params");
|
321
|
+
__publicField(this, "size");
|
322
|
+
this.data = data;
|
323
|
+
this.params = params;
|
324
|
+
this.size = size2;
|
325
|
+
}
|
326
|
+
};
|
300
327
|
var AbiDecodingZeroDataError = class extends BaseError {
|
301
328
|
constructor() {
|
302
329
|
super('Cannot decode zero data ("0x") with ABI parameters.');
|
@@ -478,6 +505,34 @@ var BytesSizeMismatchError = class extends BaseError {
|
|
478
505
|
__publicField(this, "name", "BytesSizeMismatchError");
|
479
506
|
}
|
480
507
|
};
|
508
|
+
var DecodeLogDataMismatch = class extends BaseError {
|
509
|
+
constructor({
|
510
|
+
data,
|
511
|
+
params,
|
512
|
+
size: size2
|
513
|
+
}) {
|
514
|
+
super(
|
515
|
+
[
|
516
|
+
`Data size of ${size2} bytes is too small for non-indexed event parameters.`
|
517
|
+
].join("\n"),
|
518
|
+
{
|
519
|
+
metaMessages: [
|
520
|
+
"This error is usually caused if the ABI event has too many non-indexed event parameters for the emitted log.",
|
521
|
+
"",
|
522
|
+
`Params: (${formatAbiParams(params, { includeName: true })})`,
|
523
|
+
`Data: ${data} (${size2} bytes)`
|
524
|
+
]
|
525
|
+
}
|
526
|
+
);
|
527
|
+
__publicField(this, "name", "DecodeLogDataMismatch");
|
528
|
+
__publicField(this, "data");
|
529
|
+
__publicField(this, "params");
|
530
|
+
__publicField(this, "size");
|
531
|
+
this.data = data;
|
532
|
+
this.params = params;
|
533
|
+
this.size = size2;
|
534
|
+
}
|
535
|
+
};
|
481
536
|
var DecodeLogTopicsMismatch = class extends BaseError {
|
482
537
|
constructor({
|
483
538
|
abiItem,
|
@@ -2402,7 +2457,7 @@ function decodeAbiParameters(params, data) {
|
|
2402
2457
|
if (data === "0x" && params.length > 0)
|
2403
2458
|
throw new AbiDecodingZeroDataError();
|
2404
2459
|
if (size(data) % 32 !== 0)
|
2405
|
-
throw new AbiDecodingDataSizeInvalidError(size(data));
|
2460
|
+
throw new AbiDecodingDataSizeInvalidError({ data, size: size(data) });
|
2406
2461
|
return decodeParams({
|
2407
2462
|
data,
|
2408
2463
|
params
|
@@ -2415,6 +2470,12 @@ function decodeParams({
|
|
2415
2470
|
let decodedValues = [];
|
2416
2471
|
let position = 0;
|
2417
2472
|
for (let i = 0; i < params.length; i++) {
|
2473
|
+
if (position >= size(data))
|
2474
|
+
throw new AbiDecodingDataSizeTooSmallError({
|
2475
|
+
data,
|
2476
|
+
params,
|
2477
|
+
size: size(data)
|
2478
|
+
});
|
2418
2479
|
const param = params[i];
|
2419
2480
|
const { consumed, value } = decodeParam({ data, param, position });
|
2420
2481
|
decodedValues.push(value);
|
@@ -2597,16 +2658,16 @@ function hasDynamicChild(param) {
|
|
2597
2658
|
function formatAbiItem(abiItem, { includeName = false } = {}) {
|
2598
2659
|
if (abiItem.type !== "function" && abiItem.type !== "event" && abiItem.type !== "error")
|
2599
2660
|
throw new InvalidDefinitionTypeError(abiItem.type);
|
2600
|
-
return `${abiItem.name}(${
|
2661
|
+
return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;
|
2601
2662
|
}
|
2602
|
-
function
|
2663
|
+
function formatAbiParams(params, { includeName = false } = {}) {
|
2603
2664
|
if (!params)
|
2604
2665
|
return "";
|
2605
|
-
return params.map((param) =>
|
2666
|
+
return params.map((param) => formatAbiParam(param, { includeName })).join(includeName ? ", " : ",");
|
2606
2667
|
}
|
2607
|
-
function
|
2668
|
+
function formatAbiParam(param, { includeName }) {
|
2608
2669
|
if (param.type.startsWith("tuple")) {
|
2609
|
-
return `(${
|
2670
|
+
return `(${formatAbiParams(
|
2610
2671
|
param.components,
|
2611
2672
|
{ includeName }
|
2612
2673
|
)})${param.type.slice("tuple".length)}`;
|
@@ -2674,15 +2735,25 @@ function decodeEventLog({
|
|
2674
2735
|
}
|
2675
2736
|
if (data && data !== "0x") {
|
2676
2737
|
const params = inputs.filter((x) => !("indexed" in x && x.indexed));
|
2677
|
-
|
2678
|
-
|
2679
|
-
if (
|
2680
|
-
|
2681
|
-
|
2682
|
-
|
2683
|
-
|
2738
|
+
try {
|
2739
|
+
const decodedData = decodeAbiParameters(params, data);
|
2740
|
+
if (decodedData) {
|
2741
|
+
if (isUnnamed)
|
2742
|
+
args = [...args, ...decodedData];
|
2743
|
+
else {
|
2744
|
+
for (let i = 0; i < params.length; i++) {
|
2745
|
+
args[params[i].name] = decodedData[i];
|
2746
|
+
}
|
2684
2747
|
}
|
2685
2748
|
}
|
2749
|
+
} catch (err) {
|
2750
|
+
if (err instanceof AbiDecodingDataSizeTooSmallError)
|
2751
|
+
throw new DecodeLogDataMismatch({
|
2752
|
+
data: err.data,
|
2753
|
+
params: err.params,
|
2754
|
+
size: err.size
|
2755
|
+
});
|
2756
|
+
throw err;
|
2686
2757
|
}
|
2687
2758
|
}
|
2688
2759
|
return {
|
@@ -4704,13 +4775,17 @@ async function getFilterChanges(client, {
|
|
4704
4775
|
return logs.map((log) => {
|
4705
4776
|
if (typeof log === "string")
|
4706
4777
|
return log;
|
4707
|
-
|
4708
|
-
abi
|
4709
|
-
|
4710
|
-
|
4711
|
-
|
4712
|
-
|
4713
|
-
|
4778
|
+
try {
|
4779
|
+
const { eventName, args } = "abi" in filter && filter.abi ? decodeEventLog({
|
4780
|
+
abi: filter.abi,
|
4781
|
+
data: log.data,
|
4782
|
+
topics: log.topics
|
4783
|
+
}) : { eventName: void 0, args: void 0 };
|
4784
|
+
return formatLog(log, { args, eventName });
|
4785
|
+
} catch {
|
4786
|
+
return;
|
4787
|
+
}
|
4788
|
+
}).filter(Boolean);
|
4714
4789
|
}
|
4715
4790
|
|
4716
4791
|
// src/actions/public/getFilterLogs.ts
|
@@ -4720,13 +4795,17 @@ async function getFilterLogs(client, { filter }) {
|
|
4720
4795
|
params: [filter.id]
|
4721
4796
|
});
|
4722
4797
|
return logs.map((log) => {
|
4723
|
-
|
4724
|
-
abi
|
4725
|
-
|
4726
|
-
|
4727
|
-
|
4728
|
-
|
4729
|
-
|
4798
|
+
try {
|
4799
|
+
const { eventName, args } = "abi" in filter && filter.abi ? decodeEventLog({
|
4800
|
+
abi: filter.abi,
|
4801
|
+
data: log.data,
|
4802
|
+
topics: log.topics
|
4803
|
+
}) : { eventName: void 0, args: void 0 };
|
4804
|
+
return formatLog(log, { args, eventName });
|
4805
|
+
} catch {
|
4806
|
+
return;
|
4807
|
+
}
|
4808
|
+
}).filter(Boolean);
|
4730
4809
|
}
|
4731
4810
|
|
4732
4811
|
// src/actions/public/getGasPrice.ts
|
@@ -4773,13 +4852,17 @@ async function getLogs(client, {
|
|
4773
4852
|
});
|
4774
4853
|
}
|
4775
4854
|
return logs.map((log) => {
|
4776
|
-
|
4777
|
-
|
4778
|
-
|
4779
|
-
|
4780
|
-
|
4781
|
-
|
4782
|
-
|
4855
|
+
try {
|
4856
|
+
const { eventName, args: args2 } = event ? decodeEventLog({
|
4857
|
+
abi: [event],
|
4858
|
+
data: log.data,
|
4859
|
+
topics: log.topics
|
4860
|
+
}) : { eventName: void 0, args: void 0 };
|
4861
|
+
return formatLog(log, { args: args2, eventName });
|
4862
|
+
} catch {
|
4863
|
+
return;
|
4864
|
+
}
|
4865
|
+
}).filter(Boolean);
|
4783
4866
|
}
|
4784
4867
|
|
4785
4868
|
// src/actions/public/getStorageAt.ts
|
@@ -7070,6 +7153,7 @@ export {
|
|
7070
7153
|
encodeAbiParameters,
|
7071
7154
|
decodeAbiParameters,
|
7072
7155
|
formatAbiItem,
|
7156
|
+
formatAbiParams,
|
7073
7157
|
decodeErrorResult,
|
7074
7158
|
decodeEventLog,
|
7075
7159
|
decodeFunctionData,
|
@@ -7222,4 +7306,4 @@ export {
|
|
7222
7306
|
writeContract,
|
7223
7307
|
getContract
|
7224
7308
|
};
|
7225
|
-
//# sourceMappingURL=chunk-
|
7309
|
+
//# sourceMappingURL=chunk-HU3K54ST.mjs.map
|