@depay/widgets 6.11.0 → 6.13.0

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.
@@ -1605,6 +1605,8 @@
1605
1605
  constructor(props) {
1606
1606
  super(props);
1607
1607
 
1608
+ this.handler = this.onKeyDown.bind(this);
1609
+
1608
1610
  this.state = {
1609
1611
  open: true,
1610
1612
  };
@@ -1638,22 +1640,22 @@
1638
1640
  this.setState({ open: true });
1639
1641
  }, 10);
1640
1642
  });
1641
- this.props.document.addEventListener('keydown', this.onKeyDown.bind(this), false);
1643
+ this.props.document.addEventListener('keydown', this.handler, true);
1642
1644
  }
1643
1645
 
1644
1646
  componentWillUnmount() {
1645
- this.props.document.addEventListener('keydown', this.onKeyDown.bind(this), false);
1647
+ this.props.document.removeEventListener('keydown', this.handler, true);
1646
1648
  }
1647
1649
 
1648
1650
  render() {
1649
1651
  const classNames = ['ReactDialog', this.state.open ? 'ReactDialogOpen' : ''];
1650
1652
  const style = ReactDialogStyle({ background: this.props.background });
1651
1653
  return (
1652
- react.createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName$2, lineNumber: 54}}
1653
- , react.createElement('style', {__self: this, __source: {fileName: _jsxFileName$2, lineNumber: 55}}, style)
1654
- , react.createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName$2, lineNumber: 56}}
1655
- , react.createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName$2, lineNumber: 57}}
1656
- , react.createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName$2, lineNumber: 58}} )
1654
+ react.createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName$2, lineNumber: 56}}
1655
+ , react.createElement('style', {__self: this, __source: {fileName: _jsxFileName$2, lineNumber: 57}}, style)
1656
+ , react.createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName$2, lineNumber: 58}}
1657
+ , react.createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName$2, lineNumber: 59}}
1658
+ , react.createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName$2, lineNumber: 60}} )
1657
1659
  , this.props.children
1658
1660
  )
1659
1661
  )
@@ -1773,6 +1775,10 @@
1773
1775
  constructor(props) {
1774
1776
  super(props);
1775
1777
 
1778
+ if (props.setNavigate) {
1779
+ props.setNavigate(this.navigate.bind(this));
1780
+ }
1781
+
1776
1782
  this.state = {
1777
1783
  stack: [props.start],
1778
1784
  animating: false,
@@ -1887,15 +1893,15 @@
1887
1893
  this.classForDirection(),
1888
1894
  ];
1889
1895
  return (
1890
- react.createElement('div', { key: index, className: ['ReactDialogStack'].concat(stackState).join(' '), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 127}}
1891
- , react.createElement('div', { className: "ReactDialogStackRow", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 128}}
1892
- , react.createElement('div', { className: "ReactDialogStackCell", onClick: this.onClick.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 129}}
1896
+ react.createElement('div', { key: index, className: ['ReactDialogStack'].concat(stackState).join(' '), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 131}}
1897
+ , react.createElement('div', { className: "ReactDialogStackRow", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 132}}
1898
+ , react.createElement('div', { className: "ReactDialogStackCell", onClick: this.onClick.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 133}}
1893
1899
  , react.createElement(NavigateStackContext.Provider, {
1894
- value: { navigate: this.navigate.bind(this), set: this.set.bind(this) }, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 130}}
1900
+ value: { navigate: this.navigate.bind(this), set: this.set.bind(this) }, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 134}}
1895
1901
 
1896
- , react.createElement(CloseStackContext.Provider, { value: this.close.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 133}}
1897
- , react.createElement(StackContext.Provider, { value: this.state.stack, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 134}}
1898
- , react.createElement('div', { className: "ReactDialogAnimation", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 135}}, this.props.dialogs[route])
1902
+ , react.createElement(CloseStackContext.Provider, { value: this.close.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 137}}
1903
+ , react.createElement(StackContext.Provider, { value: this.state.stack, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 138}}
1904
+ , react.createElement('div', { className: "ReactDialogAnimation", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 139}}, this.props.dialogs[route])
1899
1905
  )
1900
1906
  )
1901
1907
  )
@@ -1938,9 +1944,9 @@
1938
1944
  open: this.props.open,
1939
1945
  document: this.props.document,
1940
1946
  container: this.props.container,
1941
- background: this.props.background, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 173}}
1947
+ background: this.props.background, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 177}}
1942
1948
 
1943
- , react.createElement('style', {__self: this, __source: {fileName: _jsxFileName$1, lineNumber: 180}}, ReactDialogStackStyle())
1949
+ , react.createElement('style', {__self: this, __source: {fileName: _jsxFileName$1, lineNumber: 184}}, ReactDialogStackStyle())
1944
1950
  , this.renderStack()
1945
1951
  )
1946
1952
  )
@@ -48413,7 +48419,7 @@
48413
48419
  function _optionalChain$5(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
48414
48420
  class Transaction {
48415
48421
 
48416
- constructor({ blockchain, from, nonce, to, api, method, params, value, sent, confirmed, ensured, failed }) {
48422
+ constructor({ blockchain, from, nonce, to, api, method, params, value, sent, confirmed, failed }) {
48417
48423
 
48418
48424
  this.blockchain = blockchain;
48419
48425
  this.from = from;
@@ -48425,10 +48431,8 @@
48425
48431
  this.value = _optionalChain$5([Transaction, 'access', _ => _.bigNumberify, 'call', _2 => _2(value, blockchain), 'optionalAccess', _3 => _3.toString, 'call', _4 => _4()]);
48426
48432
  this.sent = sent;
48427
48433
  this.confirmed = confirmed;
48428
- this.ensured = ensured;
48429
48434
  this.failed = failed;
48430
48435
  this._confirmed = false;
48431
- this._ensured = false;
48432
48436
  this._failed = false;
48433
48437
  }
48434
48438
 
@@ -48475,19 +48479,6 @@
48475
48479
  })
48476
48480
  }
48477
48481
 
