viem 0.0.0-main.20230518T142520 → 0.0.0-portable-types-20230518183529
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/LICENSE +1 -1
- package/dist/cjs/actions/ens/getEnsAddress.js +1 -1
- package/dist/cjs/actions/ens/getEnsAddress.js.map +1 -1
- package/dist/cjs/actions/public/waitForTransactionReceipt.js +7 -21
- package/dist/cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
- package/dist/cjs/errors/abi.js +2 -0
- package/dist/cjs/errors/abi.js.map +1 -1
- package/dist/cjs/errors/data.js +2 -2
- package/dist/cjs/errors/data.js.map +1 -1
- package/dist/cjs/errors/version.js +1 -1
- package/dist/cjs/errors/version.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/abi/decodeAbiParameters.js +14 -22
- package/dist/cjs/utils/abi/decodeAbiParameters.js.map +1 -1
- package/dist/cjs/utils/abi/decodeEventLog.js +5 -5
- package/dist/cjs/utils/abi/decodeEventLog.js.map +1 -1
- package/dist/cjs/utils/data/isHex.js +2 -2
- package/dist/cjs/utils/data/isHex.js.map +1 -1
- package/dist/cjs/utils/data/size.js +1 -1
- package/dist/cjs/utils/data/size.js.map +1 -1
- package/dist/cjs/utils/data/slice.js +12 -36
- package/dist/cjs/utils/data/slice.js.map +1 -1
- package/dist/cjs/utils/data/trim.js +1 -1
- package/dist/cjs/utils/data/trim.js.map +1 -1
- package/dist/cjs/utils/encoding/fromHex.js +2 -2
- package/dist/cjs/utils/encoding/fromHex.js.map +1 -1
- package/dist/cjs/utils/hash/keccak256.js +1 -1
- package/dist/cjs/utils/hash/keccak256.js.map +1 -1
- package/dist/cjs/utils/promise/createBatchScheduler.js.map +1 -1
- package/dist/cjs/utils/rpc.js +40 -49
- package/dist/cjs/utils/rpc.js.map +1 -1
- package/dist/cjs/utils/transaction/serializeTransaction.js +1 -2
- package/dist/cjs/utils/transaction/serializeTransaction.js.map +1 -1
- package/dist/esm/actions/ens/getEnsAddress.js +1 -1
- package/dist/esm/actions/ens/getEnsAddress.js.map +1 -1
- package/dist/esm/actions/public/waitForTransactionReceipt.js +7 -21
- package/dist/esm/actions/public/waitForTransactionReceipt.js.map +1 -1
- package/dist/esm/errors/abi.js +2 -0
- package/dist/esm/errors/abi.js.map +1 -1
- package/dist/esm/errors/data.js +2 -2
- package/dist/esm/errors/data.js.map +1 -1
- package/dist/esm/errors/version.js +1 -1
- package/dist/esm/errors/version.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/abi/decodeAbiParameters.js +15 -23
- package/dist/esm/utils/abi/decodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/abi/decodeEventLog.js +5 -5
- package/dist/esm/utils/abi/decodeEventLog.js.map +1 -1
- package/dist/esm/utils/data/isHex.js +2 -2
- package/dist/esm/utils/data/isHex.js.map +1 -1
- package/dist/esm/utils/data/size.js +1 -1
- package/dist/esm/utils/data/size.js.map +1 -1
- package/dist/esm/utils/data/slice.js +12 -36
- package/dist/esm/utils/data/slice.js.map +1 -1
- package/dist/esm/utils/data/trim.js +1 -1
- package/dist/esm/utils/data/trim.js.map +1 -1
- package/dist/esm/utils/encoding/fromHex.js +2 -2
- package/dist/esm/utils/encoding/fromHex.js.map +1 -1
- package/dist/esm/utils/hash/keccak256.js +1 -1
- package/dist/esm/utils/hash/keccak256.js.map +1 -1
- package/dist/esm/utils/promise/createBatchScheduler.js.map +1 -1
- package/dist/esm/utils/rpc.js +40 -49
- package/dist/esm/utils/rpc.js.map +1 -1
- package/dist/esm/utils/transaction/serializeTransaction.js +1 -2
- package/dist/esm/utils/transaction/serializeTransaction.js.map +1 -1
- package/dist/types/actions/public/getTransactionReceipt.d.ts +1 -1
- package/dist/types/actions/public/waitForTransactionReceipt.d.ts.map +1 -1
- package/dist/types/errors/abi.d.ts.map +1 -1
- package/dist/types/errors/data.d.ts +1 -2
- package/dist/types/errors/data.d.ts.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/errors/version.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/contract.d.ts +33 -7
- package/dist/types/types/contract.d.ts.map +1 -1
- package/dist/types/types/log.d.ts +2 -0
- package/dist/types/types/log.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeAbiParameters.d.ts.map +1 -1
- package/dist/types/utils/data/isHex.d.ts +1 -3
- package/dist/types/utils/data/isHex.d.ts.map +1 -1
- package/dist/types/utils/data/slice.d.ts +3 -9
- package/dist/types/utils/data/slice.d.ts.map +1 -1
- package/dist/types/utils/data/trim.d.ts.map +1 -1
- package/dist/types/utils/encoding/fromHex.d.ts +1 -1
- package/dist/types/utils/hash/keccak256.d.ts.map +1 -1
- package/dist/types/utils/promise/createBatchScheduler.d.ts +4 -6
- package/dist/types/utils/promise/createBatchScheduler.d.ts.map +1 -1
- package/dist/types/utils/rpc.d.ts.map +1 -1
- package/dist/types/utils/transaction/serializeTransaction.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/actions/ens/getEnsAddress.ts +1 -1
- package/src/actions/public/getTransactionReceipt.ts +1 -1
- package/src/actions/public/waitForTransactionReceipt.ts +6 -31
- package/src/errors/abi.ts +2 -0
- package/src/errors/data.ts +2 -8
- package/src/errors/version.ts +1 -1
- package/src/index.ts +23 -2
- package/src/types/contract.ts +87 -11
- package/src/types/log.ts +2 -2
- package/src/utils/abi/decodeAbiParameters.ts +15 -36
- package/src/utils/abi/decodeEventLog.ts +5 -5
- package/src/utils/data/isHex.ts +2 -5
- package/src/utils/data/size.ts +1 -1
- package/src/utils/data/slice.ts +11 -43
- package/src/utils/data/trim.ts +1 -3
- package/src/utils/encoding/fromHex.ts +3 -3
- package/src/utils/hash/keccak256.ts +1 -3
- package/src/utils/promise/createBatchScheduler.ts +7 -24
- package/src/utils/rpc.ts +49 -59
- package/src/utils/transaction/serializeTransaction.ts +2 -3
@@ -30,6 +30,7 @@ type GetInferredLogValues<TAbiEvent extends AbiEvent | undefined = undefined, TA
|
|
30
30
|
args: GetEventArgs<TAbi, TEventName, {
|
31
31
|
EnableUnion: false;
|
32
32
|
IndexedOnly: false;
|
33
|
+
Required: true;
|
33
34
|
}>;
|
34
35
|
/** The event name decoded from `topics`. */
|
35
36
|
eventName: TEventName;
|
@@ -40,6 +41,7 @@ type GetInferredLogValues<TAbiEvent extends AbiEvent | undefined = undefined, TA
|
|
40
41
|
args: GetEventArgs<TAbi, string, {
|
41
42
|
EnableUnion: false;
|
42
43
|
IndexedOnly: false;
|
44
|
+
Required: true;
|
43
45
|
}>;
|
44
46
|
/** The event name decoded from `topics`. */
|
45
47
|
eventName: TName;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/types/log.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/types/log.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"decodeAbiParameters.d.ts","sourceRoot":"","sources":["../../../../src/utils/abi/decodeAbiParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,6BAA6B,EAC7B,MAAM,EACP,MAAM,SAAS,CAAA;
|
1
|
+
{"version":3,"file":"decodeAbiParameters.d.ts","sourceRoot":"","sources":["../../../../src/utils/abi/decodeAbiParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,6BAA6B,EAC7B,MAAM,EACP,MAAM,SAAS,CAAA;AAQhB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAc9C,MAAM,MAAM,6BAA6B,CACvC,OAAO,SACH,SAAS,YAAY,EAAE,GACvB,SAAS,OAAO,EAAE,GAAG,SAAS,YAAY,EAAE,IAC9C,6BAA6B,CAC/B,OAAO,SAAS,SAAS,YAAY,EAAE,GAAG,OAAO,GAAG,YAAY,EAAE,CACnE,CAAA;AAED,wBAAgB,mBAAmB,CACjC,OAAO,SAAS,SAAS,YAAY,EAAE,GAAG,SAAS,OAAO,EAAE,EAC5D,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,6BAA6B,CAAC,OAAO,CAAC,CAS5E"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"isHex.d.ts","sourceRoot":"","sources":["../../../../src/utils/data/isHex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAE9C,wBAAgB,KAAK,
|
1
|
+
{"version":3,"file":"isHex.d.ts","sourceRoot":"","sources":["../../../../src/utils/data/isHex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAE9C,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,GAAG,CAIlD"}
|
@@ -7,9 +7,7 @@ export type SliceReturnType<TValue extends ByteArray | Hex> = TValue extends Hex
|
|
7
7
|
* @param start The start offset (in bytes).
|
8
8
|
* @param end The end offset (in bytes).
|
9
9
|
*/
|
10
|
-
export declare function slice<TValue extends ByteArray | Hex>(value: TValue, start?: number, end?: number
|
11
|
-
strict?: boolean;
|
12
|
-
}): SliceReturnType<TValue>;
|
10
|
+
export declare function slice<TValue extends ByteArray | Hex>(value: TValue, start?: number, end?: number): SliceReturnType<TValue>;
|
13
11
|
/**
|
14
12
|
* @description Returns a section of the byte array given a start/end bytes offset.
|
15
13
|
*
|
@@ -17,9 +15,7 @@ export declare function slice<TValue extends ByteArray | Hex>(value: TValue, sta
|
|
17
15
|
* @param start The start offset (in bytes).
|
18
16
|
* @param end The end offset (in bytes).
|
19
17
|
*/
|
20
|
-
export declare function sliceBytes(
|
21
|
-
strict?: boolean;
|
22
|
-
}): ByteArray;
|
18
|
+
export declare function sliceBytes(value: ByteArray, start?: number, end?: number): ByteArray;
|
23
19
|
/**
|
24
20
|
* @description Returns a section of the hex value given a start/end bytes offset.
|
25
21
|
*
|
@@ -27,7 +23,5 @@ export declare function sliceBytes(value_: ByteArray, start?: number, end?: numb
|
|
27
23
|
* @param start The start offset (in bytes).
|
28
24
|
* @param end The end offset (in bytes).
|
29
25
|
*/
|
30
|
-
export declare function sliceHex(value_: Hex, start?: number, end?: number
|
31
|
-
strict?: boolean;
|
32
|
-
}): Hex;
|
26
|
+
export declare function sliceHex(value_: Hex, start?: number, end?: number): Hex;
|
33
27
|
//# sourceMappingURL=slice.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../../../src/utils/data/slice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAKzD,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,IAAI,MAAM,SAAS,GAAG,GAC5E,GAAG,GACH,SAAS,CAAA;AAEb;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,EAClD,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"slice.d.ts","sourceRoot":"","sources":["../../../../src/utils/data/slice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAKzD,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,IAAI,MAAM,SAAS,GAAG,GAC5E,GAAG,GACH,SAAS,CAAA;AAEb;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,EAClD,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,eAAe,CAAC,MAAM,CAAC,CAIzB;AAOD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,SAAS,CAGX;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAMvE"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"trim.d.ts","sourceRoot":"","sources":["../../../../src/utils/data/trim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAEzD,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AACD,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,IAAI,MAAM,SAAS,GAAG,GAC3E,GAAG,GACH,SAAS,CAAA;AAEb,wBAAgB,IAAI,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,EACjD,UAAU,EAAE,MAAM,EAClB,EAAE,GAAY,EAAE,GAAE,WAAgB,GACjC,cAAc,CAAC,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"trim.d.ts","sourceRoot":"","sources":["../../../../src/utils/data/trim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAEzD,KAAK,WAAW,GAAG;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AACD,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,IAAI,MAAM,SAAS,GAAG,GAC3E,GAAG,GACH,SAAS,CAAA;AAEb,wBAAgB,IAAI,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,EACjD,UAAU,EAAE,MAAM,EAClB,EAAE,GAAY,EAAE,GAAE,WAAgB,GACjC,cAAc,CAAC,MAAM,CAAC,CAoBxB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keccak256.d.ts","sourceRoot":"","sources":["../../../../src/utils/hash/keccak256.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAKzD,KAAK,EAAE,GAAG,KAAK,GAAG,OAAO,CAAA;AAEzB,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,EAAE,IACpC,CAAC,GAAG,SAAS,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,GACzC,CAAC,GAAG,SAAS,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAA;AAErC,wBAAgB,SAAS,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,EAC9C,KAAK,EAAE,GAAG,GAAG,SAAS,EACtB,GAAG,CAAC,EAAE,GAAG,GACR,aAAa,CAAC,GAAG,CAAC,
|
1
|
+
{"version":3,"file":"keccak256.d.ts","sourceRoot":"","sources":["../../../../src/utils/hash/keccak256.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAKzD,KAAK,EAAE,GAAG,KAAK,GAAG,OAAO,CAAA;AAEzB,MAAM,MAAM,aAAa,CAAC,GAAG,SAAS,EAAE,IACpC,CAAC,GAAG,SAAS,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,GACzC,CAAC,GAAG,SAAS,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,CAAA;AAErC,wBAAgB,SAAS,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,EAC9C,KAAK,EAAE,GAAG,GAAG,SAAS,EACtB,GAAG,CAAC,EAAE,GAAG,GACR,aAAa,CAAC,GAAG,CAAC,CAKpB"}
|
@@ -2,16 +2,14 @@ type Resolved<TReturnType extends readonly unknown[] = any> = [
|
|
2
2
|
result: TReturnType[number],
|
3
3
|
results: TReturnType
|
4
4
|
];
|
5
|
-
export
|
5
|
+
export declare function createBatchScheduler<TParameters, TReturnType extends readonly unknown[]>({ fn, id, shouldSplitBatch, wait, }: {
|
6
6
|
fn: (args: TParameters[]) => Promise<TReturnType>;
|
7
7
|
id: number | string;
|
8
8
|
shouldSplitBatch?: (args: TParameters[]) => boolean;
|
9
9
|
wait?: number;
|
10
|
+
}): {
|
11
|
+
flush: () => boolean;
|
12
|
+
schedule(args: TParameters): Promise<Resolved<TReturnType>>;
|
10
13
|
};
|
11
|
-
export type CreateBatchSchedulerReturnType<TParameters = unknown, TReturnType extends readonly unknown[] = readonly unknown[]> = {
|
12
|
-
flush: () => void;
|
13
|
-
schedule: TParameters extends undefined ? (args?: TParameters) => Promise<Resolved<TReturnType>> : (args: TParameters) => Promise<Resolved<TReturnType>>;
|
14
|
-
};
|
15
|
-
export declare function createBatchScheduler<TParameters, TReturnType extends readonly unknown[]>({ fn, id, shouldSplitBatch, wait, }: CreateBatchSchedulerArguments<TParameters, TReturnType>): CreateBatchSchedulerReturnType<TParameters, TReturnType>;
|
16
14
|
export {};
|
17
15
|
//# sourceMappingURL=createBatchScheduler.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createBatchScheduler.d.ts","sourceRoot":"","sources":["../../../../src/utils/promise/createBatchScheduler.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,WAAW,SAAS,SAAS,OAAO,EAAE,GAAG,GAAG,IAAI;IAC5D,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,WAAW;CACrB,CAAA;
|
1
|
+
{"version":3,"file":"createBatchScheduler.d.ts","sourceRoot":"","sources":["../../../../src/utils/promise/createBatchScheduler.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,WAAW,SAAS,SAAS,OAAO,EAAE,GAAG,GAAG,IAAI;IAC5D,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;IAC3B,OAAO,EAAE,WAAW;CACrB,CAAA;AAWD,wBAAgB,oBAAoB,CAClC,WAAW,EACX,WAAW,SAAS,SAAS,OAAO,EAAE,EACtC,EACA,EAAE,EACF,EAAE,EACF,gBAAgB,EAChB,IAAQ,GACT,EAAE;IACD,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IACjD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAA;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;;mBAgCwB,WAAW;EAsBnC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/utils/rpc.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/utils/rpc.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,eAAe,CAAA;AAc5D,KAAK,aAAa,CAAC,CAAC,IAAI;IACtB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,MAAM,EAAE,CAAC,CAAA;IACT,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AACD,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AACD,KAAK,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI;IACnC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAA;KACrB,GAAG,CACA;QACE,MAAM,EAAE,OAAO,CAAA;QACf,KAAK,CAAC,EAAE,KAAK,CAAA;KACd,GACD;QACE,MAAM,CAAC,EAAE,KAAK,CAAA;QACd,KAAK,EAAE,MAAM,CAAA;KACd,CACJ,CAAA;CACF,CAAA;AAED,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,CAAA;AAElD,MAAM,MAAM,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI;IACrD,OAAO,EAAE,GAAG,MAAM,EAAE,CAAA;IACpB,EAAE,EAAE,MAAM,CAAA;CACX,GAAG,CACA,aAAa,CAAC,OAAO,CAAC,GACtB,WAAW,CAAC,MAAM,CAAC,GACnB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAChC,CAAA;AAKD,MAAM,MAAM,WAAW,GAAG;IAExB,IAAI,EAAE,UAAU,CAAA;IAEhB,YAAY,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAExC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,iBAAe,IAAI,CACjB,GAAG,EAAE,MAAM,EACX,EAAE,IAAI,EAAE,YAAiB,EAAE,OAAgB,EAAE,EAAE,WAAW,kCAwD3D;AAKD,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM,CAAA;AACzB,KAAK,UAAU,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAA;AACxC,KAAK,WAAW,GAAG,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;AAEtC,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG;IAC/B,QAAQ,EAAE,WAAW,CAAA;IACrB,aAAa,EAAE,WAAW,CAAA;CAC3B,CAAA;AAID,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,mBAgE3C;AAED,iBAAS,SAAS,CAChB,MAAM,EAAE,MAAM,EACd,EACE,IAAI,EACJ,MAAM,EACN,OAAO,GACR,EAAE;IAED,IAAI,EAAE,UAAU,CAAA;IAEhB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAA;IAEvC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CAClD,UA2CF;AAED,iBAAe,cAAc,CAC3B,MAAM,EAAE,MAAM,EACd,EACE,IAAI,EACJ,OAAgB,GACjB,EAAE;IAED,IAAI,EAAE,UAAU,CAAA;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,kCAgBF;AAID,eAAO,MAAM,GAAG;;;;CAIf,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"serializeTransaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/transaction/serializeTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAO,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAEV,uBAAuB,EAIvB,qBAAqB,EAIrB,eAAe,EAChB,MAAM,4BAA4B,CAAA;
|
1
|
+
{"version":3,"file":"serializeTransaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/transaction/serializeTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAO,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAEV,uBAAuB,EAIvB,qBAAqB,EAIrB,eAAe,EAChB,MAAM,4BAA4B,CAAA;AAWnC,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,yBAAyB,CAAA;AAEhC,MAAM,MAAM,+BAA+B,CACzC,wBAAwB,SAAS,uBAAuB,GAAG,uBAAuB,EAClF,gBAAgB,SAAS,eAAe,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,IACrF,qBAAqB,CAAC,gBAAgB,CAAC,CAAA;AAE3C,wBAAgB,oBAAoB,CAClC,wBAAwB,SAAS,uBAAuB,EAExD,WAAW,EAAE,wBAAwB,EACrC,SAAS,CAAC,EAAE,SAAS,GACpB,+BAA+B,CAAC,wBAAwB,CAAC,CAmB3D"}
|
package/package.json
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
"isomorphic-ws": "5.0.0",
|
13
13
|
"ws": "8.12.0"
|
14
14
|
},
|
15
|
-
"version": "0.0.0-
|
15
|
+
"version": "0.0.0-portable-types-20230518183529",
|
16
16
|
"files": [
|
17
17
|
"dist",
|
18
18
|
"!dist/**/*.tsbuildinfo",
|
@@ -140,4 +140,4 @@
|
|
140
140
|
"wallet",
|
141
141
|
"web3"
|
142
142
|
]
|
143
|
-
}
|
143
|
+
}
|
@@ -24,7 +24,7 @@ export type GetTransactionReceiptReturnType<
|
|
24
24
|
*
|
25
25
|
* - Docs: https://viem.sh/docs/actions/public/getTransactionReceipt.html
|
26
26
|
* - Example: https://stackblitz.com/github/wagmi-dev/viem/tree/main/examples/transactions/fetching-transactions
|
27
|
-
* - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#
|
27
|
+
* - JSON-RPC Methods: [`eth_getTransactionReceipt`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getTransactionReceipt)
|
28
28
|
*
|
29
29
|
* @param client - Client to use
|
30
30
|
* @param parameters - {@link GetTransactionReceiptParameters}
|
@@ -9,7 +9,6 @@ import type { Chain } from '../../types/chain.js'
|
|
9
9
|
import type { Hash } from '../../types/misc.js'
|
10
10
|
import type { Transaction } from '../../types/transaction.js'
|
11
11
|
import { observe } from '../../utils/observe.js'
|
12
|
-
import { withRetry } from '../../utils/promise/withRetry.js'
|
13
12
|
|
14
13
|
import { getBlock } from './getBlock.js'
|
15
14
|
import {
|
@@ -116,7 +115,7 @@ export async function waitForTransactionReceipt<
|
|
116
115
|
let transaction: GetTransactionReturnType<TChain> | undefined
|
117
116
|
let replacedTransaction: GetTransactionReturnType<TChain> | undefined
|
118
117
|
let receipt: GetTransactionReceiptReturnType<TChain>
|
119
|
-
let
|
118
|
+
let retries = 0
|
120
119
|
|
121
120
|
return new Promise((resolve, reject) => {
|
122
121
|
if (timeout)
|
@@ -134,11 +133,7 @@ export async function waitForTransactionReceipt<
|
|
134
133
|
emitOnBegin: true,
|
135
134
|
poll: true,
|
136
135
|
pollingInterval,
|
137
|
-
async onBlockNumber(
|
138
|
-
if (retrying) return
|
139
|
-
|
140
|
-
let blockNumber = blockNumber_
|
141
|
-
|
136
|
+
async onBlockNumber(blockNumber) {
|
142
137
|
const done = async (fn: () => void) => {
|
143
138
|
unwatch()
|
144
139
|
fn()
|
@@ -157,34 +152,13 @@ export async function waitForTransactionReceipt<
|
|
157
152
|
}
|
158
153
|
|
159
154
|
// Get the transaction to check if it's been replaced.
|
160
|
-
|
161
|
-
// up mined transactions.
|
162
|
-
if (!transaction) {
|
163
|
-
retrying = true
|
164
|
-
await withRetry(
|
165
|
-
async () => {
|
166
|
-
transaction = await getTransaction(client, { hash })
|
167
|
-
if (transaction.blockNumber)
|
168
|
-
blockNumber = transaction.blockNumber
|
169
|
-
},
|
170
|
-
{
|
171
|
-
// exponential backoff
|
172
|
-
delay: ({ count }) => ~~(1 << count) * 200,
|
173
|
-
retryCount: 6,
|
174
|
-
},
|
175
|
-
)
|
176
|
-
retrying = false
|
177
|
-
}
|
155
|
+
transaction = await getTransaction(client, { hash })
|
178
156
|
|
179
157
|
// Get the receipt to check if it's been processed.
|
180
158
|
receipt = await getTransactionReceipt(client, { hash })
|
181
159
|
|
182
160
|
// Check if we have enough confirmations. If not, continue polling.
|
183
|
-
if (
|
184
|
-
confirmations > 0 &&
|
185
|
-
blockNumber - receipt.blockNumber + 1n < confirmations
|
186
|
-
)
|
187
|
-
return
|
161
|
+
if (blockNumber - receipt.blockNumber + 1n < confirmations) return
|
188
162
|
|
189
163
|
done(() => emit.resolve(receipt))
|
190
164
|
} catch (err) {
|
@@ -246,7 +220,8 @@ export async function waitForTransactionReceipt<
|
|
246
220
|
emit.resolve(receipt)
|
247
221
|
})
|
248
222
|
} else {
|
249
|
-
done(() => emit.reject(err))
|
223
|
+
if (retries > 2) done(() => emit.reject(err))
|
224
|
+
retries++
|
250
225
|
}
|
251
226
|
}
|
252
227
|
},
|
package/src/errors/abi.ts
CHANGED
@@ -293,6 +293,8 @@ export class DecodeLogDataMismatch extends BaseError {
|
|
293
293
|
].join('\n'),
|
294
294
|
{
|
295
295
|
metaMessages: [
|
296
|
+
'This error is usually caused if the ABI event has too many non-indexed event parameters for the emitted log.',
|
297
|
+
'',
|
296
298
|
`Params: (${formatAbiParams(params, { includeName: true })})`,
|
297
299
|
`Data: ${data} (${size} bytes)`,
|
298
300
|
],
|
package/src/errors/data.ts
CHANGED
@@ -2,15 +2,9 @@ import { BaseError } from './base.js'
|
|
2
2
|
|
3
3
|
export class SliceOffsetOutOfBoundsError extends BaseError {
|
4
4
|
override name = 'SliceOffsetOutOfBoundsError'
|
5
|
-
constructor({
|
6
|
-
offset,
|
7
|
-
position,
|
8
|
-
size,
|
9
|
-
}: { offset: number; position: 'start' | 'end'; size: number }) {
|
5
|
+
constructor({ offset, size }: { offset: number; size: number }) {
|
10
6
|
super(
|
11
|
-
`Slice ${
|
12
|
-
position === 'start' ? 'starting' : 'ending'
|
13
|
-
} at offset "${offset}" is out-of-bounds (size: ${size}).`,
|
7
|
+
`Slice starting at offset "${offset}" is out-of-bounds (size: ${size}).`,
|
14
8
|
)
|
15
9
|
}
|
16
10
|
}
|
package/src/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '0.
|
1
|
+
export const version = '0.3.24'
|
package/src/index.ts
CHANGED
@@ -426,9 +426,30 @@ export {
|
|
426
426
|
type BlockTag,
|
427
427
|
type Uncle,
|
428
428
|
} from './types/block.js'
|
429
|
-
export {
|
429
|
+
export {
|
430
|
+
type ByteArray,
|
431
|
+
type Hash,
|
432
|
+
type Hex,
|
433
|
+
type LogTopic,
|
434
|
+
type Signature,
|
435
|
+
} from './types/misc.js'
|
430
436
|
export type { Chain } from './types/chain.js'
|
431
|
-
export type {
|
437
|
+
export type {
|
438
|
+
EIP1193Provider,
|
439
|
+
RpcErrorCode,
|
440
|
+
RpcError as RpcError_,
|
441
|
+
ProviderConnectInfo,
|
442
|
+
ProviderMessage,
|
443
|
+
Chain as Chain_,
|
444
|
+
NetworkSync,
|
445
|
+
PublicRequests,
|
446
|
+
Requests,
|
447
|
+
SignableRequests,
|
448
|
+
WatchAssetParams,
|
449
|
+
WalletPermissionCaveat,
|
450
|
+
WalletPermission,
|
451
|
+
WalletRequests,
|
452
|
+
} from './types/eip1193.js'
|
432
453
|
export {
|
433
454
|
type FeeHistory,
|
434
455
|
type FeeValues,
|
package/src/types/contract.ts
CHANGED
@@ -20,7 +20,7 @@ import type {
|
|
20
20
|
|
21
21
|
import type { Hex, LogTopic } from './misc.js'
|
22
22
|
import type { TransactionRequest } from './transaction.js'
|
23
|
-
import type { Filter, NoUndefined } from './utils.js'
|
23
|
+
import type { Filter, MaybeRequired, NoUndefined, Prettify } from './utils.js'
|
24
24
|
|
25
25
|
export type AbiItem = Abi[number]
|
26
26
|
|
@@ -236,10 +236,7 @@ export type GetEventArgsFromTopics<
|
|
236
236
|
TAbiEvent extends AbiEvent & { type: 'event' } = TAbi extends Abi
|
237
237
|
? ExtractAbiEvent<TAbi, TEventName>
|
238
238
|
: AbiEvent & { type: 'event' },
|
239
|
-
TArgs =
|
240
|
-
TAbiEvent['inputs'],
|
241
|
-
{ EnableUnion: false; IndexedOnly: false }
|
242
|
-
>,
|
239
|
+
TArgs = AbiEventTopicsToPrimitiveTypes<TAbiEvent['inputs'], TTopics, TData>,
|
243
240
|
> = TTopics extends readonly []
|
244
241
|
? TData extends undefined
|
245
242
|
? { args?: never }
|
@@ -252,10 +249,12 @@ export type GetEventArgsFromTopics<
|
|
252
249
|
type EventParameterOptions = {
|
253
250
|
EnableUnion?: boolean
|
254
251
|
IndexedOnly?: boolean
|
252
|
+
Required?: boolean
|
255
253
|
}
|
256
254
|
type DefaultEventParameterOptions = {
|
257
255
|
EnableUnion: true
|
258
256
|
IndexedOnly: true
|
257
|
+
Required: false
|
259
258
|
}
|
260
259
|
|
261
260
|
type HashedEventTypes = 'bytes' | 'string' | 'tuple' | `${string}[${string}]`
|
@@ -327,11 +326,13 @@ export type AbiEventParametersToPrimitiveTypes<
|
|
327
326
|
>
|
328
327
|
},
|
329
328
|
]
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
329
|
+
| (Options['Required'] extends true
|
330
|
+
? never
|
331
|
+
: // Distribute over tuple to represent optional parameters
|
332
|
+
Filtered extends readonly [
|
333
|
+
...infer Head extends readonly AbiParameter[],
|
334
|
+
infer _,
|
335
|
+
]
|
335
336
|
? AbiEventParametersToPrimitiveTypes<
|
336
337
|
readonly [...{ [K in keyof Head]: Omit<Head[K], 'name'> }],
|
337
338
|
Options
|
@@ -346,6 +347,81 @@ export type AbiEventParametersToPrimitiveTypes<
|
|
346
347
|
? Name
|
347
348
|
: never]?: AbiEventParameterToPrimitiveType<Parameter, Options>
|
348
349
|
} extends infer Mapped
|
349
|
-
?
|
350
|
+
? MaybeRequired<
|
351
|
+
Mapped,
|
352
|
+
Options['Required'] extends boolean ? Options['Required'] : false
|
353
|
+
>
|
350
354
|
: never
|
351
355
|
: never
|
356
|
+
|
357
|
+
/**
|
358
|
+
* @internal
|
359
|
+
*/
|
360
|
+
// TODO(@tmm): Simplify this type
|
361
|
+
export type AbiEventTopicsToPrimitiveTypes<
|
362
|
+
TAbiParameters extends readonly AbiParameter[],
|
363
|
+
TTopics extends LogTopic[] | undefined = undefined,
|
364
|
+
TData extends Hex | undefined = undefined,
|
365
|
+
TBase = TAbiParameters[0] extends { name: string } ? {} : [],
|
366
|
+
> = Prettify<
|
367
|
+
TAbiParameters extends readonly [
|
368
|
+
infer Head extends AbiParameter,
|
369
|
+
...infer Tail,
|
370
|
+
]
|
371
|
+
? TTopics extends readonly [infer TopicHead, ...infer TopicTail]
|
372
|
+
? Head extends { indexed: true }
|
373
|
+
? Head extends { name: infer Name extends string }
|
374
|
+
? {
|
375
|
+
[_ in Name]: TopicHead extends LogTopic
|
376
|
+
? AbiEventTopicToPrimitiveType<Head, TopicHead>
|
377
|
+
: never
|
378
|
+
} & (Tail extends readonly []
|
379
|
+
? {}
|
380
|
+
: Tail extends readonly AbiParameter[]
|
381
|
+
? TopicTail extends LogTopic[]
|
382
|
+
? AbiEventTopicsToPrimitiveTypes<Tail, TopicTail, TData>
|
383
|
+
: {}
|
384
|
+
: {})
|
385
|
+
: [
|
386
|
+
TopicHead extends LogTopic
|
387
|
+
? AbiEventTopicToPrimitiveType<Head, TopicHead>
|
388
|
+
: never,
|
389
|
+
...(Tail extends readonly []
|
390
|
+
? []
|
391
|
+
: Tail extends readonly AbiParameter[]
|
392
|
+
? TopicTail extends LogTopic[]
|
393
|
+
? AbiEventTopicsToPrimitiveTypes<Tail, TopicTail, TData>
|
394
|
+
: []
|
395
|
+
: []),
|
396
|
+
]
|
397
|
+
: TBase
|
398
|
+
: TTopics extends readonly []
|
399
|
+
? TData extends '0x'
|
400
|
+
? TBase
|
401
|
+
: TData extends Hex
|
402
|
+
? Head extends AbiParameter
|
403
|
+
? Head extends { indexed: true }
|
404
|
+
? Tail extends readonly AbiParameter[]
|
405
|
+
? AbiEventTopicsToPrimitiveTypes<Tail, [], TData>
|
406
|
+
: TBase
|
407
|
+
: Head extends { name: infer Name extends string }
|
408
|
+
? {
|
409
|
+
[_ in Name]: AbiParameterToPrimitiveType<Head>
|
410
|
+
} & (Tail extends readonly []
|
411
|
+
? {}
|
412
|
+
: Tail extends readonly AbiParameter[]
|
413
|
+
? AbiEventTopicsToPrimitiveTypes<Tail, [], TData>
|
414
|
+
: {})
|
415
|
+
: [
|
416
|
+
AbiParameterToPrimitiveType<Head>,
|
417
|
+
...(Tail extends readonly []
|
418
|
+
? []
|
419
|
+
: Tail extends readonly AbiParameter[]
|
420
|
+
? AbiEventTopicsToPrimitiveTypes<Tail, [], TData>
|
421
|
+
: []),
|
422
|
+
]
|
423
|
+
: TBase
|
424
|
+
: TBase
|
425
|
+
: TBase
|
426
|
+
: undefined
|
427
|
+
>
|
package/src/types/log.ts
CHANGED
@@ -93,7 +93,7 @@ type GetInferredLogValues<
|
|
93
93
|
args: GetEventArgs<
|
94
94
|
TAbi,
|
95
95
|
TEventName,
|
96
|
-
{ EnableUnion: false; IndexedOnly: false }
|
96
|
+
{ EnableUnion: false; IndexedOnly: false; Required: true }
|
97
97
|
>
|
98
98
|
/** The event name decoded from `topics`. */
|
99
99
|
eventName: TEventName
|
@@ -105,7 +105,7 @@ type GetInferredLogValues<
|
|
105
105
|
args: GetEventArgs<
|
106
106
|
TAbi,
|
107
107
|
string,
|
108
|
-
{ EnableUnion: false; IndexedOnly: false }
|
108
|
+
{ EnableUnion: false; IndexedOnly: false; Required: true }
|
109
109
|
>
|
110
110
|
/** The event name decoded from `topics`. */
|
111
111
|
eventName: TName
|
@@ -6,6 +6,7 @@ import type {
|
|
6
6
|
} from 'abitype'
|
7
7
|
|
8
8
|
import {
|
9
|
+
AbiDecodingDataSizeInvalidError,
|
9
10
|
AbiDecodingDataSizeTooSmallError,
|
10
11
|
AbiDecodingZeroDataError,
|
11
12
|
InvalidAbiDecodingTypeError,
|
@@ -37,12 +38,8 @@ export function decodeAbiParameters<
|
|
37
38
|
>(params: Narrow<TParams>, data: Hex): DecodeAbiParametersReturnType<TParams> {
|
38
39
|
if (data === '0x' && (params as unknown[]).length > 0)
|
39
40
|
throw new AbiDecodingZeroDataError()
|
40
|
-
if (size(data)
|
41
|
-
throw new
|
42
|
-
data,
|
43
|
-
params: params as readonly AbiParameter[],
|
44
|
-
size: size(data),
|
45
|
-
})
|
41
|
+
if (size(data) % 32 !== 0)
|
42
|
+
throw new AbiDecodingDataSizeInvalidError({ data, size: size(data) })
|
46
43
|
return decodeParams({
|
47
44
|
data,
|
48
45
|
params: params as readonly AbiParameter[],
|
@@ -105,7 +102,7 @@ function decodeParam({
|
|
105
102
|
return decodeBytes(data, { param, position })
|
106
103
|
}
|
107
104
|
|
108
|
-
const value = slice(data, position, position + 32
|
105
|
+
const value = slice(data, position, position + 32) as Hex
|
109
106
|
if (param.type.startsWith('uint') || param.type.startsWith('int')) {
|
110
107
|
return decodeNumber(value, { param })
|
111
108
|
}
|
@@ -142,13 +139,9 @@ function decodeArray<TParam extends AbiParameter>(
|
|
142
139
|
// we will need to decode the offset of the array data.
|
143
140
|
if (!length) {
|
144
141
|
// Get the offset of the array data.
|
145
|
-
const offset = hexToNumber(
|
146
|
-
slice(data, position, position + 32, { strict: true }),
|
147
|
-
)
|
142
|
+
const offset = hexToNumber(slice(data, position, position + 32))
|
148
143
|
// Get the length of the array from the offset.
|
149
|
-
const length = hexToNumber(
|
150
|
-
slice(data, offset, offset + 32, { strict: true }),
|
151
|
-
)
|
144
|
+
const length = hexToNumber(slice(data, offset, offset + 32))
|
152
145
|
|
153
146
|
let consumed = 0
|
154
147
|
const value: AbiParameterToPrimitiveType<TParam>[] = []
|
@@ -176,9 +169,7 @@ function decodeArray<TParam extends AbiParameter>(
|
|
176
169
|
let consumed = 0
|
177
170
|
const value: AbiParameterToPrimitiveType<TParam>[] = []
|
178
171
|
for (let i = 0; i < length; ++i) {
|
179
|
-
const offset = hexToNumber(
|
180
|
-
slice(data, position, position + 32, { strict: true }),
|
181
|
-
)
|
172
|
+
const offset = hexToNumber(slice(data, position, position + 32))
|
182
173
|
const decodedChild = decodeParam({
|
183
174
|
data: slice(data, offset),
|
184
175
|
param,
|
@@ -219,23 +210,15 @@ function decodeBytes<TParam extends AbiParameter>(
|
|
219
210
|
if (!size) {
|
220
211
|
// If we don't have a size, we're dealing with a dynamic-size array
|
221
212
|
// so we need to read the offset of the data part first.
|
222
|
-
const offset = hexToNumber(
|
223
|
-
|
224
|
-
)
|
225
|
-
const length = hexToNumber(
|
226
|
-
slice(data, offset, offset + 32, { strict: true }),
|
227
|
-
)
|
213
|
+
const offset = hexToNumber(slice(data, position, position + 32))
|
214
|
+
const length = hexToNumber(slice(data, offset, offset + 32))
|
228
215
|
// If there is no length, we have zero data.
|
229
216
|
if (length === 0) return { consumed: 32, value: '0x' }
|
230
|
-
const value = slice(data, offset + 32, offset + 32 + length
|
231
|
-
strict: true,
|
232
|
-
})
|
217
|
+
const value = slice(data, offset + 32, offset + 32 + length)
|
233
218
|
return { consumed: 32, value }
|
234
219
|
}
|
235
220
|
|
236
|
-
const value = slice(data, position, position + parseInt(size)
|
237
|
-
strict: true,
|
238
|
-
})
|
221
|
+
const value = slice(data, position, position + parseInt(size))
|
239
222
|
return { consumed: 32, value }
|
240
223
|
}
|
241
224
|
|
@@ -255,14 +238,12 @@ function decodeNumber<TParam extends AbiParameter>(
|
|
255
238
|
}
|
256
239
|
|
257
240
|
function decodeString(data: Hex, { position }: { position: number }) {
|
258
|
-
const offset = hexToNumber(
|
259
|
-
|
260
|
-
)
|
261
|
-
const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }))
|
241
|
+
const offset = hexToNumber(slice(data, position, position + 32))
|
242
|
+
const length = hexToNumber(slice(data, offset, offset + 32))
|
262
243
|
// If there is no length, we have zero data (empty string).
|
263
244
|
if (length === 0) return { consumed: 32, value: '' }
|
264
245
|
const value = hexToString(
|
265
|
-
trim(slice(data, offset + 32, offset + 32 + length
|
246
|
+
trim(slice(data, offset + 32, offset + 32 + length)),
|
266
247
|
)
|
267
248
|
return { consumed: 32, value }
|
268
249
|
}
|
@@ -285,9 +266,7 @@ function decodeTuple<
|
|
285
266
|
// If the tuple has a dynamic child, we must first decode the offset to the
|
286
267
|
// tuple data.
|
287
268
|
if (hasDynamicChild(param)) {
|
288
|
-
const offset = hexToNumber(
|
289
|
-
slice(data, position, position + 32, { strict: true }),
|
290
|
-
)
|
269
|
+
const offset = hexToNumber(slice(data, position, position + 32))
|
291
270
|
// Decode each component of the tuple, starting at the offset.
|
292
271
|
for (let i = 0; i < param.components.length; ++i) {
|
293
272
|
const component = param.components[i]
|
@@ -93,8 +93,8 @@ export function decodeEventLog<
|
|
93
93
|
let args: any = isUnnamed ? [] : {}
|
94
94
|
|
95
95
|
// Decode topics (indexed args).
|
96
|
-
const indexedInputs = inputs.filter((x) => 'indexed' in x && x.indexed)
|
97
96
|
if (argTopics.length > 0) {
|
97
|
+
const indexedInputs = inputs.filter((x) => 'indexed' in x && x.indexed)
|
98
98
|
for (let i = 0; i < indexedInputs.length; i++) {
|
99
99
|
const param = indexedInputs[i]
|
100
100
|
const topic = argTopics[i]
|
@@ -108,15 +108,15 @@ export function decodeEventLog<
|
|
108
108
|
}
|
109
109
|
|
110
110
|
// Decode data (non-indexed args).
|
111
|
-
const nonIndexedInputs = inputs.filter((x) => !('indexed' in x && x.indexed))
|
112
111
|
if (data && data !== '0x') {
|
112
|
+
const params = inputs.filter((x) => !('indexed' in x && x.indexed))
|
113
113
|
try {
|
114
|
-
const decodedData = decodeAbiParameters(
|
114
|
+
const decodedData = decodeAbiParameters(params, data)
|
115
115
|
if (decodedData) {
|
116
116
|
if (isUnnamed) args = [...args, ...decodedData]
|
117
117
|
else {
|
118
|
-
for (let i = 0; i <
|
119
|
-
args[
|
118
|
+
for (let i = 0; i < params.length; i++) {
|
119
|
+
args[params[i].name!] = decodedData[i]
|
120
120
|
}
|
121
121
|
}
|
122
122
|
}
|