@depay/widgets 4.4.0 → 5.0.3

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/dist/cjs/index.js CHANGED
@@ -62,17 +62,11 @@ function _asyncToGenerator(fn) {
62
62
  function _typeof(obj) {
63
63
  "@babel/helpers - typeof";
64
64
 
65
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
66
- _typeof = function _typeof(obj) {
67
- return typeof obj;
68
- };
69
- } else {
70
- _typeof = function _typeof(obj) {
71
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
72
- };
73
- }
74
-
75
- return _typeof(obj);
65
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
66
+ return typeof obj;
67
+ } : function (obj) {
68
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
69
+ }, _typeof(obj);
76
70
  }
77
71
 
78
72
  function createCommonjsModule(fn) {
@@ -901,6 +895,8 @@ function _slicedToArray(arr, i) {
901
895
 
902
896
  var ClosableContext = /*#__PURE__*/React__default$1["default"].createContext();
903
897
 
898
+ var UpdatableContext = /*#__PURE__*/React__default$1["default"].createContext();
899
+
904
900
  var ClosableProvider = (function (props) {
905
901
  var _useState = React.useState(true),
906
902
  _useState2 = _slicedToArray(_useState, 2),
@@ -912,11 +908,15 @@ var ClosableProvider = (function (props) {
912
908
  open = _useState4[0],
913
909
  setOpen = _useState4[1];
914
910
 
911
+ var _useContext = React.useContext(UpdatableContext),
912
+ setUpdatable = _useContext.setUpdatable;
913
+
915
914
  var close = function close() {
916
915
  if (!closable) {
917
916
  return;
918
917
  }
919
918
 
919
+ setUpdatable(false);
920
920
  setOpen(false);
921
921
  setTimeout(props.unmount, 300);
922
922
  };
@@ -1000,12 +1000,7 @@ var Dialog$1 = (function (props) {
1000
1000
  className: "DialogBody"
1001
1001
  }, props.body), /*#__PURE__*/React__default$1["default"].createElement("div", {
1002
1002
  className: "DialogFooter"
1003
- }, props.footer, /*#__PURE__*/React__default$1["default"].createElement("a", {
1004
- href: 'https://depay.fi?utm_source=' + window.location.hostname + '&utm_medium=widget&utm_campaign=WidgetV2',
1005
- rel: "noopener noreferrer",
1006
- target: "_blank",
1007
- className: "FooterLink"
1008
- }, "by DePay")));
1003
+ }, props.footer));
1009
1004
  });
1010
1005
 
1011
1006
  var ConnectingWalletDialog = (function (props) {
@@ -1055,9 +1050,9 @@ var ConnectingWalletDialog = (function (props) {
1055
1050
  className: "TextButton"
1056
1051
  }, "Connect with another wallet")))),
1057
1052
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
1058
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
1053
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
1059
1054
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1060
- className: "ButtonPrimary wide",
1055
+ className: "ButtonPrimary",
1061
1056
  onClick: function onClick() {
1062
1057
  return props.connect(wallet);
1063
1058
  }
@@ -1140,7 +1135,7 @@ var SelectWalletDialog = (function (props) {
1140
1135
  return connect(wallet);
1141
1136
  }
1142
1137
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1143
- className: "CardImage PaddingLeftM"
1138
+ className: "CardImage"
1144
1139
  }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1145
1140
  src: wallet.logo
1146
1141
  })), /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -1153,9 +1148,9 @@ var SelectWalletDialog = (function (props) {
1153
1148
  });
1154
1149
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
1155
1150
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
1156
- className: "PaddingTopS PaddingLeftM PaddingRightM"
1151
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
1157
1152
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
1158
- className: "LineHeightL FontSizeL TextLeft"
1153
+ className: "LineHeightL FontSizeL"
1159
1154
  }, "Select a wallet")),
1160
1155
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
1161
1156
  className: "PaddingTopS PaddingBottomXS PaddingLeftS PaddingRightS"
@@ -1163,11 +1158,13 @@ var SelectWalletDialog = (function (props) {
1163
1158
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
1164
1159
  className: "PaddingBottomS"
1165
1160
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1166
- className: "FontSizeS FontWeightBold TextGrey TextButton",
1161
+ className: "FontSizeS FontWeightBold TextButton",
1167
1162
  onClick: function onClick() {
1168
1163
  return setShowExplanation(!showExplanation);
1169
1164
  }
1170
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", null, "What is a wallet?")), showExplanation && /*#__PURE__*/React__default$1["default"].createElement("p", {
1165
+ }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
1166
+ className: "Opacity05"
1167
+ }, "What is a wallet?")), showExplanation && /*#__PURE__*/React__default$1["default"].createElement("p", {
1171
1168
  className: "PaddingLeftM PaddingRightM"
1172
1169
  }, "Wallets are used to send, receive, and store digital assets. Wallets come in many forms. They are either built into your browser, an extension added to your browser, a piece of hardware plugged into your computer or even an app on your phone."))
1173
1170
  });
