@growae/reactive-react 0.0.1

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 (119) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +47 -0
  3. package/src/context.test.ts +52 -0
  4. package/src/context.ts +25 -0
  5. package/src/errors/base.ts +8 -0
  6. package/src/errors/context.ts +12 -0
  7. package/src/errors/index.ts +5 -0
  8. package/src/exports/index.ts +230 -0
  9. package/src/exports/query.ts +12 -0
  10. package/src/hooks/index.ts +69 -0
  11. package/src/hooks/useAccount.test.ts +12 -0
  12. package/src/hooks/useAccount.ts +43 -0
  13. package/src/hooks/useBalance.test.ts +72 -0
  14. package/src/hooks/useBalance.ts +42 -0
  15. package/src/hooks/useBlock.test.ts +12 -0
  16. package/src/hooks/useBlock.ts +42 -0
  17. package/src/hooks/useCallContract.test.ts +12 -0
  18. package/src/hooks/useCallContract.ts +54 -0
  19. package/src/hooks/useChannelDeposit.test.ts +12 -0
  20. package/src/hooks/useChannelDeposit.ts +53 -0
  21. package/src/hooks/useClaimName.test.ts +12 -0
  22. package/src/hooks/useClaimName.ts +53 -0
  23. package/src/hooks/useCloseChannel.test.ts +12 -0
  24. package/src/hooks/useCloseChannel.ts +53 -0
  25. package/src/hooks/useConfig.test.ts +53 -0
  26. package/src/hooks/useConfig.ts +20 -0
  27. package/src/hooks/useConnect.test.ts +67 -0
  28. package/src/hooks/useConnect.ts +69 -0
  29. package/src/hooks/useConnection.test.ts +12 -0
  30. package/src/hooks/useConnection.ts +26 -0
  31. package/src/hooks/useConnections.test.ts +12 -0
  32. package/src/hooks/useConnections.ts +26 -0
  33. package/src/hooks/useConnectorClient.test.ts +12 -0
  34. package/src/hooks/useConnectorClient.ts +44 -0
  35. package/src/hooks/useConnectors.test.ts +12 -0
  36. package/src/hooks/useConnectors.ts +26 -0
  37. package/src/hooks/useContractBytecode.test.ts +12 -0
  38. package/src/hooks/useContractBytecode.ts +41 -0
  39. package/src/hooks/useContractEvents.test.ts +12 -0
  40. package/src/hooks/useContractEvents.ts +42 -0
  41. package/src/hooks/useDeployContract.test.ts +12 -0
  42. package/src/hooks/useDeployContract.ts +54 -0
  43. package/src/hooks/useDisconnect.test.ts +12 -0
  44. package/src/hooks/useDisconnect.ts +54 -0
  45. package/src/hooks/useEstimateGas.test.ts +12 -0
  46. package/src/hooks/useEstimateGas.ts +42 -0
  47. package/src/hooks/useHeight.test.ts +12 -0
  48. package/src/hooks/useHeight.ts +39 -0
  49. package/src/hooks/useNetworkId.test.ts +54 -0
  50. package/src/hooks/useNetworkId.ts +26 -0
  51. package/src/hooks/useNetworks.test.ts +12 -0
  52. package/src/hooks/useNetworks.ts +19 -0
  53. package/src/hooks/useNodeClient.test.ts +12 -0
  54. package/src/hooks/useNodeClient.ts +30 -0
  55. package/src/hooks/useOpenChannel.test.ts +12 -0
  56. package/src/hooks/useOpenChannel.ts +53 -0
  57. package/src/hooks/useOracleQueries.test.ts +12 -0
  58. package/src/hooks/useOracleQueries.ts +40 -0
  59. package/src/hooks/useOracleState.test.ts +12 -0
  60. package/src/hooks/useOracleState.ts +40 -0
  61. package/src/hooks/usePayForTransaction.test.ts +12 -0
  62. package/src/hooks/usePayForTransaction.ts +54 -0
  63. package/src/hooks/usePreclaimName.test.ts +12 -0
  64. package/src/hooks/usePreclaimName.ts +53 -0
  65. package/src/hooks/useQueryOracle.test.ts +12 -0
  66. package/src/hooks/useQueryOracle.ts +53 -0
  67. package/src/hooks/useReadContract.test.ts +12 -0
  68. package/src/hooks/useReadContract.ts +43 -0
  69. package/src/hooks/useReadContracts.test.ts +12 -0
  70. package/src/hooks/useReadContracts.ts +38 -0
  71. package/src/hooks/useReconnect.test.ts +12 -0
  72. package/src/hooks/useReconnect.ts +54 -0
  73. package/src/hooks/useRegisterOracle.test.ts +12 -0
  74. package/src/hooks/useRegisterOracle.ts +53 -0
  75. package/src/hooks/useResolveName.test.ts +12 -0
  76. package/src/hooks/useResolveName.ts +41 -0
  77. package/src/hooks/useRespondToQuery.test.ts +12 -0
  78. package/src/hooks/useRespondToQuery.ts +53 -0
  79. package/src/hooks/useRevokeName.test.ts +12 -0
  80. package/src/hooks/useRevokeName.ts +53 -0
  81. package/src/hooks/useSendTransaction.test.ts +12 -0
  82. package/src/hooks/useSendTransaction.ts +54 -0
  83. package/src/hooks/useSignMessage.test.ts +12 -0
  84. package/src/hooks/useSignMessage.ts +54 -0
  85. package/src/hooks/useSignTransaction.test.ts +12 -0
  86. package/src/hooks/useSignTransaction.ts +54 -0
  87. package/src/hooks/useSignTypedData.test.ts +12 -0
  88. package/src/hooks/useSignTypedData.ts +54 -0
  89. package/src/hooks/useSimulateContract.test.ts +12 -0
  90. package/src/hooks/useSimulateContract.ts +43 -0
  91. package/src/hooks/useSpend.test.ts +12 -0
  92. package/src/hooks/useSpend.ts +53 -0
  93. package/src/hooks/useSwitchNetwork.test.ts +12 -0
  94. package/src/hooks/useSwitchNetwork.ts +57 -0
  95. package/src/hooks/useTransaction.test.ts +12 -0
  96. package/src/hooks/useTransaction.ts +41 -0
  97. package/src/hooks/useTransactionCount.test.ts +12 -0
  98. package/src/hooks/useTransactionCount.ts +41 -0
  99. package/src/hooks/useTransferName.test.ts +12 -0
  100. package/src/hooks/useTransferName.ts +53 -0
  101. package/src/hooks/useUpdateName.test.ts +12 -0
  102. package/src/hooks/useUpdateName.ts +53 -0
  103. package/src/hooks/useVerifyMessage.test.ts +12 -0
  104. package/src/hooks/useVerifyMessage.ts +39 -0
  105. package/src/hooks/useVerifyTypedData.test.ts +12 -0
  106. package/src/hooks/useVerifyTypedData.ts +39 -0
  107. package/src/hooks/useWaitForTransaction.test.ts +12 -0
  108. package/src/hooks/useWaitForTransaction.ts +41 -0
  109. package/src/hooks/useWatchConnection.test.ts +12 -0
  110. package/src/hooks/useWatchConnection.ts +34 -0
  111. package/src/hooks/useWatchConnectors.test.ts +12 -0
  112. package/src/hooks/useWatchConnectors.ts +34 -0
  113. package/src/hooks/useWatchHeight.test.ts +12 -0
  114. package/src/hooks/useWatchHeight.ts +45 -0
  115. package/src/hydrate.ts +34 -0
  116. package/src/types/properties.ts +9 -0
  117. package/src/utils/query.ts +80 -0
  118. package/tsconfig.build.json +13 -0
  119. package/tsconfig.json +7 -0
