@ref-finance/ref-sdk 1.3.8 → 1.3.9

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.
@@ -512,18 +512,6 @@
512
512
  };
513
513
  return _extends.apply(this, arguments);
514
514
  }
515
- function _objectWithoutPropertiesLoose(source, excluded) {
516
- if (source == null) return {};
517
- var target = {};
518
- var sourceKeys = Object.keys(source);
519
- var key, i;
520
- for (i = 0; i < sourceKeys.length; i++) {
521
- key = sourceKeys[i];
522
- if (excluded.indexOf(key) >= 0) continue;
523
- target[key] = source[key];
524
- }
525
- return target;
526
- }
527
515
  function _unsupportedIterableToArray(o, minLen) {
528
516
  if (!o) return;
529
517
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
@@ -4729,7 +4717,6 @@
4729
4717
  };
4730
4718
  }();
4731
4719
 
4732
- var _excluded = ["slippageTolerance", "refreshTrigger", "onSwap", "AccountId", "poolFetchingState", "referralId"];
4733
4720
  var ThemeContext = /*#__PURE__*/React.createContext(defaultTheme);
4734
4721
  var ThemeContextProvider = function ThemeContextProvider(_ref) {
4735
4722
  var customTheme = _ref.customTheme,
@@ -4908,7 +4895,7 @@
4908
4895
  AccountId = params.AccountId,
4909
4896
  poolFetchingState = params.poolFetchingState,
4910
4897
  referralId = params.referralId,
4911
- swapParams = _objectWithoutPropertiesLoose(params, _excluded);
4898
+ tokens = params.tokens;
4912
4899
  var tokenIn = params.tokenIn,
4913
4900
  tokenOut = params.tokenOut,
4914
4901
  amountIn = params.amountIn;
@@ -4930,6 +4917,15 @@
4930
4917
  var _useState14 = React.useState(false),
4931
4918
  forceEstimate = _useState14[0],
4932
4919
  setForceEstimate = _useState14[1];
4920
+ var _useTokenBalances = useTokenBalances(tokens, AccountId),
4921
+ balances = _useTokenBalances.balances,
4922
+ updateTokenBalance = _useTokenBalances.updateTokenBalance;
4923
+ var tokenInBalance = React.useMemo(function () {
4924
+ return balances[tokenIn == null ? void 0 : tokenIn.id];
4925
+ }, [tokenIn, balances]);
4926
+ var tokenOutBalance = React.useMemo(function () {
4927
+ return balances[tokenOut == null ? void 0 : tokenOut.id] || '';
4928
+ }, [tokenOut, balances]);
4933
4929
  var minAmountOut = amountOut ? percentLess(slippageTolerance, amountOut) : '';
4934
4930
  var fee = !params.tokenOut || !params.tokenIn ? 0 : getAvgFee(estimates, params.tokenOut.id, toNonDivisibleNumber(params.tokenIn.decimals, params.amountIn));
4935
4931
  var rate = calculateExchangeRate(ONLY_ZEROS.test(params.amountIn) ? '1' : params.amountIn, amountOut || '1');
@@ -4971,8 +4967,16 @@
4971
4967
  _minAmountOut = percentLess(slippageTolerance, scientificNotationToString(bigEstimate.toString()));
4972
4968
  transactionsRef.push(nearWithdrawTransaction(_minAmountOut));
4973
4969
  }
4974
- onSwap(transactionsRef);
4975
- case 8:
4970
+ _context3.next = 9;
4971
+ return onSwap(transactionsRef);
4972
+ case 9:
4973
+ setTimeout(function () {
4974
+ var tokensToUpdate = [];
4975
+ if (tokenIn) tokensToUpdate.push(tokenIn.id);
4976
+ if (tokenOut) tokensToUpdate.push(tokenOut.id);
4977
+ if (tokensToUpdate.length > 0 && AccountId) updateTokenBalance(tokensToUpdate, AccountId);
4978
+ }, 3000);
4979
+ case 10:
4976
4980
  case "end":
4977
4981
  return _context3.stop();
4978
4982
  }
@@ -5034,6 +5038,9 @@
5034
5038
  return {
5035
5039
  amountOut: amountOut,
5036
5040
  minAmountOut: minAmountOut,
5041
+ balances: balances,
5042
+ tokenInBalance: tokenInBalance,
5043
+ tokenOutBalance: tokenOutBalance,
5037
5044
  fee: fee,
5038
5045
  rate: rate,
5039
5046
  estimates: estimates,
@@ -5061,30 +5068,108 @@
5061
5068
  value: tokenPriceList
5062
5069
  }, children);
5063
5070
  };
