@depay/widgets 11.1.0 → 11.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@depay/web3-wallets-evm'), require('react'), require('@uiw/copy-to-clipboard'), require('@depay/react-dialog-stack'), require('qr-code-styling'), require('@depay/web3-blockchains'), require('fuse.js'), require('@tanstack/react-virtual'), require('react-dom'), require('@depay/react-shadow-dom'), require('@depay/web3-client-evm'), require('@depay/local-currency'), require('@depay/web3-payments-evm'), require('@depay/web3-exchanges-evm'), require('@depay/web3-tokens-evm'), require('ethers'), require('decimal.js'), require('@depay/react-token-image-evm')) :
3
- typeof define === 'function' && define.amd ? define(['@depay/web3-wallets-evm', 'react', '@uiw/copy-to-clipboard', '@depay/react-dialog-stack', 'qr-code-styling', '@depay/web3-blockchains', 'fuse.js', '@tanstack/react-virtual', 'react-dom', '@depay/react-shadow-dom', '@depay/web3-client-evm', '@depay/local-currency', '@depay/web3-payments-evm', '@depay/web3-exchanges-evm', '@depay/web3-tokens-evm', 'ethers', 'decimal.js', '@depay/react-token-image-evm'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DePayWidgets = factory(global.Web3Wallets, global.React, global.copyTextToClipboard, global.ReactDialogStack, global.QRCodeStyling, global.Web3Blockchains, global.Fuse, global.ReactVirtual, global.ReactDOM, global.ReactShadowDOM, global.Web3Client, global.LocalCurrency, global.Web3Payments, global.Web3Exchanges, global.Web3Tokens, global.ethers, global.Decimal, global.ReactTokenImage));
5
- })(this, (function (web3WalletsEvm, React, copy, reactDialogStack, QRCodeStyling, Blockchains, Fuse, reactVirtual, ReactDOM, reactShadowDom, web3ClientEvm, localCurrency, web3PaymentsEvm, web3ExchangesEvm, web3TokensEvm, ethers, decimal_js, reactTokenImageEvm) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@depay/web3-wallets-evm'), require('react'), require('@uiw/copy-to-clipboard'), require('@depay/react-dialog-stack'), require('qr-code-styling'), require('@depay/web3-blockchains'), require('fuse.js'), require('@tanstack/react-virtual'), require('react-dom'), require('@depay/react-shadow-dom'), require('@depay/web3-client-evm'), require('@depay/local-currency'), require('@depay/web3-exchanges-evm'), require('@depay/web3-tokens-evm'), require('ethers'), require('decimal.js'), require('@depay/web3-payments-evm'), require('@depay/react-token-image-evm')) :
3
+ typeof define === 'function' && define.amd ? define(['@depay/web3-wallets-evm', 'react', '@uiw/copy-to-clipboard', '@depay/react-dialog-stack', 'qr-code-styling', '@depay/web3-blockchains', 'fuse.js', '@tanstack/react-virtual', 'react-dom', '@depay/react-shadow-dom', '@depay/web3-client-evm', '@depay/local-currency', '@depay/web3-exchanges-evm', '@depay/web3-tokens-evm', 'ethers', 'decimal.js', '@depay/web3-payments-evm', '@depay/react-token-image-evm'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DePayWidgets = factory(global.Web3Wallets, global.React, global.copyTextToClipboard, global.ReactDialogStack, global.QRCodeStyling, global.Web3Blockchains, global.Fuse, global.ReactVirtual, global.ReactDOM, global.ReactShadowDOM, global.Web3Client, global.LocalCurrency, global.Web3Exchanges, global.Web3Tokens, global.ethers, global.Decimal, global.Web3Payments, global.ReactTokenImage));
5
+ })(this, (function (web3WalletsEvm, React, copy, reactDialogStack, QRCodeStyling, Blockchains, Fuse, reactVirtual, ReactDOM, reactShadowDom, web3ClientEvm, localCurrency, web3ExchangesEvm, web3TokensEvm, ethers, decimal_js, web3PaymentsEvm, reactTokenImageEvm) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -3949,8 +3949,8 @@
3949
3949
  }));
3950
3950
  });
3951
3951
 
3952
- function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3953
- function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3952
+ function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3953
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3954
3954
  var SelectWalletList = (function (props) {
3955
3955
  var parentElement = React__default["default"].useRef();
3956
3956
  var fuse = new Fuse__default["default"](allWallets, {
@@ -4011,7 +4011,7 @@
4011
4011
  className: "Card small",
4012
4012
  title: "Connect ".concat(resultList[virtualItem.key].name),
4013
4013
  onClick: function onClick() {
4014
- props.onClickWallet(_objectSpread$6({}, resultList[virtualItem.key]));
4014
+ props.onClickWallet(_objectSpread$7({}, resultList[virtualItem.key]));
4015
4015
  }
4016
4016
  }, /*#__PURE__*/React__default["default"].createElement("div", {
4017
4017
  className: "CardImage"
@@ -4028,8 +4028,8 @@
4028
4028
  })));
4029
4029
  });
