@tradestack/paymaster 1.0.22

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 (85) hide show
  1. package/README.md +276 -0
  2. package/dist/backend/config/chains.d.ts +18 -0
  3. package/dist/backend/config/chains.d.ts.map +1 -0
  4. package/dist/backend/config/chains.js +45 -0
  5. package/dist/backend/config/chains.js.map +1 -0
  6. package/dist/backend/config/constants.d.ts +58 -0
  7. package/dist/backend/config/constants.d.ts.map +1 -0
  8. package/dist/backend/config/constants.js +165 -0
  9. package/dist/backend/config/constants.js.map +1 -0
  10. package/dist/backend/config/db.context.d.ts +5 -0
  11. package/dist/backend/config/db.context.d.ts.map +1 -0
  12. package/dist/backend/config/db.context.js +63 -0
  13. package/dist/backend/config/db.context.js.map +1 -0
  14. package/dist/backend/config/db.d.ts +5 -0
  15. package/dist/backend/config/db.d.ts.map +1 -0
  16. package/dist/backend/config/db.js +35 -0
  17. package/dist/backend/config/db.js.map +1 -0
  18. package/dist/backend/config/index.d.ts +16 -0
  19. package/dist/backend/config/index.d.ts.map +1 -0
  20. package/dist/backend/config/index.js +44 -0
  21. package/dist/backend/config/index.js.map +1 -0
  22. package/dist/backend/contract/abi/ERC20Abi.json +413 -0
  23. package/dist/backend/contract/abi/HalalPaymasterAbi.json +544 -0
  24. package/dist/backend/contract/abi/entryPointAbi.json +166 -0
  25. package/dist/backend/contract/constant.d.ts +4 -0
  26. package/dist/backend/contract/constant.d.ts.map +1 -0
  27. package/dist/backend/contract/constant.js +7 -0
  28. package/dist/backend/contract/constant.js.map +1 -0
  29. package/dist/backend/contract/contract.d.ts +11 -0
  30. package/dist/backend/contract/contract.d.ts.map +1 -0
  31. package/dist/backend/contract/contract.js +34 -0
  32. package/dist/backend/contract/contract.js.map +1 -0
  33. package/dist/backend/helper/hotwallet.d.ts +4 -0
  34. package/dist/backend/helper/hotwallet.d.ts.map +1 -0
  35. package/dist/backend/helper/hotwallet.js +25 -0
  36. package/dist/backend/helper/hotwallet.js.map +1 -0
  37. package/dist/backend/services/chains/evm.service.d.ts +5760 -0
  38. package/dist/backend/services/chains/evm.service.d.ts.map +1 -0
  39. package/dist/backend/services/chains/evm.service.js +263 -0
  40. package/dist/backend/services/chains/evm.service.js.map +1 -0
  41. package/dist/backend/services/chains/solana.service.d.ts +15 -0
  42. package/dist/backend/services/chains/solana.service.d.ts.map +1 -0
  43. package/dist/backend/services/chains/solana.service.js +192 -0
  44. package/dist/backend/services/chains/solana.service.js.map +1 -0
  45. package/dist/backend/services/chains/tron.service.d.ts +14 -0
  46. package/dist/backend/services/chains/tron.service.d.ts.map +1 -0
  47. package/dist/backend/services/chains/tron.service.js +255 -0
  48. package/dist/backend/services/chains/tron.service.js.map +1 -0
  49. package/dist/backend/services/paymaster.service.d.ts +3 -0
  50. package/dist/backend/services/paymaster.service.d.ts.map +1 -0
  51. package/dist/backend/services/paymaster.service.js +55 -0
  52. package/dist/backend/services/paymaster.service.js.map +1 -0
  53. package/dist/backend/services/sweep.service.d.ts +14 -0
  54. package/dist/backend/services/sweep.service.d.ts.map +1 -0
  55. package/dist/backend/services/sweep.service.js +103 -0
  56. package/dist/backend/services/sweep.service.js.map +1 -0
  57. package/dist/backend/services/sweep.worker.d.ts +11 -0
  58. package/dist/backend/services/sweep.worker.d.ts.map +1 -0
  59. package/dist/backend/services/sweep.worker.js +163 -0
  60. package/dist/backend/services/sweep.worker.js.map +1 -0
  61. package/dist/backend/services/sweeper/evm.sweep.service.d.ts +13 -0
  62. package/dist/backend/services/sweeper/evm.sweep.service.d.ts.map +1 -0
  63. package/dist/backend/services/sweeper/evm.sweep.service.js +61 -0
  64. package/dist/backend/services/sweeper/evm.sweep.service.js.map +1 -0
  65. package/dist/backend/services/sweeper/solana.sweep.service.d.ts +13 -0
  66. package/dist/backend/services/sweeper/solana.sweep.service.d.ts.map +1 -0
  67. package/dist/backend/services/sweeper/solana.sweep.service.js +45 -0
  68. package/dist/backend/services/sweeper/solana.sweep.service.js.map +1 -0
  69. package/dist/backend/services/sweeper/tron.sweep.service.d.ts +13 -0
  70. package/dist/backend/services/sweeper/tron.sweep.service.d.ts.map +1 -0
  71. package/dist/backend/services/sweeper/tron.sweep.service.js +45 -0
  72. package/dist/backend/services/sweeper/tron.sweep.service.js.map +1 -0
  73. package/dist/sdk/db/adapter.d.ts +25 -0
  74. package/dist/sdk/db/adapter.d.ts.map +1 -0
  75. package/dist/sdk/db/adapter.js +145 -0
  76. package/dist/sdk/db/adapter.js.map +1 -0
  77. package/dist/sdk/index.d.ts +27 -0
  78. package/dist/sdk/index.d.ts.map +1 -0
  79. package/dist/sdk/index.js +274 -0
  80. package/dist/sdk/index.js.map +1 -0
  81. package/dist/sdk/types.d.ts +66 -0
  82. package/dist/sdk/types.d.ts.map +1 -0
  83. package/dist/sdk/types.js +3 -0
  84. package/dist/sdk/types.js.map +1 -0
  85. package/package.json +55 -0
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.HalalPaymaster = void 0;
40
+ const events_1 = require("events");
41
+ const adapter_1 = require("./db/adapter");
42
+ const chains_1 = require("../backend/config/chains");
43
+ const db_context_1 = require("../backend/config/db.context");
44
+ const chains_2 = require("../backend/config/chains");
45
+ const HalalPaymasterAbi_json_1 = __importDefault(require("../backend/contract/abi/HalalPaymasterAbi.json"));
46
+ const entryPointAbi_json_1 = __importDefault(require("../backend/contract/abi/entryPointAbi.json"));
47
+ const ethers_1 = require("ethers");
48
+ class HalalPaymaster extends events_1.EventEmitter {
49
+ constructor(config) {
50
+ super(); // ← call super
51
+ this.workers = new Map();
52
+ this.running = false;
53
+ // save original console methods for restore on stop
54
+ this.originalLog = console.log.bind(console);
55
+ this.originalError = console.error.bind(console);
56
+ this.originalWarn = console.warn.bind(console);
57
+ this.isLogging = false; // ← class property here
58
+ this.validateConfig(config);
59
+ this.config = config;
60
+ this.db = new adapter_1.DBAdapter(config.database.url, config.database.type, config.database.tables);
61
+ (0, db_context_1.setDBAdapter)(this.db);
62
+ process.env.HD_MNEMONIC = config.keys.hdMnemonic;
63
+ process.env.SIGNER_PRIVATE_KEY = config.keys.evmSignerKey;
64
+ process.env.SOLANA_FEE_PAYER_PRIVATE_KEY = config.keys.solanaFeePayerKey;
65
+ process.env.TRON_FEE_PAYER_PRIVATE_KEY = config.keys.tronFeePayerKey;
66
+ process.env.ALCHEMY_API_KEY = config.keys.alchemyApiKey;
67
+ process.env.PIMLICO_API_KEY = config.keys.pimlicoApiKey;
68
+ process.env.EVM_HOT_WALLET = config.hotWallets.evm;
69
+ process.env.SOLANA_HOT_WALLET_ADDRESS = config.hotWallets.solana;
70
+ process.env.TRON_HOT_WALLET_ADDRESS = config.hotWallets.tron;
71
+ process.env.DATABASE_URL = config.database.url;
72
+ process.env.SWEEP_THRESHOLD_USD = String(config.sweepThresholdUSD ?? 1);
73
+ }
74
+ validateConfig(config) {
75
+ if (!config.database?.url)
76
+ throw new Error("[SDK] database.url is required");
77
+ if (!config.database?.type)
78
+ throw new Error("[SDK] database.type is required");
79
+ if (!config.keys?.hdMnemonic)
80
+ throw new Error("[SDK] keys.hdMnemonic is required");
81
+ if (!config.keys?.evmSignerKey)
82
+ throw new Error("[SDK] keys.evmSignerKey is required");
83
+ if (!config.keys?.solanaFeePayerKey)
84
+ throw new Error("[SDK] keys.solanaFeePayerKey is required");
85
+ if (!config.keys?.tronFeePayerKey)
86
+ throw new Error("[SDK] keys.tronFeePayerKey is required");
87
+ if (!config.hotWallets?.evm)
88
+ throw new Error("[SDK] hotWallets.evm is required");
89
+ if (!config.hotWallets?.solana)
90
+ throw new Error("[SDK] hotWallets.solana is required");
91
+ if (!config.hotWallets?.tron)
92
+ throw new Error("[SDK] hotWallets.tron is required");
93
+ if (!config.chains?.length)
94
+ throw new Error("[SDK] at least one chain is required");
95
+ }
96
+ async start() {
97
+ if (this.running) {
98
+ console.warn("[SDK] Already running");
99
+ return;
100
+ }
101
+ // in start():
102
+ console.log = (...args) => {
103
+ this.originalLog(...args);
104
+ if (this.isLogging)
105
+ return;
106
+ this.isLogging = true;
107
+ this.emit("log", {
108
+ chain: "system",
109
+ level: "info",
110
+ message: args.join(" "),
111
+ timestamp: new Date(),
112
+ });
113
+ this.isLogging = false;
114
+ };
115
+ console.error = (...args) => {
116
+ this.originalError(...args);
117
+ if (this.isLogging)
118
+ return;
119
+ this.isLogging = true;
120
+ this.emit("log", {
121
+ chain: "system",
122
+ level: "error",
123
+ message: args.join(" "),
124
+ timestamp: new Date(),
125
+ });
126
+ this.isLogging = false;
127
+ };
128
+ console.warn = (...args) => {
129
+ this.originalWarn(...args);
130
+ if (this.isLogging)
131
+ return;
132
+ this.isLogging = true;
133
+ this.emit("log", {
134
+ chain: "system",
135
+ level: "warn",
136
+ message: args.join(" "),
137
+ timestamp: new Date(),
138
+ });
139
+ this.isLogging = false;
140
+ };
141
+ await this.db.connect();
142
+ this.running = true;
143
+ const intervalMs = (this.config.sweepInterval ?? 300) * 1000;
144
+ for (const chainKey of this.config.chains) {
145
+ const chainConfig = chains_1.CHAIN_CONFIGS[chainKey];
146
+ if (!chainConfig) {
147
+ console.warn(`[SDK] Unknown chain: ${chainKey}, skipping`);
148
+ continue;
149
+ }
150
+ console.log(`[SDK] Starting sweep worker for ${chainConfig.name}`);
151
+ await this.runSweepCycle(chainKey);
152
+ const timer = setInterval(async () => {
153
+ await this.runSweepCycle(chainKey);
154
+ }, intervalMs);
155
+ this.workers.set(chainKey, timer);
156
+ }
157
+ process.on("SIGINT", () => this.stop());
158
+ process.on("SIGTERM", () => this.stop());
159
+ }
160
+ async runSweepCycle(chainKey) {
161
+ try {
162
+ const { runSweepCycle } = await Promise.resolve().then(() => __importStar(require("../backend/services/sweep.worker")));
163
+ const chainConfig = chains_1.CHAIN_CONFIGS[chainKey];
164
+ await runSweepCycle(chainConfig, {
165
+ onSweepComplete: async (event) => {
166
+ await this.db.recordSweepSuccess(event.address, event.chain, event.token, event.amount, event.txHash);
167
+ this.emit("sweep:complete", event);
168
+ if (this.config.onSweepComplete) {
169
+ await this.config.onSweepComplete(event);
170
+ }
171
+ },
172
+ onSweepFailed: async (event) => {
173
+ await this.db.recordSweepFailure(event.address, event.chain, event.token, event.error);
174
+ this.emit("sweep:failed", event);
175
+ if (this.config.onSweepFailed) {
176
+ await this.config.onSweepFailed(event);
177
+ }
178
+ },
179
+ });
180
+ }
181
+ catch (err) {
182
+ console.error(`[SDK] Sweep cycle error for ${chainKey}:`, err);
183
+ }
184
+ }
185
+ async stop() {
186
+ if (!this.running)
187
+ return; // ← guard against double stop
188
+ console.log("[SDK] Stopping sweep workers...");
189
+ this.running = false;
190
+ for (const [chainKey, timer] of this.workers) {
191
+ clearInterval(timer);
192
+ console.log(`[SDK] Stopped worker for ${chainKey}`);
193
+ }
194
+ this.workers.clear();
195
+ await this.db.disconnect();
196
+ console.log("[SDK] All workers stopped");
197
+ // restore original console
198
+ console.log = this.originalLog;
199
+ console.error = this.originalError;
200
+ console.warn = this.originalWarn;
201
+ }
202
+ async depositToPaymaster(chainKey, depositAmountEth, stakeAmountEth, unstakeDelaySec = 86400) {
203
+ const chainConfig = chains_1.CHAIN_CONFIGS[chainKey];
204
+ if (!chainConfig)
205
+ throw new Error(`Unknown chain: ${chainKey}`);
206
+ if (!(0, chains_2.isEVMConfig)(chainConfig))
207
+ throw new Error(`depositToPaymaster only works for EVM chains`);
208
+ if (!chainConfig.paymasterAddress)
209
+ throw new Error(`No paymaster address configured for ${chainConfig.name}`);
210
+ const signerKey = process.env.SIGNER_PRIVATE_KEY;
211
+ if (!signerKey)
212
+ throw new Error("SIGNER_PRIVATE_KEY not set");
213
+ const provider = new ethers_1.ethers.JsonRpcProvider(chainConfig.rpcUrl);
214
+ const signer = new ethers_1.ethers.Wallet(signerKey, provider);
215
+ const paymasterContract = new ethers_1.ethers.Contract(chainConfig.paymasterAddress, HalalPaymasterAbi_json_1.default, signer);
216
+ const entryPoint = new ethers_1.ethers.Contract(chainConfig.entryPointAddress, entryPointAbi_json_1.default, provider);
217
+ // ─── deposit ───────────────────────────────────────────────────────────
218
+ console.log(`[${chainConfig.name}] Simulating deposit of ${depositAmountEth} ETH...`);
219
+ await paymasterContract.deposit.staticCall({
220
+ value: ethers_1.ethers.parseEther(depositAmountEth),
221
+ });
222
+ console.log(`[${chainConfig.name}] Deposit simulation passed`);
223
+ console.log(`[${chainConfig.name}] Depositing ${depositAmountEth} ETH into paymaster...`);
224
+ const depositTx = await paymasterContract.deposit({
225
+ value: ethers_1.ethers.parseEther(depositAmountEth),
226
+ });
227
+ await depositTx.wait();
228
+ console.log(`[${chainConfig.name}] Deposited ${depositAmountEth} ETH | tx: ${depositTx.hash}`);
229
+ // ─── stake only if amount > 0 ──────────────────────────────────────────
230
+ let stakeTxHash = "";
231
+ if (parseFloat(stakeAmountEth) > 0) {
232
+ console.log(`[${chainConfig.name}] Simulating stake of ${stakeAmountEth} ETH...`);
233
+ await paymasterContract.addStake.staticCall(unstakeDelaySec, {
234
+ value: ethers_1.ethers.parseEther(stakeAmountEth),
235
+ });
236
+ console.log(`[${chainConfig.name}] Stake simulation passed`);
237
+ console.log(`[${chainConfig.name}] Staking ${stakeAmountEth} ETH...`);
238
+ const stakeTx = await paymasterContract.addStake(unstakeDelaySec, {
239
+ value: ethers_1.ethers.parseEther(stakeAmountEth),
240
+ });
241
+ await stakeTx.wait();
242
+ stakeTxHash = stakeTx.hash;
243
+ console.log(`[${chainConfig.name}] Staked ${stakeAmountEth} ETH | tx: ${stakeTxHash}`);
244
+ }
245
+ else {
246
+ console.log(`[${chainConfig.name}] Skipping stake`);
247
+ }
248
+ // ─── check balance ──────────────────────────────────────────────────────
249
+ const balance = await entryPoint.balanceOf(chainConfig.paymasterAddress);
250
+ const currentBalance = ethers_1.ethers.formatEther(balance);
251
+ console.log(`[${chainConfig.name}] Paymaster balance: ${currentBalance} ETH`);
252
+ return {
253
+ depositTxHash: depositTx.hash,
254
+ stakeTxHash,
255
+ currentBalance,
256
+ };
257
+ }
258
+ async getPaymasterBalance(chainKey) {
259
+ const chainConfig = chains_1.CHAIN_CONFIGS[chainKey];
260
+ if (!chainConfig || !(0, chains_2.isEVMConfig)(chainConfig))
261
+ throw new Error(`getPaymasterBalance only works for EVM chains`);
262
+ if (!chainConfig.paymasterAddress)
263
+ throw new Error(`No paymaster address configured for ${chainConfig.name}`);
264
+ const provider = new ethers_1.ethers.JsonRpcProvider(chainConfig.rpcUrl);
265
+ const entryPoint = new ethers_1.ethers.Contract(chainConfig.entryPointAddress, entryPointAbi_json_1.default, provider);
266
+ const balance = await entryPoint.balanceOf(chainConfig.paymasterAddress);
267
+ return ethers_1.ethers.formatEther(balance);
268
+ }
269
+ async getSweepHistory(address) {
270
+ return this.db.getSweepHistory(address);
271
+ }
272
+ }
273
+ exports.HalalPaymaster = HalalPaymaster;
274
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sdk/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { ChainKey } from "../backend/config/constants";
2
+ export interface WalletTableConfig {
3
+ tableName?: string;
4
+ addressColumn?: string;
5
+ chainColumn?: string;
6
+ hdIndexColumn?: string;
7
+ isActiveColumn?: string;
8
+ }
9
+ export interface SweepHistoryTableConfig {
10
+ tableName?: string;
11
+ }
12
+ export interface TableConfig {
13
+ wallets?: WalletTableConfig;
14
+ sweepHistory?: SweepHistoryTableConfig;
15
+ }
16
+ export interface DatabaseConfig {
17
+ url: string;
18
+ type: "mysql" | "postgresql";
19
+ tables?: TableConfig;
20
+ }
21
+ export interface KeysConfig {
22
+ hdMnemonic: string;
23
+ evmSignerKey: string;
24
+ solanaFeePayerKey: string;
25
+ tronFeePayerKey: string;
26
+ pimlicoApiKey: string;
27
+ alchemyApiKey: string;
28
+ }
29
+ export interface HotWalletsConfig {
30
+ evm: string;
31
+ solana: string;
32
+ tron: string;
33
+ }
34
+ export interface SweepCompleteEvent {
35
+ address: string;
36
+ chain: string;
37
+ token: string;
38
+ amount: string;
39
+ txHash: string;
40
+ timestamp: Date;
41
+ }
42
+ export interface SweepFailedEvent {
43
+ address: string;
44
+ chain: string;
45
+ token: string;
46
+ error: string;
47
+ timestamp: Date;
48
+ }
49
+ export interface SweepLogEvent {
50
+ chain: string;
51
+ level: "info" | "warn" | "error";
52
+ message: string;
53
+ timestamp: Date;
54
+ data?: any;
55
+ }
56
+ export interface HalalPaymasterConfig {
57
+ database: DatabaseConfig;
58
+ keys: KeysConfig;
59
+ hotWallets: HotWalletsConfig;
60
+ chains: ChainKey[];
61
+ sweepInterval?: number;
62
+ sweepThresholdUSD?: number;
63
+ onSweepComplete?: (event: SweepCompleteEvent) => Promise<void>;
64
+ onSweepFailed?: (event: SweepFailedEvent) => Promise<void>;
65
+ }
66
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sdk/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAKvD,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACxC;AAGD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;CACjB;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/sdk/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@tradestack/paymaster",
3
+ "version": "1.0.22",
4
+ "description": "Multi-chain sweep and paymaster SDK: EVM, Solana, Tron. Gasless transactions for your users.",
5
+ "main": "dist/sdk/index.js",
6
+ "types": "dist/sdk/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsc --project tsconfig.json",
13
+ "publish:npm": "npm run build && npm publish --access public"
14
+ },
15
+ "keywords": [
16
+ "tron",
17
+ "solana",
18
+ "evm",
19
+ "paymaster",
20
+ "sweep",
21
+ "crypto",
22
+ "usdt",
23
+ "usdc",
24
+ "halal",
25
+ "gasless",
26
+ "account-abstraction",
27
+ "erc-4337"
28
+ ],
29
+ "author": "Tradestack",
30
+ "license": "MIT",
31
+ "dependencies": {
32
+ "@solana/spl-token": "^0.4.14",
33
+ "@solana/web3.js": "^1.98.4",
34
+ "bs58": "^5.0.0",
35
+ "ed25519-hd-key": "^1.3.0",
36
+ "ethers": "^6.16.0",
37
+ "mysql2": "^3.20.0",
38
+ "permissionless": "^0.3.4",
39
+ "pg": "^8.20.0",
40
+ "tronweb": "^5.3.5",
41
+ "viem": "^2.47.6"
42
+ },
43
+ "devDependencies": {
44
+ "@types/node": "^25.5.0",
45
+ "@types/pg": "^8.20.0",
46
+ "typescript": "^6.0.2"
47
+ },
48
+ "peerDependencies": {
49
+ "mysql2": "^3.0.0",
50
+ "pg": "^8.0.0"
51
+ },
52
+ "engines": {
53
+ "node": ">=18.0.0"
54
+ }
55
+ }