@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/umd/index.js CHANGED
@@ -49,17 +49,11 @@
49
49
  function _typeof(obj) {
50
50
  "@babel/helpers - typeof";
51
51
 
52
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
53
- _typeof = function _typeof(obj) {
54
- return typeof obj;
55
- };
56
- } else {
57
- _typeof = function _typeof(obj) {
58
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
59
- };
60
- }
61
-
62
- return _typeof(obj);
52
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
53
+ return typeof obj;
54
+ } : function (obj) {
55
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
56
+ }, _typeof(obj);
63
57
  }
64
58
 
65
59
  function createCommonjsModule(fn) {
@@ -888,6 +882,8 @@
888
882
 
889
883
  var ClosableContext = /*#__PURE__*/React__default$1["default"].createContext();
890
884
 
885
+ var UpdatableContext = /*#__PURE__*/React__default$1["default"].createContext();
886
+
891
887
  var ClosableProvider = (function (props) {
892
888
  var _useState = React.useState(true),
893
889
  _useState2 = _slicedToArray(_useState, 2),
@@ -899,11 +895,15 @@
899
895
  open = _useState4[0],
900
896
  setOpen = _useState4[1];
901
897
 
898
+ var _useContext = React.useContext(UpdatableContext),
899
+ setUpdatable = _useContext.setUpdatable;
900
+
902
901
  var close = function close() {
903
902
  if (!closable) {
904
903
  return;
905
904
  }
906
905
 
906
+ setUpdatable(false);
907
907
  setOpen(false);
908
908
  setTimeout(props.unmount, 300);
909
909
  };
@@ -987,12 +987,7 @@
987
987
  className: "DialogBody"
988
988
  }, props.body), /*#__PURE__*/React__default$1["default"].createElement("div", {
989
989
  className: "DialogFooter"
990
- }, props.footer, /*#__PURE__*/React__default$1["default"].createElement("a", {
991
- href: 'https://depay.fi?utm_source=' + window.location.hostname + '&utm_medium=widget&utm_campaign=WidgetV2',
992
- rel: "noopener noreferrer",
993
- target: "_blank",
994
- className: "FooterLink"
995
- }, "by DePay")));
990
+ }, props.footer));
996
991
  });
997
992
 
998
993
  var ConnectingWalletDialog = (function (props) {
@@ -1042,9 +1037,9 @@
1042
1037
  className: "TextButton"
1043
1038
  }, "Connect with another wallet")))),
1044
1039
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
1045
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
1040
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
1046
1041
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1047
- className: "ButtonPrimary wide",
1042
+ className: "ButtonPrimary",
1048
1043
  onClick: function onClick() {
1049
1044
  return props.connect(wallet);
1050
1045
  }
@@ -1127,7 +1122,7 @@
1127
1122
  return connect(wallet);
1128
1123
  }
1129
1124
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1130
- className: "CardImage PaddingLeftM"
1125
+ className: "CardImage"
1131
1126
  }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1132
1127
  src: wallet.logo
1133
1128
  })), /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -1140,9 +1135,9 @@
1140
1135
  });
1141
1136
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
1142
1137
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
1143
- className: "PaddingTopS PaddingLeftM PaddingRightM"
1138
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
1144
1139
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
1145
- className: "LineHeightL FontSizeL TextLeft"
1140
+ className: "LineHeightL FontSizeL"
1146
1141
  }, "Select a wallet")),
1147
1142
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
1148
1143
  className: "PaddingTopS PaddingBottomXS PaddingLeftS PaddingRightS"
@@ -1150,11 +1145,13 @@
1150
1145
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
1151
1146
  className: "PaddingBottomS"
1152
1147
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1153
- className: "FontSizeS FontWeightBold TextGrey TextButton",
1148
+ className: "FontSizeS FontWeightBold TextButton",
1154
1149
  onClick: function onClick() {
1155
1150
  return setShowExplanation(!showExplanation);
1156
1151
  }
1157
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", null, "What is a wallet?")), showExplanation && /*#__PURE__*/React__default$1["default"].createElement("p", {
1152
+ }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
1153
+ className: "Opacity05"
1154
+ }, "What is a wallet?")), showExplanation && /*#__PURE__*/React__default$1["default"].createElement("p", {
1158
1155
  className: "PaddingLeftM PaddingRightM"
1159
1156
  }, "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."))
1160
1157
  });
@@ -1307,6 +1304,9 @@
1307
1304
  function _createClass(Constructor, protoProps, staticProps) {
1308
1305
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1309
1306
  if (staticProps) _defineProperties(Constructor, staticProps);
1307
+ Object.defineProperty(Constructor, "prototype", {
1308
+ writable: false
1309
+ });
1310
1310
  return Constructor;
1311
1311
  }
1312
1312
 
@@ -1324,12 +1324,15 @@
1324
1324
  throw new TypeError("Super expression must either be null or a function");
1325
1325
  }
1326
1326
 
1327
- subClass.prototype = Object.create(superClass && superClass.prototype, {
1328
- constructor: {
1329
- value: subClass,
1330
- writable: true,
1331
- configurable: true
1332
- }
1327
+ Object.defineProperty(subClass, "prototype", {
1328
+ value: Object.create(superClass && superClass.prototype, {
1329
+ constructor: {
1330
+ value: subClass,
1331
+ writable: true,
1332
+ configurable: true
1333
+ }
1334
+ }),
1335
+ writable: false
1333
1336
  });
1334
1337
  if (superClass) _setPrototypeOf(subClass, superClass);
1335
1338
  }
@@ -1608,7 +1611,7 @@
1608
1611
  })), /*#__PURE__*/React__default$1["default"].createElement("div", {
1609
1612
  className: "DialogBody"
1610
1613
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1611
- className: "GraphicWrapper"
1614
+ className: "GraphicWrapper PaddingTopS"
1612
1615
  }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1613
1616
  className: "Graphic",
1614
1617
  src: ErrorGraphic
@@ -1626,15 +1629,12 @@
1626
1629
  className: "FontSizeM PaddingTopS"
1627
1630
  }, "If this keeps happening, please report it.")))), /*#__PURE__*/React__default$1["default"].createElement("div", {
1628
1631
  className: "DialogFooter"
1629
- }, /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("button", {
1632
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1633
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
1634
+ }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1630
1635
  className: "ButtonPrimary",
1631
1636
  onClick: close
1632
- }, "Try again")), /*#__PURE__*/React__default$1["default"].createElement("a", {
1633
- href: 'https://depay.fi?utm_source=' + window.location.hostname + '&utm_medium=widget&utm_campaign=WidgetV2',
1634
- rel: "noopener noreferrer",
1635
- target: "_blank",
1636
- className: "FooterLink"
1637
- }, "by DePay"))));
1637
+ }, "Try again")))));
1638
1638
  } else {
1639
1639
  return /*#__PURE__*/React__default$1["default"].createElement(ErrorContext.Provider, {
1640
1640
  value: {
@@ -1646,28 +1646,28 @@
1646
1646
  }
1647
1647
  });
1648
1648
 
1649
+ var BlockchainLogoStyle = (function (style) {
1650
+ return "\n\n .BlockchainLogo {\n border-radius: 999px;\n }\n\n .BlockchainLogo.small {\n height: 18px;\n width: 18px;\n }\n ";
1651
+ });
1652
+
1649
1653
  var ButtonCircularStyle = (function () {
1650
1654
  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 ";
1651
1655
  });
1652
1656
 
1653
1657
  var ButtonPrimaryStyle = (function (style) {
1654
- 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 ");
1658
+ 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 ");
1655
1659
  });
1656
1660
 
1657
1661
  var CardStyle = (function (style) {
1658
- 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 ");
1662
+ 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 ");
1659
1663
  });
1660
1664
 
1661
1665
  var DialogStyle = (function (style) {
1662
- 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 ";
1666
+ 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 ";
1663
1667
  });
1664
1668
 
1665
1669
  var FontStyle = (function (style) {
1666
- 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 ");
1667
- });
1668
-
1669
- var FooterStyle = (function (style) {
1670
- 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 ");
1670
+ 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 ");
1671
1671
  });
1672
1672
 
1673
1673
  var GraphicStyle = (function () {
@@ -1679,7 +1679,7 @@
1679
1679
  });
1680
1680
 
1681
1681
  var IconStyle = (function (style) {
1682
- 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 ");
1682
+ 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 ");
1683
1683
  });
1684
1684
 
1685
1685
  var ImageStyle = (function (style) {
@@ -1698,10 +1698,18 @@
1698
1698
  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 ");
1699
1699
  });
1700
1700
 
1701
+ var OpacityStyle = (function (style) {
1702
+ return "\n\n .Opacity05 {\n opacity: 0.5;\n }\n ";
1703
+ });
1704
+
1701
1705
  var PaddingStyle = (function () {
1702
1706
  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 ";
1703
1707
  });
1704
1708
 
1709
+ var PoweredByStyle = (function (style) {
1710
+ 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 ");
1711
+ });
1712
+
1705
1713
  var RangeSliderStyle = (function (style) {
1706
1714
  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 ";
1707
1715
  });
@@ -1711,15 +1719,15 @@
1711
1719
  });
