viem 1.6.7 → 1.8.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/README.md +6 -0
- package/dist/cjs/actions/index.js +8 -2
- package/dist/cjs/actions/index.js.map +1 -1
- package/dist/cjs/actions/public/estimateFeesPerGas.js +60 -0
- package/dist/cjs/actions/public/estimateFeesPerGas.js.map +1 -0
- package/dist/cjs/actions/public/estimateGas.js +2 -2
- package/dist/cjs/actions/public/estimateGas.js.map +1 -1
- package/dist/cjs/actions/public/estimateMaxPriorityFeePerGas.js +44 -0
- package/dist/cjs/actions/public/estimateMaxPriorityFeePerGas.js.map +1 -0
- package/dist/cjs/actions/public/verifyHash.js.map +1 -1
- package/dist/cjs/actions/public/verifyMessage.js.map +1 -1
- package/dist/cjs/actions/public/verifyTypedData.js.map +1 -1
- package/dist/cjs/actions/public/watchContractEvent.js +10 -7
- package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
- package/dist/cjs/actions/wallet/deployContract.js.map +1 -1
- package/dist/cjs/actions/wallet/prepareTransactionRequest.js +70 -0
- package/dist/cjs/actions/wallet/prepareTransactionRequest.js.map +1 -0
- package/dist/cjs/actions/wallet/sendRawTransaction.js +11 -0
- package/dist/cjs/actions/wallet/sendRawTransaction.js.map +1 -0
- package/dist/cjs/actions/wallet/sendTransaction.js +6 -6
- package/dist/cjs/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/cjs/actions/wallet/signTransaction.js +47 -0
- package/dist/cjs/actions/wallet/signTransaction.js.map +1 -0
- package/dist/cjs/actions/wallet/writeContract.js.map +1 -1
- package/dist/cjs/chains/celo/formatters.js +4 -1
- package/dist/cjs/chains/celo/formatters.js.map +1 -1
- package/dist/cjs/clients/createTestClient.js.map +1 -1
- package/dist/cjs/clients/decorators/public.js +8 -0
- package/dist/cjs/clients/decorators/public.js.map +1 -1
- package/dist/cjs/clients/decorators/wallet.js +6 -0
- package/dist/cjs/clients/decorators/wallet.js.map +1 -1
- package/dist/cjs/errors/fee.js +42 -0
- package/dist/cjs/errors/fee.js.map +1 -0
- package/dist/cjs/errors/version.js +1 -1
- package/dist/cjs/index.js +9 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/public.js +5 -1
- package/dist/cjs/public.js.map +1 -1
- package/dist/cjs/utils/data/isBytesEqual.js +4 -3
- package/dist/cjs/utils/data/isBytesEqual.js.map +1 -1
- package/dist/cjs/utils/ens/encodedLabelToLabelhash.js +2 -2
- package/dist/cjs/utils/ens/encodedLabelToLabelhash.js.map +1 -1
- package/dist/cjs/utils/formatters/transactionRequest.js +9 -1
- package/dist/cjs/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/cjs/utils/index.js +3 -3
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/actions/index.js +3 -0
- package/dist/esm/actions/index.js.map +1 -1
- package/dist/esm/actions/public/estimateFeesPerGas.js +78 -0
- package/dist/esm/actions/public/estimateFeesPerGas.js.map +1 -0
- package/dist/esm/actions/public/estimateGas.js +2 -2
- package/dist/esm/actions/public/estimateGas.js.map +1 -1
- package/dist/esm/actions/public/estimateMaxPriorityFeePerGas.js +64 -0
- package/dist/esm/actions/public/estimateMaxPriorityFeePerGas.js.map +1 -0
- package/dist/esm/actions/public/verifyHash.js.map +1 -1
- package/dist/esm/actions/public/verifyMessage.js.map +1 -1
- package/dist/esm/actions/public/verifyTypedData.js.map +1 -1
- package/dist/esm/actions/public/watchContractEvent.js +5 -2
- package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/wallet/deployContract.js.map +1 -1
- package/dist/esm/actions/wallet/prepareTransactionRequest.js +109 -0
- package/dist/esm/actions/wallet/prepareTransactionRequest.js.map +1 -0
- package/dist/esm/actions/wallet/sendRawTransaction.js +31 -0
- package/dist/esm/actions/wallet/sendRawTransaction.js.map +1 -0
- package/dist/esm/actions/wallet/sendTransaction.js +6 -6
- package/dist/esm/actions/wallet/sendTransaction.js.map +1 -1
- package/dist/esm/actions/wallet/signTransaction.js +87 -0
- package/dist/esm/actions/wallet/signTransaction.js.map +1 -0
- package/dist/esm/actions/wallet/writeContract.js.map +1 -1
- package/dist/esm/chains/celo/formatters.js +4 -1
- package/dist/esm/chains/celo/formatters.js.map +1 -1
- package/dist/esm/clients/createTestClient.js.map +1 -1
- package/dist/esm/clients/decorators/public.js +8 -0
- package/dist/esm/clients/decorators/public.js.map +1 -1
- package/dist/esm/clients/decorators/wallet.js +6 -0
- package/dist/esm/clients/decorators/wallet.js.map +1 -1
- package/dist/esm/errors/fee.js +36 -0
- package/dist/esm/errors/fee.js.map +1 -0
- package/dist/esm/errors/version.js +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/public.js +2 -0
- package/dist/esm/public.js.map +1 -1
- package/dist/esm/utils/data/isBytesEqual.js +2 -1
- package/dist/esm/utils/data/isBytesEqual.js.map +1 -1
- package/dist/esm/utils/ens/encodedLabelToLabelhash.js +1 -1
- package/dist/esm/utils/ens/encodedLabelToLabelhash.js.map +1 -1
- package/dist/esm/utils/formatters/transactionRequest.js +8 -0
- package/dist/esm/utils/formatters/transactionRequest.js.map +1 -1
- package/dist/esm/utils/index.js +3 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/actions/index.d.ts +3 -0
- package/dist/types/actions/index.d.ts.map +1 -1
- package/dist/types/actions/public/estimateFeesPerGas.d.ts +48 -0
- package/dist/types/actions/public/estimateFeesPerGas.d.ts.map +1 -0
- package/dist/types/actions/public/estimateMaxPriorityFeePerGas.d.ts +37 -0
- package/dist/types/actions/public/estimateMaxPriorityFeePerGas.d.ts.map +1 -0
- package/dist/types/actions/public/verifyHash.d.ts +1 -1
- package/dist/types/actions/public/verifyHash.d.ts.map +1 -1
- package/dist/types/actions/public/verifyMessage.d.ts +2 -2
- package/dist/types/actions/public/verifyMessage.d.ts.map +1 -1
- package/dist/types/actions/public/verifyTypedData.d.ts +2 -2
- package/dist/types/actions/public/verifyTypedData.d.ts.map +1 -1
- package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/wallet/deployContract.d.ts +2 -1
- package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
- package/dist/types/actions/wallet/prepareTransactionRequest.d.ts +52 -0
- package/dist/types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -0
- package/dist/types/actions/wallet/sendRawTransaction.d.ts +38 -0
- package/dist/types/actions/wallet/sendRawTransaction.d.ts.map +1 -0
- package/dist/types/actions/wallet/sendTransaction.d.ts +2 -1
- package/dist/types/actions/wallet/sendTransaction.d.ts.map +1 -1
- package/dist/types/actions/wallet/signTransaction.d.ts +55 -0
- package/dist/types/actions/wallet/signTransaction.d.ts.map +1 -0
- package/dist/types/actions/wallet/writeContract.d.ts +2 -1
- package/dist/types/actions/wallet/writeContract.d.ts.map +1 -1
- package/dist/types/chains/celo/formatters.d.ts +303 -5
- package/dist/types/chains/celo/formatters.d.ts.map +1 -1
- package/dist/types/chains/celo/types.d.ts +43 -17
- package/dist/types/chains/celo/types.d.ts.map +1 -1
- package/dist/types/chains/index.d.ts +1084 -190
- package/dist/types/chains/index.d.ts.map +1 -1
- package/dist/types/chains/utils.d.ts +1 -1
- package/dist/types/chains/utils.d.ts.map +1 -1
- package/dist/types/clients/createTestClient.d.ts +1 -1
- package/dist/types/clients/createTestClient.d.ts.map +1 -1
- package/dist/types/clients/decorators/public.d.ts +112 -0
- package/dist/types/clients/decorators/public.d.ts.map +1 -1
- package/dist/types/clients/decorators/wallet.d.ts +111 -0
- package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
- package/dist/types/errors/fee.d.ts +16 -0
- package/dist/types/errors/fee.d.ts.map +1 -0
- package/dist/types/errors/version.d.ts +1 -1
- package/dist/types/index.d.ts +22 -16
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/public.d.ts +2 -0
- package/dist/types/public.d.ts.map +1 -1
- package/dist/types/types/chain.d.ts +64 -11
- package/dist/types/types/chain.d.ts.map +1 -1
- package/dist/types/types/eip1193.d.ts +13 -1
- package/dist/types/types/eip1193.d.ts.map +1 -1
- package/dist/types/types/fee.d.ts +1 -0
- package/dist/types/types/fee.d.ts.map +1 -1
- package/dist/types/utils/data/isBytesEqual.d.ts +1 -1
- package/dist/types/utils/data/isBytesEqual.d.ts.map +1 -1
- package/dist/types/utils/ens/encodeLabelhash.d.ts +1 -1
- package/dist/types/utils/ens/encodeLabelhash.d.ts.map +1 -1
- package/dist/types/utils/ens/encodedLabelToLabelhash.d.ts +1 -1
- package/dist/types/utils/ens/encodedLabelToLabelhash.d.ts.map +1 -1
- package/dist/types/utils/formatters/transactionRequest.d.ts +5 -0
- package/dist/types/utils/formatters/transactionRequest.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +3 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/actions/index.ts +15 -0
- package/src/actions/public/estimateFeesPerGas.ts +154 -0
- package/src/actions/public/estimateGas.ts +5 -5
- package/src/actions/public/estimateMaxPriorityFeePerGas.ts +98 -0
- package/src/actions/public/verifyHash.ts +1 -1
- package/src/actions/public/verifyMessage.ts +3 -2
- package/src/actions/public/verifyTypedData.ts +3 -2
- package/src/actions/public/watchContractEvent.ts +9 -6
- package/src/actions/wallet/deployContract.ts +2 -1
- package/src/actions/wallet/prepareTransactionRequest.ts +179 -0
- package/src/actions/wallet/sendRawTransaction.ts +48 -0
- package/src/actions/wallet/sendTransaction.ts +8 -7
- package/src/actions/wallet/signTransaction.ts +137 -0
- package/src/actions/wallet/writeContract.ts +2 -1
- package/src/chains/celo/formatters.ts +11 -12
- package/src/chains/celo/types.ts +86 -30
- package/src/chains/utils.ts +4 -4
- package/src/clients/createTestClient.ts +2 -1
- package/src/clients/decorators/public.ts +145 -0
- package/src/clients/decorators/wallet.ts +133 -0
- package/src/errors/fee.ts +27 -0
- package/src/errors/rpc.ts +1 -1
- package/src/errors/version.ts +1 -1
- package/src/index.ts +45 -25
- package/src/public.ts +10 -0
- package/src/types/chain.ts +80 -12
- package/src/types/eip1193.ts +13 -1
- package/src/types/fee.ts +2 -0
- package/src/utils/data/isBytesEqual.ts +4 -1
- package/src/utils/ens/encodeLabelhash.ts +1 -1
- package/src/utils/ens/encodedLabelToLabelhash.ts +2 -2
- package/src/utils/formatters/transactionRequest.ts +10 -0
- package/src/utils/index.ts +4 -1
- package/chains/dist/cjs/celo/formatters.js +0 -58
- package/chains/dist/cjs/celo/formatters.js.map +0 -1
- package/chains/dist/cjs/celo/parsers.js +0 -72
- package/chains/dist/cjs/celo/parsers.js.map +0 -1
- package/chains/dist/cjs/celo/serializers.js +0 -75
- package/chains/dist/cjs/celo/serializers.js.map +0 -1
- package/chains/dist/cjs/celo/types.js +0 -3
- package/chains/dist/cjs/celo/types.js.map +0 -1
- package/chains/dist/cjs/index.js +0 -135
- package/chains/dist/cjs/index.js.map +0 -1
- package/chains/dist/cjs/optimism/fees.js +0 -7
- package/chains/dist/cjs/optimism/fees.js.map +0 -1
- package/chains/dist/cjs/optimism/formatters.js +0 -52
- package/chains/dist/cjs/optimism/formatters.js.map +0 -1
- package/chains/dist/cjs/optimism/types.js +0 -3
- package/chains/dist/cjs/optimism/types.js.map +0 -1
- package/chains/dist/cjs/types.js +0 -3
- package/chains/dist/cjs/types.js.map +0 -1
- package/chains/dist/cjs/utils.js +0 -49
- package/chains/dist/cjs/utils.js.map +0 -1
- package/chains/dist/tsconfig.build.tsbuildinfo +0 -1
- package/chains/node_modules/.bin/tsc +0 -17
- package/chains/node_modules/.bin/tsserver +0 -17
- package/chains/tsconfig.tsbuildinfo +0 -1
- package/dist/cjs/utils/transaction/prepareRequest.js +0 -64
- package/dist/cjs/utils/transaction/prepareRequest.js.map +0 -1
- package/dist/esm/utils/transaction/prepareRequest.js +0 -64
- package/dist/esm/utils/transaction/prepareRequest.js.map +0 -1
- package/dist/types/utils/transaction/prepareRequest.d.ts +0 -20
- package/dist/types/utils/transaction/prepareRequest.d.ts.map +0 -1
- package/src/utils/transaction/prepareRequest.ts +0 -143
@@ -1,143 +0,0 @@
|
|
1
|
-
import type { Address } from 'abitype'
|
2
|
-
|
3
|
-
import type { Account } from '../../accounts/types.js'
|
4
|
-
import { parseAccount } from '../../accounts/utils/parseAccount.js'
|
5
|
-
import {
|
6
|
-
type EstimateGasParameters,
|
7
|
-
estimateGas,
|
8
|
-
} from '../../actions/public/estimateGas.js'
|
9
|
-
import { getBlock } from '../../actions/public/getBlock.js'
|
10
|
-
import { getGasPrice } from '../../actions/public/getGasPrice.js'
|
11
|
-
import { getTransactionCount } from '../../actions/public/getTransactionCount.js'
|
12
|
-
import type { SendTransactionParameters } from '../../actions/wallet/sendTransaction.js'
|
13
|
-
import type { Client } from '../../clients/createClient.js'
|
14
|
-
import type { Transport } from '../../clients/transports/createTransport.js'
|
15
|
-
import { AccountNotFoundError } from '../../errors/account.js'
|
16
|
-
import { BaseError } from '../../errors/base.js'
|
17
|
-
import type { GetAccountParameter } from '../../types/account.js'
|
18
|
-
import type { Chain, GetChain } from '../../types/chain.js'
|
19
|
-
import type { UnionOmit } from '../../types/utils.js'
|
20
|
-
import type { FormattedTransactionRequest } from '../index.js'
|
21
|
-
import { type AssertRequestParameters, assertRequest } from './assertRequest.js'
|
22
|
-
|
23
|
-
export type PrepareRequestParameters<
|
24
|
-
TChain extends Chain | undefined = Chain | undefined,
|
25
|
-
TAccount extends Account | undefined = Account | undefined,
|
26
|
-
TChainOverride extends Chain | undefined = Chain | undefined,
|
27
|
-
> = UnionOmit<
|
28
|
-
FormattedTransactionRequest<
|
29
|
-
TChainOverride extends Chain ? TChainOverride : TChain
|
30
|
-
>,
|
31
|
-
'from'
|
32
|
-
> &
|
33
|
-
GetAccountParameter<TAccount> &
|
34
|
-
GetChain<TChain, TChainOverride>
|
35
|
-
|
36
|
-
export type PrepareRequestReturnType<
|
37
|
-
TChain extends Chain | undefined = Chain | undefined,
|
38
|
-
TAccount extends Account | undefined = Account | undefined,
|
39
|
-
TChainOverride extends Chain | undefined = Chain | undefined,
|
40
|
-
TArgs extends PrepareRequestParameters<
|
41
|
-
TChain,
|
42
|
-
TAccount,
|
43
|
-
TChainOverride
|
44
|
-
> = PrepareRequestParameters<TChain, TAccount, TChainOverride>,
|
45
|
-
> = TArgs & {
|
46
|
-
from: Address
|
47
|
-
gas: SendTransactionParameters['gas']
|
48
|
-
gasPrice?: SendTransactionParameters['gasPrice']
|
49
|
-
maxFeePerGas?: SendTransactionParameters['maxFeePerGas']
|
50
|
-
maxPriorityFeePerGas?: SendTransactionParameters['maxPriorityFeePerGas']
|
51
|
-
nonce: SendTransactionParameters['nonce']
|
52
|
-
}
|
53
|
-
|
54
|
-
export async function prepareRequest<
|
55
|
-
TChain extends Chain | undefined,
|
56
|
-
TAccount extends Account | undefined,
|
57
|
-
TChainOverride extends Chain | undefined,
|
58
|
-
TArgs extends PrepareRequestParameters<TChain, TAccount, TChainOverride>,
|
59
|
-
>(
|
60
|
-
client: Client<Transport, TChain, TAccount>,
|
61
|
-
args: TArgs,
|
62
|
-
): Promise<PrepareRequestReturnType<TChain, TAccount, TChainOverride, TArgs>> {
|
63
|
-
const {
|
64
|
-
account: account_,
|
65
|
-
chain = client.chain,
|
66
|
-
gas,
|
67
|
-
gasPrice,
|
68
|
-
maxFeePerGas,
|
69
|
-
maxPriorityFeePerGas,
|
70
|
-
nonce,
|
71
|
-
} = args
|
72
|
-
if (!account_) throw new AccountNotFoundError()
|
73
|
-
const account = parseAccount(account_)
|
74
|
-
|
75
|
-
const block = await getBlock(client, { blockTag: 'latest' })
|
76
|
-
|
77
|
-
const request = { ...args, from: account.address }
|
78
|
-
|
79
|
-
if (typeof nonce === 'undefined')
|
80
|
-
request.nonce = await getTransactionCount(client, {
|
81
|
-
address: account.address,
|
82
|
-
blockTag: 'pending',
|
83
|
-
})
|
84
|
-
|
85
|
-
if (
|
86
|
-
typeof block.baseFeePerGas === 'bigint' &&
|
87
|
-
typeof gasPrice === 'undefined'
|
88
|
-
) {
|
89
|
-
let defaultPriorityFee = 1_500_000_000n // 1.5 gwei
|
90
|
-
if (typeof chain?.fees?.defaultPriorityFee !== 'undefined') {
|
91
|
-
defaultPriorityFee =
|
92
|
-
typeof chain.fees.defaultPriorityFee === 'bigint'
|
93
|
-
? chain.fees.defaultPriorityFee
|
94
|
-
: await chain.fees.defaultPriorityFee({
|
95
|
-
block,
|
96
|
-
request: request as PrepareRequestParameters,
|
97
|
-
})
|
98
|
-
}
|
99
|
-
|
100
|
-
// EIP-1559 fees
|
101
|
-
if (typeof maxFeePerGas === 'undefined') {
|
102
|
-
// Set a buffer of 1.2x on top of the base fee to account for fluctuations.
|
103
|
-
request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultPriorityFee
|
104
|
-
request.maxFeePerGas =
|
105
|
-
(block.baseFeePerGas * 120n) / 100n + request.maxPriorityFeePerGas
|
106
|
-
} else {
|
107
|
-
if (
|
108
|
-
typeof maxPriorityFeePerGas === 'undefined' &&
|
109
|
-
maxFeePerGas < defaultPriorityFee
|
110
|
-
)
|
111
|
-
throw new BaseError(
|
112
|
-
'`maxFeePerGas` cannot be less than the default `maxPriorityFeePerGas` (1.5 gwei).',
|
113
|
-
)
|
114
|
-
request.maxFeePerGas = maxFeePerGas
|
115
|
-
request.maxPriorityFeePerGas = maxPriorityFeePerGas ?? defaultPriorityFee
|
116
|
-
}
|
117
|
-
} else if (typeof gasPrice === 'undefined') {
|
118
|
-
// Legacy fees
|
119
|
-
if (
|
120
|
-
typeof maxFeePerGas !== 'undefined' ||
|
121
|
-
typeof maxPriorityFeePerGas !== 'undefined'
|
122
|
-
)
|
123
|
-
throw new BaseError('Chain does not support EIP-1559 fees.')
|
124
|
-
|
125
|
-
// Set a buffer of 1.2x on top of the base fee to account for fluctuations.
|
126
|
-
request.gasPrice = ((await getGasPrice(client)) * 120n) / 100n
|
127
|
-
}
|
128
|
-
|
129
|
-
if (typeof gas === 'undefined')
|
130
|
-
request.gas = await estimateGas(client, {
|
131
|
-
...request,
|
132
|
-
account: { address: account.address, type: 'json-rpc' },
|
133
|
-
} as EstimateGasParameters)
|
134
|
-
|
135
|
-
assertRequest(request as AssertRequestParameters)
|
136
|
-
|
137
|
-
return request as PrepareRequestReturnType<
|
138
|
-
TChain,
|
139
|
-
TAccount,
|
140
|
-
TChainOverride,
|
141
|
-
TArgs
|
142
|
-
>
|
143
|
-
}
|