ox 1.8.1 → 1.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/core/Frame.d.ts +23 -20
  3. package/dist/core/Frame.d.ts.map +1 -1
  4. package/dist/core/Frame.js +28 -23
  5. package/dist/core/Frame.js.map +1 -1
  6. package/dist/core/FrameReceipt.d.ts +23 -14
  7. package/dist/core/FrameReceipt.d.ts.map +1 -1
  8. package/dist/core/FrameReceipt.js +15 -11
  9. package/dist/core/FrameReceipt.js.map +1 -1
  10. package/dist/core/FrameRequest.d.ts +50 -0
  11. package/dist/core/FrameRequest.d.ts.map +1 -0
  12. package/dist/core/FrameRequest.js +59 -0
  13. package/dist/core/FrameRequest.js.map +1 -0
  14. package/dist/core/FrameSignature.d.ts +17 -16
  15. package/dist/core/FrameSignature.d.ts.map +1 -1
  16. package/dist/core/FrameSignature.js +38 -21
  17. package/dist/core/FrameSignature.js.map +1 -1
  18. package/dist/core/Siwe.d.ts.map +1 -1
  19. package/dist/core/Siwe.js +3 -3
  20. package/dist/core/Siwe.js.map +1 -1
  21. package/dist/core/Transaction.d.ts +7 -4
  22. package/dist/core/Transaction.d.ts.map +1 -1
  23. package/dist/core/Transaction.js +8 -0
  24. package/dist/core/Transaction.js.map +1 -1
  25. package/dist/core/TransactionRequest.d.ts +8 -5
  26. package/dist/core/TransactionRequest.d.ts.map +1 -1
  27. package/dist/core/TransactionRequest.js +11 -3
  28. package/dist/core/TransactionRequest.js.map +1 -1
  29. package/dist/core/TxEnvelope.d.ts +4 -2
  30. package/dist/core/TxEnvelope.d.ts.map +1 -1
  31. package/dist/core/TxEnvelope.js +11 -2
  32. package/dist/core/TxEnvelope.js.map +1 -1
  33. package/dist/core/TxEnvelopeEip8141.d.ts +22 -11
  34. package/dist/core/TxEnvelopeEip8141.d.ts.map +1 -1
  35. package/dist/core/TxEnvelopeEip8141.js +45 -16
  36. package/dist/core/TxEnvelopeEip8141.js.map +1 -1
  37. package/dist/core/internal/frameNonce.d.ts +10 -0
  38. package/dist/core/internal/frameNonce.d.ts.map +1 -0
  39. package/dist/core/internal/frameNonce.js +45 -0
  40. package/dist/core/internal/frameNonce.js.map +1 -0
  41. package/dist/core/internal/rpcSchemas/eth.d.ts +16 -4
  42. package/dist/core/internal/rpcSchemas/eth.d.ts.map +1 -1
  43. package/dist/index.d.ts +21 -5
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +21 -5
  46. package/dist/index.js.map +1 -1
  47. package/dist/zod/Block.d.ts +52 -37
  48. package/dist/zod/Block.d.ts.map +1 -1
  49. package/dist/zod/Frame.d.ts +14 -14
  50. package/dist/zod/Frame.js +5 -5
  51. package/dist/zod/Frame.js.map +1 -1
  52. package/dist/zod/FrameReceipt.d.ts +42 -2
  53. package/dist/zod/FrameReceipt.d.ts.map +1 -1
  54. package/dist/zod/FrameReceipt.js +11 -1
  55. package/dist/zod/FrameReceipt.js.map +1 -1
  56. package/dist/zod/FrameRequest.d.ts +40 -0
  57. package/dist/zod/FrameRequest.d.ts.map +1 -0
  58. package/dist/zod/FrameRequest.js +37 -0
  59. package/dist/zod/FrameRequest.js.map +1 -0
  60. package/dist/zod/FrameSignature.d.ts +21 -13
  61. package/dist/zod/FrameSignature.d.ts.map +1 -1
  62. package/dist/zod/FrameSignature.js +10 -7
  63. package/dist/zod/FrameSignature.js.map +1 -1
  64. package/dist/zod/RpcSchema.d.ts +470 -265
  65. package/dist/zod/RpcSchema.d.ts.map +1 -1
  66. package/dist/zod/Transaction.d.ts +104 -74
  67. package/dist/zod/Transaction.d.ts.map +1 -1
  68. package/dist/zod/Transaction.js +22 -15
  69. package/dist/zod/Transaction.js.map +1 -1
  70. package/dist/zod/TransactionEnvelope.d.ts +60 -34
  71. package/dist/zod/TransactionEnvelope.d.ts.map +1 -1
  72. package/dist/zod/TransactionReceipt.d.ts +42 -2
  73. package/dist/zod/TransactionReceipt.d.ts.map +1 -1
  74. package/dist/zod/TransactionRequest.d.ts +31 -21
  75. package/dist/zod/TransactionRequest.d.ts.map +1 -1
  76. package/dist/zod/TransactionRequest.js +10 -4
  77. package/dist/zod/TransactionRequest.js.map +1 -1
  78. package/dist/zod/TxEnvelopeEip8141.d.ts +44 -25
  79. package/dist/zod/TxEnvelopeEip8141.d.ts.map +1 -1
  80. package/dist/zod/TxEnvelopeEip8141.js +2 -0
  81. package/dist/zod/TxEnvelopeEip8141.js.map +1 -1
  82. package/dist/zod/internal/Frame.d.ts +8 -0
  83. package/dist/zod/internal/Frame.d.ts.map +1 -1
  84. package/dist/zod/internal/Frame.js +29 -0
  85. package/dist/zod/internal/Frame.js.map +1 -1
  86. package/dist/zod/internal/rpcSchemas/Eth.d.ts +472 -267
  87. package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
  88. package/dist/zod/internal/rpcSchemas/Eth.js +9 -0
  89. package/dist/zod/internal/rpcSchemas/Eth.js.map +1 -1
  90. package/dist/zod/internal/rpcSchemas/Wallet.d.ts +51 -21
  91. package/dist/zod/internal/rpcSchemas/Wallet.d.ts.map +1 -1
  92. package/dist/zod/tempo/RpcSchemaTempo.d.ts +68 -48
  93. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  94. package/dist/zod/tempo/Transaction.d.ts +52 -37
  95. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  96. package/dist/zod/z.d.ts +1 -0
  97. package/dist/zod/z.d.ts.map +1 -1
  98. package/dist/zod/z.js +1 -0
  99. package/dist/zod/z.js.map +1 -1
  100. package/package.json +11 -1
  101. package/src/core/Frame.ts +41 -33
  102. package/src/core/FrameReceipt.ts +30 -16
  103. package/src/core/FrameRequest.ts +78 -0
  104. package/src/core/FrameSignature.ts +64 -34
  105. package/src/core/Siwe.ts +21 -13
  106. package/src/core/Transaction.ts +52 -24
  107. package/src/core/TransactionRequest.ts +21 -7
  108. package/src/core/TxEnvelope.ts +16 -3
  109. package/src/core/TxEnvelopeEip8141.ts +69 -21
  110. package/src/core/_test/AbiConstructor.test.ts +2 -0
  111. package/src/core/_test/Frame.test-d.ts +16 -7
  112. package/src/core/_test/Frame.test.ts +52 -24
  113. package/src/core/_test/FrameReceipt.test.ts +15 -9
  114. package/src/core/_test/FrameRequest.test-d.ts +16 -0
  115. package/src/core/_test/FrameRequest.test.ts +41 -0
  116. package/src/core/_test/FrameRpc.test.ts +131 -0
  117. package/src/core/_test/FrameSignature.test-d.ts +20 -0
  118. package/src/core/_test/FrameSignature.test.ts +132 -11
  119. package/src/core/_test/RpcSchema.test-d.ts +45 -0
  120. package/src/core/_test/Siwe.test.ts +147 -0
  121. package/src/core/_test/TransactionEnvelope.test-d.ts +27 -0
  122. package/src/core/_test/TransactionEnvelope.test.ts +27 -1
  123. package/src/core/_test/TransactionReceipt.test.ts +32 -6
  124. package/src/core/_test/TransactionRequest.test-d.ts +10 -1
  125. package/src/core/_test/TransactionRequest.test.ts +31 -2
  126. package/src/core/_test/TxEnvelopeEip8141.test-d.ts +29 -2
  127. package/src/core/_test/TxEnvelopeEip8141.test.ts +548 -55
  128. package/src/core/_test/index.test.ts +1 -0
  129. package/src/core/internal/frameNonce.ts +61 -0
  130. package/src/core/internal/rpcSchemas/eth.ts +13 -4
  131. package/src/index.ts +22 -5
  132. package/src/version.ts +1 -1
  133. package/src/zod/Frame.ts +5 -5
  134. package/src/zod/FrameReceipt.ts +11 -1
  135. package/src/zod/FrameRequest.ts +46 -0
  136. package/src/zod/FrameSignature.ts +10 -7
  137. package/src/zod/Transaction.ts +46 -27
  138. package/src/zod/TransactionRequest.ts +33 -18
  139. package/src/zod/TxEnvelopeEip8141.ts +2 -0
  140. package/src/zod/_test/Frame.test.ts +13 -11
  141. package/src/zod/_test/FrameReceipt.test.ts +11 -4
  142. package/src/zod/_test/FrameRequest.test-d.ts +15 -0
  143. package/src/zod/_test/FrameRequest.test.ts +44 -0
  144. package/src/zod/_test/FrameSignature.test.ts +73 -9
  145. package/src/zod/_test/RpcSchema.test.ts +106 -0
  146. package/src/zod/_test/TransactionRequest.test.ts +61 -0
  147. package/src/zod/_test/TxEnvelopeEip8141.nonce.test.ts +174 -0
  148. package/src/zod/_test/TxEnvelopeEip8141.test-d.ts +29 -0
  149. package/src/zod/_test/TxEnvelopeEip8141.test.ts +3 -3
  150. package/src/zod/internal/Frame.ts +45 -0
  151. package/src/zod/internal/rpcSchemas/Eth.ts +20 -0
  152. package/src/zod/z.ts +1 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,58 @@
