@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.
@@ -531,18 +531,6 @@ function _extends() {
531
531
  };
532
532
  return _extends.apply(this, arguments);
533
533
  }
534
- function _objectWithoutPropertiesLoose(source, excluded) {
535
- if (source == null) return {};
536
- var target = {};
537
- var sourceKeys = Object.keys(source);
538
- var key, i;
539
- for (i = 0; i < sourceKeys.length; i++) {
540
- key = sourceKeys[i];
541
- if (excluded.indexOf(key) >= 0) continue;
542
- target[key] = source[key];
543
- }
544
- return target;
545
- }
546
534
  function _unsupportedIterableToArray(o, minLen) {
547
535
  if (!o) return;
548
536
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
@@ -4748,7 +4736,6 @@ var fetchAllPools = /*#__PURE__*/function () {
4748
4736
  };
4749
4737
  }();
4750
4738
 
4751
- var _excluded = ["slippageTolerance", "refreshTrigger", "onSwap", "AccountId", "poolFetchingState", "referralId"];
4752
4739
  var ThemeContext = /*#__PURE__*/React.createContext(defaultTheme);
4753
4740
  var ThemeContextProvider = function ThemeContextProvider(_ref) {
4754
4741
  var customTheme = _ref.customTheme,
@@ -4927,7 +4914,7 @@ var useSwap = function useSwap(params) {
4927
4914
  AccountId = params.AccountId,
4928
4915
  poolFetchingState = params.poolFetchingState,
4929
4916
  referralId = params.referralId,
4930
- swapParams = _objectWithoutPropertiesLoose(params, _excluded);
4917
+ tokens = params.tokens;
4931
4918
  var tokenIn = params.tokenIn,
4932
4919
  tokenOut = params.tokenOut,
4933
4920
  amountIn = params.amountIn;
@@ -4949,6 +4936,15 @@ var useSwap = function useSwap(params) {
4949
4936
  var _useState14 = React.useState(false),
4950
4937
  forceEstimate = _useState14[0],
4951
4938
  setForceEstimate = _useState14[1];
4939
+ var _useTokenBalances = useTokenBalances(tokens, AccountId),
4940
+ balances = _useTokenBalances.balances,
4941
+ updateTokenBalance = _useTokenBalances.updateTokenBalance;
4942
+ var tokenInBalance = React.useMemo(function () {
4943
+ return balances[tokenIn == null ? void 0 : tokenIn.id];
4944
+ }, [tokenIn, balances]);
4945
+ var tokenOutBalance = React.useMemo(function () {
4946
+ return balances[tokenOut == null ? void 0 : tokenOut.id] || '';
4947
+ }, [tokenOut, balances]);
4952
4948
  var minAmountOut = amountOut ? percentLess(slippageTolerance, amountOut) : '';
4953
4949
  var fee = !params.tokenOut || !params.tokenIn ? 0 : getAvgFee(estimates, params.tokenOut.id, toNonDivisibleNumber(params.tokenIn.decimals, params.amountIn));
4954
4950
  var rate = calculateExchangeRate(ONLY_ZEROS.test(params.amountIn) ? '1' : params.amountIn, amountOut || '1');
@@ -4990,8 +4986,16 @@ var useSwap = function useSwap(params) {
4990
4986
  _minAmountOut = percentLess(slippageTolerance, scientificNotationToString(bigEstimate.toString()));
4991
4987
  transactionsRef.push(nearWithdrawTransaction(_minAmountOut));
4992
4988
  }
4993
- onSwap(transactionsRef);
4994
- case 8:
4989
+ _context3.next = 9;
4990
+ return onSwap(transactionsRef);
4991
+ case 9:
4992
+ setTimeout(function () {
4993
+ var tokensToUpdate = [];
4994
+ if (tokenIn) tokensToUpdate.push(tokenIn.id);
4995
+ if (tokenOut) tokensToUpdate.push(tokenOut.id);
4996
+ if (tokensToUpdate.length > 0 && AccountId) updateTokenBalance(tokensToUpdate, AccountId);
4997
+ }, 3000);
4998
+ case 10:
4995
4999
  case "end":
4996
5000
  return _context3.stop();
4997
5001
  }
@@ -5053,6 +5057,9 @@ var useSwap = function useSwap(params) {
5053
5057
  return {
5054
5058
  amountOut: amountOut,
5055
5059
  minAmountOut: minAmountOut,
5060
+ balances: balances,
5061
+ tokenInBalance: tokenInBalance,
5062
+ tokenOutBalance: tokenOutBalance,
5056
5063
  fee: fee,
5057
5064
  rate: rate,
5058
5065
  estimates: estimates,
@@ -5080,30 +5087,108 @@ var TokenPriceContextProvider = function TokenPriceContextProvider(_ref7) {
5080
5087
  value: tokenPriceList
5081
5088
  }, children);
5082
5089
  };
5083
- var useTokenBalnces = function useTokenBalnces(tokens, AccountId) {
5090
+ var useTokenBalances = function useTokenBalances(tokens, AccountId) {
5084
5091
  var _useState16 = React.useState({}),
5085
5092
  balances = _useState16[0],
5086
5093
  setBalances = _useState16[1];
5094
+ var updateTokenBalance = React.useCallback( /*#__PURE__*/function () {
5095
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(tokenIds, AccountId) {
5096
+ var updatedTokensBalancesMap;
5097
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
5098
+ while (1) {
5099
+ switch (_context5.prev = _context5.next) {
5100
+ case 0:
5101
+ updatedTokensBalancesMap = {};
5102
+ _context5.next = 3;
5103
+ return Promise.all(tokenIds.map( /*#__PURE__*/function () {
5104
+ var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(tokenId) {
5105
+ var _tokens$find;
5106
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
5107
+ while (1) {
5108
+ switch (_context4.prev = _context4.next) {
5109
+ case 0:
5110
+ _context4.t0 = toReadableNumber;
5111
+ _context4.t1 = ((_tokens$find = tokens.find(function (t) {
5112
+ return t.id === tokenId;
5113
+ })) == null ? void 0 : _tokens$find.decimals) || 0;
5114
+ _context4.next = 4;
5115
+ return ftGetBalance(tokenId === exports.WRAP_NEAR_CONTRACT_ID ? 'NEAR' : tokenId, AccountId);
5116
+ case 4:
5117
+ _context4.t2 = _context4.sent;
5118
+ updatedTokensBalancesMap[tokenId] = (0, _context4.t0)(_context4.t1, _context4.t2);
5119
+ case 6:
5120
+ case "end":
5121
+ return _context4.stop();
5122
+ }
5123
+ }
5124
+ }, _callee4);
5125
+ }));
5126
+ return function (_x3) {
5127
+ return _ref9.apply(this, arguments);
5128
+ };
5129
+ }()));
5130
+ case 3:
5131
+ setBalances(function (prevState) {
5132
+ return _extends({}, prevState, updatedTokensBalancesMap);
5133
+ });
5134
+ case 4:
5135
+ case "end":
5136
+ return _context5.stop();
5137
+ }
5138
+ }
5139
+ }, _callee5);
5140
+ }));
5141
+ return function (_x, _x2) {
5142
+ return _ref8.apply(this, arguments);
5143
+ };
5144
+ }(), [tokens]);
5087
5145
  React.useEffect(function () {
5088
- var validTokens = tokens.filter(function (t) {
5089
- return !!(t != null && t.id);
5090
- });
5091
- var ids = validTokens.map(function (token) {
5092
- return token.id;
5093
- });
5094
- Promise.all(ids.map(function (id) {
5095
- return ftGetBalance(id === exports.WRAP_NEAR_CONTRACT_ID ? 'NEAR' : id, AccountId);
5096
- })).then(function (balances) {
5097
- var balancesMap = validTokens.reduce(function (acc, token, index) {
5098
- var _extends2;
5099
- return _extends({}, acc, (_extends2 = {}, _extends2[token.id] = toReadableNumber(token.decimals, balances[index]), _extends2));
5100
- }, {});
5101
- setBalances(balancesMap);
5102
- });
5103
- }, [tokens.map(function (t) {
5146
+ // Initializes token balances
5147
+ // Called in 1 minute intervals
5148
+ var initTokenBalances = /*#__PURE__*/function () {
5149
+ var _ref10 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6() {
5150
+ var validTokens, ids;
5151
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
5152
+ while (1) {
5153
+ switch (_context6.prev = _context6.next) {
5154
+ case 0:
5155
+ if (AccountId) {
5156
+ _context6.next = 3;
5157
+ break;
5158
+ }
5159
+ setBalances({});
5160
+ return _context6.abrupt("return");
5161
+ case 3:
5162
+ validTokens = tokens.filter(function (t) {
5163
+ return !!(t != null && t.id);
5164
+ });
5165
+ ids = validTokens.map(function (token) {
5166
+ return token.id;
5167
+ });
5168
+ updateTokenBalance(ids, AccountId);
5169
+ case 6:
5170
+ case "end":
5171
+ return _context6.stop();
5172
+ }
5173
+ }
5174
+ }, _callee6);
5175
+ }));
5176
+ return function initTokenBalances() {
5177
+ return _ref10.apply(this, arguments);
5178
+ };
5179
+ }();
5180
+ initTokenBalances();
5181
+ var interval = setInterval(initTokenBalances, 60000);
5182
+ return function () {
5183
+ return clearInterval(interval);
5184
+ };
5185
+ }, [AccountId, tokens.map(function (t) {
5104
5186
  return t == null ? void 0 : t.id;
5105
5187
  }).join('-')]);
