tempo.ts 0.11.1 → 0.12.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 (228) hide show
  1. package/CHANGELOG.md +67 -4
  2. package/README.md +3 -34
  3. package/dist/server/Handler.d.ts +14 -14
  4. package/dist/server/Handler.d.ts.map +1 -1
  5. package/dist/server/Handler.js +16 -17
  6. package/dist/server/Handler.js.map +1 -1
  7. package/dist/wagmi/Actions/amm.d.ts +51 -51
  8. package/dist/wagmi/Actions/amm.d.ts.map +1 -1
  9. package/dist/wagmi/Actions/amm.js +37 -37
  10. package/dist/wagmi/Actions/amm.js.map +1 -1
  11. package/dist/wagmi/Actions/dex.d.ts +129 -129
  12. package/dist/wagmi/Actions/dex.d.ts.map +1 -1
  13. package/dist/wagmi/Actions/dex.js +73 -73
  14. package/dist/wagmi/Actions/dex.js.map +1 -1
  15. package/dist/wagmi/Actions/faucet.d.ts +9 -9
  16. package/dist/wagmi/Actions/faucet.d.ts.map +1 -1
  17. package/dist/wagmi/Actions/faucet.js +7 -7
  18. package/dist/wagmi/Actions/faucet.js.map +1 -1
  19. package/dist/wagmi/Actions/fee.d.ts +17 -17
  20. package/dist/wagmi/Actions/fee.d.ts.map +1 -1
  21. package/dist/wagmi/Actions/fee.js +10 -10
  22. package/dist/wagmi/Actions/fee.js.map +1 -1
  23. package/dist/wagmi/Actions/nonce.d.ts +9 -79
  24. package/dist/wagmi/Actions/nonce.d.ts.map +1 -1
  25. package/dist/wagmi/Actions/nonce.js +7 -89
  26. package/dist/wagmi/Actions/nonce.js.map +1 -1
  27. package/dist/wagmi/Actions/policy.d.ts +69 -70
  28. package/dist/wagmi/Actions/policy.d.ts.map +1 -1
  29. package/dist/wagmi/Actions/policy.js +43 -43
  30. package/dist/wagmi/Actions/policy.js.map +1 -1
  31. package/dist/wagmi/Actions/reward.d.ts +51 -51
  32. package/dist/wagmi/Actions/reward.d.ts.map +1 -1
  33. package/dist/wagmi/Actions/reward.js +31 -31
  34. package/dist/wagmi/Actions/reward.js.map +1 -1
  35. package/dist/wagmi/Actions/token.d.ts +238 -238
  36. package/dist/wagmi/Actions/token.d.ts.map +1 -1
  37. package/dist/wagmi/Actions/token.js +136 -136
  38. package/dist/wagmi/Actions/token.js.map +1 -1
  39. package/dist/wagmi/Connector.d.ts +2 -1
  40. package/dist/wagmi/Connector.d.ts.map +1 -1
  41. package/dist/wagmi/Connector.js +83 -22
  42. package/dist/wagmi/Connector.js.map +1 -1
  43. package/dist/wagmi/Hooks/nonce.d.ts +1 -52
  44. package/dist/wagmi/Hooks/nonce.d.ts.map +1 -1
  45. package/dist/wagmi/Hooks/nonce.js +1 -70
  46. package/dist/wagmi/Hooks/nonce.js.map +1 -1
  47. package/dist/wagmi/Hooks/policy.d.ts +0 -1
  48. package/dist/wagmi/Hooks/policy.d.ts.map +1 -1
  49. package/dist/wagmi/Hooks/policy.js.map +1 -1
  50. package/dist/wagmi/KeyManager.d.ts +6 -3
  51. package/dist/wagmi/KeyManager.d.ts.map +1 -1
  52. package/dist/wagmi/KeyManager.js +9 -4
  53. package/dist/wagmi/KeyManager.js.map +1 -1
  54. package/package.json +3 -13
  55. package/src/server/Handler.test.ts +2 -2
  56. package/src/server/Handler.ts +16 -17
  57. package/src/wagmi/Actions/amm.ts +63 -63
  58. package/src/wagmi/Actions/dex.test.ts +1 -1
  59. package/src/wagmi/Actions/dex.ts +153 -153
  60. package/src/wagmi/Actions/faucet.ts +11 -11
  61. package/src/wagmi/Actions/fee.ts +20 -20
  62. package/src/wagmi/Actions/nonce.test.ts +1 -64
  63. package/src/wagmi/Actions/nonce.ts +10 -142
  64. package/src/wagmi/Actions/policy.ts +83 -85
  65. package/src/wagmi/Actions/reward.ts +64 -61
  66. package/src/wagmi/Actions/token.ts +287 -283
  67. package/src/wagmi/Connector.ts +105 -31
  68. package/src/wagmi/Hooks/dex.test.ts +1 -1
  69. package/src/wagmi/Hooks/fee.test.ts +0 -6
  70. package/src/wagmi/Hooks/nonce.test.ts +1 -66
  71. package/src/wagmi/Hooks/nonce.ts +1 -114
  72. package/src/wagmi/Hooks/policy.ts +0 -2
  73. package/src/wagmi/KeyManager.ts +18 -5
  74. package/dist/chains.d.ts +0 -73
  75. package/dist/chains.d.ts.map +0 -1
  76. package/dist/chains.js +0 -51
  77. package/dist/chains.js.map +0 -1
  78. package/dist/viem/Abis.d.ts +0 -2649
  79. package/dist/viem/Abis.d.ts.map +0 -1
  80. package/dist/viem/Abis.js +0 -1677
  81. package/dist/viem/Abis.js.map +0 -1
  82. package/dist/viem/Account.d.ts +0 -244
  83. package/dist/viem/Account.d.ts.map +0 -1
  84. package/dist/viem/Account.js +0 -382
  85. package/dist/viem/Account.js.map +0 -1
  86. package/dist/viem/Actions/account.d.ts +0 -40
  87. package/dist/viem/Actions/account.d.ts.map +0 -1
  88. package/dist/viem/Actions/account.js +0 -86
  89. package/dist/viem/Actions/account.js.map +0 -1
  90. package/dist/viem/Actions/amm.d.ts +0 -1991
  91. package/dist/viem/Actions/amm.d.ts.map +0 -1
  92. package/dist/viem/Actions/amm.js +0 -814
  93. package/dist/viem/Actions/amm.js.map +0 -1
  94. package/dist/viem/Actions/dex.d.ts +0 -3900
  95. package/dist/viem/Actions/dex.d.ts.map +0 -1
  96. package/dist/viem/Actions/dex.js +0 -1414
  97. package/dist/viem/Actions/dex.js.map +0 -1
  98. package/dist/viem/Actions/faucet.d.ts +0 -69
  99. package/dist/viem/Actions/faucet.d.ts.map +0 -1
  100. package/dist/viem/Actions/faucet.js +0 -73
  101. package/dist/viem/Actions/faucet.js.map +0 -1
  102. package/dist/viem/Actions/fee.d.ts +0 -360
  103. package/dist/viem/Actions/fee.d.ts.map +0 -1
  104. package/dist/viem/Actions/fee.js +0 -237
  105. package/dist/viem/Actions/fee.js.map +0 -1
  106. package/dist/viem/Actions/index.d.ts +0 -10
  107. package/dist/viem/Actions/index.d.ts.map +0 -1
  108. package/dist/viem/Actions/index.js +0 -10
  109. package/dist/viem/Actions/index.js.map +0 -1
  110. package/dist/viem/Actions/nonce.d.ts +0 -257
  111. package/dist/viem/Actions/nonce.d.ts.map +0 -1
  112. package/dist/viem/Actions/nonce.js +0 -228
  113. package/dist/viem/Actions/nonce.js.map +0 -1
  114. package/dist/viem/Actions/policy.d.ts +0 -1680
  115. package/dist/viem/Actions/policy.d.ts.map +0 -1
  116. package/dist/viem/Actions/policy.js +0 -875
  117. package/dist/viem/Actions/policy.js.map +0 -1
  118. package/dist/viem/Actions/reward.d.ts +0 -2422
  119. package/dist/viem/Actions/reward.d.ts.map +0 -1
  120. package/dist/viem/Actions/reward.js +0 -651
  121. package/dist/viem/Actions/reward.js.map +0 -1
  122. package/dist/viem/Actions/token.d.ts +0 -16007
  123. package/dist/viem/Actions/token.d.ts.map +0 -1
  124. package/dist/viem/Actions/token.js +0 -2936
  125. package/dist/viem/Actions/token.js.map +0 -1
  126. package/dist/viem/Addresses.d.ts +0 -9
  127. package/dist/viem/Addresses.d.ts.map +0 -1
  128. package/dist/viem/Addresses.js +0 -9
  129. package/dist/viem/Addresses.js.map +0 -1
  130. package/dist/viem/Chain.d.ts +0 -451
  131. package/dist/viem/Chain.d.ts.map +0 -1
  132. package/dist/viem/Chain.js +0 -96
  133. package/dist/viem/Chain.js.map +0 -1
  134. package/dist/viem/Decorator.d.ts +0 -2783
  135. package/dist/viem/Decorator.d.ts.map +0 -1
  136. package/dist/viem/Decorator.js +0 -137
  137. package/dist/viem/Decorator.js.map +0 -1
  138. package/dist/viem/Formatters.d.ts +0 -10
  139. package/dist/viem/Formatters.d.ts.map +0 -1
  140. package/dist/viem/Formatters.js +0 -104
  141. package/dist/viem/Formatters.js.map +0 -1
  142. package/dist/viem/P256.d.ts +0 -2
  143. package/dist/viem/P256.d.ts.map +0 -1
  144. package/dist/viem/P256.js +0 -2
  145. package/dist/viem/P256.js.map +0 -1
  146. package/dist/viem/Secp256k1.d.ts +0 -2
  147. package/dist/viem/Secp256k1.d.ts.map +0 -1
  148. package/dist/viem/Secp256k1.js +0 -2
  149. package/dist/viem/Secp256k1.js.map +0 -1
  150. package/dist/viem/Storage.d.ts +0 -24
  151. package/dist/viem/Storage.d.ts.map +0 -1
  152. package/dist/viem/Storage.js +0 -68
  153. package/dist/viem/Storage.js.map +0 -1
  154. package/dist/viem/TokenIds.d.ts +0 -2
  155. package/dist/viem/TokenIds.d.ts.map +0 -1
  156. package/dist/viem/TokenIds.js +0 -2
  157. package/dist/viem/TokenIds.js.map +0 -1
  158. package/dist/viem/Transaction.d.ts +0 -76
  159. package/dist/viem/Transaction.d.ts.map +0 -1
  160. package/dist/viem/Transaction.js +0 -176
  161. package/dist/viem/Transaction.js.map +0 -1
  162. package/dist/viem/Transport.d.ts +0 -33
  163. package/dist/viem/Transport.d.ts.map +0 -1
  164. package/dist/viem/Transport.js +0 -138
  165. package/dist/viem/Transport.js.map +0 -1
  166. package/dist/viem/WebAuthnP256.d.ts +0 -82
  167. package/dist/viem/WebAuthnP256.d.ts.map +0 -1
  168. package/dist/viem/WebAuthnP256.js +0 -97
  169. package/dist/viem/WebAuthnP256.js.map +0 -1
  170. package/dist/viem/WebCryptoP256.d.ts +0 -2
  171. package/dist/viem/WebCryptoP256.d.ts.map +0 -1
  172. package/dist/viem/WebCryptoP256.js +0 -2
  173. package/dist/viem/WebCryptoP256.js.map +0 -1
  174. package/dist/viem/index.d.ts +0 -26
  175. package/dist/viem/index.d.ts.map +0 -1
  176. package/dist/viem/index.js +0 -17
  177. package/dist/viem/index.js.map +0 -1
  178. package/dist/viem/internal/types.d.ts +0 -20
  179. package/dist/viem/internal/types.d.ts.map +0 -1
  180. package/dist/viem/internal/types.js +0 -2
  181. package/dist/viem/internal/types.js.map +0 -1
  182. package/dist/viem/internal/utils.d.ts +0 -14
  183. package/dist/viem/internal/utils.d.ts.map +0 -1
  184. package/dist/viem/internal/utils.js +0 -33
  185. package/dist/viem/internal/utils.js.map +0 -1
  186. package/src/chains.ts +0 -54
  187. package/src/viem/Abis.ts +0 -1688
  188. package/src/viem/Account.test.ts +0 -444
  189. package/src/viem/Account.ts +0 -601
  190. package/src/viem/Actions/account.test.ts +0 -414
  191. package/src/viem/Actions/account.ts +0 -106
  192. package/src/viem/Actions/amm.test.ts +0 -381
  193. package/src/viem/Actions/amm.ts +0 -1227
  194. package/src/viem/Actions/dex.test.ts +0 -1549
  195. package/src/viem/Actions/dex.ts +0 -2150
  196. package/src/viem/Actions/faucet.ts +0 -121
  197. package/src/viem/Actions/fee.test.ts +0 -259
  198. package/src/viem/Actions/fee.ts +0 -372
  199. package/src/viem/Actions/index.ts +0 -9
  200. package/src/viem/Actions/nonce.test.ts +0 -206
  201. package/src/viem/Actions/nonce.ts +0 -347
  202. package/src/viem/Actions/policy.test.ts +0 -534
  203. package/src/viem/Actions/policy.ts +0 -1335
  204. package/src/viem/Actions/reward.test.ts +0 -434
  205. package/src/viem/Actions/reward.ts +0 -944
  206. package/src/viem/Actions/token.test.ts +0 -3029
  207. package/src/viem/Actions/token.ts +0 -4458
  208. package/src/viem/Addresses.ts +0 -9
  209. package/src/viem/Chain.bench-d.ts +0 -12
  210. package/src/viem/Chain.test.ts +0 -168
  211. package/src/viem/Chain.ts +0 -157
  212. package/src/viem/Decorator.bench-d.ts +0 -11
  213. package/src/viem/Decorator.test.ts +0 -39
  214. package/src/viem/Decorator.ts +0 -3179
  215. package/src/viem/Formatters.ts +0 -164
  216. package/src/viem/P256.ts +0 -1
  217. package/src/viem/Secp256k1.ts +0 -1
  218. package/src/viem/Storage.ts +0 -110
  219. package/src/viem/TokenIds.ts +0 -1
  220. package/src/viem/Transaction.ts +0 -382
  221. package/src/viem/Transport.ts +0 -191
  222. package/src/viem/WebAuthnP256.ts +0 -146
  223. package/src/viem/WebCryptoP256.ts +0 -1
  224. package/src/viem/e2e.test.ts +0 -1602
  225. package/src/viem/index.ts +0 -30
  226. package/src/viem/internal/types.ts +0 -69
  227. package/src/viem/internal/utils.ts +0 -58
  228. package/src/wagmi/internal/types.ts +0 -16