@@ -1320,6 +1317,9 @@ function _defineProperties(target, props) {
1320
1317
  function _createClass(Constructor, protoProps, staticProps) {
1321
1318
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1322
1319
  if (staticProps) _defineProperties(Constructor, staticProps);
1320
+ Object.defineProperty(Constructor, "prototype", {
1321
+ writable: false
1322
+ });
1323
1323
  return Constructor;
1324
1324
  }
1325
1325
 
@@ -1337,12 +1337,15 @@ function _inherits(subClass, superClass) {
1337
1337
  throw new TypeError("Super expression must either be null or a function");
1338
1338
  }
1339
1339
 
1340
- subClass.prototype = Object.create(superClass && superClass.prototype, {
1341
- constructor: {
1342
- value: subClass,
1343
- writable: true,
1344
- configurable: true
1345
- }
1340
+ Object.defineProperty(subClass, "prototype", {
1341
+ value: Object.create(superClass && superClass.prototype, {
1342
+ constructor: {
1343
+ value: subClass,
1344
+ writable: true,
1345
+ configurable: true
1346
+ }
1347
+ }),
1348
+ writable: false
1346
1349
  });
1347
1350
  if (superClass) _setPrototypeOf(subClass, superClass);
1348
1351
  }
@@ -1621,7 +1624,7 @@ var ErrorProvider = (function (props) {
1621
1624
  })), /*#__PURE__*/React__default$1["default"].createElement("div", {
1622
1625
  className: "DialogBody"
1623
1626
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1624
- className: "GraphicWrapper"
1627
+ className: "GraphicWrapper PaddingTopS"
1625
1628
  }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1626
1629
  className: "Graphic",
1627
1630
  src: ErrorGraphic
@@ -1639,15 +1642,12 @@ var ErrorProvider = (function (props) {
1639
1642
  className: "FontSizeM PaddingTopS"
1640
1643
  }, "If this keeps happening, please report it.")))), /*#__PURE__*/React__default$1["default"].createElement("div", {
1641
1644
  className: "DialogFooter"
1642
- }, /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("button", {
1645
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1646
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
1647
+ }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1643
1648
  className: "ButtonPrimary",
1644
1649
  onClick: close
1645
- }, "Try again")), /*#__PURE__*/React__default$1["default"].createElement("a", {
1646
- href: 'https://depay.fi?utm_source=' + window.location.hostname + '&utm_medium=widget&utm_campaign=WidgetV2',
1647
- rel: "noopener noreferrer",
1648
- target: "_blank",
1649
- className: "FooterLink"
1650
- }, "by DePay"))));
1650
+ }, "Try again")))));
1651
1651
  } else {
1652
1652
  return /*#__PURE__*/React__default$1["default"].createElement(ErrorContext.Provider, {
1653
1653
  value: {
@@ -1659,28 +1659,28 @@ var ErrorProvider = (function (props) {
1659
1659
  }
1660
1660
  });
1661
1661
 
1662
+ var BlockchainLogoStyle = (function (style) {
1663
+ return "\n\n .BlockchainLogo {\n border-radius: 999px;\n }\n\n .BlockchainLogo.small {\n height: 18px;\n width: 18px;\n }\n ";
1664
+ });
1665
+
1662
1666
  var ButtonCircularStyle = (function () {
1663
1667
  return "\n\n .ButtonCircular {\n border-radius: 99rem;\n cursor: pointer;\n height: 34px;\n opacity: 0.5;\n padding: 5px 4px 4px 4px;\n width: 34px;\n }\n\n .ButtonCircular:hover {\n background: rgba(0,0,0,0.1);\n opacity: 1;\n }\n\n .ButtonCircular:active {\n background: rgba(0,0,0,0.25);\n opacity: 1;\n }\n ";
1664
1668
  });
1665
1669
 
1666
1670
  var ButtonPrimaryStyle = (function (style) {
1667
- return "\n\n .ButtonPrimary {\n align-items: center;\n align-self: center;\n background: ".concat(style.colors.primary, ";\n border-radius: 9999rem;\n border: 1px solid transparent;\n box-shadow: 0 0 16px rgba(0,0,0,0.1);\n font-size: 1.3rem;\n font-weight: 400;\n height: 2.8rem;\n line-height: 2.8rem;\n justify-content: center;\n min-width: 12rem;\n overflow: hidden;\n padding: 0 1.4rem;\n position: relative;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: background 0.1s;\n vertical-align: middle;\n display: inline-block;\n }\n\n .ButtonPrimary, .ButtonPrimary * {\n color: ").concat(style.colors.buttonText, ";\n }\n\n .ButtonPrimary.round {\n padding: 0;\n width: 3.4rem;\n min-width: 3.4rem;\n }\n\n .ButtonPrimary.wide {\n border-radius: 0.8rem;\n width: 100%;\n display: block;\n }\n\n .ButtonPrimary.disabled {\n background: rgb(210,210,210);\n color: rgb(140,140,140);\n }\n\n .ButtonPrimary:not(.disabled){\n cursor: pointer;\n }\n .ButtonPrimary:not(.disabled):hover {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.1);\n }\n .ButtonPrimary:not(.disabled):active {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.2);\n }\n ");
1671
+ return "\n\n .ButtonPrimary {\n align-items: center;\n align-self: center;\n background: ".concat(style.colors.primary, ";\n border-radius: 0.8rem;\n border: 1px solid transparent;\n box-shadow: 0 0 16px rgba(0,0,0,0.1);\n font-size: 1.3rem;\n font-weight: 400;\n line-height: 2.8rem;\n height: 3.6rem;\n justify-content: center;\n width: 100%;\n overflow: hidden;\n padding: 0.4rem 0;\n position: relative;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n transition: background 0.1s;\n vertical-align: middle;\n display: inline-block;\n }\n\n .ButtonPrimary, .ButtonPrimary * {\n color: ").concat(style.colors.buttonText, ";\n }\n\n .ButtonPrimary.disabled {\n background: rgb(210,210,210);\n color: rgb(140,140,140);\n }\n\n .ButtonPrimary:not(.disabled){\n cursor: pointer;\n }\n .ButtonPrimary:not(.disabled):hover {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.1);\n }\n .ButtonPrimary:not(.disabled):active {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.2);\n }\n ");
1668
1672
  });
1669
1673
 
1670
1674
  var CardStyle = (function (style) {
1671
- 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 a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.6rem 0.6rem;\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-shrink: 0;\n flex-grow: 0;\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 .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.1rem;\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 ");
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 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 .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 .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.1rem;\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 ");
1672
1676
  });
1673
1677
 
1674
1678
  var DialogStyle = (function (style) {
1675
- return "\n\n .ReactDialogBackground {\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n max-height: 40vh !important;\n }\n\n .FooterLink {\n bottom: 0;\n left: 0;\n position: absolute;\n padding-bottom: 1rem;\n right: 0;\n width: 100%;\n }\n\n .DialogFooter {\n padding-bottom: 50px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n max-height: 66vh !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.HeightAuto {\n height: auto;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n display: flex;\n flex-direction: row;\n position: relative;\n }\n\n .DialogHeaderTitle {\n flex-basis: auto;\n flex-grow: 1;\n }\n \n .DialogHeaderAction {\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
1679
+ return "\n\n .ReactDialogBackground {\n backdrop-filter: blur(5px);\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n max-height: 40vh !important;\n }\n\n .DialogFooter {\n padding-bottom: 50px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n max-height: 66vh !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.HeightAuto {\n height: auto;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n display: flex;\n flex-direction: row;\n position: relative;\n }\n\n .DialogHeaderTitle {\n flex-basis: auto;\n flex-grow: 1;\n }\n \n .DialogHeaderAction {\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
1676
1680
  });
1677
1681
 
1678
1682
  var FontStyle = (function (style) {
1679
- return "\n\n .Dialog, * {\n font-family: ".concat(style.fontFamily, ";\n }\n\n .FontSizeS {\n font-size: 1rem;\n }\n\n .FontSizeM {\n font-size: 1.2rem;\n }\n\n .FontSizeL {\n font-size: 1.4rem;\n }\n\n .FontSizeXL {\n font-size: 2.0rem;\n }\n\n .FontWeightBold {\n font-weight: bold;\n }\n\n .FontItalic {\n font-style: italic;\n }\n ");
1680
- });
1681
-
1682
- var FooterStyle = (function (style) {
1683
- return "\n\n .FooterLink {\n color: rgba(0,0,0,0.2);\n display: inline-block;\n font-size: 0.9rem;\n text-decoration: none;\n }\n\n .FooterLink:hover, .FooterLink:active {\n color: ".concat(style.colors.primary, ";\n }\n ");
1683
+ return "\n\n *, div, div * {\n font-family: ".concat(style.fontFamily, ";\n }\n\n .FontSizeS {\n font-size: 1rem;\n }\n\n .FontSizeM {\n font-size: 1.2rem;\n }\n\n .FontSizeL {\n font-size: 1.4rem;\n }\n\n .FontSizeXL {\n font-size: 2.0rem;\n }\n\n .FontWeightBold {\n font-weight: bold;\n }\n\n .FontItalic {\n font-style: italic;\n }\n ");
1684
1684
  });
1685
1685
 
1686
1686
  var GraphicStyle = (function () {
@@ -1692,7 +1692,7 @@ var HeightStyle = (function () {
1692
1692
  });
1693
1693
 
1694
1694
  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: 1.4rem;\n position: relative;\n top: -1px;\n vertical-align: middle;\n width: 1.4rem;\n }\n\n .ButtonPrimary .Icon {\n fill : ").concat(style.colors.buttonText, ";\n stroke : ").concat(style.colors.buttonText, ";\n }\n \n ");
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
1696
  });
1697
1697
 
1698
1698
  var ImageStyle = (function (style) {
@@ -1711,10 +1711,18 @@ var LoadingTextStyle = (function (style) {
1711
1711
  return "\n\n .LoadingText {\n color: ".concat(style.colors.buttonText, ";\n display: inline-block;\n text-decoration: none;\n }\n\n @keyframes blink {\n 0% { opacity: .2; }\n 20% { opacity: 1; }\n 100% { opacity: .2; }\n }\n \n .LoadingText .dot {\n animation-name: blink;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-fill-mode: both;\n }\n \n .LoadingText .dot:nth-child(2) {\n animation-delay: .2s;\n }\n \n .LoadingText .dot:nth-child(3) {\n animation-delay: .4s;\n }\n ");
1712
1712
  });
1713
1713
 
1714
+ var OpacityStyle = (function (style) {
1715
+ return "\n\n .Opacity05 {\n opacity: 0.5;\n }\n ";
1716
+ });
1717
+
1714
1718
  var PaddingStyle = (function () {
1715
1719
  return "\n\n .PaddingTopXS {\n padding-top: 0.2rem;\n }\n\n .PaddingRightXS {\n padding-right: 0.2rem;\n }\n\n .PaddingBottomXS {\n padding-bottom: 0.2rem;\n }\n\n .PaddingLeftXS {\n padding-left: 0.2rem; \n }\n\n .PaddingTopS {\n padding-top: 0.8rem;\n }\n\n .PaddingRightS {\n padding-right: 0.8rem;\n }\n\n .PaddingBottomS {\n padding-bottom: 0.8rem;\n }\n\n .PaddingLeftS {\n padding-left: 0.8rem; \n }\n\n .PaddingTopM {\n padding-top: 1.2rem;\n }\n\n .PaddingRightM {\n padding-right: 1.2rem;\n }\n\n .PaddingBottomM {\n padding-bottom: 1.2rem;\n }\n\n .PaddingLeftM {\n padding-left: 1.2rem; \n }\n\n .PaddingTopL {\n padding-top: 1.8rem;\n }\n\n .PaddingRightL {\n padding-right: 1.8rem;\n }\n\n .PaddingBottomL {\n padding-bottom: 1.8rem;\n }\n\n .PaddingLeftL {\n padding-left: 1.28em; \n }\n ";
1716
1720
  });
1717
1721
 
1722
+ var PoweredByStyle = (function (style) {
1723
+ return "\n\n .PoweredByWrapper {\n display: block;\n left: 0;\n padding-top: 0.2rem;\n position: fixed;\n right: 0;\n text-align: center;\n top: 0;\n }\n\n .PoweredByLink {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !important;\n color: white;\n opacity: 0.4;\n display: inline-block;\n font-size: 0.78rem;\n font-style: italic;\n font-weight: bold;\n letter-spacing: -0.2px;\n margin-left: 0.5rem;\n text-decoration: none;\n }\n\n .PoweredByLink:hover, .PoweredByLink:active {\n opacity: 1.0;\n color: ".concat(style.colors.primary, ";\n }\n ");
1724
+ });
1725
+
1718
1726
  var RangeSliderStyle = (function (style) {
1719
1727
  return "\n\n .rangeslider {\n margin: 20px 0;\n position: relative;\n background: #e6e6e6;\n -ms-touch-action: none;\n touch-action: none;\n }\n\n .rangeslider,\n .rangeslider__fill {\n display: block;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.4);\n }\n\n .rangeslider__handle {\n outline: none;\n cursor: pointer;\n display: inline-block;\n position: absolute;\n border-radius: 50%;\n background-color: " + style.colors.primary + ";\n border: 1px solid white;\n box-shadow: 0 0 8px rgba(0,0,0,0.1);\n }\n\n .rangeslider__handle:hover {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.2);\n }\n\n .rangeslider__handle:active {\n box-shadow: inset 0 0 300px rgba(0,0,0,0.3);\n }\n\n .rangeslider__active {\n opacity: 1;\n }\n\n .rangeslider__handle-tooltip {\n display: none;\n }\n\n .rangeslider-horizontal {\n height: 12px;\n border-radius: 10px;\n }\n\n .rangeslider-horizontal .rangeslider__fill {\n height: 100%;\n background-color: " + style.colors.primary + ";\n border-radius: 10px;\n top: 0;\n }\n .rangeslider-horizontal .rangeslider__handle {\n width: 18px;\n height: 18px;\n border-radius: 30px;\n top: 50%;\n transform: translate3d(-50%, -50%, 0);\n }\n\n\n .rangeslider-horizontal .rangeslider__handle-tooltip {\n top: -55px;\n }\n\n ";
1720
1728
  });
@@ -1724,15 +1732,15 @@ var ResetStyle = (function () {
1724
1732
  });
1725
1733
 
1726
1734
  var SkeletonStyle = (function () {
1727
- return "\n \n .Skeleton {\n background: rgb(230,230,230) !important;\n box-shadow: none !important;\n cursor: inherit !important;\n line-height: 0;\n overflow: hidden;\n position: relative;\n }\n\n @keyframes SkeletonBackgroundAnimation {\n from {\n left: -500px;\n }\n to {\n left: +120%;\n }\n }\n\n .SkeletonBackground {\n animation: 2s SkeletonBackgroundAnimation 0.2s ease infinite;\n background: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.1) 50%, transparent 100%);\n height: 100%;\n left: -140%;\n position: absolute;\n top: 0;\n width: 400px;\n }\n\n .SkeletonWrapper {\n line-height: 0;\n }\n ";
1735
+ return "\n \n .Skeleton {\n background: rgb(230,230,230) !important;\n border: 0px solid transparent !important;\n box-shadow: none !important;\n cursor: inherit !important;\n line-height: 0;\n overflow: hidden;\n position: relative;\n }\n\n @keyframes SkeletonBackgroundAnimation {\n from {\n left: -500px;\n }\n to {\n left: +120%;\n }\n }\n\n .SkeletonBackground {\n animation: 2s SkeletonBackgroundAnimation 0.2s ease infinite;\n background: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.1) 50%, transparent 100%);\n height: 100%;\n left: -140%;\n position: absolute;\n top: 0;\n width: 400px;\n }\n\n .SkeletonWrapper {\n line-height: 0;\n }\n ";
1728
1736
  });
1729
1737
 
1730
1738
  var TextButtonStyle = (function (style) {
1731
- return "\n\n .TextButton {\n cursor: pointer;\n font-size: 16px;\n color: ".concat(style.colors.primary, "\n }\n\n .TextButton.TextGrey {\n color: grey;\n }\n \n .TextButton.TextGrey:hover {\n color: ").concat(style.colors.primary, "\n }\n ");
1739
+ return "\n\n .TextButton {\n cursor: pointer;\n font-size: 16px;\n color: ".concat(style.colors.primary, "\n }\n\n .TextButton:hover * {\n opacity: 1.0;\n }\n ");
1732
1740
  });
1733
1741
 
1734
1742
  var TextStyle = (function (style) {
1735
- return "\n\n * {\n color: ".concat(style.colors.text, ";\n }\n\n .TextLeft, .TextLeft * {\n text-align: left;\n }\n\n .TextCenter, .TextCenter * {\n text-align: center;\n }\n\n .TextGrey {\n color: grey;\n }\n\n .LineHeightL {\n line-height: 2.0rem;\n }\n\n .ErrorSnippetText {\n background: rgb(30, 30, 20);\n border-radius: 1.2rem;\n border: 0.5rem solid rgb(30, 30, 20);\n color: #00FF41;\n font-size: 0.9rem;\n font-style: italic;\n max-height: 100px;\n padding: 6px;\n overflow-wrap: break-word;\n overflow-y: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n ");
1743
+ return "\n\n * {\n color: ".concat(style.colors.text, ";\n }\n\n h1, h2, h3, h4, h5, h6 {\n display: block;\n }\n\n .TextLeft, .TextLeft * {\n text-align: left;\n }\n\n .TextCenter, .TextCenter * {\n text-align: center;\n }\n\n .LineHeightL {\n line-height: 2.0rem;\n }\n\n .ErrorSnippetText {\n background: rgb(30, 30, 20);\n border-radius: 1.2rem;\n border: 0.5rem solid rgb(30, 30, 20);\n color: #00FF41;\n font-size: 0.9rem;\n font-style: italic;\n max-height: 100px;\n padding: 6px;\n overflow-wrap: break-word;\n overflow-y: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n ");
1736
1744
  });
1737
1745
 
1738
1746
  var TokenAmountStyle = (function () {
@@ -1749,7 +1757,7 @@ var styleRenderer = (function (style) {
1749
1757
  },
1750
1758
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
1751
1759
  }, style);
1752
- return [ResetStyle(), FontStyle(style), DialogStyle(), ButtonCircularStyle(), ButtonPrimaryStyle(style), CardStyle(style), FooterStyle(style), GraphicStyle(), SkeletonStyle(), TokenAmountStyle(), TextStyle(style), IconStyle(style), PaddingStyle(), HeightStyle(), LabelStyle(style), LoadingTextStyle(style), RangeSliderStyle(style), InputStyle(), TextButtonStyle(style), ImageStyle()].join('');
1760
+ return [ResetStyle(), FontStyle(style), DialogStyle(), ButtonCircularStyle(), ButtonPrimaryStyle(style), CardStyle(style), PoweredByStyle(style), GraphicStyle(), SkeletonStyle(), TokenAmountStyle(), TextStyle(style), IconStyle(style), OpacityStyle(), PaddingStyle(), HeightStyle(), LabelStyle(style), LoadingTextStyle(style), RangeSliderStyle(style), InputStyle(), TextButtonStyle(style), ImageStyle(), BlockchainLogoStyle()].join('');
1753
1761
  });
1754
1762
 
1755
1763
  var mount = (function (_ref, content) {
@@ -1785,6 +1793,31 @@ var mount = (function (_ref, content) {
1785
1793
  return unmount;
1786
1794
  });
1787
1795
 
1796
+ var PoweredBy = (function () {
1797
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
1798
+ className: "PoweredByWrapper"
1799
+ }, /*#__PURE__*/React__default$1["default"].createElement("a", {
1800
+ href: 'https://depay.fi?utm_source=' + window.location.hostname + '&utm_medium=widget&utm_campaign=WidgetV2',
1801
+ rel: "noopener noreferrer",
1802
+ target: "_blank",
1803
+ className: "PoweredByLink"
1804
+ }, "by DePay"));
1805
+ });
1806
+
1807
+ var UpdatableProvider = (function (props) {
1808
+ var _useState = React.useState(true),
1809
+ _useState2 = _slicedToArray(_useState, 2),
1810
+ updatable = _useState2[0],
1811
+ setUpdatable = _useState2[1];
1812
+
1813
+ return /*#__PURE__*/React__default$1["default"].createElement(UpdatableContext.Provider, {
1814
+ value: {
1815
+ updatable: updatable,
1816
+ setUpdatable: setUpdatable
1817
+ }
1818
+ }, props.children);
1819
+ });
1820
+
1788
1821
  var Connect = function Connect(options) {
1789
1822
  var style, error, document;
1790
1823
 
@@ -1840,7 +1873,7 @@ var Connect = function Connect(options) {
1840
1873
  error: error,
1841
1874
  container: container,
1842
1875
  unmount: unmount
1843
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
1876
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
1844
1877
  unmount: rejectBeforeUnmount
1845
1878
  }, /*#__PURE__*/React__default$1["default"].createElement(ConnectStack, {
1846
1879
  document: document,
@@ -1848,7 +1881,7 @@ var Connect = function Connect(options) {
1848
1881
  resolve: resolve,
1849
1882
  reject: reject,
1850
1883
  autoClose: true
1851
- })));
1884
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))));
1852
1885
  };