1712
1720
 
1713
1721
  var SkeletonStyle = (function () {
1714
- 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 ";
1722
+ 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 ";
1715
1723
  });
1716
1724
 
1717
1725
  var TextButtonStyle = (function (style) {
1718
- 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 ");
1726
+ 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 ");
1719
1727
  });
1720
1728
 
1721
1729
  var TextStyle = (function (style) {
1722
- 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 ");
1730
+ 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 ");
1723
1731
  });
1724
1732
 
1725
1733
  var TokenAmountStyle = (function () {
@@ -1736,7 +1744,7 @@
1736
1744
  },
1737
1745
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
1738
1746
  }, style);
1739
- 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('');
1747
+ 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('');
1740
1748
  });
1741
1749
 
1742
1750
  var mount = (function (_ref, content) {
@@ -1772,6 +1780,31 @@
1772
1780
  return unmount;
1773
1781
  });
1774
1782
 
1783
+ var PoweredBy = (function () {
1784
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
1785
+ className: "PoweredByWrapper"
1786
+ }, /*#__PURE__*/React__default$1["default"].createElement("a", {
1787
+ href: 'https://depay.fi?utm_source=' + window.location.hostname + '&utm_medium=widget&utm_campaign=WidgetV2',
1788
+ rel: "noopener noreferrer",
1789
+ target: "_blank",
1790
+ className: "PoweredByLink"
1791
+ }, "by DePay"));
1792
+ });
1793
+
1794
+ var UpdatableProvider = (function (props) {
1795
+ var _useState = React.useState(true),
1796
+ _useState2 = _slicedToArray(_useState, 2),
1797
+ updatable = _useState2[0],
1798
+ setUpdatable = _useState2[1];
1799
+
1800
+ return /*#__PURE__*/React__default$1["default"].createElement(UpdatableContext.Provider, {
1801
+ value: {
1802
+ updatable: updatable,
1803
+ setUpdatable: setUpdatable
1804
+ }
1805
+ }, props.children);
1806
+ });
1807
+
1775
1808
  var Connect = function Connect(options) {
1776
1809
  var style, error, document;
1777
1810
 
@@ -1827,7 +1860,7 @@
1827
1860
  error: error,
1828
1861
  container: container,
1829
1862
  unmount: unmount
1830
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
1863
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
1831
1864
  unmount: rejectBeforeUnmount
1832
1865
  }, /*#__PURE__*/React__default$1["default"].createElement(ConnectStack, {
1833
1866
  document: document,
@@ -1835,7 +1868,7 @@
1835
1868
  resolve: resolve,
1836
1869
  reject: reject,
1837
1870
  autoClose: true
1838
- })));
1871
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))));
1839
1872
  };
1840
1873
  });
1841
1874
 
@@ -2015,12 +2048,18 @@
2015
2048
  });
2016
2049
  })).then(function (amounts) {
2017
2050
  setAcceptWithAmount(props.accept.map(function (configuration, index) {
2051
+ if (amounts[index] == undefined) {
2052
+ return;
2053
+ }
2054
+
2018
2055
  return {
2019
2056
  blockchain: configuration.blockchain,
2020
- amount: round(amounts[index]) || 1,
2057
+ amount: round(amounts[index]),
2021
2058
  token: configuration.token,
2022
2059
  receiver: configuration.receiver || account
2023
2060
  };
2061
+ }).filter(function (configuration) {
2062
+ return !!configuration;
2024
2063
  }));
2025
2064
  })["catch"](setError);
2026
2065
  })["catch"](setError);
@@ -2142,7 +2181,9 @@
2142
2181
  }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
2143
2182
  className: "FontSizeM"
2144
2183
  }, "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."))),
2145
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("button", {
2184
+ footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2185
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2186
+ }, /*#__PURE__*/React__default$1["default"].createElement("button", {
2146
2187
  className: "ButtonPrimary",
2147
2188
  onClick: close
2148
2189
  }, "Ok"))
@@ -2153,7 +2194,7 @@
2153
2194
 
2154
2195
  var PaymentRoutingContext = /*#__PURE__*/React__default$1["default"].createContext();
2155
2196
 
2156
- var UpdateContext = /*#__PURE__*/React__default$1["default"].createContext();
2197
+ var TrackingContext = /*#__PURE__*/React__default$1["default"].createContext();
2157
2198
 
