@tradestack/paymaster 1.1.6 → 1.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.
- package/dist/backend/config/constants.js +2 -2
- package/dist/backend/helper/hotwallet.d.ts +1 -0
- package/dist/backend/helper/hotwallet.d.ts.map +1 -1
- package/dist/backend/helper/hotwallet.js +8 -1
- package/dist/backend/helper/hotwallet.js.map +1 -1
- package/dist/backend/services/chains/evm.service.d.ts +5 -4
- package/dist/backend/services/chains/evm.service.d.ts.map +1 -1
- package/dist/backend/services/chains/evm.service.js +74 -92
- package/dist/backend/services/chains/evm.service.js.map +1 -1
- package/dist/backend/services/chains/solana.service.d.ts +3 -2
- package/dist/backend/services/chains/solana.service.d.ts.map +1 -1
- package/dist/backend/services/chains/solana.service.js +45 -14
- package/dist/backend/services/chains/solana.service.js.map +1 -1
- package/dist/backend/services/chains/tron.service.d.ts +3 -2
- package/dist/backend/services/chains/tron.service.d.ts.map +1 -1
- package/dist/backend/services/chains/tron.service.js +60 -19
- package/dist/backend/services/chains/tron.service.js.map +1 -1
- package/dist/backend/services/sweep.service.d.ts +4 -3
- package/dist/backend/services/sweep.service.d.ts.map +1 -1
- package/dist/backend/services/sweep.service.js +18 -15
- package/dist/backend/services/sweep.service.js.map +1 -1
- package/dist/backend/services/sweep.worker.d.ts.map +1 -1
- package/dist/backend/services/sweep.worker.js +23 -23
- package/dist/backend/services/sweep.worker.js.map +1 -1
- package/dist/backend/services/sweeper/evm.sweep.service.d.ts +3 -2
- package/dist/backend/services/sweeper/evm.sweep.service.d.ts.map +1 -1
- package/dist/backend/services/sweeper/evm.sweep.service.js +4 -4
- package/dist/backend/services/sweeper/evm.sweep.service.js.map +1 -1
- package/dist/backend/services/sweeper/solana.sweep.service.d.ts +3 -2
- package/dist/backend/services/sweeper/solana.sweep.service.d.ts.map +1 -1
- package/dist/backend/services/sweeper/solana.sweep.service.js +4 -4
- package/dist/backend/services/sweeper/solana.sweep.service.js.map +1 -1
- package/dist/backend/services/sweeper/tron.sweep.service.d.ts +3 -2
- package/dist/backend/services/sweeper/tron.sweep.service.d.ts.map +1 -1
- package/dist/backend/services/sweeper/tron.sweep.service.js +4 -4
- package/dist/backend/services/sweeper/tron.sweep.service.js.map +1 -1
- package/dist/sdk/db/adapter.d.ts +6 -7
- package/dist/sdk/db/adapter.d.ts.map +1 -1
- package/dist/sdk/db/adapter.js +17 -0
- package/dist/sdk/db/adapter.js.map +1 -1
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +3 -0
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/types.d.ts +13 -0
- package/dist/sdk/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -64,8 +64,8 @@ exports.CHAIN_REGISTRY = {
|
|
|
64
64
|
rpcUrl: `https://arb-mainnet.g.alchemy.com/v2/${process.env.ALCHEMY_API_KEY}`,
|
|
65
65
|
bundlerRpc: `https://api.pimlico.io/v2/arbitrum/rpc?apikey=${PIMLICO_KEY}`,
|
|
66
66
|
blockExplorer: "https://arbiscan.io",
|
|
67
|
-
entryPointAddress: "
|
|
68
|
-
paymasterAddress: "
|
|
67
|
+
entryPointAddress: "0x0000000071727De22E5E9d8BAf0edAc6f37da032",
|
|
68
|
+
paymasterAddress: "0x247440C967d715243764F2A669a656e9df75229F", // no paymaster deployed on Arbitrum mainnet yet
|
|
69
69
|
tokens: {
|
|
70
70
|
USDC: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
|
|
71
71
|
USDT: "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
|
|
@@ -1 +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"}
|
|
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;AAEF,eAAO,MAAM,eAAe,QAAO,MAIlC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTronHotWallet = exports.getSolanaHotWallet = exports.getEVMHotWallet = void 0;
|
|
3
|
+
exports.getBatchSweepId = exports.getTronHotWallet = exports.getSolanaHotWallet = exports.getEVMHotWallet = void 0;
|
|
4
4
|
const getEVMHotWallet = () => {
|
|
5
5
|
const wallet = process.env.EVM_HOT_WALLET;
|
|
6
6
|
if (!wallet)
|
|
@@ -22,4 +22,11 @@ const getTronHotWallet = () => {
|
|
|
22
22
|
return wallet;
|
|
23
23
|
};
|
|
24
24
|
exports.getTronHotWallet = getTronHotWallet;
|
|
25
|
+
const getBatchSweepId = () => {
|
|
26
|
+
const id = process.env.BATCH_SWEEP_ID;
|
|
27
|
+
if (!id)
|
|
28
|
+
throw new Error("BATCH_SWEEP_ID is not set");
|
|
29
|
+
return id;
|
|
30
|
+
};
|
|
31
|
+
exports.getBatchSweepId = getBatchSweepId;
|
|
25
32
|
//# sourceMappingURL=hotwallet.js.map
|
|
@@ -1 +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"}
|
|
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;AAEK,MAAM,eAAe,GAAG,GAAW,EAAE;IAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACtC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACtD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAA;AAJY,QAAA,eAAe,mBAI3B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EVMChainConfig } from "../../config/chains";
|
|
2
2
|
import { TokenKey } from "../../config/constants";
|
|
3
|
+
import { Wallet } from "../../../sdk/types";
|
|
3
4
|
export declare const getPublicClient: (chainConfig: EVMChainConfig) => {
|
|
4
5
|
account: undefined;
|
|
5
6
|
batch?: {
|
|
@@ -3337,7 +3338,7 @@ export declare const getPublicClient: (chainConfig: EVMChainConfig) => {
|
|
|
3337
3338
|
authorizationList: import("viem").TransactionSerializableEIP7702["authorizationList"];
|
|
3338
3339
|
} ? "eip7702" : never) | (request["type"] extends string | undefined ? Extract<request["type"], string> : never)>) ? T_12 extends "eip7702" ? import("viem").TransactionRequestEIP7702 : never : never : never)>> & {
|
|
3339
3340
|
chainId?: number | undefined;
|
|
3340
|
-
}, (request["parameters"] extends readonly import("viem").PrepareTransactionRequestParameterType[] ? request["parameters"][number] : "chainId" | "
|
|
3341
|
+
}, (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">) & {
|
|
3341
3342
|
_capabilities?: {
|
|
3342
3343
|
[x: string]: any;
|
|
3343
3344
|
} | undefined;
|
|
@@ -3388,7 +3389,7 @@ export declare const getPublicClient: (chainConfig: EVMChainConfig) => {
|
|
|
3388
3389
|
uid?: undefined;
|
|
3389
3390
|
} & import("viem").ExactPartial<Pick<import("viem").PublicActions<import("viem").HttpTransport<undefined, false>, any, undefined>, "call" | "createContractEventFilter" | "createEventFilter" | "estimateContractGas" | "estimateGas" | "getBlock" | "getBlockNumber" | "getChainId" | "getContractEvents" | "getEnsText" | "getFilterChanges" | "getGasPrice" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "prepareTransactionRequest" | "readContract" | "sendRawTransaction" | "simulateContract" | "uninstallFilter" | "watchBlockNumber" | "watchContractEvent"> & Pick<import("viem").WalletActions<any, undefined>, "sendTransaction" | "writeContract">>>(fn: (client: import("viem").Client<import("viem").HttpTransport<undefined, false>, any, undefined, import("viem").PublicRpcSchema, import("viem").PublicActions<import("viem").HttpTransport<undefined, false>, any>>) => client) => import("viem").Client<import("viem").HttpTransport<undefined, false>, any, undefined, import("viem").PublicRpcSchema, { [K in keyof client]: client[K]; } & import("viem").PublicActions<import("viem").HttpTransport<undefined, false>, any>>;
|
|
3390
3391
|
};
|
|
3391
|
-
export declare const getSmartAccountClient: (ownerPrivateKey: string, chainConfig
|
|
3392
|
+
export declare const getSmartAccountClient: (ownerPrivateKey: string, chainConfig?: EVMChainConfig) => Promise<import("permissionless").SmartAccountClient<import("viem").HttpTransport<undefined, false>, any, object & {
|
|
3392
3393
|
client: import("viem").Client<import("viem").Transport, import("viem").Chain | undefined, {
|
|
3393
3394
|
address: import("viem").Address;
|
|
3394
3395
|
nonceManager?: import("viem").NonceManager | undefined;
|
|
@@ -5747,11 +5748,11 @@ export declare const getSmartAccountClient: (ownerPrivateKey: string, chainConfi
|
|
|
5747
5748
|
isDeployed: () => Promise<boolean>;
|
|
5748
5749
|
type: "smart";
|
|
5749
5750
|
}, undefined, undefined>>;
|
|
5750
|
-
export declare const sweepERC20: (
|
|
5751
|
+
export declare const sweepERC20: (wallet: Wallet, chainConfig: EVMChainConfig, token: TokenKey) => Promise<{
|
|
5751
5752
|
txHash: string;
|
|
5752
5753
|
amount: string;
|
|
5753
5754
|
}>;
|
|
5754
|
-
export declare const sweepNativeETH: (
|
|
5755
|
+
export declare const sweepNativeETH: (wallet: Wallet, chainConfig: EVMChainConfig) => Promise<{
|
|
5755
5756
|
txHash: string;
|
|
5756
5757
|
amount: string;
|
|
5757
5758
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.service.d.ts","sourceRoot":"","sources":["../../../../../src/backend/services/chains/evm.service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAA2B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"evm.service.d.ts","sourceRoot":"","sources":["../../../../../src/backend/services/chains/evm.service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAA2B,MAAM,wBAAwB,CAAC;AAK3E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAgD5C,eAAO,MAAM,eAAe,GAAI,aAAa,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;irBAkUpB,CAAC;;;;;;;;;;;;;;;;;;;;yBAiG2gL,CAAC;mCAA6lC,CAAC;;;;;;;;;;;;;;;;;yeAAumoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA9Zzv1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,iBAAiB,MAAM,EACvB,cAAa,cAAwD;;;;;;;;;;;wTAtC/D,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA+DN,CAAC;mBAErB,CADW;;2BAKP,CAAV;WACQ,CAAN;;iCAQyB,CAAC;;;;;;;;;;eAqD1B,CADF;;;mBAKiD,CAAC;;;;;;;;yBAzBjD,CAAC;AAIF,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,aAAa,cAAc,EAC3B,OAAO,QAAQ,KACd,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAmJ5C,CAAC;AAKF,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,EACd,aAAa,cAAc,KAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoI5C,CAAC;AAGF,eAAO,MAAM,eAAe,GAC1B,eAAe,MAAM,EACrB,aAAa,cAAc,EAC3B,OAAO,QAAQ,KACd,OAAO,CAAC,MAAM,CAoBhB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,eAAe,MAAM,EACrB,aAAa,cAAc,KAC1B,OAAO,CAAC,MAAM,CAUhB,CAAC"}
|
|
@@ -11,8 +11,10 @@ const permissionless_1 = require("permissionless");
|
|
|
11
11
|
const accounts_2 = require("permissionless/accounts");
|
|
12
12
|
const pimlico_1 = require("permissionless/clients/pimlico");
|
|
13
13
|
const account_abstraction_1 = require("viem/account-abstraction");
|
|
14
|
+
const chains_1 = require("../../config/chains");
|
|
14
15
|
const constants_1 = require("../../config/constants");
|
|
15
16
|
const db_context_1 = require("../../config/db.context");
|
|
17
|
+
const paymaster_service_1 = require("../paymaster.service");
|
|
16
18
|
const ERC20Abi_json_1 = __importDefault(require("../../contract/abi/ERC20Abi.json"));
|
|
17
19
|
const hotwallet_1 = require("../../helper/hotwallet");
|
|
18
20
|
const getMasterWallet = () => {
|
|
@@ -55,103 +57,51 @@ const getPublicClient = (chainConfig) => {
|
|
|
55
57
|
});
|
|
56
58
|
};
|
|
57
59
|
exports.getPublicClient = getPublicClient;
|
|
58
|
-
|
|
59
|
-
// ownerPrivateKey: string,
|
|
60
|
-
// chainConfig: EVMChainConfig = CHAIN_CONFIGS.sepolia as EVMChainConfig,
|
|
61
|
-
// ) => {
|
|
62
|
-
// const publicClient = getPublicClient(chainConfig);
|
|
63
|
-
// const owner = privateKeyToAccount(ownerPrivateKey as `0x${string}`);
|
|
64
|
-
// const smartAccount = await toSimpleSmartAccount({
|
|
65
|
-
// client: publicClient,
|
|
66
|
-
// owner,
|
|
67
|
-
// entryPoint: {
|
|
68
|
-
// address: entryPoint08Address,
|
|
69
|
-
// version: "0.8",
|
|
70
|
-
// },
|
|
71
|
-
// });
|
|
72
|
-
// const pimlicoClient = createPimlicoClient({
|
|
73
|
-
// transport: http(chainConfig.bundlerRpc),
|
|
74
|
-
// entryPoint: {
|
|
75
|
-
// address: entryPoint08Address,
|
|
76
|
-
// version: "0.8",
|
|
77
|
-
// },
|
|
78
|
-
// });
|
|
79
|
-
// const smartAccountClient = createSmartAccountClient({
|
|
80
|
-
// account: smartAccount,
|
|
81
|
-
// chain: chainConfig.viemChain,
|
|
82
|
-
// bundlerTransport: http(chainConfig.bundlerRpc),
|
|
83
|
-
// paymaster: {
|
|
84
|
-
// async getPaymasterStubData(userOperation) {
|
|
85
|
-
// const serializedUserOp = JSON.parse(
|
|
86
|
-
// JSON.stringify(userOperation, (_, value) =>
|
|
87
|
-
// typeof value === "bigint" ? value.toString() : value,
|
|
88
|
-
// ),
|
|
89
|
-
// );
|
|
90
|
-
// const paymasterData = await signUserOperation(
|
|
91
|
-
// serializedUserOp,
|
|
92
|
-
// chainConfig,
|
|
93
|
-
// );
|
|
94
|
-
// return {
|
|
95
|
-
// paymaster: chainConfig.paymasterAddress as `0x${string}`,
|
|
96
|
-
// paymasterData: paymasterData as `0x${string}`,
|
|
97
|
-
// paymasterVerificationGasLimit: 200000n,
|
|
98
|
-
// paymasterPostOpGasLimit: 100000n,
|
|
99
|
-
// isFinal: true,
|
|
100
|
-
// };
|
|
101
|
-
// },
|
|
102
|
-
// async getPaymasterData(userOperation) {
|
|
103
|
-
// const serializedUserOp = JSON.parse(
|
|
104
|
-
// JSON.stringify(userOperation, (_, value) =>
|
|
105
|
-
// typeof value === "bigint" ? value.toString() : value,
|
|
106
|
-
// ),
|
|
107
|
-
// );
|
|
108
|
-
// const paymasterData = await signUserOperation(
|
|
109
|
-
// serializedUserOp,
|
|
110
|
-
// chainConfig,
|
|
111
|
-
// );
|
|
112
|
-
// return {
|
|
113
|
-
// paymaster: chainConfig.paymasterAddress as `0x${string}`,
|
|
114
|
-
// paymasterData: paymasterData as `0x${string}`,
|
|
115
|
-
// paymasterVerificationGasLimit: 200000n,
|
|
116
|
-
// paymasterPostOpGasLimit: 100000n,
|
|
117
|
-
// };
|
|
118
|
-
// },
|
|
119
|
-
// },
|
|
120
|
-
// userOperation: {
|
|
121
|
-
// estimateFeesPerGas: async () => {
|
|
122
|
-
// const fees = await pimlicoClient.getUserOperationGasPrice();
|
|
123
|
-
// return fees.fast;
|
|
124
|
-
// },
|
|
125
|
-
// },
|
|
126
|
-
// });
|
|
127
|
-
// return smartAccountClient;
|
|
128
|
-
// };
|
|
129
|
-
const getSmartAccountClient = async (ownerPrivateKey, chainConfig) => {
|
|
60
|
+
const getSmartAccountClient = async (ownerPrivateKey, chainConfig = chains_1.CHAIN_CONFIGS.sepolia) => {
|
|
130
61
|
const publicClient = (0, exports.getPublicClient)(chainConfig);
|
|
131
62
|
const owner = (0, accounts_1.privateKeyToAccount)(ownerPrivateKey);
|
|
132
|
-
// Create account with EntryPoint v0.7 (matches your deposit wallets)
|
|
133
63
|
const smartAccount = await (0, accounts_2.toSimpleSmartAccount)({
|
|
134
64
|
client: publicClient,
|
|
135
65
|
owner,
|
|
136
66
|
entryPoint: {
|
|
137
|
-
address: account_abstraction_1.entryPoint07Address,
|
|
67
|
+
address: account_abstraction_1.entryPoint07Address,
|
|
138
68
|
version: "0.7",
|
|
139
69
|
},
|
|
140
70
|
});
|
|
141
|
-
// Create Pimlico client with v0.7 EntryPoint
|
|
142
71
|
const pimlicoClient = (0, pimlico_1.createPimlicoClient)({
|
|
143
|
-
transport: (0, viem_1.http)(
|
|
72
|
+
transport: (0, viem_1.http)(chainConfig.bundlerRpc),
|
|
144
73
|
entryPoint: {
|
|
145
74
|
address: account_abstraction_1.entryPoint07Address,
|
|
146
75
|
version: "0.7",
|
|
147
76
|
},
|
|
148
77
|
});
|
|
149
|
-
// Create smart account client with Pimlico paymaster
|
|
150
78
|
const smartAccountClient = (0, permissionless_1.createSmartAccountClient)({
|
|
151
79
|
account: smartAccount,
|
|
152
80
|
chain: chainConfig.viemChain,
|
|
153
81
|
bundlerTransport: (0, viem_1.http)(chainConfig.bundlerRpc),
|
|
154
|
-
paymaster:
|
|
82
|
+
paymaster: {
|
|
83
|
+
async getPaymasterStubData(userOperation) {
|
|
84
|
+
const serializedUserOp = JSON.parse(JSON.stringify(userOperation, (_, value) => typeof value === "bigint" ? value.toString() : value));
|
|
85
|
+
const paymasterData = await (0, paymaster_service_1.signUserOperation)(serializedUserOp, chainConfig);
|
|
86
|
+
return {
|
|
87
|
+
paymaster: chainConfig.paymasterAddress,
|
|
88
|
+
paymasterData: paymasterData,
|
|
89
|
+
paymasterVerificationGasLimit: 200000n,
|
|
90
|
+
paymasterPostOpGasLimit: 100000n,
|
|
91
|
+
isFinal: true,
|
|
92
|
+
};
|
|
93
|
+
},
|
|
94
|
+
async getPaymasterData(userOperation) {
|
|
95
|
+
const serializedUserOp = JSON.parse(JSON.stringify(userOperation, (_, value) => typeof value === "bigint" ? value.toString() : value));
|
|
96
|
+
const paymasterData = await (0, paymaster_service_1.signUserOperation)(serializedUserOp, chainConfig);
|
|
97
|
+
return {
|
|
98
|
+
paymaster: chainConfig.paymasterAddress,
|
|
99
|
+
paymasterData: paymasterData,
|
|
100
|
+
paymasterVerificationGasLimit: 200000n,
|
|
101
|
+
paymasterPostOpGasLimit: 100000n,
|
|
102
|
+
};
|
|
103
|
+
},
|
|
104
|
+
},
|
|
155
105
|
userOperation: {
|
|
156
106
|
estimateFeesPerGas: async () => {
|
|
157
107
|
const fees = await pimlicoClient.getUserOperationGasPrice();
|
|
@@ -163,13 +113,17 @@ const getSmartAccountClient = async (ownerPrivateKey, chainConfig) => {
|
|
|
163
113
|
};
|
|
164
114
|
exports.getSmartAccountClient = getSmartAccountClient;
|
|
165
115
|
// ─── ERC-20 Token Sweep ───────────────────────────────────────────────────────
|
|
166
|
-
const sweepERC20 = async (
|
|
116
|
+
const sweepERC20 = async (wallet, chainConfig, token) => {
|
|
117
|
+
const walletAddress = wallet.address;
|
|
118
|
+
const toAddress = (0, hotwallet_1.getEVMHotWallet)();
|
|
167
119
|
const tokenAddress = chainConfig.tokens[token];
|
|
120
|
+
const batchSweepId = (0, hotwallet_1.getBatchSweepId)();
|
|
168
121
|
if (!tokenAddress || tokenAddress.includes("DUMMY")) {
|
|
169
122
|
console.log(`[${chainConfig.name}] ${token} not configured, skipping ${walletAddress}`);
|
|
170
123
|
return { txHash: "", amount: "0" };
|
|
171
124
|
}
|
|
172
125
|
try {
|
|
126
|
+
const adapter = (0, db_context_1.getDBAdapter)();
|
|
173
127
|
const hd_index = await getWalletHdIndex(walletAddress);
|
|
174
128
|
const privateKey = derivePrivateKey(hd_index);
|
|
175
129
|
const publicClient = (0, exports.getPublicClient)(chainConfig);
|
|
@@ -203,7 +157,7 @@ const sweepERC20 = async (walletAddress, chainConfig, token) => {
|
|
|
203
157
|
const callData = (0, viem_1.encodeFunctionData)({
|
|
204
158
|
abi: ERC20Abi_json_1.default,
|
|
205
159
|
functionName: "transfer",
|
|
206
|
-
args: [
|
|
160
|
+
args: [toAddress, balance],
|
|
207
161
|
});
|
|
208
162
|
const userOpHash = await smartAccountClient.sendUserOperation({
|
|
209
163
|
calls: [
|
|
@@ -218,12 +172,24 @@ const sweepERC20 = async (walletAddress, chainConfig, token) => {
|
|
|
218
172
|
const txHash = receipt.receipt.transactionHash;
|
|
219
173
|
// Fix decimal handling - don't assume 6 decimals for all tokens
|
|
220
174
|
const decimals = await getTokenDecimals(publicClient, tokenAddress);
|
|
175
|
+
const balanceAfter = await publicClient.readContract({
|
|
176
|
+
address: tokenAddress,
|
|
177
|
+
abi: ERC20Abi_json_1.default,
|
|
178
|
+
functionName: "balanceOf",
|
|
179
|
+
args: [walletAddress],
|
|
180
|
+
});
|
|
221
181
|
const amountFormatted = (0, viem_1.formatUnits)(balance, decimals);
|
|
222
|
-
|
|
182
|
+
const amountAfterFormatted = (0, viem_1.formatUnits)(balanceAfter, decimals);
|
|
183
|
+
console.log(`[${chainConfig.name}] Sweep complete: ${amountFormatted} ${token} → ${toAddress}`);
|
|
223
184
|
console.log(`[${chainConfig.name}] Tx hash: ${txHash}`);
|
|
185
|
+
await adapter?.updateWalletBalanceById({
|
|
186
|
+
id: wallet.id,
|
|
187
|
+
balance: amountAfterFormatted,
|
|
188
|
+
type: token,
|
|
189
|
+
});
|
|
224
190
|
await (0, db_context_1.dbQuery)(`INSERT INTO sweep_history
|
|
225
|
-
(wallet_address, chain_id, token, amount, tx_hash, status, created_at)
|
|
226
|
-
VALUES (?, ?, ?, ?, ?, 'success', NOW())`, [walletAddress, chainConfig.chainId, token, amountFormatted, txHash]);
|
|
191
|
+
(wallet_address, batch_sweep_id, chain_id, token, amount, balance_before, balance_after, to_address, tx_hash, status, created_at)
|
|
192
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'success', NOW())`, [walletAddress, batchSweepId, chainConfig.chainId, token, amountFormatted, amountFormatted, amountAfterFormatted, toAddress, txHash]);
|
|
227
193
|
return { txHash, amount: amountFormatted };
|
|
228
194
|
}
|
|
229
195
|
catch (err) {
|
|
@@ -236,11 +202,13 @@ const sweepERC20 = async (walletAddress, chainConfig, token) => {
|
|
|
236
202
|
return { txHash: "", amount: "0" };
|
|
237
203
|
}
|
|
238
204
|
await (0, db_context_1.dbQuery)(`INSERT INTO sweep_history
|
|
239
|
-
(wallet_address, chain_id, token, amount, tx_hash, status, error, created_at)
|
|
240
|
-
VALUES (?, ?, ?, '0', NULL, 'failed', ?, NOW())`, [
|
|
205
|
+
(wallet_address, batch_sweep_id, chain_id, token, amount, balance_before, balance_after, to_address, tx_hash, status, error, created_at)
|
|
206
|
+
VALUES (?, ?, ?, ?, '0', NULL, NULL, ?, NULL, 'failed', ?, NOW())`, [
|
|
241
207
|
walletAddress,
|
|
208
|
+
batchSweepId,
|
|
242
209
|
chainConfig.chainId,
|
|
243
210
|
token,
|
|
211
|
+
toAddress,
|
|
244
212
|
err instanceof Error ? err.message : "Unknown error",
|
|
245
213
|
]);
|
|
246
214
|
throw err;
|
|
@@ -249,8 +217,12 @@ const sweepERC20 = async (walletAddress, chainConfig, token) => {
|
|
|
249
217
|
exports.sweepERC20 = sweepERC20;
|
|
250
218
|
// Helper function to get token decimals
|
|
251
219
|
// ─── Native ETH Sweep ─────────────────────────────────────────────────────────
|
|
252
|
-
const sweepNativeETH = async (
|
|
220
|
+
const sweepNativeETH = async (wallet, chainConfig) => {
|
|
221
|
+
const walletAddress = wallet.address;
|
|
222
|
+
const toAddress = (0, hotwallet_1.getEVMHotWallet)();
|
|
223
|
+
const batchSweepId = (0, hotwallet_1.getBatchSweepId)();
|
|
253
224
|
try {
|
|
225
|
+
const adapter = (0, db_context_1.getDBAdapter)();
|
|
254
226
|
const hd_index = await getWalletHdIndex(walletAddress);
|
|
255
227
|
const privateKey = derivePrivateKey(hd_index);
|
|
256
228
|
const publicClient = (0, exports.getPublicClient)(chainConfig);
|
|
@@ -284,7 +256,7 @@ const sweepNativeETH = async (walletAddress, chainConfig) => {
|
|
|
284
256
|
userOpHash = await smartAccountClient.sendUserOperation({
|
|
285
257
|
calls: [
|
|
286
258
|
{
|
|
287
|
-
to:
|
|
259
|
+
to: toAddress,
|
|
288
260
|
value: balance,
|
|
289
261
|
data: "0x",
|
|
290
262
|
},
|
|
@@ -296,12 +268,21 @@ const sweepNativeETH = async (walletAddress, chainConfig) => {
|
|
|
296
268
|
new Promise((_, reject) => setTimeout(() => reject(new Error("UserOp receipt timeout after 60s")), 60000)),
|
|
297
269
|
]));
|
|
298
270
|
const txHash = receipt.receipt.transactionHash;
|
|
271
|
+
const balanceAfter = await publicClient.getBalance({
|
|
272
|
+
address: walletAddress,
|
|
273
|
+
});
|
|
299
274
|
const amountFormatted = (0, viem_1.formatEther)(balance);
|
|
300
|
-
|
|
275
|
+
const amountAfterFormatted = (0, viem_1.formatEther)(balanceAfter);
|
|
276
|
+
console.log(`[${chainConfig.name}] ETH Sweep complete: ${amountFormatted} ETH → ${toAddress}`);
|
|
301
277
|
console.log(`[${chainConfig.name}] Tx hash: ${txHash}`);
|
|
278
|
+
await adapter?.updateWalletBalanceById({
|
|
279
|
+
id: wallet.id,
|
|
280
|
+
balance: amountAfterFormatted,
|
|
281
|
+
type: 'native',
|
|
282
|
+
});
|
|
302
283
|
await (0, db_context_1.dbQuery)(`INSERT INTO sweep_history
|
|
303
|
-
(wallet_address, chain_id, token, amount, tx_hash, status, created_at)
|
|
304
|
-
VALUES (?, ?, 'ETH',
|
|
284
|
+
(wallet_address, batch_sweep_id, chain_id, token, amount, balance_before, balance_after, to_address, tx_hash, status, created_at)
|
|
285
|
+
VALUES (?, ?, ?, 'ETH', ?,?,?,?, ?, 'success', NOW())`, [walletAddress, batchSweepId, chainConfig.chainId, amountFormatted, amountFormatted, amountAfterFormatted, toAddress, txHash]);
|
|
305
286
|
return { txHash, amount: amountFormatted };
|
|
306
287
|
}
|
|
307
288
|
catch (err) {
|
|
@@ -314,9 +295,10 @@ const sweepNativeETH = async (walletAddress, chainConfig) => {
|
|
|
314
295
|
return { txHash: "", amount: "0" };
|
|
315
296
|
}
|
|
316
297
|
await (0, db_context_1.dbQuery)(`INSERT INTO sweep_history
|
|
317
|
-
(wallet_address, chain_id, token, amount, tx_hash, status, error, created_at)
|
|
318
|
-
VALUES (?, ?, 'ETH', '0', NULL, 'failed', ?, NOW())`, [
|
|
298
|
+
(wallet_address, batch_sweep_id, chain_id, token, amount, balance_before, balance_after, to_address, tx_hash, status, error, created_at)
|
|
299
|
+
VALUES (?, ?, ?, 'ETH', '0', NULL, NULL, ?, NULL, 'failed', ?, NOW())`, [
|
|
319
300
|
walletAddress,
|
|
301
|
+
batchSweepId,
|
|
320
302
|
chainConfig.chainId,
|
|
321
303
|
err instanceof Error ? err.message : "Unknown error",
|
|
322
304
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.service.js","sourceRoot":"","sources":["../../../../../src/backend/services/chains/evm.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evm.service.js","sourceRoot":"","sources":["../../../../../src/backend/services/chains/evm.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Connection } from "@solana/web3.js";
|
|
2
2
|
import { TokenKey } from "../../config/constants";
|
|
3
3
|
import { SolanaChainConfig } from "../../config/chains";
|
|
4
|
+
import { Wallet } from "../../../sdk/types";
|
|
4
5
|
export declare const getSolanaConnection: (chainConfig: SolanaChainConfig) => Connection;
|
|
5
|
-
export declare const sweepSPLToken: (
|
|
6
|
+
export declare const sweepSPLToken: (wallet: Wallet, chainConfig: SolanaChainConfig, token: TokenKey) => Promise<{
|
|
6
7
|
txHash: string;
|
|
7
8
|
amount: string;
|
|
8
9
|
}>;
|
|
9
|
-
export declare const sweepNativeSOL: (
|
|
10
|
+
export declare const sweepNativeSOL: (wallet: Wallet, chainConfig: SolanaChainConfig) => Promise<{
|
|
10
11
|
txHash: string;
|
|
11
12
|
amount: string;
|
|
12
13
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.service.d.ts","sourceRoot":"","sources":["../../../../../src/backend/services/chains/solana.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAOX,MAAM,iBAAiB,CAAC;AAWzB,OAAO,EACL,QAAQ,EAGT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"solana.service.d.ts","sourceRoot":"","sources":["../../../../../src/backend/services/chains/solana.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAOX,MAAM,iBAAiB,CAAC;AAWzB,OAAO,EACL,QAAQ,EAGT,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA2C5C,eAAO,MAAM,mBAAmB,GAC9B,aAAa,iBAAiB,KAC7B,UAEF,CAAC;AAGF,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,aAAa,iBAAiB,EAC9B,OAAO,QAAQ,KACd,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2I5C,CAAC;AAGF,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,EACd,aAAa,iBAAiB,KAC7B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoG5C,CAAC;AAGF,eAAO,MAAM,aAAa,GACxB,eAAe,MAAM,EACrB,aAAa,iBAAiB,EAC9B,OAAO,QAAQ,KACd,OAAO,CAAC,MAAM,CAiBhB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,eAAe,MAAM,EACrB,aAAa,iBAAiB,KAC7B,OAAO,CAAC,MAAM,CAQhB,CAAC"}
|
|
@@ -45,8 +45,12 @@ const getSolanaConnection = (chainConfig) => {
|
|
|
45
45
|
};
|
|
46
46
|
exports.getSolanaConnection = getSolanaConnection;
|
|
47
47
|
// ─── SPL Token Sweep ──────────────────────────────────────────────────────────
|
|
48
|
-
const sweepSPLToken = async (
|
|
48
|
+
const sweepSPLToken = async (wallet, chainConfig, token) => {
|
|
49
49
|
const tokenMint = chainConfig.tokens[token];
|
|
50
|
+
const walletAddress = wallet.address;
|
|
51
|
+
const toAddress = (0, hotwallet_1.getSolanaHotWallet)();
|
|
52
|
+
const adapter = (0, db_context_1.getDBAdapter)();
|
|
53
|
+
const batchSweepId = (0, hotwallet_1.getBatchSweepId)();
|
|
50
54
|
if (!tokenMint) {
|
|
51
55
|
console.log(`[${chainConfig.name}] ${token} not configured, skipping ${walletAddress}`);
|
|
52
56
|
return { txHash: "", amount: "0" };
|
|
@@ -58,7 +62,7 @@ const sweepSPLToken = async (walletAddress, chainConfig, token) => {
|
|
|
58
62
|
const connection = (0, exports.getSolanaConnection)(chainConfig);
|
|
59
63
|
const mintPublicKey = new web3_js_1.PublicKey(tokenMint);
|
|
60
64
|
const walletPublicKey = new web3_js_1.PublicKey(walletAddress);
|
|
61
|
-
const hotWalletPublicKey = new web3_js_1.PublicKey(
|
|
65
|
+
const hotWalletPublicKey = new web3_js_1.PublicKey(toAddress);
|
|
62
66
|
const userTokenAccount = await (0, spl_token_1.getAssociatedTokenAddress)(mintPublicKey, walletPublicKey);
|
|
63
67
|
let tokenAccountInfo;
|
|
64
68
|
try {
|
|
@@ -86,20 +90,35 @@ const sweepSPLToken = async (walletAddress, chainConfig, token) => {
|
|
|
86
90
|
}
|
|
87
91
|
transaction.add((0, spl_token_1.createTransferInstruction)(userTokenAccount, hotWalletTokenAccount, walletPublicKey, balance, [], spl_token_1.TOKEN_PROGRAM_ID));
|
|
88
92
|
const txHash = await (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [feePayer, userKeypair], { commitment: "confirmed" });
|
|
93
|
+
let balanceAfter = 0n;
|
|
94
|
+
try {
|
|
95
|
+
tokenAccountInfo = await (0, spl_token_1.getAccount)(connection, userTokenAccount);
|
|
96
|
+
balanceAfter = tokenAccountInfo.amount;
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
balanceAfter = 0n;
|
|
100
|
+
}
|
|
89
101
|
const amountFormatted = (Number(balance) / 1000000).toFixed(6);
|
|
90
|
-
|
|
102
|
+
const amountAfterFormatted = (Number(balanceAfter) / 1000000).toFixed(6);
|
|
103
|
+
console.log(`[${chainConfig.name}] Sweep complete: ${amountFormatted} ${token} → ${toAddress}`);
|
|
91
104
|
console.log(`[${chainConfig.name}] Tx hash: ${txHash}`);
|
|
105
|
+
await adapter?.updateWalletBalanceById({
|
|
106
|
+
id: wallet.id,
|
|
107
|
+
balance: amountAfterFormatted,
|
|
108
|
+
type: token,
|
|
109
|
+
});
|
|
92
110
|
await (0, db_context_1.dbQuery)(`INSERT INTO sweep_history
|
|
93
|
-
(wallet_address, chain_id, token, amount, tx_hash, status, created_at)
|
|
94
|
-
VALUES (?, ?, ?, ?, ?, 'success', NOW())`, [walletAddress, chainConfig.cluster, token, amountFormatted, txHash]);
|
|
111
|
+
(wallet_address, batch_sweep_id, chain_id, token, amount, balance_before, balance_after, to_address, tx_hash, status, created_at)
|
|
112
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'success', NOW())`, [walletAddress, batchSweepId, chainConfig.cluster, token, amountFormatted, amountFormatted, amountAfterFormatted, toAddress, txHash]);
|
|
95
113
|
return { txHash, amount: amountFormatted };
|
|
96
114
|
}
|
|
97
115
|
catch (err) {
|
|
98
116
|
console.error(`[${chainConfig.name}] SPL sweep failed for ${walletAddress}:`, err);
|
|
99
117
|
await (0, db_context_1.dbQuery)(`INSERT INTO sweep_history
|
|
100
|
-
(wallet_address, chain_id, token, amount, tx_hash, status, error, created_at)
|
|
101
|
-
VALUES (?, ?, ?, '0', NULL, 'failed', ?, NOW())`, [
|
|
118
|
+
(wallet_address, batch_sweep_id, chain_id, token, amount, tx_hash, status, error, created_at)
|
|
119
|
+
VALUES (?, ?, ?, ?, '0', NULL, 'failed', ?, NOW())`, [
|
|
102
120
|
walletAddress,
|
|
121
|
+
batchSweepId,
|
|
103
122
|
chainConfig.cluster,
|
|
104
123
|
token,
|
|
105
124
|
err instanceof Error ? err.message : "Unknown error",
|
|
@@ -109,14 +128,18 @@ const sweepSPLToken = async (walletAddress, chainConfig, token) => {
|
|
|
109
128
|
};
|
|
110
129
|
exports.sweepSPLToken = sweepSPLToken;
|
|
111
130
|
// ─── Native SOL Sweep ─────────────────────────────────────────────────────────
|
|
112
|
-
const sweepNativeSOL = async (
|
|
131
|
+
const sweepNativeSOL = async (wallet, chainConfig) => {
|
|
132
|
+
const walletAddress = wallet.address;
|
|
133
|
+
const toAddress = (0, hotwallet_1.getSolanaHotWallet)();
|
|
134
|
+
const adapter = (0, db_context_1.getDBAdapter)();
|
|
135
|
+
const batchSweepId = (0, hotwallet_1.getBatchSweepId)();
|
|
113
136
|
try {
|
|
114
137
|
const hd_index = await getWalletHdIndex(walletAddress);
|
|
115
138
|
const userKeypair = deriveSolanaKeypair(hd_index);
|
|
116
139
|
const feePayer = getFeePayerKeypair();
|
|
117
140
|
const connection = (0, exports.getSolanaConnection)(chainConfig);
|
|
118
141
|
const walletPublicKey = new web3_js_1.PublicKey(walletAddress);
|
|
119
|
-
const hotWalletPublicKey = new web3_js_1.PublicKey(
|
|
142
|
+
const hotWalletPublicKey = new web3_js_1.PublicKey(toAddress);
|
|
120
143
|
const balanceLamports = await connection.getBalance(walletPublicKey);
|
|
121
144
|
const balanceSOL = balanceLamports / web3_js_1.LAMPORTS_PER_SOL;
|
|
122
145
|
console.log(`[${chainConfig.name}] Wallet ${walletAddress} SOL balance: ${balanceSOL}`);
|
|
@@ -139,20 +162,28 @@ const sweepNativeSOL = async (walletAddress, chainConfig) => {
|
|
|
139
162
|
lamports: sweepAmount,
|
|
140
163
|
}));
|
|
141
164
|
const txHash = await (0, web3_js_1.sendAndConfirmTransaction)(connection, transaction, [feePayer, userKeypair], { commitment: "confirmed" });
|
|
165
|
+
const balanceAfterLamports = await connection.getBalance(walletPublicKey);
|
|
142
166
|
const amountFormatted = (sweepAmount / web3_js_1.LAMPORTS_PER_SOL).toFixed(9);
|
|
143
|
-
|
|
167
|
+
const amountAfterFormatted = (balanceAfterLamports / web3_js_1.LAMPORTS_PER_SOL).toFixed(9);
|
|
168
|
+
console.log(`[${chainConfig.name}] SOL Sweep complete: ${amountFormatted} SOL → ${toAddress}`);
|
|
144
169
|
console.log(`[${chainConfig.name}] Tx hash: ${txHash}`);
|
|
170
|
+
await adapter?.updateWalletBalanceById({
|
|
171
|
+
id: wallet.id,
|
|
172
|
+
balance: amountAfterFormatted,
|
|
173
|
+
type: "native",
|
|
174
|
+
});
|
|
145
175
|
await (0, db_context_1.dbQuery)(`INSERT INTO sweep_history
|
|
146
|
-
(wallet_address, chain_id, token, amount, tx_hash, status, created_at)
|
|
147
|
-
VALUES (?, ?, 'SOL', ?, ?, 'success', NOW())`, [walletAddress, chainConfig.cluster, amountFormatted, txHash]);
|
|
176
|
+
(wallet_address, batch_sweep_id, chain_id, token, amount, balance_before, balance_after, to_address, tx_hash, status, created_at)
|
|
177
|
+
VALUES (?, ?, ?, 'SOL', ?, ?, ?, ?, ?, 'success', NOW())`, [walletAddress, batchSweepId, chainConfig.cluster, amountFormatted, amountFormatted, amountAfterFormatted, toAddress, txHash]);
|
|
148
178
|
return { txHash, amount: amountFormatted };
|
|
149
179
|
}
|
|
150
180
|
catch (err) {
|
|
151
181
|
console.error(`[${chainConfig.name}] SOL sweep failed for ${walletAddress}:`, err);
|
|
152
182
|
await (0, db_context_1.dbQuery)(`INSERT INTO sweep_history
|
|
153
|
-
(wallet_address, chain_id, token, amount, tx_hash, status, error, created_at)
|
|
154
|
-
VALUES (?, ?, 'SOL', '0', NULL, 'failed', ?, NOW())`, [
|
|
183
|
+
(wallet_address, batch_sweep_id, chain_id, token, amount, tx_hash, status, error, created_at)
|
|
184
|
+
VALUES (?, ?, ?, 'SOL', '0', NULL, 'failed', ?, NOW())`, [
|
|
155
185
|
walletAddress,
|
|
186
|
+
batchSweepId,
|
|
156
187
|
chainConfig.cluster,
|
|
157
188
|
err instanceof Error ? err.message : "Unknown error",
|
|
158
189
|
]);
|