accounts 0.6.7 → 0.7.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.
- package/CHANGELOG.md +16 -0
- package/dist/core/ExecutionError.d.ts +25 -0
- package/dist/core/ExecutionError.d.ts.map +1 -0
- package/dist/core/ExecutionError.js +170 -0
- package/dist/core/ExecutionError.js.map +1 -0
- package/dist/core/Schema.d.ts +33 -7
- package/dist/core/Schema.d.ts.map +1 -1
- package/dist/core/zod/rpc.d.ts +14 -1
- package/dist/core/zod/rpc.d.ts.map +1 -1
- package/dist/core/zod/rpc.js +14 -1
- package/dist/core/zod/rpc.js.map +1 -1
- package/dist/server/CliAuth.d.ts +110 -43
- package/dist/server/CliAuth.d.ts.map +1 -1
- package/dist/server/CliAuth.js +243 -155
- package/dist/server/CliAuth.js.map +1 -1
- package/dist/server/Handler.d.ts +0 -1
- package/dist/server/Handler.d.ts.map +1 -1
- package/dist/server/Handler.js +0 -1
- package/dist/server/Handler.js.map +1 -1
- package/dist/server/internal/handlers/relay.d.ts +29 -12
- package/dist/server/internal/handlers/relay.d.ts.map +1 -1
- package/dist/server/internal/handlers/relay.js +180 -125
- package/dist/server/internal/handlers/relay.js.map +1 -1
- package/dist/server/internal/handlers/sponsorship.d.ts +77 -0
- package/dist/server/internal/handlers/sponsorship.d.ts.map +1 -0
- package/dist/server/internal/handlers/sponsorship.js +96 -0
- package/dist/server/internal/handlers/sponsorship.js.map +1 -0
- package/dist/server/internal/handlers/utils.d.ts +3 -1
- package/dist/server/internal/handlers/utils.d.ts.map +1 -1
- package/dist/server/internal/handlers/utils.js +15 -12
- package/dist/server/internal/handlers/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/core/ExecutionError.test.ts +205 -0
- package/src/core/ExecutionError.ts +189 -0
- package/src/core/Provider.test.ts +4 -2
- package/src/core/zod/rpc.ts +18 -1
- package/src/server/CliAuth.test-d.ts +6 -0
- package/src/server/CliAuth.test.ts +83 -0
- package/src/server/CliAuth.ts +331 -208
- package/src/server/Handler.ts +0 -1
- package/src/server/internal/handlers/relay.test.ts +318 -108
- package/src/server/internal/handlers/relay.ts +243 -138
- package/src/server/internal/handlers/sponsorship.ts +172 -0
- package/src/server/internal/handlers/utils.ts +15 -10
- package/dist/server/internal/handlers/feePayer.d.ts +0 -73
- package/dist/server/internal/handlers/feePayer.d.ts.map +0 -1
- package/dist/server/internal/handlers/feePayer.js +0 -184
- package/dist/server/internal/handlers/feePayer.js.map +0 -1
- package/src/server/internal/handlers/feePayer.test.ts +0 -336
- package/src/server/internal/handlers/feePayer.ts +0 -271
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { RpcRequest } from 'ox';
|
|
2
2
|
import { type Address, type Chain, type Transport } from 'viem';
|
|
3
|
+
import type { LocalAccount } from 'viem/accounts';
|
|
4
|
+
import { Transaction } from 'viem/tempo';
|
|
3
5
|
import { type Handler, from } from '../../Handler.js';
|
|
4
|
-
import * as FeePayer from './feePayer.js';
|
|
5
6
|
/**
|
|
6
7
|
* Instantiates a relay handler that proxies `eth_fillTransaction`
|
|
7
8
|
* with wallet-aware enrichment (fee token resolution, simulation,
|
|
@@ -30,12 +31,9 @@ import * as FeePayer from './feePayer.js';
|
|
|
30
31
|
* import { privateKeyToAccount } from 'viem/accounts'
|
|
31
32
|
* import { Handler } from 'accounts/server'
|
|
32
33
|
*
|
|
33
|
-
* // With sponsorship — signs as fee payer when `validate` approves.
|
|
34
34
|
* const handler = Handler.relay({
|
|
35
35
|
* feePayer: {
|
|
36
36
|
* account: privateKeyToAccount('0x...'),
|
|
37
|
-
* // Optional: validate sponsorship approval.
|
|
38
|
-
* // validate: (request) => request.from !== BLOCKED_ADDRESS,
|
|
39
37
|
* },
|
|
40
38
|
* })
|
|
41
39
|
* ```
|
|
@@ -52,6 +50,13 @@ export declare namespace relay {
|
|
|
52
50
|
readonly 1337: readonly ["0x20c0000000000000000000000000000000000000", "0x20c0000000000000000000000000000000000001", "0x20c0000000000000000000000000000000000002", "0x20c0000000000000000000000000000000000003"];
|
|
53
51
|
};
|
|
54
52
|
type Options = from.Options & {
|
|
53
|
+
/**
|
|
54
|
+
* Auto-swap options.
|
|
55
|
+
*/
|
|
56
|
+
autoSwap?: false | {
|
|
57
|
+
/** Slippage tolerance (e.g. 0.05 = 5%). @default 0.05 */
|
|
58
|
+
slippage?: number | undefined;
|
|
59
|
+
} | undefined;
|
|
55
60
|
/**
|
|
56
61
|
* Supported chains. The handler resolves the client based on the
|
|
57
62
|
* `chainId` in the incoming transaction.
|
|
@@ -62,14 +67,18 @@ export declare namespace relay {
|
|
|
62
67
|
* Fee payer / sponsor configuration. When provided, the relay will
|
|
63
68
|
* sign `feePayerSignature` on the filled transaction.
|
|
64
69
|
*/
|
|
65
|
-
feePayer?:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
feePayer?: {
|
|
71
|
+
/** Account to use as the fee payer. */
|
|
72
|
+
account: LocalAccount;
|
|
73
|
+
/**
|
|
74
|
+
* Validates whether to sponsor the transaction. When omitted, all
|
|
75
|
+
* transactions are sponsored. Return `false` to reject sponsorship.
|
|
76
|
+
*/
|
|
77
|
+
validate?: ((request: Transaction.TransactionRequest) => boolean | Promise<boolean>) | undefined;
|
|
78
|
+
/** Sponsor display name returned from `eth_fillTransaction`. */
|
|
79
|
+
name?: string | undefined;
|
|
80
|
+
/** Sponsor URL returned from `eth_fillTransaction`. */
|
|
81
|
+
url?: string | undefined;
|
|
73
82
|
} | undefined;
|
|
74
83
|
/**
|
|
75
84
|
* Returns token addresses to check balances for during fee token resolution.
|
|
@@ -77,6 +86,14 @@ export declare namespace relay {
|
|
|
77
86
|
* highest balance.
|
|
78
87
|
*/
|
|
79
88
|
resolveTokens?: ((chainId?: number | undefined) => readonly Address[]) | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* Relay features.
|
|
91
|
+
*
|
|
92
|
+
* - `'all'` — enables fee token resolution, auto-swap,
|
|
93
|
+
* fee payer, and simulation (balance diffs + fee breakdown).
|
|
94
|
+
* - `undefined` (default) — only fee payers.
|
|
95
|
+
*/
|
|
96
|
+
features?: 'all' | undefined;
|
|
80
97
|
/** Function to call before handling the request. */
|
|
81
98
|
onRequest?: ((request: RpcRequest.RpcRequest) => Promise<void>) | undefined;
|
|
82
99
|
/** Path to use for the handler. @default "/" */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../../src/server/internal/handlers/relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAe,MAAM,IAAI,CAAA;AAE3D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../../src/server/internal/handlers/relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAe,MAAM,IAAI,CAAA;AAE3D,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,KAAK,EAOV,KAAK,SAAS,EAEf,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD,OAAO,EAA0C,WAAW,EAAE,MAAM,YAAY,CAAA;AAIhF,OAAO,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAIrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,KAAK,CAAC,OAAO,GAAE,KAAK,CAAC,OAAY,GAAG,OAAO,CA0U1D;AAED,yBAAiB,KAAK,CAAC;IACrB,iEAAiE;IAE1D,MAAM,aAAa;;;;KA6BhB,CAAA;IAEV,KAAY,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG;QACnC;;WAEG;QACH,QAAQ,CAAC,EACL,KAAK,GACL;YACE,yDAAyD;YACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAC9B,GACD,SAAS,CAAA;QACb;;;;WAIG;QACH,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,SAAS,CAAA;QACjD;;;WAGG;QACH,QAAQ,CAAC,EACL;YACE,uCAAuC;YACvC,OAAO,EAAE,YAAY,CAAA;YACrB;;;eAGG;YACH,QAAQ,CAAC,EACL,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,kBAAkB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GACzE,SAAS,CAAA;YACb,gEAAgE;YAChE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;YACzB,uDAAuD;YACvD,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SACzB,GACD,SAAS,CAAA;QACb;;;;WAIG;QACH,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,SAAS,OAAO,EAAE,CAAC,GAAG,SAAS,CAAA;QAClF;;;;;;WAMG;QACH,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;QAC5B,oDAAoD;QACpD,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;QAC3E,gDAAgD;QAChD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACzB,yEAAyE;QACzE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;KACnD,CAAA;CACF"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { AbiEvent, Hex, RpcRequest, RpcResponse } from 'ox';
|
|
2
2
|
import { Transaction as core_Transaction } from 'ox/tempo';
|
|
3
|
-
import { createClient,
|
|
3
|
+
import { createClient, formatUnits, http, parseEventLogs, zeroAddress, } from 'viem';
|
|
4
4
|
import { simulateCalls } from 'viem/actions';
|
|
5
5
|
import { tempo, tempoLocalnet, tempoMainnet, tempoModerato } from 'viem/chains';
|
|
6
6
|
import { Abis, Actions, Addresses, Capabilities, Transaction } from 'viem/tempo';
|
|
7
|
+
import * as ExecutionError from '../../../core/ExecutionError.js';
|
|
7
8
|
import * as Schema from '../../../core/Schema.js';
|
|
8
9
|
import { from } from '../../Handler.js';
|
|
9
|
-
import * as
|
|
10
|
+
import * as Sponsorship from './sponsorship.js';
|
|
10
11
|
import * as Utils from './utils.js';
|
|
11
12
|
/**
|
|
12
13
|
* Instantiates a relay handler that proxies `eth_fillTransaction`
|
|
@@ -36,12 +37,9 @@ import * as Utils from './utils.js';
|
|
|
36
37
|
* import { privateKeyToAccount } from 'viem/accounts'
|
|
37
38
|
* import { Handler } from 'accounts/server'
|
|
38
39
|
*
|
|
39
|
-
* // With sponsorship — signs as fee payer when `validate` approves.
|
|
40
40
|
* const handler = Handler.relay({
|
|
41
41
|
* feePayer: {
|
|
42
42
|
* account: privateKeyToAccount('0x...'),
|
|
43
|
-
* // Optional: validate sponsorship approval.
|
|
44
|
-
* // validate: (request) => request.from !== BLOCKED_ADDRESS,
|
|
45
43
|
* },
|
|
46
44
|
* })
|
|
47
45
|
* ```
|
|
@@ -50,11 +48,21 @@ import * as Utils from './utils.js';
|
|
|
50
48
|
* @returns Request handler.
|
|
51
49
|
*/
|
|
52
50
|
export function relay(options = {}) {
|
|
53
|
-
const { chains = [tempo, tempoModerato],
|
|
51
|
+
const { chains = [tempo, tempoModerato], onRequest, path = '/', resolveTokens = (chainId) => relay.defaultTokens[chainId] ?? [], transports = {}, ...rest } = options;
|
|
52
|
+
const feePayerOptions = options.feePayer;
|
|
53
|
+
const features = {
|
|
54
|
+
autoSwap: options.autoSwap ?? options.features === 'all',
|
|
55
|
+
feeTokenResolution: options.resolveTokens ?? options.features === 'all',
|
|
56
|
+
simulate: options.features === 'all',
|
|
57
|
+
};
|
|
54
58
|
const autoSwap = (() => {
|
|
59
|
+
if (!features.autoSwap)
|
|
60
|
+
return undefined;
|
|
55
61
|
if (options.autoSwap === false)
|
|
56
62
|
return undefined;
|
|
57
|
-
return {
|
|
63
|
+
return {
|
|
64
|
+
slippage: (typeof options.autoSwap === 'object' ? options.autoSwap?.slippage : undefined) ?? 0.05,
|
|
65
|
+
};
|
|
58
66
|
})();
|
|
59
67
|
const clients = new Map();
|
|
60
68
|
for (const chain of chains) {
|
|
@@ -70,81 +78,86 @@ export function relay(options = {}) {
|
|
|
70
78
|
}
|
|
71
79
|
return clients.get(chains[0].id);
|
|
72
80
|
}
|
|
73
|
-
async function handleRequest(request) {
|
|
81
|
+
async function handleRequest(request, options) {
|
|
74
82
|
await onRequest?.(request);
|
|
75
|
-
// Resolve chainId
|
|
83
|
+
// Resolve chainId from: 1) explicit option (URL path), 2) first param object, 3) default chain.
|
|
76
84
|
const params = 'params' in request && Array.isArray(request.params) ? request.params : [];
|
|
77
85
|
const first = typeof params[0] === 'object' && params[0]
|
|
78
86
|
? params[0]
|
|
79
87
|
: undefined;
|
|
80
|
-
const chainId = Utils.resolveChainId(first?.chainId) ?? chains[0].id;
|
|
88
|
+
const chainId = Utils.resolveChainId(first?.chainId) ?? options?.chainId ?? chains[0].id;
|
|
81
89
|
const client = getClient(chainId);
|
|
82
90
|
switch (request.method) {
|
|
83
91
|
case 'eth_fillTransaction': {
|
|
84
92
|
try {
|
|
85
|
-
const parameters =
|
|
93
|
+
const parameters = params[0];
|
|
94
|
+
const from = typeof parameters.from === 'string' ? parameters.from : undefined;
|
|
95
|
+
const requestFeeToken = typeof parameters.feeToken === 'string' ? parameters.feeToken : undefined;
|
|
96
|
+
const requestsSponsorship = !!feePayerOptions && parameters.feePayer !== false;
|
|
86
97
|
// 1. Resolve fee token.
|
|
87
|
-
const feeToken =
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
98
|
+
const feeToken = features.feeTokenResolution
|
|
99
|
+
? await resolveFeeToken(client, {
|
|
100
|
+
account: from,
|
|
101
|
+
feeToken: requestFeeToken,
|
|
102
|
+
tokens: resolveTokens(chainId),
|
|
103
|
+
})
|
|
104
|
+
: requestFeeToken;
|
|
92
105
|
// 2. Fill transaction via RPC node (with AMM resolution on InsufficientBalance).
|
|
93
106
|
const normalized = Utils.normalizeFillTransactionRequest(parameters);
|
|
94
107
|
const transaction = {
|
|
95
108
|
...normalized,
|
|
96
109
|
...(typeof chainId !== 'undefined' ? { chainId } : {}),
|
|
97
|
-
...(
|
|
110
|
+
...(requestsSponsorship ? { feePayer: true } : {}),
|
|
98
111
|
...(feeToken ? { feeToken } : {}),
|
|
99
112
|
};
|
|
100
|
-
let filled = await
|
|
113
|
+
let filled = await (async () => {
|
|
114
|
+
if (requestsSponsorship && Sponsorship.isPreparedTransaction(transaction))
|
|
115
|
+
return { transaction: Utils.normalizeTempoTransaction(transaction) };
|
|
116
|
+
return await fill(client, { autoSwap, feeToken, transaction });
|
|
117
|
+
})();
|
|
101
118
|
// 3. Check if the fee payer approves this transaction.
|
|
102
|
-
const sponsored =
|
|
103
|
-
(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
119
|
+
const sponsored = requestsSponsorship && feePayerOptions
|
|
120
|
+
? await Sponsorship.shouldSponsor({
|
|
121
|
+
sender: from,
|
|
122
|
+
transaction: filled.transaction,
|
|
123
|
+
validate: feePayerOptions.validate,
|
|
124
|
+
})
|
|
125
|
+
: false;
|
|
109
126
|
// Re-fill without feePayer when sponsorship is rejected so the
|
|
110
127
|
// gas estimate and nonce are correct for a self-paid transaction.
|
|
111
|
-
if (
|
|
128
|
+
if (requestsSponsorship && !sponsored) {
|
|
112
129
|
const { feePayer: _, ...tx } = transaction;
|
|
113
130
|
filled = await fill(client, { autoSwap, feeToken, transaction: tx });
|
|
114
131
|
}
|
|
115
|
-
const
|
|
132
|
+
const transaction_filled = filled.transaction;
|
|
133
|
+
const swap = 'swap' in filled ? filled.swap : undefined;
|
|
116
134
|
// 4. Simulate and compute balance diffs + fee.
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
135
|
+
const { balanceDiffs, fee } = features.simulate
|
|
136
|
+
? await simulateAndParseDiffs(client, {
|
|
137
|
+
account: from,
|
|
138
|
+
calls: extractCalls(transaction_filled),
|
|
139
|
+
swap,
|
|
140
|
+
feeToken: transaction_filled.feeToken,
|
|
141
|
+
gas: transaction_filled.gas,
|
|
142
|
+
maxFeePerGas: transaction_filled.maxFeePerGas,
|
|
143
|
+
})
|
|
144
|
+
: { balanceDiffs: undefined, fee: undefined };
|
|
145
|
+
// 5. Sign as fee payer (if sponsored and not already signed).
|
|
146
|
+
const alreadySigned = 'feePayerSignature' in transaction_filled &&
|
|
147
|
+
transaction_filled.feePayerSignature != null;
|
|
127
148
|
const transaction_final = await (async () => {
|
|
128
|
-
if (!sponsored)
|
|
149
|
+
if (!sponsored || !feePayerOptions || alreadySigned)
|
|
129
150
|
return transaction_filled;
|
|
130
|
-
return await
|
|
151
|
+
return await Sponsorship.sign({
|
|
131
152
|
account: feePayerOptions.account,
|
|
132
|
-
sender:
|
|
153
|
+
sender: from,
|
|
133
154
|
transaction: transaction_filled,
|
|
134
155
|
});
|
|
135
156
|
})();
|
|
136
|
-
const sponsor = (
|
|
137
|
-
if (!sponsored)
|
|
138
|
-
return undefined;
|
|
139
|
-
return {
|
|
140
|
-
address: feePayerOptions.account.address,
|
|
141
|
-
...(feePayerOptions.name ? { name: feePayerOptions.name } : {}),
|
|
142
|
-
...(feePayerOptions.url ? { url: feePayerOptions.url } : {}),
|
|
143
|
-
};
|
|
144
|
-
})();
|
|
157
|
+
const sponsor = sponsored && feePayerOptions ? Sponsorship.getSponsor(feePayerOptions) : undefined;
|
|
145
158
|
// 6. Resolve autoSwap metadata (when AMM path was taken).
|
|
146
159
|
const autoSwap_ = await (async () => {
|
|
147
|
-
if (!swap)
|
|
160
|
+
if (!autoSwap || !swap)
|
|
148
161
|
return undefined;
|
|
149
162
|
const [inMeta, outMeta] = await Promise.all([
|
|
150
163
|
resolveTokenMetadata(client, swap.tokenIn).catch(() => undefined),
|
|
@@ -175,6 +188,7 @@ export function relay(options = {}) {
|
|
|
175
188
|
})();
|
|
176
189
|
return RpcResponse.from({
|
|
177
190
|
result: {
|
|
191
|
+
...(sponsor ? { sponsor } : {}),
|
|
178
192
|
tx: core_Transaction.toRpc(transaction_final),
|
|
179
193
|
capabilities: {
|
|
180
194
|
balanceDiffs,
|
|
@@ -186,6 +200,93 @@ export function relay(options = {}) {
|
|
|
186
200
|
},
|
|
187
201
|
}, { request });
|
|
188
202
|
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
if (!(error instanceof Error))
|
|
205
|
+
return Utils.rpcErrorJson(request, error);
|
|
206
|
+
const revert = ExecutionError.parse(error);
|
|
207
|
+
const parameters = request.params[0];
|
|
208
|
+
const stub = {
|
|
209
|
+
from: parameters.from,
|
|
210
|
+
to: parameters.to ?? null,
|
|
211
|
+
gas: '0x0',
|
|
212
|
+
nonce: '0x0',
|
|
213
|
+
value: '0x0',
|
|
214
|
+
maxFeePerGas: '0x0',
|
|
215
|
+
maxPriorityFeePerGas: '0x0',
|
|
216
|
+
};
|
|
217
|
+
if (revert?.errorName === 'InsufficientBalance') {
|
|
218
|
+
const args = revert.args;
|
|
219
|
+
const [available, required, token] = args;
|
|
220
|
+
const normalized = Utils.normalizeFillTransactionRequest(parameters);
|
|
221
|
+
// Simulate from zero address for optimistic balance diffs.
|
|
222
|
+
const optimisticCalls = normalized ? extractCalls(normalized) : undefined;
|
|
223
|
+
const { balanceDiffs } = optimisticCalls
|
|
224
|
+
? await simulateAndParseDiffs(client, {
|
|
225
|
+
account: zeroAddress,
|
|
226
|
+
calls: optimisticCalls,
|
|
227
|
+
})
|
|
228
|
+
: { balanceDiffs: undefined };
|
|
229
|
+
// Re-key balance diffs from zero address to the real sender.
|
|
230
|
+
const senderDiffs = parameters.from && balanceDiffs
|
|
231
|
+
? { [parameters.from]: balanceDiffs[zeroAddress] ?? [] }
|
|
232
|
+
: balanceDiffs;
|
|
233
|
+
const metadata = await resolveTokenMetadata(client, token).catch(() => undefined);
|
|
234
|
+
const deficit = required - available;
|
|
235
|
+
return RpcResponse.from({
|
|
236
|
+
result: {
|
|
237
|
+
tx: stub,
|
|
238
|
+
capabilities: {
|
|
239
|
+
balanceDiffs: senderDiffs,
|
|
240
|
+
error: ExecutionError.serialize(revert),
|
|
241
|
+
requireFunds: metadata
|
|
242
|
+
? {
|
|
243
|
+
amount: Hex.fromNumber(deficit),
|
|
244
|
+
decimals: metadata.decimals,
|
|
245
|
+
formatted: formatUnits(deficit, metadata.decimals),
|
|
246
|
+
token,
|
|
247
|
+
symbol: metadata.symbol,
|
|
248
|
+
}
|
|
249
|
+
: undefined,
|
|
250
|
+
sponsored: false,
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
}, { request });
|
|
254
|
+
}
|
|
255
|
+
return RpcResponse.from({
|
|
256
|
+
result: {
|
|
257
|
+
tx: stub,
|
|
258
|
+
capabilities: {
|
|
259
|
+
error: ExecutionError.serialize(revert),
|
|
260
|
+
sponsored: false,
|
|
261
|
+
},
|
|
262
|
+
},
|
|
263
|
+
}, { request });
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// @ts-expect-error
|
|
267
|
+
case 'eth_signRawTransaction':
|
|
268
|
+
case 'eth_sendRawTransaction':
|
|
269
|
+
case 'eth_sendRawTransactionSync': {
|
|
270
|
+
try {
|
|
271
|
+
if (!feePayerOptions) {
|
|
272
|
+
const result = await client.request(request);
|
|
273
|
+
return RpcResponse.from({ result }, { request });
|
|
274
|
+
}
|
|
275
|
+
const serialized = params[0];
|
|
276
|
+
if (typeof serialized !== 'string' ||
|
|
277
|
+
!Sponsorship.requestsRawSponsorship(serialized)) {
|
|
278
|
+
const result = await client.request(request);
|
|
279
|
+
return RpcResponse.from({ result }, { request });
|
|
280
|
+
}
|
|
281
|
+
const result = await Sponsorship.handleRawTransaction({
|
|
282
|
+
account: feePayerOptions.account,
|
|
283
|
+
getClient,
|
|
284
|
+
method: request.method,
|
|
285
|
+
request: { params: 'params' in request ? request.params : undefined },
|
|
286
|
+
validate: feePayerOptions.validate,
|
|
287
|
+
});
|
|
288
|
+
return RpcResponse.from({ result }, { request });
|
|
289
|
+
}
|
|
189
290
|
catch (error) {
|
|
190
291
|
return Utils.rpcErrorJson(request, error);
|
|
191
292
|
}
|
|
@@ -197,16 +298,21 @@ export function relay(options = {}) {
|
|
|
197
298
|
}
|
|
198
299
|
}
|
|
199
300
|
const router = from(rest);
|
|
200
|
-
|
|
301
|
+
async function handlePost(c) {
|
|
302
|
+
const chainId = Utils.resolveChainId(c.req.param('chainId'));
|
|
201
303
|
const body = await c.req.raw.json();
|
|
202
304
|
const isBatch = Array.isArray(body);
|
|
203
305
|
if (!isBatch) {
|
|
204
306
|
const request = RpcRequest.from(body);
|
|
205
|
-
return Response.json(await handleRequest(request));
|
|
307
|
+
return Response.json(await handleRequest(request, { chainId }));
|
|
206
308
|
}
|
|
207
|
-
const responses = await Promise.all(body.map((item) => handleRequest(RpcRequest.from(item)
|
|
309
|
+
const responses = await Promise.all(body.map((item) => handleRequest(RpcRequest.from(item), {
|
|
310
|
+
chainId,
|
|
311
|
+
})));
|
|
208
312
|
return Response.json(responses);
|
|
209
|
-
}
|
|
313
|
+
}
|
|
314
|
+
router.post(path, handlePost);
|
|
315
|
+
router.post(`${path === '/' ? '' : path}/:chainId`, handlePost);
|
|
210
316
|
return router;
|
|
211
317
|
}
|
|
212
318
|
(function (relay) {
|
|
@@ -258,34 +364,25 @@ async function fill(client, options) {
|
|
|
258
364
|
catch (error) {
|
|
259
365
|
if (!(error instanceof Error))
|
|
260
366
|
throw error;
|
|
261
|
-
|
|
262
|
-
|
|
367
|
+
if (!feeToken || !autoSwap)
|
|
368
|
+
throw error;
|
|
369
|
+
const revert = ExecutionError.parse(error);
|
|
370
|
+
if (revert?.errorName !== 'InsufficientBalance')
|
|
371
|
+
throw error;
|
|
372
|
+
const [available, required, token] = revert.args;
|
|
373
|
+
if (typeof available === 'undefined' || typeof required === 'undefined' || !token)
|
|
263
374
|
throw error;
|
|
264
|
-
if (
|
|
375
|
+
if (token.toLowerCase() === feeToken.toLowerCase())
|
|
265
376
|
throw error;
|
|
266
|
-
const deficit =
|
|
377
|
+
const deficit = required - available;
|
|
267
378
|
const maxAmountIn = deficit + (deficit * BigInt(Math.round(autoSwap.slippage * 1000))) / 1000n;
|
|
268
|
-
const
|
|
269
|
-
const
|
|
270
|
-
// If the request was normalized to top-level to/data/value (single call),
|
|
271
|
-
// convert back to a calls array so we can prepend swap calls.
|
|
272
|
-
const originalCalls = existingCalls
|
|
273
|
-
? [...existingCalls]
|
|
274
|
-
: request.to
|
|
275
|
-
? [
|
|
276
|
-
{
|
|
277
|
-
to: request.to,
|
|
278
|
-
data: request.data,
|
|
279
|
-
value: request.value ?? 0n,
|
|
280
|
-
},
|
|
281
|
-
]
|
|
282
|
-
: [];
|
|
283
|
-
const { to: _, data: __, value: ___, calls: ____, ...rest } = request;
|
|
379
|
+
const originalCalls = request.calls ?? [];
|
|
380
|
+
const swapCalls = buildSwapCalls(feeToken, token, deficit, maxAmountIn);
|
|
284
381
|
const result = await client.request({
|
|
285
382
|
method: 'eth_fillTransaction',
|
|
286
383
|
params: [
|
|
287
384
|
format({
|
|
288
|
-
...
|
|
385
|
+
...request,
|
|
289
386
|
calls: [...swapCalls, ...originalCalls],
|
|
290
387
|
}),
|
|
291
388
|
],
|
|
@@ -295,7 +392,7 @@ async function fill(client, options) {
|
|
|
295
392
|
swap: {
|
|
296
393
|
calls: swapCalls,
|
|
297
394
|
tokenIn: feeToken,
|
|
298
|
-
tokenOut:
|
|
395
|
+
tokenOut: token,
|
|
299
396
|
amountOut: deficit,
|
|
300
397
|
maxAmountIn,
|
|
301
398
|
},
|
|
@@ -391,7 +488,10 @@ async function simulate(client, options) {
|
|
|
391
488
|
async function simulateAndParseDiffs(client, options) {
|
|
392
489
|
const { account, calls, swap, feeToken, gas, maxFeePerGas } = options;
|
|
393
490
|
try {
|
|
394
|
-
const { results, tokenMetadata } = await simulate(client, {
|
|
491
|
+
const { results, tokenMetadata } = await simulate(client, {
|
|
492
|
+
account: account === zeroAddress ? undefined : account,
|
|
493
|
+
calls,
|
|
494
|
+
});
|
|
395
495
|
// Collect all logs across all call results.
|
|
396
496
|
const logs = [];
|
|
397
497
|
for (const result of results)
|
|
@@ -412,7 +512,7 @@ async function simulateAndParseDiffs(client, options) {
|
|
|
412
512
|
gas,
|
|
413
513
|
maxFeePerGas,
|
|
414
514
|
tokenMetadata: tokenMetadata,
|
|
415
|
-
});
|
|
515
|
+
}).catch(() => undefined);
|
|
416
516
|
return { balanceDiffs, fee };
|
|
417
517
|
}
|
|
418
518
|
catch {
|
|
@@ -541,7 +641,7 @@ async function resolveTokenMetadata(client, token, tokenMetadata) {
|
|
|
541
641
|
async function computeFee(client, options) {
|
|
542
642
|
const { feeToken, gas, maxFeePerGas, tokenMetadata } = options;
|
|
543
643
|
if (!feeToken || !gas || !maxFeePerGas)
|
|
544
|
-
return
|
|
644
|
+
return undefined;
|
|
545
645
|
try {
|
|
546
646
|
const metadata = await resolveTokenMetadata(client, feeToken, tokenMetadata);
|
|
547
647
|
const raw = gas * maxFeePerGas;
|
|
@@ -554,53 +654,8 @@ async function computeFee(client, options) {
|
|
|
554
654
|
};
|
|
555
655
|
}
|
|
556
656
|
catch {
|
|
557
|
-
return
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
const insufficientBalanceAbi = parseAbi([
|
|
561
|
-
'error InsufficientBalance(uint256 available, uint256 required, address token)',
|
|
562
|
-
]);
|
|
563
|
-
const insufficientBalancePattern = /InsufficientBalance\(\s*InsufficientBalance\s*\{\s*available:\s*(\d+),\s*required:\s*(\d+),\s*token:\s*(0x[0-9a-fA-F]+)\s*\}\s*\)/;
|
|
564
|
-
function parseInsufficientBalance(error) {
|
|
565
|
-
const message = error.shortMessage ?? error.message;
|
|
566
|
-
const match = insufficientBalancePattern.exec(message);
|
|
567
|
-
if (match)
|
|
568
|
-
return {
|
|
569
|
-
available: BigInt(match[1]),
|
|
570
|
-
required: BigInt(match[2]),
|
|
571
|
-
token: match[3],
|
|
572
|
-
};
|
|
573
|
-
const data = extractRevertData(error);
|
|
574
|
-
if (!data)
|
|
575
|
-
return null;
|
|
576
|
-
try {
|
|
577
|
-
const decoded = decodeErrorResult({ abi: insufficientBalanceAbi, data });
|
|
578
|
-
return {
|
|
579
|
-
available: decoded.args[0],
|
|
580
|
-
required: decoded.args[1],
|
|
581
|
-
token: decoded.args[2],
|
|
582
|
-
};
|
|
583
|
-
}
|
|
584
|
-
catch {
|
|
585
|
-
return null;
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
function extractRevertData(error) {
|
|
589
|
-
if (!error || typeof error !== 'object')
|
|
590
|
-
return null;
|
|
591
|
-
const e = error;
|
|
592
|
-
if (typeof e.data === 'string' && e.data.startsWith('0x'))
|
|
593
|
-
return e.data;
|
|
594
|
-
if (e.cause)
|
|
595
|
-
return extractRevertData(e.cause);
|
|
596
|
-
if (e.error)
|
|
597
|
-
return extractRevertData(e.error);
|
|
598
|
-
if (typeof e.walk === 'function') {
|
|
599
|
-
const inner = e.walk((e) => typeof e.data === 'string');
|
|
600
|
-
if (inner)
|
|
601
|
-
return extractRevertData(inner);
|
|
657
|
+
return undefined;
|
|
602
658
|
}
|
|
603
|
-
return null;
|
|
604
659
|
}
|
|
605
660
|
function buildSwapCalls(sourceToken, targetToken, deficit, maxAmountIn) {
|
|
606
661
|
const approve = Actions.token.approve.call({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../../src/server/internal/handlers/relay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"relay.js","sourceRoot":"","sources":["../../../../src/server/internal/handlers/relay.ts"],"names":[],"mappings":"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"}
|