@tradestack/paymaster 1.2.40 → 1.2.41

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.
@@ -3340,7 +3340,7 @@ export declare const getPublicClient: (chainConfig: EVMChainConfig) => {
3340
3340
  authorizationList: import("viem").TransactionSerializableEIP7702["authorizationList"];
3341
3341
  } ? "eip7702" : never) | (request["type"] extends string | undefined ? Extract<request["type"], string> : never)>) ? T_12 extends "eip7702" ? import("viem").TransactionRequestEIP7702 : never : never : never)>> & {
3342
3342
  chainId?: number | undefined;
3343
- }, (request["parameters"] extends readonly import("viem").PrepareTransactionRequestParameterType[] ? request["parameters"][number] : "chainId" | "type" | "nonce" | "gas" | "blobVersionedHashes" | "fees") extends infer T_13 ? T_13 extends (request["parameters"] extends readonly import("viem").PrepareTransactionRequestParameterType[] ? request["parameters"][number] : "chainId" | "type" | "nonce" | "gas" | "blobVersionedHashes" | "fees") ? T_13 extends "fees" ? "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" : T_13 : never : never> & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">) & {
3343
+ }, (request["parameters"] extends readonly import("viem").PrepareTransactionRequestParameterType[] ? request["parameters"][number] : "chainId" | "type" | "nonce" | "blobVersionedHashes" | "gas" | "fees") extends infer T_13 ? T_13 extends (request["parameters"] extends readonly import("viem").PrepareTransactionRequestParameterType[] ? request["parameters"][number] : "chainId" | "type" | "nonce" | "blobVersionedHashes" | "gas" | "fees") ? T_13 extends "fees" ? "gasPrice" | "maxPriorityFeePerGas" | "maxFeePerGas" : T_13 : never : never> & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">) & {
3344
3344
  _capabilities?: {
3345
3345
  [x: string]: any;
3346
3346
  } | undefined;
