@depay/widgets 4.4.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/umd/index.js CHANGED
@@ -888,6 +888,8 @@
888
888
 
889
889
  var ClosableContext = /*#__PURE__*/React__default$1["default"].createContext();
890
890
 
891
+ var UpdatableContext = /*#__PURE__*/React__default$1["default"].createContext();
892
+
891
893
  var ClosableProvider = (function (props) {
892
894
  var _useState = React.useState(true),
893
895
  _useState2 = _slicedToArray(_useState, 2),
@@ -899,11 +901,15 @@
899
901
  open = _useState4[0],
900
902
  setOpen = _useState4[1];
901
903
 
904
+ var _useContext = React.useContext(UpdatableContext),
905
+ setUpdatable = _useContext.setUpdatable;
906
+
902
907
  var close = function close() {
903
908
  if (!closable) {
904
909
  return;
905
910
  }
906
911
 
912
+ setUpdatable(false);
907
913
  setOpen(false);
908
914
  setTimeout(props.unmount, 300);
909
915
  };
@@ -987,12 +993,7 @@
987
993
  className: "DialogBody"
988
994
  }, props.body), /*#__PURE__*/React__default$1["default"].createElement("div", {
989
995
  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")));
996
+ }, props.footer));
996
997
  });
997
998
 
998
999
  var ConnectingWalletDialog = (function (props) {
@@ -1042,9 +1043,9 @@
1042
1043
  className: "TextButton"
1043
1044
  }, "Connect with another wallet")))),
1044
1045
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
1045
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
1046
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
1046
1047
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1047
- className: "ButtonPrimary wide",
1048
+ className: "ButtonPrimary",
1048
1049
  onClick: function onClick() {
1049
1050
  return props.connect(wallet);
1050
1051
  }
@@ -1127,7 +1128,7 @@
1127
1128
  return connect(wallet);
1128
1129
  }
1129
1130
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
1130
- className: "CardImage PaddingLeftM"
1131
+ className: "CardImage"
1131
1132
  }, /*#__PURE__*/React__default$1["default"].createElement("img", {
1132
1133
  src: wallet.logo
1133
1134
  })), /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -1140,9 +1141,9 @@
1140
1141
  });
1141
1142
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
1142
1143
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
1143
- className: "PaddingTopS PaddingLeftM PaddingRightM"
1144
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
1144
1145
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
1145
- className: "LineHeightL FontSizeL TextLeft"
1146
+ className: "LineHeightL FontSizeL"
1146
1147
  }, "Select a wallet")),
1147
1148
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
1148
1149
  className: "PaddingTopS PaddingBottomXS PaddingLeftS PaddingRightS"
@@ -1150,11 +1151,13 @@
1150
1151
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
1151
1152
  className: "PaddingBottomS"
1152
1153
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
1153
- className: "FontSizeS FontWeightBold TextGrey TextButton",
1154
+ className: "FontSizeS FontWeightBold TextButton",
1154
1155
  onClick: function onClick() {
1155
1156
  return setShowExplanation(!showExplanation);
1156
1157
  }
1157
- }, /*#__PURE__*/React__default$1["default"].createElement("strong", null, "What is a wallet?")), showExplanation && /*#__PURE__*/React__default$1["default"].createElement("p", {
1158
+ }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
1159
+ className: "Opacity05"
1160
+ }, "What is a wallet?")), showExplanation && /*#__PURE__*/React__default$1["default"].createElement("p", {
1158
1161
  className: "PaddingLeftM PaddingRightM"
1159
1162
  }, "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
1163
  });
@@ -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 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 .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 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
 
@@ -2148,7 +2181,9 @@
2148
2181
  }, /*#__PURE__*/React__default$1["default"].createElement("strong", {
2149
2182
  className: "FontSizeM"
2150
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."))),
2151
- 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", {
2152
2187
  className: "ButtonPrimary",
2153
2188
  onClick: close
2154
2189
  }, "Ok"))
@@ -2159,7 +2194,7 @@
2159
2194
 
2160
2195
  var PaymentRoutingContext = /*#__PURE__*/React__default$1["default"].createContext();
2161
2196
 
2162
- var UpdateContext = /*#__PURE__*/React__default$1["default"].createContext();
2197
+ var TrackingContext = /*#__PURE__*/React__default$1["default"].createContext();
2163
2198
 
