@depay/widgets 6.11.1 → 6.12.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.
@@ -1767,6 +1767,10 @@ class ReactDialogStack extends react.Component {
1767
1767
  constructor(props) {
1768
1768
  super(props);
1769
1769
 
1770
+ if (props.setNavigate) {
1771
+ props.setNavigate(this.navigate.bind(this));
1772
+ }
1773
+
1770
1774
  this.state = {
1771
1775
  stack: [props.start],
1772
1776
  animating: false,
@@ -1881,15 +1885,15 @@ class ReactDialogStack extends react.Component {
1881
1885
  this.classForDirection(),
1882
1886
  ];
1883
1887
  return (
1884
- react.createElement('div', { key: index, className: ['ReactDialogStack'].concat(stackState).join(' '), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 127}}
1885
- , react.createElement('div', { className: "ReactDialogStackRow", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 128}}
1886
- , react.createElement('div', { className: "ReactDialogStackCell", onClick: this.onClick.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 129}}
1888
+ react.createElement('div', { key: index, className: ['ReactDialogStack'].concat(stackState).join(' '), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 131}}
1889
+ , react.createElement('div', { className: "ReactDialogStackRow", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 132}}
1890
+ , react.createElement('div', { className: "ReactDialogStackCell", onClick: this.onClick.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 133}}
1887
1891
  , react.createElement(NavigateStackContext.Provider, {
1888
- value: { navigate: this.navigate.bind(this), set: this.set.bind(this) }, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 130}}
1892
+ value: { navigate: this.navigate.bind(this), set: this.set.bind(this) }, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 134}}
1889
1893
 
1890
- , react.createElement(CloseStackContext.Provider, { value: this.close.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 133}}
1891
- , react.createElement(StackContext.Provider, { value: this.state.stack, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 134}}
1892
- , react.createElement('div', { className: "ReactDialogAnimation", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 135}}, this.props.dialogs[route])
1894
+ , react.createElement(CloseStackContext.Provider, { value: this.close.bind(this), __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 137}}
1895
+ , react.createElement(StackContext.Provider, { value: this.state.stack, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 138}}
1896
+ , react.createElement('div', { className: "ReactDialogAnimation", __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 139}}, this.props.dialogs[route])
1893
1897
  )
1894
1898
  )
1895
1899
  )
@@ -1932,9 +1936,9 @@ class ReactDialogStack extends react.Component {
1932
1936
  open: this.props.open,
1933
1937
  document: this.props.document,
1934
1938
  container: this.props.container,
1935
- background: this.props.background, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 173}}
1939
+ background: this.props.background, __self: this, __source: {fileName: _jsxFileName$1, lineNumber: 177}}
1936
1940
 
1937
- , react.createElement('style', {__self: this, __source: {fileName: _jsxFileName$1, lineNumber: 180}}, ReactDialogStackStyle())
1941
+ , react.createElement('style', {__self: this, __source: {fileName: _jsxFileName$1, lineNumber: 184}}, ReactDialogStackStyle())
1938
1942
  , this.renderStack()
1939
1943
  )
1940
1944
  )
@@ -48407,7 +48411,7 @@ function parseUnits$2(value, unitName) {
48407
48411
  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; }
