ox 1.7.5 → 1.8.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.
- package/CHANGELOG.md +16 -0
- package/dist/core/Frame.d.ts +290 -0
- package/dist/core/Frame.d.ts.map +1 -0
- package/dist/core/Frame.js +306 -0
- package/dist/core/Frame.js.map +1 -0
- package/dist/core/FrameReceipt.d.ts +92 -0
- package/dist/core/FrameReceipt.d.ts.map +1 -0
- package/dist/core/FrameReceipt.js +72 -0
- package/dist/core/FrameReceipt.js.map +1 -0
- package/dist/core/FrameSignature.d.ts +357 -0
- package/dist/core/FrameSignature.d.ts.map +1 -0
- package/dist/core/FrameSignature.js +411 -0
- package/dist/core/FrameSignature.js.map +1 -0
- package/dist/core/Transaction.d.ts +29 -4
- package/dist/core/Transaction.d.ts.map +1 -1
- package/dist/core/Transaction.js +25 -4
- package/dist/core/Transaction.js.map +1 -1
- package/dist/core/TransactionReceipt.d.ts +13 -4
- package/dist/core/TransactionReceipt.d.ts.map +1 -1
- package/dist/core/TransactionReceipt.js +14 -0
- package/dist/core/TransactionReceipt.js.map +1 -1
- package/dist/core/TransactionRequest.d.ts +15 -7
- package/dist/core/TransactionRequest.d.ts.map +1 -1
- package/dist/core/TransactionRequest.js +47 -1
- package/dist/core/TransactionRequest.js.map +1 -1
- package/dist/core/TxEnvelope.d.ts +35 -21
- package/dist/core/TxEnvelope.d.ts.map +1 -1
- package/dist/core/TxEnvelope.js +46 -6
- package/dist/core/TxEnvelope.js.map +1 -1
- package/dist/core/TxEnvelopeEip8141.d.ts +341 -0
- package/dist/core/TxEnvelopeEip8141.d.ts.map +1 -0
- package/dist/core/TxEnvelopeEip8141.js +484 -0
- package/dist/core/TxEnvelopeEip8141.js.map +1 -0
- package/dist/core/internal/curves.d.ts +2 -0
- package/dist/core/internal/curves.d.ts.map +1 -1
- package/dist/core/internal/curves.js +2 -0
- package/dist/core/internal/curves.js.map +1 -1
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -1
- package/dist/tempo/Transaction.d.ts +2 -0
- package/dist/tempo/Transaction.d.ts.map +1 -1
- package/dist/tempo/TransactionReceipt.d.ts +2 -0
- package/dist/tempo/TransactionReceipt.d.ts.map +1 -1
- package/dist/zod/Block.d.ts +123 -0
- package/dist/zod/Block.d.ts.map +1 -1
- package/dist/zod/Frame.d.ts +73 -0
- package/dist/zod/Frame.d.ts.map +1 -0
- package/dist/zod/Frame.js +74 -0
- package/dist/zod/Frame.js.map +1 -0
- package/dist/zod/FrameReceipt.d.ts +50 -0
- package/dist/zod/FrameReceipt.d.ts.map +1 -0
- package/dist/zod/FrameReceipt.js +37 -0
- package/dist/zod/FrameReceipt.js.map +1 -0
- package/dist/zod/FrameSignature.d.ts +63 -0
- package/dist/zod/FrameSignature.d.ts.map +1 -0
- package/dist/zod/FrameSignature.js +66 -0
- package/dist/zod/FrameSignature.js.map +1 -0
- package/dist/zod/RpcSchema.d.ts +806 -11
- package/dist/zod/RpcSchema.d.ts.map +1 -1
- package/dist/zod/Transaction.d.ts +252 -0
- package/dist/zod/Transaction.d.ts.map +1 -1
- package/dist/zod/Transaction.js +54 -0
- package/dist/zod/Transaction.js.map +1 -1
- package/dist/zod/TransactionEnvelope.d.ts +233 -4
- package/dist/zod/TransactionEnvelope.d.ts.map +1 -1
- package/dist/zod/TransactionEnvelope.js +9 -0
- package/dist/zod/TransactionEnvelope.js.map +1 -1
- package/dist/zod/TransactionReceipt.d.ts +48 -0
- package/dist/zod/TransactionReceipt.d.ts.map +1 -1
- package/dist/zod/TransactionReceipt.js +8 -3
- package/dist/zod/TransactionReceipt.js.map +1 -1
- package/dist/zod/TransactionRequest.d.ts +50 -2
- package/dist/zod/TransactionRequest.d.ts.map +1 -1
- package/dist/zod/TransactionRequest.js +10 -4
- package/dist/zod/TransactionRequest.js.map +1 -1
- package/dist/zod/TxEnvelopeEip8141.d.ts +166 -0
- package/dist/zod/TxEnvelopeEip8141.d.ts.map +1 -0
- package/dist/zod/TxEnvelopeEip8141.js +76 -0
- package/dist/zod/TxEnvelopeEip8141.js.map +1 -0
- package/dist/zod/internal/Frame.d.ts +4 -0
- package/dist/zod/internal/Frame.d.ts.map +1 -0
- package/dist/zod/internal/Frame.js +17 -0
- package/dist/zod/internal/Frame.js.map +1 -0
- package/dist/zod/internal/rpcSchemas/Eth.d.ts +842 -11
- package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
- package/dist/zod/internal/rpcSchemas/Wallet.d.ts +56 -2
- package/dist/zod/internal/rpcSchemas/Wallet.d.ts.map +1 -1
- package/dist/zod/tempo/RpcSchemaTempo.d.ts +140 -0
- package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/zod/tempo/Transaction.d.ts +123 -0
- package/dist/zod/tempo/Transaction.d.ts.map +1 -1
- package/dist/zod/z.d.ts +4 -0
- package/dist/zod/z.d.ts.map +1 -1
- package/dist/zod/z.js +4 -0
- package/dist/zod/z.js.map +1 -1
- package/package.json +41 -1
- package/src/core/Frame.ts +442 -0
- package/src/core/FrameReceipt.ts +117 -0
- package/src/core/FrameSignature.ts +593 -0
- package/src/core/Transaction.ts +82 -5
- package/src/core/TransactionReceipt.ts +41 -3
- package/src/core/TransactionRequest.ts +71 -4
- package/src/core/TxEnvelope.ts +159 -90
- package/src/core/TxEnvelopeEip8141.ts +714 -0
- package/src/core/_test/Frame.test-d.ts +108 -0
- package/src/core/_test/Frame.test.ts +280 -0
- package/src/core/_test/FrameReceipt.test.ts +86 -0
- package/src/core/_test/FrameSignature.test-d.ts +93 -0
- package/src/core/_test/FrameSignature.test.ts +554 -0
- package/src/core/_test/Transaction.test.ts +33 -0
- package/src/core/_test/TransactionEnvelope.test-d.ts +74 -0
- package/src/core/_test/TransactionEnvelope.test.ts +107 -0
- package/src/core/_test/TransactionReceipt.test.ts +59 -0
- package/src/core/_test/TransactionRequest.test-d.ts +50 -0
- package/src/core/_test/TransactionRequest.test.ts +88 -1
- package/src/core/_test/TxEnvelopeEip8141.test-d.ts +44 -0
- package/src/core/_test/TxEnvelopeEip8141.test.ts +1775 -0
- package/src/core/_test/curves.test.ts +6 -1
- package/src/core/_test/index.test.ts +4 -0
- package/src/core/internal/curves.ts +4 -0
- package/src/index.ts +77 -0
- package/src/version.ts +1 -1
- package/src/zod/Frame.ts +82 -0
- package/src/zod/FrameReceipt.ts +48 -0
- package/src/zod/FrameSignature.ts +78 -0
- package/src/zod/Transaction.ts +63 -0
- package/src/zod/TransactionEnvelope.ts +33 -0
- package/src/zod/TransactionReceipt.ts +14 -3
- package/src/zod/TransactionRequest.ts +18 -3
- package/src/zod/TxEnvelopeEip8141.ts +102 -0
- package/src/zod/_test/Frame.test-d.ts +41 -0
- package/src/zod/_test/Frame.test.ts +57 -0
- package/src/zod/_test/FrameReceipt.test.ts +75 -0
- package/src/zod/_test/FrameSignature.test.ts +94 -0
- package/src/zod/_test/TxEnvelopeEip8141.test.ts +116 -0
- package/src/zod/internal/Frame.ts +26 -0
- package/src/zod/z.ts +4 -0
|
@@ -0,0 +1,484 @@
|
|
|
1
|
+
import * as Address from './Address.js';
|
|
2
|
+
import * as Blobs from './Blobs.js';
|
|
3
|
+
import * as Bytes from './Bytes.js';
|
|
4
|
+
import * as Errors from './Errors.js';
|
|
5
|
+
import * as Frame from './Frame.js';
|
|
6
|
+
import * as FrameSignature from './FrameSignature.js';
|
|
7
|
+
import * as Hash from './Hash.js';
|
|
8
|
+
import * as Hex from './Hex.js';
|
|
9
|
+
import * as Quantity from './internal/quantity.js';
|
|
10
|
+
import * as Rlp from './Rlp.js';
|
|
11
|
+
/** Serialized EIP-8141 transaction type prefix. */
|
|
12
|
+
export const serializedType = '0x06';
|
|
13
|
+
/** EIP-8141 transaction type. */
|
|
14
|
+
export const type = 'eip8141';
|
|
15
|
+
/**
|
|
16
|
+
* Asserts that an EIP-8141 envelope satisfies structural transaction constraints.
|
|
17
|
+
*
|
|
18
|
+
* Accepts unsigned signature entries for construction. Does not verify signatures,
|
|
19
|
+
* account authorization, balances, or blob proofs.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ### Basic Usage
|
|
23
|
+
*
|
|
24
|
+
* ```ts twoslash
|
|
25
|
+
* import { TxEnvelopeEip8141 } from 'ox'
|
|
26
|
+
*
|
|
27
|
+
* TxEnvelopeEip8141.assert({
|
|
28
|
+
* chainId: 1,
|
|
29
|
+
* frames: [{ gas: 50_000n, mode: 'verify' }],
|
|
30
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
31
|
+
* })
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @param envelope - The transaction envelope to assert.
|
|
35
|
+
*/
|
|
36
|
+
export function assert(envelope) {
|
|
37
|
+
const { blobVersionedHashes = [], chainId, frames, maxFeePerBlobGas = 0n, maxFeePerGas = 0n, maxPriorityFeePerGas = 0n, nonce = 0n, sender, signatures = [], } = envelope;
|
|
38
|
+
if ((typeof chainId !== 'bigint' &&
|
|
39
|
+
(typeof chainId !== 'number' || !Number.isSafeInteger(chainId))) ||
|
|
40
|
+
BigInt(chainId) < 0n ||
|
|
41
|
+
BigInt(chainId) >= 2n ** 256n)
|
|
42
|
+
throw new InvalidError('chainId must be an unsigned 256-bit integer; use bigint for large IDs.');
|
|
43
|
+
Address.assert(sender, { strict: false });
|
|
44
|
+
for (const [field, value, bits] of [
|
|
45
|
+
['maxFeePerBlobGas', maxFeePerBlobGas, 256n],
|
|
46
|
+
['maxFeePerGas', maxFeePerGas, 256n],
|
|
47
|
+
['maxPriorityFeePerGas', maxPriorityFeePerGas, 256n],
|
|
48
|
+
['nonce', nonce, 64n],
|
|
49
|
+
])
|
|
50
|
+
if (typeof value !== 'bigint' || value < 0n || value >= 2n ** bits)
|
|
51
|
+
throw new InvalidError(`${field} must be an unsigned ${bits}-bit integer.`);
|
|
52
|
+
if (maxPriorityFeePerGas > maxFeePerGas)
|
|
53
|
+
throw new InvalidError('maxPriorityFeePerGas exceeds maxFeePerGas.');
|
|
54
|
+
if (!Array.isArray(frames) || frames.length === 0 || frames.length > 64)
|
|
55
|
+
throw new InvalidError('Expected between 1 and 64 frames.');
|
|
56
|
+
if (!Array.isArray(signatures) || !Array.isArray(blobVersionedHashes))
|
|
57
|
+
throw new InvalidError('Signatures and blob versioned hashes must be lists.');
|
|
58
|
+
for (const hash of blobVersionedHashes) {
|
|
59
|
+
Hex.assert(hash, { strict: true });
|
|
60
|
+
if (hash.length !== 66 || Hex.slice(hash, 0, 1) !== '0x01')
|
|
61
|
+
throw new InvalidError('Blob versioned hashes must contain 32 bytes and version 0x01.');
|
|
62
|
+
}
|
|
63
|
+
if (blobVersionedHashes.length === 0 && maxFeePerBlobGas !== 0n)
|
|
64
|
+
throw new InvalidError('maxFeePerBlobGas must be zero without blobs.');
|
|
65
|
+
let gas = 0n;
|
|
66
|
+
let stateGas = 0n;
|
|
67
|
+
let previousBatch = false;
|
|
68
|
+
let expiry = false;
|
|
69
|
+
let tokens = 0n;
|
|
70
|
+
let size = 0n;
|
|
71
|
+
let intrinsic = 12000n + BigInt(frames.length) * 475n;
|
|
72
|
+
const count = (data) => {
|
|
73
|
+
for (const byte of Hex.toBytes(data))
|
|
74
|
+
tokens += byte === 0 ? 1n : 4n;
|
|
75
|
+
size += BigInt(Hex.size(data));
|
|
76
|
+
};
|
|
77
|
+
for (const [index, frame] of frames.entries()) {
|
|
78
|
+
Frame.assert(frame);
|
|
79
|
+
const flags = typeof frame.flags === 'string'
|
|
80
|
+
? Frame.flags[frame.flags]
|
|
81
|
+
: (frame.flags ?? 0);
|
|
82
|
+
const batch = (flags & 4) !== 0;
|
|
83
|
+
if (flags & 2 &&
|
|
84
|
+
frame.to !== undefined &&
|
|
85
|
+
!Address.isEqual(frame.to, sender))
|
|
86
|
+
throw new InvalidError('Execution approval must target the sender.');
|
|
87
|
+
if ((batch || previousBatch) && flags & 3)
|
|
88
|
+
throw new InvalidError('Atomic batches cannot contain approval frames.');
|
|
89
|
+
if (batch) {
|
|
90
|
+
const next = frames[index + 1];
|
|
91
|
+
if (!next || next.mode === 1 || next.mode === 'verify')
|
|
92
|
+
throw new InvalidError('An atomic batch requires a following non-verify frame.');
|
|
93
|
+
}
|
|
94
|
+
previousBatch = batch;
|
|
95
|
+
if ((frame.mode === 1 || frame.mode === 'verify') &&
|
|
96
|
+
frame.to?.toLowerCase() === '0x0000000000000000000000000000000000008141') {
|
|
97
|
+
if (expiry ||
|
|
98
|
+
flags !== 0 ||
|
|
99
|
+
(frame.stateGas ?? 0n) !== 0n ||
|
|
100
|
+
Hex.size(frame.data ?? '0x') !== 8)
|
|
101
|
+
throw new InvalidError('Invalid or duplicate expiry verifier frame.');
|
|
102
|
+
expiry = true;
|
|
103
|
+
}
|
|
104
|
+
gas += frame.gas ?? 0n;
|
|
105
|
+
stateGas += frame.stateGas ?? 0n;
|
|
106
|
+
count(frame.data ?? '0x');
|
|
107
|
+
if ((frame.value ?? 0n) > 0n &&
|
|
108
|
+
frame.to !== undefined &&
|
|
109
|
+
!Address.isEqual(frame.to, sender))
|
|
110
|
+
intrinsic += 6000n;
|
|
111
|
+
}
|
|
112
|
+
for (const entry of signatures) {
|
|
113
|
+
const [scheme, signer, payload, signature] = FrameSignature.toTuple(entry);
|
|
114
|
+
intrinsic += scheme === '0x' ? 100n : scheme === '0x01' ? 2800n : 6700n;
|
|
115
|
+
count(signer);
|
|
116
|
+
count(payload);
|
|
117
|
+
count(signature);
|
|
118
|
+
}
|
|
119
|
+
if (gas + stateGas >= 2n ** 64n)
|
|
120
|
+
throw new InvalidError('Combined frame gas must be less than 2^64.');
|
|
121
|
+
if (intrinsic + tokens * 4n + gas > 16777216n ||
|
|
122
|
+
intrinsic + size * 64n > 16777216n)
|
|
123
|
+
throw new InvalidError('Transaction execution gas exceeds 16777216.');
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Deserializes an EIP-8141 transaction body or PeerDAS network wrapper.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ### Basic Usage
|
|
130
|
+
*
|
|
131
|
+
* ```ts twoslash
|
|
132
|
+
* import { Frame, TxEnvelopeEip8141 } from 'ox'
|
|
133
|
+
*
|
|
134
|
+
* const envelope = TxEnvelopeEip8141.from({
|
|
135
|
+
* chainId: 1,
|
|
136
|
+
* frames: [Frame.from({})],
|
|
137
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
138
|
+
* })
|
|
139
|
+
*
|
|
140
|
+
* const serialized = TxEnvelopeEip8141.serialize(envelope)
|
|
141
|
+
* const decoded = TxEnvelopeEip8141.deserialize(serialized)
|
|
142
|
+
* ```
|
|
143
|
+
*
|
|
144
|
+
* @param serialized - Serialized transaction or network wrapper.
|
|
145
|
+
* @returns The transaction envelope.
|
|
146
|
+
*/
|
|
147
|
+
export function deserialize(serialized) {
|
|
148
|
+
Hex.assert(serialized, { strict: true });
|
|
149
|
+
if (Hex.slice(serialized, 0, 1) !== serializedType)
|
|
150
|
+
throw new InvalidError('Expected transaction type 0x06.');
|
|
151
|
+
const decoded = Rlp.toHex(Hex.slice(serialized, 1));
|
|
152
|
+
if (!Array.isArray(decoded))
|
|
153
|
+
throw new InvalidError('Expected a transaction list.');
|
|
154
|
+
const wrapped = Array.isArray(decoded[0]);
|
|
155
|
+
const body = wrapped ? decoded[0] : decoded;
|
|
156
|
+
if (!Array.isArray(body) || body.length !== 7)
|
|
157
|
+
throw new InvalidError('Expected seven transaction fields.');
|
|
158
|
+
const [chainId, nonce, sender, frames, signatures, fees, hashes] = body;
|
|
159
|
+
if (typeof sender !== 'string' ||
|
|
160
|
+
!Array.isArray(frames) ||
|
|
161
|
+
!Array.isArray(signatures) ||
|
|
162
|
+
!Array.isArray(fees) ||
|
|
163
|
+
fees.length !== 3 ||
|
|
164
|
+
!Array.isArray(hashes) ||
|
|
165
|
+
hashes.some((hash) => typeof hash !== 'string'))
|
|
166
|
+
throw new InvalidError('Invalid transaction field shape.');
|
|
167
|
+
const integer = (value) => {
|
|
168
|
+
if (typeof value !== 'string' ||
|
|
169
|
+
(value !== '0x' && value.startsWith('0x00')))
|
|
170
|
+
throw new InvalidError('Expected a minimally encoded integer.');
|
|
171
|
+
return value === '0x' ? 0n : Hex.toBigInt(value);
|
|
172
|
+
};
|
|
173
|
+
const id = integer(chainId);
|
|
174
|
+
const envelope = {
|
|
175
|
+
blobVersionedHashes: hashes,
|
|
176
|
+
chainId: id <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(id) : id,
|
|
177
|
+
frames: frames.map((frame) => Frame.fromTuple(frame)),
|
|
178
|
+
maxFeePerBlobGas: integer(fees[2]),
|
|
179
|
+
maxFeePerGas: integer(fees[1]),
|
|
180
|
+
maxPriorityFeePerGas: integer(fees[0]),
|
|
181
|
+
nonce: integer(nonce),
|
|
182
|
+
sender: sender,
|
|
183
|
+
signatures: signatures.map((entry) => FrameSignature.fromTuple(entry)),
|
|
184
|
+
type,
|
|
185
|
+
};
|
|
186
|
+
if (wrapped) {
|
|
187
|
+
if (decoded.length !== 5 ||
|
|
188
|
+
decoded[1] !== '0x01' ||
|
|
189
|
+
!Array.isArray(decoded[2]) ||
|
|
190
|
+
!Array.isArray(decoded[3]) ||
|
|
191
|
+
!Array.isArray(decoded[4]))
|
|
192
|
+
throw new InvalidError('Expected a version 1 PeerDAS wrapper.');
|
|
193
|
+
envelope.sidecars = {
|
|
194
|
+
blobs: decoded[2],
|
|
195
|
+
cellProofs: decoded[4],
|
|
196
|
+
commitments: decoded[3],
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
assert(envelope);
|
|
200
|
+
// Re-encoding rejects nonminimal RLP lengths as well as malformed nested lists.
|
|
201
|
+
if (serialize(envelope).toLowerCase() !== serialized.toLowerCase())
|
|
202
|
+
throw new InvalidError('Noncanonical transaction encoding.');
|
|
203
|
+
return envelope;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Creates an EIP-8141 transaction envelope from an object or serialized transaction.
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ### Basic Usage
|
|
210
|
+
*
|
|
211
|
+
* ```ts twoslash
|
|
212
|
+
* import { TxEnvelopeEip8141 } from 'ox'
|
|
213
|
+
*
|
|
214
|
+
* const envelope = TxEnvelopeEip8141.from({
|
|
215
|
+
* chainId: 1,
|
|
216
|
+
* frames: [
|
|
217
|
+
* {
|
|
218
|
+
* flags: 'approveExecutionAndPayment',
|
|
219
|
+
* gas: 50_000n,
|
|
220
|
+
* mode: 'verify'
|
|
221
|
+
* }
|
|
222
|
+
* ],
|
|
223
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
224
|
+
* })
|
|
225
|
+
* ```
|
|
226
|
+
*
|
|
227
|
+
* @param envelope - An envelope object or serialized transaction.
|
|
228
|
+
* @returns The envelope with its transaction type.
|
|
229
|
+
*/
|
|
230
|
+
export function from(envelope) {
|
|
231
|
+
const value = (typeof envelope === 'string' ? deserialize(envelope) : envelope);
|
|
232
|
+
assert(value);
|
|
233
|
+
return { ...value, type };
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Converts an RPC envelope to an EIP-8141 envelope without losing chain ID precision.
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* ### Basic Usage
|
|
240
|
+
*
|
|
241
|
+
* ```ts twoslash
|
|
242
|
+
* import { Frame, TxEnvelopeEip8141 } from 'ox'
|
|
243
|
+
*
|
|
244
|
+
* const rpc = TxEnvelopeEip8141.toRpc(
|
|
245
|
+
* TxEnvelopeEip8141.from({
|
|
246
|
+
* chainId: 1,
|
|
247
|
+
* frames: [Frame.from({})],
|
|
248
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
249
|
+
* })
|
|
250
|
+
* )
|
|
251
|
+
* const envelope = TxEnvelopeEip8141.fromRpc(rpc)
|
|
252
|
+
* ```
|
|
253
|
+
*
|
|
254
|
+
* @param envelope - The value to convert.
|
|
255
|
+
* @returns The converted value.
|
|
256
|
+
*/
|
|
257
|
+
export function fromRpc(envelope) {
|
|
258
|
+
const chainId = Hex.toBigInt(envelope.chainId);
|
|
259
|
+
return from({
|
|
260
|
+
blobVersionedHashes: envelope.blobVersionedHashes,
|
|
261
|
+
chainId: chainId <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(chainId) : chainId,
|
|
262
|
+
frames: envelope.frames.map(Frame.fromRpc),
|
|
263
|
+
maxFeePerBlobGas: Hex.toBigInt(envelope.maxFeePerBlobGas),
|
|
264
|
+
maxFeePerGas: Hex.toBigInt(envelope.maxFeePerGas),
|
|
265
|
+
maxPriorityFeePerGas: Hex.toBigInt(envelope.maxPriorityFeePerGas),
|
|
266
|
+
nonce: Hex.toBigInt(envelope.nonce),
|
|
267
|
+
sender: envelope.from,
|
|
268
|
+
signatures: envelope.signatures.map(FrameSignature.fromRpc),
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Converts an EIP-8141 envelope to RPC fields. Sidecars are excluded.
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ### Basic Usage
|
|
276
|
+
*
|
|
277
|
+
* ```ts twoslash
|
|
278
|
+
* import { Frame, TxEnvelopeEip8141 } from 'ox'
|
|
279
|
+
*
|
|
280
|
+
* const envelope = TxEnvelopeEip8141.from({
|
|
281
|
+
* chainId: 1,
|
|
282
|
+
* frames: [Frame.from({})],
|
|
283
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
284
|
+
* })
|
|
285
|
+
* const rpc = TxEnvelopeEip8141.toRpc(envelope)
|
|
286
|
+
* ```
|
|
287
|
+
*
|
|
288
|
+
* @param envelope - The value to convert.
|
|
289
|
+
* @returns The converted value.
|
|
290
|
+
*/
|
|
291
|
+
export function toRpc(envelope) {
|
|
292
|
+
return {
|
|
293
|
+
blobVersionedHashes: envelope.blobVersionedHashes ?? [],
|
|
294
|
+
chainId: Quantity.fromNumberish(envelope.chainId),
|
|
295
|
+
frames: envelope.frames.map(Frame.toRpc),
|
|
296
|
+
from: envelope.sender,
|
|
297
|
+
maxFeePerBlobGas: Quantity.fromNumberish(envelope.maxFeePerBlobGas ?? 0n),
|
|
298
|
+
maxFeePerGas: Quantity.fromNumberish(envelope.maxFeePerGas ?? 0n),
|
|
299
|
+
maxPriorityFeePerGas: Quantity.fromNumberish(envelope.maxPriorityFeePerGas ?? 0n),
|
|
300
|
+
nonce: Quantity.fromNumberish(envelope.nonce ?? 0n),
|
|
301
|
+
signatures: (envelope.signatures ?? []).map(FrameSignature.toRpc),
|
|
302
|
+
type: '0x6',
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Returns the canonical signing payload of an EIP-8141 envelope.
|
|
307
|
+
*
|
|
308
|
+
* Elides signature bytes only for entries with an empty payload. Explicit-payload
|
|
309
|
+
* signatures remain committed. The envelope is not mutated.
|
|
310
|
+
*
|
|
311
|
+
* @example
|
|
312
|
+
* ### Signing
|
|
313
|
+
*
|
|
314
|
+
* ```ts twoslash
|
|
315
|
+
* import {
|
|
316
|
+
* Address,
|
|
317
|
+
* FrameSignature,
|
|
318
|
+
* Secp256k1,
|
|
319
|
+
* TxEnvelopeEip8141
|
|
320
|
+
* } from 'ox'
|
|
321
|
+
*
|
|
322
|
+
* const privateKey = Secp256k1.randomPrivateKey()
|
|
323
|
+
* const sender = Address.fromPublicKey(
|
|
324
|
+
* Secp256k1.getPublicKey({ privateKey })
|
|
325
|
+
* )
|
|
326
|
+
* const envelope = TxEnvelopeEip8141.from({
|
|
327
|
+
* chainId: 1,
|
|
328
|
+
* frames: [
|
|
329
|
+
* {
|
|
330
|
+
* flags: 'approveExecutionAndPayment',
|
|
331
|
+
* gas: 50_000n,
|
|
332
|
+
* mode: 'verify'
|
|
333
|
+
* }
|
|
334
|
+
* ],
|
|
335
|
+
* sender,
|
|
336
|
+
* signatures: [FrameSignature.from({ scheme: 'secp256k1' })]
|
|
337
|
+
* })
|
|
338
|
+
*
|
|
339
|
+
* const payload = TxEnvelopeEip8141.getSignPayload(envelope)
|
|
340
|
+
* const signature = Secp256k1.sign({ payload, privateKey })
|
|
341
|
+
* const signed = TxEnvelopeEip8141.from({
|
|
342
|
+
* ...envelope,
|
|
343
|
+
* signatures: [
|
|
344
|
+
* FrameSignature.from({ scheme: 'secp256k1', signature })
|
|
345
|
+
* ]
|
|
346
|
+
* })
|
|
347
|
+
* ```
|
|
348
|
+
*
|
|
349
|
+
* @param envelope - The transaction envelope to sign.
|
|
350
|
+
* @returns The canonical signing digest.
|
|
351
|
+
*/
|
|
352
|
+
export function getSignPayload(envelope) {
|
|
353
|
+
return hash(envelope, { presign: true });
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Hashes an EIP-8141 transaction, excluding its blob sidecars.
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* ### Basic Usage
|
|
360
|
+
*
|
|
361
|
+
* ```ts twoslash
|
|
362
|
+
* import { Frame, TxEnvelopeEip8141 } from 'ox'
|
|
363
|
+
*
|
|
364
|
+
* const hash = TxEnvelopeEip8141.hash({
|
|
365
|
+
* chainId: 1,
|
|
366
|
+
* frames: [Frame.from({})],
|
|
367
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
368
|
+
* })
|
|
369
|
+
* ```
|
|
370
|
+
*
|
|
371
|
+
* @param envelope - The transaction envelope to hash.
|
|
372
|
+
* @param options - Hashing options.
|
|
373
|
+
* @returns The transaction hash or signing digest.
|
|
374
|
+
*/
|
|
375
|
+
export function hash(envelope, options = {}) {
|
|
376
|
+
assert(envelope);
|
|
377
|
+
const body = toTuple(envelope);
|
|
378
|
+
if (options.presign)
|
|
379
|
+
body[4] = body[4].map((entry) => entry[2] === '0x' ? [entry[0], entry[1], entry[2], '0x'] : entry);
|
|
380
|
+
return Hash.keccak256(Hex.concat(serializedType, Rlp.fromHex(body)));
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Serializes an EIP-8141 envelope, including a PeerDAS wrapper when sidecars exist.
|
|
384
|
+
*
|
|
385
|
+
* @example
|
|
386
|
+
* ### Basic Usage
|
|
387
|
+
*
|
|
388
|
+
* ```ts twoslash
|
|
389
|
+
* import { TxEnvelopeEip8141 } from 'ox'
|
|
390
|
+
*
|
|
391
|
+
* const envelope = TxEnvelopeEip8141.from({
|
|
392
|
+
* chainId: 1,
|
|
393
|
+
* frames: [{ gas: 50_000n, mode: 'sender' }],
|
|
394
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
395
|
+
* })
|
|
396
|
+
* const serialized = TxEnvelopeEip8141.serialize(envelope)
|
|
397
|
+
* ```
|
|
398
|
+
*
|
|
399
|
+
* @param envelope - The transaction envelope to serialize.
|
|
400
|
+
* @returns The serialized transaction.
|
|
401
|
+
*/
|
|
402
|
+
export function serialize(envelope) {
|
|
403
|
+
assert(envelope);
|
|
404
|
+
const body = toTuple(envelope);
|
|
405
|
+
const { sidecars } = envelope;
|
|
406
|
+
if (sidecars) {
|
|
407
|
+
const { blobs, cellProofs, commitments } = sidecars;
|
|
408
|
+
const hashes = envelope.blobVersionedHashes ?? [];
|
|
409
|
+
if (hashes.length === 0 ||
|
|
410
|
+
blobs.length !== hashes.length ||
|
|
411
|
+
commitments.length !== hashes.length ||
|
|
412
|
+
cellProofs.length !== hashes.length * 128)
|
|
413
|
+
throw new InvalidError('PeerDAS sidecar counts do not match blob hashes.');
|
|
414
|
+
for (const [index, blob] of blobs.entries()) {
|
|
415
|
+
Hex.assert(blob, { strict: true });
|
|
416
|
+
const commitment = commitments[index];
|
|
417
|
+
Hex.assert(commitment, { strict: true });
|
|
418
|
+
if (blob.length !== 2 + Blobs.bytesPerBlob * 2 ||
|
|
419
|
+
commitment.length !== 98 ||
|
|
420
|
+
Blobs.commitmentToVersionedHash(commitment).toLowerCase() !==
|
|
421
|
+
hashes[index].toLowerCase())
|
|
422
|
+
throw new InvalidError('Invalid blob size or commitment.');
|
|
423
|
+
}
|
|
424
|
+
for (const proof of cellProofs) {
|
|
425
|
+
Hex.assert(proof, { strict: true });
|
|
426
|
+
if (proof.length !== 98)
|
|
427
|
+
throw new InvalidError('Cell proofs must contain 48 bytes.');
|
|
428
|
+
}
|
|
429
|
+
return Hex.concat(serializedType, Rlp.fromHex([body, '0x01', blobs, commitments, cellProofs]));
|
|
430
|
+
}
|
|
431
|
+
return Hex.concat(serializedType, Rlp.fromHex(body));
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Returns whether an EIP-8141 envelope satisfies structural constraints.
|
|
435
|
+
*
|
|
436
|
+
* @example
|
|
437
|
+
* ### Basic Usage
|
|
438
|
+
*
|
|
439
|
+
* ```ts twoslash
|
|
440
|
+
* import { Frame, TxEnvelopeEip8141 } from 'ox'
|
|
441
|
+
*
|
|
442
|
+
* const valid = TxEnvelopeEip8141.validate({
|
|
443
|
+
* chainId: 1,
|
|
444
|
+
* frames: [Frame.from({})],
|
|
445
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
446
|
+
* })
|
|
447
|
+
* ```
|
|
448
|
+
*
|
|
449
|
+
* @param envelope - The transaction envelope to validate.
|
|
450
|
+
* @returns Whether the envelope is structurally valid.
|
|
451
|
+
*/
|
|
452
|
+
export function validate(envelope) {
|
|
453
|
+
try {
|
|
454
|
+
assert(envelope);
|
|
455
|
+
return true;
|
|
456
|
+
}
|
|
457
|
+
catch {
|
|
458
|
+
return false;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
/** Thrown when an EIP-8141 envelope is structurally invalid. */
|
|
462
|
+
export class InvalidError extends Errors.BaseError {
|
|
463
|
+
name = 'TxEnvelopeEip8141.InvalidError';
|
|
464
|
+
constructor(reason) {
|
|
465
|
+
super(reason);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
function toTuple(envelope) {
|
|
469
|
+
const quantity = (value) => value ? Hex.fromBytes(Bytes.fromNumber(value)) : '0x';
|
|
470
|
+
return [
|
|
471
|
+
quantity(envelope.chainId),
|
|
472
|
+
quantity(envelope.nonce),
|
|
473
|
+
envelope.sender,
|
|
474
|
+
envelope.frames.map((frame) => Frame.toTuple(frame)),
|
|
475
|
+
(envelope.signatures ?? []).map((entry) => FrameSignature.toTuple(entry)),
|
|
476
|
+
[
|
|
477
|
+
quantity(envelope.maxPriorityFeePerGas),
|
|
478
|
+
quantity(envelope.maxFeePerGas),
|
|
479
|
+
quantity(envelope.maxFeePerBlobGas),
|
|
480
|
+
],
|
|
481
|
+
envelope.blobVersionedHashes ?? [],
|
|
482
|
+
];
|
|
483
|
+
}
|
|
484
|
+
//# sourceMappingURL=TxEnvelopeEip8141.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TxEnvelopeEip8141.js","sourceRoot":"","sources":["../../src/core/TxEnvelopeEip8141.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,4 +14,6 @@
|
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
16
|
export declare const p256N = 115792089210356248762697446949407573529996955224135760342422259061068512044369n;
|
|
17
|
+
/** Order of the secp256k1 curve. @internal */
|
|
18
|
+
export declare const secp256k1N = 115792089237316195423570985008687907852837564279074904382605163141518161494337n;
|
|
17
19
|
//# sourceMappingURL=curves.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curves.d.ts","sourceRoot":"","sources":["../../../src/core/internal/curves.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,KAAK,kFACmD,CAAA"}
|
|
1
|
+
{"version":3,"file":"curves.d.ts","sourceRoot":"","sources":["../../../src/core/internal/curves.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,KAAK,kFACmD,CAAA;AAErE,8CAA8C;AAC9C,eAAO,MAAM,UAAU,kFAC8C,CAAA"}
|
|
@@ -14,4 +14,6 @@
|
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
16
|
export const p256N = 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551n;
|
|
17
|
+
/** Order of the secp256k1 curve. @internal */
|
|
18
|
+
export const secp256k1N = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;
|
|
17
19
|
//# sourceMappingURL=curves.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curves.js","sourceRoot":"","sources":["../../../src/core/internal/curves.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAChB,mEAAmE,CAAA"}
|
|
1
|
+
{"version":3,"file":"curves.js","sourceRoot":"","sources":["../../../src/core/internal/curves.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAChB,mEAAmE,CAAA;AAErE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GACrB,mEAAmE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1571,6 +1571,60 @@ export * as Fee from './core/Fee.js';
|
|
|
1571
1571
|
* @category Execution Spec
|
|
1572
1572
|
*/
|
|
1573
1573
|
export * as Filter from './core/Filter.js';
|
|
1574
|
+
/**
|
|
1575
|
+
* Utilities for constructing, validating, and encoding [EIP-8141](https://eips.ethereum.org/EIPS/eip-8141) call frames.
|
|
1576
|
+
*
|
|
1577
|
+
* A {@link ox#Frame.Frame} describes a call with an execution mode, approval flags,
|
|
1578
|
+
* and separate execution and state gas limits.
|
|
1579
|
+
*
|
|
1580
|
+
* @example
|
|
1581
|
+
* ### Creating Frames
|
|
1582
|
+
*
|
|
1583
|
+
* Use {@link ox#Frame.(from:function)} to construct a frame with named mode and flags.
|
|
1584
|
+
*
|
|
1585
|
+
* ```ts twoslash
|
|
1586
|
+
* import { Frame } from 'ox'
|
|
1587
|
+
*
|
|
1588
|
+
* const frame = Frame.from({
|
|
1589
|
+
* flags: 'approveExecutionAndPayment',
|
|
1590
|
+
* gas: 50_000n,
|
|
1591
|
+
* mode: 'verify'
|
|
1592
|
+
* })
|
|
1593
|
+
* ```
|
|
1594
|
+
*
|
|
1595
|
+
* @category Transaction Envelopes
|
|
1596
|
+
*/
|
|
1597
|
+
export * as Frame from './core/Frame.js';
|
|
1598
|
+
/**
|
|
1599
|
+
* Utilities for converting EIP-8141 frame receipts between RPC and decoded forms.
|
|
1600
|
+
*
|
|
1601
|
+
* Frame receipts include execution gas, state gas, logs, and execution status.
|
|
1602
|
+
*
|
|
1603
|
+
* @category Execution Spec
|
|
1604
|
+
*/
|
|
1605
|
+
export * as FrameReceipt from './core/FrameReceipt.js';
|
|
1606
|
+
/**
|
|
1607
|
+
* Utilities for constructing, validating, and encoding [EIP-8141](https://eips.ethereum.org/EIPS/eip-8141) signature entries.
|
|
1608
|
+
*
|
|
1609
|
+
* Supports {@link ox#FrameSignature.Arbitrary}, {@link ox#FrameSignature.Secp256k1},
|
|
1610
|
+
* and {@link ox#FrameSignature.P256} entries. An empty payload selects the canonical
|
|
1611
|
+
* transaction signing hash.
|
|
1612
|
+
*
|
|
1613
|
+
* @example
|
|
1614
|
+
* ### Creating Signature Entries
|
|
1615
|
+
*
|
|
1616
|
+
* Use {@link ox#FrameSignature.(from:function)} to wrap arbitrary witness bytes.
|
|
1617
|
+
*
|
|
1618
|
+
* ```ts twoslash
|
|
1619
|
+
* import { FrameSignature } from 'ox'
|
|
1620
|
+
*
|
|
1621
|
+
* const entry = FrameSignature.from('0xaabb')
|
|
1622
|
+
* // @log: { payload: '0x', scheme: 'arbitrary', signature: '0xaabb' }
|
|
1623
|
+
* ```
|
|
1624
|
+
*
|
|
1625
|
+
* @category Transaction Envelopes
|
|
1626
|
+
*/
|
|
1627
|
+
export * as FrameSignature from './core/FrameSignature.js';
|
|
1574
1628
|
/**
|
|
1575
1629
|
* Utility functions for hashing (keccak256, sha256, etc).
|
|
1576
1630
|
*
|
|
@@ -3470,6 +3524,25 @@ export * as TxEnvelopeEip4844 from './core/TxEnvelopeEip4844.js';
|
|
|
3470
3524
|
* @category Transaction Envelopes
|
|
3471
3525
|
*/
|
|
3472
3526
|
export * as TxEnvelopeEip7702 from './core/TxEnvelopeEip7702.js';
|
|
3527
|
+
/**
|
|
3528
|
+
* Utilities for constructing, signing, and encoding EIP-8141 frame transactions.
|
|
3529
|
+
*
|
|
3530
|
+
* @example
|
|
3531
|
+
* ### Basic Usage
|
|
3532
|
+
*
|
|
3533
|
+
* ```ts twoslash
|
|
3534
|
+
* import { TxEnvelopeEip8141 } from 'ox'
|
|
3535
|
+
*
|
|
3536
|
+
* const envelope = TxEnvelopeEip8141.from({
|
|
3537
|
+
* chainId: 1,
|
|
3538
|
+
* frames: [{ gas: 50_000n, mode: 'sender' }],
|
|
3539
|
+
* sender: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8'
|
|
3540
|
+
* })
|
|
3541
|
+
* ```
|
|
3542
|
+
*
|
|
3543
|
+
* @category Transaction Envelopes
|
|
3544
|
+
*/
|
|
3545
|
+
export * as TxEnvelopeEip8141 from './core/TxEnvelopeEip8141.js';
|
|
3473
3546
|
/**
|
|
3474
3547
|
* Utility functions for working
|
|
3475
3548
|
* with **Legacy Transaction Envelopes**.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|