@relayprotocol/relay-sdk 5.1.0 → 5.2.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 (59) hide show
  1. package/_cjs/src/actions/gaslessBatch.js +185 -0
  2. package/_cjs/src/actions/gaslessBatch.js.map +1 -0
  3. package/_cjs/src/actions/index.js +1 -0
  4. package/_cjs/src/actions/index.js.map +1 -1
  5. package/_cjs/src/constants/calibur.js +73 -0
  6. package/_cjs/src/constants/calibur.js.map +1 -0
  7. package/_cjs/src/constants/index.js +1 -0
  8. package/_cjs/src/constants/index.js.map +1 -1
  9. package/_cjs/src/types/BatchExecutor.js +3 -0
  10. package/_cjs/src/types/BatchExecutor.js.map +1 -0
  11. package/_cjs/src/types/index.js +1 -0
  12. package/_cjs/src/types/index.js.map +1 -1
  13. package/_cjs/src/utils/caliburExecutor.js +61 -0
  14. package/_cjs/src/utils/caliburExecutor.js.map +1 -0
  15. package/_cjs/src/utils/index.js +4 -1
  16. package/_cjs/src/utils/index.js.map +1 -1
  17. package/_cjs/src/version.js +1 -1
  18. package/_cjs/tsconfig.build.tsbuildinfo +1 -1
  19. package/_esm/src/actions/gaslessBatch.js +206 -0
  20. package/_esm/src/actions/gaslessBatch.js.map +1 -0
  21. package/_esm/src/actions/index.js +1 -0
  22. package/_esm/src/actions/index.js.map +1 -1
  23. package/_esm/src/constants/calibur.js +80 -0
  24. package/_esm/src/constants/calibur.js.map +1 -0
  25. package/_esm/src/constants/index.js +1 -0
  26. package/_esm/src/constants/index.js.map +1 -1
  27. package/_esm/src/types/BatchExecutor.js +2 -0
  28. package/_esm/src/types/BatchExecutor.js.map +1 -0
  29. package/_esm/src/types/index.js +1 -0
  30. package/_esm/src/types/index.js.map +1 -1
  31. package/_esm/src/utils/caliburExecutor.js +57 -0
  32. package/_esm/src/utils/caliburExecutor.js.map +1 -0
  33. package/_esm/src/utils/index.js +1 -0
  34. package/_esm/src/utils/index.js.map +1 -1
  35. package/_esm/src/version.js +1 -1
  36. package/_esm/tsconfig.build.tsbuildinfo +1 -1
  37. package/_types/src/actions/gaslessBatch.d.ts +44 -0
  38. package/_types/src/actions/gaslessBatch.d.ts.map +1 -0
  39. package/_types/src/actions/index.d.ts +1 -0
  40. package/_types/src/actions/index.d.ts.map +1 -1
  41. package/_types/src/client.d.ts +31 -29
  42. package/_types/src/client.d.ts.map +1 -1
  43. package/_types/src/constants/calibur.d.ts +107 -0
  44. package/_types/src/constants/calibur.d.ts.map +1 -0
  45. package/_types/src/constants/index.d.ts +1 -0
  46. package/_types/src/constants/index.d.ts.map +1 -1
  47. package/_types/src/types/BatchExecutor.d.ts +41 -0
  48. package/_types/src/types/BatchExecutor.d.ts.map +1 -0
  49. package/_types/src/types/RelayChain.d.ts +1 -0
  50. package/_types/src/types/RelayChain.d.ts.map +1 -1
  51. package/_types/src/types/index.d.ts +1 -0
  52. package/_types/src/types/index.d.ts.map +1 -1
  53. package/_types/src/utils/caliburExecutor.d.ts +4 -0
  54. package/_types/src/utils/caliburExecutor.d.ts.map +1 -0
  55. package/_types/src/utils/index.d.ts +1 -0
  56. package/_types/src/utils/index.d.ts.map +1 -1
  57. package/_types/src/version.d.ts +1 -1
  58. package/_types/tsconfig.build.tsbuildinfo +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1,206 @@
