viem 3.0.0-next.12 → 3.0.0-next.13

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 (185) hide show
  1. package/dist/chains/definitions/creditCoin3Devnet.d.ts +6 -0
  2. package/dist/chains/definitions/creditCoin3Devnet.d.ts.map +1 -1
  3. package/dist/chains/definitions/creditCoin3Devnet.js +6 -0
  4. package/dist/chains/definitions/creditCoin3Devnet.js.map +1 -1
  5. package/dist/chains/definitions/creditCoin3Mainnet.d.ts +5 -1
  6. package/dist/chains/definitions/creditCoin3Mainnet.d.ts.map +1 -1
  7. package/dist/chains/definitions/creditCoin3Mainnet.js +4 -0
  8. package/dist/chains/definitions/creditCoin3Mainnet.js.map +1 -1
  9. package/dist/chains/definitions/creditCoin3Testnet.d.ts +5 -1
  10. package/dist/chains/definitions/creditCoin3Testnet.d.ts.map +1 -1
  11. package/dist/chains/definitions/creditCoin3Testnet.js +4 -0
  12. package/dist/chains/definitions/creditCoin3Testnet.js.map +1 -1
  13. package/dist/chains/definitions/crymad.d.ts +25 -0
  14. package/dist/chains/definitions/crymad.d.ts.map +1 -0
  15. package/dist/chains/definitions/crymad.js +23 -0
  16. package/dist/chains/definitions/crymad.js.map +1 -0
  17. package/dist/chains/definitions/crymadL2.d.ts +26 -0
  18. package/dist/chains/definitions/crymadL2.d.ts.map +1 -0
  19. package/dist/chains/definitions/crymadL2.js +24 -0
  20. package/dist/chains/definitions/crymadL2.js.map +1 -0
  21. package/dist/chains/definitions/kortana.d.ts +18 -0
  22. package/dist/chains/definitions/kortana.d.ts.map +1 -0
  23. package/dist/chains/definitions/kortana.js +16 -0
  24. package/dist/chains/definitions/kortana.js.map +1 -0
  25. package/dist/chains/index.d.ts +3 -0
  26. package/dist/chains/index.d.ts.map +1 -1
  27. package/dist/chains/index.js +3 -0
  28. package/dist/chains/index.js.map +1 -1
  29. package/dist/core/actions/wallet/sendCalls.d.ts.map +1 -1
  30. package/dist/core/actions/wallet/sendCalls.js +1 -0
  31. package/dist/core/actions/wallet/sendCalls.js.map +1 -1
  32. package/dist/erc4337/actions/userOperation/waitForReceipt.js +1 -1
  33. package/dist/erc4337/actions/userOperation/waitForReceipt.js.map +1 -1
  34. package/dist/node/transports/ipc.d.ts.map +1 -1
  35. package/dist/node/transports/ipc.js +20 -2
  36. package/dist/node/transports/ipc.js.map +1 -1
  37. package/dist/tempo/Abis.d.ts +778 -174
  38. package/dist/tempo/Abis.d.ts.map +1 -1
  39. package/dist/tempo/Abis.js +178 -37
  40. package/dist/tempo/Abis.js.map +1 -1
  41. package/dist/tempo/Capabilities.d.ts +7 -13
  42. package/dist/tempo/Capabilities.d.ts.map +1 -1
  43. package/dist/tempo/Client.d.ts +0 -5
  44. package/dist/tempo/Client.d.ts.map +1 -1
  45. package/dist/tempo/Client.js +3 -10
  46. package/dist/tempo/Client.js.map +1 -1
  47. package/dist/tempo/ExecutionError.d.ts +81 -0
  48. package/dist/tempo/ExecutionError.d.ts.map +1 -0
  49. package/dist/tempo/ExecutionError.js +309 -0
  50. package/dist/tempo/ExecutionError.js.map +1 -0
  51. package/dist/tempo/Relay.d.ts +303 -0
  52. package/dist/tempo/Relay.d.ts.map +1 -0
  53. package/dist/tempo/Relay.js +170 -0
  54. package/dist/tempo/Relay.js.map +1 -0
  55. package/dist/tempo/Selectors.d.ts +16 -5
  56. package/dist/tempo/Selectors.d.ts.map +1 -1
  57. package/dist/tempo/Selectors.js +16 -5
  58. package/dist/tempo/Selectors.js.map +1 -1
  59. package/dist/tempo/Transport.d.ts +11 -11
  60. package/dist/tempo/Transport.d.ts.map +1 -1
  61. package/dist/tempo/Transport.js +22 -51
  62. package/dist/tempo/Transport.js.map +1 -1
  63. package/dist/tempo/actions/token/burn.d.ts +38 -9
  64. package/dist/tempo/actions/token/burn.d.ts.map +1 -1
  65. package/dist/tempo/actions/token/burn.js +12 -5
  66. package/dist/tempo/actions/token/burn.js.map +1 -1
  67. package/dist/tempo/actions/token/burnSync.d.ts +2 -0
  68. package/dist/tempo/actions/token/burnSync.d.ts.map +1 -1
  69. package/dist/tempo/chainConfig.d.ts +4 -5
  70. package/dist/tempo/chainConfig.d.ts.map +1 -1
  71. package/dist/tempo/chainConfig.js +6 -1
  72. package/dist/tempo/chainConfig.js.map +1 -1
  73. package/dist/tempo/index.d.ts +5 -3
  74. package/dist/tempo/index.d.ts.map +1 -1
  75. package/dist/tempo/index.js +5 -3
  76. package/dist/tempo/index.js.map +1 -1
  77. package/dist/tempo/internal/relay/cache.d.ts +9 -0
  78. package/dist/tempo/internal/relay/cache.d.ts.map +1 -0
  79. package/dist/tempo/internal/relay/cache.js +72 -0
  80. package/dist/tempo/internal/relay/cache.js.map +1 -0
  81. package/dist/tempo/internal/relay/deadline.d.ts +4 -0
  82. package/dist/tempo/internal/relay/deadline.d.ts.map +1 -0
  83. package/dist/tempo/internal/relay/deadline.js +34 -0
  84. package/dist/tempo/internal/relay/deadline.js.map +1 -0
  85. package/dist/tempo/internal/relay/error.d.ts +47 -0
  86. package/dist/tempo/internal/relay/error.d.ts.map +1 -0
  87. package/dist/tempo/internal/relay/error.js +101 -0
  88. package/dist/tempo/internal/relay/error.js.map +1 -0
  89. package/dist/tempo/internal/relay/feePayer.d.ts +70 -0
  90. package/dist/tempo/internal/relay/feePayer.d.ts.map +1 -0
  91. package/dist/tempo/internal/relay/feePayer.js +442 -0
  92. package/dist/tempo/internal/relay/feePayer.js.map +1 -0
  93. package/dist/tempo/internal/relay/feeToken.d.ts +38 -0
  94. package/dist/tempo/internal/relay/feeToken.d.ts.map +1 -0
  95. package/dist/tempo/internal/relay/feeToken.js +143 -0
  96. package/dist/tempo/internal/relay/feeToken.js.map +1 -0
  97. package/dist/tempo/internal/relay/multisig.d.ts +4 -0
  98. package/dist/tempo/internal/relay/multisig.d.ts.map +1 -0
  99. package/dist/tempo/{Multisig.js → internal/relay/multisig.js} +134 -126
  100. package/dist/tempo/internal/relay/multisig.js.map +1 -0
  101. package/dist/tempo/internal/relay/plugin.d.ts +5 -0
  102. package/dist/tempo/internal/relay/plugin.d.ts.map +1 -0
  103. package/dist/tempo/internal/relay/plugin.js +10 -0
  104. package/dist/tempo/internal/relay/plugin.js.map +1 -0
  105. package/dist/tempo/internal/relay/preflight.d.ts +17 -0
  106. package/dist/tempo/internal/relay/preflight.d.ts.map +1 -0
  107. package/dist/tempo/internal/relay/preflight.js +53 -0
  108. package/dist/tempo/internal/relay/preflight.js.map +1 -0
  109. package/dist/tempo/internal/relay/request.d.ts +16 -0
  110. package/dist/tempo/internal/relay/request.d.ts.map +1 -0
  111. package/dist/tempo/internal/relay/request.js +327 -0
  112. package/dist/tempo/internal/relay/request.js.map +1 -0
  113. package/dist/tempo/internal/relay/simulate.d.ts +62 -0
  114. package/dist/tempo/internal/relay/simulate.d.ts.map +1 -0
  115. package/dist/tempo/internal/relay/simulate.js +284 -0
  116. package/dist/tempo/internal/relay/simulate.js.map +1 -0
  117. package/dist/tempo/internal/relay/utils.d.ts +346 -0
  118. package/dist/tempo/internal/relay/utils.d.ts.map +1 -0
  119. package/dist/tempo/internal/relay/utils.js +185 -0
  120. package/dist/tempo/internal/relay/utils.js.map +1 -0
  121. package/dist/tempo/internal/relay/virtualAddress.d.ts +9 -0
  122. package/dist/tempo/internal/relay/virtualAddress.d.ts.map +1 -0
  123. package/dist/tempo/internal/relay/virtualAddress.js +73 -0
  124. package/dist/tempo/internal/relay/virtualAddress.js.map +1 -0
  125. package/dist/tempo/internal/relay.d.ts +4 -0
  126. package/dist/tempo/internal/relay.d.ts.map +1 -0
  127. package/dist/tempo/internal/relay.js +132 -0
  128. package/dist/tempo/internal/relay.js.map +1 -0
  129. package/dist/tokens/definitions/ousd.d.ts +26 -0
  130. package/dist/tokens/definitions/ousd.d.ts.map +1 -0
  131. package/dist/tokens/definitions/ousd.js +26 -0
  132. package/dist/tokens/definitions/ousd.js.map +1 -0
  133. package/dist/tokens/index.d.ts +2 -0
  134. package/dist/tokens/index.d.ts.map +1 -1
  135. package/dist/tokens/index.js +2 -0
  136. package/dist/tokens/index.js.map +1 -1
  137. package/dist/tokens/sets.d.ts +33 -0
  138. package/dist/tokens/sets.d.ts.map +1 -1
  139. package/dist/tokens/sets.js +4 -1
  140. package/dist/tokens/sets.js.map +1 -1
  141. package/dist/version.d.ts +1 -1
  142. package/dist/version.js +1 -1
  143. package/package.json +1 -1
  144. package/src/chains/definitions/creditCoin3Devnet.ts +6 -0
  145. package/src/chains/definitions/creditCoin3Mainnet.ts +4 -0
  146. package/src/chains/definitions/creditCoin3Testnet.ts +4 -0
  147. package/src/chains/definitions/crymad.ts +23 -0
  148. package/src/chains/definitions/crymadL2.ts +24 -0
  149. package/src/chains/definitions/kortana.ts +16 -0
  150. package/src/chains/index.ts +3 -0
  151. package/src/core/actions/wallet/sendCalls.ts +1 -0
  152. package/src/erc4337/actions/userOperation/waitForReceipt.ts +1 -1
  153. package/src/node/transports/ipc.ts +17 -2
  154. package/src/tempo/Abis.ts +179 -37
  155. package/src/tempo/Account.ts +1 -1
  156. package/src/tempo/Capabilities.ts +7 -15
  157. package/src/tempo/Client.ts +3 -23
  158. package/src/tempo/ExecutionError.ts +428 -0
  159. package/src/tempo/Relay.ts +430 -0
  160. package/src/tempo/Selectors.ts +25 -11
  161. package/src/tempo/Transport.ts +71 -41
  162. package/src/tempo/actions/token/burn.ts +21 -9
  163. package/src/tempo/actions/token/burnSync.ts +2 -0
  164. package/src/tempo/chainConfig.ts +9 -6
  165. package/src/tempo/index.ts +7 -4
  166. package/src/tempo/internal/relay/cache.ts +82 -0
  167. package/src/tempo/internal/relay/deadline.ts +45 -0
  168. package/src/tempo/internal/relay/error.ts +129 -0
  169. package/src/tempo/internal/relay/feePayer.ts +693 -0
  170. package/src/tempo/internal/relay/feeToken.ts +190 -0
  171. package/src/tempo/{Multisig.ts → internal/relay/multisig.ts} +165 -193
  172. package/src/tempo/internal/relay/plugin.ts +13 -0
  173. package/src/tempo/internal/relay/preflight.ts +83 -0
  174. package/src/tempo/internal/relay/request.ts +401 -0
  175. package/src/tempo/internal/relay/simulate.ts +394 -0
  176. package/src/tempo/internal/relay/utils.ts +213 -0
  177. package/src/tempo/internal/relay/virtualAddress.ts +95 -0
  178. package/src/tempo/internal/relay.ts +149 -0
  179. package/src/tokens/definitions/ousd.ts +26 -0
  180. package/src/tokens/index.ts +2 -0
  181. package/src/tokens/sets.ts +4 -1
  182. package/src/version.ts +1 -1
  183. package/dist/tempo/Multisig.d.ts +0 -39
  184. package/dist/tempo/Multisig.d.ts.map +0 -1
  185. package/dist/tempo/Multisig.js.map +0 -1
