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
package/index.ts
CHANGED
|
@@ -810,7 +810,7 @@ export * as AesGcm from './core/AesGcm.js'
|
|
|
810
810
|
* A signature can be attached to an Authorization using {@link ox#Authorization.(from:function)}:
|
|
811
811
|
*
|
|
812
812
|
* ```ts twoslash
|
|
813
|
-
* import { Authorization, Secp256k1,
|
|
813
|
+
* import { Authorization, Secp256k1, TxEnvelopeEip7702, Value } from 'ox'
|
|
814
814
|
*
|
|
815
815
|
* const authorization = Authorization.from({
|
|
816
816
|
* address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
@@ -825,7 +825,7 @@ export * as AesGcm from './core/AesGcm.js'
|
|
|
825
825
|
*
|
|
826
826
|
* const authorization_signed = Authorization.from(authorization, { signature }) // [!code focus]
|
|
827
827
|
*
|
|
828
|
-
* const envelope =
|
|
828
|
+
* const envelope = TxEnvelopeEip7702.from({
|
|
829
829
|
* authorizationList: [authorization_signed],
|
|
830
830
|
* chainId: 1,
|
|
831
831
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -2444,34 +2444,101 @@ export * as StateOverrides from './core/StateOverrides.js'
|
|
|
2444
2444
|
* @category Execution Spec
|
|
2445
2445
|
*/
|
|
2446
2446
|
export * as Transaction from './core/Transaction.js'
|
|
2447
|
-
|
|
2447
|
+
/**
|
|
2448
|
+
* Utilities & types for working with **Transaction Receipts** as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/receipt.yaml)
|
|
2449
|
+
*
|
|
2450
|
+
* @example
|
|
2451
|
+
* ### Converting from RPC Format
|
|
2452
|
+
*
|
|
2453
|
+
* Receipts can be converted from RPC format using {@link ox#TransactionReceipt.(fromRpc:function)}:
|
|
2454
|
+
*
|
|
2455
|
+
* ```ts twoslash
|
|
2456
|
+
* import 'ox/window'
|
|
2457
|
+
* import { TransactionReceipt } from 'ox'
|
|
2458
|
+
*
|
|
2459
|
+
* const receipt = await window.ethereum!
|
|
2460
|
+
* .request({
|
|
2461
|
+
* method: 'eth_getTransactionReceipt',
|
|
2462
|
+
* params: [
|
|
2463
|
+
* '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0',
|
|
2464
|
+
* ],
|
|
2465
|
+
* })
|
|
2466
|
+
* .then(TransactionReceipt.fromRpc) // [!code hl]
|
|
2467
|
+
* // @log: {
|
|
2468
|
+
* // @log: blobGasPrice: 270441n,
|
|
2469
|
+
* // @log: blobGasUsed: 4919n,
|
|
2470
|
+
* // @log: blockHash: "0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b",
|
|
2471
|
+
* // @log: blockNumber: 19868015n,
|
|
2472
|
+
* // @log: contractAddress: null,
|
|
2473
|
+
* // @log: cumulativeGasUsed: 533781n,
|
|
2474
|
+
* // @log: effectiveGasPrice: 9062804489n,
|
|
2475
|
+
* // @log: from: "0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6",
|
|
2476
|
+
* // @log: gasUsed: 175034n,
|
|
2477
|
+
* // @log: logs: [],
|
|
2478
|
+
* // @log: logsBloom: "0x00200000000000000000008080000000000000000040000000000000000000000000000000000000000000000000000022000000080000000000000000000000000000080000000000000008000000200000000000000000000200008020400000000000000000280000000000100000000000000000000000000010000000000000000000020000000000000020000000000001000000080000004000000000000000000000000000000000000000000000400000000000001000000000000000000002000000000000000020000000000000000000001000000000000000000000200000000000000000000000000000001000000000c00000000000000000",
|
|
2479
|
+
* // @log: root: undefined,
|
|
2480
|
+
* // @log: status: "success",
|
|
2481
|
+
* // @log: to: "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
|
|
2482
|
+
* // @log: transactionHash: "0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0",
|
|
2483
|
+
* // @log: transactionIndex: 2,
|
|
2484
|
+
* // @log: type: "eip1559",
|
|
2485
|
+
* // @log: }
|
|
2486
|
+
* ```
|
|
2487
|
+
*
|
|
2488
|
+
* @category Execution Spec
|
|
2489
|
+
*/
|
|
2490
|
+
export * as TransactionReceipt from './core/TransactionReceipt.js'
|
|
2491
|
+
/**
|
|
2492
|
+
* Utilities & types for working with **Transaction Requests** as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/4aca1d7a3e5aab24c8f6437131289ad386944eaa/src/schemas/transaction.yaml#L358-L423)
|
|
2493
|
+
*
|
|
2494
|
+
* @example
|
|
2495
|
+
* ```ts twoslash
|
|
2496
|
+
* import 'ox/window'
|
|
2497
|
+
* import { Provider, TransactionRequest, Value } from 'ox'
|
|
2498
|
+
*
|
|
2499
|
+
* const provider = Provider.from(window.ethereum!)
|
|
2500
|
+
*
|
|
2501
|
+
* const request = TransactionRequest.toRpc({ // [!code focus]
|
|
2502
|
+
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]
|
|
2503
|
+
* value: Value.fromEther('0.01'), // [!code focus]
|
|
2504
|
+
* }) // [!code focus]
|
|
2505
|
+
*
|
|
2506
|
+
* const hash = await provider.request({
|
|
2507
|
+
* method: 'eth_sendTransaction',
|
|
2508
|
+
* params: [request],
|
|
2509
|
+
* })
|
|
2510
|
+
* ```
|
|
2511
|
+
*
|
|
2512
|
+
* @category Execution Spec
|
|
2513
|
+
*/
|
|
2514
|
+
export * as TransactionRequest from './core/TransactionRequest.js'
|
|
2448
2515
|
/**
|
|
2449
2516
|
* Errors & Types for working with Transaction Envelopes.
|
|
2450
2517
|
*
|
|
2451
2518
|
* :::note
|
|
2452
2519
|
* Refer to the following modules for specific Transaction Envelope types:
|
|
2453
|
-
* - [`
|
|
2454
|
-
* - [`
|
|
2455
|
-
* - [`
|
|
2456
|
-
* - [`
|
|
2457
|
-
* - [`
|
|
2520
|
+
* - [`TxEnvelopeLegacy`](/api/TxEnvelopeLegacy)
|
|
2521
|
+
* - [`TxEnvelopeEip1559`](/api/TxEnvelopeEip1559)
|
|
2522
|
+
* - [`TxEnvelopeEip2930`](/api/TxEnvelopeEip2930)
|
|
2523
|
+
* - [`TxEnvelopeEip4844`](/api/TxEnvelopeEip4844)
|
|
2524
|
+
* - [`TxEnvelopeEip7702`](/api/TxEnvelopeEip7702)
|
|
2458
2525
|
* :::
|
|
2459
2526
|
*
|
|
2460
2527
|
* @category Transaction Envelopes
|
|
2461
2528
|
*/
|
|
2462
|
-
export * as TransactionEnvelope from './core/
|
|
2529
|
+
export * as TransactionEnvelope from './core/TxEnvelope.js'
|
|
2463
2530
|
/**
|
|
2464
2531
|
* Utility functions for working with [EIP-1559 Typed Transaction Envelopes](https://eips.ethereum.org/EIPS/eip-1559)
|
|
2465
2532
|
*
|
|
2466
2533
|
* @example
|
|
2467
2534
|
* ### Instantiating
|
|
2468
2535
|
*
|
|
2469
|
-
* Transaction Envelopes can be instantiated using {@link ox#
|
|
2536
|
+
* Transaction Envelopes can be instantiated using {@link ox#TxEnvelopeEip1559.(from:function)}:
|
|
2470
2537
|
*
|
|
2471
2538
|
* ```ts twoslash
|
|
2472
|
-
* import {
|
|
2539
|
+
* import { TxEnvelopeEip1559, Value } from 'ox'
|
|
2473
2540
|
*
|
|
2474
|
-
* const envelope =
|
|
2541
|
+
* const envelope = TxEnvelopeEip1559.from({
|
|
2475
2542
|
* chainId: 1,
|
|
2476
2543
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
2477
2544
|
* maxPriorityFeePerGas: Value.fromGwei('1'),
|
|
@@ -2491,12 +2558,12 @@ export * as TransactionEnvelope from './core/TransactionEnvelope.js'
|
|
|
2491
2558
|
* @example
|
|
2492
2559
|
* ### Signing
|
|
2493
2560
|
*
|
|
2494
|
-
* Transaction Envelopes can be signed using {@link ox#
|
|
2561
|
+
* Transaction Envelopes can be signed using {@link ox#TxEnvelopeEip1559.(getSignPayload:function)} and a signing function such as {@link ox#Secp256k1.(sign:function)} or {@link ox#P256.(sign:function)}:
|
|
2495
2562
|
*
|
|
2496
2563
|
* ```ts twoslash
|
|
2497
|
-
* import { Secp256k1,
|
|
2564
|
+
* import { Secp256k1, TxEnvelopeEip1559 } from 'ox'
|
|
2498
2565
|
*
|
|
2499
|
-
* const envelope =
|
|
2566
|
+
* const envelope = TxEnvelopeEip1559.from({
|
|
2500
2567
|
* chainId: 1,
|
|
2501
2568
|
* nonce: 0n,
|
|
2502
2569
|
* gasPrice: 1000000000n,
|
|
@@ -2506,22 +2573,22 @@ export * as TransactionEnvelope from './core/TransactionEnvelope.js'
|
|
|
2506
2573
|
* })
|
|
2507
2574
|
*
|
|
2508
2575
|
* const signature = Secp256k1.sign({ // [!code focus]
|
|
2509
|
-
* payload:
|
|
2576
|
+
* payload: TxEnvelopeEip1559.getSignPayload(envelope), // [!code focus]
|
|
2510
2577
|
* privateKey: '0x...' // [!code focus]
|
|
2511
2578
|
* }) // [!code focus]
|
|
2512
2579
|
*
|
|
2513
|
-
* const envelope_signed =
|
|
2580
|
+
* const envelope_signed = TxEnvelopeEip1559.from(envelope, { signature })
|
|
2514
2581
|
* ```
|
|
2515
2582
|
*
|
|
2516
2583
|
* @example
|
|
2517
2584
|
* ### Serializing
|
|
2518
2585
|
*
|
|
2519
|
-
* Transaction Envelopes can be serialized using {@link ox#
|
|
2586
|
+
* Transaction Envelopes can be serialized using {@link ox#TxEnvelopeEip1559.(serialize:function)}:
|
|
2520
2587
|
*
|
|
2521
2588
|
* ```ts twoslash
|
|
2522
|
-
* import {
|
|
2589
|
+
* import { TxEnvelopeEip1559, Value } from 'ox'
|
|
2523
2590
|
*
|
|
2524
|
-
* const envelope =
|
|
2591
|
+
* const envelope = TxEnvelopeEip1559.from({
|
|
2525
2592
|
* chainId: 1,
|
|
2526
2593
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
2527
2594
|
* maxPriorityFeePerGas: Value.fromGwei('1'),
|
|
@@ -2529,7 +2596,7 @@ export * as TransactionEnvelope from './core/TransactionEnvelope.js'
|
|
|
2529
2596
|
* value: Value.fromEther('1'),
|
|
2530
2597
|
* })
|
|
2531
2598
|
*
|
|
2532
|
-
* const serialized =
|
|
2599
|
+
* const serialized = TxEnvelopeEip1559.serialize(envelope) // [!code focus]
|
|
2533
2600
|
* ```
|
|
2534
2601
|
*
|
|
2535
2602
|
* @example
|
|
@@ -2540,10 +2607,10 @@ export * as TransactionEnvelope from './core/TransactionEnvelope.js'
|
|
|
2540
2607
|
* In this example, we will use {@link ox#RpcTransport.(fromHttp:function)} to broadcast a `eth_sendRawTransaction` request over HTTP JSON-RPC.
|
|
2541
2608
|
*
|
|
2542
2609
|
* ```ts twoslash
|
|
2543
|
-
* import { RpcTransport,
|
|
2610
|
+
* import { RpcTransport, TxEnvelopeEip1559, Secp256k1, Value } from 'ox'
|
|
2544
2611
|
*
|
|
2545
2612
|
* // Construct the Envelope.
|
|
2546
|
-
* const envelope =
|
|
2613
|
+
* const envelope = TxEnvelopeEip1559.from({
|
|
2547
2614
|
* chainId: 1,
|
|
2548
2615
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
2549
2616
|
* maxPriorityFeePerGas: Value.fromGwei('1'),
|
|
@@ -2554,12 +2621,12 @@ export * as TransactionEnvelope from './core/TransactionEnvelope.js'
|
|
|
2554
2621
|
*
|
|
2555
2622
|
* // Sign over the Envelope.
|
|
2556
2623
|
* const signature = Secp256k1.sign({
|
|
2557
|
-
* payload:
|
|
2624
|
+
* payload: TxEnvelopeEip1559.getSignPayload(envelope),
|
|
2558
2625
|
* privateKey: '0x...',
|
|
2559
2626
|
* })
|
|
2560
2627
|
*
|
|
2561
2628
|
* // Serialize the Envelope with the Signature. // [!code focus]
|
|
2562
|
-
* const serialized =
|
|
2629
|
+
* const serialized = TxEnvelopeEip1559.serialize(envelope, { // [!code focus]
|
|
2563
2630
|
* signature // [!code focus]
|
|
2564
2631
|
* }) // [!code focus]
|
|
2565
2632
|
*
|
|
@@ -2572,20 +2639,20 @@ export * as TransactionEnvelope from './core/TransactionEnvelope.js'
|
|
|
2572
2639
|
* ```
|
|
2573
2640
|
*
|
|
2574
2641
|
* If you are interfacing with an RPC that supports `eth_sendTransaction`, you can also use
|
|
2575
|
-
* {@link ox#
|
|
2642
|
+
* {@link ox#TxEnvelopeEip1559.(toRpc:function)} to convert an Envelope to an RPC-compatible format.
|
|
2576
2643
|
* This means you can skip the ceremony of manually filling & signing the Transaction.
|
|
2577
2644
|
*
|
|
2578
2645
|
* ```ts twoslash
|
|
2579
2646
|
* import 'ox/window'
|
|
2580
|
-
* import { Provider,
|
|
2647
|
+
* import { Provider, TxEnvelopeEip1559, Value } from 'ox'
|
|
2581
2648
|
*
|
|
2582
|
-
* const envelope =
|
|
2649
|
+
* const envelope = TxEnvelopeEip1559.from({
|
|
2583
2650
|
* chainId: 1,
|
|
2584
2651
|
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
|
2585
2652
|
* value: Value.fromEther('1.5'),
|
|
2586
2653
|
* })
|
|
2587
2654
|
*
|
|
2588
|
-
* const envelope_rpc =
|
|
2655
|
+
* const envelope_rpc = TxEnvelopeEip1559.toRpc(envelope)
|
|
2589
2656
|
*
|
|
2590
2657
|
* const provider = Provider.from(window.ethereum)
|
|
2591
2658
|
* const hash = await provider.request({
|
|
@@ -2597,12 +2664,12 @@ export * as TransactionEnvelope from './core/TransactionEnvelope.js'
|
|
|
2597
2664
|
* @example
|
|
2598
2665
|
* ### Computing Hashes
|
|
2599
2666
|
*
|
|
2600
|
-
* Transaction Hashes can be computed using {@link ox#
|
|
2667
|
+
* Transaction Hashes can be computed using {@link ox#TxEnvelopeEip1559.(hash:function)}:
|
|
2601
2668
|
*
|
|
2602
2669
|
* ```ts twoslash
|
|
2603
|
-
* import { Secp256k1,
|
|
2670
|
+
* import { Secp256k1, TxEnvelopeEip1559, Value } from 'ox'
|
|
2604
2671
|
*
|
|
2605
|
-
* const envelope =
|
|
2672
|
+
* const envelope = TxEnvelopeEip1559.from({
|
|
2606
2673
|
* chainId: 1,
|
|
2607
2674
|
* nonce: 0n,
|
|
2608
2675
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -2614,31 +2681,31 @@ export * as TransactionEnvelope from './core/TransactionEnvelope.js'
|
|
|
2614
2681
|
* })
|
|
2615
2682
|
*
|
|
2616
2683
|
* const signature = Secp256k1.sign({
|
|
2617
|
-
* payload:
|
|
2684
|
+
* payload: TxEnvelopeEip1559.getSignPayload(envelope),
|
|
2618
2685
|
* privateKey: '0x...'
|
|
2619
2686
|
* })
|
|
2620
2687
|
*
|
|
2621
|
-
* const envelope_signed =
|
|
2688
|
+
* const envelope_signed = TxEnvelopeEip1559.from(envelope, { signature })
|
|
2622
2689
|
*
|
|
2623
|
-
* const hash =
|
|
2690
|
+
* const hash = TxEnvelopeEip1559.hash(envelope_signed) // [!code focus]
|
|
2624
2691
|
* ```
|
|
2625
2692
|
*
|
|
2626
2693
|
* @category Transaction Envelopes
|
|
2627
2694
|
*/
|
|
2628
|
-
export * as
|
|
2695
|
+
export * as TxEnvelopeEip1559 from './core/TxEnvelopeEip1559.js'
|
|
2629
2696
|
/**
|
|
2630
2697
|
* Utility functions for working with [EIP-2930 Typed Transaction Envelopes](https://eips.ethereum.org/EIPS/eip-2930)
|
|
2631
2698
|
*
|
|
2632
2699
|
* @example
|
|
2633
2700
|
* ### Instantiating
|
|
2634
2701
|
*
|
|
2635
|
-
* Transaction Envelopes can be instantiated using {@link ox#
|
|
2702
|
+
* Transaction Envelopes can be instantiated using {@link ox#TxEnvelopeEip2930.(from:function)}:
|
|
2636
2703
|
*
|
|
2637
2704
|
* ```ts twoslash
|
|
2638
2705
|
* // @noErrors
|
|
2639
|
-
* import {
|
|
2706
|
+
* import { TxEnvelopeEip2930, Value } from 'ox'
|
|
2640
2707
|
*
|
|
2641
|
-
* const envelope =
|
|
2708
|
+
* const envelope = TxEnvelopeEip2930.from({
|
|
2642
2709
|
* chainId: 1,
|
|
2643
2710
|
* accessList: [...],
|
|
2644
2711
|
* gasPrice: Value.fromGwei('10'),
|
|
@@ -2650,12 +2717,12 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2650
2717
|
* @example
|
|
2651
2718
|
* ### Signing
|
|
2652
2719
|
*
|
|
2653
|
-
* Transaction Envelopes can be signed using {@link ox#
|
|
2720
|
+
* Transaction Envelopes can be signed using {@link ox#TxEnvelopeEip2930.(getSignPayload:function)} and a signing function such as {@link ox#Secp256k1.(sign:function)} or {@link ox#P256.(sign:function)}:
|
|
2654
2721
|
*
|
|
2655
2722
|
* ```ts twoslash
|
|
2656
|
-
* import { Secp256k1,
|
|
2723
|
+
* import { Secp256k1, TxEnvelopeEip2930 } from 'ox'
|
|
2657
2724
|
*
|
|
2658
|
-
* const envelope =
|
|
2725
|
+
* const envelope = TxEnvelopeEip2930.from({
|
|
2659
2726
|
* chainId: 1,
|
|
2660
2727
|
* nonce: 0n,
|
|
2661
2728
|
* gasPrice: 1000000000n,
|
|
@@ -2664,7 +2731,7 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2664
2731
|
* value: 1000000000000000000n,
|
|
2665
2732
|
* })
|
|
2666
2733
|
*
|
|
2667
|
-
* const payload =
|
|
2734
|
+
* const payload = TxEnvelopeEip2930.getSignPayload(envelope) // [!code focus]
|
|
2668
2735
|
* // @log: '0x...'
|
|
2669
2736
|
*
|
|
2670
2737
|
* const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
|
|
@@ -2673,12 +2740,12 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2673
2740
|
* @example
|
|
2674
2741
|
* ### Serializing
|
|
2675
2742
|
*
|
|
2676
|
-
* Transaction Envelopes can be serialized using {@link ox#
|
|
2743
|
+
* Transaction Envelopes can be serialized using {@link ox#TxEnvelopeEip2930.(serialize:function)}:
|
|
2677
2744
|
*
|
|
2678
2745
|
* ```ts twoslash
|
|
2679
|
-
* import { Secp256k1,
|
|
2746
|
+
* import { Secp256k1, TxEnvelopeEip2930, Value } from 'ox'
|
|
2680
2747
|
*
|
|
2681
|
-
* const envelope =
|
|
2748
|
+
* const envelope = TxEnvelopeEip2930.from({
|
|
2682
2749
|
* chainId: 1,
|
|
2683
2750
|
* nonce: 0n,
|
|
2684
2751
|
* gasPrice: 1000000000n,
|
|
@@ -2687,7 +2754,7 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2687
2754
|
* value: 1000000000000000000n,
|
|
2688
2755
|
* })
|
|
2689
2756
|
*
|
|
2690
|
-
* const serialized =
|
|
2757
|
+
* const serialized = TxEnvelopeEip2930.serialize(envelope) // [!code focus]
|
|
2691
2758
|
* ```
|
|
2692
2759
|
*
|
|
2693
2760
|
* @example
|
|
@@ -2698,10 +2765,10 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2698
2765
|
* In this example, we will use {@link ox#RpcTransport.(fromHttp:function)} to broadcast a `eth_sendRawTransaction` request over HTTP JSON-RPC.
|
|
2699
2766
|
*
|
|
2700
2767
|
* ```ts twoslash
|
|
2701
|
-
* import { RpcTransport,
|
|
2768
|
+
* import { RpcTransport, TxEnvelopeEip2930, Secp256k1, Value } from 'ox'
|
|
2702
2769
|
*
|
|
2703
2770
|
* // Construct the Envelope.
|
|
2704
|
-
* const envelope =
|
|
2771
|
+
* const envelope = TxEnvelopeEip2930.from({
|
|
2705
2772
|
* accessList: [],
|
|
2706
2773
|
* chainId: 1,
|
|
2707
2774
|
* gasPrice: Value.fromGwei('10'),
|
|
@@ -2712,12 +2779,12 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2712
2779
|
*
|
|
2713
2780
|
* // Sign over the Envelope.
|
|
2714
2781
|
* const signature = Secp256k1.sign({
|
|
2715
|
-
* payload:
|
|
2782
|
+
* payload: TxEnvelopeEip2930.getSignPayload(envelope),
|
|
2716
2783
|
* privateKey: '0x...',
|
|
2717
2784
|
* })
|
|
2718
2785
|
*
|
|
2719
2786
|
* // Serialize the Envelope with the Signature. // [!code focus]
|
|
2720
|
-
* const serialized =
|
|
2787
|
+
* const serialized = TxEnvelopeEip2930.serialize(envelope, { // [!code focus]
|
|
2721
2788
|
* signature // [!code focus]
|
|
2722
2789
|
* }) // [!code focus]
|
|
2723
2790
|
*
|
|
@@ -2730,21 +2797,21 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2730
2797
|
* ```
|
|
2731
2798
|
*
|
|
2732
2799
|
* If you are interfacing with an RPC that supports `eth_sendTransaction`, you can also use
|
|
2733
|
-
* {@link ox#
|
|
2800
|
+
* {@link ox#TxEnvelopeEip2930.(toRpc:function)} to convert an Envelope to an RPC-compatible format.
|
|
2734
2801
|
* This means you can skip the ceremony of manually filling & signing the Transaction.
|
|
2735
2802
|
*
|
|
2736
2803
|
* ```ts twoslash
|
|
2737
2804
|
* import 'ox/window'
|
|
2738
|
-
* import { Provider,
|
|
2805
|
+
* import { Provider, TxEnvelopeEip2930, Value } from 'ox'
|
|
2739
2806
|
*
|
|
2740
|
-
* const envelope =
|
|
2807
|
+
* const envelope = TxEnvelopeEip2930.from({
|
|
2741
2808
|
* accessList: [],
|
|
2742
2809
|
* chainId: 1,
|
|
2743
2810
|
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
|
2744
2811
|
* value: Value.fromEther('1.5'),
|
|
2745
2812
|
* })
|
|
2746
2813
|
*
|
|
2747
|
-
* const envelope_rpc =
|
|
2814
|
+
* const envelope_rpc = TxEnvelopeEip2930.toRpc(envelope)
|
|
2748
2815
|
*
|
|
2749
2816
|
* const provider = Provider.from(window.ethereum)
|
|
2750
2817
|
* const hash = await provider.request({
|
|
@@ -2756,12 +2823,12 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2756
2823
|
* @example
|
|
2757
2824
|
* ### Computing Hashes
|
|
2758
2825
|
*
|
|
2759
|
-
* Transaction Hashes can be computed using {@link ox#
|
|
2826
|
+
* Transaction Hashes can be computed using {@link ox#TxEnvelopeEip2930.(hash:function)}:
|
|
2760
2827
|
*
|
|
2761
2828
|
* ```ts twoslash
|
|
2762
|
-
* import { Secp256k1,
|
|
2829
|
+
* import { Secp256k1, TxEnvelopeEip2930 } from 'ox'
|
|
2763
2830
|
*
|
|
2764
|
-
* const envelope =
|
|
2831
|
+
* const envelope = TxEnvelopeEip2930.from({
|
|
2765
2832
|
* chainId: 1,
|
|
2766
2833
|
* nonce: 0n,
|
|
2767
2834
|
* gasPrice: 1000000000n,
|
|
@@ -2772,18 +2839,18 @@ export * as TransactionEnvelopeEip1559 from './core/TransactionEnvelopeEip1559.j
|
|
|
2772
2839
|
* })
|
|
2773
2840
|
*
|
|
2774
2841
|
* const signature = Secp256k1.sign({
|
|
2775
|
-
* payload:
|
|
2842
|
+
* payload: TxEnvelopeEip2930.getSignPayload(envelope),
|
|
2776
2843
|
* privateKey: '0x...'
|
|
2777
2844
|
* })
|
|
2778
2845
|
*
|
|
2779
|
-
* const envelope_signed =
|
|
2846
|
+
* const envelope_signed = TxEnvelopeEip2930.from(envelope, { signature })
|
|
2780
2847
|
*
|
|
2781
|
-
* const hash =
|
|
2848
|
+
* const hash = TxEnvelopeEip2930.hash(envelope_signed) // [!code focus]
|
|
2782
2849
|
* ```
|
|
2783
2850
|
*
|
|
2784
2851
|
* @category Transaction Envelopes
|
|
2785
2852
|
*/
|
|
2786
|
-
export * as
|
|
2853
|
+
export * as TxEnvelopeEip2930 from './core/TxEnvelopeEip2930.js'
|
|
2787
2854
|
/**
|
|
2788
2855
|
* Utility functions for working with [EIP-4844 Typed Transaction Envelopes](https://eips.ethereum.org/EIPS/eip-4844)
|
|
2789
2856
|
*
|
|
@@ -2801,17 +2868,17 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2801
2868
|
* @example
|
|
2802
2869
|
* ### Instantiating
|
|
2803
2870
|
*
|
|
2804
|
-
* Transaction Envelopes can be instantiated using {@link ox#
|
|
2871
|
+
* Transaction Envelopes can be instantiated using {@link ox#TxEnvelopeEip4844.(from:function)}:
|
|
2805
2872
|
*
|
|
2806
2873
|
* ```ts twoslash
|
|
2807
2874
|
* // @noErrors
|
|
2808
|
-
* import { Blobs, Hex,
|
|
2875
|
+
* import { Blobs, Hex, TxEnvelopeEip4844, Value } from 'ox'
|
|
2809
2876
|
* import { kzg } from './kzg'
|
|
2810
2877
|
*
|
|
2811
2878
|
* const blobs = Blobs.from(Hex.fromString('Hello World!'))
|
|
2812
2879
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
2813
2880
|
*
|
|
2814
|
-
* const envelope =
|
|
2881
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
2815
2882
|
* chainId: 1,
|
|
2816
2883
|
* blobVersionedHashes,
|
|
2817
2884
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -2825,18 +2892,18 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2825
2892
|
* @example
|
|
2826
2893
|
* ### Signing
|
|
2827
2894
|
*
|
|
2828
|
-
* Transaction Envelopes can be signed using {@link ox#
|
|
2895
|
+
* Transaction Envelopes can be signed using {@link ox#TxEnvelopeEip4844.(getSignPayload:function)} and a signing function such as {@link ox#Secp256k1.(sign:function)} or {@link ox#P256.(sign:function)}:
|
|
2829
2896
|
*
|
|
2830
2897
|
* ```ts twoslash
|
|
2831
2898
|
* // @noErrors
|
|
2832
|
-
* import { Blobs, Secp256k1,
|
|
2899
|
+
* import { Blobs, Secp256k1, TxEnvelopeEip4844 } from 'ox'
|
|
2833
2900
|
* import { kzg } from './kzg'
|
|
2834
2901
|
*
|
|
2835
2902
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
2836
2903
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
2837
2904
|
* const sidecars = Blobs.toSidecars(blobs, { kzg })
|
|
2838
2905
|
*
|
|
2839
|
-
* const envelope =
|
|
2906
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
2840
2907
|
* blobVersionedHashes,
|
|
2841
2908
|
* chainId: 1,
|
|
2842
2909
|
* nonce: 0n,
|
|
@@ -2848,11 +2915,11 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2848
2915
|
* })
|
|
2849
2916
|
*
|
|
2850
2917
|
* const signature = Secp256k1.sign({ // [!code focus]
|
|
2851
|
-
* payload:
|
|
2918
|
+
* payload: TxEnvelopeEip4844.getSignPayload(envelope), // [!code focus]
|
|
2852
2919
|
* privateKey: '0x...' // [!code focus]
|
|
2853
2920
|
* }) // [!code focus]
|
|
2854
2921
|
*
|
|
2855
|
-
* const envelope_signed =
|
|
2922
|
+
* const envelope_signed = TxEnvelopeEip4844.from(envelope, {
|
|
2856
2923
|
* sidecars,
|
|
2857
2924
|
* signature
|
|
2858
2925
|
* })
|
|
@@ -2861,17 +2928,17 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2861
2928
|
* @example
|
|
2862
2929
|
* ### Serializing
|
|
2863
2930
|
*
|
|
2864
|
-
* Transaction Envelopes can be serialized using {@link ox#
|
|
2931
|
+
* Transaction Envelopes can be serialized using {@link ox#TxEnvelopeEip4844.(serialize:function)}:
|
|
2865
2932
|
*
|
|
2866
2933
|
* ```ts twoslash
|
|
2867
2934
|
* // @noErrors
|
|
2868
|
-
* import { Blobs,
|
|
2935
|
+
* import { Blobs, TxEnvelopeEip4844 } from 'ox'
|
|
2869
2936
|
* import { kzg } from './kzg'
|
|
2870
2937
|
*
|
|
2871
2938
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
2872
2939
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
2873
2940
|
*
|
|
2874
|
-
* const envelope =
|
|
2941
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
2875
2942
|
* blobVersionedHashes,
|
|
2876
2943
|
* chainId: 1,
|
|
2877
2944
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -2881,7 +2948,7 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2881
2948
|
* value: Value.fromEther('1'),
|
|
2882
2949
|
* })
|
|
2883
2950
|
*
|
|
2884
|
-
* const serialized =
|
|
2951
|
+
* const serialized = TxEnvelopeEip4844.serialize(envelope) // [!code focus]
|
|
2885
2952
|
* ```
|
|
2886
2953
|
*
|
|
2887
2954
|
* @example
|
|
@@ -2893,7 +2960,7 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2893
2960
|
*
|
|
2894
2961
|
* ```ts twoslash
|
|
2895
2962
|
* // @noErrors
|
|
2896
|
-
* import { Blobs, RpcTransport,
|
|
2963
|
+
* import { Blobs, RpcTransport, TxEnvelopeEip4844, Secp256k1, Value } from 'ox'
|
|
2897
2964
|
* import { kzg } from './kzg'
|
|
2898
2965
|
*
|
|
2899
2966
|
* // Compute the Blob Versioned Hashes.
|
|
@@ -2902,7 +2969,7 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2902
2969
|
* const sidecars = Blobs.toSidecars(blobs, { kzg })
|
|
2903
2970
|
*
|
|
2904
2971
|
* // Construct the Envelope.
|
|
2905
|
-
* const envelope =
|
|
2972
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
2906
2973
|
* chainId: 1,
|
|
2907
2974
|
* blobVersionedHashes,
|
|
2908
2975
|
* maxFeePerBlobGas: Value.fromGwei('3'),
|
|
@@ -2915,12 +2982,12 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2915
2982
|
*
|
|
2916
2983
|
* // Sign over the Envelope.
|
|
2917
2984
|
* const signature = Secp256k1.sign({
|
|
2918
|
-
* payload:
|
|
2985
|
+
* payload: TxEnvelopeEip4844.getSignPayload(envelope),
|
|
2919
2986
|
* privateKey: '0x...',
|
|
2920
2987
|
* })
|
|
2921
2988
|
*
|
|
2922
2989
|
* // Serialize the Envelope with the Signature. // [!code focus]
|
|
2923
|
-
* const serialized =
|
|
2990
|
+
* const serialized = TxEnvelopeEip4844.serialize(envelope, { // [!code focus]
|
|
2924
2991
|
* sidecars, // [!code focus]
|
|
2925
2992
|
* signature // [!code focus]
|
|
2926
2993
|
* }) // [!code focus]
|
|
@@ -2936,17 +3003,17 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2936
3003
|
* @example
|
|
2937
3004
|
* ### Computing Hashes
|
|
2938
3005
|
*
|
|
2939
|
-
* Transaction Hashes can be computed using {@link ox#
|
|
3006
|
+
* Transaction Hashes can be computed using {@link ox#TxEnvelopeEip4844.(hash:function)}:
|
|
2940
3007
|
*
|
|
2941
3008
|
* ```ts twoslash
|
|
2942
3009
|
* // @noErrors
|
|
2943
|
-
* import { Blobs, Secp256k1,
|
|
3010
|
+
* import { Blobs, Secp256k1, TxEnvelopeEip4844, Value } from 'ox'
|
|
2944
3011
|
* import { kzg } from './kzg'
|
|
2945
3012
|
*
|
|
2946
3013
|
* const blobs = Blobs.from('0xdeadbeef')
|
|
2947
3014
|
* const blobVersionedHashes = Blobs.toVersionedHashes(blobs, { kzg })
|
|
2948
3015
|
*
|
|
2949
|
-
* const envelope =
|
|
3016
|
+
* const envelope = TxEnvelopeEip4844.from({
|
|
2950
3017
|
* blobVersionedHashes,
|
|
2951
3018
|
* chainId: 1,
|
|
2952
3019
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -2955,28 +3022,28 @@ export * as TransactionEnvelopeEip2930 from './core/TransactionEnvelopeEip2930.j
|
|
|
2955
3022
|
* })
|
|
2956
3023
|
*
|
|
2957
3024
|
* const signature = Secp256k1.sign({
|
|
2958
|
-
* payload:
|
|
3025
|
+
* payload: TxEnvelopeEip4844.getSignPayload(envelope),
|
|
2959
3026
|
* privateKey: '0x...'
|
|
2960
3027
|
* })
|
|
2961
3028
|
*
|
|
2962
|
-
* const envelope_signed =
|
|
3029
|
+
* const envelope_signed = TxEnvelopeEip4844.from(envelope, { signature })
|
|
2963
3030
|
*
|
|
2964
|
-
* const hash =
|
|
3031
|
+
* const hash = TxEnvelopeEip4844.hash(envelope_signed) // [!code focus]
|
|
2965
3032
|
* ```
|
|
2966
3033
|
*
|
|
2967
3034
|
* @category Transaction Envelopes
|
|
2968
3035
|
*/
|
|
2969
|
-
export * as
|
|
3036
|
+
export * as TxEnvelopeEip4844 from './core/TxEnvelopeEip4844.js'
|
|
2970
3037
|
/**
|
|
2971
3038
|
* Utility functions for working with [EIP-7702 Typed Transaction Envelopes](https://eips.ethereum.org/EIPS/eip-7702)
|
|
2972
3039
|
*
|
|
2973
3040
|
* @example
|
|
2974
3041
|
* ### Instantiating
|
|
2975
3042
|
*
|
|
2976
|
-
* Transaction Envelopes can be instantiated using {@link ox#
|
|
3043
|
+
* Transaction Envelopes can be instantiated using {@link ox#TxEnvelopeEip7702.(from:function)}:
|
|
2977
3044
|
*
|
|
2978
3045
|
* ```ts twoslash
|
|
2979
|
-
* import { Authorization, Secp256k1,
|
|
3046
|
+
* import { Authorization, Secp256k1, TxEnvelopeEip7702, Value } from 'ox'
|
|
2980
3047
|
*
|
|
2981
3048
|
* const authorization = Authorization.from({
|
|
2982
3049
|
* address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
|
@@ -2991,7 +3058,7 @@ export * as TransactionEnvelopeEip4844 from './core/TransactionEnvelopeEip4844.j
|
|
|
2991
3058
|
*
|
|
2992
3059
|
* const authorizationList = [Authorization.from(authorization, { signature })]
|
|
2993
3060
|
*
|
|
2994
|
-
* const envelope =
|
|
3061
|
+
* const envelope = TxEnvelopeEip7702.from({ // [!code focus]
|
|
2995
3062
|
* authorizationList, // [!code focus]
|
|
2996
3063
|
* chainId: 1, // [!code focus]
|
|
2997
3064
|
* maxFeePerGas: Value.fromGwei('10'), // [!code focus]
|
|
@@ -3010,10 +3077,10 @@ export * as TransactionEnvelopeEip4844 from './core/TransactionEnvelopeEip4844.j
|
|
|
3010
3077
|
* @example
|
|
3011
3078
|
* ### Signing
|
|
3012
3079
|
*
|
|
3013
|
-
* Transaction Envelopes can be signed using {@link ox#
|
|
3080
|
+
* Transaction Envelopes can be signed using {@link ox#TxEnvelopeEip7702.(getSignPayload:function)} and a signing function such as {@link ox#Secp256k1.(sign:function)} or {@link ox#P256.(sign:function)}:
|
|
3014
3081
|
*
|
|
3015
3082
|
* ```ts twoslash
|
|
3016
|
-
* import { Authorization, Secp256k1,
|
|
3083
|
+
* import { Authorization, Secp256k1, TxEnvelopeEip7702, Value } from 'ox'
|
|
3017
3084
|
*
|
|
3018
3085
|
* const authorization = Authorization.from({
|
|
3019
3086
|
* address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
|
@@ -3028,7 +3095,7 @@ export * as TransactionEnvelopeEip4844 from './core/TransactionEnvelopeEip4844.j
|
|
|
3028
3095
|
*
|
|
3029
3096
|
* const authorizationList = [Authorization.from(authorization, { signature: signature_auth })]
|
|
3030
3097
|
*
|
|
3031
|
-
* const envelope =
|
|
3098
|
+
* const envelope = TxEnvelopeEip7702.from({
|
|
3032
3099
|
* authorizationList,
|
|
3033
3100
|
* chainId: 1,
|
|
3034
3101
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -3038,11 +3105,11 @@ export * as TransactionEnvelopeEip4844 from './core/TransactionEnvelopeEip4844.j
|
|
|
3038
3105
|
* })
|
|
3039
3106
|
*
|
|
3040
3107
|
* const signature = Secp256k1.sign({ // [!code focus]
|
|
3041
|
-
* payload:
|
|
3108
|
+
* payload: TxEnvelopeEip7702.getSignPayload(envelope), // [!code focus]
|
|
3042
3109
|
* privateKey: '0x...', // [!code focus]
|
|
3043
3110
|
* })
|
|
3044
3111
|
*
|
|
3045
|
-
* const envelope_signed =
|
|
3112
|
+
* const envelope_signed = TxEnvelopeEip7702.from(envelope, { signature })
|
|
3046
3113
|
* ```
|
|
3047
3114
|
*
|
|
3048
3115
|
* @example
|
|
@@ -3053,7 +3120,7 @@ export * as TransactionEnvelopeEip4844 from './core/TransactionEnvelopeEip4844.j
|
|
|
3053
3120
|
* In this example, we will use {@link ox#RpcTransport.(fromHttp:function)} to broadcast a `eth_sendRawTransaction` request over HTTP JSON-RPC.
|
|
3054
3121
|
*
|
|
3055
3122
|
* ```ts twoslash
|
|
3056
|
-
* import { Authorization, RpcTransport,
|
|
3123
|
+
* import { Authorization, RpcTransport, TxEnvelopeEip7702, Secp256k1, Value } from 'ox'
|
|
3057
3124
|
*
|
|
3058
3125
|
* const authorization = Authorization.from({
|
|
3059
3126
|
* address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
|
@@ -3068,7 +3135,7 @@ export * as TransactionEnvelopeEip4844 from './core/TransactionEnvelopeEip4844.j
|
|
|
3068
3135
|
*
|
|
3069
3136
|
* const authorizationList = [Authorization.from(authorization, { signature: signature_auth })]
|
|
3070
3137
|
*
|
|
3071
|
-
* const envelope =
|
|
3138
|
+
* const envelope = TxEnvelopeEip7702.from({
|
|
3072
3139
|
* authorizationList,
|
|
3073
3140
|
* chainId: 1,
|
|
3074
3141
|
* maxFeePerGas: Value.fromGwei('10'),
|
|
@@ -3079,12 +3146,12 @@ export * as TransactionEnvelopeEip4844 from './core/TransactionEnvelopeEip4844.j
|
|
|
3079
3146
|
* })
|
|
3080
3147
|
*
|
|
3081
3148
|
* const signature = Secp256k1.sign({
|
|
3082
|
-
* payload:
|
|
3149
|
+
* payload: TxEnvelopeEip7702.getSignPayload(envelope),
|
|
3083
3150
|
* privateKey: '0x...',
|
|
3084
3151
|
* })
|
|
3085
3152
|
*
|
|
3086
3153
|
* // Serialize the Envelope with the Signature. // [!code focus]
|
|
3087
|
-
* const serialized =
|
|
3154
|
+
* const serialized = TxEnvelopeEip7702.serialize(envelope, { // [!code focus]
|
|
3088
3155
|
* signature // [!code focus]
|
|
3089
3156
|
* }) // [!code focus]
|
|
3090
3157
|
*
|
|
@@ -3098,7 +3165,7 @@ export * as TransactionEnvelopeEip4844 from './core/TransactionEnvelopeEip4844.j
|
|
|
3098
3165
|
*
|
|
3099
3166
|
* @category Transaction Envelopes
|
|
3100
3167
|
*/
|
|
3101
|
-
export * as
|
|
3168
|
+
export * as TxEnvelopeEip7702 from './core/TxEnvelopeEip7702.js'
|
|
3102
3169
|
/**
|
|
3103
3170
|
* Utility functions for working
|
|
3104
3171
|
* with **Legacy Transaction Envelopes**.
|
|
@@ -3106,12 +3173,12 @@ export * as TransactionEnvelopeEip7702 from './core/TransactionEnvelopeEip7702.j
|
|
|
3106
3173
|
* @example
|
|
3107
3174
|
* ### Instantiating
|
|
3108
3175
|
*
|
|
3109
|
-
* Transaction Envelopes can be instantiated using {@link ox#
|
|
3176
|
+
* Transaction Envelopes can be instantiated using {@link ox#TxEnvelopeLegacy.(from:function)}:
|
|
3110
3177
|
*
|
|
3111
3178
|
* ```ts twoslash
|
|
3112
|
-
* import {
|
|
3179
|
+
* import { TxEnvelopeLegacy, Value } from 'ox'
|
|
3113
3180
|
*
|
|
3114
|
-
* const envelope =
|
|
3181
|
+
* const envelope = TxEnvelopeLegacy.from({
|
|
3115
3182
|
* gasPrice: Value.fromGwei('10'),
|
|
3116
3183
|
* to: '0x0000000000000000000000000000000000000000',
|
|
3117
3184
|
* value: Value.fromEther('1'),
|
|
@@ -3121,13 +3188,13 @@ export * as TransactionEnvelopeEip7702 from './core/TransactionEnvelopeEip7702.j
|
|
|
3121
3188
|
* * @example
|
|
3122
3189
|
* ### Signing
|
|
3123
3190
|
*
|
|
3124
|
-
* Transaction Envelopes can be signed using {@link ox#
|
|
3191
|
+
* Transaction Envelopes can be signed using {@link ox#TxEnvelopeLegacy.(getSignPayload:function)} and a signing function such as {@link ox#Secp256k1.(sign:function)} or {@link ox#P256.(sign:function)}:
|
|
3125
3192
|
*
|
|
3126
3193
|
* ```ts twoslash
|
|
3127
3194
|
* // @noErrors
|
|
3128
|
-
* import { Secp256k1,
|
|
3195
|
+
* import { Secp256k1, TxEnvelopeLegacy } from 'ox'
|
|
3129
3196
|
*
|
|
3130
|
-
* const envelope =
|
|
3197
|
+
* const envelope = TxEnvelopeLegacy.from({
|
|
3131
3198
|
* nonce: 0n,
|
|
3132
3199
|
* gasPrice: 1000000000n,
|
|
3133
3200
|
* gas: 21000n,
|
|
@@ -3136,29 +3203,29 @@ export * as TransactionEnvelopeEip7702 from './core/TransactionEnvelopeEip7702.j
|
|
|
3136
3203
|
* })
|
|
3137
3204
|
*
|
|
3138
3205
|
* const signature = Secp256k1.sign({ // [!code focus]
|
|
3139
|
-
* payload:
|
|
3206
|
+
* payload: TxEnvelopeLegacy.getSignPayload(envelope), // [!code focus]
|
|
3140
3207
|
* privateKey: '0x...' // [!code focus]
|
|
3141
3208
|
* }) // [!code focus]
|
|
3142
3209
|
*
|
|
3143
|
-
* const envelope_signed =
|
|
3210
|
+
* const envelope_signed = TxEnvelopeLegacy.from(envelope, { signature })
|
|
3144
3211
|
* ```
|
|
3145
3212
|
*
|
|
3146
3213
|
* @example
|
|
3147
3214
|
* ### Serializing
|
|
3148
3215
|
*
|
|
3149
|
-
* Transaction Envelopes can be serialized using {@link ox#
|
|
3216
|
+
* Transaction Envelopes can be serialized using {@link ox#TxEnvelopeLegacy.(serialize:function)}:
|
|
3150
3217
|
*
|
|
3151
3218
|
* ```ts twoslash
|
|
3152
|
-
* import {
|
|
3219
|
+
* import { TxEnvelopeLegacy, Value } from 'ox'
|
|
3153
3220
|
*
|
|
3154
|
-
* const envelope =
|
|
3221
|
+
* const envelope = TxEnvelopeLegacy.from({
|
|
3155
3222
|
* chainId: 1,
|
|
3156
3223
|
* gasPrice: Value.fromGwei('10'),
|
|
3157
3224
|
* to: '0x0000000000000000000000000000000000000000',
|
|
3158
3225
|
* value: Value.fromEther('1'),
|
|
3159
3226
|
* })
|
|
3160
3227
|
*
|
|
3161
|
-
* const serialized =
|
|
3228
|
+
* const serialized = TxEnvelopeLegacy.serialize(envelope) // [!code focus]
|
|
3162
3229
|
* ```
|
|
3163
3230
|
*
|
|
3164
3231
|
* @example
|
|
@@ -3169,10 +3236,10 @@ export * as TransactionEnvelopeEip7702 from './core/TransactionEnvelopeEip7702.j
|
|
|
3169
3236
|
* In this example, we will use {@link ox#RpcTransport.(fromHttp:function)} to broadcast a `eth_sendRawTransaction` request over HTTP JSON-RPC.
|
|
3170
3237
|
*
|
|
3171
3238
|
* ```ts twoslash
|
|
3172
|
-
* import { RpcTransport,
|
|
3239
|
+
* import { RpcTransport, TxEnvelopeLegacy, Secp256k1, Value } from 'ox'
|
|
3173
3240
|
*
|
|
3174
3241
|
* // Construct the Envelope.
|
|
3175
|
-
* const envelope =
|
|
3242
|
+
* const envelope = TxEnvelopeLegacy.from({
|
|
3176
3243
|
* chainId: 1,
|
|
3177
3244
|
* gasPrice: Value.fromGwei('10'),
|
|
3178
3245
|
* nonce: 69n,
|
|
@@ -3182,12 +3249,12 @@ export * as TransactionEnvelopeEip7702 from './core/TransactionEnvelopeEip7702.j
|
|
|
3182
3249
|
*
|
|
3183
3250
|
* // Sign over the Envelope.
|
|
3184
3251
|
* const signature = Secp256k1.sign({
|
|
3185
|
-
* payload:
|
|
3252
|
+
* payload: TxEnvelopeLegacy.getSignPayload(envelope),
|
|
3186
3253
|
* privateKey: '0x...',
|
|
3187
3254
|
* })
|
|
3188
3255
|
*
|
|
3189
3256
|
* // Serialize the Envelope with the Signature. // [!code focus]
|
|
3190
|
-
* const serialized =
|
|
3257
|
+
* const serialized = TxEnvelopeLegacy.serialize(envelope, { // [!code focus]
|
|
3191
3258
|
* signature // [!code focus]
|
|
3192
3259
|
* }) // [!code focus]
|
|
3193
3260
|
*
|
|
@@ -3200,20 +3267,20 @@ export * as TransactionEnvelopeEip7702 from './core/TransactionEnvelopeEip7702.j
|
|
|
3200
3267
|
* ```
|
|
3201
3268
|
*
|
|
3202
3269
|
* If you are interfacing with an RPC that supports `eth_sendTransaction`, you can also use
|
|
3203
|
-
* {@link ox#
|
|
3270
|
+
* {@link ox#TxEnvelopeLegacy.(toRpc:function)} to convert an Envelope to an RPC-compatible format.
|
|
3204
3271
|
* This means you can skip the ceremony of manually filling & signing the Transaction.
|
|
3205
3272
|
*
|
|
3206
3273
|
* ```ts twoslash
|
|
3207
3274
|
* import 'ox/window'
|
|
3208
|
-
* import { Provider,
|
|
3275
|
+
* import { Provider, TxEnvelopeLegacy, Value } from 'ox'
|
|
3209
3276
|
*
|
|
3210
|
-
* const envelope =
|
|
3277
|
+
* const envelope = TxEnvelopeLegacy.from({
|
|
3211
3278
|
* chainId: 1,
|
|
3212
3279
|
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
|
|
3213
3280
|
* value: Value.fromEther('1.5'),
|
|
3214
3281
|
* })
|
|
3215
3282
|
*
|
|
3216
|
-
* const envelope_rpc =
|
|
3283
|
+
* const envelope_rpc = TxEnvelopeLegacy.toRpc(envelope)
|
|
3217
3284
|
*
|
|
3218
3285
|
* const provider = Provider.from(window.ethereum)
|
|
3219
3286
|
* const hash = await provider.request({
|
|
@@ -3225,12 +3292,12 @@ export * as TransactionEnvelopeEip7702 from './core/TransactionEnvelopeEip7702.j
|
|
|
3225
3292
|
* @example
|
|
3226
3293
|
* ### Computing Hashes
|
|
3227
3294
|
*
|
|
3228
|
-
* Transaction Hashes can be computed using {@link ox#
|
|
3295
|
+
* Transaction Hashes can be computed using {@link ox#TxEnvelopeLegacy.(hash:function)}:
|
|
3229
3296
|
*
|
|
3230
3297
|
* ```ts twoslash
|
|
3231
|
-
* import { Secp256k1,
|
|
3298
|
+
* import { Secp256k1, TxEnvelopeLegacy } from 'ox'
|
|
3232
3299
|
*
|
|
3233
|
-
* const envelope =
|
|
3300
|
+
* const envelope = TxEnvelopeLegacy.from({
|
|
3234
3301
|
* chainId: 1,
|
|
3235
3302
|
* nonce: 0n,
|
|
3236
3303
|
* gasPrice: 1000000000n,
|
|
@@ -3241,88 +3308,18 @@ export * as TransactionEnvelopeEip7702 from './core/TransactionEnvelopeEip7702.j
|
|
|
3241
3308
|
* })
|
|
3242
3309
|
*
|
|
3243
3310
|
* const signature = Secp256k1.sign({
|
|
3244
|
-
* payload:
|
|
3311
|
+
* payload: TxEnvelopeLegacy.getSignPayload(envelope),
|
|
3245
3312
|
* privateKey: '0x...'
|
|
3246
3313
|
* })
|
|
3247
3314
|
*
|
|
3248
|
-
* const envelope_signed =
|
|
3315
|
+
* const envelope_signed = TxEnvelopeLegacy.from(envelope, { signature })
|
|
3249
3316
|
*
|
|
3250
|
-
* const hash =
|
|
3317
|
+
* const hash = TxEnvelopeLegacy.hash(envelope_signed) // [!code focus]
|
|
3251
3318
|
* ```
|
|
3252
3319
|
*
|
|
3253
3320
|
* @category Transaction Envelopes
|
|
3254
3321
|
*/
|
|
3255
|
-
export * as
|
|
3256
|
-
|
|
3257
|
-
/**
|
|
3258
|
-
* Utilities & types for working with **Transaction Receipts** as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/receipt.yaml)
|
|
3259
|
-
*
|
|
3260
|
-
* @example
|
|
3261
|
-
* ### Converting from RPC Format
|
|
3262
|
-
*
|
|
3263
|
-
* Receipts can be converted from RPC format using {@link ox#TransactionReceipt.(fromRpc:function)}:
|
|
3264
|
-
*
|
|
3265
|
-
* ```ts twoslash
|
|
3266
|
-
* import 'ox/window'
|
|
3267
|
-
* import { TransactionReceipt } from 'ox'
|
|
3268
|
-
*
|
|
3269
|
-
* const receipt = await window.ethereum!
|
|
3270
|
-
* .request({
|
|
3271
|
-
* method: 'eth_getTransactionReceipt',
|
|
3272
|
-
* params: [
|
|
3273
|
-
* '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0',
|
|
3274
|
-
* ],
|
|
3275
|
-
* })
|
|
3276
|
-
* .then(TransactionReceipt.fromRpc) // [!code hl]
|
|
3277
|
-
* // @log: {
|
|
3278
|
-
* // @log: blobGasPrice: 270441n,
|
|
3279
|
-
* // @log: blobGasUsed: 4919n,
|
|
3280
|
-
* // @log: blockHash: "0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b",
|
|
3281
|
-
* // @log: blockNumber: 19868015n,
|
|
3282
|
-
* // @log: contractAddress: null,
|
|
3283
|
-
* // @log: cumulativeGasUsed: 533781n,
|
|
3284
|
-
* // @log: effectiveGasPrice: 9062804489n,
|
|
3285
|
-
* // @log: from: "0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6",
|
|
3286
|
-
* // @log: gasUsed: 175034n,
|
|
3287
|
-
* // @log: logs: [],
|
|
3288
|
-
* // @log: logsBloom: "0x00200000000000000000008080000000000000000040000000000000000000000000000000000000000000000000000022000000080000000000000000000000000000080000000000000008000000200000000000000000000200008020400000000000000000280000000000100000000000000000000000000010000000000000000000020000000000000020000000000001000000080000004000000000000000000000000000000000000000000000400000000000001000000000000000000002000000000000000020000000000000000000001000000000000000000000200000000000000000000000000000001000000000c00000000000000000",
|
|
3289
|
-
* // @log: root: undefined,
|
|
3290
|
-
* // @log: status: "success",
|
|
3291
|
-
* // @log: to: "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
|
|
3292
|
-
* // @log: transactionHash: "0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0",
|
|
3293
|
-
* // @log: transactionIndex: 2,
|
|
3294
|
-
* // @log: type: "eip1559",
|
|
3295
|
-
* // @log: }
|
|
3296
|
-
* ```
|
|
3297
|
-
*
|
|
3298
|
-
* @category Execution Spec
|
|
3299
|
-
*/
|
|
3300
|
-
export * as TransactionReceipt from './core/TransactionReceipt.js'
|
|
3301
|
-
|
|
3302
|
-
/**
|
|
3303
|
-
* Utilities & types for working with **Transaction Requests** as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/4aca1d7a3e5aab24c8f6437131289ad386944eaa/src/schemas/transaction.yaml#L358-L423)
|
|
3304
|
-
*
|
|
3305
|
-
* @example
|
|
3306
|
-
* ```ts twoslash
|
|
3307
|
-
* import 'ox/window'
|
|
3308
|
-
* import { Provider, TransactionRequest, Value } from 'ox'
|
|
3309
|
-
*
|
|
3310
|
-
* const provider = Provider.from(window.ethereum!)
|
|
3311
|
-
*
|
|
3312
|
-
* const request = TransactionRequest.toRpc({ // [!code focus]
|
|
3313
|
-
* to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', // [!code focus]
|
|
3314
|
-
* value: Value.fromEther('0.01'), // [!code focus]
|
|
3315
|
-
* }) // [!code focus]
|
|
3316
|
-
*
|
|
3317
|
-
* const hash = await provider.request({
|
|
3318
|
-
* method: 'eth_sendTransaction',
|
|
3319
|
-
* params: [request],
|
|
3320
|
-
* })
|
|
3321
|
-
* ```
|
|
3322
|
-
*
|
|
3323
|
-
* @category Execution Spec
|
|
3324
|
-
*/
|
|
3325
|
-
export * as TransactionRequest from './core/TransactionRequest.js'
|
|
3322
|
+
export * as TxEnvelopeLegacy from './core/TxEnvelopeLegacy.js'
|
|
3326
3323
|
|
|
3327
3324
|
/**
|
|
3328
3325
|
* Utility functions for working with [EIP-712 Typed Data](https://eips.ethereum.org/EIPS/eip-712)
|