@r3l/app
Version:
231 lines (181 loc) • 8.9 kB
JavaScript
;
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