tempo.ts 0.10.5 → 0.11.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.
Files changed (224) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +0 -41
  3. package/dist/viem/Account.d.ts +8 -3
  4. package/dist/viem/Account.d.ts.map +1 -1
  5. package/dist/viem/Account.js +9 -2
  6. package/dist/viem/Account.js.map +1 -1
  7. package/dist/viem/Actions/amm.d.ts +1 -1
  8. package/dist/viem/Actions/amm.d.ts.map +1 -1
  9. package/dist/viem/Actions/amm.js +1 -2
  10. package/dist/viem/Actions/amm.js.map +1 -1
  11. package/dist/viem/Actions/dex.d.ts +0 -35
  12. package/dist/viem/Actions/dex.d.ts.map +1 -1
  13. package/dist/viem/Actions/dex.js +0 -43
  14. package/dist/viem/Actions/dex.js.map +1 -1
  15. package/dist/viem/Actions/fee.d.ts +1 -1
  16. package/dist/viem/Actions/fee.d.ts.map +1 -1
  17. package/dist/viem/Actions/fee.js +1 -1
  18. package/dist/viem/Actions/fee.js.map +1 -1
  19. package/dist/viem/Actions/nonce.d.ts.map +1 -1
  20. package/dist/viem/Actions/nonce.js +6 -4
  21. package/dist/viem/Actions/nonce.js.map +1 -1
  22. package/dist/viem/Actions/token.d.ts +1 -2
  23. package/dist/viem/Actions/token.d.ts.map +1 -1
  24. package/dist/viem/Actions/token.js +1 -2
  25. package/dist/viem/Actions/token.js.map +1 -1
  26. package/dist/viem/Chain.d.ts +34 -34
  27. package/dist/viem/Chain.d.ts.map +1 -1
  28. package/dist/viem/Chain.js +2 -0
  29. package/dist/viem/Chain.js.map +1 -1
  30. package/dist/viem/Formatters.d.ts.map +1 -1
  31. package/dist/viem/Formatters.js +5 -3
  32. package/dist/viem/Formatters.js.map +1 -1
  33. package/dist/viem/Transaction.d.ts +8 -5
  34. package/dist/viem/Transaction.d.ts.map +1 -1
  35. package/dist/viem/Transaction.js +13 -3
  36. package/dist/viem/Transaction.js.map +1 -1
  37. package/dist/viem/internal/types.d.ts +1 -1
  38. package/dist/viem/internal/types.d.ts.map +1 -1
  39. package/dist/wagmi/Actions/dex.d.ts +1 -45
  40. package/dist/wagmi/Actions/dex.d.ts.map +1 -1
  41. package/dist/wagmi/Actions/dex.js +0 -55
  42. package/dist/wagmi/Actions/dex.js.map +1 -1
  43. package/dist/wagmi/Connector.d.ts +1 -1
  44. package/dist/wagmi/Connector.d.ts.map +1 -1
  45. package/dist/wagmi/Connector.js +1 -2
  46. package/dist/wagmi/Connector.js.map +1 -1
  47. package/dist/wagmi/Hooks/dex.d.ts +3 -46
  48. package/dist/wagmi/Hooks/dex.d.ts.map +1 -1
  49. package/dist/wagmi/Hooks/dex.js +2 -54
  50. package/dist/wagmi/Hooks/dex.js.map +1 -1
  51. package/dist/wagmi/index.d.ts +1 -1
  52. package/dist/wagmi/index.d.ts.map +1 -1
  53. package/dist/wagmi/index.js +1 -1
  54. package/dist/wagmi/index.js.map +1 -1
  55. package/package.json +5 -23
  56. package/src/viem/Account.test.ts +1 -1
  57. package/src/viem/Account.ts +11 -2
  58. package/src/viem/Actions/account.ts +1 -1
  59. package/src/viem/Actions/amm.ts +1 -2
  60. package/src/viem/Actions/dex.test.ts +1 -195
  61. package/src/viem/Actions/dex.ts +0 -53
  62. package/src/viem/Actions/fee.test.ts +2 -2
  63. package/src/viem/Actions/fee.ts +1 -1
  64. package/src/viem/Actions/nonce.test.ts +27 -14
  65. package/src/viem/Actions/nonce.ts +6 -4
  66. package/src/viem/Actions/token.test.ts +18 -52
  67. package/src/viem/Actions/token.ts +1 -2
  68. package/src/viem/Chain.ts +3 -1
  69. package/src/viem/Decorator.ts +0 -30
  70. package/src/viem/Formatters.ts +9 -3
  71. package/src/viem/Transaction.ts +23 -7
  72. package/src/viem/e2e.test.ts +19 -0
  73. package/src/viem/index.ts +12 -1
  74. package/src/viem/internal/types.ts +1 -1
  75. package/src/wagmi/Actions/dex.test.ts +0 -26
  76. package/src/wagmi/Actions/dex.ts +1 -111
  77. package/src/wagmi/Actions/nonce.test.ts +8 -4
  78. package/src/wagmi/Actions/token.test.ts +2 -2
  79. package/src/wagmi/Connector.ts +1 -2
  80. package/src/wagmi/Hooks/dex.test.ts +0 -26
  81. package/src/wagmi/Hooks/dex.ts +1 -88
  82. package/src/wagmi/Hooks/nonce.test.ts +3 -3
  83. package/src/wagmi/index.ts +4 -1
  84. package/dist/chains.d.ts +0 -73
  85. package/dist/chains.d.ts.map +0 -1
  86. package/dist/chains.js +0 -51
  87. package/dist/chains.js.map +0 -1
  88. package/dist/ox/AuthorizationTempo.d.ts +0 -450
  89. package/dist/ox/AuthorizationTempo.d.ts.map +0 -1
  90. package/dist/ox/AuthorizationTempo.js +0 -433
  91. package/dist/ox/AuthorizationTempo.js.map +0 -1
  92. package/dist/ox/KeyAuthorization.d.ts +0 -356
  93. package/dist/ox/KeyAuthorization.d.ts.map +0 -1
  94. package/dist/ox/KeyAuthorization.js +0 -359
  95. package/dist/ox/KeyAuthorization.js.map +0 -1
  96. package/dist/ox/Order.d.ts +0 -92
  97. package/dist/ox/Order.d.ts.map +0 -1
  98. package/dist/ox/Order.js +0 -88
  99. package/dist/ox/Order.js.map +0 -1
  100. package/dist/ox/OrdersFilters.d.ts +0 -72
  101. package/dist/ox/OrdersFilters.d.ts.map +0 -1
  102. package/dist/ox/OrdersFilters.js +0 -100
  103. package/dist/ox/OrdersFilters.js.map +0 -1
  104. package/dist/ox/Pagination.d.ts +0 -128
  105. package/dist/ox/Pagination.d.ts.map +0 -1
  106. package/dist/ox/Pagination.js +0 -78
  107. package/dist/ox/Pagination.js.map +0 -1
  108. package/dist/ox/PoolId.d.ts +0 -18
  109. package/dist/ox/PoolId.d.ts.map +0 -1
  110. package/dist/ox/PoolId.js +0 -13
  111. package/dist/ox/PoolId.js.map +0 -1
  112. package/dist/ox/RpcSchema.d.ts +0 -32
  113. package/dist/ox/RpcSchema.d.ts.map +0 -1
  114. package/dist/ox/RpcSchema.js +0 -2
  115. package/dist/ox/RpcSchema.js.map +0 -1
  116. package/dist/ox/SignatureEnvelope.d.ts +0 -260
  117. package/dist/ox/SignatureEnvelope.d.ts.map +0 -1
  118. package/dist/ox/SignatureEnvelope.js +0 -477
  119. package/dist/ox/SignatureEnvelope.js.map +0 -1
  120. package/dist/ox/Tick.d.ts +0 -115
  121. package/dist/ox/Tick.d.ts.map +0 -1
  122. package/dist/ox/Tick.js +0 -127
  123. package/dist/ox/Tick.js.map +0 -1
  124. package/dist/ox/TokenId.d.ts +0 -25
  125. package/dist/ox/TokenId.d.ts.map +0 -1
  126. package/dist/ox/TokenId.js +0 -41
  127. package/dist/ox/TokenId.js.map +0 -1
  128. package/dist/ox/TokenRole.d.ts +0 -11
  129. package/dist/ox/TokenRole.d.ts.map +0 -1
  130. package/dist/ox/TokenRole.js +0 -22
  131. package/dist/ox/TokenRole.js.map +0 -1
  132. package/dist/ox/Transaction.d.ts +0 -201
  133. package/dist/ox/Transaction.d.ts.map +0 -1
  134. package/dist/ox/Transaction.js +0 -167
  135. package/dist/ox/Transaction.js.map +0 -1
  136. package/dist/ox/TransactionEnvelopeTempo.d.ts +0 -470
  137. package/dist/ox/TransactionEnvelopeTempo.d.ts.map +0 -1
  138. package/dist/ox/TransactionEnvelopeTempo.js +0 -547
  139. package/dist/ox/TransactionEnvelopeTempo.js.map +0 -1
  140. package/dist/ox/TransactionReceipt.d.ts +0 -155
  141. package/dist/ox/TransactionReceipt.d.ts.map +0 -1
  142. package/dist/ox/TransactionReceipt.js +0 -136
  143. package/dist/ox/TransactionReceipt.js.map +0 -1
  144. package/dist/ox/TransactionRequest.d.ts +0 -76
  145. package/dist/ox/TransactionRequest.d.ts.map +0 -1
  146. package/dist/ox/TransactionRequest.js +0 -93
  147. package/dist/ox/TransactionRequest.js.map +0 -1
  148. package/dist/ox/index.d.ts +0 -14
  149. package/dist/ox/index.d.ts.map +0 -1
  150. package/dist/ox/index.js +0 -14
  151. package/dist/ox/index.js.map +0 -1
  152. package/dist/prool/Instance.d.ts +0 -101
  153. package/dist/prool/Instance.d.ts.map +0 -1
  154. package/dist/prool/Instance.js +0 -136
  155. package/dist/prool/Instance.js.map +0 -1
  156. package/dist/prool/chain.json +0 -238
  157. package/dist/prool/index.d.ts +0 -2
  158. package/dist/prool/index.d.ts.map +0 -1
  159. package/dist/prool/index.js +0 -2
  160. package/dist/prool/index.js.map +0 -1
  161. package/dist/viem/Actions/account.d.ts +0 -40
  162. package/dist/viem/Actions/account.d.ts.map +0 -1
  163. package/dist/viem/Actions/account.js +0 -86
  164. package/dist/viem/Actions/account.js.map +0 -1
  165. package/dist/viem/Actions/index.d.ts +0 -10
  166. package/dist/viem/Actions/index.d.ts.map +0 -1
  167. package/dist/viem/Actions/index.js +0 -10
  168. package/dist/viem/Actions/index.js.map +0 -1
  169. package/dist/viem/Decorator.d.ts +0 -2810
  170. package/dist/viem/Decorator.d.ts.map +0 -1
  171. package/dist/viem/Decorator.js +0 -138
  172. package/dist/viem/Decorator.js.map +0 -1
  173. package/dist/viem/P256.d.ts +0 -2
  174. package/dist/viem/P256.d.ts.map +0 -1
  175. package/dist/viem/P256.js +0 -2
  176. package/dist/viem/P256.js.map +0 -1
  177. package/dist/viem/Secp256k1.d.ts +0 -2
  178. package/dist/viem/Secp256k1.d.ts.map +0 -1
  179. package/dist/viem/Secp256k1.js +0 -2
  180. package/dist/viem/Secp256k1.js.map +0 -1
  181. package/dist/viem/TokenIds.d.ts +0 -2
  182. package/dist/viem/TokenIds.d.ts.map +0 -1
  183. package/dist/viem/TokenIds.js +0 -2
  184. package/dist/viem/TokenIds.js.map +0 -1
  185. package/dist/viem/index.d.ts +0 -17
  186. package/dist/viem/index.d.ts.map +0 -1
  187. package/dist/viem/index.js +0 -17
  188. package/dist/viem/index.js.map +0 -1
  189. package/src/ox/AuthorizationTempo.test.ts +0 -1256
  190. package/src/ox/AuthorizationTempo.ts +0 -648
  191. package/src/ox/KeyAuthorization.test.ts +0 -1332
  192. package/src/ox/KeyAuthorization.ts +0 -540
  193. package/src/ox/Order.test.ts +0 -78
  194. package/src/ox/Order.ts +0 -125
  195. package/src/ox/OrdersFilters.test.ts +0 -182
  196. package/src/ox/OrdersFilters.ts +0 -125
  197. package/src/ox/Pagination.test.ts +0 -162
  198. package/src/ox/Pagination.ts +0 -164
  199. package/src/ox/PoolId.test.ts +0 -33
  200. package/src/ox/PoolId.ts +0 -27
  201. package/src/ox/RpcSchema.ts +0 -35
  202. package/src/ox/SignatureEnvelope.test.ts +0 -1876
  203. package/src/ox/SignatureEnvelope.ts +0 -791
  204. package/src/ox/Tick.test.ts +0 -281
  205. package/src/ox/Tick.ts +0 -181
  206. package/src/ox/TokenId.test.ts +0 -40
  207. package/src/ox/TokenId.ts +0 -50
  208. package/src/ox/TokenRole.test.ts +0 -16
  209. package/src/ox/TokenRole.ts +0 -27
  210. package/src/ox/Transaction.test.ts +0 -523
  211. package/src/ox/Transaction.ts +0 -332
  212. package/src/ox/TransactionEnvelopeTempo.test.ts +0 -1352
  213. package/src/ox/TransactionEnvelopeTempo.ts +0 -905
  214. package/src/ox/TransactionReceipt.ts +0 -190
  215. package/src/ox/TransactionRequest.ts +0 -147
  216. package/src/ox/e2e.test.ts +0 -1393
  217. package/src/ox/index.ts +0 -13
  218. package/src/prool/Instance.test.ts +0 -43
  219. package/src/prool/Instance.ts +0 -247
  220. package/src/prool/chain.json +0 -238
  221. package/src/prool/index.ts +0 -1
  222. package/src/viem/Actions/__snapshots__/dex.test.ts.snap +0 -850
  223. package/src/wagmi/Actions/__snapshots__/dex.test.ts.snap +0 -310
  224. package/src/wagmi/Hooks/__snapshots__/dex.test.ts.snap +0 -457