1853
1886
  });
1854
1887
 
@@ -2028,12 +2061,18 @@ var ChangableAmountProvider = (function (props) {
2028
2061
  });
2029
2062
  })).then(function (amounts) {
2030
2063
  setAcceptWithAmount(props.accept.map(function (configuration, index) {
2064
+ if (amounts[index] == undefined) {
2065
+ return;
2066
+ }
2067
+
2031
2068
  return {
2032
2069
  blockchain: configuration.blockchain,
2033
- amount: round(amounts[index]) || 1,
2070
+ amount: round(amounts[index]),
2034
2071
  token: configuration.token,
2035
2072
  receiver: configuration.receiver || account
2036
2073
  };
2074
+ }).filter(function (configuration) {
2075
+ return !!configuration;
2037
2076
  }));
2038
2077
  })["catch"](setError);
2039
2078
  })["catch"](setError);
@@ -2155,7 +2194,9 @@ var NoPaymentMethodFoundDialog = (function () {
2155
2194
  }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
2156
2195
  className: "FontSizeM"
2157
2196
  }, "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."))),
2158
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("button", {
2197
+ footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2198
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2199
+ }, /*#__PURE__*/React__default$1["default"].createElement("button", {
2159
2200
  className: "ButtonPrimary",
2160
2201
  onClick: close
2161
2202
  }, "Ok"))
@@ -2166,7 +2207,7 @@ var PaymentContext = /*#__PURE__*/React__default$1["default"].createContext();
2166
2207
 
2167
2208
  var PaymentRoutingContext = /*#__PURE__*/React__default$1["default"].createContext();
2168
2209
 
2169
- var UpdateContext = /*#__PURE__*/React__default$1["default"].createContext();
2210
+ var TrackingContext = /*#__PURE__*/React__default$1["default"].createContext();
2170
2211
 
2171
2212
  var PaymentProvider = (function (props) {
2172
2213
  var _useContext = React.useContext(ErrorContext),
@@ -2175,7 +2216,6 @@ var PaymentProvider = (function (props) {
2175
2216
  var _useContext2 = React.useContext(ConfigurationContext),
2176
2217
  _sent = _useContext2.sent,
2177
2218
  _confirmed = _useContext2.confirmed,
2178
- _ensured = _useContext2.ensured,
2179
2219
  _failed = _useContext2.failed;
2180
2220
 
2181
2221
  var _useContext3 = React.useContext(PaymentRoutingContext),
@@ -2189,13 +2229,17 @@ var PaymentProvider = (function (props) {
2189
2229
  var _useContext5 = React.useContext(PaymentRoutingContext),
2190
2230
  allRoutes = _useContext5.allRoutes;
2191
2231
 
2192
- var _useContext6 = React.useContext(UpdateContext);
2193
- _useContext6.update;
2194
- var setUpdate = _useContext6.setUpdate;
2232
+ var _useContext6 = React.useContext(UpdatableContext),
2233
+ setUpdatable = _useContext6.setUpdatable;
2195
2234
 
2196
2235
  var _useContext7 = React.useContext(WalletContext),
2197
2236
  wallet = _useContext7.wallet;
2198
2237
 
2238
+ var _useContext8 = React.useContext(TrackingContext),
2239
+ forward = _useContext8.forward,
2240
+ tracking = _useContext8.tracking,
2241
+ initializeTracking = _useContext8.initializeTracking;
2242
+
2199
2243
  var _useState = React.useState(),
2200
2244
  _useState2 = _slicedToArray(_useState, 2),
2201
2245
  payment = _useState2[0],
@@ -2216,53 +2260,81 @@ var PaymentProvider = (function (props) {
2216
2260
  paymentState = _useState8[0],
2217
2261
  setPaymentState = _useState8[1];
2218
2262
 
2219
- var pay = function pay(_ref) {
2220
- var navigate = _ref.navigate;
2221
- setClosable(false);
2222
- setPaymentState('paying');
2223
- setUpdate(false);
2224
- wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
2225
- sent: function sent(transaction) {
2226
- if (_sent) {
2227
- _sent(transaction);
2228
- }
2229
- },
2230
- confirmed: function confirmed(transaction) {
2231
- setClosable(true);
2232
- setPaymentState('confirmed');
2263
+ var pay = /*#__PURE__*/function () {
2264
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
2265
+ var navigate, currentBlock;
2266
+ return regenerator.wrap(function _callee$(_context) {
2267
+ while (1) {
2268
+ switch (_context.prev = _context.next) {
2269
+ case 0:
2270
+ navigate = _ref.navigate;
2271
+ setClosable(false);
2272
+ setPaymentState('paying');
2273
+ setUpdatable(false);
2274
+ _context.next = 6;
2275
+ return web3Client.request({
2276
+ blockchain: payment.route.transaction.blockchain,
2277
+ method: 'latestBlockNumber'
2278
+ });
2233
2279
 
2234
- if (_confirmed) {
2235
- _confirmed(transaction);
2236
- }
2237
- },
2238
- ensured: function ensured(transaction) {
2239
- if (_ensured) {
2240
- _ensured(transaction);
2241
- }
2242
- },
2243
- failed: function failed(transaction, error) {
2244
- if (_failed) {
2245
- _failed(transaction, error);
2246
- }
2280
+ case 6:
2281
+ currentBlock = _context.sent;
2282
+ wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
2283
+ sent: function sent(transaction) {
2284
+ if (_sent) {
2285
+ _sent(transaction);
2286
+ }
2287
+ },
2288
+ confirmed: function confirmed(transaction) {
2289
+ if (tracking != true) {
2290
+ setClosable(true);
2291
+ }
2247
2292
 
2248
- setPaymentState('initialized');
2249
- setClosable(true);
2250
- setUpdate(true);
2251
- navigate('PaymentError');
2252
- }
2253
- })).then(function (sentTransaction) {
2254
- setTransaction(sentTransaction);
2255
- })["catch"](function (error) {
2256
- console.log('error', error);
2257
- setPaymentState('initialized');
2258
- setClosable(true);
2259
- setUpdate(true);
2293
+ setPaymentState('confirmed');
2260
2294
 
2261
- if ((error === null || error === void 0 ? void 0 : error.code) == 'WRONG_NETWORK') {
2262
- navigate('WrongNetwork');
2263
- }
2264
- });
2265
- };
2295
+ if (_confirmed) {
2296
+ _confirmed(transaction);
2297
+ }
2298
+ },
2299
+ failed: function failed(transaction, error) {
2300
+ if (_failed) {
2301
+ _failed(transaction, error);
2302
+ }
2303
+
2304
+ setPaymentState('initialized');
2305
+ setClosable(true);
2306
+ setUpdatable(true);
2307
+ navigate('PaymentError');
2308
+ }
2309
+ })).then(function (sentTransaction) {
2310
+ if (tracking) {
2311
+ initializeTracking(sentTransaction, currentBlock);
2312
+ }
2313
+
2314
+ setTransaction(sentTransaction);
2315
+ })["catch"](function (error) {
2316
+ console.log('error', error);
2317
+ setPaymentState('initialized');
2318
+ setClosable(true);
2319
+ setUpdatable(true);
2320
+
2321
+ if ((error === null || error === void 0 ? void 0 : error.code) == 'WRONG_NETWORK') {
2322
+ navigate('WrongNetwork');
2323
+ }
2324
+ });
2325
+
2326
+ case 8:
2327
+ case "end":
2328
+ return _context.stop();
2329
+ }
2330
+ }
2331
+ }, _callee);
2332
+ }));
2333
+
2334
+ return function pay(_x) {
2335
+ return _ref2.apply(this, arguments);
2336
+ };
2337
+ }();
2266
2338
 