4030
4030
 
4031
- function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4032
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4031
+ function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4032
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4033
4033
  var SelectWalletDialog = (function (props) {
4034
4034
  var _useState = React.useState(''),
4035
4035
  _useState2 = _slicedToArray(_useState, 2),
@@ -4125,7 +4125,7 @@
4125
4125
  className: "Card small",
4126
4126
  title: "Connect ".concat(walletMetaData.name),
4127
4127
  onClick: function onClick() {
4128
- onClickWallet(_objectSpread$5(_objectSpread$5({}, walletMetaData), {}, {
4128
+ onClickWallet(_objectSpread$6(_objectSpread$6({}, walletMetaData), {}, {
4129
4129
  via: 'detected',
4130
4130
  connectionType: connectionType
4131
4131
  }), wallet);
@@ -4160,7 +4160,7 @@
4160
4160
  className: "Card small",
4161
4161
  title: "Connect ".concat(previouslyConnectedWallet.name),
4162
4162
  onClick: function onClick() {
4163
- onClickWallet(_objectSpread$5(_objectSpread$5({}, previouslyConnectedWallet), {}, {
4163
+ onClickWallet(_objectSpread$6(_objectSpread$6({}, previouslyConnectedWallet), {}, {
4164
4164
  via: 'previouslyConnected',
4165
4165
  connectionType: 'app'
4166
4166
  }));
@@ -4610,7 +4610,7 @@
4610
4610
  const classNames = ['ReactDialog', this.state.open ? 'ReactDialogOpen' : ''];
4611
4611
  const style = ReactDialogStyle({ background: this.props.background });
4612
4612
  return (
4613
- React__default["default"].createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 55}}
4613
+ React__default["default"].createElement('div', { key: this.props.dialogKey, className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 55}}
4614
4614
  , React__default["default"].createElement('style', {__self: this, __source: {fileName: _jsxFileName$1, lineNumber: 56}}, style)
4615
4615
  , React__default["default"].createElement('div', { className: "ReactDialogInner", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 57}}
4616
4616
  , React__default["default"].createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 58}} )
@@ -5112,39 +5112,6 @@
5112
5112
  }, props.children);
5113
5113
  });
5114
5114
 
5115
- function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5116
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5117
- var prepareAcceptedPayments = function prepareAcceptedPayments(accept) {
5118
- var toAddress = _typeof(accept.receiver) == 'object' ? accept.receiver.address : accept.receiver;
5119
- var toContract = _typeof(accept.receiver) == 'object' ? accept.receiver : undefined;
5120
- return _objectSpread$4(_objectSpread$4({}, accept), {}, {
5121
- toAddress: toAddress,
5122
- toContract: toContract
5123
- });
5124
- };
5125
- var mergeFromAccounts = function mergeFromAccounts(accept, account) {
5126
- var from = {};
5127
- accept.forEach(function (accept) {
5128
- from[accept.blockchain] = account;
5129
- });
5130
- return from;
5131
- };
5132
- var routePayments = (function (_ref) {
5133
- var accept = _ref.accept,
5134
- account = _ref.account,
5135
- whitelist = _ref.whitelist,
5136
- blacklist = _ref.blacklist,
5137
- fee = _ref.fee;
5138
- return web3PaymentsEvm.route({
5139
- accept: accept.map(prepareAcceptedPayments),
5140
- from: mergeFromAccounts(accept, account),
5141
- whitelist: whitelist,
5142
- blacklist: blacklist,
5143
- event: 'ifRoutedAndNative',
5144
- fee: fee
5145
- });
5146
- });
5147
-
5148
5115
  var Loading = /*#__PURE__*/function () {
5149
5116
  var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
5150
5117
  var text, style, error, critical, container, document, unmount;
@@ -5312,6 +5279,146 @@
5312
5279
  });
5313
5280
  });
5314
5281
 