@@ -1,470 +0,0 @@
1
- import * as AccessList from 'ox/AccessList';
2
- import * as Address from 'ox/Address';
3
- import * as Errors from 'ox/Errors';
4
- import * as Hash from 'ox/Hash';
5
- import * as Hex from 'ox/Hex';
6
- import * as Rlp from 'ox/Rlp';
7
- import * as Signature from 'ox/Signature';
8
- import type { OneOf } from 'viem';
9
- import type { Assign, Compute, PartialBy, UnionPartialBy } from '../internal/types.js';
10
- import * as AuthorizationTempo from './AuthorizationTempo.js';
11
- import * as KeyAuthorization from './KeyAuthorization.js';
12
- import * as SignatureEnvelope from './SignatureEnvelope.js';
13
- import * as TokenId from './TokenId.js';
14
- /**
15
- * Represents a single call within a Tempo transaction.
16
- */
17
- export type Call<bigintType = bigint> = {
18
- /** Call data. */
19
- data?: Hex.Hex | undefined;
20
- /** The target address or contract creation. */
21
- to?: Address.Address | undefined;
22
- /** Value to send (in wei). */
23
- value?: bigintType | undefined;
24
- };
25
- export type TransactionEnvelopeTempo<signed extends boolean = boolean, bigintType = bigint, numberType = number, type extends string = Type> = Compute<{
26
- /** EIP-2930 Access List. */
27
- accessList?: AccessList.AccessList | undefined;
28
- /** EIP-7702 (Tempo) Authorization list for the transaction. */
29
- authorizationList?: AuthorizationTempo.ListSigned<bigintType, numberType> | undefined;
30
- /** Array of calls to execute. */
31
- calls: readonly Call<bigintType>[];
32
- /** EIP-155 Chain ID. */
33
- chainId: numberType;
34
- /** Sender of the transaction. */
35
- from?: Address.Address | undefined;
36
- /** Gas provided for transaction execution */
37
- gas?: bigintType | undefined;
38
- /** Fee payer signature. */
39
- feePayerSignature?: Signature.Signature<true, bigintType, numberType> | null | undefined;
40
- /** Fee token preference. Address or ID of the TIP-20 token. */
41
- feeToken?: TokenId.TokenIdOrAddress | undefined;
42
- /**
43
- * Key authorization for provisioning a new access key.
44
- *
45
- * When present, this transaction will add the specified key to the AccountKeychain precompile,
46
- * before verifying the transaction signature.
47
- * The authorization must be signed with the root key, the tx can be signed by the Keychain signature.
48
- */
49
- keyAuthorization?: KeyAuthorization.Signed<bigintType, numberType> | undefined;
50
- /** Total fee per gas in wei (gasPrice/baseFeePerGas + maxPriorityFeePerGas). */
51
- maxFeePerGas?: bigintType | undefined;
52
- /** Max priority fee per gas (in wei). */
53
- maxPriorityFeePerGas?: bigintType | undefined;
54
- /** Nonce key for 2D nonce system (192 bits). */
55
- nonceKey?: bigintType | undefined;
56
- /** Unique number identifying this transaction */
57
- nonce?: bigintType | undefined;
58
- /** Transaction type */
59
- type: type;
60
- /** Transaction can only be included in a block before this timestamp. */
61
- validBefore?: numberType | undefined;
62
- /** Transaction can only be included in a block after this timestamp. */
63
- validAfter?: numberType | undefined;
64
- } & (signed extends true ? {
65
- signature: SignatureEnvelope.SignatureEnvelope<bigintType, numberType>;
66
- } : {
67
- signature?: SignatureEnvelope.SignatureEnvelope<bigintType, numberType> | undefined;
68
- })>;
69
- export type Rpc<signed extends boolean = boolean> = TransactionEnvelopeTempo<signed, Hex.Hex, Hex.Hex, '0x76'>;
70
- export declare const feePayerMagic: "0x78";
71
- export type FeePayerMagic = typeof feePayerMagic;
72
- export type Serialized = `${SerializedType}${string}`;
73
- export type Signed = TransactionEnvelopeTempo<true>;
74
- export declare const serializedType: "0x76";
75
- export type SerializedType = typeof serializedType;
76
- export declare const type: "tempo";
77
- export type Type = typeof type;
78
- /**
79
- * Asserts a {@link ox#TransactionEnvelopeTempo.TransactionEnvelopeTempo} is valid.
80
- *
81
- * @example
82
- * ```ts twoslash
83
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
84
- *
85
- * TransactionEnvelopeTempo.assert({
86
- * calls: [{ to: '0x0000000000000000000000000000000000000000', value: 0n }],
87
- * chainId: 1,
88
- * maxFeePerGas: 1000000000n,
89
- * })
90
- * ```
91
- *
92
- * @param envelope - The transaction envelope to assert.
93
- */
94
- export declare function assert(envelope: PartialBy<TransactionEnvelopeTempo, 'type'>): void;
95
- export declare namespace assert {
96
- type ErrorType = Address.assert.ErrorType | CallsEmptyError | InvalidValidityWindowError | Errors.GlobalErrorType;
97
- }
98
- /**
99
- * Deserializes a {@link ox#TransactionEnvelopeTempo.TransactionEnvelopeTempo} from its serialized form.
100
- *
101
- * @example
102
- * ```ts twoslash
103
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
104
- *
105
- * const envelope = TransactionEnvelopeTempo.deserialize('0x76f84a0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0808080')
106
- * // @log: {
107
- * // @log: type: 'tempo',
108
- * // @log: nonce: 785n,
109
- * // @log: maxFeePerGas: 2000000000n,
110
- * // @log: gas: 1000000n,
111
- * // @log: calls: [{ to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', value: 1000000000000000000n }],
112
- * // @log: }
113
- * ```
114
- *
115
- * @param serialized - The serialized transaction.
116
- * @returns Deserialized Transaction Envelope.
117
- */
118
- export declare function deserialize(serialized: Serialized): Compute<TransactionEnvelopeTempo>;
119
- export declare namespace deserialize {
120
- type ErrorType = Errors.GlobalErrorType;
121
- }
122
- /**
123
- * Converts an arbitrary transaction object into a Tempo Transaction Envelope.
124
- *
125
- * @example
126
- * ```ts twoslash
127
- * import { Value } from 'ox'
128
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
129
- *
130
- * const envelope = TransactionEnvelopeTempo.from({ // [!code focus]
131
- * chainId: 1, // [!code focus]
132
- * calls: [{ to: '0x0000000000000000000000000000000000000000', value: Value.fromEther('1') }], // [!code focus]
133
- * maxFeePerGas: Value.fromGwei('10'), // [!code focus]
134
- * maxPriorityFeePerGas: Value.fromGwei('1'), // [!code focus]
135
- * }) // [!code focus]
136
- * ```
137
- *
138
- * @example
139
- * ### Attaching Signatures
140
- *
141
- * It is possible to attach a `signature` to the transaction envelope.
142
- *
143
- * ```ts twoslash
144
- * // @noErrors
145
- * import { Secp256k1, Value } from 'ox'
146
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
147
- *
148
- * const envelope = TransactionEnvelopeTempo.from({
149
- * chainId: 1,
150
- * calls: [{ to: '0x0000000000000000000000000000000000000000', value: Value.fromEther('1') }],
151
- * maxFeePerGas: Value.fromGwei('10'),
152
- * maxPriorityFeePerGas: Value.fromGwei('1'),
153
- * })
154
- *
155
- * const signature = Secp256k1.sign({
156
- * payload: TransactionEnvelopeTempo.getSignPayload(envelope),
157
- * privateKey: '0x...',
158
- * })
159
- *
160
- * const envelope_signed = TransactionEnvelopeTempo.from(envelope, { // [!code focus]
161
- * signature, // [!code focus]
162
- * }) // [!code focus]
163
- * // @log: {
164
- * // @log: chainId: 1,
165
- * // @log: calls: [{ to: '0x0000000000000000000000000000000000000000', value: 1000000000000000000n }],
166
- * // @log: maxFeePerGas: 10000000000n,
167
- * // @log: maxPriorityFeePerGas: 1000000000n,
168
- * // @log: type: 'tempo',
169
- * // @log: r: 125...n,
170
- * // @log: s: 642...n,
171
- * // @log: yParity: 0,
172
- * // @log: }
173
- * ```
174
- *
175
- * @example
176
- * ### From Serialized
177
- *
178
- * It is possible to instantiate a Tempo Transaction Envelope from a {@link ox#TransactionEnvelopeTempo.Serialized} value.
179
- *
180
- * ```ts twoslash
181
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
182
- *
183
- * const envelope = TransactionEnvelopeTempo.from('0x76f84a0182031184773594008477359400809470997970c51812dc3a010c7d01b50e0d17dc79c8880de0b6b3a764000080c0808080')
184
- * // @log: {
185
- * // @log: chainId: 1,
186
- * // @log: calls: [{ to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', value: 1000000000000000000n }],
187
- * // @log: maxFeePerGas: 10000000000n,
188
- * // @log: type: 'tempo',
189
- * // @log: }
190
- * ```
191
- *
192
- * @param envelope - The transaction object to convert.
193
- * @param options - Options.
194
- * @returns A Tempo Transaction Envelope.
195
- */
196
- export declare function from<const envelope extends UnionPartialBy<TransactionEnvelopeTempo, 'type'> | Serialized, const signature extends SignatureEnvelope.SignatureEnvelope | undefined = undefined>(envelope: envelope | UnionPartialBy<TransactionEnvelopeTempo, 'type'> | Serialized, options?: from.Options<signature>): from.ReturnValue<envelope, signature>;
197
- export declare namespace from {
198
- type Options<signature extends SignatureEnvelope.SignatureEnvelope | undefined = undefined> = {
199
- feePayerSignature?: Signature.Signature | null | undefined;
200
- signature?: signature | SignatureEnvelope.SignatureEnvelope | undefined;
201
- };
202
- type ReturnValue<envelope extends UnionPartialBy<TransactionEnvelopeTempo, 'type'> | Hex.Hex = TransactionEnvelopeTempo | Hex.Hex, signature extends SignatureEnvelope.SignatureEnvelope | undefined = undefined> = Compute<envelope extends Hex.Hex ? TransactionEnvelopeTempo : Assign<envelope, (signature extends SignatureEnvelope.SignatureEnvelope ? {
203
- signature: SignatureEnvelope.from.ReturnValue<signature>;
204
- } : {}) & {
205
- readonly type: 'tempo';
206
- }>>;
207
- type ErrorType = deserialize.ErrorType | assert.ErrorType | Errors.GlobalErrorType;
208
- }
209
- /**
210
- * Serializes a {@link ox#TransactionEnvelopeTempo.TransactionEnvelopeTempo}.
211
- *
212
- * @example
213
- * ```ts twoslash
214
- * // @noErrors
215
- * import { Value } from 'ox'
216
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
217
- *
218
- * const envelope = TransactionEnvelopeTempo.from({
219
- * chainId: 1,
220
- * calls: [{ to: '0x0000000000000000000000000000000000000000', value: Value.fromEther('1') }],
221
- * maxFeePerGas: Value.fromGwei('10'),
222
- * })
223
- *
224
- * const serialized = TransactionEnvelopeTempo.serialize(envelope) // [!code focus]
225
- * ```
226
- *
227
- * @example
228
- * ### Attaching Signatures
229
- *
230
- * It is possible to attach a `signature` to the serialized Transaction Envelope.
231
- *
232
- * ```ts twoslash
233
- * // @noErrors
234
- * import { Secp256k1, Value } from 'ox'
235
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
236
- *
237
- * const envelope = TransactionEnvelopeTempo.from({
238
- * chainId: 1,
239
- * calls: [{ to: '0x0000000000000000000000000000000000000000', value: Value.fromEther('1') }],
240
- * maxFeePerGas: Value.fromGwei('10'),
241
- * })
242
- *
243
- * const signature = Secp256k1.sign({
244
- * payload: TransactionEnvelopeTempo.getSignPayload(envelope),
245
- * privateKey: '0x...',
246
- * })
247
- *
248
- * const serialized = TransactionEnvelopeTempo.serialize(envelope, { // [!code focus]
249
- * signature, // [!code focus]
250
- * }) // [!code focus]
251
- *
252
- * // ... send `serialized` transaction to JSON-RPC `eth_sendRawTransaction`
253
- * ```
254
- *
255
- * @param envelope - The Transaction Envelope to serialize.
256
- * @param options - Options.
257
- * @returns The serialized Transaction Envelope.
258
- */
259
- export declare function serialize(envelope: PartialBy<TransactionEnvelopeTempo, 'type'>, options?: serialize.Options): Serialized;
260
- export declare namespace serialize {
261
- type Options = {
262
- /**
263
- * Sender signature to append to the serialized envelope.
264
- */
265
- signature?: SignatureEnvelope.SignatureEnvelope | undefined;
266
- } & OneOf<{
267
- /**
268
- * Sender address to cover the fee of.
269
- */
270
- sender: Address.Address;
271
- /**
272
- * Whether to serialize the transaction in the fee payer format.
273
- *
274
- * - If `'feePayer'`, then the transaction will be serialized in the fee payer format.
275
- * - If `undefined` (default), then the transaction will be serialized in the normal format.
276
- */
277
- format: 'feePayer';
278
- } | {
279
- /**
280
- * Fee payer signature or the sender to cover the fee of.
281
- *
282
- * - If `Signature.Signature`, then this is the fee payer signature.
283
- * - If `null`, then this indicates the envelope is intended to be signed by a fee payer.
284
- */
285
- feePayerSignature?: Signature.Signature | null | undefined;
286
- format?: undefined;
287
- }>;
288
- type ErrorType = assert.ErrorType | Hex.fromNumber.ErrorType | Signature.toTuple.ErrorType | Hex.concat.ErrorType | Rlp.fromHex.ErrorType | Errors.GlobalErrorType;
289
- }
290
- /**
291
- * Returns the payload to sign for a {@link ox#TransactionEnvelopeTempo.TransactionEnvelopeTempo}.
292
- *
293
- * @example
294
- * The example below demonstrates how to compute the sign payload which can be used
295
- * with ECDSA signing utilities like {@link ox#Secp256k1.(sign:function)}.
296
- *
297
- * ```ts twoslash
298
- * // @noErrors
299
- * import { Secp256k1 } from 'ox'
300
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
301
- *
302
- * const envelope = TransactionEnvelopeTempo.from({
303
- * chainId: 1,
304
- * calls: [{ to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', value: 1000000000000000000n }],
305
- * nonce: 0n,
306
- * maxFeePerGas: 1000000000n,
307
- * gas: 21000n,
308
- * })
309
- *
310
- * const payload = TransactionEnvelopeTempo.getSignPayload(envelope) // [!code focus]
311
- * // @log: '0x...'
312
- *
313
- * const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
314
- * ```
315
- *
316
- * @param envelope - The transaction envelope to get the sign payload for.
317
- * @returns The sign payload.
318
- */
319
- export declare function getSignPayload(envelope: TransactionEnvelopeTempo): getSignPayload.ReturnValue;
320
- export declare namespace getSignPayload {
321
- type ReturnValue = Hex.Hex;
322
- type ErrorType = hash.ErrorType | Errors.GlobalErrorType;
323
- }
324
- /**
325
- * Hashes a {@link ox#TransactionEnvelopeTempo.TransactionEnvelopeTempo}. This is the "transaction hash".
326
- *
327
- * @example
328
- * ```ts twoslash
329
- * // @noErrors
330
- * import { Secp256k1 } from 'ox'
331
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
332
- *
333
- * const envelope = TransactionEnvelopeTempo.from({
334
- * chainId: 1,
335
- * calls: [{ to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', value: 1000000000000000000n }],
336
- * nonce: 0n,
337
- * maxFeePerGas: 1000000000n,
338
- * gas: 21000n,
339
- * })
340
- *
341
- * const signature = Secp256k1.sign({
342
- * payload: TransactionEnvelopeTempo.getSignPayload(envelope),
343
- * privateKey: '0x...'
344
- * })
345
- *
346
- * const envelope_signed = TransactionEnvelopeTempo.from(envelope, { signature })
347
- *
348
- * const hash = TransactionEnvelopeTempo.hash(envelope_signed) // [!code focus]
349
- * ```
350
- *
351
- * @param envelope - The Tempo Transaction Envelope to hash.
352
- * @param options - Options.
353
- * @returns The hash of the transaction envelope.
354
- */
355
- export declare function hash<presign extends boolean = false>(envelope: TransactionEnvelopeTempo<presign extends true ? false : true>, options?: hash.Options<presign>): hash.ReturnValue;
356
- export declare namespace hash {
357
- type Options<presign extends boolean = false> = {
358
- /**
359
- * Whether to hash this transaction for signing.
360
- *
361
- * @default false
362
- */
363
- presign?: presign | boolean | undefined;
364
- };
365
- type ReturnValue = Hex.Hex;
366
- type ErrorType = Hash.keccak256.ErrorType | serialize.ErrorType | Errors.GlobalErrorType;
367
- }
368
- /**
369
- * Returns the fee payer payload to sign for a {@link ox#TransactionEnvelopeTempo.TransactionEnvelopeTempo}.
370
- *
371
- * @example
372
- * ```ts twoslash
373
- * // @noErrors
374
- * import { Secp256k1 } from 'ox'
375
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
376
- *
377
- * const envelope = TransactionEnvelopeTempo.from({
378
- * chainId: 1,
379
- * calls: [{ to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', value: 1000000000000000000n }],
380
- * nonce: 0n,
381
- * maxFeePerGas: 1000000000n,
382
- * gas: 21000n,
383
- * })
384
- *
385
- * const payload = TransactionEnvelopeTempo.getFeePayerSignPayload(envelope, {
386
- * sender: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045'
387
- * }) // [!code focus]
388
- * // @log: '0x...'
389
- *
390
- * const signature = Secp256k1.sign({ payload, privateKey: '0x...' })
391
- * ```
392
- *
393
- * @param envelope - The transaction envelope to get the fee payer sign payload for.
394
- * @param options - Options.
395
- * @returns The fee payer sign payload.
396
- */
397
- export declare function getFeePayerSignPayload(envelope: TransactionEnvelopeTempo, options: getFeePayerSignPayload.Options): getFeePayerSignPayload.ReturnValue;
398
- export declare namespace getFeePayerSignPayload {
399
- type Options = {
400
- /**
401
- * Sender address to cover the fee of.
402
- */
403
- sender: Address.Address;
404
- };
405
- type ReturnValue = Hex.Hex;
406
- type ErrorType = hash.ErrorType | Errors.GlobalErrorType;
407
- }
408
- /**
409
- * Validates a {@link ox#TransactionEnvelopeTempo.TransactionEnvelopeTempo}. Returns `true` if the envelope is valid, `false` otherwise.
410
- *
411
- * @example
412
- * ```ts twoslash
413
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
414
- *
415
- * const valid = TransactionEnvelopeTempo.validate({
416
- * calls: [{ to: '0x0000000000000000000000000000000000000000', value: 0n }],
417
- * chainId: 1,
418
- * maxFeePerGas: 1000000000n,
419
- * })
420
- * // @log: true
421
- * ```
422
- *
423
- * @param envelope - The transaction envelope to validate.
424
- */
425
- export declare function validate(envelope: PartialBy<TransactionEnvelopeTempo, 'type'>): boolean;
426
- export declare namespace validate {
427
- type ErrorType = Errors.GlobalErrorType;
428
- }
429
- /**
430
- * Thrown when a transaction's calls list is empty.
431
- *
432
- * @example
433
- * ```ts twoslash
434
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
435
- *
436
- * TransactionEnvelopeTempo.assert({
437
- * calls: [],
438
- * chainId: 1,
439
- * })
440
- * // @error: TransactionEnvelopeTempo.CallsEmptyError: Calls list cannot be empty.
441
- * ```
442
- */
443
- export declare class CallsEmptyError extends Errors.BaseError {
444
- readonly name = "TransactionEnvelopeTempo.CallsEmptyError";
445
- constructor();
446
- }
447
- /**
448
- * Thrown when validBefore is not greater than validAfter.
449
- *
450
- * @example
451
- * ```ts twoslash
452
- * import { TransactionEnvelopeTempo } from 'ox/tempo'
453
- *
454
- * TransactionEnvelopeTempo.assert({
455
- * calls: [{ to: '0x0000000000000000000000000000000000000000' }],
456
- * chainId: 1,
457
- * validBefore: 100n,
458
- * validAfter: 200n,
459
- * })
460
- * // @error: TransactionEnvelopeTempo.InvalidValidityWindowError: validBefore (100) must be greater than validAfter (200).
461
- * ```
462
- */
463
- export declare class InvalidValidityWindowError extends Errors.BaseError {
464
- readonly name = "TransactionEnvelopeTempo.InvalidValidityWindowError";
465
- constructor({ validBefore, validAfter, }: {
466
- validBefore: number;
467
- validAfter: number;
468
- });
469
- }
470
- //# sourceMappingURL=TransactionEnvelopeTempo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransactionEnvelopeTempo.d.ts","sourceRoot":"","sources":["../../src/ox/TransactionEnvelopeTempo.ts"],"names":[],"mappings":"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"}