UNPKG

tokamak-staking-lib

Version:
47 lines (46 loc) 2.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPendingRequest = exports.getDeposit = void 0; const bn_js_1 = __importDefault(require("bn.js")); const lodash_1 = require("lodash"); const deposit_manager_1 = __importDefault(require("./contracts/deposit-manager")); const { toBN } = require("web3-utils"); const RAY = toBN("1000000000000000000000000000"); const SEIG_PER_BLOCK = toBN("3920000000000000000000000000"); const DEFAULT_PSEIG_RATE = toBN("400000000000000000000000000"); const DEFAULT_TOTALSUPPLY_OF_TON = toBN("50000000000000000000000000000000000"); exports.getDeposit = async (layer2, account) => { let accStaked; let accUnstaked; if (typeof account === 'undefined') { accStaked = await deposit_manager_1.default.instance().accStakedLayer2(layer2); accUnstaked = await deposit_manager_1.default.instance().accUnstakedLayer2(layer2); } else { accStaked = await deposit_manager_1.default.instance().accStaked(layer2, account); accUnstaked = await deposit_manager_1.default.instance().accUnstaked(layer2, account); } const deposit = new bn_js_1.default(accStaked).sub(new bn_js_1.default(accUnstaked)); if (deposit.cmp(new bn_js_1.default('0')) === -1) { return '0'; } else { return deposit.toString(); } }; exports.getPendingRequest = async (layer2, user) => { const numPendingRequests = await deposit_manager_1.default.instance().numPendingRequests(layer2, user); if (numPendingRequests === 0) { return []; } let requestIndex = await deposit_manager_1.default.instance().withdrawalRequestIndex(layer2, user); const pendingRequests = []; for (const _ of lodash_1.range(numPendingRequests)) { pendingRequests.push(await deposit_manager_1.default.instance().withdrawalRequest(layer2, user, requestIndex)); requestIndex++; } return Promise.all(pendingRequests); };