viem 0.0.0-w-20230802141753 → 0.0.0-w-20230810183250
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/chains/utils/package.json +5 -0
- package/dist/cjs/accounts/index.js +5 -1
- package/dist/cjs/accounts/index.js.map +1 -1
- package/dist/cjs/accounts/utils/privateKeyToAddress.js +12 -0
- package/dist/cjs/accounts/utils/privateKeyToAddress.js.map +1 -0
- package/dist/cjs/accounts/utils/signTransaction.js.map +1 -1
- package/dist/cjs/actions/public/estimateContractGas.js +1 -1
- package/dist/cjs/actions/public/estimateContractGas.js.map +1 -1
- package/dist/cjs/actions/public/estimateGas.js +3 -1
- package/dist/cjs/actions/public/estimateGas.js.map +1 -1
- package/dist/cjs/actions/public/watchContractEvent.js +134 -67
- package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
- package/dist/cjs/actions/public/watchEvent.js +136 -62
- package/dist/cjs/actions/public/watchEvent.js.map +1 -1
- package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
- package/dist/cjs/chains/{formatters/celo.js → celo/formatters.js} +1 -1
- package/dist/cjs/chains/celo/formatters.js.map +1 -0
- package/dist/cjs/chains/{serializers/celo.js → celo/serializers.js} +1 -1
- package/dist/cjs/chains/celo/serializers.js.map +1 -0
- package/dist/cjs/{types/formatter.js → chains/celo/types.js} +1 -1
- package/dist/cjs/chains/celo/types.js.map +1 -0
- package/dist/cjs/chains/index.js +30 -15
- package/dist/cjs/chains/index.js.map +1 -1
- package/dist/cjs/chains/optimism/fees.js +7 -0
- package/dist/cjs/chains/optimism/fees.js.map +1 -0
- package/dist/cjs/chains/{formatters/optimism.js → optimism/formatters.js} +13 -1
- package/dist/cjs/chains/optimism/formatters.js.map +1 -0
- package/dist/cjs/{types/serializer.js → chains/optimism/types.js} +1 -1
- package/dist/cjs/chains/optimism/types.js.map +1 -0
- package/dist/cjs/chains/utils.js +11 -0
- package/dist/cjs/chains/utils.js.map +1 -0
- package/dist/cjs/errors/node.js +1 -1
- package/dist/cjs/errors/node.js.map +1 -1
- package/dist/cjs/errors/utils.js +1 -1
- package/dist/cjs/errors/utils.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/abi/encodeAbiParameters.js +11 -14
- package/dist/cjs/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/cjs/utils/chain.js +5 -3
- package/dist/cjs/utils/chain.js.map +1 -1
- package/dist/cjs/utils/formatters/block.js.map +1 -1
- package/dist/cjs/utils/formatters/extract.js.map +1 -1
- package/dist/cjs/utils/formatters/formatter.js.map +1 -1
- package/dist/cjs/utils/formatters/transaction.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionReceipt.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/cjs/utils/hash/hashFunction.js +3 -2
- package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
- package/dist/cjs/utils/transaction/prepareRequest.js +19 -12
- package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
- package/dist/cjs/{errors/version.js → version.js} +1 -1
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/accounts/index.js +2 -0
- package/dist/esm/accounts/index.js.map +1 -1
- package/dist/esm/accounts/utils/privateKeyToAddress.js +15 -0
- package/dist/esm/accounts/utils/privateKeyToAddress.js.map +1 -0
- package/dist/esm/accounts/utils/signTransaction.js.map +1 -1
- package/dist/esm/actions/public/estimateContractGas.js +1 -1
- package/dist/esm/actions/public/estimateContractGas.js.map +1 -1
- package/dist/esm/actions/public/estimateGas.js +4 -2
- package/dist/esm/actions/public/estimateGas.js.map +1 -1
- package/dist/esm/actions/public/watchContractEvent.js +145 -76
- package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/public/watchEvent.js +146 -70
- package/dist/esm/actions/public/watchEvent.js.map +1 -1
- package/dist/esm/actions/wallet/sendTransaction.js +1 -1
- package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/esm/actions/wallet/writeContract.js.map +1 -1
- package/dist/esm/chains/{formatters/celo.js → celo/formatters.js} +2 -2
- package/dist/esm/chains/celo/formatters.js.map +1 -0
- package/dist/esm/chains/{serializers/celo.js → celo/serializers.js} +1 -1
- package/dist/esm/chains/celo/serializers.js.map +1 -0
- package/dist/esm/chains/celo/types.js +2 -0
- package/dist/esm/chains/celo/types.js.map +1 -0
- package/dist/esm/chains/index.js +22 -7
- package/dist/esm/chains/index.js.map +1 -1
- package/dist/esm/chains/optimism/fees.js +4 -0
- package/dist/esm/chains/optimism/fees.js.map +1 -0
- package/dist/esm/chains/{formatters/optimism.js → optimism/formatters.js} +15 -2
- package/dist/esm/chains/optimism/formatters.js.map +1 -0
- package/dist/esm/chains/optimism/types.js +2 -0
- package/dist/esm/chains/optimism/types.js.map +1 -0
- package/dist/esm/chains/utils.js +4 -0
- package/dist/esm/chains/utils.js.map +1 -0
- package/dist/esm/errors/node.js +1 -1
- package/dist/esm/errors/node.js.map +1 -1
- package/dist/esm/errors/utils.js +1 -1
- package/dist/esm/errors/utils.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/abi/encodeAbiParameters.js +13 -14
- package/dist/esm/utils/abi/encodeAbiParameters.js.map +1 -1
- package/dist/esm/utils/chain.js +5 -3
- package/dist/esm/utils/chain.js.map +1 -1
- package/dist/esm/utils/formatters/block.js.map +1 -1
- package/dist/esm/utils/formatters/extract.js.map +1 -1
- package/dist/esm/utils/formatters/formatter.js.map +1 -1
- package/dist/esm/utils/formatters/transaction.js.map +1 -1
- package/dist/esm/utils/formatters/transactionReceipt.js.map +1 -1
- package/dist/esm/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/esm/utils/hash/hashFunction.js +3 -2
- package/dist/esm/utils/hash/hashFunction.js.map +1 -1
- package/dist/esm/utils/transaction/prepareRequest.js +20 -13
- package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/types/accounts/index.d.ts +2 -0
- package/dist/types/accounts/index.d.ts.map +1 -1
- package/dist/types/accounts/utils/privateKeyToAddress.d.ts +11 -0
- package/dist/types/accounts/utils/privateKeyToAddress.d.ts.map +1 -0
- package/dist/types/accounts/utils/signTransaction.d.ts +2 -2
- package/dist/types/accounts/utils/signTransaction.d.ts.map +1 -1
- package/dist/types/actions/public/estimateGas.d.ts.map +1 -1
- package/dist/types/actions/public/getTransactionReceipt.d.ts +1 -1
- package/dist/types/actions/public/getTransactionReceipt.d.ts.map +1 -1
- package/dist/types/actions/public/simulateContract.d.ts +2 -2
- package/dist/types/actions/public/simulateContract.d.ts.map +1 -1
- package/dist/types/actions/public/watchContractEvent.d.ts +32 -6
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/public/watchEvent.d.ts +32 -9
- package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
- package/dist/types/actions/wallet/sendTransaction.d.ts +2 -2
- package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/dist/types/actions/wallet/writeContract.d.ts +4 -2
- package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
- package/dist/types/chains/{formatters/celo.d.ts → celo/formatters.d.ts} +26 -85
- package/dist/types/chains/celo/formatters.d.ts.map +1 -0
- package/dist/types/chains/{serializers/celo.d.ts → celo/serializers.d.ts} +4 -4
- package/dist/types/chains/celo/serializers.d.ts.map +1 -0
- package/dist/types/chains/celo/types.d.ts +60 -0
- package/dist/types/chains/celo/types.d.ts.map +1 -0
- package/dist/types/chains/index.d.ts +2527 -2754
- package/dist/types/chains/index.d.ts.map +1 -1
- package/dist/types/chains/optimism/fees.d.ts +4 -0
- package/dist/types/chains/optimism/fees.d.ts.map +1 -0
- package/dist/types/chains/{formatters/optimism.d.ts → optimism/formatters.d.ts} +77 -54
- package/dist/types/chains/optimism/formatters.d.ts.map +1 -0
- package/dist/types/chains/optimism/types.d.ts +53 -0
- package/dist/types/chains/optimism/types.d.ts.map +1 -0
- package/dist/types/chains/utils.d.ts +6 -0
- package/dist/types/chains/utils.d.ts.map +1 -0
- package/dist/types/clients/decorators/public.d.ts +1 -1
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/errors/node.d.ts.map +1 -1
- package/dist/types/index.d.ts +14 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/chain.d.ts +52 -8
- package/dist/types/types/chain.d.ts.map +1 -1
- package/dist/types/types/rpc.d.ts +1 -1
- package/dist/types/types/rpc.d.ts.map +1 -1
- package/dist/types/types/utils.d.ts +10 -0
- package/dist/types/types/utils.d.ts.map +1 -1
- package/dist/types/utils/abi/encodeAbiParameters.d.ts.map +1 -1
- package/dist/types/utils/chain.d.ts +3 -6
- package/dist/types/utils/chain.d.ts.map +1 -1
- package/dist/types/utils/formatters/block.d.ts +7 -3
- package/dist/types/utils/formatters/block.d.ts.map +1 -1
- package/dist/types/utils/formatters/extract.d.ts +2 -2
- package/dist/types/utils/formatters/extract.d.ts.map +1 -1
- package/dist/types/utils/formatters/formatter.d.ts +1 -1
- package/dist/types/utils/formatters/transaction.d.ts +8 -4
- package/dist/types/utils/formatters/transaction.d.ts.map +1 -1
- package/dist/types/utils/formatters/transactionReceipt.d.ts +3 -4
- package/dist/types/utils/formatters/transactionReceipt.d.ts.map +1 -1
- package/dist/types/utils/formatters/transactionRequest.d.ts +4 -5
- package/dist/types/utils/formatters/transactionRequest.d.ts.map +1 -1
- package/dist/types/utils/hash/hashFunction.d.ts +1 -1
- package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
- package/dist/types/utils/transaction/prepareRequest.d.ts +6 -11
- package/dist/types/utils/transaction/prepareRequest.d.ts.map +1 -1
- package/dist/types/version.d.ts +2 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +8 -2
- package/src/accounts/index.ts +6 -0
- package/src/accounts/utils/privateKeyToAddress.ts +20 -0
- package/src/accounts/utils/signTransaction.ts +2 -2
- package/src/actions/public/estimateContractGas.ts +1 -1
- package/src/actions/public/estimateGas.ts +11 -2
- package/src/actions/public/simulateContract.ts +2 -2
- package/src/actions/public/watchContractEvent.ts +201 -87
- package/src/actions/public/watchEvent.ts +230 -109
- package/src/actions/wallet/deployContract.ts +1 -1
- package/src/actions/wallet/sendTransaction.ts +9 -6
- package/src/actions/wallet/writeContract.ts +11 -7
- package/src/chains/{formatters/celo.ts → celo/formatters.ts} +29 -48
- package/src/chains/{serializers/celo.ts → celo/serializers.ts} +5 -5
- package/src/chains/celo/types.ts +111 -0
- package/src/chains/index.ts +22 -7
- package/src/chains/optimism/fees.ts +5 -0
- package/src/chains/optimism/formatters.ts +74 -0
- package/src/chains/optimism/types.ts +102 -0
- package/src/chains/utils.ts +41 -0
- package/src/clients/decorators/public.ts +3 -3
- package/src/errors/node.ts +2 -1
- package/src/errors/utils.ts +1 -1
- package/src/index.ts +25 -8
- package/src/types/chain.ts +91 -14
- package/src/types/rpc.ts +2 -6
- package/src/types/utils.ts +11 -0
- package/src/utils/abi/encodeAbiParameters.ts +14 -17
- package/src/utils/chain.ts +21 -10
- package/src/utils/formatters/block.ts +8 -6
- package/src/utils/formatters/extract.ts +2 -2
- package/src/utils/formatters/formatter.ts +2 -2
- package/src/utils/formatters/transaction.ts +8 -6
- package/src/utils/formatters/transactionReceipt.ts +9 -3
- package/src/utils/formatters/transactionRequest.ts +9 -3
- package/src/utils/hash/hashFunction.ts +3 -2
- package/src/utils/transaction/prepareRequest.ts +55 -30
- package/src/version.ts +1 -0
- package/dist/cjs/chains/formatters/celo.js.map +0 -1
- package/dist/cjs/chains/formatters/optimism.js.map +0 -1
- package/dist/cjs/chains/serializers/celo.js.map +0 -1
- package/dist/cjs/errors/version.js.map +0 -1
- package/dist/cjs/types/formatter.js.map +0 -1
- package/dist/cjs/types/serializer.js.map +0 -1
- package/dist/esm/chains/formatters/celo.js.map +0 -1
- package/dist/esm/chains/formatters/optimism.js.map +0 -1
- package/dist/esm/chains/serializers/celo.js.map +0 -1
- package/dist/esm/errors/version.js +0 -2
- package/dist/esm/errors/version.js.map +0 -1
- package/dist/esm/types/formatter.js +0 -2
- package/dist/esm/types/formatter.js.map +0 -1
- package/dist/esm/types/serializer.js +0 -2
- package/dist/esm/types/serializer.js.map +0 -1
- package/dist/types/chains/formatters/celo.d.ts.map +0 -1
- package/dist/types/chains/formatters/optimism.d.ts.map +0 -1
- package/dist/types/chains/serializers/celo.d.ts.map +0 -1
- package/dist/types/errors/version.d.ts +0 -2
- package/dist/types/errors/version.d.ts.map +0 -1
- package/dist/types/types/formatter.d.ts +0 -17
- package/dist/types/types/formatter.d.ts.map +0 -1
- package/dist/types/types/serializer.d.ts +0 -7
- package/dist/types/types/serializer.d.ts.map +0 -1
- package/src/chains/formatters/optimism.ts +0 -91
- package/src/errors/version.ts +0 -1
- package/src/types/formatter.ts +0 -42
- package/src/types/serializer.ts +0 -19
@@ -0,0 +1,111 @@
|
|
1
|
+
import type { Address } from 'abitype'
|
2
|
+
|
3
|
+
import type { Block, BlockTag } from '../../types/block.js'
|
4
|
+
import type { Hex } from '../../types/misc.js'
|
5
|
+
import type {
|
6
|
+
RpcBlock,
|
7
|
+
RpcTransaction,
|
8
|
+
RpcTransactionReceipt,
|
9
|
+
RpcTransactionRequest,
|
10
|
+
} from '../../types/rpc.js'
|
11
|
+
import type {
|
12
|
+
Transaction,
|
13
|
+
TransactionReceipt,
|
14
|
+
TransactionRequest,
|
15
|
+
} from '../../types/transaction.js'
|
16
|
+
import type { NeverBy } from '../../types/utils.js'
|
17
|
+
import type { OptimismRpcTransaction } from '../optimism/types.js'
|
18
|
+
|
19
|
+
type CeloBlockExclude =
|
20
|
+
| 'difficulty'
|
21
|
+
| 'gasLimit'
|
22
|
+
| 'mixHash'
|
23
|
+
| 'nonce'
|
24
|
+
| 'uncles'
|
25
|
+
|
26
|
+
export type CeloBlockOverrides = {
|
27
|
+
randomness: {
|
28
|
+
committed: Hex
|
29
|
+
revealed: Hex
|
30
|
+
}
|
31
|
+
}
|
32
|
+
export type CeloBlock<
|
33
|
+
TIncludeTransactions extends boolean = boolean,
|
34
|
+
TBlockTag extends BlockTag = BlockTag,
|
35
|
+
> = NeverBy<
|
36
|
+
Block<
|
37
|
+
bigint,
|
38
|
+
TIncludeTransactions,
|
39
|
+
TBlockTag,
|
40
|
+
CeloTransaction<TBlockTag extends 'pending' ? true : false>
|
41
|
+
>,
|
42
|
+
CeloBlockExclude
|
43
|
+
> &
|
44
|
+
CeloBlockOverrides
|
45
|
+
|
46
|
+
export type CeloRpcBlockOverrides = {
|
47
|
+
randomness: {
|
48
|
+
committed: Hex
|
49
|
+
revealed: Hex
|
50
|
+
}
|
51
|
+
}
|
52
|
+
export type CeloRpcBlock<
|
53
|
+
TBlockTag extends BlockTag = BlockTag,
|
54
|
+
TIncludeTransactions extends boolean = boolean,
|
55
|
+
> = NeverBy<
|
56
|
+
RpcBlock<
|
57
|
+
TBlockTag,
|
58
|
+
TIncludeTransactions,
|
59
|
+
OptimismRpcTransaction<TBlockTag extends 'pending' ? true : false>
|
60
|
+
>,
|
61
|
+
CeloBlockExclude
|
62
|
+
> &
|
63
|
+
CeloRpcBlockOverrides
|
64
|
+
|
65
|
+
export type CeloRpcTransactionOverrides = {
|
66
|
+
feeCurrency: Address | null
|
67
|
+
gatewayFee: Hex | null
|
68
|
+
gatewayFeeRecipient: Address | null
|
69
|
+
}
|
70
|
+
export type CeloRpcTransaction<TPending extends boolean = boolean> =
|
71
|
+
RpcTransaction<TPending> & CeloRpcTransactionOverrides
|
72
|
+
|
73
|
+
export type CeloRpcTransactionReceiptOverrides = {
|
74
|
+
feeCurrency: Address | null
|
75
|
+
gatewayFee: Hex | null
|
76
|
+
gatewayFeeRecipient: Address | null
|
77
|
+
}
|
78
|
+
export type CeloRpcTransactionReceipt = RpcTransactionReceipt &
|
79
|
+
CeloRpcTransactionReceiptOverrides
|
80
|
+
|
81
|
+
export type CeloRpcTransactionRequestOverrides = {
|
82
|
+
feeCurrency?: Address
|
83
|
+
gatewayFee?: Hex
|
84
|
+
gatewayFeeRecipient?: Address
|
85
|
+
}
|
86
|
+
export type CeloRpcTransactionRequest = RpcTransactionRequest &
|
87
|
+
CeloRpcTransactionRequestOverrides
|
88
|
+
|
89
|
+
export type CeloTransactionOverrides = {
|
90
|
+
feeCurrency: Address | null
|
91
|
+
gatewayFee: bigint | null
|
92
|
+
gatewayFeeRecipient: Address | null
|
93
|
+
}
|
94
|
+
export type CeloTransaction<TPending extends boolean = boolean> =
|
95
|
+
Transaction<TPending> & CeloTransactionOverrides
|
96
|
+
|
97
|
+
export type CeloTransactionReceiptOverrides = {
|
98
|
+
feeCurrency: Address | null
|
99
|
+
gatewayFee: bigint | null
|
100
|
+
gatewayFeeRecipient: Address | null
|
101
|
+
}
|
102
|
+
export type CeloTransactionReceipt = TransactionReceipt &
|
103
|
+
CeloTransactionReceiptOverrides
|
104
|
+
|
105
|
+
export type CeloTransactionRequestOverrides = {
|
106
|
+
feeCurrency?: Address
|
107
|
+
gatewayFee?: bigint
|
108
|
+
gatewayFeeRecipient?: Address
|
109
|
+
}
|
110
|
+
export type CeloTransactionRequest = TransactionRequest &
|
111
|
+
CeloTransactionRequestOverrides
|
package/src/chains/index.ts
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
import * as chains from '@wagmi/chains'
|
2
2
|
|
3
3
|
import { defineChain } from '../utils/chain.js'
|
4
|
-
import { formattersCelo } from './formatters
|
5
|
-
import {
|
6
|
-
import {
|
4
|
+
import { formattersCelo } from './celo/formatters.js'
|
5
|
+
import { serializersCelo } from './celo/serializers.js'
|
6
|
+
import { feesOptimism } from './optimism/fees.js'
|
7
|
+
import { formattersOptimism } from './optimism/formatters.js'
|
7
8
|
|
8
9
|
export const arbitrum = /*#__PURE__*/ defineChain(chains.arbitrum)
|
9
10
|
export const arbitrumGoerli = /*#__PURE__*/ defineChain(chains.arbitrumGoerli)
|
@@ -11,8 +12,14 @@ export const aurora = /*#__PURE__*/ defineChain(chains.aurora)
|
|
11
12
|
export const auroraTestnet = /*#__PURE__*/ defineChain(chains.auroraTestnet)
|
12
13
|
export const avalanche = /*#__PURE__*/ defineChain(chains.avalanche)
|
13
14
|
export const avalancheFuji = /*#__PURE__*/ defineChain(chains.avalancheFuji)
|
14
|
-
export const base = /*#__PURE__*/ defineChain(chains.base
|
15
|
-
|
15
|
+
export const base = /*#__PURE__*/ defineChain(chains.base, {
|
16
|
+
fees: feesOptimism,
|
17
|
+
formatters: formattersOptimism,
|
18
|
+
})
|
19
|
+
export const baseGoerli = /*#__PURE__*/ defineChain(chains.baseGoerli, {
|
20
|
+
fees: feesOptimism,
|
21
|
+
formatters: formattersOptimism,
|
22
|
+
})
|
16
23
|
export const boba = /*#__PURE__*/ defineChain(chains.boba)
|
17
24
|
export const bronos = /*#__PURE__*/ defineChain(chains.bronos)
|
18
25
|
export const bronosTestnet = /*#__PURE__*/ defineChain(chains.bronosTestnet)
|
@@ -72,9 +79,11 @@ export const moonriver = /*#__PURE__*/ defineChain(chains.moonriver)
|
|
72
79
|
export const nexi = /*#__PURE__*/ defineChain(chains.nexi)
|
73
80
|
export const okc = /*#__PURE__*/ defineChain(chains.okc)
|
74
81
|
export const optimism = /*#__PURE__*/ defineChain(chains.optimism, {
|
82
|
+
fees: feesOptimism,
|
75
83
|
formatters: formattersOptimism,
|
76
84
|
})
|
77
85
|
export const optimismGoerli = /*#__PURE__*/ defineChain(chains.optimismGoerli, {
|
86
|
+
fees: feesOptimism,
|
78
87
|
formatters: formattersOptimism,
|
79
88
|
})
|
80
89
|
export const polygon = /*#__PURE__*/ defineChain(chains.polygon)
|
@@ -136,7 +145,13 @@ export const xdcTestnet = /*#__PURE__*/ defineChain(chains.xdcTestnet)
|
|
136
145
|
export const zhejiang = /*#__PURE__*/ defineChain(chains.zhejiang)
|
137
146
|
export const zkSync = /*#__PURE__*/ defineChain(chains.zkSync)
|
138
147
|
export const zkSyncTestnet = /*#__PURE__*/ defineChain(chains.zkSyncTestnet)
|
139
|
-
export const zora = /*#__PURE__*/ defineChain(chains.zora
|
140
|
-
|
148
|
+
export const zora = /*#__PURE__*/ defineChain(chains.zora, {
|
149
|
+
fees: feesOptimism,
|
150
|
+
formatters: formattersOptimism,
|
151
|
+
})
|
152
|
+
export const zoraTestnet = /*#__PURE__*/ defineChain(chains.zoraTestnet, {
|
153
|
+
fees: feesOptimism,
|
154
|
+
formatters: formattersOptimism,
|
155
|
+
})
|
141
156
|
|
142
157
|
export type { Chain } from '../types/chain.js'
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { type ChainFormatters } from '../../types/chain.js'
|
2
|
+
import type { Hash } from '../../types/misc.js'
|
3
|
+
import { type RpcTransaction } from '../../types/rpc.js'
|
4
|
+
import { hexToBigInt } from '../../utils/encoding/fromHex.js'
|
5
|
+
import { defineBlock } from '../../utils/formatters/block.js'
|
6
|
+
import {
|
7
|
+
defineTransaction,
|
8
|
+
formatTransaction,
|
9
|
+
} from '../../utils/formatters/transaction.js'
|
10
|
+
import { defineTransactionReceipt } from '../../utils/formatters/transactionReceipt.js'
|
11
|
+
import type {
|
12
|
+
OptimismBlockOverrides,
|
13
|
+
OptimismRpcBlockOverrides,
|
14
|
+
OptimismRpcTransaction,
|
15
|
+
OptimismRpcTransactionReceiptOverrides,
|
16
|
+
OptimismTransaction,
|
17
|
+
OptimismTransactionReceiptOverrides,
|
18
|
+
} from './types.js'
|
19
|
+
|
20
|
+
export const formattersOptimism = {
|
21
|
+
block: /*#__PURE__*/ defineBlock({
|
22
|
+
format(
|
23
|
+
args: OptimismRpcBlockOverrides & {
|
24
|
+
transactions: Hash[] | OptimismRpcTransaction[]
|
25
|
+
},
|
26
|
+
): OptimismBlockOverrides & {
|
27
|
+
transactions: Hash[] | OptimismTransaction[]
|
28
|
+
} {
|
29
|
+
const transactions = args.transactions?.map((transaction) => {
|
30
|
+
if (typeof transaction === 'string') return transaction
|
31
|
+
const formatted = formatTransaction(
|
32
|
+
transaction as RpcTransaction,
|
33
|
+
) as OptimismTransaction
|
34
|
+
if (formatted.typeHex === '0x7e') {
|
35
|
+
formatted.isSystemTx = transaction.isSystemTx
|
36
|
+
formatted.mint = transaction.mint
|
37
|
+
? hexToBigInt(transaction.mint)
|
38
|
+
: undefined
|
39
|
+
formatted.sourceHash = transaction.sourceHash
|
40
|
+
formatted.type = 'deposit'
|
41
|
+
}
|
42
|
+
return formatted
|
43
|
+
}) as Hash[] | OptimismTransaction[]
|
44
|
+
return {
|
45
|
+
transactions,
|
46
|
+
stateRoot: args.stateRoot,
|
47
|
+
}
|
48
|
+
},
|
49
|
+
}),
|
50
|
+
transaction: /*#__PURE__*/ defineTransaction({
|
51
|
+
format(args: OptimismRpcTransaction): OptimismTransaction {
|
52
|
+
const transaction = {} as OptimismTransaction
|
53
|
+
if (args.type === '0x7e') {
|
54
|
+
transaction.isSystemTx = args.isSystemTx
|
55
|
+
transaction.mint = args.mint ? hexToBigInt(args.mint) : undefined
|
56
|
+
transaction.sourceHash = args.sourceHash
|
57
|
+
transaction.type = 'deposit'
|
58
|
+
}
|
59
|
+
return transaction
|
60
|
+
},
|
61
|
+
}),
|
62
|
+
transactionReceipt: /*#__PURE__*/ defineTransactionReceipt({
|
63
|
+
format(
|
64
|
+
args: OptimismRpcTransactionReceiptOverrides,
|
65
|
+
): OptimismTransactionReceiptOverrides {
|
66
|
+
return {
|
67
|
+
l1GasPrice: args.l1GasPrice ? hexToBigInt(args.l1GasPrice) : null,
|
68
|
+
l1GasUsed: args.l1GasUsed ? hexToBigInt(args.l1GasUsed) : null,
|
69
|
+
l1Fee: args.l1Fee ? hexToBigInt(args.l1Fee) : null,
|
70
|
+
l1FeeScalar: args.l1FeeScalar ? Number(args.l1FeeScalar) : null,
|
71
|
+
}
|
72
|
+
},
|
73
|
+
}),
|
74
|
+
} as const satisfies ChainFormatters
|
@@ -0,0 +1,102 @@
|
|
1
|
+
import type { Block, BlockTag } from '../../types/block.js'
|
2
|
+
import type { FeeValuesEIP1559 } from '../../types/fee.js'
|
3
|
+
import type { Hash, Hex } from '../../types/misc.js'
|
4
|
+
import type {
|
5
|
+
Index,
|
6
|
+
Quantity,
|
7
|
+
RpcBlock,
|
8
|
+
RpcTransaction as RpcTransaction_,
|
9
|
+
RpcTransactionReceipt,
|
10
|
+
} from '../../types/rpc.js'
|
11
|
+
import type {
|
12
|
+
Transaction as Transaction_,
|
13
|
+
TransactionBase,
|
14
|
+
TransactionReceipt,
|
15
|
+
} from '../../types/transaction.js'
|
16
|
+
|
17
|
+
export type OptimismBlockOverrides = {
|
18
|
+
stateRoot: Hash
|
19
|
+
}
|
20
|
+
export type OptimismBlock<
|
21
|
+
TIncludeTransactions extends boolean = boolean,
|
22
|
+
TBlockTag extends BlockTag = BlockTag,
|
23
|
+
> = Block<
|
24
|
+
bigint,
|
25
|
+
TIncludeTransactions,
|
26
|
+
TBlockTag,
|
27
|
+
OptimismTransaction<TBlockTag extends 'pending' ? true : false>
|
28
|
+
> &
|
29
|
+
OptimismBlockOverrides
|
30
|
+
|
31
|
+
export type OptimismRpcBlockOverrides = {
|
32
|
+
stateRoot: Hash
|
33
|
+
}
|
34
|
+
export type OptimismRpcBlock<
|
35
|
+
TBlockTag extends BlockTag = BlockTag,
|
36
|
+
TIncludeTransactions extends boolean = boolean,
|
37
|
+
> = RpcBlock<
|
38
|
+
TBlockTag,
|
39
|
+
TIncludeTransactions,
|
40
|
+
OptimismRpcTransaction<TBlockTag extends 'pending' ? true : false>
|
41
|
+
> &
|
42
|
+
OptimismRpcBlockOverrides
|
43
|
+
|
44
|
+
type RpcTransaction<TPending extends boolean = boolean> =
|
45
|
+
RpcTransaction_<TPending> & {
|
46
|
+
isSystemTx?: undefined
|
47
|
+
mint?: undefined
|
48
|
+
sourceHash?: undefined
|
49
|
+
}
|
50
|
+
|
51
|
+
export type OptimismRpcDepositTransaction<TPending extends boolean = boolean> =
|
52
|
+
Omit<TransactionBase<Quantity, Index, TPending>, 'typeHex'> &
|
53
|
+
FeeValuesEIP1559<Quantity> & {
|
54
|
+
isSystemTx?: boolean
|
55
|
+
mint?: Hex
|
56
|
+
sourceHash: Hex
|
57
|
+
type: '0x7e'
|
58
|
+
}
|
59
|
+
export type OptimismRpcTransaction<TPending extends boolean = boolean> =
|
60
|
+
| RpcTransaction<TPending>
|
61
|
+
| OptimismRpcDepositTransaction<TPending>
|
62
|
+
|
63
|
+
export type OptimismRpcTransactionReceiptOverrides = {
|
64
|
+
l1GasPrice: Hex | null
|
65
|
+
l1GasUsed: Hex | null
|
66
|
+
l1Fee: Hex | null
|
67
|
+
l1FeeScalar: `${number}` | null
|
68
|
+
}
|
69
|
+
export type OptimismRpcTransactionReceipt = RpcTransactionReceipt &
|
70
|
+
OptimismRpcTransactionReceiptOverrides
|
71
|
+
|
72
|
+
type Transaction<TPending extends boolean = boolean> = Transaction_<
|
73
|
+
bigint,
|
74
|
+
number,
|
75
|
+
TPending
|
76
|
+
> & {
|
77
|
+
isSystemTx?: undefined
|
78
|
+
mint?: undefined
|
79
|
+
sourceHash?: undefined
|
80
|
+
}
|
81
|
+
|
82
|
+
export type OptimismDepositTransaction<TPending extends boolean = boolean> =
|
83
|
+
TransactionBase<bigint, number, TPending> &
|
84
|
+
FeeValuesEIP1559 & {
|
85
|
+
isSystemTx?: boolean
|
86
|
+
mint?: bigint
|
87
|
+
sourceHash: Hex
|
88
|
+
type: 'deposit'
|
89
|
+
}
|
90
|
+
|
91
|
+
export type OptimismTransaction<TPending extends boolean = boolean> =
|
92
|
+
| Transaction<TPending>
|
93
|
+
| OptimismDepositTransaction<TPending>
|
94
|
+
|
95
|
+
export type OptimismTransactionReceiptOverrides = {
|
96
|
+
l1GasPrice: bigint | null
|
97
|
+
l1GasUsed: bigint | null
|
98
|
+
l1Fee: bigint | null
|
99
|
+
l1FeeScalar: number | null
|
100
|
+
}
|
101
|
+
export type OptimismTransactionReceipt = TransactionReceipt &
|
102
|
+
OptimismTransactionReceiptOverrides
|
@@ -0,0 +1,41 @@
|
|
1
|
+
export { formattersCelo } from './celo/formatters.js'
|
2
|
+
export {
|
3
|
+
type CeloTransactionSerializable,
|
4
|
+
type TransactionSerializableCIP42,
|
5
|
+
serializeTransactionCelo,
|
6
|
+
serializersCelo,
|
7
|
+
} from './celo/serializers.js'
|
8
|
+
export type {
|
9
|
+
CeloBlock,
|
10
|
+
CeloBlockOverrides,
|
11
|
+
CeloRpcBlock,
|
12
|
+
CeloRpcBlockOverrides,
|
13
|
+
CeloRpcTransaction,
|
14
|
+
CeloRpcTransactionOverrides,
|
15
|
+
CeloRpcTransactionReceipt,
|
16
|
+
CeloRpcTransactionReceiptOverrides,
|
17
|
+
CeloRpcTransactionRequest,
|
18
|
+
CeloRpcTransactionRequestOverrides,
|
19
|
+
CeloTransaction,
|
20
|
+
CeloTransactionOverrides,
|
21
|
+
CeloTransactionReceipt,
|
22
|
+
CeloTransactionReceiptOverrides,
|
23
|
+
CeloTransactionRequest,
|
24
|
+
CeloTransactionRequestOverrides,
|
25
|
+
} from './celo/types.js'
|
26
|
+
|
27
|
+
export { formattersOptimism } from './optimism/formatters.js'
|
28
|
+
export type {
|
29
|
+
OptimismBlock,
|
30
|
+
OptimismBlockOverrides,
|
31
|
+
OptimismDepositTransaction,
|
32
|
+
OptimismRpcBlock,
|
33
|
+
OptimismRpcBlockOverrides,
|
34
|
+
OptimismRpcDepositTransaction,
|
35
|
+
OptimismRpcTransaction,
|
36
|
+
OptimismRpcTransactionReceipt,
|
37
|
+
OptimismRpcTransactionReceiptOverrides,
|
38
|
+
OptimismTransaction,
|
39
|
+
OptimismTransactionReceipt,
|
40
|
+
OptimismTransactionReceiptOverrides,
|
41
|
+
} from './optimism/types.js'
|
@@ -1206,9 +1206,9 @@ export type PublicActions<
|
|
1206
1206
|
* })
|
1207
1207
|
*/
|
1208
1208
|
simulateContract: <
|
1209
|
-
TAbi extends Abi | readonly unknown[]
|
1210
|
-
TFunctionName extends string
|
1211
|
-
TChainOverride extends Chain | undefined
|
1209
|
+
TAbi extends Abi | readonly unknown[],
|
1210
|
+
TFunctionName extends string,
|
1211
|
+
TChainOverride extends Chain | undefined,
|
1212
1212
|
>(
|
1213
1213
|
args: SimulateContractParameters<
|
1214
1214
|
TAbi,
|
package/src/errors/node.ts
CHANGED
@@ -88,7 +88,8 @@ export class NonceTooHighError extends BaseError {
|
|
88
88
|
}
|
89
89
|
|
90
90
|
export class NonceTooLowError extends BaseError {
|
91
|
-
static nodeMessage =
|
91
|
+
static nodeMessage =
|
92
|
+
/nonce too low|transaction already imported|already known/
|
92
93
|
override name = 'NonceTooLowError'
|
93
94
|
constructor({ cause, nonce }: { cause?: BaseError; nonce?: number } = {}) {
|
94
95
|
super(
|
package/src/errors/utils.ts
CHANGED
package/src/index.ts
CHANGED
@@ -577,7 +577,30 @@ export type {
|
|
577
577
|
Signature,
|
578
578
|
SignableMessage,
|
579
579
|
} from './types/misc.js'
|
580
|
-
export type {
|
580
|
+
export type {
|
581
|
+
Chain,
|
582
|
+
ChainContract,
|
583
|
+
ChainFees,
|
584
|
+
ChainFormatter,
|
585
|
+
/** @deprecated use `ChainFormatter` instead. */
|
586
|
+
ChainFormatter as Formatter,
|
587
|
+
ChainFormatters,
|
588
|
+
/** @deprecated use `ChainFormatters` instead. */
|
589
|
+
ChainFormatters as Formatters,
|
590
|
+
ChainSerializers,
|
591
|
+
/** @deprecated use `ChainSerializers` instead. */
|
592
|
+
ChainSerializers as Serializers,
|
593
|
+
ExtractChainFormatterExclude,
|
594
|
+
/** @deprecated use `ExtractChainFormatterExclude` instead. */
|
595
|
+
ExtractChainFormatterExclude as ExtractFormatterExclude,
|
596
|
+
ExtractChainFormatterParameters,
|
597
|
+
/** @deprecated use `ExtractChainFormatterParameters` instead. */
|
598
|
+
ExtractChainFormatterParameters as ExtractFormatterParameters,
|
599
|
+
ExtractChainFormatterReturnType,
|
600
|
+
/** @deprecated use `ExtractChainFormatterReturnType` instead. */
|
601
|
+
ExtractChainFormatterReturnType as ExtractFormatterReturnType,
|
602
|
+
GetChain,
|
603
|
+
} from './types/chain.js'
|
581
604
|
export type {
|
582
605
|
AddEthereumChainParameter,
|
583
606
|
EIP1193Events,
|
@@ -605,13 +628,6 @@ export type {
|
|
605
628
|
FeeValuesLegacy,
|
606
629
|
} from './types/fee.js'
|
607
630
|
export type { Filter } from './types/filter.js'
|
608
|
-
export type {
|
609
|
-
Formatter,
|
610
|
-
Formatters,
|
611
|
-
ExtractFormatterParameters,
|
612
|
-
ExtractFormatterReturnType,
|
613
|
-
} from './types/formatter.js'
|
614
|
-
export type { Serializers } from './types/serializer.js'
|
615
631
|
export type { TypedDataDefinition } from './types/typedData.js'
|
616
632
|
export type { GetTransportConfig } from './types/transport.js'
|
617
633
|
export type { HDKey } from '@scure/bip32'
|
@@ -841,3 +857,4 @@ export { slice, sliceBytes, sliceHex } from './utils/data/slice.js'
|
|
841
857
|
export { stringify } from './utils/stringify.js'
|
842
858
|
export { trim } from './utils/data/trim.js'
|
843
859
|
export { validateTypedData } from './utils/typedData.js'
|
860
|
+
export { version } from './version.js'
|
package/src/types/chain.ts
CHANGED
@@ -1,17 +1,24 @@
|
|
1
1
|
import type { Address } from 'abitype'
|
2
2
|
|
3
|
-
import type {
|
4
|
-
import type {
|
5
|
-
import type {
|
3
|
+
import type { FormattedBlock } from '../utils/formatters/block.js'
|
4
|
+
import type { PrepareRequestParameters } from '../utils/transaction/prepareRequest.js'
|
5
|
+
import type { SerializeTransactionFn } from '../utils/transaction/serializeTransaction.js'
|
6
|
+
import type {
|
7
|
+
TransactionSerializable,
|
8
|
+
TransactionSerializableGeneric,
|
9
|
+
} from './transaction.js'
|
10
|
+
import type { IsUndefined, Prettify } from './utils.js'
|
6
11
|
|
7
12
|
export type Chain<
|
8
|
-
formatters extends
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
+
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
14
|
+
> = import('@wagmi/chains').Chain & ChainConfig<formatters>
|
15
|
+
|
16
|
+
export type ChainConfig<
|
17
|
+
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
18
|
+
> = {
|
13
19
|
formatters?: formatters | undefined
|
14
|
-
serializers?:
|
20
|
+
serializers?: ChainSerializers<formatters> | undefined
|
21
|
+
fees?: ChainFees<formatters> | undefined
|
15
22
|
}
|
16
23
|
|
17
24
|
export type ChainContract = {
|
@@ -19,9 +26,79 @@ export type ChainContract = {
|
|
19
26
|
blockCreated?: number
|
20
27
|
}
|
21
28
|
|
29
|
+
export type ChainFees<
|
30
|
+
formatters extends ChainFormatters | undefined = ChainFormatters | undefined,
|
31
|
+
> = {
|
32
|
+
defaultPriorityFee:
|
33
|
+
| bigint
|
34
|
+
| ((args: {
|
35
|
+
block: Prettify<FormattedBlock<{ formatters: formatters }>>
|
36
|
+
request: PrepareRequestParameters<
|
37
|
+
Omit<Chain, 'formatters'> & { formatters: formatters }
|
38
|
+
>
|
39
|
+
}) => Promise<bigint> | bigint)
|
40
|
+
}
|
41
|
+
|
42
|
+
export type ChainFormatters = {
|
43
|
+
block?: ChainFormatter<'block'>
|
44
|
+
transaction?: ChainFormatter<'transaction'>
|
45
|
+
transactionReceipt?: ChainFormatter<'transactionReceipt'>
|
46
|
+
transactionRequest?: ChainFormatter<'transactionRequest'>
|
47
|
+
}
|
48
|
+
|
49
|
+
export type ChainFormatter<type extends string = string> = {
|
50
|
+
format: (args: any) => any
|
51
|
+
type: type
|
52
|
+
}
|
53
|
+
|
54
|
+
export type ChainSerializers<
|
55
|
+
formatters extends ChainFormatters | undefined = undefined,
|
56
|
+
> = {
|
57
|
+
transaction?: SerializeTransactionFn<
|
58
|
+
formatters extends ChainFormatters
|
59
|
+
? formatters['transactionRequest'] extends ChainFormatter
|
60
|
+
? TransactionSerializableGeneric &
|
61
|
+
Parameters<formatters['transactionRequest']['format']>[0]
|
62
|
+
: TransactionSerializable
|
63
|
+
: TransactionSerializable
|
64
|
+
>
|
65
|
+
}
|
66
|
+
|
67
|
+
/////////////////////////////////////////////////////////////////////
|
68
|
+
// Utils
|
69
|
+
|
70
|
+
export type ExtractChainFormatterExclude<
|
71
|
+
chain extends { formatters?: Chain['formatters'] } | undefined,
|
72
|
+
type extends keyof ChainFormatters,
|
73
|
+
> = chain extends { formatters?: infer _Formatters extends ChainFormatters }
|
74
|
+
? _Formatters[type] extends { exclude: infer Exclude }
|
75
|
+
? Extract<Exclude, string[]>[number]
|
76
|
+
: ''
|
77
|
+
: ''
|
78
|
+
|
79
|
+
export type ExtractChainFormatterParameters<
|
80
|
+
chain extends { formatters?: Chain['formatters'] } | undefined,
|
81
|
+
type extends keyof ChainFormatters,
|
82
|
+
fallback,
|
83
|
+
> = chain extends { formatters?: infer _Formatters extends ChainFormatters }
|
84
|
+
? _Formatters[type] extends ChainFormatter
|
85
|
+
? Parameters<_Formatters[type]['format']>[0]
|
86
|
+
: fallback
|
87
|
+
: fallback
|
88
|
+
|
89
|
+
export type ExtractChainFormatterReturnType<
|
90
|
+
chain extends { formatters?: Chain['formatters'] } | undefined,
|
91
|
+
type extends keyof ChainFormatters,
|
92
|
+
fallback,
|
93
|
+
> = chain extends { formatters?: infer _Formatters extends ChainFormatters }
|
94
|
+
? _Formatters[type] extends ChainFormatter
|
95
|
+
? ReturnType<_Formatters[type]['format']>
|
96
|
+
: fallback
|
97
|
+
: fallback
|
98
|
+
|
22
99
|
export type GetChain<
|
23
|
-
|
24
|
-
|
25
|
-
> = IsUndefined<
|
26
|
-
? { chain:
|
27
|
-
: { chain?:
|
100
|
+
chain extends Chain | undefined,
|
101
|
+
chainOverride extends Chain | undefined = undefined,
|
102
|
+
> = IsUndefined<chain> extends true
|
103
|
+
? { chain: chainOverride | null }
|
104
|
+
: { chain?: chainOverride | null }
|
package/src/types/rpc.ts
CHANGED
@@ -26,12 +26,8 @@ export type TransactionType = '0x0' | '0x1' | '0x2' | (string & {})
|
|
26
26
|
export type RpcBlock<
|
27
27
|
TBlockTag extends BlockTag = BlockTag,
|
28
28
|
TIncludeTransactions extends boolean = boolean,
|
29
|
-
|
30
|
-
|
31
|
-
TIncludeTransactions,
|
32
|
-
TBlockTag,
|
33
|
-
RpcTransaction<TBlockTag extends 'pending' ? true : false>
|
34
|
-
>
|
29
|
+
TTransaction = RpcTransaction<TBlockTag extends 'pending' ? true : false>,
|
30
|
+
> = Block<Quantity, TIncludeTransactions, TBlockTag, TTransaction>
|
35
31
|
export type RpcBlockNumber = BlockNumber<Quantity>
|
36
32
|
export type RpcBlockIdentifier = BlockIdentifier<Quantity>
|
37
33
|
export type RpcUncle = Uncle<Quantity>
|
package/src/types/utils.ts
CHANGED
@@ -155,6 +155,17 @@ export type OptionalNullable<T> = {
|
|
155
155
|
[K in keyof T as T[K] extends NonNullable<unknown> ? never : K]?: T[K]
|
156
156
|
}
|
157
157
|
|
158
|
+
/**
|
159
|
+
* @description Make properties K of type T never.
|
160
|
+
*
|
161
|
+
* @example
|
162
|
+
* NeverBy<{ a: string, b: boolean, c: number }, 'a' | 'c'>
|
163
|
+
* => { a: never, b: boolean, c: never }
|
164
|
+
*/
|
165
|
+
export type NeverBy<T, K extends keyof T> = {
|
166
|
+
[U in keyof T]: U extends K ? never : T[U]
|
167
|
+
}
|
168
|
+
|
158
169
|
/**
|
159
170
|
* @description Constructs a type by excluding `undefined` from `T`.
|
160
171
|
*
|
@@ -194,28 +194,25 @@ function encodeBytes<TParam extends AbiParameter>(
|
|
194
194
|
value: Hex,
|
195
195
|
{ param }: { param: TParam },
|
196
196
|
): PreparedParam {
|
197
|
-
const [
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
197
|
+
const [, paramSize] = param.type.split('bytes')
|
198
|
+
const bytesSize = size(value)
|
199
|
+
if (!paramSize) {
|
200
|
+
let value_ = value
|
201
|
+
// If the size is not divisible by 32 bytes, pad the end
|
202
|
+
// with empty bytes to the ceiling 32 bytes.
|
203
|
+
if (bytesSize % 32 !== 0)
|
204
|
+
value_ = padHex(value_, {
|
205
|
+
dir: 'right',
|
206
|
+
size: Math.ceil((value.length - 2) / 2 / 32) * 32,
|
207
|
+
})
|
208
208
|
return {
|
209
209
|
dynamic: true,
|
210
|
-
encoded: concat([
|
211
|
-
padHex(numberToHex(size(value), { size: 32 })),
|
212
|
-
...parts,
|
213
|
-
]),
|
210
|
+
encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),
|
214
211
|
}
|
215
212
|
}
|
216
|
-
if (
|
213
|
+
if (bytesSize !== parseInt(paramSize))
|
217
214
|
throw new AbiEncodingBytesSizeMismatchError({
|
218
|
-
expectedSize: parseInt(
|
215
|
+
expectedSize: parseInt(paramSize),
|
219
216
|
value,
|
220
217
|
})
|
221
218
|
return { dynamic: false, encoded: padHex(value, { dir: 'right' }) }
|