@wagmi/core 3.2.2 → 3.3.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.
Files changed (168) hide show
  1. package/dist/esm/actions/deployContract.js +7 -1
  2. package/dist/esm/actions/deployContract.js.map +1 -1
  3. package/dist/esm/actions/getBlobBaseFee.js +10 -0
  4. package/dist/esm/actions/getBlobBaseFee.js.map +1 -0
  5. package/dist/esm/actions/getContractEvents.js +10 -0
  6. package/dist/esm/actions/getContractEvents.js.map +1 -0
  7. package/dist/esm/actions/sendTransaction.js +7 -1
  8. package/dist/esm/actions/sendTransaction.js.map +1 -1
  9. package/dist/esm/actions/sendTransactionSync.js +7 -1
  10. package/dist/esm/actions/sendTransactionSync.js.map +1 -1
  11. package/dist/esm/actions/writeContract.js +7 -1
  12. package/dist/esm/actions/writeContract.js.map +1 -1
  13. package/dist/esm/actions/writeContractSync.js +31 -0
  14. package/dist/esm/actions/writeContractSync.js.map +1 -0
  15. package/dist/esm/connectors/mock.js +2 -0
  16. package/dist/esm/connectors/mock.js.map +1 -1
  17. package/dist/esm/exports/actions.js +2 -0
  18. package/dist/esm/exports/actions.js.map +1 -1
  19. package/dist/esm/exports/index.js +3 -0
  20. package/dist/esm/exports/index.js.map +1 -1
  21. package/dist/esm/exports/query.js +3 -0
  22. package/dist/esm/exports/query.js.map +1 -1
  23. package/dist/esm/query/connect.js +3 -2
  24. package/dist/esm/query/connect.js.map +1 -1
  25. package/dist/esm/query/deployContract.js +2 -1
  26. package/dist/esm/query/deployContract.js.map +1 -1
  27. package/dist/esm/query/disconnect.js +3 -2
  28. package/dist/esm/query/disconnect.js.map +1 -1
  29. package/dist/esm/query/getBlobBaseFee.js +17 -0
  30. package/dist/esm/query/getBlobBaseFee.js.map +1 -0
  31. package/dist/esm/query/getContractEvents.js +24 -0
  32. package/dist/esm/query/getContractEvents.js.map +1 -0
  33. package/dist/esm/query/readContracts.js +13 -2
  34. package/dist/esm/query/readContracts.js.map +1 -1
  35. package/dist/esm/query/reconnect.js +2 -1
  36. package/dist/esm/query/reconnect.js.map +1 -1
  37. package/dist/esm/query/sendCalls.js +2 -1
  38. package/dist/esm/query/sendCalls.js.map +1 -1
  39. package/dist/esm/query/sendCallsSync.js +2 -1
  40. package/dist/esm/query/sendCallsSync.js.map +1 -1
  41. package/dist/esm/query/sendTransaction.js +2 -1
  42. package/dist/esm/query/sendTransaction.js.map +1 -1
  43. package/dist/esm/query/sendTransactionSync.js +2 -1
  44. package/dist/esm/query/sendTransactionSync.js.map +1 -1
  45. package/dist/esm/query/showCallsStatus.js +2 -1
  46. package/dist/esm/query/showCallsStatus.js.map +1 -1
  47. package/dist/esm/query/signMessage.js +2 -1
  48. package/dist/esm/query/signMessage.js.map +1 -1
  49. package/dist/esm/query/signTypedData.js +2 -1
  50. package/dist/esm/query/signTypedData.js.map +1 -1
  51. package/dist/esm/query/switchChain.js +2 -1
  52. package/dist/esm/query/switchChain.js.map +1 -1
  53. package/dist/esm/query/switchConnection.js +2 -1
  54. package/dist/esm/query/switchConnection.js.map +1 -1
  55. package/dist/esm/query/verifyTypedData.js.map +1 -1
  56. package/dist/esm/query/watchAsset.js +2 -1
  57. package/dist/esm/query/watchAsset.js.map +1 -1
  58. package/dist/esm/query/writeContract.js +2 -1
  59. package/dist/esm/query/writeContract.js.map +1 -1
  60. package/dist/esm/query/writeContractSync.js +11 -0
  61. package/dist/esm/query/writeContractSync.js.map +1 -0
  62. package/dist/esm/tempo/Connectors.js +10 -4
  63. package/dist/esm/tempo/Connectors.js.map +1 -1
  64. package/dist/esm/tempo/KeyManager.js +49 -1
  65. package/dist/esm/tempo/KeyManager.js.map +1 -1
  66. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  67. package/dist/esm/version.js +1 -1
  68. package/dist/types/actions/deployContract.d.ts.map +1 -1
  69. package/dist/types/actions/getBlobBaseFee.d.ts +10 -0
  70. package/dist/types/actions/getBlobBaseFee.d.ts.map +1 -0
  71. package/dist/types/actions/getContractEvents.d.ts +11 -0
  72. package/dist/types/actions/getContractEvents.d.ts.map +1 -0
  73. package/dist/types/actions/sendTransaction.d.ts.map +1 -1
  74. package/dist/types/actions/sendTransactionSync.d.ts.map +1 -1
  75. package/dist/types/actions/writeContract.d.ts.map +1 -1
  76. package/dist/types/actions/writeContractSync.d.ts +16 -0
  77. package/dist/types/actions/writeContractSync.d.ts.map +1 -0
  78. package/dist/types/connectors/mock.d.ts.map +1 -1
  79. package/dist/types/exports/actions.d.ts +2 -0
  80. package/dist/types/exports/actions.d.ts.map +1 -1
  81. package/dist/types/exports/index.d.ts +3 -0
  82. package/dist/types/exports/index.d.ts.map +1 -1
  83. package/dist/types/exports/query.d.ts +21 -14
  84. package/dist/types/exports/query.d.ts.map +1 -1
  85. package/dist/types/query/connect.d.ts +5 -5
  86. package/dist/types/query/connect.d.ts.map +1 -1
  87. package/dist/types/query/deployContract.d.ts +5 -5
  88. package/dist/types/query/deployContract.d.ts.map +1 -1
  89. package/dist/types/query/disconnect.d.ts +5 -4
  90. package/dist/types/query/disconnect.d.ts.map +1 -1
  91. package/dist/types/query/getBlobBaseFee.d.ts +16 -0
  92. package/dist/types/query/getBlobBaseFee.d.ts.map +1 -0
  93. package/dist/types/query/getContractEvents.d.ts +24 -0
  94. package/dist/types/query/getContractEvents.d.ts.map +1 -0
  95. package/dist/types/query/getEnsAddress.d.ts +1 -1
  96. package/dist/types/query/getEnsAvatar.d.ts +1 -1
  97. package/dist/types/query/getEnsName.d.ts +1 -1
  98. package/dist/types/query/getEnsText.d.ts +1 -1
  99. package/dist/types/query/readContracts.d.ts +1 -1
  100. package/dist/types/query/readContracts.d.ts.map +1 -1
  101. package/dist/types/query/reconnect.d.ts +5 -4
  102. package/dist/types/query/reconnect.d.ts.map +1 -1
  103. package/dist/types/query/sendCalls.d.ts +5 -10
  104. package/dist/types/query/sendCalls.d.ts.map +1 -1
  105. package/dist/types/query/sendCallsSync.d.ts +5 -18
  106. package/dist/types/query/sendCallsSync.d.ts.map +1 -1
  107. package/dist/types/query/sendTransaction.d.ts +5 -5
  108. package/dist/types/query/sendTransaction.d.ts.map +1 -1
  109. package/dist/types/query/sendTransactionSync.d.ts +5 -5
  110. package/dist/types/query/sendTransactionSync.d.ts.map +1 -1
  111. package/dist/types/query/showCallsStatus.d.ts +5 -5
  112. package/dist/types/query/showCallsStatus.d.ts.map +1 -1
  113. package/dist/types/query/signMessage.d.ts +5 -8
  114. package/dist/types/query/signMessage.d.ts.map +1 -1
  115. package/dist/types/query/signTypedData.d.ts +5 -223
  116. package/dist/types/query/signTypedData.d.ts.map +1 -1
  117. package/dist/types/query/switchChain.d.ts +5 -21
  118. package/dist/types/query/switchChain.d.ts.map +1 -1
  119. package/dist/types/query/switchConnection.d.ts +5 -6
  120. package/dist/types/query/switchConnection.d.ts.map +1 -1
  121. package/dist/types/query/verifyTypedData.d.ts.map +1 -1
  122. package/dist/types/query/watchAsset.d.ts +5 -13
  123. package/dist/types/query/watchAsset.d.ts.map +1 -1
  124. package/dist/types/query/writeContract.d.ts +5 -7
  125. package/dist/types/query/writeContract.d.ts.map +1 -1
  126. package/dist/types/query/writeContractSync.d.ts +14 -0
  127. package/dist/types/query/writeContractSync.d.ts.map +1 -0
  128. package/dist/types/tempo/Connectors.d.ts.map +1 -1
  129. package/dist/types/tempo/KeyManager.d.ts.map +1 -1
  130. package/dist/types/types/query.d.ts +4 -1
  131. package/dist/types/types/query.d.ts.map +1 -1
  132. package/dist/types/version.d.ts +1 -1
  133. package/package.json +1 -1
  134. package/src/actions/deployContract.ts +7 -1
  135. package/src/actions/getBlobBaseFee.ts +35 -0
  136. package/src/actions/getContractEvents.ts +68 -0
  137. package/src/actions/sendTransaction.ts +7 -1
  138. package/src/actions/sendTransactionSync.ts +7 -1
  139. package/src/actions/writeContract.ts +7 -1
  140. package/src/actions/writeContractSync.ts +120 -0
  141. package/src/connectors/mock.ts +1 -0
  142. package/src/exports/actions.ts +14 -0
  143. package/src/exports/index.ts +21 -0
  144. package/src/exports/query.ts +64 -0
  145. package/src/query/connect.ts +24 -8
  146. package/src/query/deployContract.ts +20 -5
  147. package/src/query/disconnect.ts +20 -9
  148. package/src/query/getBlobBaseFee.ts +75 -0
  149. package/src/query/getContractEvents.ts +214 -0
  150. package/src/query/readContracts.ts +12 -2
  151. package/src/query/reconnect.ts +20 -7
  152. package/src/query/sendCalls.ts +22 -8
  153. package/src/query/sendCallsSync.ts +20 -5
  154. package/src/query/sendTransaction.ts +20 -5
  155. package/src/query/sendTransactionSync.ts +23 -5
  156. package/src/query/showCallsStatus.ts +19 -8
  157. package/src/query/signMessage.ts +20 -7
  158. package/src/query/signTypedData.ts +19 -8
  159. package/src/query/switchChain.ts +22 -8
  160. package/src/query/switchConnection.ts +20 -5
  161. package/src/query/verifyTypedData.ts +0 -1
  162. package/src/query/watchAsset.ts +20 -7
  163. package/src/query/writeContract.ts +26 -5
  164. package/src/query/writeContractSync.ts +130 -0
  165. package/src/tempo/Connectors.ts +9 -6
  166. package/src/tempo/KeyManager.ts +64 -1
  167. package/src/types/query.ts +15 -1
  168. package/src/version.ts +1 -1
