UNPKG

@r3l/app

Version:
137 lines (106 loc) 4.21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useSignAddress = useSignAddress; exports.useLoginWithMM = useLoginWithMM; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _react = require("react"); var _utils = require("../../utils"); var _eth = require("../../utils/eth"); var _utils2 = require("../../web3/utils"); var _hooks = require("../../web3/hooks"); var _reactRedux = require("react-redux"); var _auth = require("./auth.actions"); var Alert = _utils.alert.Alert(); function useSignAddress(address, metamask, setSig) { return (0, _react.useEffect)(function () { if (!address || !metamask) return; var sign = /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { var signer, _yield$signMessage, msg, signature; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; signer = (0, _utils2.getSigner)(); _context.next = 4; return (0, _eth.signMessage)(signer, address); case 4: _yield$signMessage = _context.sent; msg = _yield$signMessage.msg; signature = _yield$signMessage.signature; return _context.abrupt("return", setSig([null, signature, msg])); case 10: _context.prev = 10; _context.t0 = _context["catch"](0); Alert.alert(_context.t0.message); return _context.abrupt("return", setSig([_context.t0.message])); case 14: case "end": return _context.stop(); } } }, _callee, null, [[0, 10]]); })); return function sign() { return _ref.apply(this, arguments); }; }(); sign(); }, [address]); // eslint-disable-line } function useLoginWithMM(close) { (0, _hooks.useWeb3)(); var _useWeb3React = (0, _hooks.useWeb3React)(), account = _useWeb3React.account, metamask = _useWeb3React.metamask; var address = account; var dispatch = (0, _reactRedux.useDispatch)(); var logIn = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() { var signer, _yield$signMessage2, signature, msg, success; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; if (!(!metamask || !address)) { _context2.next = 3; break; } return _context2.abrupt("return", Alert.alert('Please enable Metamask to log in.')); case 3: signer = (0, _utils2.getSigner)(); _context2.next = 6; return (0, _eth.signMessage)(signer, address); case 6: _yield$signMessage2 = _context2.sent; signature = _yield$signMessage2.signature; msg = _yield$signMessage2.msg; _context2.next = 11; return dispatch((0, _auth.loginWithBox)({ signature: signature, address: address, msg: msg })); case 11: success = _context2.sent; success && close && close(); return _context2.abrupt("return", success); case 16: _context2.prev = 16; _context2.t0 = _context2["catch"](0); console.error(_context2.t0); // eslint-disable-line case 19: case "end": return _context2.stop(); } } }, _callee2, null, [[0, 16]]); })), [address, dispatch, close]); return logIn; } //# sourceMappingURL=web3.hooks.js.map