tempo.ts 0.1.1 → 0.1.2

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 (133) hide show
  1. package/package.json +17 -18
  2. package/src/ox/TokenId.test.ts +11 -0
  3. package/src/ox/TokenId.ts +15 -0
  4. package/src/prool/Instance.ts +2 -2
  5. package/src/viem/Abis.ts +2 -1
  6. package/src/viem/Actions/dex.test.ts +15 -15
  7. package/src/viem/Actions/token.test.ts +22 -4
  8. package/src/viem/Actions/token.ts +1 -1
  9. package/src/viem/e2e.test.ts +11 -10
  10. package/dist/chains.d.ts +0 -1180
  11. package/dist/chains.d.ts.map +0 -1
  12. package/dist/chains.js +0 -30
  13. package/dist/chains.js.map +0 -1
  14. package/dist/index.d.ts +0 -2
  15. package/dist/index.d.ts.map +0 -1
  16. package/dist/index.js +0 -2
  17. package/dist/index.js.map +0 -1
  18. package/dist/internal/types.d.ts +0 -284
  19. package/dist/internal/types.d.ts.map +0 -1
  20. package/dist/internal/types.js +0 -2
  21. package/dist/internal/types.js.map +0 -1
  22. package/dist/ox/SignatureEnvelope.d.ts +0 -245
  23. package/dist/ox/SignatureEnvelope.d.ts.map +0 -1
  24. package/dist/ox/SignatureEnvelope.js +0 -437
  25. package/dist/ox/SignatureEnvelope.js.map +0 -1
  26. package/dist/ox/TokenId.d.ts +0 -18
  27. package/dist/ox/TokenId.d.ts.map +0 -1
  28. package/dist/ox/TokenId.js +0 -29
  29. package/dist/ox/TokenId.js.map +0 -1
  30. package/dist/ox/TokenRole.d.ts +0 -11
  31. package/dist/ox/TokenRole.d.ts.map +0 -1
  32. package/dist/ox/TokenRole.js +0 -22
  33. package/dist/ox/TokenRole.js.map +0 -1
  34. package/dist/ox/Transaction.d.ts +0 -198
  35. package/dist/ox/Transaction.d.ts.map +0 -1
  36. package/dist/ox/Transaction.js +0 -162
  37. package/dist/ox/Transaction.js.map +0 -1
  38. package/dist/ox/TransactionEnvelopeAA.d.ts +0 -461
  39. package/dist/ox/TransactionEnvelopeAA.d.ts.map +0 -1
  40. package/dist/ox/TransactionEnvelopeAA.js +0 -528
  41. package/dist/ox/TransactionEnvelopeAA.js.map +0 -1
  42. package/dist/ox/TransactionRequest.d.ts +0 -64
  43. package/dist/ox/TransactionRequest.d.ts.map +0 -1
  44. package/dist/ox/TransactionRequest.js +0 -75
  45. package/dist/ox/TransactionRequest.js.map +0 -1
  46. package/dist/ox/index.d.ts +0 -6
  47. package/dist/ox/index.d.ts.map +0 -1
  48. package/dist/ox/index.js +0 -6
  49. package/dist/ox/index.js.map +0 -1
  50. package/dist/prool/Instance.d.ts +0 -88
  51. package/dist/prool/Instance.d.ts.map +0 -1
  52. package/dist/prool/Instance.js +0 -96
  53. package/dist/prool/Instance.js.map +0 -1
  54. package/dist/prool/index.d.ts +0 -2
  55. package/dist/prool/index.d.ts.map +0 -1
  56. package/dist/prool/index.js +0 -2
  57. package/dist/prool/index.js.map +0 -1
  58. package/dist/viem/Abis.d.ts +0 -1881
  59. package/dist/viem/Abis.d.ts.map +0 -1
  60. package/dist/viem/Abis.js +0 -1173
  61. package/dist/viem/Abis.js.map +0 -1
  62. package/dist/viem/Actions/amm.d.ts +0 -2006
  63. package/dist/viem/Actions/amm.d.ts.map +0 -1
  64. package/dist/viem/Actions/amm.js +0 -900
  65. package/dist/viem/Actions/amm.js.map +0 -1
  66. package/dist/viem/Actions/dex.d.ts +0 -3263
  67. package/dist/viem/Actions/dex.d.ts.map +0 -1
  68. package/dist/viem/Actions/dex.js +0 -1357
  69. package/dist/viem/Actions/dex.js.map +0 -1
  70. package/dist/viem/Actions/fee.d.ts +0 -374
  71. package/dist/viem/Actions/fee.d.ts.map +0 -1
  72. package/dist/viem/Actions/fee.js +0 -235
  73. package/dist/viem/Actions/fee.js.map +0 -1
  74. package/dist/viem/Actions/index.d.ts +0 -6
  75. package/dist/viem/Actions/index.d.ts.map +0 -1
  76. package/dist/viem/Actions/index.js +0 -6
  77. package/dist/viem/Actions/index.js.map +0 -1
  78. package/dist/viem/Actions/policy.d.ts +0 -1672
  79. package/dist/viem/Actions/policy.d.ts.map +0 -1
  80. package/dist/viem/Actions/policy.js +0 -875
  81. package/dist/viem/Actions/policy.js.map +0 -1
  82. package/dist/viem/Actions/token.d.ts +0 -13714
  83. package/dist/viem/Actions/token.d.ts.map +0 -1
  84. package/dist/viem/Actions/token.js +0 -3058
  85. package/dist/viem/Actions/token.js.map +0 -1
  86. package/dist/viem/Addresses.d.ts +0 -9
  87. package/dist/viem/Addresses.d.ts.map +0 -1
  88. package/dist/viem/Addresses.js +0 -9
  89. package/dist/viem/Addresses.js.map +0 -1
  90. package/dist/viem/Chain.d.ts +0 -365
  91. package/dist/viem/Chain.d.ts.map +0 -1
  92. package/dist/viem/Chain.js +0 -22
  93. package/dist/viem/Chain.js.map +0 -1
  94. package/dist/viem/Client.d.ts +0 -27
  95. package/dist/viem/Client.d.ts.map +0 -1
  96. package/dist/viem/Client.js +0 -28
  97. package/dist/viem/Client.js.map +0 -1
  98. package/dist/viem/Decorator.d.ts +0 -2161
  99. package/dist/viem/Decorator.d.ts.map +0 -1
  100. package/dist/viem/Decorator.js +0 -122
  101. package/dist/viem/Decorator.js.map +0 -1
  102. package/dist/viem/Formatters.d.ts +0 -4
  103. package/dist/viem/Formatters.d.ts.map +0 -1
  104. package/dist/viem/Formatters.js +0 -76
  105. package/dist/viem/Formatters.js.map +0 -1
  106. package/dist/viem/Tick.d.ts +0 -111
  107. package/dist/viem/Tick.d.ts.map +0 -1
  108. package/dist/viem/Tick.js +0 -127
  109. package/dist/viem/Tick.js.map +0 -1
  110. package/dist/viem/TokenIds.d.ts +0 -3
  111. package/dist/viem/TokenIds.d.ts.map +0 -1
  112. package/dist/viem/TokenIds.js +0 -3
  113. package/dist/viem/TokenIds.js.map +0 -1
  114. package/dist/viem/Transaction.d.ts +0 -57
  115. package/dist/viem/Transaction.d.ts.map +0 -1
  116. package/dist/viem/Transaction.js +0 -137
  117. package/dist/viem/Transaction.js.map +0 -1
  118. package/dist/viem/Transport.d.ts +0 -16
  119. package/dist/viem/Transport.d.ts.map +0 -1
  120. package/dist/viem/Transport.js +0 -33
  121. package/dist/viem/Transport.js.map +0 -1
  122. package/dist/viem/index.d.ts +0 -14
  123. package/dist/viem/index.d.ts.map +0 -1
  124. package/dist/viem/index.js +0 -14
  125. package/dist/viem/index.js.map +0 -1
  126. package/dist/viem/internal/types.d.ts +0 -10
  127. package/dist/viem/internal/types.d.ts.map +0 -1
  128. package/dist/viem/internal/types.js +0 -2
  129. package/dist/viem/internal/types.js.map +0 -1
  130. package/dist/viem/internal/utils.d.ts +0 -8
  131. package/dist/viem/internal/utils.d.ts.map +0 -1
  132. package/dist/viem/internal/utils.js +0 -9
  133. package/dist/viem/internal/utils.js.map +0 -1
