@broxus/js-core
Version:
MobX-based JavaScript Core library
73 lines (72 loc) • 4.3 kB
JavaScript
;
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;