2164
2199
  var PaymentProvider = (function (props) {
2165
2200
  var _useContext = React.useContext(ErrorContext),
@@ -2168,7 +2203,6 @@
2168
2203
  var _useContext2 = React.useContext(ConfigurationContext),
2169
2204
  _sent = _useContext2.sent,
2170
2205
  _confirmed = _useContext2.confirmed,
2171
- _ensured = _useContext2.ensured,
2172
2206
  _failed = _useContext2.failed;
2173
2207
 
2174
2208
  var _useContext3 = React.useContext(PaymentRoutingContext),
@@ -2182,13 +2216,17 @@
2182
2216
  var _useContext5 = React.useContext(PaymentRoutingContext),
2183
2217
  allRoutes = _useContext5.allRoutes;
2184
2218
 
2185
- var _useContext6 = React.useContext(UpdateContext);
2186
- _useContext6.update;
2187
- var setUpdate = _useContext6.setUpdate;
2219
+ var _useContext6 = React.useContext(UpdatableContext),
2220
+ setUpdatable = _useContext6.setUpdatable;
2188
2221
 
2189
2222
  var _useContext7 = React.useContext(WalletContext),
2190
2223
  wallet = _useContext7.wallet;
2191
2224
 
2225
+ var _useContext8 = React.useContext(TrackingContext),
2226
+ forward = _useContext8.forward,
2227
+ tracking = _useContext8.tracking,
2228
+ initializeTracking = _useContext8.initializeTracking;
2229
+
2192
2230
  var _useState = React.useState(),
2193
2231
  _useState2 = _slicedToArray(_useState, 2),
2194
2232
  payment = _useState2[0],
@@ -2209,53 +2247,81 @@
2209
2247
  paymentState = _useState8[0],
2210
2248
  setPaymentState = _useState8[1];
2211
2249
 
2212
- var pay = function pay(_ref) {
2213
- var navigate = _ref.navigate;
2214
- setClosable(false);
2215
- setPaymentState('paying');
2216
- setUpdate(false);
2217
- wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
2218
- sent: function sent(transaction) {
2219
- if (_sent) {
2220
- _sent(transaction);
2221
- }
2222
- },
2223
- confirmed: function confirmed(transaction) {
2224
- setClosable(true);
2225
- 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
+ });
2226
2266
 
2227
- if (_confirmed) {
2228
- _confirmed(transaction);
2229
- }
2230
- },
2231
- ensured: function ensured(transaction) {
2232
- if (_ensured) {
2233
- _ensured(transaction);
2234
- }
2235
- },
2236
- failed: function failed(transaction, error) {
2237
- if (_failed) {
2238
- _failed(transaction, error);
2239
- }
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
+ }
2240
2279
 
2241
- setPaymentState('initialized');
2242
- setClosable(true);
2243
- setUpdate(true);
2244
- navigate('PaymentError');
2245
- }
2246
- })).then(function (sentTransaction) {
2247
- setTransaction(sentTransaction);
2248
- })["catch"](function (error) {
2249
- console.log('error', error);
2250
- setPaymentState('initialized');
2251
- setClosable(true);
2252
- setUpdate(true);
2280
+ setPaymentState('confirmed');
2253
2281
 
2254
- if ((error === null || error === void 0 ? void 0 : error.code) == 'WRONG_NETWORK') {
2255
- navigate('WrongNetwork');
2256
- }
2257
- });
2258
- };
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
+ }();
2259
2325
 
2260
2326
  var approve = function approve() {
2261
2327
  setClosable(false);
@@ -2276,15 +2342,20 @@
2276
2342
  });
2277
2343
  };
2278
2344
 
