@turnkey/gas-station 0.3.4 → 2.0.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/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/config.mjs.map +1 -1
- package/dist/gasStationClient.d.ts +20 -1
- package/dist/gasStationClient.d.ts.map +1 -1
- package/dist/gasStationClient.js +89 -0
- package/dist/gasStationClient.js.map +1 -1
- package/dist/gasStationClient.mjs +89 -0
- package/dist/gasStationClient.mjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/intentBuilder.d.ts +7 -1
- package/dist/intentBuilder.d.ts.map +1 -1
- package/dist/intentBuilder.js +63 -0
- package/dist/intentBuilder.js.map +1 -1
- package/dist/intentBuilder.mjs +63 -0
- package/dist/intentBuilder.mjs.map +1 -1
- package/package.json +16 -3
package/dist/config.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface GasStationConfig {
|
|
|
5
5
|
walletClient: WalletClient<Transport, Chain, Account>;
|
|
6
6
|
delegateContract?: Hex;
|
|
7
7
|
executionContract?: Hex;
|
|
8
|
+
defaultGasLimit?: bigint;
|
|
8
9
|
}
|
|
9
10
|
export interface ChainPreset {
|
|
10
11
|
chain: Chain;
|
|
@@ -32,6 +33,11 @@ export interface ExecutionIntent {
|
|
|
32
33
|
signature: Hex;
|
|
33
34
|
eoaAddress: Hex;
|
|
34
35
|
}
|
|
36
|
+
export interface ApprovalExecutionIntent extends ExecutionIntent {
|
|
37
|
+
erc20Address: Hex;
|
|
38
|
+
spender: Hex;
|
|
39
|
+
approveAmount: bigint;
|
|
40
|
+
}
|
|
35
41
|
export declare const CHAIN_PRESETS: Record<string, ChainPreset>;
|
|
36
42
|
/**
|
|
37
43
|
* Create a custom preset with validation
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAKzE,eAAO,MAAM,yBAAyB,EAAE,GACM,CAAC;AAC/C,eAAO,MAAM,0BAA0B,EAAE,GACK,CAAC;AAG/C,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAKzE,eAAO,MAAM,yBAAyB,EAAE,GACM,CAAC;AAC/C,eAAO,MAAM,0BAA0B,EAAE,GACK,CAAC;AAG/C,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACtD,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,GAAG,CAAC;IACd,GAAG,EAAE,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,GAAG,CAAC;IACf,UAAU,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAmBrD,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAQnE;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,UAAU,EAAE,MAAM,OAAO,aAAa,EACtC,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC/B,WAAW,CAQb"}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../src/config.ts"],"sourcesContent":[null],"names":["base","mainnet","sepolia"],"mappings":";;;;AAIA;AACO,MAAM,yBAAyB,GACpC;AACK,MAAM,0BAA0B,GACrC;
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../src/config.ts"],"sourcesContent":[null],"names":["base","mainnet","sepolia"],"mappings":";;;;AAIA;AACO,MAAM,yBAAyB,GACpC;AACK,MAAM,0BAA0B,GACrC;AA6CF;AACO,MAAM,aAAa,GAAgC;AACxD,IAAA,YAAY,EAAE;AACZ,QAAA,KAAK,EAAEA,WAAI;AACX,QAAA,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;AACtC,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,4CAA4C;AACnD,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA,KAAK,EAAEC,cAAO;AACd,QAAA,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;AACrC,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,4CAA4C;AACnD,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAEC,cAAO;AACd,QAAA,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;AAC1C,KAAA;;AAGH;;AAEG;AACG,SAAU,kBAAkB,CAAC,MAAmB,EAAA;AACpD,IAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;IACpD;AACA,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC;IACxC;AACA,IAAA,OAAO,MAAM;AACf;AAEA;;AAEG;AACG,SAAU,SAAS,CACvB,UAAsC,EACtC,SAAgC,EAAA;AAEhC,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CACb,mBAAmB,UAAU,CAAA,aAAA,EAAgB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACrF;IACH;AACA,IAAA,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE;AACpC;;;;;;;;"}
|
package/dist/config.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.mjs","sources":["../src/config.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;AACO,MAAM,yBAAyB,GACpC;AACK,MAAM,0BAA0B,GACrC;
|
|
1
|
+
{"version":3,"file":"config.mjs","sources":["../src/config.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;AACO,MAAM,yBAAyB,GACpC;AACK,MAAM,0BAA0B,GACrC;AA6CF;AACO,MAAM,aAAa,GAAgC;AACxD,IAAA,YAAY,EAAE;AACZ,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE;AACtC,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,4CAA4C;AACnD,SAAA;AACF,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;AACrC,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,4CAA4C;AACnD,SAAA;AACF,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;AAC1C,KAAA;;AAGH;;AAEG;AACG,SAAU,kBAAkB,CAAC,MAAmB,EAAA;AACpD,IAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;IACpD;AACA,IAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC;IACxC;AACA,IAAA,OAAO,MAAM;AACf;AAEA;;AAEG;AACG,SAAU,SAAS,CACvB,UAAsC,EACtC,SAAgC,EAAA;AAEhC,IAAA,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CACb,mBAAmB,UAAU,CAAA,aAAA,EAAgB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CACrF;IACH;AACA,IAAA,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE;AACpC;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type SignedAuthorization, type Hex } from "viem";
|
|
2
|
-
import type { GasStationConfig, ExecutionIntent } from "./config";
|
|
2
|
+
import type { GasStationConfig, ExecutionIntent, ApprovalExecutionIntent } from "./config";
|
|
3
3
|
import { IntentBuilder } from "./intentBuilder";
|
|
4
4
|
export declare class GasStationClient {
|
|
5
5
|
private walletClient;
|
|
@@ -67,5 +67,24 @@ export declare class GasStationClient {
|
|
|
67
67
|
blockNumber: bigint;
|
|
68
68
|
gasUsed: bigint;
|
|
69
69
|
}>;
|
|
70
|
+
/**
|
|
71
|
+
* Sign an approval then execution transaction for a signed intent (paymaster signs, doesn't send)
|
|
72
|
+
* This is useful for testing policies - the paymaster attempts to sign the execution
|
|
73
|
+
* but doesn't actually broadcast it to the network.
|
|
74
|
+
* Call this with a paymaster client to test if the paymaster can sign the execution.
|
|
75
|
+
*/
|
|
76
|
+
signApproveThenExecution(intent: ApprovalExecutionIntent): Promise<Hex>;
|
|
77
|
+
/**
|
|
78
|
+
* Execute an approval then execution through the gas station contract.
|
|
79
|
+
* Atomically approves an ERC20 token and executes a transaction in a single call.
|
|
80
|
+
* Packs the execution data according to the delegate contract's expected format and
|
|
81
|
+
* submits it via the execution contract's approveThenExecute function.
|
|
82
|
+
* Call this with a paymaster client to submit and pay for the transaction.
|
|
83
|
+
*/
|
|
84
|
+
approveThenExecute(intent: ApprovalExecutionIntent): Promise<{
|
|
85
|
+
txHash: Hex;
|
|
86
|
+
blockNumber: bigint;
|
|
87
|
+
gasUsed: bigint;
|
|
88
|
+
}>;
|
|
70
89
|
}
|
|
71
90
|
//# sourceMappingURL=gasStationClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gasStationClient.d.ts","sourceRoot":"","sources":["../src/gasStationClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EAMxB,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"gasStationClient.d.ts","sourceRoot":"","sources":["../src/gasStationClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EAMxB,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAKlB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,iBAAiB,CAAM;gBAEnB,MAAM,EAAE,gBAAgB;IAYpC;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUvE;;;;;OAKG;IACG,oBAAoB,CACxB,cAAc,EAAE,mBAAmB,EAAE,GACpC,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IA8BhD;;;OAGG;IACG,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAatD;;;OAGG;IACG,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAajD;;;;;;;;;OASG;YACW,eAAe;IAkD7B;;;OAGG;IACH,YAAY,IAAI,aAAa;IAa7B;;;;;OAKG;IACG,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;IAkC1D;;;;;OAKG;IACG,OAAO,CACX,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA+CjE;;;;;OAKG;IACG,wBAAwB,CAC5B,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,GAAG,CAAC;IAqCf;;;;;;OAMG;IACG,kBAAkB,CACtB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAiDlE"}
|
package/dist/gasStationClient.js
CHANGED
|
@@ -231,6 +231,95 @@ class GasStationClient {
|
|
|
231
231
|
gasUsed: receipt.gasUsed,
|
|
232
232
|
};
|
|
233
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Sign an approval then execution transaction for a signed intent (paymaster signs, doesn't send)
|
|
236
|
+
* This is useful for testing policies - the paymaster attempts to sign the execution
|
|
237
|
+
* but doesn't actually broadcast it to the network.
|
|
238
|
+
* Call this with a paymaster client to test if the paymaster can sign the execution.
|
|
239
|
+
*/
|
|
240
|
+
async signApproveThenExecution(intent) {
|
|
241
|
+
// Pack the execution data (signature, nonce, deadline, args)
|
|
242
|
+
const packedData = gasStationUtils.packExecutionData({
|
|
243
|
+
signature: intent.signature,
|
|
244
|
+
nonce: intent.nonce,
|
|
245
|
+
deadline: intent.deadline,
|
|
246
|
+
args: intent.callData,
|
|
247
|
+
});
|
|
248
|
+
// Encode the function call data
|
|
249
|
+
const callData = viem.encodeFunctionData({
|
|
250
|
+
abi: gasStation.gasStationAbi,
|
|
251
|
+
functionName: "approveThenExecute",
|
|
252
|
+
args: [
|
|
253
|
+
intent.eoaAddress,
|
|
254
|
+
intent.outputContract,
|
|
255
|
+
intent.ethAmount,
|
|
256
|
+
intent.erc20Address,
|
|
257
|
+
intent.spender,
|
|
258
|
+
intent.approveAmount,
|
|
259
|
+
packedData,
|
|
260
|
+
],
|
|
261
|
+
});
|
|
262
|
+
// Sign the transaction without sending it
|
|
263
|
+
const signedTx = await this.walletClient.signTransaction({
|
|
264
|
+
to: this.executionContract,
|
|
265
|
+
data: callData,
|
|
266
|
+
gas: BigInt(300000),
|
|
267
|
+
type: "eip1559",
|
|
268
|
+
account: this.walletClient.account,
|
|
269
|
+
chain: this.walletClient.chain,
|
|
270
|
+
});
|
|
271
|
+
return signedTx;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Execute an approval then execution through the gas station contract.
|
|
275
|
+
* Atomically approves an ERC20 token and executes a transaction in a single call.
|
|
276
|
+
* Packs the execution data according to the delegate contract's expected format and
|
|
277
|
+
* submits it via the execution contract's approveThenExecute function.
|
|
278
|
+
* Call this with a paymaster client to submit and pay for the transaction.
|
|
279
|
+
*/
|
|
280
|
+
async approveThenExecute(intent) {
|
|
281
|
+
// Pack the execution data (signature, nonce, deadline, args)
|
|
282
|
+
const packedData = gasStationUtils.packExecutionData({
|
|
283
|
+
signature: intent.signature,
|
|
284
|
+
nonce: intent.nonce,
|
|
285
|
+
deadline: intent.deadline,
|
|
286
|
+
args: intent.callData,
|
|
287
|
+
});
|
|
288
|
+
// Call the approveThenExecute function with all parameters
|
|
289
|
+
const txHash = await this.walletClient.sendTransaction({
|
|
290
|
+
to: this.executionContract,
|
|
291
|
+
data: viem.encodeFunctionData({
|
|
292
|
+
abi: gasStation.gasStationAbi,
|
|
293
|
+
functionName: "approveThenExecute",
|
|
294
|
+
args: [
|
|
295
|
+
intent.eoaAddress,
|
|
296
|
+
intent.outputContract,
|
|
297
|
+
intent.ethAmount,
|
|
298
|
+
intent.erc20Address,
|
|
299
|
+
intent.spender,
|
|
300
|
+
intent.approveAmount,
|
|
301
|
+
packedData,
|
|
302
|
+
],
|
|
303
|
+
}),
|
|
304
|
+
gas: BigInt(300000),
|
|
305
|
+
account: this.walletClient.account,
|
|
306
|
+
});
|
|
307
|
+
const receipt = await this.publicClient.waitForTransactionReceipt({
|
|
308
|
+
hash: txHash,
|
|
309
|
+
});
|
|
310
|
+
if (receipt.status !== "success") {
|
|
311
|
+
// Try to get the revert reason if available
|
|
312
|
+
const revertReason = await this.getRevertReason(txHash);
|
|
313
|
+
throw new Error(`Approve then execute failed: ${revertReason || "Transaction reverted"}. ` +
|
|
314
|
+
`Gas used: ${receipt.gasUsed}/${receipt.cumulativeGasUsed}. ` +
|
|
315
|
+
`Transaction hash: ${txHash}`);
|
|
316
|
+
}
|
|
317
|
+
return {
|
|
318
|
+
txHash,
|
|
319
|
+
blockNumber: receipt.blockNumber,
|
|
320
|
+
gasUsed: receipt.gasUsed,
|
|
321
|
+
};
|
|
322
|
+
}
|
|
234
323
|
}
|
|
235
324
|
|
|
236
325
|
exports.GasStationClient = GasStationClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gasStationClient.js","sources":["../src/gasStationClient.ts"],"sourcesContent":[null],"names":["config","createPublicClientForChain","DEFAULT_DELEGATE_CONTRACT","DEFAULT_EXECUTION_CONTRACT","gasStationAbi","IntentBuilder","packExecutionData","encodeFunctionData"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"gasStationClient.js","sources":["../src/gasStationClient.ts"],"sourcesContent":[null],"names":["config","createPublicClientForChain","DEFAULT_DELEGATE_CONTRACT","DEFAULT_EXECUTION_CONTRACT","gasStationAbi","IntentBuilder","packExecutionData","encodeFunctionData"],"mappings":"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"}
|
|
@@ -229,6 +229,95 @@ class GasStationClient {
|
|
|
229
229
|
gasUsed: receipt.gasUsed,
|
|
230
230
|
};
|
|
231
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Sign an approval then execution transaction for a signed intent (paymaster signs, doesn't send)
|
|
234
|
+
* This is useful for testing policies - the paymaster attempts to sign the execution
|
|
235
|
+
* but doesn't actually broadcast it to the network.
|
|
236
|
+
* Call this with a paymaster client to test if the paymaster can sign the execution.
|
|
237
|
+
*/
|
|
238
|
+
async signApproveThenExecution(intent) {
|
|
239
|
+
// Pack the execution data (signature, nonce, deadline, args)
|
|
240
|
+
const packedData = packExecutionData({
|
|
241
|
+
signature: intent.signature,
|
|
242
|
+
nonce: intent.nonce,
|
|
243
|
+
deadline: intent.deadline,
|
|
244
|
+
args: intent.callData,
|
|
245
|
+
});
|
|
246
|
+
// Encode the function call data
|
|
247
|
+
const callData = encodeFunctionData({
|
|
248
|
+
abi: gasStationAbi,
|
|
249
|
+
functionName: "approveThenExecute",
|
|
250
|
+
args: [
|
|
251
|
+
intent.eoaAddress,
|
|
252
|
+
intent.outputContract,
|
|
253
|
+
intent.ethAmount,
|
|
254
|
+
intent.erc20Address,
|
|
255
|
+
intent.spender,
|
|
256
|
+
intent.approveAmount,
|
|
257
|
+
packedData,
|
|
258
|
+
],
|
|
259
|
+
});
|
|
260
|
+
// Sign the transaction without sending it
|
|
261
|
+
const signedTx = await this.walletClient.signTransaction({
|
|
262
|
+
to: this.executionContract,
|
|
263
|
+
data: callData,
|
|
264
|
+
gas: BigInt(300000),
|
|
265
|
+
type: "eip1559",
|
|
266
|
+
account: this.walletClient.account,
|
|
267
|
+
chain: this.walletClient.chain,
|
|
268
|
+
});
|
|
269
|
+
return signedTx;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Execute an approval then execution through the gas station contract.
|
|
273
|
+
* Atomically approves an ERC20 token and executes a transaction in a single call.
|
|
274
|
+
* Packs the execution data according to the delegate contract's expected format and
|
|
275
|
+
* submits it via the execution contract's approveThenExecute function.
|
|
276
|
+
* Call this with a paymaster client to submit and pay for the transaction.
|
|
277
|
+
*/
|
|
278
|
+
async approveThenExecute(intent) {
|
|
279
|
+
// Pack the execution data (signature, nonce, deadline, args)
|
|
280
|
+
const packedData = packExecutionData({
|
|
281
|
+
signature: intent.signature,
|
|
282
|
+
nonce: intent.nonce,
|
|
283
|
+
deadline: intent.deadline,
|
|
284
|
+
args: intent.callData,
|
|
285
|
+
});
|
|
286
|
+
// Call the approveThenExecute function with all parameters
|
|
287
|
+
const txHash = await this.walletClient.sendTransaction({
|
|
288
|
+
to: this.executionContract,
|
|
289
|
+
data: encodeFunctionData({
|
|
290
|
+
abi: gasStationAbi,
|
|
291
|
+
functionName: "approveThenExecute",
|
|
292
|
+
args: [
|
|
293
|
+
intent.eoaAddress,
|
|
294
|
+
intent.outputContract,
|
|
295
|
+
intent.ethAmount,
|
|
296
|
+
intent.erc20Address,
|
|
297
|
+
intent.spender,
|
|
298
|
+
intent.approveAmount,
|
|
299
|
+
packedData,
|
|
300
|
+
],
|
|
301
|
+
}),
|
|
302
|
+
gas: BigInt(300000),
|
|
303
|
+
account: this.walletClient.account,
|
|
304
|
+
});
|
|
305
|
+
const receipt = await this.publicClient.waitForTransactionReceipt({
|
|
306
|
+
hash: txHash,
|
|
307
|
+
});
|
|
308
|
+
if (receipt.status !== "success") {
|
|
309
|
+
// Try to get the revert reason if available
|
|
310
|
+
const revertReason = await this.getRevertReason(txHash);
|
|
311
|
+
throw new Error(`Approve then execute failed: ${revertReason || "Transaction reverted"}. ` +
|
|
312
|
+
`Gas used: ${receipt.gasUsed}/${receipt.cumulativeGasUsed}. ` +
|
|
313
|
+
`Transaction hash: ${txHash}`);
|
|
314
|
+
}
|
|
315
|
+
return {
|
|
316
|
+
txHash,
|
|
317
|
+
blockNumber: receipt.blockNumber,
|
|
318
|
+
gasUsed: receipt.gasUsed,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
232
321
|
}
|
|
233
322
|
|
|
234
323
|
export { GasStationClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gasStationClient.mjs","sources":["../src/gasStationClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"gasStationClient.mjs","sources":["../src/gasStationClient.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { GasStationClient } from "./gasStationClient";
|
|
2
2
|
export { IntentBuilder } from "./intentBuilder";
|
|
3
|
-
export { buildTokenTransfer, buildETHTransfer, buildTokenApproval, buildETHTransferFromEther, buildContractCall, packExecutionData, } from "./gasStationUtils";
|
|
3
|
+
export { buildTokenTransfer, buildETHTransfer, buildTokenApproval, buildETHTransferFromEther, buildContractCall, packExecutionData, ERC20_ABI, } from "./gasStationUtils";
|
|
4
4
|
export type { ExecutionParams } from "./gasStationUtils";
|
|
5
5
|
export { CHAIN_PRESETS, getPreset, createCustomPreset, DEFAULT_EXECUTION_CONTRACT, DEFAULT_DELEGATE_CONTRACT, } from "./config";
|
|
6
6
|
export { buildIntentSigningPolicy, buildPaymasterExecutionPolicy, ensureGasStationInterface, uploadGasStationInterface, getSmartContractInterface, } from "./policyUtils";
|
|
7
|
-
export type { GasStationConfig, ChainPreset, ContractCallParams, ExecutionIntent, } from "./config";
|
|
7
|
+
export type { GasStationConfig, ChainPreset, ContractCallParams, ExecutionIntent, ApprovalExecutionIntent, } from "./config";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACV,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EACL,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,uBAAuB,GACxB,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ var policyUtils = require('./policyUtils.js');
|
|
|
10
10
|
|
|
11
11
|
exports.GasStationClient = gasStationClient.GasStationClient;
|
|
12
12
|
exports.IntentBuilder = intentBuilder.IntentBuilder;
|
|
13
|
+
exports.ERC20_ABI = gasStationUtils.ERC20_ABI;
|
|
13
14
|
exports.buildContractCall = gasStationUtils.buildContractCall;
|
|
14
15
|
exports.buildETHTransfer = gasStationUtils.buildETHTransfer;
|
|
15
16
|
exports.buildETHTransferFromEther = gasStationUtils.buildETHTransferFromEther;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { GasStationClient } from './gasStationClient.mjs';
|
|
2
2
|
export { IntentBuilder } from './intentBuilder.mjs';
|
|
3
|
-
export { buildContractCall, buildETHTransfer, buildETHTransferFromEther, buildTokenApproval, buildTokenTransfer, packExecutionData } from './gasStationUtils.mjs';
|
|
3
|
+
export { ERC20_ABI, buildContractCall, buildETHTransfer, buildETHTransferFromEther, buildTokenApproval, buildTokenTransfer, packExecutionData } from './gasStationUtils.mjs';
|
|
4
4
|
export { CHAIN_PRESETS, DEFAULT_DELEGATE_CONTRACT, DEFAULT_EXECUTION_CONTRACT, createCustomPreset, getPreset } from './config.mjs';
|
|
5
5
|
export { buildIntentSigningPolicy, buildPaymasterExecutionPolicy, ensureGasStationInterface, getSmartContractInterface, uploadGasStationInterface } from './policyUtils.mjs';
|
|
6
6
|
//# sourceMappingURL=index.mjs.map
|
package/dist/intentBuilder.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type WalletClient, type Account, type Chain, type Transport, type Hex } from "viem";
|
|
2
|
-
import type { ContractCallParams, ExecutionIntent } from "./config";
|
|
2
|
+
import type { ContractCallParams, ExecutionIntent, ApprovalExecutionIntent } from "./config";
|
|
3
3
|
interface IntentBuilderConfig {
|
|
4
4
|
eoaWalletClient: WalletClient<Transport, Chain, Account>;
|
|
5
5
|
chainId: number;
|
|
@@ -55,6 +55,12 @@ export declare class IntentBuilder {
|
|
|
55
55
|
* Returns a complete ExecutionIntent ready for execution
|
|
56
56
|
*/
|
|
57
57
|
sign(currentNonce: bigint): Promise<ExecutionIntent>;
|
|
58
|
+
/**
|
|
59
|
+
* Signs an approval then execution intent using EIP-712
|
|
60
|
+
* This allows atomic approval of an ERC20 token followed by execution
|
|
61
|
+
* Returns a complete ApprovalExecutionIntent ready for execution
|
|
62
|
+
*/
|
|
63
|
+
signApprovalExecution(currentNonce: bigint, erc20Address: Hex, spender: Hex, approveAmount: bigint): Promise<ApprovalExecutionIntent>;
|
|
58
64
|
static create(config: IntentBuilderConfig): IntentBuilder;
|
|
59
65
|
}
|
|
60
66
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intentBuilder.d.ts","sourceRoot":"","sources":["../src/intentBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"intentBuilder.d.ts","sourceRoot":"","sources":["../src/intentBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAGlB,UAAU,mBAAmB;IAC3B,eAAe,EAAE,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC;CACjB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,cAAc,CAAC,CAAM;IAC7B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,mBAAmB;IAIvC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAK9B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK9B;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAKjC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAa9C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IASxD;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS5D;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAO1C;;;OAGG;IACG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyD1D;;;;OAIG;IACG,qBAAqB,CACzB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,GAAG,EACjB,OAAO,EAAE,GAAG,EACZ,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,uBAAuB,CAAC;IAoEnC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa;CAG1D"}
|
package/dist/intentBuilder.js
CHANGED
|
@@ -143,6 +143,69 @@ class IntentBuilder {
|
|
|
143
143
|
eoaAddress: this.config.eoaAddress,
|
|
144
144
|
};
|
|
145
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Signs an approval then execution intent using EIP-712
|
|
148
|
+
* This allows atomic approval of an ERC20 token followed by execution
|
|
149
|
+
* Returns a complete ApprovalExecutionIntent ready for execution
|
|
150
|
+
*/
|
|
151
|
+
async signApprovalExecution(currentNonce, erc20Address, spender, approveAmount) {
|
|
152
|
+
if (!this.outputContract) {
|
|
153
|
+
throw new Error("No target contract set. Use setTarget() or callContract()");
|
|
154
|
+
}
|
|
155
|
+
const nonce = this.nonce ?? currentNonce;
|
|
156
|
+
// Default deadline: 1 hour from now
|
|
157
|
+
const deadline = this.deadline ?? Math.floor(Date.now() / 1000) + 60 * 60;
|
|
158
|
+
// EIP-712 domain and types for approve then execute
|
|
159
|
+
const domain = {
|
|
160
|
+
name: "TKGasDelegate",
|
|
161
|
+
version: "1",
|
|
162
|
+
chainId: this.config.chainId,
|
|
163
|
+
verifyingContract: this.config.eoaAddress,
|
|
164
|
+
};
|
|
165
|
+
// Based on hashApproveThenExecute from the contract
|
|
166
|
+
// keccak256("ApproveThenExecute(uint128 nonce,uint32 deadline,address erc20Contract,address spender,uint256 approveAmount,address outputContract,uint256 ethAmount,bytes arguments)")
|
|
167
|
+
const types = {
|
|
168
|
+
ApproveThenExecute: [
|
|
169
|
+
{ name: "nonce", type: "uint128" },
|
|
170
|
+
{ name: "deadline", type: "uint32" },
|
|
171
|
+
{ name: "erc20Contract", type: "address" },
|
|
172
|
+
{ name: "spender", type: "address" },
|
|
173
|
+
{ name: "approveAmount", type: "uint256" },
|
|
174
|
+
{ name: "outputContract", type: "address" },
|
|
175
|
+
{ name: "ethAmount", type: "uint256" },
|
|
176
|
+
{ name: "arguments", type: "bytes" },
|
|
177
|
+
],
|
|
178
|
+
};
|
|
179
|
+
const message = {
|
|
180
|
+
nonce,
|
|
181
|
+
deadline,
|
|
182
|
+
erc20Contract: erc20Address,
|
|
183
|
+
spender,
|
|
184
|
+
approveAmount,
|
|
185
|
+
outputContract: this.outputContract,
|
|
186
|
+
ethAmount: this.ethAmount,
|
|
187
|
+
arguments: this.callData,
|
|
188
|
+
};
|
|
189
|
+
const signature = await this.config.eoaWalletClient.signTypedData({
|
|
190
|
+
account: this.config.eoaWalletClient.account,
|
|
191
|
+
domain,
|
|
192
|
+
types,
|
|
193
|
+
primaryType: "ApproveThenExecute",
|
|
194
|
+
message,
|
|
195
|
+
});
|
|
196
|
+
return {
|
|
197
|
+
nonce,
|
|
198
|
+
deadline,
|
|
199
|
+
outputContract: this.outputContract,
|
|
200
|
+
ethAmount: this.ethAmount,
|
|
201
|
+
callData: this.callData,
|
|
202
|
+
signature,
|
|
203
|
+
eoaAddress: this.config.eoaAddress,
|
|
204
|
+
erc20Address,
|
|
205
|
+
spender,
|
|
206
|
+
approveAmount,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
146
209
|
// Static factory method for quick intent creation
|
|
147
210
|
static create(config) {
|
|
148
211
|
return new IntentBuilder(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intentBuilder.js","sources":["../src/intentBuilder.ts"],"sourcesContent":[null],"names":["encodeFunctionData","ERC20_ABI"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"intentBuilder.js","sources":["../src/intentBuilder.ts"],"sourcesContent":[null],"names":["encodeFunctionData","ERC20_ABI"],"mappings":"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"}
|
package/dist/intentBuilder.mjs
CHANGED
|
@@ -141,6 +141,69 @@ class IntentBuilder {
|
|
|
141
141
|
eoaAddress: this.config.eoaAddress,
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Signs an approval then execution intent using EIP-712
|
|
146
|
+
* This allows atomic approval of an ERC20 token followed by execution
|
|
147
|
+
* Returns a complete ApprovalExecutionIntent ready for execution
|
|
148
|
+
*/
|
|
149
|
+
async signApprovalExecution(currentNonce, erc20Address, spender, approveAmount) {
|
|
150
|
+
if (!this.outputContract) {
|
|
151
|
+
throw new Error("No target contract set. Use setTarget() or callContract()");
|
|
152
|
+
}
|
|
153
|
+
const nonce = this.nonce ?? currentNonce;
|
|
154
|
+
// Default deadline: 1 hour from now
|
|
155
|
+
const deadline = this.deadline ?? Math.floor(Date.now() / 1000) + 60 * 60;
|
|
156
|
+
// EIP-712 domain and types for approve then execute
|
|
157
|
+
const domain = {
|
|
158
|
+
name: "TKGasDelegate",
|
|
159
|
+
version: "1",
|
|
160
|
+
chainId: this.config.chainId,
|
|
161
|
+
verifyingContract: this.config.eoaAddress,
|
|
162
|
+
};
|
|
163
|
+
// Based on hashApproveThenExecute from the contract
|
|
164
|
+
// keccak256("ApproveThenExecute(uint128 nonce,uint32 deadline,address erc20Contract,address spender,uint256 approveAmount,address outputContract,uint256 ethAmount,bytes arguments)")
|
|
165
|
+
const types = {
|
|
166
|
+
ApproveThenExecute: [
|
|
167
|
+
{ name: "nonce", type: "uint128" },
|
|
168
|
+
{ name: "deadline", type: "uint32" },
|
|
169
|
+
{ name: "erc20Contract", type: "address" },
|
|
170
|
+
{ name: "spender", type: "address" },
|
|
171
|
+
{ name: "approveAmount", type: "uint256" },
|
|
172
|
+
{ name: "outputContract", type: "address" },
|
|
173
|
+
{ name: "ethAmount", type: "uint256" },
|
|
174
|
+
{ name: "arguments", type: "bytes" },
|
|
175
|
+
],
|
|
176
|
+
};
|
|
177
|
+
const message = {
|
|
178
|
+
nonce,
|
|
179
|
+
deadline,
|
|
180
|
+
erc20Contract: erc20Address,
|
|
181
|
+
spender,
|
|
182
|
+
approveAmount,
|
|
183
|
+
outputContract: this.outputContract,
|
|
184
|
+
ethAmount: this.ethAmount,
|
|
185
|
+
arguments: this.callData,
|
|
186
|
+
};
|
|
187
|
+
const signature = await this.config.eoaWalletClient.signTypedData({
|
|
188
|
+
account: this.config.eoaWalletClient.account,
|
|
189
|
+
domain,
|
|
190
|
+
types,
|
|
191
|
+
primaryType: "ApproveThenExecute",
|
|
192
|
+
message,
|
|
193
|
+
});
|
|
194
|
+
return {
|
|
195
|
+
nonce,
|
|
196
|
+
deadline,
|
|
197
|
+
outputContract: this.outputContract,
|
|
198
|
+
ethAmount: this.ethAmount,
|
|
199
|
+
callData: this.callData,
|
|
200
|
+
signature,
|
|
201
|
+
eoaAddress: this.config.eoaAddress,
|
|
202
|
+
erc20Address,
|
|
203
|
+
spender,
|
|
204
|
+
approveAmount,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
144
207
|
// Static factory method for quick intent creation
|
|
145
208
|
static create(config) {
|
|
146
209
|
return new IntentBuilder(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intentBuilder.mjs","sources":["../src/intentBuilder.ts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"intentBuilder.mjs","sources":["../src/intentBuilder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turnkey/gas-station",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Turnkey Gas Station SDK for EIP-7702 delegated execution",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -12,6 +12,19 @@
|
|
|
12
12
|
"types": "./dist/index.d.ts"
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "Turnkey",
|
|
17
|
+
"url": "https://turnkey.com/"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/tkhq/sdk",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/tkhq/sdk/issues"
|
|
22
|
+
},
|
|
23
|
+
"repository": {
|
|
24
|
+
"type": "git",
|
|
25
|
+
"url": "git+https://github.com/tkhq/sdk.git",
|
|
26
|
+
"directory": "packages/gas-station"
|
|
27
|
+
},
|
|
15
28
|
"files": [
|
|
16
29
|
"dist"
|
|
17
30
|
],
|
|
@@ -30,11 +43,11 @@
|
|
|
30
43
|
"devDependencies": {
|
|
31
44
|
"@types/node": "^24.6.2",
|
|
32
45
|
"typescript": "^5.3.0",
|
|
33
|
-
"@turnkey/sdk-server": "4.
|
|
46
|
+
"@turnkey/sdk-server": "4.12.0"
|
|
34
47
|
},
|
|
35
48
|
"peerDependencies": {
|
|
36
49
|
"viem": "^2.24.0",
|
|
37
|
-
"@turnkey/sdk-server": "4.
|
|
50
|
+
"@turnkey/sdk-server": "4.12.0"
|
|
38
51
|
},
|
|
39
52
|
"publishConfig": {
|
|
40
53
|
"access": "public"
|