5064
- var useTokenBalnces = function useTokenBalnces(tokens, AccountId) {
5071
+ var useTokenBalances = function useTokenBalances(tokens, AccountId) {
5065
5072
  var _useState16 = React.useState({}),
5066
5073
  balances = _useState16[0],
5067
5074
  setBalances = _useState16[1];
5075
+ var updateTokenBalance = React.useCallback( /*#__PURE__*/function () {
5076
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(tokenIds, AccountId) {
5077
+ var updatedTokensBalancesMap;
5078
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
5079
+ while (1) {
5080
+ switch (_context5.prev = _context5.next) {
5081
+ case 0:
5082
+ updatedTokensBalancesMap = {};
5083
+ _context5.next = 3;
5084
+ return Promise.all(tokenIds.map( /*#__PURE__*/function () {
5085
+ var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(tokenId) {
5086
+ var _tokens$find;
5087
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
5088
+ while (1) {
5089
+ switch (_context4.prev = _context4.next) {
5090
+ case 0:
5091
+ _context4.t0 = toReadableNumber;
5092
+ _context4.t1 = ((_tokens$find = tokens.find(function (t) {
5093
+ return t.id === tokenId;
5094
+ })) == null ? void 0 : _tokens$find.decimals) || 0;
5095
+ _context4.next = 4;
5096
+ return ftGetBalance(tokenId === exports.WRAP_NEAR_CONTRACT_ID ? 'NEAR' : tokenId, AccountId);
5097
+ case 4:
5098
+ _context4.t2 = _context4.sent;
5099
+ updatedTokensBalancesMap[tokenId] = (0, _context4.t0)(_context4.t1, _context4.t2);
5100
+ case 6:
5101
+ case "end":
5102
+ return _context4.stop();
5103
+ }
5104
+ }
5105
+ }, _callee4);
5106
+ }));
5107
+ return function (_x3) {
5108
+ return _ref9.apply(this, arguments);
5109
+ };
5110
+ }()));
5111
+ case 3:
5112
+ setBalances(function (prevState) {
5113
+ return _extends({}, prevState, updatedTokensBalancesMap);
5114
+ });
5115
+ case 4:
5116
+ case "end":
5117
+ return _context5.stop();
5118
+ }
5119
+ }
5120
+ }, _callee5);
5121
+ }));
5122
+ return function (_x, _x2) {
5123
+ return _ref8.apply(this, arguments);
5124
+ };
5125
+ }(), [tokens]);
5068
5126
  React.useEffect(function () {
5069
- var validTokens = tokens.filter(function (t) {
5070
- return !!(t != null && t.id);
5071
- });
5072
- var ids = validTokens.map(function (token) {
5073
- return token.id;
5074
- });
5075
- Promise.all(ids.map(function (id) {
5076
- return ftGetBalance(id === exports.WRAP_NEAR_CONTRACT_ID ? 'NEAR' : id, AccountId);
5077
- })).then(function (balances) {
5078
- var balancesMap = validTokens.reduce(function (acc, token, index) {
5079
- var _extends2;
5080
- return _extends({}, acc, (_extends2 = {}, _extends2[token.id] = toReadableNumber(token.decimals, balances[index]), _extends2));
5081
- }, {});
5082
- setBalances(balancesMap);
5083
- });
5084
- }, [tokens.map(function (t) {
5127
+ // Initializes token balances
5128
+ // Called in 1 minute intervals
5129
+ var initTokenBalances = /*#__PURE__*/function () {
5130
+ var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
5131
+ var validTokens, ids;
5132
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
5133
+ while (1) {
5134
+ switch (_context6.prev = _context6.next) {
5135
+ case 0:
5136
+ if (AccountId) {
5137
+ _context6.next = 3;
5138
+ break;
5139
+ }
5140
+ setBalances({});
5141
+ return _context6.abrupt("return");
5142
+ case 3:
5143
+ validTokens = tokens.filter(function (t) {
5144
+ return !!(t != null && t.id);
5145
+ });
5146
+ ids = validTokens.map(function (token) {
5147
+ return token.id;
5148
+ });
5149
+ updateTokenBalance(ids, AccountId);
5150
+ case 6:
5151
+ case "end":
5152
+ return _context6.stop();
5153
+ }
5154
+ }
5155
+ }, _callee6);
5156
+ }));
5157
+ return function initTokenBalances() {
5158
+ return _ref10.apply(this, arguments);
5159
+ };
5160
+ }();
5161
+ initTokenBalances();
5162
+ var interval = setInterval(initTokenBalances, 60000);
5163
+ return function () {
5164
+ return clearInterval(interval);
5165
+ };
5166
+ }, [AccountId, tokens.map(function (t) {
5085
5167
  return t == null ? void 0 : t.id;
5086
5168
  }).join('-')]);
5087
- return balances;
5169
+ return {
5170
+ balances: balances,
5171
+ updateTokenBalance: updateTokenBalance
5172
+ };
5088
5173
  };
5089
5174
 