2345
+ React.useEffect(function () {
2346
+ if (forward) {
2347
+ setPaymentState('confirmed');
2348
+ }
2349
+ }, [forward]);
2279
2350
  React.useEffect(function () {
2280
2351
  if (selectedRoute) {
2281
2352
  var fromToken = selectedRoute.fromToken;
2282
2353
  selectedRoute.transaction.params;
2283
- Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref2) {
2284
- var _ref3 = _slicedToArray(_ref2, 3),
2285
- name = _ref3[0],
2286
- symbol = _ref3[1],
2287
- 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];
2288
2359
 
2289
2360
  setPayment({
2290
2361
  route: selectedRoute,
@@ -2300,9 +2371,9 @@
2300
2371
  }, [selectedRoute]);
2301
2372
  React.useEffect(function () {
2302
2373
  if (allRoutes && allRoutes.length == 0) {
2303
- setUpdate(false);
2374
+ setUpdatable(false);
2304
2375
  } else if (allRoutes && allRoutes.length > 0) {
2305
- setUpdate(true);
2376
+ setUpdatable(true);
2306
2377
  }
2307
2378
  }, [allRoutes]);
2308
2379
 
@@ -2368,8 +2439,8 @@
2368
2439
  var _useContext = React.useContext(WalletContext),
2369
2440
  account = _useContext.account;
2370
2441
 
2371
- var _useContext2 = React.useContext(UpdateContext),
2372
- update = _useContext2.update;
2442
+ var _useContext2 = React.useContext(UpdatableContext),
2443
+ updatable = _useContext2.updatable;
2373
2444
 
2374
2445
  var prepareAcceptedPayments = function prepareAcceptedPayments(accept) {
2375
2446
  var toAddress = _typeof(accept.receiver) == 'object' ? accept.receiver.address : accept.receiver;
@@ -2384,9 +2455,9 @@
2384
2455
  var getPaymentRoutes = function getPaymentRoutes(_ref) {
2385
2456
  var allRoutes = _ref.allRoutes,
2386
2457
  selectedRoute = _ref.selectedRoute,
2387
- update = _ref.update;
2458
+ updatable = _ref.updatable;
2388
2459
 
2389
- if (update == false || !props.accept || !account) {
2460
+ if (updatable == false || !props.accept || !account) {
2390
2461
  return;
2391
2462
  }
2392
2463
 
@@ -2489,13 +2560,13 @@
2489
2560
  getPaymentRoutes({
2490
2561
  allRoutes: allRoutes,
2491
2562
  selectedRoute: selectedRoute,
2492
- update: update
2563
+ updatable: updatable
2493
2564
  });
2494
2565
  }, 15000);
2495
2566
  return function () {
2496
2567
  return clearTimeout(timeout);
2497
2568
  };
2498
- }, [reloadCount, allRoutes, selectedRoute, update]);
2569
+ }, [reloadCount, allRoutes, selectedRoute, updatable]);
2499
2570
  React.useEffect(function () {
2500
2571
  if (account && props.accept) {
2501
2572
  setAllRoutes(undefined);
@@ -2525,8 +2596,8 @@
2525
2596
  var _useContext2 = React.useContext(WalletContext),
2526
2597
  account = _useContext2.account;
2527
2598
 
2528
- var _useContext3 = React.useContext(UpdateContext),
2529
- update = _useContext3.update;
2599
+ var _useContext3 = React.useContext(UpdatableContext),
2600
+ updatable = _useContext3.updatable;
2530
2601
 
2531
2602
  var _useContext4 = React.useContext(PaymentContext),
2532
2603
  payment = _useContext4.payment;
@@ -2545,10 +2616,10 @@
2545
2616
  setReloadCount = _useState4[1];
2546
2617
 
2547
2618
  var getToTokenLocalValue = function getToTokenLocalValue(_ref) {
2548
- var update = _ref.update,
2619
+ var updatable = _ref.updatable,
2549
2620
  payment = _ref.payment;
2550
2621
 
2551
- 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) {
2552
2623
  return;
2553
2624
  }
2554
2625
 
@@ -2591,7 +2662,7 @@
2591
2662
  React.useEffect(function () {
2592
2663
  if (account && payment) {
2593
2664
  getToTokenLocalValue({
2594
- update: update,
2665
+ updatable: updatable,
2595
2666
  payment: payment
2596
2667
  });
2597
2668
  }
@@ -2600,13 +2671,13 @@
2600
2671
  var timeout = setTimeout(function () {
2601
2672
  setReloadCount(reloadCount + 1);
2602
2673
  getToTokenLocalValue({
2603
- update: update
2674
+ updatable: updatable
2604
2675
  });
2605
2676
  }, 15000);
2606
2677
  return function () {
2607
2678
  return clearTimeout(timeout);
2608
2679
  };
2609
- }, [reloadCount, update]);
2680
+ }, [reloadCount, updatable]);
2610
2681
  return /*#__PURE__*/React__default$1["default"].createElement(PaymentValueContext.Provider, {
2611
2682
  value: {
2612
2683
  paymentValue: paymentValue
@@ -2761,7 +2832,9 @@
2761
2832
  changeAmount(toValidValue(maxAmount));
2762
2833
  }
2763
2834
  }, "(Max)")))))),
2764
- 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", {
2765
2838
  className: "ButtonPrimary",
2766
2839
  onClick: changeAmountAndGoBack
2767
2840
  }, "Done"))
@@ -2848,6 +2921,7 @@
2848
2921
  }, [allRoutes]);
2849
2922
  React.useEffect(function () {
2850
2923
  setCards(allPaymentRoutesWithData.map(function (payment, index) {
2924
+ var blockchain = web3Blockchains.Blockchain.findByName(payment.route.blockchain);
2851
2925
  return /*#__PURE__*/React__default$1["default"].createElement("div", {
2852
2926
  key: index,
2853
2927
  className: "Card",
@@ -2861,6 +2935,11 @@
2861
2935
  }, /*#__PURE__*/React__default$1["default"].createElement(reactTokenImage.TokenImage, {
2862
2936
  blockchain: payment.route.blockchain,
2863
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
2864
2943
  })), /*#__PURE__*/React__default$1["default"].createElement("div", {
2865
2944
  className: "CardBody"
2866
2945
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -2901,25 +2980,12 @@
2901
2980
  });
2902
2981
  });
2903
2982
 
2904
- var Checkmark = (function () {
2905
- return /*#__PURE__*/React__default$1["default"].createElement("svg", {
2906
- className: "Checkmark Icon",
2907
- version: "1.1",
2908
- xmlns: "http://www.w3.org/2000/svg",
2909
- x: "0px",
2910
- y: "0px",
2911
- viewBox: "0 0 24 24"
2912
- }, /*#__PURE__*/React__default$1["default"].createElement("path", {
2913
- 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"
2914
- }));
2915
- });
2916
-
2917
2983
  var DonationOverviewSkeleton = (function (props) {
2918
2984
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
2919
2985
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
2920
- className: "PaddingTopS PaddingLeftM PaddingRightM"
2986
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
2921
2987
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
2922
- className: "LineHeightL FontSizeL TextLeft"
2988
+ className: "LineHeightL FontSizeL"
2923
2989
  }, "Donation")),
2924
2990
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
2925
2991
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -2933,7 +2999,7 @@
2933
2999
  className: "SkeletonBackground"
2934
3000
  }))),