2267
2339
  var approve = function approve() {
2268
2340
  setClosable(false);
@@ -2283,15 +2355,20 @@ var PaymentProvider = (function (props) {
2283
2355
  });
2284
2356
  };
2285
2357
 
2358
+ React.useEffect(function () {
2359
+ if (forward) {
2360
+ setPaymentState('confirmed');
2361
+ }
2362
+ }, [forward]);
2286
2363
  React.useEffect(function () {
2287
2364
  if (selectedRoute) {
2288
2365
  var fromToken = selectedRoute.fromToken;
2289
2366
  selectedRoute.transaction.params;
2290
- Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref2) {
2291
- var _ref3 = _slicedToArray(_ref2, 3),
2292
- name = _ref3[0],
2293
- symbol = _ref3[1],
2294
- amount = _ref3[2];
2367
+ Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref3) {
2368
+ var _ref4 = _slicedToArray(_ref3, 3),
2369
+ name = _ref4[0],
2370
+ symbol = _ref4[1],
2371
+ amount = _ref4[2];
2295
2372
 
2296
2373
  setPayment({
2297
2374
  route: selectedRoute,
@@ -2307,9 +2384,9 @@ var PaymentProvider = (function (props) {
2307
2384
  }, [selectedRoute]);
2308
2385
  React.useEffect(function () {
2309
2386
  if (allRoutes && allRoutes.length == 0) {
2310
- setUpdate(false);
2387
+ setUpdatable(false);
2311
2388
  } else if (allRoutes && allRoutes.length > 0) {
2312
- setUpdate(true);
2389
+ setUpdatable(true);
2313
2390
  }
2314
2391
  }, [allRoutes]);
2315
2392
 
@@ -2353,9 +2430,9 @@ function _defineProperty(obj, key, value) {
2353
2430
  return obj;
2354
2431
  }
2355
2432
 
2356
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2433
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2357
2434
 
2358
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2435
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2359
2436
  var PaymentRoutingProvider = (function (props) {
2360
2437
  var _useState = React.useState(),
2361
2438
  _useState2 = _slicedToArray(_useState, 2),
@@ -2375,8 +2452,8 @@ var PaymentRoutingProvider = (function (props) {
2375
2452
  var _useContext = React.useContext(WalletContext),
2376
2453
  account = _useContext.account;
2377
2454
 
2378
- var _useContext2 = React.useContext(UpdateContext),
2379
- update = _useContext2.update;
2455
+ var _useContext2 = React.useContext(UpdatableContext),
2456
+ updatable = _useContext2.updatable;
2380
2457
 
2381
2458
  var prepareAcceptedPayments = function prepareAcceptedPayments(accept) {
2382
2459
  var toAddress = _typeof(accept.receiver) == 'object' ? accept.receiver.address : accept.receiver;
@@ -2391,9 +2468,9 @@ var PaymentRoutingProvider = (function (props) {
2391
2468
  var getPaymentRoutes = function getPaymentRoutes(_ref) {
2392
2469
  var allRoutes = _ref.allRoutes,
2393
2470
  selectedRoute = _ref.selectedRoute,
2394
- update = _ref.update;
2471
+ updatable = _ref.updatable;
2395
2472
 
2396
- if (update == false || !props.accept || !account) {
2473
+ if (updatable == false || !props.accept || !account) {
2397
2474
  return;
2398
2475
  }
2399
2476
 
@@ -2496,13 +2573,13 @@ var PaymentRoutingProvider = (function (props) {
2496
2573
  getPaymentRoutes({
2497
2574
  allRoutes: allRoutes,
2498
2575
  selectedRoute: selectedRoute,
2499
- update: update
2576
+ updatable: updatable
2500
2577
  });
2501
2578
  }, 15000);
2502
2579
  return function () {
2503
2580
  return clearTimeout(timeout);
2504
2581
  };
2505
- }, [reloadCount, allRoutes, selectedRoute, update]);
2582
+ }, [reloadCount, allRoutes, selectedRoute, updatable]);
2506
2583
  React.useEffect(function () {
2507
2584
  if (account && props.accept) {
2508
2585
  setAllRoutes(undefined);
@@ -2532,8 +2609,8 @@ var PaymentValueProvider = (function (props) {
2532
2609
  var _useContext2 = React.useContext(WalletContext),
2533
2610
  account = _useContext2.account;
2534
2611
 
2535
- var _useContext3 = React.useContext(UpdateContext),
2536
- update = _useContext3.update;
2612
+ var _useContext3 = React.useContext(UpdatableContext),
2613
+ updatable = _useContext3.updatable;
2537
2614
 
2538
2615
  var _useContext4 = React.useContext(PaymentContext),
2539
2616
  payment = _useContext4.payment;
@@ -2552,10 +2629,10 @@ var PaymentValueProvider = (function (props) {
2552
2629
  setReloadCount = _useState4[1];
2553
2630
 
2554
2631
  var getToTokenLocalValue = function getToTokenLocalValue(_ref) {
2555
- var update = _ref.update,
2632
+ var updatable = _ref.updatable,
2556
2633
  payment = _ref.payment;
2557
2634
 
2558
- if (update == false || (payment === null || payment === void 0 ? void 0 : payment.route) == undefined) {
2635
+ if (updatable == false || (payment === null || payment === void 0 ? void 0 : payment.route) == undefined) {
2559
2636
  return;
2560
2637
  }
2561
2638
 
@@ -2598,7 +2675,7 @@ var PaymentValueProvider = (function (props) {
2598
2675
  React.useEffect(function () {
2599
2676
  if (account && payment) {
2600
2677
  getToTokenLocalValue({
2601
- update: update,
2678
+ updatable: updatable,
2602
2679
  payment: payment
2603
2680
  });
2604
2681
  }
@@ -2607,13 +2684,13 @@ var PaymentValueProvider = (function (props) {
2607
2684
  var timeout = setTimeout(function () {
2608
2685
  setReloadCount(reloadCount + 1);
2609
2686
  getToTokenLocalValue({
2610
- update: update
2687
+ updatable: updatable
2611
2688
  });
2612
2689
  }, 15000);
2613
2690
  return function () {
2614
2691
  return clearTimeout(timeout);
2615
2692
  };
2616
- }, [reloadCount, update]);
2693
+ }, [reloadCount, updatable]);
2617
2694
  return /*#__PURE__*/React__default$1["default"].createElement(PaymentValueContext.Provider, {
2618
2695
  value: {
2619
2696
  paymentValue: paymentValue
@@ -2768,7 +2845,9 @@ var ChangeAmountDialog = (function (props) {
2768
2845
  changeAmount(toValidValue(maxAmount));
2769
2846
  }
2770
2847
  }, "(Max)")))))),
2771
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("button", {
2848
+ footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2849
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2850
+ }, /*#__PURE__*/React__default$1["default"].createElement("button", {
2772
2851
  className: "ButtonPrimary",
2773
2852
  onClick: changeAmountAndGoBack
2774
2853
  }, "Done"))
@@ -2855,6 +2934,7 @@ var ChangePaymentDialog = (function (props) {
2855
2934
  }, [allRoutes]);
2856
2935
  React.useEffect(function () {
2857
2936
  setCards(allPaymentRoutesWithData.map(function (payment, index) {
2937
+ var blockchain = web3Blockchains.Blockchain.findByName(payment.route.blockchain);
2858
2938
  return /*#__PURE__*/React__default$1["default"].createElement("div", {
2859
2939
  key: index,
2860
2940
  className: "Card",
@@ -2868,6 +2948,11 @@ var ChangePaymentDialog = (function (props) {
2868
2948
  }, /*#__PURE__*/React__default$1["default"].createElement(reactTokenImage.TokenImage, {
2869
2949
  blockchain: payment.route.blockchain,
2870
2950
  address: payment.route.fromToken.address
2951
+ }), /*#__PURE__*/React__default$1["default"].createElement("img", {
2952
+ className: "BlockchainLogo small",
2953
+ src: blockchain.logo,
2954
+ alt: blockchain.label,
2955
+ title: blockchain.label
2871
2956
  })), /*#__PURE__*/React__default$1["default"].createElement("div", {
2872
2957
  className: "CardBody"
2873
2958
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -2882,11 +2967,7 @@ var ChangePaymentDialog = (function (props) {
2882
2967
  className: "TokenAmountCell"
2883
2968
  }, format(payment.amount)))), /*#__PURE__*/React__default$1["default"].createElement("h3", {
2884
2969
  className: "CardText"
2885
- }, /*#__PURE__*/React__default$1["default"].createElement("small", null, format(round(parseFloat(payment.route.fromBalance.toString()) / Math.pow(10, payment.decimals), 'down')))))), /*#__PURE__*/React__default$1["default"].createElement("div", {
2886
- className: "CardInfo"
2887
- }, payment.route.approvalRequired && /*#__PURE__*/React__default$1["default"].createElement("span", {
2888
- className: "Label"
2889
- }, "Requires Approval")));
2970
+ }, /*#__PURE__*/React__default$1["default"].createElement("small", null, format(round(parseFloat(payment.route.fromBalance.toString()) / Math.pow(10, payment.decimals), 'down')))))));
2890
2971
  }));
2891
2972
  }, [allPaymentRoutesWithData]);
2892
2973
 
@@ -2912,25 +2993,12 @@ var ChangePaymentDialog = (function (props) {
2912
2993
  });
2913
2994
  });
2914
2995
 
2915
- var Checkmark = (function () {
2916
- return /*#__PURE__*/React__default$1["default"].createElement("svg", {
2917
- className: "Checkmark Icon",
2918
- version: "1.1",
2919
- xmlns: "http://www.w3.org/2000/svg",
2920
- x: "0px",
2921
- y: "0px",
2922
- viewBox: "0 0 24 24"
2923
- }, /*#__PURE__*/React__default$1["default"].createElement("path", {
2924
- d: "M20,4.9L9.2,16l-5.4-3.9c-0.7-0.5-1.6-0.3-2.1,0.3c-0.5,0.7-0.3,1.6,0.3,2.1l6.4,4.7c0.3,0.2,0.6,0.3,0.9,0.3 c0.4,0,0.8-0.2,1.1-0.5l11.7-12c0.6-0.6,0.6-1.6,0-2.2C21.6,4.3,20.6,4.3,20,4.9z"
2925
- }));
2926
- });
2927
-
2928
2996
  var DonationOverviewSkeleton = (function (props) {
2929
2997
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
2930
2998
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
2931
- className: "PaddingTopS PaddingLeftM PaddingRightM"
2999
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
2932
3000
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
2933
- className: "LineHeightL FontSizeL TextLeft"
3001
+ className: "LineHeightL FontSizeL"
2934
3002
  }, "Donation")),
2935
3003
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
2936
3004
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -2944,7 +3012,7 @@ var DonationOverviewSkeleton = (function (props) {
2944
3012
  className: "SkeletonBackground"
2945
3013
  }))),
2946
3014
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2947
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3015
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2948
3016
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2949
3017
  className: "SkeletonWrapper"
2950
3018
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -2955,6 +3023,60 @@ var DonationOverviewSkeleton = (function (props) {
2955
3023
  });
2956
3024
  });
2957
3025
 
3026
+ var Checkmark = (function (props) {
3027
+ return /*#__PURE__*/React__default$1["default"].createElement("svg", {
3028
+ className: "Checkmark Icon " + props.className,
3029
+ version: "1.1",
3030
+ xmlns: "http://www.w3.org/2000/svg",
3031
+ x: "0px",
3032
+ y: "0px",
3033
+ viewBox: "0 0 24 24"
3034
+ }, /*#__PURE__*/React__default$1["default"].createElement("path", {
3035
+ d: "M20,4.9L9.2,16l-5.4-3.9c-0.7-0.5-1.6-0.3-2.1,0.3c-0.5,0.7-0.3,1.6,0.3,2.1l6.4,4.7c0.3,0.2,0.6,0.3,0.9,0.3 c0.4,0,0.8-0.2,1.1-0.5l11.7-12c0.6-0.6,0.6-1.6,0-2.2C21.6,4.3,20.6,4.3,20,4.9z"
3036
+ }));
3037
+ });
3038
+
3039
+ var DigitalWalletIcon = (function (props) {
3040
+ return /*#__PURE__*/React__default$1["default"].createElement("svg", {
3041
+ className: "DigitalWalletIcon Icon " + props.className,
3042
+ version: "1.1",
3043
+ xmlns: "http://www.w3.org/2000/svg",
3044
+ height: "24",
3045
+ width: "24",
3046
+ viewBox: "0 0 24 24"
3047
+ }, /*#__PURE__*/React__default$1["default"].createElement("path", {
3048
+ d: "M8.51,4.84l-.39-.53,4-2.89a2.2,2.2,0,0,1,3.06.48l.4.56-.53.39-.4-.56A1.54,1.54,0,0,0,12.5,2Z",
3049
+ transform: "translate(-0.81 -1)"
3050
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3051
+ d: "M9.77,4.89l-.21-.62,6.31-2.13h0a2.18,2.18,0,0,1,.67-.1h0a2.21,2.21,0,0,1,2.08,1.49l.32.95-.63.21L18,3.73a1.53,1.53,0,0,0-1.45-1h0a1.61,1.61,0,0,0-.48.08h0Z",
3052
+ transform: "translate(-0.81 -1)"
3053
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3054
+ d: "M19.72,16.2H18.27a3.28,3.28,0,1,1,0-6.56h1.45a3.21,3.21,0,0,1,1.33.28h0a3.28,3.28,0,0,1,0,6A3.21,3.21,0,0,1,19.72,16.2Zm-1.45-5.9a2.63,2.63,0,0,0,0,5.25h1.45a2.56,2.56,0,0,0,1.06-.23,2.62,2.62,0,0,0,0-4.8,2.55,2.55,0,0,0-1.06-.22ZM19,14.53a1.61,1.61,0,1,1,1.61-1.61A1.62,1.62,0,0,1,19,14.53ZM19,12a1,1,0,1,0,.95.95A1,1,0,0,0,19,12Z",
3055
+ transform: "translate(-0.81 -1)"
3056
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3057
+ d: "M10.49,19.69a1.58,1.58,0,1,1,1.58-1.57A1.57,1.57,0,0,1,10.49,19.69Zm0-2.49a.92.92,0,1,0,.92.92A.92.92,0,0,0,10.49,17.2Z",
3058
+ transform: "translate(-0.81 -1)"
3059
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3060
+ d: "M19.09,22.14H2.79a2,2,0,0,1-2-2V6.25a2.1,2.1,0,0,1,0-.43,2,2,0,0,1,.48-.92,2,2,0,0,1,1.48-.65H19.09a2,2,0,0,1,.64.1,2,2,0,0,1,1.36,1.79v0a.28.28,0,0,1,0,.09v3.91h-.66v-4a1.49,1.49,0,0,0-.23-.69A1.35,1.35,0,0,0,19.52,5a1.26,1.26,0,0,0-.43-.08H2.82a1.34,1.34,0,0,0-1,.44A1.49,1.49,0,0,0,1.5,6a1.5,1.5,0,0,0,0,.29V20.13a1.36,1.36,0,0,0,1.34,1.35H19.09a1.35,1.35,0,0,0,1.35-1.35V15.68h.66v4.45A2,2,0,0,1,19.09,22.14Z",
3061
+ transform: "translate(-0.81 -1)"
3062
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3063
+ d: "M9.27,9.31a1.58,1.58,0,1,1,0-3.15,1.58,1.58,0,0,1,0,3.15Zm0-2.5a.92.92,0,1,0,.92.92A.92.92,0,0,0,9.27,6.81Z",
3064
+ transform: "translate(-0.81 -1)"
3065
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3066
+ d: "M7.11,14.67A1.58,1.58,0,1,1,8.69,13.1,1.57,1.57,0,0,1,7.11,14.67Zm0-2.49A.92.92,0,1,0,8,13.1.92.92,0,0,0,7.11,12.18Z",
3067
+ transform: "translate(-0.81 -1)"
3068
+ }), /*#__PURE__*/React__default$1["default"].createElement("rect", {
3069
+ x: "0.33",
3070
+ y: "11.77",
3071
+ width: "4.72",
3072
+ height: "0.66"
3073
+ }), /*#__PURE__*/React__default$1["default"].createElement("polygon", {
3074
+ points: "2.08 9.53 0.33 9.53 0.33 8.87 1.8 8.87 4.28 6.39 7.21 6.39 7.21 7.05 4.55 7.05 2.08 9.53"
3075
+ }), /*#__PURE__*/React__default$1["default"].createElement("polygon", {
3076
+ points: "8.43 17.45 4.53 17.45 2.63 15.55 0.33 15.55 0.33 14.89 2.9 14.89 4.8 16.79 8.43 16.79 8.43 17.45"
3077
+ }));
3078
+ });
3079
+
2958
3080
  var LoadingText = (function (props) {
2959
3081
  return /*#__PURE__*/React__default$1["default"].createElement("div", {
2960
3082
  className: "LoadingText"
@@ -2967,26 +3089,143 @@ var LoadingText = (function (props) {
2967
3089
  }, "."));
2968
3090
  });
2969
3091
 
2970
- var DonationOverviewDialog = (function (props) {
3092
+ var Footer = (function () {
2971
3093
  var _useContext = React.useContext(ConfigurationContext),
2972
3094
  currencyCode = _useContext.currencyCode;
2973
3095
 
2974
3096
  var _useContext2 = React.useContext(ChangableAmountContext),
2975
3097
  amount = _useContext2.amount;
3098
+ _useContext2.amountsMissing;
2976
3099
 
2977
- var _useContext3 = React.useContext(PaymentContext),
2978
- payment = _useContext3.payment,
2979
- paymentState = _useContext3.paymentState,
2980
- pay = _useContext3.pay,
2981
- transaction = _useContext3.transaction,
2982
- approve = _useContext3.approve,
2983
- approvalTransaction = _useContext3.approvalTransaction;
3100
+ var _useContext3 = React.useContext(TrackingContext),
3101
+ tracking = _useContext3.tracking,
3102
+ forward = _useContext3.forward,
3103
+ forwardTo = _useContext3.forwardTo;
2984
3104
 
2985
- var _useContext4 = React.useContext(reactDialogStack.NavigateStackContext),
2986
- navigate = _useContext4.navigate;
3105
+ var _useContext4 = React.useContext(PaymentContext),
3106
+ payment = _useContext4.payment,
3107
+ paymentState = _useContext4.paymentState,
3108
+ pay = _useContext4.pay,
3109
+ transaction = _useContext4.transaction,
3110
+ approve = _useContext4.approve,
3111
+ approvalTransaction = _useContext4.approvalTransaction;
3112
+
3113
+ var _useContext5 = React.useContext(PaymentValueContext),
3114
+ paymentValue = _useContext5.paymentValue;
3115
+
3116
+ var _useContext6 = React.useContext(reactDialogStack.NavigateStackContext),
3117
+ navigate = _useContext6.navigate;
3118
+
3119
+ var _useContext7 = React.useContext(ClosableContext),
3120
+ close = _useContext7.close;
3121
+
3122
+ var trackingInfo = function trackingInfo() {
3123
+ if (tracking != true) {
3124
+ return null;
3125
+ }
3126
+
3127
+ if (forward) {
3128
+ return /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3129
+ className: "Card transparent small disabled"
3130
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3131
+ className: "CardImage"
3132
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3133
+ className: "TextCenter Opacity05"
3134
+ }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, {
3135
+ className: "small"
3136
+ }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3137
+ className: "CardBody"
3138
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3139
+ className: "CardBodyWrapper"
3140
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3141
+ className: "Opacity05"
3142
+ }, "Payment confirmation has been stored")))));
3143
+ } else {
3144
+ return /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3145
+ className: "Card transparent small disabled"
3146
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3147
+ className: "CardImage"
3148
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3149
+ className: "TextCenter"
3150
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3151
+ className: "Loading Icon"
3152
+ }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3153
+ className: "CardBody"
3154
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3155
+ className: "CardBodyWrapper"
3156
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3157
+ className: "Opacity05"
3158
+ }, "Storing payment confirmation")))));
3159
+ }
3160
+ };
2987
3161
 