@@ -3355,8 +3355,8 @@ export declare const getPublicClient: (chainConfig: EVMChainConfig) => {
3355
3355
  verifyHash: (args: import("viem").VerifyHashActionParameters) => Promise<import("viem").VerifyHashActionReturnType>;
3356
3356
  verifyMessage: (args: import("viem").VerifyMessageActionParameters) => Promise<import("viem").VerifyMessageActionReturnType>;
3357
3357
  verifySiweMessage: (args: {
3358
- blockNumber?: bigint | undefined | undefined;
3359
3358
  blockTag?: import("viem").BlockTag | undefined;
3359
+ blockNumber?: bigint | undefined | undefined;
3360
3360
  address?: `0x${string}` | undefined;
3361
3361
  nonce?: string | undefined | undefined;
3362
3362
  domain?: string | undefined | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"paymaster.service.d.ts","sourceRoot":"","sources":["../../../../src/backend/services/paymaster.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AAQjE,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,GAAG,EACX,cAAa,cAAwD,KACpE,OAAO,CAAC,MAAM,CA2HhB,CAAC"}
1
+ {"version":3,"file":"paymaster.service.d.ts","sourceRoot":"","sources":["../../../../src/backend/services/paymaster.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAiB,MAAM,kBAAkB,CAAC;AAQjE,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,GAAG,EACX,cAAa,cAAwD,KACpE,OAAO,CAAC,MAAM,CA0EhB,CAAC"}
@@ -1,80 +1,54 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.signUserOperation = void 0;
4
7
  const ethers_1 = require("ethers");
5
8
  const chains_1 = require("../config/chains");
9
+ const index_1 = __importDefault(require("../config/index"));
6
10
  const contract_1 = require("../contract/contract");
7
11
  const signUserOperation = async (userOp, chainConfig = chains_1.CHAIN_CONFIGS.sepolia) => {
8
- // Use SIMPLE timestamps - current time only
9
- const now = Math.floor(Date.now() / 1000);
10
- const validAfter = now - 60; // 1 minute ago
11
- const validUntil = now + 300; // 5 minutes from now (short expiry for testing)
12
- console.log(`[${chainConfig.name}] NOW: ${now}, validAfter: ${validAfter}, validUntil: ${validUntil}`);
12
+ const validAfter = Math.floor(Date.now() / 1000);
13
+ const validUntil = validAfter + index_1.default.signatureExpirySeconds;
13
14
  const paymasterContract = (0, contract_1.getPaymasterContract)(chainConfig);
14
15
  const provider = (0, contract_1.getProvider)(chainConfig);
15
16
  const connectedSigner = contract_1.signer.connect(provider);
16
- // Verify signer
17
- const signerAddress = await connectedSigner.getAddress();
18
- const expectedSigner = await paymasterContract.signerAddress();
19
- console.log(`[${chainConfig.name}] Signer: ${signerAddress}, Expected: ${expectedSigner}`);
20
- if (signerAddress.toLowerCase() !== expectedSigner.toLowerCase()) {
21
- throw new Error(`Signer mismatch!`);
22
- }
23
- // Get deposit status
24
- const deposit = await paymasterContract.getDeposit();
25
- console.log(`[${chainConfig.name}] Paymaster deposit: ${ethers_1.ethers.formatEther(deposit)} MNT`);
26
- // Handle initCode
27
- const initCode = userOp.factory && userOp.factory !== "0x"
17
+ const initCode = userOp.factory
28
18
  ? ethers_1.ethers.concat([userOp.factory, userOp.factoryData || "0x"])
29
19
  : "0x";
30
- // SIMPLE: Use fixed 32-byte values for gas fields
31
- // accountGasLimits = (verificationGasLimit << 128) | callGasLimit
32
- const verificationGasLimit = 250000n;
33
- const callGasLimit = 50000n;
20
+ const verificationGasLimit = BigInt(userOp.verificationGasLimit || 0);
21
+ const callGasLimit = BigInt(userOp.callGasLimit || 0);
34
22
  const accountGasLimits = ethers_1.ethers.zeroPadValue(ethers_1.ethers.toBeHex((verificationGasLimit << 128n) | callGasLimit), 32);
35
- // gasFees = (maxPriorityFeePerGas << 128) | maxFeePerGas
36
- const maxPriorityFeePerGas = 1000000000n; // 1 gwei
37
- const maxFeePerGas = 1000000000n; // 1 gwei
23
+ const maxPriorityFeePerGas = BigInt(userOp.maxPriorityFeePerGas || 0);
24
+ const maxFeePerGas = BigInt(userOp.maxFeePerGas || 0);
38
25
  const gasFees = ethers_1.ethers.zeroPadValue(ethers_1.ethers.toBeHex((maxPriorityFeePerGas << 128n) | maxFeePerGas), 32);
39
- // Paymaster gas limits
40
- const paymasterVerificationGasLimit = 250000n;
41
- const paymasterPostOpGasLimit = 150000n;
26
+ const paymasterVerificationGasLimit = 200000n;
27
+ const paymasterPostOpGasLimit = 100000n;
42
28
  const paymasterGasLimitsPacked = ethers_1.ethers.zeroPadValue(ethers_1.ethers.toBeHex((paymasterVerificationGasLimit << 128n) | paymasterPostOpGasLimit), 32);
43
- // Encode timestamps
44
- const timestampData = ethers_1.ethers.AbiCoder.defaultAbiCoder().encode(["uint48", "uint48"], [validUntil, validAfter]);
45
- // Create paymasterAndData with empty signature for hash
46
- const emptySignature = "0x" + "00".repeat(65);
47
29
  const paymasterAndDataForHash = ethers_1.ethers.concat([
48
30
  chainConfig.paymasterAddress,
49
31
  paymasterGasLimitsPacked,
50
- timestampData,
51
- emptySignature,
32
+ ethers_1.ethers.AbiCoder.defaultAbiCoder().encode(["uint48", "uint48"], [validUntil, validAfter]),
33
+ "0x" + "00".repeat(65),
52
34
  ]);
53
- // Prepare user operation for hash
54
- const packedUserOp = {
35
+ const hash = await paymasterContract.getHash({
55
36
  sender: userOp.sender,
56
- nonce: BigInt(userOp.nonce),
57
- initCode: initCode,
37
+ nonce: userOp.nonce,
38
+ initCode,
58
39
  callData: userOp.callData,
59
- accountGasLimits: accountGasLimits,
60
- preVerificationGas: BigInt(userOp.preVerificationGas || 50000),
61
- gasFees: gasFees,
40
+ accountGasLimits,
41
+ preVerificationGas: userOp.preVerificationGas || 0,
42
+ gasFees,
62
43
  paymasterAndData: paymasterAndDataForHash,
63
- signature: "0x",
64
- };
65
- // Get hash from contract
66
- const hash = await paymasterContract.getHash(packedUserOp, validUntil, validAfter);
67
- console.log(`[${chainConfig.name}] Hash: ${hash}`);
68
- // Sign
44
+ signature: userOp.signature || "0x",
45
+ }, validUntil, validAfter);
46
+ console.log(`[${chainConfig.name}] Hash from contract getHash: ${hash}`);
69
47
  const signature = await connectedSigner.signMessage(ethers_1.ethers.getBytes(hash));
70
- console.log(`[${chainConfig.name}] Signature: ${signature.substring(0, 66)}...`);
71
- // Build final paymasterData (NO address, just gas limits + timestamps + signature)
72
48
  const paymasterData = ethers_1.ethers.concat([
73
- paymasterGasLimitsPacked,
74
- timestampData,
49
+ ethers_1.ethers.AbiCoder.defaultAbiCoder().encode(["uint48", "uint48"], [validUntil, validAfter]),
75
50
  signature,
76
51
  ]);
77
- console.log(`[${chainConfig.name}] paymasterData length: ${paymasterData.length / 2} bytes`);
78
52
  return paymasterData;
79
53
  };
80
54
  exports.signUserOperation = signUserOperation;
@@ -1 +1 @@
1
- {"version":3,"file":"paymaster.service.js","sourceRoot":"","sources":["../../../../src/backend/services/paymaster.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paymaster.service.js","sourceRoot":"","sources":["../../../../src/backend/services/paymaster.service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tradestack/paymaster",
3
- "version": "1.2.40",
3
+ "version": "1.2.41",
4
4
  "description": "Multi-chain sweep and paymaster SDK: EVM, Solana, Tron. Gasless transactions for your users.",
5
5
  "main": "dist/sdk/index.js",
6
6
  "types": "dist/sdk/index.d.ts",