5282
+ var round = (function (input) {
5283
+ var _digitsAfterDecimal;
5284
+ var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'up';
5285
+ var inputAsFloat = parseFloat(input);
5286
+ var digitsAfterDecimal = inputAsFloat.toString().match(/\d+\.0*(\d{4})/);
5287
+ if ((_digitsAfterDecimal = digitsAfterDecimal) !== null && _digitsAfterDecimal !== void 0 && _digitsAfterDecimal.length) {
5288
+ digitsAfterDecimal = digitsAfterDecimal[0];
5289
+ var focus = digitsAfterDecimal.match(/\d{4}$/)[0];
5290
+ var _float;
5291
+ var focusToFixed;
5292
+ if (focus.match(/^0/)) {
5293
+ if (direction == 'up') {
5294
+ _float = parseFloat("".concat(focus[1], ".").concat(focus[2]).concat(focus[3]));
5295
+ } else {
5296
+ _float = parseFloat("".concat(focus[1], ".").concat(focus[2]).concat(focus[3]));
5297
+ }
5298
+ focusToFixed = parseFloat(_float).toFixed(2);
5299
+ focusToFixed = "0".concat(focusToFixed).replace('.', '');
5300
+ } else {
5301
+ if (direction == 'up') {
5302
+ _float = parseFloat("".concat(focus[0], ".").concat(focus[1]).concat(focus[2], "9"));
5303
+ } else {
5304
+ _float = parseFloat("".concat(focus[0], ".").concat(focus[1]).concat(focus[2], "1"));
5305
+ }
5306
+ focusToFixed = parseFloat(_float).toFixed(2).replace('.', '');
5307
+ }
5308
+ if (focusToFixed == '0999' && parseInt(inputAsFloat.toFixed(0)) == 0) {
5309
+ focusToFixed = direction == 'up' ? '1000' : '0999';
5310
+ return parseFloat(digitsAfterDecimal.replace(/\d{4}$/, focusToFixed));
5311
+ } else if (focusToFixed == '1000' && parseInt(inputAsFloat.toFixed(0)) == 0) {
5312
+ return parseFloat(digitsAfterDecimal.replace(/\d{5}$/, focusToFixed));
5313
+ } else if (focusToFixed.toString()[0] != "0" && focusToFixed.toString().length > 3) {
5314
+ return parseInt(inputAsFloat.toFixed(0));
5315
+ } else {
5316
+ return parseFloat(digitsAfterDecimal.replace(/\d{4}$/, focusToFixed));
5317
+ }
5318
+ } else {
5319
+ return parseFloat(inputAsFloat.toFixed(3));
5320
+ }
5321
+ });
5322
+
5323
+ var format = (function (input) {
5324
+ var _float = round(input);
5325
+ var floatToString = _float.toString();
5326
+ if (new RegExp(/\./).test(floatToString)) {
5327
+ var exploded = floatToString.split('.');
5328
+ return new Intl.NumberFormat().format(parseInt(exploded[0])) + '.' + exploded[1];
5329
+ } else {
5330
+ return new Intl.NumberFormat().format(_float);
5331
+ }
5332
+ });
5333
+
5334
+ var PaymentBlockchainsDialog = (function () {
5335
+ var _useContext = React.useContext(ConfigurationContext),
5336
+ accept = _useContext.accept;
5337
+ var _useContext2 = React.useContext(reactDialogStack.NavigateStackContext),
5338
+ navigate = _useContext2.navigate;
5339
+ var blockchains = _toConsumableArray(new Set(accept.map(function (configuration) {
5340
+ return configuration.blockchain;
5341
+ }))).map(function (blockchainName) {
5342
+ return Blockchains__default["default"][blockchainName];
5343
+ });
5344
+ return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
5345
+ stacked: true,
5346
+ header: /*#__PURE__*/React__default["default"].createElement("div", {
5347
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
5348
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("h1", {
5349
+ className: "LineHeightL FontSizeL"
5350
+ }, "Available blockchains"))),
5351
+ body: /*#__PURE__*/React__default["default"].createElement("div", {
5352
+ className: "MaxHeight PaddingTopM PaddingBottomM"
5353
+ }, blockchains.map(function (blockchain, index) {
5354
+ return /*#__PURE__*/React__default["default"].createElement("div", {
5355
+ key: index,
5356
+ className: "Card Row"
5357
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
5358
+ className: "CardImage"
5359
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
5360
+ className: "transparent",
5361
+ src: blockchain.logo
5362
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
5363
+ className: "CardBody"
5364
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
5365
+ className: "CardText"
5366
+ }, blockchain.label)));
5367
+ })),
5368
+ footer: /*#__PURE__*/React__default["default"].createElement("div", {
5369
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
5370
+ }, /*#__PURE__*/React__default["default"].createElement("button", {
5371
+ type: "button",
5372
+ className: "ButtonPrimary",
5373
+ onClick: function onClick() {
5374
+ return navigate('back');
5375
+ }
5376
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
5377
+ className: "FontSizeM"
5378
+ }, "\u276E"), " Go back"))
5379
+ });
5380
+ });
5381
+
5382
+ var WalletMissesBlockchainSupportDialog = (function (props) {
5383
+ var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
5384
+ navigate = _useContext.navigate;
5385
+ return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
5386
+ header: /*#__PURE__*/React__default["default"].createElement("div", {
5387
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
5388
+ }),
5389
+ body: /*#__PURE__*/React__default["default"].createElement("div", {
5390
+ className: "TextCenter"
5391
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
5392
+ className: "GraphicWrapper"
5393
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
5394
+ className: "Graphic",
5395
+ src: QuestionsGraphic
5396
+ })), /*#__PURE__*/React__default["default"].createElement("h1", {
5397
+ className: "LineHeightL Text FontSizeL PaddingTopS FontWeightBold"
5398
+ }, "Wallet Misses Blockchain Support"), /*#__PURE__*/React__default["default"].createElement("div", {
5399
+ className: "Text PaddingTopS PaddingBottomS PaddingLeftM PaddingRightM"
5400
+ }, /*#__PURE__*/React__default["default"].createElement("strong", {
5401
+ className: "FontSizeM"
5402
+ }, "The connected wallet does not support the blockchains required by this payment. Try to connect another wallet that does support one of the available blockchains.")), /*#__PURE__*/React__default["default"].createElement("div", {
5403
+ className: "PaddingBottomM"
5404
+ }, /*#__PURE__*/React__default["default"].createElement("button", {
5405
+ onClick: function onClick() {
5406
+ return navigate('PaymentBlockchains');
5407
+ },
5408
+ className: "Link FontSizeM",
5409
+ title: "Check which blockchains are available"
5410
+ }, "Check available blockchains"))),
5411
+ footer: /*#__PURE__*/React__default["default"].createElement("div", {
5412
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
5413
+ }, /*#__PURE__*/React__default["default"].createElement("button", {
5414
+ className: "ButtonPrimary",
5415
+ onClick: function onClick() {
5416
+ return props.disconnect();
5417
+ }
5418
+ }, "Connect another wallet"))
5419
+ });
5420
+ });
5421
+
5315
5422
  /**
5316
5423
  * @license
5317
5424
  * Lodash <https://lodash.com/>
@@ -22512,26 +22619,39 @@
22512
22619
  });
22513
22620
 
22514
22621
  var WalletProvider = (function (props) {
22515
- var _useContext = React.useContext(ConfigurationContext),
22516
- recover = _useContext.recover,
22517
- passedWallet = _useContext.wallet;
22518
- var _useContext2 = React.useContext(ErrorContext);
22519
- _useContext2.setError;
22622
+ var _useContext = React.useContext(ClosableContext),
22623
+ open = _useContext.open,
22624
+ close = _useContext.close;
22625
+ var _useContext2 = React.useContext(ConfigurationContext),
22626
+ accept = _useContext2.accept,
22627
+ recover = _useContext2.recover,
22628
+ passedWallet = _useContext2.wallet;
22629
+ var _useContext3 = React.useContext(UpdatableContext),
22630
+ setUpdatable = _useContext3.setUpdatable;
22631
+ var _useContext4 = React.useContext(ErrorContext);
22632
+ _useContext4.setError;
22520
22633
  var _useState = React.useState(passedWallet),
22521
22634
  _useState2 = _slicedToArray(_useState, 2),
22522
22635
  wallet = _useState2[0],
22523
22636
  setWallet = _useState2[1];
22524
- var _useState3 = React.useState(),
22637
+ var _useState3 = React.useState(false),
22525
22638
  _useState4 = _slicedToArray(_useState3, 2),
22526
- account = _useState4[0],
22527
- setAccount = _useState4[1];
22528
- var _useState5 = React.useState(passedWallet ? 'connected' : undefined),
22639
+ walletMissesBlockchainSupport = _useState4[0],
22640
+ setWalletMissesBlockchainSupport = _useState4[1];
22641
+ var _useState5 = React.useState(),
22529
22642
  _useState6 = _slicedToArray(_useState5, 2),
22530
- walletState = _useState6[0],
22531
- setWalletState = _useState6[1];
22643
+ account = _useState6[0],
22644
+ setAccount = _useState6[1];
22645
+ var _useState7 = React.useState(passedWallet ? 'connected' : undefined),
22646
+ _useState8 = _slicedToArray(_useState7, 2),
22647
+ walletState = _useState8[0],
22648
+ setWalletState = _useState8[1];
22532
22649
  var connect = React.useCallback(lodash.debounce(function () {
22533
22650
  wallet.connect().then(setAccount);
22534
22651
  }));
22652
+ var debounceSetWalletMissesBlockchainSupport = React.useCallback(lodash.debounce(function (value) {
22653
+ setWalletMissesBlockchainSupport(value);
22654
+ }));
22535
22655
  var connected = function connected(_ref) {
22536
22656
  var account = _ref.account,
22537
22657
  wallet = _ref.wallet;
@@ -22548,11 +22668,21 @@
22548
22668
  setAccount();
22549
22669
  setWallet();
22550
22670
  setWalletState();
22671
+ setWalletMissesBlockchainSupport(false);
22551
22672
  };
22552
22673
  React.useEffect(function () {
22553
22674
  if (!wallet) {
22554
22675
  return;
22555
22676
  }
22677
+ if (accept && !accept.some(function (configuration) {
22678
+ return wallet.blockchains.includes(configuration.blockchain);
22679
+ })) {
22680
+ setUpdatable(false);
22681
+ setTimeout(function () {
22682
+ return debounceSetWalletMissesBlockchainSupport(true);
22683
+ }, 200);
22684
+ return;
22685
+ }
22556
22686
  var onAccountChanged = function onAccountChanged(account) {
22557
22687
  if (account) {
22558
22688
  setAccount(account);
@@ -22592,7 +22722,21 @@
22592
22722
  }, _callee);
22593
22723
  }))();
22594
22724
  }, []);
22595
- if (walletState == 'connected' || recover != undefined) {
22725
+ if (walletMissesBlockchainSupport) {
22726
+ return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
22727
+ open: open,
22728
+ close: close,
22729
+ start: "WalletMissesBlockchainSupport",
22730
+ container: props.container,
22731
+ document: props.document,
22732
+ dialogs: {
22733
+ WalletMissesBlockchainSupport: /*#__PURE__*/React__default["default"].createElement(WalletMissesBlockchainSupportDialog, {
22734
+ disconnect: disconnect
22735
+ }),
22736
+ PaymentBlockchains: /*#__PURE__*/React__default["default"].createElement(PaymentBlockchainsDialog, null)
22737
+ }
22738
+ });
22739
+ } else if (walletState == 'connected' || recover != undefined) {
22596
22740
  return /*#__PURE__*/React__default["default"].createElement(WalletContext.Provider, {
22597
22741
  value: {
22598
22742
  account: account,
@@ -22708,47 +22852,8 @@
22708
22852
  return sortedLowToHigh[sortedLowToHigh.length - 1];
22709
22853
  });
22710
22854
 
22711
- var round = (function (input) {
22712
- var _digitsAfterDecimal;
22713
- var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'up';
22714
- var inputAsFloat = parseFloat(input);
22715
- var digitsAfterDecimal = inputAsFloat.toString().match(/\d+\.0*(\d{4})/);
22716
- if ((_digitsAfterDecimal = digitsAfterDecimal) !== null && _digitsAfterDecimal !== void 0 && _digitsAfterDecimal.length) {
22717
- digitsAfterDecimal = digitsAfterDecimal[0];
22718
- var focus = digitsAfterDecimal.match(/\d{4}$/)[0];
22719
- var _float;
22720
- var focusToFixed;
22721
- if (focus.match(/^0/)) {
22722
- if (direction == 'up') {
22723
- _float = parseFloat("".concat(focus[1], ".").concat(focus[2]).concat(focus[3]));
22724
- } else {
22725
- _float = parseFloat("".concat(focus[1], ".").concat(focus[2]).concat(focus[3]));
22726
- }
22727
- focusToFixed = parseFloat(_float).toFixed(2);
22728
- focusToFixed = "0".concat(focusToFixed).replace('.', '');
22729
- } else {
22730
- if (direction == 'up') {
22731
- _float = parseFloat("".concat(focus[0], ".").concat(focus[1]).concat(focus[2], "9"));
22732
- } else {
22733
- _float = parseFloat("".concat(focus[0], ".").concat(focus[1]).concat(focus[2], "1"));
22734
- }
22735
- focusToFixed = parseFloat(_float).toFixed(2).replace('.', '');
22736
- }
22737
- if (focusToFixed == '0999' && parseInt(inputAsFloat.toFixed(0)) == 0) {
22738
- focusToFixed = direction == 'up' ? '1000' : '0999';
22739
- return parseFloat(digitsAfterDecimal.replace(/\d{4}$/, focusToFixed));
22740
- } else if (focusToFixed == '1000' && parseInt(inputAsFloat.toFixed(0)) == 0) {
22741
- return parseFloat(digitsAfterDecimal.replace(/\d{5}$/, focusToFixed));
22742
- } else if (focusToFixed.toString()[0] != "0" && focusToFixed.toString().length > 3) {
22743
- return parseInt(inputAsFloat.toFixed(0));
22744
- } else {
22745
- return parseFloat(digitsAfterDecimal.replace(/\d{4}$/, focusToFixed));
22746
- }
22747
- } else {
22748
- return parseFloat(inputAsFloat.toFixed(3));
22749
- }
22750
- });
22751
-
22855
+ function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22856
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22752
22857
  var ChangableAmountProvider = (function (props) {
22753
22858
  var configurationsMissAmounts = function configurationsMissAmounts(configurations) {
22754
22859
  return !configurations.every(function (configuration) {
@@ -22865,8 +22970,8 @@
22865
22970
  });
22866
22971
  };
22867
22972
  var updateAmounts = React.useCallback(lodash.debounce(function (_ref2) {
22868
- var account = _ref2.account,
22869
- amount = _ref2.amount,
22973
+ _ref2.account;
22974
+ var amount = _ref2.amount,
22870
22975
  conversionRate = _ref2.conversionRate,
22871
22976
  fixedCurrencyConversionRate = _ref2.fixedCurrencyConversionRate;
22872
22977
  getAmounts({
@@ -22878,12 +22983,9 @@
22878
22983
  if (amounts[index] == undefined) {
22879
22984
  return;
22880
22985
  }
22881
- return {
22882
- blockchain: configuration.blockchain,
22883
- amount: round(amounts[index]),
22884
- token: configuration.token,
22885
- receiver: configuration.receiver || account
22886
- };
22986
+ return _objectSpread$5(_objectSpread$5({}, configuration), {}, {
22987
+ amount: round(amounts[index])
22988
+ });
22887
22989
  }).filter(function (configuration) {
22888
22990
  return !!configuration;
22889
22991
  }));
@@ -23017,106 +23119,38 @@
23017
23119
 
23018
23120
  var PaymentAmountRoutingContext = /*#__PURE__*/React__default["default"].createContext();
23019
23121
 
23020
- var format = (function (input) {
23021
- var _float = round(input);
23022
- var floatToString = _float.toString();
23023
- if (new RegExp(/\./).test(floatToString)) {
23024
- var exploded = floatToString.split('.');
23025
- return new Intl.NumberFormat().format(parseInt(exploded[0])) + '.' + exploded[1];
23026
- } else {
23027
- return new Intl.NumberFormat().format(_float);
23028
- }
23029
- });
23122
+ var PaymentRoutingContext = /*#__PURE__*/React__default["default"].createContext();
23030
23123
 
23031
- var PaymentBlockchainsDialog = (function () {
23032
- var _useContext = React.useContext(ConfigurationContext),
23033
- accept = _useContext.accept;
23034
- var _useContext2 = React.useContext(reactDialogStack.NavigateStackContext),
23035
- navigate = _useContext2.navigate;
23036
- var blockchains = _toConsumableArray(new Set(accept.map(function (configuration) {
23037
- return configuration.blockchain;
23038
- }))).map(function (blockchainName) {
23039
- return Blockchains__default["default"][blockchainName];
23124
+ function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23125
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23126
+ var prepareAcceptedPayments = function prepareAcceptedPayments(accept) {
23127
+ var toAddress = _typeof(accept.receiver) == 'object' ? accept.receiver.address : accept.receiver;
23128
+ var toContract = _typeof(accept.receiver) == 'object' ? accept.receiver : undefined;
23129
+ return _objectSpread$4(_objectSpread$4({}, accept), {}, {
23130
+ toAddress: toAddress,
23131
+ toContract: toContract
23040
23132
  });
23041
- return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
23042
- stacked: true,
23043
- header: /*#__PURE__*/React__default["default"].createElement("div", {
23044
- className: "PaddingTopS PaddingLeftM PaddingRightM"
23045
- }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("h1", {
23046
- className: "LineHeightL FontSizeL"
23047
- }, "Available blockchains"))),
23048
- body: /*#__PURE__*/React__default["default"].createElement("div", {
23049
- className: "MaxHeight PaddingTopM PaddingBottomM"
23050
- }, blockchains.map(function (blockchain, index) {
23051
- return /*#__PURE__*/React__default["default"].createElement("div", {
23052
- key: index,
23053
- className: "Card Row"
23054
- }, /*#__PURE__*/React__default["default"].createElement("div", {
23055
- className: "CardImage"
23056
- }, /*#__PURE__*/React__default["default"].createElement("img", {
23057
- className: "transparent",
23058
- src: blockchain.logo
23059
- })), /*#__PURE__*/React__default["default"].createElement("div", {
23060
- className: "CardBody"
23061
- }, /*#__PURE__*/React__default["default"].createElement("span", {
23062
- className: "CardText"
23063
- }, blockchain.label)));
23064
- })),
23065
- footer: /*#__PURE__*/React__default["default"].createElement("div", {
23066
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
23067
- }, /*#__PURE__*/React__default["default"].createElement("button", {
23068
- type: "button",
23069
- className: "ButtonPrimary",
23070
- onClick: function onClick() {
23071
- return navigate('back');
23072
- }
23073
- }, /*#__PURE__*/React__default["default"].createElement("span", {
23074
- className: "FontSizeM"
23075
- }, "\u276E"), " Go back"))
23133
+ };
23134
+ var mergeFromAccounts = function mergeFromAccounts(accept, account) {
23135
+ var from = {};
23136
+ accept.forEach(function (accept) {
23137
+ from[accept.blockchain] = account;
23076
23138
  });
23077
- });
23078
-
23079
- var PaymentRoutingContext = /*#__PURE__*/React__default["default"].createContext();
23080
-
23081
- var WalletMissesBlockchainSupportDialog = (function () {
23082
- var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
23083
- navigate = _useContext.navigate;
23084
- var _useContext2 = React.useContext(WalletContext),
23085
- disconnect = _useContext2.disconnect;
23086
- return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
23087
- header: /*#__PURE__*/React__default["default"].createElement("div", {
23088
- className: "PaddingTopS PaddingLeftM PaddingRightM"
23089
- }),
23090
- body: /*#__PURE__*/React__default["default"].createElement("div", {
23091
- className: "TextCenter"
23092
- }, /*#__PURE__*/React__default["default"].createElement("div", {
23093
- className: "GraphicWrapper"
23094
- }, /*#__PURE__*/React__default["default"].createElement("img", {
23095
- className: "Graphic",
23096
- src: QuestionsGraphic
23097
- })), /*#__PURE__*/React__default["default"].createElement("h1", {
23098
- className: "LineHeightL Text FontSizeL PaddingTopS FontWeightBold"
23099
- }, "Wallet Misses Blockchain Support"), /*#__PURE__*/React__default["default"].createElement("div", {
23100
- className: "Text PaddingTopS PaddingBottomS PaddingLeftM PaddingRightM"
23101
- }, /*#__PURE__*/React__default["default"].createElement("strong", {
23102
- className: "FontSizeM"
23103
- }, "The connected wallet does not support the blockchains required by this payment. Try to connect another wallet that does support one of the available blockchains.")), /*#__PURE__*/React__default["default"].createElement("div", {
23104
- className: "PaddingBottomM"
23105
- }, /*#__PURE__*/React__default["default"].createElement("button", {
23106
- onClick: function onClick() {
23107
- return navigate('PaymentBlockchains');
23108
- },
23109
- className: "Link FontSizeM",
23110
- title: "Check which blockchains are available"
23111
- }, "Check available blockchains"))),
23112
- footer: /*#__PURE__*/React__default["default"].createElement("div", {
23113
- className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
23114
- }, /*#__PURE__*/React__default["default"].createElement("button", {
23115
- className: "ButtonPrimary",
23116
- onClick: function onClick() {
23117
- return disconnect();
23118
- }
23119
- }, "Connect another wallet"))
23139
+ return from;
23140
+ };
23141
+ var routePayments = (function (_ref) {
23142
+ var accept = _ref.accept,
23143
+ account = _ref.account,
23144
+ whitelist = _ref.whitelist,
23145
+ blacklist = _ref.blacklist,
23146
+ fee = _ref.fee;
23147
+ return web3PaymentsEvm.route({
23148
+ accept: accept.map(prepareAcceptedPayments),
23149
+ from: mergeFromAccounts(accept, account),
23150
+ whitelist: whitelist,
23151
+ blacklist: blacklist,
23152
+ event: 'ifRoutedAndNative',
23153
+ fee: fee
23120
23154
  });
23121
23155
  });
23122
23156
 
@@ -23143,20 +23177,12 @@
23143
23177
  _useState10 = _slicedToArray(_useState9, 2),
23144
23178
  reloadCount = _useState10[0],
23145
23179
  setReloadCount = _useState10[1];
23146
- var _useState11 = React.useState(false),
23147
- _useState12 = _slicedToArray(_useState11, 2),
23148
- walletMissesBlockchainSupport = _useState12[0],
23149
- setWalletMissesBlockchainSupport = _useState12[1];
23150
23180
  var _useContext = React.useContext(WalletContext),
23151
- wallet = _useContext.wallet,
23152
23181
  account = _useContext.account;
23153
23182
  var _useContext2 = React.useContext(UpdatableContext),
23154
23183
  updatable = _useContext2.updatable;
23155
23184
  var _useContext3 = React.useContext(ConfigurationContext),
23156
23185
  recover = _useContext3.recover;
23157
- var _useContext4 = React.useContext(ClosableContext),
23158
- open = _useContext4.open,
23159
- close = _useContext4.close;
23160
23186
  var onRoutesUpdate = /*#__PURE__*/function () {
23161
23187
  var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(routes) {
23162
23188
  return regenerator.wrap(function _callee2$(_context2) {
@@ -23231,27 +23257,19 @@
23231
23257
  }
23232
23258
  return _context3.abrupt("return");
23233
23259
  case 3:
23234
- if (props.accept.some(function (configuration) {
23235
- return wallet.blockchains.includes(configuration.blockchain);
23236
- })) {
23237
- _context3.next = 5;
23238
- break;
23239
- }
23240
- return _context3.abrupt("return", setWalletMissesBlockchainSupport(true));
23241
- case 5:
23242
23260
  slowRoutingTimeout = setTimeout(function () {
23243
23261
  setSlowRouting(true);
23244
23262
  }, 4000);
23245
- _context3.next = 8;
23263
+ _context3.next = 6;
23246
23264
  return routePayments(Object.assign({}, props, {
23247
23265
  account: account
23248
23266
  })).then(function (routes) {
23249
23267
  clearInterval(slowRoutingTimeout);
23250
23268
  onRoutesUpdate(routes);
23251
23269
  });
23252
- case 8:
23270
+ case 6:
23253
23271
  return _context3.abrupt("return", _context3.sent);
23254
- case 9:
23272
+ case 7:
23255
23273
  case "end":
23256
23274
  return _context3.stop();
23257
23275
  }
@@ -23356,32 +23374,18 @@
23356
23374
  refreshPaymentRoutes();
23357
23375
  }
23358
23376
  }, [account, props.accept]);
23359
- if (walletMissesBlockchainSupport) {
23360
- return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
23361
- open: open,
23362
- close: close,
23363
- start: "WalletMissesBlockchainSupport",
23364
- container: props.container,
23365
- document: props.document,
23366
- dialogs: {
23367
- WalletMissesBlockchainSupport: /*#__PURE__*/React__default["default"].createElement(WalletMissesBlockchainSupportDialog, null),
23368
- PaymentBlockchains: /*#__PURE__*/React__default["default"].createElement(PaymentBlockchainsDialog, null)
23369
- }
23370
- });
23371
- } else {
23372
- return /*#__PURE__*/React__default["default"].createElement(PaymentRoutingContext.Provider, {
23373
- value: {
23374
- selectedRoute: selectedRoute,
23375
- setSelectedRoute: setSelectedRoute,
23376
- refreshPaymentRoutes: refreshPaymentRoutes,
23377
- allRoutes: allRoutes,
23378
- setAllRoutes: setAllRoutes,
23379
- slowRouting: slowRouting,
23380
- updatedRouteWithNewPrice: updatedRouteWithNewPrice,
23381
- updateRouteWithNewPrice: updateRouteWithNewPrice
23382
- }
23383
- }, props.children);
23384
- }
23377
+ return /*#__PURE__*/React__default["default"].createElement(PaymentRoutingContext.Provider, {
23378
+ value: {
23379
+ selectedRoute: selectedRoute,
23380
+ setSelectedRoute: setSelectedRoute,
23381
+ refreshPaymentRoutes: refreshPaymentRoutes,
23382
+ allRoutes: allRoutes,
23383
+ setAllRoutes: setAllRoutes,
23384
+ slowRouting: slowRouting,
23385
+ updatedRouteWithNewPrice: updatedRouteWithNewPrice,
23386
+ updateRouteWithNewPrice: updateRouteWithNewPrice
23387
+ }
23388
+ }, props.children);
23385
23389
  });
23386
23390
 
23387
23391
  var PaymentAmountRoutingProvider = (function (props) {
@@ -25837,11 +25841,11 @@
25837
25841
  }();
25838
25842
  var Payment = /*#__PURE__*/function () {
25839
25843
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
25840
- var accept, amount, sent, succeeded, validated, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, fee, recover, closable, integration, link, container, before, wallet, title, action, document, unmount;
25844
+ var accept, amount, sent, succeeded, validated, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, recover, closable, integration, link, container, before, wallet, title, action, document, unmount;
25841
25845
  return regenerator.wrap(function _callee2$(_context2) {
25842
25846
  while (1) switch (_context2.prev = _context2.next) {
25843
25847
  case 0:
25844
- accept = _ref3.accept, amount = _ref3.amount, sent = _ref3.sent, succeeded = _ref3.succeeded, validated = _ref3.validated, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, whitelist = _ref3.whitelist, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, track = _ref3.track, fee = _ref3.fee, recover = _ref3.recover, closable = _ref3.closable, integration = _ref3.integration, link = _ref3.link, container = _ref3.container, before = _ref3.before, wallet = _ref3.wallet, title = _ref3.title, action = _ref3.action, document = _ref3.document;
25848
+ accept = _ref3.accept, amount = _ref3.amount, sent = _ref3.sent, succeeded = _ref3.succeeded, validated = _ref3.validated, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, whitelist = _ref3.whitelist, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, track = _ref3.track, recover = _ref3.recover, closable = _ref3.closable, integration = _ref3.integration, link = _ref3.link, container = _ref3.container, before = _ref3.before, wallet = _ref3.wallet, title = _ref3.title, action = _ref3.action, document = _ref3.document;
25845
25849
  requireReactVersion();
25846
25850
  if (currency && !SUPPORTED_CURRENCIES.includes(currency.toLowerCase())) {
25847
25851
  currency = false;
@@ -25883,7 +25887,6 @@
25883
25887
  blacklist: blacklist,
25884
25888
  providers: providers,
25885
25889
  track: track,
25886
- fee: fee,
25887
25890
  recover: recover,
25888
25891
  integration: integration,
25889
25892
  link: link,
@@ -25906,7 +25909,6 @@
25906
25909
  whitelist: whitelist,
25907
25910
  blacklist: blacklist,
25908
25911
  event: event,
25909
- fee: fee,
25910
25912
  container: container,
25911
25913
  document: document
25912
25914
  }, /*#__PURE__*/React__default["default"].createElement(TransactionTrackingProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentTrackingProvider, {
@@ -25946,13 +25948,11 @@
25946
25948
  whitelist = _ref5.whitelist,
25947
25949
  blacklist = _ref5.blacklist;
25948
25950
  _ref5.event;
25949
- var fee = _ref5.fee;
25950
25951
  routePayments({
25951
25952
  account: account,
25952
25953
  accept: accept,
25953
25954
  whitelist: whitelist,
25954
- blacklist: blacklist,
25955
- fee: fee
25955
+ blacklist: blacklist
25956
25956
  });
25957
25957
  };
25958
25958
 
@@ -27187,7 +27187,6 @@
27187
27187
  }),
27188
27188
  SelectBlockchain: /*#__PURE__*/React__default["default"].createElement(SelectBlockchainDialog, {
27189
27189
  selection: selection,
27190
- stacked: true,
27191
27190
  resolve: props.resolve,
27192
27191
  unmount: props.unmount
27193
27192
  }),
@@ -27613,7 +27612,8 @@
27613
27612
  }),
27614
27613
  SelectBlockchain: /*#__PURE__*/React__default["default"].createElement(SelectBlockchainDialog, {
27615
27614
  selection: selection,
27616
- resolve: props.resolve
27615
+ resolve: props.resolve,
27616
+ unmount: props.unmount
27617
27617
  }),
27618
27618
  ConfirmTokenSelection: /*#__PURE__*/React__default["default"].createElement(ConfirmTokenSelectionDialog, {
27619
27619
  selection: selection,