@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,166 @@
1
+ [
2
+ {
3
+ "name": "depositTo",
4
+ "inputs": [{ "name": "account", "type": "address" }],
5
+ "outputs": [],
6
+ "stateMutability": "payable",
7
+ "type": "function"
8
+ },
9
+ {
10
+ "name": "withdrawTo",
11
+ "inputs": [
12
+ { "name": "withdrawAddress", "type": "address" },
13
+ { "name": "withdrawAmount", "type": "uint256" }
14
+ ],
15
+ "outputs": [],
16
+ "stateMutability": "nonpayable",
17
+ "type": "function"
18
+ },
19
+ {
20
+ "name": "balanceOf",
21
+ "inputs": [{ "name": "account", "type": "address" }],
22
+ "outputs": [{ "name": "", "type": "uint256" }],
23
+ "stateMutability": "view",
24
+ "type": "function"
25
+ },
26
+ {
27
+ "name": "addStake",
28
+ "inputs": [{ "name": "unstakeDelaySec", "type": "uint32" }],
29
+ "outputs": [],
30
+ "stateMutability": "payable",
31
+ "type": "function"
32
+ },
33
+ {
34
+ "name": "unlockStake",
35
+ "inputs": [],
36
+ "outputs": [],
37
+ "stateMutability": "nonpayable",
38
+ "type": "function"
39
+ },
40
+ {
41
+ "name": "withdrawStake",
42
+ "inputs": [{ "name": "withdrawAddress", "type": "address" }],
43
+ "outputs": [],
44
+ "stateMutability": "nonpayable",
45
+ "type": "function"
46
+ },
47
+ {
48
+ "name": "getDepositInfo",
49
+ "inputs": [{ "name": "account", "type": "address" }],
50
+ "outputs": [
51
+ {
52
+ "name": "info",
53
+ "type": "tuple",
54
+ "components": [
55
+ { "name": "deposit", "type": "uint256" },
56
+ { "name": "staked", "type": "bool" },
57
+ { "name": "stake", "type": "uint112" },
58
+ { "name": "unstakeDelaySec", "type": "uint32" },
59
+ { "name": "withdrawTime", "type": "uint48" }
60
+ ]
61
+ }
62
+ ],
63
+ "stateMutability": "view",
64
+ "type": "function"
65
+ },
66
+ {
67
+ "name": "handleOps",
68
+ "inputs": [
69
+ {
70
+ "name": "ops",
71
+ "type": "tuple[]",
72
+ "components": [
73
+ { "name": "sender", "type": "address" },
74
+ { "name": "nonce", "type": "uint256" },
75
+ { "name": "initCode", "type": "bytes" },
76
+ { "name": "callData", "type": "bytes" },
77
+ { "name": "accountGasLimits", "type": "bytes32" },
78
+ { "name": "preVerificationGas", "type": "uint256" },
79
+ { "name": "gasFees", "type": "bytes32" },
80
+ { "name": "paymasterAndData", "type": "bytes" },
81
+ { "name": "signature", "type": "bytes" }
82
+ ]
83
+ },
84
+ { "name": "beneficiary", "type": "address" }
85
+ ],
86
+ "outputs": [],
87
+ "stateMutability": "nonpayable",
88
+ "type": "function"
89
+ },
90
+ {
91
+ "name": "getNonce",
92
+ "inputs": [
93
+ { "name": "sender", "type": "address" },
94
+ { "name": "key", "type": "uint192" }
95
+ ],
96
+ "outputs": [{ "name": "nonce", "type": "uint256" }],
97
+ "stateMutability": "view",
98
+ "type": "function"
99
+ },
100
+ {
101
+ "name": "Deposited",
102
+ "inputs": [
103
+ { "name": "account", "type": "address", "indexed": true },
104
+ { "name": "totalDeposit", "type": "uint256", "indexed": false }
105
+ ],
106
+ "type": "event"
107
+ },
108
+ {
109
+ "name": "Withdrawn",
110
+ "inputs": [
111
+ { "name": "account", "type": "address", "indexed": true },
112
+ { "name": "withdrawAddress", "type": "address", "indexed": false },
113
+ { "name": "amount", "type": "uint256", "indexed": false }
114
+ ],
115
+ "type": "event"
116
+ },
117
+ {
118
+ "name": "StakeLocked",
119
+ "inputs": [
120
+ { "name": "account", "type": "address", "indexed": true },
121
+ { "name": "totalStaked", "type": "uint256", "indexed": false },
122
+ { "name": "unstakeDelaySec", "type": "uint256", "indexed": false }
123
+ ],
124
+ "type": "event"
125
+ },
126
+ {
127
+ "name": "StakeUnlocked",
128
+ "inputs": [
129
+ { "name": "account", "type": "address", "indexed": true },
130
+ { "name": "withdrawTime", "type": "uint256", "indexed": false }
131
+ ],
132
+ "type": "event"
133
+ },
134
+ {
135
+ "name": "StakeWithdrawn",
136
+ "inputs": [
137
+ { "name": "account", "type": "address", "indexed": true },
138
+ { "name": "withdrawAddress", "type": "address", "indexed": false },
139
+ { "name": "amount", "type": "uint256", "indexed": false }
140
+ ],
141
+ "type": "event"
142
+ },
143
+ {
144
+ "name": "UserOperationEvent",
145
+ "inputs": [
146
+ { "name": "userOpHash", "type": "bytes32", "indexed": true },
147
+ { "name": "sender", "type": "address", "indexed": true },
148
+ { "name": "paymaster", "type": "address", "indexed": true },
149
+ { "name": "nonce", "type": "uint256", "indexed": false },
150
+ { "name": "success", "type": "bool", "indexed": false },
151
+ { "name": "actualGasCost", "type": "uint256", "indexed": false },
152
+ { "name": "actualGasUsed", "type": "uint256", "indexed": false }
153
+ ],
154
+ "type": "event"
155
+ },
156
+ {
157
+ "name": "UserOperationRevertReason",
158
+ "inputs": [
159
+ { "name": "userOpHash", "type": "bytes32", "indexed": true },
160
+ { "name": "sender", "type": "address", "indexed": true },
161
+ { "name": "nonce", "type": "uint256", "indexed": false },
162
+ { "name": "revertReason", "type": "bytes", "indexed": false }
163
+ ],
164
+ "type": "event"
165
+ }
166
+ ]
@@ -0,0 +1,4 @@
1
+ export declare const USDC_DECIMAL = 6;
2
+ export declare const USDT_DECIMAL = 6;
3
+ export declare const ETH_MIN_THRESHOLD = 0.01;
4
+ //# sourceMappingURL=constant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../../src/backend/contract/constant.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,iBAAiB,OAAO,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ETH_MIN_THRESHOLD = exports.USDT_DECIMAL = exports.USDC_DECIMAL = void 0;
4
+ exports.USDC_DECIMAL = 6;
5
+ exports.USDT_DECIMAL = 6;
6
+ exports.ETH_MIN_THRESHOLD = 0.01;
7
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../../../src/backend/contract/constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,CAAC,CAAC;AACjB,QAAA,YAAY,GAAG,CAAC,CAAC;AACjB,QAAA,iBAAiB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { ethers } from "ethers";
2
+ import { ChainConfig } from "../config/chains";
3
+ import ERC20_ABI from "./abi/ERC20Abi.json";
4
+ declare const signer: ethers.Wallet;
5
+ declare const getProvider: (chainConfig: ChainConfig) => ethers.JsonRpcProvider;
6
+ declare const getPaymasterContract: (chainConfig: ChainConfig) => ethers.Contract;
7
+ declare const getTokenContract: (tokenAddress: string, chainConfig: ChainConfig) => ethers.Contract;
8
+ declare const provider: ethers.JsonRpcProvider;
9
+ declare const paymasterContract: ethers.Contract;
10
+ export { signer, provider, paymasterContract, ERC20_ABI, getProvider, getPaymasterContract, getTokenContract, };
11
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/backend/contract/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAG9D,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAE5C,QAAA,MAAM,MAAM,eAA6C,CAAC;AAE1D,QAAA,MAAM,WAAW,GAAI,aAAa,WAAW,KAAG,MAAM,CAAC,eAEtD,CAAC;AAEF,QAAA,MAAM,oBAAoB,GAAI,aAAa,WAAW,KAAG,MAAM,CAAC,QAO/D,CAAC;AAEF,QAAA,MAAM,gBAAgB,GACpB,cAAc,MAAM,EACpB,aAAa,WAAW,KACvB,MAAM,CAAC,QAGT,CAAC;AAGF,QAAA,MAAM,QAAQ,wBAAqC,CAAC;AACpD,QAAA,MAAM,iBAAiB,iBAA8C,CAAC;AAEtE,OAAO,EACL,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getTokenContract = exports.getPaymasterContract = exports.getProvider = exports.ERC20_ABI = exports.paymasterContract = exports.provider = exports.signer = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const chains_1 = require("../config/chains");
9
+ const index_1 = __importDefault(require("../config/index"));
10
+ const HalalPaymasterAbi_json_1 = __importDefault(require("./abi/HalalPaymasterAbi.json"));
11
+ const ERC20Abi_json_1 = __importDefault(require("./abi/ERC20Abi.json"));
12
+ exports.ERC20_ABI = ERC20Abi_json_1.default;
13
+ const signer = new ethers_1.ethers.Wallet(index_1.default.signerPrivateKey);
14
+ exports.signer = signer;
15
+ const getProvider = (chainConfig) => {
16
+ return new ethers_1.ethers.JsonRpcProvider(chainConfig.rpcUrl);
17
+ };
18
+ exports.getProvider = getProvider;
19
+ const getPaymasterContract = (chainConfig) => {
20
+ const provider = getProvider(chainConfig);
21
+ return new ethers_1.ethers.Contract(chainConfig.paymasterAddress, HalalPaymasterAbi_json_1.default, provider);
22
+ };
23
+ exports.getPaymasterContract = getPaymasterContract;
24
+ const getTokenContract = (tokenAddress, chainConfig) => {
25
+ const provider = getProvider(chainConfig);
26
+ return new ethers_1.ethers.Contract(tokenAddress, ERC20Abi_json_1.default, provider);
27
+ };
28
+ exports.getTokenContract = getTokenContract;
29
+ // default instances for Sepolia (backwards compatibility)
30
+ const provider = getProvider(chains_1.CHAIN_CONFIGS.sepolia);
31
+ exports.provider = provider;
32
+ const paymasterContract = getPaymasterContract(chains_1.CHAIN_CONFIGS.sepolia);
33
+ exports.paymasterContract = paymasterContract;
34
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../../src/backend/contract/contract.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAgC;AAChC,6CAA8D;AAC9D,4DAAqC;AACrC,0FAAyD;AACzD,wEAA4C;AAiC1C,oBAjCK,uBAAS,CAiCL;AA/BX,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,gBAAgB,CAAC,CAAC;AA4BxD,wBAAM;AA1BR,MAAM,WAAW,GAAG,CAAC,WAAwB,EAA0B,EAAE;IACvE,OAAO,IAAI,eAAM,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC,CAAC;AA4BA,kCAAW;AA1Bb,MAAM,oBAAoB,GAAG,CAAC,WAAwB,EAAmB,EAAE;IACzE,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO,IAAI,eAAM,CAAC,QAAQ,CACvB,WAAmB,CAAC,gBAAgB,EACrC,gCAAa,EACb,QAAQ,CACT,CAAC;AACJ,CAAC,CAAC;AAoBA,oDAAoB;AAlBtB,MAAM,gBAAgB,GAAG,CACvB,YAAoB,EACpB,WAAwB,EACP,EAAE;IACnB,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,OAAO,IAAI,eAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,uBAAS,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC,CAAC;AAaA,4CAAgB;AAXlB,0DAA0D;AAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,sBAAa,CAAC,OAAO,CAAC,CAAC;AAKlD,4BAAQ;AAJV,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,sBAAa,CAAC,OAAO,CAAC,CAAC;AAKpE,8CAAiB"}
@@ -0,0 +1,4 @@
1
+ export declare const getEVMHotWallet: () => string;
2
+ export declare const getSolanaHotWallet: () => string;
3
+ export declare const getTronHotWallet: () => string;
4
+ //# sourceMappingURL=hotwallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotwallet.d.ts","sourceRoot":"","sources":["../../../../src/backend/helper/hotwallet.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,QAAO,MAIlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,MAIrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,MAInC,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTronHotWallet = exports.getSolanaHotWallet = exports.getEVMHotWallet = void 0;
4
+ const getEVMHotWallet = () => {
5
+ const wallet = process.env.EVM_HOT_WALLET;
6
+ if (!wallet)
7
+ throw new Error("EVM_HOT_WALLET is not set");
8
+ return wallet;
9
+ };
10
+ exports.getEVMHotWallet = getEVMHotWallet;
11
+ const getSolanaHotWallet = () => {
12
+ const wallet = process.env.SOLANA_HOT_WALLET_ADDRESS;
13
+ if (!wallet)
14
+ throw new Error("SOLANA_HOT_WALLET_ADDRESS is not set");
15
+ return wallet;
16
+ };
17
+ exports.getSolanaHotWallet = getSolanaHotWallet;
18
+ const getTronHotWallet = () => {
19
+ const wallet = process.env.TRON_HOT_WALLET_ADDRESS;
20
+ if (!wallet)
21
+ throw new Error("TRON_HOT_WALLET_ADDRESS is not set");
22
+ return wallet;
23
+ };
24
+ exports.getTronHotWallet = getTronHotWallet;
25
+ //# sourceMappingURL=hotwallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotwallet.js","sourceRoot":"","sources":["../../../../src/backend/helper/hotwallet.ts"],"names":[],"mappings":";;;AAAO,MAAM,eAAe,GAAG,GAAW,EAAE;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEK,MAAM,kBAAkB,GAAG,GAAW,EAAE;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACrD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAJW,QAAA,kBAAkB,sBAI7B;AAEK,MAAM,gBAAgB,GAAG,GAAW,EAAE;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B"}