viem 1.5.4 → 1.6.0
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/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/index.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/transaction/prepareRequest.js +15 -6
- package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
- 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/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/index.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/transaction/prepareRequest.js +14 -5
- package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
- 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 +13 -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/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/transaction/prepareRequest.d.ts +6 -11
- package/dist/types/utils/transaction/prepareRequest.d.ts.map +1 -1
- 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/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/index.ts +24 -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/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/transaction/prepareRequest.ts +48 -22
- 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/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/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/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/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/index.ts
CHANGED
@@ -571,7 +571,30 @@ export type {
|
|
571
571
|
Signature,
|
572
572
|
SignableMessage,
|
573
573
|
} from './types/misc.js'
|
574
|
-
export type {
|
574
|
+
export type {
|
575
|
+
Chain,
|
576
|
+
ChainContract,
|
577
|
+
ChainFees,
|
578
|
+
ChainFormatter,
|
579
|
+
/** @deprecated use `ChainFormatter` instead. */
|
580
|
+
ChainFormatter as Formatter,
|
581
|
+
ChainFormatters,
|
582
|
+
/** @deprecated use `ChainFormatters` instead. */
|
583
|
+
ChainFormatters as Formatters,
|
584
|
+
ChainSerializers,
|
585
|
+
/** @deprecated use `ChainSerializers` instead. */
|
586
|
+
ChainSerializers as Serializers,
|
587
|
+
ExtractChainFormatterExclude,
|
588
|
+
/** @deprecated use `ExtractChainFormatterExclude` instead. */
|
589
|
+
ExtractChainFormatterExclude as ExtractFormatterExclude,
|
590
|
+
ExtractChainFormatterParameters,
|
591
|
+
/** @deprecated use `ExtractChainFormatterParameters` instead. */
|
592
|
+
ExtractChainFormatterParameters as ExtractFormatterParameters,
|
593
|
+
ExtractChainFormatterReturnType,
|
594
|
+
/** @deprecated use `ExtractChainFormatterReturnType` instead. */
|
595
|
+
ExtractChainFormatterReturnType as ExtractFormatterReturnType,
|
596
|
+
GetChain,
|
597
|
+
} from './types/chain.js'
|
575
598
|
export type {
|
576
599
|
AddEthereumChainParameter,
|
577
600
|
EIP1193Events,
|
@@ -599,13 +622,6 @@ export type {
|
|
599
622
|
FeeValuesLegacy,
|
600
623
|
} from './types/fee.js'
|
601
624
|
export type { Filter } from './types/filter.js'
|
602
|
-
export type {
|
603
|
-
Formatter,
|
604
|
-
Formatters,
|
605
|
-
ExtractFormatterParameters,
|
606
|
-
ExtractFormatterReturnType,
|
607
|
-
} from './types/formatter.js'
|
608
|
-
export type { Serializers } from './types/serializer.js'
|
609
625
|
export type {
|
610
626
|
GetTypedDataDomain,
|
611
627
|
GetTypedDataMessage,
|
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
|
*
|
package/src/utils/chain.ts
CHANGED
@@ -3,8 +3,13 @@ import {
|
|
3
3
|
ChainMismatchError,
|
4
4
|
ChainNotFoundError,
|
5
5
|
} from '../errors/chain.js'
|
6
|
-
import type {
|
7
|
-
|
6
|
+
import type {
|
7
|
+
Chain,
|
8
|
+
ChainConfig,
|
9
|
+
ChainContract,
|
10
|
+
ChainFormatters,
|
11
|
+
} from '../types/chain.js'
|
12
|
+
import type { Assign } from '../types/utils.js'
|
8
13
|
|
9
14
|
export type AssertCurrentChainParameters = {
|
10
15
|
chain?: Chain
|
@@ -21,17 +26,23 @@ export function assertCurrentChain({
|
|
21
26
|
}
|
22
27
|
|
23
28
|
export function defineChain<
|
24
|
-
|
25
|
-
|
29
|
+
chain extends Chain,
|
30
|
+
formatters extends ChainFormatters,
|
26
31
|
>(
|
27
|
-
chain:
|
28
|
-
config
|
29
|
-
) {
|
32
|
+
chain: chain,
|
33
|
+
config: ChainConfig<formatters> = {},
|
34
|
+
): Assign<chain, ChainConfig<formatters>> {
|
35
|
+
const {
|
36
|
+
fees = chain.fees,
|
37
|
+
formatters = chain.formatters,
|
38
|
+
serializers = chain.serializers,
|
39
|
+
} = config
|
30
40
|
return {
|
31
41
|
...chain,
|
32
|
-
|
33
|
-
|
34
|
-
|
42
|
+
fees,
|
43
|
+
formatters,
|
44
|
+
serializers,
|
45
|
+
} as unknown as Assign<chain, ChainConfig<formatters>>
|
35
46
|
}
|
36
47
|
|
37
48
|
export function getChainContractAddress({
|