2158
2199
  var PaymentProvider = (function (props) {
2159
2200
  var _useContext = React.useContext(ErrorContext),
@@ -2162,7 +2203,6 @@
2162
2203
  var _useContext2 = React.useContext(ConfigurationContext),
2163
2204
  _sent = _useContext2.sent,
2164
2205
  _confirmed = _useContext2.confirmed,
2165
- _ensured = _useContext2.ensured,
2166
2206
  _failed = _useContext2.failed;
2167
2207
 
2168
2208
  var _useContext3 = React.useContext(PaymentRoutingContext),
@@ -2176,13 +2216,17 @@
2176
2216
  var _useContext5 = React.useContext(PaymentRoutingContext),
2177
2217
  allRoutes = _useContext5.allRoutes;
2178
2218
 
2179
- var _useContext6 = React.useContext(UpdateContext);
2180
- _useContext6.update;
2181
- var setUpdate = _useContext6.setUpdate;
2219
+ var _useContext6 = React.useContext(UpdatableContext),
2220
+ setUpdatable = _useContext6.setUpdatable;
2182
2221
 
2183
2222
  var _useContext7 = React.useContext(WalletContext),
2184
2223
  wallet = _useContext7.wallet;
2185
2224
 
2225
+ var _useContext8 = React.useContext(TrackingContext),
2226
+ forward = _useContext8.forward,
2227
+ tracking = _useContext8.tracking,
2228
+ initializeTracking = _useContext8.initializeTracking;
2229
+
2186
2230
  var _useState = React.useState(),
2187
2231
  _useState2 = _slicedToArray(_useState, 2),
2188
2232
  payment = _useState2[0],
@@ -2203,53 +2247,81 @@
2203
2247
  paymentState = _useState8[0],
2204
2248
  setPaymentState = _useState8[1];
2205
2249
 
2206
- var pay = function pay(_ref) {
2207
- var navigate = _ref.navigate;
2208
- setClosable(false);
2209
- setPaymentState('paying');
2210
- setUpdate(false);
2211
- wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
2212
- sent: function sent(transaction) {
2213
- if (_sent) {
2214
- _sent(transaction);
2215
- }
2216
- },
2217
- confirmed: function confirmed(transaction) {
2218
- setClosable(true);
2219
- setPaymentState('confirmed');
2250
+ var pay = /*#__PURE__*/function () {
2251
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
2252
+ var navigate, currentBlock;
2253
+ return regenerator.wrap(function _callee$(_context) {
2254
+ while (1) {
2255
+ switch (_context.prev = _context.next) {
2256
+ case 0:
2257
+ navigate = _ref.navigate;
2258
+ setClosable(false);
2259
+ setPaymentState('paying');
2260
+ setUpdatable(false);
2261
+ _context.next = 6;
2262
+ return web3Client.request({
2263
+ blockchain: payment.route.transaction.blockchain,
2264
+ method: 'latestBlockNumber'
2265
+ });
2220
2266
 
2221
- if (_confirmed) {
2222
- _confirmed(transaction);
2223
- }
2224
- },
2225
- ensured: function ensured(transaction) {
2226
- if (_ensured) {
2227
- _ensured(transaction);
2228
- }
2229
- },
2230
- failed: function failed(transaction, error) {
2231
- if (_failed) {
2232
- _failed(transaction, error);
2233
- }
2267
+ case 6:
2268
+ currentBlock = _context.sent;
2269
+ wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
2270
+ sent: function sent(transaction) {
2271
+ if (_sent) {
2272
+ _sent(transaction);
2273
+ }
2274
+ },
2275
+ confirmed: function confirmed(transaction) {
2276
+ if (tracking != true) {
2277
+ setClosable(true);
2278
+ }
2234
2279
 
2235
- setPaymentState('initialized');
2236
- setClosable(true);
2237
- setUpdate(true);
2238
- navigate('PaymentError');
2239
- }
2240
- })).then(function (sentTransaction) {
2241
- setTransaction(sentTransaction);
2242
- })["catch"](function (error) {
2243
- console.log('error', error);
2244
- setPaymentState('initialized');
2245
- setClosable(true);
2246
- setUpdate(true);
2280
+ setPaymentState('confirmed');
2247
2281
 
2248
- if ((error === null || error === void 0 ? void 0 : error.code) == 'WRONG_NETWORK') {
2249
- navigate('WrongNetwork');
2250
- }
2251
- });
2252
- };
2282
+ if (_confirmed) {
2283
+ _confirmed(transaction);
2284
+ }
2285
+ },
2286
+ failed: function failed(transaction, error) {
2287
+ if (_failed) {
2288
+ _failed(transaction, error);
2289
+ }
2290
+
2291
+ setPaymentState('initialized');
2292
+ setClosable(true);
2293
+ setUpdatable(true);
2294
+ navigate('PaymentError');
2295
+ }
2296
+ })).then(function (sentTransaction) {
2297
+ if (tracking) {
2298
+ initializeTracking(sentTransaction, currentBlock);
2299
+ }
2300
+
2301
+ setTransaction(sentTransaction);
2302
+ })["catch"](function (error) {
2303
+ console.log('error', error);
2304
+ setPaymentState('initialized');
2305
+ setClosable(true);
2306
+ setUpdatable(true);
2307
+
2308
+ if ((error === null || error === void 0 ? void 0 : error.code) == 'WRONG_NETWORK') {
2309
+ navigate('WrongNetwork');
2310
+ }
2311
+ });
2312
+
2313
+ case 8:
2314
+ case "end":
2315
+ return _context.stop();
2316
+ }
2317
+ }
2318
+ }, _callee);
2319
+ }));
2320
+
2321
+ return function pay(_x) {
2322
+ return _ref2.apply(this, arguments);
2323
+ };
2324
+ }();
2253
2325
 
2254
2326
  var approve = function approve() {
2255
2327
  setClosable(false);
@@ -2270,15 +2342,20 @@
2270
2342
  });
2271
2343
  };
2272
2344
 
2345
+ React.useEffect(function () {
2346
+ if (forward) {
2347
+ setPaymentState('confirmed');
2348
+ }
2349
+ }, [forward]);
2273
2350
  React.useEffect(function () {
2274
2351
  if (selectedRoute) {
2275
2352
  var fromToken = selectedRoute.fromToken;
2276
2353
  selectedRoute.transaction.params;
2277
- Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref2) {
2278
- var _ref3 = _slicedToArray(_ref2, 3),
2279
- name = _ref3[0],
2280
- symbol = _ref3[1],
2281
- amount = _ref3[2];
2354
+ Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref3) {
2355
+ var _ref4 = _slicedToArray(_ref3, 3),
2356
+ name = _ref4[0],
2357
+ symbol = _ref4[1],
2358
+ amount = _ref4[2];
2282
2359
 
2283
2360
  setPayment({
2284
2361
  route: selectedRoute,
@@ -2294,9 +2371,9 @@
2294
2371
  }, [selectedRoute]);
2295
2372
  React.useEffect(function () {
2296
2373
  if (allRoutes && allRoutes.length == 0) {
2297
- setUpdate(false);
2374
+ setUpdatable(false);
2298
2375
  } else if (allRoutes && allRoutes.length > 0) {
2299
- setUpdate(true);
2376
+ setUpdatable(true);
2300
2377
  }
2301
2378
  }, [allRoutes]);
2302
2379
 
@@ -2340,9 +2417,9 @@
2340
2417
  return obj;
2341
2418
  }
2342
2419
 
2343
- 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; }
2420
+ 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; }
2344
2421
 
2345
- 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; }
2422
+ 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; }
2346
2423
  var PaymentRoutingProvider = (function (props) {
2347
2424
  var _useState = React.useState(),
2348
2425
  _useState2 = _slicedToArray(_useState, 2),
@@ -2362,8 +2439,8 @@
2362
2439
  var _useContext = React.useContext(WalletContext),
2363
2440
  account = _useContext.account;
2364
2441
 
2365
- var _useContext2 = React.useContext(UpdateContext),
2366
- update = _useContext2.update;
2442
+ var _useContext2 = React.useContext(UpdatableContext),
2443
+ updatable = _useContext2.updatable;
2367
2444
 
2368
2445
  var prepareAcceptedPayments = function prepareAcceptedPayments(accept) {
2369
2446
  var toAddress = _typeof(accept.receiver) == 'object' ? accept.receiver.address : accept.receiver;
@@ -2378,9 +2455,9 @@
2378
2455
  var getPaymentRoutes = function getPaymentRoutes(_ref) {
2379
2456
  var allRoutes = _ref.allRoutes,
2380
2457
  selectedRoute = _ref.selectedRoute,
2381
- update = _ref.update;
2458
+ updatable = _ref.updatable;
2382
2459
 
2383
- if (update == false || !props.accept || !account) {
2460
+ if (updatable == false || !props.accept || !account) {
2384
2461
  return;
2385
2462
  }
2386
2463
 
@@ -2483,13 +2560,13 @@
2483
2560
  getPaymentRoutes({
2484
2561
  allRoutes: allRoutes,
2485
2562
  selectedRoute: selectedRoute,
2486
- update: update
2563
+ updatable: updatable
2487
2564
  });
2488
2565
  }, 15000);
2489
2566
  return function () {
2490
2567
  return clearTimeout(timeout);
2491
2568
  };
2492
- }, [reloadCount, allRoutes, selectedRoute, update]);
2569
+ }, [reloadCount, allRoutes, selectedRoute, updatable]);
2493
2570
  React.useEffect(function () {
2494
2571
  if (account && props.accept) {
2495
2572
  setAllRoutes(undefined);
@@ -2519,8 +2596,8 @@
2519
2596
  var _useContext2 = React.useContext(WalletContext),
2520
2597
  account = _useContext2.account;
2521
2598
 
2522
- var _useContext3 = React.useContext(UpdateContext),
2523
- update = _useContext3.update;
2599
+ var _useContext3 = React.useContext(UpdatableContext),
2600
+ updatable = _useContext3.updatable;
2524
2601
 
2525
2602
  var _useContext4 = React.useContext(PaymentContext),
2526
2603
  payment = _useContext4.payment;
@@ -2539,10 +2616,10 @@
2539
2616
  setReloadCount = _useState4[1];
2540
2617
 
2541
2618
  var getToTokenLocalValue = function getToTokenLocalValue(_ref) {
2542
- var update = _ref.update,
2619
+ var updatable = _ref.updatable,
2543
2620
  payment = _ref.payment;
2544
2621
 
2545
- if (update == false || (payment === null || payment === void 0 ? void 0 : payment.route) == undefined) {
2622
+ if (updatable == false || (payment === null || payment === void 0 ? void 0 : payment.route) == undefined) {
2546
2623
  return;
2547
2624
  }
2548
2625
 
@@ -2585,7 +2662,7 @@
2585
2662
  React.useEffect(function () {
2586
2663
  if (account && payment) {
2587
2664
  getToTokenLocalValue({
2588
- update: update,
2665
+ updatable: updatable,
2589
2666
  payment: payment
2590
2667
  });
2591
2668
  }
@@ -2594,13 +2671,13 @@
2594
2671
  var timeout = setTimeout(function () {
2595
2672
  setReloadCount(reloadCount + 1);
2596
2673
  getToTokenLocalValue({
2597
- update: update
2674
+ updatable: updatable
2598
2675
  });
2599
2676
  }, 15000);
2600
2677
  return function () {
2601
2678
  return clearTimeout(timeout);
2602
2679
  };
2603
- }, [reloadCount, update]);
2680
+ }, [reloadCount, updatable]);
2604
2681
  return /*#__PURE__*/React__default$1["default"].createElement(PaymentValueContext.Provider, {
2605
2682
  value: {
2606
2683
  paymentValue: paymentValue
@@ -2755,7 +2832,9 @@
2755
2832
  changeAmount(toValidValue(maxAmount));
2756
2833
  }
2757
2834
  }, "(Max)")))))),