@@ -0,0 +1,130 @@
1
+ import type { MutateOptions, MutationOptions } from '@tanstack/query-core'
2
+ import type { Abi, ContractFunctionArgs, ContractFunctionName } from 'viem'
3
+ import {
4
+ type WriteContractSyncErrorType,
5
+ type WriteContractSyncParameters,
6
+ type WriteContractSyncReturnType,
7
+ writeContractSync,
8
+ } from '../actions/writeContractSync.js'
9
+ import type { Config } from '../createConfig.js'
10
+ import type { MutationParameter } from '../types/query.js'
11
+ import type { Compute } from '../types/utils.js'
12
+
13
+ export type WriteContractSyncOptions<
14
+ config extends Config,
15
+ context = unknown,
16
+ > = MutationParameter<
17
+ WriteContractSyncData,
18
+ WriteContractSyncErrorType,
19
+ WriteContractSyncVariables<
20
+ Abi,
21
+ string,
22
+ readonly unknown[],
23
+ config,
24
+ config['chains'][number]['id']
25
+ >,
26
+ context
27
+ >
28
+
29
+ export function writeContractSyncMutationOptions<
30
+ config extends Config,
31
+ context,
32
+ >(
33
+ config: config,
34
+ options: WriteContractSyncOptions<config, context> = {},
35
+ ): WriteContractSyncMutationOptions<config> {
36
+ return {
37
+ ...(options.mutation as any),
38
+ mutationFn(variables) {
39
+ return writeContractSync(config, variables)
40
+ },
41
+ mutationKey: ['writeContractSync'],
42
+ }
43
+ }
44
+
45
+ export type WriteContractSyncMutationOptions<config extends Config> =
46
+ MutationOptions<
47
+ WriteContractSyncData,
48
+ WriteContractSyncErrorType,
49
+ WriteContractSyncVariables<
50
+ Abi,
51
+ string,
52
+ readonly unknown[],
53
+ config,
54
+ config['chains'][number]['id']
55
+ >
56
+ >
57
+
58
+ export type WriteContractSyncData = Compute<WriteContractSyncReturnType>
59
+
60
+ export type WriteContractSyncVariables<
61
+ abi extends Abi | readonly unknown[],
62
+ functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,
63
+ args extends ContractFunctionArgs<
64
+ abi,
65
+ 'nonpayable' | 'payable',
66
+ functionName
67
+ >,
68
+ config extends Config,
69
+ chainId extends config['chains'][number]['id'],
70
+ > = WriteContractSyncParameters<abi, functionName, args, config, chainId>
71
+
72
+ export type WriteContractSyncMutate<
73
+ config extends Config,
74
+ context = unknown,
75
+ > = <
76
+ const abi extends Abi | readonly unknown[],
77
+ functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,
78
+ args extends ContractFunctionArgs<
79
+ abi,
80
+ 'nonpayable' | 'payable',
81
+ functionName
82
+ >,
83
+ chainId extends config['chains'][number]['id'],
84
+ >(
85
+ variables: WriteContractSyncVariables<
86
+ abi,
87
+ functionName,
88
+ args,
89
+ config,
90
+ chainId
91
+ >,
92
+ options?:
93
+ | MutateOptions<
94
+ WriteContractSyncData,
95
+ WriteContractSyncErrorType,
96
+ WriteContractSyncVariables<abi, functionName, args, config, chainId>,
97
+ context
98
+ >
99
+ | undefined,
100
+ ) => void
101
+
102
+ export type WriteContractSyncMutateAsync<
103
+ config extends Config,
104
+ context = unknown,
105
+ > = <
106
+ const abi extends Abi | readonly unknown[],
107
+ functionName extends ContractFunctionName<abi, 'nonpayable' | 'payable'>,
108
+ args extends ContractFunctionArgs<
109
+ abi,
110
+ 'nonpayable' | 'payable',
111
+ functionName
112
+ >,
113
+ chainId extends config['chains'][number]['id'],
114
+ >(
115
+ variables: WriteContractSyncVariables<
116
+ abi,
117
+ functionName,
118
+ args,
119
+ config,
120
+ chainId
121
+ >,
122
+ options?:
123
+ | MutateOptions<
124
+ WriteContractSyncData,
125
+ WriteContractSyncErrorType,
126
+ WriteContractSyncVariables<abi, functionName, args, config, chainId>,
127
+ context
128
+ >
129
+ | undefined,
130
+ ) => Promise<WriteContractSyncData>
@@ -91,7 +91,9 @@ export function webAuthn(options: webAuthn.Parameters) {
91
91
  'webAuthn.activeCredential',
92
92
  )
