UNPKG

@broxus/js-core

Version:

MobX-based JavaScript Core library

73 lines (72 loc) 4.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.StakingVaultUtils = void 0; const bignumber_js_1 = __importDefault(require("bignumber.js")); const constants_1 = require("../../constants"); const contracts_1 = require("../../models/staking-vault/contracts"); const utils_1 = require("../../utils"); class StakingVaultUtils { static async deposit(provider, stakingVaultAddress, params, args) { const fixedAmount = (0, utils_1.toInt)(3, constants_1.DEFAULT_NATIVE_CURRENCY_DECIMALS); const amount = (0, bignumber_js_1.default)(params.amount).plus(fixedAmount).toFixed(); return (0, contracts_1.stakingVaultContract)(provider, stakingVaultAddress) .methods.deposit({ _amount: params.amount, _nonce: params.nonce }) .sendDelayed({ amount, ...args }); } static async removePendingWithdraw(provider, stakingVaultAddress, nonce, args) { return (0, contracts_1.stakingVaultContract)(provider, stakingVaultAddress) .methods.removePendingWithdraw({ _nonce: nonce }) .sendDelayed({ amount: (0, utils_1.toInt)(3, constants_1.DEFAULT_NATIVE_CURRENCY_DECIMALS), ...args, }); } static async getAccountAddress(connection, stakingVaultAddress, userAddress, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, stakingVaultAddress); const result = await (0, contracts_1.stakingVaultContract)(connection, stakingVaultAddress) .methods.getAccountAddress({ _user: (0, utils_1.resolveTvmAddress)(userAddress), answerId: 0 }) .call({ cachedState: state, responsible: true }); return result.value0; } static async getDepositExpectedAmount(connection, stakingVaultAddress, amount, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, stakingVaultAddress); const result = await (0, contracts_1.stakingVaultContract)(connection, stakingVaultAddress) .methods.getDepositStEverAmount({ _amount: amount }) .call({ cachedState: state }); return result.value0; } static async getWithdrawExpectedAmount(connection, stakingVaultAddress, amount, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, stakingVaultAddress); const result = await (0, contracts_1.stakingVaultContract)(connection, stakingVaultAddress) .methods.getWithdrawEverAmount({ _amount: amount }) .call({ cachedState: state }); return result.value0; } static async getDetails(connection, stakingVaultAddress, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, stakingVaultAddress); const result = await (0, contracts_1.stakingVaultContract)(connection, stakingVaultAddress) .methods.getDetails({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return result.value0; } static async encodeDepositPayload(connection, stakingVaultAddress, nonce, cachedState) { const state = cachedState ?? await (0, utils_1.getFullContractState)(connection, stakingVaultAddress); const result = await (0, contracts_1.stakingVaultContract)(connection, stakingVaultAddress) .methods.encodeDepositPayload({ _nonce: nonce }) .call({ cachedState: state }); return result.depositPayload; } static decodeEvent(connection, stakingVaultAddress, args) { return (0, contracts_1.stakingVaultContract)(connection, stakingVaultAddress).decodeEvent(args); } static decodeTransaction(connection, stakingVaultAddress, args) { return (0, contracts_1.stakingVaultContract)(connection, stakingVaultAddress).decodeTransaction(args); } static decodeTransactionEvents(connection, stakingVaultAddress, transaction) { return (0, contracts_1.stakingVaultContract)(connection, stakingVaultAddress).decodeTransactionEvents({ transaction }); } } exports.StakingVaultUtils = StakingVaultUtils;