@depay/widgets 9.1.1 → 9.2.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
@@ -1217,7 +1217,7 @@
1217
1217
  });
1218
1218
 
1219
1219
  var CardStyle = (function (style) {
1220
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 13px;\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: 8px;\n min-height: 76px;\n padding: 16px 10px;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 69px;\n padding: 7px 21px;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 19px;\n line-height: 40px;\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: 17px;\n }\n\n .Card.Row .CardImage {\n width: 40px;\n }\n\n .Card.Row .CardImage img {\n height: 30px;\n width: 30px;\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: 8px 8px;\n margin: 0;\n }\n\n .CardImage.small {\n width: 27px;\n }\n\n .CardImage.small img {\n height: 27px;\n width: 27px;\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 7px;\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: 58px;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 27px;\n padding-left: 10px;\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: 9999px;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 45px;\n position: relative;\n vertical-align: middle;\n width: 45px;\n }\n\n .CardImage.square img {\n border-radius: 0;\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: 15px;\n color: rgb(150,150,150);\n line-height: 20px;\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 21px;\n line-height: 26px;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText.small, .CardText.small small {\n font-size: 18px;\n color: rgb(150,150,150);\n line-height: 20px;\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1220
+ return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 13px;\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: 8px;\n min-height: 76px;\n padding: 16px 10px;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 69px;\n padding: 7px 21px;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 19px;\n line-height: 40px;\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 .CardTokenFullName {\n width: 100%;\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: 17px;\n }\n\n .Card.Row .CardImage {\n width: 40px;\n }\n\n .Card.Row .CardImage img {\n height: 30px;\n width: 30px;\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: 8px 8px;\n margin: 0;\n }\n\n .CardImage.small {\n width: 27px;\n }\n\n .CardImage.small img {\n height: 27px;\n width: 27px;\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 7px;\n }\n\n .CardImage {\n display: inline-flex;\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 58px;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 27px;\n padding-left: 10px;\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: 9999px;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 45px;\n position: relative;\n vertical-align: middle;\n width: 45px;\n }\n\n .CardImage.square img {\n border-radius: 0;\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: 15px;\n color: rgb(150,150,150);\n line-height: 20px;\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 21px;\n line-height: 26px;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText.small, .CardText.small small {\n font-size: 18px;\n color: rgb(150,150,150);\n line-height: 20px;\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1221
1221
  });
1222
1222
 
1223
1223
  var DialogStyle = (function (style) {
@@ -1293,7 +1293,7 @@
1293
1293
  });
1294
1294
 
1295
1295
  var TextStyle = (function (style) {
1296
- return "\n\n * {\n color: ".concat(style.colors.text, ";\n }\n\n h1, h2, h3, h4, h5, h6 {\n display: block;\n }\n\n .Text {\n font-size: 16px;\n line-height: 24px\n }\n\n .TextLeft, .TextLeft * {\n text-align: left;\n }\n\n .TextCenter, .TextCenter * {\n text-align: center;\n }\n\n .LineHeightL {\n line-height: 32px;\n }\n\n .ErrorSnippetText {\n background: rgb(30, 30, 20);\n border-radius: 19px;\n border: 8px solid rgb(30, 30, 20);\n color: #00FF41;\n font-size: 15px;\n font-style: italic;\n max-height: 100px;\n padding: 6px;\n overflow-wrap: break-word;\n overflow-y: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n ");
1296
+ return "\n\n * {\n color: ".concat(style.colors.text, ";\n }\n\n h1, h2, h3, h4, h5, h6 {\n display: block;\n }\n\n .Text {\n font-size: 16px;\n line-height: 24px\n }\n\n .TextLeft, .TextLeft * {\n text-align: left !important;\n }\n\n .TextCenter, .TextCenter * {\n text-align: center;\n }\n\n .LineHeightL {\n line-height: 32px;\n }\n\n .ErrorSnippetText {\n background: rgb(30, 30, 20);\n border-radius: 19px;\n border: 8px solid rgb(30, 30, 20);\n color: #00FF41;\n font-size: 15px;\n font-style: italic;\n max-height: 100px;\n padding: 6px;\n overflow-wrap: break-word;\n overflow-y: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n }\n ");
1297
1297
  });
1298
1298
 
1299
1299
  var TokenAmountStyle = (function () {
@@ -19351,12 +19351,12 @@
19351
19351
  return obj;
19352
19352
  }
19353
19353
 
19354
- function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19355
- function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19354
+ function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19355
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19356
19356
  var prepareAcceptedPayments = function prepareAcceptedPayments(accept) {
19357
19357
  var toAddress = _typeof(accept.receiver) == 'object' ? accept.receiver.address : accept.receiver;
19358
19358
  var toContract = _typeof(accept.receiver) == 'object' ? accept.receiver : undefined;
19359
- return _objectSpread$1(_objectSpread$1({}, accept), {}, {
19359
+ return _objectSpread$3(_objectSpread$3({}, accept), {}, {
19360
19360
  toAddress: toAddress,
19361
19361
  toContract: toContract
19362
19362
  });
@@ -19384,8 +19384,8 @@
19384
19384
  });
19385
19385
  });
19386
19386
 
19387
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19388
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19387
+ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19388
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19389
19389
  var PaymentRoutingProvider = (function (props) {
19390
19390
  var _useState = React.useState(),
19391
19391
  _useState2 = _slicedToArray(_useState, 2),
@@ -19547,7 +19547,7 @@
19547
19547
  return regenerator.wrap(function _callee5$(_context5) {
19548
19548
  while (1) switch (_context5.prev = _context5.next) {
19549
19549
  case 0:
19550
- setSelectedRoute(_objectSpread({}, updatedRouteWithNewPrice));
19550
+ setSelectedRoute(_objectSpread$2({}, updatedRouteWithNewPrice));
19551
19551
  setUpdatedRouteWithNewPrice(null);
19552
19552
  case 2:
19553
19553
  case "end":
@@ -20502,7 +20502,7 @@
20502
20502
  return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
20503
20503
  stacked: true,
20504
20504
  header: /*#__PURE__*/React__default["default"].createElement("div", {
20505
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
20505
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
20506
20506
  }, /*#__PURE__*/React__default["default"].createElement("h1", {
20507
20507
  className: "LineHeightL FontSizeL"
20508
20508
  }, "Wrong Network")),
@@ -20643,12 +20643,13 @@
20643
20643
  var openSocket = function openSocket(transaction) {
20644
20644
  var socket = new WebSocket('wss://integrate.depay.com/cable');
20645
20645
  socket.onopen = function (event) {
20646
+ var _transaction$nonce;
20646
20647
  var msg = {
20647
20648
  command: 'subscribe',
20648
20649
  identifier: JSON.stringify({
20649
20650
  blockchain: transaction.blockchain,
20650
20651
  sender: transaction.from,
20651
- nonce: transaction.nonce.toString(),
20652
+ nonce: transaction === null || transaction === void 0 ? void 0 : (_transaction$nonce = transaction.nonce) === null || _transaction$nonce === void 0 ? void 0 : _transaction$nonce.toString(),
20652
20653
  channel: 'PaymentChannel'
20653
20654
  })
20654
20655
  };
@@ -20721,12 +20722,12 @@
20721
20722
  }
20722
20723
  };
20723
20724
  var startTracking = function startTracking(transaction, afterBlock, paymentRoute, attempt) {
20724
- var _paymentRoute$feeAmou;
20725
+ var _transaction$nonce2, _paymentRoute$feeAmou;
20725
20726
  callTracking({
20726
20727
  blockchain: transaction.blockchain,
20727
20728
  transaction: transaction.id,
20728
20729
  sender: transaction.from,
20729
- nonce: transaction.nonce.toString(),
20730
+ nonce: transaction === null || transaction === void 0 ? void 0 : (_transaction$nonce2 = transaction.nonce) === null || _transaction$nonce2 === void 0 ? void 0 : _transaction$nonce2.toString(),
20730
20731
  after_block: afterBlock.toString(),
20731
20732
  from_token: paymentRoute.fromToken.address,
20732
20733
  from_amount: paymentRoute.fromAmount.toString(),
@@ -20744,6 +20745,7 @@
20744
20745
  });
20745
20746
  };
20746
20747
  var pollStatus = function pollStatus(polling, transaction, afterBlock, paymentRoute, pollingInterval) {
20748
+ var _transaction$nonce3;
20747
20749
  if (!polling || transaction == undefined || afterBlock == undefined || paymentRoute == undefined) {
20748
20750
  return;
20749
20751
  }
@@ -20751,7 +20753,7 @@
20751
20753
  blockchain: transaction.blockchain,
20752
20754
  transaction: transaction.id,
20753
20755
  sender: transaction.from,
20754
- nonce: transaction.nonce.toString(),
20756
+ nonce: transaction === null || transaction === void 0 ? void 0 : (_transaction$nonce3 = transaction.nonce) === null || _transaction$nonce3 === void 0 ? void 0 : _transaction$nonce3.toString(),
20755
20757
  after_block: afterBlock.toString(),
20756
20758
  to_token: paymentRoute.toToken.address
20757
20759
  };
@@ -20804,6 +20806,7 @@
20804
20806
  };
20805
20807
  }, [polling, transaction, afterBlock, paymentRoute]);
20806
20808
  var storePayment = function storePayment(transaction, afterBlock, paymentRoute, attempt) {
20809
+ var _transaction$nonce4;
20807
20810
  fetch('https://public.depay.com/payments', {
20808
20811
  headers: {
20809
20812
  'Content-Type': 'application/json'
@@ -20813,7 +20816,7 @@
20813
20816
  blockchain: transaction.blockchain,
20814
20817
  transaction: transaction.id,
20815
20818
  sender: transaction.from,
20816
- nonce: transaction.nonce.toString(),
20819
+ nonce: transaction === null || transaction === void 0 ? void 0 : (_transaction$nonce4 = transaction.nonce) === null || _transaction$nonce4 === void 0 ? void 0 : _transaction$nonce4.toString(),
20817
20820
  receiver: paymentRoute.toAddress,
20818
20821
  token: paymentRoute.toToken.address,
20819
20822
  amount: paymentRoute.fee ? ethers.ethers.utils.formatUnits(paymentRoute.transaction.params.amounts[1], paymentRoute.toDecimals) : ethers.ethers.utils.formatUnits(paymentRoute.toAmount, paymentRoute.toDecimals),
@@ -20991,6 +20994,7 @@
20991
20994
  }
20992
20995
  }, [polling]);
20993
20996
  var createTracking = function createTracking(transaction, afterBlock, attempt) {
20997
+ var _transaction$nonce;
20994
20998
  if (attempt > 3) {
20995
20999
  console.log('TRANSACTION TRACKING FAILED AFTER 3 ATTEMPTS!');
20996
21000
  return;
@@ -21005,7 +21009,7 @@
21005
21009
  after_block: afterBlock.toString(),
21006
21010
  blockchain: transaction.blockchain,
21007
21011
  sender: transaction.from,
21008
- nonce: transaction.nonce.toString()
21012
+ nonce: transaction === null || transaction === void 0 ? void 0 : (_transaction$nonce = transaction.nonce) === null || _transaction$nonce === void 0 ? void 0 : _transaction$nonce.toString()
21009
21013
  })
21010
21014
  }).then(function (response) {
21011
21015
  if (response.status == 200 || response.status == 201) {
@@ -21026,12 +21030,13 @@
21026
21030
  var openSocket = function openSocket(transaction) {
21027
21031
  var socket = new WebSocket('wss://integrate.depay.com/cable');
21028
21032
  socket.onopen = function (event) {
21033
+ var _transaction$nonce2;
21029
21034
  var msg = {
21030
21035
  command: 'subscribe',
21031
21036
  identifier: JSON.stringify({
21032
21037
  blockchain: transaction.blockchain,
21033
21038
  sender: transaction.from,
21034
- nonce: transaction.nonce.toString(),
21039
+ nonce: transaction === null || transaction === void 0 ? void 0 : (_transaction$nonce2 = transaction.nonce) === null || _transaction$nonce2 === void 0 ? void 0 : _transaction$nonce2.toString(),
21035
21040
  channel: 'TransactionChannel'
21036
21041
  })
21037
21042
  };
@@ -22292,51 +22297,52 @@
22292
22297
  };
22293
22298
  });
22294
22299
 
22295
- var ConfirmTokenSelectionDialog = (function (props) {
22300
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22301
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22302
+ var ConfirmNFTSelectionDialog = (function (props) {
22303
+ var _selection$nft, _selection$blockchain;
22296
22304
  var _useContext = React.useContext(SelectionContext),
22297
22305
  selection = _useContext.selection;
22306
+ _useContext.setSelection;
22298
22307
  var _useContext2 = React.useContext(ClosableContext),
22299
22308
  setOpen = _useContext2.setOpen;
22300
- var token = selection.token;
22301
- var address = token.address || token.external_id;
22302
- var logo = token.logo || token.image;
22303
- var blockchain = web3Blockchains.Blockchain.findByName(token.blockchain);
22304
- var age = token.first_transfer ? msToTime(new Date() - new Date(token.first_transfer)) : undefined;
22305
- if (age) {
22309
+ var _useContext3 = React.useContext(reactDialogStack.NavigateStackContext),
22310
+ navigate = _useContext3.navigate;
22311
+ var age, holders;
22312
+ if (selection.nft.createdAt) {
22313
+ age = msToTime(new Date() - new Date(selection.nft.createdAt));
22306
22314
  age = [age.year && age.year >= 1 ? age.year >= 2 ? "".concat(age.year, " years") : "1 year" : undefined, age.month && age.month >= 1 ? age.month >= 2 ? "".concat(age.month, " months") : "1 month" : undefined, age.day && age.day >= 1 && age.month <= 1 && age.year < 1 ? age.day >= 2 ? "".concat(age.day, " days !!!") : "1 day !!!" : undefined].filter(function (n) {
22307
22315
  return n;
22308
22316
  }).join(' ');
22309
22317
  }
22310
- var holders = token.unique_senders ? token.unique_senders : undefined;
22311
- if (holders) {
22312
- if (holders > 1000000) {
22318
+ if (selection.nft.holders) {
22319
+ if (selection.nft.holders > 1000000) {
22313
22320
  holders = "Millions";
22314
- } else if (holders > 100000) {
22321
+ } else if (selection.nft.holders > 100000) {
22315
22322
  holders = "Hundreds of Thousands";
22316
- } else if (holders > 2000) {
22323
+ } else if (selection.nft.holders > 2000) {
22317
22324
  holders = "Thousands";
22318
- } else if (holders > 100) {
22325
+ } else if (selection.nft.holders > 100) {
22319
22326
  holders = "Hundreds";
22320
22327
  } else {
22321
22328
  holders = "Only a Few!!!";
22322
22329
  }
22323
22330
  }
22331
+ var blockchain = ((_selection$nft = selection.nft) === null || _selection$nft === void 0 ? void 0 : _selection$nft.blockchain) || ((_selection$blockchain = selection.blockchain) === null || _selection$blockchain === void 0 ? void 0 : _selection$blockchain.name);
22332
+ if (blockchain == undefined) {
22333
+ navigate('SelectBlockchain');
22334
+ return null;
22335
+ }
22324
22336
  var onClickConfirm = function onClickConfirm() {
22325
22337
  setOpen(false);
22326
- props.resolve({
22327
- blockchain: token.blockchain,
22328
- address: token.external_id || token.address,
22329
- symbol: token.symbol,
22330
- name: token.name,
22331
- decimals: token.decimals,
22332
- logo: token.image || token.logo,
22333
- routable: token.routable
22334
- });
22338
+ props.resolve(_objectSpread$1(_objectSpread$1({}, selection.nft), {}, {
22339
+ blockchain: blockchain
22340
+ }));
22335
22341
  setTimeout(props.unmount, 300);
22336
22342
  };
22337
22343
  return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
22338
22344
  header: /*#__PURE__*/React__default["default"].createElement("div", {
22339
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
22345
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
22340
22346
  }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("h1", {
22341
22347
  className: "LineHeightL FontSizeL"
22342
22348
  }, "Confirm Selection"))),
@@ -22345,11 +22351,8 @@
22345
22351
  className: "PaddingTopS PaddingLeftM PaddingRightM"
22346
22352
  }, /*#__PURE__*/React__default["default"].createElement("div", {
22347
22353
  className: "TokenImage medium TextCenter"
22348
- }, logo && /*#__PURE__*/React__default["default"].createElement("img", {
22349
- src: logo
22350
- }), !logo && /*#__PURE__*/React__default["default"].createElement(reactTokenImage.TokenImage, {
22351
- blockchain: token.blockchain,
22352
- address: address
22354
+ }, selection.nft.image && /*#__PURE__*/React__default["default"].createElement("img", {
22355
+ src: selection.nft.image
22353
22356
  })), /*#__PURE__*/React__default["default"].createElement("div", {
22354
22357
  className: "PaddingTopS TextCenter"
22355
22358
  }, /*#__PURE__*/React__default["default"].createElement("div", {
@@ -22361,20 +22364,25 @@
22361
22364
  }, /*#__PURE__*/React__default["default"].createElement("tbody", null, /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22362
22365
  className: "TableSubTitle"
22363
22366
  }, "Address")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("a", {
22364
- className: "Link FontSizeM",
22365
- title: address,
22366
- href: blockchain.explorerUrlFor({
22367
- token: address
22367
+ className: "Link",
22368
+ title: selection.nft.address,
22369
+ href: web3Blockchains.Blockchain.findByName(blockchain).explorerUrlFor({
22370
+ token: selection.nft.address
22368
22371
  }),
22369
22372
  target: "_blank",
22370
22373
  rel: "noopener noreferrer"
22371
- }, addressEllipsis(address, 4))))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22374
+ }, addressEllipsis(selection.nft.address, 6))))), selection.nft.id && /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22372
22375
  className: "TableSubTitle"
22373
- }, "Blockchain")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, blockchain.label))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22376
+ }, "Token ID")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, selection.nft.id))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22374
22377
  className: "TableSubTitle"
