viem 0.0.0-w-20230810183250 → 0.0.0-w-20230816150015
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/actions/getContract.js.map +1 -1
- package/dist/cjs/actions/public/multicall.js +3 -4
- package/dist/cjs/actions/public/multicall.js.map +1 -1
- package/dist/cjs/actions/public/readContract.js +2 -1
- package/dist/cjs/actions/public/readContract.js.map +1 -1
- package/dist/cjs/actions/wallet/writeContract.js +2 -1
- package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
- package/dist/cjs/chains/index.js +2 -1
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/clients/decorators/public.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/abi/decodeAbiParameters.js.map +1 -1
- package/dist/cjs/utils/abi/decodeDeployData.js.map +1 -1
- package/dist/cjs/utils/abi/decodeErrorResult.js.map +1 -1
- package/dist/cjs/utils/abi/decodeFunctionResult.js.map +1 -1
- package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/cjs/utils/abi/encodeDeployData.js.map +1 -1
- package/dist/cjs/utils/abi/encodeEventTopics.js.map +1 -1
- package/dist/cjs/utils/abi/encodePacked.js.map +1 -1
- package/dist/cjs/utils/poll.js +1 -1
- package/dist/cjs/utils/poll.js.map +1 -1
- package/dist/cjs/utils/typedData.js +2 -2
- package/dist/cjs/utils/typedData.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/actions/getContract.js.map +1 -1
- package/dist/esm/actions/public/multicall.js +3 -5
- package/dist/esm/actions/public/multicall.js.map +1 -1
- package/dist/esm/actions/public/readContract.js +2 -1
- package/dist/esm/actions/public/readContract.js.map +1 -1
- package/dist/esm/actions/wallet/writeContract.js +2 -1
- package/dist/esm/actions/wallet/writeContract.js.map +1 -1
- package/dist/esm/chains/index.js +1 -0
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/clients/decorators/public.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/abi/decodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/abi/decodeDeployData.js.map +1 -1
- package/dist/esm/utils/abi/decodeErrorResult.js.map +1 -1
- package/dist/esm/utils/abi/decodeFunctionResult.js.map +1 -1
- package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/abi/encodeDeployData.js.map +1 -1
- package/dist/esm/utils/abi/encodeEventTopics.js.map +1 -1
- package/dist/esm/utils/abi/encodePacked.js.map +1 -1
- package/dist/esm/utils/poll.js +1 -1
- package/dist/esm/utils/poll.js.map +1 -1
- package/dist/esm/utils/typedData.js +2 -2
- package/dist/esm/utils/typedData.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/actions/getContract.d.ts +5 -5
- package/dist/types/actions/getContract.d.ts.map +1 -1
- package/dist/types/actions/public/createContractEventFilter.d.ts +3 -3
- package/dist/types/actions/public/createContractEventFilter.d.ts.map +1 -1
- package/dist/types/actions/public/createEventFilter.d.ts +5 -5
- package/dist/types/actions/public/createEventFilter.d.ts.map +1 -1
- package/dist/types/actions/public/estimateContractGas.d.ts +1 -1
- package/dist/types/actions/public/estimateContractGas.d.ts.map +1 -1
- package/dist/types/actions/public/getFilterChanges.d.ts +1 -1
- package/dist/types/actions/public/getFilterChanges.d.ts.map +1 -1
- package/dist/types/actions/public/getFilterLogs.d.ts +1 -1
- package/dist/types/actions/public/getFilterLogs.d.ts.map +1 -1
- package/dist/types/actions/public/getLogs.d.ts +4 -4
- package/dist/types/actions/public/getLogs.d.ts.map +1 -1
- package/dist/types/actions/public/multicall.d.ts +14 -11
- package/dist/types/actions/public/multicall.d.ts.map +1 -1
- package/dist/types/actions/public/readContract.d.ts +4 -4
- package/dist/types/actions/public/readContract.d.ts.map +1 -1
- package/dist/types/actions/public/simulateContract.d.ts +1 -1
- package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
- package/dist/types/actions/public/watchContractEvent.d.ts +3 -3
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/public/watchEvent.d.ts +4 -4
- package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts +3 -3
- package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
- package/dist/types/actions/wallet/writeContract.d.ts +4 -4
- package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
- package/dist/types/chains/index.d.ts +154 -36
- package/dist/types/chains/index.d.ts.map +1 -1
- package/dist/types/clients/decorators/public.d.ts +11 -11
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/clients/decorators/wallet.d.ts +3 -3
- package/dist/types/clients/decorators/wallet.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 +13 -2
- package/dist/types/types/contract.d.ts.map +1 -1
- package/dist/types/types/multicall.d.ts +35 -35
- package/dist/types/types/multicall.d.ts.map +1 -1
- package/dist/types/types/typedData.d.ts +1 -1
- package/dist/types/types/typedData.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeAbiParameters.d.ts +2 -2
- package/dist/types/utils/abi/decodeAbiParameters.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeDeployData.d.ts +3 -3
- package/dist/types/utils/abi/decodeDeployData.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeErrorResult.d.ts +3 -3
- package/dist/types/utils/abi/decodeErrorResult.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeEventLog.d.ts +3 -3
- package/dist/types/utils/abi/decodeEventLog.d.ts.map +1 -1
- package/dist/types/utils/abi/decodeFunctionResult.d.ts +4 -4
- package/dist/types/utils/abi/decodeFunctionResult.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeAbiParameters.d.ts +2 -2
- package/dist/types/utils/abi/encodeAbiParameters.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeDeployData.d.ts +3 -3
- package/dist/types/utils/abi/encodeDeployData.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeErrorResult.d.ts +4 -4
- package/dist/types/utils/abi/encodeErrorResult.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeEventTopics.d.ts +4 -4
- package/dist/types/utils/abi/encodeEventTopics.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeFunctionData.d.ts +4 -4
- package/dist/types/utils/abi/encodeFunctionData.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeFunctionResult.d.ts +4 -4
- package/dist/types/utils/abi/encodeFunctionResult.d.ts.map +1 -1
- package/dist/types/utils/abi/encodePacked.d.ts +3 -3
- package/dist/types/utils/abi/encodePacked.d.ts.map +1 -1
- package/dist/types/utils/abi/getAbiItem.d.ts +3 -3
- package/dist/types/utils/abi/getAbiItem.d.ts.map +1 -1
- package/dist/types/utils/typedData.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +2 -2
- package/src/actions/getContract.ts +6 -5
- package/src/actions/public/createContractEventFilter.ts +3 -3
- package/src/actions/public/createEventFilter.ts +6 -6
- package/src/actions/public/estimateContractGas.ts +1 -1
- package/src/actions/public/getFilterChanges.ts +1 -1
- package/src/actions/public/getFilterLogs.ts +1 -1
- package/src/actions/public/getLogs.ts +5 -5
- package/src/actions/public/multicall.ts +41 -27
- package/src/actions/public/readContract.ts +19 -21
- package/src/actions/public/simulateContract.ts +1 -1
- package/src/actions/public/watchContractEvent.ts +3 -3
- package/src/actions/public/watchEvent.ts +5 -5
- package/src/actions/wallet/deployContract.ts +3 -3
- package/src/actions/wallet/writeContract.ts +35 -37
- package/src/chains/index.ts +1 -0
- package/src/clients/decorators/public.ts +20 -15
- package/src/clients/decorators/wallet.ts +3 -3
- package/src/index.ts +3 -0
- package/src/types/contract.ts +56 -2
- package/src/types/multicall.ts +84 -75
- package/src/types/typedData.ts +2 -1
- package/src/utils/abi/decodeAbiParameters.ts +7 -8
- package/src/utils/abi/decodeDeployData.ts +3 -3
- package/src/utils/abi/decodeErrorResult.ts +3 -8
- package/src/utils/abi/decodeEventLog.ts +3 -3
- package/src/utils/abi/decodeFunctionResult.ts +4 -6
- package/src/utils/abi/encodeAbiParameters.ts +8 -9
- package/src/utils/abi/encodeDeployData.ts +3 -3
- package/src/utils/abi/encodeErrorResult.ts +4 -4
- package/src/utils/abi/encodeEventTopics.ts +4 -9
- package/src/utils/abi/encodeFunctionData.ts +4 -4
- package/src/utils/abi/encodeFunctionResult.ts +4 -4
- package/src/utils/abi/encodePacked.ts +6 -8
- package/src/utils/abi/getAbiItem.ts +3 -3
- package/src/utils/poll.ts +1 -1
- package/src/utils/typedData.ts +1 -2
- package/src/version.ts +1 -1
package/src/types/multicall.ts
CHANGED
@@ -1,105 +1,114 @@
|
|
1
|
-
import type { Abi } from 'abitype'
|
1
|
+
import type { Abi, AbiStateMutability, ExtractAbiFunctionNames } from 'abitype'
|
2
2
|
|
3
|
-
import type {
|
4
|
-
ContractFunctionConfig,
|
5
|
-
ContractFunctionResult,
|
6
|
-
} from './contract.js'
|
3
|
+
import type { ContractParameters, ContractReturnType } from './contract.js'
|
7
4
|
|
5
|
+
// Avoid TS depth-limit error in case of large array literal
|
8
6
|
type MAXIMUM_DEPTH = 20
|
9
7
|
|
10
|
-
type
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
export type MulticallContract<
|
9
|
+
abi extends Abi | readonly unknown[] = Abi | readonly unknown[],
|
10
|
+
stateMutability extends AbiStateMutability = AbiStateMutability,
|
11
|
+
functionName extends ExtractAbiFunctionNames<
|
12
|
+
abi extends Abi ? abi : Abi,
|
13
|
+
stateMutability
|
14
|
+
> = string,
|
15
|
+
> = { abi: abi; functionName: functionName }
|
14
16
|
|
15
17
|
export type MulticallContracts<
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
contracts extends readonly MulticallContract[],
|
19
|
+
properties extends Record<string, any> = object,
|
20
|
+
///
|
21
|
+
result extends any[] = [],
|
22
|
+
depth extends readonly number[] = [],
|
23
|
+
> = depth['length'] extends MAXIMUM_DEPTH
|
24
|
+
? (ContractParameters & properties)[]
|
25
|
+
: contracts extends []
|
23
26
|
? []
|
24
|
-
:
|
27
|
+
: contracts extends [infer head extends MulticallContract]
|
25
28
|
? [
|
26
|
-
...
|
27
|
-
|
29
|
+
...result,
|
30
|
+
ContractParameters<head['abi'], 'pure' | 'view', head['functionName']> &
|
31
|
+
properties,
|
28
32
|
]
|
29
|
-
:
|
30
|
-
infer
|
31
|
-
...infer
|
33
|
+
: contracts extends [
|
34
|
+
infer head extends MulticallContract,
|
35
|
+
...infer tail extends readonly MulticallContract[],
|
32
36
|
]
|
33
37
|
? MulticallContracts<
|
34
|
-
[...
|
35
|
-
|
38
|
+
[...tail],
|
39
|
+
properties,
|
36
40
|
[
|
37
|
-
...
|
38
|
-
|
41
|
+
...result,
|
42
|
+
ContractParameters<head['abi'], 'pure' | 'view', head['functionName']> &
|
43
|
+
properties,
|
39
44
|
],
|
40
|
-
[...
|
45
|
+
[...depth, 1]
|
41
46
|
>
|
42
|
-
: unknown[] extends
|
43
|
-
?
|
44
|
-
: // If `
|
47
|
+
: unknown[] extends contracts
|
48
|
+
? contracts
|
49
|
+
: // If `contracts` is *some* array but we couldn't assign `unknown[]` to it, then it must hold some known/homogenous type!
|
45
50
|
// use this to infer the param types in the case of Array.map() argument
|
46
|
-
|
47
|
-
? (
|
48
|
-
:
|
49
|
-
|
50
|
-
export type MulticallResult<
|
51
|
-
Result,
|
52
|
-
TAllowFailure extends boolean = true,
|
53
|
-
> = TAllowFailure extends true
|
54
|
-
?
|
55
|
-
| {
|
56
|
-
error?: undefined
|
57
|
-
result: Result
|
58
|
-
status: 'success'
|
59
|
-
}
|
60
|
-
| {
|
61
|
-
error: Error
|
62
|
-
result?: undefined
|
63
|
-
status: 'failure'
|
64
|
-
}
|
65
|
-
: Result
|
51
|
+
contracts extends ContractParameters<infer abi, infer _, infer functionName>[]
|
52
|
+
? (ContractParameters<abi, 'pure' | 'view', functionName> & properties)[]
|
53
|
+
: // Fallback
|
54
|
+
(ContractParameters & properties)[]
|
66
55
|
|
67
56
|
export type MulticallResults<
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
57
|
+
contracts extends readonly MulticallContract[],
|
58
|
+
allowFailure extends boolean = true,
|
59
|
+
///
|
60
|
+
result extends any[] = [],
|
61
|
+
depth extends readonly number[] = [],
|
62
|
+
> = depth['length'] extends MAXIMUM_DEPTH
|
63
|
+
? MulticallResult<ContractReturnType, allowFailure>[]
|
64
|
+
: contracts extends []
|
75
65
|
? []
|
76
|
-
:
|
66
|
+
: contracts extends [infer head extends MulticallContract]
|
77
67
|
? [
|
78
|
-
...
|
68
|
+
...result,
|
79
69
|
MulticallResult<
|
80
|
-
|
81
|
-
|
70
|
+
ContractReturnType<head['abi'], 'pure' | 'view', head['functionName']>,
|
71
|
+
allowFailure
|
82
72
|
>,
|
83
73
|
]
|
84
|
-
:
|
85
|
-
infer
|
86
|
-
...infer
|
74
|
+
: contracts extends [
|
75
|
+
infer head extends MulticallContract,
|
76
|
+
...infer tail extends readonly MulticallContract[],
|
87
77
|
]
|
88
78
|
? MulticallResults<
|
89
|
-
[...
|
90
|
-
|
79
|
+
[...tail],
|
80
|
+
allowFailure,
|
91
81
|
[
|
92
|
-
...
|
82
|
+
...result,
|
93
83
|
MulticallResult<
|
94
|
-
|
95
|
-
|
84
|
+
ContractReturnType<
|
85
|
+
head['abi'],
|
86
|
+
'pure' | 'view',
|
87
|
+
head['functionName']
|
88
|
+
>,
|
89
|
+
allowFailure
|
96
90
|
>,
|
97
91
|
],
|
98
|
-
[...
|
92
|
+
[...depth, 1]
|
99
93
|
>
|
100
|
-
:
|
101
|
-
|
102
|
-
|
103
|
-
|
94
|
+
: contracts extends ContractParameters<
|
95
|
+
infer abi,
|
96
|
+
infer _,
|
97
|
+
infer functionName
|
98
|
+
>[]
|
99
|
+
? // Dynamic-size (homogenous) UseQueryOptions array: map directly to array of results
|
100
|
+
MulticallResult<
|
101
|
+
ContractReturnType<abi, 'pure' | 'view', functionName>,
|
102
|
+
allowFailure
|
104
103
|
>[]
|
105
|
-
:
|
104
|
+
: // Fallback
|
105
|
+
MulticallResult<ContractReturnType, allowFailure>[]
|
106
|
+
|
107
|
+
export type MulticallResult<
|
108
|
+
result,
|
109
|
+
allowFailure extends boolean = true,
|
110
|
+
> = allowFailure extends true
|
111
|
+
?
|
112
|
+
| { error?: undefined; result: result; status: 'success' }
|
113
|
+
| { error: Error; result?: undefined; status: 'failure' }
|
114
|
+
: result
|
package/src/types/typedData.ts
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
import type { Prettify } from './utils.js'
|
2
1
|
import type {
|
3
2
|
TypedData,
|
4
3
|
TypedDataDomain,
|
5
4
|
TypedDataToPrimitiveTypes,
|
6
5
|
} from 'abitype'
|
7
6
|
|
7
|
+
import type { Prettify } from './utils.js'
|
8
|
+
|
8
9
|
export type TypedDataDefinition<
|
9
10
|
typedData extends TypedData | Record<string, unknown> = TypedData,
|
10
11
|
primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,
|
@@ -2,7 +2,6 @@ import type {
|
|
2
2
|
AbiParameter,
|
3
3
|
AbiParameterToPrimitiveType,
|
4
4
|
AbiParametersToPrimitiveTypes,
|
5
|
-
Narrow,
|
6
5
|
} from 'abitype'
|
7
6
|
|
8
7
|
import {
|
@@ -33,8 +32,8 @@ export type DecodeAbiParametersReturnType<
|
|
33
32
|
>
|
34
33
|
|
35
34
|
export function decodeAbiParameters<
|
36
|
-
TParams extends readonly AbiParameter[] | readonly unknown[],
|
37
|
-
>(params:
|
35
|
+
const TParams extends readonly AbiParameter[] | readonly unknown[],
|
36
|
+
>(params: TParams, data: Hex): DecodeAbiParametersReturnType<TParams> {
|
38
37
|
if (data === '0x' && (params as unknown[]).length > 0)
|
39
38
|
throw new AbiDecodingZeroDataError()
|
40
39
|
if (size(data) && size(data) < 32)
|
@@ -53,7 +52,7 @@ export function decodeAbiParameters<
|
|
53
52
|
|
54
53
|
type TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }
|
55
54
|
|
56
|
-
function decodeParams<TParams extends readonly AbiParameter[]>({
|
55
|
+
function decodeParams<const TParams extends readonly AbiParameter[]>({
|
57
56
|
data,
|
58
57
|
params,
|
59
58
|
}: { data: Hex; params: TParams }) {
|
@@ -126,7 +125,7 @@ function decodeAddress(value: Hex) {
|
|
126
125
|
return { consumed: 32, value: checksumAddress(slice(value, -20)) }
|
127
126
|
}
|
128
127
|
|
129
|
-
function decodeArray<TParam extends AbiParameter>(
|
128
|
+
function decodeArray<const TParam extends AbiParameter>(
|
130
129
|
data: Hex,
|
131
130
|
{
|
132
131
|
param,
|
@@ -211,7 +210,7 @@ function decodeBool(value: Hex) {
|
|
211
210
|
return { consumed: 32, value: hexToBool(value) }
|
212
211
|
}
|
213
212
|
|
214
|
-
function decodeBytes<TParam extends AbiParameter>(
|
213
|
+
function decodeBytes<const TParam extends AbiParameter>(
|
215
214
|
data: Hex,
|
216
215
|
{ param, position }: { param: TParam; position: number },
|
217
216
|
) {
|
@@ -239,7 +238,7 @@ function decodeBytes<TParam extends AbiParameter>(
|
|
239
238
|
return { consumed: 32, value }
|
240
239
|
}
|
241
240
|
|
242
|
-
function decodeNumber<TParam extends AbiParameter>(
|
241
|
+
function decodeNumber<const TParam extends AbiParameter>(
|
243
242
|
value: Hex,
|
244
243
|
{ param }: { param: TParam },
|
245
244
|
) {
|
@@ -268,7 +267,7 @@ function decodeString(data: Hex, { position }: { position: number }) {
|
|
268
267
|
}
|
269
268
|
|
270
269
|
function decodeTuple<
|
271
|
-
TParam extends AbiParameter & { components: readonly AbiParameter[] },
|
270
|
+
const TParam extends AbiParameter & { components: readonly AbiParameter[] },
|
272
271
|
>(data: Hex, { param, position }: { param: TParam; position: number }) {
|
273
272
|
// Tuples can have unnamed components (i.e. they are arrays), so we must
|
274
273
|
// determine whether the tuple is named or unnamed. In the case of a named
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi
|
1
|
+
import type { Abi } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
AbiConstructorNotFoundError,
|
@@ -14,7 +14,7 @@ const docsPath = '/docs/contract/decodeDeployData'
|
|
14
14
|
export type DecodeDeployDataParameters<
|
15
15
|
TAbi extends Abi | readonly unknown[] = Abi,
|
16
16
|
> = {
|
17
|
-
abi:
|
17
|
+
abi: TAbi
|
18
18
|
bytecode: Hex
|
19
19
|
data: Hex
|
20
20
|
}
|
@@ -24,7 +24,7 @@ export type DecodeDeployDataReturnType<
|
|
24
24
|
bytecode: Hex
|
25
25
|
} & GetConstructorArgs<TAbi>
|
26
26
|
|
27
|
-
export function decodeDeployData<TAbi extends Abi | readonly unknown[]>({
|
27
|
+
export function decodeDeployData<const TAbi extends Abi | readonly unknown[]>({
|
28
28
|
abi,
|
29
29
|
bytecode,
|
30
30
|
data,
|
@@ -1,9 +1,4 @@
|
|
1
|
-
import type {
|
2
|
-
Abi,
|
3
|
-
ExtractAbiError,
|
4
|
-
ExtractAbiErrorNames,
|
5
|
-
Narrow,
|
6
|
-
} from 'abitype'
|
1
|
+
import type { Abi, ExtractAbiError, ExtractAbiErrorNames } from 'abitype'
|
7
2
|
|
8
3
|
import { solidityError, solidityPanic } from '../../constants/solidity.js'
|
9
4
|
import {
|
@@ -20,7 +15,7 @@ import { formatAbiItem } from './formatAbiItem.js'
|
|
20
15
|
|
21
16
|
export type DecodeErrorResultParameters<
|
22
17
|
TAbi extends Abi | readonly unknown[] = Abi,
|
23
|
-
> = { abi?:
|
18
|
+
> = { abi?: TAbi; data: Hex }
|
24
19
|
|
25
20
|
export type DecodeErrorResultReturnType<
|
26
21
|
TAbi extends Abi | readonly unknown[] = Abi,
|
@@ -37,7 +32,7 @@ export type DecodeErrorResultReturnType<
|
|
37
32
|
}
|
38
33
|
}[_ErrorNames]
|
39
34
|
|
40
|
-
export function decodeErrorResult<TAbi extends Abi | readonly unknown[]>({
|
35
|
+
export function decodeErrorResult<const TAbi extends Abi | readonly unknown[]>({
|
41
36
|
abi,
|
42
37
|
data,
|
43
38
|
}: DecodeErrorResultParameters<TAbi>): DecodeErrorResultReturnType<TAbi> {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi, AbiParameter, ExtractAbiEventNames
|
1
|
+
import type { Abi, AbiParameter, ExtractAbiEventNames } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
AbiDecodingDataSizeTooSmallError,
|
@@ -26,7 +26,7 @@ export type DecodeEventLogParameters<
|
|
26
26
|
TData extends Hex | undefined = undefined,
|
27
27
|
TStrict extends boolean = true,
|
28
28
|
> = {
|
29
|
-
abi:
|
29
|
+
abi: TAbi
|
30
30
|
data?: TData
|
31
31
|
eventName?: InferEventName<TAbi, TEventName>
|
32
32
|
strict?: TStrict
|
@@ -61,7 +61,7 @@ export type DecodeEventLogReturnType<
|
|
61
61
|
const docsPath = '/docs/contract/decodeEventLog'
|
62
62
|
|
63
63
|
export function decodeEventLog<
|
64
|
-
TAbi extends Abi | readonly unknown[],
|
64
|
+
const TAbi extends Abi | readonly unknown[],
|
65
65
|
TEventName extends string | undefined = undefined,
|
66
66
|
TTopics extends Hex[] = Hex[],
|
67
67
|
TData extends Hex | undefined = undefined,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi, ExtractAbiFunctionNames
|
1
|
+
import type { Abi, ExtractAbiFunctionNames } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
AbiFunctionNotFoundError,
|
@@ -25,11 +25,9 @@ export type DecodeFunctionResultParameters<
|
|
25
25
|
functionName?: _FunctionName
|
26
26
|
data: Hex
|
27
27
|
} & (TFunctionName extends string
|
28
|
-
? { abi:
|
28
|
+
? { abi: TAbi } & Partial<GetFunctionArgs<TAbi, TFunctionName>>
|
29
29
|
: _FunctionName extends string
|
30
|
-
? { abi: [
|
31
|
-
GetFunctionArgs<TAbi, _FunctionName>
|
32
|
-
>
|
30
|
+
? { abi: [TAbi[number]] } & Partial<GetFunctionArgs<TAbi, _FunctionName>>
|
33
31
|
: never)
|
34
32
|
|
35
33
|
export type DecodeFunctionResultReturnType<
|
@@ -45,7 +43,7 @@ export type DecodeFunctionResultReturnType<
|
|
45
43
|
: ContractFunctionResult<TAbi, _FunctionName>
|
46
44
|
|
47
45
|
export function decodeFunctionResult<
|
48
|
-
TAbi extends Abi | readonly unknown[],
|
46
|
+
const TAbi extends Abi | readonly unknown[],
|
49
47
|
TFunctionName extends string | undefined = undefined,
|
50
48
|
>({
|
51
49
|
abi,
|
@@ -2,7 +2,6 @@ import type {
|
|
2
2
|
AbiParameter,
|
3
3
|
AbiParameterToPrimitiveType,
|
4
4
|
AbiParametersToPrimitiveTypes,
|
5
|
-
Narrow,
|
6
5
|
} from 'abitype'
|
7
6
|
|
8
7
|
import {
|
@@ -27,9 +26,9 @@ export type EncodeAbiParametersReturnType = Hex
|
|
27
26
|
* @description Encodes a list of primitive values into an ABI-encoded hex value.
|
28
27
|
*/
|
29
28
|
export function encodeAbiParameters<
|
30
|
-
TParams extends readonly AbiParameter[] | readonly unknown[],
|
29
|
+
const TParams extends readonly AbiParameter[] | readonly unknown[],
|
31
30
|
>(
|
32
|
-
params:
|
31
|
+
params: TParams,
|
33
32
|
values: TParams extends readonly AbiParameter[]
|
34
33
|
? AbiParametersToPrimitiveTypes<TParams>
|
35
34
|
: never,
|
@@ -56,11 +55,11 @@ type PreparedParam = { dynamic: boolean; encoded: Hex }
|
|
56
55
|
type TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }
|
57
56
|
type Tuple = AbiParameterToPrimitiveType<TupleAbiParameter>
|
58
57
|
|
59
|
-
function prepareParams<TParams extends readonly AbiParameter[]>({
|
58
|
+
function prepareParams<const TParams extends readonly AbiParameter[]>({
|
60
59
|
params,
|
61
60
|
values,
|
62
61
|
}: {
|
63
|
-
params:
|
62
|
+
params: TParams
|
64
63
|
values: AbiParametersToPrimitiveTypes<TParams>
|
65
64
|
}) {
|
66
65
|
const preparedParams: PreparedParam[] = []
|
@@ -70,7 +69,7 @@ function prepareParams<TParams extends readonly AbiParameter[]>({
|
|
70
69
|
return preparedParams
|
71
70
|
}
|
72
71
|
|
73
|
-
function prepareParam<TParam extends AbiParameter>({
|
72
|
+
function prepareParam<const TParam extends AbiParameter>({
|
74
73
|
param,
|
75
74
|
value,
|
76
75
|
}: {
|
@@ -145,7 +144,7 @@ function encodeAddress(value: Hex): PreparedParam {
|
|
145
144
|
return { dynamic: false, encoded: padHex(value.toLowerCase() as Hex) }
|
146
145
|
}
|
147
146
|
|
148
|
-
function encodeArray<TParam extends AbiParameter>(
|
147
|
+
function encodeArray<const TParam extends AbiParameter>(
|
149
148
|
value: AbiParameterToPrimitiveType<TParam>,
|
150
149
|
{
|
151
150
|
length,
|
@@ -190,7 +189,7 @@ function encodeArray<TParam extends AbiParameter>(
|
|
190
189
|
}
|
191
190
|
}
|
192
191
|
|
193
|
-
function encodeBytes<TParam extends AbiParameter>(
|
192
|
+
function encodeBytes<const TParam extends AbiParameter>(
|
194
193
|
value: Hex,
|
195
194
|
{ param }: { param: TParam },
|
196
195
|
): PreparedParam {
|
@@ -256,7 +255,7 @@ function encodeString(value: string): PreparedParam {
|
|
256
255
|
}
|
257
256
|
|
258
257
|
function encodeTuple<
|
259
|
-
TParam extends AbiParameter & { components: readonly AbiParameter[] },
|
258
|
+
const TParam extends AbiParameter & { components: readonly AbiParameter[] },
|
260
259
|
>(
|
261
260
|
value: AbiParameterToPrimitiveType<TParam>,
|
262
261
|
{ param }: { param: TParam },
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi
|
1
|
+
import type { Abi } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
AbiConstructorNotFoundError,
|
@@ -15,11 +15,11 @@ const docsPath = '/docs/contract/encodeDeployData'
|
|
15
15
|
export type EncodeDeployDataParameters<
|
16
16
|
TAbi extends Abi | readonly unknown[] = Abi,
|
17
17
|
> = {
|
18
|
-
abi:
|
18
|
+
abi: TAbi
|
19
19
|
bytecode: Hex
|
20
20
|
} & GetConstructorArgs<TAbi>
|
21
21
|
|
22
|
-
export function encodeDeployData<TAbi extends Abi | readonly unknown[]>({
|
22
|
+
export function encodeDeployData<const TAbi extends Abi | readonly unknown[]>({
|
23
23
|
abi,
|
24
24
|
args,
|
25
25
|
bytecode,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi
|
1
|
+
import type { Abi } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
AbiErrorInputsNotFoundError,
|
@@ -26,13 +26,13 @@ export type EncodeErrorResultParameters<
|
|
26
26
|
> = {
|
27
27
|
errorName?: _ErrorName
|
28
28
|
} & (TErrorName extends string
|
29
|
-
? { abi:
|
29
|
+
? { abi: TAbi } & GetErrorArgs<TAbi, TErrorName>
|
30
30
|
: _ErrorName extends string
|
31
|
-
? { abi: [
|
31
|
+
? { abi: [TAbi[number]] } & GetErrorArgs<TAbi, _ErrorName>
|
32
32
|
: never)
|
33
33
|
|
34
34
|
export function encodeErrorResult<
|
35
|
-
TAbi extends Abi | readonly unknown[],
|
35
|
+
const TAbi extends Abi | readonly unknown[],
|
36
36
|
TErrorName extends string | undefined = undefined,
|
37
37
|
>({ abi, errorName, args }: EncodeErrorResultParameters<TAbi, TErrorName>) {
|
38
38
|
let abiItem = abi[0] as AbiItem
|
@@ -1,9 +1,4 @@
|
|
1
|
-
import type {
|
2
|
-
Abi,
|
3
|
-
AbiParameter,
|
4
|
-
AbiParameterToPrimitiveType,
|
5
|
-
Narrow,
|
6
|
-
} from 'abitype'
|
1
|
+
import type { Abi, AbiParameter, AbiParameterToPrimitiveType } from 'abitype'
|
7
2
|
|
8
3
|
import { AbiEventNotFoundError } from '../../errors/abi.js'
|
9
4
|
import { FilterTypeNotSupportedError } from '../../errors/log.js'
|
@@ -29,13 +24,13 @@ export type EncodeEventTopicsParameters<
|
|
29
24
|
> = {
|
30
25
|
eventName?: _EventName
|
31
26
|
} & (TEventName extends string
|
32
|
-
? { abi:
|
27
|
+
? { abi: TAbi; args?: GetEventArgs<TAbi, TEventName> }
|
33
28
|
: _EventName extends string
|
34
|
-
? { abi: [
|
29
|
+
? { abi: [TAbi[number]]; args?: GetEventArgs<TAbi, _EventName> }
|
35
30
|
: never)
|
36
31
|
|
37
32
|
export function encodeEventTopics<
|
38
|
-
TAbi extends Abi | readonly unknown[],
|
33
|
+
const TAbi extends Abi | readonly unknown[],
|
39
34
|
TEventName extends string | undefined = undefined,
|
40
35
|
>({ abi, eventName, args }: EncodeEventTopicsParameters<TAbi, TEventName>) {
|
41
36
|
let abiItem = abi[0] as AbiItem
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi
|
1
|
+
import type { Abi } from 'abitype'
|
2
2
|
|
3
3
|
import { AbiFunctionNotFoundError } from '../../errors/abi.js'
|
4
4
|
import type {
|
@@ -20,13 +20,13 @@ export type EncodeFunctionDataParameters<
|
|
20
20
|
> = {
|
21
21
|
functionName?: _FunctionName
|
22
22
|
} & (TFunctionName extends string
|
23
|
-
? { abi:
|
23
|
+
? { abi: TAbi } & GetFunctionArgs<TAbi, TFunctionName>
|
24
24
|
: _FunctionName extends string
|
25
|
-
? { abi: [
|
25
|
+
? { abi: [TAbi[number]] } & GetFunctionArgs<TAbi, _FunctionName>
|
26
26
|
: never)
|
27
27
|
|
28
28
|
export function encodeFunctionData<
|
29
|
-
TAbi extends Abi | readonly unknown[],
|
29
|
+
const TAbi extends Abi | readonly unknown[],
|
30
30
|
TFunctionName extends string | undefined = undefined,
|
31
31
|
>({
|
32
32
|
abi,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi
|
1
|
+
import type { Abi } from 'abitype'
|
2
2
|
|
3
3
|
import {
|
4
4
|
AbiFunctionNotFoundError,
|
@@ -22,16 +22,16 @@ export type EncodeFunctionResultParameters<
|
|
22
22
|
> = {
|
23
23
|
functionName?: _FunctionName
|
24
24
|
} & (TFunctionName extends string
|
25
|
-
? { abi:
|
25
|
+
? { abi: TAbi; result?: ContractFunctionResult<TAbi, TFunctionName> }
|
26
26
|
: _FunctionName extends string
|
27
27
|
? {
|
28
|
-
abi: [
|
28
|
+
abi: [TAbi[number]]
|
29
29
|
result?: ContractFunctionResult<TAbi, _FunctionName>
|
30
30
|
}
|
31
31
|
: never)
|
32
32
|
|
33
33
|
export function encodeFunctionResult<
|
34
|
-
TAbi extends Abi | readonly unknown[],
|
34
|
+
const TAbi extends Abi | readonly unknown[],
|
35
35
|
TFunctionName extends string | undefined = undefined,
|
36
36
|
>({
|
37
37
|
abi,
|
@@ -2,7 +2,6 @@ import type {
|
|
2
2
|
AbiParameterToPrimitiveType,
|
3
3
|
AbiType,
|
4
4
|
Address,
|
5
|
-
Narrow,
|
6
5
|
SolidityAddress,
|
7
6
|
SolidityArrayWithoutTuple,
|
8
7
|
SolidityBool,
|
@@ -32,18 +31,17 @@ type PackedAbiType =
|
|
32
31
|
| SolidityString
|
33
32
|
| SolidityArrayWithoutTuple
|
34
33
|
|
35
|
-
type EncodePackedValues<
|
34
|
+
type EncodePackedValues<
|
35
|
+
TPackedAbiTypes extends readonly PackedAbiType[] | readonly unknown[],
|
36
|
+
> = {
|
36
37
|
[K in keyof TPackedAbiTypes]: TPackedAbiTypes[K] extends AbiType
|
37
38
|
? AbiParameterToPrimitiveType<{ type: TPackedAbiTypes[K] }>
|
38
39
|
: unknown
|
39
40
|
}
|
40
41
|
|
41
42
|
export function encodePacked<
|
42
|
-
TPackedAbiTypes extends PackedAbiType[] | unknown[],
|
43
|
-
>(
|
44
|
-
types: Narrow<TPackedAbiTypes>,
|
45
|
-
values: EncodePackedValues<TPackedAbiTypes>,
|
46
|
-
): Hex {
|
43
|
+
const TPackedAbiTypes extends readonly PackedAbiType[] | readonly unknown[],
|
44
|
+
>(types: TPackedAbiTypes, values: EncodePackedValues<TPackedAbiTypes>): Hex {
|
47
45
|
if (types.length !== values.length)
|
48
46
|
throw new AbiEncodingLengthMismatchError({
|
49
47
|
expectedLength: types.length as number,
|
@@ -59,7 +57,7 @@ export function encodePacked<
|
|
59
57
|
return concat(data)
|
60
58
|
}
|
61
59
|
|
62
|
-
function encode<TPackedAbiType extends PackedAbiType | unknown>(
|
60
|
+
function encode<const TPackedAbiType extends PackedAbiType | unknown>(
|
63
61
|
type: TPackedAbiType,
|
64
62
|
value: EncodePackedValues<[TPackedAbiType]>[0],
|
65
63
|
isArray = false,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Abi, AbiParameter, Address
|
1
|
+
import type { Abi, AbiParameter, Address } from 'abitype'
|
2
2
|
|
3
3
|
import type { GetFunctionArgs, InferItemName } from '../../types/contract.js'
|
4
4
|
import { isAddress } from '../address/isAddress.js'
|
@@ -7,7 +7,7 @@ export type GetAbiItemParameters<
|
|
7
7
|
TAbi extends Abi | readonly unknown[] = Abi,
|
8
8
|
TItemName extends string = string,
|
9
9
|
> = {
|
10
|
-
abi:
|
10
|
+
abi: TAbi
|
11
11
|
name: InferItemName<TAbi, TItemName>
|
12
12
|
} & Partial<GetFunctionArgs<TAbi, TItemName>>
|
13
13
|
|
@@ -22,7 +22,7 @@ export type GetAbiItemReturnType<
|
|
22
22
|
>
|
23
23
|
|
24
24
|
export function getAbiItem<
|
25
|
-
TAbi extends Abi | readonly unknown[],
|
25
|
+
const TAbi extends Abi | readonly unknown[],
|
26
26
|
TItemName extends string,
|
27
27
|
>({
|
28
28
|
abi,
|
package/src/utils/poll.ts
CHANGED
@@ -21,7 +21,7 @@ export function poll<TData>(
|
|
21
21
|
const unwatch = () => (active = false)
|
22
22
|
|
23
23
|
const watch = async () => {
|
24
|
-
let data: TData | void
|
24
|
+
let data: TData | void = undefined
|
25
25
|
if (emitOnBegin) data = await fn({ unpoll: unwatch })
|
26
26
|
|
27
27
|
const initialWait = (await initialWaitTime?.(data)) ?? interval
|
package/src/utils/typedData.ts
CHANGED
@@ -58,8 +58,7 @@ export function validateTypedData<
|
|
58
58
|
}
|
59
59
|
|
60
60
|
// Validate domain types.
|
61
|
-
if (types
|
62
|
-
validateData(types['EIP712Domain'], domain)
|
61
|
+
if (types.EIP712Domain && domain) validateData(types.EIP712Domain, domain)
|
63
62
|
|
64
63
|
if (primaryType !== 'EIP712Domain') {
|
65
64
|
// Validate message types.
|
package/src/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '1.
|
1
|
+
export const version = '1.6.1'
|