@depay/widgets 6.10.0 → 6.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/umd/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('@depay/react-dialog-stack'), require('@depay/web3-wallets'), require('react-dom'), require('@depay/react-shadow-dom'), require('ethers'), require('@depay/web3-constants'), require('decimal.js'), require('@depay/web3-exchanges'), require('@depay/web3-tokens'), require('@depay/local-currency'), require('@depay/web3-client'), require('@depay/web3-payments'), require('react-rangeslider'), require('@depay/react-token-image'), require('@depay/web3-blockchains')) :
3
- typeof define === 'function' && define.amd ? define(['react', '@depay/react-dialog-stack', '@depay/web3-wallets', 'react-dom', '@depay/react-shadow-dom', 'ethers', '@depay/web3-constants', 'decimal.js', '@depay/web3-exchanges', '@depay/web3-tokens', '@depay/local-currency', '@depay/web3-client', '@depay/web3-payments', 'react-rangeslider', '@depay/react-token-image', '@depay/web3-blockchains'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DePayWidgets = factory(global.React, global.ReactDialogStack, global.Web3Wallets, global.ReactDOM, global.ReactShadowDOM, global.ethers, global.Web3Constants, global.Decimal, global.Web3Exchanges, global.Web3Tokens, global.LocalCurrency, global.Web3Client, global.Web3Payments, global.ReactRangeslider, global.ReactTokenImage, global.Web3Blockchains));
5
- })(this, (function (React, reactDialogStack, web3Wallets, ReactDOM, reactShadowDom, ethers, web3Constants, decimal_js, web3Exchanges, web3Tokens, localCurrency, web3Client, web3Payments, Slider, reactTokenImage, web3Blockchains) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react'), require('@depay/react-dialog-stack'), require('@depay/web3-wallets'), require('react-dom'), require('@depay/react-shadow-dom'), require('ethers'), require('@depay/web3-constants'), require('decimal.js'), require('@depay/web3-exchanges'), require('@depay/web3-tokens'), require('@depay/local-currency'), require('@depay/web3-client'), require('@depay/web3-blockchains'), require('@depay/web3-payments'), require('react-rangeslider'), require('@depay/react-token-image')) :
3
+ typeof define === 'function' && define.amd ? define(['react', '@depay/react-dialog-stack', '@depay/web3-wallets', 'react-dom', '@depay/react-shadow-dom', 'ethers', '@depay/web3-constants', 'decimal.js', '@depay/web3-exchanges', '@depay/web3-tokens', '@depay/local-currency', '@depay/web3-client', '@depay/web3-blockchains', '@depay/web3-payments', 'react-rangeslider', '@depay/react-token-image'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DePayWidgets = factory(global.React, global.ReactDialogStack, global.Web3Wallets, global.ReactDOM, global.ReactShadowDOM, global.ethers, global.Web3Constants, global.Decimal, global.Web3Exchanges, global.Web3Tokens, global.LocalCurrency, global.Web3Client, global.Web3Blockchains, global.Web3Payments, global.ReactRangeslider, global.ReactTokenImage));
5
+ })(this, (function (React, reactDialogStack, web3Wallets, ReactDOM, reactShadowDom, ethers, web3Constants, decimal_js, web3Exchanges, web3Tokens, localCurrency, web3Client, web3Blockchains, web3Payments, Slider, reactTokenImage) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -1452,6 +1452,8 @@
1452
1452
  constructor(props) {
1453
1453
  super(props);
1454
1454
 
1455
+ this.handler = this.onKeyDown.bind(this);
1456
+
1455
1457
  this.state = {
1456
1458
  open: true,
1457
1459
  };
@@ -1485,22 +1487,22 @@
1485
1487
  this.setState({ open: true });
1486
1488
  }, 10);
1487
1489
  });
1488
- this.props.document.addEventListener('keydown', this.onKeyDown.bind(this), false);
1490
+ this.props.document.addEventListener('keydown', this.handler, true);
1489
1491
  }
1490
1492
 
1491
1493
  componentWillUnmount() {
1492
- this.props.document.addEventListener('keydown', this.onKeyDown.bind(this), false);
1494
+ this.props.document.removeEventListener('keydown', this.handler, true);
1493
1495
  }
1494
1496
 
1495
1497
  render() {
1496
1498
  const classNames = ['ReactDialog', this.state.open ? 'ReactDialogOpen' : ''];
1497
1499
  const style = ReactDialogStyle({ background: this.props.background });
1498
1500
  return (
1499
- React__default["default"].createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName, lineNumber: 54}}
1500
- , React__default["default"].createElement('style', {__self: this, __source: {fileName: _jsxFileName, lineNumber: 55}}, style)
1501
- , React__default["default"].createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName, lineNumber: 56}}
1502
- , React__default["default"].createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName, lineNumber: 57}}
1503
- , React__default["default"].createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName, lineNumber: 58}} )
1501
+ React__default["default"].createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName, lineNumber: 56}}
1502
+ , React__default["default"].createElement('style', {__self: this, __source: {fileName: _jsxFileName, lineNumber: 57}}, style)
1503
+ , React__default["default"].createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName, lineNumber: 58}}
1504
+ , React__default["default"].createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName, lineNumber: 59}}
1505
+ , React__default["default"].createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName, lineNumber: 60}} )
1504
1506
  , this.props.children