2758
- footer: /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("button", {
2835
+ footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2836
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2837
+ }, /*#__PURE__*/React__default$1["default"].createElement("button", {
2759
2838
  className: "ButtonPrimary",
2760
2839
  onClick: changeAmountAndGoBack
2761
2840
  }, "Done"))
@@ -2842,6 +2921,7 @@
2842
2921
  }, [allRoutes]);
2843
2922
  React.useEffect(function () {
2844
2923
  setCards(allPaymentRoutesWithData.map(function (payment, index) {
2924
+ var blockchain = web3Blockchains.Blockchain.findByName(payment.route.blockchain);
2845
2925
  return /*#__PURE__*/React__default$1["default"].createElement("div", {
2846
2926
  key: index,
2847
2927
  className: "Card",
@@ -2855,6 +2935,11 @@
2855
2935
  }, /*#__PURE__*/React__default$1["default"].createElement(reactTokenImage.TokenImage, {
2856
2936
  blockchain: payment.route.blockchain,
2857
2937
  address: payment.route.fromToken.address
2938
+ }), /*#__PURE__*/React__default$1["default"].createElement("img", {
2939
+ className: "BlockchainLogo small",
2940
+ src: blockchain.logo,
2941
+ alt: blockchain.label,
2942
+ title: blockchain.label
2858
2943
  })), /*#__PURE__*/React__default$1["default"].createElement("div", {
2859
2944
  className: "CardBody"
2860
2945
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -2869,11 +2954,7 @@
2869
2954
  className: "TokenAmountCell"
2870
2955
  }, format(payment.amount)))), /*#__PURE__*/React__default$1["default"].createElement("h3", {
2871
2956
  className: "CardText"
2872
- }, /*#__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", {
2873
- className: "CardInfo"
2874
- }, payment.route.approvalRequired && /*#__PURE__*/React__default$1["default"].createElement("span", {
2875
- className: "Label"
2876
- }, "Requires Approval")));
2957
+ }, /*#__PURE__*/React__default$1["default"].createElement("small", null, format(round(parseFloat(payment.route.fromBalance.toString()) / Math.pow(10, payment.decimals), 'down')))))));
2877
2958
  }));
2878
2959
  }, [allPaymentRoutesWithData]);
2879
2960
 
@@ -2899,25 +2980,12 @@
2899
2980
  });
2900
2981
  });
2901
2982
 
2902
- var Checkmark = (function () {
2903
- return /*#__PURE__*/React__default$1["default"].createElement("svg", {
2904
- className: "Checkmark Icon",
2905
- version: "1.1",
2906
- xmlns: "http://www.w3.org/2000/svg",
2907
- x: "0px",
2908
- y: "0px",
2909
- viewBox: "0 0 24 24"
2910
- }, /*#__PURE__*/React__default$1["default"].createElement("path", {
2911
- 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"
2912
- }));
2913
- });
2914
-
2915
2983
  var DonationOverviewSkeleton = (function (props) {
2916
2984
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
2917
2985
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
2918
- className: "PaddingTopS PaddingLeftM PaddingRightM"
2986
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
2919
2987
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
2920
- className: "LineHeightL FontSizeL TextLeft"
2988
+ className: "LineHeightL FontSizeL"
2921
2989
  }, "Donation")),
2922
2990
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
2923
2991
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -2931,7 +2999,7 @@
2931
2999
  className: "SkeletonBackground"
2932
3000
  }))),
2933
3001
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2934
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3002
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2935
3003
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2936
3004
  className: "SkeletonWrapper"
2937
3005
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -2942,6 +3010,60 @@
2942
3010
  });
2943
3011
  });
2944
3012
 
3013
+ var Checkmark = (function (props) {
3014
+ return /*#__PURE__*/React__default$1["default"].createElement("svg", {
3015
+ className: "Checkmark Icon " + props.className,
3016
+ version: "1.1",
3017
+ xmlns: "http://www.w3.org/2000/svg",
3018
+ x: "0px",
3019
+ y: "0px",
3020
+ viewBox: "0 0 24 24"
3021
+ }, /*#__PURE__*/React__default$1["default"].createElement("path", {
3022
+ 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"
3023
+ }));
3024
+ });
3025
+
3026
+ var DigitalWalletIcon = (function (props) {
3027
+ return /*#__PURE__*/React__default$1["default"].createElement("svg", {
3028
+ className: "DigitalWalletIcon Icon " + props.className,
3029
+ version: "1.1",
3030
+ xmlns: "http://www.w3.org/2000/svg",
3031
+ height: "24",
3032
+ width: "24",
3033
+ viewBox: "0 0 24 24"
3034
+ }, /*#__PURE__*/React__default$1["default"].createElement("path", {
3035
+ 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",
3036
+ transform: "translate(-0.81 -1)"
3037
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3038
+ 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",
3039
+ transform: "translate(-0.81 -1)"
3040
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3041
+ 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",
3042
+ transform: "translate(-0.81 -1)"
3043
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3044
+ 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",
3045
+ transform: "translate(-0.81 -1)"
3046
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3047
+ 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",
3048
+ transform: "translate(-0.81 -1)"
3049
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3050
+ 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",
3051
+ transform: "translate(-0.81 -1)"
3052
+ }), /*#__PURE__*/React__default$1["default"].createElement("path", {
3053
+ 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",
3054
+ transform: "translate(-0.81 -1)"
3055
+ }), /*#__PURE__*/React__default$1["default"].createElement("rect", {
3056
+ x: "0.33",
3057
+ y: "11.77",
3058
+ width: "4.72",
3059
+ height: "0.66"
3060
+ }), /*#__PURE__*/React__default$1["default"].createElement("polygon", {
3061
+ 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"
3062
+ }), /*#__PURE__*/React__default$1["default"].createElement("polygon", {
3063
+ 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"
3064
+ }));
3065
+ });
3066
+
2945
3067
  var LoadingText = (function (props) {
2946
3068
  return /*#__PURE__*/React__default$1["default"].createElement("div", {
2947
3069
  className: "LoadingText"
@@ -2954,26 +3076,143 @@
2954
3076
  }, "."));
2955
3077
  });
2956
3078
 
