viem 0.0.0-main.20230904T144841 → 0.0.0-main.20230904T231837
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/cjs/errors/version.js +1 -1
- package/dist/cjs/utils/abi/encodePacked.js +2 -2
- package/dist/cjs/utils/abi/encodePacked.js.map +1 -1
- package/dist/cjs/utils/abi/getAbiItem.js +14 -1
- package/dist/cjs/utils/abi/getAbiItem.js.map +1 -1
- package/dist/esm/errors/version.js +1 -1
- package/dist/esm/utils/abi/encodePacked.js +3 -3
- package/dist/esm/utils/abi/encodePacked.js.map +1 -1
- package/dist/esm/utils/abi/getAbiItem.js +14 -1
- package/dist/esm/utils/abi/getAbiItem.js.map +1 -1
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/utils/abi/getAbiItem.d.ts +2 -1
- package/dist/types/utils/abi/getAbiItem.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/errors/version.ts +1 -1
- package/src/utils/abi/encodePacked.ts +3 -3
- package/src/utils/abi/getAbiItem.ts +16 -2
@@ -20,7 +20,7 @@ function encodePacked(types, values) {
|
|
20
20
|
const value = values[i];
|
21
21
|
data.push(encode(type, value));
|
22
22
|
}
|
23
|
-
return (0, concat_js_1.
|
23
|
+
return (0, concat_js_1.concatHex)(data);
|
24
24
|
}
|
25
25
|
exports.encodePacked = encodePacked;
|
26
26
|
function encode(type, value, isArray = false) {
|
@@ -66,7 +66,7 @@ function encode(type, value, isArray = false) {
|
|
66
66
|
}
|
67
67
|
if (data.length === 0)
|
68
68
|
return '0x';
|
69
|
-
return (0, concat_js_1.
|
69
|
+
return (0, concat_js_1.concatHex)(data);
|
70
70
|
}
|
71
71
|
throw new abi_js_1.UnsupportedPackedAbiType(type);
|
72
72
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"encodePacked.js","sourceRoot":"","sources":["../../../../src/utils/abi/encodePacked.ts"],"names":[],"mappings":";;;AAYA,gDAI4B;AAC5B,wDAA6D;AAE7D,0DAAmD;AACnD,
|
1
|
+
{"version":3,"file":"encodePacked.js","sourceRoot":"","sources":["../../../../src/utils/abi/encodePacked.ts"],"names":[],"mappings":"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"}
|
@@ -1,9 +1,22 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.isArgOfType = exports.getAbiItem = void 0;
|
4
|
+
const isHex_js_1 = require("../../utils/data/isHex.js");
|
5
|
+
const getEventSelector_js_1 = require("../../utils/hash/getEventSelector.js");
|
6
|
+
const getFunctionSelector_js_1 = require("../../utils/hash/getFunctionSelector.js");
|
4
7
|
const isAddress_js_1 = require("../address/isAddress.js");
|
5
8
|
function getAbiItem({ abi, args = [], name, }) {
|
6
|
-
const
|
9
|
+
const isSelector = (0, isHex_js_1.isHex)(name, { strict: false });
|
10
|
+
const abiItems = abi.filter((abiItem) => {
|
11
|
+
if (isSelector) {
|
12
|
+
if (abiItem.type === 'function')
|
13
|
+
return (0, getFunctionSelector_js_1.getFunctionSelector)(abiItem) === name;
|
14
|
+
if (abiItem.type === 'event')
|
15
|
+
return (0, getEventSelector_js_1.getEventSelector)(abiItem) === name;
|
16
|
+
return false;
|
17
|
+
}
|
18
|
+
return 'name' in abiItem && abiItem.name === name;
|
19
|
+
});
|
7
20
|
if (abiItems.length === 0)
|
8
21
|
return undefined;
|
9
22
|
if (abiItems.length === 1)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getAbiItem.js","sourceRoot":"","sources":["../../../../src/utils/abi/getAbiItem.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"getAbiItem.js","sourceRoot":"","sources":["../../../../src/utils/abi/getAbiItem.ts"],"names":[],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export const version = '0.0.0-main.
|
1
|
+
export const version = '0.0.0-main.20230904T231837';
|
2
2
|
//# sourceMappingURL=version.js.map
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { AbiEncodingLengthMismatchError, BytesSizeMismatchError, UnsupportedPackedAbiType, } from '../../errors/abi.js';
|
2
2
|
import { InvalidAddressError } from '../../errors/address.js';
|
3
3
|
import { isAddress } from '../address/isAddress.js';
|
4
|
-
import {
|
4
|
+
import { concatHex } from '../data/concat.js';
|
5
5
|
import { pad } from '../data/pad.js';
|
6
6
|
import { boolToHex, numberToHex, stringToHex } from '../encoding/toHex.js';
|
7
7
|
import { arrayRegex, bytesRegex, integerRegex } from '../regex.js';
|
@@ -17,7 +17,7 @@ export function encodePacked(types, values) {
|
|
17
17
|
const value = values[i];
|
18
18
|
data.push(encode(type, value));
|
19
19
|
}
|
20
|
-
return
|
20
|
+
return concatHex(data);
|
21
21
|
}
|
22
22
|
function encode(type, value, isArray = false) {
|
23
23
|
if (type === 'address') {
|
@@ -62,7 +62,7 @@ function encode(type, value, isArray = false) {
|
|
62
62
|
}
|
63
63
|
if (data.length === 0)
|
64
64
|
return '0x';
|
65
|
-
return
|
65
|
+
return concatHex(data);
|
66
66
|
}
|
67
67
|
throw new UnsupportedPackedAbiType(type);
|
68
68
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"encodePacked.js","sourceRoot":"","sources":["../../../../src/utils/abi/encodePacked.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"encodePacked.js","sourceRoot":"","sources":["../../../../src/utils/abi/encodePacked.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,19 @@
|
|
1
|
+
import { isHex } from '../../utils/data/isHex.js';
|
2
|
+
import { getEventSelector } from '../../utils/hash/getEventSelector.js';
|
3
|
+
import { getFunctionSelector } from '../../utils/hash/getFunctionSelector.js';
|
1
4
|
import { isAddress } from '../address/isAddress.js';
|
2
5
|
export function getAbiItem({ abi, args = [], name, }) {
|
3
|
-
const
|
6
|
+
const isSelector = isHex(name, { strict: false });
|
7
|
+
const abiItems = abi.filter((abiItem) => {
|
8
|
+
if (isSelector) {
|
9
|
+
if (abiItem.type === 'function')
|
10
|
+
return getFunctionSelector(abiItem) === name;
|
11
|
+
if (abiItem.type === 'event')
|
12
|
+
return getEventSelector(abiItem) === name;
|
13
|
+
return false;
|
14
|
+
}
|
15
|
+
return 'name' in abiItem && abiItem.name === name;
|
16
|
+
});
|
4
17
|
if (abiItems.length === 0)
|
5
18
|
return undefined;
|
6
19
|
if (abiItems.length === 1)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getAbiItem.js","sourceRoot":"","sources":["../../../../src/utils/abi/getAbiItem.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"getAbiItem.js","sourceRoot":"","sources":["../../../../src/utils/abi/getAbiItem.ts"],"names":[],"mappings":"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"}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export declare const version = "0.0.0-main.
|
1
|
+
export declare const version = "0.0.0-main.20230904T231837";
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import type { Abi, AbiParameter } from 'abitype';
|
2
2
|
import type { GetFunctionArgs, InferItemName } from '../../types/contract.js';
|
3
|
+
import type { Hex } from '../../types/misc.js';
|
3
4
|
export type GetAbiItemParameters<TAbi extends Abi | readonly unknown[] = Abi, TItemName extends string = string> = {
|
4
5
|
abi: TAbi;
|
5
|
-
name: InferItemName<TAbi, TItemName
|
6
|
+
name: InferItemName<TAbi, TItemName> | Hex;
|
6
7
|
} & Partial<GetFunctionArgs<TAbi, TItemName>>;
|
7
8
|
export type GetAbiItemReturnType<TAbi extends Abi | readonly unknown[] = Abi, TItemName extends string = string> = Extract<TAbi[number], {
|
8
9
|
name: TItemName;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getAbiItem.d.ts","sourceRoot":"","sources":["../../../../src/utils/abi/getAbiItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAW,MAAM,SAAS,CAAA;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"getAbiItem.d.ts","sourceRoot":"","sources":["../../../../src/utils/abi/getAbiItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAW,MAAM,SAAS,CAAA;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAM9C,MAAM,MAAM,oBAAoB,CAC9B,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,EAC3C,SAAS,SAAS,MAAM,GAAG,MAAM,IAC/B;IACF,GAAG,EAAE,IAAI,CAAA;IACT,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,GAAG,CAAA;CAC3C,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;AAE7C,MAAM,MAAM,oBAAoB,CAC9B,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG,EAC3C,SAAS,SAAS,MAAM,GAAG,MAAM,IAC/B,OAAO,CACT,IAAI,CAAC,MAAM,CAAC,EACZ;IACE,IAAI,EAAE,SAAS,CAAA;CAChB,CACF,CAAA;AAED,wBAAgB,UAAU,CACxB,KAAK,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EAC3C,SAAS,SAAS,MAAM,EACxB,EACA,GAAG,EACH,IAAS,EACT,IAAI,GACL,EAAE,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,oBAAoB,CAC7D,IAAI,EACJ,SAAS,CACV,CAiCA;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAuD7E"}
|
package/package.json
CHANGED
package/src/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '0.0.0-main.
|
1
|
+
export const version = '0.0.0-main.20230904T231837'
|
@@ -18,7 +18,7 @@ import {
|
|
18
18
|
import { InvalidAddressError } from '../../errors/address.js'
|
19
19
|
import type { Hex } from '../../types/misc.js'
|
20
20
|
import { isAddress } from '../address/isAddress.js'
|
21
|
-
import {
|
21
|
+
import { concatHex } from '../data/concat.js'
|
22
22
|
import { pad } from '../data/pad.js'
|
23
23
|
import { boolToHex, numberToHex, stringToHex } from '../encoding/toHex.js'
|
24
24
|
import { arrayRegex, bytesRegex, integerRegex } from '../regex.js'
|
@@ -54,7 +54,7 @@ export function encodePacked<
|
|
54
54
|
const value = values[i]
|
55
55
|
data.push(encode(type, value))
|
56
56
|
}
|
57
|
-
return
|
57
|
+
return concatHex(data)
|
58
58
|
}
|
59
59
|
|
60
60
|
function encode<const TPackedAbiType extends PackedAbiType | unknown>(
|
@@ -103,7 +103,7 @@ function encode<const TPackedAbiType extends PackedAbiType | unknown>(
|
|
103
103
|
data.push(encode(childType, value[i], true))
|
104
104
|
}
|
105
105
|
if (data.length === 0) return '0x'
|
106
|
-
return
|
106
|
+
return concatHex(data)
|
107
107
|
}
|
108
108
|
|
109
109
|
throw new UnsupportedPackedAbiType(type)
|
@@ -1,6 +1,10 @@
|
|
1
1
|
import type { Abi, AbiParameter, Address } from 'abitype'
|
2
2
|
|
3
3
|
import type { GetFunctionArgs, InferItemName } from '../../types/contract.js'
|
4
|
+
import type { Hex } from '../../types/misc.js'
|
5
|
+
import { isHex } from '../../utils/data/isHex.js'
|
6
|
+
import { getEventSelector } from '../../utils/hash/getEventSelector.js'
|
7
|
+
import { getFunctionSelector } from '../../utils/hash/getFunctionSelector.js'
|
4
8
|
import { isAddress } from '../address/isAddress.js'
|
5
9
|
|
6
10
|
export type GetAbiItemParameters<
|
@@ -8,7 +12,7 @@ export type GetAbiItemParameters<
|
|
8
12
|
TItemName extends string = string,
|
9
13
|
> = {
|
10
14
|
abi: TAbi
|
11
|
-
name: InferItemName<TAbi, TItemName>
|
15
|
+
name: InferItemName<TAbi, TItemName> | Hex
|
12
16
|
} & Partial<GetFunctionArgs<TAbi, TItemName>>
|
13
17
|
|
14
18
|
export type GetAbiItemReturnType<
|
@@ -32,7 +36,17 @@ export function getAbiItem<
|
|
32
36
|
TAbi,
|
33
37
|
TItemName
|
34
38
|
> {
|
35
|
-
const
|
39
|
+
const isSelector = isHex(name, { strict: false })
|
40
|
+
|
41
|
+
const abiItems = (abi as Abi).filter((abiItem) => {
|
42
|
+
if (isSelector) {
|
43
|
+
if (abiItem.type === 'function')
|
44
|
+
return getFunctionSelector(abiItem) === name
|
45
|
+
if (abiItem.type === 'event') return getEventSelector(abiItem) === name
|
46
|
+
return false
|
47
|
+
}
|
48
|
+
return 'name' in abiItem && abiItem.name === name
|
49
|
+
})
|
36
50
|
|
37
51
|
if (abiItems.length === 0) return undefined as any
|
38
52
|
if (abiItems.length === 1) return abiItems[0] as any
|