UNPKG

sdk-utils

Version:

TEST TEST

146 lines 6.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAccount = exports.divest = exports.switching = exports.addInvest = exports.invest = exports.withdraw = exports.deposit = exports.approveToken = void 0; const index_1 = require("./index"); const lib_config_1 = require("./lib_config"); const lib_abi_1 = require("./lib_abi"); const lib_utils_1 = require("./lib.utils"); /** * 对token授权 * @param token_address * @param type * @param callback */ async function approveToken(token_address, type, callback) { let destina_address = lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].mulBank; if (type === "deposit") { } else if (type === "invest") { destina_address = lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].v3strategy; } lib_utils_1.approveToken(token_address, destina_address, callback); } exports.approveToken = approveToken; /** * deposit买入 * @param token_address * @param amount * @param callback */ async function deposit(token_address, amount, callback) { let mulBankContract = new lib_utils_1.web3.eth.Contract(lib_abi_1.MULBANK, lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].mulBank); let bigAmount = lib_utils_1.convertNormalToBigNumber(amount, await lib_utils_1.getDecimal(token_address)); lib_utils_1.executeContract(mulBankContract, "deposit", 0, [token_address, bigAmount], callback); } exports.deposit = deposit; /** * withdraw 提出 * @param token_address * @param amount * @param callback */ async function withdraw(token_address, amount, callback) { let mulBankContract = new lib_utils_1.web3.eth.Contract(lib_abi_1.MULBANK, lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].mulBank); let bigAmount = lib_utils_1.convertNormalToBigNumber(amount, await lib_utils_1.getDecimal(token_address)); lib_utils_1.executeContract(mulBankContract, "withdraw", 0, [token_address, bigAmount], callback); } exports.withdraw = withdraw; /** * 投资 * @param token0_address * @param token1_address * @param fee * @param amount0 * @param amount1 * @param leftPrice * @param rightPrice * @param callback */ async function invest(token0_address, token1_address, fee, amount0, amount1, leftPrice, rightPrice, callback) { let v3strategyContract = new lib_utils_1.web3.eth.Contract(lib_abi_1.UNISWAPV3STRATEGY, lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].v3strategy); let tickLower = index_1.getTick(token0_address, token1_address, +leftPrice); let tickUpper = index_1.getTick(token0_address, token1_address, +rightPrice); if (+tickLower > +tickUpper) { [tickLower, tickUpper] = [tickUpper, tickLower]; } let bigAmount0 = lib_utils_1.convertNormalToBigNumber(amount0, await lib_utils_1.getDecimal(token0_address)); let bigAmount1 = lib_utils_1.convertNormalToBigNumber(amount1, await lib_utils_1.getDecimal(token1_address)); lib_utils_1.executeContract(v3strategyContract, "invest", 0, [ { "token0": token0_address, "token1": token1_address, "fee": fee, "amount0Desired": bigAmount0, "amount1Desired": bigAmount1, "tickLower": tickLower, "tickUpper": tickUpper } ], callback); } exports.invest = invest; /** * 追加 * @param token0_address * @param token1_address * @param id * @param amount0 * @param amount1 * @param callback */ async function addInvest(token0_address, token1_address, id, amount0, amount1, callback) { let v3strategyContract = new lib_utils_1.web3.eth.Contract(lib_abi_1.UNISWAPV3STRATEGY, lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].v3strategy); let bigAmount0 = lib_utils_1.convertNormalToBigNumber(amount0, await lib_utils_1.getDecimal(token0_address)); let bigAmount1 = lib_utils_1.convertNormalToBigNumber(amount1, await lib_utils_1.getDecimal(token1_address)); lib_utils_1.executeContract(v3strategyContract, "add", 0, [id, bigAmount0, bigAmount1], callback); } exports.addInvest = addInvest; /** * 切仓 * @param token0_address * @param token1_address * @param id * @param amount0 * @param amount1 * @param leftPrice * @param rightPrice * @param hedge * @param callback */ async function switching(token0_address, token1_address, id, amount0, amount1, leftPrice, rightPrice, hedge, callback) { let v3strategyContract = new lib_utils_1.web3.eth.Contract(lib_abi_1.UNISWAPV3STRATEGY, lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].v3strategy); let tickLower = index_1.getTick(token0_address, token1_address, +leftPrice); let tickUpper = index_1.getTick(token0_address, token1_address, +rightPrice); if (+tickLower > +tickUpper) { [tickLower, tickUpper] = [tickUpper, tickLower]; } let bigAmount0 = lib_utils_1.convertNormalToBigNumber(amount0, await lib_utils_1.getDecimal(token0_address)); let bigAmount1 = lib_utils_1.convertNormalToBigNumber(amount1, await lib_utils_1.getDecimal(token1_address)); lib_utils_1.executeContract(v3strategyContract, "switching", 0, [id, { tickLower: tickLower, tickUpper: tickUpper, amount0Desired: bigAmount0, amount1Desired: bigAmount1, }, hedge], callback); } exports.switching = switching; /** * 撤资 * @param id * @param isclose * @param callback */ function divest(id, isclose, callback) { let v3strategyContract = new lib_utils_1.web3.eth.Contract(lib_abi_1.UNISWAPV3STRATEGY, lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].v3strategy); lib_utils_1.executeContract(v3strategyContract, "divest", 0, [id, isclose], callback); } exports.divest = divest; /** * 创建账号(投资前先创建) * @param callback */ function createAccount(callback) { let mulWorkContract = new lib_utils_1.web3.eth.Contract(lib_abi_1.MULWORK, lib_config_1.ContractAddress[lib_config_1.userInfo.chainID].mulWork); lib_utils_1.executeContract(mulWorkContract, "createAccount", 0, [], callback); } exports.createAccount = createAccount; //# sourceMappingURL=execute.js.map