1
1
  # ox
2
2
 
3
+ ## 1.8.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [#489](https://github.com/wevm/ox/pull/489) [`277594a`](https://github.com/wevm/ox/commit/277594a1f489dd612bc25cfb73006c9050a61f7c) Thanks [@jxom](https://github.com/jxom)! - Added EIP-8250 keyed frame nonces with shared `nonce` sequences while preserving the original EIP-8141 encoding when `nonceKeys` is omitted.
8
+
9
+ ```ts
10
+ import { TxEnvelopeEip8141 } from "ox";
11
+
12
+ const envelope = TxEnvelopeEip8141.from({
13
+ chainId: 1,
14
+ sender: "0x1111111111111111111111111111111111111111",
15
+ frames: [{ mode: "sender", executionGas: 50_000n }],
16
+ nonceKeys: [1n, 2n],
17
+ nonce: 0n,
18
+ });
19
+ ```
20
+
21
+ ## 1.8.3
22
+
23
+ ### Patch Changes
24
+
25
+ - [#482](https://github.com/wevm/ox/pull/482) [`9d2ab90`](https://github.com/wevm/ox/commit/9d2ab900d397066d036ddedef655d1a9da26a014) Thanks [@jxom](https://github.com/jxom)! - Fixed empty protocol signature placeholders in frame signature validation, encoding, and transaction signing payloads.
26
+
27
+ ## 1.8.2
28
+
29
+ ### Patch Changes
30
+
31
+ - [`03eb47a`](https://github.com/wevm/ox/commit/03eb47a4c5d87b52215cbf345a95da854add9f26) Thanks [@jxom](https://github.com/jxom)! - Renamed `Frame.gas` to `Frame.executionGas`.
32
+
33
+ ```ts
34
+ import { Frame } from "ox";
35
+
36
+ Frame.from({ executionGas: 50_000n, stateGas: 1_000n });
37
+ ```
38
+
39
+ - [#480](https://github.com/wevm/ox/pull/480) [`1ae6d07`](https://github.com/wevm/ox/commit/1ae6d078ee65b56983b6a5b9c4e7210aa38d3e37) Thanks [@jxom](https://github.com/jxom)! - Aligned to the frame transaction spec.
40
+
41
+ - [#471](https://github.com/wevm/ox/pull/471) [`1270b42`](https://github.com/wevm/ox/commit/1270b4279a48acea5f2e397c19fa252342f30f90) Thanks [@jxom](https://github.com/jxom)! - Added hex signature support for secp256k1 and P256 frame signature entries.
42
+
43
+ ```ts
44
+ import { FrameSignature, Signature } from "ox";
45
+
46
+ declare const signature: Signature.Signature;
47
+
48
+ FrameSignature.from({
49
+ scheme: "secp256k1",
50
+ signature: Signature.toHex(signature),
51
+ });
52
+ ```
53
+
54
+ - [#477](https://github.com/wevm/ox/pull/477) [`10075a8`](https://github.com/wevm/ox/commit/10075a8971ffd73d2345f3a1bda97bb1df5b6cac) Thanks [@jxom](https://github.com/jxom)! - Fixed `Siwe.parseMessage` losing or truncating resources when `Resources:` appeared in another message field or resource.
55
+
3
56
  ## 1.8.1
4
57
 
5
58
  ### Patch Changes
@@ -9,16 +9,16 @@ export type Frame<bigintType = bigint> = {
9
9
  * @default '0x'
10
10
  */
11
11
  data?: Hex.Hex | undefined;
12
+ /**
13
+ * Execution gas budget.
14
+ * @default 0n
15
+ */
16
+ executionGas?: bigintType | undefined;
12
17
  /**
13
18
  * Approval scope and atomic batching bits.
14
19
  * @default 0
15
20
  */
16
21
  flags?: Flags | undefined;
17
- /**
18
- * Execution gas budget.
19
- * @default 0n
20
- */
21
- gas?: bigintType | undefined;
22
22
  /**
23
23
  * Execution context: default, verify, or sender.
24
24
  * @default 0
@@ -42,13 +42,13 @@ export type Rpc = {
42
42
  /** Frame calldata. */
43
43
  data: Hex.Hex;
44
44
  /** Execution gas budget. */
45
- executionGasLimit: Hex.Hex;
45
+ executionGas: Hex.Hex;
46
46
  /** Approval scope and batching bits. */
47
- flags: number;
47
+ flags: Hex.Hex;
48
48
  /** Execution mode. */
49
- mode: number;
49
+ mode: Hex.Hex;
50
50
  /** State gas budget. */
51
- stateGasLimit: Hex.Hex;
51
+ stateGas: Hex.Hex;
52
52
  /** Target address; absent for the transaction sender. */
53
53
  target?: Address.Address | null | undefined;
54
54
  /** Value transferred in wei. */
@@ -96,8 +96,8 @@ export type Tuple = readonly [
96
96
  * import { Frame } from 'ox'
97
97
  *
98
98
  * Frame.assert({
99
+ * executionGas: 50_000n,
99
100
  * flags: 'approveExecutionAndPayment',
100
- * gas: 50_000n,
101
101
  * mode: 'verify'
102
102
  * })
103
103
  * ```
@@ -124,8 +124,8 @@ export declare namespace assert {
124
124
  * import { Frame } from 'ox'
125
125
  *
126
126
  * const frame = Frame.from({
127
+ * executionGas: 50_000n,
127
128
  * flags: 'approveExecutionAndPayment',
128
- * gas: 50_000n,
129
129
  * mode: 'verify'
130
130
  * })
131
131
  * ```
@@ -148,10 +148,10 @@ export declare namespace from {
148
148
  *
149
149
  * const frame = Frame.fromRpc({
150
150
  * data: '0x',
151
- * executionGasLimit: '0xc350',
152
- * flags: 3,
153
- * mode: 1,
154
- * stateGasLimit: '0x0',
151
+ * executionGas: '0xc350',
152
+ * flags: '0x3',
153
+ * mode: '0x1',
154
+ * stateGas: '0x0',
155
155
  * value: '0x0'
156
156
  * })
157
157
  * ```
@@ -161,7 +161,7 @@ export declare namespace from {
161
161
  */
162
162
  export declare function fromRpc(frame: Rpc): Frame;
163
163
  export declare namespace fromRpc {
164
- type ErrorType = from.ErrorType | Hex.toBigInt.ErrorType;
164
+ type ErrorType = from.ErrorType | Hex.toBigInt.ErrorType | Hex.toNumber.ErrorType;
165
165
  }
166
166
  /**
167
167
  * Converts a frame to its JSON-RPC representation.
@@ -172,7 +172,10 @@ export declare namespace fromRpc {
172
172
  * ```ts twoslash
173
173
  * import { Frame } from 'ox'
174
174
  *
175
- * const frame = Frame.from({ gas: 50_000n, mode: 'verify' })
175
+ * const frame = Frame.from({
176
+ * executionGas: 50_000n,
177
+ * mode: 'verify'
178
+ * })
176
179
  * const rpc = Frame.toRpc(frame)
177
180
  * ```
178
181
  *
@@ -208,8 +211,8 @@ export declare namespace toRpc {
208
211
  * ])
209
212
  * // @log: {
210
213
  * // @log: data: '0x',
214
+ * // @log: executionGas: 50000n,
211
215
  * // @log: flags: 3,
212
- * // @log: gas: 50000n,
213
216
  * // @log: mode: 1,
214
217
  * // @log: stateGas: 0n,
215
218
  * // @log: value: 0n
@@ -239,8 +242,8 @@ export declare namespace fromTuple {
239
242
  * import { Frame } from 'ox'
240
243
  *
241
244
  * const tuple = Frame.toTuple({
245
+ * executionGas: 50_000n,
242
246
  * flags: 'approveExecutionAndPayment',
243
- * gas: 50_000n,
244
247
  * mode: 'verify'
245
248
  * })
246
249
  * // @log: ['0x01', '0x03', '0x', ['0xc350', '0x'], '0x', '0x']
@@ -268,8 +271,8 @@ export declare namespace toTuple {
268
271
  * import { Frame } from 'ox'
269
272
  *
270
273
  * const valid = Frame.validate({
274
+ * executionGas: 50_000n,
271
275
  * flags: 'approveExecutionAndPayment',
272
- * gas: 50_000n,
273
276
  * mode: 'verify'
274
277
  * })
275
278
  * // @log: true
@@ -1 +1 @@
1
- {"version":3,"file":"Frame.d.ts","sourceRoot":"","sources":["../../src/core/Frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Frame.d.ts","sourceRoot":"","sources":["../../src/core/Frame.ts"],"names":[],"mappings":"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"}
@@ -28,8 +28,8 @@ export const flags = {
28
28
  * import { Frame } from 'ox'
29
29
  *
30
30
  * Frame.assert({
31
+ * executionGas: 50_000n,
31
32
  * flags: 'approveExecutionAndPayment',
32
- * gas: 50_000n,
33
33
  * mode: 'verify'
34
34
  * })
35
35
  * ```
@@ -37,7 +37,7 @@ export const flags = {
37
37
  * @param frame - The frame to assert.
38
38
  */
39
39
  export function assert(frame) {
40
- const { data = '0x', flags: flagsValue = 0, gas = 0n, mode: modeValue = 0, stateGas = 0n, value = 0n, } = frame;
40
+ const { data = '0x', executionGas = 0n, flags: flagsValue = 0, mode: modeValue = 0, stateGas = 0n, value = 0n, } = frame;
41
41
  const mode = typeof modeValue === 'string' ? modes[modeValue] : modeValue;
42
42
  if (!Number.isInteger(mode) || mode < 0 || mode > 2)
43
43
  throw new InvalidError('mode must be a supported name or 0, 1, or 2.');
@@ -53,12 +53,12 @@ export function assert(frame) {
53
53
  if (frame.to !== undefined)
54
54
  Address.assert(frame.to, { strict: false });
55
55
  for (const [field, limit] of [
56
- ['gas', gas],
56
+ ['executionGas', executionGas],
57
57
  ['stateGas', stateGas],
58
58
  ])
59
59
  if (typeof limit !== 'bigint' || limit < 0n || limit >= 2n ** 64n)
60
60
  throw new InvalidError(`${field} must be an unsigned 64-bit integer.`);
61
- if (gas + stateGas >= 2n ** 64n)
61
+ if (executionGas + stateGas >= 2n ** 64n)
62
62
  throw new InvalidError('Combined frame gas must be less than 2^64.');
63
63
  if (typeof value !== 'bigint' || value < 0n || value >= 2n ** 256n)
64
64
  throw new InvalidError('value must be an unsigned 256-bit integer.');
@@ -84,8 +84,8 @@ export function assert(frame) {
84
84
  * import { Frame } from 'ox'
85
85
  *
86
86
  * const frame = Frame.from({
87
+ * executionGas: 50_000n,
87
88
  * flags: 'approveExecutionAndPayment',
88
- * gas: 50_000n,
89
89
  * mode: 'verify'
90
90
  * })
91
91
  * ```
@@ -108,10 +108,10 @@ export function from(frame) {
108
108
  *
109
109
  * const frame = Frame.fromRpc({
110
110
  * data: '0x',
111
- * executionGasLimit: '0xc350',
112
- * flags: 3,
113
- * mode: 1,
114
- * stateGasLimit: '0x0',
111
+ * executionGas: '0xc350',
112
+ * flags: '0x3',
113
+ * mode: '0x1',
114
+ * stateGas: '0x0',
115
115
  * value: '0x0'
116
116
  * })
117
117
  * ```
@@ -122,10 +122,10 @@ export function from(frame) {
122
122
  export function fromRpc(frame) {
123
123
  return from({
124
124
  data: frame.data,
125
- flags: frame.flags,
126
- gas: Hex.toBigInt(frame.executionGasLimit),
127
- mode: frame.mode,
128
- stateGas: Hex.toBigInt(frame.stateGasLimit),
125
+ executionGas: Hex.toBigInt(frame.executionGas),
126
+ flags: Hex.toNumber(frame.flags),
127
+ mode: Hex.toNumber(frame.mode),
128
+ stateGas: Hex.toBigInt(frame.stateGas),
129
129
  ...(frame.target == null ? {} : { to: frame.target }),
130
130
  value: Hex.toBigInt(frame.value),
131
131
  });
@@ -139,7 +139,10 @@ export function fromRpc(frame) {
139
139
  * ```ts twoslash
140
140
  * import { Frame } from 'ox'
141
141
  *
142
- * const frame = Frame.from({ gas: 50_000n, mode: 'verify' })
142
+ * const frame = Frame.from({
143
+ * executionGas: 50_000n,
144
+ * mode: 'verify'
145
+ * })
143
146
  * const rpc = Frame.toRpc(frame)
144
147
  * ```
145
148
  *
@@ -150,10 +153,10 @@ export function toRpc(frame) {
150
153
  const { flags: flags_ = 0, mode = 0 } = frame;
151
154
  return {
152
155
  data: frame.data ?? '0x',
153
- executionGasLimit: Quantity.fromNumberish(frame.gas ?? 0n),
154
- flags: typeof flags_ === 'string' ? flags[flags_] : flags_,
155
- mode: typeof mode === 'string' ? modes[mode] : mode,
156
- stateGasLimit: Quantity.fromNumberish(frame.stateGas ?? 0n),
156
+ executionGas: Quantity.fromNumberish(frame.executionGas ?? 0n),
157
+ flags: Hex.fromNumber(typeof flags_ === 'string' ? flags[flags_] : flags_),
158
+ mode: Hex.fromNumber(typeof mode === 'string' ? modes[mode] : mode),
159
+ stateGas: Quantity.fromNumberish(frame.stateGas ?? 0n),
157
160
  ...(frame.to === undefined ? {} : { target: frame.to }),
158
161
  value: Quantity.fromNumberish(frame.value ?? 0n),
159
162
  };
@@ -182,8 +185,8 @@ export function toRpc(frame) {
182
185
  * ])
183
186
  * // @log: {
184
187
  * // @log: data: '0x',
188
+ * // @log: executionGas: 50000n,
185
189
  * // @log: flags: 3,
186
- * // @log: gas: 50000n,
187
190
  * // @log: mode: 1,
188
191
  * // @log: stateGas: 0n,
189
192
  * // @log: value: 0n
@@ -211,8 +214,8 @@ export function fromTuple(tuple) {
211
214
  const frame = {
212
215
  ...(target === '0x' ? {} : { to: target }),
213
216
  data,
217
+ executionGas: execution === '0x' ? 0n : Hex.toBigInt(execution),
214
218
  flags: flags === '0x' ? 0 : Hex.toNumber(flags),
215
- gas: execution === '0x' ? 0n : Hex.toBigInt(execution),
216
219
  mode: mode === '0x' ? 0 : Hex.toNumber(mode),
217
220
  stateGas: state === '0x' ? 0n : Hex.toBigInt(state),
218
221
  value: value === '0x' ? 0n : Hex.toBigInt(value),
@@ -236,8 +239,8 @@ export function fromTuple(tuple) {
236
239
  * import { Frame } from 'ox'
237
240
  *
238
241
  * const tuple = Frame.toTuple({
242
+ * executionGas: 50_000n,
239
243
  * flags: 'approveExecutionAndPayment',
240
- * gas: 50_000n,
241
244
  * mode: 'verify'
242
245
  * })
243
246
  * // @log: ['0x01', '0x03', '0x', ['0xc350', '0x'], '0x', '0x']
@@ -255,7 +258,9 @@ export function toTuple(frame) {
255
258
  flags_ ? Hex.fromBytes(Bytes.fromNumber(flags_)) : '0x',
256
259
  frame.to ?? '0x',
257
260
  [
258
- frame.gas ? Hex.fromBytes(Bytes.fromNumber(frame.gas)) : '0x',
261
+ frame.executionGas
262
+ ? Hex.fromBytes(Bytes.fromNumber(frame.executionGas))
263
+ : '0x',
259
264
  frame.stateGas ? Hex.fromBytes(Bytes.fromNumber(frame.stateGas)) : '0x',
260
265
  ],
261
266
  frame.value ? Hex.fromBytes(Bytes.fromNumber(frame.value)) : '0x',
@@ -277,8 +282,8 @@ export function toTuple(frame) {
277
282
  * import { Frame } from 'ox'
278
283
  *
279
284
  * const valid = Frame.validate({
285
+ * executionGas: 50_000n,
280
286
  * flags: 'approveExecutionAndPayment',
281
- * gas: 50_000n,
282
287
  * mode: 'verify'
283
288
  * })
284
289
  * // @log: true
@@ -1 +1 @@
1
- {"version":3,"file":"Frame.js","sourceRoot":"","sources":["../../src/core/Frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Frame.js","sourceRoot":"","sources":["../../src/core/Frame.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import type * as Errors from './Errors.js';
2
2
  import * as Hex from './Hex.js';
3
3
  import type * as Log from './Log.js';
4
- /** Receipt for one frame. Frame logs contain only address, data, and topics. */
4
+ import type { Compute, ExactPartial } from './internal/types.js';
5
+ type FrameLog = Compute<Pick<Log.Rpc, 'address' | 'data' | 'topics'> & ExactPartial<Omit<Log.Rpc, 'address' | 'data' | 'topics'>>>;
6
+ /** Receipt for one frame. */
5
7
  export type FrameReceipt<bigintType = bigint> = {
6
8
  /** Execution gas used before transaction-level refunds. */
9
+ executionGasUsed: bigintType;
10
+ /** Total execution and state gas used. */
7
11
  gasUsed: bigintType;
8
12
  /** Logs emitted by this frame. */
9
- logs: readonly Pick<Log.Log, 'address' | 'data' | 'topics'>[];
13
+ logs: readonly FrameLog[];
10
14
  /** Final state gas after refills and rollbacks. */
11
15
  stateGasUsed: bigintType;
12
16
  /** Frame execution result. */
@@ -16,8 +20,10 @@ export type FrameReceipt<bigintType = bigint> = {
16
20
  export type Rpc = {
17
21
  /** Execution gas used. */
18
22
  executionGasUsed: Hex.Hex;
23
+ /** Total execution and state gas used. */
24
+ gasUsed: Hex.Hex;
19
25
  /** Logs emitted by this frame. */
20
- logs: readonly Pick<Log.Log, 'address' | 'data' | 'topics'>[];
26
+ logs: readonly FrameLog[];
21
27
  /** Final state gas used. */
22
28
  stateGasUsed: Hex.Hex;
23
29
  /** Zero for failure, one for success, or two for a skipped frame. */
@@ -25,19 +31,19 @@ export type Rpc = {
25
31
  };
26
32
  /** Frame execution status. */
27
33
  export type Status = 'reverted' | 'skipped' | 'success';
28
- /** Numeric JSON-RPC frame execution status. */
29
- export type RpcStatus = 0 | 1 | 2;
34
+ /** Hex JSON-RPC frame execution status. */
35
+ export type RpcStatus = '0x0' | '0x1' | '0x2';
30
36
  /** RPC status to status mapping. */
31
37
  export declare const fromRpcStatus: {
32
- readonly 0: "reverted";
33
- readonly 1: "success";
34
- readonly 2: "skipped";
38
+ readonly '0x0': "reverted";
39
+ readonly '0x1': "success";
40
+ readonly '0x2': "skipped";
35
41
  };
36
42
  /** Status to RPC status mapping. */
37
43
  export declare const toRpcStatus: {
38
- readonly reverted: 0;
39
- readonly skipped: 2;
40
- readonly success: 1;
44
+ readonly reverted: "0x0";
45
+ readonly skipped: "0x2";
46
+ readonly success: "0x1";
41
47
  };
42
48
  /**
43
49
  * Converts an RPC frame receipt to a {@link ox#FrameReceipt.FrameReceipt}.
@@ -50,9 +56,10 @@ export declare const toRpcStatus: {
50
56
  *
51
57
  * const receipt = FrameReceipt.fromRpc({
52
58
  * executionGasUsed: '0x5208',
59
+ * gasUsed: '0x5208',
53
60
  * logs: [],
54
61
  * stateGasUsed: '0x0',
55
- * status: 1
62
+ * status: '0x1'
56
63
  * })
57
64
  * ```
58
65
  *
@@ -74,19 +81,21 @@ export declare namespace fromRpc {
74
81
  *
75
82
  * const receipt = FrameReceipt.fromRpc({
76
83
  * executionGasUsed: '0x5208',
84
+ * gasUsed: '0x5208',
77
85
  * logs: [],
78
86
  * stateGasUsed: '0x0',
79
- * status: 1
87
+ * status: '0x1'
80
88
  * })
81
89
  * const rpc = FrameReceipt.toRpc(receipt)
82
90
  * ```
83
91
  *
84
92
  * @param receipt - The frame receipt. Gas accepts hex, bigint, or number values.
85
- * @returns The RPC frame receipt with hex gas and a numeric status.
93
+ * @returns The RPC frame receipt with hex gas and a hex status.
86
94
  */
87
95
  export declare function toRpc(receipt: toRpc.Input): Rpc;
88
96
  export declare namespace toRpc {
89
97
  type Input = FrameReceipt<Hex.Hex | bigint | number>;
90
98
  type ErrorType = Hex.fromNumber.ErrorType | Errors.GlobalErrorType;
91
99
  }
100
+ export {};
92
101
  //# sourceMappingURL=FrameReceipt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FrameReceipt.d.ts","sourceRoot":"","sources":["../../src/core/FrameReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AAEpC,gFAAgF;AAChF,MAAM,MAAM,YAAY,CAAC,UAAU,GAAG,MAAM,IAAI;IAC9C,2DAA2D;IAC3D,OAAO,EAAE,UAAU,CAAA;IACnB,kCAAkC;IAClC,IAAI,EAAE,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAA;IAC7D,mDAAmD;IACnD,YAAY,EAAE,UAAU,CAAA;IACxB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,sCAAsC;AACtC,MAAM,MAAM,GAAG,GAAG;IAChB,0BAA0B;IAC1B,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAA;IACzB,kCAAkC;IAClC,IAAI,EAAE,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAA;IAC7D,4BAA4B;IAC5B,YAAY,EAAE,GAAG,CAAC,GAAG,CAAA;IACrB,qEAAqE;IACrE,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,8BAA8B;AAC9B,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAEvD,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEjC,oCAAoC;AACpC,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAEV,oCAAoC;AACpC,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,YAAY,CAOlD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACjE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAO/C;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IAEpD,KAAK,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACnE"}
1
+ {"version":3,"file":"FrameReceipt.d.ts","sourceRoot":"","sources":["../../src/core/FrameReceipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEhE,KAAK,QAAQ,GAAG,OAAO,CACrB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,GAC1C,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC,CAC7D,CAAA;AAED,6BAA6B;AAC7B,MAAM,MAAM,YAAY,CAAC,UAAU,GAAG,MAAM,IAAI;IAC9C,2DAA2D;IAC3D,gBAAgB,EAAE,UAAU,CAAA;IAC5B,0CAA0C;IAC1C,OAAO,EAAE,UAAU,CAAA;IACnB,kCAAkC;IAClC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAA;IACzB,mDAAmD;IACnD,YAAY,EAAE,UAAU,CAAA;IACxB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,sCAAsC;AACtC,MAAM,MAAM,GAAG,GAAG;IAChB,0BAA0B;IAC1B,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAA;IACzB,0CAA0C;IAC1C,OAAO,EAAE,GAAG,CAAC,GAAG,CAAA;IAChB,kCAAkC;IAClC,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAA;IACzB,4BAA4B;IAC5B,YAAY,EAAE,GAAG,CAAC,GAAG,CAAA;IACrB,qEAAqE;IACrE,MAAM,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,8BAA8B;AAC9B,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;AAEvD,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;AAE7C,oCAAoC;AACpC,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAEV,oCAAoC;AACpC,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,YAAY,CAQlD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACjE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAQ/C;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IAEpD,KAAK,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACnE"}
@@ -2,15 +2,15 @@ import * as Hex from './Hex.js';
2
2
  import * as Quantity from './internal/quantity.js';
3
3
  /** RPC status to status mapping. */
4
4
  export const fromRpcStatus = {
5
- 0: 'reverted',
6
- 1: 'success',
7
- 2: 'skipped',
5
+ '0x0': 'reverted',
6
+ '0x1': 'success',
7
+ '0x2': 'skipped',
8
8
  };
9
9
  /** Status to RPC status mapping. */
10
10
  export const toRpcStatus = {
11
- reverted: 0,
12
- skipped: 2,
13
- success: 1,
11
+ reverted: '0x0',
12
+ skipped: '0x2',
13
+ success: '0x1',
14
14
  };
15
15
  /**
16
16
  * Converts an RPC frame receipt to a {@link ox#FrameReceipt.FrameReceipt}.
@@ -23,9 +23,10 @@ export const toRpcStatus = {
23
23
  *
24
24
  * const receipt = FrameReceipt.fromRpc({
25
25
  * executionGasUsed: '0x5208',
26
+ * gasUsed: '0x5208',
26
27
  * logs: [],
27
28
  * stateGasUsed: '0x0',
28
- * status: 1
29
+ * status: '0x1'
29
30
  * })
30
31
  * ```
31
32
  *
@@ -34,7 +35,8 @@ export const toRpcStatus = {
34
35
  */
35
36
  export function fromRpc(receipt) {
36
37
  return {
37
- gasUsed: Hex.toBigInt(receipt.executionGasUsed),
38
+ executionGasUsed: Hex.toBigInt(receipt.executionGasUsed),
39
+ gasUsed: Hex.toBigInt(receipt.gasUsed),
38
40
  logs: receipt.logs,
39
41
  stateGasUsed: Hex.toBigInt(receipt.stateGasUsed),
40
42
  status: fromRpcStatus[receipt.status],
@@ -51,19 +53,21 @@ export function fromRpc(receipt) {
51
53
  *
52
54
  * const receipt = FrameReceipt.fromRpc({
53
55
  * executionGasUsed: '0x5208',
56
+ * gasUsed: '0x5208',
54
57
  * logs: [],
55
58
  * stateGasUsed: '0x0',
56
- * status: 1
59
+ * status: '0x1'
57
60
  * })
58
61
  * const rpc = FrameReceipt.toRpc(receipt)
59
62
  * ```
60
63
  *
61
64
  * @param receipt - The frame receipt. Gas accepts hex, bigint, or number values.
62
- * @returns The RPC frame receipt with hex gas and a numeric status.
65
+ * @returns The RPC frame receipt with hex gas and a hex status.
63
66
  */
64
67
  export function toRpc(receipt) {
65
68
  return {
66
- executionGasUsed: Quantity.fromNumberish(receipt.gasUsed),
69
+ executionGasUsed: Quantity.fromNumberish(receipt.executionGasUsed),
70
+ gasUsed: Quantity.fromNumberish(receipt.gasUsed),
67
71
  logs: receipt.logs,
68
72
  stateGasUsed: Quantity.fromNumberish(receipt.stateGasUsed),
69
73
  status: toRpcStatus[receipt.status],
@@ -1 +1 @@
1
- {"version":3,"file":"FrameReceipt.js","sourceRoot":"","sources":["../../src/core/FrameReceipt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAiClD,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;CACJ,CAAA;AAEV,oCAAoC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;CACF,CAAA;AAEV;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,OAAO,CAAC,OAAY;IAClC,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC/C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;QAChD,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;KACtC,CAAA;AACH,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,KAAK,CAAC,OAAoB;IACxC,OAAO;QACL,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;QACzD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;QAC1D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"FrameReceipt.js","sourceRoot":"","sources":["../../src/core/FrameReceipt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AA2ClD,oCAAoC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;CACR,CAAA;AAEV,oCAAoC;AACpC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;CACN,CAAA;AAEV;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,OAAO,CAAC,OAAY;IAClC,OAAO;QACL,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACxD,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QACtC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;QAChD,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;KACtC,CAAA;AACH,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,KAAK,CAAC,OAAoB;IACxC,OAAO;QACL,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAClE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;QAChD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;QAC1D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAA;AACH,CAAC"}
@@ -0,0 +1,50 @@
1
+ import * as Frame from './Frame.js';
2
+ import type { Compute, PartialBy } from './internal/types.js';
3
+ /** A frame request whose omitted gas limits are estimated by the node. */
4
+ export type FrameRequest<bigintType = bigint> = Frame.Frame<bigintType>;
5
+ /** JSON-RPC frame request. Only the execution mode is required. */
6
+ export type Rpc = Compute<PartialBy<Frame.Rpc, Exclude<keyof Frame.Rpc, 'mode'>>>;
7
+ /**
8
+ * Converts an RPC frame request, preserving omitted gas limits for node estimation.
9
+ *
10
+ * @example
11
+ * ```ts twoslash
12
+ * import { FrameRequest } from 'ox'
13
+ *
14
+ * const frame = FrameRequest.fromRpc({
15
+ * mode: '0x2',
16
+ * stateGas: '0x0'
17
+ * })
18
+ * ```
19
+ *
20
+ * @param frame - The RPC frame request.
21
+ * @returns The decoded request with omitted gas limits preserved.
22
+ */
23
+ export declare function fromRpc(frame: Rpc): FrameRequest;
24
+ export declare namespace fromRpc {
25
+ type ErrorType = Frame.fromRpc.ErrorType;
26
+ }
27
+ /**
28
+ * Converts a frame request to RPC fields without filling omitted gas limits.
29
+ *
30
+ * Explicit zero limits remain zero. Omitted mode, flags, value, and data use frame defaults.
31
+ *
32
+ * @example
33
+ * ```ts twoslash
34
+ * import { FrameRequest } from 'ox'
35
+ *
36
+ * const frame = FrameRequest.toRpc({
37
+ * mode: 'sender',
38
+ * stateGas: 0n
39
+ * })
40
+ * ```
41
+ *
42
+ * @param frame - The frame request. Gas and value accept hex, bigint, or number values.
43
+ * @returns The RPC request with omitted gas limits preserved.
44
+ */
45
+ export declare function toRpc(frame: toRpc.Input): Rpc;
46
+ export declare namespace toRpc {
47
+ type Input = Frame.toRpc.Input;
48
+ type ErrorType = Frame.toRpc.ErrorType;
49
+ }
50
+ //# sourceMappingURL=FrameRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameRequest.d.ts","sourceRoot":"","sources":["../../src/core/FrameRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE7D,0EAA0E;AAC1E,MAAM,MAAM,YAAY,CAAC,UAAU,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;AAEvE,mEAAmE;AACnE,MAAM,MAAM,GAAG,GAAG,OAAO,CACvB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CACvD,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,YAAY,CAchD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAA;CACzC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAO7C;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAA;IAC9B,KAAK,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAA;CACvC"}