@@ -0,0 +1,40 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type GetOracleQueriesParameters,
5
+ type GetOracleQueriesReturnType,
6
+ getOracleQueries,
7
+ } from '@growae/reactive'
8
+ import type { Compute } from '@growae/reactive'
9
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import { useConfig } from './useConfig.js'
12
+ import { useNetworkId } from './useNetworkId.js'
13
+
14
+ export type UseOracleQueriesParameters = Compute<
15
+ GetOracleQueriesParameters & ConfigParameter & { enabled?: boolean }
16
+ >
17
+
18
+ export type UseOracleQueriesReturnType = UseQueryReturnType<
19
+ GetOracleQueriesReturnType,
20
+ Error
21
+ >
22
+
23
+ export function useOracleQueries(
24
+ parameters: UseOracleQueriesParameters = {} as UseOracleQueriesParameters,
25
+ ): UseOracleQueriesReturnType {
26
+ const config = useConfig(parameters)
27
+ const networkId = useNetworkId({ config })
28
+
29
+ return useQuery({
30
+ queryKey: ['oracleQueries', {
31
+ oracleId: parameters.oracleId,
32
+ networkId: parameters.networkId ?? networkId,
33
+ }],
34
+ queryFn: () => getOracleQueries(config, {
35
+ ...parameters,
36
+ networkId: parameters.networkId ?? networkId,
37
+ }),
38
+ enabled: Boolean(parameters.oracleId) && (parameters.enabled ?? true),
39
+ }) as UseOracleQueriesReturnType
40
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useOracleState } from './useOracleState.js'
3
+
4
+ describe('useOracleState', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useOracleState).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useOracleState).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,40 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type GetOracleStateParameters,
5
+ type GetOracleStateReturnType,
6
+ getOracleState,
7
+ } from '@growae/reactive'
8
+ import type { Compute } from '@growae/reactive'
9
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import { useConfig } from './useConfig.js'
12
+ import { useNetworkId } from './useNetworkId.js'
13
+
14
+ export type UseOracleStateParameters = Compute<
15
+ GetOracleStateParameters & ConfigParameter & { enabled?: boolean }
16
+ >
17
+
18
+ export type UseOracleStateReturnType = UseQueryReturnType<
19
+ GetOracleStateReturnType,
20
+ Error
21
+ >
22
+
23
+ export function useOracleState(
24
+ parameters: UseOracleStateParameters = {} as UseOracleStateParameters,
25
+ ): UseOracleStateReturnType {
26
+ const config = useConfig(parameters)
27
+ const networkId = useNetworkId({ config })
28
+
29
+ return useQuery({
30
+ queryKey: ['oracleState', {
31
+ oracleId: parameters.oracleId,
32
+ networkId: parameters.networkId ?? networkId,
33
+ }],
34
+ queryFn: () => getOracleState(config, {
35
+ ...parameters,
36
+ networkId: parameters.networkId ?? networkId,
37
+ }),
38
+ enabled: Boolean(parameters.oracleId) && (parameters.enabled ?? true),
39
+ }) as UseOracleStateReturnType
40
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { usePayForTransaction } from './usePayForTransaction.js'
3
+
4
+ describe('usePayForTransaction', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof usePayForTransaction).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(usePayForTransaction).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,54 @@
1
+ 'use client'
2
+
3
+ import { useMutation } from '@tanstack/react-query'
4
+ import {
5
+ type PayForTransactionParameters,
6
+ type PayForTransactionReturnType,
7
+ type PayForTransactionErrorType,
8
+ payForTransaction,
9
+ } from '@growae/reactive'
10
+ import type { Compute } from '@growae/reactive'
11
+ import type { ConfigParameter } from '../types/properties.js'
12
+ import type { UseMutationReturnType } from '../utils/query.js'
13
+ import { useConfig } from './useConfig.js'
14
+
15
+ export type UsePayForTransactionParameters<context = unknown> = Compute<
16
+ ConfigParameter & {
17
+ mutation?: {
18
+ onSuccess?: (data: PayForTransactionReturnType, variables: PayForTransactionParameters, context: context) => void
19
+ onError?: (error: PayForTransactionErrorType, variables: PayForTransactionParameters, context: context) => void
20
+ }
21
+ }
22
+ >
23
+
24
+ export type UsePayForTransactionReturnType<context = unknown> = Compute<
25
+ UseMutationReturnType<
26
+ PayForTransactionReturnType,
27
+ PayForTransactionErrorType,
28
+ PayForTransactionParameters,
29
+ context
30
+ > & {
31
+ payForTransaction: (variables: PayForTransactionParameters) => void
32
+ payForTransactionAsync: (variables: PayForTransactionParameters) => Promise<PayForTransactionReturnType>
33
+ }
34
+ >
35
+
36
+ export function usePayForTransaction<context = unknown>(
37
+ parameters: UsePayForTransactionParameters<context> = {},
38
+ ): UsePayForTransactionReturnType<context> {
39
+ const config = useConfig(parameters)
40
+
41
+ const mutation = useMutation({
42
+ mutationKey: ['payForTransaction'],
43
+ mutationFn: (variables: PayForTransactionParameters) =>
44
+ payForTransaction(config, variables),
45
+ ...parameters.mutation,
46
+ })
47
+
48
+ type Return = UsePayForTransactionReturnType<context>
49
+ return {
50
+ ...(mutation as unknown as Return),
51
+ payForTransaction: mutation.mutate as Return['payForTransaction'],
52
+ payForTransactionAsync: mutation.mutateAsync as Return['payForTransactionAsync'],
53
+ }
54
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { usePreclaimName } from './usePreclaimName.js'
3
+
4
+ describe('usePreclaimName', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof usePreclaimName).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(usePreclaimName).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,53 @@
1
+ 'use client'
2
+
3
+ import { useMutation } from '@tanstack/react-query'
4
+ import {
5
+ type PreclaimNameParameters,
6
+ type PreclaimNameReturnType,
7
+ preclaimName,
8
+ } from '@growae/reactive'
9
+ import type { Compute } from '@growae/reactive'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import type { UseMutationReturnType } from '../utils/query.js'
12
+ import { useConfig } from './useConfig.js'
13
+
14
+ export type UsePreclaimNameParameters<context = unknown> = Compute<
15
+ ConfigParameter & {
16
+ mutation?: {
17
+ onSuccess?: (data: PreclaimNameReturnType, variables: PreclaimNameParameters, context: context) => void
18
+ onError?: (error: Error, variables: PreclaimNameParameters, context: context) => void
19
+ }
20
+ }
21
+ >
22
+
23
+ export type UsePreclaimNameReturnType<context = unknown> = Compute<
24
+ UseMutationReturnType<
25
+ PreclaimNameReturnType,
26
+ Error,
27
+ PreclaimNameParameters,
28
+ context
29
+ > & {
30
+ preclaimName: (variables: PreclaimNameParameters) => void
31
+ preclaimNameAsync: (variables: PreclaimNameParameters) => Promise<PreclaimNameReturnType>
32
+ }
33
+ >
34
+
35
+ export function usePreclaimName<context = unknown>(
36
+ parameters: UsePreclaimNameParameters<context> = {},
37
+ ): UsePreclaimNameReturnType<context> {
38
+ const config = useConfig(parameters)
39
+
40
+ const mutation = useMutation({
41
+ mutationKey: ['preclaimName'],
42
+ mutationFn: (variables: PreclaimNameParameters) =>
43
+ preclaimName(config, variables),
44
+ ...parameters.mutation,
45
+ })
46
+
47
+ type Return = UsePreclaimNameReturnType<context>
48
+ return {
49
+ ...(mutation as unknown as Return),
50
+ preclaimName: mutation.mutate as Return['preclaimName'],
51
+ preclaimNameAsync: mutation.mutateAsync as Return['preclaimNameAsync'],
52
+ }
53
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useQueryOracle } from './useQueryOracle.js'
3
+
4
+ describe('useQueryOracle', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useQueryOracle).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useQueryOracle).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,53 @@
1
+ 'use client'
2
+
3
+ import { useMutation } from '@tanstack/react-query'
4
+ import {
5
+ type QueryOracleParameters,
6
+ type QueryOracleReturnType,
7
+ queryOracle,
8
+ } from '@growae/reactive'
9
+ import type { Compute } from '@growae/reactive'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import type { UseMutationReturnType } from '../utils/query.js'
12
+ import { useConfig } from './useConfig.js'
13
+
14
+ export type UseQueryOracleParameters<context = unknown> = Compute<
15
+ ConfigParameter & {
16
+ mutation?: {
17
+ onSuccess?: (data: QueryOracleReturnType, variables: QueryOracleParameters, context: context) => void
18
+ onError?: (error: Error, variables: QueryOracleParameters, context: context) => void
19
+ }
20
+ }
21
+ >
22
+
23
+ export type UseQueryOracleReturnType<context = unknown> = Compute<
24
+ UseMutationReturnType<
25
+ QueryOracleReturnType,
26
+ Error,
27
+ QueryOracleParameters,
28
+ context
29
+ > & {
30
+ queryOracle: (variables: QueryOracleParameters) => void
31
+ queryOracleAsync: (variables: QueryOracleParameters) => Promise<QueryOracleReturnType>
32
+ }
33
+ >
34
+
35
+ export function useQueryOracle<context = unknown>(
36
+ parameters: UseQueryOracleParameters<context> = {},
37
+ ): UseQueryOracleReturnType<context> {
38
+ const config = useConfig(parameters)
39
+
40
+ const mutation = useMutation({
41
+ mutationKey: ['queryOracle'],
42
+ mutationFn: (variables: QueryOracleParameters) =>
43
+ queryOracle(config, variables),
44
+ ...parameters.mutation,
45
+ })
46
+
47
+ type Return = UseQueryOracleReturnType<context>
48
+ return {
49
+ ...(mutation as unknown as Return),
50
+ queryOracle: mutation.mutate as Return['queryOracle'],
51
+ queryOracleAsync: mutation.mutateAsync as Return['queryOracleAsync'],
52
+ }
53
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useReadContract } from './useReadContract.js'
3
+
4
+ describe('useReadContract', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useReadContract).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useReadContract).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,43 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type ReadContractParameters,
5
+ type ReadContractReturnType,
6
+ readContract,
7
+ } from '@growae/reactive'
8
+ import type { Compute } from '@growae/reactive'
9
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import { useConfig } from './useConfig.js'
12
+ import { useNetworkId } from './useNetworkId.js'
13
+
14
+ export type UseReadContractParameters = Compute<
15
+ ReadContractParameters & ConfigParameter & { enabled?: boolean }
16
+ >
17
+
18
+ export type UseReadContractReturnType = UseQueryReturnType<
19
+ ReadContractReturnType,
20
+ Error
21
+ >
22
+
23
+ export function useReadContract(
24
+ parameters: UseReadContractParameters = {} as UseReadContractParameters,
25
+ ): UseReadContractReturnType {
26
+ const config = useConfig(parameters)
27
+ const networkId = useNetworkId({ config })
28
+
29
+ return useQuery({
30
+ queryKey: ['readContract', {
31
+ address: parameters.address,
32
+ method: parameters.method,
33
+ args: parameters.args,
34
+ networkId: parameters.networkId ?? networkId,
35
+ }],
36
+ queryFn: () => readContract(config, {
37
+ ...parameters,
38
+ networkId: parameters.networkId ?? networkId,
39
+ }),
40
+ enabled: Boolean(parameters.address && parameters.aci && parameters.method) &&
41
+ (parameters.enabled ?? true),
42
+ }) as UseReadContractReturnType
43
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useReadContracts } from './useReadContracts.js'
3
+
4
+ describe('useReadContracts', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useReadContracts).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useReadContracts).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,38 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type ReadContractsParameters,
5
+ type ReadContractsReturnType,
6
+ readContracts,
7
+ } from '@growae/reactive'
8
+ import type { Compute } from '@growae/reactive'
9
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import { useConfig } from './useConfig.js'
12
+
13
+ export type UseReadContractsParameters = Compute<
14
+ ReadContractsParameters & ConfigParameter & { enabled?: boolean }
15
+ >
16
+
17
+ export type UseReadContractsReturnType = UseQueryReturnType<
18
+ ReadContractsReturnType,
19
+ Error
20
+ >
21
+
22
+ export function useReadContracts(
23
+ parameters: UseReadContractsParameters = {} as UseReadContractsParameters,
24
+ ): UseReadContractsReturnType {
25
+ const config = useConfig(parameters)
26
+
27
+ return useQuery({
28
+ queryKey: ['readContracts', {
29
+ contracts: parameters.contracts?.map((c) => ({
30
+ address: c.address,
31
+ method: c.method,
32
+ args: c.args,
33
+ })),
34
+ }],
35
+ queryFn: () => readContracts(config, parameters),
36
+ enabled: Boolean(parameters.contracts?.length) && (parameters.enabled ?? true),
37
+ }) as UseReadContractsReturnType
38
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useReconnect } from './useReconnect.js'
3
+
4
+ describe('useReconnect', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useReconnect).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useReconnect).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,54 @@
1
+ 'use client'
2
+
3
+ import { useMutation } from '@tanstack/react-query'
4
+ import {
5
+ type ReconnectParameters,
6
+ type ReconnectReturnType,
7
+ type ReconnectErrorType,
8
+ reconnect,
9
+ } from '@growae/reactive'
10
+ import type { Compute } from '@growae/reactive'
11
+ import type { ConfigParameter } from '../types/properties.js'
12
+ import type { UseMutationReturnType } from '../utils/query.js'
13
+ import { useConfig } from './useConfig.js'
14
+
15
+ export type UseReconnectParameters<context = unknown> = Compute<
16
+ ConfigParameter & {
17
+ mutation?: {
18
+ onSuccess?: (data: ReconnectReturnType, variables: ReconnectParameters, context: context) => void
19
+ onError?: (error: ReconnectErrorType, variables: ReconnectParameters, context: context) => void
20
+ }
21
+ }
22
+ >
23
+
24
+ export type UseReconnectReturnType<context = unknown> = Compute<
25
+ UseMutationReturnType<
26
+ ReconnectReturnType,
27
+ ReconnectErrorType,
28
+ ReconnectParameters,
29
+ context
30
+ > & {
31
+ reconnect: (variables?: ReconnectParameters) => void
32
+ reconnectAsync: (variables?: ReconnectParameters) => Promise<ReconnectReturnType>
33
+ }
34
+ >
35
+
36
+ export function useReconnect<context = unknown>(
37
+ parameters: UseReconnectParameters<context> = {},
38
+ ): UseReconnectReturnType<context> {
39
+ const config = useConfig(parameters)
40
+
41
+ const mutation = useMutation({
42
+ mutationKey: ['reconnect'],
43
+ mutationFn: (variables: ReconnectParameters = {}) =>
44
+ reconnect(config, variables),
45
+ ...parameters.mutation,
46
+ })
47
+
48
+ type Return = UseReconnectReturnType<context>
49
+ return {
50
+ ...(mutation as unknown as Return),
51
+ reconnect: mutation.mutate as Return['reconnect'],
52
+ reconnectAsync: mutation.mutateAsync as Return['reconnectAsync'],
53
+ }
54
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useRegisterOracle } from './useRegisterOracle.js'
3
+
4
+ describe('useRegisterOracle', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useRegisterOracle).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useRegisterOracle).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,53 @@
1
+ 'use client'
2
+
3
+ import { useMutation } from '@tanstack/react-query'
4
+ import {
5
+ type RegisterOracleParameters,
6
+ type RegisterOracleReturnType,
7
+ registerOracle,
8
+ } from '@growae/reactive'
9
+ import type { Compute } from '@growae/reactive'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import type { UseMutationReturnType } from '../utils/query.js'
12
+ import { useConfig } from './useConfig.js'
13
+
14
+ export type UseRegisterOracleParameters<context = unknown> = Compute<
15
+ ConfigParameter & {
16
+ mutation?: {
17
+ onSuccess?: (data: RegisterOracleReturnType, variables: RegisterOracleParameters, context: context) => void
18
+ onError?: (error: Error, variables: RegisterOracleParameters, context: context) => void
19
+ }
20
+ }
21
+ >
22
+
23
+ export type UseRegisterOracleReturnType<context = unknown> = Compute<
24
+ UseMutationReturnType<
25
+ RegisterOracleReturnType,
26
+ Error,
27
+ RegisterOracleParameters,
28
+ context
29
+ > & {
30
+ registerOracle: (variables: RegisterOracleParameters) => void
31
+ registerOracleAsync: (variables: RegisterOracleParameters) => Promise<RegisterOracleReturnType>
32
+ }
33
+ >
34
+
35
+ export function useRegisterOracle<context = unknown>(
36
+ parameters: UseRegisterOracleParameters<context> = {},
37
+ ): UseRegisterOracleReturnType<context> {
38
+ const config = useConfig(parameters)
39
+
40
+ const mutation = useMutation({
41
+ mutationKey: ['registerOracle'],
42
+ mutationFn: (variables: RegisterOracleParameters) =>
43
+ registerOracle(config, variables),
44
+ ...parameters.mutation,
45
+ })
46
+
47
+ type Return = UseRegisterOracleReturnType<context>
48
+ return {
49
+ ...(mutation as unknown as Return),
50
+ registerOracle: mutation.mutate as Return['registerOracle'],
51
+ registerOracleAsync: mutation.mutateAsync as Return['registerOracleAsync'],
52
+ }
53
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useResolveName } from './useResolveName.js'
3
+
4
+ describe('useResolveName', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useResolveName).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useResolveName).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,41 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type ResolveNameParameters,
5
+ type ResolveNameReturnType,
6
+ resolveName,
7
+ } from '@growae/reactive'
8
+ import type { Compute } from '@growae/reactive'
9
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import { useConfig } from './useConfig.js'
12
+ import { useNetworkId } from './useNetworkId.js'
13
+
14
+ export type UseResolveNameParameters = Compute<
15
+ ResolveNameParameters & ConfigParameter & { enabled?: boolean }
16
+ >
17
+
18
+ export type UseResolveNameReturnType = UseQueryReturnType<
19
+ ResolveNameReturnType,
20
+ Error
21
+ >
22
+
23
+ export function useResolveName(
24
+ parameters: UseResolveNameParameters = {} as UseResolveNameParameters,
25
+ ): UseResolveNameReturnType {
26
+ const config = useConfig(parameters)
27
+ const networkId = useNetworkId({ config })
28
+
29
+ return useQuery({
30
+ queryKey: ['resolveName', {
31
+ name: parameters.name,
32
+ key: parameters.key,
33
+ networkId: parameters.networkId ?? networkId,
34
+ }],
35
+ queryFn: () => resolveName(config, {
36
+ ...parameters,
37
+ networkId: parameters.networkId ?? networkId,
38
+ }),
39
+ enabled: Boolean(parameters.name) && (parameters.enabled ?? true),
40
+ }) as UseResolveNameReturnType
41
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useRespondToQuery } from './useRespondToQuery.js'
3
+
4
+ describe('useRespondToQuery', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useRespondToQuery).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useRespondToQuery).toBeDefined()
11
+ })
12
+ })
@@ -0,0 +1,53 @@
1
+ 'use client'
2
+
3
+ import { useMutation } from '@tanstack/react-query'
4
+ import {
5
+ type RespondToQueryParameters,
6
+ type RespondToQueryReturnType,
7
+ respondToQuery,
8
+ } from '@growae/reactive'
9
+ import type { Compute } from '@growae/reactive'
10
+ import type { ConfigParameter } from '../types/properties.js'
11
+ import type { UseMutationReturnType } from '../utils/query.js'
12
+ import { useConfig } from './useConfig.js'
13
+
14
+ export type UseRespondToQueryParameters<context = unknown> = Compute<
15
+ ConfigParameter & {
16
+ mutation?: {
17
+ onSuccess?: (data: RespondToQueryReturnType, variables: RespondToQueryParameters, context: context) => void
18
+ onError?: (error: Error, variables: RespondToQueryParameters, context: context) => void
19
+ }
20
+ }
21
+ >
22
+
23
+ export type UseRespondToQueryReturnType<context = unknown> = Compute<
24
+ UseMutationReturnType<
25
+ RespondToQueryReturnType,
26
+ Error,
27
+ RespondToQueryParameters,
28
+ context
29
+ > & {
30
+ respondToQuery: (variables: RespondToQueryParameters) => void
31
+ respondToQueryAsync: (variables: RespondToQueryParameters) => Promise<RespondToQueryReturnType>
32
+ }
33
+ >
34
+
35
+ export function useRespondToQuery<context = unknown>(
36
+ parameters: UseRespondToQueryParameters<context> = {},
37
+ ): UseRespondToQueryReturnType<context> {
38
+ const config = useConfig(parameters)
39
+
40
+ const mutation = useMutation({
41
+ mutationKey: ['respondToQuery'],
42
+ mutationFn: (variables: RespondToQueryParameters) =>
43
+ respondToQuery(config, variables),
44
+ ...parameters.mutation,
45
+ })
46
+
47
+ type Return = UseRespondToQueryReturnType<context>
48
+ return {
49
+ ...(mutation as unknown as Return),
50
+ respondToQuery: mutation.mutate as Return['respondToQuery'],
51
+ respondToQueryAsync: mutation.mutateAsync as Return['respondToQueryAsync'],
52
+ }
53
+ }
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { useRevokeName } from './useRevokeName.js'
3
+
4
+ describe('useRevokeName', () => {
5
+ it('should be a function', () => {
6
+ expect(typeof useRevokeName).toBe('function')
7
+ })
8
+
9
+ it('should be exported', () => {
10
+ expect(useRevokeName).toBeDefined()
11
+ })
12
+ })