@@ -1,382 +0,0 @@
1
- import * as Address from 'ox/Address';
2
- import * as Hex from 'ox/Hex';
3
- import * as P256 from 'ox/P256';
4
- import * as PublicKey from 'ox/PublicKey';
5
- import * as Secp256k1 from 'ox/Secp256k1';
6
- import * as Signature from 'ox/Signature';
7
- import { KeyAuthorization, SignatureEnvelope } from 'ox/tempo';
8
- import * as WebAuthnP256 from 'ox/WebAuthnP256';
9
- import * as WebCryptoP256 from 'ox/WebCryptoP256';
10
- import { hashAuthorization, hashMessage, hashTypedData, keccak256, parseAccount, } from 'viem/utils';
11
- import * as Storage from './Storage.js';
12
- import * as Transaction from './Transaction.js';
13
- /**
14
- * Instantiates an Account from a headless WebAuthn credential (P256 private key).
15
- *
16
- * @example
17
- * ```ts
18
- * import { Account } from 'tempo.ts/viem'
19
- *
20
- * const account = Account.fromHeadlessWebAuthn('0x...')
21
- * ```
22
- *
23
- * @param privateKey P256 private key.
24
- * @returns Account.
25
- */
26
- export function fromHeadlessWebAuthn(privateKey, options) {
27
- const { access, rpId, origin, storage } = options;
28
- const publicKey = P256.getPublicKey({ privateKey });
29
- return from({
30
- access,
31
- keyType: 'webAuthn',
32
- publicKey,
33
- async sign({ hash }) {
34
- const { metadata, payload } = WebAuthnP256.getSignPayload({
35
- ...options,
36
- challenge: hash,
37
- rpId,
38
- origin,
39
- });
40
- const signature = P256.sign({
41
- payload,
42
- privateKey,
43
- hash: true,
44
- });
45
- return SignatureEnvelope.serialize({
46
- metadata,
47
- signature,
48
- publicKey,
49
- type: 'webAuthn',
50
- });
51
- },
52
- storage,
53
- });
54
- }
55
- /**
56
- * Instantiates an Account from a P256 private key.
57
- *
58
- * @example
59
- * ```ts
60
- * import { Account } from 'tempo.ts/viem'
61
- *
62
- * const account = Account.fromP256('0x...')
63
- * ```
64
- *
65
- * @param privateKey P256 private key.
66
- * @returns Account.
67
- */
68
- export function fromP256(privateKey, options = {}) {
69
- const { access, storage } = options;
70
- const publicKey = P256.getPublicKey({ privateKey });
71
- return from({
72
- access,
73
- keyType: 'p256',
74
- publicKey,
75
- async sign({ hash }) {
76
- const signature = P256.sign({ payload: hash, privateKey });
77
- return SignatureEnvelope.serialize({
78
- signature,
79
- publicKey,
80
- type: 'p256',
81
- });
82
- },
83
- storage,
84
- });
85
- }
86
- /**
87
- * Instantiates an Account from a Secp256k1 private key.
88
- *
89
- * @example
90
- * ```ts
91
- * import { Account } from 'tempo.ts/viem'
92
- *
93
- * const account = Account.fromSecp256k1('0x...')
94
- * ```
95
- *
96
- * @param privateKey Secp256k1 private key.
97
- * @returns Account.
98
- */
99
- // TODO: this function will be redundant when Viem migrates to Ox.
100
- export function fromSecp256k1(privateKey, options = {}) {
101
- const { access, storage } = options;
102
- const publicKey = Secp256k1.getPublicKey({ privateKey });
103
- return from({
104
- access,
105
- keyType: 'secp256k1',
106
- publicKey,
107
- async sign(parameters) {
108
- const { hash } = parameters;
109
- const signature = Secp256k1.sign({ payload: hash, privateKey });
110
- return Signature.toHex(signature);
111
- },
112
- storage,
113
- });
114
- }
115
- /**
116
- * Instantiates an Account from a WebAuthn credential.
117
- *
118
- * @example
119
- *
120
- * ### Create Passkey + Instantiate Account
121
- *
122
- * Create a credential with `WebAuthnP256.createCredential` and then instantiate
123
- * a Viem Account with `Account.fromWebAuthnP256`.
124
- *
125
- * It is highly recommended to store the credential's public key in an external store
126
- * for future use (ie. for future calls to `WebAuthnP256.getCredential`).
127
- *
128
- * ```ts
129
- * import { Account, WebAuthnP256 } from 'tempo.ts/viem'
130
- * import { publicKeyStore } from './store'
131
- *
132
- * // 1. Create credential
133
- * const credential = await WebAuthnP256.createCredential({ name: 'Example' })
134
- *
135
- * // 2. Instantiate account
136
- * const account = Account.fromWebAuthnP256(credential)
137
- *
138
- * // 3. Store public key
139
- * await publicKeyStore.set(credential.id, credential.publicKey)
140
- *
141
- * ```
142
- *
143
- * @example
144
- *
145
- * ### Get Credential + Instantiate Account
146
- *
147
- * Gets a credential from `WebAuthnP256.getCredential` and then instantiates
148
- * an account with `Account.fromWebAuthnP256`.
149
- *
150
- * The `getPublicKey` function is required to fetch the public key paired with the credential
151
- * from an external store. The public key is required to derive the account's address.
152
- *
153
- * ```ts
154
- * import { Account, WebAuthnP256 } from 'tempo.ts/viem'
155
- * import { publicKeyStore } from './store'
156
- *
157
- * // 1. Get credential
158
- * const credential = await WebAuthnP256.getCredential({
159
- * async getPublicKey(credential) {
160
- * // 2. Get public key from external store.
161
- * return await publicKeyStore.get(credential.id)
162
- * }
163
- * })
164
- *
165
- * // 3. Instantiate account
166
- * const account = Account.fromWebAuthnP256(credential)
167
- * ```
168
- *
169
- * @param credential WebAuthnP256 credential.
170
- * @returns Account.
171
- */
172
- export function fromWebAuthnP256(credential, options = {}) {
173
- const { id } = credential;
174
- const { storage } = options;
175
- const publicKey = PublicKey.fromHex(credential.publicKey);
176
- return from({
177
- keyType: 'webAuthn',
178
- publicKey,
179
- async sign({ hash }) {
180
- const { metadata, signature } = await WebAuthnP256.sign({
181
- ...options,
182
- challenge: hash,
183
- credentialId: id,
184
- });
185
- return SignatureEnvelope.serialize({
186
- publicKey,
187
- metadata,
188
- signature,
189
- type: 'webAuthn',
190
- });
191
- },
192
- storage,
193
- });
194
- }
195
- /**
196
- * Instantiates an Account from a P256 private key.
197
- *
198
- * @example
199
- * ```ts
200
- * import { Account } from 'tempo.ts/viem'
201
- * import { WebCryptoP256 } from 'ox'
202
- *
203
- * const keyPair = await WebCryptoP256.createKeyPair()
204
- *
205
- * const account = Account.fromWebCryptoP256(keyPair)
206
- * ```
207
- *
208
- * @param keyPair WebCryptoP256 key pair.
209
- * @returns Account.
210
- */
211
- export function fromWebCryptoP256(keyPair, options = {}) {
212
- const { access, storage } = options;
213
- const { publicKey, privateKey } = keyPair;
214
- return from({
215
- access,
216
- keyType: 'p256',
217
- publicKey,
218
- async sign({ hash }) {
219
- const signature = await WebCryptoP256.sign({ payload: hash, privateKey });
220
- return SignatureEnvelope.serialize({
221
- signature,
222
- prehash: true,
223
- publicKey,
224
- type: 'p256',
225
- });
226
- },
227
- storage,
228
- });
229
- }
230
- export async function signKeyAuthorization(account, parameters) {
231
- const { key, expiry, limits } = parameters;
232
- const { accessKeyAddress, keyType: type } = key;
233
- const signature = await account.sign({
234
- hash: KeyAuthorization.getSignPayload({
235
- address: accessKeyAddress,
236
- expiry,
237
- limits,
238
- type,
239
- }),
240
- });
241
- return KeyAuthorization.from({
242
- address: accessKeyAddress,
243
- expiry,
244
- limits,
245
- signature: SignatureEnvelope.from(signature),
246
- type,
247
- });
248
- }
249
- /** @internal */
250
- // biome-ignore lint/correctness/noUnusedVariables: _
251
- function fromBase(parameters) {
252
- const { keyType = 'secp256k1', parentAddress, source = 'privateKey', } = parameters;
253
- const address = parentAddress ?? Address.fromPublicKey(parameters.publicKey);
254
- const publicKey = PublicKey.toHex(parameters.publicKey, {
255
- includePrefix: false,
256
- });
257
- const storage = Storage.from(parameters.storage ?? Storage.memory(), { key: `tempo.ts:${address.toLowerCase()}` });
258
- async function sign({ hash }) {
259
- const signature = await parameters.sign({ hash });
260
- if (parentAddress)
261
- return SignatureEnvelope.serialize(SignatureEnvelope.from({
262
- userAddress: parentAddress,
263
- inner: SignatureEnvelope.from(signature),
264
- type: 'keychain',
265
- }));
266
- return signature;
267
- }
268
- return {
269
- address: Address.checksum(address),
270
- keyType,
271
- sign,
272
- async signAuthorization(parameters) {
273
- const { chainId, nonce } = parameters;
274
- const address = parameters.contractAddress ?? parameters.address;
275
- const signature = await sign({
276
- hash: hashAuthorization({ address, chainId, nonce }),
277
- });
278
- const envelope = SignatureEnvelope.from(signature);
279
- if (envelope.type !== 'secp256k1')
280
- throw new Error('Unsupported signature type. Expected `secp256k1` but got `' +
281
- envelope.type +
282
- '`.');
283
- const { r, s, yParity } = envelope.signature;
284
- return {
285
- address,
286
- chainId,
287
- nonce,
288
- r: Hex.fromNumber(r, { size: 32 }),
289
- s: Hex.fromNumber(s, { size: 32 }),
290
- yParity,
291
- };
292
- },
293
- async signMessage(parameters) {
294
- const { message } = parameters;
295
- const signature = await sign({ hash: hashMessage(message) });
296
- const envelope = SignatureEnvelope.from(signature);
297
- return SignatureEnvelope.serialize(envelope);
298
- },
299
- async signTransaction(transaction, options) {
300
- const { serializer = Transaction.serialize } = options ?? {};
301
- const keyAuthorization = (await storage?.getItem('pendingKeyAuthorization')) ?? undefined;
302
- if (keyAuthorization && !transaction.keyAuthorization) {
303
- ;
304
- transaction.keyAuthorization = keyAuthorization;
305
- await storage.removeItem('pendingKeyAuthorization');
306
- }
307
- const signature = await sign({
308
- hash: keccak256(await serializer(transaction)),
309
- });
310
- const envelope = SignatureEnvelope.from(signature);
311
- return await serializer(transaction, envelope);
312
- },
313
- async signTypedData(typedData) {
314
- const signature = await sign({ hash: hashTypedData(typedData) });
315
- const envelope = SignatureEnvelope.from(signature);
316
- return SignatureEnvelope.serialize(envelope);
317
- },
318
- publicKey,
319
- source,
320
- storage,
321
- type: 'local',
322
- };
323
- }
324
- /** @internal */
325
- // biome-ignore lint/correctness/noUnusedVariables: _
326
- function fromRoot(parameters) {
327
- const account = fromBase(parameters);
328
- return {
329
- ...account,
330
- source: 'root',
331
- async assignKeyAuthorization(keyAuthorization) {
332
- account.storage.setItem('pendingKeyAuthorization', keyAuthorization);
333
- },
334
- async signKeyAuthorization(key, parameters = {}) {
335
- const { expiry, limits } = parameters;
336
- const { accessKeyAddress, keyType: type } = key;
337
- const signature = await account.sign({
338
- hash: KeyAuthorization.getSignPayload({
339
- address: accessKeyAddress,
340
- expiry,
341
- limits,
342
- type,
343
- }),
344
- });
345
- const keyAuthorization = KeyAuthorization.from({
346
- address: accessKeyAddress,
347
- expiry,
348
- limits,
349
- signature: SignatureEnvelope.from(signature),
350
- type,
351
- });
352
- return keyAuthorization;
353
- },
354
- };
355
- }
356
- // biome-ignore lint/correctness/noUnusedVariables: _
357
- function fromAccessKey(parameters) {
358
- const { access } = parameters;
359
- const { address: parentAddress } = parseAccount(access);
360
- const account = fromBase({ ...parameters, parentAddress });
361
- return {
362
- ...account,
363
- accessKeyAddress: Address.fromPublicKey(parameters.publicKey),
364
- source: 'accessKey',
365
- };
366
- }
367
- // biome-ignore lint/correctness/noUnusedVariables: _
368
- function from(parameters) {
369
- const { access } = parameters;
370
- if (access)
371
- return fromAccessKey(parameters);
372
- return fromRoot(parameters);
373
- }
374
- // Export types required for inference.
375
- export {
376
- /** @deprecated */
377
- KeyAuthorization as z_KeyAuthorization,
378
- /** @deprecated */
379
- SignatureEnvelope as z_SignatureEnvelope,
380
- /** @deprecated */
381
- TxEnvelopeTempo as z_TxEnvelopeTempo, } from 'ox/tempo';
382
- //# sourceMappingURL=Account.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Account.js","sourceRoot":"","sources":["../../src/viem/Account.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import type { Chain, Client, Transport } from 'viem';
2
- import type { VerifyHashParameters, VerifyHashReturnType } from 'viem/actions';
3
- import type { PartialBy } from '../../internal/types.js';
4
- /**
5
- * Verifies that a signature is valid for a given hash and address.
6
- * Supports multiple signature types: Secp256k1, P256, WebCrypto P256, and WebAuthn P256.
7
- *
8
- * @example
9
- * ```ts
10
- * import { createClient, http } from 'viem'
11
- * import { tempo } from 'tempo.ts/chains'
12
- * import { Actions, Account, P256 } from 'tempo.ts/viem'
13
- *
14
- * const client = createClient({
15
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
16
- * transport: http(),
17
- * })
18
- *
19
- * const privateKey = P256.randomPrivateKey()
20
- * const account = Account.fromP256(privateKey)
21
- *
22
- * const hash = '0x...'
23
- * const signature = await account.sign({ hash })
24
- *
25
- * const valid = await Actions.verifyHash(client, {
26
- * hash,
27
- * signature,
28
- * })
29
- * ```
30
- *
31
- * @param client - Client.
32
- * @param parameters - Parameters.
33
- * @returns Whether the signature is valid.
34
- */
35
- export declare function verifyHash<chain extends Chain | undefined>(client: Client<Transport, chain>, parameters: verifyHash.Parameters): Promise<verifyHash.ReturnValue>;
36
- export declare namespace verifyHash {
37
- type Parameters = PartialBy<VerifyHashParameters, 'address'>;
38
- type ReturnValue = VerifyHashReturnType;
39
- }
40
- //# sourceMappingURL=account.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/viem/Actions/account.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAG9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,UAAU,CAAC,KAAK,SAAS,KAAK,GAAG,SAAS,EAC9D,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAChC,UAAU,EAAE,UAAU,CAAC,UAAU,GAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAsDjC;AAED,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC,KAAY,UAAU,GAAG,SAAS,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAA;IAEnE,KAAY,WAAW,GAAG,oBAAoB,CAAA;CAC/C"}
@@ -1,86 +0,0 @@
1
- import { Secp256k1 } from 'ox';
2
- import * as Hex from 'ox/Hex';
3
- import * as P256 from 'ox/P256';
4
- import { SignatureEnvelope } from 'ox/tempo';
5
- import * as WebAuthnP256 from 'ox/WebAuthnP256';
6
- import { verifyHash as viem_verifyHash } from 'viem/actions';
7
- import { getAction } from 'viem/utils';
8
- /**
9
- * Verifies that a signature is valid for a given hash and address.
10
- * Supports multiple signature types: Secp256k1, P256, WebCrypto P256, and WebAuthn P256.
11
- *
12
- * @example
13
- * ```ts
14
- * import { createClient, http } from 'viem'
15
- * import { tempo } from 'tempo.ts/chains'
16
- * import { Actions, Account, P256 } from 'tempo.ts/viem'
17
- *
18
- * const client = createClient({
19
- * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
20
- * transport: http(),
21
- * })
22
- *
23
- * const privateKey = P256.randomPrivateKey()
24
- * const account = Account.fromP256(privateKey)
25
- *
26
- * const hash = '0x...'
27
- * const signature = await account.sign({ hash })
28
- *
29
- * const valid = await Actions.verifyHash(client, {
30
- * hash,
31
- * signature,
32
- * })
33
- * ```
34
- *
35
- * @param client - Client.
36
- * @param parameters - Parameters.
37
- * @returns Whether the signature is valid.
38
- */
39
- export async function verifyHash(client, parameters) {
40
- const { hash } = parameters;
41
- const signature = (() => {
42
- const signature = parameters.signature;
43
- if (Hex.validate(signature))
44
- return signature;
45
- if (typeof signature === 'object' && 'r' in signature && 's' in signature)
46
- return SignatureEnvelope.serialize({
47
- type: 'secp256k1',
48
- signature: {
49
- r: BigInt(signature.r),
50
- s: BigInt(signature.s),
51
- yParity: signature.yParity,
52
- },
53
- });
54
- return Hex.fromBytes(signature);
55
- })();
56
- const [envelope, userAddress] = (() => {
57
- const envelope = SignatureEnvelope.from(signature);
58
- if (envelope.type === 'keychain')
59
- return [envelope.inner, envelope.userAddress];
60
- return [envelope, undefined];
61
- })();
62
- if (envelope.type === 'p256')
63
- return P256.verify({
64
- payload: hash,
65
- publicKey: envelope.publicKey,
66
- signature: envelope.signature,
67
- hash: envelope.prehash,
68
- });
69
- if (envelope.type === 'webAuthn')
70
- return WebAuthnP256.verify({
71
- challenge: hash,
72
- metadata: envelope.metadata,
73
- publicKey: envelope.publicKey,
74
- signature: envelope.signature,
75
- });
76
- if (envelope.type === 'keychain')
77
- throw new Error('not supported');
78
- const address = parameters.address ??
79
- userAddress ??
80
- Secp256k1.recoverAddress({
81
- payload: hash,
82
- signature: envelope.signature,
83
- });
84
- return await getAction(client, viem_verifyHash, 'verifyHash')({ ...parameters, address });
85
- }
86
- //# sourceMappingURL=account.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/viem/Actions/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC9B,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAA;AAG/C,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAgC,EAChC,UAAiC;IAEjC,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAA;IAE3B,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE;QACtB,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACtC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QAC7C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS;YACvE,OAAO,iBAAiB,CAAC,SAAS,CAAC;gBACjC,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE;oBACT,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;oBACtB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;oBACtB,OAAO,EAAE,SAAS,CAAC,OAAQ;iBAC5B;aACF,CAAC,CAAA;QACJ,OAAO,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;YAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;QAC/C,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,IAAI,EAAE,QAAQ,CAAC,OAAO;SACvB,CAAC,CAAA;IACJ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;QAC9B,OAAO,YAAY,CAAC,MAAM,CAAC;YACzB,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAA;IACJ,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;IAElE,MAAM,OAAO,GACX,UAAU,CAAC,OAAO;QAClB,WAAW;QACX,SAAS,CAAC,cAAc,CAAC;YACvB,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAA;IAEJ,OAAO,MAAM,SAAS,CACpB,MAAM,EACN,eAAe,EACf,YAAY,CACb,CAAC,EAAE,GAAG,UAAU,EAAE,OAAO,EAAW,CAAC,CAAA;AACxC,CAAC"}