22375
- }, "Symbol")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, token.symbol))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22378
+ }, "Blockchain")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, web3Blockchains.Blockchain.findByName(blockchain).label))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22376
22379
  className: "TableSubTitle"
22377
- }, "Name")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, token.name))), age && /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22380
+ }, "Name")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("a", {
22381
+ className: "Link",
22382
+ href: selection.nft.link,
22383
+ target: "_blank",
22384
+ rel: "noopener noreferrer"
22385
+ }, selection.nft.name))), age && /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22378
22386
  className: "TableSubTitle"
22379
22387
  }, "Age")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, age))), holders && /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
22380
22388
  className: "TableSubTitle"
@@ -22388,19 +22396,227 @@
22388
22396
  });
22389
22397
  });
22390
22398
 
22399
+ var OpenSea = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNjMuMjUwODg5bW0iIGhlaWdodD0iNjMuMjUwODg5bW0iIHZpZXdCb3g9IjAgMCA2My4yNTA4ODYgNjMuMjUwODg4Ij4KICA8ZyBmaWxsPSJub25lIiB0cmFuc2Zvcm09InNjYWxlKC42MzI1KSI+CiAgICA8cGF0aCBmaWxsPSIjMjA4MWUyIiBkPSJNMTAwIDUwYzAgMjcuNjEyNy0yMi4zODczIDUwLTUwIDUwUzAgNzcuNjEyNyAwIDUwIDIyLjM4NzMgMCA1MCAwYzI3LjYxODUgMCA1MCAyMi4zODczIDUwIDUweiIvPgogICAgPHBhdGggZmlsbD0iI2ZmZiIgZD0ibTI0LjY2NzkgNTEuNjgwMS4yMTU3LS4zMzkxIDEzLjAwNy0yMC4zNDc4Yy4xOTAxLS4yOTc5LjYzNy0uMjY3MS43ODA4LjA1NjUgMi4xNzMgNC44Njk5IDQuMDQ4IDEwLjkyNjUgMy4xNjk2IDE0LjY5NzEtLjM3NSAxLjU1MTQtMS40MDI0IDMuNjUyNC0yLjU1ODMgNS41OTQyLS4xNDg5LjI4MjYtLjMxMzMuNTYtLjQ4OC44MjcxLS4wODIyLjEyMzMtLjIyMDkuMTk1Mi0uMzY5OS4xOTUySDI1LjA0OGMtLjM1OTYgMC0uNTcwMi0uMzkwNC0uMzgwMS0uNjgzMnoiLz4KICAgIDxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik04Mi42NDQ0IDU1LjQ2MXYzLjIyMDljMCAuMTg0OS0uMTEzLjM0OTMtLjI3NzQuNDIxMi0xLjAwNjguNDMxNS00LjQ1MzggMi4wMTM3LTUuODg3IDQuMDA2OS0zLjY1NzYgNS4wOTA4LTYuNDUyMSAxMi4zNy0xMi42OTg4IDEyLjM3SDM3LjcyMUMyOC40ODQ3IDc1LjQ4IDIxIDY3Ljk2OTcgMjEgNTguNzAyNHYtLjI5NzljMC0uMjQ2Ni4yMDAzLS40NDY5LjQ0NjktLjQ0NjloMTQuNTI3NmMuMjg3NiAwIC40OTgyLjI2NzEuNDcyNi41NDk2LS4xMDI4Ljk0NTIuMDcxOSAxLjkxMS41MTg4IDIuNzg5NC44NjMgMS43NTE4IDIuNjUwNyAyLjg0NiA0LjU4MjIgMi44NDZINDguNzR2LTUuNjE0OGgtNy4xMDk3Yy0uMzY0NyAwLS41ODA0LS40MjEzLS4zNjk4LS43MTkyLjA3Ny0uMTE4Mi4xNjQ0LS4yNDE0LjI1NjgtLjM4MDEuNjczLS45NTU1IDEuNjMzNi0yLjQ0MDEgMi41ODkxLTQuMTMwMi42NTI0LTEuMTQwNCAxLjI4NDItMi4zNTc5IDEuNzkyOC0zLjU4MDUuMTAyOC0uMjIwOS4xODQ5LS40NDcuMjY3MS0uNjY3OS4xMzg3LS4zOTA0LjI4MjYtLjc1NTEuMzg1My0xLjExOTguMTAyOC0uMzA4My4xODQ5LS42MzE5LjI2NzEtLjkzNS4yNDE1LTEuMDM3Ny4zNDQyLTIuMTM3LjM0NDItMy4yNzc0IDAtLjQ0NjktLjAyMDUtLjkxNDQtLjA2MTYtMS4zNjEzLS4wMjA2LS40ODgtLjA4MjItLjk3NjEtLjE0MzktMS40NjQxLS4wNDExLS40MzE1LS4xMTgxLS44NTc5LS4yMDAzLTEuMzA0OC0uMTAyNy0uNjUyNC0uMjQ2Ni0xLjI5OTYtLjQxMS0xLjk1MjFsLS4wNTY1LS4yNDY1Yy0uMTIzMy0uNDQ3LS4yMjYtLjg3MzMtLjM2OTgtMS4zMjAyLS40MDU5LTEuNDAyNS0uODczMy0yLjc2ODktMS4zNjY1LTQuMDQ4LS4xNzk4LS41MDg2LS4zODUzLS45OTY2LS41OTA4LTEuNDg0Ni0uMzAzLS43MzQ2LS42MTEzLTEuNDAyNC0uODkzOC0yLjAzNDMtLjE0MzgtLjI4NzctLjI2NzEtLjU0OTctLjM5MDQtLjgxNjgtLjEzODctLjMwMzEtLjI4MjUtLjYwNjItLjQyNjQtLjg5MzgtLjEwMjctLjIyMDktLjIyMDktLjQyNjQtLjMwMzEtLjYzMTlsLS44Nzg0LTEuNjIzM2MtLjEyMzMtLjIyMDkuMDgyMi0uNDgyOS4zMjM2LS40MTYxbDUuNDk2NyAxLjQ4OTdoLjAxNTRjLjAxMDIgMCAuMDE1NC4wMDUyLjAyMDUuMDA1MmwuNzI0My4yMDAzLjc5NjMuMjI2MS4yOTI4LjA4MjF2LTMuMjY3MUM0OC43NCAyMS4yNzkxIDUwLjAwMzcgMjAgNTEuNTY1NCAyMGMuNzgwOCAwIDEuNDg5Ny4zMTg1IDEuOTk4My44MzczLjUwODUuNTE4OS44MjcgMS4yMjc4LjgyNyAyLjAxODl2NC44NDk0bC41ODU3LjE2NDNjLjA0NjIuMDE1NS4wOTI0LjAzNi4xMzM1LjA2NjguMTQzOS4xMDc5LjM0OTMuMjY3MS42MTEzLjQ2MjQuMjA1NS4xNjQzLjQyNjQuMzY0Ny42OTM1LjU3MDIuNTI5MS40MjYzIDEuMTYxLjk3NiAxLjg1NDUgMS42MDc5LjE4NDkuMTU5Mi4zNjQ3LjMyMzYuNTI5MS40ODguODkzOS44MzIyIDEuODk1NiAxLjgwODIgMi44NTExIDIuODg3LjI2NzEuMzAzMS41MjkxLjYxMTMuNzk2Mi45MzQ5LjI2NzEuMzI4OC41NDk3LjY1MjQuNzk2Mi45NzYxLjMyMzcuNDMxNS42NzMuODc4NC45NzYxIDEuMzQ1OS4xNDM4LjIyMDkuMzA4Mi40NDY5LjQ0NjkuNjY3OC4zOTA0LjU5MDcuNzM0NiAxLjIwMjEgMS4wNjM0IDEuODEzNC4xMzg3LjI4MjUuMjgyNS41OTA3LjQwNTguODkzOC4zNjQ3LjgxNjguNjUyNCAxLjY0OS44MzczIDIuNDgxMi4wNTY1LjE3OTguMDk3Ni4zNzUuMTE4Mi41NDk3di4wNDExYy4wNjE2LjI0NjUuMDgyMi41MDg1LjEwMjcuNzc1Ni4wODIyLjg1MjguMDQxMSAxLjcwNTUtLjE0MzggMi41NjM0LS4wNzcxLjM2NDgtLjE3OTguNzA4OS0uMzAzMSAxLjA3MzctLjEyMzMuMzQ5My0uMjQ2Ni43MTQtLjQwNTggMS4wNTgyLS4zMDgyLjcxNC0uNjczIDEuNDI4MS0xLjEwNDUgMi4wOTU5LS4xMzg3LjI0NjYtLjMwMzEuNTA4Ni0uNDY3NS43NTUyLS4xNzk4LjI2MTktLjM2NDcuNTA4NS0uNTI5MS43NS0uMjI2LjMwODItLjQ2NzQuNjMxOC0uNzE0LjkxOTUtLjIyMDkuMzAzMS0uNDQ2OS42MDYyLS42OTM1Ljg3MzMtLjM0NDIuNDA1OC0uNjczLjc5MTEtMS4wMTcyIDEuMTYxLS4yMDU0LjI0MTQtLjQyNjMuNDg4LS42NTI0LjcwODktLjIyMDguMjQ2NS0uNDQ2OS40Njc0LS42NTI0LjY3MjktLjM0NDEuMzQ0Mi0uNjMxOC42MTEzLS44NzMzLjgzMjJsLS41NjUuNTE4OWMtLjA4MjIuMDcxOS0uMTkwMS4xMTMtLjMwMzEuMTEzaC00LjM3Njh2NS42MTQ4aDUuNTA2OWMxLjIzMjkgMCAyLjQwNDItLjQzNjcgMy4zNDk0LTEuMjM4MS4zMjM2LS4yODI1IDEuNzM2My0xLjUwNTEgMy40MDU4LTMuMzQ5My4wNTY1LS4wNjE3LjEyODUtLjEwNzkuMjEwNy0uMTI4NGwxNS4yMTA3LTQuMzk3M2MuMjgyNi0uMDgyMi41NzAyLjEzMzUuNTcwMi40MzE1eiIvPgogIDwvZz4KPC9zdmc+';
22400
+
22401
+ var EnterNFTDataForOpenSeaDialog = (function (props) {
22402
+ var _Blockchain$findByNam, _selection$blockchain3, _selection$collection3, _Blockchain$findByNam2, _selection$blockchain4, _selection$collection4;
22403
+ var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
22404
+ navigate = _useContext.navigate;
22405
+ var _useContext2 = React.useContext(SelectionContext),
22406
+ selection = _useContext2.selection,
22407
+ setSelection = _useContext2.setSelection;
22408
+ var _useState = React.useState(''),
22409
+ _useState2 = _slicedToArray(_useState, 2),
22410
+ id = _useState2[0],
22411
+ setId = _useState2[1];
22412
+ var _useState3 = React.useState(''),
22413
+ _useState4 = _slicedToArray(_useState3, 2),
22414
+ image = _useState4[0],
22415
+ setImage = _useState4[1];
22416
+ var _useState5 = React.useState(''),
22417
+ _useState6 = _slicedToArray(_useState5, 2),
22418
+ link = _useState6[0],
22419
+ setLink = _useState6[1];
22420
+ var _useState7 = React.useState(''),
22421
+ _useState8 = _slicedToArray(_useState7, 2),
22422
+ name = _useState8[0],
22423
+ setName = _useState8[1];
22424
+ var _useState9 = React.useState(false),
22425
+ _useState10 = _slicedToArray(_useState9, 2),
22426
+ idRequired = _useState10[0],
22427
+ setIdRequired = _useState10[1];
22428
+ var confirm = function confirm() {
22429
+ var _selection$blockchain, _selection$collection;
22430
+ var blockchain = (selection === null || selection === void 0 ? void 0 : (_selection$blockchain = selection.blockchain) === null || _selection$blockchain === void 0 ? void 0 : _selection$blockchain.name) || (selection === null || selection === void 0 ? void 0 : selection.blockchain) || (selection === null || selection === void 0 ? void 0 : (_selection$collection = selection.collection) === null || _selection$collection === void 0 ? void 0 : _selection$collection.blockchain);
22431
+ setSelection(Object.assign(props.selection, {
22432
+ nft: {
22433
+ blockchain: blockchain,
22434
+ id: id,
22435
+ image: image,
22436
+ name: name,
22437
+ link: link,
22438
+ address: selection.nft.address,
22439
+ type: idRequired ? '1155' : '721'
22440
+ }
22441
+ }));
22442
+ navigate('ConfirmNFTSelection');
22443
+ };
22444
+ React.useEffect(function () {
22445
+ var _selection$blockchain2, _selection$collection2;
22446
+ var blockchain = (selection === null || selection === void 0 ? void 0 : (_selection$blockchain2 = selection.blockchain) === null || _selection$blockchain2 === void 0 ? void 0 : _selection$blockchain2.name) || (selection === null || selection === void 0 ? void 0 : selection.blockchain) || (selection === null || selection === void 0 ? void 0 : (_selection$collection2 = selection.collection) === null || _selection$collection2 === void 0 ? void 0 : _selection$collection2.blockchain);
22447
+ var checkForIdRequired = /*#__PURE__*/function () {
22448
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee() {
22449
+ var balanceWithId;
22450
+ return regenerator.wrap(function _callee$(_context) {
22451
+ while (1) switch (_context.prev = _context.next) {
22452
+ case 0:
22453
+ if (!blockchain) {
22454
+ _context.next = 10;
22455
+ break;
22456
+ }
22457
+ _context.prev = 1;
22458
+ _context.next = 4;
22459
+ return web3Client.request({
22460
+ blockchain: blockchain,
22461
+ address: selection.nft.address,
22462
+ method: 'balanceOf',
22463
+ api: web3Tokens.Token[blockchain][1155],
22464
+ params: ['0x4e260bB2b25EC6F3A59B478fCDe5eD5B8D783B02', '1']
22465
+ });
22466
+ case 4:
22467
+ balanceWithId = _context.sent;
22468
+ _context.next = 9;
22469
+ break;
22470
+ case 7:
22471
+ _context.prev = 7;
22472
+ _context.t0 = _context["catch"](1);
22473
+ case 9:
22474
+ if (balanceWithId) {
22475
+ setIdRequired(true);
22476
+ }
22477
+ case 10:
22478
+ case "end":
22479
+ return _context.stop();
22480
+ }
22481
+ }, _callee, null, [[1, 7]]);
22482
+ }));
22483
+ return function checkForIdRequired() {
22484
+ return _ref.apply(this, arguments);
22485
+ };
22486
+ }();
22487
+ checkForIdRequired();
22488
+ }, [selection.blockchain]);
22489
+ return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
22490
+ stacked: true,
22491
+ header: /*#__PURE__*/React__default["default"].createElement("div", {
22492
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
22493
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
22494
+ className: "LineHeightL FontSizeL PaddingTopXS"
22495
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22496
+ className: "CardImage small"
22497
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
22498
+ className: "transparent",
22499
+ src: OpenSea
22500
+ }))))),
22501
+ body: /*#__PURE__*/React__default["default"].createElement("div", {
22502
+ className: "PaddingLeftM PaddingRightM"
22503
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
22504
+ className: "PaddingTopXS TextLeft"
22505
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
22506
+ htmlFor: "DePayWidgetsEnterNFTBlockchain"
22507
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22508
+ className: "FontSizeM Opacity05"
22509
+ }, "Select Blockchain"))), /*#__PURE__*/React__default["default"].createElement("div", {
22510
+ className: "PaddingTopXS PaddingBottomS"
22511
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
22512
+ className: "Card small",
22513
+ onClick: function onClick() {
22514
+ return navigate('SelectBlockchain');
22515
+ }
22516
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
22517
+ className: "CardImage small"
22518
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
22519
+ className: "transparent",
22520
+ src: (_Blockchain$findByNam = web3Blockchains.Blockchain.findByName((selection === null || selection === void 0 ? void 0 : (_selection$blockchain3 = selection.blockchain) === null || _selection$blockchain3 === void 0 ? void 0 : _selection$blockchain3.name) || (selection === null || selection === void 0 ? void 0 : selection.blockchain) || (selection === null || selection === void 0 ? void 0 : (_selection$collection3 = selection.collection) === null || _selection$collection3 === void 0 ? void 0 : _selection$collection3.blockchain))) === null || _Blockchain$findByNam === void 0 ? void 0 : _Blockchain$findByNam.logo
22521
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
22522
+ className: "CardBody FontSizeM"
22523
+ }, (_Blockchain$findByNam2 = web3Blockchains.Blockchain.findByName((selection === null || selection === void 0 ? void 0 : (_selection$blockchain4 = selection.blockchain) === null || _selection$blockchain4 === void 0 ? void 0 : _selection$blockchain4.name) || (selection === null || selection === void 0 ? void 0 : selection.blockchain) || (selection === null || selection === void 0 ? void 0 : (_selection$collection4 = selection.collection) === null || _selection$collection4 === void 0 ? void 0 : _selection$collection4.blockchain))) === null || _Blockchain$findByNam2 === void 0 ? void 0 : _Blockchain$findByNam2.label), /*#__PURE__*/React__default["default"].createElement("div", {
22524
+ className: "CardAction"
22525
+ }, /*#__PURE__*/React__default["default"].createElement(ChevronRight, null))))), idRequired && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
22526
+ className: "PaddingTopXS TextLeft"
22527
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
22528
+ htmlFor: "DePayWidgetsEnterNFTTokenId"
22529
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22530
+ className: "FontSizeM Opacity05"
22531
+ }, "Enter Token ID"))), /*#__PURE__*/React__default["default"].createElement("div", {
22532
+ className: "PaddingTopXS PaddingBottomS TextLeft"
22533
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
22534
+ id: "DePayWidgetsEnterNFTTokenId",
22535
+ name: "DePayWidgetsEnterNFTTokenId",
22536
+ value: id,
22537
+ onChange: function onChange(event) {
22538
+ return setId(event.target.value);
22539
+ },
22540
+ className: "Search"
22541
+ }))), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
22542
+ className: "PaddingTopXS TextLeft"
22543
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
22544
+ htmlFor: "DePayWidgetsEnterNFTName"
22545
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22546
+ className: "FontSizeM Opacity05"
22547
+ }, "Enter NFT Name"))), /*#__PURE__*/React__default["default"].createElement("div", {
22548
+ className: "PaddingTopXS PaddingBottomS TextLeft"
22549
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
22550
+ id: "DePayWidgetsEnterNFTName",
22551
+ name: "DePayWidgetsEnterNFTName",
22552
+ value: name,
22553
+ onChange: function onChange(event) {
22554
+ return setName(event.target.value);
22555
+ },
22556
+ placeholder: "CryptoPunks",
22557
+ className: "Search"
22558
+ }))), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
22559
+ className: "PaddingTopXS TextLeft"
22560
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
22561
+ htmlFor: "DePayWidgetsEnterNFTImage"
22562
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22563
+ className: "FontSizeM Opacity05"
22564
+ }, "Enter Image URL"))), /*#__PURE__*/React__default["default"].createElement("div", {
22565
+ className: "PaddingTopXS PaddingBottomS TextLeft"
22566
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
22567
+ id: "DePayWidgetsEnterNFTImage",
22568
+ name: "DePayWidgetsEnterNFTImage",
22569
+ value: image,
22570
+ onChange: function onChange(event) {
22571
+ return setImage(event.target.value);
22572
+ },
22573
+ placeholder: "https://i.seadn.io/gae/BdxvLseXcfl57BiuQcQYdJ64v-aI8din7WPk0Pgo3qQFhAUH-B6i-dCqqc_mCkRIzULmwzwecnohLhrcH8A9mpWIZqA7ygc52Sr81hE?auto=format&w=128",
22574
+ className: "Search"
22575
+ }))), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
22576
+ className: "PaddingTopXS TextLeft"
22577
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
22578
+ htmlFor: "DePayWidgetsEnterNFTLink"
22579
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22580
+ className: "FontSizeM Opacity05"
22581
+ }, "Enter Link URL"))), /*#__PURE__*/React__default["default"].createElement("div", {
22582
+ className: "PaddingTopXS PaddingBottomS TextLeft"
22583
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
22584
+ id: "DePayWidgetsEnterNFTLink",
22585
+ name: "DePayWidgetsEnterNFTLink",
22586
+ value: link,
22587
+ onChange: function onChange(event) {
22588
+ return setLink(event.target.value);
22589
+ },
22590
+ placeholder: "https://opensea.io/collection/cryptopunks",
22591
+ className: "Search"
22592
+ })))),
22593
+ footer: /*#__PURE__*/React__default["default"].createElement("div", {
22594
+ className: "PaddingTopS PaddingRightM PaddingLeftM PaddingBottomM"
22595
+ }, /*#__PURE__*/React__default["default"].createElement("button", {
22596
+ className: ['ButtonPrimary', !image.length || !link.length || !name.length || idRequired && !id.length ? 'disabled' : ''].join(' '),
22597
+ onClick: function onClick() {
22598
+ if (!image.length || !link.length || !name.length || idRequired && !id.length) {
22599
+ return;
22600
+ }
22601
+ confirm();
22602
+ }
22603
+ }, "Continue"))
22604
+ });
22605
+ });
22606
+
22391
22607
  var SelectBlockchainDialog = (function (props) {
22392
22608
  var _useContext = React.useContext(SelectionContext),
22393
22609
  setSelection = _useContext.setSelection;
22394
22610
  var _useContext2 = React.useContext(reactDialogStack.NavigateStackContext),
22395
22611
  navigate = _useContext2.navigate;
22396
- var stacked = Object.keys(props.selection).length > 1;
22612
+ var stacked = props.stacked || Object.keys(props.selection).length > 1;
22397
22613
  var blockchains = [web3Blockchains.Blockchain.findByName('ethereum'), web3Blockchains.Blockchain.findByName('bsc'), web3Blockchains.Blockchain.findByName('polygon')];
22398
22614
  var selectBlockchain = function selectBlockchain(blockchain) {
22399
22615
  window._depay_token_selection_selected_blockchain = blockchain.name;
22400
22616
  setSelection(Object.assign(props.selection, {
22401
22617
  blockchain: blockchain
22402
22618
  }));
22403
- if (stacked) {
22619
+ if (stacked && props.navigateBack !== false) {
22404
22620
  navigate('back');
22405
22621
  } else {
22406
22622
  props.resolve(blockchain);
@@ -22426,7 +22642,7 @@
22426
22642
  });
22427
22643
  return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
22428
22644
  header: /*#__PURE__*/React__default["default"].createElement("div", {
22429
- className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
22645
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
22430
22646
  }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("h1", {
22431
22647
  className: "LineHeightL FontSizeL"
22432
22648
  }, "Select Blockchain"))),
@@ -22441,115 +22657,746 @@
22441
22657
  });