2935
3001
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
2936
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3002
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
2937
3003
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
2938
3004
  className: "SkeletonWrapper"
2939
3005
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -2944,6 +3010,60 @@
2944
3010
  });
2945
3011
  });
2946
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
+
2947
3067
  var LoadingText = (function (props) {
2948
3068
  return /*#__PURE__*/React__default$1["default"].createElement("div", {
2949
3069
  className: "LoadingText"
@@ -2956,26 +3076,143 @@
2956
3076
  }, "."));
2957
3077
  });
2958
3078
 
2959
- var DonationOverviewDialog = (function (props) {
3079
+ var Footer = (function () {
2960
3080
  var _useContext = React.useContext(ConfigurationContext),
2961
3081
  currencyCode = _useContext.currencyCode;
2962
3082
 
2963
3083
  var _useContext2 = React.useContext(ChangableAmountContext),
2964
3084
  amount = _useContext2.amount;
3085
+ _useContext2.amountsMissing;
2965
3086
 
2966
- var _useContext3 = React.useContext(PaymentContext),
2967
- payment = _useContext3.payment,
2968
- paymentState = _useContext3.paymentState,
2969
- pay = _useContext3.pay,
2970
- transaction = _useContext3.transaction,
2971
- approve = _useContext3.approve,
2972
- approvalTransaction = _useContext3.approvalTransaction;
3087
+ var _useContext3 = React.useContext(TrackingContext),
3088
+ tracking = _useContext3.tracking,
3089
+ forward = _useContext3.forward,
3090
+ forwardTo = _useContext3.forwardTo;
2973
3091
 
2974
- var _useContext4 = React.useContext(reactDialogStack.NavigateStackContext),
2975
- 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
+ };
3148
+
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
+ };
2976
3192
 
2977
- var _useContext5 = React.useContext(ClosableContext),
2978
- close = _useContext5.close;
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
+ };
2979
3216
 
2980
3217
  var mainAction = function mainAction() {
2981
3218
  if (paymentState == 'initialized' || paymentState == 'approving') {
@@ -2990,10 +3227,10 @@
2990
3227
  navigate: navigate
2991
3228
  });
2992
3229
  }
2993
- }, "Pay ", new localCurrency.Currency({
3230
+ }, "Pay ", amount ? new localCurrency.Currency({
2994
3231
  amount: amount.toFixed(2),
2995
3232
  code: currencyCode
2996
- }).toString());
3233
+ }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
2997
3234
  } else if (paymentState == 'paying') {
2998
3235
  return /*#__PURE__*/React__default$1["default"].createElement("a", {
2999
3236
  className: "ButtonPrimary",
@@ -3003,39 +3240,51 @@
3003
3240
  rel: "noopener noreferrer"
3004
3241
  }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3005
3242
  } else if (paymentState == 'confirmed') {
3006
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3007
- className: "ButtonPrimary round",
3008
- title: "Done",
3009
- onClick: close
3010
- }, /*#__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
+ }
3011
3269
  }
3012
3270
  };
3013
3271
 
3014
- var approvalAction = function approvalAction() {
3015
- if (paymentState == 'initialized') {
3016
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3017
- className: "PaddingBottomS"
3018
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3019
- className: "ButtonPrimary wide",
3020
- onClick: approve,
3021
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3022
- }, "Allow ", payment.symbol, " to be used as payment"));
3023
- } else if (paymentState == 'approving') {
3024
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3025
- className: "PaddingBottomS"
3026
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3027
- className: "ButtonPrimary wide",
3028
- title: "Approving payment token - please wait",
3029
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3030
- target: "_blank",
3031
- rel: "noopener noreferrer"
3032
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3033
- }
3034
- };
3272
+ return /*#__PURE__*/React__default$1["default"].createElement("div", null, approvalButton(), additionalPaymentInformation(), mainAction());
3273
+ });
3035
3274
 
3036
- var actions = function actions() {
3037
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
3038
- };
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;
3039
3288
 
3040
3289
  if (payment == undefined) {
3041
3290
  return /*#__PURE__*/React__default$1["default"].createElement(DonationOverviewSkeleton, null);
@@ -3043,9 +3292,9 @@
3043
3292
 
3044
3293
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3045
3294
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3046
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3295
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3047
3296
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3048
- className: "LineHeightL FontSizeL TextLeft"
3297
+ className: "LineHeightL FontSizeL"
3049
3298
  }, "Donation")),