@@ -0,0 +1,284 @@
1
+ import { AbiEvent, AbiFunction, Hex, Log as Log_ } from 'ox';
2
+ import * as TransactionRequest from 'ox/TransactionRequest';
3
+ import { format as formatUnits } from 'ox/Value';
4
+ import * as Abis from '../../Abis.js';
5
+ import * as Actions from '../../actions/index.js';
6
+ import { formatError, isExecutionError } from './error.js';
7
+ import { resolveTokenMetadata } from './feeToken.js';
8
+ import * as Utils from './utils.js';
9
+ import { extractCalls } from './virtualAddress.js';
10
+ const zeroAddress = '0x0000000000000000000000000000000000000000';
11
+ export function create(options) {
12
+ return {
13
+ async handleRequest(context, next) {
14
+ if (context.request.method !== 'eth_fillTransaction')
15
+ return next();
16
+ try {
17
+ await next();
18
+ }
19
+ catch (error) {
20
+ const parameters = context.request.params[0];
21
+ if (isExecutionError(error) &&
22
+ parameters.capabilities
23
+ ?.errors === true)
24
+ return formatError(error, parameters, context.client, context.getStore(options.store));
25
+ throw error;
26
+ }
27
+ },
28
+ async afterFill(result, context) {
29
+ const parameters = context.request.params[0];
30
+ const store = context.getStore(options.store);
31
+ const signal = context.options.signal;
32
+ const transaction = Utils.normalizeTempoTransaction(result.tx);
33
+ const feeToken = transaction.feeToken;
34
+ const simulation = parameters.capabilities
35
+ ?.balanceDiffs !== false
36
+ ? await simulateAndParseDiffs(context.client, {
37
+ account: parameters.from,
38
+ calls: extractCalls(transaction),
39
+ feeToken,
40
+ gas: transaction.gas,
41
+ maxFeePerGas: transaction.maxFeePerGas,
42
+ store,
43
+ signal,
44
+ })
45
+ : await computeFee(context.client, {
46
+ feeToken,
47
+ gas: transaction.gas,
48
+ maxFeePerGas: transaction.maxFeePerGas,
49
+ store,
50
+ signal,
51
+ }).then((fee) => ({ balanceDiffs: undefined, fee }));
52
+ return {
53
+ capabilities: {
54
+ balanceDiffs: simulation.balanceDiffs,
55
+ fee: simulation.fee,
56
+ },
57
+ };
58
+ },
59
+ };
60
+ }
61
+ export async function simulateAndParseDiffs(client, options) {
62
+ const { account, calls, feeToken, gas, store, maxFeePerGas, signal } = options;
63
+ signal?.throwIfAborted();
64
+ try {
65
+ // Including the fee token as a read target asks the node to return its metadata too.
66
+ const probe = feeToken &&
67
+ !calls.some((call) => call.to?.toLowerCase() === feeToken.toLowerCase())
68
+ ? [
69
+ Actions.token.getBalance.call(client, {
70
+ account: account ?? zeroAddress,
71
+ token: feeToken,
72
+ }),
73
+ ]
74
+ : [];
75
+ const simulation = (await client.request({
76
+ method: 'tempo_simulateV1',
77
+ params: [
78
+ {
79
+ blockStateCalls: [
80
+ {
81
+ calls: [...calls, ...probe].map((call) => TransactionRequest.toRpc({
82
+ ...call,
83
+ ...('abi' in call
84
+ ? {
85
+ to: call.address,
86
+ data: AbiFunction.encodeData(AbiFunction.fromAbi(call.abi, call.functionName), call.args),
87
+ }
88
+ : {}),
89
+ from: account === zeroAddress ? undefined : account,
90
+ })),
91
+ },
92
+ ],
93
+ traceTransfers: true,
94
+ },
95
+ 'latest',
96
+ ],
97
+ }));
98
+ const tokenMetadata = simulation.tokenMetadata ?? {};
99
+ signal?.throwIfAborted();
100
+ const logs = (simulation.blocks[0]?.calls ?? [])
101
+ .slice(0, calls.length)
102
+ .flatMap((result) => result.logs?.map((log) => Log_.fromRpc(log)) ?? []);
103
+ // Build per-token balance diffs relative to the sender.
104
+ const balanceDiffs = account
105
+ ? await buildBalanceDiffs(client, {
106
+ account,
107
+ store,
108
+ signal,
109
+ logs,
110
+ tokenMetadata: tokenMetadata,
111
+ })
112
+ : {};
113
+ // Compute fee breakdown.
114
+ const fee = await computeFee(client, {
115
+ feeToken,
116
+ gas,
117
+ store,
118
+ signal,
119
+ maxFeePerGas,
120
+ tokenMetadata: tokenMetadata,
121
+ });
122
+ return { balanceDiffs, fee, tokenMetadata };
123
+ }
124
+ catch {
125
+ signal?.throwIfAborted();
126
+ // Simulation failures should not block the fill response —
127
+ // return empty diffs with fee computed from transaction fields.
128
+ const fee = await computeFee(client, {
129
+ feeToken,
130
+ gas,
131
+ store,
132
+ maxFeePerGas,
133
+ signal,
134
+ });
135
+ return { balanceDiffs: undefined, fee, tokenMetadata: undefined };
136
+ }
137
+ }
138
+ /** Builds a complete preview within the metadata lookup budget. @internal */
139
+ export async function buildBalanceDiffs(client, options) {
140
+ const { account, store, logs, tokenMetadata, signal } = options;
141
+ signal?.throwIfAborted();
142
+ const accountLower = account.toLowerCase();
143
+ const transferLogs = AbiEvent.extractLogs([AbiEvent.fromAbi(Abis.tip20, 'Transfer')], logs, { eventName: 'Transfer' });
144
+ const approvalLogs = AbiEvent.extractLogs([AbiEvent.fromAbi(Abis.tip20, 'Approval')], logs, { eventName: 'Approval' });
145
+ // Track net movement per token: incoming vs outgoing.
146
+ const tokenMap = new Map();
147
+ for (const log of transferLogs) {
148
+ const token = log.address.toLowerCase();
149
+ const fromLower = log.args.from.toLowerCase();
150
+ const toLower = log.args.to.toLowerCase();
151
+ const entry = tokenMap.get(token) ?? {
152
+ incoming: 0n,
153
+ outgoing: 0n,
154
+ approved: 0n,
155
+ recipients: new Set(),
156
+ token: log.address,
157
+ };
158
+ if (fromLower === accountLower) {
159
+ entry.outgoing += log.args.amount;
160
+ entry.recipients.add(log.args.to);
161
+ }
162
+ if (toLower === accountLower)
163
+ entry.incoming += log.args.amount;
164
+ tokenMap.set(token, entry);
165
+ }
166
+ // Approvals replace allowances; retain the last event for each token and spender.
167
+ const approvals = new Map();
168
+ for (const log of approvalLogs) {
169
+ if (log.args.owner.toLowerCase() !== accountLower)
170
+ continue;
171
+ approvals.set(`${log.address.toLowerCase()}:${log.args.spender.toLowerCase()}`, log);
172
+ }
173
+ // Transfers do not identify allowance consumption, so retain final approval exposure.
174
+ for (const log of approvals.values()) {
175
+ if (log.args.amount === 0n)
176
+ continue;
177
+ const token = log.address.toLowerCase();
178
+ const entry = tokenMap.get(token) ?? {
179
+ incoming: 0n,
180
+ outgoing: 0n,
181
+ approved: 0n,
182
+ recipients: new Set(),
183
+ token: log.address,
184
+ };
185
+ entry.approved += log.args.amount;
186
+ entry.recipients.add(log.args.spender);
187
+ tokenMap.set(token, entry);
188
+ }
189
+ // Collect unique tokens that need decimals.
190
+ const entries = [...tokenMap.values()].filter((e) => {
191
+ const net = e.outgoing > e.incoming
192
+ ? e.outgoing - e.incoming
193
+ : e.incoming - e.outgoing;
194
+ return net > 0n || e.approved > 0n;
195
+ });
196
+ if (entries.length === 0)
197
+ return {};
198
+ // Omit an unavailable preview rather than returning a partial set of movements.
199
+ if (entries.length > 100)
200
+ return undefined;
201
+ // Bound metadata work for a single fill independently of the RPC batch limit.
202
+ const metadataMap = new Map();
203
+ let index = 0;
204
+ await Promise.all(Array.from({ length: Math.min(10, entries.length) }, async () => {
205
+ while (index < entries.length) {
206
+ const entry = entries[index++];
207
+ try {
208
+ const metadata = await resolveTokenMetadata(client, {
209
+ token: entry.token,
210
+ tokenMetadata,
211
+ store,
212
+ });
213
+ metadataMap.set(entry.token.toLowerCase(), metadata);
214
+ }
215
+ catch {
216
+ signal?.throwIfAborted();
217
+ }
218
+ }
219
+ }));
220
+ signal?.throwIfAborted();
221
+ if (metadataMap.size !== entries.length)
222
+ return undefined;
223
+ // Build the diff array for this account.
224
+ const diffs = [];
225
+ for (const entry of entries) {
226
+ const incoming = entry.incoming > entry.outgoing ? entry.incoming - entry.outgoing : 0n;
227
+ const outgoing = (entry.outgoing > entry.incoming ? entry.outgoing - entry.incoming : 0n) +
228
+ entry.approved;
229
+ const meta = metadataMap.get(entry.token.toLowerCase());
230
+ const decimals = meta.decimals;
231
+ const metadata = {
232
+ address: entry.token,
233
+ decimals,
234
+ name: meta.name,
235
+ symbol: meta.symbol,
236
+ };
237
+ if (incoming > 0n)
238
+ diffs.push({
239
+ ...metadata,
240
+ direction: 'incoming',
241
+ formatted: formatUnits(incoming, decimals),
242
+ recipients: [],
243
+ value: Hex.fromNumber(incoming),
244
+ });
245
+ if (outgoing > 0n)
246
+ diffs.push({
247
+ ...metadata,
248
+ direction: 'outgoing',
249
+ formatted: formatUnits(outgoing, decimals),
250
+ recipients: [...entry.recipients],
251
+ value: Hex.fromNumber(outgoing),
252
+ });
253
+ }
254
+ return { [account]: diffs };
255
+ }
256
+ // biome-ignore lint/correctness/noUnusedVariables: declaration merge
257
+ async function computeFee(client, options) {
258
+ const { feeToken, gas, store, maxFeePerGas, tokenMetadata, signal } = options;
259
+ signal?.throwIfAborted();
260
+ if (!feeToken || !gas || !maxFeePerGas)
261
+ return undefined;
262
+ try {
263
+ const metadata = await resolveTokenMetadata(client, {
264
+ token: feeToken,
265
+ tokenMetadata,
266
+ store,
267
+ });
268
+ signal?.throwIfAborted();
269
+ const raw = gas * maxFeePerGas;
270
+ const scale = 10n ** BigInt(Math.max(0, 18 - metadata.decimals));
271
+ const amount = (raw + scale - 1n) / scale;
272
+ return {
273
+ amount: Hex.fromNumber(amount),
274
+ decimals: metadata.decimals,
275
+ formatted: formatUnits(amount, metadata.decimals),
276
+ symbol: metadata.symbol,
277
+ };
278
+ }
279
+ catch {
280
+ signal?.throwIfAborted();
281
+ return undefined;
282
+ }
283
+ }
284
+ //# sourceMappingURL=simulate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../../../src/tempo/internal/relay/simulate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,346 @@
1
+ import { Address, Hex, RpcResponse } from 'ox';
2
+ import { Transaction as core_Transaction, KeyAuthorization } from 'ox/tempo';
3
+ import type { Client } from '../../../core/Client.js';
4
+ export declare function resolveChainId(value: unknown): number | undefined;
5
+ export declare function formatFillTransactionRequest(client: Client, value: Record<string, unknown>): Record<string, unknown>;
6
+ export declare function normalizeFillTransactionRequest(tx: Record<string, unknown>): Record<string, unknown> & {
7
+ calls: unknown[];
8
+ };
9
+ /** Returns whether a raw transaction uses a Tempo sender or fee-payer wire prefix. */
10
+ export declare function isSerializedTempoTransaction(value: unknown): value is `0x76${string}` | `0x78${string}`;
11
+ export declare function normalizeTempoTransaction(value: Record<string, unknown> | undefined): core_Transaction.Transaction<false, bigint, number>;
12
+ /** Preserves the nonce domain when serializing filled Tempo transactions. */
13
+ export declare function formatTempoTransaction(transaction: core_Transaction.Transaction): {
14
+ blockHash: `0x${string}`;
15
+ blockNumber: `0x${string}`;
16
+ blockTimestamp?: `0x${string}` | undefined;
17
+ chainId: `0x${string}`;
18
+ data?: Hex.Hex | undefined;
19
+ from: Address.Address;
20
+ hash: Hex.Hex;
21
+ input: Hex.Hex;
22
+ gas: `0x${string}`;
23
+ nonce: `0x${string}`;
24
+ to: Address.Address | null;
25
+ transactionIndex: `0x${string}`;
26
+ type: `0x${string}`;
27
+ value: `0x${string}`;
28
+ r: Hex.Hex;
29
+ s: Hex.Hex;
30
+ yParity: `0x${string}`;
31
+ v?: `0x${string}` | undefined;
32
+ nonceKey?: `0x${string}` | undefined;
33
+ aaAuthorizationList?: undefined;
34
+ accessList?: undefined;
35
+ authorizationList?: undefined;
36
+ blobVersionedHashes?: undefined;
37
+ calls?: undefined;
38
+ feePayerSignature?: undefined;
39
+ feeToken?: undefined;
40
+ frames?: undefined;
41
+ gasPrice?: undefined;
42
+ keyAuthorization?: undefined;
43
+ maxFeePerBlobGas?: undefined;
44
+ maxFeePerGas?: undefined;
45
+ maxPriorityFeePerGas?: undefined;
46
+ signature?: undefined;
47
+ signatures?: undefined;
48
+ validAfter?: undefined;
49
+ validBefore?: undefined;
50
+ } | {
51
+ blockHash: `0x${string}`;
52
+ blockNumber: `0x${string}`;
53
+ blockTimestamp?: `0x${string}` | undefined;
54
+ chainId: `0x${string}`;
55
+ data?: Hex.Hex | undefined;
56
+ from: Address.Address;
57
+ hash: Hex.Hex;
58
+ gas: `0x${string}`;
59
+ nonce: `0x${string}`;
60
+ transactionIndex: `0x${string}`;
61
+ type: "0x76";
62
+ accessList: readonly {
63
+ address: Address.Address;
64
+ storageKeys: readonly Hex.Hex[];
65
+ }[];
66
+ feeToken: Address.Address;
67
+ maxFeePerGas: `0x${string}`;
68
+ maxPriorityFeePerGas: `0x${string}`;
69
+ aaAuthorizationList?: import("ox/tempo/AuthorizationTempo").ListRpc | undefined;
70
+ calls: readonly {
71
+ data?: Hex.Hex | null | undefined;
72
+ input?: Hex.Hex | null | undefined;
73
+ to?: Hex.Hex | null | undefined;
74
+ value?: Hex.Hex | null | undefined;
75
+ }[] | undefined;
76
+ feePayerSignature?: {
77
+ r: Hex.Hex;
78
+ s: Hex.Hex;
79
+ v?: Hex.Hex | undefined;
80
+ yParity: Hex.Hex;
81
+ } | null | undefined;
82
+ gasPrice?: Hex.Hex | null | undefined;
83
+ keyAuthorization?: KeyAuthorization.Rpc | null | undefined;
84
+ nonceKey?: Hex.Hex | null | undefined;
85
+ signature: import("ox/tempo/SignatureEnvelope").SignatureEnvelopeRpc;
86
+ validAfter?: Hex.Hex | null | undefined;
87
+ validBefore?: Hex.Hex | null | undefined;
88
+ authorizationList?: undefined;
89
+ blobVersionedHashes?: undefined;
90
+ frames?: undefined;
91
+ input?: undefined;
92
+ maxFeePerBlobGas?: undefined;
93
+ r?: undefined;
94
+ s?: undefined;
95
+ signatures?: undefined;
96
+ to?: undefined;
97
+ v?: undefined;
98
+ value?: undefined;
99
+ yParity?: undefined;
100
+ } | {
101
+ blockHash: `0x${string}`;
102
+ blockNumber: `0x${string}`;
103
+ blockTimestamp?: `0x${string}` | undefined;
104
+ data?: Hex.Hex | undefined;
105
+ from: Address.Address;
106
+ hash: Hex.Hex;
107
+ input: Hex.Hex;
108
+ gas: `0x${string}`;
109
+ nonce: `0x${string}`;
110
+ to: Address.Address | null;
111
+ transactionIndex: `0x${string}`;
112
+ type: "0x0";
113
+ value: `0x${string}`;
114
+ r: Hex.Hex;
115
+ s: Hex.Hex;
116
+ chainId?: `0x${string}` | undefined;
117
+ gasPrice: `0x${string}`;
118
+ v: `0x${string}`;
119
+ yParity?: `0x${string}` | undefined;
120
+ nonceKey?: `0x${string}` | undefined;
121
+ aaAuthorizationList?: undefined;
122
+ accessList?: undefined;
123
+ authorizationList?: undefined;
124
+ blobVersionedHashes?: undefined;
125
+ calls?: undefined;
126
+ feePayerSignature?: undefined;
127
+ feeToken?: undefined;
128
+ frames?: undefined;
129
+ keyAuthorization?: undefined;
130
+ maxFeePerBlobGas?: undefined;
131
+ maxFeePerGas?: undefined;
132
+ maxPriorityFeePerGas?: undefined;
133
+ signature?: undefined;
134
+ signatures?: undefined;
135
+ validAfter?: undefined;
136
+ validBefore?: undefined;
137
+ } | {
138
+ blockHash: `0x${string}`;
139
+ blockNumber: `0x${string}`;
140
+ blockTimestamp?: `0x${string}` | undefined;
141
+ chainId: `0x${string}`;
142
+ data?: Hex.Hex | undefined;
143
+ from: Address.Address;
144
+ hash: Hex.Hex;
145
+ input: Hex.Hex;
146
+ gas: `0x${string}`;
147
+ nonce: `0x${string}`;
148
+ to: Address.Address | null;
149
+ transactionIndex: `0x${string}`;
150
+ type: "0x2";
151
+ value: `0x${string}`;
152
+ r: Hex.Hex;
153
+ s: Hex.Hex;
154
+ yParity: `0x${string}`;
155
+ v?: `0x${string}` | undefined;
156
+ accessList: readonly {
157
+ address: Address.Address;
158
+ storageKeys: readonly Hex.Hex[];
159
+ }[];
160
+ gasPrice?: `0x${string}` | undefined;
161
+ maxFeePerGas: `0x${string}`;
162
+ maxPriorityFeePerGas: `0x${string}`;
163
+ nonceKey?: `0x${string}` | undefined;
164
+ aaAuthorizationList?: undefined;
165
+ authorizationList?: undefined;
166
+ blobVersionedHashes?: undefined;
167
+ calls?: undefined;
168
+ feePayerSignature?: undefined;
169
+ feeToken?: undefined;
170
+ frames?: undefined;
171
+ keyAuthorization?: undefined;
172
+ maxFeePerBlobGas?: undefined;
173
+ signature?: undefined;
174
+ signatures?: undefined;
175
+ validAfter?: undefined;
176
+ validBefore?: undefined;
177
+ } | {
178
+ blockHash: `0x${string}`;
179
+ blockNumber: `0x${string}`;
180
+ blockTimestamp?: `0x${string}` | undefined;
181
+ chainId: `0x${string}`;
182
+ data?: Hex.Hex | undefined;
183
+ from: Address.Address;
184
+ hash: Hex.Hex;
185
+ input: Hex.Hex;
186
+ gas: `0x${string}`;
187
+ nonce: `0x${string}`;
188
+ to: Address.Address | null;
189
+ transactionIndex: `0x${string}`;
190
+ type: "0x1";
191
+ value: `0x${string}`;
192
+ r: Hex.Hex;
193
+ s: Hex.Hex;
194
+ yParity: `0x${string}`;
195
+ v?: `0x${string}` | undefined;
196
+ accessList: readonly {
197
+ address: Address.Address;
198
+ storageKeys: readonly Hex.Hex[];
199
+ }[];
200
+ gasPrice: `0x${string}`;
201
+ nonceKey?: `0x${string}` | undefined;
202
+ aaAuthorizationList?: undefined;
203
+ authorizationList?: undefined;
204
+ blobVersionedHashes?: undefined;
205
+ calls?: undefined;
206
+ feePayerSignature?: undefined;
207
+ feeToken?: undefined;
208
+ frames?: undefined;
209
+ keyAuthorization?: undefined;
210
+ maxFeePerBlobGas?: undefined;
211
+ maxFeePerGas?: undefined;
212
+ maxPriorityFeePerGas?: undefined;
213
+ signature?: undefined;
214
+ signatures?: undefined;
215
+ validAfter?: undefined;
216
+ validBefore?: undefined;
217
+ } | {
218
+ blockHash: `0x${string}`;
219
+ blockNumber: `0x${string}`;
220
+ blockTimestamp?: `0x${string}` | undefined;
221
+ chainId: `0x${string}`;
222
+ data?: Hex.Hex | undefined;
223
+ from: Address.Address;
224
+ hash: Hex.Hex;
225
+ input: Hex.Hex;
226
+ gas: `0x${string}`;
227
+ nonce: `0x${string}`;
228
+ to: Address.Address | null;
229
+ transactionIndex: `0x${string}`;
230
+ type: "0x3";
231
+ value: `0x${string}`;
232
+ r: Hex.Hex;
233
+ s: Hex.Hex;
234
+ yParity: `0x${string}`;
235
+ v?: `0x${string}` | undefined;
236
+ accessList: readonly {
237
+ address: Address.Address;
238
+ storageKeys: readonly Hex.Hex[];
239
+ }[];
240
+ blobVersionedHashes: readonly Hex.Hex[];
241
+ maxFeePerBlobGas: `0x${string}`;
242
+ maxFeePerGas: `0x${string}`;
243
+ maxPriorityFeePerGas: `0x${string}`;
244
+ nonceKey?: `0x${string}` | undefined;
245
+ aaAuthorizationList?: undefined;
246
+ authorizationList?: undefined;
247
+ calls?: undefined;
248
+ feePayerSignature?: undefined;
249
+ feeToken?: undefined;
250
+ frames?: undefined;
251
+ gasPrice?: undefined;
252
+ keyAuthorization?: undefined;
253
+ signature?: undefined;
254
+ signatures?: undefined;
255
+ validAfter?: undefined;
256
+ validBefore?: undefined;
257
+ } | {
258
+ blockHash: `0x${string}`;
259
+ blockNumber: `0x${string}`;
260
+ blockTimestamp?: `0x${string}` | undefined;
261
+ chainId: `0x${string}`;
262
+ data?: Hex.Hex | undefined;
263
+ from: Address.Address;
264
+ hash: Hex.Hex;
265
+ input: Hex.Hex;
266
+ gas: `0x${string}`;
267
+ nonce: `0x${string}`;
268
+ to: Address.Address | null;
269
+ transactionIndex: `0x${string}`;
270
+ type: "0x4";
271
+ value: `0x${string}`;
272
+ r: Hex.Hex;
273
+ s: Hex.Hex;
274
+ yParity: `0x${string}`;
275
+ v?: `0x${string}` | undefined;
276
+ accessList: readonly {
277
+ address: Address.Address;
278
+ storageKeys: readonly Hex.Hex[];
279
+ }[];
280
+ authorizationList: readonly {
281
+ r: Hex.Hex;
282
+ s: Hex.Hex;
283
+ yParity: `0x${string}`;
284
+ address: Address.Address;
285
+ chainId: `0x${string}`;
286
+ nonce: `0x${string}`;
287
+ }[];
288
+ maxFeePerGas: `0x${string}`;
289
+ maxPriorityFeePerGas: `0x${string}`;
290
+ nonceKey?: `0x${string}` | undefined;
291
+ aaAuthorizationList?: undefined;
292
+ blobVersionedHashes?: undefined;
293
+ calls?: undefined;
294
+ feePayerSignature?: undefined;
295
+ feeToken?: undefined;
296
+ frames?: undefined;
297
+ gasPrice?: undefined;
298
+ keyAuthorization?: undefined;
299
+ maxFeePerBlobGas?: undefined;
300
+ signature?: undefined;
301
+ signatures?: undefined;
302
+ validAfter?: undefined;
303
+ validBefore?: undefined;
304
+ } | {
305
+ blockHash: `0x${string}`;
306
+ blockNumber: `0x${string}`;
307
+ blockTimestamp?: `0x${string}` | undefined;
308
+ data?: Hex.Hex | undefined;
309
+ from: Address.Address;
310
+ hash: Hex.Hex;
311
+ input?: `0x${string}` | undefined;
312
+ gas?: `0x${string}` | undefined;
313
+ nonce: `0x${string}`;
314
+ to?: `0x${string}` | null | undefined;
315
+ transactionIndex: `0x${string}`;
316
+ type: "0x6";
317
+ value?: `0x${string}` | undefined;
318
+ blobVersionedHashes: readonly Hex.Hex[];
319
+ chainId: `0x${string}`;
320
+ frames: readonly import("ox/Frame").Rpc[];
321
+ gasPrice?: `0x${string}` | undefined;
322
+ maxFeePerBlobGas: `0x${string}`;
323
+ maxFeePerGas: `0x${string}`;
324
+ maxPriorityFeePerGas: `0x${string}`;
325
+ signatures: readonly import("ox/FrameSignature").Rpc[];
326
+ nonceKey?: `0x${string}` | undefined;
327
+ aaAuthorizationList?: undefined;
328
+ accessList?: undefined;
329
+ authorizationList?: undefined;
330
+ calls?: undefined;
331
+ feePayerSignature?: undefined;
332
+ feeToken?: undefined;
333
+ keyAuthorization?: undefined;
334
+ r?: undefined;
335
+ s?: undefined;
336
+ signature?: undefined;
337
+ v?: undefined;
338
+ validAfter?: undefined;
339
+ validBefore?: undefined;
340
+ yParity?: undefined;
341
+ };
342
+ /** Preserves upstream RPC errors and the relay's expired-transaction contract. */
343
+ export declare function toRpcError(error: unknown): RpcResponse.BaseError;
344
+ /** Preserves envelope inputs omitted by the node, including calls and chain ID. Filled fields take precedence; legacy calls are normalized separately. */
345
+ export declare function mergeCallsFromRequest(resultTx: Record<string, unknown>, request: Record<string, unknown>): Record<string, unknown>;
346
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/tempo/internal/relay/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;AAC9C,OAAO,EACL,WAAW,IAAI,gBAAgB,EAC/B,gBAAgB,EAEjB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGrD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,sBAS5C;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,2BAU/B;AAED,wBAAgB,+BAA+B,CAC7C,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,CA0BhD;AAiCD,sFAAsF;AACtF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,OAAO,MAAM,EAAE,GAAG,OAAO,MAAM,EAAE,CAO5C;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,uDAO3C;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,gBAAgB,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ1C;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,SAAS,CAiDhE;AAED,0JAA0J;AAC1J,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2BzB"}