22442
22658
  });
22443
22659
 
22444
- var SelectTokenDialog = (function (props) {
22660
+ var BLOCKCHAIN_NAMES$1 = {
22661
+ 'ethereum': 'ethereum',
22662
+ 'matic': 'polygon,'
22663
+ };
22664
+ var SelectNFTContractOnOpenSeaDialog = (function (props) {
22445
22665
  var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
22446
22666
  navigate = _useContext.navigate;
22447
- var _useContext2 = React.useContext(ClosableContext),
22448
- setOpen = _useContext2.setOpen;
22449
- var _useContext3 = React.useContext(SelectionContext),
22450
- setSelection = _useContext3.setSelection;
22451
22667
  var _useState = React.useState(''),
22452
22668
  _useState2 = _slicedToArray(_useState, 2),
22453
22669
  searchTerm = _useState2[0],
22454
22670
  setSearchTerm = _useState2[1];
22455
- var _useState3 = React.useState(),
22671
+ var _useState3 = React.useState(false),
22456
22672
  _useState4 = _slicedToArray(_useState3, 2),
22457
- blockchain = _useState4[0],
22458
- setBlockchain = _useState4[1];
22459
- var _useState5 = React.useState(false),
22673
+ loading = _useState4[0],
22674
+ setLoading = _useState4[1];
22675
+ var _useState5 = React.useState([]),
22460
22676
  _useState6 = _slicedToArray(_useState5, 2),
22461
- showAddToken = _useState6[0],
22462
- setShowAddToken = _useState6[1];
22463
- var _useState7 = React.useState([]),
22464
- _useState8 = _slicedToArray(_useState7, 2),
22465
- tokens = _useState8[0],
22466
- setTokens = _useState8[1];
22467
- var _useState9 = React.useState(),
22468
- _useState10 = _slicedToArray(_useState9, 2);
22469
- _useState10[0];
22470
- _useState10[1];
22471
- var searchElement = React.useRef();
22472
- var wallet = web3Wallets.getWallets()[0];
22473
- var startWithBlockchain = function startWithBlockchain(name) {
22474
- var blockchain = web3Blockchains.Blockchain.findByName(name);
22475
- setBlockchain(blockchain);
22677
+ searchResults = _useState6[0],
22678
+ setSearchResults = _useState6[1];
22679
+ var _useContext2 = React.useContext(SelectionContext),
22680
+ setSelection = _useContext2.setSelection;
22681
+ var select = function select(nft) {
22476
22682
  setSelection(Object.assign(props.selection, {
22477
- blockchain: blockchain,
22478
- token: undefined
22683
+ nft: nft
22479
22684
  }));
22480
- setTokens(blockchain.tokens);
22685
+ navigate('ConfirmNFTSelection');
22481
22686
  };
22482
- React.useEffect(function () {
22483
- if (wallet) {
22484
- wallet.connectedTo().then(function (name) {
22485
- var blockchain = web3Blockchains.Blockchain.findByName(name);
22486
- if (window._depay_token_selection_selected_blockchain) {
22487
- startWithBlockchain(window._depay_token_selection_selected_blockchain);
22488
- } else if (name && name.length && blockchain && blockchain.tokens && blockchain.tokens.length) {
22489
- startWithBlockchain(name);
22490
- } else {
22491
- startWithBlockchain('ethereum');
22687
+ var dataForCollectionViaAsset = function dataForCollectionViaAsset(address) {
22688
+ return new Promise(function (resolve, reject) {
22689
+ fetch("https://api.opensea.io/api/v1/assets?asset_contract_address=".concat(address)).then(function (response) {
22690
+ if (response.status != 200) {
22691
+ return resolve();
22492
22692
  }
22493
- });
22494
- } else {
22495
- startWithBlockchain('ethereum');
22496
- }
22497
- }, []);
22498
- React.useEffect(function () {
22499
- if (props.selection.blockchain) {
22500
- setBlockchain(props.selection.blockchain);
22501
- setTokens(props.selection.blockchain.tokens);
22502
- if (searchElement.current) {
22503
- searchElement.current.value = '';
22504
- searchElement.current.focus();
22505
- }
22506
- }
22507
- }, [props.selection, props.selection.blockchain]);
22508
- var onClickChangeBlockchain = function onClickChangeBlockchain() {
22509
- navigate('SelectBlockchain');
22510
- };
22511
- var onClickAddToken = function onClickAddToken() {
22512
- setShowAddToken(true);
22513
- if (searchElement.current) {
22514
- searchElement.current.value = '';
22515
- searchElement.current.focus();
22516
- }
22517
- };
22518
- var searchTokens = React.useCallback(lodash.debounce(function (term, blockchainName) {
22519
- fetch("https://public.depay.com/tokens/search?blockchain=".concat(blockchainName, "&term=").concat(term)).then(function (response) {
22520
- if (response.status == 200) {
22521
- response.json().then(function (tokens) {
22522
- setTokens(tokens);
22693
+ response.json().then(function (data) {
22694
+ return resolve(data.assets ? data.assets[0] : undefined);
22523
22695
  })["catch"](function () {
22524
- return reject;
22696
+ return resolve();
22525
22697
  });
22526
- } else {
22527
- reject();
22698
+ })["catch"](function () {
22699
+ return resolve();
22700
+ });
22701
+ });
22702
+ };
22703
+ var searchContract = React.useCallback(lodash.debounce(function (address) {
22704
+ fetch("https://api.opensea.io/api/v1/asset_contract/".concat(address)).then(function (response) {
22705
+ if (response.status != 200) {
22706
+ setLoading(false);
22707
+ return;
22528
22708
  }
22709
+ response.json().then( /*#__PURE__*/function () {
22710
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(data) {
22711
+ var result, blockchain, holders, additionalData, _additionalData$colle, _additionalData$colle2, _additionalData$colle3, _additionalData$colle4, _additionalData, _blockchain;
22712
+ return regenerator.wrap(function _callee$(_context) {
22713
+ while (1) switch (_context.prev = _context.next) {
22714
+ case 0:
22715
+ if (!(data.asset_contract_type == 'non-fungible')) {
22716
+ _context.next = 8;
22717
+ break;
22718
+ }
22719
+ _context.next = 3;
22720
+ return dataForCollectionViaAsset(address);
22721
+ case 3:
22722
+ additionalData = _context.sent;
22723
+ if (additionalData) {
22724
+ blockchain = additionalData !== null && additionalData !== void 0 && additionalData.permalink.match(/https:\/\/opensea\.io\/assets\/(\w*)\//) ? BLOCKCHAIN_NAMES$1[additionalData.permalink.match(/https:\/\/opensea\.io\/assets\/(\w*)\//)[1]] : undefined;
22725
+ holders = additionalData === null || additionalData === void 0 ? void 0 : (_additionalData$colle = additionalData.collection) === null || _additionalData$colle === void 0 ? void 0 : (_additionalData$colle2 = _additionalData$colle.stats) === null || _additionalData$colle2 === void 0 ? void 0 : _additionalData$colle2.num_owners;
22726
+ }
22727
+ result = {
22728
+ blockchain: blockchain,
22729
+ holders: holders,
22730
+ createdAt: data.created_date,
22731
+ image: data.image_url,
22732
+ name: data.collection ? data.collection.name : undefined,
22733
+ link: data.collection ? "https://opensea.io/collection/".concat(data.collection.slug) : undefined,
22734
+ address: ethers.ethers.utils.getAddress(data.address),
22735
+ type: '721'
22736
+ };
22737
+ _context.next = 22;
22738
+ break;
22739
+ case 8:
22740
+ if (!(data.asset_contract_type == 'semi-fungible')) {
22741
+ _context.next = 21;
22742
+ break;
22743
+ }
22744
+ if (!(data.symbol == 'OPENSTORE' && data.name == 'OpenSea Collection')) {
22745
+ _context.next = 13;
22746
+ break;
22747
+ }
22748
+ result = {
22749
+ id: null,
22750
+ address: ethers.ethers.utils.getAddress(data.address),
22751
+ type: '1155'
22752
+ };
22753
+ _context.next = 19;
22754
+ break;
22755
+ case 13:
22756
+ _context.next = 15;
22757
+ return dataForCollectionViaAsset(address);
22758
+ case 15:
22759
+ _additionalData = _context.sent;
22760
+ _blockchain = _additionalData !== null && _additionalData !== void 0 && _additionalData.permalink.match(/https:\/\/opensea\.io\/assets\/(\w*)\//) ? BLOCKCHAIN_NAMES$1[_additionalData.permalink.match(/https:\/\/opensea\.io\/assets\/(\w*)\//)[1]] : undefined;
22761
+ _additionalData === null || _additionalData === void 0 ? void 0 : (_additionalData$colle3 = _additionalData.collection) === null || _additionalData$colle3 === void 0 ? void 0 : (_additionalData$colle4 = _additionalData$colle3.stats) === null || _additionalData$colle4 === void 0 ? void 0 : _additionalData$colle4.num_owners;
22762
+ result = {
22763
+ blockchain: _blockchain,
22764
+ id: null,
22765
+ createdAt: data.created_date,
22766
+ image: data.image_url,
22767
+ name: data.collection ? data.collection.name : undefined,
22768
+ link: data.collection ? "https://opensea.io/collection/".concat(data.collection.slug) : undefined,
22769
+ address: ethers.ethers.utils.getAddress(data.address),
22770
+ type: '1155'
22771
+ };
22772
+ case 19:
22773
+ _context.next = 22;
22774
+ break;
22775
+ case 21:
22776
+ // like matic/polygon (which is not yet supported by opensea apis)
22777
+ if (data.address) {
22778
+ result = {
22779
+ address: ethers.ethers.utils.getAddress(data.address)
22780
+ };
22781
+ }
22782
+ case 22:
22783
+ if (result) {
22784
+ if (result.type == undefined) {
22785
+ setSelection(Object.assign(props.selection, {
22786
+ nft: result,
22787
+ blockchain: result.blockchain || 'polygon'
22788
+ }));
22789
+ navigate('EnterNFTDataForOpenSea');
22790
+ setSearchTerm('');
22791
+ } else if (result.id !== null) {
22792
+ select(result);
22793
+ setSearchResults([result]);
22794
+ navigate('ConfirmNFTSelection');
22795
+ } else {
22796
+ setSelection(Object.assign(props.selection, {
22797
+ nft: result
22798
+ }));
22799
+ navigate('SelectNFTIdOnOpenSea');
22800
+ setSearchTerm('');
22801
+ }
22802
+ }
22803
+ setLoading(false);
22804
+ case 24:
22805
+ case "end":
22806
+ return _context.stop();
22807
+ }
22808
+ }, _callee);
22809
+ }));
22810
+ return function (_x) {
22811
+ return _ref.apply(this, arguments);
22812
+ };
22813
+ }())["catch"](function () {
22814
+ setLoading(false);
22815
+ });
22529
22816
  })["catch"](function () {
22530
- return reject;
22817
+ setLoading(false);
22531
22818
  });
22532
- }, 300), []);
22533
- var onChangeSearch = function onChangeSearch(event) {
22534
- setShowAddToken(false);
22819
+ }, 500), []);
22820
+ var onChangeTermSearch = function onChangeTermSearch(event) {
22821
+ setLoading(true);
22822
+ setSearchResults([]);
22535
22823
  var term = event.target.value;
22536
22824
  setSearchTerm(term);
22537
- if (term.match(/^0x/)) {
22538
- setTokens([]);
22539
- var token;
22540
- try {
22541
- token = new web3Tokens.Token({
22542
- blockchain: blockchain.name,
22543
- address: term
22544
- });
22545
- } catch (_unused) {}
22546
- if (token == undefined) {
22547
- return;
22825
+ if (term && term.length) {
22826
+ searchContract(term);
22827
+ } else {
22828
+ setLoading(false);
22829
+ }
22830
+ };
22831
+ var elements;
22832
+ if (loading) {
22833
+ elements = [/*#__PURE__*/React__default["default"].createElement("div", {
22834
+ className: "SkeletonWrapper",
22835
+ key: 'loading'
22836
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
22837
+ className: "Skeleton",
22838
+ style: {
22839
+ height: '69px',
22840
+ width: '100%'
22548
22841
  }
22549
- Promise.all([token.name(), token.symbol(), token.decimals(), fetch("https://public.depay.com/tokens/routable/".concat(blockchain.name, "/").concat(term)).then(function (response) {
22550
- if (response.status == 200) {
22551
- return response.json();
22552
- }
22842
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
22843
+ className: "SkeletonBackground"
22844
+ })))];
22845
+ } else {
22846
+ elements = searchResults.map(function (result, index) {
22847
+ return /*#__PURE__*/React__default["default"].createElement("div", {
22848
+ key: index,
22849
+ className: "Card Row",
22850
+ onClick: function onClick() {
22851
+ return select(result);
22852
+ }
22853
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
22854
+ className: "CardImage"
22855
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
22856
+ src: result.image
22857
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
22858
+ className: "CardBody"
22859
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
22860
+ className: "CardTokenFullName",
22861
+ title: result.name
22862
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22863
+ className: "CardText"
22864
+ }, result.name))));
22865
+ });
22866
+ }
22867
+ return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
22868
+ stacked: true,
22869
+ header: /*#__PURE__*/React__default["default"].createElement("div", {
22870
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
22871
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
22872
+ className: "LineHeightL FontSizeL PaddingTopXS"
22873
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22874
+ className: "CardImage small"
22875
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
22876
+ className: "transparent",
22877
+ src: OpenSea
22878
+ })))), /*#__PURE__*/React__default["default"].createElement("div", {
22879
+ className: "PaddingTopS PaddingBottomXS TextLeft"
22880
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
22881
+ htmlFor: "DePayWidgetsEnterContractAddress"
22882
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
22883
+ className: "FontSizeM Opacity05"
22884
+ }, "Enter contract address"))), /*#__PURE__*/React__default["default"].createElement("div", {
22885
+ className: "PaddingTopXS PaddingBottomS TextLeft"
22886
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
22887
+ id: "DePayWidgetsEnterContractAddress",
22888
+ name: "DePayWidgetsEnterContractAddress",
22889
+ value: searchTerm,
22890
+ onChange: onChangeTermSearch,
22891
+ className: "Search",
22892
+ autoFocus: true,
22893
+ placeholder: "0x495f947276749ce646f68ac8c248420045cb7b5e"
22894
+ }))),
22895
+ bodyClassName: "ScrollHeight",
22896
+ body: /*#__PURE__*/React__default["default"].createElement("div", null, elements)
22897
+ });
22898
+ });
22899
+
22900
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22901
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22902
+ var BLOCKCHAIN_NAMES = {
22903
+ 'ethereum': 'ethereum',
22904
+ 'matic': 'polygon,'
22905
+ };
22906
+ var SelectNFTIdOnOpenSeaDialog = (function (props) {
22907
+ var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
22908
+ navigate = _useContext.navigate;
22909
+ var _useState = React.useState(''),
22910
+ _useState2 = _slicedToArray(_useState, 2),
22911
+ searchTerm = _useState2[0],
22912
+ setSearchTerm = _useState2[1];
22913
+ var _useState3 = React.useState(false),
22914
+ _useState4 = _slicedToArray(_useState3, 2),
22915
+ loading = _useState4[0],
22916
+ setLoading = _useState4[1];
22917
+ var _useState5 = React.useState([]),
22918
+ _useState6 = _slicedToArray(_useState5, 2),
22919
+ searchResults = _useState6[0],
22920
+ setSearchResults = _useState6[1];
22921
+ var _useContext2 = React.useContext(SelectionContext),
22922
+ selection = _useContext2.selection,
22923
+ setSelection = _useContext2.setSelection;
22924
+ var select = function select(nft) {
22925
+ setSelection(Object.assign(props.selection, {
22926
+ nft: nft
22927
+ }));
22928
+ navigate('ConfirmNFTSelection');
22929
+ };
22930
+ var searchForCollectionById = React.useCallback(lodash.debounce(function (id) {
22931
+ fetch("https://api.opensea.io/api/v1/asset/".concat(selection.nft.address, "/").concat(id)).then(function (response) {
22932
+ if (response.status != 200) {
22933
+ return resolve();
22934
+ }
22935
+ response.json().then( /*#__PURE__*/function () {
22936
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(data) {
22937
+ var blockchain, result;
22938
+ return regenerator.wrap(function _callee$(_context) {
22939
+ while (1) switch (_context.prev = _context.next) {
22940
+ case 0:
22941
+ blockchain = data !== null && data !== void 0 && data.permalink.match(/https:\/\/opensea\.io\/assets\/(\w*)\//) ? BLOCKCHAIN_NAMES[data.permalink.match(/https:\/\/opensea\.io\/assets\/(\w*)\//)[1]] : undefined;
22942
+ result = _objectSpread(_objectSpread({}, selection.nft), {}, {
22943
+ blockchain: blockchain,
22944
+ id: data.token_id,
22945
+ image: data.image_url,
22946
+ name: data.name,
22947
+ link: data.permalink
22948
+ });
22949
+ setSearchResults([result]);
22950
+ select(result);
22951
+ setLoading(false);
22952
+ case 5:
22953
+ case "end":
22954
+ return _context.stop();
22955
+ }
22956
+ }, _callee);
22957
+ }));
22958
+ return function (_x) {
22959
+ return _ref.apply(this, arguments);
22960
+ };
22961
+ }())["catch"](function () {
22962
+ setLoading(false);
22963
+ });
22964
+ })["catch"](function () {
22965
+ setLoading(false);
22966
+ });
22967
+ }, 500), []);
22968
+ var onChangeTermSearch = function onChangeTermSearch(event) {
22969
+ setLoading(true);
22970
+ setSearchResults([]);
22971
+ var term = event.target.value;
22972
+ setSearchTerm(term);
22973
+ if (term && term.length) {
22974
+ searchForCollectionById(term);
22975
+ } else {
22976
+ setLoading(false);
22977
+ }
22978
+ };
22979
+ React.useEffect(function () {
22980
+ fetch("https://api.opensea.io/api/v1/assets?asset_contract_address=".concat(selection.nft.address)).then(function (response) {
22981
+ if (response.status != 200) {
22982
+ return resolve();
22983
+ }
22984
+ response.json().then(function (data) {
22985
+ if (data.assets.length <= 6) {
22986
+ var results = data.assets.map(function (data) {
22987
+ var blockchain = data !== null && data !== void 0 && data.permalink.match(/https:\/\/opensea\.io\/assets\/(\w*)\//) ? BLOCKCHAIN_NAMES[data.permalink.match(/https:\/\/opensea\.io\/assets\/(\w*)\//)[1]] : undefined;
22988
+ return _objectSpread(_objectSpread({}, selection.nft), {}, {
22989
+ blockchain: blockchain,
22990
+ id: data.token_id,
22991
+ image: data.image_url,
22992
+ name: data.name,
22993
+ link: data.permalink
22994
+ });
22995
+ });
22996
+ setSearchResults(results);
22997
+ if (results.length == 1) {
22998
+ select(results[0]);
22999
+ }
23000
+ }
23001
+ });
23002
+ });
23003
+ }, []);
23004
+ var elements;
23005
+ if (loading) {
23006
+ elements = [/*#__PURE__*/React__default["default"].createElement("div", {
23007
+ className: "SkeletonWrapper",
23008
+ key: 'loading'
23009
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23010
+ className: "Skeleton",
23011
+ style: {
23012
+ height: '69px',
23013
+ width: '100%'
23014
+ }
23015
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23016
+ className: "SkeletonBackground"
23017
+ })))];
23018
+ } else {
23019
+ elements = searchResults.map(function (result, index) {
23020
+ return /*#__PURE__*/React__default["default"].createElement("div", {
23021
+ key: index,
23022
+ className: "Card Row",
23023
+ onClick: function onClick() {
23024
+ return select(result);
23025
+ }
23026
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23027
+ className: "CardImage"
23028
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
23029
+ src: result.image
23030
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
23031
+ className: "CardBody"
23032
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23033
+ className: "CardTokenFullName",
23034
+ title: result.name
23035
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
23036
+ className: "CardText"
23037
+ }, result.name))));
23038
+ });
23039
+ }
23040
+ return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
23041
+ stacked: true,
23042
+ header: /*#__PURE__*/React__default["default"].createElement("div", {
23043
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
23044
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("div", {
23045
+ className: "LineHeightL FontSizeL PaddingTopXS"
23046
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
23047
+ className: "CardImage small"
23048
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
23049
+ className: "transparent",
23050
+ src: OpenSea
23051
+ })))), /*#__PURE__*/React__default["default"].createElement("div", {
23052
+ className: "PaddingTopS PaddingBottomXS TextLeft"
23053
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
23054
+ htmlFor: "DePayWidgetsEnterCollectionId"
23055
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
23056
+ className: "FontSizeM Opacity05"
23057
+ }, "Enter Token ID"))), /*#__PURE__*/React__default["default"].createElement("div", {
23058
+ className: "PaddingTopXS PaddingBottomS TextLeft"
23059
+ }, /*#__PURE__*/React__default["default"].createElement("input", {
23060
+ id: "DePayWidgetsEnterCollectionId",
23061
+ name: "DePayWidgetsEnterCollectionId",
23062
+ value: searchTerm,
23063
+ onChange: onChangeTermSearch,
23064
+ className: "Search",
23065
+ placeholder: "35347623114821255323888368639026081793120226253597860997754787918389704654849"
23066
+ }))),
23067
+ bodyClassName: "ScrollHeight",
23068
+ body: /*#__PURE__*/React__default["default"].createElement("div", null, elements)
23069
+ });
23070
+ });
23071
+
23072
+ var SelectNFTPlatformDialog = (function (props) {
23073
+ var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
23074
+ navigate = _useContext.navigate;
23075
+ var select = function select(marketplace) {
23076
+ navigate(marketplace.navigate);
23077
+ };
23078
+ var elements = [{
23079
+ name: 'OpenSea',
23080
+ navigate: 'SelectNFTContractOnOpenSea',
23081
+ logo: OpenSea
23082
+ }].map(function (marketplace, index) {
23083
+ return /*#__PURE__*/React__default["default"].createElement("div", {
23084
+ key: index,
23085
+ className: "Card Row",
23086
+ onClick: function onClick() {
23087
+ return select(marketplace);
23088
+ }
23089
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23090
+ className: "CardImage"
23091
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
23092
+ src: marketplace.logo
23093
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
23094
+ className: "CardBody"
23095
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23096
+ className: "CardTokenSymbol",
23097
+ title: marketplace.name
23098
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
23099
+ className: "CardText"
23100
+ }, marketplace.name)), /*#__PURE__*/React__default["default"].createElement("div", {
23101
+ className: "CardTokenName PaddingTopXS"
23102
+ }, /*#__PURE__*/React__default["default"].createElement(ChevronRight, null))));
23103
+ });
23104
+ return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
23105
+ header: /*#__PURE__*/React__default["default"].createElement("div", {
23106
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
23107
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("h1", {
23108
+ className: "LineHeightL FontSizeL"
23109
+ }, "Select NFT")), /*#__PURE__*/React__default["default"].createElement("div", {
23110
+ className: "PaddingTopXS PaddingBottomS"
23111
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
23112
+ className: "FontSizeM Opacity05"
23113
+ }, "Choose which marketplace"))),
23114
+ bodyClassName: "ScrollHeight",
23115
+ body: /*#__PURE__*/React__default["default"].createElement("div", {
23116
+ className: ""
23117
+ }, elements)
23118
+ });
23119
+ });
23120
+
23121
+ var SelectNFTStack = (function (props) {
23122
+ var _ref;
23123
+ var _useContext = React.useContext(ConfigurationContext),
23124
+ what = _useContext.what;
23125
+ var _useContext2 = React.useContext(ClosableContext),
23126
+ open = _useContext2.open,
23127
+ close = _useContext2.close;
23128
+ var _useContext3 = React.useContext(SelectionContext),
23129
+ selection = _useContext3.selection;
23130
+ _useContext3.setSelection;
23131
+ var _useState = React.useState(),
23132
+ _useState2 = _slicedToArray(_useState, 2);
23133
+ _useState2[0];
23134
+ var _setNavigator = _useState2[1];
23135
+ var start;
23136
+ switch (what) {
23137
+ default:
23138
+ start = 'SelectMarketplace';
23139
+ }
23140
+ return /*#__PURE__*/React__default["default"].createElement(reactDialogStack.ReactDialogStack, {
23141
+ open: open,
23142
+ close: close,
23143
+ start: start,
23144
+ container: props.container,
23145
+ document: props.document,
23146
+ setNavigator: function setNavigator(navigator) {
23147
+ _setNavigator(navigator);
23148
+ },
23149
+ dialogs: (_ref = {
23150
+ SelectMarketplace: /*#__PURE__*/React__default["default"].createElement(SelectNFTPlatformDialog, {
23151
+ selection: selection,
23152
+ resolve: props.resolve,
23153
+ unmount: props.unmount
23154
+ }),
23155
+ SelectNFTContractOnOpenSea: /*#__PURE__*/React__default["default"].createElement(SelectNFTContractOnOpenSeaDialog, {
23156
+ selection: selection,
23157
+ resolve: props.resolve,
23158
+ unmount: props.unmount
23159
+ }),
23160
+ SelectNFTIdOnOpenSea: /*#__PURE__*/React__default["default"].createElement(SelectNFTIdOnOpenSeaDialog, {
23161
+ selection: selection,
23162
+ resolve: props.resolve,
23163
+ unmount: props.unmount
23164
+ }),
23165
+ SelectBlockchain: /*#__PURE__*/React__default["default"].createElement(SelectNFTIdOnOpenSeaDialog, {
23166
+ selection: selection,
23167
+ resolve: props.resolve,
23168
+ unmount: props.unmount
23169
+ }),
23170
+ EnterNFTDataForOpenSea: /*#__PURE__*/React__default["default"].createElement(EnterNFTDataForOpenSeaDialog, {
23171
+ selection: selection,
23172
+ resolve: props.resolve,
23173
+ unmount: props.unmount
23174
+ })
23175
+ }, _defineProperty(_ref, "SelectBlockchain", /*#__PURE__*/React__default["default"].createElement(SelectBlockchainDialog, {
23176
+ selection: selection,
23177
+ stacked: true,
23178
+ resolve: props.resolve,
23179
+ unmount: props.unmount
23180
+ })), _defineProperty(_ref, "ConfirmNFTSelection", /*#__PURE__*/React__default["default"].createElement(ConfirmNFTSelectionDialog, {
23181
+ selection: selection,
23182
+ resolve: props.resolve,
23183
+ unmount: props.unmount
23184
+ })), _ref)
23185
+ });
23186
+ });
23187
+
23188
+ var ConfirmTokenSelectionDialog = (function (props) {
23189
+ var _useContext = React.useContext(SelectionContext),
23190
+ selection = _useContext.selection;
23191
+ var _useContext2 = React.useContext(ClosableContext),
23192
+ setOpen = _useContext2.setOpen;
23193
+ var token = selection.token;
23194
+ var address = token.address || token.external_id;
23195
+ var logo = token.logo || token.image;
23196
+ var blockchain = web3Blockchains.Blockchain.findByName(token.blockchain);
23197
+ var age = token.first_transfer ? msToTime(new Date() - new Date(token.first_transfer)) : undefined;
23198
+ if (age) {
23199
+ age = [age.year && age.year >= 1 ? age.year >= 2 ? "".concat(age.year, " years") : "1 year" : undefined, age.month && age.month >= 1 ? age.month >= 2 ? "".concat(age.month, " months") : "1 month" : undefined, age.day && age.day >= 1 && age.month <= 1 && age.year < 1 ? age.day >= 2 ? "".concat(age.day, " days !!!") : "1 day !!!" : undefined].filter(function (n) {
23200
+ return n;
23201
+ }).join(' ');
23202
+ }
23203
+ var holders = token.unique_senders ? token.unique_senders : undefined;
23204
+ if (holders) {
23205
+ if (holders > 1000000) {
23206
+ holders = "Millions";
23207
+ } else if (holders > 100000) {
23208
+ holders = "Hundreds of Thousands";
23209
+ } else if (holders > 2000) {
23210
+ holders = "Thousands";
23211
+ } else if (holders > 100) {
23212
+ holders = "Hundreds";
23213
+ } else {
23214
+ holders = "Only a Few!!!";
23215
+ }
23216
+ }
23217
+ var onClickConfirm = function onClickConfirm() {
23218
+ setOpen(false);
23219
+ props.resolve({
23220
+ blockchain: token.blockchain,
23221
+ address: token.external_id || token.address,
23222
+ symbol: token.symbol,
23223
+ name: token.name,
23224
+ decimals: token.decimals,
23225
+ logo: token.image || token.logo,
23226
+ routable: token.routable
23227
+ });
23228
+ setTimeout(props.unmount, 300);
23229
+ };
23230
+ return /*#__PURE__*/React__default["default"].createElement(Dialog$1, {
23231
+ header: /*#__PURE__*/React__default["default"].createElement("div", {
23232
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
23233
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("h1", {
23234
+ className: "LineHeightL FontSizeL"
23235
+ }, "Confirm Selection"))),
23236
+ stacked: true,
23237
+ body: /*#__PURE__*/React__default["default"].createElement("div", {
23238
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
23239
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23240
+ className: "TokenImage medium TextCenter"
23241
+ }, logo && /*#__PURE__*/React__default["default"].createElement("img", {
23242
+ src: logo
23243
+ }), !logo && /*#__PURE__*/React__default["default"].createElement(reactTokenImage.TokenImage, {
23244
+ blockchain: token.blockchain,
23245
+ address: address
23246
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
23247
+ className: "PaddingTopS TextCenter"
23248
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23249
+ className: "Alert FontSizeS"
23250
+ }, /*#__PURE__*/React__default["default"].createElement("strong", null, "Please review this information"))), /*#__PURE__*/React__default["default"].createElement("div", {
23251
+ className: "PaddingTopXS"
23252
+ }, /*#__PURE__*/React__default["default"].createElement("table", {
23253
+ className: "Table TextLeft FontSizeS"
23254
+ }, /*#__PURE__*/React__default["default"].createElement("tbody", null, /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
23255
+ className: "TableSubTitle"
23256
+ }, "Address")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement("a", {
23257
+ className: "Link",
23258
+ title: address,
23259
+ href: blockchain.explorerUrlFor({
23260
+ token: address
23261
+ }),
23262
+ target: "_blank",
23263
+ rel: "noopener noreferrer"
23264
+ }, addressEllipsis(address, 8))))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
23265
+ className: "TableSubTitle"
23266
+ }, "Blockchain")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, blockchain.label))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
23267
+ className: "TableSubTitle"
23268
+ }, "Symbol")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, token.symbol))), /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
23269
+ className: "TableSubTitle"
23270
+ }, "Name")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, token.name))), age && /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
23271
+ className: "TableSubTitle"
23272
+ }, "Age")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, age))), holders && /*#__PURE__*/React__default["default"].createElement("tr", null, /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", {
23273
+ className: "TableSubTitle"
23274
+ }, "Holders")), /*#__PURE__*/React__default["default"].createElement("td", null, /*#__PURE__*/React__default["default"].createElement("div", null, holders))))))),
23275
+ footer: /*#__PURE__*/React__default["default"].createElement("div", {
23276
+ className: "PaddingTopS PaddingRightM PaddingLeftM PaddingBottomS"
23277
+ }, /*#__PURE__*/React__default["default"].createElement("button", {
23278
+ className: "ButtonPrimary",
23279
+ onClick: onClickConfirm
23280
+ }, "Confirm"))
23281
+ });
23282
+ });
23283
+
23284
+ var SelectTokenDialog = (function (props) {
23285
+ var _useContext = React.useContext(reactDialogStack.NavigateStackContext),
23286
+ navigate = _useContext.navigate;
23287
+ var _useContext2 = React.useContext(ClosableContext),
23288
+ setOpen = _useContext2.setOpen;
23289
+ var _useContext3 = React.useContext(SelectionContext),
23290
+ setSelection = _useContext3.setSelection;
23291
+ var _useState = React.useState(false),
23292
+ _useState2 = _slicedToArray(_useState, 2),
23293
+ loading = _useState2[0],
23294
+ setLoading = _useState2[1];
23295
+ var _useState3 = React.useState(''),
23296
+ _useState4 = _slicedToArray(_useState3, 2),
23297
+ searchTerm = _useState4[0],
23298
+ setSearchTerm = _useState4[1];
23299
+ var _useState5 = React.useState(),
23300
+ _useState6 = _slicedToArray(_useState5, 2),
23301
+ blockchain = _useState6[0],
23302
+ setBlockchain = _useState6[1];
23303
+ var _useState7 = React.useState(false),
23304
+ _useState8 = _slicedToArray(_useState7, 2),
23305
+ showAddToken = _useState8[0],
23306
+ setShowAddToken = _useState8[1];
23307
+ var _useState9 = React.useState([]),
23308
+ _useState10 = _slicedToArray(_useState9, 2),
23309
+ tokens = _useState10[0],
23310
+ setTokens = _useState10[1];
23311
+ var _useState11 = React.useState(),
23312
+ _useState12 = _slicedToArray(_useState11, 2);
23313
+ _useState12[0];
23314
+ _useState12[1];
23315
+ var searchElement = React.useRef();
23316
+ var wallet = web3Wallets.getWallets()[0];
23317
+ var startWithBlockchain = function startWithBlockchain(name) {
23318
+ var blockchain = web3Blockchains.Blockchain.findByName(name);
23319
+ setBlockchain(blockchain);
23320
+ setSelection(Object.assign(props.selection, {
23321
+ blockchain: blockchain,
23322
+ token: undefined
23323
+ }));
23324
+ setTokens(blockchain.tokens);
23325
+ };
23326
+ React.useEffect(function () {
23327
+ if (wallet) {
23328
+ wallet.connectedTo().then(function (name) {
23329
+ var blockchain = web3Blockchains.Blockchain.findByName(name);
23330
+ if (window._depay_token_selection_selected_blockchain) {
23331
+ startWithBlockchain(window._depay_token_selection_selected_blockchain);
23332
+ } else if (name && name.length && blockchain && blockchain.tokens && blockchain.tokens.length) {
23333
+ startWithBlockchain(name);
23334
+ } else {
23335
+ startWithBlockchain('ethereum');
23336
+ }
23337
+ });
23338
+ } else {
23339
+ startWithBlockchain('ethereum');
23340
+ }
23341
+ }, []);
23342
+ React.useEffect(function () {
23343
+ if (props.selection.blockchain) {
23344
+ setBlockchain(props.selection.blockchain);
23345
+ setTokens(props.selection.blockchain.tokens);
23346
+ if (searchElement.current) {
23347
+ searchElement.current.value = '';
23348
+ searchElement.current.focus();
23349
+ }
23350
+ }
23351
+ }, [props.selection, props.selection.blockchain]);
23352
+ var onClickChangeBlockchain = function onClickChangeBlockchain() {
23353
+ navigate('SelectBlockchain');
23354
+ };
23355
+ var onClickAddToken = function onClickAddToken() {
23356
+ setShowAddToken(true);
23357
+ if (searchElement.current) {
23358
+ searchElement.current.value = '';
23359
+ searchElement.current.focus();
23360
+ }
23361
+ };
23362
+ var searchTokens = React.useCallback(lodash.debounce(function (term, blockchainName) {
23363
+ fetch("https://public.depay.com/tokens/search?blockchain=".concat(blockchainName, "&term=").concat(term)).then(function (response) {
23364
+ if (response.status == 200) {
23365
+ response.json().then(function (tokens) {
23366
+ setTokens(tokens);
23367
+ setLoading(false);
23368
+ })["catch"](function () {
23369
+ return reject;
23370
+ });
23371
+ } else {
23372
+ reject();
23373
+ }
23374
+ })["catch"](function () {
23375
+ return reject;
23376
+ });
23377
+ }, 500), []);
23378
+ var onChangeSearch = function onChangeSearch(event) {
23379
+ setShowAddToken(false);
23380
+ setLoading(true);
23381
+ var term = event.target.value;
23382
+ setSearchTerm(term);
23383
+ if (term.match(/^0x/)) {
23384
+ setTokens([]);
23385
+ var token;
23386
+ try {
23387
+ token = new web3Tokens.Token({
23388
+ blockchain: blockchain.name,
23389
+ address: term
23390
+ });
23391
+ } catch (_unused) {}
23392
+ if (token == undefined) {
23393
+ setLoading(false);
23394
+ return;
23395
+ }
23396
+ Promise.all([token.name(), token.symbol(), token.decimals(), fetch("https://public.depay.com/tokens/routable/".concat(blockchain.name, "/").concat(term)).then(function (response) {
23397
+ if (response.status == 200) {
23398
+ return response.json();
23399
+ }
22553
23400
  })]).then(function (_ref) {
22554
23401
  var _ref2 = _slicedToArray(_ref, 4),
22555
23402
  name = _ref2[0],
@@ -22564,12 +23411,14 @@
22564
23411
  blockchain: blockchain.name,
22565
23412
  routable: !!routable
22566
23413
  }]);
23414
+ setLoading(false);
22567
23415
  });
22568
23416
  } else if (term && term.length) {
22569
23417
  setTokens([]);
22570
23418
  searchTokens(term, blockchain.name);
22571
23419
  } else {
22572
23420
  setTokens(blockchain.tokens);
23421
+ setLoading(false);
22573
23422
  }