5106
- return balances;
5188
+ return {
5189
+ balances: balances,
5190
+ updateTokenBalance: updateTokenBalance
5191
+ };
5107
5192
  };
5108
5193
 
5109
5194
  var getPriceImpact$1 = function getPriceImpact(value, tokenIn, tokenInAmount) {
@@ -6383,15 +6468,9 @@ var SwapWidget = function SwapWidget(props) {
6383
6468
  var _useState2 = React.useState(),
6384
6469
  tokenOut = _useState2[0],
6385
6470
  setTokenOut = _useState2[1];
6386
- var _useState3 = React.useState(''),
6387
- tokenInBalance = _useState3[0],
6388
- setTokenInBalance = _useState3[1];
6389
- var _useState4 = React.useState(''),
6390
- tokenOutBalance = _useState4[0],
6391
- setTokenOutBalance = _useState4[1];
6392
- var _useState5 = React.useState(false),
6393
- notOpen = _useState5[0],
6394
- setNotOpen = _useState5[1];
6471
+ var _useState3 = React.useState(false),
6472
+ notOpen = _useState3[0],
6473
+ setNotOpen = _useState3[1];
6395
6474
  React.useEffect(function () {
6396
6475
  if (!transactionState) return;
6397
6476
  if (transactionState && transactionState.state !== null) {
@@ -6399,18 +6478,18 @@ var SwapWidget = function SwapWidget(props) {
6399
6478
  }
6400
6479
  transactionState == null ? void 0 : transactionState.setState((transactionState == null ? void 0 : transactionState.state) || null);
6401
6480
  }, [transactionState]);
6402
- var _useState6 = React.useState('swap'),
6403
- widgetRoute = _useState6[0],
6404
- setWidgetRoute = _useState6[1];
6405
- var _useState7 = React.useState('1'),
6406
- amountIn = _useState7[0],
6407
- setAmountIn = _useState7[1];
6408
- var _useState8 = React.useState(false),
6409
- showSlip = _useState8[0],
6410
- setShowSlip = _useState8[1];
6411
- var _useState9 = React.useState(0.5),
6412
- slippageTolerance = _useState9[0],
6413
- setSlippageTolerance = _useState9[1];
6481
+ var _useState4 = React.useState('swap'),
6482
+ widgetRoute = _useState4[0],
6483
+ setWidgetRoute = _useState4[1];
6484
+ var _useState5 = React.useState('1'),
6485
+ amountIn = _useState5[0],
6486
+ setAmountIn = _useState5[1];
6487
+ var _useState6 = React.useState(false),
6488
+ showSlip = _useState6[0],
6489
+ setShowSlip = _useState6[1];
6490
+ var _useState7 = React.useState(0.5),
6491
+ slippageTolerance = _useState7[0],
6492
+ setSlippageTolerance = _useState7[1];
6414
6493
  var _useTokensIndexer = useTokensIndexer({
6415
6494
  defaultTokenList: defaultTokenList,
6416
6495
  AccountId: AccountId
@@ -6421,10 +6500,9 @@ var SwapWidget = function SwapWidget(props) {
6421
6500
  useAllTokens({
6422
6501
  reload: true
6423
6502
  });
6424
- var balances = useTokenBalnces(tokens, AccountId);
6425
- var _useState10 = React.useState(false),
6426
- refreshTrigger = _useState10[0],
6427
- setRreshTrigger = _useState10[1];
6503
+ var _useState8 = React.useState(false),
6504
+ refreshTrigger = _useState8[0],
6505
+ setRreshTrigger = _useState8[1];
6428
6506
  var tokenPriceList = useTokenPriceList();
6429
6507
  var _useRefPools = useRefPools(refreshTrigger),
6430
6508
  allPools = _useRefPools.allPools,
@@ -6466,28 +6544,6 @@ var SwapWidget = function SwapWidget(props) {
6466
6544
  handleSetTokenOut(exports.REF_META_DATA);
6467
6545
  }
6468
6546
  }, [tokens, tokenLoading]);
6469
- React.useEffect(function () {
6470
- if (!tokenIn) return;
6471
- var wrapedId = tokenIn.id === exports.WRAP_NEAR_CONTRACT_ID ? 'NEAR' : tokenIn.id;
6472
- if (balances[wrapedId]) {
6473
- setTokenInBalance(balances[wrapedId]);
6474
- return;
6475
- }
6476
- ftGetBalance(wrapedId, AccountId).then(function (available) {
6477
- setTokenInBalance(toReadableNumber(tokenIn.decimals, available));
6478
- });
6479
- }, [tokenIn, AccountId, balances]);
6480
- React.useEffect(function () {
6481
- if (!tokenOut) return;
6482
- var wrapedId = tokenOut.id === exports.WRAP_NEAR_CONTRACT_ID ? 'NEAR' : tokenOut.id;
6483
- if (balances[wrapedId]) {
6484
- setTokenOutBalance(balances[wrapedId]);
6485
- return;
6486
- }
6487
- ftGetBalance(wrapedId, AccountId).then(function (available) {
6488
- setTokenOutBalance(toReadableNumber(tokenOut.decimals, available));
6489
- });
6490
- }, [tokenOut, AccountId, balances]);
6491
6547
  var _useSwap = useSwap({
6492
6548
  tokenIn: tokenIn,
6493
6549
  tokenOut: tokenOut,
@@ -6509,10 +6565,14 @@ var SwapWidget = function SwapWidget(props) {
6509
6565
  AccountId: AccountId,
6510
6566
  refreshTrigger: refreshTrigger,
6511
6567
  poolFetchingState: poolFetchingState,
6512
- referralId: referralId
6568
+ referralId: referralId,
6569
+ tokens: tokens
6513
6570
  }),
6514
6571
  amountOut = _useSwap.amountOut,
6515
6572
  minAmountOut = _useSwap.minAmountOut,
6573
+ balances = _useSwap.balances,
6574
+ tokenInBalance = _useSwap.tokenInBalance,
6575
+ tokenOutBalance = _useSwap.tokenOutBalance,
6516
6576
  rate = _useSwap.rate,
6517
6577
  fee = _useSwap.fee,
6518
6578
  estimates = _useSwap.estimates,