2957
- var DonationOverviewDialog = (function (props) {
3079
+ var Footer = (function () {
2958
3080
  var _useContext = React.useContext(ConfigurationContext),
2959
3081
  currencyCode = _useContext.currencyCode;
2960
3082
 
2961
3083
  var _useContext2 = React.useContext(ChangableAmountContext),
2962
3084
  amount = _useContext2.amount;
3085
+ _useContext2.amountsMissing;
2963
3086
 
2964
- var _useContext3 = React.useContext(PaymentContext),
2965
- payment = _useContext3.payment,
2966
- paymentState = _useContext3.paymentState,
2967
- pay = _useContext3.pay,
2968
- transaction = _useContext3.transaction,
2969
- approve = _useContext3.approve,
2970
- approvalTransaction = _useContext3.approvalTransaction;
3087
+ var _useContext3 = React.useContext(TrackingContext),
3088
+ tracking = _useContext3.tracking,
3089
+ forward = _useContext3.forward,
3090
+ forwardTo = _useContext3.forwardTo;
2971
3091
 
2972
- var _useContext4 = React.useContext(reactDialogStack.NavigateStackContext),
2973
- navigate = _useContext4.navigate;
3092
+ var _useContext4 = React.useContext(PaymentContext),
3093
+ payment = _useContext4.payment,
3094
+ paymentState = _useContext4.paymentState,
3095
+ pay = _useContext4.pay,
3096
+ transaction = _useContext4.transaction,
3097
+ approve = _useContext4.approve,
3098
+ approvalTransaction = _useContext4.approvalTransaction;
3099
+
3100
+ var _useContext5 = React.useContext(PaymentValueContext),
3101
+ paymentValue = _useContext5.paymentValue;
3102
+
3103
+ var _useContext6 = React.useContext(reactDialogStack.NavigateStackContext),
3104
+ navigate = _useContext6.navigate;
3105
+
3106
+ var _useContext7 = React.useContext(ClosableContext),
3107
+ close = _useContext7.close;
3108
+
3109
+ var trackingInfo = function trackingInfo() {
3110
+ if (tracking != true) {
3111
+ return null;
3112
+ }
3113
+
3114
+ if (forward) {
3115
+ return /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3116
+ className: "Card transparent small disabled"
3117
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3118
+ className: "CardImage"
3119
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3120
+ className: "TextCenter Opacity05"
3121
+ }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, {
3122
+ className: "small"
3123
+ }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3124
+ className: "CardBody"
3125
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3126
+ className: "CardBodyWrapper"
3127
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3128
+ className: "Opacity05"
3129
+ }, "Payment confirmation has been stored")))));
3130
+ } else {
3131
+ return /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3132
+ className: "Card transparent small disabled"
3133
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3134
+ className: "CardImage"
3135
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3136
+ className: "TextCenter"
3137
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3138
+ className: "Loading Icon"
3139
+ }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3140
+ className: "CardBody"
3141
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3142
+ className: "CardBodyWrapper"
3143
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3144
+ className: "Opacity05"
3145
+ }, "Storing payment confirmation")))));
3146
+ }
3147
+ };
2974
3148
 
2975
- var _useContext5 = React.useContext(ClosableContext),
2976
- close = _useContext5.close;
3149
+ var additionalPaymentInformation = function additionalPaymentInformation() {
3150
+ if (paymentState == 'paying' && transaction == undefined) {
3151
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
3152
+ className: "PaddingBottomS"
3153
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3154
+ className: "Card transparent disabled small"
3155
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3156
+ className: "CardImage"
3157
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3158
+ className: "TextCenter Opacity05"
3159
+ }, /*#__PURE__*/React__default$1["default"].createElement(DigitalWalletIcon, {
3160
+ className: "small"
3161
+ }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3162
+ className: "CardBody"
3163
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3164
+ className: "CardBodyWrapper"
3165
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3166
+ className: "Opacity05"
3167
+ }, "Confirm transaction in your wallet")))));
3168
+ } else if (paymentState == 'confirmed') {
3169
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
3170
+ className: "PaddingBottomS"
3171
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", null, /*#__PURE__*/React__default$1["default"].createElement("a", {
3172
+ className: "Card transparent small",
3173
+ title: "Payment has been confirmed by the network",
3174
+ href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3175
+ target: "_blank",
3176
+ rel: "noopener noreferrer"
3177
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3178
+ className: "CardImage"
3179
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3180
+ className: "TextCenter Opacity05"
3181
+ }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, {
3182
+ className: "small"
3183
+ }))), /*#__PURE__*/React__default$1["default"].createElement("div", {
3184
+ className: "CardBody"
3185
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3186
+ className: "CardBodyWrapper"
3187
+ }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3188
+ className: "Opacity05"
3189
+ }, "Payment has been confirmed"))))), trackingInfo());
3190
+ }
3191
+ };
3192
+
3193
+ var approvalButton = function approvalButton() {
3194
+ if (!payment.route.approvalRequired || payment.route.directTransfer) {
3195
+ return null;
3196
+ } else if (paymentState == 'initialized') {
3197
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
3198
+ className: "PaddingBottomS"
3199
+ }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3200
+ className: "ButtonPrimary",
3201
+ onClick: approve,
3202
+ title: "Allow ".concat(payment.symbol, " to be used as payment")
3203
+ }, "Allow ", payment.symbol, " to be used as payment"));
3204
+ } else if (paymentState == 'approving') {
3205
+ return /*#__PURE__*/React__default$1["default"].createElement("div", {
3206
+ className: "PaddingBottomS"
3207
+ }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3208
+ className: "ButtonPrimary",
3209
+ title: "Approving payment token - please wait",
3210
+ href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3211
+ target: "_blank",
3212
+ rel: "noopener noreferrer"
3213
+ }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3214
+ }
3215
+ };
2977
3216
 
2978
3217
  var mainAction = function mainAction() {
2979
3218
  if (paymentState == 'initialized' || paymentState == 'approving') {
@@ -2988,10 +3227,10 @@
2988
3227
  navigate: navigate
2989
3228
  });
2990
3229
  }
2991
- }, "Pay ", new localCurrency.Currency({
3230
+ }, "Pay ", amount ? new localCurrency.Currency({
2992
3231
  amount: amount.toFixed(2),
2993
3232
  code: currencyCode
2994
- }).toString());
3233
+ }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
2995
3234
  } else if (paymentState == 'paying') {
2996
3235
  return /*#__PURE__*/React__default$1["default"].createElement("a", {
2997
3236
  className: "ButtonPrimary",
@@ -3001,39 +3240,51 @@
3001
3240
  rel: "noopener noreferrer"
3002
3241
  }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3003
3242
  } else if (paymentState == 'confirmed') {
3004
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3005
- className: "ButtonPrimary round",
3006
- title: "Done",
3007
- onClick: close
3008
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, null));
3243
+ if (tracking == true) {
3244
+ if (forward) {
3245
+ if (forwardTo) {
3246
+ return /*#__PURE__*/React__default$1["default"].createElement("a", {
3247
+ className: "ButtonPrimary",
3248
+ href: forwardTo,
3249
+ rel: "noopener noreferrer"
3250
+ }, "Continue");
3251
+ } else {
3252
+ return /*#__PURE__*/React__default$1["default"].createElement("button", {
3253
+ className: "ButtonPrimary",
3254
+ onClick: close
3255
+ }, "Continue");
3256
+ }
3257
+ } else {
3258
+ return /*#__PURE__*/React__default$1["default"].createElement("button", {
3259
+ className: "ButtonPrimary disabled",
3260
+ onClick: function onClick() {}
3261
+ }, "Continue");
3262
+ }
3263
+ } else {
3264
+ return /*#__PURE__*/React__default$1["default"].createElement("button", {
3265
+ className: "ButtonPrimary",
3266
+ onClick: close
3267
+ }, "Close");
3268
+ }
3009
3269
  }
3010
3270
  };
3011
3271
 
3012
- var approvalAction = function approvalAction() {
3013
- if (paymentState == 'initialized') {
3014
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3015
- className: "PaddingBottomS"
3016
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3017
- className: "ButtonPrimary wide",
3018
- onClick: approve,
3019
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3020
- }, "Allow ", payment.symbol, " to be used as payment"));
3021
- } else if (paymentState == 'approving') {
3022
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3023
- className: "PaddingBottomS"
3024
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3025
- className: "ButtonPrimary wide",
3026
- title: "Approving payment token - please wait",
3027
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3028
- target: "_blank",
3029
- rel: "noopener noreferrer"
3030
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3031
- }
3032
- };
3272
+ return /*#__PURE__*/React__default$1["default"].createElement("div", null, approvalButton(), additionalPaymentInformation(), mainAction());
3273
+ });
3033
3274
 