1505
1507
  )
1506
1508
  )
@@ -1673,7 +1675,7 @@
1673
1675
  });
1674
1676
 
1675
1677
  var CardStyle = (function (style) {
1676
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1678
+ return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.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 ");
1677
1679
  });
1678
1680
 
1679
1681
  var DialogStyle = (function (style) {
@@ -1999,7 +2001,7 @@
1999
2001
  focusToFixed = parseFloat(_float).toFixed(1).replace('.', '');
2000
2002
  }
2001
2003
 
2002
- if (focusToFixed.toString()[0] != 0 && focusToFixed.toString().length > 2) {
2004
+ if (focusToFixed.toString()[0] != "0" && focusToFixed.toString().length > 2) {
2003
2005
  return parseInt(inputAsFloat.toFixed(0));
2004
2006
  } else {
2005
2007
  return parseFloat(digitsAfterDecimal.replace(/\d{3}$/, focusToFixed));
@@ -2027,7 +2029,7 @@
2027
2029
  account = _useContext.account;
2028
2030
 
2029
2031
  var _useContext2 = React.useContext(ConfigurationContext),
2030
- configuredAmount = _useContext2.amount;
2032
+ amountConfiguration = _useContext2.amount;
2031
2033
 
2032
2034
  var _useContext3 = React.useContext(ConversionRateContext),
2033
2035
  conversionRate = _useContext3.conversionRate;
@@ -2040,7 +2042,7 @@
2040
2042
  acceptWithAmount = _useState4[0],
2041
2043
  setAcceptWithAmount = _useState4[1];
2042
2044
 
2043
- var _useState5 = React.useState(amountsMissing ? _typeof(configuredAmount) == "object" && configuredAmount.start ? configuredAmount.start : 1 : null),
2045
+ var _useState5 = React.useState(amountsMissing ? _typeof(amountConfiguration) == "object" && amountConfiguration.start ? amountConfiguration.start : 1 : null),
2044
2046
  _useState6 = _slicedToArray(_useState5, 2),
2045
2047
  amount = _useState6[0],
2046
2048
  setAmount = _useState6[1];
@@ -2058,51 +2060,83 @@
2058
2060
  React.useEffect(function () {
2059
2061
  setAmountsMissing(configurationsMissAmounts(props.accept));
2060
2062
  }, [props.accept]);
2061
- React.useEffect(function () {
2062
- if (amountsMissing && account && conversionRate) {
2063
- Promise.all(props.accept.map(function (configuration) {
2064
- return web3Exchanges.route({
2065
- blockchain: configuration.blockchain,
2066
- tokenIn: web3Constants.CONSTANTS[configuration.blockchain].USD,
2067
- amountIn: 1.00 / conversionRate * amount,
2068
- tokenOut: configuration.token,
2069
- fromAddress: account,
2070
- toAddress: account
2071
- });
2072
- })).then(function (routes) {
2073
- Promise.all(routes.map(function (routes, index) {
2074
- if (routes[0] == undefined) {
2075
- return;
2076
- }
2077
2063
 
2078
- return web3Tokens.Token.readable({
2079
- blockchain: props.accept[index].blockchain,
2080
- amount: routes[0].amountOut,
2081
- address: routes[0].tokenOut
2064
+ var getAmounts = function getAmounts() {
2065
+ return new Promise(function (resolve, reject) {
2066
+ if (amountConfiguration && amountConfiguration.token) {
2067
+ resolve(props.accept.map(function () {
2068
+ return amount;
2069
+ }));
2070
+ } else {
2071
+ Promise.all(props.accept.map(function (configuration) {
2072
+ return web3Exchanges.route({
2073
+ blockchain: configuration.blockchain,
2074
+ tokenIn: web3Constants.CONSTANTS[configuration.blockchain].USD,
2075
+ amountIn: 1.00 / conversionRate * amount,
2076
+ tokenOut: configuration.token,
2077
+ fromAddress: account,
2078
+ toAddress: account
2082
2079
  });
2083
- })).then(function (amounts) {
2084
- setAcceptWithAmount(props.accept.map(function (configuration, index) {
2085
- if (amounts[index] == undefined) {
2080
+ })).then(function (routes) {
2081
+ Promise.all(routes.map(function (routes, index) {
2082
+ if (routes[0] == undefined) {
2086
2083
  return;
2087
2084
  }
2088
2085
 
2089
- return {
2090
- blockchain: configuration.blockchain,
2091
- amount: round(amounts[index]),
2092
- token: configuration.token,
2093
- receiver: configuration.receiver || account
2094
- };
2095
- }).filter(function (configuration) {
2096
- return !!configuration;
2097
- }));
2086
+ return web3Tokens.Token.readable({
2087
+ blockchain: props.accept[index].blockchain,
2088
+ amount: routes[0].amountOut,
2089
+ address: routes[0].tokenOut
2090
+ });
2091
+ })).then(resolve)["catch"](setError);
2098
2092
  })["catch"](setError);
2093
+ }
2094
+ });
2095
+ };
2096
+
2097
+ React.useEffect(function () {
2098
+ if (amountsMissing && account && conversionRate) {
2099
+ getAmounts().then(function (amounts) {
2100
+ setAcceptWithAmount(props.accept.map(function (configuration, index) {
2101
+ if (amounts[index] == undefined) {
2102
+ return;
2103
+ }
2104
+
2105
+ return {
2106
+ blockchain: configuration.blockchain,
2107
+ amount: round(amounts[index]),
2108
+ token: configuration.token,
2109
+ receiver: configuration.receiver || account
2110
+ };
2111
+ }).filter(function (configuration) {
2112
+ return !!configuration;
2113
+ }));
2099
2114
  })["catch"](setError);
2100
2115
  }
2101
- }, [account, conversionRate, amount]);
2116
+ }, [amountsMissing, account, conversionRate, amount]);
2102
2117
  React.useEffect(function () {
2103
2118
  if (amountsMissing && maxRoute) {
2104
2119
  maxRoute.fromToken.readable(maxRoute.fromBalance).then(function (readableMaxAmount) {
2105
- if (maxRoute.fromToken.address == web3Constants.CONSTANTS[maxRoute.blockchain].USD) {
2120
+ if (amountConfiguration && amountConfiguration.token) {
2121
+ web3Exchanges.route({
2122
+ blockchain: maxRoute.blockchain,
2123
+ tokenIn: maxRoute.fromToken.address,
2124
+ tokenOut: maxRoute.toToken.address,
2125
+ amountIn: parseFloat(readableMaxAmount),
2126
+ fromAddress: account,
2127
+ toAddress: account
2128
+ }).then(function (routes) {
2129
+ web3Tokens.Token.readable({
2130
+ amount: routes[0].amountOut,
2131
+ blockchain: maxRoute.blockchain,
2132
+ address: maxRoute.toToken.address
2133
+ }).then(function (readableMaxAmount) {
2134
+ var slippage = 1.01;
2135
+ var maxAmount = parseFloat(new decimal_js.Decimal(readableMaxAmount).div(slippage).mul(conversionRate).toString());
2136
+ setMaxAmount(maxAmount > 10 ? Math.round(maxAmount) : round(maxAmount));
2137
+ })["catch"](setError);
2138
+ })["catch"](setError);
2139
+ } else if (maxRoute.fromToken.address == web3Constants.CONSTANTS[maxRoute.blockchain].USD) {
2106
2140
  var _maxAmount = parseFloat(new decimal_js.Decimal(readableMaxAmount).mul(conversionRate).toString());
2107
2141
 
2108
2142
  setMaxAmount(_maxAmount > 10 ? Math.round(_maxAmount) : _maxAmount);
@@ -2193,6 +2227,8 @@
2193
2227
 
2194
2228
  var DonationRoutingContext = /*#__PURE__*/React__default["default"].createContext();
2195
2229
 
2230
+ var NavigateContext = /*#__PURE__*/React__default["default"].createContext();
2231
+
2196
2232
  var QuestionsGraphic = "data:image/png;base64,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";
2197
2233
 
2198
2234
  var NoPaymentMethodFoundDialog = (function () {
@@ -2228,7 +2264,9 @@
2228
2264
 
2229
2265
  var PaymentRoutingContext = /*#__PURE__*/React__default["default"].createContext();
2230
2266
 
2231
- var TrackingContext = /*#__PURE__*/React__default["default"].createContext();
2267
+ var PaymentTrackingContext = /*#__PURE__*/React__default["default"].createContext();
2268
+
2269
+ var TransactionTrackingContext = /*#__PURE__*/React__default["default"].createContext();
2232
2270
 
2233
2271
  var PaymentProvider = (function (props) {
2234
2272
  var _useContext = React.useContext(ErrorContext),
@@ -2236,8 +2274,8 @@
2236
2274
 
2237
2275
  var _useContext2 = React.useContext(ConfigurationContext),
2238
2276
  _sent = _useContext2.sent,
2239
- _confirmed = _useContext2.confirmed,
2240
- _failed = _useContext2.failed;
2277
+ confirmed = _useContext2.confirmed,
2278
+ failed = _useContext2.failed;
2241
2279
 
2242
2280
  var _useContext3 = React.useContext(PaymentRoutingContext),
2243
2281
  selectedRoute = _useContext3.selectedRoute;
@@ -2253,13 +2291,20 @@
2253
2291
  var _useContext6 = React.useContext(UpdatableContext),
2254
2292
  setUpdatable = _useContext6.setUpdatable;
2255
2293
 
2256
- var _useContext7 = React.useContext(WalletContext),
2257
- wallet = _useContext7.wallet;
2294
+ var _useContext7 = React.useContext(NavigateContext),
2295
+ navigate = _useContext7.navigate;
2258
2296
 
2259
- var _useContext8 = React.useContext(TrackingContext),
2260
- release = _useContext8.release,
2261
- tracking = _useContext8.tracking,
2262
- initializeTracking = _useContext8.initializeTracking;
2297
+ var _useContext8 = React.useContext(WalletContext),
2298
+ wallet = _useContext8.wallet;
2299
+
2300
+ var _useContext9 = React.useContext(PaymentTrackingContext),
2301
+ release = _useContext9.release,
2302
+ tracking = _useContext9.tracking,
2303
+ initializeTracking = _useContext9.initializeTracking;
2304
+
2305
+ var _useContext10 = React.useContext(TransactionTrackingContext),
2306
+ foundTransaction = _useContext10.foundTransaction,
2307
+ initializeTransactionTracking = _useContext10.initializeTracking;
2263
2308
 
2264
2309
  var _useState = React.useState(),
2265
2310
  _useState2 = _slicedToArray(_useState, 2),
@@ -2281,52 +2326,57 @@
2281
2326
  paymentState = _useState8[0],
2282
2327
  setPaymentState = _useState8[1];
2283
2328
 
2329
+ var paymentConfirmed = function paymentConfirmed(transaction) {
2330
+ if (tracking != true) {
2331
+ setClosable(true);
2332
+ }
2333
+
2334
+ setPaymentState('confirmed');
2335
+
2336
+ if (confirmed) {
2337
+ confirmed(transaction);
2338
+ }
2339
+ };
2340
+
2341
+ var paymentFailed = function paymentFailed(transaction, error) {
2342
+ if (failed) {
2343
+ failed(transaction, error);
2344
+ }
2345
+
2346
+ setPaymentState('initialized');
2347
+ setClosable(true);
2348
+ setUpdatable(true);
2349
+ navigate('PaymentError');
2350
+ };
2351
+
2284
2352
  var pay = /*#__PURE__*/function () {
2285
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
2286
- var navigate, currentBlock;
2353
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee() {
2354
+ var currentBlock;
2287
2355
  return regenerator.wrap(function _callee$(_context) {
2288
2356
  while (1) {
2289
2357
  switch (_context.prev = _context.next) {
2290
2358
  case 0:
2291
- navigate = _ref.navigate;
2292
2359
  setClosable(false);
2293
2360
  setPaymentState('paying');
2294
2361
  setUpdatable(false);
2295
- _context.next = 6;
2362
+ _context.next = 5;
2296
2363
  return web3Client.request({
2297
2364
  blockchain: payment.route.transaction.blockchain,
2298
2365
  method: 'latestBlockNumber'
2299
2366
  });
2300
2367
 
2301
- case 6:
2368
+ case 5:
2302
2369
  currentBlock = _context.sent;
2303
2370
  wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
2304
2371
  sent: function sent(transaction) {
2372
+ initializeTransactionTracking(transaction, currentBlock);
2373
+
2305
2374
  if (_sent) {
2306
2375
  _sent(transaction);
2307
2376
  }
2308
2377
  },
2309
- confirmed: function confirmed(transaction) {
2310
- if (tracking != true) {
2311
- setClosable(true);
2312
- }
2313
-
2314
- setPaymentState('confirmed');
2315
-
2316
- if (_confirmed) {
2317
- _confirmed(transaction);
2318
- }
2319
- },
2320
- failed: function failed(transaction, error) {
2321
- if (_failed) {
2322
- _failed(transaction, error);
2323
- }
2324
-
2325
- setPaymentState('initialized');
2326
- setClosable(true);
2327
- setUpdatable(true);
2328
- navigate('PaymentError');
2329
- }
2378
+ confirmed: paymentConfirmed,
2379
+ failed: paymentFailed
2330
2380
  })).then(function (sentTransaction) {
2331
2381
  if (tracking) {
2332
2382
  initializeTracking(sentTransaction, currentBlock, payment.route);
@@ -2344,7 +2394,7 @@
2344
2394
  }
2345
2395
  });
2346
2396
 
2347
- case 8:
2397
+ case 7:
2348
2398
  case "end":
2349
2399
  return _context.stop();
2350
2400
  }
@@ -2352,8 +2402,8 @@
2352
2402
  }, _callee);
2353
2403
  }));
2354
2404
 
2355
- return function pay(_x) {
2356
- return _ref2.apply(this, arguments);
2405
+ return function pay() {
2406
+ return _ref.apply(this, arguments);
2357
2407
  };
2358
2408
  }();
2359
2409
 
@@ -2381,15 +2431,36 @@
2381
2431
  setPaymentState('confirmed');
2382
2432
  }
2383
2433
  }, [release]);
2434
+ React.useEffect(function () {
2435
+ if (foundTransaction && foundTransaction.id && foundTransaction.status) {
2436
+ var newTransaction;
2437
+
2438
+ if (foundTransaction.id.toLowerCase() != transaction.id.toLowerCase()) {
2439
+ newTransaction = Object.assign({}, transaction, {
2440
+ id: foundTransaction.id,
2441
+ url: web3Blockchains.Blockchain.findByName(transaction.blockchain).explorerUrlFor({
2442
+ transaction: foundTransaction
2443
+ })
2444
+ });
2445
+ setTransaction(newTransaction);
2446
+ }
2447
+
2448
+ if (foundTransaction.status == 'success') {
2449
+ paymentConfirmed(newTransaction || transaction);
2450
+ } else if (foundTransaction.status == 'failed') {
2451
+ paymentFailed(newTransaction || transaction);
2452
+ }
2453
+ }
2454
+ }, [foundTransaction, transaction]);
2384
2455
  React.useEffect(function () {
2385
2456
  if (selectedRoute) {
2386
2457
  var fromToken = selectedRoute.fromToken;
2387
2458
  selectedRoute.transaction.params;
2388
- Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref3) {
2389
- var _ref4 = _slicedToArray(_ref3, 3),
2390
- name = _ref4[0],
2391
- symbol = _ref4[1],
2392
- amount = _ref4[2];
2459
+ Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref2) {
2460
+ var _ref3 = _slicedToArray(_ref2, 3),
2461
+ name = _ref3[0],
2462
+ symbol = _ref3[1],
2463
+ amount = _ref3[2];
2393
2464
 
2394
2465
  setPayment({
2395
2466
  route: selectedRoute,
@@ -2741,7 +2812,7 @@
2741
2812
  });
2742
2813
 
2743
2814
  var format = (function (input) {
2744
- var _float = parseFloat(input);
2815
+ var _float = round(input);
2745
2816
 
2746
2817
  var floatToString = _float.toString();
2747
2818
 
@@ -2775,13 +2846,14 @@
2775
2846
 
2776
2847
  var _useContext5 = React.useContext(ConfigurationContext),
2777
2848
  currencyCode = _useContext5.currencyCode,
2778
- configuredAmount = _useContext5.amount;
2849
+ amountConfiguration = _useContext5.amount;
2779
2850
 
2780
2851
  var _useContext6 = React.useContext(PaymentRoutingContext);
2781
2852
  _useContext6.allRoutes;
2782
2853
 
2783
- var min = _typeof(configuredAmount) == "object" && configuredAmount.min ? configuredAmount.min : 1;
2784
- var step = _typeof(configuredAmount) == "object" && configuredAmount.step ? configuredAmount.step : 1;
2854
+ var min = _typeof(amountConfiguration) == "object" && amountConfiguration.min ? amountConfiguration.min : 1;
2855
+ var step = _typeof(amountConfiguration) == "object" && amountConfiguration.step ? amountConfiguration.step : 1;
2856
+ var displayedCurrencyCode = amountConfiguration != undefined && amountConfiguration.token ? null : currencyCode;
2785
2857
 
2786
2858
  var changeAmountAndGoBack = function changeAmountAndGoBack() {
2787
2859
  setAmount(toValidValue(parseFloat(inputAmount)));
@@ -2823,7 +2895,7 @@
2823
2895
  className: "LineHeightL FontSizeL TextCenter"
2824
2896
  }, "Change Amount"), /*#__PURE__*/React__default["default"].createElement("div", {
2825
2897
  className: "FontSizeL TextCenter FontWeightBold"
2826
- }, /*#__PURE__*/React__default["default"].createElement("strong", null, currencyCode))),
2898
+ }, /*#__PURE__*/React__default["default"].createElement("strong", null, displayedCurrencyCode))),
2827
2899
  body: /*#__PURE__*/React__default["default"].createElement("div", {
2828
2900
  className: "MaxHeight PaddingTopXS"
2829
2901
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -3126,13 +3198,14 @@
3126
3198
 
3127
3199
  var Footer = (function () {
3128
3200
  var _useContext = React.useContext(ConfigurationContext),
3129
- currencyCode = _useContext.currencyCode;
3201
+ currencyCode = _useContext.currencyCode,
3202
+ configuredAmount = _useContext.amount;
3130
3203
 
3131
3204
  var _useContext2 = React.useContext(ChangableAmountContext),
3132
3205
  amount = _useContext2.amount;
3133
3206
  _useContext2.amountsMissing;
3134
3207
 
3135
- var _useContext3 = React.useContext(TrackingContext),
3208
+ var _useContext3 = React.useContext(PaymentTrackingContext),
3136
3209
  tracking = _useContext3.tracking,
3137
3210
  release = _useContext3.release,
3138
3211
  forwardTo = _useContext3.forwardTo,
@@ -3149,8 +3222,8 @@
3149
3222
  var _useContext5 = React.useContext(PaymentValueContext),
3150
3223
  paymentValue = _useContext5.paymentValue;
3151
3224
 
3152
- var _useContext6 = React.useContext(reactDialogStack.NavigateStackContext),
3153
- navigate = _useContext6.navigate;
3225
+ var _useContext6 = React.useContext(reactDialogStack.NavigateStackContext);
3226
+ _useContext6.navigate;
3154
3227
 
3155
3228
  var _useContext7 = React.useContext(ClosableContext),
3156
3229
  close = _useContext7.close;
@@ -3280,6 +3353,19 @@
3280
3353
  };
3281
3354
 
3282
3355
  var mainAction = function mainAction() {
3356
+ var displayedAmount;
3357
+
3358
+ if (amount && (configuredAmount == undefined || configuredAmount.token != true)) {
3359
+ displayedAmount = new localCurrency.Currency({
3360
+ amount: amount.toFixed(2),
3361
+ code: currencyCode
3362
+ }).toString();
3363
+ } else if (paymentValue && paymentValue.toString().length) {
3364
+ displayedAmount = paymentValue.toString();
3365
+ } else {
3366
+ displayedAmount = "".concat(payment.symbol, " ").concat(payment.amount);
3367
+ }
3368
+
3283
3369
  if (paymentState == 'initialized' || paymentState == 'approving') {
3284
3370
  return /*#__PURE__*/React__default["default"].createElement("button", {
3285
3371
  className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
@@ -3288,14 +3374,9 @@
3288
3374
  return;
3289
3375
  }
3290
3376
 
3291
- pay({
3292
- navigate: navigate
3293
- });
3377
+ pay();
3294
3378
  }
3295
- }, "Pay ", amount ? new localCurrency.Currency({
3296
- amount: amount.toFixed(2),
3297
- code: currencyCode
3298
- }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
3379
+ }, "Pay ", displayedAmount);
3299
3380
  } else if (paymentState == 'paying') {
3300
3381
  return /*#__PURE__*/React__default["default"].createElement("a", {
3301
3382
  className: "ButtonPrimary",
@@ -3517,7 +3598,11 @@
3517
3598
  open = _useContext.open,
3518
3599
  close = _useContext.close;
3519
3600
 
3601
+ var _useContext2 = React.useContext(NavigateContext),
3602
+ setNavigate = _useContext2.setNavigate;
3603
+
3520
3604
  return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
3605
+ setNavigate: setNavigate,
3521
3606
  open: open,
3522
3607
  close: close,
3523
3608
  start: "DonationOverview",
@@ -3533,7 +3618,28 @@
3533
3618
  });
3534
3619
  });
3535
3620
 
3536
- var TrackingProvider = (function (props) {
3621
+ var NavigateProvider = (function (props) {
3622
+ var navigator;
3623
+
3624
+ var setNavigate = function setNavigate(_navigator) {
3625
+ navigator = _navigator;
3626
+ };
3627
+
3628
+ var navigate = function navigate(dialog) {
3629
+ if (navigator) {
3630
+ navigator(dialog);
3631
+ }
3632
+ };
3633
+
3634
+ return /*#__PURE__*/React__default["default"].createElement(NavigateContext.Provider, {
3635
+ value: {
3636
+ navigate: navigate,
3637
+ setNavigate: setNavigate
3638
+ }
3639
+ }, props.children);
3640
+ });
3641
+
3642
+ var PaymentTrackingProvider = (function (props) {
3537
3643
  var _useContext = React.useContext(ErrorContext),
3538
3644
  errorCallback = _useContext.errorCallback;
3539
3645
 
@@ -3627,14 +3733,14 @@
3627
3733
 
3628
3734
  var retryStartTracking = function retryStartTracking(transaction, afterBlock, paymentRoute, attempt) {
3629
3735
  attempt = parseInt(attempt || 1, 10);
3630
- console.log('RETRY TRACKING ATTEMPT ', attempt);
3736
+ console.log('RETRYING PAYMENT TRACKING ATTEMPT ', attempt);
3631
3737
 
3632
3738
  if (attempt < 3) {
3633
3739
  setTimeout(function () {
3634
3740
  startTracking(transaction, afterBlock, paymentRoute, attempt + 1);
3635
3741
  }, 3000);
3636
3742
  } else {
3637
- console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
3743
+ console.log('PAYMENT TRACKING FAILED AFTER 3 ATTEMPTS!');
3638
3744
  setTrackingFailed(true);
3639
3745
 
3640
3746
  if (typeof errorCallback == 'function') {
@@ -3649,6 +3755,9 @@
3649
3755
  if (track.endpoint) {
3650
3756
  return fetch(track.endpoint, {
3651
3757
  method: 'POST',
3758
+ headers: {
3759
+ 'Content-Type': 'application/json'
3760
+ },
3652
3761
  body: JSON.stringify(payment)
3653
3762
  });
3654
3763
  } else if (track.method) {
@@ -3668,12 +3777,12 @@
3668
3777
  to_token: paymentRoute.toToken.address
3669
3778
  }).then(function (response) {
3670
3779
  if (response.status == 200) {
3671
- console.log('TRACKING INITIALIZED');
3780
+ console.log('PAYMENT TRACKING INITIALIZED');
3672
3781
  } else {
3673
3782
  retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
3674
3783
  }
3675
3784
  })["catch"](function (error) {
3676
- console.log('TRACKING FAILED', error);
3785
+ console.log('PAYMENT TRACKING FAILED', error);
3677
3786
  retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
3678
3787
  });
3679
3788
  };
@@ -3710,6 +3819,9 @@
3710
3819
  if (track.poll.endpoint) {
3711
3820
  fetch(track.poll.endpoint, {
3712
3821
  method: 'POST',
3822
+ headers: {
3823
+ 'Content-Type': 'application/json'
3824
+ },
3713
3825
  body: JSON.stringify(payment)
3714
3826
  }).then(handleResponse);
3715
3827
  } else if (track.poll.method) {
@@ -3738,7 +3850,7 @@
3738
3850
  startTracking(transaction, afterBlock, paymentRoute);
3739
3851
  };
3740
3852
 
3741
- return /*#__PURE__*/React__default["default"].createElement(TrackingContext.Provider, {
3853
+ return /*#__PURE__*/React__default["default"].createElement(PaymentTrackingContext.Provider, {
3742
3854
  value: {
3743
3855
  tracking: tracking,
3744
3856
  initializeTracking: initializeTracking,
@@ -3749,6 +3861,134 @@
3749
3861
  }, props.children);
3750
3862
  });
3751
3863
 
3864
+ var TransactionTrackingProvider = (function (props) {
3865
+ var _useState = React.useState(),
3866
+ _useState2 = _slicedToArray(_useState, 2),
3867
+ givenTransaction = _useState2[0],
3868
+ setGivenTransaction = _useState2[1];
3869
+
3870
+ var _useState3 = React.useState(),
3871
+ _useState4 = _slicedToArray(_useState3, 2),
3872
+ foundTransaction = _useState4[0],
3873
+ setFoundTransaction = _useState4[1];
3874
+
3875
+ var _useState5 = React.useState(false),
3876
+ _useState6 = _slicedToArray(_useState5, 2),
3877
+ polling = _useState6[0],
3878
+ setPolling = _useState6[1];
3879
+
3880
+ var _useContext = React.useContext(ErrorContext);
3881
+ _useContext.errorCallback;
3882
+
3883
+ React.useEffect(function () {
3884
+ if (polling) {
3885
+ var pollingInterval = setInterval(function () {
3886
+ fetch("https://api.depay.fi/v2/transactions/".concat(givenTransaction.blockchain, "/").concat(givenTransaction.from.toLowerCase(), "/").concat(givenTransaction.nonce)).then(function (response) {
3887
+ if (response.status == 200) {
3888
+ response.json().then(function (data) {
3889
+ if (data.status != 'pending') {
3890
+ setFoundTransaction({
3891
+ id: data.external_id,
3892
+ status: data.status
3893
+ });
3894
+ setPolling(false);
3895
+ }
3896
+ });
3897
+ }
3898
+ });
3899
+ }, 5000);
3900
+ return function () {
3901
+ clearInterval(pollingInterval);
3902
+ };
3903
+ }
3904
+ }, [polling]);
3905
+
3906
+ var createTracking = function createTracking(transaction, afterBlock, attempt) {
3907
+ if (attempt > 3) {
3908
+ console.log('TRANSACTION TRACKING FAILED AFTER 3 ATTEMPTS!');
3909
+ return;
3910
+ }
3911
+
3912
+ fetch('https://api.depay.fi/v2/transactions', {
3913
+ method: 'POST',
3914
+ headers: {
3915
+ 'X-Api-Key': apiKey,
3916
+ 'Content-Type': 'application/json'
3917
+ },
3918
+ body: JSON.stringify({
3919
+ id: transaction.id,
3920
+ after_block: afterBlock,
3921
+ blockchain: transaction.blockchain,
3922
+ sender: transaction.from.toLowerCase(),
3923
+ nonce: transaction.nonce
3924
+ })
3925
+ }).then(function (response) {
3926
+ if (response.status == 200 || response.status == 201) {
3927
+ console.log('TRANSACTION TRACKING INITIALIZED');
3928
+ } else {
3929
+ console.log('TRANSACTION TRACKING FAILED', response);
3930
+ setTimeout(function () {
3931
+ createTracking(transaction, afterBlock, attempt + 1);
3932
+ }, 3000);
3933
+ }
3934
+ })["catch"](function (error) {
3935
+ console.log('TRANSACTION TRACKING FAILED', error);
3936
+ setTimeout(function () {
3937
+ createTracking(transaction, afterBlock, attempt + 1);
3938
+ }, 3000);
3939
+ });
3940
+ };
3941
+
3942
+ var openSocket = function openSocket(transaction) {
3943
+ var socket = new WebSocket('wss://integrate.depay.fi/cable');
3944
+
3945
+ socket.onopen = function (event) {
3946
+ var msg = {
3947
+ command: 'subscribe',
3948
+ identifier: JSON.stringify({
3949
+ blockchain: transaction.blockchain,
3950
+ sender: transaction.from.toLowerCase(),
3951
+ nonce: transaction.nonce,
3952
+ channel: 'TransactionChannel'
3953
+ })
3954
+ };
3955
+ socket.send(JSON.stringify(msg));
3956
+ };
3957
+
3958
+ socket.onclose = function (event) {};
3959
+
3960
+ socket.onmessage = function (event) {
3961
+ var item = JSON.parse(event.data);
3962
+
3963
+ if (item.type === "ping") {
3964
+ return;
3965
+ }
3966
+
3967
+ if (item.message && item.message.status && item.message.status != 'pending') {
3968
+ setFoundTransaction(item.message);
3969
+ }
3970
+ };
3971
+
3972
+ socket.onerror = function (error) {
3973
+ console.log('WebSocket Error: ' + error);
3974
+ };
3975
+ };
3976
+
3977
+ var initializeTracking = function initializeTracking(transaction, afterBlock) {
3978
+ setGivenTransaction(transaction);
3979
+ createTracking(transaction, afterBlock, 1);
3980
+ openSocket(transaction);
3981
+ setPolling(true);
3982
+ };
3983
+
3984
+ return /*#__PURE__*/React__default["default"].createElement(TransactionTrackingContext.Provider, {
3985
+ value: {
3986
+ initializeTracking: initializeTracking,
3987
+ foundTransaction: foundTransaction
3988
+ }
3989
+ }, props.children);
3990
+ });
3991
+
3752
3992
  var WalletProvider = (function (props) {
3753
3993
  var _useContext = React.useContext(ErrorContext);
3754
3994
  _useContext.setError;
@@ -3888,9 +4128,9 @@
3888
4128
  container: container,
3889
4129
  connected: connected,
3890
4130
  unmount: unmount
3891
- }, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
4131
+ }, /*#__PURE__*/React__default["default"].createElement(NavigateProvider, null, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
3892
4132
  accept: accept
3893
- }, /*#__PURE__*/React__default["default"].createElement(TrackingProvider, {
4133
+ }, /*#__PURE__*/React__default["default"].createElement(TransactionTrackingProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentTrackingProvider, {
3894
4134
  document: ensureDocument(document)
3895
4135
  }, /*#__PURE__*/React__default["default"].createElement(DonationRoutingProvider, {
3896
4136
  container: container,
@@ -3898,7 +4138,7 @@
3898
4138
  }, /*#__PURE__*/React__default["default"].createElement(DonationStack, {
3899
4139
  document: document,
3900
4140
  container: container
3901
- }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))));
4141
+ }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))))));
3902
4142
  };
3903
4143
  });
3904
4144
  return _context2.abrupt("return", {
@@ -3949,6 +4189,9 @@
3949
4189
  return new Promise(function (resolve, reject) {
3950
4190
  fetch(endpoint, {
3951
4191
  method: 'POST',
4192
+ headers: {
4193
+ 'Content-Type': 'application/json'
4194
+ },
3952
4195
  body: JSON.stringify({
3953
4196
  message: message,
3954
4197
  signature: signature
@@ -4262,7 +4505,11 @@
4262
4505
  open = _useContext.open,
4263
4506
  close = _useContext.close;
4264
4507
 
4508
+ var _useContext2 = React.useContext(NavigateContext),
4509
+ setNavigate = _useContext2.setNavigate;
4510
+
4265
4511
  return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
4512
+ setNavigate: setNavigate,
4266
4513
  open: open,
4267
4514
  close: close,
4268
4515
  start: "PaymentOverview",
@@ -4364,7 +4611,7 @@
4364
4611
  container: container,
4365
4612
  connected: connected,
4366
4613
  unmount: unmount
4367
- }, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
4614
+ }, /*#__PURE__*/React__default["default"].createElement(NavigateProvider, null, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
4368
4615
  accept: accept
4369
4616
  }, /*#__PURE__*/React__default["default"].createElement(PaymentAmountRoutingProvider, {
4370
4617
  accept: accept,
@@ -4372,7 +4619,7 @@
4372
4619
  blacklist: blacklist,
4373
4620
  event: event,
4374
4621
  fee: fee
4375
- }, /*#__PURE__*/React__default["default"].createElement(TrackingProvider, {
4622
+ }, /*#__PURE__*/React__default["default"].createElement(TransactionTrackingProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentTrackingProvider, {
4376
4623
  document: ensureDocument(document)
4377
4624
  }, /*#__PURE__*/React__default["default"].createElement(PaymentProvider, {
4378
4625
  container: container,
@@ -4380,7 +4627,7 @@
4380
4627
  }, /*#__PURE__*/React__default["default"].createElement(PaymentValueProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentStack, {
4381
4628
  document: document,
4382
4629
  container: container
4383
- }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))))));
4630
+ }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))))))));
4384
4631
  };
4385
4632
  });
4386
4633
  return _context2.abrupt("return", {
@@ -4525,7 +4772,8 @@
4525
4772
  _useContext.amount;
4526
4773
 
4527
4774
  var _useContext2 = React.useContext(ConfigurationContext),
4528
- tokenImage = _useContext2.tokenImage;
4775
+ tokenImage = _useContext2.tokenImage,
4776
+ amountConfiguration = _useContext2.amount;
4529
4777
 
4530
4778
  var _useContext3 = React.useContext(PaymentValueContext),
4531
4779
  paymentValue = _useContext3.paymentValue;
@@ -4547,7 +4795,7 @@
4547
4795
  setSalePerTokenValue = _useState2[1];
4548
4796
 
4549
4797
  React.useEffect(function () {
4550
- if (paymentValue) {
4798
+ if (paymentValue && (amountConfiguration == undefined || amountConfiguration.token != true)) {
4551
4799
  setSalePerTokenValue(new localCurrency.Currency({
4552
4800
  amount: (paymentValue.amount / parseFloat(toTokenReadableAmount)).toFixed(2),
4553
4801
  code: paymentValue.code
@@ -4655,7 +4903,11 @@
4655
4903
  open = _useContext.open,
4656
4904
  close = _useContext.close;
4657
4905
 
4906
+ var _useContext2 = React.useContext(NavigateContext),
4907
+ setNavigate = _useContext2.setNavigate;
4908
+
4658
4909
  return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
4910
+ setNavigate: setNavigate,
4659
4911
  open: open,
4660
4912
  close: close,
4661
4913
  start: "SaleOverview",
@@ -4766,9 +5018,9 @@
4766
5018
  container: container,
4767
5019
  connected: connected,
4768
5020
  unmount: unmount
4769
- }, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
5021
+ }, /*#__PURE__*/React__default["default"].createElement(NavigateProvider, null, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
4770
5022
  accept: accept
4771
- }, /*#__PURE__*/React__default["default"].createElement(TrackingProvider, {
5023
+ }, /*#__PURE__*/React__default["default"].createElement(TransactionTrackingProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentTrackingProvider, {
4772
5024
  document: ensureDocument(document)
4773
5025
  }, /*#__PURE__*/React__default["default"].createElement(SaleRoutingProvider, {
4774
5026
  container: container,
@@ -4776,7 +5028,7 @@
4776
5028
  }, /*#__PURE__*/React__default["default"].createElement(SaleStack, {
4777
5029
  document: document,
4778
5030
  container: container
4779
- }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))));
5031
+ }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))))));
4780
5032
  };
4781
5033
  });
4782
5034
  return _context2.abrupt("return", {