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