ox 1.0.0-beta.9 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/CHANGELOG.md +1151 -0
  2. package/dist/core/AbiParameters.d.ts.map +1 -1
  3. package/dist/core/AbiParameters.js +4 -1
  4. package/dist/core/AbiParameters.js.map +1 -1
  5. package/dist/core/Rlp.d.ts +27 -5
  6. package/dist/core/Rlp.d.ts.map +1 -1
  7. package/dist/core/Rlp.js +40 -4
  8. package/dist/core/Rlp.js.map +1 -1
  9. package/dist/core/RpcSchema.d.ts +1 -1
  10. package/dist/core/Siwe.d.ts +4 -4
  11. package/dist/core/Siwe.js +5 -5
  12. package/dist/core/Siwe.js.map +1 -1
  13. package/dist/core/internal/abiParameters.d.ts +1 -1
  14. package/dist/core/internal/abiParameters.d.ts.map +1 -1
  15. package/dist/core/internal/abiParameters.js +22 -4
  16. package/dist/core/internal/abiParameters.js.map +1 -1
  17. package/dist/core/internal/rpcSchemas/eth.d.ts +36 -0
  18. package/dist/core/internal/rpcSchemas/eth.d.ts.map +1 -1
  19. package/dist/erc4337/EntryPoint.d.ts +1072 -1
  20. package/dist/erc4337/EntryPoint.d.ts.map +1 -1
  21. package/dist/erc4337/EntryPoint.js +872 -0
  22. package/dist/erc4337/EntryPoint.js.map +1 -1
  23. package/dist/erc4337/RpcSchema.d.ts +2 -2
  24. package/dist/erc4337/RpcSchema.d.ts.map +1 -1
  25. package/dist/erc4337/UserOperation.d.ts +39 -10
  26. package/dist/erc4337/UserOperation.d.ts.map +1 -1
  27. package/dist/erc4337/UserOperation.js +62 -48
  28. package/dist/erc4337/UserOperation.js.map +1 -1
  29. package/dist/erc4337/UserOperationGas.d.ts +9 -5
  30. package/dist/erc4337/UserOperationGas.d.ts.map +1 -1
  31. package/dist/erc4337/UserOperationGas.js +17 -15
  32. package/dist/erc4337/UserOperationGas.js.map +1 -1
  33. package/dist/erc4337/UserOperationReceipt.d.ts +4 -4
  34. package/dist/erc4337/UserOperationReceipt.d.ts.map +1 -1
  35. package/dist/erc4337/UserOperationReceipt.js.map +1 -1
  36. package/dist/index.d.ts +2 -2
  37. package/dist/index.js +2 -2
  38. package/dist/tempo/Channel.d.ts +8 -14
  39. package/dist/tempo/Channel.d.ts.map +1 -1
  40. package/dist/tempo/Channel.js +4 -8
  41. package/dist/tempo/Channel.js.map +1 -1
  42. package/dist/tempo/KeyAuthorization.d.ts +5 -5
  43. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  44. package/dist/tempo/KeyAuthorization.js +4 -4
  45. package/dist/tempo/KeyAuthorization.js.map +1 -1
  46. package/dist/tempo/MultisigConfig.d.ts +37 -85
  47. package/dist/tempo/MultisigConfig.d.ts.map +1 -1
  48. package/dist/tempo/MultisigConfig.js +39 -83
  49. package/dist/tempo/MultisigConfig.js.map +1 -1
  50. package/dist/tempo/PoolId.d.ts +8 -7
  51. package/dist/tempo/PoolId.d.ts.map +1 -1
  52. package/dist/tempo/PoolId.js +10 -6
  53. package/dist/tempo/PoolId.js.map +1 -1
  54. package/dist/tempo/SignatureEnvelope.d.ts +32 -30
  55. package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
  56. package/dist/tempo/SignatureEnvelope.js +56 -51
  57. package/dist/tempo/SignatureEnvelope.js.map +1 -1
  58. package/dist/tempo/Transaction.d.ts +16 -5
  59. package/dist/tempo/Transaction.d.ts.map +1 -1
  60. package/dist/tempo/Transaction.js +34 -7
  61. package/dist/tempo/Transaction.js.map +1 -1
  62. package/dist/tempo/TransactionReceipt.d.ts +3 -3
  63. package/dist/tempo/TransactionReceipt.d.ts.map +1 -1
  64. package/dist/tempo/TransactionReceipt.js +8 -1
  65. package/dist/tempo/TransactionReceipt.js.map +1 -1
  66. package/dist/tempo/TransactionRequest.d.ts +15 -2
  67. package/dist/tempo/TransactionRequest.d.ts.map +1 -1
  68. package/dist/tempo/TransactionRequest.js +65 -29
  69. package/dist/tempo/TransactionRequest.js.map +1 -1
  70. package/dist/tempo/TxEnvelopeTempo.d.ts +2 -3
  71. package/dist/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  72. package/dist/tempo/TxEnvelopeTempo.js +5 -6
  73. package/dist/tempo/TxEnvelopeTempo.js.map +1 -1
  74. package/dist/tempo/index.d.ts +6 -26
  75. package/dist/tempo/index.d.ts.map +1 -1
  76. package/dist/tempo/index.js +6 -26
  77. package/dist/tempo/index.js.map +1 -1
  78. package/dist/zod/Abi.d.ts +214 -0
  79. package/dist/zod/Abi.d.ts.map +1 -0
  80. package/dist/zod/Abi.js +5 -0
  81. package/dist/zod/Abi.js.map +1 -0
  82. package/dist/zod/AbiConstructor.d.ts +58 -0
  83. package/dist/zod/AbiConstructor.d.ts.map +1 -0
  84. package/dist/zod/AbiConstructor.js +18 -0
  85. package/dist/zod/AbiConstructor.js.map +1 -0
  86. package/dist/zod/AbiError.d.ts +20 -0
  87. package/dist/zod/AbiError.d.ts.map +1 -0
  88. package/dist/zod/AbiError.js +9 -0
  89. package/dist/zod/AbiError.js.map +1 -0
  90. package/dist/zod/AbiEvent.d.ts +23 -0
  91. package/dist/zod/AbiEvent.d.ts.map +1 -0
  92. package/dist/zod/AbiEvent.js +11 -0
  93. package/dist/zod/AbiEvent.js.map +1 -0
  94. package/dist/zod/AbiFallback.d.ts +16 -0
  95. package/dist/zod/AbiFallback.d.ts.map +1 -0
  96. package/dist/zod/AbiFallback.js +16 -0
  97. package/dist/zod/AbiFallback.js.map +1 -0
  98. package/dist/zod/AbiFunction.d.ts +109 -0
  99. package/dist/zod/AbiFunction.d.ts.map +1 -0
  100. package/dist/zod/AbiFunction.js +26 -0
  101. package/dist/zod/AbiFunction.js.map +1 -0
  102. package/dist/zod/AbiItem.d.ts +216 -0
  103. package/dist/zod/AbiItem.d.ts.map +1 -0
  104. package/dist/zod/AbiItem.js +26 -0
  105. package/dist/zod/AbiItem.js.map +1 -0
  106. package/dist/zod/AbiParameter.d.ts +32 -0
  107. package/dist/zod/AbiParameter.d.ts.map +1 -0
  108. package/dist/zod/AbiParameter.js +28 -0
  109. package/dist/zod/AbiParameter.js.map +1 -0
  110. package/dist/zod/AbiParameters.d.ts +30 -0
  111. package/dist/zod/AbiParameters.d.ts.map +1 -0
  112. package/dist/zod/AbiParameters.js +6 -0
  113. package/dist/zod/AbiParameters.js.map +1 -0
  114. package/dist/zod/AbiReceive.d.ts +6 -0
  115. package/dist/zod/AbiReceive.d.ts.map +1 -0
  116. package/dist/zod/AbiReceive.js +7 -0
  117. package/dist/zod/AbiReceive.js.map +1 -0
  118. package/dist/zod/RpcSchema.d.ts +1 -0
  119. package/dist/zod/RpcSchema.d.ts.map +1 -1
  120. package/dist/zod/Solidity.d.ts +15 -0
  121. package/dist/zod/Solidity.d.ts.map +1 -0
  122. package/dist/zod/Solidity.js +41 -0
  123. package/dist/zod/Solidity.js.map +1 -0
  124. package/dist/zod/TypedData.d.ts +226 -0
  125. package/dist/zod/TypedData.d.ts.map +1 -0
  126. package/dist/zod/TypedData.js +84 -0
  127. package/dist/zod/TypedData.js.map +1 -0
  128. package/dist/zod/internal/rpcSchemas/Eth.d.ts +1 -0
  129. package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
  130. package/dist/zod/internal/rpcSchemas/Eth.js +5 -0
  131. package/dist/zod/internal/rpcSchemas/Eth.js.map +1 -1
  132. package/dist/zod/tempo/AuthorizationTempo.d.ts +0 -20
  133. package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
  134. package/dist/zod/tempo/KeyAuthorization.d.ts +503 -67
  135. package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
  136. package/dist/zod/tempo/KeyAuthorization.js +32 -15
  137. package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
  138. package/dist/zod/tempo/RpcSchemaTempo.d.ts +216 -34
  139. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  140. package/dist/zod/tempo/SignatureEnvelope.d.ts +0 -6
  141. package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
  142. package/dist/zod/tempo/SignatureEnvelope.js +0 -2
  143. package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
  144. package/dist/zod/tempo/Transaction.d.ts +1479 -333
  145. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  146. package/dist/zod/tempo/Transaction.js +65 -16
  147. package/dist/zod/tempo/Transaction.js.map +1 -1
  148. package/dist/zod/tempo/TransactionRequest.d.ts +410 -57
  149. package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
  150. package/dist/zod/tempo/TransactionRequest.js +81 -18
  151. package/dist/zod/tempo/TransactionRequest.js.map +1 -1
  152. package/dist/zod/tempo/TxEnvelopeTempo.d.ts +225 -18
  153. package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  154. package/dist/zod/tempo/TxEnvelopeTempo.js +1 -1
  155. package/dist/zod/tempo/TxEnvelopeTempo.js.map +1 -1
  156. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +0 -3
  157. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
  158. package/dist/zod/tempo/z.d.ts +0 -1
  159. package/dist/zod/tempo/z.d.ts.map +1 -1
  160. package/dist/zod/tempo/z.js +0 -1
  161. package/dist/zod/tempo/z.js.map +1 -1
  162. package/dist/zod/z.d.ts +12 -0
  163. package/dist/zod/z.d.ts.map +1 -1
  164. package/dist/zod/z.js +12 -0
  165. package/dist/zod/z.js.map +1 -1
  166. package/package.json +62 -11
  167. package/src/core/AbiParameters.ts +3 -1
  168. package/src/core/Rlp.ts +66 -3
  169. package/src/core/RpcSchema.ts +1 -1
  170. package/src/core/Siwe.ts +6 -6
  171. package/src/core/_test/AbiParameters.decode.test.ts +101 -12
  172. package/src/core/_test/AbiParameters.encode.test.ts +68 -0
  173. package/src/core/_test/Rlp.test.ts +101 -0
  174. package/src/core/_test/Siwe.test.ts +6 -8
  175. package/src/core/internal/abiParameters.ts +22 -5
  176. package/src/core/internal/rpcSchemas/eth.ts +36 -0
  177. package/src/erc4337/EntryPoint.ts +875 -1
  178. package/src/erc4337/RpcSchema.ts +4 -2
  179. package/src/erc4337/UserOperation.ts +130 -60
  180. package/src/erc4337/UserOperationGas.ts +36 -28
  181. package/src/erc4337/UserOperationReceipt.ts +15 -7
  182. package/src/erc4337/_test/EntryPoint.test.ts +48 -0
  183. package/src/erc4337/_test/RpcSchema.test-d.ts +56 -0
  184. package/src/erc4337/_test/UserOperation.snap-d.ts +31 -0
  185. package/src/erc4337/_test/UserOperation.test.ts +221 -5
  186. package/src/erc4337/_test/UserOperationGas.test.ts +30 -1
  187. package/src/index.ts +2 -2
  188. package/src/tempo/Channel.test.ts +2 -23
  189. package/src/tempo/Channel.ts +10 -22
  190. package/src/tempo/KeyAuthorization.test.ts +22 -0
  191. package/src/tempo/KeyAuthorization.ts +9 -9
  192. package/src/tempo/MultisigConfig.test.ts +54 -37
  193. package/src/tempo/MultisigConfig.ts +59 -134
  194. package/src/tempo/PoolId.test.ts +7 -41
  195. package/src/tempo/PoolId.ts +15 -10
  196. package/src/tempo/SignatureEnvelope.test.ts +118 -17
  197. package/src/tempo/SignatureEnvelope.ts +77 -72
  198. package/src/tempo/Transaction.test.ts +0 -15
  199. package/src/tempo/Transaction.ts +63 -12
  200. package/src/tempo/TransactionReceipt.test.ts +76 -0
  201. package/src/tempo/TransactionReceipt.ts +11 -5
  202. package/src/tempo/TransactionRequest.test.ts +174 -1
  203. package/src/tempo/TransactionRequest.ts +84 -32
  204. package/src/tempo/TxEnvelopeTempo.test.ts +2 -2
  205. package/src/tempo/TxEnvelopeTempo.ts +7 -7
  206. package/src/tempo/e2e.test.ts +228 -50
  207. package/src/tempo/index.ts +6 -26
  208. package/src/version.ts +1 -1
  209. package/src/zod/Abi.ts +5 -0
  210. package/src/zod/AbiConstructor.ts +24 -0
  211. package/src/zod/AbiError.ts +9 -0
  212. package/src/zod/AbiEvent.ts +11 -0
  213. package/src/zod/AbiFallback.ts +22 -0
  214. package/src/zod/AbiFunction.ts +32 -0
  215. package/src/zod/AbiItem.ts +28 -0
  216. package/src/zod/AbiParameter.ts +36 -0
  217. package/src/zod/AbiParameters.ts +7 -0
  218. package/src/zod/AbiReceive.ts +7 -0
  219. package/src/zod/Solidity.ts +83 -0
  220. package/src/zod/TypedData.ts +111 -0
  221. package/src/zod/_test/Abi.test-d.ts +46 -0
  222. package/src/zod/_test/Abi.test.ts +163 -0
  223. package/src/zod/_test/TypedData.test-d.ts +20 -0
  224. package/src/zod/_test/TypedData.test.ts +87 -0
  225. package/src/zod/_test/z.test-d.ts +6 -0
  226. package/src/zod/_test/z.test.ts +17 -0
  227. package/src/zod/internal/rpcSchemas/Eth.ts +6 -0
  228. package/src/zod/tempo/KeyAuthorization.ts +34 -15
  229. package/src/zod/tempo/SignatureEnvelope.ts +0 -2
  230. package/src/zod/tempo/Transaction.ts +84 -22
  231. package/src/zod/tempo/TransactionRequest.ts +86 -20
  232. package/src/zod/tempo/TxEnvelopeTempo.ts +1 -1
  233. package/src/zod/tempo/_test/KeyAuthorization.test.ts +53 -0
  234. package/src/zod/tempo/_test/SignatureEnvelope.test.ts +0 -2
  235. package/src/zod/tempo/_test/Transaction.test.ts +155 -0
  236. package/src/zod/tempo/_test/TransactionRequest.test.ts +44 -0
  237. package/src/zod/tempo/z.ts +0 -1
  238. package/src/zod/z.ts +12 -0
  239. package/dist/tempo/TokenId.d.ts +0 -87
  240. package/dist/tempo/TokenId.d.ts.map +0 -1
  241. package/dist/tempo/TokenId.js +0 -123
  242. package/dist/tempo/TokenId.js.map +0 -1
  243. package/dist/zod/tempo/TokenId.d.ts +0 -6
  244. package/dist/zod/tempo/TokenId.d.ts.map +0 -1
  245. package/dist/zod/tempo/TokenId.js +0 -14
  246. package/dist/zod/tempo/TokenId.js.map +0 -1
  247. package/src/CHANGELOG.md +0 -820
  248. package/src/tempo/TokenId.bench.ts +0 -36
  249. package/src/tempo/TokenId.test.ts +0 -79
  250. package/src/tempo/TokenId.ts +0 -141
  251. package/src/zod/tempo/TokenId.ts +0 -15
  252. package/src/zod/tempo/_test/TokenId.test-d.ts +0 -17
  253. package/src/zod/tempo/_test/TokenId.test.ts +0 -21