3034
- var actions = function actions() {
3035
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
3036
- };
3275
+ var DonationOverviewDialog = (function (props) {
3276
+ var _useContext = React.useContext(ConfigurationContext),
3277
+ currencyCode = _useContext.currencyCode;
3278
+
3279
+ var _useContext2 = React.useContext(ChangableAmountContext),
3280
+ amount = _useContext2.amount;
3281
+
3282
+ var _useContext3 = React.useContext(PaymentContext),
3283
+ payment = _useContext3.payment,
3284
+ paymentState = _useContext3.paymentState;
3285
+
3286
+ var _useContext4 = React.useContext(reactDialogStack.NavigateStackContext),
3287
+ navigate = _useContext4.navigate;
3037
3288
 
3038
3289
  if (payment == undefined) {
3039
3290
  return /*#__PURE__*/React__default$1["default"].createElement(DonationOverviewSkeleton, null);
@@ -3041,9 +3292,9 @@
3041
3292
 
3042
3293
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3043
3294
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3044
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3295
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3045
3296
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3046
- className: "LineHeightL FontSizeL TextLeft"
3297
+ className: "LineHeightL FontSizeL"
3047
3298
  }, "Donation")),
3048
3299
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3049
3300
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3106,8 +3357,8 @@
3106
3357
  className: "CardAction"
3107
3358
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
3108
3359
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3109
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3110
- }, actions())
3360
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3361
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
3111
3362
  });
3112
3363
  });
3113
3364
 
@@ -3144,9 +3395,9 @@
3144
3395
  rel: "noopener noreferrer"
3145
3396
  }, "View on explorer")))),
3146
3397
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3147
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3398
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3148
3399
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3149
- className: "ButtonPrimary wide",
3400
+ className: "ButtonPrimary",
3150
3401
  onClick: function onClick() {
3151
3402
  return navigate('back');
3152
3403
  }
@@ -3167,9 +3418,9 @@
3167
3418
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3168
3419
  stacked: true,
3169
3420
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3170
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3421
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3171
3422
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3172
- className: "LineHeightL FontSizeL TextLeft"
3423
+ className: "LineHeightL FontSizeL"
3173
3424
  }, "Wrong Network")),
3174
3425
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3175
3426
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3186,7 +3437,7 @@
3186
3437
  className: "FontSizeM"
3187
3438
  }, "Please make sure you connect your wallet to the correct network before you try again!"))),
3188
3439
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3189
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3440
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3190
3441
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3191
3442
  className: "ButtonPrimary",
3192
3443
  onClick: function onClick() {
@@ -3217,16 +3468,122 @@
3217
3468
  });
3218
3469
  });
3219
3470
 
3220
- var UpdateProvider = (function (props) {
3221
- var _useState = React.useState(true),
3471
+ var TrackingProvider = (function (props) {
3472
+ var _useContext = React.useContext(ConfigurationContext),
3473
+ track = _useContext.track;
3474
+
3475
+ var _useState = React.useState(track && !!track.endpoint),
3222
3476
  _useState2 = _slicedToArray(_useState, 2),
3223
- update = _useState2[0],
3224
- setUpdate = _useState2[1];
3477
+ tracking = _useState2[0],
3478
+ setTracking = _useState2[1];
3225
3479
 
3226
- return /*#__PURE__*/React__default$1["default"].createElement(UpdateContext.Provider, {
3480
+ var _useState3 = React.useState(false),
3481
+ _useState4 = _slicedToArray(_useState3, 2),
3482
+ forward = _useState4[0],
3483
+ setForward = _useState4[1];
3484
+
3485
+ var _useState5 = React.useState(),
3486
+ _useState6 = _slicedToArray(_useState5, 2),
3487
+ forwardTo = _useState6[0],
3488
+ setForwardTo = _useState6[1];
3489
+
3490
+ var _useContext2 = React.useContext(ClosableContext),
3491
+ setClosable = _useContext2.setClosable;
3492
+
3493
+ React.useEffect(function () {
3494
+ setTracking(track && !!track.endpoint);
3495
+ }, [track]);
3496
+
3497
+ var openSocket = function openSocket(transaction) {
3498
+ var socket = new WebSocket('wss://integrate.depay.fi/cable');
3499
+
3500
+ socket.onopen = function (event) {
3501
+ var msg = {
3502
+ command: 'subscribe',
3503
+ identifier: JSON.stringify({
3504
+ blockchain: transaction.blockchain,
3505
+ sender: transaction.from.toLowerCase(),
3506
+ nonce: transaction.nonce,
3507
+ channel: 'PaymentChannel'
3508
+ })
3509
+ };
3510
+ socket.send(JSON.stringify(msg));
3511
+ };
3512
+
3513
+ socket.onclose = function (event) {};
3514
+
3515
+ socket.onmessage = function (event) {
3516
+ var item = JSON.parse(event.data);
3517
+
3518
+ if (item.type === "ping") {
3519
+ return;
3520
+ }
3521
+
3522
+ if (item.message && item.message.forward) {
3523
+ setClosable(!item.message.forward_to);
3524
+ setForwardTo(item.message.forward_to);
3525
+ setForward(item.message.forward);
3526
+ socket.close();
3527
+
3528
+ if (!!item.message.forward_to) {
3529
+ setTimeout(function () {
3530
+ props.document.location.href = item.message.forward_to;
3531
+ }, 500);
3532
+ }
3533
+ }
3534
+ };
3535
+
3536
+ socket.onerror = function (error) {
3537
+ console.log('WebSocket Error: ' + error);
3538
+ };
3539
+ };
3540
+
3541
+ var retryStartTracking = function retryStartTracking(transaction, afterBlock, attempt) {
3542
+ attempt = parseInt(attempt || 1, 10);
3543
+ console.log('RETRY TRACKING ATTEMPT ', attempt);
3544
+
3545
+ if (attempt < 3) {
3546
+ setTimeout(function () {
3547
+ startTracking(transaction, afterBlock, attempt + 1);
3548
+ }, 3000);
3549
+ } else {
3550
+ console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
3551
+ }
3552
+ };
3553
+
3554
+ var startTracking = function startTracking(transaction, afterBlock, attempt) {
3555
+ fetch(track.endpoint, {
3556
+ method: 'POST',
3557
+ body: JSON.stringify({
3558
+ blockchain: transaction.blockchain,
3559
+ transaction: transaction.id.toLowerCase(),
3560
+ sender: transaction.from.toLowerCase(),
3561
+ nonce: transaction.nonce,
3562
+ after_block: afterBlock
3563
+ })
3564
+ }).then(function (response) {
3565
+ if (response.status == 200) {
3566
+ console.log('TRACKING INITIALIZED');
3567
+ } else {
3568
+ retryStartTracking(transaction, afterBlock, attempt);
3569
+ }
3570
+ })["catch"](function (error) {
3571
+ console.log('TRACKING FAILED', error);
3572
+ retryStartTracking(transaction, afterBlock, attempt);
3573
+ });
3574
+ };
3575
+
3576
+ var initializeTracking = function initializeTracking(transaction, afterBlock) {
3577
+ openSocket(transaction);
3578
+ startTracking(transaction, afterBlock);
3579
+ };
3580
+
3581
+ return /*#__PURE__*/React__default$1["default"].createElement(TrackingContext.Provider, {
3227
3582
  value: {
3228
- update: update,
3229
- setUpdate: setUpdate
3583
+ tracking: tracking,
3584
+ initializeTracking: initializeTracking,
3585
+ forward: forward,
3586
+ forwardTo: forwardTo
3230
3587
  }
3231
3588
  }, props.children);
3232
3589
  });
@@ -3329,12 +3686,12 @@
3329
3686
 
3330
3687
  var Donation = /*#__PURE__*/function () {
3331
3688
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
3332
- var amount, accept, event, sent, confirmed, ensured, failed, error, critical, style, blacklist, providers, currency, connected, closed, document, unmount;
3689
+ var amount, accept, event, sent, confirmed, failed, error, critical, style, blacklist, providers, currency, connected, closed, document, unmount;
3333
3690
  return regenerator.wrap(function _callee2$(_context2) {
3334
3691
  while (1) {
3335
3692
  switch (_context2.prev = _context2.next) {
3336
3693
  case 0:
3337
- 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;
3694
+ 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;
3338
3695
  _context2.prev = 1;
3339
3696
  _context2.next = 4;
3340
3697
  return preflight$2({
@@ -3360,26 +3717,27 @@
3360
3717
  event: event,
3361
3718
  sent: sent,
3362
3719
  confirmed: confirmed,
3363
- ensured: ensured,
3364
3720
  failed: failed,
3365
3721
  blacklist: blacklist,
3366
3722
  providers: providers
3367
3723
  }
3368
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3724
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3369
3725
  unmount: unmount
3370
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3726
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3371
3727
  container: container,
3372
3728
  connected: connected,
3373
3729
  unmount: unmount
3374
3730
  }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
3375
3731
  accept: accept
3732
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
3733
+ document: ensureDocument(document)
3376
3734
  }, /*#__PURE__*/React__default$1["default"].createElement(DonationRoutingProvider, {
3377
3735
  container: container,
3378
3736
  document: document
3379
3737
  }, /*#__PURE__*/React__default$1["default"].createElement(DonationStack, {
3380
3738
  document: document,
3381
3739
  container: container
3382
- })))))))));
3740
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))));
3383
3741
  };