1
+ import { createPublicClient, encodeAbiParameters, http } from 'viem';
2
+ import { getClient } from '../client.js';
3
+ import { axios } from '../utils/axios.js';
4
+ import { APIError, getApiKeyHeader, LogLevel } from '../utils/index.js';
5
+ import { createCaliburExecutor } from '../utils/caliburExecutor.js';
6
+ /**
7
+ * Execute a gasless batch swap using EIP-7702 delegation.
8
+ *
9
+ * Takes a quote from getQuote(), delegates the user's EOA to a batch executor
10
+ * (defaults to Calibur), batches the quote's transaction steps atomically,
11
+ * and submits via Relay's /execute API with the sponsor covering gas costs.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const quote = await getQuote({ ... })
16
+ * const result = await executeGaslessBatch({ quote, walletClient })
17
+ * console.log(result.requestId)
18
+ * ```
19
+ *
20
+ * @param parameters - {@link ExecuteGaslessBatchParameters}
21
+ */
22
+ export async function executeGaslessBatch(parameters) {
23
+ const { quote, walletClient, executor: executorConfig, subsidizeFees = false, originGasOverhead: originGasOverheadOverride, onProgress } = parameters;
24
+ const client = getClient();
25
+ if (!client.baseApiUrl || !client.baseApiUrl.length) {
26
+ throw new ReferenceError('RelayClient missing api url configuration');
27
+ }
28
+ if (!client.apiKey) {
29
+ throw new Error('API key is required for gasless batch execution. Configure it via createClient({ apiKey: "..." })');
30
+ }
31
+ const account = walletClient.account;
32
+ if (!account) {
33
+ throw new Error('WalletClient must have an account. Create it with createWalletClient({ account, ... })');
34
+ }
35
+ const userAddress = account.address;
36
+ const executor = executorConfig ?? createCaliburExecutor();
37
+ const originGasOverhead = originGasOverheadOverride ?? executor.originGasOverhead;
38
+ client.log(['Gasless Batch: starting', { user: userAddress, executor: executor.address }], LogLevel.Info);
39
+ // ── 1. Extract calls and chainId from quote steps ────────────────────
40
+ const calls = [];
41
+ let requestId;
42
+ let chainId;
43
+ for (const step of quote.steps) {
44
+ if (step.kind !== 'transaction')
45
+ continue;
46
+ for (const item of step.items) {
47
+ if (!item.data)
48
+ continue;
49
+ calls.push({
50
+ to: item.data.to,
51
+ value: BigInt(item.data.value || '0'),
52
+ data: item.data.data
53
+ });
54
+ if (!chainId && item.data.chainId) {
55
+ chainId = item.data.chainId;
56
+ }
57
+ }
58
+ if (step.requestId)
59
+ requestId = step.requestId;
60
+ }
61
+ if (calls.length === 0) {
62
+ throw new Error('No transaction steps found in quote');
63
+ }
64
+ client.log([`Gasless Batch: extracted ${calls.length} calls from quote on chain ${chainId}`, { requestId }], LogLevel.Verbose);
65
+ if (!chainId) {
66
+ throw new Error('Could not determine origin chainId from quote steps');
67
+ }
68
+ // Create a public client for on-chain reads
69
+ const chain = client.chains.find((c) => c.id === chainId);
70
+ const rpcUrl = chain?.httpRpcUrl;
71
+ const publicClient = createPublicClient({
72
+ chain: chain?.viemChain,
73
+ transport: rpcUrl ? http(rpcUrl) : http()
74
+ });
75
+ // ── 2. Check delegation ──────────────────────────────────────────────
76
+ onProgress?.({ status: 'signing_authorization', requestId });
77
+ const code = await publicClient.getCode({ address: userAddress });
78
+ const isDelegated = code?.toLowerCase().startsWith('0xef0100') &&
79
+ code.slice(8).toLowerCase() ===
80
+ executor.address.slice(2).toLowerCase();
81
+ client.log([`Gasless Batch: delegation status — ${isDelegated ? 'already delegated' : 'needs delegation'}`], LogLevel.Info);
82
+ // ── 3. Sign EIP-7702 authorization (if needed) ──────────────────────
83
+ let authorization;
84
+ if (!isDelegated) {
85
+ const currentNonce = await publicClient.getTransactionCount({
86
+ address: userAddress
87
+ });
88
+ const signedAuth = await walletClient.signAuthorization({
89
+ account: account,
90
+ contractAddress: executor.address,
91
+ chainId,
92
+ nonce: currentNonce
93
+ });
94
+ authorization = [
95
+ {
96
+ chainId: Number(signedAuth.chainId),
97
+ address: signedAuth.address,
98
+ nonce: signedAuth.nonce,
99
+ yParity: signedAuth.yParity ?? 0,
100
+ r: signedAuth.r,
101
+ s: signedAuth.s
102
+ }
103
+ ];
104
+ client.log(['Gasless Batch: signed 7702 authorization'], LogLevel.Verbose);
105
+ }
106
+ // ── 4. Sign batch via EIP-712 ────────────────────────────────────────
107
+ onProgress?.({ status: 'signing_batch', requestId });
108
+ const nonce = await executor.getNonce(publicClient, userAddress);
109
+ client.log([`Gasless Batch: executor nonce ${nonce}`], LogLevel.Verbose);
110
+ const signedMessage = executor.buildSignMessage(calls, nonce);
111
+ const domain = executor.buildSignDomain(chainId, userAddress);
112
+ const signature = await walletClient.signTypedData({
113
+ account: account,
114
+ domain,
115
+ types: executor.eip712Types,
116
+ primaryType: executor.eip712PrimaryType,
117
+ message: signedMessage
118
+ });
119
+ // Wrap signature: abi.encode(signature, hookData) — empty hookData
120
+ const wrappedSignature = encodeAbiParameters([{ type: 'bytes' }, { type: 'bytes' }], [signature, '0x']);
121
+ const batchCallData = executor.encodeExecute(signedMessage, wrappedSignature);
122
+ client.log(['Gasless Batch: signed EIP-712 batch'], LogLevel.Verbose);
123
+ // ── 5. Submit via /execute ───────────────────────────────────────────
124
+ onProgress?.({ status: 'submitting', requestId });
125
+ const executeBody = {
126
+ executionKind: 'rawCalls',
127
+ data: {
128
+ chainId,
129
+ to: userAddress,
130
+ data: batchCallData,
131
+ value: '0',
132
+ ...(authorization ? { authorizationList: authorization } : {})
133
+ },
134
+ executionOptions: {
135
+ referrer: client.source || '',
136
+ subsidizeFees
137
+ },
138
+ ...(originGasOverhead != null ? { originGasOverhead } : {}),
139
+ ...(requestId ? { requestId } : {})
140
+ };
141
+ const executeRequest = {
142
+ url: `${client.baseApiUrl}/execute`,
143
+ method: 'post',
144
+ data: executeBody,
145
+ headers: {
146
+ ...getApiKeyHeader(client),
147
+ 'relay-sdk-version': client.version ?? 'unknown'
148
+ }
149
+ };
150
+ client.log(['Gasless Batch: submitting to /execute', { chainId, requestId, subsidizeFees }], LogLevel.Info);
151
+ let executeResult;
152
+ try {
153
+ const res = await axios.request(executeRequest);
154
+ executeResult = res.data;
155
+ }
156
+ catch (error) {
157
+ throw new APIError(error?.response?.data?.error ||
158
+ error?.message ||
159
+ 'Gasless batch execution failed', error?.response?.status || 500, error?.response?.data || error);
160
+ }
161
+ const finalRequestId = executeResult.requestId || requestId || '';
162
+ client.log([`Gasless Batch: submitted, requestId ${finalRequestId}`], LogLevel.Info);
163
+ // ── 6. Poll for completion ───────────────────────────────────────────
164
+ onProgress?.({ status: 'polling', requestId: finalRequestId });
165
+ const maxAttempts = client.maxPollingAttemptsBeforeTimeout ?? 60;
166
+ const pollingInterval = client.pollingInterval ?? 5000;
167
+ for (let i = 0; i < maxAttempts; i++) {
168
+ const statusRequest = {
169
+ url: `${client.baseApiUrl}/intents/status/v3`,
170
+ method: 'get',
171
+ params: { requestId: finalRequestId },
172
+ headers: getApiKeyHeader(client)
173
+ };
174
+ try {
175
+ const res = await axios.request(statusRequest);
176
+ const status = res.data;
177
+ client.log([`Gasless Batch: poll [${i + 1}/${maxAttempts}] status=${status.status}`], LogLevel.Verbose);
178
+ if (status.status === 'success') {
179
+ client.log([`Gasless Batch: complete — requestId ${finalRequestId}`], LogLevel.Info);
180
+ onProgress?.({
181
+ status: 'success',
182
+ requestId: finalRequestId,
183
+ details: status
184
+ });
185
+ return { requestId: finalRequestId };
186
+ }
187
+ if (status.status === 'failure' || status.status === 'refund') {
188
+ onProgress?.({
189
+ status: 'failure',
190
+ requestId: finalRequestId,
191
+ details: status
192
+ });
193
+ throw new Error(`Gasless batch request failed with status: ${status.status}`);
194
+ }
195
+ }
196
+ catch (error) {
197
+ if (error.message?.startsWith('Gasless batch request failed')) {
198
+ throw error;
199
+ }
200
+ // Transient polling error — continue
201
+ }
202
+ await new Promise((resolve) => setTimeout(resolve, pollingInterval));
203
+ }
204
+ throw new Error(`Polling timed out after ${maxAttempts} attempts for request ${finalRequestId}`);
205
+ }
206
+ //# sourceMappingURL=gaslessBatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gaslessBatch.js","sourceRoot":"","sources":["../../../src/actions/gaslessBatch.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export * from './getQuote.js';
3
3
  export * from './getAppFees.js';