2988
- var _useContext5 = React.useContext(ClosableContext),
2989
- close = _useContext5.close;
3162
+ var additionalPaymentInformation = function additionalPaymentInformation() {
3163
+ if (paymentState == 'paying' && transaction == undefined) {
3164
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
3165
+ className: "PaddingBottomS"
3166
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3167
+ className: "Card transparent disabled small"
3168
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3169
+ className: "CardImage"
3170
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3171
+ className: "TextCenter Opacity05"
3172
+ }, /*#__PURE__*/React__default$1["default"].createElement(DigitalWalletIcon, {
3173
+ className: "small"
3174
+ }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3175
+ className: "CardBody"
3176
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3177
+ className: "CardBodyWrapper"
3178
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3179
+ className: "Opacity05"
3180
+ }, "Confirm transaction in your wallet")))));
3181
+ } else if (paymentState == 'confirmed') {
3182
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
3183
+ className: "PaddingBottomS"
3184
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3185
+ className: "Card transparent small",
3186
+ title: "Payment has been confirmed by the network",
3187
+ href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3188
+ target: "_blank",
3189
+ rel: "noopener noreferrer"
3190
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3191
+ className: "CardImage"
3192
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3193
+ className: "TextCenter Opacity05"
3194
+ }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, {
3195
+ className: "small"
3196
+ }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3197
+ className: "CardBody"
3198
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3199
+ className: "CardBodyWrapper"
3200
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3201
+ className: "Opacity05"
3202
+ }, "Payment has been confirmed"))))), trackingInfo());
3203
+ }
3204
+ };
3205
+
3206
+ var approvalButton = function approvalButton() {
3207
+ if (!payment.route.approvalRequired || payment.route.directTransfer) {
3208
+ return null;
3209
+ } else if (paymentState == 'initialized') {
3210
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
3211
+ className: "PaddingBottomS"
3212
+ }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3213
+ className: "ButtonPrimary",
3214
+ onClick: approve,
3215
+ title: "Allow ".concat(payment.symbol, " to be used as payment")
3216
+ }, "Allow ", payment.symbol, " to be used as payment"));
3217
+ } else if (paymentState == 'approving') {
3218
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
3219
+ className: "PaddingBottomS"
3220
+ }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3221
+ className: "ButtonPrimary",
3222
+ title: "Approving payment token - please wait",
3223
+ href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3224
+ target: "_blank",
3225
+ rel: "noopener noreferrer"
3226
+ }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3227
+ }
3228
+ };
2990
3229
 