48408
48412
  class Transaction {
48409
48413
 
48410
- constructor({ blockchain, from, nonce, to, api, method, params, value, sent, confirmed, ensured, failed }) {
48414
+ constructor({ blockchain, from, nonce, to, api, method, params, value, sent, confirmed, failed }) {
48411
48415
 
48412
48416
  this.blockchain = blockchain;
48413
48417
  this.from = from;
@@ -48419,10 +48423,8 @@ class Transaction {
48419
48423
  this.value = _optionalChain$5([Transaction, 'access', _ => _.bigNumberify, 'call', _2 => _2(value, blockchain), 'optionalAccess', _3 => _3.toString, 'call', _4 => _4()]);
48420
48424
  this.sent = sent;
48421
48425
  this.confirmed = confirmed;
48422
- this.ensured = ensured;
48423
48426
  this.failed = failed;
48424
48427
  this._confirmed = false;
48425
- this._ensured = false;
48426
48428
  this._failed = false;
48427
48429
  }
48428
48430
 
@@ -48469,19 +48471,6 @@ class Transaction {
48469
48471
  })
48470
48472
  }
48471
48473
 
48472
- ensurance() {
48473
- if (this._ensured) {
48474
- return Promise.resolve(this)
48475
- }
48476
- return new Promise((resolve, reject) => {
48477
- let originalEnsured = this.ensured;
48478
- this.ensured = () => {
48479
- if (originalEnsured) originalEnsured(this);
48480
- resolve(this);
48481
- };
48482
- })
48483
- }
48484
-
48485
48474
  failure() {
48486
48475
  if (this._failed) {
48487
48476
  return Promise.resolve(this)
@@ -48526,15 +48515,22 @@ const sendTransaction$1 = async ({ transaction, wallet })=> {
48526
48515
  transaction._confirmed = true;
48527
48516
  if (transaction.confirmed) transaction.confirmed(transaction);
48528
48517
  }).catch((error)=>{
48529
- transaction._failed = true;
48530
- if(transaction.failed) transaction.failed(transaction, error);
48531
- });
48532
- sentTransaction.wait(12).then(() => {
48533
- transaction._ensured = true;
48534
- if (transaction.ensured) transaction.ensured(transaction);
48535
- }).catch((error)=>{
48536
- transaction._failed = true;
48537
- if(transaction.failed) transaction.failed(transaction, error);
48518
+ if(error && error.code && error.code == 'TRANSACTION_REPLACED') {
48519
+ if(error.replacement && error.replacement.hash) {
48520
+ transaction.id = error.replacement.hash;
48521
+ transaction.url = Blockchain.findByName(transaction.blockchain).explorerUrlFor({ transaction });
48522
+ }
48523
+ if(error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 1) {
48524
+ transaction._confirmed = true;
48525
+ if (transaction.confirmed) transaction.confirmed(transaction);
48526
+ } else if(error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 0) {
48527
+ transaction._failed = true;
48528
+ if(transaction.failed) transaction.failed(transaction, error);
48529
+ }
48530
+ } else {
48531
+ transaction._failed = true;
48532
+ if(transaction.failed) transaction.failed(transaction, error);
48533
+ }
48538
48534
  });
48539
48535
  } else {
48540
48536
  throw('Submitting transaction failed!')
@@ -48775,15 +48771,20 @@ const sendTransaction = async ({ transaction, wallet })=> {
48775
48771
  transaction._confirmed = true;
48776
48772
  if (transaction.confirmed) transaction.confirmed(transaction);
48777
48773
  }).catch((error)=>{
48778
- transaction._failed = true;
48779
- if(transaction.failed) transaction.failed(transaction, error);
48780
- });
48781
- sentTransaction.wait(12).then(() => {
48782
- transaction._ensured = true;
48783
- if (transaction.ensured) transaction.ensured(transaction);
48784
- }).catch((error)=>{
48785
- transaction._failed = true;
48786
- if(transaction.failed) transaction.failed(transaction, error);
48774
+ if(error && error.code && error.code == 'TRANSACTION_REPLACED') {
48775
+ if(error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 1) {
48776
+ transaction.id = error.replacement.hash;
48777
+ transaction._confirmed = true;
48778
+ if (transaction.confirmed) transaction.confirmed(transaction);
48779
+ } else if(error.replacement && error.replacement.hash && error.receipt && error.receipt.status == 0) {
48780
+ transaction.id = error.replacement.hash;
48781
+ transaction._failed = true;
48782
+ if(transaction.failed) transaction.failed(transaction, error);
48783
+ }
48784
+ } else {
48785
+ transaction._failed = true;
48786
+ if(transaction.failed) transaction.failed(transaction, error);
48787
+ }
48787
48788
  });
48788
48789
  }