5090
5175
  function styleInject(css, ref) {
@@ -6394,15 +6479,9 @@
6394
6479
  var _useState2 = React.useState(),
6395
6480
  tokenOut = _useState2[0],
6396
6481
  setTokenOut = _useState2[1];
6397
- var _useState3 = React.useState(''),
6398
- tokenInBalance = _useState3[0],
6399
- setTokenInBalance = _useState3[1];
6400
- var _useState4 = React.useState(''),
6401
- tokenOutBalance = _useState4[0],
6402
- setTokenOutBalance = _useState4[1];
6403
- var _useState5 = React.useState(false),
6404
- notOpen = _useState5[0],
6405
- setNotOpen = _useState5[1];
6482
+ var _useState3 = React.useState(false),
6483
+ notOpen = _useState3[0],
6484
+ setNotOpen = _useState3[1];
6406
6485
  React.useEffect(function () {
6407
6486
  if (!transactionState) return;
6408
6487
  if (transactionState && transactionState.state !== null) {
@@ -6410,18 +6489,18 @@
6410
6489
  }
6411
6490
  transactionState == null ? void 0 : transactionState.setState((transactionState == null ? void 0 : transactionState.state) || null);
6412
6491
  }, [transactionState]);
6413
- var _useState6 = React.useState('swap'),
6414
- widgetRoute = _useState6[0],
6415
- setWidgetRoute = _useState6[1];
6416
- var _useState7 = React.useState('1'),
6417
- amountIn = _useState7[0],
6418
- setAmountIn = _useState7[1];
6419
- var _useState8 = React.useState(false),
6420
- showSlip = _useState8[0],
6421
- setShowSlip = _useState8[1];
6422
- var _useState9 = React.useState(0.5),
6423
- slippageTolerance = _useState9[0],
6424
- setSlippageTolerance = _useState9[1];
6492
+ var _useState4 = React.useState('swap'),
6493
+ widgetRoute = _useState4[0],
6494
+ setWidgetRoute = _useState4[1];
6495
+ var _useState5 = React.useState('1'),
6496
+ amountIn = _useState5[0],
6497
+ setAmountIn = _useState5[1];
6498
+ var _useState6 = React.useState(false),
6499
+ showSlip = _useState6[0],
6500
+ setShowSlip = _useState6[1];
6501
+ var _useState7 = React.useState(0.5),
6502
+ slippageTolerance = _useState7[0],
6503
+ setSlippageTolerance = _useState7[1];
6425
6504
  var _useTokensIndexer = useTokensIndexer({
6426
6505
  defaultTokenList: defaultTokenList,
6427
6506
  AccountId: AccountId
@@ -6432,10 +6511,9 @@
6432
6511
  useAllTokens({
6433
6512
  reload: true
6434
6513
  });
6435
- var balances = useTokenBalnces(tokens, AccountId);
6436
- var _useState10 = React.useState(false),
6437
- refreshTrigger = _useState10[0],
6438
- setRreshTrigger = _useState10[1];
6514
+ var _useState8 = React.useState(false),
6515
+ refreshTrigger = _useState8[0],
6516
+ setRreshTrigger = _useState8[1];
6439
6517
  var tokenPriceList = useTokenPriceList();
6440
6518
  var _useRefPools = useRefPools(refreshTrigger),
6441
6519
  allPools = _useRefPools.allPools,
@@ -6477,28 +6555,6 @@
6477
6555
  handleSetTokenOut(exports.REF_META_DATA);
6478
6556
  }
6479
6557
  }, [tokens, tokenLoading]);
6480
- React.useEffect(function () {
6481
- if (!tokenIn) return;
6482
- var wrapedId = tokenIn.id === exports.WRAP_NEAR_CONTRACT_ID ? 'NEAR' : tokenIn.id;
6483
- if (balances[wrapedId]) {
6484
- setTokenInBalance(balances[wrapedId]);
6485
- return;
6486
- }
6487
- ftGetBalance(wrapedId, AccountId).then(function (available) {
6488
- setTokenInBalance(toReadableNumber(tokenIn.decimals, available));
6489
- });
6490
- }, [tokenIn, AccountId, balances]);
6491
- React.useEffect(function () {
6492
- if (!tokenOut) return;
6493
- var wrapedId = tokenOut.id === exports.WRAP_NEAR_CONTRACT_ID ? 'NEAR' : tokenOut.id;
6494
- if (balances[wrapedId]) {
6495
- setTokenOutBalance(balances[wrapedId]);
6496
- return;
6497
- }
6498
- ftGetBalance(wrapedId, AccountId).then(function (available) {
6499
- setTokenOutBalance(toReadableNumber(tokenOut.decimals, available));
6500
- });
6501
- }, [tokenOut, AccountId, balances]);
6502
6558
  var _useSwap = useSwap({
6503
6559
  tokenIn: tokenIn,
6504
6560
  tokenOut: tokenOut,
@@ -6520,10 +6576,14 @@
6520
6576
  AccountId: AccountId,
6521
6577
  refreshTrigger: refreshTrigger,
6522
6578
  poolFetchingState: poolFetchingState,
6523
- referralId: referralId
6579
+ referralId: referralId,
6580
+ tokens: tokens
6524
6581
  }),
6525
6582
  amountOut = _useSwap.amountOut,
6526
6583
  minAmountOut = _useSwap.minAmountOut,
6584
+ balances = _useSwap.balances,
6585
+ tokenInBalance = _useSwap.tokenInBalance,
6586
+ tokenOutBalance = _useSwap.tokenOutBalance,
6527
6587
  rate = _useSwap.rate,
6528
6588
  fee = _useSwap.fee,
6529
6589
  estimates = _useSwap.estimates,