3384
3742
  });
3385
3743
  return _context2.abrupt("return", {
@@ -3447,9 +3805,9 @@
3447
3805
 
3448
3806
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3449
3807
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3450
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3808
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3451
3809
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3452
- className: "LineHeightL FontSizeL TextLeft"
3810
+ className: "LineHeightL FontSizeL"
3453
3811
  }, "Payment")),
3454
3812
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3455
3813
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3463,7 +3821,7 @@
3463
3821
  className: "SkeletonBackground"
3464
3822
  }))),
3465
3823
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3466
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3824
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3467
3825
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3468
3826
  className: "SkeletonWrapper"
3469
3827
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -3478,17 +3836,13 @@
3478
3836
  var _useContext = React.useContext(ConfigurationContext),
3479
3837
  currencyCode = _useContext.currencyCode;
3480
3838
 
3481
- var _useContext2 = React.useContext(ChangableAmountContext),
3482
- amount = _useContext2.amount,
3483
- amountsMissing = _useContext2.amountsMissing;
3839
+ var _useContext2 = React.useContext(PaymentContext),
3840
+ payment = _useContext2.payment,
3841
+ paymentState = _useContext2.paymentState;
3484
3842
 
3485
- var _useContext3 = React.useContext(PaymentContext),
3486
- payment = _useContext3.payment,
3487
- paymentState = _useContext3.paymentState,
3488
- pay = _useContext3.pay,
3489
- transaction = _useContext3.transaction,
3490
- approve = _useContext3.approve,
3491
- approvalTransaction = _useContext3.approvalTransaction;
3843
+ var _useContext3 = React.useContext(ChangableAmountContext),
3844
+ amount = _useContext3.amount,
3845
+ amountsMissing = _useContext3.amountsMissing;
3492
3846
 
3493
3847
  var _useContext4 = React.useContext(PaymentValueContext),
3494
3848
  paymentValue = _useContext4.paymentValue;
@@ -3496,78 +3850,15 @@
3496
3850
  var _useContext5 = React.useContext(reactDialogStack.NavigateStackContext),
3497
3851
  navigate = _useContext5.navigate;
3498
3852
 
3499
- var _useContext6 = React.useContext(ClosableContext),
3500
- close = _useContext6.close;
3501
-
3502
- var mainAction = function mainAction() {
3503
- if (paymentState == 'initialized' || paymentState == 'approving') {
3504
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3505
- className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
3506
- onClick: function onClick() {
3507
- if (payment.route.approvalRequired && !payment.route.directTransfer) {
3508
- return;
3509
- }
3510
-
3511
- pay({
3512
- navigate: navigate
3513
- });
3514
- }
3515
- }, "Pay ", amount ? new localCurrency.Currency({
3516
- amount: amount.toFixed(2),
3517
- code: currencyCode
3518
- }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
3519
- } else if (paymentState == 'paying') {
3520
- return /*#__PURE__*/React__default$1["default"].createElement("a", {
3521
- className: "ButtonPrimary",
3522
- title: "Performing the payment - please wait",
3523
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3524
- target: "_blank",
3525
- rel: "noopener noreferrer"
3526
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3527
- } else if (paymentState == 'confirmed') {
3528
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3529
- className: "ButtonPrimary round",
3530
- title: "Done",
3531
- onClick: close
3532
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, null));
3533
- }
3534
- };
3535
-
3536
- var approvalAction = function approvalAction() {
3537
- if (paymentState == 'initialized') {
3538
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3539
- className: "PaddingBottomS"
3540
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3541
- className: "ButtonPrimary wide",
3542
- onClick: approve,
3543
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3544
- }, "Allow ", payment.symbol, " to be used as payment"));
3545
- } else if (paymentState == 'approving') {
3546
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3547
- className: "PaddingBottomS"
3548
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3549
- className: "ButtonPrimary wide",
3550
- title: "Approving payment token - please wait",
3551
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3552
- target: "_blank",
3553
- rel: "noopener noreferrer"
3554
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3555
- }
3556
- };
3557
-
3558
- var actions = function actions() {
3559
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
3560
- };
3561
-
3562
3853
  if (payment == undefined || paymentValue == undefined) {
3563
3854
  return /*#__PURE__*/React__default$1["default"].createElement(PaymentOverviewSkeleton, null);
3564
3855
  }
3565
3856
 
3566
3857
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3567
3858
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3568
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3859
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3569
3860
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3570
- className: "LineHeightL FontSizeL TextLeft"
3861
+ className: "LineHeightL FontSizeL"
3571
3862
  }, "Payment")),
3572
3863
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3573
3864
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3630,8 +3921,8 @@
3630
3921
  className: "CardAction"
3631
3922
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
3632
3923
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3633
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3634
- }, actions())
3924
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3925
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
3635
3926
  });
3636
3927
  });
3637
3928
 
@@ -3697,12 +3988,12 @@
3697
3988
 
3698
3989
  var Payment = /*#__PURE__*/function () {
3699
3990
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
3700
- var accept, amount, event, sent, confirmed, ensured, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, document, unmount;
3991
+ var accept, amount, event, sent, confirmed, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, document, unmount;
3701
3992
  return regenerator.wrap(function _callee2$(_context2) {
3702
3993
  while (1) {
3703
3994
  switch (_context2.prev = _context2.next) {
3704
3995
  case 0:
3705
- 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;
3996
+ 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;
3706
3997
  _context2.prev = 1;
3707
3998
  _context2.next = 4;
3708
3999
  return preflight$1({
@@ -3728,15 +4019,15 @@
3728
4019
  event: event,
3729
4020
  sent: sent,
3730
4021
  confirmed: confirmed,
3731
- ensured: ensured,
3732
4022
  failed: failed,
3733
4023
  whitelist: whitelist,
3734
4024
  blacklist: blacklist,
3735
- providers: providers
4025
+ providers: providers,
4026
+ track: track
3736
4027
  }
3737
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4028
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3738
4029
  unmount: unmount
3739
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4030
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3740
4031
  document: document,
3741
4032
  container: container,
3742
4033
  connected: connected,
@@ -3748,13 +4039,15 @@
3748
4039
  whitelist: whitelist,
3749
4040
  blacklist: blacklist,
3750
4041
  event: event
4042
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
4043
+ document: ensureDocument(document)
3751
4044
  }, /*#__PURE__*/React__default$1["default"].createElement(PaymentProvider, {
3752
4045
  container: container,
3753
4046
  document: document
3754
4047
  }, /*#__PURE__*/React__default$1["default"].createElement(PaymentValueProvider, null, /*#__PURE__*/React__default$1["default"].createElement(PaymentStack, {
3755
4048
  document: document,
3756
4049
  container: container
3757
- })))))))))));
4050
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))))));
3758
4051
  };
