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
|
@@ -6,9 +6,9 @@ import * as Hex from './Hex.js';
|
|
|
6
6
|
import type { Assign, Compute, PartialBy, UnionPartialBy } from './internal/types.js';
|
|
7
7
|
import * as Rlp from './Rlp.js';
|
|
8
8
|
import * as Signature from './Signature.js';
|
|
9
|
-
import * as TransactionEnvelope from './
|
|
10
|
-
import * as
|
|
11
|
-
export type
|
|
9
|
+
import * as TransactionEnvelope from './TxEnvelope.js';
|
|
10
|
+
import * as TxEnvelopeEip1559 from './TxEnvelopeEip1559.js';
|
|
11
|
+
export type TxEnvelopeEip4844<signed extends boolean = boolean, bigintType = bigint, numberType = number, type extends string = Type> = Compute<TransactionEnvelope.Base<type, signed, bigintType, numberType> & {
|
|
12
12
|
/** EIP-2930 Access List. */
|
|
13
13
|
accessList?: AccessList.AccessList | undefined;
|
|
14
14
|
/** Versioned hashes of blobs to be included in the transaction. */
|
|
@@ -22,21 +22,21 @@ export type TransactionEnvelopeEip4844<signed extends boolean = boolean, bigintT
|
|
|
22
22
|
/** The sidecars associated with this transaction. When defined, the envelope is in the "network wrapper" format. */
|
|
23
23
|
sidecars?: readonly Blobs.BlobSidecar<Hex.Hex>[] | undefined;
|
|
24
24
|
}>;
|
|
25
|
-
export type Rpc<signed extends boolean = boolean> =
|
|
25
|
+
export type Rpc<signed extends boolean = boolean> = TxEnvelopeEip4844<signed, Hex.Hex, Hex.Hex, '0x3'>;
|
|
26
26
|
export type Serialized = `${SerializedType}${string}`;
|
|
27
27
|
export declare const serializedType: "0x03";
|
|
28
28
|
export type SerializedType = typeof serializedType;
|
|
29
|
-
export type Signed =
|
|
29
|
+
export type Signed = TxEnvelopeEip4844<true>;
|
|
30
30
|
export declare const type: "eip4844";
|
|
31
31
|
export type Type = 'eip4844';
|
|
32
32
|
/**
|
|
33
|
-
* Asserts a {@link ox#
|
|
33
|
+
* Asserts a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844} is valid.
|
|
34
34
|
*
|
|
35
35
|
* @example
|
|
36
36
|
* ```ts twoslash
|
|
37
|
-
* import {
|
|
37
|
+
* import { TxEnvelopeEip4844, Value } from 'ox'
|
|
38
38
|
*
|
|
39
|
-
*
|
|
39
|
+
* TxEnvelopeEip4844.assert({
|
|
40
40
|
* blobVersionedHashes: [],
|
|
41
41
|
* chainId: 1,
|
|
42
42
|
* to: '0x0000000000000000000000000000000000000000',
|
|
@@ -47,18 +47,18 @@ export type Type = 'eip4844';
|
|
|
47
47
|
*
|
|
48
48
|
* @param envelope - The transaction envelope to assert.
|
|
49
49
|
*/
|
|
50
|
-
export declare function assert(envelope: PartialBy<
|
|
50
|
+
export declare function assert(envelope: PartialBy<TxEnvelopeEip4844, 'type'>): void;
|
|
51
51
|
export declare namespace assert {
|
|
52
|
-
type ErrorType =
|
|
52
|
+
type ErrorType = TxEnvelopeEip1559.assert.ErrorType | Hex.size.ErrorType | Hex.toNumber.ErrorType | Hex.slice.ErrorType | Blobs.EmptyBlobVersionedHashesError | Blobs.InvalidVersionedHashSizeError | Blobs.InvalidVersionedHashVersionError | Errors.GlobalErrorType;
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
|
-
* Deserializes a {@link ox#
|
|
55
|
+
* Deserializes a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844} from its serialized form.
|
|
56
56
|
*
|
|
57
57
|
* @example
|
|
58
58
|
* ```ts twoslash
|
|
59
|
-
* import {
|
|
59
|
+
* import { TxEnvelopeEip4844 } from 'ox'
|
|
60
60
|
*
|
|
61
|
-
* const envelope =
|
|
61
|
+
* const envelope = TxEnvelopeEip4844.deserialize('0x03ef0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0')
|
|
62
62
|
* // @log: {
|
|
63
63
|
* // @log: blobVersionedHashes: [...],
|
|
64
64
|
* // @log: type: 'eip4844',
|
|
@@ -73,7 +73,7 @@ export declare namespace assert {
|
|
|
73
73
|
* @param serialized - The serialized transaction.
|
|
74
74
|
* @returns Deserialized Transaction Envelope.
|
|
75
75
|
*/
|
|
76
|
-
export declare function deserialize(serialized: Serialized): Compute<
|
|
76
|
+
export declare function deserialize(serialized: Serialized): Compute<TxEnvelopeEip4844>;
|
|
77
77
|
export declare namespace deserialize {
|
|
78
78
|
type ErrorType = Errors.GlobalErrorType;
|
|
79
79
|
}
|
|
@@ -83,13 +83,13 @@ export declare namespace deserialize {
|
|
|
83
83
|
* @example
|
|
84
84
|
* ```ts twoslash
|
|
85
85
|
* // @noErrors
|
|
86
|
-
* import { Blobs,
|
|
86
|
+
* import { Blobs, TxEnvelopeEip4844, Value } from 'ox'
|
|
87
87
|
* import { kzg } from './kzg'
|
|
88
88
|
*
|
|
89
89
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
90
90
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
91
91
|
*
|
|
92
|
-
* const envelope =
|
|
92
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
93
93
|
* chainId: 1,
|
|
94
94
|
* blobVersionedHashes,
|
|
95
95
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -107,14 +107,14 @@ export declare namespace deserialize {
|
|
|
107
107
|
*
|
|
108
108
|
* ```ts twoslash
|
|
109
109
|
* // @noErrors
|
|
110
|
-
* import { Blobs, Secp256k1,
|
|
110
|
+
* import { Blobs, Secp256k1, TxEnvelopeEip4844, Value } from 'ox'
|
|
111
111
|
* import { kzg } from './kzg'
|
|
112
112
|
*
|
|
113
113
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
114
114
|
* const sidecars = Blobs.toSidecars(blobs, { kzg })
|
|
115
115
|
* const blobVersionedHashes = Blobs.sidecarsToVersionedHashes(sidecars)
|
|
116
116
|
*
|
|
117
|
-
* const envelope =
|
|
117
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
118
118
|
* blobVersionedHashes,
|
|
119
119
|
* chainId: 1,
|
|
120
120
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -125,11 +125,11 @@ export declare namespace deserialize {
|
|
|
125
125
|
* })
|
|
126
126
|
*
|
|
127
127
|
* const signature = Secp256k1.sign({
|
|
128
|
-
* payload:
|
|
128
|
+
* payload: TxEnvelopeEip4844.getSignPayload(envelope),
|
|
129
129
|
* privateKey: '0x...',
|
|
130
130
|
* })
|
|
131
131
|
*
|
|
132
|
-
* const envelope_signed =
|
|
132
|
+
* const envelope_signed = TxEnvelopeEip4844.from(envelope, { // [!code focus]
|
|
133
133
|
* sidecars, // [!code focus]
|
|
134
134
|
* signature, // [!code focus]
|
|
135
135
|
* }) // [!code focus]
|
|
@@ -151,12 +151,12 @@ export declare namespace deserialize {
|
|
|
151
151
|
* @example
|
|
152
152
|
* ### From Serialized
|
|
153
153
|
*
|
|
154
|
-
* It is possible to instantiate an EIP-4844 Transaction Envelope from a {@link ox#
|
|
154
|
+
* It is possible to instantiate an EIP-4844 Transaction Envelope from a {@link ox#TxEnvelopeEip4844.Serialized} value.
|
|
155
155
|
*
|
|
156
156
|
* ```ts twoslash
|
|
157
|
-
* import {
|
|
157
|
+
* import { TxEnvelopeEip4844 } from 'ox'
|
|
158
158
|
*
|
|
159
|
-
* const envelope =
|
|
159
|
+
* const envelope = TxEnvelopeEip4844.from('0x03f858018203118502540be4008504a817c800809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c08477359400e1a001627c687261b0e7f8638af1112efa8a77e23656f6e7945275b19e9deed80261')
|
|
160
160
|
* // @log: {
|
|
161
161
|
* // @log: blobVersionedHashes: [...],
|
|
162
162
|
* // @log: chainId: 1,
|
|
@@ -171,18 +171,18 @@ export declare namespace deserialize {
|
|
|
171
171
|
* @param options - Options.
|
|
172
172
|
* @returns An EIP-4844 Transaction Envelope.
|
|
173
173
|
*/
|
|
174
|
-
export declare function from<const envelope extends UnionPartialBy<
|
|
174
|
+
export declare function from<const envelope extends UnionPartialBy<TxEnvelopeEip4844, 'type'> | Serialized, const signature extends Signature.Signature | undefined = undefined>(envelope: envelope | UnionPartialBy<TxEnvelopeEip4844, 'type'> | Serialized, options?: from.Options<signature>): from.ReturnType<envelope, signature>;
|
|
175
175
|
export declare namespace from {
|
|
176
176
|
type Options<signature extends Signature.Signature | undefined = undefined> = {
|
|
177
177
|
signature?: signature | Signature.Signature | undefined;
|
|
178
178
|
};
|
|
179
|
-
type ReturnType<envelope extends UnionPartialBy<
|
|
179
|
+
type ReturnType<envelope extends UnionPartialBy<TxEnvelopeEip4844, 'type'> | Hex.Hex = TxEnvelopeEip4844 | Hex.Hex, signature extends Signature.Signature | undefined = undefined> = Compute<envelope extends Hex.Hex ? TxEnvelopeEip4844 : Assign<envelope, (signature extends Signature.Signature ? Readonly<signature> : {}) & {
|
|
180
180
|
readonly type: 'eip4844';
|
|
181
181
|
}>>;
|
|
182
182
|
type ErrorType = deserialize.ErrorType | assert.ErrorType | Errors.GlobalErrorType;
|
|
183
183
|
}
|
|
184
184
|
/**
|
|
185
|
-
* Returns the payload to sign for a {@link ox#
|
|
185
|
+
* Returns the payload to sign for a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844}.
|
|
186
186
|
*
|
|
187
187
|
* @example
|
|
188
188
|
* The example below demonstrates how to compute the sign payload which can be used
|
|
@@ -190,13 +190,13 @@ export declare namespace from {
|
|
|
190
190
|
*
|
|
191
191
|
* ```ts twoslash
|
|
192
192
|
* // @noErrors
|
|
193
|
-
* import { Blobs, Secp256k1,
|
|
193
|
+
* import { Blobs, Secp256k1, TxEnvelopeEip4844 } from 'ox'
|
|
194
194
|
* import { kzg } from './kzg'
|
|
195
195
|
*
|
|
196
196
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
197
197
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
198
198
|
*
|
|
199
|
-
* const envelope =
|
|
199
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
200
200
|
* blobVersionedHashes,
|
|
201
201
|
* chainId: 1,
|
|
202
202
|
* nonce: 0n,
|
|
@@ -206,7 +206,7 @@ export declare namespace from {
|
|
|
206
206
|
* value: 1000000000000000000n,
|
|
207
207
|
* })
|
|
208
208
|
*
|
|
209
|
-
* const payload =
|
|
209
|
+
* const payload = TxEnvelopeEip4844.getSignPayload(envelope) // [!code focus]
|
|
210
210
|
* // @log: '0x...'
|
|
211
211
|
*
|
|
212
212
|
* const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
|
|
@@ -215,24 +215,24 @@ export declare namespace from {
|
|
|
215
215
|
* @param envelope - The transaction envelope to get the sign payload for.
|
|
216
216
|
* @returns The sign payload.
|
|
217
217
|
*/
|
|
218
|
-
export declare function getSignPayload(envelope:
|
|
218
|
+
export declare function getSignPayload(envelope: TxEnvelopeEip4844): getSignPayload.ReturnType;
|
|
219
219
|
export declare namespace getSignPayload {
|
|
220
220
|
type ReturnType = Hex.Hex;
|
|
221
221
|
type ErrorType = hash.ErrorType | Errors.GlobalErrorType;
|
|
222
222
|
}
|
|
223
223
|
/**
|
|
224
|
-
* Hashes a {@link ox#
|
|
224
|
+
* Hashes a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844}. This is the "transaction hash".
|
|
225
225
|
*
|
|
226
226
|
* @example
|
|
227
227
|
* ```ts twoslash
|
|
228
228
|
* // @noErrors
|
|
229
|
-
* import { Blobs,
|
|
229
|
+
* import { Blobs, TxEnvelopeEip4844 } from 'ox'
|
|
230
230
|
* import { kzg } from './kzg'
|
|
231
231
|
*
|
|
232
232
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
233
233
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
234
234
|
*
|
|
235
|
-
* const envelope =
|
|
235
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
236
236
|
* blobVersionedHashes,
|
|
237
237
|
* chainId: 1,
|
|
238
238
|
* nonce: 0n,
|
|
@@ -242,14 +242,14 @@ export declare namespace getSignPayload {
|
|
|
242
242
|
* value: 1000000000000000000n,
|
|
243
243
|
* })
|
|
244
244
|
*
|
|
245
|
-
* const hash =
|
|
245
|
+
* const hash = TxEnvelopeEip4844.hash(envelope) // [!code focus]
|
|
246
246
|
* ```
|
|
247
247
|
*
|
|
248
248
|
* @param envelope - The EIP-4844 Transaction Envelope to hash.
|
|
249
249
|
* @param options - Options.
|
|
250
250
|
* @returns The hash of the transaction envelope.
|
|
251
251
|
*/
|
|
252
|
-
export declare function hash<presign extends boolean = false>(envelope:
|
|
252
|
+
export declare function hash<presign extends boolean = false>(envelope: TxEnvelopeEip4844<presign extends true ? false : true>, options?: hash.Options<presign>): hash.ReturnType;
|
|
253
253
|
export declare namespace hash {
|
|
254
254
|
type Options<presign extends boolean = false> = {
|
|
255
255
|
/** Whether to hash this transaction for signing. @default false */
|
|
@@ -259,18 +259,18 @@ export declare namespace hash {
|
|
|
259
259
|
type ErrorType = Hash.keccak256.ErrorType | serialize.ErrorType | Errors.GlobalErrorType;
|
|
260
260
|
}
|
|
261
261
|
/**
|
|
262
|
-
* Serializes a {@link ox#
|
|
262
|
+
* Serializes a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844}.
|
|
263
263
|
*
|
|
264
264
|
* @example
|
|
265
265
|
* ```ts twoslash
|
|
266
266
|
* // @noErrors
|
|
267
|
-
* import { Blobs,
|
|
267
|
+
* import { Blobs, TxEnvelopeEip4844 } from 'ox'
|
|
268
268
|
* import { kzg } from './kzg'
|
|
269
269
|
*
|
|
270
270
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
271
271
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
272
272
|
*
|
|
273
|
-
* const envelope =
|
|
273
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
274
274
|
* blobVersionedHashes,
|
|
275
275
|
* chainId: 1,
|
|
276
276
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -278,7 +278,7 @@ export declare namespace hash {
|
|
|
278
278
|
* value: Value.fromEther('1'),
|
|
279
279
|
* })
|
|
280
280
|
*
|
|
281
|
-
* const serialized =
|
|
281
|
+
* const serialized = TxEnvelopeEip4844.serialize(envelope) // [!code focus]
|
|
282
282
|
* ```
|
|
283
283
|
*
|
|
284
284
|
* @example
|
|
@@ -288,14 +288,14 @@ export declare namespace hash {
|
|
|
288
288
|
*
|
|
289
289
|
* ```ts twoslash
|
|
290
290
|
* // @noErrors
|
|
291
|
-
* import { Blobs, Secp256k1,
|
|
291
|
+
* import { Blobs, Secp256k1, TxEnvelopeEip4844, Value } from 'ox'
|
|
292
292
|
* import { kzg } from './kzg'
|
|
293
293
|
*
|
|
294
294
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
295
295
|
* const sidecars = Blobs.toSidecars(blobs, { kzg })
|
|
296
296
|
* const blobVersionedHashes = Blobs.sidecarsToVersionedHashes(blobs)
|
|
297
297
|
*
|
|
298
|
-
* const envelope =
|
|
298
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
299
299
|
* blobVersionedHashes,
|
|
300
300
|
* chainId: 1,
|
|
301
301
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -306,11 +306,11 @@ export declare namespace hash {
|
|
|
306
306
|
* })
|
|
307
307
|
*
|
|
308
308
|
* const signature = Secp256k1.sign({
|
|
309
|
-
* payload:
|
|
309
|
+
* payload: TxEnvelopeEip4844.getSignPayload(envelope),
|
|
310
310
|
* privateKey: '0x...',
|
|
311
311
|
* })
|
|
312
312
|
*
|
|
313
|
-
* const serialized =
|
|
313
|
+
* const serialized = TxEnvelopeEip4844.serialize(envelope, { // [!code focus]
|
|
314
314
|
* sidecars, // [!code focus]
|
|
315
315
|
* signature, // [!code focus]
|
|
316
316
|
* }) // [!code focus]
|
|
@@ -322,7 +322,7 @@ export declare namespace hash {
|
|
|
322
322
|
* @param options - Options.
|
|
323
323
|
* @returns The serialized Transaction Envelope.
|
|
324
324
|
*/
|
|
325
|
-
export declare function serialize(envelope: PartialBy<
|
|
325
|
+
export declare function serialize(envelope: PartialBy<TxEnvelopeEip4844, 'type'>, options?: serialize.Options): Serialized;
|
|
326
326
|
export declare namespace serialize {
|
|
327
327
|
type Options = {
|
|
328
328
|
/** Signature to append to the serialized Transaction Envelope. */
|
|
@@ -333,18 +333,18 @@ export declare namespace serialize {
|
|
|
333
333
|
type ErrorType = assert.ErrorType | Hex.fromNumber.ErrorType | Signature.toTuple.ErrorType | Hex.concat.ErrorType | Rlp.fromHex.ErrorType | Errors.GlobalErrorType;
|
|
334
334
|
}
|
|
335
335
|
/**
|
|
336
|
-
* Converts an {@link ox#
|
|
336
|
+
* Converts an {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844} to an {@link ox#TxEnvelopeEip4844.Rpc}.
|
|
337
337
|
*
|
|
338
338
|
* @example
|
|
339
339
|
* ```ts twoslash
|
|
340
340
|
* // @noErrors
|
|
341
|
-
* import { Blobs, RpcRequest,
|
|
341
|
+
* import { Blobs, RpcRequest, TxEnvelopeEip4844, Value } from 'ox'
|
|
342
342
|
* import { kzg } from './kzg'
|
|
343
343
|
*
|
|
344
344
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
345
345
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
346
346
|
*
|
|
347
|
-
* const envelope =
|
|
347
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
348
348
|
* blobVersionedHashes,
|
|
349
349
|
* chainId: 1,
|
|
350
350
|
* nonce: 0n,
|
|
@@ -354,7 +354,7 @@ export declare namespace serialize {
|
|
|
354
354
|
* value: Value.fromEther('1'),
|
|
355
355
|
* })
|
|
356
356
|
*
|
|
357
|
-
* const envelope_rpc =
|
|
357
|
+
* const envelope_rpc = TxEnvelopeEip4844.toRpc(envelope) // [!code focus]
|
|
358
358
|
*
|
|
359
359
|
* const request = RpcRequest.from({
|
|
360
360
|
* id: 0,
|
|
@@ -366,18 +366,18 @@ export declare namespace serialize {
|
|
|
366
366
|
* @param envelope - The EIP-4844 transaction envelope to convert.
|
|
367
367
|
* @returns An RPC-formatted EIP-4844 transaction envelope.
|
|
368
368
|
*/
|
|
369
|
-
export declare function toRpc(envelope: Omit<
|
|
369
|
+
export declare function toRpc(envelope: Omit<TxEnvelopeEip4844, 'type'>): Rpc;
|
|
370
370
|
export declare namespace toRpc {
|
|
371
371
|
type ErrorType = Signature.extract.ErrorType | Errors.GlobalErrorType;
|
|
372
372
|
}
|
|
373
373
|
/**
|
|
374
|
-
* Validates a {@link ox#
|
|
374
|
+
* Validates a {@link ox#TxEnvelopeEip4844.TxEnvelopeEip4844}. Returns `true` if the envelope is valid, `false` otherwise.
|
|
375
375
|
*
|
|
376
376
|
* @example
|
|
377
377
|
* ```ts twoslash
|
|
378
|
-
* import {
|
|
378
|
+
* import { TxEnvelopeEip4844, Value } from 'ox'
|
|
379
379
|
*
|
|
380
|
-
* const valid =
|
|
380
|
+
* const valid = TxEnvelopeEip4844.assert({
|
|
381
381
|
* blobVersionedHashes: [],
|
|
382
382
|
* chainId: 1,
|
|
383
383
|
* to: '0x0000000000000000000000000000000000000000',
|
|
@@ -388,8 +388,8 @@ export declare namespace toRpc {
|
|
|
388
388
|
*
|
|
389
389
|
* @param envelope - The transaction envelope to validate.
|
|
390
390
|
*/
|
|
391
|
-
export declare function validate(envelope: PartialBy<
|
|
391
|
+
export declare function validate(envelope: PartialBy<TxEnvelopeEip4844, 'type'>): boolean;
|
|
392
392
|
export declare namespace validate {
|
|
393
393
|
type ErrorType = Errors.GlobalErrorType;
|
|
394
394
|
}
|
|
395
|
-
//# sourceMappingURL=
|
|
395
|
+
//# sourceMappingURL=TxEnvelopeEip4844.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TxEnvelopeEip4844.d.ts","sourceRoot":"","sources":["../../core/TxEnvelopeEip4844.ts"],"names":[],"mappings":"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"}
|