@wagmi/core 2.0.0-beta.1 → 2.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/actions/codegen/createReadContract.js +31 -0
- package/dist/esm/actions/codegen/createReadContract.js.map +1 -0
- package/dist/esm/actions/codegen/createSimulateContract.js +33 -0
- package/dist/esm/actions/codegen/createSimulateContract.js.map +1 -0
- package/dist/esm/actions/codegen/createWatchContractEvent.js +31 -0
- package/dist/esm/actions/codegen/createWatchContractEvent.js.map +1 -0
- package/dist/esm/actions/codegen/createWriteContract.js +43 -0
- package/dist/esm/actions/codegen/createWriteContract.js.map +1 -0
- package/dist/esm/actions/disconnect.js +7 -11
- package/dist/esm/actions/disconnect.js.map +1 -1
- package/dist/esm/actions/estimateMaxPriorityFeePerGas.js +12 -0
- package/dist/esm/actions/estimateMaxPriorityFeePerGas.js.map +1 -0
- package/dist/esm/actions/getBlock.js.map +1 -1
- package/dist/esm/actions/getBlockTransactionCount.js +11 -0
- package/dist/esm/actions/getBlockTransactionCount.js.map +1 -0
- package/dist/esm/actions/getFeeHistory.js +11 -0
- package/dist/esm/actions/getFeeHistory.js.map +1 -0
- package/dist/esm/actions/getGasPrice.js +11 -0
- package/dist/esm/actions/getGasPrice.js.map +1 -0
- package/dist/esm/actions/getTransaction.js.map +1 -1
- package/dist/esm/actions/getTransactionCount.js +11 -0
- package/dist/esm/actions/getTransactionCount.js.map +1 -0
- package/dist/esm/actions/simulateContract.js +3 -0
- package/dist/esm/actions/simulateContract.js.map +1 -1
- package/dist/esm/actions/verifyMessage.js +11 -0
- package/dist/esm/actions/verifyMessage.js.map +1 -0
- package/dist/esm/actions/verifyTypedData.js +12 -0
- package/dist/esm/actions/verifyTypedData.js.map +1 -0
- package/dist/esm/actions/waitForTransactionReceipt.js.map +1 -1
- package/dist/esm/actions/watchContractEvent.js +3 -0
- package/dist/esm/actions/watchContractEvent.js.map +1 -1
- package/dist/esm/actions/writeContract.js +3 -0
- package/dist/esm/actions/writeContract.js.map +1 -1
- package/dist/esm/connectors/createConnector.js.map +1 -1
- package/dist/esm/connectors/injected.js +10 -4
- package/dist/esm/connectors/injected.js.map +1 -1
- package/dist/esm/connectors/mock.js +2 -0
- package/dist/esm/connectors/mock.js.map +1 -1
- package/dist/esm/createConfig.js +13 -2
- package/dist/esm/createConfig.js.map +1 -1
- package/dist/esm/exports/actions.js +8 -0
- package/dist/esm/exports/actions.js.map +1 -1
- package/dist/esm/exports/chains.js +1 -0
- package/dist/esm/exports/chains.js.map +1 -1
- package/dist/esm/exports/codegen.js +5 -0
- package/dist/esm/exports/codegen.js.map +1 -0
- package/dist/esm/exports/index.js +26 -6
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/exports/internal.js +5 -4
- package/dist/esm/exports/internal.js.map +1 -1
- package/dist/esm/exports/query.js +8 -1
- package/dist/esm/exports/query.js.map +1 -1
- package/dist/esm/query/estimateMaxPriorityFeePerGas.js +19 -0
- package/dist/esm/query/estimateMaxPriorityFeePerGas.js.map +1 -0
- package/dist/esm/query/getBlock.js +1 -1
- package/dist/esm/query/getBlock.js.map +1 -1
- package/dist/esm/query/getBlockTransactionCount.js +20 -0
- package/dist/esm/query/getBlockTransactionCount.js.map +1 -0
- package/dist/esm/query/getFeeHistory.js +27 -0
- package/dist/esm/query/getFeeHistory.js.map +1 -0
- package/dist/esm/query/getGasPrice.js +20 -0
- package/dist/esm/query/getGasPrice.js.map +1 -0
- package/dist/esm/query/getTransactionCount.js +23 -0
- package/dist/esm/query/getTransactionCount.js.map +1 -0
- package/dist/esm/query/infiniteReadContracts.js +2 -0
- package/dist/esm/query/infiniteReadContracts.js.map +1 -1
- package/dist/esm/query/readContract.js +4 -0
- package/dist/esm/query/readContract.js.map +1 -1
- package/dist/esm/query/verifyMessage.js +21 -0
- package/dist/esm/query/verifyMessage.js.map +1 -0
- package/dist/esm/query/verifyTypedData.js +38 -0
- package/dist/esm/query/verifyTypedData.js.map +1 -0
- package/dist/esm/query/waitForTransactionReceipt.js +1 -1
- package/dist/esm/query/waitForTransactionReceipt.js.map +1 -1
- package/dist/esm/transports/connector.js +37 -0
- package/dist/esm/transports/connector.js.map +1 -0
- package/dist/esm/transports/fallback.js +6 -0
- package/dist/esm/transports/fallback.js.map +1 -0
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/actions/codegen/createReadContract.d.ts +16 -0
- package/dist/types/actions/codegen/createReadContract.d.ts.map +1 -0
- package/dist/types/actions/codegen/createSimulateContract.d.ts +20 -0
- package/dist/types/actions/codegen/createSimulateContract.d.ts.map +1 -0
- package/dist/types/actions/codegen/createWatchContractEvent.d.ts +14 -0
- package/dist/types/actions/codegen/createWatchContractEvent.d.ts.map +1 -0
- package/dist/types/actions/codegen/createWriteContract.d.ts +22 -0
- package/dist/types/actions/codegen/createWriteContract.d.ts.map +1 -0
- package/dist/types/actions/disconnect.d.ts +2 -2
- package/dist/types/actions/disconnect.d.ts.map +1 -1
- package/dist/types/actions/estimateGas.d.ts +2 -2
- package/dist/types/actions/estimateGas.d.ts.map +1 -1
- package/dist/types/actions/estimateMaxPriorityFeePerGas.d.ts +11 -0
- package/dist/types/actions/estimateMaxPriorityFeePerGas.d.ts.map +1 -0
- package/dist/types/actions/getBlock.d.ts +2 -2
- package/dist/types/actions/getBlock.d.ts.map +1 -1
- package/dist/types/actions/getBlockTransactionCount.d.ts +10 -0
- package/dist/types/actions/getBlockTransactionCount.d.ts.map +1 -0
- package/dist/types/actions/getFeeHistory.d.ts +10 -0
- package/dist/types/actions/getFeeHistory.d.ts.map +1 -0
- package/dist/types/actions/getGasPrice.d.ts +10 -0
- package/dist/types/actions/getGasPrice.d.ts.map +1 -0
- package/dist/types/actions/getTransaction.d.ts +2 -2
- package/dist/types/actions/getTransaction.d.ts.map +1 -1
- package/dist/types/actions/getTransactionCount.d.ts +10 -0
- package/dist/types/actions/getTransactionCount.d.ts.map +1 -0
- package/dist/types/actions/simulateContract.d.ts +3 -3
- package/dist/types/actions/simulateContract.d.ts.map +1 -1
- package/dist/types/actions/verifyMessage.d.ts +10 -0
- package/dist/types/actions/verifyMessage.d.ts.map +1 -0
- package/dist/types/actions/verifyTypedData.d.ts +11 -0
- package/dist/types/actions/verifyTypedData.d.ts.map +1 -0
- package/dist/types/actions/waitForTransactionReceipt.d.ts +2 -2
- package/dist/types/actions/waitForTransactionReceipt.d.ts.map +1 -1
- package/dist/types/actions/watchBlocks.d.ts +2 -2
- package/dist/types/actions/watchBlocks.d.ts.map +1 -1
- package/dist/types/actions/watchContractEvent.d.ts +3 -3
- package/dist/types/actions/watchContractEvent.d.ts.map +1 -1
- package/dist/types/actions/writeContract.d.ts +3 -3
- package/dist/types/actions/writeContract.d.ts.map +1 -1
- package/dist/types/connectors/createConnector.d.ts +1 -0
- package/dist/types/connectors/createConnector.d.ts.map +1 -1
- package/dist/types/connectors/injected.d.ts +7 -0
- package/dist/types/connectors/injected.d.ts.map +1 -1
- package/dist/types/connectors/mock.d.ts +3 -0
- package/dist/types/connectors/mock.d.ts.map +1 -1
- package/dist/types/createConfig.d.ts +4 -1
- package/dist/types/createConfig.d.ts.map +1 -1
- package/dist/types/exports/actions.d.ts +7 -0
- package/dist/types/exports/actions.d.ts.map +1 -1
- package/dist/types/exports/chains.d.ts.map +1 -1
- package/dist/types/exports/codegen.d.ts +5 -0
- package/dist/types/exports/codegen.d.ts.map +1 -0
- package/dist/types/exports/index.d.ts +12 -1
- package/dist/types/exports/index.d.ts.map +1 -1
- package/dist/types/exports/internal.d.ts +2 -2
- package/dist/types/exports/internal.d.ts.map +1 -1
- package/dist/types/exports/query.d.ts +7 -1
- package/dist/types/exports/query.d.ts.map +1 -1
- package/dist/types/query/estimateFeesPerGas.d.ts +1 -1
- package/dist/types/query/estimateFeesPerGas.d.ts.map +1 -1
- package/dist/types/query/estimateGas.d.ts +1 -1
- package/dist/types/query/estimateGas.d.ts.map +1 -1
- package/dist/types/query/estimateMaxPriorityFeePerGas.d.ts +27 -0
- package/dist/types/query/estimateMaxPriorityFeePerGas.d.ts.map +1 -0
- package/dist/types/query/getBalance.d.ts +1 -1
- package/dist/types/query/getBalance.d.ts.map +1 -1
- package/dist/types/query/getBlock.d.ts +2 -2
- package/dist/types/query/getBlock.d.ts.map +1 -1
- package/dist/types/query/getBlockNumber.d.ts +1 -4
- package/dist/types/query/getBlockNumber.d.ts.map +1 -1
- package/dist/types/query/getBlockTransactionCount.d.ts +18 -0
- package/dist/types/query/getBlockTransactionCount.d.ts.map +1 -0
- package/dist/types/query/getConnectorClient.d.ts +5 -1
- package/dist/types/query/getConnectorClient.d.ts.map +1 -1
- package/dist/types/query/getEnsAddress.d.ts +1 -1
- package/dist/types/query/getEnsAddress.d.ts.map +1 -1
- package/dist/types/query/getEnsAvatar.d.ts +1 -1
- package/dist/types/query/getEnsAvatar.d.ts.map +1 -1
- package/dist/types/query/getEnsName.d.ts +1 -1
- package/dist/types/query/getEnsName.d.ts.map +1 -1
- package/dist/types/query/getEnsResolver.d.ts +1 -1
- package/dist/types/query/getEnsResolver.d.ts.map +1 -1
- package/dist/types/query/getFeeHistory.d.ts +39 -0
- package/dist/types/query/getFeeHistory.d.ts.map +1 -0
- package/dist/types/query/getGasPrice.d.ts +27 -0
- package/dist/types/query/getGasPrice.d.ts.map +1 -0
- package/dist/types/query/getToken.d.ts +1 -1
- package/dist/types/query/getToken.d.ts.map +1 -1
- package/dist/types/query/getTransaction.d.ts +2 -2
- package/dist/types/query/getTransaction.d.ts.map +1 -1
- package/dist/types/query/getTransactionCount.d.ts +36 -0
- package/dist/types/query/getTransactionCount.d.ts.map +1 -0
- package/dist/types/query/getWalletClient.d.ts +13 -13
- package/dist/types/query/getWalletClient.d.ts.map +1 -1
- package/dist/types/query/infiniteReadContracts.d.ts +2 -3
- package/dist/types/query/infiniteReadContracts.d.ts.map +1 -1
- package/dist/types/query/readContract.d.ts +2 -2
- package/dist/types/query/readContract.d.ts.map +1 -1
- package/dist/types/query/readContracts.d.ts +1 -1
- package/dist/types/query/readContracts.d.ts.map +1 -1
- package/dist/types/query/signTypedData.d.ts +8 -8
- package/dist/types/query/simulateContract.d.ts +1 -1
- package/dist/types/query/simulateContract.d.ts.map +1 -1
- package/dist/types/query/types.d.ts +0 -3
- package/dist/types/query/types.d.ts.map +1 -1
- package/dist/types/query/verifyMessage.d.ts +42 -0
- package/dist/types/query/verifyMessage.d.ts.map +1 -0
- package/dist/types/query/verifyTypedData.d.ts +19 -0
- package/dist/types/query/verifyTypedData.d.ts.map +1 -0
- package/dist/types/query/waitForTransactionReceipt.d.ts +2 -2
- package/dist/types/query/waitForTransactionReceipt.d.ts.map +1 -1
- package/dist/types/transports/connector.d.ts +15 -0
- package/dist/types/transports/connector.d.ts.map +1 -0
- package/dist/types/transports/fallback.d.ts +4 -0
- package/dist/types/transports/fallback.d.ts.map +1 -0
- package/dist/types/types/properties.d.ts +3 -0
- package/dist/types/types/properties.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +17 -20
- package/src/actions/codegen/createReadContract.ts +100 -0
- package/src/actions/codegen/createSimulateContract.ts +122 -0
- package/src/actions/codegen/createWatchContractEvent.ts +87 -0
- package/src/actions/codegen/createWriteContract.ts +142 -0
- package/src/actions/disconnect.ts +11 -17
- package/src/actions/estimateGas.ts +1 -1
- package/src/actions/estimateMaxPriorityFeePerGas.ts +41 -0
- package/src/actions/getBlock.ts +2 -2
- package/src/actions/getBlockTransactionCount.ts +36 -0
- package/src/actions/getFeeHistory.ts +32 -0
- package/src/actions/getGasPrice.ts +31 -0
- package/src/actions/getTransaction.ts +4 -2
- package/src/actions/getTransactionCount.ts +31 -0
- package/src/actions/simulateContract.ts +5 -5
- package/src/actions/verifyMessage.ts +28 -0
- package/src/actions/verifyTypedData.ts +41 -0
- package/src/actions/waitForTransactionReceipt.ts +4 -2
- package/src/actions/watchBlocks.ts +2 -2
- package/src/actions/watchContractEvent.ts +6 -5
- package/src/actions/writeContract.ts +6 -7
- package/src/connectors/createConnector.ts +1 -0
- package/src/connectors/injected.ts +13 -3
- package/src/connectors/mock.ts +2 -0
- package/src/createConfig.ts +23 -4
- package/src/exports/actions.ts +48 -0
- package/src/exports/chains.ts +1 -0
- package/src/exports/codegen.ts +7 -0
- package/src/exports/index.ts +80 -13
- package/src/exports/internal.ts +11 -13
- package/src/exports/query.ts +64 -1
- package/src/query/estimateFeesPerGas.ts +1 -1
- package/src/query/estimateGas.ts +1 -1
- package/src/query/estimateMaxPriorityFeePerGas.ts +51 -0
- package/src/query/getBalance.ts +1 -1
- package/src/query/getBlock.ts +2 -2
- package/src/query/getBlockNumber.ts +1 -1
- package/src/query/getBlockTransactionCount.ts +62 -0
- package/src/query/getConnectorClient.ts +1 -1
- package/src/query/getEnsAddress.ts +1 -1
- package/src/query/getEnsAvatar.ts +1 -1
- package/src/query/getEnsName.ts +1 -1
- package/src/query/getEnsResolver.ts +1 -1
- package/src/query/getFeeHistory.ts +69 -0
- package/src/query/getGasPrice.ts +54 -0
- package/src/query/getToken.ts +1 -1
- package/src/query/getTransaction.ts +1 -1
- package/src/query/getTransactionCount.ts +55 -0
- package/src/query/getWalletClient.ts +1 -1
- package/src/query/infiniteReadContracts.ts +6 -3
- package/src/query/readContract.ts +4 -2
- package/src/query/readContracts.ts +1 -1
- package/src/query/simulateContract.ts +1 -1
- package/src/query/types.ts +0 -2
- package/src/query/verifyMessage.ts +54 -0
- package/src/query/verifyTypedData.ts +81 -0
- package/src/query/waitForTransactionReceipt.ts +1 -1
- package/src/transports/connector.ts +87 -0
- package/src/transports/fallback.ts +10 -0
- package/src/types/properties.ts +2 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type QueryOptions } from '@tanstack/query-core'
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
type GetGasPriceErrorType,
|
|
5
|
+
type GetGasPriceParameters,
|
|
6
|
+
type GetGasPriceReturnType,
|
|
7
|
+
getGasPrice,
|
|
8
|
+
} from '../actions/getGasPrice.js'
|
|
9
|
+
import { type Config } from '../createConfig.js'
|
|
10
|
+
import { type ScopeKeyParameter } from '../types/properties.js'
|
|
11
|
+
import { type Evaluate, type ExactPartial } from '../types/utils.js'
|
|
12
|
+
import { filterQueryOptions } from './utils.js'
|
|
13
|
+
|
|
14
|
+
export type GetGasPriceOptions<
|
|
15
|
+
config extends Config,
|
|
16
|
+
chainId extends config['chains'][number]['id'],
|
|
17
|
+
> = Evaluate<
|
|
18
|
+
ExactPartial<GetGasPriceParameters<config, chainId>> & ScopeKeyParameter
|
|
19
|
+
>
|
|
20
|
+
|
|
21
|
+
export function getGasPriceQueryOptions<
|
|
22
|
+
config extends Config,
|
|
23
|
+
chainId extends config['chains'][number]['id'],
|
|
24
|
+
>(config: config, options: GetGasPriceOptions<config, chainId> = {}) {
|
|
25
|
+
return {
|
|
26
|
+
async queryFn({ queryKey }) {
|
|
27
|
+
const { scopeKey: _, ...parameters } = queryKey[1]
|
|
28
|
+
const gasPrice = await getGasPrice(config, parameters)
|
|
29
|
+
return gasPrice ?? null
|
|
30
|
+
},
|
|
31
|
+
queryKey: getGasPriceQueryKey(options),
|
|
32
|
+
} as const satisfies QueryOptions<
|
|
33
|
+
GetGasPriceQueryFnData,
|
|
34
|
+
GetGasPriceErrorType,
|
|
35
|
+
GetGasPriceData,
|
|
36
|
+
GetGasPriceQueryKey<config, chainId>
|
|
37
|
+
>
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type GetGasPriceQueryFnData = GetGasPriceReturnType
|
|
41
|
+
|
|
42
|
+
export type GetGasPriceData = GetGasPriceQueryFnData
|
|
43
|
+
|
|
44
|
+
export function getGasPriceQueryKey<
|
|
45
|
+
config extends Config,
|
|
46
|
+
chainId extends config['chains'][number]['id'],
|
|
47
|
+
>(options: GetGasPriceOptions<config, chainId> = {}) {
|
|
48
|
+
return ['gasPrice', filterQueryOptions(options)] as const
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export type GetGasPriceQueryKey<
|
|
52
|
+
config extends Config,
|
|
53
|
+
chainId extends config['chains'][number]['id'],
|
|
54
|
+
> = ReturnType<typeof getGasPriceQueryKey<config, chainId>>
|
package/src/query/getToken.ts
CHANGED
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
getToken,
|
|
8
8
|
} from '../actions/getToken.js'
|
|
9
9
|
import { type Config } from '../createConfig.js'
|
|
10
|
+
import type { ScopeKeyParameter } from '../types/properties.js'
|
|
10
11
|
import type { Evaluate, ExactPartial } from '../types/utils.js'
|
|
11
|
-
import type { ScopeKeyParameter } from './types.js'
|
|
12
12
|
import { filterQueryOptions } from './utils.js'
|
|
13
13
|
|
|
14
14
|
export type GetTokenOptions<config extends Config> = Evaluate<
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
getTransaction,
|
|
8
8
|
} from '../actions/getTransaction.js'
|
|
9
9
|
import { type Config } from '../createConfig.js'
|
|
10
|
+
import type { ScopeKeyParameter } from '../types/properties.js'
|
|
10
11
|
import type { Evaluate, ExactPartial } from '../types/utils.js'
|
|
11
|
-
import type { ScopeKeyParameter } from './types.js'
|
|
12
12
|
import { filterQueryOptions } from './utils.js'
|
|
13
13
|
|
|
14
14
|
export type GetTransactionOptions<
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { type QueryOptions } from '@tanstack/query-core'
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
type GetTransactionCountErrorType,
|
|
5
|
+
type GetTransactionCountParameters,
|
|
6
|
+
type GetTransactionCountReturnType,
|
|
7
|
+
getTransactionCount,
|
|
8
|
+
} from '../actions/getTransactionCount.js'
|
|
9
|
+
import { type Config } from '../createConfig.js'
|
|
10
|
+
import type { ScopeKeyParameter } from '../types/properties.js'
|
|
11
|
+
import type { Evaluate, PartialBy } from '../types/utils.js'
|
|
12
|
+
import { filterQueryOptions } from './utils.js'
|
|
13
|
+
|
|
14
|
+
export type GetTransactionCountOptions<config extends Config> = Evaluate<
|
|
15
|
+
PartialBy<GetTransactionCountParameters<config>, 'address'> &
|
|
16
|
+
ScopeKeyParameter
|
|
17
|
+
>
|
|
18
|
+
|
|
19
|
+
export function getTransactionCountQueryOptions<config extends Config>(
|
|
20
|
+
config: config,
|
|
21
|
+
options: GetTransactionCountOptions<config> = {},
|
|
22
|
+
) {
|
|
23
|
+
return {
|
|
24
|
+
async queryFn({ queryKey }) {
|
|
25
|
+
const { address, scopeKey: _, ...parameters } = queryKey[1]
|
|
26
|
+
if (!address) throw new Error('address is required')
|
|
27
|
+
const transactionCount = await getTransactionCount(config, {
|
|
28
|
+
...(parameters as GetTransactionCountParameters),
|
|
29
|
+
address,
|
|
30
|
+
})
|
|
31
|
+
return transactionCount ?? null
|
|
32
|
+
},
|
|
33
|
+
queryKey: getTransactionCountQueryKey(options),
|
|
34
|
+
} as const satisfies QueryOptions<
|
|
35
|
+
GetTransactionCountQueryFnData,
|
|
36
|
+
GetTransactionCountErrorType,
|
|
37
|
+
GetTransactionCountData,
|
|
38
|
+
GetTransactionCountQueryKey<config>
|
|
39
|
+
>
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type GetTransactionCountQueryFnData =
|
|
43
|
+
Evaluate<GetTransactionCountReturnType>
|
|
44
|
+
|
|
45
|
+
export type GetTransactionCountData = GetTransactionCountQueryFnData
|
|
46
|
+
|
|
47
|
+
export function getTransactionCountQueryKey<config extends Config>(
|
|
48
|
+
options: GetTransactionCountOptions<config> = {},
|
|
49
|
+
) {
|
|
50
|
+
return ['transactionCount', filterQueryOptions(options)] as const
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export type GetTransactionCountQueryKey<config extends Config> = ReturnType<
|
|
54
|
+
typeof getTransactionCountQueryKey<config>
|
|
55
|
+
>
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
getWalletClient,
|
|
8
8
|
} from '../actions/getWalletClient.js'
|
|
9
9
|
import { type Config } from '../createConfig.js'
|
|
10
|
+
import type { ScopeKeyParameter } from '../types/properties.js'
|
|
10
11
|
import type { Evaluate, ExactPartial } from '../types/utils.js'
|
|
11
|
-
import type { ScopeKeyParameter } from './types.js'
|
|
12
12
|
import { filterQueryOptions } from './utils.js'
|
|
13
13
|
|
|
14
14
|
export type GetWalletClientOptions<
|
|
@@ -6,9 +6,12 @@ import {
|
|
|
6
6
|
readContracts,
|
|
7
7
|
} from '../actions/readContracts.js'
|
|
8
8
|
import { type Config } from '../createConfig.js'
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
import {
|
|
10
|
+
type ChainIdParameter,
|
|
11
|
+
type ScopeKeyParameter,
|
|
12
|
+
} from '../types/properties.js'
|
|
13
|
+
import { type Omit } from '../types/utils.js'
|
|
14
|
+
import { type InfiniteQueryOptions } from './types.js'
|
|
12
15
|
import { filterQueryOptions } from './utils.js'
|
|
13
16
|
|
|
14
17
|
export type InfiniteReadContractsOptions<
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
readContract,
|
|
13
13
|
} from '../actions/readContract.js'
|
|
14
14
|
import { type Config } from '../createConfig.js'
|
|
15
|
-
import type
|
|
16
|
-
import type
|
|
15
|
+
import { type ScopeKeyParameter } from '../types/properties.js'
|
|
16
|
+
import { type UnionPartial } from '../types/utils.js'
|
|
17
17
|
import { filterQueryOptions } from './utils.js'
|
|
18
18
|
|
|
19
19
|
export type ReadContractOptions<
|
|
@@ -34,6 +34,8 @@ export function readContractQueryOptions<
|
|
|
34
34
|
options: ReadContractOptions<abi, functionName, args, config> = {} as any,
|
|
35
35
|
) {
|
|
36
36
|
return {
|
|
37
|
+
// TODO: Support `signal` once Viem actions allow passthrough
|
|
38
|
+
// https://tkdodo.eu/blog/why-you-want-react-query#bonus-cancellation
|
|
37
39
|
async queryFn({ queryKey }) {
|
|
38
40
|
const abi = options.abi as Abi
|
|
39
41
|
if (!abi) throw new Error('abi is required')
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
} from '../actions/readContracts.js'
|
|
12
12
|
import { type Config } from '../createConfig.js'
|
|
13
13
|
import { type ChainIdParameter } from '../types/properties.js'
|
|
14
|
+
import type { ScopeKeyParameter } from '../types/properties.js'
|
|
14
15
|
import type { ExactPartial } from '../types/utils.js'
|
|
15
|
-
import type { ScopeKeyParameter } from './types.js'
|
|
16
16
|
import { filterQueryOptions } from './utils.js'
|
|
17
17
|
|
|
18
18
|
export type ReadContractsOptions<
|
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
simulateContract,
|
|
9
9
|
} from '../actions/simulateContract.js'
|
|
10
10
|
import { type Config } from '../createConfig.js'
|
|
11
|
+
import type { ScopeKeyParameter } from '../types/properties.js'
|
|
11
12
|
import type { UnionPartial } from '../types/utils.js'
|
|
12
|
-
import type { ScopeKeyParameter } from './types.js'
|
|
13
13
|
import { filterQueryOptions } from './utils.js'
|
|
14
14
|
|
|
15
15
|
export type SimulateContractOptions<
|
package/src/query/types.ts
CHANGED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type QueryOptions } from '@tanstack/query-core'
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
type VerifyMessageErrorType,
|
|
5
|
+
type VerifyMessageParameters,
|
|
6
|
+
type VerifyMessageReturnType,
|
|
7
|
+
verifyMessage,
|
|
8
|
+
} from '../actions/verifyMessage.js'
|
|
9
|
+
import { type Config } from '../createConfig.js'
|
|
10
|
+
import type { ScopeKeyParameter } from '../types/properties.js'
|
|
11
|
+
import type { Evaluate, ExactPartial } from '../types/utils.js'
|
|
12
|
+
import { filterQueryOptions } from './utils.js'
|
|
13
|
+
|
|
14
|
+
export type VerifyMessageOptions<config extends Config> = Evaluate<
|
|
15
|
+
ExactPartial<VerifyMessageParameters<config>> & ScopeKeyParameter
|
|
16
|
+
>
|
|
17
|
+
|
|
18
|
+
export function verifyMessageQueryOptions<config extends Config>(
|
|
19
|
+
config: config,
|
|
20
|
+
options: VerifyMessageOptions<config> = {},
|
|
21
|
+
) {
|
|
22
|
+
return {
|
|
23
|
+
async queryFn({ queryKey }) {
|
|
24
|
+
const { address, message, signature } = queryKey[1]
|
|
25
|
+
if (!address || !message || !signature)
|
|
26
|
+
throw new Error('address, message, and signature are required')
|
|
27
|
+
|
|
28
|
+
const { scopeKey: _, ...parameters } = queryKey[1]
|
|
29
|
+
|
|
30
|
+
const verified = await verifyMessage(
|
|
31
|
+
config,
|
|
32
|
+
parameters as VerifyMessageParameters,
|
|
33
|
+
)
|
|
34
|
+
return verified ?? null
|
|
35
|
+
},
|
|
36
|
+
queryKey: verifyMessageQueryKey(options),
|
|
37
|
+
} as const satisfies QueryOptions<
|
|
38
|
+
VerifyMessageQueryFnData,
|
|
39
|
+
VerifyMessageErrorType,
|
|
40
|
+
VerifyMessageData,
|
|
41
|
+
VerifyMessageQueryKey
|
|
42
|
+
>
|
|
43
|
+
}
|
|
44
|
+
export type VerifyMessageQueryFnData = VerifyMessageReturnType
|
|
45
|
+
|
|
46
|
+
export type VerifyMessageData = VerifyMessageQueryFnData
|
|
47
|
+
|
|
48
|
+
export function verifyMessageQueryKey<config extends Config>(
|
|
49
|
+
options: VerifyMessageOptions<config>,
|
|
50
|
+
) {
|
|
51
|
+
return ['verifyMessage', filterQueryOptions(options)] as const
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export type VerifyMessageQueryKey = ReturnType<typeof verifyMessageQueryKey>
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type QueryOptions } from '@tanstack/query-core'
|
|
2
|
+
import { type TypedData } from 'viem'
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
type VerifyTypedDataErrorType,
|
|
6
|
+
type VerifyTypedDataParameters,
|
|
7
|
+
type VerifyTypedDataReturnType,
|
|
8
|
+
verifyTypedData,
|
|
9
|
+
} from '../actions/verifyTypedData.js'
|
|
10
|
+
import { type Config } from '../createConfig.js'
|
|
11
|
+
import { type ScopeKeyParameter } from '../types/properties.js'
|
|
12
|
+
import { type ExactPartial } from '../types/utils.js'
|
|
13
|
+
import { filterQueryOptions } from './utils.js'
|
|
14
|
+
|
|
15
|
+
export type VerifyTypedDataOptions<
|
|
16
|
+
typedData extends TypedData | Record<string, unknown>,
|
|
17
|
+
primaryType extends keyof typedData | 'EIP712Domain',
|
|
18
|
+
config extends Config,
|
|
19
|
+
> = ExactPartial<VerifyTypedDataParameters<typedData, primaryType, config>> &
|
|
20
|
+
ScopeKeyParameter
|
|
21
|
+
|
|
22
|
+
export function verifyTypedDataQueryOptions<
|
|
23
|
+
config extends Config,
|
|
24
|
+
const typedData extends TypedData | Record<string, unknown>,
|
|
25
|
+
primaryType extends keyof typedData | 'EIP712Domain',
|
|
26
|
+
>(
|
|
27
|
+
config: config,
|
|
28
|
+
options: VerifyTypedDataOptions<typedData, primaryType, config> = {} as any,
|
|
29
|
+
) {
|
|
30
|
+
return {
|
|
31
|
+
async queryFn({ queryKey }) {
|
|
32
|
+
const {
|
|
33
|
+
address,
|
|
34
|
+
message,
|
|
35
|
+
primaryType,
|
|
36
|
+
signature,
|
|
37
|
+
types,
|
|
38
|
+
scopeKey: _,
|
|
39
|
+
...parameters
|
|
40
|
+
} = queryKey[1]
|
|
41
|
+
if (!address) throw new Error('address is required')
|
|
42
|
+
if (!message) throw new Error('message is required')
|
|
43
|
+
if (!primaryType) throw new Error('primaryType is required')
|
|
44
|
+
if (!signature) throw new Error('signature is required')
|
|
45
|
+
if (!types) throw new Error('types is required')
|
|
46
|
+
|
|
47
|
+
const verified = await verifyTypedData(config, {
|
|
48
|
+
address,
|
|
49
|
+
message,
|
|
50
|
+
primaryType,
|
|
51
|
+
signature,
|
|
52
|
+
types,
|
|
53
|
+
...parameters,
|
|
54
|
+
})
|
|
55
|
+
return verified ?? null
|
|
56
|
+
},
|
|
57
|
+
queryKey: verifyTypedDataQueryKey(options),
|
|
58
|
+
} as const satisfies QueryOptions<
|
|
59
|
+
VerifyTypedDataQueryFnData,
|
|
60
|
+
VerifyTypedDataErrorType,
|
|
61
|
+
VerifyTypedDataData,
|
|
62
|
+
VerifyTypedDataQueryKey<typedData, primaryType, config>
|
|
63
|
+
>
|
|
64
|
+
}
|
|
65
|
+
export type VerifyTypedDataQueryFnData = VerifyTypedDataReturnType
|
|
66
|
+
|
|
67
|
+
export type VerifyTypedDataData = VerifyTypedDataQueryFnData
|
|
68
|
+
|
|
69
|
+
export function verifyTypedDataQueryKey<
|
|
70
|
+
config extends Config,
|
|
71
|
+
const typedData extends TypedData | Record<string, unknown>,
|
|
72
|
+
primaryType extends keyof typedData | 'EIP712Domain',
|
|
73
|
+
>(options: VerifyTypedDataOptions<typedData, primaryType, config>) {
|
|
74
|
+
return ['verifyTypedData', filterQueryOptions(options)] as const
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export type VerifyTypedDataQueryKey<
|
|
78
|
+
typedData extends TypedData | Record<string, unknown>,
|
|
79
|
+
primaryType extends keyof typedData | 'EIP712Domain',
|
|
80
|
+
config extends Config,
|
|
81
|
+
> = ReturnType<typeof verifyTypedDataQueryKey<config, typedData, primaryType>>
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
waitForTransactionReceipt,
|
|
8
8
|
} from '../actions/waitForTransactionReceipt.js'
|
|
9
9
|
import { type Config } from '../createConfig.js'
|
|
10
|
+
import { type ScopeKeyParameter } from '../types/properties.js'
|
|
10
11
|
import { type Evaluate, type ExactPartial } from '../types/utils.js'
|
|
11
|
-
import { type ScopeKeyParameter } from './types.js'
|
|
12
12
|
import { filterQueryOptions } from './utils.js'
|
|
13
13
|
|
|
14
14
|
export type WaitForTransactionReceiptOptions<
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ChainDisconnectedError,
|
|
3
|
+
type EIP1193Parameters,
|
|
4
|
+
type EIP1193Provider,
|
|
5
|
+
type EIP1193RequestFn,
|
|
6
|
+
ProviderDisconnectedError,
|
|
7
|
+
type TransportConfig,
|
|
8
|
+
type WalletRpcSchema,
|
|
9
|
+
createTransport,
|
|
10
|
+
hexToNumber,
|
|
11
|
+
withRetry,
|
|
12
|
+
withTimeout,
|
|
13
|
+
} from 'viem'
|
|
14
|
+
|
|
15
|
+
import type { Connector, Transport } from '../createConfig.js'
|
|
16
|
+
|
|
17
|
+
export type ConnectorTransportConfig = {
|
|
18
|
+
/** The key of the transport. */
|
|
19
|
+
key?: TransportConfig['key'] | undefined
|
|
20
|
+
/** The name of the transport. */
|
|
21
|
+
name?: TransportConfig['name'] | undefined
|
|
22
|
+
/** The max number of times to retry. */
|
|
23
|
+
retryCount?: TransportConfig['retryCount'] | undefined
|
|
24
|
+
/** The base delay (in ms) between retries. */
|
|
25
|
+
retryDelay?: TransportConfig['retryDelay'] | undefined
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export type ConnectorTransport = Transport
|
|
29
|
+
|
|
30
|
+
export function unstable_connector(
|
|
31
|
+
connector: Pick<Connector, 'type'>,
|
|
32
|
+
config: ConnectorTransportConfig = {},
|
|
33
|
+
): Transport {
|
|
34
|
+
const { type } = connector
|
|
35
|
+
const { key = 'connector', name = 'Connector', retryDelay } = config
|
|
36
|
+
|
|
37
|
+
return (parameters) => {
|
|
38
|
+
const { chain, connectors } = parameters
|
|
39
|
+
const retryCount = config.retryCount ?? parameters.retryCount
|
|
40
|
+
|
|
41
|
+
const request: EIP1193RequestFn = async ({ method, params }) => {
|
|
42
|
+
const connector = connectors?.getState().find((c) => c.type === type)
|
|
43
|
+
if (!connector)
|
|
44
|
+
throw new ProviderDisconnectedError(
|
|
45
|
+
new Error(
|
|
46
|
+
`Could not find connector of type "${type}" in \`connectors\` passed to \`createConfig\`.`,
|
|
47
|
+
),
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
const provider = (await connector.getProvider({
|
|
51
|
+
chainId: chain?.id,
|
|
52
|
+
})) as EIP1193Provider | undefined
|
|
53
|
+
if (!provider)
|
|
54
|
+
throw new ProviderDisconnectedError(
|
|
55
|
+
new Error('Provider is disconnected.'),
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
// We are applying a retry & timeout strategy here as some injected wallets (ie. MetaMask) fail to
|
|
59
|
+
// immediately resolve a JSON-RPC request on page load.
|
|
60
|
+
const chainId = hexToNumber(
|
|
61
|
+
await withRetry(() =>
|
|
62
|
+
withTimeout(() => provider.request({ method: 'eth_chainId' }), {
|
|
63
|
+
timeout: 100,
|
|
64
|
+
}),
|
|
65
|
+
),
|
|
66
|
+
)
|
|
67
|
+
if (chain && chainId !== chain.id)
|
|
68
|
+
throw new ChainDisconnectedError(
|
|
69
|
+
new Error(
|
|
70
|
+
`The current chain of the connector (id: ${chainId}) does not match the target chain for the request (id: ${chain.id} – ${chain.name}).`,
|
|
71
|
+
),
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
const body = { method, params } as EIP1193Parameters<WalletRpcSchema>
|
|
75
|
+
return provider.request(body)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return createTransport({
|
|
79
|
+
key,
|
|
80
|
+
name,
|
|
81
|
+
request,
|
|
82
|
+
retryCount,
|
|
83
|
+
retryDelay,
|
|
84
|
+
type: 'connector',
|
|
85
|
+
})
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { fallback as viem_fallback } from 'viem'
|
|
2
|
+
|
|
3
|
+
import { type Transport } from '../createConfig.js'
|
|
4
|
+
|
|
5
|
+
export function fallback(
|
|
6
|
+
transports: Transport[],
|
|
7
|
+
config?: Parameters<typeof viem_fallback>[1],
|
|
8
|
+
) {
|
|
9
|
+
return viem_fallback(transports, config)
|
|
10
|
+
}
|
package/src/types/properties.ts
CHANGED
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = '2.0.0-beta.
|
|
1
|
+
export const version = '2.0.0-beta.10'
|