3050
3299
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3051
3300
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3108,8 +3357,8 @@
3108
3357
  className: "CardAction"
3109
3358
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
3110
3359
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3111
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3112
- }, actions())
3360
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3361
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
3113
3362
  });
3114
3363
  });
3115
3364
 
@@ -3146,9 +3395,9 @@
3146
3395
  rel: "noopener noreferrer"
3147
3396
  }, "View on explorer")))),
3148
3397
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3149
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3398
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3150
3399
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3151
- className: "ButtonPrimary wide",
3400
+ className: "ButtonPrimary",
3152
3401
  onClick: function onClick() {
3153
3402
  return navigate('back');
3154
3403
  }
@@ -3169,9 +3418,9 @@
3169
3418
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3170
3419
  stacked: true,
3171
3420
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3172
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3421
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3173
3422
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3174
- className: "LineHeightL FontSizeL TextLeft"
3423
+ className: "LineHeightL FontSizeL"
3175
3424
  }, "Wrong Network")),
3176
3425
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3177
3426
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3188,7 +3437,7 @@
3188
3437
  className: "FontSizeM"
3189
3438
  }, "Please make sure you connect your wallet to the correct network before you try again!"))),
3190
3439
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3191
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3440
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3192
3441
  }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3193
3442
  className: "ButtonPrimary",
3194
3443
  onClick: function onClick() {
@@ -3219,16 +3468,122 @@
3219
3468
  });
3220
3469
  });
3221
3470
 
3222
- var UpdateProvider = (function (props) {
3223
- 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),
3224
3476
  _useState2 = _slicedToArray(_useState, 2),
3225
- update = _useState2[0],
3226
- setUpdate = _useState2[1];
3477
+ tracking = _useState2[0],
3478
+ setTracking = _useState2[1];
3479
+
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];
3227
3489
 
3228
- return /*#__PURE__*/React__default$1["default"].createElement(UpdateContext.Provider, {
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, {
3229
3582
  value: {
3230
- update: update,
3231
- setUpdate: setUpdate
3583
+ tracking: tracking,
3584
+ initializeTracking: initializeTracking,
3585
+ forward: forward,
3586
+ forwardTo: forwardTo
3232
3587
  }
3233
3588
  }, props.children);
3234
3589
  });
@@ -3331,12 +3686,12 @@
3331
3686
 
3332
3687
  var Donation = /*#__PURE__*/function () {
3333
3688
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
3334
- 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;
3335
3690
  return regenerator.wrap(function _callee2$(_context2) {
3336
3691
  while (1) {
3337
3692
  switch (_context2.prev = _context2.next) {
3338
3693
  case 0:
3339
- 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;
3340
3695
  _context2.prev = 1;
3341
3696
  _context2.next = 4;
3342
3697
  return preflight$2({
@@ -3362,26 +3717,27 @@
3362
3717
  event: event,
3363
3718
  sent: sent,
3364
3719
  confirmed: confirmed,
3365
- ensured: ensured,
3366
3720
  failed: failed,
3367
3721
  blacklist: blacklist,
3368
3722
  providers: providers
3369
3723
  }
3370
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3724
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3371
3725
  unmount: unmount
3372
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3726
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3373
3727
  container: container,
3374
3728
  connected: connected,
3375
3729
  unmount: unmount
3376
3730
  }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
3377
3731
  accept: accept
3732
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
3733
+ document: ensureDocument(document)
3378
3734
  }, /*#__PURE__*/React__default$1["default"].createElement(DonationRoutingProvider, {
3379
3735
  container: container,
3380
3736
  document: document
3381
3737
  }, /*#__PURE__*/React__default$1["default"].createElement(DonationStack, {
3382
3738
  document: document,
3383
3739
  container: container
3384
- })))))))));
3740
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))));
3385
3741
  };
3386
3742
  });
3387
3743
  return _context2.abrupt("return", {
@@ -3449,9 +3805,9 @@
3449
3805
 
3450
3806
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3451
3807
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3452
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3808
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3453
3809
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3454
- className: "LineHeightL FontSizeL TextLeft"
3810
+ className: "LineHeightL FontSizeL"
3455
3811
  }, "Payment")),
3456
3812
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3457
3813
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3465,7 +3821,7 @@
3465
3821
  className: "SkeletonBackground"
3466
3822
  }))),
3467
3823
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3468
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3824
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3469
3825
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3470
3826
  className: "SkeletonWrapper"
3471
3827
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -3480,17 +3836,13 @@
3480
3836
  var _useContext = React.useContext(ConfigurationContext),
3481
3837
  currencyCode = _useContext.currencyCode;
3482
3838
 
3483
- var _useContext2 = React.useContext(ChangableAmountContext),
3484
- amount = _useContext2.amount,
3485
- amountsMissing = _useContext2.amountsMissing;
3839
+ var _useContext2 = React.useContext(PaymentContext),
3840
+ payment = _useContext2.payment,
3841
+ paymentState = _useContext2.paymentState;
3486
3842
 