48789
48790
  } else {
@@ -49881,7 +49882,7 @@ var round$1 = (function (input) {
49881
49882
  focusToFixed = parseFloat(_float).toFixed(1).replace('.', '');
49882
49883
  }
49883
49884
 
49884
- if (focusToFixed.toString()[0] != 0 && focusToFixed.toString().length > 2) {
49885
+ if (focusToFixed.toString()[0] != "0" && focusToFixed.toString().length > 2) {
49885
49886
  return parseInt(inputAsFloat.toFixed(0));
49886
49887
  } else {
49887
49888
  return parseFloat(digitsAfterDecimal.replace(/\d{3}$/, focusToFixed));
@@ -62383,6 +62384,8 @@ var ConversionRateProvider = (function (props) {
62383
62384
 
62384
62385
  var DonationRoutingContext = /*#__PURE__*/react.createContext();
62385
62386
 
62387
+ var NavigateContext = /*#__PURE__*/react.createContext();
62388
+
62386
62389
  var QuestionsGraphic = "data:image/png;base64,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";
62387
62390
 
62388
62391
  var NoPaymentMethodFoundDialog = (function () {
@@ -62418,7 +62421,9 @@ var PaymentContext = /*#__PURE__*/react.createContext();
62418
62421
 
62419
62422
  var PaymentRoutingContext = /*#__PURE__*/react.createContext();
62420
62423
 
62421
- var TrackingContext = /*#__PURE__*/react.createContext();
62424
+ var PaymentTrackingContext = /*#__PURE__*/react.createContext();
62425
+
62426
+ var TransactionTrackingContext = /*#__PURE__*/react.createContext();
62422
62427
 
62423
62428
  var PaymentProvider = (function (props) {
62424
62429
  var _useContext = react.useContext(ErrorContext),
@@ -62426,8 +62431,8 @@ var PaymentProvider = (function (props) {
62426
62431
 
62427
62432
  var _useContext2 = react.useContext(ConfigurationContext),
62428
62433
  _sent = _useContext2.sent,
62429
- _confirmed = _useContext2.confirmed,
62430
- _failed = _useContext2.failed;
62434
+ confirmed = _useContext2.confirmed,
62435
+ failed = _useContext2.failed;
62431
62436
 
62432
62437
  var _useContext3 = react.useContext(PaymentRoutingContext),
62433
62438
  selectedRoute = _useContext3.selectedRoute;
@@ -62443,13 +62448,20 @@ var PaymentProvider = (function (props) {
62443
62448
  var _useContext6 = react.useContext(UpdatableContext),
62444
62449
  setUpdatable = _useContext6.setUpdatable;
62445
62450
 
62446
- var _useContext7 = react.useContext(WalletContext),
62447
- wallet = _useContext7.wallet;
62451
+ var _useContext7 = react.useContext(NavigateContext),
62452
+ navigate = _useContext7.navigate;
62453
+
62454
+ var _useContext8 = react.useContext(WalletContext),
62455
+ wallet = _useContext8.wallet;
62448
62456
 
62449
- var _useContext8 = react.useContext(TrackingContext),
62450
- release = _useContext8.release,
62451
- tracking = _useContext8.tracking,
62452
- initializeTracking = _useContext8.initializeTracking;
62457
+ var _useContext9 = react.useContext(PaymentTrackingContext),
62458
+ release = _useContext9.release,
62459
+ tracking = _useContext9.tracking,
62460
+ initializeTracking = _useContext9.initializeTracking;
62461
+
62462
+ var _useContext10 = react.useContext(TransactionTrackingContext),
62463
+ foundTransaction = _useContext10.foundTransaction,
62464
+ initializeTransactionTracking = _useContext10.initializeTracking;
62453
62465
 
62454
62466
  var _useState = react.useState(),
62455
62467
  _useState2 = _slicedToArray(_useState, 2),
@@ -62471,52 +62483,57 @@ var PaymentProvider = (function (props) {
62471
62483
  paymentState = _useState8[0],
62472
62484
  setPaymentState = _useState8[1];
62473
62485
 
62486
+ var paymentConfirmed = function paymentConfirmed(transaction) {
62487
+ if (tracking != true) {
62488
+ setClosable(true);
62489
+ }
62490
+
62491
+ setPaymentState('confirmed');
62492
+
62493
+ if (confirmed) {
62494
+ confirmed(transaction);
62495
+ }
62496
+ };
62497
+
62498
+ var paymentFailed = function paymentFailed(transaction, error) {
62499
+ if (failed) {
62500
+ failed(transaction, error);
62501
+ }
62502
+
62503
+ setPaymentState('initialized');
62504
+ setClosable(true);
62505
+ setUpdatable(true);
62506
+ navigate('PaymentError');
62507
+ };
62508
+
62474
62509
  var pay = /*#__PURE__*/function () {
62475
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
62476
- var navigate, currentBlock;
62510
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee() {
62511
+ var currentBlock;
62477
62512
  return regenerator.wrap(function _callee$(_context) {
62478
62513
  while (1) {
62479
62514
  switch (_context.prev = _context.next) {
62480
62515
  case 0:
62481
- navigate = _ref.navigate;
62482
62516
  setClosable(false);
62483
62517
  setPaymentState('paying');
62484
62518
  setUpdatable(false);
62485
- _context.next = 6;
62519
+ _context.next = 5;
62486
62520
  return request({
62487
62521
  blockchain: payment.route.transaction.blockchain,
62488
62522
  method: 'latestBlockNumber'
62489
62523
  });
62490
62524
 
62491
- case 6:
62525
+ case 5:
62492
62526
  currentBlock = _context.sent;
62493
62527
  wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
62494
62528
  sent: function sent(transaction) {
62529
+ initializeTransactionTracking(transaction, currentBlock);
62530
+
62495
62531
  if (_sent) {
62496
62532
  _sent(transaction);
62497
62533
  }
62498
62534
  },
62499
- confirmed: function confirmed(transaction) {
62500
- if (tracking != true) {
62501
- setClosable(true);
62502
- }
62503
-
62504
- setPaymentState('confirmed');
62505
-
62506
- if (_confirmed) {
62507
- _confirmed(transaction);
62508
- }
62509
- },
62510
- failed: function failed(transaction, error) {
62511
- if (_failed) {
62512
- _failed(transaction, error);
62513
- }
62514
-
62515
- setPaymentState('initialized');
62516
- setClosable(true);
62517
- setUpdatable(true);
62518
- navigate('PaymentError');
62519
- }
62535
+ confirmed: paymentConfirmed,
62536
+ failed: paymentFailed
62520
62537
  })).then(function (sentTransaction) {
62521
62538
  if (tracking) {
62522
62539
  initializeTracking(sentTransaction, currentBlock, payment.route);
@@ -62534,7 +62551,7 @@ var PaymentProvider = (function (props) {
62534
62551
  }
62535
62552
  });
62536
62553
 
62537
- case 8:
62554
+ case 7:
62538
62555
  case "end":
62539
62556
  return _context.stop();
62540
62557
  }
@@ -62542,8 +62559,8 @@ var PaymentProvider = (function (props) {
62542
62559
  }, _callee);
62543
62560
  }));
62544
62561
 
62545
- return function pay(_x) {
62546
- return _ref2.apply(this, arguments);
62562
+ return function pay() {
62563
+ return _ref.apply(this, arguments);
62547
62564
  };
62548
62565
  }();
62549
62566
 
@@ -62571,15 +62588,36 @@ var PaymentProvider = (function (props) {
62571
62588
  setPaymentState('confirmed');
62572
62589
  }
62573
62590
  }, [release]);
62591
+ react.useEffect(function () {
62592
+ if (foundTransaction && foundTransaction.id && foundTransaction.status) {
62593
+ var newTransaction;
62594
+
62595
+ if (foundTransaction.id.toLowerCase() != transaction.id.toLowerCase()) {
62596
+ newTransaction = Object.assign({}, transaction, {
62597
+ id: foundTransaction.id,
62598
+ url: Blockchain.findByName(transaction.blockchain).explorerUrlFor({
62599
+ transaction: foundTransaction
62600
+ })
62601
+ });
62602
+ setTransaction(newTransaction);
62603
+ }
62604
+
62605
+ if (foundTransaction.status == 'success') {
62606
+ paymentConfirmed(newTransaction || transaction);
62607
+ } else if (foundTransaction.status == 'failed') {
62608
+ paymentFailed(newTransaction || transaction);
62609
+ }
62610
+ }
62611
+ }, [foundTransaction, transaction]);
62574
62612
  react.useEffect(function () {
62575
62613
  if (selectedRoute) {
62576
62614
  var fromToken = selectedRoute.fromToken;
62577
62615
  selectedRoute.transaction.params;
62578
- Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref3) {
62579
- var _ref4 = _slicedToArray(_ref3, 3),
62580
- name = _ref4[0],
62581
- symbol = _ref4[1],
62582
- amount = _ref4[2];
62616
+ Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref2) {
62617
+ var _ref3 = _slicedToArray(_ref2, 3),
62618
+ name = _ref3[0],
62619
+ symbol = _ref3[1],
62620
+ amount = _ref3[2];
62583
62621
 
62584
62622
  setPayment({
62585
62623
  route: selectedRoute,
@@ -70296,7 +70334,7 @@ var Footer = (function () {
70296
70334
  amount = _useContext2.amount;
70297
70335
  _useContext2.amountsMissing;
70298
70336
 
70299
- var _useContext3 = react.useContext(TrackingContext),
70337
+ var _useContext3 = react.useContext(PaymentTrackingContext),
70300
70338
  tracking = _useContext3.tracking,
70301
70339
  release = _useContext3.release,
70302
70340
  forwardTo = _useContext3.forwardTo,
@@ -70313,8 +70351,8 @@ var Footer = (function () {
70313
70351
  var _useContext5 = react.useContext(PaymentValueContext),
70314
70352
  paymentValue = _useContext5.paymentValue;
70315
70353
 
70316
- var _useContext6 = react.useContext(NavigateStackContext),
70317
- navigate = _useContext6.navigate;
70354
+ var _useContext6 = react.useContext(NavigateStackContext);
70355
+ _useContext6.navigate;
70318
70356
 
70319
70357
  var _useContext7 = react.useContext(ClosableContext),
70320
70358
  close = _useContext7.close;
@@ -70465,9 +70503,7 @@ var Footer = (function () {
70465
70503
  return;
70466
70504
  }
70467
70505
 
70468
- pay({
70469
- navigate: navigate
70470
- });
70506
+ pay();
70471
70507
  }
70472
70508
  }, "Pay ", displayedAmount);
70473
70509
  } else if (paymentState == 'paying') {
@@ -70691,7 +70727,11 @@ var DonationStack = (function (props) {
70691
70727
  open = _useContext.open,
70692
70728
  close = _useContext.close;
70693
70729
 
70730
+ var _useContext2 = react.useContext(NavigateContext),
70731
+ setNavigate = _useContext2.setNavigate;
70732
+
70694
70733
  return /*#__PURE__*/react.createElement(ReactDialogStack, {
70734
+ setNavigate: setNavigate,
70695
70735
  open: open,
70696
70736
  close: close,
70697
70737
  start: "DonationOverview",
@@ -70707,7 +70747,28 @@ var DonationStack = (function (props) {
70707
70747
  });
70708
70748
  });
70709
70749
 
70710
- var TrackingProvider = (function (props) {
70750
+ var NavigateProvider = (function (props) {
70751
+ var navigator;
70752
+
70753
+ var setNavigate = function setNavigate(_navigator) {
70754
+ navigator = _navigator;
70755
+ };
70756
+
70757
+ var navigate = function navigate(dialog) {
70758
+ if (navigator) {
70759
+ navigator(dialog);
70760
+ }
70761
+ };
70762
+
70763
+ return /*#__PURE__*/react.createElement(NavigateContext.Provider, {
70764
+ value: {
70765
+ navigate: navigate,
70766
+ setNavigate: setNavigate
70767
+ }
70768
+ }, props.children);
70769
+ });
70770
+
70771
+ var PaymentTrackingProvider = (function (props) {
70711
70772
  var _useContext = react.useContext(ErrorContext),
70712
70773
  errorCallback = _useContext.errorCallback;
70713
70774
 
@@ -70801,14 +70862,14 @@ var TrackingProvider = (function (props) {
70801
70862
 
70802
70863
  var retryStartTracking = function retryStartTracking(transaction, afterBlock, paymentRoute, attempt) {
70803
70864
  attempt = parseInt(attempt || 1, 10);
70804
- console.log('RETRY TRACKING ATTEMPT ', attempt);
70865
+ console.log('RETRYING PAYMENT TRACKING ATTEMPT ', attempt);
70805
70866
 
70806
70867
  if (attempt < 3) {
70807
70868
  setTimeout(function () {
70808
70869
  startTracking(transaction, afterBlock, paymentRoute, attempt + 1);
70809
70870
  }, 3000);
70810
70871
  } else {
70811
- console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
70872
+ console.log('PAYMENT TRACKING FAILED AFTER 3 ATTEMPTS!');
70812
70873
  setTrackingFailed(true);
70813
70874
 
70814
70875
  if (typeof errorCallback == 'function') {
@@ -70823,6 +70884,9 @@ var TrackingProvider = (function (props) {
70823
70884
  if (track.endpoint) {
70824
70885
  return fetch(track.endpoint, {
70825
70886
  method: 'POST',
70887
+ headers: {
70888
+ 'Content-Type': 'application/json'
70889
+ },
70826
70890
  body: JSON.stringify(payment)
70827
70891
  });
70828
70892
  } else if (track.method) {
@@ -70842,12 +70906,12 @@ var TrackingProvider = (function (props) {
70842
70906
  to_token: paymentRoute.toToken.address
70843
70907
  }).then(function (response) {
70844
70908
  if (response.status == 200) {
70845
- console.log('TRACKING INITIALIZED');
70909
+ console.log('PAYMENT TRACKING INITIALIZED');
70846
70910
  } else {
70847
70911
  retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
70848
70912
  }
70849
70913
  })["catch"](function (error) {
70850
- console.log('TRACKING FAILED', error);
70914
+ console.log('PAYMENT TRACKING FAILED', error);
70851
70915
  retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
70852
70916
  });
70853
70917
  };
@@ -70884,6 +70948,9 @@ var TrackingProvider = (function (props) {
70884
70948
  if (track.poll.endpoint) {
70885
70949
  fetch(track.poll.endpoint, {
70886
70950
  method: 'POST',
70951
+ headers: {
70952
+ 'Content-Type': 'application/json'
70953
+ },
70887
70954
  body: JSON.stringify(payment)
70888
70955
  }).then(handleResponse);
70889
70956
  } else if (track.poll.method) {
@@ -70912,7 +70979,7 @@ var TrackingProvider = (function (props) {
70912
70979
  startTracking(transaction, afterBlock, paymentRoute);
70913
70980
  };
70914
70981
 
70915
- return /*#__PURE__*/react.createElement(TrackingContext.Provider, {
70982
+ return /*#__PURE__*/react.createElement(PaymentTrackingContext.Provider, {
70916
70983
  value: {
70917
70984
  tracking: tracking,
70918
70985
  initializeTracking: initializeTracking,
@@ -70923,6 +70990,134 @@ var TrackingProvider = (function (props) {
70923
70990
  }, props.children);
70924
70991
  });
70925
70992
 
70993
+ var TransactionTrackingProvider = (function (props) {
70994
+ var _useState = react.useState(),
70995
+ _useState2 = _slicedToArray(_useState, 2),
70996
+ givenTransaction = _useState2[0],
70997
+ setGivenTransaction = _useState2[1];
70998
+
70999
+ var _useState3 = react.useState(),
71000
+ _useState4 = _slicedToArray(_useState3, 2),
71001
+ foundTransaction = _useState4[0],
71002
+ setFoundTransaction = _useState4[1];
71003
+
71004
+ var _useState5 = react.useState(false),
71005
+ _useState6 = _slicedToArray(_useState5, 2),
71006
+ polling = _useState6[0],
71007
+ setPolling = _useState6[1];
71008
+
71009
+ var _useContext = react.useContext(ErrorContext);
71010
+ _useContext.errorCallback;
71011
+
71012
+ react.useEffect(function () {
71013
+ if (polling) {
71014
+ var pollingInterval = setInterval(function () {
71015
+ fetch("https://api.depay.fi/v2/transactions/".concat(givenTransaction.blockchain, "/").concat(givenTransaction.from.toLowerCase(), "/").concat(givenTransaction.nonce)).then(function (response) {
71016
+ if (response.status == 200) {
71017
+ response.json().then(function (data) {
71018
+ if (data.status != 'pending') {
71019
+ setFoundTransaction({
71020
+ id: data.external_id,
71021
+ status: data.status
71022
+ });
71023
+ setPolling(false);
71024
+ }
71025
+ });
71026
+ }
71027
+ });
71028
+ }, 5000);
71029
+ return function () {
71030
+ clearInterval(pollingInterval);
71031
+ };
71032
+ }
71033
+ }, [polling]);
71034
+
71035
+ var createTracking = function createTracking(transaction, afterBlock, attempt) {
71036
+ if (attempt > 3) {
71037
+ console.log('TRANSACTION TRACKING FAILED AFTER 3 ATTEMPTS!');
71038
+ return;
71039
+ }
71040
+
71041
+ fetch('https://api.depay.fi/v2/transactions', {
71042
+ method: 'POST',
71043
+ headers: {
71044
+ 'X-Api-Key': apiKey,
71045
+ 'Content-Type': 'application/json'
71046
+ },
71047
+ body: JSON.stringify({
71048
+ id: transaction.id,
71049
+ after_block: afterBlock,
71050
+ blockchain: transaction.blockchain,
71051
+ sender: transaction.from.toLowerCase(),
71052
+ nonce: transaction.nonce
71053
+ })
71054
+ }).then(function (response) {
71055
+ if (response.status == 200 || response.status == 201) {
71056
+ console.log('TRANSACTION TRACKING INITIALIZED');
71057
+ } else {
71058
+ console.log('TRANSACTION TRACKING FAILED', response);
71059
+ setTimeout(function () {
71060
+ createTracking(transaction, afterBlock, attempt + 1);
71061
+ }, 3000);
71062
+ }
71063
+ })["catch"](function (error) {
71064
+ console.log('TRANSACTION TRACKING FAILED', error);
71065
+ setTimeout(function () {
71066
+ createTracking(transaction, afterBlock, attempt + 1);
71067
+ }, 3000);
71068
+ });
71069
+ };
71070
+
71071
+ var openSocket = function openSocket(transaction) {
71072
+ var socket = new WebSocket('wss://integrate.depay.fi/cable');
71073
+
71074
+ socket.onopen = function (event) {
71075
+ var msg = {
71076
+ command: 'subscribe',
71077
+ identifier: JSON.stringify({
71078
+ blockchain: transaction.blockchain,
71079
+ sender: transaction.from.toLowerCase(),
71080
+ nonce: transaction.nonce,
71081
+ channel: 'TransactionChannel'
71082
+ })
71083
+ };
71084
+ socket.send(JSON.stringify(msg));
71085
+ };
71086
+
71087
+ socket.onclose = function (event) {};
71088
+
71089
+ socket.onmessage = function (event) {
71090
+ var item = JSON.parse(event.data);
71091
+
71092
+ if (item.type === "ping") {
71093
+ return;
71094
+ }
71095
+
71096
+ if (item.message && item.message.status && item.message.status != 'pending') {
71097
+ setFoundTransaction(item.message);
71098
+ }
71099
+ };
71100
+
71101
+ socket.onerror = function (error) {
71102
+ console.log('WebSocket Error: ' + error);
71103
+ };
71104
+ };
71105
+
71106
+ var initializeTracking = function initializeTracking(transaction, afterBlock) {
71107
+ setGivenTransaction(transaction);
71108
+ createTracking(transaction, afterBlock, 1);
71109
+ openSocket(transaction);
71110
+ setPolling(true);
71111
+ };
71112
+
71113
+ return /*#__PURE__*/react.createElement(TransactionTrackingContext.Provider, {
71114
+ value: {
71115
+ initializeTracking: initializeTracking,
71116
+ foundTransaction: foundTransaction
71117
+ }
71118
+ }, props.children);
71119
+ });
71120
+
70926
71121
  var WalletProvider = (function (props) {
70927
71122
  var _useContext = react.useContext(ErrorContext);
70928
71123
  _useContext.setError;
@@ -71062,9 +71257,9 @@ var Donation = /*#__PURE__*/function () {
71062
71257
  container: container,
71063
71258
  connected: connected,
71064
71259
  unmount: unmount
71065
- }, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71260
+ }, /*#__PURE__*/react.createElement(NavigateProvider, null, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71066
71261
  accept: accept
71067
- }, /*#__PURE__*/react.createElement(TrackingProvider, {
71262
+ }, /*#__PURE__*/react.createElement(TransactionTrackingProvider, null, /*#__PURE__*/react.createElement(PaymentTrackingProvider, {
71068
71263
  document: ensureDocument(document)
71069
71264
  }, /*#__PURE__*/react.createElement(DonationRoutingProvider, {
71070
71265
  container: container,
@@ -71072,7 +71267,7 @@ var Donation = /*#__PURE__*/function () {
71072
71267
  }, /*#__PURE__*/react.createElement(DonationStack, {
71073
71268
  document: document,
71074
71269
  container: container
71075
- }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))));
71270
+ }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))))));
71076
71271
  };
71077
71272
  });
71078
71273
  return _context2.abrupt("return", {
@@ -71123,6 +71318,9 @@ var SignLoginDialog = (function (props) {
71123
71318
  return new Promise(function (resolve, reject) {
71124
71319
  fetch(endpoint, {
71125
71320
  method: 'POST',
71321
+ headers: {
71322
+ 'Content-Type': 'application/json'
71323
+ },
71126
71324
  body: JSON.stringify({
71127
71325
  message: message,
71128
71326
  signature: signature
@@ -71436,7 +71634,11 @@ var PaymentStack = (function (props) {
71436
71634
  open = _useContext.open,
71437
71635
  close = _useContext.close;
71438
71636
 
71637
+ var _useContext2 = react.useContext(NavigateContext),
71638
+ setNavigate = _useContext2.setNavigate;
71639
+
71439
71640
  return /*#__PURE__*/react.createElement(ReactDialogStack, {
71641
+ setNavigate: setNavigate,
71440
71642
  open: open,
71441
71643
  close: close,
71442
71644
  start: "PaymentOverview",
@@ -71538,7 +71740,7 @@ var Payment = /*#__PURE__*/function () {
71538
71740
  container: container,
71539
71741
  connected: connected,
71540
71742
  unmount: unmount
71541
- }, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71743
+ }, /*#__PURE__*/react.createElement(NavigateProvider, null, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71542
71744
  accept: accept
71543
71745
  }, /*#__PURE__*/react.createElement(PaymentAmountRoutingProvider, {
71544
71746
  accept: accept,
@@ -71546,7 +71748,7 @@ var Payment = /*#__PURE__*/function () {
71546
71748
  blacklist: blacklist,
71547
71749
  event: event,
71548
71750
  fee: fee
71549
- }, /*#__PURE__*/react.createElement(TrackingProvider, {
71751
+ }, /*#__PURE__*/react.createElement(TransactionTrackingProvider, null, /*#__PURE__*/react.createElement(PaymentTrackingProvider, {
71550
71752
  document: ensureDocument(document)
71551
71753
  }, /*#__PURE__*/react.createElement(PaymentProvider, {
71552
71754
  container: container,
@@ -71554,7 +71756,7 @@ var Payment = /*#__PURE__*/function () {
71554
71756
  }, /*#__PURE__*/react.createElement(PaymentValueProvider, null, /*#__PURE__*/react.createElement(PaymentStack, {
71555
71757
  document: document,
71556
71758
  container: container
71557
- }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))))));
71759
+ }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))))))));
71558
71760
  };
71559
71761
  });
71560
71762
  return _context2.abrupt("return", {
@@ -71830,7 +72032,11 @@ var SaleStack = (function (props) {
71830
72032
  open = _useContext.open,
71831
72033
  close = _useContext.close;
71832
72034
 
72035
+ var _useContext2 = react.useContext(NavigateContext),
72036
+ setNavigate = _useContext2.setNavigate;
72037
+
71833
72038
  return /*#__PURE__*/react.createElement(ReactDialogStack, {
72039
+ setNavigate: setNavigate,
71834
72040
  open: open,
71835
72041
  close: close,
71836
72042
  start: "SaleOverview",
@@ -71941,9 +72147,9 @@ var Sale = /*#__PURE__*/function () {
71941
72147
  container: container,
71942
72148
  connected: connected,
71943
72149
  unmount: unmount
71944
- }, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
72150
+ }, /*#__PURE__*/react.createElement(NavigateProvider, null, /*#__PURE__*/react.createElement(ConversionRateProvider, null, /*#__PURE__*/react.createElement(ChangableAmountProvider, {
71945
72151
  accept: accept
71946
- }, /*#__PURE__*/react.createElement(TrackingProvider, {
72152
+ }, /*#__PURE__*/react.createElement(TransactionTrackingProvider, null, /*#__PURE__*/react.createElement(PaymentTrackingProvider, {
71947
72153
  document: ensureDocument(document)
71948
72154
  }, /*#__PURE__*/react.createElement(SaleRoutingProvider, {
71949
72155
  container: container,
@@ -71951,7 +72157,7 @@ var Sale = /*#__PURE__*/function () {
71951
72157
  }, /*#__PURE__*/react.createElement(SaleStack, {
71952
72158
  document: document,
71953
72159
  container: container
71954
- }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))));
72160
+ }), /*#__PURE__*/react.createElement(PoweredBy, null))))))))))));
71955
72161
  };
71956
72162
  });
71957
72163
  return _context2.abrupt("return", {