93
93
  if (!credential) return
94
- account = Account.fromWebAuthnP256(credential)
94
+ account = Account.fromWebAuthnP256(credential, {
95
+ rpId: options.getOptions?.rpId ?? options.rpId,
96
+ })
95
97
  },
96
98
  async connect(parameters = {}) {
97
99
  const capabilities =
@@ -243,7 +245,9 @@ export function webAuthn(options: webAuthn.Parameters) {
243
245
  normalizeValue(credential),
244
246
  )
245
247
 
246
- account = Account.fromWebAuthnP256(credential)
248
+ account = Account.fromWebAuthnP256(credential, {
249
+ rpId: options.getOptions?.rpId ?? options.rpId,
250
+ })
247
251
 
248
252
  if (keyPair) {
249
253
  accessKey = Account.fromWebCryptoP256(keyPair, {
@@ -360,17 +364,16 @@ export function webAuthn(options: webAuthn.Parameters) {
360
364
 
361
365
  const targetAccount = await (async () => {
362
366
  if (!accessKey) return account
367
+ if (!account) throw new Error('account not found.')
363
368
 
364
- const item = await idb.get(
365
- `accessKey:${accessKey.address.toLowerCase()}`,
366
- )
369
+ const item = await idb.get(`accessKey:${account.address.toLowerCase()}`)
367
370
  if (
368
371
  item?.keyAuthorization.expiry &&
369
372
  item.keyAuthorization.expiry < Date.now() / 1000
370
373
  ) {
371
374
  // remove any pending key authorizations from storage.
372
375
  await config?.storage?.removeItem(
373
- `pendingKeyAuthorization:${accessKey.address.toLowerCase()}`,
376
+ `pendingKeyAuthorization:${account.address.toLowerCase()}`,
374
377
  )
375
378
 
376
379
  const message = `Access key expired (on ${new Date(item.keyAuthorization.expiry * 1000).toLocaleString()}).`
@@ -1,4 +1,5 @@
1
1
  import type { WebAuthnP256 } from 'ox'
2
+ import * as Base64 from 'ox/Base64'
2
3
  import type * as Hex from 'ox/Hex'
3
4
  import * as Json from 'ox/Json'
4
5
  import {
@@ -158,7 +159,10 @@ export function http(
158
159
  headers: {
159
160
  'Content-Type': 'application/json',
160
161
  },
161
- body: Json.stringify(parameters),
162
+ body: Json.stringify({
163
+ ...parameters,
164
+ credential: serializeCredential(parameters.credential),
165
+ }),
162
166
  },
163
167
  )
164
168
 
@@ -174,3 +178,62 @@ export namespace http {
174
178
  fetch?: typeof fetch | undefined
175
179
  }
176
180
  }
181
+
182
+ /**
183
+ * Serializes a WebAuthn credential for JSON transmission.
184
+ * @internal
185
+ */
186
+ function serializeCredential(
187
+ credential: WebAuthnP256.P256Credential['raw'],
188
+ ): Record<string, unknown> {
189
+ const response = credential.response
190
+ return {
191
+ ...credential,
192
+ rawId: Base64.fromBytes(new Uint8Array(credential.rawId)),
193
+ response: {
194
+ clientDataJSON: Base64.fromBytes(new Uint8Array(response.clientDataJSON)),
195
+ ...('attestationObject' in response && {
196
+ attestationObject: Base64.fromBytes(
197
+ new Uint8Array(response.attestationObject as ArrayBuffer),
198
+ ),
199
+ }),
200
+ ...('getAuthenticatorData' in response &&
201
+ typeof response.getAuthenticatorData === 'function' && {
202
+ authenticatorData: Base64.fromBytes(
203
+ new Uint8Array(response.getAuthenticatorData() as ArrayBuffer),
204
+ ),
205
+ }),
206
+ ...('getPublicKey' in response &&
207
+ typeof response.getPublicKey === 'function' && {
208
+ publicKey: Base64.fromBytes(
209
+ new Uint8Array(response.getPublicKey() as ArrayBuffer),
210
+ ),
211
+ }),
212
+ ...('getPublicKeyAlgorithm' in response &&
213
+ typeof response.getPublicKeyAlgorithm === 'function' && {
214
+ publicKeyAlgorithm: response.getPublicKeyAlgorithm(),
215
+ }),
216
+ ...('getTransports' in response &&
217
+ typeof response.getTransports === 'function' && {
218
+ transports: response.getTransports(),
219
+ }),
220
+ ...('authenticatorData' in response && {
221
+ authenticatorData: Base64.fromBytes(
222
+ new Uint8Array(response.authenticatorData as ArrayBuffer),
223
+ ),
224
+ }),
225
+ ...('signature' in response && {
226
+ signature: Base64.fromBytes(
227
+ new Uint8Array(response.signature as ArrayBuffer),
228
+ ),
229
+ }),
230
+ ...('userHandle' in response && response.userHandle
231
+ ? {
232
+ userHandle: Base64.fromBytes(
233
+ new Uint8Array(response.userHandle as ArrayBuffer),
234
+ ),
235
+ }
236
+ : {}),
237
+ },
238
+ }
239
+ }
@@ -1,5 +1,19 @@
1
1
  import type * as Query from '@tanstack/query-core'
2
- import type { RequiredBy, UnionLooseOmit } from './utils.js'
2
+ import type { Compute, LooseOmit, RequiredBy, UnionLooseOmit } from './utils.js'
3
+
4
+ export type MutationParameter<
5
+ data = unknown,
6
+ error = Error,
7
+ variables = void,
8
+ context = unknown,
9
+ > = {
10
+ mutation?:
11
+ | LooseOmit<
12
+ Query.MutationOptions<data, error, Compute<variables>, context>,
13
+ 'mutationFn' | 'mutationKey' | 'throwOnError'
14
+ >
15
+ | undefined
16
+ }
3
17
 
4
18
  export type QueryParameter<
5
19
  queryFnData = unknown,
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '3.2.2'
1
+ export const version = '3.3.0'