2991
3230
  var mainAction = function mainAction() {
2992
3231
  if (paymentState == 'initialized' || paymentState == 'approving') {
@@ -3001,10 +3240,10 @@ var DonationOverviewDialog = (function (props) {
3001
3240
  navigate: navigate
3002
3241
  });
3003
3242
  }
3004
- }, "Pay ", new localCurrency.Currency({
3243
+ }, "Pay ", amount ? new localCurrency.Currency({
3005
3244
  amount: amount.toFixed(2),
3006
3245
  code: currencyCode
3007
- }).toString());
3246
+ }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
3008
3247
  } else if (paymentState == 'paying') {
3009
3248
  return /*#__PURE__*/React__default$1["default"].createElement("a", {
3010
3249
  className: "ButtonPrimary",
@@ -3014,39 +3253,51 @@ var DonationOverviewDialog = (function (props) {
3014
3253
  rel: "noopener noreferrer"
3015
3254
  }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3016
3255
  } else if (paymentState == 'confirmed') {
3017
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3018
- className: "ButtonPrimary round",
3019
- title: "Done",
3020
- onClick: close
3021
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, null));
3256
+ if (tracking == true) {
3257
+ if (forward) {
3258
+ if (forwardTo) {
3259
+ return /*#__PURE__*/React__default$1["default"].createElement("a", {
3260
+ className: "ButtonPrimary",
3261
+ href: forwardTo,
3262
+ rel: "noopener noreferrer"
3263
+ }, "Continue");
3264
+ } else {
3265
+ return /*#__PURE__*/React__default$1["default"].createElement("button", {
3266
+ className: "ButtonPrimary",
3267
+ onClick: close
3268
+ }, "Continue");
3269
+ }
3270
+ } else {
3271
+ return /*#__PURE__*/React__default$1["default"].createElement("button", {
3272
+ className: "ButtonPrimary disabled",
3273
+ onClick: function onClick() {}
3274
+ }, "Continue");
3275
+ }
3276
+ } else {
3277
+ return /*#__PURE__*/React__default$1["default"].createElement("button", {
3278
+ className: "ButtonPrimary",
3279
+ onClick: close
3280
+ }, "Close");
3281
+ }
3022
3282
  }
3023
3283
  };
3024
3284
 
3025
- var approvalAction = function approvalAction() {
3026
- if (paymentState == 'initialized') {
3027
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3028
- className: "PaddingBottomS"
3029
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3030
- className: "ButtonPrimary wide",
3031
- onClick: approve,
3032
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3033
- }, "Allow ", payment.symbol, " to be used as payment"));
3034
- } else if (paymentState == 'approving') {
3035
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3036
- className: "PaddingBottomS"
3037
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3038
- className: "ButtonPrimary wide",
3039
- title: "Approving payment token - please wait",
3040
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3041
- target: "_blank",
3042
- rel: "noopener noreferrer"
3043
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3044
- }
3045
- };
3285
+ return /*#__PURE__*/React__default$1["default"].createElement("div", null, approvalButton(), additionalPaymentInformation(), mainAction());
3286
+ });
3046
3287
 
3047
- var actions = function actions() {
3048
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
3049
- };
3288
+ var DonationOverviewDialog = (function (props) {
3289
+ var _useContext = React.useContext(ConfigurationContext),
3290
+ currencyCode = _useContext.currencyCode;
3291
+
3292
+ var _useContext2 = React.useContext(ChangableAmountContext),
3293
+ amount = _useContext2.amount;
3294
+
3295
+ var _useContext3 = React.useContext(PaymentContext),
3296
+ payment = _useContext3.payment,
3297
+ paymentState = _useContext3.paymentState;
3298
+
3299
+ var _useContext4 = React.useContext(reactDialogStack.NavigateStackContext),
3300
+ navigate = _useContext4.navigate;
3050
3301
 
3051
3302
  if (payment == undefined) {
3052
3303
  return /*#__PURE__*/React__default$1["default"].createElement(DonationOverviewSkeleton, null);
@@ -3054,9 +3305,9 @@ var DonationOverviewDialog = (function (props) {
3054
3305
 
3055
3306
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3056
3307
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3057
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3308
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3058
3309
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3059
- className: "LineHeightL FontSizeL TextLeft"
3310
+ className: "LineHeightL FontSizeL"
3060
3311
  }, "Donation")),
3061
3312
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3062
3313
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3119,8 +3370,8 @@ var DonationOverviewDialog = (function (props) {
3119
3370
  className: "CardAction"
3120
3371
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
3121
3372
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3122
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3123
- }, actions())
3373
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3374
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
3124
3375
  });
3125
3376
  });
3126
3377
 
@@ -3157,9 +3408,9 @@ var PaymentErrorDialog = (function () {
3157
3408
  rel: "noopener noreferrer"
3158
3409
  }, "View on explorer")))),
3159
3410
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3160
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3411
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3161
3412
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3162
- className: "ButtonPrimary wide",
3413
+ className: "ButtonPrimary",
3163
3414
  onClick: function onClick() {
3164
3415
  return navigate('back');
3165
3416
  }
@@ -3180,9 +3431,9 @@ var WrongNetworkDialog = (function (props) {
3180
3431
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3181
3432
  stacked: true,
3182
3433
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3183
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3434
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3184
3435
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3185
- className: "LineHeightL FontSizeL TextLeft"
3436
+ className: "LineHeightL FontSizeL"
3186
3437
  }, "Wrong Network")),
3187
3438
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3188
3439
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3199,7 +3450,7 @@ var WrongNetworkDialog = (function (props) {
3199
3450
  className: "FontSizeM"
3200
3451
  }, "Please make sure you connect your wallet to the correct network before you try again!"))),
3201
3452
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3202
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3453
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3203
3454
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3204
3455
  className: "ButtonPrimary",
3205
3456
  onClick: function onClick() {
@@ -3230,16 +3481,122 @@ var DonationStack = (function (props) {
3230
3481
  });
3231
3482
  });
3232
3483
 
