UNPKG

@r3l/app

Version:
231 lines (181 loc) 8.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.VestHandler = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = _interopRequireWildcard(require("react")); var _reactRedux = require("react-redux"); var _earnings = require("../earnings.actions"); var _cashoutFooter = require("./cashoutFooter"); var _styled = require("../../styled"); var _hooks = require("../../../web3/hooks"); var _utils = require("../../../web3/utils"); var _claimUtils = require("./claimUtils"); var _utils2 = require("../../../utils"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var Alert = _utils2.alert.Alert(); var VestHandler = function VestHandler(_ref) { var canClaim = _ref.canClaim, close = _ref.close; var _useState = (0, _react.useState)(''), _useState2 = (0, _slicedToArray2.default)(_useState, 2), token = _useState2[0], setToken = _useState2[1]; var _useState3 = (0, _react.useState)(), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), earning = _useState4[0], setEarning = _useState4[1]; var _useWeb3React = (0, _hooks.useWeb3React)(), account = _useWeb3React.account; var user = (0, _reactRedux.useSelector)(function (state) { return state.auth.user; }); var unclaimedVest = (0, _claimUtils.useUnclaimedVest)(account); var _useTx = (0, _hooks.useTx)(), sendTx = _useTx.sendTx, txStatus = _useTx.txStatus, error = _useTx.error; var sRel = (0, _hooks.useSRel)(); var pendingTx = txStatus === _utils.TX_STATUS.PENDING; var _useState5 = (0, _react.useState)(user.unvestedTokens), _useState6 = (0, _slicedToArray2.default)(_useState5, 2), amount = _useState6[0], setAmount = _useState6[1]; var dispatch = (0, _reactRedux.useDispatch)(); (0, _react.useEffect)(function () { if (unclaimedVest) setAmount(unclaimedVest.shortVest + unclaimedVest.longVest); }, [unclaimedVest]); var _useVerifyEmail = (0, _claimUtils.useVerifyEmail)(), verifyEmail = _useVerifyEmail.verifyEmail, sendEmail = _useVerifyEmail.sendEmail, sendingEmail = _useVerifyEmail.sendingEmail, emailError = _useVerifyEmail.emailError; var _useClaimVest = (0, _claimUtils.useClaimVest)(), claimUnvestedTokens = _useClaimVest.claimUnvestedTokens, claimingVest = _useClaimVest.claimingVest, claimError = _useClaimVest.claimError; var startClaim = /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { var confirm; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: confirm = window.confirm("WARNING: You have to pay Ethereum gas fees to complete this transaction (up to $30 USD).\n\nOnce you press OK, you cannot cancel this transaction. If the blockchain transaction fails or you hit 'Reject', you will need to repeat the same transaction to redeem your tokens."); if (confirm) { _context.next = 3; break; } return _context.abrupt("return"); case 3: if (!(user.email && user.confirmed && !token)) { _context.next = 5; break; } return _context.abrupt("return", verifyEmail()); case 5: return _context.abrupt("return", cashOut()); case 6: case "end": return _context.stop(); } } }, _callee); })); return function startClaim() { return _ref2.apply(this, arguments); }; }(); var cashOut = /*#__PURE__*/function () { var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() { var _yield$claimUnvestedT, _yield$claimUnvestedT2, claimVest, shortVestBN, longVestBN, signature, _earning; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; _context2.next = 3; return claimUnvestedTokens({ variables: { token: token } }); case 3: _yield$claimUnvestedT = _context2.sent; _yield$claimUnvestedT2 = _yield$claimUnvestedT.data.claimVest; claimVest = _yield$claimUnvestedT2 === void 0 ? undefined : _yield$claimUnvestedT2; shortVestBN = claimVest.shortVestBN, longVestBN = claimVest.longVestBN, signature = claimVest.signature, _earning = claimVest.earning; if (claimVest) { _context2.next = 9; break; } return _context2.abrupt("return", Alert.alert('There was an error getting claim signature', 'error')); case 9: if (sRel) { _context2.next = 11; break; } return _context2.abrupt("return", Alert.alert('Missing contract', 'error')); case 11: setEarning(_earning); sendTx(sRel, 'initVesting', [shortVestBN, longVestBN, signature]); _context2.next = 18; break; case 15: _context2.prev = 15; _context2.t0 = _context2["catch"](0); if (_context2.t0 instanceof Error) Alert.alert(_context2.t0 === null || _context2.t0 === void 0 ? void 0 : _context2.t0.message, 'error'); case 18: case "end": return _context2.stop(); } } }, _callee2, null, [[0, 15]]); })); return function cashOut() { return _ref3.apply(this, arguments); }; }(); (0, _react.useEffect)(function () { if (error) Alert.alert(error, 'error'); }, [error]); (0, _react.useEffect)(function () { if (txStatus === _utils.TX_STATUS.CONFIRMED) { dispatch((0, _earnings.updateCashoutLog)(earning)); close(); } }, [txStatus, dispatch]); if (sendEmail && !txStatus) return /*#__PURE__*/_react.default.createElement(_claimUtils.VerifyEmail, { email: user.email, cashOut: cashOut, setToken: setToken, token: token }); return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, (0, _claimUtils.renderWarnings)(null, emailError), /*#__PURE__*/_react.default.createElement(_styled.Row, null, /*#__PURE__*/_react.default.createElement(_styled.NumericalValue, { sx: { lineHeight: 6, flex: 1, mr: 1, fontSize: amount ? 4 : 2, px: 1.5, fontWeight: 'bold' } }, "Claim ", amount, " REL"), /*#__PURE__*/_react.default.createElement(_styled.Button, { disabled: !amount || amount === '', sx: { height: 8, mr: 'auto' }, onPress: startClaim }, "Claim Unvested REL")), /*#__PURE__*/_react.default.createElement(_cashoutFooter.CashoutFooter, null), pendingTx || sendingEmail ? /*#__PURE__*/_react.default.createElement(_claimUtils.Progress, { type: sendingEmail && !pendingTx ? _claimUtils.ProgressType.EMAIL : _claimUtils.ProgressType.TX }) : null); }; exports.VestHandler = VestHandler; //# sourceMappingURL=vestHandler.js.map