@ref-finance/ref-sdk 1.3.8 → 1.3.10
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/ref-sdk.cjs.development.css +24 -0
- package/dist/ref-sdk.cjs.development.js +179 -90
- package/dist/ref-sdk.cjs.development.js.map +1 -1
- package/dist/ref-sdk.cjs.production.min.js +1 -1
- package/dist/ref-sdk.cjs.production.min.js.map +1 -1
- package/dist/ref-sdk.esm.js +181 -92
- package/dist/ref-sdk.esm.js.map +1 -1
- package/dist/ref-sdk.umd.development.js +180 -91
- package/dist/ref-sdk.umd.development.js.map +1 -1
- package/dist/ref-sdk.umd.production.min.js +1 -1
- package/dist/ref-sdk.umd.production.min.js.map +1 -1
- package/dist/swap-widget/state.d.ts +6 -2
- package/dist/swap-widget/types.d.ts +4 -1
- package/package.json +1 -1
|
@@ -168,6 +168,8 @@
|
|
|
168
168
|
|
|
169
169
|
.__ref-swap-widget-submit-button {
|
|
170
170
|
width: 100%;
|
|
171
|
+
display: flex;
|
|
172
|
+
align-items: center;
|
|
171
173
|
justify-content: center;
|
|
172
174
|
font-size: 18px;
|
|
173
175
|
font-weight: 700;
|
|
@@ -176,6 +178,28 @@
|
|
|
176
178
|
margin-top: 14px;
|
|
177
179
|
cursor: pointer;
|
|
178
180
|
}
|
|
181
|
+
|
|
182
|
+
.__ref-swap-widget-submit-button-loader {
|
|
183
|
+
width: 20px;
|
|
184
|
+
height: 20px;
|
|
185
|
+
border: 2px solid #fff;
|
|
186
|
+
border-bottom-color: rgb(255, 255, 255);
|
|
187
|
+
border-bottom-color: transparent;
|
|
188
|
+
border-radius: 50%;
|
|
189
|
+
display: inline-block;
|
|
190
|
+
box-sizing: border-box;
|
|
191
|
+
animation: rotation 1s linear infinite;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@keyframes rotation {
|
|
195
|
+
0% {
|
|
196
|
+
transform: rotate(0deg);
|
|
197
|
+
}
|
|
198
|
+
100% {
|
|
199
|
+
transform: rotate(360deg);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
179
203
|
.__ref-widget-swap-detail-view {
|
|
180
204
|
justify-content: space-between;
|
|
181
205
|
width: 100%;
|
|
@@ -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
|
-
|
|
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
|
-
|
|
4994
|
-
|
|
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
|
|
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
|
-
|
|
5089
|
-
|
|
5090
|
-
|
|
5091
|
-
|
|
5092
|
-
|
|
5093
|
-
|
|
5094
|
-
|
|
5095
|
-
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5100
|
-
|
|
5101
|
-
|
|
5102
|
-
|
|
5103
|
-
|
|
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
|
|
5188
|
+
return {
|
|
5189
|
+
balances: balances,
|
|
5190
|
+
updateTokenBalance: updateTokenBalance
|
|
5191
|
+
};
|
|
5107
5192
|
};
|
|
5108
5193
|
|
|
5109
5194
|
var getPriceImpact$1 = function getPriceImpact(value, tokenIn, tokenInAmount) {
|
|
@@ -5416,6 +5501,8 @@ var HalfAndMaxAmount = function HalfAndMaxAmount(_ref6) {
|
|
|
5416
5501
|
}
|
|
5417
5502
|
}, "Max"));
|
|
5418
5503
|
};
|
|
5504
|
+
var DECIMAL_POINT = '.';
|
|
5505
|
+
var ALLOWED_KEYS = ['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight', 'Delete', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', DECIMAL_POINT];
|
|
5419
5506
|
var TokenAmount = function TokenAmount(props) {
|
|
5420
5507
|
var _ref$current2;
|
|
5421
5508
|
var balance = props.balance,
|
|
@@ -5436,6 +5523,28 @@ var TokenAmount = function TokenAmount(props) {
|
|
|
5436
5523
|
var _useState5 = React.useState(false),
|
|
5437
5524
|
hoverSelect = _useState5[0],
|
|
5438
5525
|
setHoverSelect = _useState5[1];
|
|
5526
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
5527
|
+
if (!ALLOWED_KEYS.includes(event.key) && !event.ctrlKey) {
|
|
5528
|
+
event.preventDefault();
|
|
5529
|
+
}
|
|
5530
|
+
var isDecimalPoint = event.key === DECIMAL_POINT;
|
|
5531
|
+
if (!isDecimalPoint) return;
|
|
5532
|
+
// Ensure only one dot is allowed
|
|
5533
|
+
var inputValue = event.target.value;
|
|
5534
|
+
if (inputValue.includes(DECIMAL_POINT)) {
|
|
5535
|
+
event.preventDefault();
|
|
5536
|
+
}
|
|
5537
|
+
// prohibit only one dot
|
|
5538
|
+
if (inputValue.length === 0) {
|
|
5539
|
+
event.preventDefault();
|
|
5540
|
+
}
|
|
5541
|
+
};
|
|
5542
|
+
var handlePaste = function handlePaste(event) {
|
|
5543
|
+
var paste = event.clipboardData.getData('text');
|
|
5544
|
+
if (!/^[0-9.]+$/.test(paste)) {
|
|
5545
|
+
event.preventDefault();
|
|
5546
|
+
}
|
|
5547
|
+
};
|
|
5439
5548
|
var handleChange = function handleChange(amount) {
|
|
5440
5549
|
if (onChangeAmount) {
|
|
5441
5550
|
onChangeAmount(amount);
|
|
@@ -5481,7 +5590,8 @@ var TokenAmount = function TokenAmount(props) {
|
|
|
5481
5590
|
}, !token ? React__default.createElement(React__default.Fragment, null, React__default.createElement("span", {
|
|
5482
5591
|
style: {
|
|
5483
5592
|
whiteSpace: 'nowrap',
|
|
5484
|
-
height: '26px'
|
|
5593
|
+
height: '26px',
|
|
5594
|
+
userSelect: 'none'
|
|
5485
5595
|
},
|
|
5486
5596
|
className: "__ref-swap-widget-row-flex-center"
|
|
5487
5597
|
}, "Select Token")) : React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
|
|
@@ -5516,16 +5626,16 @@ var TokenAmount = function TokenAmount(props) {
|
|
|
5516
5626
|
}, React__default.createElement("input", {
|
|
5517
5627
|
ref: ref,
|
|
5518
5628
|
max: !!onChangeAmount ? curMax : undefined,
|
|
5519
|
-
min: "0",
|
|
5520
5629
|
onWheel: function onWheel() {
|
|
5521
5630
|
if (ref.current) {
|
|
5522
5631
|
ref.current.blur();
|
|
5523
5632
|
}
|
|
5524
5633
|
},
|
|
5525
5634
|
className: "__ref-swap-widget-input-class",
|
|
5526
|
-
step: "any",
|
|
5527
5635
|
value: amount,
|
|
5528
|
-
type: "
|
|
5636
|
+
type: "text",
|
|
5637
|
+
onKeyDown: handleKeyDown,
|
|
5638
|
+
onPaste: handlePaste,
|
|
5529
5639
|
placeholder: !onChangeAmount ? '-' : '0.0',
|
|
5530
5640
|
onChange: function onChange(_ref7) {
|
|
5531
5641
|
var target = _ref7.target;
|
|
@@ -5533,9 +5643,6 @@ var TokenAmount = function TokenAmount(props) {
|
|
|
5533
5643
|
handleChange(target.value);
|
|
5534
5644
|
},
|
|
5535
5645
|
disabled: !onChangeAmount,
|
|
5536
|
-
onKeyDown: function onKeyDown(e) {
|
|
5537
|
-
return symbolsArr.includes(e.key) && e.preventDefault();
|
|
5538
|
-
},
|
|
5539
5646
|
style: {
|
|
5540
5647
|
color: primary,
|
|
5541
5648
|
marginBottom: '8px',
|
|
@@ -6383,15 +6490,9 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6383
6490
|
var _useState2 = React.useState(),
|
|
6384
6491
|
tokenOut = _useState2[0],
|
|
6385
6492
|
setTokenOut = _useState2[1];
|
|
6386
|
-
var _useState3 = React.useState(
|
|
6387
|
-
|
|
6388
|
-
|
|
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];
|
|
6493
|
+
var _useState3 = React.useState(false),
|
|
6494
|
+
notOpen = _useState3[0],
|
|
6495
|
+
setNotOpen = _useState3[1];
|
|
6395
6496
|
React.useEffect(function () {
|
|
6396
6497
|
if (!transactionState) return;
|
|
6397
6498
|
if (transactionState && transactionState.state !== null) {
|
|
@@ -6399,18 +6500,18 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6399
6500
|
}
|
|
6400
6501
|
transactionState == null ? void 0 : transactionState.setState((transactionState == null ? void 0 : transactionState.state) || null);
|
|
6401
6502
|
}, [transactionState]);
|
|
6402
|
-
var
|
|
6403
|
-
widgetRoute =
|
|
6404
|
-
setWidgetRoute =
|
|
6405
|
-
var
|
|
6406
|
-
amountIn =
|
|
6407
|
-
setAmountIn =
|
|
6408
|
-
var
|
|
6409
|
-
showSlip =
|
|
6410
|
-
setShowSlip =
|
|
6411
|
-
var
|
|
6412
|
-
slippageTolerance =
|
|
6413
|
-
setSlippageTolerance =
|
|
6503
|
+
var _useState4 = React.useState('swap'),
|
|
6504
|
+
widgetRoute = _useState4[0],
|
|
6505
|
+
setWidgetRoute = _useState4[1];
|
|
6506
|
+
var _useState5 = React.useState('1'),
|
|
6507
|
+
amountIn = _useState5[0],
|
|
6508
|
+
setAmountIn = _useState5[1];
|
|
6509
|
+
var _useState6 = React.useState(false),
|
|
6510
|
+
showSlip = _useState6[0],
|
|
6511
|
+
setShowSlip = _useState6[1];
|
|
6512
|
+
var _useState7 = React.useState(0.5),
|
|
6513
|
+
slippageTolerance = _useState7[0],
|
|
6514
|
+
setSlippageTolerance = _useState7[1];
|
|
6414
6515
|
var _useTokensIndexer = useTokensIndexer({
|
|
6415
6516
|
defaultTokenList: defaultTokenList,
|
|
6416
6517
|
AccountId: AccountId
|
|
@@ -6421,10 +6522,9 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6421
6522
|
useAllTokens({
|
|
6422
6523
|
reload: true
|
|
6423
6524
|
});
|
|
6424
|
-
var
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
setRreshTrigger = _useState10[1];
|
|
6525
|
+
var _useState8 = React.useState(false),
|
|
6526
|
+
refreshTrigger = _useState8[0],
|
|
6527
|
+
setRreshTrigger = _useState8[1];
|
|
6428
6528
|
var tokenPriceList = useTokenPriceList();
|
|
6429
6529
|
var _useRefPools = useRefPools(refreshTrigger),
|
|
6430
6530
|
allPools = _useRefPools.allPools,
|
|
@@ -6466,28 +6566,6 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6466
6566
|
handleSetTokenOut(exports.REF_META_DATA);
|
|
6467
6567
|
}
|
|
6468
6568
|
}, [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
6569
|
var _useSwap = useSwap({
|
|
6492
6570
|
tokenIn: tokenIn,
|
|
6493
6571
|
tokenOut: tokenOut,
|
|
@@ -6509,10 +6587,14 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6509
6587
|
AccountId: AccountId,
|
|
6510
6588
|
refreshTrigger: refreshTrigger,
|
|
6511
6589
|
poolFetchingState: poolFetchingState,
|
|
6512
|
-
referralId: referralId
|
|
6590
|
+
referralId: referralId,
|
|
6591
|
+
tokens: tokens
|
|
6513
6592
|
}),
|
|
6514
6593
|
amountOut = _useSwap.amountOut,
|
|
6515
6594
|
minAmountOut = _useSwap.minAmountOut,
|
|
6595
|
+
balances = _useSwap.balances,
|
|
6596
|
+
tokenInBalance = _useSwap.tokenInBalance,
|
|
6597
|
+
tokenOutBalance = _useSwap.tokenOutBalance,
|
|
6516
6598
|
rate = _useSwap.rate,
|
|
6517
6599
|
fee = _useSwap.fee,
|
|
6518
6600
|
estimates = _useSwap.estimates,
|
|
@@ -6537,6 +6619,9 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6537
6619
|
makeSwap();
|
|
6538
6620
|
};
|
|
6539
6621
|
var canSubmit = tokenIn && tokenOut && canSwap && !swapError && isSignedIn && new Big(tokenInBalance || '0').gte(amountIn || '0') && slippageTolerance > 0 && slippageTolerance < 100 && !ONLY_ZEROS.test(tokenInBalance);
|
|
6622
|
+
var tokensLoaded = React.useMemo(function () {
|
|
6623
|
+
return tokens.length > 0;
|
|
6624
|
+
}, [tokens]);
|
|
6540
6625
|
return React__default.createElement(ThemeContextProvider, {
|
|
6541
6626
|
customTheme: curTheme
|
|
6542
6627
|
}, React__default.createElement(TokenPriceContextProvider, null, widgetRoute === 'swap' && React__default.createElement("form", {
|
|
@@ -6578,6 +6663,7 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6578
6663
|
price: !tokenIn ? null : tokenPriceList == null ? void 0 : (_tokenPriceList$token = tokenPriceList[tokenIn.id]) == null ? void 0 : _tokenPriceList$token.price,
|
|
6579
6664
|
onChangeAmount: setAmountIn,
|
|
6580
6665
|
onSelectToken: function onSelectToken() {
|
|
6666
|
+
if (!tokensLoaded) return;
|
|
6581
6667
|
setWidgetRoute('token-selector-in');
|
|
6582
6668
|
}
|
|
6583
6669
|
}), React__default.createElement("div", {
|
|
@@ -6603,6 +6689,7 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6603
6689
|
token: tokenOut,
|
|
6604
6690
|
price: !tokenOut ? null : tokenPriceList == null ? void 0 : (_tokenPriceList$token2 = tokenPriceList[tokenOut.id]) == null ? void 0 : _tokenPriceList$token2.price,
|
|
6605
6691
|
onSelectToken: function onSelectToken() {
|
|
6692
|
+
if (!tokensLoaded) return;
|
|
6606
6693
|
setWidgetRoute('token-selector-out');
|
|
6607
6694
|
},
|
|
6608
6695
|
onForceUpdate: function onForceUpdate() {
|
|
@@ -6639,7 +6726,9 @@ var SwapWidget = function SwapWidget(props) {
|
|
|
6639
6726
|
cursor: !canSubmit ? 'not-allowed' : 'pointer'
|
|
6640
6727
|
},
|
|
6641
6728
|
disabled: !canSubmit
|
|
6642
|
-
}, 'Swap'
|
|
6729
|
+
}, tokensLoaded ? 'Swap' : React__default.createElement("div", {
|
|
6730
|
+
className: "__ref-swap-widget-submit-button-loader"
|
|
6731
|
+
})) : React__default.createElement("button", {
|
|
6643
6732
|
type: "button",
|
|
6644
6733
|
className: "__ref-swap-widget-submit-button __ref-swap-widget-button",
|
|
6645
6734
|
onClick: onConnect,
|