3759
4052
  });
3760
4053
  return _context2.abrupt("return", {
@@ -3864,9 +4157,9 @@
3864
4157
  var SaleOverviewSkeleton = (function (props) {
3865
4158
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3866
4159
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3867
- className: "PaddingTopS PaddingLeftM PaddingRightM"
4160
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3868
4161
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3869
- className: "LineHeightL FontSizeL TextLeft"
4162
+ className: "LineHeightL FontSizeL"
3870
4163
  }, "Purchase")),
3871
4164
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3872
4165
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3883,7 +4176,7 @@
3883
4176
  className: "SkeletonBackground"
3884
4177
  }))),
3885
4178
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3886
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
4179
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3887
4180
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3888
4181
  className: "SkeletonWrapper"
3889
4182
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -3895,11 +4188,10 @@
3895
4188
  });
3896
4189
 
3897
4190
  var SaleOverviewDialog = (function (props) {
3898
- var _useContext = React.useContext(ChangableAmountContext),
3899
- amount = _useContext.amount;
4191
+ var _useContext = React.useContext(ChangableAmountContext);
4192
+ _useContext.amount;
3900
4193
 
3901
4194
  var _useContext2 = React.useContext(ConfigurationContext),
3902
- currencyCode = _useContext2.currencyCode,
3903
4195
  tokenImage = _useContext2.tokenImage;
3904
4196
 
3905
4197
  var _useContext3 = React.useContext(PaymentValueContext),
@@ -3907,87 +4199,20 @@
3907
4199
 
3908
4200
  var _useContext4 = React.useContext(PaymentContext),
3909
4201
  payment = _useContext4.payment,
3910
- paymentState = _useContext4.paymentState,
3911
- pay = _useContext4.pay,
3912
- transaction = _useContext4.transaction,
3913
- approve = _useContext4.approve,
3914
- approvalTransaction = _useContext4.approvalTransaction;
4202
+ paymentState = _useContext4.paymentState;
3915
4203
 
3916
4204
  var _useContext5 = React.useContext(reactDialogStack.NavigateStackContext),
3917
4205
  navigate = _useContext5.navigate;
3918
4206
 
3919
- var _useContext6 = React.useContext(ClosableContext),
3920
- close = _useContext6.close;
3921
-
3922
- var _useContext7 = React.useContext(ToTokenContext),
3923
- toToken = _useContext7.toToken,
3924
- toTokenReadableAmount = _useContext7.toTokenReadableAmount;
4207
+ var _useContext6 = React.useContext(ToTokenContext),
4208
+ toToken = _useContext6.toToken,
4209
+ toTokenReadableAmount = _useContext6.toTokenReadableAmount;
3925
4210
 
3926
4211
  var _useState = React.useState(),
3927
4212
  _useState2 = _slicedToArray(_useState, 2),
3928
4213
  salePerTokenValue = _useState2[0],
3929
4214
  setSalePerTokenValue = _useState2[1];
3930
4215
 
3931
- var mainAction = function mainAction() {
3932
- if (paymentState == 'initialized' || paymentState == 'approving') {
3933
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3934
- className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
3935
- onClick: function onClick() {
3936
- if (payment.route.approvalRequired && !payment.route.directTransfer) {
3937
- return;
3938
- }
3939
-
3940
- pay({
3941
- navigate: navigate
3942
- });
3943
- }
3944
- }, "Pay ", new localCurrency.Currency({
3945
- amount: amount.toFixed(2),
3946
- code: currencyCode
3947
- }).toString());
3948
- } else if (paymentState == 'paying') {
3949
- return /*#__PURE__*/React__default$1["default"].createElement("a", {
3950
- className: "ButtonPrimary",
3951
- title: "Performing the payment - please wait",
3952
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3953
- target: "_blank",
3954
- rel: "noopener noreferrer"
3955
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3956
- } else if (paymentState == 'confirmed') {
3957
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3958
- className: "ButtonPrimary round",
3959
- title: "Done",
3960
- onClick: close
3961
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, null));
3962
- }
3963
- };
3964
-
3965
- var approvalAction = function approvalAction() {
3966
- if (paymentState == 'initialized') {
3967
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3968
- className: "PaddingBottomS"
3969
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3970
- className: "ButtonPrimary wide",
3971
- onClick: approve,
3972
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3973
- }, "Allow ", payment.symbol, " to be used as payment"));
3974
- } else if (paymentState == 'approving') {
3975
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3976
- className: "PaddingBottomS"
3977
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3978
- className: "ButtonPrimary wide",
3979
- title: "Approving payment token - please wait",
3980
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3981
- target: "_blank",
3982
- rel: "noopener noreferrer"
3983
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3984
- }
3985
- };
3986
-
3987
- var actions = function actions() {
3988
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
3989
- };
3990
-
3991
4216
  React.useEffect(function () {
3992
4217
  if (paymentValue) {
3993
4218
  setSalePerTokenValue(new localCurrency.Currency({
@@ -4016,9 +4241,9 @@
4016
4241
 
4017
4242
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
4018
4243
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
4019
- className: "PaddingTopS PaddingLeftM PaddingRightM"
4244
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4020
4245
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
4021
- className: "LineHeightL FontSizeL TextLeft"
4246
+ className: "LineHeightL FontSizeL"
4022
4247
  }, "Purchase")),
4023
4248
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
4024
4249
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -4087,8 +4312,8 @@
4087
4312
  className: "CardAction"
4088
4313
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
4089
4314
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
4090
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
4091
- }, actions())
4315
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
4316
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
4092
4317
  });
4093
4318
  });
4094
4319
 
@@ -4161,12 +4386,12 @@
4161
4386
 
4162
4387
  var Sale = /*#__PURE__*/function () {
4163
4388
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
4164
- var amount, sell, sent, confirmed, ensured, failed, error, critical, style, blacklist, providers, currency, connected, closed, tokenImage, document, accept, unmount;
4389
+ var amount, sell, sent, confirmed, failed, error, critical, style, blacklist, providers, currency, connected, closed, tokenImage, document, accept, unmount;
4165
4390
  return regenerator.wrap(function _callee2$(_context2) {
4166
4391
  while (1) {
4167
4392
  switch (_context2.prev = _context2.next) {
4168
4393
  case 0:
4169
- 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;
4394
+ 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;
4170
4395
  _context2.prev = 1;
4171
4396
  _context2.next = 4;
4172
4397
  return preflight({
@@ -4198,26 +4423,27 @@
4198
4423
  currency: currency,
4199
4424
  sent: sent,
4200
4425
  confirmed: confirmed,
4201
- ensured: ensured,
4202
4426
  failed: failed,
4203
4427
  blacklist: blacklist,
4204
4428
  providers: providers
4205
4429
  }
4206
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4430
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4207
4431
  unmount: unmount
4208
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4432
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4209
4433
  container: container,
4210
4434
  connected: connected,
4211
4435
  unmount: unmount
4212
4436
  }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
4213
4437
  accept: accept
4438
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
4439
+ document: ensureDocument(document)
4214
4440
  }, /*#__PURE__*/React__default$1["default"].createElement(SaleRoutingProvider, {
4215
4441
  container: container,
4216
4442
  document: document
4217
4443
  }, /*#__PURE__*/React__default$1["default"].createElement(SaleStack, {
4218
4444
  document: document,
4219
4445
  container: container
4220
- })))))))));
4446
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))));
4221
4447
  };
4222
4448
  });
4223
4449
  return _context2.abrupt("return", {