ox 1.7.4 → 1.8.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 (237) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/core/AbiEvent.d.ts.map +1 -1
  3. package/dist/core/AbiEvent.js +10 -9
  4. package/dist/core/AbiEvent.js.map +1 -1
  5. package/dist/core/Blobs.d.ts.map +1 -1
  6. package/dist/core/Blobs.js +6 -2
  7. package/dist/core/Blobs.js.map +1 -1
  8. package/dist/core/Frame.d.ts +290 -0
  9. package/dist/core/Frame.d.ts.map +1 -0
  10. package/dist/core/Frame.js +306 -0
  11. package/dist/core/Frame.js.map +1 -0
  12. package/dist/core/FrameReceipt.d.ts +92 -0
  13. package/dist/core/FrameReceipt.d.ts.map +1 -0
  14. package/dist/core/FrameReceipt.js +72 -0
  15. package/dist/core/FrameReceipt.js.map +1 -0
  16. package/dist/core/FrameSignature.d.ts +357 -0
  17. package/dist/core/FrameSignature.d.ts.map +1 -0
  18. package/dist/core/FrameSignature.js +411 -0
  19. package/dist/core/FrameSignature.js.map +1 -0
  20. package/dist/core/Signature.d.ts +6 -5
  21. package/dist/core/Signature.d.ts.map +1 -1
  22. package/dist/core/Signature.js +17 -7
  23. package/dist/core/Signature.js.map +1 -1
  24. package/dist/core/Siwe.d.ts.map +1 -1
  25. package/dist/core/Siwe.js +21 -1
  26. package/dist/core/Siwe.js.map +1 -1
  27. package/dist/core/Transaction.d.ts +29 -4
  28. package/dist/core/Transaction.d.ts.map +1 -1
  29. package/dist/core/Transaction.js +25 -4
  30. package/dist/core/Transaction.js.map +1 -1
  31. package/dist/core/TransactionReceipt.d.ts +13 -4
  32. package/dist/core/TransactionReceipt.d.ts.map +1 -1
  33. package/dist/core/TransactionReceipt.js +14 -0
  34. package/dist/core/TransactionReceipt.js.map +1 -1
  35. package/dist/core/TransactionRequest.d.ts +15 -7
  36. package/dist/core/TransactionRequest.d.ts.map +1 -1
  37. package/dist/core/TransactionRequest.js +47 -1
  38. package/dist/core/TransactionRequest.js.map +1 -1
  39. package/dist/core/TxEnvelope.d.ts +35 -21
  40. package/dist/core/TxEnvelope.d.ts.map +1 -1
  41. package/dist/core/TxEnvelope.js +46 -6
  42. package/dist/core/TxEnvelope.js.map +1 -1
  43. package/dist/core/TxEnvelopeEip8141.d.ts +341 -0
  44. package/dist/core/TxEnvelopeEip8141.d.ts.map +1 -0
  45. package/dist/core/TxEnvelopeEip8141.js +485 -0
  46. package/dist/core/TxEnvelopeEip8141.js.map +1 -0
  47. package/dist/core/internal/curves.d.ts +2 -0
  48. package/dist/core/internal/curves.d.ts.map +1 -1
  49. package/dist/core/internal/curves.js +2 -0
  50. package/dist/core/internal/curves.js.map +1 -1
  51. package/dist/index.d.ts +73 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +73 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/tempo/KeyAuthorization.d.ts +42 -38
  56. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  57. package/dist/tempo/KeyAuthorization.js +24 -4
  58. package/dist/tempo/KeyAuthorization.js.map +1 -1
  59. package/dist/tempo/MultisigConfig.d.ts +18 -15
  60. package/dist/tempo/MultisigConfig.d.ts.map +1 -1
  61. package/dist/tempo/MultisigConfig.js +49 -20
  62. package/dist/tempo/MultisigConfig.js.map +1 -1
  63. package/dist/tempo/MultisigOperation.d.ts +3 -2
  64. package/dist/tempo/MultisigOperation.d.ts.map +1 -1
  65. package/dist/tempo/MultisigOperation.js +20 -100
  66. package/dist/tempo/MultisigOperation.js.map +1 -1
  67. package/dist/tempo/MultisigSimulation.d.ts +2 -49
  68. package/dist/tempo/MultisigSimulation.d.ts.map +1 -1
  69. package/dist/tempo/MultisigSimulation.js +18 -46
  70. package/dist/tempo/MultisigSimulation.js.map +1 -1
  71. package/dist/tempo/SignatureEnvelope.d.ts +72 -140
  72. package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
  73. package/dist/tempo/SignatureEnvelope.js +130 -181
  74. package/dist/tempo/SignatureEnvelope.js.map +1 -1
  75. package/dist/tempo/Transaction.d.ts +2 -0
  76. package/dist/tempo/Transaction.d.ts.map +1 -1
  77. package/dist/tempo/TransactionReceipt.d.ts +2 -0
  78. package/dist/tempo/TransactionReceipt.d.ts.map +1 -1
  79. package/dist/tempo/TransactionRequest.d.ts +4 -2
  80. package/dist/tempo/TransactionRequest.d.ts.map +1 -1
  81. package/dist/tempo/TransactionRequest.js +6 -1
  82. package/dist/tempo/TransactionRequest.js.map +1 -1
  83. package/dist/tempo/index.d.ts +3 -1
  84. package/dist/tempo/index.d.ts.map +1 -1
  85. package/dist/tempo/index.js +3 -1
  86. package/dist/tempo/index.js.map +1 -1
  87. package/dist/zod/Block.d.ts +123 -0
  88. package/dist/zod/Block.d.ts.map +1 -1
  89. package/dist/zod/Frame.d.ts +73 -0
  90. package/dist/zod/Frame.d.ts.map +1 -0
  91. package/dist/zod/Frame.js +74 -0
  92. package/dist/zod/Frame.js.map +1 -0
  93. package/dist/zod/FrameReceipt.d.ts +50 -0
  94. package/dist/zod/FrameReceipt.d.ts.map +1 -0
  95. package/dist/zod/FrameReceipt.js +37 -0
  96. package/dist/zod/FrameReceipt.js.map +1 -0
  97. package/dist/zod/FrameSignature.d.ts +63 -0
  98. package/dist/zod/FrameSignature.d.ts.map +1 -0
  99. package/dist/zod/FrameSignature.js +66 -0
  100. package/dist/zod/FrameSignature.js.map +1 -0
  101. package/dist/zod/RpcSchema.d.ts +806 -11
  102. package/dist/zod/RpcSchema.d.ts.map +1 -1
  103. package/dist/zod/Transaction.d.ts +252 -0
  104. package/dist/zod/Transaction.d.ts.map +1 -1
  105. package/dist/zod/Transaction.js +54 -0
  106. package/dist/zod/Transaction.js.map +1 -1
  107. package/dist/zod/TransactionEnvelope.d.ts +233 -4
  108. package/dist/zod/TransactionEnvelope.d.ts.map +1 -1
  109. package/dist/zod/TransactionEnvelope.js +9 -0
  110. package/dist/zod/TransactionEnvelope.js.map +1 -1
  111. package/dist/zod/TransactionReceipt.d.ts +48 -0
  112. package/dist/zod/TransactionReceipt.d.ts.map +1 -1
  113. package/dist/zod/TransactionReceipt.js +8 -3
  114. package/dist/zod/TransactionReceipt.js.map +1 -1
  115. package/dist/zod/TransactionRequest.d.ts +50 -2
  116. package/dist/zod/TransactionRequest.d.ts.map +1 -1
  117. package/dist/zod/TransactionRequest.js +10 -4
  118. package/dist/zod/TransactionRequest.js.map +1 -1
  119. package/dist/zod/TxEnvelopeEip8141.d.ts +166 -0
  120. package/dist/zod/TxEnvelopeEip8141.d.ts.map +1 -0
  121. package/dist/zod/TxEnvelopeEip8141.js +76 -0
  122. package/dist/zod/TxEnvelopeEip8141.js.map +1 -0
  123. package/dist/zod/internal/Frame.d.ts +4 -0
  124. package/dist/zod/internal/Frame.d.ts.map +1 -0
  125. package/dist/zod/internal/Frame.js +17 -0
  126. package/dist/zod/internal/Frame.js.map +1 -0
  127. package/dist/zod/internal/rpcSchemas/Eth.d.ts +842 -11
  128. package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
  129. package/dist/zod/internal/rpcSchemas/Wallet.d.ts +56 -2
  130. package/dist/zod/internal/rpcSchemas/Wallet.d.ts.map +1 -1
  131. package/dist/zod/tempo/AuthorizationTempo.d.ts +350 -10
  132. package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
  133. package/dist/zod/tempo/KeyAuthorization.d.ts +242 -422
  134. package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
  135. package/dist/zod/tempo/KeyAuthorization.js +29 -31
  136. package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
  137. package/dist/zod/tempo/MultisigSimulation.d.ts +8 -76
  138. package/dist/zod/tempo/MultisigSimulation.d.ts.map +1 -1
  139. package/dist/zod/tempo/MultisigSimulation.js +3 -37
  140. package/dist/zod/tempo/MultisigSimulation.js.map +1 -1
  141. package/dist/zod/tempo/RpcSchemaTempo.d.ts +424 -228
  142. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  143. package/dist/zod/tempo/SignatureEnvelope.d.ts +105 -3
  144. package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
  145. package/dist/zod/tempo/SignatureEnvelope.js +21 -9
  146. package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
  147. package/dist/zod/tempo/Transaction.d.ts +783 -432
  148. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  149. package/dist/zod/tempo/TransactionRequest.d.ts +590 -473
  150. package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
  151. package/dist/zod/tempo/TransactionRequest.js +8 -0
  152. package/dist/zod/tempo/TransactionRequest.js.map +1 -1
  153. package/dist/zod/tempo/TxEnvelopeTempo.d.ts +327 -213
  154. package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  155. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +105 -3
  156. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
  157. package/dist/zod/z.d.ts +4 -0
  158. package/dist/zod/z.d.ts.map +1 -1
  159. package/dist/zod/z.js +4 -0
  160. package/dist/zod/z.js.map +1 -1
  161. package/package.json +41 -1
  162. package/src/core/AbiEvent.ts +11 -9
  163. package/src/core/Blobs.ts +6 -2
  164. package/src/core/Frame.ts +443 -0
  165. package/src/core/FrameReceipt.ts +117 -0
  166. package/src/core/FrameSignature.ts +593 -0
  167. package/src/core/Signature.ts +41 -11
  168. package/src/core/Siwe.ts +20 -1
  169. package/src/core/Transaction.ts +82 -5
  170. package/src/core/TransactionReceipt.ts +41 -3
  171. package/src/core/TransactionRequest.ts +71 -4
  172. package/src/core/TxEnvelope.ts +159 -90
  173. package/src/core/TxEnvelopeEip8141.ts +715 -0
  174. package/src/core/_test/AbiEvent.test.ts +45 -0
  175. package/src/core/_test/Blobs.test.ts +22 -0
  176. package/src/core/_test/Frame.test-d.ts +96 -0
  177. package/src/core/_test/Frame.test.ts +267 -0
  178. package/src/core/_test/FrameReceipt.test.ts +86 -0
  179. package/src/core/_test/FrameSignature.test-d.ts +93 -0
  180. package/src/core/_test/FrameSignature.test.ts +554 -0
  181. package/src/core/_test/Signature.test.ts +166 -0
  182. package/src/core/_test/Siwe.test.ts +100 -1
  183. package/src/core/_test/Transaction.test.ts +33 -0
  184. package/src/core/_test/TransactionEnvelope.test-d.ts +74 -0
  185. package/src/core/_test/TransactionEnvelope.test.ts +107 -0
  186. package/src/core/_test/TransactionReceipt.test.ts +59 -0
  187. package/src/core/_test/TransactionRequest.test-d.ts +50 -0
  188. package/src/core/_test/TransactionRequest.test.ts +88 -1
  189. package/src/core/_test/TxEnvelopeEip8141.test-d.ts +44 -0
  190. package/src/core/_test/TxEnvelopeEip8141.test.ts +1775 -0
  191. package/src/core/_test/curves.test.ts +6 -1
  192. package/src/core/_test/index.test.ts +4 -0
  193. package/src/core/internal/curves.ts +4 -0
  194. package/src/index.ts +77 -0
  195. package/src/tempo/AuthorizationTempo.test.ts +8 -4
  196. package/src/tempo/KeyAuthorization.test-d.ts +16 -63
  197. package/src/tempo/KeyAuthorization.test.ts +69 -11
  198. package/src/tempo/KeyAuthorization.ts +107 -63
  199. package/src/tempo/MultisigConfig.test.ts +44 -20
  200. package/src/tempo/MultisigConfig.ts +65 -23
  201. package/src/tempo/MultisigOperation.test.ts +79 -550
  202. package/src/tempo/MultisigOperation.ts +31 -146
  203. package/src/tempo/MultisigSimulation.test-d.ts +2 -2
  204. package/src/tempo/MultisigSimulation.test.ts +21 -110
  205. package/src/tempo/MultisigSimulation.ts +25 -99
  206. package/src/tempo/SignatureEnvelope.test-d.ts +29 -47
  207. package/src/tempo/SignatureEnvelope.test.ts +328 -541
  208. package/src/tempo/SignatureEnvelope.ts +196 -291
  209. package/src/tempo/Transaction.test.ts +4 -4
  210. package/src/tempo/TransactionRequest.test.ts +17 -80
  211. package/src/tempo/TransactionRequest.ts +19 -2
  212. package/src/tempo/index.ts +3 -1
  213. package/src/tempo/multisig.e2e.test.ts +321 -860
  214. package/src/version.ts +1 -1
  215. package/src/zod/Frame.ts +82 -0
  216. package/src/zod/FrameReceipt.ts +48 -0
  217. package/src/zod/FrameSignature.ts +78 -0
  218. package/src/zod/Transaction.ts +63 -0
  219. package/src/zod/TransactionEnvelope.ts +33 -0
  220. package/src/zod/TransactionReceipt.ts +14 -3
  221. package/src/zod/TransactionRequest.ts +18 -3
  222. package/src/zod/TxEnvelopeEip8141.ts +102 -0
  223. package/src/zod/_test/Frame.test-d.ts +41 -0
  224. package/src/zod/_test/Frame.test.ts +54 -0
  225. package/src/zod/_test/FrameReceipt.test.ts +75 -0
  226. package/src/zod/_test/FrameSignature.test.ts +94 -0
  227. package/src/zod/_test/TxEnvelopeEip8141.test.ts +116 -0
  228. package/src/zod/internal/Frame.ts +26 -0
  229. package/src/zod/tempo/KeyAuthorization.ts +50 -39
  230. package/src/zod/tempo/MultisigSimulation.ts +3 -48
  231. package/src/zod/tempo/SignatureEnvelope.ts +46 -35
  232. package/src/zod/tempo/TransactionRequest.ts +14 -0
  233. package/src/zod/tempo/_test/KeyAuthorization.test.ts +69 -20
  234. package/src/zod/tempo/_test/MultisigSimulation.test.ts +6 -31
  235. package/src/zod/tempo/_test/SignatureEnvelope.test.ts +118 -85
  236. package/src/zod/tempo/_test/TransactionRequest.test.ts +9 -19
  237. package/src/zod/z.ts +4 -0