4
4
  export * from './claimAppFees.js';
5
5
  export * from './fastFill.js';
6
+ export * from './gaslessBatch.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,80 @@
1
+ import { pad } from 'viem';
2
+ /**
3
+ * Calibur — Uniswap's minimal batch executor for EIP-7702 delegated EOAs.
4
+ * Deployed at the same address on all supported chains.
5
+ * https://github.com/Uniswap/calibur
6
+ */
7
+ export const CALIBUR_ADDRESS = '0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00';
8
+ export const CALIBUR_ABI = [
9
+ {
10
+ name: 'execute',
11
+ type: 'function',
12
+ stateMutability: 'payable',
13
+ inputs: [
14
+ {
15
+ name: 'signedBatchedCall',
16
+ type: 'tuple',
17
+ components: [
18
+ {
19
+ name: 'batchedCall',
20
+ type: 'tuple',
21
+ components: [
22
+ {
23
+ name: 'calls',
24
+ type: 'tuple[]',
25
+ components: [
26
+ { name: 'to', type: 'address' },
27
+ { name: 'value', type: 'uint256' },
28
+ { name: 'data', type: 'bytes' }
29
+ ]
30
+ },
31
+ { name: 'revertOnFailure', type: 'bool' }
32
+ ]
33
+ },
34
+ { name: 'nonce', type: 'uint256' },
35
+ { name: 'keyHash', type: 'bytes32' },
36
+ { name: 'executor', type: 'address' },
37
+ { name: 'deadline', type: 'uint256' }
38
+ ]
39
+ },
40
+ { name: 'wrappedSignature', type: 'bytes' }
41
+ ],
42
+ outputs: []
43
+ },
44
+ {
45
+ name: 'getSeq',
46
+ type: 'function',
47
+ stateMutability: 'view',
48
+ inputs: [{ name: 'key', type: 'uint256' }],
49
+ outputs: [{ name: '', type: 'uint256' }]
50
+ }
51
+ ];
52
+ export const CALIBUR_EIP712_TYPES = {
53
+ SignedBatchedCall: [
54
+ { name: 'batchedCall', type: 'BatchedCall' },
55
+ { name: 'nonce', type: 'uint256' },
56
+ { name: 'keyHash', type: 'bytes32' },
57
+ { name: 'executor', type: 'address' },
58
+ { name: 'deadline', type: 'uint256' }
59
+ ],
60
+ BatchedCall: [
61
+ { name: 'calls', type: 'Call[]' },
62
+ { name: 'revertOnFailure', type: 'bool' }
63
+ ],
64
+ Call: [
65
+ { name: 'to', type: 'address' },
66
+ { name: 'value', type: 'uint256' },
67
+ { name: 'data', type: 'bytes' }
68
+ ]
69
+ };
70
+ /** bytes32(0) — the root key hash, meaning the EOA owner's key */
71
+ export const ROOT_KEY_HASH = '0x0000000000000000000000000000000000000000000000000000000000000000';
72
+ /**
73
+ * EIP-712 domain salt for Calibur.
74
+ * salt = pad(implementationAddress) with left-padding to 32 bytes.
75
+ */
76
+ export const CALIBUR_SALT = pad(CALIBUR_ADDRESS, {
77
+ dir: 'left',
78
+ size: 32
79
+ });
80
+ //# sourceMappingURL=calibur.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calibur.js","sourceRoot":"","sources":["../../../src/constants/calibur.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAC1B,4CAAuD,CAAA;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,SAAS;QAC1B,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,OAAO;wBACb,UAAU,EAAE;4BACV;gCACE,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,SAAS;gCACf,UAAU,EAAE;oCACV,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;oCAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;oCAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;iCAChC;6BACF;4BACD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;yBAC1C;qBACF;oBACD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;oBAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;oBACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;iBACtC;aACF;YACD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;SAC5C;QACD,OAAO,EAAE,EAAE;KACZ;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;CACO,CAAA;AAEV,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,iBAAiB,EAAE;QACjB,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE;QAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;KACtC;IACD,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;KAC1C;IACD,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;QAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;KAChC;CACO,CAAA;AAEV,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GACxB,oEAA2E,CAAA;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,EAAE;IAC/C,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,EAAE;CACT,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
1
  export * from './servers.js';
