tempo.ts 0.0.6 → 0.1.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 (195) hide show
  1. package/dist/chains.d.ts +244 -541
  2. package/dist/chains.d.ts.map +1 -1
  3. package/dist/chains.js +10 -23
  4. package/dist/chains.js.map +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/ox/SignatureEnvelope.d.ts +245 -0
  7. package/dist/ox/SignatureEnvelope.d.ts.map +1 -0
  8. package/dist/ox/SignatureEnvelope.js +437 -0
  9. package/dist/ox/SignatureEnvelope.js.map +1 -0
  10. package/dist/ox/Transaction.d.ts +61 -24
  11. package/dist/ox/Transaction.d.ts.map +1 -1
  12. package/dist/ox/Transaction.js +63 -18
  13. package/dist/ox/Transaction.js.map +1 -1
  14. package/dist/ox/TransactionEnvelopeAA.d.ts +461 -0
  15. package/dist/ox/TransactionEnvelopeAA.d.ts.map +1 -0
  16. package/dist/ox/TransactionEnvelopeAA.js +528 -0
  17. package/dist/ox/TransactionEnvelopeAA.js.map +1 -0
  18. package/dist/ox/TransactionRequest.d.ts +7 -5
  19. package/dist/ox/TransactionRequest.d.ts.map +1 -1
  20. package/dist/ox/TransactionRequest.js +21 -12
  21. package/dist/ox/TransactionRequest.js.map +1 -1
  22. package/dist/ox/index.d.ts +5 -4
  23. package/dist/ox/index.d.ts.map +1 -1
  24. package/dist/ox/index.js +5 -4
  25. package/dist/ox/index.js.map +1 -1
  26. package/dist/prool/Instance.d.ts +0 -4
  27. package/dist/prool/Instance.d.ts.map +1 -1
  28. package/dist/prool/Instance.js +7 -7
  29. package/dist/prool/Instance.js.map +1 -1
  30. package/dist/prool/index.d.ts +1 -1
  31. package/dist/prool/index.d.ts.map +1 -1
  32. package/dist/prool/index.js +1 -1
  33. package/dist/prool/index.js.map +1 -1
  34. package/dist/viem/{abis.d.ts → Abis.d.ts} +523 -9
  35. package/dist/viem/Abis.d.ts.map +1 -0
  36. package/dist/viem/{abis.js → Abis.js} +321 -9
  37. package/dist/viem/Abis.js.map +1 -0
  38. package/dist/viem/{actions → Actions}/amm.d.ts +21 -21
  39. package/dist/viem/Actions/amm.d.ts.map +1 -0
  40. package/dist/viem/{actions → Actions}/amm.js +55 -43
  41. package/dist/viem/Actions/amm.js.map +1 -0
  42. package/dist/viem/Actions/dex.d.ts +3263 -0
  43. package/dist/viem/Actions/dex.d.ts.map +1 -0
  44. package/dist/viem/Actions/dex.js +1357 -0
  45. package/dist/viem/Actions/dex.js.map +1 -0
  46. package/dist/viem/{actions → Actions}/fee.d.ts +8 -8
  47. package/dist/viem/Actions/fee.d.ts.map +1 -0
  48. package/dist/viem/{actions → Actions}/fee.js +14 -13
  49. package/dist/viem/Actions/fee.js.map +1 -0
  50. package/dist/viem/Actions/index.d.ts +6 -0
  51. package/dist/viem/Actions/index.d.ts.map +1 -0
  52. package/dist/viem/Actions/index.js +6 -0
  53. package/dist/viem/Actions/index.js.map +1 -0
  54. package/dist/viem/{actions → Actions}/policy.d.ts +19 -19
  55. package/dist/viem/Actions/policy.d.ts.map +1 -0
  56. package/dist/viem/{actions → Actions}/policy.js +59 -46
  57. package/dist/viem/Actions/policy.js.map +1 -0
  58. package/dist/viem/{actions → Actions}/token.d.ts +3250 -700
  59. package/dist/viem/Actions/token.d.ts.map +1 -0
  60. package/dist/viem/{actions → Actions}/token.js +419 -83
  61. package/dist/viem/Actions/token.js.map +1 -0
  62. package/dist/viem/Addresses.d.ts +9 -0
  63. package/dist/viem/Addresses.d.ts.map +1 -0
  64. package/dist/viem/Addresses.js +9 -0
  65. package/dist/viem/Addresses.js.map +1 -0
  66. package/dist/viem/{chain.d.ts → Chain.d.ts} +81 -57
  67. package/dist/viem/Chain.d.ts.map +1 -0
  68. package/dist/viem/{chain.js → Chain.js} +7 -7
  69. package/dist/viem/Chain.js.map +1 -0
  70. package/dist/viem/{client.d.ts → Client.d.ts} +4 -4
  71. package/dist/viem/Client.d.ts.map +1 -0
  72. package/dist/viem/{client.js → Client.js} +3 -3
  73. package/dist/viem/Client.js.map +1 -0
  74. package/dist/viem/{decorator.d.ts → Decorator.d.ts} +507 -5
  75. package/dist/viem/Decorator.d.ts.map +1 -0
  76. package/dist/viem/{decorator.js → Decorator.js} +31 -5
  77. package/dist/viem/Decorator.js.map +1 -0
  78. package/dist/viem/{formatters.d.ts → Formatters.d.ts} +2 -2
  79. package/dist/viem/Formatters.d.ts.map +1 -0
  80. package/dist/viem/{formatters.js → Formatters.js} +24 -17
  81. package/dist/viem/Formatters.js.map +1 -0
  82. package/dist/viem/Tick.d.ts +111 -0
  83. package/dist/viem/Tick.d.ts.map +1 -0
  84. package/dist/viem/Tick.js +127 -0
  85. package/dist/viem/Tick.js.map +1 -0
  86. package/dist/viem/TokenIds.d.ts +3 -0
  87. package/dist/viem/TokenIds.d.ts.map +1 -0
  88. package/dist/viem/TokenIds.js +3 -0
  89. package/dist/viem/TokenIds.js.map +1 -0
  90. package/dist/viem/Transaction.d.ts +57 -0
  91. package/dist/viem/Transaction.d.ts.map +1 -0
  92. package/dist/viem/Transaction.js +137 -0
  93. package/dist/viem/Transaction.js.map +1 -0
  94. package/dist/viem/{transport.d.ts → Transport.d.ts} +3 -3
  95. package/dist/viem/Transport.d.ts.map +1 -0
  96. package/dist/viem/{transport.js → Transport.js} +3 -3
  97. package/dist/viem/Transport.js.map +1 -0
  98. package/dist/viem/index.d.ts +13 -9
  99. package/dist/viem/index.d.ts.map +1 -1
  100. package/dist/viem/index.js +13 -9
  101. package/dist/viem/index.js.map +1 -1
  102. package/dist/viem/{types.d.ts → internal/types.d.ts} +3 -3
  103. package/dist/viem/internal/types.d.ts.map +1 -0
  104. package/dist/viem/{types.js.map → internal/types.js.map} +1 -1
  105. package/dist/viem/internal/utils.d.ts.map +1 -0
  106. package/dist/viem/internal/utils.js.map +1 -0
  107. package/package.json +87 -101
  108. package/src/chains.ts +10 -24
  109. package/src/ox/SignatureEnvelope.test.ts +1252 -0
  110. package/src/ox/SignatureEnvelope.ts +709 -0
  111. package/src/ox/Transaction.test.ts +144 -89
  112. package/src/ox/Transaction.ts +104 -29
  113. package/src/ox/TransactionEnvelopeAA.test.ts +1533 -0
  114. package/src/ox/TransactionEnvelopeAA.ts +858 -0
  115. package/src/ox/TransactionRequest.ts +25 -17
  116. package/src/ox/index.ts +2 -1
  117. package/src/prool/Instance.ts +6 -14
  118. package/src/prool/internal/chain.json +101 -27
  119. package/src/viem/{abis.ts → Abis.ts} +322 -8
  120. package/src/viem/{actions → Actions}/amm.test.ts +65 -68
  121. package/src/viem/{actions → Actions}/amm.ts +72 -60
  122. package/src/viem/Actions/dex.test.ts +1608 -0
  123. package/src/viem/Actions/dex.ts +2026 -0
  124. package/src/viem/{actions → Actions}/fee.test.ts +34 -36
  125. package/src/viem/{actions → Actions}/fee.ts +18 -17
  126. package/src/viem/{actions → Actions}/index.ts +1 -0
  127. package/src/viem/{actions → Actions}/policy.test.ts +2 -2
  128. package/src/viem/{actions → Actions}/policy.ts +77 -64
  129. package/src/viem/{actions → Actions}/token.test.ts +403 -64
  130. package/src/viem/{actions → Actions}/token.ts +672 -133
  131. package/src/viem/Addresses.ts +9 -0
  132. package/src/viem/{chain.ts → Chain.ts} +6 -6
  133. package/src/viem/{client.bench-d.ts → Client.bench-d.ts} +2 -2
  134. package/src/viem/{client.test.ts → Client.test.ts} +31 -6
  135. package/src/viem/{client.ts → Client.ts} +1 -1
  136. package/src/viem/{decorator.bench-d.ts → Decorator.bench-d.ts} +2 -2
  137. package/src/viem/{decorator.test.ts → Decorator.test.ts} +1 -0
  138. package/src/viem/{decorator.ts → Decorator.ts} +586 -4
  139. package/src/viem/{formatters.ts → Formatters.ts} +31 -20
  140. package/src/viem/Tick.test.ts +281 -0
  141. package/src/viem/Tick.ts +176 -0
  142. package/src/viem/TokenIds.ts +2 -0
  143. package/src/viem/Transaction.ts +303 -0
  144. package/src/viem/{transport.ts → Transport.ts} +5 -5
  145. package/src/viem/e2e.test.ts +153 -78
  146. package/src/viem/index.ts +13 -9
  147. package/src/viem/{types.ts → internal/types.ts} +3 -3
  148. package/dist/ox/TransactionEnvelopeFeeToken.d.ts +0 -393
  149. package/dist/ox/TransactionEnvelopeFeeToken.d.ts.map +0 -1
  150. package/dist/ox/TransactionEnvelopeFeeToken.js +0 -452
  151. package/dist/ox/TransactionEnvelopeFeeToken.js.map +0 -1
  152. package/dist/viem/abis.d.ts.map +0 -1
  153. package/dist/viem/abis.js.map +0 -1
  154. package/dist/viem/actions/amm.d.ts.map +0 -1
  155. package/dist/viem/actions/amm.js.map +0 -1
  156. package/dist/viem/actions/fee.d.ts.map +0 -1
  157. package/dist/viem/actions/fee.js.map +0 -1
  158. package/dist/viem/actions/index.d.ts +0 -5
  159. package/dist/viem/actions/index.d.ts.map +0 -1
  160. package/dist/viem/actions/index.js +0 -5
  161. package/dist/viem/actions/index.js.map +0 -1
  162. package/dist/viem/actions/policy.d.ts.map +0 -1
  163. package/dist/viem/actions/policy.js.map +0 -1
  164. package/dist/viem/actions/token.d.ts.map +0 -1
  165. package/dist/viem/actions/token.js.map +0 -1
  166. package/dist/viem/addresses.d.ts +0 -8
  167. package/dist/viem/addresses.d.ts.map +0 -1
  168. package/dist/viem/addresses.js +0 -8
  169. package/dist/viem/addresses.js.map +0 -1
  170. package/dist/viem/chain.d.ts.map +0 -1
  171. package/dist/viem/chain.js.map +0 -1
  172. package/dist/viem/client.d.ts.map +0 -1
  173. package/dist/viem/client.js.map +0 -1
  174. package/dist/viem/decorator.d.ts.map +0 -1
  175. package/dist/viem/decorator.js.map +0 -1
  176. package/dist/viem/formatters.d.ts.map +0 -1
  177. package/dist/viem/formatters.js.map +0 -1
  178. package/dist/viem/transaction.d.ts +0 -54
  179. package/dist/viem/transaction.d.ts.map +0 -1
  180. package/dist/viem/transaction.js +0 -108
  181. package/dist/viem/transaction.js.map +0 -1
  182. package/dist/viem/transport.d.ts.map +0 -1
  183. package/dist/viem/transport.js.map +0 -1
  184. package/dist/viem/types.d.ts.map +0 -1
  185. package/dist/viem/utils.d.ts.map +0 -1
  186. package/dist/viem/utils.js.map +0 -1
  187. package/src/ox/TransactionEnvelopeFeeToken.test.ts +0 -1119
  188. package/src/ox/TransactionEnvelopeFeeToken.ts +0 -717
  189. package/src/prool/internal/consensus.toml +0 -32
  190. package/src/viem/addresses.ts +0 -10
  191. package/src/viem/transaction.ts +0 -253
  192. /package/dist/viem/{types.js → internal/types.js} +0 -0
  193. /package/dist/viem/{utils.d.ts → internal/utils.d.ts} +0 -0
  194. /package/dist/viem/{utils.js → internal/utils.js} +0 -0
  195. /package/src/viem/{utils.ts → internal/utils.ts} +0 -0