@@ -4,7 +4,7 @@ import { describe, expect, test, vi } from 'vp/test'
4
4
  describe('createMessage', () => {
5
5
  const message = {
6
6
  address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
7
- chainId: 1n,
7
+ chainId: 1,
8
8
  domain: 'example.com',
9
9
  nonce: 'foobarbaz',
10
10
  uri: 'https://example.com/path',
@@ -277,10 +277,8 @@ describe('createMessage', () => {
277
277
  })
278
278
 
279
279
  test('behavior: invalid chainId', () => {
280
- expect(() =>
281
- // @ts-expect-error chain IDs must be bigint.
282
- Siwe.createMessage({ ...message, chainId: 1.1 }),
283
- ).toThrowErrorMatchingInlineSnapshot(`
280
+ expect(() => Siwe.createMessage({ ...message, chainId: 1.1 }))
281
+ .toThrowErrorMatchingInlineSnapshot(`
284
282
  [Siwe.InvalidMessageFieldError: Invalid Sign-In with Ethereum message field "chainId".
285
283
 
286
284
  - Chain ID must be a EIP-155 chain ID.
@@ -478,7 +476,7 @@ Issued At: 2023-02-01T00:00:00.000Z`
478
476
  expect(parsed).toMatchInlineSnapshot(`
479
477
  {
480
478
  "address": "0xA0Cf798816D4b9b9866b5330EEa46a18382f251e",
481
- "chainId": 1n,
479
+ "chainId": 1,
482
480
  "domain": "example.com",
483
481
  "issuedAt": 2023-02-01T00:00:00.000Z,
484
482
  "nonce": "foobarbaz",
@@ -626,7 +624,7 @@ Request ID: 123e4567-e89b-12d3-a456-426614174000`
626
624
  const parsed = Siwe.parseMessage(message)
627
625
  expect(parsed).toMatchInlineSnapshot(`
628
626
  {
629
- "chainId": 1n,
627
+ "chainId": 1,
630
628
  "issuedAt": 2023-02-01T00:00:00.000Z,
631
629
  "nonce": "foobarbaz",
632
630
  "requestId": "123e4567-e89b-12d3-a456-426614174000",
@@ -646,7 +644,7 @@ Request ID: 123e4567-e89b-12d3-a456-426614174000`
646
644
  describe('validateMessage', () => {
647
645
  const message = {
648
646
  address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
649
- chainId: 1n,
647
+ chainId: 1,
650
648
  domain: 'example.com',
651
649
  nonce: 'foobarbaz',
652
650
  uri: 'https://example.com/path',
@@ -150,7 +150,8 @@ export function decodeArray(
150
150
 
151
151
  // If the length of the array is not known in advance (dynamic array),
152
152
  // this means we will need to wonder off to the pointer and decode.
153
- if (!length) {
153
+ // Note: zero-length fixed arrays (`T[0]`) are not dynamic.
154
+ if (length === null) {
154
155
  // Dealing with a dynamic type, so get the offset of the array data.
155
156
  const offset = Bytes.toNumber(cursor.readBytes(sizeOfOffset))
156
157
 
@@ -177,6 +178,12 @@ export function decodeArray(
177
178
  })
178
179
  consumed += consumed_
179
180
  value.push(data)
181
+ // Charge zero-width elements against the read limit to bound work
182
+ // on huge lengths of zero-width types (e.g. `uint256[0][]`).
183
+ if (consumed_ === 0) {
184
+ cursor.assertReadLimit()
185
+ cursor._touch()
186
+ }
180
187
  }
181
188
 
182
189
  // As we have gone wondering, restore to the original position + next slot.
@@ -206,7 +213,10 @@ export function decodeArray(
206
213
  }
207
214
 
208
215
  // As we have gone wondering, restore to the original position + next slot.
209
- cursor.setPosition(staticPosition + 32)
216
+ // Zero-length arrays of dynamic types (e.g. `string[0]`) have no tail, so
217
+ // the next slot may sit past the end of the data.
218
+ if (staticPosition + 32 < cursor.bytes.length)
219
+ cursor.setPosition(staticPosition + 32)
210
220
  return [value, 32]
211
221
  }
212
222
 
@@ -221,6 +231,12 @@ export function decodeArray(
221
231
  })
222
232
  consumed += consumed_
223
233
  value.push(data)
234
+ // Charge zero-width elements against the read limit to bound work
235
+ // on huge lengths of zero-width types (e.g. `uint256[0][4294967295]`).
236
+ if (consumed_ === 0) {
237
+ cursor.assertReadLimit()
238
+ cursor._touch()
239
+ }
224
240
  }
225
241
  return [value, consumed]
226
242
  }
@@ -391,7 +407,7 @@ export function decodeString(
391
407
  }
392
408
 
393
409
  const data = cursor.readBytes(length, 32)
394
- const value = Bytes.toString(Bytes.trimLeft(data))
410
+ const value = Bytes.toString(data)
395
411
 
396
412
  // As we have gone wondering, restore to the original position + next slot.
397
413
  cursor.setPosition(staticPosition + 32)
@@ -403,7 +419,6 @@ export declare namespace decodeString {
403
419
  type ErrorType =
404
420
  | Bytes.toNumber.ErrorType
405
421
  | Bytes.toString.ErrorType
406
- | Bytes.trimLeft.ErrorType
407
422
  | Errors.GlobalErrorType
408
423
  }
409
424
 
@@ -593,7 +608,9 @@ export function encodeArray<const parameter extends AbiParameters.Parameter>(
593
608
  type: `${parameter.type}[${length}]`,
594
609
  })
595
610
 
596
- let dynamicChild = false
611
+ // Zero-length fixed arrays of dynamic types (e.g. `string[0]`) are dynamic
612
+ // per the ABI spec, even though they have no elements to inspect.
613
+ let dynamicChild = value.length === 0 && hasDynamicChild(parameter)
597
614
  const preparedParameters: PreparedParameter[] = []
598
615
  for (let i = 0; i < value.length; i++) {
599
616
  const preparedParam = prepareParameter({
@@ -218,6 +218,26 @@ export type Eth = RpcSchema.From<
218
218
  }
219
219
  ReturnType: Fee.FeeHistoryRpc
220
220
  }
221
+ /**
222
+ * Fills the defaults (nonce, gas, gasPrice, or 1559 fields) on a given unsigned transaction, and returns the unsigned transaction along with its raw form
223
+ *
224
+ * @example
225
+ * ```
226
+ * request({ method: 'eth_fillTransaction', params: [{ from: '0x...', to: '0x...', value: '0x...' }] })
227
+ * // { raw: '0x...', tx: { ... } }
228
+ * ```
229
+ */
230
+ | {
231
+ Request: {
232
+ method: 'eth_fillTransaction'
233
+ params: [transaction: TransactionRequest.Rpc]
234
+ }
235
+ ReturnType: {
236
+ capabilities?: Record<string, unknown> | undefined
237
+ raw: Hex.Hex
238
+ tx: Transaction.Rpc
239
+ }
240
+ }
221
241
  /**
222
242
  * Returns the current price of gas expressed in wei
223
243
  *
@@ -425,6 +445,22 @@ export type Eth = RpcSchema.From<
425
445
  }
426
446
  ReturnType: AccountProof.Rpc
427
447
  }
448
+ /**
449
+ * Returns the raw, serialized transaction specified by hash
450
+ *
451
+ * @example
452
+ * ```
453
+ * request({ method: 'eth_getRawTransactionByHash', params: ['0x...'] })
454
+ * // '0x...'
455
+ * ```
456
+ */
457
+ | {
458
+ Request: {
459
+ method: 'eth_getRawTransactionByHash'
460
+ params: [hash: Hex.Hex]
461
+ }
462
+ ReturnType: Hex.Hex | null
463
+ }
428
464
  /**
429
465
  * Returns the value from a storage position at an address
430
466
  *