@@ -1,198 +0,0 @@
1
- import type * as AccessList from 'ox/AccessList';
2
- import type * as Address from 'ox/Address';
3
- import type * as Authorization from 'ox/Authorization';
4
- import type * as Errors from 'ox/Errors';
5
- import * as Hex from 'ox/Hex';
6
- import * as ox_Transaction from 'ox/Transaction';
7
- import type { Compute, OneOf, UnionCompute } from '../internal/types.js';
8
- import * as SignatureEnvelope from './SignatureEnvelope.js';
9
- import type { Call } from './TransactionEnvelopeAA.js';
10
- /**
11
- * A Transaction as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml).
12
- */
13
- export type Transaction<pending extends boolean = false, bigintType = bigint, numberType = number> = UnionCompute<OneOf<AA<pending, bigintType, numberType> | ox_Transaction.Transaction<pending, bigintType, numberType>>>;
14
- /**
15
- * An RPC Transaction as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml).
16
- */
17
- export type Rpc<pending extends boolean = false> = UnionCompute<OneOf<AARpc<pending> | ox_Transaction.Rpc<pending>>>;
18
- /**
19
- * Native account abstraction transaction.
20
- */
21
- export type AA<pending extends boolean = false, bigintType = bigint, numberType = number, type extends string = 'aa'> = Compute<Omit<ox_Transaction.Base<type, pending, bigintType, numberType>, 'input' | 'to' | 'value' | 'v' | 'r' | 's' | 'yParity'> & {
22
- /** EIP-2930 Access List. */
23
- accessList: AccessList.AccessList;
24
- /** EIP-7702 Authorization list for the transaction. */
25
- authorizationList?: Authorization.ListSigned<bigintType, numberType> | undefined;
26
- /** Array of calls to execute. */
27
- calls: readonly Call<bigintType>[];
28
- /** Fee payer address. */
29
- feePayer?: Address.Address | undefined;
30
- /** Fee payer signature. */
31
- feePayerSignature?: {
32
- /** ECDSA signature r. */
33
- r: bigintType;
34
- /** ECDSA signature s. */
35
- s: bigintType;
36
- /** ECDSA signature yParity. */
37
- yParity: numberType;
38
- /** @deprecated ECDSA signature v (for backwards compatibility). */
39
- v?: numberType | undefined;
40
- } | undefined;
41
- /** Fee token preference. */
42
- feeToken: Address.Address;
43
- /** Effective gas price paid by the sender in wei. */
44
- gasPrice?: bigintType | undefined;
45
- /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). */
46
- maxFeePerGas: bigintType;
47
- /** Max priority fee per gas (in wei). */
48
- maxPriorityFeePerGas: bigintType;
49
- /** Nonce key for 2D nonce system (192 bits). */
50
- nonceKey?: bigintType | undefined;
51
- /** Sender signature. */
52
- signature: SignatureEnvelope.SignatureEnvelope<bigintType, numberType>;
53
- /** Transaction can only be included in a block before this timestamp. */
54
- validBefore?: numberType | undefined;
55
- /** Transaction can only be included in a block after this timestamp. */
56
- validAfter?: numberType | undefined;
57
- }>;
58
- /**
59
- * Native account abstraction transaction in RPC format.
60
- */
61
- export type AARpc<pending extends boolean = false> = Compute<Omit<AA<pending, Hex.Hex, Hex.Hex, ToRpcType['aa']>, 'calls' | 'signature'> & {
62
- calls: readonly {
63
- input?: Hex.Hex | undefined;
64
- to?: Hex.Hex | undefined;
65
- value?: Hex.Hex | undefined;
66
- }[] | undefined;
67
- signature: SignatureEnvelope.SignatureEnvelopeRpc;
68
- }>;
69
- /** Type to RPC Type mapping. */
70
- export declare const toRpcType: {
71
- readonly aa: "0x76";
72
- readonly legacy: "0x0";
73
- readonly eip2930: "0x1";
74
- readonly eip1559: "0x2";
75
- readonly eip4844: "0x3";
76
- readonly eip7702: "0x4";
77
- };
78
- /** Type to RPC Type mapping. */
79
- export type ToRpcType = typeof toRpcType & {
80
- [type: string]: `0x${string}`;
81
- };
82
- /** RPC Type to Type mapping. */
83
- export declare const fromRpcType: {
84
- readonly '0x76': "aa";
85
- readonly '0x0': "legacy";
86
- readonly '0x1': "eip2930";
87
- readonly '0x2': "eip1559";
88
- readonly '0x3': "eip4844";
89
- readonly '0x4': "eip7702";
90
- };
91
- /** RPC Type to Type mapping. */
92
- export type FromRpcType = typeof fromRpcType & {
93
- [type: `0x${string}`]: string;
94
- };
95
- /**
96
- * Converts an {@link ox#Transaction.Rpc} to an {@link ox#Transaction.Transaction}.
97
- *
98
- * @example
99
- * ```ts twoslash
100
- * import { Transaction } from 'ox/tempo'
101
- *
102
- * const transaction = Transaction.fromRpc({
103
- * hash: '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0',
104
- * nonce: '0x357',
105
- * blockHash:
106
- * '0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b',
107
- * blockNumber: '0x12f296f',
108
- * calls: [
109
- * {
110
- * input: '0xdeadbeef',
111
- * to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
112
- * value: '0x9b6e64a8ec60000',
113
- * },
114
- * ],
115
- * feeToken: '0x20c0000000000000000000000000000000000000',
116
- * transactionIndex: '0x2',
117
- * from: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
118
- * value: '0x9b6e64a8ec60000',
119
- * gas: '0x43f5d',
120
- * maxFeePerGas: '0x2ca6ae494',
121
- * maxPriorityFeePerGas: '0x41cc3c0',
122
- * input:
123
- * '0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000006643504700000000000000000000000000000000000000000000000000000000000000040b080604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec600000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec60000000000000000000000000000000000000000000000000000019124bb5ae978c000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b80000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b8000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c00000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000190240001b9872b',
124
- * signature: {
125
- * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',
126
- * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',
127
- * type: 'secp256k1',
128
- * yParity: '0x0',
129
- * },
130
- * chainId: '0x1',
131
- * accessList: [],
132
- * type: '0x76',
133
- * })
134
- * ```
135
- *
136
- * @param transaction - The RPC transaction to convert.
137
- * @returns An instantiated {@link ox#Transaction.Transaction}.
138
- */
139
- export declare function fromRpc<const transaction extends Rpc | null, pending extends boolean = false>(transaction: transaction | Rpc<pending> | null, _options?: fromRpc.Options<pending>): transaction extends Rpc<pending> ? Transaction<pending> : null;
140
- export declare namespace fromRpc {
141
- type Options<pending extends boolean = false> = {
142
- pending?: pending | boolean | undefined;
143
- };
144
- type ErrorType = ox_Transaction.fromRpc.ErrorType | Errors.GlobalErrorType;
145
- }
146
- /**
147
- * Converts an {@link ox#Transaction.Transaction} to an {@link ox#Transaction.Rpc}.
148
- *
149
- * @example
150
- * ```ts twoslash
151
- * import { Transaction } from 'ox/tempo'
152
- *
153
- * const transaction = Transaction.toRpc({
154
- * accessList: [],
155
- * blockHash:
156
- * '0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b',
157
- * blockNumber: 19868015n,
158
- * calls: [
159
- * {
160
- * data: '0xdeadbeef',
161
- * to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
162
- * value: 700000000000000000n,
163
- * },
164
- * ],
165
- * chainId: 1,
166
- * feeToken: '0x20c0000000000000000000000000000000000000',
167
- * from: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
168
- * gas: 278365n,
169
- * hash: '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0',
170
- * input:
171
- * '0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000006643504700000000000000000000000000000000000000000000000000000000000000040b080604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec600000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec60000000000000000000000000000000000000000000000000000019124bb5ae978c000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b80000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b8000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c00000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000190240001b9872b',
172
- * maxFeePerGas: 11985937556n,
173
- * maxPriorityFeePerGas: 68993984n,
174
- * nonce: 855n,
175
- * signature: {
176
- * signature: {
177
- * r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,
178
- * s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,
179
- * yParity: 0,
180
- * },
181
- * type: 'secp256k1',
182
- * },
183
- * transactionIndex: 2,
184
- * type: 'aa',
185
- * })
186
- * ```
187
- *
188
- * @param transaction - The transaction to convert.
189
- * @returns An RPC-formatted transaction.
190
- */
191
- export declare function toRpc<pending extends boolean = false>(transaction: Transaction<pending>, _options?: toRpc.Options<pending>): Rpc<pending>;
192
- export declare namespace toRpc {
193
- type Options<pending extends boolean = false> = {
194
- pending?: pending | boolean | undefined;
195
- };
196
- type ErrorType = ox_Transaction.toRpc.ErrorType | Errors.GlobalErrorType;
197
- }
198
- //# sourceMappingURL=Transaction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/ox/Transaction.ts"],"names":[],"mappings":"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"}
@@ -1,162 +0,0 @@
1
- import * as Hex from 'ox/Hex';
2
- import * as Secp256k1 from 'ox/Secp256k1';
3
- import * as Signature from 'ox/Signature';
4
- import * as ox_Transaction from 'ox/Transaction';
5
- import * as SignatureEnvelope from './SignatureEnvelope.js';
6
- import * as TransactionEnvelopeAA from './TransactionEnvelopeAA.js';
7
- /** Type to RPC Type mapping. */
8
- export const toRpcType = {
9
- ...ox_Transaction.toRpcType,
10
- aa: '0x76',
11
- };
12
- /** RPC Type to Type mapping. */
13
- export const fromRpcType = {
14
- ...ox_Transaction.fromRpcType,
15
- '0x76': 'aa',
16
- };
17
- /**
18
- * Converts an {@link ox#Transaction.Rpc} to an {@link ox#Transaction.Transaction}.
19
- *
20
- * @example
21
- * ```ts twoslash
22
- * import { Transaction } from 'ox/tempo'
23
- *
24
- * const transaction = Transaction.fromRpc({
25
- * hash: '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0',
26
- * nonce: '0x357',
27
- * blockHash:
28
- * '0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b',
29
- * blockNumber: '0x12f296f',
30
- * calls: [
31
- * {
32
- * input: '0xdeadbeef',
33
- * to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
34
- * value: '0x9b6e64a8ec60000',
35
- * },
36
- * ],
37
- * feeToken: '0x20c0000000000000000000000000000000000000',
38
- * transactionIndex: '0x2',
39
- * from: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
40
- * value: '0x9b6e64a8ec60000',
41
- * gas: '0x43f5d',
42
- * maxFeePerGas: '0x2ca6ae494',
43
- * maxPriorityFeePerGas: '0x41cc3c0',
44
- * input:
45
- * '0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000006643504700000000000000000000000000000000000000000000000000000000000000040b080604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec600000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec60000000000000000000000000000000000000000000000000000019124bb5ae978c000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b80000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b8000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c00000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000190240001b9872b',
46
- * signature: {
47
- * r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',
48
- * s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',
49
- * type: 'secp256k1',
50
- * yParity: '0x0',
51
- * },
52
- * chainId: '0x1',
53
- * accessList: [],
54
- * type: '0x76',
55
- * })
56
- * ```
57
- *
58
- * @param transaction - The RPC transaction to convert.
59
- * @returns An instantiated {@link ox#Transaction.Transaction}.
60
- */
61
- export function fromRpc(transaction, _options = {}) {
62
- if (!transaction)
63
- return null;
64
- const transaction_ = ox_Transaction.fromRpc(transaction);
65
- transaction_.type = fromRpcType[transaction.type];
66
- if (transaction.calls)
67
- transaction_.calls = transaction.calls.map((call) => ({
68
- to: call.to,
69
- value: call.value ? BigInt(call.value) : undefined,
70
- data: call.input,
71
- }));
72
- if (transaction.feeToken)
73
- transaction_.feeToken = transaction.feeToken;
74
- if (transaction.nonceKey)
75
- transaction_.nonceKey = BigInt(transaction.nonceKey);
76
- if (transaction.signature)
77
- transaction_.signature = SignatureEnvelope.fromRpc(transaction.signature);
78
- if (transaction.validAfter)
79
- transaction_.validAfter = Number(transaction.validAfter);
80
- if (transaction.validBefore)
81
- transaction_.validBefore = Number(transaction.validBefore);
82
- if (transaction.feePayerSignature) {
83
- transaction_.feePayerSignature = Signature.fromRpc(transaction.feePayerSignature);
84
- transaction_.feePayerSignature.v = Signature.yParityToV(transaction_.feePayerSignature.yParity);
85
- // TODO: remove once `feePayer` returned on `eth_getTxBy*`.
86
- transaction_.feePayer = Secp256k1.recoverAddress({
87
- payload: TransactionEnvelopeAA.getFeePayerSignPayload(transaction_, { sender: transaction.from }),
88
- signature: transaction_.feePayerSignature,
89
- });
90
- }
91
- return transaction_;
92
- }
93
- /**
94
- * Converts an {@link ox#Transaction.Transaction} to an {@link ox#Transaction.Rpc}.
95
- *
96
- * @example
97
- * ```ts twoslash
98
- * import { Transaction } from 'ox/tempo'
99
- *
100
- * const transaction = Transaction.toRpc({
101
- * accessList: [],
102
- * blockHash:
103
- * '0xc350d807505fb835650f0013632c5515592987ba169bbc6626d9fc54d91f0f0b',
104
- * blockNumber: 19868015n,
105
- * calls: [
106
- * {
107
- * data: '0xdeadbeef',
108
- * to: '0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad',
109
- * value: 700000000000000000n,
110
- * },
111
- * ],
112
- * chainId: 1,
113
- * feeToken: '0x20c0000000000000000000000000000000000000',
114
- * from: '0x814e5e0e31016b9a7f138c76b7e7b2bb5c1ab6a6',
115
- * gas: 278365n,
116
- * hash: '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0',
117
- * input:
118
- * '0x3593564c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000006643504700000000000000000000000000000000000000000000000000000000000000040b080604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec600000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000009b6e64a8ec60000000000000000000000000000000000000000000000000000019124bb5ae978c000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b80000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b8000000000000000000000000000000fee13a103a10d593b9ae06b3e05f2e7e1c00000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000060000000000000000000000000c56c7a0eaa804f854b536a5f3d5f49d2ec4b12b800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000190240001b9872b',
119
- * maxFeePerGas: 11985937556n,
120
- * maxPriorityFeePerGas: 68993984n,
121
- * nonce: 855n,
122
- * signature: {
123
- * signature: {
124
- * r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,
125
- * s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,
126
- * yParity: 0,
127
- * },
128
- * type: 'secp256k1',
129
- * },
130
- * transactionIndex: 2,
131
- * type: 'aa',
132
- * })
133
- * ```
134
- *
135
- * @param transaction - The transaction to convert.
136
- * @returns An RPC-formatted transaction.
137
- */
138
- export function toRpc(transaction, _options) {
139
- const rpc = ox_Transaction.toRpc(transaction);
140
- rpc.type = toRpcType[transaction.type];
141
- if (transaction.calls)
142
- rpc.calls = transaction.calls.map((call) => ({
143
- to: call.to,
144
- value: call.value ? Hex.fromNumber(call.value) : undefined,
145
- data: call.data,
146
- }));
147
- if (transaction.feeToken)
148
- rpc.feeToken = transaction.feeToken;
149
- if (transaction.feePayerSignature) {
150
- rpc.feePayerSignature = Signature.toRpc(transaction.feePayerSignature);
151
- rpc.feePayerSignature.v = Hex.fromNumber(Signature.yParityToV(transaction.feePayerSignature?.yParity));
152
- rpc.feePayer = transaction.feePayer;
153
- }
154
- if (transaction.signature)
155
- rpc.signature = SignatureEnvelope.toRpc(transaction.signature);
156
- if (typeof transaction.validAfter === 'number')
157
- rpc.validAfter = Hex.fromNumber(transaction.validAfter);
158
- if (typeof transaction.validBefore === 'number')
159
- rpc.validBefore = Hex.fromNumber(transaction.validBefore);
160
- return rpc;
161
- }
162
- //# sourceMappingURL=Transaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/ox/Transaction.ts"],"names":[],"mappings":"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"}