3233
- var UpdateProvider = (function (props) {
3234
- var _useState = React.useState(true),
3484
+ var TrackingProvider = (function (props) {
3485
+ var _useContext = React.useContext(ConfigurationContext),
3486
+ track = _useContext.track;
3487
+
3488
+ var _useState = React.useState(track && !!track.endpoint),
3235
3489
  _useState2 = _slicedToArray(_useState, 2),
3236
- update = _useState2[0],
3237
- setUpdate = _useState2[1];
3490
+ tracking = _useState2[0],
3491
+ setTracking = _useState2[1];
3238
3492
 
3239
- return /*#__PURE__*/React__default$1["default"].createElement(UpdateContext.Provider, {
3493
+ var _useState3 = React.useState(false),
3494
+ _useState4 = _slicedToArray(_useState3, 2),
3495
+ forward = _useState4[0],
3496
+ setForward = _useState4[1];
3497
+
3498
+ var _useState5 = React.useState(),
3499
+ _useState6 = _slicedToArray(_useState5, 2),
3500
+ forwardTo = _useState6[0],
3501
+ setForwardTo = _useState6[1];
3502
+
3503
+ var _useContext2 = React.useContext(ClosableContext),
3504
+ setClosable = _useContext2.setClosable;
3505
+
3506
+ React.useEffect(function () {
3507
+ setTracking(track && !!track.endpoint);
3508
+ }, [track]);
3509
+
3510
+ var openSocket = function openSocket(transaction) {
3511
+ var socket = new WebSocket('wss://integrate.depay.fi/cable');
3512
+
3513
+ socket.onopen = function (event) {
3514
+ var msg = {
3515
+ command: 'subscribe',
3516
+ identifier: JSON.stringify({
3517
+ blockchain: transaction.blockchain,
3518
+ sender: transaction.from.toLowerCase(),
3519
+ nonce: transaction.nonce,
3520
+ channel: 'PaymentChannel'
3521
+ })
3522
+ };
3523
+ socket.send(JSON.stringify(msg));
3524
+ };
3525
+
3526
+ socket.onclose = function (event) {};
3527
+
3528
+ socket.onmessage = function (event) {
3529
+ var item = JSON.parse(event.data);
3530
+
3531
+ if (item.type === "ping") {
3532
+ return;
3533
+ }
3534
+
3535
+ if (item.message && item.message.forward) {
3536
+ setClosable(!item.message.forward_to);
3537
+ setForwardTo(item.message.forward_to);
3538
+ setForward(item.message.forward);
3539
+ socket.close();
3540
+
3541
+ if (!!item.message.forward_to) {
3542
+ setTimeout(function () {
3543
+ props.document.location.href = item.message.forward_to;
3544
+ }, 500);
3545
+ }
3546
+ }
3547
+ };
3548
+
3549
+ socket.onerror = function (error) {
3550
+ console.log('WebSocket Error: ' + error);
3551
+ };
3552
+ };
3553
+
3554
+ var retryStartTracking = function retryStartTracking(transaction, afterBlock, attempt) {
3555
+ attempt = parseInt(attempt || 1, 10);
3556
+ console.log('RETRY TRACKING ATTEMPT ', attempt);
3557
+
3558
+ if (attempt < 3) {
3559
+ setTimeout(function () {
3560
+ startTracking(transaction, afterBlock, attempt + 1);
3561
+ }, 3000);
3562
+ } else {
3563
+ console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
3564
+ }
3565
+ };
3566
+
3567
+ var startTracking = function startTracking(transaction, afterBlock, attempt) {
3568
+ fetch(track.endpoint, {
3569
+ method: 'POST',
3570
+ body: JSON.stringify({
3571
+ blockchain: transaction.blockchain,
3572
+ transaction: transaction.id.toLowerCase(),
3573
+ sender: transaction.from.toLowerCase(),
3574
+ nonce: transaction.nonce,
3575
+ after_block: afterBlock
3576
+ })
3577
+ }).then(function (response) {
3578
+ if (response.status == 200) {
3579
+ console.log('TRACKING INITIALIZED');
3580
+ } else {
3581
+ retryStartTracking(transaction, afterBlock, attempt);
3582
+ }
3583
+ })["catch"](function (error) {
3584
+ console.log('TRACKING FAILED', error);
3585
+ retryStartTracking(transaction, afterBlock, attempt);
3586
+ });
3587
+ };
3588
+
3589
+ var initializeTracking = function initializeTracking(transaction, afterBlock) {
3590
+ openSocket(transaction);
3591
+ startTracking(transaction, afterBlock);
3592
+ };
3593
+
3594
+ return /*#__PURE__*/React__default$1["default"].createElement(TrackingContext.Provider, {
3240
3595
  value: {
3241
- update: update,
3242
- setUpdate: setUpdate
3596
+ tracking: tracking,
3597
+ initializeTracking: initializeTracking,
3598
+ forward: forward,
3599
+ forwardTo: forwardTo
3243
3600
  }
3244
3601
  }, props.children);
3245
3602
  });
@@ -3342,12 +3699,12 @@ var preflight$2 = /*#__PURE__*/function () {
3342
3699
 
3343
3700
  var Donation = /*#__PURE__*/function () {
3344
3701
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
3345
- var amount, accept, event, sent, confirmed, ensured, failed, error, critical, style, blacklist, providers, currency, connected, closed, document, unmount;
3702
+ var amount, accept, event, sent, confirmed, failed, error, critical, style, blacklist, providers, currency, connected, closed, document, unmount;
3346
3703
  return regenerator.wrap(function _callee2$(_context2) {
3347
3704
  while (1) {
3348
3705
  switch (_context2.prev = _context2.next) {
3349
3706
  case 0:
3350
- amount = _ref3.amount, accept = _ref3.accept, event = _ref3.event, sent = _ref3.sent, confirmed = _ref3.confirmed, ensured = _ref3.ensured, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, document = _ref3.document;
3707
+ amount = _ref3.amount, accept = _ref3.accept, event = _ref3.event, sent = _ref3.sent, confirmed = _ref3.confirmed, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, document = _ref3.document;
3351
3708
  _context2.prev = 1;
3352
3709
  _context2.next = 4;
3353
3710
  return preflight$2({
@@ -3373,26 +3730,27 @@ var Donation = /*#__PURE__*/function () {
3373
3730
  event: event,
3374
3731
  sent: sent,
3375
3732
  confirmed: confirmed,
3376
- ensured: ensured,
3377
3733
  failed: failed,
3378
3734
  blacklist: blacklist,
3379
3735
  providers: providers
3380
3736
  }
3381
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3737
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3382
3738
  unmount: unmount
3383
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3739
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3384
3740
  container: container,
3385
3741
  connected: connected,
3386
3742
  unmount: unmount
3387
3743
  }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
3388
3744
  accept: accept
3745
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
3746
+ document: ensureDocument(document)
3389
3747
  }, /*#__PURE__*/React__default$1["default"].createElement(DonationRoutingProvider, {
3390
3748
  container: container,
3391
3749
  document: document
3392
3750
  }, /*#__PURE__*/React__default$1["default"].createElement(DonationStack, {
3393
3751
  document: document,
3394
3752
  container: container
3395
- })))))))));
3753
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))));
3396
3754
  };
3397
3755
  });
3398
3756
  return _context2.abrupt("return", {
@@ -3460,9 +3818,9 @@ var PaymentOverviewSkeleton = (function (props) {
3460
3818
 
3461
3819
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3462
3820
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3463
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3821
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3464
3822
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3465
- className: "LineHeightL FontSizeL TextLeft"
3823
+ className: "LineHeightL FontSizeL"
3466
3824
  }, "Payment")),
3467
3825
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3468
3826
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3476,7 +3834,7 @@ var PaymentOverviewSkeleton = (function (props) {
3476
3834
  className: "SkeletonBackground"
3477
3835
  }))),
3478
3836
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3479
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3837
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3480
3838
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3481
3839
  className: "SkeletonWrapper"
3482
3840
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -3491,17 +3849,13 @@ var PaymentOverviewDialog = (function (props) {
3491
3849
  var _useContext = React.useContext(ConfigurationContext),
3492
3850
  currencyCode = _useContext.currencyCode;
3493
3851
 
3494
- var _useContext2 = React.useContext(ChangableAmountContext),
3495
- amount = _useContext2.amount,
3496
- amountsMissing = _useContext2.amountsMissing;
3852
+ var _useContext2 = React.useContext(PaymentContext),
3853
+ payment = _useContext2.payment,
3854
+ paymentState = _useContext2.paymentState;
3497
3855
 
3498
- var _useContext3 = React.useContext(PaymentContext),
3499
- payment = _useContext3.payment,
3500
- paymentState = _useContext3.paymentState,
3501
- pay = _useContext3.pay,
3502
- transaction = _useContext3.transaction,
3503
- approve = _useContext3.approve,
3504
- approvalTransaction = _useContext3.approvalTransaction;
3856
+ var _useContext3 = React.useContext(ChangableAmountContext),
3857
+ amount = _useContext3.amount,
3858
+ amountsMissing = _useContext3.amountsMissing;
3505
3859
 
3506
3860
  var _useContext4 = React.useContext(PaymentValueContext),
3507
3861
  paymentValue = _useContext4.paymentValue;
@@ -3509,78 +3863,15 @@ var PaymentOverviewDialog = (function (props) {
3509
3863
  var _useContext5 = React.useContext(reactDialogStack.NavigateStackContext),
3510
3864
  navigate = _useContext5.navigate;
3511
3865
 
3512
- var _useContext6 = React.useContext(ClosableContext),
3513
- close = _useContext6.close;
3514
-
3515
- var mainAction = function mainAction() {
3516
- if (paymentState == 'initialized' || paymentState == 'approving') {
3517
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3518
- className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
3519
- onClick: function onClick() {
3520
- if (payment.route.approvalRequired && !payment.route.directTransfer) {
3521
- return;
3522
- }
3523
-
3524
- pay({
3525
- navigate: navigate
3526
- });
3527
- }
3528
- }, "Pay ", amount ? new localCurrency.Currency({
3529
- amount: amount.toFixed(2),
3530
- code: currencyCode
3531
- }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
3532
- } else if (paymentState == 'paying') {
3533
- return /*#__PURE__*/React__default$1["default"].createElement("a", {
3534
- className: "ButtonPrimary",
3535
- title: "Performing the payment - please wait",
3536
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3537
- target: "_blank",
3538
- rel: "noopener noreferrer"
3539
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3540
- } else if (paymentState == 'confirmed') {
3541
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3542
- className: "ButtonPrimary round",
3543
- title: "Done",
3544
- onClick: close
3545
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, null));
3546
- }
3547
- };
3548
-
3549
- var approvalAction = function approvalAction() {
3550
- if (paymentState == 'initialized') {
3551
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3552
- className: "PaddingBottomS"
3553
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3554
- className: "ButtonPrimary wide",
3555
- onClick: approve,
3556
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3557
- }, "Allow ", payment.symbol, " to be used as payment"));
3558
- } else if (paymentState == 'approving') {
3559
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3560
- className: "PaddingBottomS"
3561
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3562
- className: "ButtonPrimary wide",
3563
- title: "Approving payment token - please wait",
3564
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3565
- target: "_blank",
3566
- rel: "noopener noreferrer"
3567
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3568
- }
3569
- };
3570
-
3571
- var actions = function actions() {
3572
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
3573
- };
3574
-
3575
3866
  if (payment == undefined || paymentValue == undefined) {
3576
3867
  return /*#__PURE__*/React__default$1["default"].createElement(PaymentOverviewSkeleton, null);
3577
3868
  }
3578
3869
 
3579
3870
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3580
3871
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3581
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3872
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3582
3873
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3583
- className: "LineHeightL FontSizeL TextLeft"
3874
+ className: "LineHeightL FontSizeL"
3584
3875
  }, "Payment")),
3585
3876
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3586
3877
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3643,8 +3934,8 @@ var PaymentOverviewDialog = (function (props) {
3643
3934
  className: "CardAction"
3644
3935
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
3645
3936
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3646
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3647
- }, actions())
3937
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3938
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
3648
3939
  });
3649
3940
  });
3650
3941
 