3487
- var _useContext3 = React.useContext(PaymentContext),
3488
- payment = _useContext3.payment,
3489
- paymentState = _useContext3.paymentState,
3490
- pay = _useContext3.pay,
3491
- transaction = _useContext3.transaction,
3492
- approve = _useContext3.approve,
3493
- approvalTransaction = _useContext3.approvalTransaction;
3843
+ var _useContext3 = React.useContext(ChangableAmountContext),
3844
+ amount = _useContext3.amount,
3845
+ amountsMissing = _useContext3.amountsMissing;
3494
3846
 
3495
3847
  var _useContext4 = React.useContext(PaymentValueContext),
3496
3848
  paymentValue = _useContext4.paymentValue;
@@ -3498,78 +3850,15 @@
3498
3850
  var _useContext5 = React.useContext(reactDialogStack.NavigateStackContext),
3499
3851
  navigate = _useContext5.navigate;
3500
3852
 
3501
- var _useContext6 = React.useContext(ClosableContext),
3502
- close = _useContext6.close;
3503
-
3504
- var mainAction = function mainAction() {
3505
- if (paymentState == 'initialized' || paymentState == 'approving') {
3506
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3507
- className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
3508
- onClick: function onClick() {
3509
- if (payment.route.approvalRequired && !payment.route.directTransfer) {
3510
- return;
3511
- }
3512
-
3513
- pay({
3514
- navigate: navigate
3515
- });
3516
- }
3517
- }, "Pay ", amount ? new localCurrency.Currency({
3518
- amount: amount.toFixed(2),
3519
- code: currencyCode
3520
- }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
3521
- } else if (paymentState == 'paying') {
3522
- return /*#__PURE__*/React__default$1["default"].createElement("a", {
3523
- className: "ButtonPrimary",
3524
- title: "Performing the payment - please wait",
3525
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3526
- target: "_blank",
3527
- rel: "noopener noreferrer"
3528
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3529
- } else if (paymentState == 'confirmed') {
3530
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3531
- className: "ButtonPrimary round",
3532
- title: "Done",
3533
- onClick: close
3534
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, null));
3535
- }
3536
- };
3537
-
3538
- var approvalAction = function approvalAction() {
3539
- if (paymentState == 'initialized') {
3540
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3541
- className: "PaddingBottomS"
3542
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3543
- className: "ButtonPrimary wide",
3544
- onClick: approve,
3545
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3546
- }, "Allow ", payment.symbol, " to be used as payment"));
3547
- } else if (paymentState == 'approving') {
3548
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3549
- className: "PaddingBottomS"
3550
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3551
- className: "ButtonPrimary wide",
3552
- title: "Approving payment token - please wait",
3553
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3554
- target: "_blank",
3555
- rel: "noopener noreferrer"
3556
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3557
- }
3558
- };
3559
-
3560
- var actions = function actions() {
3561
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
3562
- };
3563
-
3564
3853
  if (payment == undefined || paymentValue == undefined) {
3565
3854
  return /*#__PURE__*/React__default$1["default"].createElement(PaymentOverviewSkeleton, null);
3566
3855
  }
3567
3856
 
3568
3857
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3569
3858
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3570
- className: "PaddingTopS PaddingLeftM PaddingRightM"
3859
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3571
3860
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3572
- className: "LineHeightL FontSizeL TextLeft"
3861
+ className: "LineHeightL FontSizeL"
3573
3862
  }, "Payment")),
3574
3863
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3575
3864
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3632,8 +3921,8 @@
3632
3921
  className: "CardAction"
3633
3922
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
3634
3923
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3635
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
3636
- }, actions())
3924
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3925
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
3637
3926
  });
3638
3927
  });
3639
3928
 
@@ -3699,12 +3988,12 @@
3699
3988
 
3700
3989
  var Payment = /*#__PURE__*/function () {
3701
3990
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
3702
- 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;
3703
3992
  return regenerator.wrap(function _callee2$(_context2) {
3704
3993
  while (1) {
3705
3994
  switch (_context2.prev = _context2.next) {
3706
3995
  case 0:
3707
- 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;
3708
3997
  _context2.prev = 1;
3709
3998
  _context2.next = 4;
3710
3999
  return preflight$1({
@@ -3730,15 +4019,15 @@
3730
4019
  event: event,
3731
4020
  sent: sent,
3732
4021
  confirmed: confirmed,
3733
- ensured: ensured,
3734
4022
  failed: failed,
3735
4023
  whitelist: whitelist,
3736
4024
  blacklist: blacklist,
3737
- providers: providers
4025
+ providers: providers,
4026
+ track: track
3738
4027
  }
3739
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4028
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
3740
4029
  unmount: unmount
3741
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4030
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
3742
4031
  document: document,
3743
4032
  container: container,
3744
4033
  connected: connected,
@@ -3750,13 +4039,15 @@
3750
4039
  whitelist: whitelist,
3751
4040
  blacklist: blacklist,
3752
4041
  event: event
4042
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
4043
+ document: ensureDocument(document)
3753
4044
  }, /*#__PURE__*/React__default$1["default"].createElement(PaymentProvider, {
3754
4045
  container: container,
3755
4046
  document: document
3756
4047
  }, /*#__PURE__*/React__default$1["default"].createElement(PaymentValueProvider, null, /*#__PURE__*/React__default$1["default"].createElement(PaymentStack, {
3757
4048
  document: document,
3758
4049
  container: container
3759
- })))))))))));
4050
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))))));
3760
4051
  };