2
2
  export * from './address.js';
3
+ export * from './calibur.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BatchExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BatchExecutor.js","sourceRoot":"","sources":["../../../src/types/BatchExecutor.ts"],"names":[],"mappings":""}
@@ -5,4 +5,5 @@ export * from './TransactionStepItem.js';
5
5
  export * from './AdaptedWallet.js';
6
6
  export * from './RelayChain.js';
7
7
  export * from './Progress.js';
8
+ export * from './BatchExecutor.js';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,57 @@
1
+ import { encodeFunctionData } from 'viem';
2
+ import { CALIBUR_ADDRESS, CALIBUR_ABI, CALIBUR_EIP712_TYPES, CALIBUR_SALT, ROOT_KEY_HASH } from '../constants/calibur.js';
3
+ const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
4
+ export const CALIBUR_ORIGIN_GAS_OVERHEAD = 80_000;
5
+ export function createCaliburExecutor() {
6
+ return {
7
+ address: CALIBUR_ADDRESS,
8
+ abi: CALIBUR_ABI,
9
+ eip712Types: CALIBUR_EIP712_TYPES,
10
+ eip712PrimaryType: 'SignedBatchedCall',
11
+ salt: CALIBUR_SALT,
12
+ originGasOverhead: CALIBUR_ORIGIN_GAS_OVERHEAD,
13
+ buildSignDomain(chainId, verifyingContract) {
14
+ return {
15
+ name: 'Calibur',
16
+ version: '1.0.0',
17
+ chainId: BigInt(chainId),
18
+ verifyingContract,
19
+ salt: CALIBUR_SALT
20
+ };
21
+ },
22
+ buildSignMessage(calls, nonce) {
23
+ return {
24
+ batchedCall: {
25
+ calls: calls.map((c) => ({ to: c.to, value: c.value, data: c.data })),
26
+ revertOnFailure: true
27
+ },
28
+ nonce,
29
+ keyHash: ROOT_KEY_HASH,
30
+ executor: ZERO_ADDRESS,
31
+ deadline: 0n
32
+ };
33
+ },
34
+ encodeExecute(signedMessage, wrappedSignature) {
35
+ return encodeFunctionData({
36
+ abi: CALIBUR_ABI,
37
+ functionName: 'execute',
38
+ args: [signedMessage, wrappedSignature]
39
+ });
40
+ },
41
+ async getNonce(publicClient, userAddress) {
42
+ try {
43
+ const seq = await publicClient.readContract({
44
+ address: userAddress,
45
+ abi: CALIBUR_ABI,
46
+ functionName: 'getSeq',
47
+ args: [0n]
48
+ });
49
+ return BigInt(seq);
50
+ }
51
+ catch {
52
+ return 0n;
53
+ }
54
+ }
55
+ };
56
+ }
57
+ //# sourceMappingURL=caliburExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caliburExecutor.js","sourceRoot":"","sources":["../../../src/utils/caliburExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAInB,MAAM,MAAM,CAAA;AAEb,OAAO,EACL,eAAe,EACf,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACd,MAAM,yBAAyB,CAAA;AAEhC,MAAM,YAAY,GAAG,4CAAuD,CAAA;AAE5E,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAA;AAEjD,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,WAAW;QAChB,WAAW,EAAE,oBAAoB;QACjC,iBAAiB,EAAE,mBAAmB;QACtC,IAAI,EAAE,YAAY;QAClB,iBAAiB,EAAE,2BAA2B;QAE9C,eAAe,CAAC,OAAe,EAAE,iBAA0B;YACzD,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;gBACxB,iBAAiB;gBACjB,IAAI,EAAE,YAAY;aACnB,CAAA;QACH,CAAC;QAED,gBAAgB,CAAC,KAAkB,EAAE,KAAa;YAChD,OAAO;gBACL,WAAW,EAAE;oBACX,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrE,eAAe,EAAE,IAAI;iBACtB;gBACD,KAAK;gBACL,OAAO,EAAE,aAAa;gBACtB,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,EAAE;aACb,CAAA;QACH,CAAC;QAED,aAAa,CACX,aAAsC,EACtC,gBAAqB;YAErB,OAAO,kBAAkB,CAAC;gBACxB,GAAG,EAAE,WAAW;gBAChB,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,aAAoB,EAAE,gBAAgB,CAAC;aAC/C,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,QAAQ,CACZ,YAA0B,EAC1B,WAAoB;YAEpB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;oBAC1C,OAAO,EAAE,WAAW;oBACpB,GAAG,EAAE,WAAW;oBAChB,YAAY,EAAE,QAAQ;oBACtB,IAAI,EAAE,CAAC,EAAE,CAAC;iBACX,CAAC,CAAA;gBACF,OAAO,MAAM,CAAC,GAAa,CAAC,CAAA;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -13,4 +13,5 @@ export { safeStructuredClone } from './structuredClone.js';
13
13
  export { repeatUntilOk } from './repeatUntilOk.js';
14
14
  export { prepareHyperliquidSteps } from './hyperliquid.js';
15
15
  export { isRelayApiUrl, getApiKeyHeader } from './apiKey.js';
16
+ export { createCaliburExecutor, CALIBUR_ORIGIN_GAS_OVERHEAD } from './caliburExecutor.js';
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,4BAA4B,EAAsB,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAEL,yBAAyB,EAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,4BAA4B,EAAsB,MAAM,YAAY,CAAA;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAEL,yBAAyB,EAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAA"}
@@ -1,2 +1,2 @@
1
- export const SDK_VERSION = '5.1.0';
1
+ export const SDK_VERSION = '5.2.0';
2
2
  //# sourceMappingURL=version.js.map