@@ -3710,12 +4001,12 @@ var preflight$1 = /*#__PURE__*/function () {
3710
4001
 
3711
4002
  var Payment = /*#__PURE__*/function () {
3712
4003
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
3713
- var accept, amount, event, sent, confirmed, ensured, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, document, unmount;
4004
+ var accept, amount, event, sent, confirmed, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, document, unmount;
3714
4005
  return regenerator.wrap(function _callee2$(_context2) {
3715
4006
  while (1) {
3716
4007
  switch (_context2.prev = _context2.next) {
3717
4008
  case 0:
3718
- accept = _ref3.accept, amount = _ref3.amount, event = _ref3.event, sent = _ref3.sent, confirmed = _ref3.confirmed, ensured = _ref3.ensured, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, whitelist = _ref3.whitelist, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, document = _ref3.document;
4009
+ accept = _ref3.accept, amount = _ref3.amount, event = _ref3.event, sent = _ref3.sent, confirmed = _ref3.confirmed, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, whitelist = _ref3.whitelist, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, track = _ref3.track, document = _ref3.document;
3719
4010
  _context2.prev = 1;
3720
4011
  _context2.next = 4;
3721
4012
  return preflight$1({
@@ -3741,15 +4032,15 @@ var Payment = /*#__PURE__*/function () {
3741
4032
  event: event,
3742
4033
  sent: sent,
3743
4034
  confirmed: confirmed,
3744
- ensured: ensured,
3745
4035
  failed: failed,
3746
4036
  whitelist: whitelist,
3747
4037
  blacklist: blacklist,
3748
- providers: providers
4038
+ providers: providers,
4039
+ track: track
3749
4040
  }
3750
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4041
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3751
4042
  unmount: unmount
3752
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4043
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3753
4044
  document: document,
3754
4045
  container: container,
3755
4046
  connected: connected,
@@ -3761,13 +4052,15 @@ var Payment = /*#__PURE__*/function () {
3761
4052
  whitelist: whitelist,
3762
4053
  blacklist: blacklist,
3763
4054
  event: event
4055
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
4056
+ document: ensureDocument(document)
3764
4057
  }, /*#__PURE__*/React__default$1["default"].createElement(PaymentProvider, {
3765
4058
  container: container,
3766
4059
  document: document
3767
4060
  }, /*#__PURE__*/React__default$1["default"].createElement(PaymentValueProvider, null, /*#__PURE__*/React__default$1["default"].createElement(PaymentStack, {
3768
4061
  document: document,
3769
4062
  container: container
3770
- })))))))))));
4063
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))))));
3771
4064
  };
3772
4065
  });
3773
4066
  return _context2.abrupt("return", {
@@ -3877,9 +4170,9 @@ var SaleRoutingProvider = (function (props) {
3877
4170
  var SaleOverviewSkeleton = (function (props) {
3878
4171
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3879
4172
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3880
- className: "PaddingTopS PaddingLeftM PaddingRightM"
4173
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3881
4174
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3882
- className: "LineHeightL FontSizeL TextLeft"
4175
+ className: "LineHeightL FontSizeL"
3883
4176
  }, "Purchase")),
3884
4177
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3885
4178
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3896,7 +4189,7 @@ var SaleOverviewSkeleton = (function (props) {
3896
4189
  className: "SkeletonBackground"
3897
4190
  }))),
3898
4191
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3899
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
4192
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3900
4193
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3901
4194
  className: "SkeletonWrapper"
3902
4195
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -3908,11 +4201,10 @@ var SaleOverviewSkeleton = (function (props) {
3908
4201
  });
3909
4202
 
3910
4203
  var SaleOverviewDialog = (function (props) {
3911
- var _useContext = React.useContext(ChangableAmountContext),
3912
- amount = _useContext.amount;
4204
+ var _useContext = React.useContext(ChangableAmountContext);
4205
+ _useContext.amount;
3913
4206
 
3914
4207
  var _useContext2 = React.useContext(ConfigurationContext),
3915
- currencyCode = _useContext2.currencyCode,
3916
4208
  tokenImage = _useContext2.tokenImage;
3917
4209
 
3918
4210
  var _useContext3 = React.useContext(PaymentValueContext),
@@ -3920,87 +4212,20 @@ var SaleOverviewDialog = (function (props) {
3920
4212
 
3921
4213
  var _useContext4 = React.useContext(PaymentContext),
3922
4214
  payment = _useContext4.payment,
3923
- paymentState = _useContext4.paymentState,
3924
- pay = _useContext4.pay,
3925
- transaction = _useContext4.transaction,
3926
- approve = _useContext4.approve,
3927
- approvalTransaction = _useContext4.approvalTransaction;
4215
+ paymentState = _useContext4.paymentState;
3928
4216
 
3929
4217
  var _useContext5 = React.useContext(reactDialogStack.NavigateStackContext),
3930
4218
  navigate = _useContext5.navigate;
3931
4219
 
3932
- var _useContext6 = React.useContext(ClosableContext),
3933
- close = _useContext6.close;
3934
-
3935
- var _useContext7 = React.useContext(ToTokenContext),
3936
- toToken = _useContext7.toToken,
3937
- toTokenReadableAmount = _useContext7.toTokenReadableAmount;
4220
+ var _useContext6 = React.useContext(ToTokenContext),
4221
+ toToken = _useContext6.toToken,
4222
+ toTokenReadableAmount = _useContext6.toTokenReadableAmount;
3938
4223
 
3939
4224
  var _useState = React.useState(),
3940
4225
  _useState2 = _slicedToArray(_useState, 2),
3941
4226
  salePerTokenValue = _useState2[0],
3942
4227
  setSalePerTokenValue = _useState2[1];
3943
4228
 
3944
- var mainAction = function mainAction() {
3945
- if (paymentState == 'initialized' || paymentState == 'approving') {
3946
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3947
- className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
3948
- onClick: function onClick() {
3949
- if (payment.route.approvalRequired && !payment.route.directTransfer) {
3950
- return;
3951
- }
3952
-
3953
- pay({
3954
- navigate: navigate
3955
- });
3956
- }
3957
- }, "Pay ", new localCurrency.Currency({
3958
- amount: amount.toFixed(2),
3959
- code: currencyCode
3960
- }).toString());
3961
- } else if (paymentState == 'paying') {
3962
- return /*#__PURE__*/React__default$1["default"].createElement("a", {
3963
- className: "ButtonPrimary",
3964
- title: "Performing the payment - please wait",
3965
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3966
- target: "_blank",
3967
- rel: "noopener noreferrer"
3968
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3969
- } else if (paymentState == 'confirmed') {
3970
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3971
- className: "ButtonPrimary round",
3972
- title: "Done",
3973
- onClick: close
3974
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, null));
3975
- }
3976
- };
3977
-
3978
- var approvalAction = function approvalAction() {
3979
- if (paymentState == 'initialized') {
3980
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3981
- className: "PaddingBottomS"
3982
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3983
- className: "ButtonPrimary wide",
3984
- onClick: approve,
3985
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3986
- }, "Allow ", payment.symbol, " to be used as payment"));
3987
- } else if (paymentState == 'approving') {
3988
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3989
- className: "PaddingBottomS"
3990
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3991
- className: "ButtonPrimary wide",
3992
- title: "Approving payment token - please wait",
3993
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3994
- target: "_blank",
3995
- rel: "noopener noreferrer"
3996
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3997
- }
3998
- };
3999
-
4000
- var actions = function actions() {
4001
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
4002
- };
4003
-
4004
4229
  React.useEffect(function () {
4005
4230
  if (paymentValue) {
4006
4231
  setSalePerTokenValue(new localCurrency.Currency({
@@ -4029,9 +4254,9 @@ var SaleOverviewDialog = (function (props) {
4029
4254
 
4030
4255
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
4031
4256
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
4032
- className: "PaddingTopS PaddingLeftM PaddingRightM"
4257
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4033
4258
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
4034
- className: "LineHeightL FontSizeL TextLeft"
4259
+ className: "LineHeightL FontSizeL"
4035
4260
  }, "Purchase")),
4036
4261
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
4037
4262
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -4100,8 +4325,8 @@ var SaleOverviewDialog = (function (props) {
4100
4325
  className: "CardAction"
4101
4326
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
4102
4327
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
4103
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
4104
- }, actions())
4328
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
4329
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
4105
4330
  });
4106
4331
  });
4107
4332
 
@@ -4174,12 +4399,12 @@ var preflight = /*#__PURE__*/function () {
4174
4399
 
4175
4400
  var Sale = /*#__PURE__*/function () {
4176
4401
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
4177
- var amount, sell, sent, confirmed, ensured, failed, error, critical, style, blacklist, providers, currency, connected, closed, tokenImage, document, accept, unmount;
4402
+ var amount, sell, sent, confirmed, failed, error, critical, style, blacklist, providers, currency, connected, closed, tokenImage, document, accept, unmount;
4178
4403
  return regenerator.wrap(function _callee2$(_context2) {
4179
4404
  while (1) {
4180
4405
  switch (_context2.prev = _context2.next) {
4181
4406
  case 0:
4182
- amount = _ref3.amount, sell = _ref3.sell, sent = _ref3.sent, confirmed = _ref3.confirmed, ensured = _ref3.ensured, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, tokenImage = _ref3.tokenImage, document = _ref3.document;
4407
+ amount = _ref3.amount, sell = _ref3.sell, sent = _ref3.sent, confirmed = _ref3.confirmed, failed = _ref3.failed, error = _ref3.error, critical = _ref3.critical, style = _ref3.style, blacklist = _ref3.blacklist, providers = _ref3.providers, currency = _ref3.currency, connected = _ref3.connected, closed = _ref3.closed, tokenImage = _ref3.tokenImage, document = _ref3.document;
4183
4408
  _context2.prev = 1;
4184
4409
  _context2.next = 4;
4185
4410
  return preflight({
@@ -4211,26 +4436,27 @@ var Sale = /*#__PURE__*/function () {
4211
4436
  currency: currency,
4212
4437
  sent: sent,
4213
4438
  confirmed: confirmed,
4214
- ensured: ensured,
4215
4439
  failed: failed,
4216
4440
  blacklist: blacklist,
4217
4441
  providers: providers
4218
4442
  }
4219
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4443
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4220
4444
  unmount: unmount
4221
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4445
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4222
4446
  container: container,
4223
4447
  connected: connected,
4224
4448
  unmount: unmount
4225
4449
  }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
4226
4450
  accept: accept
4451
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
4452
+ document: ensureDocument(document)
4227
4453
  }, /*#__PURE__*/React__default$1["default"].createElement(SaleRoutingProvider, {
4228
4454
  container: container,
4229
4455
  document: document
4230
4456
  }, /*#__PURE__*/React__default$1["default"].createElement(SaleStack, {
4231
4457
  document: document,
4232
4458
  container: container
4233
- })))))))));
4459
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))));
4234
4460
  };
4235
4461
  });
4236
4462
  return _context2.abrupt("return", {