3761
4052
  });
3762
4053
  return _context2.abrupt("return", {
@@ -3866,9 +4157,9 @@
3866
4157
  var SaleOverviewSkeleton = (function (props) {
3867
4158
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
3868
4159
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
3869
- className: "PaddingTopS PaddingLeftM PaddingRightM"
4160
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
3870
4161
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
3871
- className: "LineHeightL FontSizeL TextLeft"
4162
+ className: "LineHeightL FontSizeL"
3872
4163
  }, "Purchase")),
3873
4164
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
3874
4165
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -3885,7 +4176,7 @@
3885
4176
  className: "SkeletonBackground"
3886
4177
  }))),
3887
4178
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
3888
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
4179
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3889
4180
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
3890
4181
  className: "SkeletonWrapper"
3891
4182
  }, /*#__PURE__*/React__default$1["default"].createElement("div", {
@@ -3897,11 +4188,10 @@
3897
4188
  });
3898
4189
 
3899
4190
  var SaleOverviewDialog = (function (props) {
3900
- var _useContext = React.useContext(ChangableAmountContext),
3901
- amount = _useContext.amount;
4191
+ var _useContext = React.useContext(ChangableAmountContext);
4192
+ _useContext.amount;
3902
4193
 
3903
4194
  var _useContext2 = React.useContext(ConfigurationContext),
3904
- currencyCode = _useContext2.currencyCode,
3905
4195
  tokenImage = _useContext2.tokenImage;
3906
4196
 
3907
4197
  var _useContext3 = React.useContext(PaymentValueContext),
@@ -3909,87 +4199,20 @@
3909
4199
 
3910
4200
  var _useContext4 = React.useContext(PaymentContext),
3911
4201
  payment = _useContext4.payment,
3912
- paymentState = _useContext4.paymentState,
3913
- pay = _useContext4.pay,
3914
- transaction = _useContext4.transaction,
3915
- approve = _useContext4.approve,
3916
- approvalTransaction = _useContext4.approvalTransaction;
4202
+ paymentState = _useContext4.paymentState;
3917
4203
 
3918
4204
  var _useContext5 = React.useContext(reactDialogStack.NavigateStackContext),
3919
4205
  navigate = _useContext5.navigate;
3920
4206
 
3921
- var _useContext6 = React.useContext(ClosableContext),
3922
- close = _useContext6.close;
3923
-
3924
- var _useContext7 = React.useContext(ToTokenContext),
3925
- toToken = _useContext7.toToken,
3926
- toTokenReadableAmount = _useContext7.toTokenReadableAmount;
4207
+ var _useContext6 = React.useContext(ToTokenContext),
4208
+ toToken = _useContext6.toToken,
4209
+ toTokenReadableAmount = _useContext6.toTokenReadableAmount;
3927
4210
 
3928
4211
  var _useState = React.useState(),
3929
4212
  _useState2 = _slicedToArray(_useState, 2),
3930
4213
  salePerTokenValue = _useState2[0],
3931
4214
  setSalePerTokenValue = _useState2[1];
3932
4215
 
3933
- var mainAction = function mainAction() {
3934
- if (paymentState == 'initialized' || paymentState == 'approving') {
3935
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3936
- className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
3937
- onClick: function onClick() {
3938
- if (payment.route.approvalRequired && !payment.route.directTransfer) {
3939
- return;
3940
- }
3941
-
3942
- pay({
3943
- navigate: navigate
3944
- });
3945
- }
3946
- }, "Pay ", new localCurrency.Currency({
3947
- amount: amount.toFixed(2),
3948
- code: currencyCode
3949
- }).toString());
3950
- } else if (paymentState == 'paying') {
3951
- return /*#__PURE__*/React__default$1["default"].createElement("a", {
3952
- className: "ButtonPrimary",
3953
- title: "Performing the payment - please wait",
3954
- href: transaction === null || transaction === void 0 ? void 0 : transaction.url,
3955
- target: "_blank",
3956
- rel: "noopener noreferrer"
3957
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Paying"));
3958
- } else if (paymentState == 'confirmed') {
3959
- return /*#__PURE__*/React__default$1["default"].createElement("button", {
3960
- className: "ButtonPrimary round",
3961
- title: "Done",
3962
- onClick: close
3963
- }, /*#__PURE__*/React__default$1["default"].createElement(Checkmark, null));
3964
- }
3965
- };
3966
-
3967
- var approvalAction = function approvalAction() {
3968
- if (paymentState == 'initialized') {
3969
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3970
- className: "PaddingBottomS"
3971
- }, /*#__PURE__*/React__default$1["default"].createElement("button", {
3972
- className: "ButtonPrimary wide",
3973
- onClick: approve,
3974
- title: "Allow ".concat(payment.symbol, " to be used as payment")
3975
- }, "Allow ", payment.symbol, " to be used as payment"));
3976
- } else if (paymentState == 'approving') {
3977
- return /*#__PURE__*/React__default$1["default"].createElement("div", {
3978
- className: "PaddingBottomS"
3979
- }, /*#__PURE__*/React__default$1["default"].createElement("a", {
3980
- className: "ButtonPrimary wide",
3981
- title: "Approving payment token - please wait",
3982
- href: approvalTransaction === null || approvalTransaction === void 0 ? void 0 : approvalTransaction.url,
3983
- target: "_blank",
3984
- rel: "noopener noreferrer"
3985
- }, /*#__PURE__*/React__default$1["default"].createElement(LoadingText, null, "Approving")));
3986
- }
3987
- };
3988
-
3989
- var actions = function actions() {
3990
- return /*#__PURE__*/React__default$1["default"].createElement("div", null, payment.route.approvalRequired && !payment.route.directTransfer && approvalAction(), mainAction());
3991
- };
3992
-
3993
4216
  React.useEffect(function () {
3994
4217
  if (paymentValue) {
3995
4218
  setSalePerTokenValue(new localCurrency.Currency({
@@ -4018,9 +4241,9 @@
4018
4241
 
4019
4242
  return /*#__PURE__*/React__default$1["default"].createElement(Dialog$1, {
4020
4243
  header: /*#__PURE__*/React__default$1["default"].createElement("div", {
4021
- className: "PaddingTopS PaddingLeftM PaddingRightM"
4244
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4022
4245
  }, /*#__PURE__*/React__default$1["default"].createElement("h1", {
4023
- className: "LineHeightL FontSizeL TextLeft"
4246
+ className: "LineHeightL FontSizeL"
4024
4247
  }, "Purchase")),
4025
4248
  body: /*#__PURE__*/React__default$1["default"].createElement("div", {
4026
4249
  className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
@@ -4089,8 +4312,8 @@
4089
4312
  className: "CardAction"
4090
4313
  }, /*#__PURE__*/React__default$1["default"].createElement(ChevronRight, null)))),
4091
4314
  footer: /*#__PURE__*/React__default$1["default"].createElement("div", {
4092
- className: "PaddingTopXS PaddingRightM PaddingLeftM"
4093
- }, actions())
4315
+ className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
4316
+ }, /*#__PURE__*/React__default$1["default"].createElement(Footer, null))
4094
4317
  });
4095
4318
  });