48478
- ensurance() {
48479
- if (this._ensured) {
48480
- return Promise.resolve(this)
48481
- }
48482
- return new Promise((resolve, reject) => {
48483
- let originalEnsured = this.ensured;
48484
- this.ensured = () => {
48485
- if (originalEnsured) originalEnsured(this);
48486
- resolve(this);
48487
- };
48488
- })
48489
- }
48490
-
48491
48482
  failure() {
48492
48483
  if (this._failed) {
48493
48484
  return Promise.resolve(this)
@@ -48532,15 +48523,22 @@
48532
48523
  transaction._confirmed = true;
48533
48524
  if (transaction.confirmed) transaction.confirmed(transaction);
48534
48525
  }).catch((error)=>{
48535
- transaction._failed = true;
48536
- if(transaction.failed) transaction.failed(transaction, error);
48537
- });
48538
- sentTransaction.wait(12).then(() => {
48539
- transaction._ensured = true;
48540
- if (transaction.ensured) transaction.ensured(transaction);
48541
- }).catch((error)=>{
48542
- transaction._failed = true;
48543
- if(transaction.failed) transaction.failed(transaction, error);
48526
+ if(error && error.code && error.code == 'TRANSACTION_REPLACED') {
48527
+ if(error.replacement && error.replacement.hash) {
48528
+ transaction.id = error.replacement.hash;
48529
+ transaction.url = Blockchain.findByName(transaction.blockchain).explorerUrlFor({ transaction });
48530
+ }
48531
+ if(error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 1) {
48532
+ transaction._confirmed = true;
48533
+ if (transaction.confirmed) transaction.confirmed(transaction);
48534
+ } else if(error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 0) {
48535
+ transaction._failed = true;
48536
+ if(transaction.failed) transaction.failed(transaction, error);
48537
+ }
48538
+ } else {
48539
+ transaction._failed = true;
48540
+ if(transaction.failed) transaction.failed(transaction, error);
48541
+ }
48544
48542
  });
48545
48543
  } else {
48546
48544
  throw('Submitting transaction failed!')
@@ -48781,15 +48779,20 @@
48781
48779
  transaction._confirmed = true;
48782
48780
  if (transaction.confirmed) transaction.confirmed(transaction);
48783
48781
  }).catch((error)=>{
48784
- transaction._failed = true;
48785
- if(transaction.failed) transaction.failed(transaction, error);
48786
- });
48787
- sentTransaction.wait(12).then(() => {
48788
- transaction._ensured = true;
48789
- if (transaction.ensured) transaction.ensured(transaction);
48790
- }).catch((error)=>{
48791
- transaction._failed = true;
48792
- if(transaction.failed) transaction.failed(transaction, error);
48782
+ if(error && error.code && error.code == 'TRANSACTION_REPLACED') {
48783
+ if(error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 1) {
48784
+ transaction.id = error.replacement.hash;
48785
+ transaction._confirmed = true;
48786
+ if (transaction.confirmed) transaction.confirmed(transaction);
48787
+ } else if(error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 0) {
48788
+ transaction.id = error.replacement.hash;
48789
+ transaction._failed = true;
48790
+ if(transaction.failed) transaction.failed(transaction, error);
48791
+ }
48792
+ } else {
48793
+ transaction._failed = true;
48794
+ if(transaction.failed) transaction.failed(transaction, error);
48795
+ }
48793
48796
  });
48794
48797
  }
48795
48798
  } else {
@@ -49487,7 +49490,7 @@
49487
49490
  });
49488
49491
 
49489
49492
  var DialogStyle = (function (style) {
49490
- return "\n\n .ReactDialogBackground {\n backdrop-filter: blur(5px);\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n background: rgb(248,248,248);\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n }\n\n .DialogFooter {\n padding-bottom: 20px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.ScrollHeight {\n height: 30vh !important;\n max-height: 30vh !important;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n min-height: 3.4rem;\n position: relative;\n width: 100%;\n }\n\n .DialogHeaderActionRight {\n position: absolute;\n top: 0;\n right: 0;\n height: 3rem;\n }\n\n .DialogHeaderActionLeft {\n position: absolute;\n top: 0;\n left: 0;\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
49493
+ return "\n\n .ReactDialogBackground {\n backdrop-filter: blur(5px);\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n background: rgb(248,248,248);\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n }\n\n .ReactDialogCell {\n vertical-align: bottom;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n }\n\n .DialogFooter {\n padding-bottom: 20px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.ScrollHeight {\n height: 30vh !important;\n max-height: 30vh !important;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n min-height: 3.4rem;\n position: relative;\n width: 100%;\n }\n\n .DialogHeaderActionRight {\n position: absolute;\n top: 0;\n right: 0;\n height: 3rem;\n }\n\n .DialogHeaderActionLeft {\n position: absolute;\n top: 0;\n left: 0;\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
49491
49494
  });
49492
49495
 
49493
49496
  var FontStyle = (function (style) {
@@ -49887,7 +49890,7 @@
49887
49890
  focusToFixed = parseFloat(_float).toFixed(1).replace('.', '');
49888
49891
  }
49889
49892
 
49890
- if (focusToFixed.toString()[0] != 0 && focusToFixed.toString().length > 2) {
49893
+ if (focusToFixed.toString()[0] != "0" && focusToFixed.toString().length > 2) {
49891
49894
  return parseInt(inputAsFloat.toFixed(0));
49892
49895
  } else {
49893
49896
  return parseFloat(digitsAfterDecimal.replace(/\d{3}$/, focusToFixed));
@@ -61725,16 +61728,17 @@
61725
61728
  });
61726
61729
  };
61727
61730
 
61728
- var _useState = react.useState(configurationsMissAmounts(props.accept)),
61731
+ var _useContext = react.useContext(ConfigurationContext),
61732
+ amountConfiguration = _useContext.amount,
61733
+ recover = _useContext.recover;
61734
+
61735
+ var _useState = react.useState(recover == undefined ? configurationsMissAmounts(props.accept) : false),
61729
61736
  _useState2 = _slicedToArray(_useState, 2),
61730
61737
  amountsMissing = _useState2[0],
61731
61738
  setAmountsMissing = _useState2[1];
61732
61739
 
61733
- var _useContext = react.useContext(WalletContext),
61734
- account = _useContext.account;
61735
-
61736
- var _useContext2 = react.useContext(ConfigurationContext),
61737
- amountConfiguration = _useContext2.amount;
61740
+ var _useContext2 = react.useContext(WalletContext),
61741
+ account = _useContext2.account;
61738
61742
 
