@r3l/app
Version:
137 lines (106 loc) • 4.21 kB
JavaScript
;
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