UNPKG

@muzamint/superfluid-react

Version:

connect metamask and superfluid

127 lines (107 loc) 3.95 kB
var React = require('react'); var etherspot = require('etherspot'); var superxeroxSdk = require('superxerox-sdk'); // A type of promise-like that resolves synchronously and supports only one observer const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator"; const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator"; // Asynchronously call a function and send errors to recovery continuation function _catch(body, recover) { try { var result = body(); } catch(e) { return recover(e); } if (result && result.then) { return result.then(void 0, recover); } return result; } var styles = {"test":"_3ybTi"}; var provider = new superxeroxSdk.ethers.providers.Web3Provider(window.ethereum); var superXeroXContract_ro = new superxeroxSdk.Contract(superxeroxSdk.SuperXEROX_Contract_Address_Ropsten, superxeroxSdk.abi, provider); var message1 = '👻 Metamask is not detected'; var message2 = '📡 Fail on create Etherspot Sdk Account'; var message3 = '✂️ User cancel the connection with the Metamask or Not in Testnets'; etherspot.Env.defaultName = 'testnets'; var ExampleComponent = function ExampleComponent(_ref) { var text = _ref.text; React.useEffect(function () { handleConnetion(); }); var handleConnetion = function handleConnetion() { try { if (!etherspot.MetaMaskWalletProvider.detect()) { setAddress(message1); return Promise.resolve(); } return Promise.resolve(connectionToMetamask()).then(function () {}); } catch (e) { return Promise.reject(e); } }; var connectionToMetamask = function connectionToMetamask() { try { var _temp2 = _catch(function () { return Promise.resolve(etherspot.MetaMaskWalletProvider.connect()).then(function (walletProvider) { console.log(walletProvider); createSdk(walletProvider); }); }, function () { setAddress(message3); }); return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0); } catch (e) { return Promise.reject(e); } }; var createSdk = function createSdk(walletProvider) { try { var sdk = new etherspot.Sdk(walletProvider); var state = sdk.state; console.info('SDK created', state); console.log('Smart wallet', state.account.address); setAddress(state.account.address); setNetwork(state.network.name); setConnected(true); } catch (e) { setAddress(message2); } }; var _useState = React.useState(''), address = _useState[0], setAddress = _useState[1]; var _useState2 = React.useState(''), network = _useState2[0], setNetwork = _useState2[1]; var _useState3 = React.useState(false), setConnected = _useState3[1]; var _useState4 = React.useState(0), setVal = _useState4[1]; var _useState5 = React.useState(''), netflow = _useState5[0], setNetflow = _useState5[1]; var total = superxeroxSdk.BigNumber.from("0"); React.useEffect(function () { var timer = window.setInterval(function () { setVal(function (v) { return v + 1; }); try { superXeroXContract_ro.getNetFlow().then(function (x) { total = total.add(x); setNetflow(superxeroxSdk.ethers.utils.formatEther(total)); }); } catch (error) { console.log('error', error); } }, 100); return function () { return window.clearInterval(timer); }; }, []); return React.createElement("div", { className: styles.test }, "\uD83D\uDC51 ", text, " ", address, " \uD83D\uDE80 ", network, '🐝', " netflow = ", netflow); }; exports.ExampleComponent = ExampleComponent; //# sourceMappingURL=index.js.map