4096
4319
 
@@ -4163,12 +4386,12 @@
4163
4386
 
4164
4387
  var Sale = /*#__PURE__*/function () {
4165
4388
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
4166
- 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;
4167
4390
  return regenerator.wrap(function _callee2$(_context2) {
4168
4391
  while (1) {
4169
4392
  switch (_context2.prev = _context2.next) {
4170
4393
  case 0:
4171
- 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;
4172
4395
  _context2.prev = 1;
4173
4396
  _context2.next = 4;
4174
4397
  return preflight({
@@ -4200,26 +4423,27 @@
4200
4423
  currency: currency,
4201
4424
  sent: sent,
4202
4425
  confirmed: confirmed,
4203
- ensured: ensured,
4204
4426
  failed: failed,
4205
4427
  blacklist: blacklist,
4206
4428
  providers: providers
4207
4429
  }
4208
- }, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4430
+ }, /*#__PURE__*/React__default$1["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ClosableProvider, {
4209
4431
  unmount: unmount
4210
- }, /*#__PURE__*/React__default$1["default"].createElement(UpdateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4432
+ }, /*#__PURE__*/React__default$1["default"].createElement(WalletProvider, {
4211
4433
  container: container,
4212
4434
  connected: connected,
4213
4435
  unmount: unmount
4214
4436
  }, /*#__PURE__*/React__default$1["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default$1["default"].createElement(ChangableAmountProvider, {
4215
4437
  accept: accept
4438
+ }, /*#__PURE__*/React__default$1["default"].createElement(TrackingProvider, {
4439
+ document: ensureDocument(document)
4216
4440
  }, /*#__PURE__*/React__default$1["default"].createElement(SaleRoutingProvider, {
4217
4441
  container: container,
4218
4442
  document: document
4219
4443
  }, /*#__PURE__*/React__default$1["default"].createElement(SaleStack, {
4220
4444
  document: document,
4221
4445
  container: container
4222
- })))))))));
4446
+ }), /*#__PURE__*/React__default$1["default"].createElement(PoweredBy, null))))))))));
4223
4447
  };
4224
4448
  });
4225
4449
  return _context2.abrupt("return", {