@@ -0,0 +1,341 @@
1
+ import * as Address from './Address.js';
2
+ import * as Errors from './Errors.js';
3
+ import * as Frame from './Frame.js';
4
+ import * as FrameSignature from './FrameSignature.js';
5
+ import * as Hash from './Hash.js';
6
+ import * as Hex from './Hex.js';
7
+ import type { Assign, Compute, PartialBy } from './internal/types.js';
8
+ import * as Rlp from './Rlp.js';
9
+ import type * as TxEnvelopeEip4844 from './TxEnvelopeEip4844.js';
10
+ /** An EIP-8141 transaction containing independently budgeted call frames. */
11
+ export type TxEnvelopeEip8141 = {
12
+ /** Versioned blob hashes. @default [] */
13
+ blobVersionedHashes?: readonly Hex.Hex[] | undefined;
14
+ /** Chain ID. Use bigint for IDs beyond the safe integer range. */
15
+ chainId: number | bigint;
16
+ /** Frames to execute, in order. */
17
+ frames: readonly Frame.Frame[];
18
+ /** Maximum fee per blob gas, in wei. @default 0n */
19
+ maxFeePerBlobGas?: bigint | undefined;
20
+ /** Maximum fee per gas, in wei. @default 0n */
21
+ maxFeePerGas?: bigint | undefined;
22
+ /** Maximum priority fee per gas, in wei. @default 0n */
23
+ maxPriorityFeePerGas?: bigint | undefined;
24
+ /** Sender nonce. @default 0n */
25
+ nonce?: bigint | undefined;
26
+ /** Account authorizing execution. */
27
+ sender: Address.Address;
28
+ /** PeerDAS sidecars. Excluded from transaction and signing hashes. */
29
+ sidecars?: TxEnvelopeEip4844.Sidecars<Hex.Hex> | undefined;
30
+ /** Signature entries, including unsigned placeholders before signing. @default [] */
31
+ signatures?: readonly FrameSignature.FrameSignature[] | undefined;
32
+ /** Transaction type. */
33
+ type: Type;
34
+ };
35
+ /** JSON-RPC representation of an EIP-8141 envelope. */
36
+ export type Rpc = {
37
+ /** Versioned blob hashes. */
38
+ blobVersionedHashes: readonly Hex.Hex[];
39
+ /** Chain ID. */
40
+ chainId: Hex.Hex;
41
+ /** Frames in execution order. */
42
+ frames: readonly Frame.Rpc[];
43
+ /** Account authorizing execution. */
44
+ from: Address.Address;
45
+ /** Maximum fee per blob gas. */
46
+ maxFeePerBlobGas: Hex.Hex;
47
+ /** Maximum fee per gas. */
48
+ maxFeePerGas: Hex.Hex;
49
+ /** Maximum priority fee per gas. */
50
+ maxPriorityFeePerGas: Hex.Hex;
51
+ /** Sender nonce. */
52
+ nonce: Hex.Hex;
53
+ /** Frame signature entries. */
54
+ signatures: readonly FrameSignature.Rpc[];
55
+ /** RPC transaction type. */
56
+ type: '0x6';
57
+ };
58
+ /** Serialized EIP-8141 transaction envelope. */
59
+ export type Serialized = `${SerializedType}${string}`;
60
+ /** Serialized EIP-8141 transaction type prefix. */
61
+ export declare const serializedType: "0x06";
62
+ /** Serialized EIP-8141 transaction type. */
63
+ export type SerializedType = typeof serializedType;
64
+ /** EIP-8141 transaction type. */
65
+ export declare const type: "eip8141";
66
+ /** EIP-8141 transaction type identifier. */
67
+ export type Type = typeof type;
68
+ /**
69
+ * Asserts that an EIP-8141 envelope satisfies structural transaction constraints.
70
+ *
71
+ * Accepts unsigned signature entries for construction. Does not verify signatures,
72
+ * account authorization, balances, or blob proofs.
73
+ *
74
+ * @example
75
+ * ### Basic Usage
76
+ *
77
+ * ```ts twoslash
78
+ * import { TxEnvelopeEip8141 } from 'ox'
79
+ *
80
+ * TxEnvelopeEip8141.assert({
81
+ * chainId: 1,
82
+ * frames: [{ gas: 50_000n, mode: 'verify' }],
83
+ * sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
84
+ * })
85
+ * ```
86
+ *
87
+ * @param envelope - The transaction envelope to assert.
88
+ */
89
+ export declare function assert(envelope: PartialBy<TxEnvelopeEip8141, 'type'>): void;
90
+ export declare namespace assert {
91
+ type ErrorType = InvalidError | Frame.assert.ErrorType | FrameSignature.toTuple.ErrorType | Address.assert.ErrorType | Errors.GlobalErrorType;
92
+ }
93
+ /**
94
+ * Deserializes an EIP-8141 transaction body or PeerDAS network wrapper.
95
+ *
96
+ * @example
97
+ * ### Basic Usage
98
+ *
99
+ * ```ts twoslash
100
+ * import { Frame, TxEnvelopeEip8141 } from 'ox'
101
+ *
102
+ * const envelope = TxEnvelopeEip8141.from({
103
+ * chainId: 1,
104
+ * frames: [Frame.from({})],
105
+ * sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
106
+ * })
107
+ *
108
+ * const serialized = TxEnvelopeEip8141.serialize(envelope)
109
+ * const decoded = TxEnvelopeEip8141.deserialize(serialized)
110
+ * ```
111
+ *
112
+ * @param serialized - Serialized transaction or network wrapper.
113
+ * @returns The transaction envelope.
114
+ */
115
+ export declare function deserialize(serialized: Serialized): TxEnvelopeEip8141;
116
+ export declare namespace deserialize {
117
+ type ErrorType = assert.ErrorType | Hex.slice.ErrorType | Rlp.toHex.ErrorType | serialize.ErrorType | Errors.GlobalErrorType;
118
+ }
119
+ /**
120
+ * Creates an EIP-8141 transaction envelope from an object or serialized transaction.
121
+ *
122
+ * @example
123
+ * ### Basic Usage
124
+ *
125
+ * ```ts twoslash
126
+ * import { TxEnvelopeEip8141 } from 'ox'
127
+ *
128
+ * const envelope = TxEnvelopeEip8141.from({
129
+ * chainId: 1,
130
+ * frames: [
131
+ * {
132
+ * flags: 'approveExecutionAndPayment',
133
+ * gas: 50_000n,
134
+ * mode: 'verify'
135
+ * }
136
+ * ],
137
+ * sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
138
+ * })
139
+ * ```
140
+ *
141
+ * @param envelope - An envelope object or serialized transaction.
142
+ * @returns The envelope with its transaction type.
143
+ */
144
+ export declare function from<const envelope extends PartialBy<TxEnvelopeEip8141, 'type'> | Serialized>(envelope: envelope): from.ReturnType<envelope>;
145
+ export declare namespace from {
146
+ type ReturnType<envelope extends PartialBy<TxEnvelopeEip8141, 'type'> | Serialized> = envelope extends Serialized ? TxEnvelopeEip8141 : Compute<Assign<envelope, {
147
+ readonly type: Type;
148
+ }>>;
149
+ type ErrorType = assert.ErrorType | deserialize.ErrorType | Errors.GlobalErrorType;
150
+ }
151
+ /**
152
+ * Converts an RPC envelope to an EIP-8141 envelope without losing chain ID precision.
153
+ *
154
+ * @example
155
+ * ### Basic Usage
156
+ *
157
+ * ```ts twoslash
158
+ * import { Frame, TxEnvelopeEip8141 } from 'ox'
159
+ *
160
+ * const rpc = TxEnvelopeEip8141.toRpc(
161
+ * TxEnvelopeEip8141.from({
162
+ * chainId: 1,
163
+ * frames: [Frame.from({})],
164
+ * sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
165
+ * })
166
+ * )
167
+ * const envelope = TxEnvelopeEip8141.fromRpc(rpc)
168
+ * ```
169
+ *
170
+ * @param envelope - The value to convert.
171
+ * @returns The converted value.
172
+ */
173
+ export declare function fromRpc(envelope: Rpc): TxEnvelopeEip8141;
174
+ export declare namespace fromRpc {
175
+ type ErrorType = from.ErrorType | Frame.fromRpc.ErrorType | FrameSignature.fromRpc.ErrorType | Hex.toBigInt.ErrorType;
176
+ }
177
+ /**
178
+ * Converts an EIP-8141 envelope to RPC fields. Sidecars are excluded.
179
+ *
180
+ * @example
181
+ * ### Basic Usage
182
+ *
183
+ * ```ts twoslash
184
+ * import { Frame, TxEnvelopeEip8141 } from 'ox'
185
+ *
186
+ * const envelope = TxEnvelopeEip8141.from({
187
+ * chainId: 1,
188
+ * frames: [Frame.from({})],
189
+ * sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
190
+ * })
191
+ * const rpc = TxEnvelopeEip8141.toRpc(envelope)
192
+ * ```
193
+ *
194
+ * @param envelope - The value to convert.
195
+ * @returns The converted value.
196
+ */
197
+ export declare function toRpc(envelope: toRpc.Input): Rpc;
198
+ export declare namespace toRpc {
199
+ type Input = Omit<TxEnvelopeEip8141, 'chainId' | 'frames' | 'maxFeePerBlobGas' | 'maxFeePerGas' | 'maxPriorityFeePerGas' | 'nonce' | 'type'> & {
200
+ chainId: Hex.Hex | bigint | number;
201
+ frames: readonly Frame.toRpc.Input[];
202
+ maxFeePerBlobGas?: Hex.Hex | bigint | number | undefined;
203
+ maxFeePerGas?: Hex.Hex | bigint | number | undefined;
204
+ maxPriorityFeePerGas?: Hex.Hex | bigint | number | undefined;
205
+ nonce?: Hex.Hex | bigint | number | undefined;
206
+ type?: Type | undefined;
207
+ };
208
+ type ErrorType = Frame.toRpc.ErrorType | FrameSignature.toRpc.ErrorType | Hex.fromNumber.ErrorType;
209
+ }
210
+ /**
211
+ * Returns the canonical signing payload of an EIP-8141 envelope.
212
+ *
213
+ * Elides signature bytes only for entries with an empty payload. Explicit-payload
214
+ * signatures remain committed. The envelope is not mutated.
215
+ *
216
+ * @example
217
+ * ### Signing
218
+ *
219
+ * ```ts twoslash
220
+ * import {
221
+ * Address,
222
+ * FrameSignature,
223
+ * Secp256k1,
224
+ * TxEnvelopeEip8141
225
+ * } from 'ox'
226
+ *
227
+ * const privateKey = Secp256k1.randomPrivateKey()
228
+ * const sender = Address.fromPublicKey(
229
+ * Secp256k1.getPublicKey({ privateKey })
230
+ * )
231
+ * const envelope = TxEnvelopeEip8141.from({
232
+ * chainId: 1,
233
+ * frames: [
234
+ * {
235
+ * flags: 'approveExecutionAndPayment',
236
+ * gas: 50_000n,
237
+ * mode: 'verify'
238
+ * }
239
+ * ],
240
+ * sender,
241
+ * signatures: [FrameSignature.from({ scheme: 'secp256k1' })]
242
+ * })
243
+ *
244
+ * const payload = TxEnvelopeEip8141.getSignPayload(envelope)
245
+ * const signature = Secp256k1.sign({ payload, privateKey })
246
+ * const signed = TxEnvelopeEip8141.from({
247
+ * ...envelope,
248
+ * signatures: [
249
+ * FrameSignature.from({ scheme: 'secp256k1', signature })
250
+ * ]
251
+ * })
252
+ * ```
253
+ *
254
+ * @param envelope - The transaction envelope to sign.
255
+ * @returns The canonical signing digest.
256
+ */
257
+ export declare function getSignPayload(envelope: PartialBy<TxEnvelopeEip8141, 'type'>): Hex.Hex;
258
+ export declare namespace getSignPayload {
259
+ type ErrorType = hash.ErrorType;
260
+ }
261
+ /**
262
+ * Hashes an EIP-8141 transaction, excluding its blob sidecars.
263
+ *
264
+ * @example
265
+ * ### Basic Usage
266
+ *
267
+ * ```ts twoslash
268
+ * import { Frame, TxEnvelopeEip8141 } from 'ox'
269
+ *
270
+ * const hash = TxEnvelopeEip8141.hash({
271
+ * chainId: 1,
272
+ * frames: [Frame.from({})],
273
+ * sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
274
+ * })
275
+ * ```
276
+ *
277
+ * @param envelope - The transaction envelope to hash.
278
+ * @param options - Hashing options.
279
+ * @returns The transaction hash or signing digest.
280
+ */
281
+ export declare function hash(envelope: PartialBy<TxEnvelopeEip8141, 'type'>, options?: hash.Options): Hex.Hex;
282
+ export declare namespace hash {
283
+ type Options = {
284
+ /** Whether to compute the canonical signing digest. @default false */
285
+ presign?: boolean | undefined;
286
+ };
287
+ type ErrorType = assert.ErrorType | Hash.keccak256.ErrorType | Rlp.fromHex.ErrorType | Errors.GlobalErrorType;
288
+ }
289
+ /**
290
+ * Serializes an EIP-8141 envelope, including a PeerDAS wrapper when sidecars exist.
291
+ *
292
+ * @example
293
+ * ### Basic Usage
294
+ *
295
+ * ```ts twoslash
296
+ * import { TxEnvelopeEip8141 } from 'ox'
297
+ *
298
+ * const envelope = TxEnvelopeEip8141.from({
299
+ * chainId: 1,
300
+ * frames: [{ gas: 50_000n, mode: 'sender' }],
301
+ * sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
302
+ * })
303
+ * const serialized = TxEnvelopeEip8141.serialize(envelope)
304
+ * ```
305
+ *
306
+ * @param envelope - The transaction envelope to serialize.
307
+ * @returns The serialized transaction.
308
+ */
309
+ export declare function serialize(envelope: PartialBy<TxEnvelopeEip8141, 'type'>): Serialized;
310
+ export declare namespace serialize {
311
+ type ErrorType = assert.ErrorType | Rlp.fromHex.ErrorType | Hex.concat.ErrorType | Errors.GlobalErrorType;
312
+ }
313
+ /**
314
+ * Returns whether an EIP-8141 envelope satisfies structural constraints.
315
+ *
316
+ * @example
317
+ * ### Basic Usage
318
+ *
319
+ * ```ts twoslash
320
+ * import { Frame, TxEnvelopeEip8141 } from 'ox'
321
+ *
322
+ * const valid = TxEnvelopeEip8141.validate({
323
+ * chainId: 1,
324
+ * frames: [Frame.from({})],
325
+ * sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
326
+ * })
327
+ * ```
328
+ *
329
+ * @param envelope - The transaction envelope to validate.
330
+ * @returns Whether the envelope is structurally valid.
331
+ */
332
+ export declare function validate(envelope: PartialBy<TxEnvelopeEip8141, 'type'>): boolean;
333
+ export declare namespace validate {
334
+ type ErrorType = Errors.GlobalErrorType;
335
+ }
336
+ /** Thrown when an EIP-8141 envelope is structurally invalid. */
337
+ export declare class InvalidError extends Errors.BaseError {
338
+ readonly name = "TxEnvelopeEip8141.InvalidError";
339
+ constructor(reason: string);
340
+ }
341
+ //# sourceMappingURL=TxEnvelopeEip8141.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TxEnvelopeEip8141.d.ts","sourceRoot":"","sources":["../../src/core/TxEnvelopeEip8141.ts"],"names":[],"mappings":"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"}