@pooltogether/bnc-onboard
Version:
Onboard users to web3 by allowing them to select a wallet, get that wallet ready to transact and have access to synced wallet state.
125 lines (107 loc) • 8.75 kB
JavaScript
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
import { m as mobileWalletInstallMessage } from './content-60ae07c5.js';
var walletIoIcon = "\n<svg width=\"40\" height=\"40\" viewBox=\"0 0 1025 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<!-- Generator: Sketch 61 (89581) - https://sketch.com -->\n<title>io</title>\n<desc>Created with Sketch.</desc>\n<defs>\n <linearGradient x1=\"0%\" y1=\"100%\" x2=\"100%\" y2=\"0%\" id=\"linearGradient-1\">\n <stop stop-color=\"#1550FF\" offset=\"0%\"></stop>\n <stop stop-color=\"#0D8DFF\" offset=\"100%\"></stop>\n </linearGradient>\n</defs>\n<g id=\"io\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(0.000000, 0.000000)\">\n <g id=\"\u7F16\u7EC4\">\n <rect id=\"\u77E9\u5F62\" fill=\"url(#linearGradient-1)\" x=\"0\" y=\"0\" width=\"1024\" height=\"1024\" rx=\"192\"></rect>\n <g id=\"2\" transform=\"translate(142.000000, 354.000000)\" fill=\"#FFFFFF\" fill-rule=\"nonzero\">\n <path d=\"M731.739038,157.885431 L653.658027,240.742988 C643.041073,252.009426 625.301078,252.535937 614.03464,241.918982 C612.84708,240.799883 611.75951,239.579221 610.784322,238.270905 L529.136156,128.731487 C521.006704,117.824991 521.881341,102.656017 531.210479,92.7561767 L609.29149,9.89862053 C619.908444,-1.36781768 637.648439,-1.89432843 648.914877,8.72262585 C650.102437,9.84172546 651.190007,11.0623873 652.165195,12.3707028 L733.813361,121.910121 C741.942813,132.816618 741.068176,147.985591 731.739038,157.885431 Z\" id=\"\u8DEF\u5F84\"></path>\n <path d=\"M586.491167,312.367718 L508.410156,395.225274 C497.793202,406.491713 480.053207,407.018223 468.786769,396.401269 C467.599209,395.282169 466.511639,394.061508 465.536451,392.753192 L268.220049,128.032931 C260.090597,117.126435 260.965235,101.957461 270.294372,92.0576207 L348.375384,9.20006454 C358.992338,-2.06637367 376.732333,-2.59288442 387.998771,8.02406986 C389.18633,9.14316947 390.2739,10.3638313 391.249089,11.6721468 L588.56549,276.392408 C596.694942,287.298904 595.820305,302.467878 586.491167,312.367718 Z\" id=\"\u8DEF\u5F84\" opacity=\"0.75\"></path>\n <path d=\"M586.345922,312.172858 L508.264911,395.030414 C497.647957,406.296852 479.907962,406.823363 468.641524,396.206409 C467.453965,395.087309 466.366395,393.866647 465.391206,392.558332 L369.686767,264.160976 L486.808283,139.874642 L588.420246,276.197548 C596.549698,287.104044 595.67506,302.273017 586.345922,312.172858 Z\" id=\"\u8DEF\u5F84\"></path>\n <path d=\"M128.683329,11.9400119 L325.99973,276.660273 C334.129182,287.566769 333.254545,302.735743 323.925407,312.635583 L245.844396,395.493139 C235.227442,406.759578 217.487447,407.286088 206.221009,396.669134 C205.033449,395.550035 203.945879,394.329373 202.970691,393.021057 L5.65428933,128.300796 C-2.47516249,117.3943 -1.60052498,102.225326 7.72861266,92.3254858 L85.8096237,9.46792962 C96.426578,-1.79850858 114.166573,-2.32501933 125.433011,8.29193494 C126.620571,9.41103455 127.708141,10.6316964 128.683329,11.9400119 Z\" id=\"\u8DEF\u5F84\" opacity=\"0.5\"></path>\n <path d=\"M224.568875,140.58034 L326.180837,276.903246 C334.310289,287.809742 333.435651,302.978716 324.106514,312.878556 L246.025503,395.736112 C235.408548,407.002551 217.668554,407.529061 206.402115,396.912107 C205.214556,395.793008 204.126986,394.572346 203.151797,393.26403 L107.447358,264.866675 L224.568875,140.58034 Z\" id=\"\u8DEF\u5F84\" opacity=\"0.5\"></path>\n </g>\n </g>\n</g>\n</svg>\n";
function walletIoWallet(options) {
var preferred = options.preferred,
label = options.label,
svg = options.svg,
rpcUrl = options.rpcUrl;
return {
name: label || 'wallet.io',
svg: svg || walletIoIcon,
wallet: function () {
var _wallet = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(helpers) {
var getProviderName, getAddress, getNetwork, getBalance, walletIoProvider, isWalleIoWallet, createProvider, provider, warned;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
getProviderName = helpers.getProviderName, getAddress = helpers.getAddress, getNetwork = helpers.getNetwork, getBalance = helpers.getBalance;
walletIoProvider = window.ethereum || window.web3 && window.web3.currentProvider;
isWalleIoWallet = getProviderName(walletIoProvider) === 'wallet.io';
if (!(isWalleIoWallet && rpcUrl)) {
_context2.next = 7;
break;
}
_context2.next = 6;
return import('./providerEngine-c4c55454.js');
case 6:
createProvider = _context2.sent["default"];
case 7:
provider = createProvider ? createProvider({
rpcUrl: rpcUrl
}) : null;
warned = false;
return _context2.abrupt("return", {
provider: walletIoProvider,
"interface": isWalleIoWallet ? {
address: {
get: function get() {
return getAddress(walletIoProvider);
}
},
network: {
get: function get() {
return getNetwork(walletIoProvider);
}
},
balance: {
get: function () {
var _get = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
var address;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (provider) {
_context.next = 3;
break;
}
if (!warned) {
console.warn('The wallet.io Wallet provider does not allow rpc calls preventing Onboard.js from getting the balance. You can pass in a "rpcUrl" to the wallet.io Wallet initialization object to get the balance.');
warned = true;
}
return _context.abrupt("return", null);
case 3:
_context.next = 5;
return getAddress(walletIoProvider);
case 5:
address = _context.sent;
return _context.abrupt("return", getBalance(provider, address));
case 7:
case "end":
return _context.stop();
}
}
}, _callee);
}));
function get() {
return _get.apply(this, arguments);
}
return get;
}()
},
name: getProviderName(walletIoProvider)
} : null
});
case 10:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
function wallet(_x) {
return _wallet.apply(this, arguments);
}
return wallet;
}(),
type: 'injected',
link: 'http://wallet.io/',
installMessage: mobileWalletInstallMessage,
mobile: true,
preferred: preferred
};
}
export default walletIoWallet;