@depay/widgets 6.9.2 → 6.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/umd/index.js CHANGED
@@ -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
 
@@ -1673,7 +1673,7 @@
1673
1673
  });
1674
1674
 
1675
1675
  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 ");
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.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
1677
  });
1678
1678
 
1679
1679
  var DialogStyle = (function (style) {
@@ -1999,7 +1999,7 @@
1999
1999
  focusToFixed = parseFloat(_float).toFixed(1).replace('.', '');
2000
2000
  }
2001
2001
 
2002
- if (focusToFixed.toString()[0] != 0 && focusToFixed.toString().length > 2) {
2002
+ if (focusToFixed.toString()[0] != "0" && focusToFixed.toString().length > 2) {
2003
2003
  return parseInt(inputAsFloat.toFixed(0));
2004
2004
  } else {
2005
2005
  return parseFloat(digitsAfterDecimal.replace(/\d{3}$/, focusToFixed));
@@ -2027,7 +2027,7 @@
2027
2027
  account = _useContext.account;
2028
2028
 
2029
2029
  var _useContext2 = React.useContext(ConfigurationContext),
2030
- configuredAmount = _useContext2.amount;
2030
+ amountConfiguration = _useContext2.amount;
2031
2031
 
2032
2032
  var _useContext3 = React.useContext(ConversionRateContext),
2033
2033
  conversionRate = _useContext3.conversionRate;
@@ -2040,7 +2040,7 @@
2040
2040
  acceptWithAmount = _useState4[0],
2041
2041
  setAcceptWithAmount = _useState4[1];
2042
2042
 
2043
- var _useState5 = React.useState(amountsMissing ? _typeof(configuredAmount) == "object" && configuredAmount.start ? configuredAmount.start : 1 : null),
2043
+ var _useState5 = React.useState(amountsMissing ? _typeof(amountConfiguration) == "object" && amountConfiguration.start ? amountConfiguration.start : 1 : null),
2044
2044
  _useState6 = _slicedToArray(_useState5, 2),
2045
2045
  amount = _useState6[0],
2046
2046
  setAmount = _useState6[1];
@@ -2058,51 +2058,83 @@
2058
2058
  React.useEffect(function () {
2059
2059
  setAmountsMissing(configurationsMissAmounts(props.accept));
2060
2060
  }, [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
2061
 
2078
- return web3Tokens.Token.readable({
2079
- blockchain: props.accept[index].blockchain,
2080
- amount: routes[0].amountOut,
2081
- address: routes[0].tokenOut
2062
+ var getAmounts = function getAmounts() {
2063
+ return new Promise(function (resolve, reject) {
2064
+ if (amountConfiguration && amountConfiguration.token) {
2065
+ resolve(props.accept.map(function () {
2066
+ return amount;
2067
+ }));
2068
+ } else {
2069
+ Promise.all(props.accept.map(function (configuration) {
2070
+ return web3Exchanges.route({
2071
+ blockchain: configuration.blockchain,
2072
+ tokenIn: web3Constants.CONSTANTS[configuration.blockchain].USD,
2073
+ amountIn: 1.00 / conversionRate * amount,
2074
+ tokenOut: configuration.token,
2075
+ fromAddress: account,
2076
+ toAddress: account
2082
2077
  });
2083
- })).then(function (amounts) {
2084
- setAcceptWithAmount(props.accept.map(function (configuration, index) {
2085
- if (amounts[index] == undefined) {
2078
+ })).then(function (routes) {
2079
+ Promise.all(routes.map(function (routes, index) {
2080
+ if (routes[0] == undefined) {
2086
2081
  return;
2087
2082
  }
2088
2083
 
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
- }));
2084
+ return web3Tokens.Token.readable({
2085
+ blockchain: props.accept[index].blockchain,
2086
+ amount: routes[0].amountOut,
2087
+ address: routes[0].tokenOut
2088
+ });
2089
+ })).then(resolve)["catch"](setError);
2098
2090
  })["catch"](setError);
2091
+ }
2092
+ });
2093
+ };
2094
+
2095
+ React.useEffect(function () {
2096
+ if (amountsMissing && account && conversionRate) {
2097
+ getAmounts().then(function (amounts) {
2098
+ setAcceptWithAmount(props.accept.map(function (configuration, index) {
2099
+ if (amounts[index] == undefined) {
2100
+ return;
2101
+ }
2102
+
2103
+ return {
2104
+ blockchain: configuration.blockchain,
2105
+ amount: round(amounts[index]),
2106
+ token: configuration.token,
2107
+ receiver: configuration.receiver || account
2108
+ };
2109
+ }).filter(function (configuration) {
2110
+ return !!configuration;
2111
+ }));
2099
2112
  })["catch"](setError);
2100
2113
  }
2101
- }, [account, conversionRate, amount]);
2114
+ }, [amountsMissing, account, conversionRate, amount]);
2102
2115
  React.useEffect(function () {
2103
2116
  if (amountsMissing && maxRoute) {
2104
2117
  maxRoute.fromToken.readable(maxRoute.fromBalance).then(function (readableMaxAmount) {
2105
- if (maxRoute.fromToken.address == web3Constants.CONSTANTS[maxRoute.blockchain].USD) {
2118
+ if (amountConfiguration && amountConfiguration.token) {
2119
+ web3Exchanges.route({
2120
+ blockchain: maxRoute.blockchain,
2121
+ tokenIn: maxRoute.fromToken.address,
2122
+ tokenOut: maxRoute.toToken.address,
2123
+ amountIn: parseFloat(readableMaxAmount),
2124
+ fromAddress: account,
2125
+ toAddress: account
2126
+ }).then(function (routes) {
2127
+ web3Tokens.Token.readable({
2128
+ amount: routes[0].amountOut,
2129
+ blockchain: maxRoute.blockchain,
2130
+ address: maxRoute.toToken.address
2131
+ }).then(function (readableMaxAmount) {
2132
+ var slippage = 1.01;
2133
+ var maxAmount = parseFloat(new decimal_js.Decimal(readableMaxAmount).div(slippage).mul(conversionRate).toString());
2134
+ setMaxAmount(maxAmount > 10 ? Math.round(maxAmount) : round(maxAmount));
2135
+ })["catch"](setError);
2136
+ })["catch"](setError);
2137
+ } else if (maxRoute.fromToken.address == web3Constants.CONSTANTS[maxRoute.blockchain].USD) {
2106
2138
  var _maxAmount = parseFloat(new decimal_js.Decimal(readableMaxAmount).mul(conversionRate).toString());
2107
2139
 
2108
2140
  setMaxAmount(_maxAmount > 10 ? Math.round(_maxAmount) : _maxAmount);
@@ -2193,6 +2225,8 @@
2193
2225
 
2194
2226
  var DonationRoutingContext = /*#__PURE__*/React__default["default"].createContext();
2195
2227
 
2228
+ var NavigateContext = /*#__PURE__*/React__default["default"].createContext();
2229
+
2196
2230
  var QuestionsGraphic = "data:image/png;base64,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";
2197
2231
 
2198
2232
  var NoPaymentMethodFoundDialog = (function () {
@@ -2228,7 +2262,9 @@
2228
2262
 
2229
2263
  var PaymentRoutingContext = /*#__PURE__*/React__default["default"].createContext();
2230
2264
 
2231
- var TrackingContext = /*#__PURE__*/React__default["default"].createContext();
2265
+ var PaymentTrackingContext = /*#__PURE__*/React__default["default"].createContext();
2266
+
2267
+ var TransactionTrackingContext = /*#__PURE__*/React__default["default"].createContext();
2232
2268
 
2233
2269
  var PaymentProvider = (function (props) {
2234
2270
  var _useContext = React.useContext(ErrorContext),
@@ -2236,8 +2272,8 @@
2236
2272
 
2237
2273
  var _useContext2 = React.useContext(ConfigurationContext),
2238
2274
  _sent = _useContext2.sent,
2239
- _confirmed = _useContext2.confirmed,
2240
- _failed = _useContext2.failed;
2275
+ confirmed = _useContext2.confirmed,
2276
+ failed = _useContext2.failed;
2241
2277
 
2242
2278
  var _useContext3 = React.useContext(PaymentRoutingContext),
2243
2279
  selectedRoute = _useContext3.selectedRoute;
@@ -2253,13 +2289,20 @@
2253
2289
  var _useContext6 = React.useContext(UpdatableContext),
2254
2290
  setUpdatable = _useContext6.setUpdatable;
2255
2291
 
2256
- var _useContext7 = React.useContext(WalletContext),
2257
- wallet = _useContext7.wallet;
2292
+ var _useContext7 = React.useContext(NavigateContext),
2293
+ navigate = _useContext7.navigate;
2294
+
2295
+ var _useContext8 = React.useContext(WalletContext),
2296
+ wallet = _useContext8.wallet;
2258
2297
 
2259
- var _useContext8 = React.useContext(TrackingContext),
2260
- release = _useContext8.release,
2261
- tracking = _useContext8.tracking,
2262
- initializeTracking = _useContext8.initializeTracking;
2298
+ var _useContext9 = React.useContext(PaymentTrackingContext),
2299
+ release = _useContext9.release,
2300
+ tracking = _useContext9.tracking,
2301
+ initializeTracking = _useContext9.initializeTracking;
2302
+
2303
+ var _useContext10 = React.useContext(TransactionTrackingContext),
2304
+ foundTransaction = _useContext10.foundTransaction,
2305
+ initializeTransactionTracking = _useContext10.initializeTracking;
2263
2306
 
2264
2307
  var _useState = React.useState(),
2265
2308
  _useState2 = _slicedToArray(_useState, 2),
@@ -2281,52 +2324,57 @@
2281
2324
  paymentState = _useState8[0],
2282
2325
  setPaymentState = _useState8[1];
2283
2326
 
2327
+ var paymentConfirmed = function paymentConfirmed(transaction) {
2328
+ if (tracking != true) {
2329
+ setClosable(true);
2330
+ }
2331
+
2332
+ setPaymentState('confirmed');
2333
+
2334
+ if (confirmed) {
2335
+ confirmed(transaction);
2336
+ }
2337
+ };
2338
+
2339
+ var paymentFailed = function paymentFailed(transaction, error) {
2340
+ if (failed) {
2341
+ failed(transaction, error);
2342
+ }
2343
+
2344
+ setPaymentState('initialized');
2345
+ setClosable(true);
2346
+ setUpdatable(true);
2347
+ navigate('PaymentError');
2348
+ };
2349
+
2284
2350
  var pay = /*#__PURE__*/function () {
2285
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(_ref) {
2286
- var navigate, currentBlock;
2351
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee() {
2352
+ var currentBlock;
2287
2353
  return regenerator.wrap(function _callee$(_context) {
2288
2354
  while (1) {
2289
2355
  switch (_context.prev = _context.next) {
2290
2356
  case 0:
2291
- navigate = _ref.navigate;
2292
2357
  setClosable(false);
2293
2358
  setPaymentState('paying');
2294
2359
  setUpdatable(false);
2295
- _context.next = 6;
2360
+ _context.next = 5;
2296
2361
  return web3Client.request({
2297
2362
  blockchain: payment.route.transaction.blockchain,
2298
2363
  method: 'latestBlockNumber'
2299
2364
  });
2300
2365
 
2301
- case 6:
2366
+ case 5:
2302
2367
  currentBlock = _context.sent;
2303
2368
  wallet.sendTransaction(Object.assign({}, payment.route.transaction, {
2304
2369
  sent: function sent(transaction) {
2370
+ initializeTransactionTracking(transaction, currentBlock);
2371
+
2305
2372
  if (_sent) {
2306
2373
  _sent(transaction);
2307
2374
  }
2308
2375
  },
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
- }
2376
+ confirmed: paymentConfirmed,
2377
+ failed: paymentFailed
2330
2378
  })).then(function (sentTransaction) {
2331
2379
  if (tracking) {
2332
2380
  initializeTracking(sentTransaction, currentBlock, payment.route);
@@ -2344,7 +2392,7 @@
2344
2392
  }
2345
2393
  });
2346
2394
 
2347
- case 8:
2395
+ case 7:
2348
2396
  case "end":
2349
2397
  return _context.stop();
2350
2398
  }
@@ -2352,8 +2400,8 @@
2352
2400
  }, _callee);
2353
2401
  }));
2354
2402
 
2355
- return function pay(_x) {
2356
- return _ref2.apply(this, arguments);
2403
+ return function pay() {
2404
+ return _ref.apply(this, arguments);
2357
2405
  };
2358
2406
  }();
2359
2407
 
@@ -2381,15 +2429,36 @@
2381
2429
  setPaymentState('confirmed');
2382
2430
  }
2383
2431
  }, [release]);
2432
+ React.useEffect(function () {
2433
+ if (foundTransaction && foundTransaction.id && foundTransaction.status) {
2434
+ var newTransaction;
2435
+
2436
+ if (foundTransaction.id.toLowerCase() != transaction.id.toLowerCase()) {
2437
+ newTransaction = Object.assign({}, transaction, {
2438
+ id: foundTransaction.id,
2439
+ url: web3Blockchains.Blockchain.findByName(transaction.blockchain).explorerUrlFor({
2440
+ transaction: foundTransaction
2441
+ })
2442
+ });
2443
+ setTransaction(newTransaction);
2444
+ }
2445
+
2446
+ if (foundTransaction.status == 'success') {
2447
+ paymentConfirmed(newTransaction || transaction);
2448
+ } else if (foundTransaction.status == 'failed') {
2449
+ paymentFailed(newTransaction || transaction);
2450
+ }
2451
+ }
2452
+ }, [foundTransaction, transaction]);
2384
2453
  React.useEffect(function () {
2385
2454
  if (selectedRoute) {
2386
2455
  var fromToken = selectedRoute.fromToken;
2387
2456
  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];
2457
+ Promise.all([fromToken.name(), fromToken.symbol(), fromToken.readable(selectedRoute.fromAmount)]).then(function (_ref2) {
2458
+ var _ref3 = _slicedToArray(_ref2, 3),
2459
+ name = _ref3[0],
2460
+ symbol = _ref3[1],
2461
+ amount = _ref3[2];
2393
2462
 
2394
2463
  setPayment({
2395
2464
  route: selectedRoute,
@@ -2500,6 +2569,7 @@
2500
2569
  whitelist: props.whitelist,
2501
2570
  blacklist: props.blacklist,
2502
2571
  event: props.event,
2572
+ fee: props.fee,
2503
2573
  apiKey: apiKey
2504
2574
  }).then(function (routes) {
2505
2575
  if (routes.length == 0) {
@@ -2740,7 +2810,7 @@
2740
2810
  });
2741
2811
 
2742
2812
  var format = (function (input) {
2743
- var _float = parseFloat(input);
2813
+ var _float = round(input);
2744
2814
 
2745
2815
  var floatToString = _float.toString();
2746
2816
 
@@ -2774,13 +2844,14 @@
2774
2844
 
2775
2845
  var _useContext5 = React.useContext(ConfigurationContext),
2776
2846
  currencyCode = _useContext5.currencyCode,
2777
- configuredAmount = _useContext5.amount;
2847
+ amountConfiguration = _useContext5.amount;
2778
2848
 
2779
2849
  var _useContext6 = React.useContext(PaymentRoutingContext);
2780
2850
  _useContext6.allRoutes;
2781
2851
 
2782
- var min = _typeof(configuredAmount) == "object" && configuredAmount.min ? configuredAmount.min : 1;
2783
- var step = _typeof(configuredAmount) == "object" && configuredAmount.step ? configuredAmount.step : 1;
2852
+ var min = _typeof(amountConfiguration) == "object" && amountConfiguration.min ? amountConfiguration.min : 1;
2853
+ var step = _typeof(amountConfiguration) == "object" && amountConfiguration.step ? amountConfiguration.step : 1;
2854
+ var displayedCurrencyCode = amountConfiguration != undefined && amountConfiguration.token ? null : currencyCode;
2784
2855
 
2785
2856
  var changeAmountAndGoBack = function changeAmountAndGoBack() {
2786
2857
  setAmount(toValidValue(parseFloat(inputAmount)));
@@ -2822,7 +2893,7 @@
2822
2893
  className: "LineHeightL FontSizeL TextCenter"
2823
2894
  }, "Change Amount"), /*#__PURE__*/React__default["default"].createElement("div", {
2824
2895
  className: "FontSizeL TextCenter FontWeightBold"
2825
- }, /*#__PURE__*/React__default["default"].createElement("strong", null, currencyCode))),
2896
+ }, /*#__PURE__*/React__default["default"].createElement("strong", null, displayedCurrencyCode))),
2826
2897
  body: /*#__PURE__*/React__default["default"].createElement("div", {
2827
2898
  className: "MaxHeight PaddingTopXS"
2828
2899
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -3125,13 +3196,14 @@
3125
3196
 
3126
3197
  var Footer = (function () {
3127
3198
  var _useContext = React.useContext(ConfigurationContext),
3128
- currencyCode = _useContext.currencyCode;
3199
+ currencyCode = _useContext.currencyCode,
3200
+ configuredAmount = _useContext.amount;
3129
3201
 
3130
3202
  var _useContext2 = React.useContext(ChangableAmountContext),
3131
3203
  amount = _useContext2.amount;
3132
3204
  _useContext2.amountsMissing;
3133
3205
 
3134
- var _useContext3 = React.useContext(TrackingContext),
3206
+ var _useContext3 = React.useContext(PaymentTrackingContext),
3135
3207
  tracking = _useContext3.tracking,
3136
3208
  release = _useContext3.release,
3137
3209
  forwardTo = _useContext3.forwardTo,
@@ -3148,8 +3220,8 @@
3148
3220
  var _useContext5 = React.useContext(PaymentValueContext),
3149
3221
  paymentValue = _useContext5.paymentValue;
3150
3222
 
3151
- var _useContext6 = React.useContext(reactDialogStack.NavigateStackContext),
3152
- navigate = _useContext6.navigate;
3223
+ var _useContext6 = React.useContext(reactDialogStack.NavigateStackContext);
3224
+ _useContext6.navigate;
3153
3225
 
3154
3226
  var _useContext7 = React.useContext(ClosableContext),
3155
3227
  close = _useContext7.close;
@@ -3279,6 +3351,19 @@
3279
3351
  };
3280
3352
 
3281
3353
  var mainAction = function mainAction() {
3354
+ var displayedAmount;
3355
+
3356
+ if (amount && (configuredAmount == undefined || configuredAmount.token != true)) {
3357
+ displayedAmount = new localCurrency.Currency({
3358
+ amount: amount.toFixed(2),
3359
+ code: currencyCode
3360
+ }).toString();
3361
+ } else if (paymentValue && paymentValue.toString().length) {
3362
+ displayedAmount = paymentValue.toString();
3363
+ } else {
3364
+ displayedAmount = "".concat(payment.symbol, " ").concat(payment.amount);
3365
+ }
3366
+
3282
3367
  if (paymentState == 'initialized' || paymentState == 'approving') {
3283
3368
  return /*#__PURE__*/React__default["default"].createElement("button", {
3284
3369
  className: ["ButtonPrimary", payment.route.approvalRequired && !payment.route.directTransfer ? 'disabled' : ''].join(' '),
@@ -3287,14 +3372,9 @@
3287
3372
  return;
3288
3373
  }
3289
3374
 
3290
- pay({
3291
- navigate: navigate
3292
- });
3375
+ pay();
3293
3376
  }
3294
- }, "Pay ", amount ? new localCurrency.Currency({
3295
- amount: amount.toFixed(2),
3296
- code: currencyCode
3297
- }).toString() : paymentValue.toString().length ? paymentValue.toString() : "".concat(payment.amount));
3377
+ }, "Pay ", displayedAmount);
3298
3378
  } else if (paymentState == 'paying') {
3299
3379
  return /*#__PURE__*/React__default["default"].createElement("a", {
3300
3380
  className: "ButtonPrimary",
@@ -3516,7 +3596,11 @@
3516
3596
  open = _useContext.open,
3517
3597
  close = _useContext.close;
3518
3598
 
3599
+ var _useContext2 = React.useContext(NavigateContext),
3600
+ setNavigate = _useContext2.setNavigate;
3601
+
3519
3602
  return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
3603
+ setNavigate: setNavigate,
3520
3604
  open: open,
3521
3605
  close: close,
3522
3606
  start: "DonationOverview",
@@ -3532,7 +3616,28 @@
3532
3616
  });
3533
3617
  });
3534
3618
 
3535
- var TrackingProvider = (function (props) {
3619
+ var NavigateProvider = (function (props) {
3620
+ var navigator;
3621
+
3622
+ var setNavigate = function setNavigate(_navigator) {
3623
+ navigator = _navigator;
3624
+ };
3625
+
3626
+ var navigate = function navigate(dialog) {
3627
+ if (navigator) {
3628
+ navigator(dialog);
3629
+ }
3630
+ };
3631
+
3632
+ return /*#__PURE__*/React__default["default"].createElement(NavigateContext.Provider, {
3633
+ value: {
3634
+ navigate: navigate,
3635
+ setNavigate: setNavigate
3636
+ }
3637
+ }, props.children);
3638
+ });
3639
+
3640
+ var PaymentTrackingProvider = (function (props) {
3536
3641
  var _useContext = React.useContext(ErrorContext),
3537
3642
  errorCallback = _useContext.errorCallback;
3538
3643
 
@@ -3626,14 +3731,14 @@
3626
3731
 
3627
3732
  var retryStartTracking = function retryStartTracking(transaction, afterBlock, paymentRoute, attempt) {
3628
3733
  attempt = parseInt(attempt || 1, 10);
3629
- console.log('RETRY TRACKING ATTEMPT ', attempt);
3734
+ console.log('RETRYING PAYMENT TRACKING ATTEMPT ', attempt);
3630
3735
 
3631
3736
  if (attempt < 3) {
3632
3737
  setTimeout(function () {
3633
3738
  startTracking(transaction, afterBlock, paymentRoute, attempt + 1);
3634
3739
  }, 3000);
3635
3740
  } else {
3636
- console.log('TRACKING FAILED AFTER 3 ATTEMPTS!');
3741
+ console.log('PAYMENT TRACKING FAILED AFTER 3 ATTEMPTS!');
3637
3742
  setTrackingFailed(true);
3638
3743
 
3639
3744
  if (typeof errorCallback == 'function') {
@@ -3648,6 +3753,9 @@
3648
3753
  if (track.endpoint) {
3649
3754
  return fetch(track.endpoint, {
3650
3755
  method: 'POST',
3756
+ headers: {
3757
+ 'Content-Type': 'application/json'
3758
+ },
3651
3759
  body: JSON.stringify(payment)
3652
3760
  });
3653
3761
  } else if (track.method) {
@@ -3667,12 +3775,12 @@
3667
3775
  to_token: paymentRoute.toToken.address
3668
3776
  }).then(function (response) {
3669
3777
  if (response.status == 200) {
3670
- console.log('TRACKING INITIALIZED');
3778
+ console.log('PAYMENT TRACKING INITIALIZED');
3671
3779
  } else {
3672
3780
  retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
3673
3781
  }
3674
3782
  })["catch"](function (error) {
3675
- console.log('TRACKING FAILED', error);
3783
+ console.log('PAYMENT TRACKING FAILED', error);
3676
3784
  retryStartTracking(transaction, afterBlock, paymentRoute, attempt);
3677
3785
  });
3678
3786
  };
@@ -3709,6 +3817,9 @@
3709
3817
  if (track.poll.endpoint) {
3710
3818
  fetch(track.poll.endpoint, {
3711
3819
  method: 'POST',
3820
+ headers: {
3821
+ 'Content-Type': 'application/json'
3822
+ },
3712
3823
  body: JSON.stringify(payment)
3713
3824
  }).then(handleResponse);
3714
3825
  } else if (track.poll.method) {
@@ -3737,7 +3848,7 @@
3737
3848
  startTracking(transaction, afterBlock, paymentRoute);
3738
3849
  };
3739
3850
 
3740
- return /*#__PURE__*/React__default["default"].createElement(TrackingContext.Provider, {
3851
+ return /*#__PURE__*/React__default["default"].createElement(PaymentTrackingContext.Provider, {
3741
3852
  value: {
3742
3853
  tracking: tracking,
3743
3854
  initializeTracking: initializeTracking,
@@ -3748,6 +3859,134 @@
3748
3859
  }, props.children);
3749
3860
  });
3750
3861
 
3862
+ var TransactionTrackingProvider = (function (props) {
3863
+ var _useState = React.useState(),
3864
+ _useState2 = _slicedToArray(_useState, 2),
3865
+ givenTransaction = _useState2[0],
3866
+ setGivenTransaction = _useState2[1];
3867
+
3868
+ var _useState3 = React.useState(),
3869
+ _useState4 = _slicedToArray(_useState3, 2),
3870
+ foundTransaction = _useState4[0],
3871
+ setFoundTransaction = _useState4[1];
3872
+
3873
+ var _useState5 = React.useState(false),
3874
+ _useState6 = _slicedToArray(_useState5, 2),
3875
+ polling = _useState6[0],
3876
+ setPolling = _useState6[1];
3877
+
3878
+ var _useContext = React.useContext(ErrorContext);
3879
+ _useContext.errorCallback;
3880
+
3881
+ React.useEffect(function () {
3882
+ if (polling) {
3883
+ var pollingInterval = setInterval(function () {
3884
+ fetch("https://api.depay.fi/v2/transactions/".concat(givenTransaction.blockchain, "/").concat(givenTransaction.from.toLowerCase(), "/").concat(givenTransaction.nonce)).then(function (response) {
3885
+ if (response.status == 200) {
3886
+ response.json().then(function (data) {
3887
+ if (data.status != 'pending') {
3888
+ setFoundTransaction({
3889
+ id: data.external_id,
3890
+ status: data.status
3891
+ });
3892
+ setPolling(false);
3893
+ }
3894
+ });
3895
+ }
3896
+ });
3897
+ }, 5000);
3898
+ return function () {
3899
+ clearInterval(pollingInterval);
3900
+ };
3901
+ }
3902
+ }, [polling]);
3903
+
3904
+ var createTracking = function createTracking(transaction, afterBlock, attempt) {
3905
+ if (attempt > 3) {
3906
+ console.log('TRANSACTION TRACKING FAILED AFTER 3 ATTEMPTS!');
3907
+ return;
3908
+ }
3909
+
3910
+ fetch('https://api.depay.fi/v2/transactions', {
3911
+ method: 'POST',
3912
+ headers: {
3913
+ 'X-Api-Key': apiKey,
3914
+ 'Content-Type': 'application/json'
3915
+ },
3916
+ body: JSON.stringify({
3917
+ id: transaction.id,
3918
+ after_block: afterBlock,
3919
+ blockchain: transaction.blockchain,
3920
+ sender: transaction.from.toLowerCase(),
3921
+ nonce: transaction.nonce
3922
+ })
3923
+ }).then(function (response) {
3924
+ if (response.status == 200 || response.status == 201) {
3925
+ console.log('TRANSACTION TRACKING INITIALIZED');
3926
+ } else {
3927
+ console.log('TRANSACTION TRACKING FAILED', response);
3928
+ setTimeout(function () {
3929
+ createTracking(transaction, afterBlock, attempt + 1);
3930
+ }, 3000);
3931
+ }
3932
+ })["catch"](function (error) {
3933
+ console.log('TRANSACTION TRACKING FAILED', error);
3934
+ setTimeout(function () {
3935
+ createTracking(transaction, afterBlock, attempt + 1);
3936
+ }, 3000);
3937
+ });
3938
+ };
3939
+
3940
+ var openSocket = function openSocket(transaction) {
3941
+ var socket = new WebSocket('wss://integrate.depay.fi/cable');
3942
+
3943
+ socket.onopen = function (event) {
3944
+ var msg = {
3945
+ command: 'subscribe',
3946
+ identifier: JSON.stringify({
3947
+ blockchain: transaction.blockchain,
3948
+ sender: transaction.from.toLowerCase(),
3949
+ nonce: transaction.nonce,
3950
+ channel: 'TransactionChannel'
3951
+ })
3952
+ };
3953
+ socket.send(JSON.stringify(msg));
3954
+ };
3955
+
3956
+ socket.onclose = function (event) {};
3957
+
3958
+ socket.onmessage = function (event) {
3959
+ var item = JSON.parse(event.data);
3960
+
3961
+ if (item.type === "ping") {
3962
+ return;
3963
+ }
3964
+
3965
+ if (item.message && item.message.status && item.message.status != 'pending') {
3966
+ setFoundTransaction(item.message);
3967
+ }
3968
+ };
3969
+
3970
+ socket.onerror = function (error) {
3971
+ console.log('WebSocket Error: ' + error);
3972
+ };
3973
+ };
3974
+
3975
+ var initializeTracking = function initializeTracking(transaction, afterBlock) {
3976
+ setGivenTransaction(transaction);
3977
+ createTracking(transaction, afterBlock, 1);
3978
+ openSocket(transaction);
3979
+ setPolling(true);
3980
+ };
3981
+
3982
+ return /*#__PURE__*/React__default["default"].createElement(TransactionTrackingContext.Provider, {
3983
+ value: {
3984
+ initializeTracking: initializeTracking,
3985
+ foundTransaction: foundTransaction
3986
+ }
3987
+ }, props.children);
3988
+ });
3989
+
3751
3990
  var WalletProvider = (function (props) {
3752
3991
  var _useContext = React.useContext(ErrorContext);
3753
3992
  _useContext.setError;
@@ -3887,9 +4126,9 @@
3887
4126
  container: container,
3888
4127
  connected: connected,
3889
4128
  unmount: unmount
3890
- }, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
4129
+ }, /*#__PURE__*/React__default["default"].createElement(NavigateProvider, null, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
3891
4130
  accept: accept
3892
- }, /*#__PURE__*/React__default["default"].createElement(TrackingProvider, {
4131
+ }, /*#__PURE__*/React__default["default"].createElement(TransactionTrackingProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentTrackingProvider, {
3893
4132
  document: ensureDocument(document)
3894
4133
  }, /*#__PURE__*/React__default["default"].createElement(DonationRoutingProvider, {
3895
4134
  container: container,
@@ -3897,7 +4136,7 @@
3897
4136
  }, /*#__PURE__*/React__default["default"].createElement(DonationStack, {
3898
4137
  document: document,
3899
4138
  container: container
3900
- }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))));
4139
+ }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))))));
3901
4140
  };
3902
4141
  });
3903
4142
  return _context2.abrupt("return", {
@@ -3948,6 +4187,9 @@
3948
4187
  return new Promise(function (resolve, reject) {
3949
4188
  fetch(endpoint, {
3950
4189
  method: 'POST',
4190
+ headers: {
4191
+ 'Content-Type': 'application/json'
4192
+ },
3951
4193
  body: JSON.stringify({
3952
4194
  message: message,
3953
4195
  signature: signature
@@ -4124,7 +4366,8 @@
4124
4366
  whitelist: props.whitelist,
4125
4367
  blacklist: props.blacklist,
4126
4368
  event: props.event,
4127
- setMaxRoute: setMaxRoute
4369
+ setMaxRoute: setMaxRoute,
4370
+ fee: props.fee
4128
4371
  }, props.children));
4129
4372
  });
4130
4373
 
@@ -4260,7 +4503,11 @@
4260
4503
  open = _useContext.open,
4261
4504
  close = _useContext.close;
4262
4505
 
4506
+ var _useContext2 = React.useContext(NavigateContext),
4507
+ setNavigate = _useContext2.setNavigate;
4508
+
4263
4509
  return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
4510
+ setNavigate: setNavigate,
4264
4511
  open: open,
4265
4512
  close: close,
4266
4513
  start: "PaymentOverview",
@@ -4317,12 +4564,12 @@
4317
4564
 
4318
4565
  var Payment = /*#__PURE__*/function () {
4319
4566
  var _ref4 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee2(_ref3) {
4320
- var accept, amount, event, sent, confirmed, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, document, unmount;
4567
+ var accept, amount, event, sent, confirmed, failed, error, critical, style, whitelist, blacklist, providers, currency, connected, closed, track, fee, document, unmount;
4321
4568
  return regenerator.wrap(function _callee2$(_context2) {
4322
4569
  while (1) {
4323
4570
  switch (_context2.prev = _context2.next) {
4324
4571
  case 0:
4325
- 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;
4572
+ 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, fee = _ref3.fee, document = _ref3.document;
4326
4573
  _context2.prev = 1;
4327
4574
  _context2.next = 4;
4328
4575
  return preflight$1({
@@ -4352,7 +4599,8 @@
4352
4599
  whitelist: whitelist,
4353
4600
  blacklist: blacklist,
4354
4601
  providers: providers,
4355
- track: track
4602
+ track: track,
4603
+ fee: fee
4356
4604
  }
4357
4605
  }, /*#__PURE__*/React__default["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default["default"].createElement(ClosableProvider, {
4358
4606
  unmount: unmount
@@ -4361,14 +4609,15 @@
4361
4609
  container: container,
4362
4610
  connected: connected,
4363
4611
  unmount: unmount
4364
- }, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
4612
+ }, /*#__PURE__*/React__default["default"].createElement(NavigateProvider, null, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
4365
4613
  accept: accept
4366
4614
  }, /*#__PURE__*/React__default["default"].createElement(PaymentAmountRoutingProvider, {
4367
4615
  accept: accept,
4368
4616
  whitelist: whitelist,
4369
4617
  blacklist: blacklist,
4370
- event: event
4371
- }, /*#__PURE__*/React__default["default"].createElement(TrackingProvider, {
4618
+ event: event,
4619
+ fee: fee
4620
+ }, /*#__PURE__*/React__default["default"].createElement(TransactionTrackingProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentTrackingProvider, {
4372
4621
  document: ensureDocument(document)
4373
4622
  }, /*#__PURE__*/React__default["default"].createElement(PaymentProvider, {
4374
4623
  container: container,
@@ -4376,7 +4625,7 @@
4376
4625
  }, /*#__PURE__*/React__default["default"].createElement(PaymentValueProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentStack, {
4377
4626
  document: document,
4378
4627
  container: container
4379
- }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))))));
4628
+ }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))))))));
4380
4629
  };
4381
4630
  });
4382
4631
  return _context2.abrupt("return", {
@@ -4521,7 +4770,8 @@
4521
4770
  _useContext.amount;
4522
4771
 
4523
4772
  var _useContext2 = React.useContext(ConfigurationContext),
4524
- tokenImage = _useContext2.tokenImage;
4773
+ tokenImage = _useContext2.tokenImage,
4774
+ amountConfiguration = _useContext2.amount;
4525
4775
 
4526
4776
  var _useContext3 = React.useContext(PaymentValueContext),
4527
4777
  paymentValue = _useContext3.paymentValue;
@@ -4543,7 +4793,7 @@
4543
4793
  setSalePerTokenValue = _useState2[1];
4544
4794
 
4545
4795
  React.useEffect(function () {
4546
- if (paymentValue) {
4796
+ if (paymentValue && (amountConfiguration == undefined || amountConfiguration.token != true)) {
4547
4797
  setSalePerTokenValue(new localCurrency.Currency({
4548
4798
  amount: (paymentValue.amount / parseFloat(toTokenReadableAmount)).toFixed(2),
4549
4799
  code: paymentValue.code
@@ -4651,7 +4901,11 @@
4651
4901
  open = _useContext.open,
4652
4902
  close = _useContext.close;
4653
4903
 
4904
+ var _useContext2 = React.useContext(NavigateContext),
4905
+ setNavigate = _useContext2.setNavigate;
4906
+
4654
4907
  return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
4908
+ setNavigate: setNavigate,
4655
4909
  open: open,
4656
4910
  close: close,
4657
4911
  start: "SaleOverview",
@@ -4762,9 +5016,9 @@
4762
5016
  container: container,
4763
5017
  connected: connected,
4764
5018
  unmount: unmount
4765
- }, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
5019
+ }, /*#__PURE__*/React__default["default"].createElement(NavigateProvider, null, /*#__PURE__*/React__default["default"].createElement(ConversionRateProvider, null, /*#__PURE__*/React__default["default"].createElement(ChangableAmountProvider, {
4766
5020
  accept: accept
4767
- }, /*#__PURE__*/React__default["default"].createElement(TrackingProvider, {
5021
+ }, /*#__PURE__*/React__default["default"].createElement(TransactionTrackingProvider, null, /*#__PURE__*/React__default["default"].createElement(PaymentTrackingProvider, {
4768
5022
  document: ensureDocument(document)
4769
5023
  }, /*#__PURE__*/React__default["default"].createElement(SaleRoutingProvider, {
4770
5024
  container: container,
@@ -4772,7 +5026,7 @@
4772
5026
  }, /*#__PURE__*/React__default["default"].createElement(SaleStack, {
4773
5027
  document: document,
4774
5028
  container: container
4775
- }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))));
5029
+ }), /*#__PURE__*/React__default["default"].createElement(PoweredBy, null))))))))))));
4776
5030
  };
4777
5031
  });
4778
5032
  return _context2.abrupt("return", {