UNPKG

@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.

121 lines (109 loc) 5.43 kB
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 'regenerator-runtime/runtime'; import { n as networkName } from './onboard-e5452153.js'; import 'bignumber.js'; import 'bnc-sdk'; import 'bowser'; var fortmaticIcon = "\n <svg \n height=\"40\" \n viewBox=\"0 0 40 40\" \n width=\"40\" \n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"m2744.99995 1155h9.99997 10.00008v9.98139h-10.00008-9.99997-9.99998v9.9814.64001 9.28323.05815 9.9234h-9.99997v-9.9234-.05815-9.28323-.64001-9.9814-9.98139h9.99997zm9.99961 29.88552h-9.94167v-9.92324h19.93595v10.27235c0 2.55359-1.01622 5.00299-2.82437 6.80909-1.80867 1.8061-4.26182 2.82181-6.82018 2.82335h-.34973z\" \n fill=\"#617bff\" \n fill-rule=\"evenodd\" \n transform=\"translate(-2725 -1155)\"/>\n </svg>\n"; function fortmatic(options) { var apiKey = options.apiKey, rpcUrl = options.rpcUrl, networkId = options.networkId, preferred = options.preferred, label = options.label, iconSrc = options.iconSrc, svg = options.svg; return { name: label || 'Fortmatic', svg: svg || fortmaticIcon, iconSrc: iconSrc, wallet: function () { var _wallet = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(helpers) { var _yield$import, Fortmatic, instance, provider, BigNumber, getAddress, enabled; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return import('fortmatic'); case 2: _yield$import = _context2.sent; Fortmatic = _yield$import["default"]; instance = new Fortmatic(apiKey, rpcUrl ? { chainId: networkId, rpcUrl: rpcUrl } : networkId === 1 ? undefined : networkName(networkId)); provider = instance.getProvider(); BigNumber = helpers.BigNumber, getAddress = helpers.getAddress; return _context2.abrupt("return", { provider: provider, instance: instance, "interface": { name: 'Fortmatic', connect: function connect() { return instance.user.login().then(function (res) { enabled = true; return res; }); }, disconnect: function disconnect() { return instance.user.logout(); }, address: { get: function get() { return enabled ? getAddress(provider) : Promise.resolve(); } }, network: { get: function get() { return Promise.resolve(networkId); } }, balance: { get: function () { var _get = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", enabled && instance.user.getBalances().then(function (res) { return res[0] ? BigNumber(res[0].crypto_amount).times(BigNumber('1000000000000000000')).toString(10) : null; })); case 1: case "end": return _context.stop(); } } }, _callee); })); function get() { return _get.apply(this, arguments); } return get; }() }, dashboard: function dashboard() { return instance.user.settings(); } } }); case 8: case "end": return _context2.stop(); } } }, _callee2); })); function wallet(_x) { return _wallet.apply(this, arguments); } return wallet; }(), type: 'sdk', desktop: true, mobile: true, preferred: preferred }; } export default fortmatic;