61739
61743
  var _useContext3 = react.useContext(ConversionRateContext),
61740
61744
  conversionRate = _useContext3.conversionRate;
@@ -61763,8 +61767,12 @@
61763
61767
  setMaxAmount = _useState10[1];
61764
61768
 
61765
61769
  react.useEffect(function () {
61770
+ if (recover) {
61771
+ return;
61772
+ }
61773
+
61766
61774
  setAmountsMissing(configurationsMissAmounts(props.accept));
61767
- }, [props.accept]);
61775
+ }, [props.accept, recover]);
61768
61776
 
61769
61777
  var getAmounts = function getAmounts() {
61770
61778
  return new Promise(function (resolve, reject) {
@@ -61800,6 +61808,10 @@
61800
61808
  };
61801
61809
 
61802
61810
  react.useEffect(function () {
61811
+ if (recover) {
61812
+ return;
61813
+ }
61814
+
61803
61815
  if (amountsMissing && account && conversionRate) {
61804
61816
  getAmounts().then(function (amounts) {
61805
61817
  setAcceptWithAmount(props.accept.map(function (configuration, index) {
@@ -61818,7 +61830,7 @@
61818
61830
  }));
61819
61831
  })["catch"](setError);
61820
61832
  }
61821
- }, [amountsMissing, account, conversionRate, amount]);
61833
+ }, [amountsMissing, account, conversionRate, amount, recover]);
61822
61834
  react.useEffect(function () {
61823
61835
  if (amountsMissing && maxRoute) {
61824
61836
  maxRoute.fromToken.readable(maxRoute.fromBalance).then(function (readableMaxAmount) {
@@ -62389,6 +62401,8 @@
62389
62401
 
62390
62402
  var DonationRoutingContext = /*#__PURE__*/react.createContext();
62391
62403
 
62404
+ var NavigateContext = /*#__PURE__*/react.createContext();
62405
+
62392
62406
  var QuestionsGraphic = "data:image/png;base64,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";
62393
62407
 
62394
62408
  var NoPaymentMethodFoundDialog = (function () {
@@ -62424,7 +62438,9 @@
62424
62438
 
62425
62439
  var PaymentRoutingContext = /*#__PURE__*/react.createContext();
62426
62440
 
62427
- var TrackingContext = /*#__PURE__*/react.createContext();
62441
+ var PaymentTrackingContext = /*#__PURE__*/react.createContext();
62442
+
62443
+ var TransactionTrackingContext = /*#__PURE__*/react.createContext();
62428
62444
 
62429
62445
  var PaymentProvider = (function (props) {
62430
62446
  var _useContext = react.useContext(ErrorContext),
@@ -62432,11 +62448,13 @@
62432
62448
 
62433
62449
  var _useContext2 = react.useContext(ConfigurationContext),
62434
62450
  _sent = _useContext2.sent,
62435
- _confirmed = _useContext2.confirmed,
62436
- _failed = _useContext2.failed;
62451
+ confirmed = _useContext2.confirmed,
62452
+ failed = _useContext2.failed,
62453
+ recover = _useContext2.recover;
62437
62454
 
62438
62455
  var _useContext3 = react.useContext(PaymentRoutingContext),
62439
- selectedRoute = _useContext3.selectedRoute;
62456
+ selectedRoute = _useContext3.selectedRoute,
62457
+ getPaymentRoutes = _useContext3.getPaymentRoutes;
62440
62458
 
62441
62459
  var _useContext4 = react.useContext(ClosableContext),
62442
62460
  open = _useContext4.open,
@@ -62449,13 +62467,20 @@
62449
62467
  var _useContext6 = react.useContext(UpdatableContext),
62450
62468
  setUpdatable = _useContext6.setUpdatable;
62451
62469
 
62452
- var _useContext7 = react.useContext(WalletContext),
62453
- wallet = _useContext7.wallet;
62470
+ var _useContext7 = react.useContext(NavigateContext),
62471
+ navigate = _useContext7.navigate;
62454
62472
 
62455
- var _useContext8 = react.useContext(TrackingContext),
62456
- release = _useContext8.release,
62457
- tracking = _useContext8.tracking,
62458
- initializeTracking = _useContext8.initializeTracking;
62473
+ var _useContext8 = react.useContext(WalletContext),
62474
+ wallet = _useContext8.wallet;
62475
+
62476
+ var _useContext9 = react.useContext(PaymentTrackingContext),
62477
+ release = _useContext9.release,
62478
+ tracking = _useContext9.tracking,
62479
+ initializeTracking = _useContext9.initializeTracking;
62480
+
62481
+ var _useContext10 = react.useContext(TransactionTrackingContext),
62482
+ foundTransaction = _useContext10.foundTransaction,
62483
+ initializeTransactionTracking = _useContext10.initializeTracking;
62459
62484
 
62460
62485
  var _useState = react.useState(),
62461
62486
  _useState2 = _slicedToArray(_useState, 2),
@@ -62477,52 +62502,59 @@
62477
62502
  paymentState = _useState8[0],
62478
62503
  setPaymentState = _useState8[1];
62479
62504
 
62505
+ var paymentConfirmed = function paymentConfirmed(transaction) {
62506
+ if (tracking != true) {
62507
+ setClosable(true);
62508
+ }
62509
+
62510
+ setPaymentState('confirmed');
62511
+
62512
+ if (confirmed) {
62513
+ confirmed(transaction);
62514
+ }
62515
+ };
62516
+
62517
+ var paymentFailed = function paymentFailed(transaction, error) {
62518
+ if (failed) {
62519
+ failed(transaction, error);
62520
+ }
62521
+
62522
+ setPaymentState('initialized');
62523
+ setPayment(null);
62524
+ setClosable(true);
62525
+ setUpdatable(true);
62526
+ getPaymentRoutes({});
62527
+ navigate('PaymentError');
62528
+ };
62529
+
62480
62530
  var pay = /*#__PURE__*/function () {
62481
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
62482
- var navigate, currentBlock;
62531
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee() {
62532
+ var currentBlock;
62483
62533
  return regenerator.wrap(function _callee$(_context) {
62484
62534
  while (1) {
62485
62535
  switch (_context.prev = _context.next) {
62486
62536
  case 0:
62487
- navigate = _ref.navigate;
62488
62537
  setClosable(false);
62489
62538
  setPaymentState('paying');
62490
62539
  setUpdatable(false);
62491
- _context.next = 6;
62540
+ _context.next = 5;
62492
62541
  return request({
62493
62542
  blockchain: payment.route.transaction.blockchain,
62494
62543
  method: 'latestBlockNumber'
62495
62544
  });
62496
62545
 
62497
- case 6:
62546
+ case 5:
62498
62547
  currentBlock = _context.sent;
62499
62548
  wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
62500
62549
  sent: function sent(transaction) {
62550
+ initializeTransactionTracking(transaction, currentBlock);
62551
+
62501
62552
  if (_sent) {
62502
62553
  _sent(transaction);
62503
62554
  }
62504
62555
  },
62505
- confirmed: function confirmed(transaction) {
62506
- if (tracking != true) {
62507
- setClosable(true);
62508
- }
62509
-
62510
- setPaymentState('confirmed');
62511
-
62512
- if (_confirmed) {
62513
- _confirmed(transaction);
62514
- }
62515
- },
62516
- failed: function failed(transaction, error) {
62517
- if (_failed) {
62518
- _failed(transaction, error);
62519
- }
62520
-
62521
- setPaymentState('initialized');
62522
- setClosable(true);
62523
- setUpdatable(true);
62524
- navigate('PaymentError');
62525
- }
62556
+ confirmed: paymentConfirmed,
62557
+ failed: paymentFailed
62526
62558
  })).then(function (sentTransaction) {
62527
62559
  if (tracking) {
62528
62560
  initializeTracking(sentTransaction, currentBlock, payment.route);
@@ -62540,7 +62572,7 @@
62540
62572
  }
62541
62573
  });
62542
62574
 
62543
- case 8:
62575
+ case 7:
62544
62576
  case "end":
62545
62577
  return _context.stop();
62546
62578
  }
@@ -62548,8 +62580,8 @@
62548
62580
  }, _callee);
62549
62581
  }));
62550
62582
 
62551
- return function pay(_x) {
62552
- return _ref2.apply(this, arguments);
62583
+ return function pay() {
62584
+ return _ref.apply(this, arguments);
62553
62585
  };
62554
62586
  }();
62555
62587
 
@@ -62577,19 +62609,73 @@
62577
62609
  setPaymentState('confirmed');
62578
62610
  }
62579
62611
  }, [release]);
62612
+ react.useEffect(function () {
62613
+ if (recover) {
62614
+ setClosable(false);
62615
+ setUpdatable(false);
62616
+ setPaymentState('paying');
62617
+ setTransaction({
62618
+ blockchain: recover.blockchain,
62619
+ id: recover.transaction,
62620
+ url: Blockchain.findByName(recover.blockchain).explorerUrlFor({
62621
+ transaction: {
62622
+ id: recover.transaction
62623
+ }
62624
+ })
62625
+ });
62626
+ var paymentToken = new Token({
62627
+ blockchain: recover.blockchain,
62628
+ address: recover.token
62629
+ });
62630
+ Promise.all([paymentToken.name(), paymentToken.symbol()]).then(function (_ref2) {
62631
+ var _ref3 = _slicedToArray(_ref2, 2),
62632
+ name = _ref3[0],
62633
+ symbol = _ref3[1];
62634
+
62635
+ setPayment({
62636
+ blockchain: recover.blockchain,
62637
+ token: recover.token,
62638
+ name: name,
62639
+ symbol: symbol.toUpperCase(),
62640
+ amount: recover.amount
62641
+ });
62642
+ })["catch"](setError);
62643
+ }
62644
+ }, [recover]);
62645
+ react.useEffect(function () {
62646
+ if (foundTransaction && foundTransaction.id && foundTransaction.status) {
62647
+ var newTransaction;
62648
+
62649
+ if (foundTransaction.id.toLowerCase() != transaction.id.toLowerCase()) {
62650
+ newTransaction = Object.assign({}, transaction, {
62651
+ id: foundTransaction.id,
62652
+ url: Blockchain.findByName(transaction.blockchain).explorerUrlFor({
62653
+ transaction: foundTransaction
62654
+ })
62655
+ });
62656
+ setTransaction(newTransaction);
62657
+ }
62658
+
62659
+ if (foundTransaction.status == 'success') {
62660
+ paymentConfirmed(newTransaction || transaction);
62661
+ } else if (foundTransaction.status == 'failed') {
62662
+ paymentFailed(newTransaction || transaction);
62663
+ }
62664
+ }
62665
+ }, [foundTransaction, transaction]);
62580
62666
  react.useEffect(function () {
62581
62667
  if (selectedRoute) {
62582
62668
  var fromToken = selectedRoute.fromToken;
62583
- selectedRoute.transaction.params;
62584
- Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref3) {
62585
- var _ref4 = _slicedToArray(_ref3, 3),
62586
- name = _ref4[0],
62587
- symbol = _ref4[1],
62588
- amount = _ref4[2];
62669
+ Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref4) {
62670
+ var _ref5 = _slicedToArray(_ref4, 3),
62671
+ name = _ref5[0],
62672
+ symbol = _ref5[1],
62673
+ amount = _ref5[2];
62589
62674
 
62590
62675
  setPayment({
62676
+ blockchain: selectedRoute.blockchain,
62591
62677
  route: selectedRoute,
62592
- token: selectedRoute.fromToken.address,
62678
+ token: fromToken.address,
62593
62679
  name: name,
62594
62680
  symbol: symbol.toUpperCase(),
62595
62681
  amount: amount
@@ -67930,6 +68016,9 @@
67930
68016
  var _useContext2 = react.useContext(UpdatableContext),
67931
68017
  updatable = _useContext2.updatable;
67932
68018
 
68019
+ var _useContext3 = react.useContext(ConfigurationContext),
68020
+ recover = _useContext3.recover;
68021
+
67933
68022
  var prepareAcceptedPayments = function prepareAcceptedPayments(accept) {
67934
68023
  var toAddress = _typeof(accept.receiver) == 'object' ? accept.receiver.address : accept.receiver;
67935
68024
  var toContract = _typeof(accept.receiver) == 'object' ? accept.receiver : undefined;
@@ -68057,7 +68146,7 @@
68057
68146
  };
68058
68147
  }, [reloadCount, allRoutes, selectedRoute, updatable]);
68059
68148
  react.useEffect(function () {
68060
- if (account && props.accept) {
68149
+ if (account && props.accept && recover == undefined) {
68061
68150
  setAllRoutes(undefined);
68062
68151
  setSelectedRoute(undefined);
68063
68152
  getPaymentRoutes({});
@@ -68070,6 +68159,7 @@
68070
68159
  value: {
68071
68160
  selectedRoute: selectedRoute,
68072
68161
  setSelectedRoute: setSelectedRoute,
68162
+ getPaymentRoutes: getPaymentRoutes,
68073
68163
  allRoutes: allRoutes,
68074
68164
  setAllRoutes: setAllRoutes
68075
68165
  }
@@ -68195,7 +68285,7 @@
68195
68285
  });
68196
68286
 
68197
68287
  var format = (function (input) {
68198
- var _float = parseFloat(input);
68288
+ var _float = round$1(input);
68199
68289
 
68200
68290
  var floatToString = _float.toString();
68201
68291
 
@@ -70302,7 +70392,7 @@
70302
70392
  amount = _useContext2.amount;
70303
70393
  _useContext2.amountsMissing;
70304
70394
 
70305
- var _useContext3 = react.useContext(TrackingContext),
70395
+ var _useContext3 = react.useContext(PaymentTrackingContext),
70306
70396
  tracking = _useContext3.tracking,
70307
70397
  release = _useContext3.release,
70308
70398
  forwardTo = _useContext3.forwardTo,
@@ -70319,8 +70409,8 @@
70319
70409
  var _useContext5 = react.useContext(PaymentValueContext),
70320
70410
  paymentValue = _useContext5.paymentValue;
70321
70411
 
70322
- var _useContext6 = react.useContext(NavigateStackContext),
70323
- navigate = _useContext6.navigate;
70412
+ var _useContext6 = react.useContext(NavigateStackContext);
70413
+ _useContext6.navigate;
70324
70414
 
70325
70415
  var _useContext7 = react.useContext(ClosableContext),
70326
70416
  close = _useContext7.close;
@@ -70426,7 +70516,7 @@
70426
70516
  };
70427
70517
 
70428
70518
  var approvalButton = function approvalButton() {
70429
- if (!payment.route.approvalRequired || payment.route.directTransfer) {
70519
+ if (payment.route == undefined || !payment.route.approvalRequired || payment.route.directTransfer) {
70430
70520
  return null;
70431
70521
  } else if (paymentState == 'initialized') {
70432
70522
  return /*#__PURE__*/react.createElement("div", {
@@ -70463,7 +70553,7 @@
70463
70553
  displayedAmount = "".concat(payment.symbol, " ").concat(payment.amount);
70464
70554
  }
70465
70555
 
70466
- if (paymentState == 'initialized' || paymentState == 'approving') {
70556
+ if ((paymentState == 'initialized' || paymentState == 'approving') && payment.route) {
70467
70557
  return /*#__PURE__*/react.createElement("button", {
70468
70558
  className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
70469
70559
  onClick: function onClick() {
@@ -70471,9 +70561,7 @@
70471
70561
  return;
70472
70562
  }
70473
70563
 
70474
- pay({
70475
- navigate: navigate
70476
- });
70564
+ pay();
70477
70565
  }
70478
70566
  }, "Pay ", displayedAmount);
70479
70567
  } else if (paymentState == 'paying') {
@@ -70614,8 +70702,11 @@
70614
70702
  var _useContext2 = react.useContext(PaymentContext),
70615
70703
  transaction = _useContext2.transaction;
70616
70704
 
70705
+ var _useContext3 = react.useContext(ConfigurationContext),
70706
+ recover = _useContext3.recover;
70707
+
70617
70708
  return /*#__PURE__*/react.createElement(Dialog, {
70618
- stacked: true,
70709
+ stacked: recover ? false : true,
70619
70710
  header: /*#__PURE__*/react.createElement("div", {
70620
70711
  className: "PaddingTopS PaddingLeftM PaddingRightM"
70621
70712
  }),
@@ -70628,7 +70719,7 @@
70628
70719
  className: "LineHeightL Text FontSizeL PaddingTopS FontWeightBold"
70629
70720
  }, "Payment Failed"), /*#__PURE__*/react.createElement("div", {
70630
70721
  className: "Text PaddingTopS PaddingBottomS PaddingLeftS PaddingRightS"
70631
- }, /*#__PURE__*/react.createElement("strong", {
70722
+ }, recover == undefined && /*#__PURE__*/react.createElement("strong", {
70632
70723
  className: "FontSizeM"
70633
70724
  }, "Unfortunately executing your payment failed. You can go back and try again."), transaction && /*#__PURE__*/react.createElement("div", {
70634
70725
  className: "PaddingTopS"
@@ -70641,7 +70732,7 @@
70641
70732
  }, "View on explorer")))),
70642
70733
  footer: /*#__PURE__*/react.createElement("div", {
70643
70734
  className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
70644
- }, /*#__PURE__*/react.createElement("button", {
70735
+ }, recover == undefined && /*#__PURE__*/react.createElement("button", {
70645
70736
  className: "ButtonPrimary",
70646
70737
  onClick: function onClick() {
70647
70738
  return navigate('back');
@@ -70697,7 +70788,11 @@
70697
70788
  open = _useContext.open,
70698
70789
  close = _useContext.close;
70699
70790
 
70791
+ var _useContext2 = react.useContext(NavigateContext),
70792
+ setNavigate = _useContext2.setNavigate;
70793
+
70700
70794
  return /*#__PURE__*/react.createElement(ReactDialogStack, {
70795
+ setNavigate: setNavigate,
70701
70796
  open: open,
70702
70797
  close: close,
70703
70798
  start: "DonationOverview",
@@ -70713,7 +70808,28 @@
70713
70808
  });
70714
70809
  });
70715
70810
 
70716
- var TrackingProvider = (function (props) {
70811
+ var NavigateProvider = (function (props) {
70812
+ var navigator;
70813
+
70814
+ var setNavigate = function setNavigate(_navigator) {
70815
+ navigator = _navigator;
70816
+ };
70817
+
70818
+ var navigate = function navigate(dialog) {
70819
+ if (navigator) {
70820
+ navigator(dialog);
70821
+ }
70822
+ };
70823
+
70824
+ return /*#__PURE__*/react.createElement(NavigateContext.Provider, {
70825
+ value: {
70826
+ navigate: navigate,
70827
+ setNavigate: setNavigate
70828
+ }
70829
+ }, props.children);
70830
+ });
70831
+
70832
+ var PaymentTrackingProvider = (function (props) {
70717
70833
  var _useContext = react.useContext(ErrorContext),
70718
70834
  errorCallback = _useContext.errorCallback;
70719
70835
 
@@ -70807,14 +70923,14 @@
70807
70923
 
70808
70924
  var retryStartTracking = function retryStartTracking(transaction, afterBlock, paymentRoute, attempt) {
70809
70925
  attempt = parseInt(attempt || 1, 10);
70810
- console.log('RETRY TRACKING ATTEMPT ', attempt);
70926
+ console.log('RETRYING PAYMENT TRACKING ATTEMPT ', attempt);
70811
70927
 
70812
70928
  if (attempt < 3) {
70813
70929
  setTimeout(function () {
70814
70930
  startTracking(transaction, afterBlock, paymentRoute, attempt + 1);
70815
70931
  }, 3000);
70816
70932
  } else {
70817
- console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
70933
+ console.log('PAYMENT TRACKING FAILED AFTER 3 ATTEMPTS!');
70818
70934
  setTrackingFailed(true);
70819
70935
 
70820
70936
  if (typeof errorCallback == 'function') {
@@ -70829,6 +70945,9 @@
70829
70945
  if (track.endpoint) {
70830
70946
  return fetch(track.endpoint, {
70831
70947
  method: 'POST',
70948
+ headers: {
70949
+ 'Content-Type': 'application/json'
70950
+ },
70832
70951
  body: JSON.stringify(payment)
70833
70952
  });
70834
70953
  } else if (track.method) {
@@ -70848,12 +70967,12 @@
70848
70967
  to_token: paymentRoute.toToken.address
70849
70968
  }).then(function (response) {
70850
70969
  if (response.status == 200) {
70851
- console.log('TRACKING INITIALIZED');
70970
+ console.log('PAYMENT TRACKING INITIALIZED');
70852
70971
  } else {
70853
70972
  retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
70854
70973
  }
70855
70974
  })["catch"](function (error) {
70856
- console.log('TRACKING FAILED', error);
70975
+ console.log('PAYMENT TRACKING FAILED', error);
70857
70976
  retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
70858
70977
  });
70859
70978
  };
@@ -70890,6 +71009,9 @@
70890
71009
  if (track.poll.endpoint) {
70891
71010
  fetch(track.poll.endpoint, {
70892
71011
  method: 'POST',
71012
+ headers: {
71013
+ 'Content-Type': 'application/json'
71014
+ },
70893
71015
  body: JSON.stringify(payment)
70894
71016
  }).then(handleResponse);
70895
71017
  } else if (track.poll.method) {
@@ -70918,7 +71040,7 @@
70918
71040
  startTracking(transaction, afterBlock, paymentRoute);
70919
71041
  };
70920
71042
 
70921
- return /*#__PURE__*/react.createElement(TrackingContext.Provider, {
71043
+ return /*#__PURE__*/react.createElement(PaymentTrackingContext.Provider, {
70922
71044
  value: {
70923
71045
  tracking: tracking,
70924
71046
  initializeTracking: initializeTracking,
@@ -70929,6 +71051,154 @@
70929
71051
  }, props.children);
70930
71052
  });
70931
71053
 
71054
+ var TransactionTrackingProvider = (function (props) {
71055
+ var _useState = react.useState(),
71056
+ _useState2 = _slicedToArray(_useState, 2),
71057
+ givenTransaction = _useState2[0],
71058
+ setGivenTransaction = _useState2[1];
71059
+
71060
+ var _useState3 = react.useState(),
71061
+ _useState4 = _slicedToArray(_useState3, 2),
71062
+ foundTransaction = _useState4[0],
71063
+ setFoundTransaction = _useState4[1];
71064
+
71065
+ var _useState5 = react.useState(false),
71066
+ _useState6 = _slicedToArray(_useState5, 2),
71067
+ polling = _useState6[0],
71068
+ setPolling = _useState6[1];
71069
+
71070
+ var _useContext = react.useContext(ErrorContext);
71071
+ _useContext.errorCallback;
71072
+
71073
+ var _useContext2 = react.useContext(ConfigurationContext),
71074
+ recover = _useContext2.recover;
71075
+
71076
+ react.useEffect(function () {
71077
+ if (polling) {
71078
+ var poll = function poll() {
71079
+ fetch("https://api.depay.fi/v2/transactions/".concat(givenTransaction.blockchain, "/").concat(givenTransaction.from.toLowerCase(), "/").concat(givenTransaction.nonce)).then(function (response) {
71080
+ if (response.status == 200) {
71081
+ response.json().then(function (data) {
71082
+ if (data.status != 'pending') {
71083
+ setFoundTransaction({
71084
+ id: data.external_id,
71085
+ status: data.status
71086
+ });
71087
+ setPolling(false);
71088
+ }
71089
+ });
71090
+ }
71091
+ });
71092
+ };
71093
+
71094
+ var pollingInterval = setInterval(poll, 5000);
71095
+ poll();
71096
+ return function () {
71097
+ clearInterval(pollingInterval);
71098
+ };
71099
+ }
71100
+ }, [polling]);
71101
+
71102
+ var createTracking = function createTracking(transaction, afterBlock, attempt) {
71103
+ if (attempt > 3) {
71104
+ console.log('TRANSACTION TRACKING FAILED AFTER 3 ATTEMPTS!');
71105
+ return;
71106
+ }
71107
+
71108
+ fetch('https://api.depay.fi/v2/transactions', {
71109
+ method: 'POST',
71110
+ headers: {
71111
+ 'X-Api-Key': apiKey,
71112
+ 'Content-Type': 'application/json'
71113
+ },
71114
+ body: JSON.stringify({
71115
+ id: transaction.id,
71116
+ after_block: afterBlock,
71117
+ blockchain: transaction.blockchain,
71118
+ sender: transaction.from.toLowerCase(),
71119
+ nonce: transaction.nonce
71120
+ })
71121
+ }).then(function (response) {
71122
+ if (response.status == 200 || response.status == 201) {
71123
+ console.log('TRANSACTION TRACKING INITIALIZED');
71124
+ } else {
71125
+ console.log('TRANSACTION TRACKING FAILED', response);
71126
+ setTimeout(function () {
71127
+ createTracking(transaction, afterBlock, attempt + 1);
71128
+ }, 3000);
71129
+ }
71130
+ })["catch"](function (error) {
71131
+ console.log('TRANSACTION TRACKING FAILED', error);
71132
+ setTimeout(function () {
71133
+ createTracking(transaction, afterBlock, attempt + 1);
71134
+ }, 3000);
71135
+ });
71136
+ };
71137
+
71138
+ var openSocket = function openSocket(transaction) {
71139
+ var socket = new WebSocket('wss://integrate.depay.fi/cable');
71140
+
71141
+ socket.onopen = function (event) {
71142
+ var msg = {
71143
+ command: 'subscribe',
71144
+ identifier: JSON.stringify({
71145
+ blockchain: transaction.blockchain,
71146
+ sender: transaction.from.toLowerCase(),
71147
+ nonce: transaction.nonce,
71148
+ channel: 'TransactionChannel'
71149
+ })
71150
+ };
71151
+ socket.send(JSON.stringify(msg));
71152
+ };
71153
+
71154
+ socket.onclose = function (event) {};
71155
+
71156
+ socket.onmessage = function (event) {
71157
+ var item = JSON.parse(event.data);
71158
+
71159
+ if (item.type === "ping") {
71160
+ return;
71161
+ }
71162
+
71163
+ if (item.message && item.message.status && item.message.status != 'pending') {
71164
+ setFoundTransaction(item.message);
71165
+ }
71166
+ };
71167
+
71168
+ socket.onerror = function (error) {
71169
+ console.log('WebSocket Error: ' + error);
71170
+ };
71171
+ };
71172
+
71173
+ var initializeTracking = function initializeTracking(transaction, afterBlock) {
71174
+ setGivenTransaction(transaction);
71175
+
71176
+ if (recover == undefined) {
71177
+ createTracking(transaction, afterBlock, 1);
71178
+ }
71179
+
71180
+ openSocket(transaction);
71181
+ setPolling(true);
71182
+ };
71183
+
71184
+ react.useEffect(function () {
71185
+ if (recover) {
71186
+ initializeTracking({
71187
+ blockchain: recover.blockchain,
71188
+ id: recover.transaction,
71189
+ from: recover.sender,
71190
+ nonce: recover.nonce
71191
+ }, recover.afterBlock);
71192
+ }
71193
+ }, [recover]);
71194
+ return /*#__PURE__*/react.createElement(TransactionTrackingContext.Provider, {
71195
+ value: {
71196
+ initializeTracking: initializeTracking,
71197
+ foundTransaction: foundTransaction
71198
+ }
71199
+ }, props.children);
71200
+ });
71201
+
70932
71202
  var WalletProvider = (function (props) {
70933
71203
  var _useContext = react.useContext(ErrorContext);
70934
71204
  _useContext.setError;
@@ -71068,9 +71338,9 @@
71068
71338
  container: container,
71069
71339
  connected: connected,
71070
71340
  unmount: unmount
71071
- }, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71341
+ }, /*#__PURE__*/react.createElement(NavigateProvider, null, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71072
71342
  accept: accept
71073
- }, /*#__PURE__*/react.createElement(TrackingProvider, {
71343
+ }, /*#__PURE__*/react.createElement(TransactionTrackingProvider, null, /*#__PURE__*/react.createElement(PaymentTrackingProvider, {
71074
71344
  document: ensureDocument(document)
71075
71345
  }, /*#__PURE__*/react.createElement(DonationRoutingProvider, {
71076
71346
  container: container,
@@ -71078,7 +71348,7 @@
71078
71348
  }, /*#__PURE__*/react.createElement(DonationStack, {
71079
71349
  document: document,
71080
71350
  container: container
71081
- }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))));
71351
+ }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))))));
71082
71352
  };
71083
71353
  });
71084
71354
  return _context2.abrupt("return", {
@@ -71129,6 +71399,9 @@
71129
71399
  return new Promise(function (resolve, reject) {
71130
71400
  fetch(endpoint, {
71131
71401
  method: 'POST',
71402
+ headers: {
71403
+ 'Content-Type': 'application/json'
71404
+ },
71132
71405
  body: JSON.stringify({
71133
71406
  message: message,
71134
71407
  signature: signature
@@ -71345,7 +71618,8 @@
71345
71618
 
71346
71619
  var PaymentOverviewDialog = (function (props) {
71347
71620
  var _useContext = react.useContext(ConfigurationContext),
71348
- currencyCode = _useContext.currencyCode;
71621
+ currencyCode = _useContext.currencyCode,
71622
+ recover = _useContext.recover;
71349
71623
 
71350
71624
  var _useContext2 = react.useContext(PaymentContext),
71351
71625
  payment = _useContext2.payment,
@@ -71361,7 +71635,7 @@
71361
71635
  var _useContext5 = react.useContext(NavigateStackContext),
71362
71636
  navigate = _useContext5.navigate;
71363
71637
 
71364
- if (payment == undefined || paymentValue == undefined) {
71638
+ if (payment == undefined || recover == undefined && paymentValue == undefined) {
71365
71639
  return /*#__PURE__*/react.createElement(PaymentOverviewSkeleton, null);
71366
71640
  }
71367
71641
 
@@ -71412,7 +71686,7 @@
71412
71686
  className: "CardImage",
71413
71687
  title: payment.name
71414
71688
  }, /*#__PURE__*/react.createElement(TokenImage, {
71415
- blockchain: payment.route.blockchain,
71689
+ blockchain: payment.blockchain,
71416
71690
  address: payment.token
71417
71691
  })), /*#__PURE__*/react.createElement("div", {
71418
71692
  className: "CardBody"
@@ -71442,7 +71716,11 @@
71442
71716
  open = _useContext.open,
71443
71717
  close = _useContext.close;
71444
71718
 
71719
+ var _useContext2 = react.useContext(NavigateContext),
71720
+ setNavigate = _useContext2.setNavigate;
71721
+
71445
71722
  return /*#__PURE__*/react.createElement(ReactDialogStack, {
71723
+ setNavigate: setNavigate,
71446
71724
  open: open,
71447
71725
  close: close,
71448
71726
  start: "PaymentOverview",
@@ -71460,12 +71738,21 @@
71460
71738
 
71461
71739
  var preflight$1 = /*#__PURE__*/function () {
71462
71740
  var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
71463
- var accept;
71741
+ var accept, recover;
71464
71742
  return regenerator.wrap(function _callee$(_context) {
71465
71743
  while (1) {
71466
71744
  switch (_context.prev = _context.next) {
71467
71745
  case 0:
71468
- accept = _ref.accept;
71746
+ accept = _ref.accept, recover = _ref.recover;
71747
+
71748
+ if (!recover) {
71749
+ _context.next = 3;
71750
+ break;
71751
+ }
71752
+
71753
+ return _context.abrupt("return");
71754
+
71755
+ case 3:
71469
71756
  accept.forEach(function (configuration) {
71470
71757
  if (typeof configuration.blockchain === 'undefined') {
71471
71758
  throw 'You need to set the blockchain your want to receive the payment on!';
@@ -71484,7 +71771,7 @@
71484
71771
  }
71485
71772
  });
71486
71773
 
71487
- case 2:
71774
+ case 4:
71488
71775
  case "end":
71489
71776
  return _context.stop();
71490
71777
  }
@@ -71499,16 +71786,17 @@
71499
71786
 
71500
71787
  var Payment = /*#__PURE__*/function () {
71501
71788
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
71502
- var accept, amount, event, sent, confirmed, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, fee, document, unmount;
71789
+ var accept, amount, event, sent, confirmed, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, fee, recover, document, unmount;
71503
71790
  return regenerator.wrap(function _callee2$(_context2) {
71504
71791
  while (1) {
71505
71792
  switch (_context2.prev = _context2.next) {
71506
71793
  case 0:
71507
- accept = _ref3.accept, amount = _ref3.amount, event = _ref3.event, sent = _ref3.sent, confirmed = _ref3.confirmed, 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, document = _ref3.document;
71794
+ accept = _ref3.accept, amount = _ref3.amount, event = _ref3.event, sent = _ref3.sent, confirmed = _ref3.confirmed, 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, document = _ref3.document;
71508
71795
  _context2.prev = 1;
71509
71796
  _context2.next = 4;
71510
71797
  return preflight$1({
71511
- accept: accept
71798
+ accept: accept,
71799
+ recover: recover
71512
71800
  });
71513
71801
 
71514
71802
  case 4:
@@ -71535,7 +71823,8 @@
71535
71823
  blacklist: blacklist,
71536
71824
  providers: providers,
71537
71825
  track: track,
71538
- fee: fee
71826
+ fee: fee,
71827
+ recover: recover
71539
71828
  }
71540
71829
  }, /*#__PURE__*/react.createElement(UpdatableProvider, null, /*#__PURE__*/react.createElement(ClosableProvider, {
71541
71830
  unmount: unmount
@@ -71544,7 +71833,7 @@
71544
71833
  container: container,
71545
71834
  connected: connected,
71546
71835
  unmount: unmount
71547
- }, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71836
+ }, /*#__PURE__*/react.createElement(NavigateProvider, null, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71548
71837
  accept: accept
71549
71838
  }, /*#__PURE__*/react.createElement(PaymentAmountRoutingProvider, {
71550
71839
  accept: accept,
@@ -71552,7 +71841,7 @@
71552
71841
  blacklist: blacklist,
71553
71842
  event: event,
71554
71843
  fee: fee
71555
- }, /*#__PURE__*/react.createElement(TrackingProvider, {
71844
+ }, /*#__PURE__*/react.createElement(TransactionTrackingProvider, null, /*#__PURE__*/react.createElement(PaymentTrackingProvider, {
71556
71845
  document: ensureDocument(document)
71557
71846
  }, /*#__PURE__*/react.createElement(PaymentProvider, {
71558
71847
  container: container,
@@ -71560,7 +71849,7 @@
71560
71849
  }, /*#__PURE__*/react.createElement(PaymentValueProvider, null, /*#__PURE__*/react.createElement(PaymentStack, {
71561
71850
  document: document,
71562
71851
  container: container
71563
- }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))))));
71852
+ }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))))))));
71564
71853
  };
71565
71854
  });
71566
71855
  return _context2.abrupt("return", {
@@ -71836,7 +72125,11 @@
71836
72125
  open = _useContext.open,
71837
72126
  close = _useContext.close;
71838
72127
 
72128
+ var _useContext2 = react.useContext(NavigateContext),
72129
+ setNavigate = _useContext2.setNavigate;
72130
+
71839
72131
  return /*#__PURE__*/react.createElement(ReactDialogStack, {
72132
+ setNavigate: setNavigate,
71840
72133
  open: open,
71841
72134
  close: close,
71842
72135
  start: "SaleOverview",
@@ -71947,9 +72240,9 @@
71947
72240
  container: container,
71948
72241
  connected: connected,
71949
72242
  unmount: unmount
71950
- }, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
72243
+ }, /*#__PURE__*/react.createElement(NavigateProvider, null, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71951
72244
  accept: accept
71952
- }, /*#__PURE__*/react.createElement(TrackingProvider, {
72245
+ }, /*#__PURE__*/react.createElement(TransactionTrackingProvider, null, /*#__PURE__*/react.createElement(PaymentTrackingProvider, {
71953
72246
  document: ensureDocument(document)
71954
72247
  }, /*#__PURE__*/react.createElement(SaleRoutingProvider, {
71955
72248
  container: container,
@@ -71957,7 +72250,7 @@
71957
72250
  }, /*#__PURE__*/react.createElement(SaleStack, {
71958
72251
  document: document,
71959
72252
  container: container
71960
- }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))));
72253
+ }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))))));
71961
72254
  };
71962
72255
  });
71963
72256
  return _context2.abrupt("return", {