ox 0.9.16 → 0.10.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.
- package/CHANGELOG.md +27 -0
- package/README.md +4 -4
- package/TxEnvelope/package.json +6 -0
- package/TxEnvelopeEip1559/package.json +6 -0
- package/TxEnvelopeEip2930/package.json +6 -0
- package/TxEnvelopeEip4844/package.json +6 -0
- package/TxEnvelopeEip7702/package.json +6 -0
- package/TxEnvelopeLegacy/package.json +6 -0
- package/_cjs/core/{TransactionEnvelope.js → TxEnvelope.js} +1 -1
- package/_cjs/core/TxEnvelope.js.map +1 -0
- package/_cjs/core/{TransactionEnvelopeEip1559.js → TxEnvelopeEip1559.js} +2 -2
- package/_cjs/core/TxEnvelopeEip1559.js.map +1 -0
- package/_cjs/core/{TransactionEnvelopeEip2930.js → TxEnvelopeEip2930.js} +2 -2
- package/_cjs/core/TxEnvelopeEip2930.js.map +1 -0
- package/_cjs/core/{TransactionEnvelopeEip4844.js → TxEnvelopeEip4844.js} +4 -4
- package/_cjs/core/TxEnvelopeEip4844.js.map +1 -0
- package/_cjs/core/{TransactionEnvelopeEip7702.js → TxEnvelopeEip7702.js} +4 -4
- package/_cjs/core/TxEnvelopeEip7702.js.map +1 -0
- package/_cjs/core/{TransactionEnvelopeLegacy.js → TxEnvelopeLegacy.js} +2 -2
- package/_cjs/core/TxEnvelopeLegacy.js.map +1 -0
- package/_cjs/core/WebAuthnP256.js +1 -1
- package/_cjs/core/WebAuthnP256.js.map +1 -1
- package/_cjs/erc8021/Attribution.js +36 -6
- package/_cjs/erc8021/Attribution.js.map +1 -1
- package/_cjs/index.docs.js +1 -0
- package/_cjs/index.docs.js.map +1 -1
- package/_cjs/index.js +7 -7
- package/_cjs/index.js.map +1 -1
- package/_cjs/tempo/AuthorizationTempo.js +101 -0
- package/_cjs/tempo/AuthorizationTempo.js.map +1 -0
- package/_cjs/tempo/KeyAuthorization.js +123 -0
- package/_cjs/tempo/KeyAuthorization.js.map +1 -0
- package/_cjs/tempo/PoolId.js +10 -0
- package/_cjs/tempo/PoolId.js.map +1 -0
- package/_cjs/tempo/SignatureEnvelope.js +394 -0
- package/_cjs/tempo/SignatureEnvelope.js.map +1 -0
- package/_cjs/tempo/Tick.js +77 -0
- package/_cjs/tempo/Tick.js.map +1 -0
- package/_cjs/tempo/TokenId.js +28 -0
- package/_cjs/tempo/TokenId.js.map +1 -0
- package/_cjs/tempo/TokenRole.js +26 -0
- package/_cjs/tempo/TokenRole.js.map +1 -0
- package/_cjs/tempo/Transaction.js +80 -0
- package/_cjs/tempo/Transaction.js.map +1 -0
- package/_cjs/tempo/TransactionReceipt.js +26 -0
- package/_cjs/tempo/TransactionReceipt.js.map +1 -0
- package/_cjs/tempo/TransactionRequest.js +53 -0
- package/_cjs/tempo/TransactionRequest.js.map +1 -0
- package/_cjs/tempo/TxEnvelopeTempo.js +267 -0
- package/_cjs/tempo/TxEnvelopeTempo.js.map +1 -0
- package/_cjs/tempo/index.js +15 -0
- package/_cjs/tempo/index.js.map +1 -0
- package/_cjs/version.js +1 -1
- package/_esm/core/Blobs.js +8 -8
- package/_esm/core/{TransactionEnvelope.js → TxEnvelope.js} +11 -11
- package/_esm/core/TxEnvelope.js.map +1 -0
- package/_esm/core/{TransactionEnvelopeEip1559.js → TxEnvelopeEip1559.js} +42 -42
- package/_esm/core/TxEnvelopeEip1559.js.map +1 -0
- package/_esm/core/{TransactionEnvelopeEip2930.js → TxEnvelopeEip2930.js} +43 -43
- package/_esm/core/TxEnvelopeEip2930.js.map +1 -0
- package/_esm/core/{TransactionEnvelopeEip4844.js → TxEnvelopeEip4844.js} +42 -42
- package/_esm/core/TxEnvelopeEip4844.js.map +1 -0
- package/_esm/core/{TransactionEnvelopeEip7702.js → TxEnvelopeEip7702.js} +40 -40
- package/_esm/core/TxEnvelopeEip7702.js.map +1 -0
- package/_esm/core/{TransactionEnvelopeLegacy.js → TxEnvelopeLegacy.js} +42 -42
- package/_esm/core/TxEnvelopeLegacy.js.map +1 -0
- package/_esm/core/WebAuthnP256.js +1 -1
- package/_esm/core/WebAuthnP256.js.map +1 -1
- package/_esm/erc8021/Attribution.js +58 -13
- package/_esm/erc8021/Attribution.js.map +1 -1
- package/_esm/index.docs.js +1 -0
- package/_esm/index.docs.js.map +1 -1
- package/_esm/index.js +192 -192
- package/_esm/index.js.map +1 -1
- package/_esm/tempo/AuthorizationTempo.js +664 -0
- package/_esm/tempo/AuthorizationTempo.js.map +1 -0
- package/_esm/tempo/KeyAuthorization.js +426 -0
- package/_esm/tempo/KeyAuthorization.js.map +1 -0
- package/_esm/tempo/PoolId.js +28 -0
- package/_esm/tempo/PoolId.js.map +1 -0
- package/_esm/tempo/SignatureEnvelope.js +660 -0
- package/_esm/tempo/SignatureEnvelope.js.map +1 -0
- package/_esm/tempo/Tick.js +147 -0
- package/_esm/tempo/Tick.js.map +1 -0
- package/_esm/tempo/TokenId.js +71 -0
- package/_esm/tempo/TokenId.js.map +1 -0
- package/_esm/tempo/TokenRole.js +40 -0
- package/_esm/tempo/TokenRole.js.map +1 -0
- package/_esm/tempo/Transaction.js +167 -0
- package/_esm/tempo/Transaction.js.map +1 -0
- package/_esm/tempo/TransactionReceipt.js +138 -0
- package/_esm/tempo/TransactionReceipt.js.map +1 -0
- package/_esm/tempo/TransactionRequest.js +99 -0
- package/_esm/tempo/TransactionRequest.js.map +1 -0
- package/_esm/tempo/TxEnvelopeTempo.js +607 -0
- package/_esm/tempo/TxEnvelopeTempo.js.map +1 -0
- package/_esm/tempo/index.js +298 -0
- package/_esm/tempo/index.js.map +1 -0
- package/_esm/version.js +1 -1
- package/_types/core/Blobs.d.ts +8 -8
- package/_types/core/{TransactionEnvelope.d.ts → TxEnvelope.d.ts} +11 -11
- package/_types/core/TxEnvelope.d.ts.map +1 -0
- package/_types/core/{TransactionEnvelopeEip1559.d.ts → TxEnvelopeEip1559.d.ts} +54 -54
- package/_types/core/TxEnvelopeEip1559.d.ts.map +1 -0
- package/_types/core/{TransactionEnvelopeEip2930.d.ts → TxEnvelopeEip2930.d.ts} +55 -55
- package/_types/core/TxEnvelopeEip2930.d.ts.map +1 -0
- package/_types/core/{TransactionEnvelopeEip4844.d.ts → TxEnvelopeEip4844.d.ts} +54 -54
- package/_types/core/TxEnvelopeEip4844.d.ts.map +1 -0
- package/_types/core/{TransactionEnvelopeEip7702.d.ts → TxEnvelopeEip7702.d.ts} +49 -49
- package/_types/core/TxEnvelopeEip7702.d.ts.map +1 -0
- package/_types/core/{TransactionEnvelopeLegacy.d.ts → TxEnvelopeLegacy.d.ts} +54 -54
- package/_types/core/TxEnvelopeLegacy.d.ts.map +1 -0
- package/_types/core/WebAuthnP256.d.ts +1 -1
- package/_types/core/WebAuthnP256.d.ts.map +1 -1
- package/_types/erc8021/Attribution.d.ts +20 -6
- package/_types/erc8021/Attribution.d.ts.map +1 -1
- package/_types/index.d.ts +192 -192
- package/_types/index.d.ts.map +1 -1
- package/_types/index.docs.d.ts +1 -0
- package/_types/index.docs.d.ts.map +1 -1
- package/_types/tempo/AuthorizationTempo.d.ts +688 -0
- package/_types/tempo/AuthorizationTempo.d.ts.map +1 -0
- package/_types/tempo/KeyAuthorization.d.ts +437 -0
- package/_types/tempo/KeyAuthorization.d.ts.map +1 -0
- package/_types/tempo/PoolId.d.ts +33 -0
- package/_types/tempo/PoolId.d.ts.map +1 -0
- package/_types/tempo/SignatureEnvelope.d.ts +438 -0
- package/_types/tempo/SignatureEnvelope.d.ts.map +1 -0
- package/_types/tempo/Tick.d.ts +120 -0
- package/_types/tempo/Tick.d.ts.map +1 -0
- package/_types/tempo/TokenId.d.ts +55 -0
- package/_types/tempo/TokenId.d.ts.map +1 -0
- package/_types/tempo/TokenRole.d.ts +29 -0
- package/_types/tempo/TokenRole.d.ts.map +1 -0
- package/_types/tempo/Transaction.d.ts +208 -0
- package/_types/tempo/Transaction.d.ts.map +1 -0
- package/_types/tempo/TransactionReceipt.d.ts +165 -0
- package/_types/tempo/TransactionReceipt.d.ts.map +1 -0
- package/_types/tempo/TransactionRequest.d.ts +89 -0
- package/_types/tempo/TransactionRequest.d.ts.map +1 -0
- package/_types/tempo/TxEnvelopeTempo.d.ts +551 -0
- package/_types/tempo/TxEnvelopeTempo.d.ts.map +1 -0
- package/_types/tempo/index.d.ts +300 -0
- package/_types/tempo/index.d.ts.map +1 -0
- package/_types/version.d.ts +1 -1
- package/core/Blobs.ts +8 -8
- package/core/{TransactionEnvelope.ts → TxEnvelope.ts} +10 -10
- package/core/{TransactionEnvelopeEip1559.ts → TxEnvelopeEip1559.ts} +60 -69
- package/core/{TransactionEnvelopeEip2930.ts → TxEnvelopeEip2930.ts} +61 -72
- package/core/{TransactionEnvelopeEip4844.ts → TxEnvelopeEip4844.ts} +62 -71
- package/core/{TransactionEnvelopeEip7702.ts → TxEnvelopeEip7702.ts} +58 -67
- package/core/{TransactionEnvelopeLegacy.ts → TxEnvelopeLegacy.ts} +59 -68
- package/core/WebAuthnP256.ts +3 -1
- package/erc8021/Attribution.ts +77 -15
- package/index.docs.ts +1 -0
- package/index.ts +192 -195
- package/package.json +91 -31
- package/tempo/AuthorizationTempo/package.json +6 -0
- package/tempo/AuthorizationTempo.test.ts +1293 -0
- package/tempo/AuthorizationTempo.ts +884 -0
- package/tempo/KeyAuthorization/package.json +6 -0
- package/tempo/KeyAuthorization.test.ts +1373 -0
- package/tempo/KeyAuthorization.ts +622 -0
- package/tempo/PoolId/package.json +6 -0
- package/tempo/PoolId.test.ts +33 -0
- package/tempo/PoolId.ts +42 -0
- package/tempo/SignatureEnvelope/package.json +6 -0
- package/tempo/SignatureEnvelope.test.ts +1877 -0
- package/tempo/SignatureEnvelope.ts +973 -0
- package/tempo/Tick/package.json +6 -0
- package/tempo/Tick.test.ts +281 -0
- package/tempo/Tick.ts +186 -0
- package/tempo/TokenId/package.json +6 -0
- package/tempo/TokenId.test.ts +40 -0
- package/tempo/TokenId.ts +80 -0
- package/tempo/TokenRole/package.json +6 -0
- package/tempo/TokenRole.test.ts +16 -0
- package/tempo/TokenRole.ts +45 -0
- package/tempo/Transaction/package.json +6 -0
- package/tempo/Transaction.test.ts +523 -0
- package/tempo/Transaction.ts +339 -0
- package/tempo/TransactionReceipt/package.json +6 -0
- package/tempo/TransactionReceipt.ts +200 -0
- package/tempo/TransactionRequest/package.json +6 -0
- package/tempo/TransactionRequest.ts +160 -0
- package/tempo/TxEnvelopeTempo/package.json +6 -0
- package/tempo/TxEnvelopeTempo.test.ts +1371 -0
- package/tempo/TxEnvelopeTempo.ts +972 -0
- package/tempo/e2e.test.ts +1387 -0
- package/tempo/index.ts +308 -0
- package/tempo/package.json +6 -0
- package/version.ts +1 -1
- package/TransactionEnvelope/package.json +0 -6
- package/TransactionEnvelopeEip1559/package.json +0 -6
- package/TransactionEnvelopeEip2930/package.json +0 -6
- package/TransactionEnvelopeEip4844/package.json +0 -6
- package/TransactionEnvelopeEip7702/package.json +0 -6
- package/TransactionEnvelopeLegacy/package.json +0 -6
- package/_cjs/core/TransactionEnvelope.js.map +0 -1
- package/_cjs/core/TransactionEnvelopeEip1559.js.map +0 -1
- package/_cjs/core/TransactionEnvelopeEip2930.js.map +0 -1
- package/_cjs/core/TransactionEnvelopeEip4844.js.map +0 -1
- package/_cjs/core/TransactionEnvelopeEip7702.js.map +0 -1
- package/_cjs/core/TransactionEnvelopeLegacy.js.map +0 -1
- package/_esm/core/TransactionEnvelope.js.map +0 -1
- package/_esm/core/TransactionEnvelopeEip1559.js.map +0 -1
- package/_esm/core/TransactionEnvelopeEip2930.js.map +0 -1
- package/_esm/core/TransactionEnvelopeEip4844.js.map +0 -1
- package/_esm/core/TransactionEnvelopeEip7702.js.map +0 -1
- package/_esm/core/TransactionEnvelopeLegacy.js.map +0 -1
- package/_types/core/TransactionEnvelope.d.ts.map +0 -1
- package/_types/core/TransactionEnvelopeEip1559.d.ts.map +0 -1
- package/_types/core/TransactionEnvelopeEip2930.d.ts.map +0 -1
- package/_types/core/TransactionEnvelopeEip4844.d.ts.map +0 -1
- package/_types/core/TransactionEnvelopeEip7702.d.ts.map +0 -1
- package/_types/core/TransactionEnvelopeLegacy.d.ts.map +0 -1
|
@@ -5,18 +5,18 @@ import * as Hex from './Hex.js';
|
|
|
5
5
|
import * as Kzg from './Kzg.js';
|
|
6
6
|
import * as Rlp from './Rlp.js';
|
|
7
7
|
import * as Signature from './Signature.js';
|
|
8
|
-
import * as TransactionEnvelope from './
|
|
9
|
-
import * as
|
|
8
|
+
import * as TransactionEnvelope from './TxEnvelope.js';
|
|
9
|
+
import * as TxEnvelopeEip1559 from './TxEnvelopeEip1559.js';
|
|
10
10
|
export const serializedType = '0x03';
|
|
11
11
|
export const type = 'eip4844';
|
|
12
12
|
/**
|
|
13
|
-
* Asserts a {@link ox#
|
|
13
|
+
* Asserts a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844} is valid.
|
|
14
14
|
*
|
|
15
15
|
* @example
|
|
16
16
|
* ```ts twoslash
|
|
17
|
-
* import {
|
|
17
|
+
* import { TxEnvelopeEip4844, Value } from 'ox'
|
|
18
18
|
*
|
|
19
|
-
*
|
|
19
|
+
* TxEnvelopeEip4844.assert({
|
|
20
20
|
* blobVersionedHashes: [],
|
|
21
21
|
* chainId: 1,
|
|
22
22
|
* to: '0x0000000000000000000000000000000000000000',
|
|
@@ -44,16 +44,16 @@ export function assert(envelope) {
|
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
|
|
47
|
+
TxEnvelopeEip1559.assert(envelope);
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
* Deserializes a {@link ox#
|
|
50
|
+
* Deserializes a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844} from its serialized form.
|
|
51
51
|
*
|
|
52
52
|
* @example
|
|
53
53
|
* ```ts twoslash
|
|
54
|
-
* import {
|
|
54
|
+
* import { TxEnvelopeEip4844 } from 'ox'
|
|
55
55
|
*
|
|
56
|
-
* const envelope =
|
|
56
|
+
* const envelope = TxEnvelopeEip4844.deserialize('0x03ef0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0')
|
|
57
57
|
* // @log: {
|
|
58
58
|
* // @log: blobVersionedHashes: [...],
|
|
59
59
|
* // @log: type: 'eip4844',
|
|
@@ -147,13 +147,13 @@ export function deserialize(serialized) {
|
|
|
147
147
|
* @example
|
|
148
148
|
* ```ts twoslash
|
|
149
149
|
* // @noErrors
|
|
150
|
-
* import { Blobs,
|
|
150
|
+
* import { Blobs, TxEnvelopeEip4844, Value } from 'ox'
|
|
151
151
|
* import { kzg } from './kzg'
|
|
152
152
|
*
|
|
153
153
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
154
154
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
155
155
|
*
|
|
156
|
-
* const envelope =
|
|
156
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
157
157
|
* chainId: 1,
|
|
158
158
|
* blobVersionedHashes,
|
|
159
159
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -171,14 +171,14 @@ export function deserialize(serialized) {
|
|
|
171
171
|
*
|
|
172
172
|
* ```ts twoslash
|
|
173
173
|
* // @noErrors
|
|
174
|
-
* import { Blobs, Secp256k1,
|
|
174
|
+
* import { Blobs, Secp256k1, TxEnvelopeEip4844, Value } from 'ox'
|
|
175
175
|
* import { kzg } from './kzg'
|
|
176
176
|
*
|
|
177
177
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
178
178
|
* const sidecars = Blobs.toSidecars(blobs, { kzg })
|
|
179
179
|
* const blobVersionedHashes = Blobs.sidecarsToVersionedHashes(sidecars)
|
|
180
180
|
*
|
|
181
|
-
* const envelope =
|
|
181
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
182
182
|
* blobVersionedHashes,
|
|
183
183
|
* chainId: 1,
|
|
184
184
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -189,11 +189,11 @@ export function deserialize(serialized) {
|
|
|
189
189
|
* })
|
|
190
190
|
*
|
|
191
191
|
* const signature = Secp256k1.sign({
|
|
192
|
-
* payload:
|
|
192
|
+
* payload: TxEnvelopeEip4844.getSignPayload(envelope),
|
|
193
193
|
* privateKey: '0x...',
|
|
194
194
|
* })
|
|
195
195
|
*
|
|
196
|
-
* const envelope_signed =
|
|
196
|
+
* const envelope_signed = TxEnvelopeEip4844.from(envelope, { // [!code focus]
|
|
197
197
|
* sidecars, // [!code focus]
|
|
198
198
|
* signature, // [!code focus]
|
|
199
199
|
* }) // [!code focus]
|
|
@@ -215,12 +215,12 @@ export function deserialize(serialized) {
|
|
|
215
215
|
* @example
|
|
216
216
|
* ### From Serialized
|
|
217
217
|
*
|
|
218
|
-
* It is possible to instantiate an EIP-4844 Transaction Envelope from a {@link ox#
|
|
218
|
+
* It is possible to instantiate an EIP-4844 Transaction Envelope from a {@link ox#TxEnvelopeEip4844.Serialized} value.
|
|
219
219
|
*
|
|
220
220
|
* ```ts twoslash
|
|
221
|
-
* import {
|
|
221
|
+
* import { TxEnvelopeEip4844 } from 'ox'
|
|
222
222
|
*
|
|
223
|
-
* const envelope =
|
|
223
|
+
* const envelope = TxEnvelopeEip4844.from('0x03f858018203118502540be4008504a817c800809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c08477359400e1a001627c687261b0e7f8638af1112efa8a77e23656f6e7945275b19e9deed80261')
|
|
224
224
|
* // @log: {
|
|
225
225
|
* // @log: blobVersionedHashes: [...],
|
|
226
226
|
* // @log: chainId: 1,
|
|
@@ -246,7 +246,7 @@ export function from(envelope, options = {}) {
|
|
|
246
246
|
};
|
|
247
247
|
}
|
|
248
248
|
/**
|
|
249
|
-
* Returns the payload to sign for a {@link ox#
|
|
249
|
+
* Returns the payload to sign for a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844}.
|
|
250
250
|
*
|
|
251
251
|
* @example
|
|
252
252
|
* The example below demonstrates how to compute the sign payload which can be used
|
|
@@ -254,13 +254,13 @@ export function from(envelope, options = {}) {
|
|
|
254
254
|
*
|
|
255
255
|
* ```ts twoslash
|
|
256
256
|
* // @noErrors
|
|
257
|
-
* import { Blobs, Secp256k1,
|
|
257
|
+
* import { Blobs, Secp256k1, TxEnvelopeEip4844 } from 'ox'
|
|
258
258
|
* import { kzg } from './kzg'
|
|
259
259
|
*
|
|
260
260
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
261
261
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
262
262
|
*
|
|
263
|
-
* const envelope =
|
|
263
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
264
264
|
* blobVersionedHashes,
|
|
265
265
|
* chainId: 1,
|
|
266
266
|
* nonce: 0n,
|
|
@@ -270,7 +270,7 @@ export function from(envelope, options = {}) {
|
|
|
270
270
|
* value: 1000000000000000000n,
|
|
271
271
|
* })
|
|
272
272
|
*
|
|
273
|
-
* const payload =
|
|
273
|
+
* const payload = TxEnvelopeEip4844.getSignPayload(envelope) // [!code focus]
|
|
274
274
|
* // @log: '0x...'
|
|
275
275
|
*
|
|
276
276
|
* const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
|
|
@@ -283,18 +283,18 @@ export function getSignPayload(envelope) {
|
|
|
283
283
|
return hash(envelope, { presign: true });
|
|
284
284
|
}
|
|
285
285
|
/**
|
|
286
|
-
* Hashes a {@link ox#
|
|
286
|
+
* Hashes a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844}. This is the "transaction hash".
|
|
287
287
|
*
|
|
288
288
|
* @example
|
|
289
289
|
* ```ts twoslash
|
|
290
290
|
* // @noErrors
|
|
291
|
-
* import { Blobs,
|
|
291
|
+
* import { Blobs, TxEnvelopeEip4844 } from 'ox'
|
|
292
292
|
* import { kzg } from './kzg'
|
|
293
293
|
*
|
|
294
294
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
295
295
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
296
296
|
*
|
|
297
|
-
* const envelope =
|
|
297
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
298
298
|
* blobVersionedHashes,
|
|
299
299
|
* chainId: 1,
|
|
300
300
|
* nonce: 0n,
|
|
@@ -304,7 +304,7 @@ export function getSignPayload(envelope) {
|
|
|
304
304
|
* value: 1000000000000000000n,
|
|
305
305
|
* })
|
|
306
306
|
*
|
|
307
|
-
* const hash =
|
|
307
|
+
* const hash = TxEnvelopeEip4844.hash(envelope) // [!code focus]
|
|
308
308
|
* ```
|
|
309
309
|
*
|
|
310
310
|
* @param envelope - The EIP-4844 Transaction Envelope to hash.
|
|
@@ -327,18 +327,18 @@ export function hash(envelope, options = {}) {
|
|
|
327
327
|
}));
|
|
328
328
|
}
|
|
329
329
|
/**
|
|
330
|
-
* Serializes a {@link ox#
|
|
330
|
+
* Serializes a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844}.
|
|
331
331
|
*
|
|
332
332
|
* @example
|
|
333
333
|
* ```ts twoslash
|
|
334
334
|
* // @noErrors
|
|
335
|
-
* import { Blobs,
|
|
335
|
+
* import { Blobs, TxEnvelopeEip4844 } from 'ox'
|
|
336
336
|
* import { kzg } from './kzg'
|
|
337
337
|
*
|
|
338
338
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
339
339
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
340
340
|
*
|
|
341
|
-
* const envelope =
|
|
341
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
342
342
|
* blobVersionedHashes,
|
|
343
343
|
* chainId: 1,
|
|
344
344
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -346,7 +346,7 @@ export function hash(envelope, options = {}) {
|
|
|
346
346
|
* value: Value.fromEther('1'),
|
|
347
347
|
* })
|
|
348
348
|
*
|
|
349
|
-
* const serialized =
|
|
349
|
+
* const serialized = TxEnvelopeEip4844.serialize(envelope) // [!code focus]
|
|
350
350
|
* ```
|
|
351
351
|
*
|
|
352
352
|
* @example
|
|
@@ -356,14 +356,14 @@ export function hash(envelope, options = {}) {
|
|
|
356
356
|
*
|
|
357
357
|
* ```ts twoslash
|
|
358
358
|
* // @noErrors
|
|
359
|
-
* import { Blobs, Secp256k1,
|
|
359
|
+
* import { Blobs, Secp256k1, TxEnvelopeEip4844, Value } from 'ox'
|
|
360
360
|
* import { kzg } from './kzg'
|
|
361
361
|
*
|
|
362
362
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
363
363
|
* const sidecars = Blobs.toSidecars(blobs, { kzg })
|
|
364
364
|
* const blobVersionedHashes = Blobs.sidecarsToVersionedHashes(blobs)
|
|
365
365
|
*
|
|
366
|
-
* const envelope =
|
|
366
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
367
367
|
* blobVersionedHashes,
|
|
368
368
|
* chainId: 1,
|
|
369
369
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -374,11 +374,11 @@ export function hash(envelope, options = {}) {
|
|
|
374
374
|
* })
|
|
375
375
|
*
|
|
376
376
|
* const signature = Secp256k1.sign({
|
|
377
|
-
* payload:
|
|
377
|
+
* payload: TxEnvelopeEip4844.getSignPayload(envelope),
|
|
378
378
|
* privateKey: '0x...',
|
|
379
379
|
* })
|
|
380
380
|
*
|
|
381
|
-
* const serialized =
|
|
381
|
+
* const serialized = TxEnvelopeEip4844.serialize(envelope, { // [!code focus]
|
|
382
382
|
* sidecars, // [!code focus]
|
|
383
383
|
* signature, // [!code focus]
|
|
384
384
|
* }) // [!code focus]
|
|
@@ -427,18 +427,18 @@ export function serialize(envelope, options = {}) {
|
|
|
427
427
|
Rlp.fromHex(serialized));
|
|
428
428
|
}
|
|
429
429
|
/**
|
|
430
|
-
* Converts an {@link ox#
|
|
430
|
+
* Converts an {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844} to an {@link ox#TxEnvelopeEip4844.Rpc}.
|
|
431
431
|
*
|
|
432
432
|
* @example
|
|
433
433
|
* ```ts twoslash
|
|
434
434
|
* // @noErrors
|
|
435
|
-
* import { Blobs, RpcRequest,
|
|
435
|
+
* import { Blobs, RpcRequest, TxEnvelopeEip4844, Value } from 'ox'
|
|
436
436
|
* import { kzg } from './kzg'
|
|
437
437
|
*
|
|
438
438
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
439
439
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
440
440
|
*
|
|
441
|
-
* const envelope =
|
|
441
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
442
442
|
* blobVersionedHashes,
|
|
443
443
|
* chainId: 1,
|
|
444
444
|
* nonce: 0n,
|
|
@@ -448,7 +448,7 @@ export function serialize(envelope, options = {}) {
|
|
|
448
448
|
* value: Value.fromEther('1'),
|
|
449
449
|
* })
|
|
450
450
|
*
|
|
451
|
-
* const envelope_rpc =
|
|
451
|
+
* const envelope_rpc = TxEnvelopeEip4844.toRpc(envelope) // [!code focus]
|
|
452
452
|
*
|
|
453
453
|
* const request = RpcRequest.from({
|
|
454
454
|
* id: 0,
|
|
@@ -489,13 +489,13 @@ export function toRpc(envelope) {
|
|
|
489
489
|
};
|
|
490
490
|
}
|
|
491
491
|
/**
|
|
492
|
-
* Validates a {@link ox#
|
|
492
|
+
* Validates a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844}. Returns `true` if the envelope is valid, `false` otherwise.
|
|
493
493
|
*
|
|
494
494
|
* @example
|
|
495
495
|
* ```ts twoslash
|
|
496
|
-
* import {
|
|
496
|
+
* import { TxEnvelopeEip4844, Value } from 'ox'
|
|
497
497
|
*
|
|
498
|
-
* const valid =
|
|
498
|
+
* const valid = TxEnvelopeEip4844.assert({
|
|
499
499
|
* blobVersionedHashes: [],
|
|
500
500
|
* chainId: 1,
|
|
501
501
|
* to: '0x0000000000000000000000000000000000000000',
|
|
@@ -515,4 +515,4 @@ export function validate(envelope) {
|
|
|
515
515
|
return false;
|
|
516
516
|
}
|
|
517
517
|
}
|
|
518
|
-
//# sourceMappingURL=
|
|
518
|
+
//# sourceMappingURL=TxEnvelopeEip4844.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TxEnvelopeEip4844.js","sourceRoot":"","sources":["../../core/TxEnvelopeEip4844.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,18 +5,18 @@ import * as Hash from './Hash.js';
|
|
|
5
5
|
import * as Hex from './Hex.js';
|
|
6
6
|
import * as Rlp from './Rlp.js';
|
|
7
7
|
import * as Signature from './Signature.js';
|
|
8
|
-
import * as TransactionEnvelope from './
|
|
9
|
-
import * as
|
|
8
|
+
import * as TransactionEnvelope from './TxEnvelope.js';
|
|
9
|
+
import * as TxEnvelopeEip1559 from './TxEnvelopeEip1559.js';
|
|
10
10
|
export const serializedType = '0x04';
|
|
11
11
|
export const type = 'eip7702';
|
|
12
12
|
/**
|
|
13
|
-
* Asserts a {@link ox#
|
|
13
|
+
* Asserts a {@link ox#TxEnvelopeEip7702.TxEnvelopeEip7702} is valid.
|
|
14
14
|
*
|
|
15
15
|
* @example
|
|
16
16
|
* ```ts twoslash
|
|
17
|
-
* import {
|
|
17
|
+
* import { TxEnvelopeEip7702, Value } from 'ox'
|
|
18
18
|
*
|
|
19
|
-
*
|
|
19
|
+
* TxEnvelopeEip7702.assert({
|
|
20
20
|
* authorizationList: [],
|
|
21
21
|
* maxFeePerGas: 2n ** 256n - 1n + 1n,
|
|
22
22
|
* chainId: 1,
|
|
@@ -41,16 +41,16 @@ export function assert(envelope) {
|
|
|
41
41
|
throw new TransactionEnvelope.InvalidChainIdError({ chainId });
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
TxEnvelopeEip1559.assert(envelope);
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
|
-
* Deserializes a {@link ox#
|
|
47
|
+
* Deserializes a {@link ox#TxEnvelopeEip7702.TxEnvelopeEip7702} from its serialized form.
|
|
48
48
|
*
|
|
49
49
|
* @example
|
|
50
50
|
* ```ts twoslash
|
|
51
|
-
* import {
|
|
51
|
+
* import { TxEnvelopeEip7702 } from 'ox'
|
|
52
52
|
*
|
|
53
|
-
* const envelope =
|
|
53
|
+
* const envelope = TxEnvelopeEip7702.deserialize('0x04ef0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0')
|
|
54
54
|
* // @log: {
|
|
55
55
|
* // @log: authorizationList: [...],
|
|
56
56
|
* // @log: type: 'eip7702',
|
|
@@ -128,7 +128,7 @@ export function deserialize(serialized) {
|
|
|
128
128
|
*
|
|
129
129
|
* @example
|
|
130
130
|
* ```ts twoslash
|
|
131
|
-
* import { Authorization, Secp256k1,
|
|
131
|
+
* import { Authorization, Secp256k1, TxEnvelopeEip7702, Value } from 'ox'
|
|
132
132
|
*
|
|
133
133
|
* const authorization = Authorization.from({
|
|
134
134
|
* address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
|
@@ -143,7 +143,7 @@ export function deserialize(serialized) {
|
|
|
143
143
|
*
|
|
144
144
|
* const authorizationList = [Authorization.from(authorization, { signature })]
|
|
145
145
|
*
|
|
146
|
-
* const envelope =
|
|
146
|
+
* const envelope = TxEnvelopeEip7702.from({ // [!code focus]
|
|
147
147
|
* authorizationList, // [!code focus]
|
|
148
148
|
* chainId: 1, // [!code focus]
|
|
149
149
|
* maxFeePerGas: Value.fromGwei('10'), // [!code focus]
|
|
@@ -160,9 +160,9 @@ export function deserialize(serialized) {
|
|
|
160
160
|
*
|
|
161
161
|
* ```ts twoslash
|
|
162
162
|
* // @noErrors
|
|
163
|
-
* import { Secp256k1,
|
|
163
|
+
* import { Secp256k1, TxEnvelopeEip7702, Value } from 'ox'
|
|
164
164
|
*
|
|
165
|
-
* const envelope =
|
|
165
|
+
* const envelope = TxEnvelopeEip7702.from({
|
|
166
166
|
* authorizationList: [...],
|
|
167
167
|
* chainId: 1,
|
|
168
168
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -172,11 +172,11 @@ export function deserialize(serialized) {
|
|
|
172
172
|
* })
|
|
173
173
|
*
|
|
174
174
|
* const signature = Secp256k1.sign({
|
|
175
|
-
* payload:
|
|
175
|
+
* payload: TxEnvelopeEip7702.getSignPayload(envelope),
|
|
176
176
|
* privateKey: '0x...',
|
|
177
177
|
* })
|
|
178
178
|
*
|
|
179
|
-
* const envelope_signed =
|
|
179
|
+
* const envelope_signed = TxEnvelopeEip7702.from(envelope, { // [!code focus]
|
|
180
180
|
* signature, // [!code focus]
|
|
181
181
|
* }) // [!code focus]
|
|
182
182
|
* // @log: {
|
|
@@ -196,12 +196,12 @@ export function deserialize(serialized) {
|
|
|
196
196
|
* @example
|
|
197
197
|
* ### From Serialized
|
|
198
198
|
*
|
|
199
|
-
* It is possible to instantiate an EIP-7702 Transaction Envelope from a {@link ox#
|
|
199
|
+
* It is possible to instantiate an EIP-7702 Transaction Envelope from a {@link ox#TxEnvelopeEip7702.Serialized} value.
|
|
200
200
|
*
|
|
201
201
|
* ```ts twoslash
|
|
202
|
-
* import {
|
|
202
|
+
* import { TxEnvelopeEip7702 } from 'ox'
|
|
203
203
|
*
|
|
204
|
-
* const envelope =
|
|
204
|
+
* const envelope = TxEnvelopeEip7702.from('0x04f858018203118502540be4008504a817c800809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c08477359400e1a001627c687261b0e7f8638af1112efa8a77e23656f6e7945275b19e9deed80261')
|
|
205
205
|
* // @log: {
|
|
206
206
|
* // @log: authorizationList: [...],
|
|
207
207
|
* // @log: chainId: 1,
|
|
@@ -227,7 +227,7 @@ export function from(envelope, options = {}) {
|
|
|
227
227
|
};
|
|
228
228
|
}
|
|
229
229
|
/**
|
|
230
|
-
* Returns the payload to sign for a {@link ox#
|
|
230
|
+
* Returns the payload to sign for a {@link ox#TxEnvelopeEip7702.TxEnvelopeEip7702}.
|
|
231
231
|
*
|
|
232
232
|
* @example
|
|
233
233
|
* The example below demonstrates how to compute the sign payload which can be used
|
|
@@ -235,9 +235,9 @@ export function from(envelope, options = {}) {
|
|
|
235
235
|
*
|
|
236
236
|
* ```ts twoslash
|
|
237
237
|
* // @noErrors
|
|
238
|
-
* import { Secp256k1,
|
|
238
|
+
* import { Secp256k1, TxEnvelopeEip7702 } from 'ox'
|
|
239
239
|
*
|
|
240
|
-
* const envelope =
|
|
240
|
+
* const envelope = TxEnvelopeEip7702.from({
|
|
241
241
|
* authorizationList: [...],
|
|
242
242
|
* chainId: 1,
|
|
243
243
|
* nonce: 0n,
|
|
@@ -247,7 +247,7 @@ export function from(envelope, options = {}) {
|
|
|
247
247
|
* value: 1000000000000000000n,
|
|
248
248
|
* })
|
|
249
249
|
*
|
|
250
|
-
* const payload =
|
|
250
|
+
* const payload = TxEnvelopeEip7702.getSignPayload(envelope) // [!code focus]
|
|
251
251
|
* // @log: '0x...'
|
|
252
252
|
*
|
|
253
253
|
* const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
|
|
@@ -260,14 +260,14 @@ export function getSignPayload(envelope) {
|
|
|
260
260
|
return hash(envelope, { presign: true });
|
|
261
261
|
}
|
|
262
262
|
/**
|
|
263
|
-
* Hashes a {@link ox#
|
|
263
|
+
* Hashes a {@link ox#TxEnvelopeEip7702.TxEnvelopeEip7702}. This is the "transaction hash".
|
|
264
264
|
*
|
|
265
265
|
* @example
|
|
266
266
|
* ```ts twoslash
|
|
267
267
|
* // @noErrors
|
|
268
|
-
* import { Secp256k1,
|
|
268
|
+
* import { Secp256k1, TxEnvelopeEip7702 } from 'ox'
|
|
269
269
|
*
|
|
270
|
-
* const envelope =
|
|
270
|
+
* const envelope = TxEnvelopeEip7702.from({
|
|
271
271
|
* authorizationList: [...],
|
|
272
272
|
* chainId: 1,
|
|
273
273
|
* nonce: 0n,
|
|
@@ -278,13 +278,13 @@ export function getSignPayload(envelope) {
|
|
|
278
278
|
* })
|
|
279
279
|
*
|
|
280
280
|
* const signature = Secp256k1.sign({
|
|
281
|
-
* payload:
|
|
281
|
+
* payload: TxEnvelopeEip7702.getSignPayload(envelope),
|
|
282
282
|
* privateKey: '0x...'
|
|
283
283
|
* })
|
|
284
284
|
*
|
|
285
|
-
* const envelope_signed =
|
|
285
|
+
* const envelope_signed = TxEnvelopeEip7702.from(envelope, { signature })
|
|
286
286
|
*
|
|
287
|
-
* const hash =
|
|
287
|
+
* const hash = TxEnvelopeEip7702.hash(envelope_signed) // [!code focus]
|
|
288
288
|
* ```
|
|
289
289
|
*
|
|
290
290
|
* @param envelope - The EIP-7702 Transaction Envelope to hash.
|
|
@@ -305,12 +305,12 @@ export function hash(envelope, options = {}) {
|
|
|
305
305
|
}));
|
|
306
306
|
}
|
|
307
307
|
/**
|
|
308
|
-
* Serializes a {@link ox#
|
|
308
|
+
* Serializes a {@link ox#TxEnvelopeEip7702.TxEnvelopeEip7702}.
|
|
309
309
|
*
|
|
310
310
|
* @example
|
|
311
311
|
* ```ts twoslash
|
|
312
312
|
* // @noErrors
|
|
313
|
-
* import { Authorization, Secp256k1,
|
|
313
|
+
* import { Authorization, Secp256k1, TxEnvelopeEip7702, Value } from 'ox'
|
|
314
314
|
*
|
|
315
315
|
* const authorization = Authorization.from({
|
|
316
316
|
* address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
|
@@ -325,7 +325,7 @@ export function hash(envelope, options = {}) {
|
|
|
325
325
|
*
|
|
326
326
|
* const authorizationList = [Authorization.from(authorization, { signature })]
|
|
327
327
|
*
|
|
328
|
-
* const envelope =
|
|
328
|
+
* const envelope = TxEnvelopeEip7702.from({
|
|
329
329
|
* authorizationList,
|
|
330
330
|
* chainId: 1,
|
|
331
331
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -333,7 +333,7 @@ export function hash(envelope, options = {}) {
|
|
|
333
333
|
* value: Value.fromEther('1'),
|
|
334
334
|
* })
|
|
335
335
|
*
|
|
336
|
-
* const serialized =
|
|
336
|
+
* const serialized = TxEnvelopeEip7702.serialize(envelope) // [!code focus]
|
|
337
337
|
* ```
|
|
338
338
|
*
|
|
339
339
|
* @example
|
|
@@ -343,9 +343,9 @@ export function hash(envelope, options = {}) {
|
|
|
343
343
|
*
|
|
344
344
|
* ```ts twoslash
|
|
345
345
|
* // @noErrors
|
|
346
|
-
* import { Secp256k1,
|
|
346
|
+
* import { Secp256k1, TxEnvelopeEip7702, Value } from 'ox'
|
|
347
347
|
*
|
|
348
|
-
* const envelope =
|
|
348
|
+
* const envelope = TxEnvelopeEip7702.from({
|
|
349
349
|
* authorizationList: [...],
|
|
350
350
|
* chainId: 1,
|
|
351
351
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -354,11 +354,11 @@ export function hash(envelope, options = {}) {
|
|
|
354
354
|
* })
|
|
355
355
|
*
|
|
356
356
|
* const signature = Secp256k1.sign({
|
|
357
|
-
* payload:
|
|
357
|
+
* payload: TxEnvelopeEip7702.getSignPayload(envelope),
|
|
358
358
|
* privateKey: '0x...',
|
|
359
359
|
* })
|
|
360
360
|
*
|
|
361
|
-
* const serialized =
|
|
361
|
+
* const serialized = TxEnvelopeEip7702.serialize(envelope, { // [!code focus]
|
|
362
362
|
* signature, // [!code focus]
|
|
363
363
|
* }) // [!code focus]
|
|
364
364
|
*
|
|
@@ -391,13 +391,13 @@ export function serialize(envelope, options = {}) {
|
|
|
391
391
|
return Hex.concat(serializedType, Rlp.fromHex(serialized));
|
|
392
392
|
}
|
|
393
393
|
/**
|
|
394
|
-
* Validates a {@link ox#
|
|
394
|
+
* Validates a {@link ox#TxEnvelopeEip7702.TxEnvelopeEip7702}. Returns `true` if the envelope is valid, `false` otherwise.
|
|
395
395
|
*
|
|
396
396
|
* @example
|
|
397
397
|
* ```ts twoslash
|
|
398
|
-
* import {
|
|
398
|
+
* import { TxEnvelopeEip7702, Value } from 'ox'
|
|
399
399
|
*
|
|
400
|
-
* const valid =
|
|
400
|
+
* const valid = TxEnvelopeEip7702.validate({
|
|
401
401
|
* authorizationList: [],
|
|
402
402
|
* maxFeePerGas: 2n ** 256n - 1n + 1n,
|
|
403
403
|
* chainId: 1,
|
|
@@ -418,4 +418,4 @@ export function validate(envelope) {
|
|
|
418
418
|
return false;
|
|
419
419
|
}
|
|
420
420
|
}
|
|
421
|
-
//# sourceMappingURL=
|
|
421
|
+
//# sourceMappingURL=TxEnvelopeEip7702.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TxEnvelopeEip7702.js","sourceRoot":"","sources":["../../core/TxEnvelopeEip7702.ts"],"names":[],"mappings":"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"}
|