@muzamint/superfluid-react
Version:
connect metamask and superfluid
127 lines (107 loc) • 3.95 kB
JavaScript
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