@wagmi/solid 0.0.12 → 0.0.14

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.
Files changed (45) hide show
  1. package/dist/esm/exports/index.js +7 -0
  2. package/dist/esm/exports/index.js.map +1 -1
  3. package/dist/esm/primitives/useInfiniteReadContracts.js +27 -0
  4. package/dist/esm/primitives/useInfiniteReadContracts.js.map +1 -0
  5. package/dist/esm/primitives/useReadContract.js +16 -0
  6. package/dist/esm/primitives/useReadContract.js.map +1 -0
  7. package/dist/esm/primitives/useReadContracts.js +22 -0
  8. package/dist/esm/primitives/useReadContracts.js.map +1 -0
  9. package/dist/esm/primitives/useSimulateContract.js +20 -0
  10. package/dist/esm/primitives/useSimulateContract.js.map +1 -0
  11. package/dist/esm/primitives/useWatchContractEvent.js +23 -0
  12. package/dist/esm/primitives/useWatchContractEvent.js.map +1 -0
  13. package/dist/esm/primitives/useWriteContract.js +18 -0
  14. package/dist/esm/primitives/useWriteContract.js.map +1 -0
  15. package/dist/esm/primitives/useWriteContractSync.js +18 -0
  16. package/dist/esm/primitives/useWriteContractSync.js.map +1 -0
  17. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  18. package/dist/esm/version.js +1 -1
  19. package/dist/types/exports/index.d.ts +7 -0
  20. package/dist/types/exports/index.d.ts.map +1 -1
  21. package/dist/types/primitives/useInfiniteReadContracts.d.ts +19 -0
  22. package/dist/types/primitives/useInfiniteReadContracts.d.ts.map +1 -0
  23. package/dist/types/primitives/useReadContract.d.ts +14 -0
  24. package/dist/types/primitives/useReadContract.d.ts.map +1 -0
  25. package/dist/types/primitives/useReadContracts.d.ts +14 -0
  26. package/dist/types/primitives/useReadContracts.d.ts.map +1 -0
  27. package/dist/types/primitives/useSimulateContract.d.ts +14 -0
  28. package/dist/types/primitives/useSimulateContract.d.ts.map +1 -0
  29. package/dist/types/primitives/useWatchContractEvent.d.ts +12 -0
  30. package/dist/types/primitives/useWatchContractEvent.d.ts.map +1 -0
  31. package/dist/types/primitives/useWriteContract.d.ts +19 -0
  32. package/dist/types/primitives/useWriteContract.d.ts.map +1 -0
  33. package/dist/types/primitives/useWriteContractSync.d.ts +19 -0
  34. package/dist/types/primitives/useWriteContractSync.d.ts.map +1 -0
  35. package/dist/types/version.d.ts +1 -1
  36. package/package.json +2 -2
  37. package/src/exports/index.ts +14 -0
  38. package/src/primitives/useInfiniteReadContracts.ts +123 -0
  39. package/src/primitives/useReadContract.ts +93 -0
  40. package/src/primitives/useReadContracts.ts +82 -0
  41. package/src/primitives/useSimulateContract.ts +121 -0
  42. package/src/primitives/useWatchContractEvent.ts +82 -0
  43. package/src/primitives/useWriteContract.ts +78 -0
  44. package/src/primitives/useWriteContractSync.ts +80 -0
  45. package/src/version.ts +1 -1