@@ -0,0 +1,437 @@
1
+ import * as Errors from 'ox/Errors';
2
+ import * as Hex from 'ox/Hex';
3
+ import * as Json from 'ox/Json';
4
+ import * as Signature from 'ox/Signature';
5
+ /** Signature type identifiers for encoding/decoding */
6
+ const serializedP256Type = '0x01';
7
+ const serializedWebAuthnType = '0x02';
8
+ /** List of supported signature types. */
9
+ export const types = ['secp256k1', 'p256', 'webAuthn'];
10
+ /**
11
+ * Asserts that a {@link SignatureEnvelope} is valid.
12
+ *
13
+ * @example
14
+ * ```ts twoslash
15
+ * import { SignatureEnvelope } from 'tempo.ts/ox'
16
+ *
17
+ * SignatureEnvelope.assert({
18
+ * r: 0n,
19
+ * s: 0n,
20
+ * yParity: 0,
21
+ * type: 'secp256k1',
22
+ * })
23
+ * ```
24
+ *
25
+ * @param envelope - The signature envelope to assert.
26
+ * @throws {CoercionError} If the envelope type cannot be determined.
27
+ */
28
+ export function assert(envelope) {
29
+ const type = getType(envelope);
30
+ if (type === 'secp256k1') {
31
+ Signature.assert(envelope.signature);
32
+ return;
33
+ }
34
+ if (type === 'p256') {
35
+ const p256 = envelope;
36
+ const missing = [];
37
+ if (typeof p256.signature?.r !== 'bigint')
38
+ missing.push('signature.r');
39
+ if (typeof p256.signature?.s !== 'bigint')
40
+ missing.push('signature.s');
41
+ if (typeof p256.prehash !== 'boolean')
42
+ missing.push('prehash');
43
+ if (!p256.publicKey)
44
+ missing.push('publicKey');
45
+ else {
46
+ if (typeof p256.publicKey.x !== 'bigint')
47
+ missing.push('publicKey.x');
48
+ if (typeof p256.publicKey.y !== 'bigint')
49
+ missing.push('publicKey.y');
50
+ }
51
+ if (missing.length > 0)
52
+ throw new MissingPropertiesError({ envelope, missing, type: 'p256' });
53
+ return;
54
+ }
55
+ if (type === 'webAuthn') {
56
+ const webauthn = envelope;
57
+ const missing = [];
58
+ if (typeof webauthn.signature?.r !== 'bigint')
59
+ missing.push('signature.r');
60
+ if (typeof webauthn.signature?.s !== 'bigint')
61
+ missing.push('signature.s');
62
+ if (!webauthn.metadata)
63
+ missing.push('metadata');
64
+ else {
65
+ if (!webauthn.metadata.authenticatorData)
66
+ missing.push('metadata.authenticatorData');
67
+ if (!webauthn.metadata.clientDataJSON)
68
+ missing.push('metadata.clientDataJSON');
69
+ }
70
+ if (!webauthn.publicKey)
71
+ missing.push('publicKey');
72
+ else {
73
+ if (typeof webauthn.publicKey.x !== 'bigint')
74
+ missing.push('publicKey.x');
75
+ if (typeof webauthn.publicKey.y !== 'bigint')
76
+ missing.push('publicKey.y');
77
+ }
78
+ if (missing.length > 0)
79
+ throw new MissingPropertiesError({ envelope, missing, type: 'webAuthn' });
80
+ return;
81
+ }
82
+ }
83
+ /**
84
+ * Deserializes a hex-encoded signature envelope into a typed signature object.
85
+ *
86
+ * For backward compatibility:
87
+ * - 65 bytes: secp256k1 signature (no type identifier)
88
+ * - 130 bytes: P256 signature (1 byte type + 129 bytes data)
89
+ * - 129+ bytes: WebAuthn signature (1 byte type + variable data)
90
+ *
91
+ * @param serialized - The hex-encoded signature envelope to deserialize.
92
+ * @returns The deserialized signature envelope.
93
+ * @throws {CoercionError} If the serialized value cannot be coerced to a valid signature envelope.
94
+ */
95
+ export function deserialize(serialized) {
96
+ const size = Hex.size(serialized);
97
+ // Backward compatibility: 65 bytes means secp256k1 without type identifier
98
+ if (size === 65) {
99
+ const signature = Signature.fromHex(serialized);
100
+ Signature.assert(signature);
101
+ return { signature, type: 'secp256k1' };
102
+ }
103
+ // For all other lengths, first byte is the type identifier
104
+ const typeId = Hex.slice(serialized, 0, 1);
105
+ const data = Hex.slice(serialized, 1);
106
+ const dataSize = Hex.size(data);
107
+ if (typeId === serializedP256Type) {
108
+ // P256: 32 (r) + 32 (s) + 32 (pubKeyX) + 32 (pubKeyY) + 1 (prehash) = 129 bytes
109
+ if (dataSize !== 129)
110
+ throw new InvalidSerializedError({
111
+ reason: `Invalid P256 signature envelope size: expected 129 bytes, got ${dataSize} bytes`,
112
+ serialized,
113
+ });
114
+ return {
115
+ publicKey: {
116
+ prefix: 4,
117
+ x: Hex.toBigInt(Hex.slice(data, 64, 96)),
118
+ y: Hex.toBigInt(Hex.slice(data, 96, 128)),
119
+ },
120
+ prehash: Hex.toNumber(Hex.slice(data, 128, 129)) !== 0,
121
+ signature: {
122
+ r: Hex.toBigInt(Hex.slice(data, 0, 32)),
123
+ s: Hex.toBigInt(Hex.slice(data, 32, 64)),
124
+ },
125
+ type: 'p256',
126
+ };
127
+ }
128
+ if (typeId === serializedWebAuthnType) {
129
+ // WebAuthn: variable (webauthnData) + 32 (r) + 32 (s) + 32 (pubKeyX) + 32 (pubKeyY)
130
+ // Minimum: 128 bytes (at least some authenticator data + signature components)
131
+ if (dataSize < 128)
132
+ throw new InvalidSerializedError({
133
+ reason: `Invalid WebAuthn signature envelope size: expected at least 128 bytes, got ${dataSize} bytes`,
134
+ serialized,
135
+ });
136
+ const webauthnDataSize = dataSize - 128;
137
+ const webauthnData = Hex.slice(data, 0, webauthnDataSize);
138
+ // Parse webauthnData into authenticatorData and clientDataJSON
139
+ // According to the Rust code, it's authenticatorData || clientDataJSON
140
+ // We need to find the split point (minimum authenticatorData is 37 bytes)
141
+ let authenticatorData;
142
+ let clientDataJSON;
143
+ // Try to find the JSON start (clientDataJSON should start with '{')
144
+ for (let split = 37; split < webauthnDataSize; split++) {
145
+ const potentialJson = Hex.toString(Hex.slice(webauthnData, split));
146
+ if (potentialJson.startsWith('{') && potentialJson.endsWith('}')) {
147
+ try {
148
+ JSON.parse(potentialJson);
149
+ authenticatorData = Hex.slice(webauthnData, 0, split);
150
+ clientDataJSON = potentialJson;
151
+ break;
152
+ }
153
+ catch { }
154
+ }
155
+ }
156
+ if (!authenticatorData || !clientDataJSON)
157
+ throw new InvalidSerializedError({
158
+ reason: 'Unable to parse WebAuthn metadata: could not extract valid authenticatorData and clientDataJSON',
159
+ serialized,
160
+ });
161
+ return {
162
+ publicKey: {
163
+ prefix: 4,
164
+ x: Hex.toBigInt(Hex.slice(data, webauthnDataSize + 64, webauthnDataSize + 96)),
165
+ y: Hex.toBigInt(Hex.slice(data, webauthnDataSize + 96, webauthnDataSize + 128)),
166
+ },
167
+ metadata: {
168
+ authenticatorData,
169
+ clientDataJSON,
170
+ },
171
+ signature: {
172
+ r: Hex.toBigInt(Hex.slice(data, webauthnDataSize, webauthnDataSize + 32)),
173
+ s: Hex.toBigInt(Hex.slice(data, webauthnDataSize + 32, webauthnDataSize + 64)),
174
+ },
175
+ type: 'webAuthn',
176
+ };
177
+ }
178
+ throw new InvalidSerializedError({
179
+ reason: `Unknown signature type identifier: ${typeId}. Expected ${serializedP256Type} (P256) or ${serializedWebAuthnType} (WebAuthn)`,
180
+ serialized,
181
+ });
182
+ }
183
+ /**
184
+ * Coerces a value to a signature envelope.
185
+ *
186
+ * Accepts either a serialized hex string or an existing signature envelope object.
187
+ *
188
+ * @param value - The value to coerce (either a hex string or signature envelope).
189
+ * @returns The signature envelope.
190
+ */
191
+ export function from(value) {
192
+ if (typeof value === 'string')
193
+ return deserialize(value);
194
+ if (typeof value === 'object' &&
195
+ value !== null &&
196
+ 'r' in value &&
197
+ 's' in value &&
198
+ 'yParity' in value)
199
+ return { signature: value, type: 'secp256k1' };
200
+ const type = getType(value);
201
+ return { ...value, type };
202
+ }
203
+ /**
204
+ * Converts an {@link SignatureEnvelopeRpc} to a {@link SignatureEnvelope}.
205
+ *
206
+ * @param envelope - The RPC signature envelope to convert.
207
+ * @returns The signature envelope with bigint values.
208
+ */
209
+ export function fromRpc(envelope) {
210
+ if (envelope.type === 'secp256k1')
211
+ return {
212
+ signature: Signature.fromRpc(envelope),
213
+ type: 'secp256k1',
214
+ };
215
+ if (envelope.type === 'p256') {
216
+ return {
217
+ prehash: envelope.prehash,
218
+ publicKey: {
219
+ prefix: 4,
220
+ x: Hex.toBigInt(envelope.pubKeyX),
221
+ y: Hex.toBigInt(envelope.pubKeyY),
222
+ },
223
+ signature: {
224
+ r: Hex.toBigInt(envelope.r),
225
+ s: Hex.toBigInt(envelope.s),
226
+ },
227
+ type: 'p256',
228
+ };
229
+ }
230
+ if (envelope.type === 'webAuthn') {
231
+ const webauthnData = envelope.webauthnData;
232
+ const webauthnDataSize = Hex.size(webauthnData);
233
+ // Parse webauthnData into authenticatorData and clientDataJSON
234
+ let authenticatorData;
235
+ let clientDataJSON;
236
+ // Try to find the JSON start (clientDataJSON should start with '{')
237
+ for (let split = 37; split < webauthnDataSize; split++) {
238
+ const potentialJson = Hex.toString(Hex.slice(webauthnData, split));
239
+ if (potentialJson.startsWith('{') && potentialJson.endsWith('}')) {
240
+ try {
241
+ JSON.parse(potentialJson);
242
+ authenticatorData = Hex.slice(webauthnData, 0, split);
243
+ clientDataJSON = potentialJson;
244
+ break;
245
+ }
246
+ catch { }
247
+ }
248
+ }
249
+ if (!authenticatorData || !clientDataJSON)
250
+ throw new InvalidSerializedError({
251
+ reason: 'Unable to parse WebAuthn metadata: could not extract valid authenticatorData and clientDataJSON',
252
+ serialized: webauthnData,
253
+ });
254
+ return {
255
+ metadata: {
256
+ authenticatorData,
257
+ clientDataJSON,
258
+ },
259
+ publicKey: {
260
+ prefix: 4,
261
+ x: Hex.toBigInt(envelope.pubKeyX),
262
+ y: Hex.toBigInt(envelope.pubKeyY),
263
+ },
264
+ signature: {
265
+ r: Hex.toBigInt(envelope.r),
266
+ s: Hex.toBigInt(envelope.s),
267
+ },
268
+ type: 'webAuthn',
269
+ };
270
+ }
271
+ throw new CoercionError({ envelope });
272
+ }
273
+ /**
274
+ * Determines the signature type of an envelope.
275
+ *
276
+ * @param envelope - The signature envelope to inspect.
277
+ * @returns The signature type ('secp256k1', 'p256', or 'webAuthn').
278
+ * @throws {CoercionError} If the envelope type cannot be determined.
279
+ */
280
+ export function getType(envelope) {
281
+ if (typeof envelope !== 'object' || envelope === null)
282
+ throw new CoercionError({ envelope });
283
+ if ('type' in envelope && envelope.type)
284
+ return envelope.type;
285
+ // Detect secp256k1 signature (backwards compatibility: also support flat structure)
286
+ if ('signature' in envelope &&
287
+ !('publicKey' in envelope) &&
288
+ typeof envelope.signature === 'object' &&
289
+ envelope.signature !== null &&
290
+ 'r' in envelope.signature &&
291
+ 's' in envelope.signature &&
292
+ 'yParity' in envelope.signature)
293
+ return 'secp256k1';
294
+ // Detect secp256k1 signature (flat structure)
295
+ if ('r' in envelope && 's' in envelope && 'yParity' in envelope)
296
+ return 'secp256k1';
297
+ // Detect P256 signature
298
+ if ('signature' in envelope &&
299
+ 'prehash' in envelope &&
300
+ 'publicKey' in envelope &&
301
+ typeof envelope.prehash === 'boolean')
302
+ return 'p256';
303
+ // Detect WebAuthn signature
304
+ if ('signature' in envelope &&
305
+ 'metadata' in envelope &&
306
+ 'publicKey' in envelope)
307
+ return 'webAuthn';
308
+ throw new CoercionError({
309
+ envelope,
310
+ });
311
+ }
312
+ /**
313
+ * Serializes a signature envelope to a hex-encoded string.
314
+ *
315
+ * For backward compatibility:
316
+ * - secp256k1: encoded WITHOUT type identifier (65 bytes)
317
+ * - P256: encoded WITH type identifier prefix (130 bytes)
318
+ * - WebAuthn: encoded WITH type identifier prefix (variable length)
319
+ *
320
+ * @param envelope - The signature envelope to serialize.
321
+ * @returns The hex-encoded serialized signature.
322
+ * @throws {CoercionError} If the envelope cannot be serialized.
323
+ */
324
+ export function serialize(envelope) {
325
+ const type = getType(envelope);
326
+ // Backward compatibility: no type identifier for secp256k1
327
+ if (type === 'secp256k1')
328
+ return Signature.toHex(envelope.signature);
329
+ if (type === 'p256') {
330
+ const p256 = envelope;
331
+ // Format: 1 byte (type) + 32 (r) + 32 (s) + 32 (pubKeyX) + 32 (pubKeyY) + 1 (prehash)
332
+ return Hex.concat(serializedP256Type, Hex.fromNumber(p256.signature.r, { size: 32 }), Hex.fromNumber(p256.signature.s, { size: 32 }), Hex.fromNumber(p256.publicKey.x, { size: 32 }), Hex.fromNumber(p256.publicKey.y, { size: 32 }), Hex.fromNumber(p256.prehash ? 1 : 0, { size: 1 }));
333
+ }
334
+ if (type === 'webAuthn') {
335
+ const webauthn = envelope;
336
+ // Format: 1 byte (type) + variable (authenticatorData || clientDataJSON) + 32 (r) + 32 (s) + 32 (pubKeyX) + 32 (pubKeyY)
337
+ const webauthnData = Hex.concat(webauthn.metadata.authenticatorData, Hex.fromString(webauthn.metadata.clientDataJSON));
338
+ return Hex.concat(serializedWebAuthnType, webauthnData, Hex.fromNumber(webauthn.signature.r, { size: 32 }), Hex.fromNumber(webauthn.signature.s, { size: 32 }), Hex.fromNumber(webauthn.publicKey.x, { size: 32 }), Hex.fromNumber(webauthn.publicKey.y, { size: 32 }));
339
+ }
340
+ throw new CoercionError({ envelope });
341
+ }
342
+ /**
343
+ * Converts a {@link SignatureEnvelope} to an {@link SignatureEnvelopeRpc}.
344
+ *
345
+ * @param envelope - The signature envelope to convert.
346
+ * @returns The RPC signature envelope with hex values.
347
+ */
348
+ export function toRpc(envelope) {
349
+ const type = getType(envelope);
350
+ if (type === 'secp256k1') {
351
+ const secp256k1 = envelope;
352
+ return {
353
+ ...Signature.toRpc(secp256k1.signature),
354
+ type: 'secp256k1',
355
+ };
356
+ }
357
+ if (type === 'p256') {
358
+ const p256 = envelope;
359
+ return {
360
+ prehash: p256.prehash,
361
+ pubKeyX: Hex.fromNumber(p256.publicKey.x, { size: 32 }),
362
+ pubKeyY: Hex.fromNumber(p256.publicKey.y, { size: 32 }),
363
+ r: Hex.fromNumber(p256.signature.r, { size: 32 }),
364
+ s: Hex.fromNumber(p256.signature.s, { size: 32 }),
365
+ type: 'p256',
366
+ };
367
+ }
368
+ if (type === 'webAuthn') {
369
+ const webauthn = envelope;
370
+ const webauthnData = Hex.concat(webauthn.metadata.authenticatorData, Hex.fromString(webauthn.metadata.clientDataJSON));
371
+ return {
372
+ pubKeyX: Hex.fromNumber(webauthn.publicKey.x, { size: 32 }),
373
+ pubKeyY: Hex.fromNumber(webauthn.publicKey.y, { size: 32 }),
374
+ r: Hex.fromNumber(webauthn.signature.r, { size: 32 }),
375
+ s: Hex.fromNumber(webauthn.signature.s, { size: 32 }),
376
+ type: 'webAuthn',
377
+ webauthnData,
378
+ };
379
+ }
380
+ throw new CoercionError({ envelope });
381
+ }
382
+ /**
383
+ * Validates a {@link SignatureEnvelope}. Returns `true` if the envelope is valid, `false` otherwise.
384
+ *
385
+ * @example
386
+ * ```ts twoslash
387
+ * import { SignatureEnvelope } from 'tempo.ts/ox'
388
+ *
389
+ * const valid = SignatureEnvelope.validate({
390
+ * signature: { r: 0n, s: 0n, yParity: 0 },
391
+ * type: 'secp256k1',
392
+ * })
393
+ * // @log: true
394
+ * ```
395
+ *
396
+ * @param envelope - The signature envelope to validate.
397
+ * @returns `true` if valid, `false` otherwise.
398
+ */
399
+ export function validate(envelope) {
400
+ try {
401
+ assert(envelope);
402
+ return true;
403
+ }
404
+ catch {
405
+ return false;
406
+ }
407
+ }
408
+ /**
409
+ * Error thrown when a signature envelope cannot be coerced to a valid type.
410
+ */
411
+ export class CoercionError extends Errors.BaseError {
412
+ name = 'SignatureEnvelope.CoercionError';
413
+ constructor({ envelope }) {
414
+ super(`Unable to coerce value (\`${Json.stringify(envelope)}\`) to a valid signature envelope.`);
415
+ }
416
+ }
417
+ /**
418
+ * Error thrown when a signature envelope is missing required properties.
419
+ */
420
+ export class MissingPropertiesError extends Errors.BaseError {
421
+ name = 'SignatureEnvelope.MissingPropertiesError';
422
+ constructor({ envelope, missing, type, }) {
423
+ super(`Signature envelope of type "${type}" is missing required properties: ${missing.map((m) => `\`${m}\``).join(', ')}.\n\nProvided: ${Json.stringify(envelope)}`);
424
+ }
425
+ }
426
+ /**
427
+ * Error thrown when a serialized signature envelope cannot be deserialized.
428
+ */
429
+ export class InvalidSerializedError extends Errors.BaseError {
430
+ name = 'SignatureEnvelope.InvalidSerializedError';
431
+ constructor({ reason, serialized, }) {
432
+ super(`Unable to deserialize signature envelope: ${reason}`, {
433
+ metaMessages: [`Serialized: ${serialized}`],
434
+ });
435
+ }
436
+ }
437
+ //# sourceMappingURL=SignatureEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignatureEnvelope.js","sourceRoot":"","sources":["../../src/ox/SignatureEnvelope.ts"],"names":[],"mappings":"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"}
@@ -4,25 +4,27 @@ import type * as Authorization from 'ox/Authorization';
4
4
  import type * as Errors from 'ox/Errors';
5
5
  import * as Hex from 'ox/Hex';
6
6
  import * as ox_Transaction from 'ox/Transaction';
7
- import type { Compute, OneOf, UnionCompute } from "../internal/types.js";
7
+ import type { Compute, OneOf, UnionCompute } from '../internal/types.js';
8
+ import * as SignatureEnvelope from './SignatureEnvelope.js';
9
+ import type { Call } from './TransactionEnvelopeAA.js';
8
10
  /**
9
11
  * A Transaction as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml).
10
12
  */
11
- export type Transaction<pending extends boolean = false, bigintType = bigint, numberType = number> = UnionCompute<OneOf<FeeToken<pending, bigintType, numberType> | ox_Transaction.Transaction<pending, bigintType, numberType>>>;
13
+ export type Transaction<pending extends boolean = false, bigintType = bigint, numberType = number> = UnionCompute<OneOf<AA<pending, bigintType, numberType> | ox_Transaction.Transaction<pending, bigintType, numberType>>>;
12
14
  /**
13
15
  * An RPC Transaction as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml).
14
16
  */
15
- export type Rpc<pending extends boolean = false> = UnionCompute<OneOf<FeeTokenRpc<pending> | ox_Transaction.Rpc<pending>>>;
17
+ export type Rpc<pending extends boolean = false> = UnionCompute<OneOf<AARpc<pending> | ox_Transaction.Rpc<pending>>>;
16
18
  /**
17
- * Fee token transaction.
19
+ * Native account abstraction transaction.
18
20
  */
19
- export type FeeToken<pending extends boolean = false, bigintType = bigint, numberType = number, type extends string = 'feeToken'> = Compute<ox_Transaction.Base<type, pending, bigintType, numberType> & {
21
+ export type AA<pending extends boolean = false, bigintType = bigint, numberType = number, type extends string = 'aa'> = Compute<Omit<ox_Transaction.Base<type, pending, bigintType, numberType>, 'input' | 'to' | 'value' | 'v' | 'r' | 's' | 'yParity'> & {
20
22
  /** EIP-2930 Access List. */
21
23
  accessList: AccessList.AccessList;
22
24
  /** EIP-7702 Authorization list for the transaction. */
23
- authorizationList: Authorization.ListSigned<bigintType, numberType>;
24
- /** Fee token preference. */
25
- feeToken: Address.Address;
25
+ authorizationList?: Authorization.ListSigned<bigintType, numberType> | undefined;
26
+ /** Array of calls to execute. */
27
+ calls: readonly Call<bigintType>[];
26
28
  /** Fee payer address. */
27
29
  feePayer?: Address.Address | undefined;
28
30
  /** Fee payer signature. */
@@ -36,20 +38,37 @@ export type FeeToken<pending extends boolean = false, bigintType = bigint, numbe
36
38
  /** @deprecated ECDSA signature v (for backwards compatibility). */
37
39
  v?: numberType | undefined;
38
40
  } | undefined;
41
+ /** Fee token preference. */
42
+ feeToken: Address.Address;
39
43
  /** Effective gas price paid by the sender in wei. */
40
44
  gasPrice?: bigintType | undefined;
41
45
  /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). */
42
46
  maxFeePerGas: bigintType;
43
47
  /** Max priority fee per gas (in wei). */
44
48
  maxPriorityFeePerGas: bigintType;
49
+ /** Nonce key for 2D nonce system (192 bits). */
50
+ nonceKey?: bigintType | undefined;
51
+ /** Sender signature. */
52
+ signature: SignatureEnvelope.SignatureEnvelope<bigintType, numberType>;
53
+ /** Transaction can only be included in a block before this timestamp. */
54
+ validBefore?: numberType | undefined;
55
+ /** Transaction can only be included in a block after this timestamp. */
56
+ validAfter?: numberType | undefined;
45
57
  }>;
46
58
  /**
47
- * Fee token transaction in RPC format.
59
+ * Native account abstraction transaction in RPC format.
48
60
  */
49
- export type FeeTokenRpc<pending extends boolean = false> = Compute<FeeToken<pending, Hex.Hex, Hex.Hex, ToRpcType['feeToken']>>;
61
+ export type AARpc<pending extends boolean = false> = Compute<Omit<AA<pending, Hex.Hex, Hex.Hex, ToRpcType['aa']>, 'calls' | 'signature'> & {
62
+ calls: readonly {
63
+ input?: Hex.Hex | undefined;
64
+ to?: Hex.Hex | undefined;
65
+ value?: Hex.Hex | undefined;
66
+ }[] | undefined;
67
+ signature: SignatureEnvelope.SignatureEnvelopeRpc;
68
+ }>;
50
69
  /** Type to RPC Type mapping. */
51
70
  export declare const toRpcType: {
52
- readonly feeToken: "0x77";
71
+ readonly aa: "0x76";
53
72
  readonly legacy: "0x0";
54
73
  readonly eip2930: "0x1";
55
74
  readonly eip1559: "0x2";
@@ -62,7 +81,7 @@ export type ToRpcType = typeof toRpcType & {
62
81
  };
63
82
  /** RPC Type to Type mapping. */
64
83
  export declare const fromRpcType: {
65
- readonly '0x77': "feeToken";
84
+ readonly '0x76': "aa";
66
85
  readonly '0x0': "legacy";
67
86
  readonly '0x1': "eip2930";
68
87
  readonly '0x2': "eip1559";
@@ -86,22 +105,31 @@ export type FromRpcType = typeof fromRpcType & {
86
105
  * blockHash:
87
106
  * '0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b',
88
107
  * blockNumber: '0x12f296f',
108
+ * calls: [
109
+ * {
110
+ * input: '0xdeadbeef',
111
+ * to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
112
+ * value: '0x9b6e64a8ec60000',
113
+ * },
114
+ * ],
89
115
  * feeToken: '0x20c0000000000000000000000000000000000000',
90
116
  * transactionIndex: '0x2',
91
117
  * from: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
92
- * to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
93
118
  * value: '0x9b6e64a8ec60000',
94
119
  * gas: '0x43f5d',
95
120
  * maxFeePerGas: '0x2ca6ae494',
96
121
  * maxPriorityFeePerGas: '0x41cc3c0',
97
122
  * input:
98
123
  * '0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000006643504700000000000000000000000000000000000000000000000000000000000000040b080604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec600000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec60000000000000000000000000000000000000000000000000000019124bb5ae978c000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b80000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b8000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c00000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000190240001b9872b',
99
- * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',
100
- * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',
101
- * yParity: '0x0',
124
+ * signature: {
125
+ * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',
126
+ * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',
127
+ * type: 'secp256k1',
128
+ * yParity: '0x0',
129
+ * },
102
130
  * chainId: '0x1',
103
131
  * accessList: [],
104
- * type: '0x77',
132
+ * type: '0x76',
105
133
  * })
106
134
  * ```
107
135
  *
@@ -127,6 +155,13 @@ export declare namespace fromRpc {
127
155
  * blockHash:
128
156
  * '0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b',
129
157
  * blockNumber: 19868015n,
158
+ * calls: [
159
+ * {
160
+ * data: '0xdeadbeef',
161
+ * to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
162
+ * value: 700000000000000000n,
163
+ * },
164
+ * ],
130
165
  * chainId: 1,
131
166
  * feeToken: '0x20c0000000000000000000000000000000000000',
132
167
  * from: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
@@ -137,14 +172,16 @@ export declare namespace fromRpc {
137
172
  * maxFeePerGas: 11985937556n,
138
173
  * maxPriorityFeePerGas: 68993984n,
139
174
  * nonce: 855n,
140
- * r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,
141
- * s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,
142
- * to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
175
+ * signature: {
176
+ * signature: {
177
+ * r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,
178
+ * s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,
179
+ * yParity: 0,
180
+ * },
181
+ * type: 'secp256k1',
182
+ * },
143
183
  * transactionIndex: 2,
144
- * type: 'feeToken',
145
- * v: 27,
146
- * value: 700000000000000000n,
147
- * yParity: 0,
184
+ * type: 'aa',
148
185
  * })
149
186
  * ```
150
187
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/ox/Transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/ox/Transaction.ts"],"names":[],"mappings":"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"}