@depay/widgets 6.5.3 → 6.7.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.
package/README.md CHANGED
@@ -199,7 +199,8 @@ BODY:
199
199
  "transaction": "0x4311a9820195c2a5af99c45c72c88848ed403a4020863c913feed81d15855ae4",
200
200
  "sender": "0x769794c94e9f113e357023dab73e81dbd6db201c",
201
201
  "nonce": 103,
202
- "after_block": 13230369
202
+ "after_block": 13230369,
203
+ "to_token": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
203
204
  }
204
205
  ```
205
206
 
@@ -210,6 +211,10 @@ Those values are supposed to be set by your backend not the widget nor the front
210
211
 
211
212
  Make sure you read the [Payment Tracking API](https://depay.fi/documentation/api#payments) for further details on how to integrate payment tracking.
212
213
 
214
+ Payment tracking requests will be attempted up to 3 times by the widget and will display "Payment tracking failed!" to the user if the widget was not able to start payment tracking via the given endpoint after 3 attempts.
215
+
216
+ A failed payment tracking will also call the [error callback](#error) with `{code: "TRACKING_FAILED"}`.
217
+
213
218
  #### connected
214
219
 
215
220
  `connected`
@@ -49451,7 +49451,8 @@ var ErrorProvider = (function (props) {
49451
49451
  } else {
49452
49452
  return /*#__PURE__*/react.createElement(ErrorContext.Provider, {
49453
49453
  value: {
49454
- setError: setErrorFromChildren
49454
+ setError: setErrorFromChildren,
49455
+ errorCallback: props.errorCallback
49455
49456
  }
49456
49457
  }, /*#__PURE__*/react.createElement(ErrorBoundary, {
49457
49458
  setError: setErrorFromChildren
@@ -49476,7 +49477,7 @@ var ButtonPrimaryStyle = (function (style) {
49476
49477
  });
49477
49478
 
49478
49479
  var CardStyle = (function (style) {
49479
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
49480
+ return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
49480
49481
  });
49481
49482
 
49482
49483
  var DialogStyle = (function (style) {
@@ -49496,7 +49497,7 @@ var HeightStyle = (function () {
49496
49497
  });
49497
49498
 
49498
49499
  var IconStyle = (function (style) {
49499
- return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
49500
+ return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .AlertIcon {\n height: 20px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 20px;\n fill: #e42626;\n stroke: transparent;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
49500
49501
  });
49501
49502
 
49502
49503
  var ImageStyle = (function (style) {
@@ -49564,7 +49565,7 @@ var TokenAmountStyle = (function () {
49564
49565
  });
49565
49566
 
49566
49567
  var TokenImageStyle = (function (style) {
49567
- return "\n\n .TokenImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
49568
+ return "\n\n .TokenImage img {\n border-radius: 99rem;\n border: 1px solid white;\n background: white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
49568
49569
  });
49569
49570
 
49570
49571
  var TooltipStyle = (function (style) {
@@ -62371,7 +62372,7 @@ var NoPaymentMethodFoundDialog = (function () {
62371
62372
  className: "Text PaddingTopS PaddingBottomM PaddingLeftM PaddingRightM"
62372
62373
  }, /*#__PURE__*/react.createElement("strong", {
62373
62374
  className: "FontSizeM"
62374
- }, "We were not able to find any asset of value in your wallet. Please top up your account in order to proceed with this payment."))),
62375
+ }, "We were not able to find any asset with enough value in your wallet. Please top up your account in order to proceed with this payment."))),
62375
62376
  footer: /*#__PURE__*/react.createElement("div", {
62376
62377
  className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
62377
62378
  }, /*#__PURE__*/react.createElement("button", {
@@ -62486,7 +62487,7 @@ var PaymentProvider = (function (props) {
62486
62487
  }
62487
62488
  })).then(function (sentTransaction) {
62488
62489
  if (tracking) {
62489
- initializeTracking(sentTransaction, currentBlock);
62490
+ initializeTracking(sentTransaction, currentBlock, payment.route);
62490
62491
  }
62491
62492
 
62492
62493
  setTransaction(sentTransaction);
@@ -69671,6 +69672,19 @@ var DonationOverviewSkeleton = (function (props) {
69671
69672
  });
69672
69673
  });
69673
69674
 
69675
+ var AlertIcon = (function (props) {
69676
+ return /*#__PURE__*/react.createElement("svg", {
69677
+ className: "AlertIcon Icon " + props.className,
69678
+ version: "1.1",
69679
+ xmlns: "http://www.w3.org/2000/svg",
69680
+ x: "0px",
69681
+ y: "0px",
69682
+ viewBox: "0 0 20 20"
69683
+ }, /*#__PURE__*/react.createElement("path", {
69684
+ d: "M19.64 16.36L11.53 2.3A1.85 1.85 0 0 0 10 1.21 1.85 1.85 0 0 0 8.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"
69685
+ }));
69686
+ });
69687
+
69674
69688
  var Checkmark = (function (props) {
69675
69689
  return /*#__PURE__*/react.createElement("svg", {
69676
69690
  className: "Checkmark Icon " + props.className,
@@ -69748,7 +69762,8 @@ var Footer = (function () {
69748
69762
  var _useContext3 = react.useContext(TrackingContext),
69749
69763
  tracking = _useContext3.tracking,
69750
69764
  forward = _useContext3.forward,
69751
- forwardTo = _useContext3.forwardTo;
69765
+ forwardTo = _useContext3.forwardTo,
69766
+ trackingFailed = _useContext3.trackingFailed;
69752
69767
 
69753
69768
  var _useContext4 = react.useContext(PaymentContext),
69754
69769
  payment = _useContext4.payment,
@@ -69773,7 +69788,7 @@ var Footer = (function () {
69773
69788
  }
69774
69789
 
69775
69790
  if (forward) {
69776
- return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("a", {
69791
+ return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("div", {
69777
69792
  className: "Card transparent small disabled"
69778
69793
  }, /*#__PURE__*/react.createElement("div", {
69779
69794
  className: "CardImage"
@@ -69789,21 +69804,37 @@ var Footer = (function () {
69789
69804
  className: "Opacity05"
69790
69805
  }, "Payment confirmation has been stored")))));
69791
69806
  } else {
69792
- return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("a", {
69793
- className: "Card transparent small disabled"
69794
- }, /*#__PURE__*/react.createElement("div", {
69795
- className: "CardImage"
69796
- }, /*#__PURE__*/react.createElement("div", {
69797
- className: "TextCenter"
69798
- }, /*#__PURE__*/react.createElement("div", {
69799
- className: "Loading Icon"
69800
- }))), /*#__PURE__*/react.createElement("div", {
69801
- className: "CardBody"
69802
- }, /*#__PURE__*/react.createElement("div", {
69803
- className: "CardBodyWrapper"
69804
- }, /*#__PURE__*/react.createElement("div", {
69805
- className: "Opacity05"
69806
- }, "Storing payment confirmation")))));
69807
+ if (trackingFailed) {
69808
+ return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("div", {
69809
+ className: "Card transparent small"
69810
+ }, /*#__PURE__*/react.createElement("div", {
69811
+ className: "CardImage"
69812
+ }, /*#__PURE__*/react.createElement("div", {
69813
+ className: "TextCenter"
69814
+ }, /*#__PURE__*/react.createElement(AlertIcon, {
69815
+ className: "small"
69816
+ }))), /*#__PURE__*/react.createElement("div", {
69817
+ className: "CardBody"
69818
+ }, /*#__PURE__*/react.createElement("div", {
69819
+ className: "CardBodyWrapper"
69820
+ }, /*#__PURE__*/react.createElement("div", null, "Tracking payment failed!")))));
69821
+ } else {
69822
+ return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("div", {
69823
+ className: "Card transparent small disabled"
69824
+ }, /*#__PURE__*/react.createElement("div", {
69825
+ className: "CardImage"
69826
+ }, /*#__PURE__*/react.createElement("div", {
69827
+ className: "TextCenter"
69828
+ }, /*#__PURE__*/react.createElement("div", {
69829
+ className: "Loading Icon"
69830
+ }))), /*#__PURE__*/react.createElement("div", {
69831
+ className: "CardBody"
69832
+ }, /*#__PURE__*/react.createElement("div", {
69833
+ className: "CardBodyWrapper"
69834
+ }, /*#__PURE__*/react.createElement("div", {
69835
+ className: "Opacity05"
69836
+ }, "Storing payment confirmation")))));
69837
+ }
69807
69838
  }
69808
69839
  };
69809
69840
 
@@ -70130,8 +70161,11 @@ var DonationStack = (function (props) {
70130
70161
  });
70131
70162
 
70132
70163
  var TrackingProvider = (function (props) {
70133
- var _useContext = react.useContext(ConfigurationContext),
70134
- track = _useContext.track;
70164
+ var _useContext = react.useContext(ErrorContext),
70165
+ errorCallback = _useContext.errorCallback;
70166
+
70167
+ var _useContext2 = react.useContext(ConfigurationContext),
70168
+ track = _useContext2.track;
70135
70169
 
70136
70170
  var _useState = react.useState(track && !!track.endpoint),
70137
70171
  _useState2 = _slicedToArray(_useState, 2),
@@ -70143,13 +70177,18 @@ var TrackingProvider = (function (props) {
70143
70177
  forward = _useState4[0],
70144
70178
  setForward = _useState4[1];
70145
70179
 
70146
- var _useState5 = react.useState(),
70180
+ var _useState5 = react.useState(false),
70147
70181
  _useState6 = _slicedToArray(_useState5, 2),
70148
- forwardTo = _useState6[0],
70149
- setForwardTo = _useState6[1];
70182
+ trackingFailed = _useState6[0],
70183
+ setTrackingFailed = _useState6[1];
70150
70184
 
70151
- var _useContext2 = react.useContext(ClosableContext),
70152
- setClosable = _useContext2.setClosable;
70185
+ var _useState7 = react.useState(),
70186
+ _useState8 = _slicedToArray(_useState7, 2),
70187
+ forwardTo = _useState8[0],
70188
+ setForwardTo = _useState8[1];
70189
+
70190
+ var _useContext3 = react.useContext(ClosableContext),
70191
+ setClosable = _useContext3.setClosable;
70153
70192
 
70154
70193
  react.useEffect(function () {
70155
70194
  setTracking(track && !!track.endpoint);
@@ -70199,20 +70238,27 @@ var TrackingProvider = (function (props) {
70199
70238
  };
70200
70239
  };
70201
70240
 
70202
- var retryStartTracking = function retryStartTracking(transaction, afterBlock, attempt) {
70241
+ var retryStartTracking = function retryStartTracking(transaction, afterBlock, paymentRoute, attempt) {
70203
70242
  attempt = parseInt(attempt || 1, 10);
70204
70243
  console.log('RETRY TRACKING ATTEMPT ', attempt);
70205
70244
 
70206
70245
  if (attempt < 3) {
70207
70246
  setTimeout(function () {
70208
- startTracking(transaction, afterBlock, attempt + 1);
70247
+ startTracking(transaction, afterBlock, paymentRoute, attempt + 1);
70209
70248
  }, 3000);
70210
70249
  } else {
70211
70250
  console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
70251
+ setTrackingFailed(true);
70252
+
70253
+ if (typeof errorCallback == 'function') {
70254
+ errorCallback({
70255
+ code: 'TRACKING_FAILED'
70256
+ });
70257
+ }
70212
70258
  }
70213
70259
  };
70214
70260
 
70215
- var startTracking = function startTracking(transaction, afterBlock, attempt) {
70261
+ var startTracking = function startTracking(transaction, afterBlock, paymentRoute, attempt) {
70216
70262
  fetch(track.endpoint, {
70217
70263
  method: 'POST',
70218
70264
  body: JSON.stringify({
@@ -70220,23 +70266,24 @@ var TrackingProvider = (function (props) {
70220
70266
  transaction: transaction.id.toLowerCase(),
70221
70267
  sender: transaction.from.toLowerCase(),
70222
70268
  nonce: transaction.nonce,
70223
- after_block: afterBlock
70269
+ after_block: afterBlock,
70270
+ to_token: paymentRoute.toToken.address
70224
70271
  })
70225
70272
  }).then(function (response) {
70226
70273
  if (response.status == 200) {
70227
70274
  console.log('TRACKING INITIALIZED');
70228
70275
  } else {
70229
- retryStartTracking(transaction, afterBlock, attempt);
70276
+ retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
70230
70277
  }
70231
70278
  })["catch"](function (error) {
70232
70279
  console.log('TRACKING FAILED', error);
70233
- retryStartTracking(transaction, afterBlock, attempt);
70280
+ retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
70234
70281
  });
70235
70282
  };
70236
70283
 
70237
- var initializeTracking = function initializeTracking(transaction, afterBlock) {
70284
+ var initializeTracking = function initializeTracking(transaction, afterBlock, paymentRoute) {
70238
70285
  openSocket(transaction);
70239
- startTracking(transaction, afterBlock);
70286
+ startTracking(transaction, afterBlock, paymentRoute);
70240
70287
  };
70241
70288
 
70242
70289
  return /*#__PURE__*/react.createElement(TrackingContext.Provider, {
@@ -70244,7 +70291,8 @@ var TrackingProvider = (function (props) {
70244
70291
  tracking: tracking,
70245
70292
  initializeTracking: initializeTracking,
70246
70293
  forward: forward,
70247
- forwardTo: forwardTo
70294
+ forwardTo: forwardTo,
70295
+ trackingFailed: trackingFailed
70248
70296
  }
70249
70297
  }, props.children);
70250
70298
  });
package/dist/esm/index.js CHANGED
@@ -1652,7 +1652,8 @@ var ErrorProvider = (function (props) {
1652
1652
  } else {
1653
1653
  return /*#__PURE__*/React.createElement(ErrorContext.Provider, {
1654
1654
  value: {
1655
- setError: setErrorFromChildren
1655
+ setError: setErrorFromChildren,
1656
+ errorCallback: props.errorCallback
1656
1657
  }
1657
1658
  }, /*#__PURE__*/React.createElement(ErrorBoundary, {
1658
1659
  setError: setErrorFromChildren
@@ -1677,7 +1678,7 @@ var ButtonPrimaryStyle = (function (style) {
1677
1678
  });
1678
1679
 
1679
1680
  var CardStyle = (function (style) {
1680
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1681
+ return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1681
1682
  });
1682
1683
 
1683
1684
  var DialogStyle = (function (style) {
@@ -1697,7 +1698,7 @@ var HeightStyle = (function () {
1697
1698
  });
1698
1699
 
1699
1700
  var IconStyle = (function (style) {
1700
- return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
1701
+ return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .AlertIcon {\n height: 20px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 20px;\n fill: #e42626;\n stroke: transparent;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
1701
1702
  });
1702
1703
 
1703
1704
  var ImageStyle = (function (style) {
@@ -1765,7 +1766,7 @@ var TokenAmountStyle = (function () {
1765
1766
  });
1766
1767
 
1767
1768
  var TokenImageStyle = (function (style) {
1768
- return "\n\n .TokenImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
1769
+ return "\n\n .TokenImage img {\n border-radius: 99rem;\n border: 1px solid white;\n background: white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
1769
1770
  });
1770
1771
 
1771
1772
  var TooltipStyle = (function (style) {
@@ -2218,7 +2219,7 @@ var NoPaymentMethodFoundDialog = (function () {
2218
2219
  className: "Text PaddingTopS PaddingBottomM PaddingLeftM PaddingRightM"
2219
2220
  }, /*#__PURE__*/React.createElement("strong", {
2220
2221
  className: "FontSizeM"
2221
- }, "We were not able to find any asset of value in your wallet. Please top up your account in order to proceed with this payment."))),
2222
+ }, "We were not able to find any asset with enough value in your wallet. Please top up your account in order to proceed with this payment."))),
2222
2223
  footer: /*#__PURE__*/React.createElement("div", {
2223
2224
  className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2224
2225
  }, /*#__PURE__*/React.createElement("button", {
@@ -2333,7 +2334,7 @@ var PaymentProvider = (function (props) {
2333
2334
  }
2334
2335
  })).then(function (sentTransaction) {
2335
2336
  if (tracking) {
2336
- initializeTracking(sentTransaction, currentBlock);
2337
+ initializeTracking(sentTransaction, currentBlock, payment.route);
2337
2338
  }
2338
2339
 
2339
2340
  setTransaction(sentTransaction);
@@ -3048,6 +3049,19 @@ var DonationOverviewSkeleton = (function (props) {
3048
3049
  });
3049
3050
  });
3050
3051
 
3052
+ var AlertIcon = (function (props) {
3053
+ return /*#__PURE__*/React.createElement("svg", {
3054
+ className: "AlertIcon Icon " + props.className,
3055
+ version: "1.1",
3056
+ xmlns: "http://www.w3.org/2000/svg",
3057
+ x: "0px",
3058
+ y: "0px",
3059
+ viewBox: "0 0 20 20"
3060
+ }, /*#__PURE__*/React.createElement("path", {
3061
+ d: "M19.64 16.36L11.53 2.3A1.85 1.85 0 0 0 10 1.21 1.85 1.85 0 0 0 8.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"
3062
+ }));
3063
+ });
3064
+
3051
3065
  var Checkmark = (function (props) {
3052
3066
  return /*#__PURE__*/React.createElement("svg", {
3053
3067
  className: "Checkmark Icon " + props.className,
@@ -3125,7 +3139,8 @@ var Footer = (function () {
3125
3139
  var _useContext3 = useContext(TrackingContext),
3126
3140
  tracking = _useContext3.tracking,
3127
3141
  forward = _useContext3.forward,
3128
- forwardTo = _useContext3.forwardTo;
3142
+ forwardTo = _useContext3.forwardTo,
3143
+ trackingFailed = _useContext3.trackingFailed;
3129
3144
 
3130
3145
  var _useContext4 = useContext(PaymentContext),
3131
3146
  payment = _useContext4.payment,
@@ -3150,7 +3165,7 @@ var Footer = (function () {
3150
3165
  }
3151
3166
 
3152
3167
  if (forward) {
3153
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
3168
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
3154
3169
  className: "Card transparent small disabled"
3155
3170
  }, /*#__PURE__*/React.createElement("div", {
3156
3171
  className: "CardImage"
@@ -3166,21 +3181,37 @@ var Footer = (function () {
3166
3181
  className: "Opacity05"
3167
3182
  }, "Payment confirmation has been stored")))));
3168
3183
  } else {
3169
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
3170
- className: "Card transparent small disabled"
3171
- }, /*#__PURE__*/React.createElement("div", {
3172
- className: "CardImage"
3173
- }, /*#__PURE__*/React.createElement("div", {
3174
- className: "TextCenter"
3175
- }, /*#__PURE__*/React.createElement("div", {
3176
- className: "Loading Icon"
3177
- }))), /*#__PURE__*/React.createElement("div", {
3178
- className: "CardBody"
3179
- }, /*#__PURE__*/React.createElement("div", {
3180
- className: "CardBodyWrapper"
3181
- }, /*#__PURE__*/React.createElement("div", {
3182
- className: "Opacity05"
3183
- }, "Storing payment confirmation")))));
3184
+ if (trackingFailed) {
3185
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
3186
+ className: "Card transparent small"
3187
+ }, /*#__PURE__*/React.createElement("div", {
3188
+ className: "CardImage"
3189
+ }, /*#__PURE__*/React.createElement("div", {
3190
+ className: "TextCenter"
3191
+ }, /*#__PURE__*/React.createElement(AlertIcon, {
3192
+ className: "small"
3193
+ }))), /*#__PURE__*/React.createElement("div", {
3194
+ className: "CardBody"
3195
+ }, /*#__PURE__*/React.createElement("div", {
3196
+ className: "CardBodyWrapper"
3197
+ }, /*#__PURE__*/React.createElement("div", null, "Tracking payment failed!")))));
3198
+ } else {
3199
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
3200
+ className: "Card transparent small disabled"
3201
+ }, /*#__PURE__*/React.createElement("div", {
3202
+ className: "CardImage"
3203
+ }, /*#__PURE__*/React.createElement("div", {
3204
+ className: "TextCenter"
3205
+ }, /*#__PURE__*/React.createElement("div", {
3206
+ className: "Loading Icon"
3207
+ }))), /*#__PURE__*/React.createElement("div", {
3208
+ className: "CardBody"
3209
+ }, /*#__PURE__*/React.createElement("div", {
3210
+ className: "CardBodyWrapper"
3211
+ }, /*#__PURE__*/React.createElement("div", {
3212
+ className: "Opacity05"
3213
+ }, "Storing payment confirmation")))));
3214
+ }
3184
3215
  }
3185
3216
  };
3186
3217
 
@@ -3507,8 +3538,11 @@ var DonationStack = (function (props) {
3507
3538
  });
3508
3539
 
3509
3540
  var TrackingProvider = (function (props) {
3510
- var _useContext = useContext(ConfigurationContext),
3511
- track = _useContext.track;
3541
+ var _useContext = useContext(ErrorContext),
3542
+ errorCallback = _useContext.errorCallback;
3543
+
3544
+ var _useContext2 = useContext(ConfigurationContext),
3545
+ track = _useContext2.track;
3512
3546
 
3513
3547
  var _useState = useState(track && !!track.endpoint),
3514
3548
  _useState2 = _slicedToArray(_useState, 2),
@@ -3520,13 +3554,18 @@ var TrackingProvider = (function (props) {
3520
3554
  forward = _useState4[0],
3521
3555
  setForward = _useState4[1];
3522
3556
 
3523
- var _useState5 = useState(),
3557
+ var _useState5 = useState(false),
3524
3558
  _useState6 = _slicedToArray(_useState5, 2),
3525
- forwardTo = _useState6[0],
3526
- setForwardTo = _useState6[1];
3559
+ trackingFailed = _useState6[0],
3560
+ setTrackingFailed = _useState6[1];
3527
3561
 
3528
- var _useContext2 = useContext(ClosableContext),
3529
- setClosable = _useContext2.setClosable;
3562
+ var _useState7 = useState(),
3563
+ _useState8 = _slicedToArray(_useState7, 2),
3564
+ forwardTo = _useState8[0],
3565
+ setForwardTo = _useState8[1];
3566
+
3567
+ var _useContext3 = useContext(ClosableContext),
3568
+ setClosable = _useContext3.setClosable;
3530
3569
 
3531
3570
  useEffect(function () {
3532
3571
  setTracking(track && !!track.endpoint);
@@ -3576,20 +3615,27 @@ var TrackingProvider = (function (props) {
3576
3615
  };
3577
3616
  };
3578
3617
 
3579
- var retryStartTracking = function retryStartTracking(transaction, afterBlock, attempt) {
3618
+ var retryStartTracking = function retryStartTracking(transaction, afterBlock, paymentRoute, attempt) {
3580
3619
  attempt = parseInt(attempt || 1, 10);
3581
3620
  console.log('RETRY TRACKING ATTEMPT ', attempt);
3582
3621
 
3583
3622
  if (attempt < 3) {
3584
3623
  setTimeout(function () {
3585
- startTracking(transaction, afterBlock, attempt + 1);
3624
+ startTracking(transaction, afterBlock, paymentRoute, attempt + 1);
3586
3625
  }, 3000);
3587
3626
  } else {
3588
3627
  console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
3628
+ setTrackingFailed(true);
3629
+
3630
+ if (typeof errorCallback == 'function') {
3631
+ errorCallback({
3632
+ code: 'TRACKING_FAILED'
3633
+ });
3634
+ }
3589
3635
  }
3590
3636
  };
3591
3637
 
3592
- var startTracking = function startTracking(transaction, afterBlock, attempt) {
3638
+ var startTracking = function startTracking(transaction, afterBlock, paymentRoute, attempt) {
3593
3639
  fetch(track.endpoint, {
3594
3640
  method: 'POST',
3595
3641
  body: JSON.stringify({
@@ -3597,23 +3643,24 @@ var TrackingProvider = (function (props) {
3597
3643
  transaction: transaction.id.toLowerCase(),
3598
3644
  sender: transaction.from.toLowerCase(),
3599
3645
  nonce: transaction.nonce,
3600
- after_block: afterBlock
3646
+ after_block: afterBlock,
3647
+ to_token: paymentRoute.toToken.address
3601
3648
  })
3602
3649
  }).then(function (response) {
3603
3650
  if (response.status == 200) {
3604
3651
  console.log('TRACKING INITIALIZED');
3605
3652
  } else {
3606
- retryStartTracking(transaction, afterBlock, attempt);
3653
+ retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
3607
3654
  }
3608
3655
  })["catch"](function (error) {
3609
3656
  console.log('TRACKING FAILED', error);
3610
- retryStartTracking(transaction, afterBlock, attempt);
3657
+ retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
3611
3658
  });
3612
3659
  };
3613
3660
 
3614
- var initializeTracking = function initializeTracking(transaction, afterBlock) {
3661
+ var initializeTracking = function initializeTracking(transaction, afterBlock, paymentRoute) {
3615
3662
  openSocket(transaction);
3616
- startTracking(transaction, afterBlock);
3663
+ startTracking(transaction, afterBlock, paymentRoute);
3617
3664
  };
3618
3665
 
3619
3666
  return /*#__PURE__*/React.createElement(TrackingContext.Provider, {
@@ -3621,7 +3668,8 @@ var TrackingProvider = (function (props) {
3621
3668
  tracking: tracking,
3622
3669
  initializeTracking: initializeTracking,
3623
3670
  forward: forward,
3624
- forwardTo: forwardTo
3671
+ forwardTo: forwardTo,
3672
+ trackingFailed: trackingFailed
3625
3673
  }
3626
3674
  }, props.children);
3627
3675
  });
@@ -49457,7 +49457,8 @@
49457
49457
  } else {
49458
49458
  return /*#__PURE__*/react.createElement(ErrorContext.Provider, {
49459
49459
  value: {
49460
- setError: setErrorFromChildren
49460
+ setError: setErrorFromChildren,
49461
+ errorCallback: props.errorCallback
49461
49462
  }
49462
49463
  }, /*#__PURE__*/react.createElement(ErrorBoundary, {
49463
49464
  setError: setErrorFromChildren
@@ -49482,7 +49483,7 @@
49482
49483
  });
49483
49484
 
49484
49485
  var CardStyle = (function (style) {
49485
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
49486
+ return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
49486
49487
  });
49487
49488
 
49488
49489
  var DialogStyle = (function (style) {
@@ -49502,7 +49503,7 @@
49502
49503
  });
49503
49504
 
49504
49505
  var IconStyle = (function (style) {
49505
- return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
49506
+ return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .AlertIcon {\n height: 20px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 20px;\n fill: #e42626;\n stroke: transparent;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
49506
49507
  });
49507
49508
 
49508
49509
  var ImageStyle = (function (style) {
@@ -49570,7 +49571,7 @@
49570
49571
  });
49571
49572
 
49572
49573
  var TokenImageStyle = (function (style) {
49573
- return "\n\n .TokenImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
49574
+ return "\n\n .TokenImage img {\n border-radius: 99rem;\n border: 1px solid white;\n background: white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
49574
49575
  });
49575
49576
 
49576
49577
  var TooltipStyle = (function (style) {
@@ -62377,7 +62378,7 @@
62377
62378
  className: "Text PaddingTopS PaddingBottomM PaddingLeftM PaddingRightM"
62378
62379
  }, /*#__PURE__*/react.createElement("strong", {
62379
62380
  className: "FontSizeM"
62380
- }, "We were not able to find any asset of value in your wallet. Please top up your account in order to proceed with this payment."))),
62381
+ }, "We were not able to find any asset with enough value in your wallet. Please top up your account in order to proceed with this payment."))),
62381
62382
  footer: /*#__PURE__*/react.createElement("div", {
62382
62383
  className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
62383
62384
  }, /*#__PURE__*/react.createElement("button", {
@@ -62492,7 +62493,7 @@
62492
62493
  }
62493
62494
  })).then(function (sentTransaction) {
62494
62495
  if (tracking) {
62495
- initializeTracking(sentTransaction, currentBlock);
62496
+ initializeTracking(sentTransaction, currentBlock, payment.route);
62496
62497
  }
62497
62498
 
62498
62499
  setTransaction(sentTransaction);
@@ -69677,6 +69678,19 @@
69677
69678
  });
69678
69679
  });
69679
69680
 
69681
+ var AlertIcon = (function (props) {
69682
+ return /*#__PURE__*/react.createElement("svg", {
69683
+ className: "AlertIcon Icon " + props.className,
69684
+ version: "1.1",
69685
+ xmlns: "http://www.w3.org/2000/svg",
69686
+ x: "0px",
69687
+ y: "0px",
69688
+ viewBox: "0 0 20 20"
69689
+ }, /*#__PURE__*/react.createElement("path", {
69690
+ d: "M19.64 16.36L11.53 2.3A1.85 1.85 0 0 0 10 1.21 1.85 1.85 0 0 0 8.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"
69691
+ }));
69692
+ });
69693
+
69680
69694
  var Checkmark = (function (props) {
69681
69695
  return /*#__PURE__*/react.createElement("svg", {
69682
69696
  className: "Checkmark Icon " + props.className,
@@ -69754,7 +69768,8 @@
69754
69768
  var _useContext3 = react.useContext(TrackingContext),
69755
69769
  tracking = _useContext3.tracking,
69756
69770
  forward = _useContext3.forward,
69757
- forwardTo = _useContext3.forwardTo;
69771
+ forwardTo = _useContext3.forwardTo,
69772
+ trackingFailed = _useContext3.trackingFailed;
69758
69773
 
69759
69774
  var _useContext4 = react.useContext(PaymentContext),
69760
69775
  payment = _useContext4.payment,
@@ -69779,7 +69794,7 @@
69779
69794
  }
69780
69795
 
69781
69796
  if (forward) {
69782
- return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("a", {
69797
+ return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("div", {
69783
69798
  className: "Card transparent small disabled"
69784
69799
  }, /*#__PURE__*/react.createElement("div", {
69785
69800
  className: "CardImage"
@@ -69795,21 +69810,37 @@
69795
69810
  className: "Opacity05"
69796
69811
  }, "Payment confirmation has been stored")))));
69797
69812
  } else {
69798
- return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("a", {
69799
- className: "Card transparent small disabled"
69800
- }, /*#__PURE__*/react.createElement("div", {
69801
- className: "CardImage"
69802
- }, /*#__PURE__*/react.createElement("div", {
69803
- className: "TextCenter"
69804
- }, /*#__PURE__*/react.createElement("div", {
69805
- className: "Loading Icon"
69806
- }))), /*#__PURE__*/react.createElement("div", {
69807
- className: "CardBody"
69808
- }, /*#__PURE__*/react.createElement("div", {
69809
- className: "CardBodyWrapper"
69810
- }, /*#__PURE__*/react.createElement("div", {
69811
- className: "Opacity05"
69812
- }, "Storing payment confirmation")))));
69813
+ if (trackingFailed) {
69814
+ return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("div", {
69815
+ className: "Card transparent small"
69816
+ }, /*#__PURE__*/react.createElement("div", {
69817
+ className: "CardImage"
69818
+ }, /*#__PURE__*/react.createElement("div", {
69819
+ className: "TextCenter"
69820
+ }, /*#__PURE__*/react.createElement(AlertIcon, {
69821
+ className: "small"
69822
+ }))), /*#__PURE__*/react.createElement("div", {
69823
+ className: "CardBody"
69824
+ }, /*#__PURE__*/react.createElement("div", {
69825
+ className: "CardBodyWrapper"
69826
+ }, /*#__PURE__*/react.createElement("div", null, "Tracking payment failed!")))));
69827
+ } else {
69828
+ return /*#__PURE__*/react.createElement("div", null, /*#__PURE__*/react.createElement("div", {
69829
+ className: "Card transparent small disabled"
69830
+ }, /*#__PURE__*/react.createElement("div", {
69831
+ className: "CardImage"
69832
+ }, /*#__PURE__*/react.createElement("div", {
69833
+ className: "TextCenter"
69834
+ }, /*#__PURE__*/react.createElement("div", {
69835
+ className: "Loading Icon"
69836
+ }))), /*#__PURE__*/react.createElement("div", {
69837
+ className: "CardBody"
69838
+ }, /*#__PURE__*/react.createElement("div", {
69839
+ className: "CardBodyWrapper"
69840
+ }, /*#__PURE__*/react.createElement("div", {
69841
+ className: "Opacity05"
69842
+ }, "Storing payment confirmation")))));
69843
+ }
69813
69844
  }
69814
69845
  };
69815
69846
 
@@ -70136,8 +70167,11 @@
70136
70167
  });
70137
70168
 
70138
70169
  var TrackingProvider = (function (props) {
70139
- var _useContext = react.useContext(ConfigurationContext),
70140
- track = _useContext.track;
70170
+ var _useContext = react.useContext(ErrorContext),
70171
+ errorCallback = _useContext.errorCallback;
70172
+
70173
+ var _useContext2 = react.useContext(ConfigurationContext),
70174
+ track = _useContext2.track;
70141
70175
 
70142
70176
  var _useState = react.useState(track && !!track.endpoint),
70143
70177
  _useState2 = _slicedToArray(_useState, 2),
@@ -70149,13 +70183,18 @@
70149
70183
  forward = _useState4[0],
70150
70184
  setForward = _useState4[1];
70151
70185
 
70152
- var _useState5 = react.useState(),
70186
+ var _useState5 = react.useState(false),
70153
70187
  _useState6 = _slicedToArray(_useState5, 2),
70154
- forwardTo = _useState6[0],
70155
- setForwardTo = _useState6[1];
70188
+ trackingFailed = _useState6[0],
70189
+ setTrackingFailed = _useState6[1];
70156
70190
 
70157
- var _useContext2 = react.useContext(ClosableContext),
70158
- setClosable = _useContext2.setClosable;
70191
+ var _useState7 = react.useState(),
70192
+ _useState8 = _slicedToArray(_useState7, 2),
70193
+ forwardTo = _useState8[0],
70194
+ setForwardTo = _useState8[1];
70195
+
70196
+ var _useContext3 = react.useContext(ClosableContext),
70197
+ setClosable = _useContext3.setClosable;
70159
70198
 
70160
70199
  react.useEffect(function () {
70161
70200
  setTracking(track && !!track.endpoint);
@@ -70205,20 +70244,27 @@
70205
70244
  };
70206
70245
  };
70207
70246
 
70208
- var retryStartTracking = function retryStartTracking(transaction, afterBlock, attempt) {
70247
+ var retryStartTracking = function retryStartTracking(transaction, afterBlock, paymentRoute, attempt) {
70209
70248
  attempt = parseInt(attempt || 1, 10);
70210
70249
  console.log('RETRY TRACKING ATTEMPT ', attempt);
70211
70250
 
70212
70251
  if (attempt < 3) {
70213
70252
  setTimeout(function () {
70214
- startTracking(transaction, afterBlock, attempt + 1);
70253
+ startTracking(transaction, afterBlock, paymentRoute, attempt + 1);
70215
70254
  }, 3000);
70216
70255
  } else {
70217
70256
  console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
70257
+ setTrackingFailed(true);
70258
+
70259
+ if (typeof errorCallback == 'function') {
70260
+ errorCallback({
70261
+ code: 'TRACKING_FAILED'
70262
+ });
70263
+ }
70218
70264
  }
70219
70265
  };
70220
70266
 
70221
- var startTracking = function startTracking(transaction, afterBlock, attempt) {
70267
+ var startTracking = function startTracking(transaction, afterBlock, paymentRoute, attempt) {
70222
70268
  fetch(track.endpoint, {
70223
70269
  method: 'POST',
70224
70270
  body: JSON.stringify({
@@ -70226,23 +70272,24 @@
70226
70272
  transaction: transaction.id.toLowerCase(),
70227
70273
  sender: transaction.from.toLowerCase(),
70228
70274
  nonce: transaction.nonce,
70229
- after_block: afterBlock
70275
+ after_block: afterBlock,
70276
+ to_token: paymentRoute.toToken.address
70230
70277
  })
70231
70278
  }).then(function (response) {
70232
70279
  if (response.status == 200) {
70233
70280
  console.log('TRACKING INITIALIZED');
70234
70281
  } else {
70235
- retryStartTracking(transaction, afterBlock, attempt);
70282
+ retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
70236
70283
  }
70237
70284
  })["catch"](function (error) {
70238
70285
  console.log('TRACKING FAILED', error);
70239
- retryStartTracking(transaction, afterBlock, attempt);
70286
+ retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
70240
70287
  });
70241
70288
  };
70242
70289
 
70243
- var initializeTracking = function initializeTracking(transaction, afterBlock) {
70290
+ var initializeTracking = function initializeTracking(transaction, afterBlock, paymentRoute) {
70244
70291
  openSocket(transaction);
70245
- startTracking(transaction, afterBlock);
70292
+ startTracking(transaction, afterBlock, paymentRoute);
70246
70293
  };
70247
70294
 
70248
70295
  return /*#__PURE__*/react.createElement(TrackingContext.Provider, {
@@ -70250,7 +70297,8 @@
70250
70297
  tracking: tracking,
70251
70298
  initializeTracking: initializeTracking,
70252
70299
  forward: forward,
70253
- forwardTo: forwardTo
70300
+ forwardTo: forwardTo,
70301
+ trackingFailed: trackingFailed
70254
70302
  }
70255
70303
  }, props.children);
70256
70304
  });
package/dist/umd/index.js CHANGED
@@ -1647,7 +1647,8 @@
1647
1647
  } else {
1648
1648
  return /*#__PURE__*/React__default["default"].createElement(ErrorContext.Provider, {
1649
1649
  value: {
1650
- setError: setErrorFromChildren
1650
+ setError: setErrorFromChildren,
1651
+ errorCallback: props.errorCallback
1651
1652
  }
1652
1653
  }, /*#__PURE__*/React__default["default"].createElement(ErrorBoundary, {
1653
1654
  setError: setErrorFromChildren
@@ -1672,7 +1673,7 @@
1672
1673
  });
1673
1674
 
1674
1675
  var CardStyle = (function (style) {
1675
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1676
+ return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1676
1677
  });
1677
1678
 
1678
1679
  var DialogStyle = (function (style) {
@@ -1692,7 +1693,7 @@
1692
1693
  });
1693
1694
 
1694
1695
  var IconStyle = (function (style) {
1695
- return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
1696
+ return "\n\n .Icon {\n fill : ".concat(style.colors.icons, ";\n stroke : ").concat(style.colors.icons, ";\n }\n\n .ChevronLeft, .ChevronRight {\n position: relative;\n top: 1px;\n }\n\n .Checkmark {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .AlertIcon {\n height: 20px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 20px;\n fill: #e42626;\n stroke: transparent;\n }\n\n .CheckMark.small {\n height: 16px;\n width: 16px;\n }\n\n .DigitalWalletIcon {\n height: 24px;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 24px;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n\n .Loading {\n border: 3px solid ").concat(style.colors.primary, ";\n border-top: 3px solid rgba(0,0,0,0.1);\n border-radius: 100%;\n position: relative;\n left: -1px;\n width: 18px;\n height: 18px;\n animation: spin 1.5s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n ");
1696
1697
  });
1697
1698
 
1698
1699
  var ImageStyle = (function (style) {
@@ -1760,7 +1761,7 @@
1760
1761
  });
1761
1762
 
1762
1763
  var TokenImageStyle = (function (style) {
1763
- return "\n\n .TokenImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
1764
+ return "\n\n .TokenImage img {\n border-radius: 99rem;\n border: 1px solid white;\n background: white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
1764
1765
  });
1765
1766
 
1766
1767
  var TooltipStyle = (function (style) {
@@ -2213,7 +2214,7 @@
2213
2214
  className: "Text PaddingTopS PaddingBottomM PaddingLeftM PaddingRightM"
2214
2215
  }, /*#__PURE__*/React__default["default"].createElement("strong", {
2215
2216
  className: "FontSizeM"
2216
- }, "We were not able to find any asset of value in your wallet. Please top up your account in order to proceed with this payment."))),
2217
+ }, "We were not able to find any asset with enough value in your wallet. Please top up your account in order to proceed with this payment."))),
2217
2218
  footer: /*#__PURE__*/React__default["default"].createElement("div", {
2218
2219
  className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2219
2220
  }, /*#__PURE__*/React__default["default"].createElement("button", {
@@ -2328,7 +2329,7 @@
2328
2329
  }
2329
2330
  })).then(function (sentTransaction) {
2330
2331
  if (tracking) {
2331
- initializeTracking(sentTransaction, currentBlock);
2332
+ initializeTracking(sentTransaction, currentBlock, payment.route);
2332
2333
  }
2333
2334
 
2334
2335
  setTransaction(sentTransaction);
@@ -3043,6 +3044,19 @@
3043
3044
  });
3044
3045
  });
3045
3046
 
3047
+ var AlertIcon = (function (props) {
3048
+ return /*#__PURE__*/React__default["default"].createElement("svg", {
3049
+ className: "AlertIcon Icon " + props.className,
3050
+ version: "1.1",
3051
+ xmlns: "http://www.w3.org/2000/svg",
3052
+ x: "0px",
3053
+ y: "0px",
3054
+ viewBox: "0 0 20 20"
3055
+ }, /*#__PURE__*/React__default["default"].createElement("path", {
3056
+ d: "M19.64 16.36L11.53 2.3A1.85 1.85 0 0 0 10 1.21 1.85 1.85 0 0 0 8.48 2.3L.36 16.36C-.48 17.81.21 19 1.88 19h16.24c1.67 0 2.36-1.19 1.52-2.64zM11 16H9v-2h2zm0-4H9V6h2z"
3057
+ }));
3058
+ });
3059
+
3046
3060
  var Checkmark = (function (props) {
3047
3061
  return /*#__PURE__*/React__default["default"].createElement("svg", {
3048
3062
  className: "Checkmark Icon " + props.className,
@@ -3120,7 +3134,8 @@
3120
3134
  var _useContext3 = React.useContext(TrackingContext),
3121
3135
  tracking = _useContext3.tracking,
3122
3136
  forward = _useContext3.forward,
3123
- forwardTo = _useContext3.forwardTo;
3137
+ forwardTo = _useContext3.forwardTo,
3138
+ trackingFailed = _useContext3.trackingFailed;
3124
3139
 
3125
3140
  var _useContext4 = React.useContext(PaymentContext),
3126
3141
  payment = _useContext4.payment,
@@ -3145,7 +3160,7 @@
3145
3160
  }
3146
3161
 
3147
3162
  if (forward) {
3148
- return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("a", {
3163
+ return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
3149
3164
  className: "Card transparent small disabled"
3150
3165
  }, /*#__PURE__*/React__default["default"].createElement("div", {
3151
3166
  className: "CardImage"
@@ -3161,21 +3176,37 @@
3161
3176
  className: "Opacity05"
3162
3177
  }, "Payment confirmation has been stored")))));
3163
3178
  } else {
3164
- return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("a", {
3165
- className: "Card transparent small disabled"
3166
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3167
- className: "CardImage"
3168
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3169
- className: "TextCenter"
3170
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3171
- className: "Loading Icon"
3172
- }))), /*#__PURE__*/React__default["default"].createElement("div", {
3173
- className: "CardBody"
3174
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3175
- className: "CardBodyWrapper"
3176
- }, /*#__PURE__*/React__default["default"].createElement("div", {
3177
- className: "Opacity05"
3178
- }, "Storing payment confirmation")))));
3179
+ if (trackingFailed) {
3180
+ return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
3181
+ className: "Card transparent small"
3182
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3183
+ className: "CardImage"
3184
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3185
+ className: "TextCenter"
3186
+ }, /*#__PURE__*/React__default["default"].createElement(AlertIcon, {
3187
+ className: "small"
3188
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
3189
+ className: "CardBody"
3190
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3191
+ className: "CardBodyWrapper"
3192
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, "Tracking payment failed!")))));
3193
+ } else {
3194
+ return /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
3195
+ className: "Card transparent small disabled"
3196
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3197
+ className: "CardImage"
3198
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3199
+ className: "TextCenter"
3200
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3201
+ className: "Loading Icon"
3202
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
3203
+ className: "CardBody"
3204
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3205
+ className: "CardBodyWrapper"
3206
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3207
+ className: "Opacity05"
3208
+ }, "Storing payment confirmation")))));
3209
+ }
3179
3210
  }
3180
3211
  };
3181
3212
 
@@ -3502,8 +3533,11 @@
3502
3533
  });
3503
3534
 
3504
3535
  var TrackingProvider = (function (props) {
3505
- var _useContext = React.useContext(ConfigurationContext),
3506
- track = _useContext.track;
3536
+ var _useContext = React.useContext(ErrorContext),
3537
+ errorCallback = _useContext.errorCallback;
3538
+
3539
+ var _useContext2 = React.useContext(ConfigurationContext),
3540
+ track = _useContext2.track;
3507
3541
 
3508
3542
  var _useState = React.useState(track && !!track.endpoint),
3509
3543
  _useState2 = _slicedToArray(_useState, 2),
@@ -3515,13 +3549,18 @@
3515
3549
  forward = _useState4[0],
3516
3550
  setForward = _useState4[1];
3517
3551
 
3518
- var _useState5 = React.useState(),
3552
+ var _useState5 = React.useState(false),
3519
3553
  _useState6 = _slicedToArray(_useState5, 2),
3520
- forwardTo = _useState6[0],
3521
- setForwardTo = _useState6[1];
3554
+ trackingFailed = _useState6[0],
3555
+ setTrackingFailed = _useState6[1];
3522
3556
 
3523
- var _useContext2 = React.useContext(ClosableContext),
3524
- setClosable = _useContext2.setClosable;
3557
+ var _useState7 = React.useState(),
3558
+ _useState8 = _slicedToArray(_useState7, 2),
3559
+ forwardTo = _useState8[0],
3560
+ setForwardTo = _useState8[1];
3561
+
3562
+ var _useContext3 = React.useContext(ClosableContext),
3563
+ setClosable = _useContext3.setClosable;
3525
3564
 
3526
3565
  React.useEffect(function () {
3527
3566
  setTracking(track && !!track.endpoint);
@@ -3571,20 +3610,27 @@
3571
3610
  };
3572
3611
  };
3573
3612
 
3574
- var retryStartTracking = function retryStartTracking(transaction, afterBlock, attempt) {
3613
+ var retryStartTracking = function retryStartTracking(transaction, afterBlock, paymentRoute, attempt) {
3575
3614
  attempt = parseInt(attempt || 1, 10);
3576
3615
  console.log('RETRY TRACKING ATTEMPT ', attempt);
3577
3616
 
3578
3617
  if (attempt < 3) {
3579
3618
  setTimeout(function () {
3580
- startTracking(transaction, afterBlock, attempt + 1);
3619
+ startTracking(transaction, afterBlock, paymentRoute, attempt + 1);
3581
3620
  }, 3000);
3582
3621
  } else {
3583
3622
  console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
3623
+ setTrackingFailed(true);
3624
+
3625
+ if (typeof errorCallback == 'function') {
3626
+ errorCallback({
3627
+ code: 'TRACKING_FAILED'
3628
+ });
3629
+ }
3584
3630
  }
3585
3631
  };
3586
3632
 
3587
- var startTracking = function startTracking(transaction, afterBlock, attempt) {
3633
+ var startTracking = function startTracking(transaction, afterBlock, paymentRoute, attempt) {
3588
3634
  fetch(track.endpoint, {
3589
3635
  method: 'POST',
3590
3636
  body: JSON.stringify({
@@ -3592,23 +3638,24 @@
3592
3638
  transaction: transaction.id.toLowerCase(),
3593
3639
  sender: transaction.from.toLowerCase(),
3594
3640
  nonce: transaction.nonce,
3595
- after_block: afterBlock
3641
+ after_block: afterBlock,
3642
+ to_token: paymentRoute.toToken.address
3596
3643
  })
3597
3644
  }).then(function (response) {
3598
3645
  if (response.status == 200) {
3599
3646
  console.log('TRACKING INITIALIZED');
3600
3647
  } else {
3601
- retryStartTracking(transaction, afterBlock, attempt);
3648
+ retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
3602
3649
  }
3603
3650
  })["catch"](function (error) {
3604
3651
  console.log('TRACKING FAILED', error);
3605
- retryStartTracking(transaction, afterBlock, attempt);
3652
+ retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
3606
3653
  });
3607
3654
  };
3608
3655
 
3609
- var initializeTracking = function initializeTracking(transaction, afterBlock) {
3656
+ var initializeTracking = function initializeTracking(transaction, afterBlock, paymentRoute) {
3610
3657
  openSocket(transaction);
3611
- startTracking(transaction, afterBlock);
3658
+ startTracking(transaction, afterBlock, paymentRoute);
3612
3659
  };
3613
3660
 
3614
3661
  return /*#__PURE__*/React__default["default"].createElement(TrackingContext.Provider, {
@@ -3616,7 +3663,8 @@
3616
3663
  tracking: tracking,
3617
3664
  initializeTracking: initializeTracking,
3618
3665
  forward: forward,
3619
- forwardTo: forwardTo
3666
+ forwardTo: forwardTo,
3667
+ trackingFailed: trackingFailed
3620
3668
  }
3621
3669
  }, props.children);
3622
3670
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@depay/widgets",
3
3
  "moduleName": "DePayWidgets",
4
- "version": "6.5.3",
4
+ "version": "6.7.0",
5
5
  "description": "Web3 Payments with any token. DePay simplifies and improves Web3 Payments with the power of DeFi. Accept any token with on-the-fly conversion.",
6
6
  "main": "./dist/umd/index.js",
7
7
  "module": "./dist/esm/index.js",