22574
23423
  };
22575
23424
  var select = function select(token) {
@@ -22600,36 +23449,52 @@
22600
23449
  navigate('ConfirmTokenSelection');
22601
23450
  }
22602
23451
  };
22603
- var elements = tokens.map(function (token, index) {
22604
- return /*#__PURE__*/React__default["default"].createElement("div", {
22605
- key: "".concat(index, "-").concat(token.address),
22606
- className: "Card Row",
22607
- onClick: function onClick() {
22608
- return select(token);
22609
- }
23452
+ var elements;
23453
+ if (loading) {
23454
+ elements = [/*#__PURE__*/React__default["default"].createElement("div", {
23455
+ className: "SkeletonWrapper",
23456
+ key: 'loading'
22610
23457
  }, /*#__PURE__*/React__default["default"].createElement("div", {
22611
- className: "CardImage"
22612
- }, token.logo && /*#__PURE__*/React__default["default"].createElement("img", {
22613
- src: token.logo
22614
- }), token.image && /*#__PURE__*/React__default["default"].createElement("img", {
22615
- src: token.image
22616
- }), !(token.logo || token.image) && /*#__PURE__*/React__default["default"].createElement(reactTokenImage.TokenImage, {
22617
- blockchain: token.blockchain,
22618
- address: token.external_id || token.address
22619
- })), /*#__PURE__*/React__default["default"].createElement("div", {
22620
- className: "CardBody"
23458
+ className: "Skeleton",
23459
+ style: {
23460
+ height: '69px',
23461
+ width: '100%'
23462
+ }
22621
23463
  }, /*#__PURE__*/React__default["default"].createElement("div", {
22622
- className: "CardTokenSymbol",
22623
- title: token.symbol
22624
- }, /*#__PURE__*/React__default["default"].createElement("span", {
22625
- className: "CardText"
22626
- }, token.symbol)), /*#__PURE__*/React__default["default"].createElement("div", {
22627
- className: "CardTokenName",
22628
- title: token.name
22629
- }, /*#__PURE__*/React__default["default"].createElement("span", {
22630
- className: "CardText"
22631
- }, token.name))));
22632
- });
23464
+ className: "SkeletonBackground"
23465
+ })))];
23466
+ } else {
23467
+ elements = tokens.map(function (token, index) {
23468
+ return /*#__PURE__*/React__default["default"].createElement("div", {
23469
+ key: "".concat(index, "-").concat(token.address),
23470
+ className: "Card Row",
23471
+ onClick: function onClick() {
23472
+ return select(token);
23473
+ }
23474
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23475
+ className: "CardImage"
23476
+ }, token.logo && /*#__PURE__*/React__default["default"].createElement("img", {
23477
+ src: token.logo
23478
+ }), token.image && /*#__PURE__*/React__default["default"].createElement("img", {
23479
+ src: token.image
23480
+ }), !(token.logo || token.image) && /*#__PURE__*/React__default["default"].createElement(reactTokenImage.TokenImage, {
23481
+ blockchain: token.blockchain,
23482
+ address: token.external_id || token.address
23483
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
23484
+ className: "CardBody"
23485
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
23486
+ className: "CardTokenSymbol",
23487
+ title: token.symbol
23488
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
23489
+ className: "CardText"
23490
+ }, token.symbol)), /*#__PURE__*/React__default["default"].createElement("div", {
23491
+ className: "CardTokenName",
23492
+ title: token.name
23493
+ }, /*#__PURE__*/React__default["default"].createElement("span", {
23494
+ className: "CardText"
23495
+ }, token.name))));
23496
+ });
23497
+ }
22633
23498
  if (blockchain == undefined) {
22634
23499
  return null;
22635
23500
  }