@@ -0,0 +1,121 @@
1
+ import type {
2
+ Config,
3
+ ResolvedRegister,
4
+ SimulateContractErrorType,
5
+ } from '@wagmi/core'
6
+ import type { ConfigParameter } from '@wagmi/core/internal'
7
+ import {
8
+ type SimulateContractData,
9
+ type SimulateContractOptions,
10
+ simulateContractQueryOptions,
11
+ } from '@wagmi/core/query'
12
+ import type { Accessor } from 'solid-js'
13
+ import { createMemo } from 'solid-js'
14
+ import type { Abi, ContractFunctionArgs, ContractFunctionName } from 'viem'
15
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
16
+ import { useChainId } from './useChainId.js'
17
+ import { useConfig } from './useConfig.js'
18
+ import { useConnection } from './useConnection.js'
19
+
20
+ /** https://wagmi.sh/solid/api/primitives/useSimulateContract */
21
+ export function useSimulateContract<
22
+ const abi extends Abi | readonly unknown[],
23
+ functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,
24
+ const args extends ContractFunctionArgs<
25
+ abi,
26
+ 'nonpayable' | 'payable',
27
+ functionName
28
+ >,
29
+ config extends Config = ResolvedRegister['config'],
30
+ chainId extends config['chains'][number]['id'] | undefined = undefined,
31
+ selectData = SimulateContractData<abi, functionName, args, config, chainId>,
32
+ >(
33
+ parameters: useSimulateContract.Parameters<
34
+ abi,
35
+ functionName,
36
+ args,
37
+ config,
38
+ chainId,
39
+ selectData
40
+ > = () => ({}) as any,
41
+ ): useSimulateContract.ReturnType<
42
+ abi,
43
+ functionName,
44
+ args,
45
+ config,
46
+ chainId,
47
+ selectData
48
+ > {
49
+ const config = useConfig(parameters)
50
+ const connection = useConnection()
51
+ const chainId = useChainId(() => ({ config: config() }))
52
+ const options = createMemo(() =>
53
+ simulateContractQueryOptions(config(), {
54
+ ...(parameters() as any),
55
+ account: parameters().account ?? connection().address,
56
+ chainId: parameters().chainId ?? chainId(),
57
+ connector: parameters().connector ?? connection().connector,
58
+ }),
59
+ )
60
+ return useQuery(options) as any
61
+ }
62
+
63
+ export namespace useSimulateContract {
64
+ export type Parameters<
65
+ abi extends Abi | readonly unknown[] = Abi,
66
+ functionName extends ContractFunctionName<
67
+ abi,
68
+ 'nonpayable' | 'payable'
69
+ > = ContractFunctionName<abi, 'nonpayable' | 'payable'>,
70
+ args extends ContractFunctionArgs<
71
+ abi,
72
+ 'nonpayable' | 'payable',
73
+ functionName
74
+ > = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,
75
+ config extends Config = Config,
76
+ chainId extends config['chains'][number]['id'] | undefined = undefined,
77
+ selectData = SimulateContractData<abi, functionName, args, config, chainId>,
78
+ > = Accessor<
79
+ SolidParameters<abi, functionName, args, config, chainId, selectData>
80
+ >
81
+
82
+ export type ReturnType<
83
+ abi extends Abi | readonly unknown[] = Abi,
84
+ functionName extends ContractFunctionName<
85
+ abi,
86
+ 'nonpayable' | 'payable'
87
+ > = ContractFunctionName<abi, 'nonpayable' | 'payable'>,
88
+ args extends ContractFunctionArgs<
89
+ abi,
90
+ 'nonpayable' | 'payable',
91
+ functionName
92
+ > = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,
93
+ config extends Config = Config,
94
+ chainId extends config['chains'][number]['id'] | undefined = undefined,
95
+ selectData = SimulateContractData<abi, functionName, args, config, chainId>,
96
+ > = UseQueryReturnType<selectData, SimulateContractErrorType>
97
+
98
+ export type SolidParameters<
99
+ abi extends Abi | readonly unknown[] = Abi,
100
+ functionName extends ContractFunctionName<
101
+ abi,
102
+ 'nonpayable' | 'payable'
103
+ > = ContractFunctionName<abi, 'nonpayable' | 'payable'>,
104
+ args extends ContractFunctionArgs<
105
+ abi,
106
+ 'nonpayable' | 'payable',
107
+ functionName
108
+ > = ContractFunctionArgs<abi, 'nonpayable' | 'payable', functionName>,
109
+ config extends Config = Config,
110
+ chainId extends config['chains'][number]['id'] | undefined = undefined,
111
+ selectData = SimulateContractData<abi, functionName, args, config, chainId>,
112
+ > = SimulateContractOptions<
113
+ abi,
114
+ functionName,
115
+ args,
116
+ config,
117
+ chainId,
118
+ selectData
119
+ > &
120
+ ConfigParameter<config>
121
+ }
@@ -0,0 +1,82 @@
1
+ import {
2
+ type Config,
3
+ type ResolvedRegister,
4
+ type WatchContractEventParameters,
5
+ watchContractEvent,
6
+ } from '@wagmi/core'
7
+ import type {
8
+ ConfigParameter,
9
+ EnabledParameter,
10
+ UnionCompute,
11
+ UnionExactPartial,
12
+ } from '@wagmi/core/internal'
13
+ import { type Accessor, createEffect, onCleanup } from 'solid-js'
14
+ import type { Abi, ContractEventName } from 'viem'
15
+ import { useChainId } from './useChainId.js'
16
+ import { useConfig } from './useConfig.js'
17
+
18
+ /** https://wagmi.sh/solid/api/primitives/useWatchContractEvent */
19
+ export function useWatchContractEvent<
20
+ const abi extends Abi | readonly unknown[],
21
+ eventName extends ContractEventName<abi>,
22
+ strict extends boolean | undefined = undefined,
23
+ config extends Config = ResolvedRegister['config'],
24
+ chainId extends
25
+ config['chains'][number]['id'] = config['chains'][number]['id'],
26
+ >(
27
+ parameters: useWatchContractEvent.Parameters<
28
+ abi,
29
+ eventName,
30
+ strict,
31
+ config,
32
+ chainId
33
+ > = () => ({}) as any,
34
+ ): useWatchContractEvent.ReturnType {
35
+ const config = useConfig(parameters)
36
+ const configChainId = useChainId(() => ({ config: config() }))
37
+ createEffect(() => {
38
+ const {
39
+ config: _,
40
+ chainId = configChainId(),
41
+ enabled = true,
42
+ onLogs,
43
+ ...rest
44
+ } = parameters()
45
+ if (!enabled) return
46
+ if (!onLogs) return
47
+ const unwatch = watchContractEvent(config(), {
48
+ ...(rest as any),
49
+ chainId,
50
+ onLogs,
51
+ })
52
+ onCleanup(() => unwatch())
53
+ })
54
+ }
55
+
56
+ export namespace useWatchContractEvent {
57
+ export type Parameters<
58
+ abi extends Abi | readonly unknown[] = Abi,
59
+ eventName extends ContractEventName<abi> = ContractEventName<abi>,
60
+ strict extends boolean | undefined = undefined,
61
+ config extends Config = Config,
62
+ chainId extends
63
+ config['chains'][number]['id'] = config['chains'][number]['id'],
64
+ > = Accessor<SolidParameters<abi, eventName, strict, config, chainId>>
65
+
66
+ export type ReturnType = void
67
+
68
+ export type SolidParameters<
69
+ abi extends Abi | readonly unknown[] = Abi,
70
+ eventName extends ContractEventName<abi> = ContractEventName<abi>,
71
+ strict extends boolean | undefined = undefined,
72
+ config extends Config = Config,
73
+ chainId extends
74
+ config['chains'][number]['id'] = config['chains'][number]['id'],
75
+ > = UnionCompute<
76
+ UnionExactPartial<
77
+ WatchContractEventParameters<abi, eventName, strict, config, chainId>
78
+ > &
79
+ ConfigParameter<config> &
80
+ EnabledParameter
81
+ >
82
+ }
@@ -0,0 +1,78 @@
1
+ import type {
2
+ Config,
3
+ ResolvedRegister,
4
+ WriteContractErrorType,
5
+ } from '@wagmi/core'
6
+ import type { Compute, ConfigParameter } from '@wagmi/core/internal'
7
+ import {
8
+ type WriteContractData,
9
+ type WriteContractMutate,
10
+ type WriteContractMutateAsync,
11
+ type WriteContractOptions,
12
+ type WriteContractVariables,
13
+ writeContractMutationOptions,
14
+ } from '@wagmi/core/query'
15
+ import type { Accessor } from 'solid-js'
16
+ import { mergeProps } from 'solid-js'
17
+ import type { Abi } from 'viem'
18
+ import { type UseMutationReturnType, useMutation } from '../utils/query.js'
19
+ import { useConfig } from './useConfig.js'
20
+
21
+ /** https://wagmi.sh/solid/api/primitives/useWriteContract */
22
+ export function useWriteContract<
23
+ config extends Config = ResolvedRegister['config'],
24
+ context = unknown,
25
+ >(
26
+ parameters: useWriteContract.Parameters<config, context> = () => ({}),
27
+ ): useWriteContract.ReturnType<config, context> {
28
+ const config = useConfig(parameters)
29
+ const mutation = useMutation(() =>
30
+ writeContractMutationOptions(config(), parameters()),
31
+ )
32
+ type Return = useWriteContract.ReturnType<config, context>
33
+ return mergeProps(mutation, {
34
+ get writeContract() {
35
+ return mutation.mutate as Return['mutate']
36
+ },
37
+ get writeContractAsync() {
38
+ return mutation.mutateAsync as Return['mutateAsync']
39
+ },
40
+ }) as unknown as Return
41
+ }
42
+
43
+ export namespace useWriteContract {
44
+ export type Parameters<
45
+ config extends Config = Config,
46
+ context = unknown,
47
+ > = Accessor<SolidParameters<config, context>>
48
+
49
+ export type ReturnType<
50
+ config extends Config = Config,
51
+ context = unknown,
52
+ > = Compute<
53
+ UseMutationReturnType<
54
+ WriteContractData,
55
+ WriteContractErrorType,
56
+ WriteContractVariables<
57
+ Abi,
58
+ string,
59
+ readonly unknown[],
60
+ config,
61
+ config['chains'][number]['id']
62
+ >,
63
+ context,
64
+ WriteContractMutate<config, context>,
65
+ WriteContractMutateAsync<config, context>
66
+ > & {
67
+ /** @deprecated use `mutate` instead */
68
+ writeContract: WriteContractMutate<config, context>
69
+ /** @deprecated use `mutateAsync` instead */
70
+ writeContractAsync: WriteContractMutateAsync<config, context>
71
+ }
72
+ >
73
+
74
+ export type SolidParameters<
75
+ config extends Config = Config,
76
+ context = unknown,
77
+ > = Compute<ConfigParameter<config> & WriteContractOptions<config, context>>
78
+ }
@@ -0,0 +1,80 @@
1
+ import type {
2
+ Config,
3
+ ResolvedRegister,
4
+ WriteContractSyncErrorType,
5
+ } from '@wagmi/core'
6
+ import type { Compute, ConfigParameter } from '@wagmi/core/internal'
7
+ import {
8
+ type WriteContractSyncData,
9
+ type WriteContractSyncMutate,
10
+ type WriteContractSyncMutateAsync,
11
+ type WriteContractSyncOptions,
12
+ type WriteContractSyncVariables,
13
+ writeContractSyncMutationOptions,
14
+ } from '@wagmi/core/query'
15
+ import type { Accessor } from 'solid-js'
16
+ import { mergeProps } from 'solid-js'
17
+ import type { Abi } from 'viem'
18
+ import { type UseMutationReturnType, useMutation } from '../utils/query.js'
19
+ import { useConfig } from './useConfig.js'
20
+
21
+ /** https://wagmi.sh/solid/api/primitives/useWriteContractSync */
22
+ export function useWriteContractSync<
23
+ config extends Config = ResolvedRegister['config'],
24
+ context = unknown,
25
+ >(
26
+ parameters: useWriteContractSync.Parameters<config, context> = () => ({}),
27
+ ): useWriteContractSync.ReturnType<config, context> {
28
+ const config = useConfig(parameters)
29
+ const mutation = useMutation(() =>
30
+ writeContractSyncMutationOptions(config(), parameters()),
31
+ )
32
+ type Return = useWriteContractSync.ReturnType<config, context>
33
+ return mergeProps(mutation, {
34
+ get writeContractSync() {
35
+ return mutation.mutate as Return['mutate']
36
+ },
37
+ get writeContractSyncAsync() {
38
+ return mutation.mutateAsync as Return['mutateAsync']
39
+ },
40
+ }) as unknown as Return
41
+ }
42
+
43
+ export namespace useWriteContractSync {
44
+ export type Parameters<
45
+ config extends Config = Config,
46
+ context = unknown,
47
+ > = Accessor<SolidParameters<config, context>>
48
+
49
+ export type ReturnType<
50
+ config extends Config = Config,
51
+ context = unknown,
52
+ > = Compute<
53
+ UseMutationReturnType<
54
+ WriteContractSyncData,
55
+ WriteContractSyncErrorType,
56
+ WriteContractSyncVariables<
57
+ Abi,
58
+ string,
59
+ readonly unknown[],
60
+ config,
61
+ config['chains'][number]['id']
62
+ >,
63
+ context,
64
+ WriteContractSyncMutate<config, context>,
65
+ WriteContractSyncMutateAsync<config, context>
66
+ > & {
67
+ /** @deprecated use `mutate` instead */
68
+ writeContractSync: WriteContractSyncMutate<config, context>
69
+ /** @deprecated use `mutateAsync` instead */
70
+ writeContractSyncAsync: WriteContractSyncMutateAsync<config, context>
71
+ }
72
+ >
73
+
74
+ export type SolidParameters<
75
+ config extends Config = Config,
76
+ context = unknown,
77
+ > = Compute<
78
+ ConfigParameter<config> & WriteContractSyncOptions<config, context>
79
+ >
80
+ }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.0.12'
1
+ export const version = '0.0.14'