@@ -22686,7 +23551,7 @@
22686
23551
  });
22687
23552
  });
22688
23553
 
22689
- var SelectStack = (function (props) {
23554
+ var SelectTokenStack = (function (props) {
22690
23555
  var _useContext = React.useContext(ConfigurationContext),
22691
23556
  what = _useContext.what;
22692
23557
  var _useContext2 = React.useContext(ClosableContext),
@@ -22736,7 +23601,7 @@
22736
23601
  var startupError;
22737
23602
  if (what == undefined) {
22738
23603
  startupError = '"what" needs to be configured!';
22739
- } else if (['token'].indexOf(what) < 0) {
23604
+ } else if (['token', 'nft'].indexOf(what) < 0) {
22740
23605
  startupError = "Unknown \"what\" configured: ".concat(what, "!");
22741
23606
  }
22742
23607
  return new Promise( /*#__PURE__*/function () {
@@ -22764,7 +23629,12 @@
22764
23629
  }
22765
23630
  }, /*#__PURE__*/React__default["default"].createElement(UpdatableProvider, null, /*#__PURE__*/React__default["default"].createElement(ClosableProvider, {
22766
23631
  unmount: userClosedDialog
22767
- }, /*#__PURE__*/React__default["default"].createElement(SelectionProvider, null, /*#__PURE__*/React__default["default"].createElement(SelectStack, {
23632
+ }, /*#__PURE__*/React__default["default"].createElement(SelectionProvider, null, what == 'token' && /*#__PURE__*/React__default["default"].createElement(SelectTokenStack, {
23633
+ document: document,
23634
+ container: container,
23635
+ unmount: unmount,
23636
+ resolve: resolve
23637
+ }), what == 'nft' && /*#__PURE__*/React__default["default"].createElement(SelectNFTStack, {
22768
23638
  document: document,
22769
23639
  container: container,
22770
23640
  unmount: unmount,