@kimafinance/kima-transaction-widget 1.1.99-beta.1 → 1.2.2-beta.1

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.
@@ -1,2 +1,3 @@
1
1
  export declare const formatterInt: Intl.NumberFormat;
2
2
  export declare const formatterFloat: Intl.NumberFormat;
3
+ export declare function isEmptyObject(arg: any): boolean;
@@ -1,3 +1,3 @@
1
1
  export default function useCurrencyOptions(): {
2
- options: any;
2
+ options: string;
3
3
  };
package/dist/index.js CHANGED
@@ -739,17 +739,8 @@ var Celo = function Celo(_ref) {
739
739
  }));
740
740
  };
741
741
 
742
- var SOLANA_USDK_ADDRESS = '9YSFWfU9Ram6mAo2QP9zsTnA8yFkkkFGEs3kGgjtQKvp';
743
- var ETHEREUM_USDK_ADDRESS = '0x5FF59Bf2277A1e6bA9bB8A38Ea3F9ABfd3d9345a';
744
- var POLYGON_USDK_ADDRESS = '0x95A94Fc761F98fcC60DA07C55F8ECDDD8B381CfF';
745
- var AVAX_USDK_ADDRESS = '0x5d8598Ce65f15f14c58aD3a4CD285223c8e76a2E';
746
- var BSC_USDK_ADDRESS = '0x3eb36be2c3FD244139756F681420637a2a9464e3';
747
- var OPTIMISM_USDK_ADDRESS = '0x2cf79df2879902a2fc06329b1760e0f2ad9a3a47';
748
- var ARBITRUM_USDK_ADDRESS = '0x2cf79df2879902a2fc06329b1760e0f2ad9a3a47';
749
- var POLYGON_ZKEVM_ADDRESS = '0x3eb36be2c3FD244139756F681420637a2a9464e3';
750
742
  var ETHEREUM_KEUR_ADDRESS = '0xAFc823fcbe5945f5f38f144314663c87dA713E06';
751
743
  var POLYGON_KEUR_ADDRESS = '0x7D4325eE3A80778Af01498ca32E0C30e233ffB0d';
752
- var TRON_USDK_ADDRESS = 'TEuRmCALTUY2syY1EE6mMYnyfmNfFfMpYz';
753
744
  var TRON_USDK_OWNER_ADDRESS = 'TBVn4bsBN4DhtZ7D3vEVpAyqkvdFn7zmpU';
754
745
 
755
746
  var _CHAIN_NAMES_TO_IDS, _CHAIN_NAMES_TO_STRIN, _CHAIN_STRING_TO_NAME, _CHAIN_NAMES_TO_EXPLO, _CHAIN_NAMES_TO_GECKO, _CHAIN_IDS_TO_NAMES;
@@ -836,25 +827,10 @@ var isEVMChain = function isEVMChain(chainId) {
836
827
  };
837
828
  var COIN_LIST = {
838
829
  USDK: {
839
- symbol: 'USDK',
840
- label: 'USDK',
841
- icon: USDT,
842
- address: {
843
- SOL: SOLANA_USDK_ADDRESS,
844
- ETH: ETHEREUM_USDK_ADDRESS,
845
- POL: POLYGON_USDK_ADDRESS,
846
- AVX: AVAX_USDK_ADDRESS,
847
- BSC: BSC_USDK_ADDRESS,
848
- OPT: OPTIMISM_USDK_ADDRESS,
849
- ARB: ARBITRUM_USDK_ADDRESS,
850
- ZKE: POLYGON_ZKEVM_ADDRESS,
851
- TRX: TRON_USDK_ADDRESS
852
- },
853
- decimals: 6
830
+ icon: USDT
854
831
  },
855
832
  KEUR: {
856
833
  symbol: 'KEUR',
857
- label: 'KEUR',
858
834
  icon: KEUR,
859
835
  address: {
860
836
  ETH: ETHEREUM_KEUR_ADDRESS,
@@ -901,6 +877,7 @@ var TransactionStatus;
901
877
  var createSlice = toolkitRaw.createSlice;
902
878
  var initialState = {
903
879
  theme: {},
880
+ tokenOptions: {},
904
881
  kimaExplorerUrl: 'explorer.kima.finance',
905
882
  mode: exports.ModeOptions.bridge,
906
883
  sourceChain: '',
@@ -938,7 +915,7 @@ var initialState = {
938
915
  backendUrl: '',
939
916
  nodeProviderQuery: '',
940
917
  txId: -1,
941
- currencyOptions: COIN_LIST['USDK'],
918
+ selectedToken: 'USDK',
942
919
  compliantOption: true,
943
920
  sourceCompliant: 'low',
944
921
  targetCompliant: 'low',
@@ -966,7 +943,7 @@ var optionSlice = createSlice({
966
943
  state.sourceCompliant = 'low';
967
944
  state.targetCompliant = 'low';
968
945
  state.useFIAT = false;
969
- state.bankDetails = {
946
+ state.tokenOptions = {}, state.bankDetails = {
970
947
  iban: '',
971
948
  recipient: ''
972
949
  };
@@ -974,6 +951,9 @@ var optionSlice = createSlice({
974
951
  state.targetNetworkFetching = false;
975
952
  state.signature = '';
976
953
  },
954
+ setTokenOptions: function setTokenOptions(state, action) {
955
+ state.tokenOptions = action.payload;
956
+ },
977
957
  setTheme: function setTheme(state, action) {
978
958
  state.theme = action.payload;
979
959
  },
@@ -1061,8 +1041,8 @@ var optionSlice = createSlice({
1061
1041
  setTxId: function setTxId(state, action) {
1062
1042
  state.txId = action.payload;
1063
1043
  },
1064
- setCurrencyOptions: function setCurrencyOptions(state, action) {
1065
- state.currencyOptions = action.payload;
1044
+ setSelectedToken: function setSelectedToken(state, action) {
1045
+ state.selectedToken = action.payload;
1066
1046
  },
1067
1047
  setCompliantOption: function setCompliantOption(state, action) {
1068
1048
  state.compliantOption = action.payload;
@@ -1095,6 +1075,7 @@ var optionSlice = createSlice({
1095
1075
  });
1096
1076
  var _optionSlice$actions = optionSlice.actions,
1097
1077
  initialize = _optionSlice$actions.initialize,
1078
+ setTokenOptions = _optionSlice$actions.setTokenOptions,
1098
1079
  setKimaExplorer = _optionSlice$actions.setKimaExplorer,
1099
1080
  setTheme = _optionSlice$actions.setTheme,
1100
1081
  setSourceChain = _optionSlice$actions.setSourceChain,
@@ -1122,7 +1103,7 @@ var _optionSlice$actions = optionSlice.actions,
1122
1103
  setBackendUrl = _optionSlice$actions.setBackendUrl,
1123
1104
  setNodeProviderQuery = _optionSlice$actions.setNodeProviderQuery,
1124
1105
  setTxId = _optionSlice$actions.setTxId,
1125
- setCurrencyOptions = _optionSlice$actions.setCurrencyOptions,
1106
+ setSelectedToken = _optionSlice$actions.setSelectedToken,
1126
1107
  setCompliantOption = _optionSlice$actions.setCompliantOption,
1127
1108
  setSourceCompliant = _optionSlice$actions.setSourceCompliant,
1128
1109
  setTargetCompliant = _optionSlice$actions.setTargetCompliant,
@@ -1311,6 +1292,9 @@ function _catch(body, recover) {
1311
1292
  return result;
1312
1293
  }
1313
1294
 
1295
+ var selectTokenOptions = function selectTokenOptions(state) {
1296
+ return state.option.tokenOptions;
1297
+ };
1314
1298
  var selectTheme = function selectTheme(state) {
1315
1299
  return state.option.theme;
1316
1300
  };
@@ -1389,8 +1373,8 @@ var selectNodeProviderQuery = function selectNodeProviderQuery(state) {
1389
1373
  var selectTxId = function selectTxId(state) {
1390
1374
  return state.option.txId;
1391
1375
  };
1392
- var selectCurrencyOptions = function selectCurrencyOptions(state) {
1393
- return state.option.currencyOptions;
1376
+ var selectSelectedToken = function selectSelectedToken(state) {
1377
+ return state.option.selectedToken;
1394
1378
  };
1395
1379
  var selectCompliantOption = function selectCompliantOption(state) {
1396
1380
  return state.option.compliantOption;
@@ -1608,6 +1592,7 @@ function handleResponse(response) {
1608
1592
  }
1609
1593
 
1610
1594
  function useNetworkOptions() {
1595
+ var dispatch = reactRedux.useDispatch();
1611
1596
  var mode = reactRedux.useSelector(selectMode);
1612
1597
  var dAppOption = reactRedux.useSelector(selectDappOption);
1613
1598
  var useFIAT = reactRedux.useSelector(selectUseFIAT);
@@ -1621,12 +1606,24 @@ function useNetworkOptions() {
1621
1606
  (function () {
1622
1607
  try {
1623
1608
  var _temp = _catch(function () {
1624
- return Promise.resolve(fetchWrapper.get(nodeProviderQuery + "/kima-finance/kima-blockchain/chains/get_chains")).then(function (networks) {
1609
+ return Promise.resolve(fetchWrapper.get(nodeProviderQuery + "/kima-finance/kima-blockchain/chains/chain")).then(function (networks) {
1625
1610
  setOptions(networkOptions.filter(function (network) {
1626
- return networks.Chains.findIndex(function (id) {
1627
- return id === network.id;
1611
+ return networks.Chain.findIndex(function (chain) {
1612
+ return chain.symbol === network.id && !chain.disabled;
1628
1613
  }) >= 0 || network.id === exports.SupportNetworks.FIAT && useFIAT;
1629
1614
  }));
1615
+ var tokenOptions = {};
1616
+ for (var _iterator = _createForOfIteratorHelperLoose(networks.Chain), _step; !(_step = _iterator()).done;) {
1617
+ var network = _step.value;
1618
+ for (var _iterator2 = _createForOfIteratorHelperLoose(network.tokens), _step2; !(_step2 = _iterator2()).done;) {
1619
+ var token = _step2.value;
1620
+ if (!tokenOptions[token.symbol]) {
1621
+ tokenOptions[token.symbol] = {};
1622
+ }
1623
+ tokenOptions[token.symbol][network.symbol] = token.address;
1624
+ }
1625
+ }
1626
+ dispatch(setTokenOptions(tokenOptions));
1630
1627
  });
1631
1628
  }, function (e) {
1632
1629
  console.log('rpc disconnected', e);
@@ -2483,6 +2480,13 @@ var tronWeb = new tronweb.TronWeb({
2483
2480
  });
2484
2481
  tronWeb.setAddress(TRON_USDK_OWNER_ADDRESS);
2485
2482
 
2483
+ var formatterFloat = new Intl.NumberFormat('en-US', {
2484
+ maximumFractionDigits: 2
2485
+ });
2486
+ function isEmptyObject(arg) {
2487
+ return typeof arg === 'object' && Object.keys(arg).length === 0;
2488
+ }
2489
+
2486
2490
  function useBalance() {
2487
2491
  var _useState = React.useState(0),
2488
2492
  balance = _useState[0],
@@ -2513,10 +2517,12 @@ function useBalance() {
2513
2517
  tronAddress = _useTronWallet.address;
2514
2518
  var _useConnection = SolanaAdapter.useConnection(),
2515
2519
  connection = _useConnection.connection;
2516
- var selectedCoin = reactRedux.useSelector(selectCurrencyOptions);
2520
+ var selectedCoin = reactRedux.useSelector(selectSelectedToken);
2521
+ var tokenOptions = reactRedux.useSelector(selectTokenOptions);
2517
2522
  var tokenAddress = React.useMemo(function () {
2518
- return selectedCoin.address[sourceChain];
2519
- }, [selectedCoin, sourceChain]);
2523
+ if (isEmptyObject(tokenOptions)) return '';
2524
+ return tokenOptions[selectedCoin][sourceChain];
2525
+ }, [selectedCoin, sourceChain, tokenOptions]);
2520
2526
  React.useEffect(function () {
2521
2527
  (function () {
2522
2528
  try {
@@ -2582,16 +2588,12 @@ function useBalance() {
2582
2588
  }, [balance]);
2583
2589
  }
2584
2590
 
2585
- var formatterFloat = new Intl.NumberFormat('en-US', {
2586
- maximumFractionDigits: 2
2587
- });
2588
-
2589
2591
  var WalletButton = function WalletButton(_ref) {
2590
2592
  var _ref$errorBelow = _ref.errorBelow,
2591
2593
  errorBelow = _ref$errorBelow === void 0 ? false : _ref$errorBelow;
2592
2594
  var dispatch = reactRedux.useDispatch();
2593
2595
  var theme = reactRedux.useSelector(selectTheme);
2594
- var selectedCoin = reactRedux.useSelector(selectCurrencyOptions);
2596
+ var selectedCoin = reactRedux.useSelector(selectSelectedToken);
2595
2597
  var sourceCompliant = reactRedux.useSelector(selectSourceCompliant);
2596
2598
  var compliantOption = reactRedux.useSelector(selectCompliantOption);
2597
2599
  var selectedNetwork = reactRedux.useSelector(selectSourceChain);
@@ -2631,15 +2633,16 @@ var WalletButton = function WalletButton(_ref) {
2631
2633
  clickHandler: handleClick
2632
2634
  }, isReady ? "" + getShortenedAddress(walletAddress || '') : 'Wallet'), isReady ? React__default.createElement("p", {
2633
2635
  className: 'balance-info'
2634
- }, formatterFloat.format(balance), " ", selectedCoin.symbol, " available") : null);
2636
+ }, formatterFloat.format(balance), " ", selectedCoin, " available") : null);
2635
2637
  };
2636
2638
 
2637
2639
  var CoinDropdown = function CoinDropdown() {
2638
2640
  var _useState = React.useState(true),
2639
2641
  collapsed = _useState[0],
2640
2642
  setCollapsed = _useState[1];
2641
- var selectedCoin = reactRedux.useSelector(selectCurrencyOptions);
2643
+ var selectedCoin = reactRedux.useSelector(selectSelectedToken);
2642
2644
  var theme = reactRedux.useSelector(selectTheme);
2645
+ var Icon = COIN_LIST[selectedCoin || 'USDK'].icon;
2643
2646
  return React__default.createElement("div", {
2644
2647
  className: "coin-dropdown " + theme.colorMode + " " + (collapsed ? 'collapsed' : ''),
2645
2648
  onClick: function onClick() {
@@ -2649,7 +2652,7 @@ var CoinDropdown = function CoinDropdown() {
2649
2652
  }
2650
2653
  }, React__default.createElement("div", {
2651
2654
  className: 'coin-wrapper'
2652
- }, React__default.createElement(selectedCoin.icon, null), selectedCoin.symbol));
2655
+ }, React__default.createElement(Icon, null), selectedCoin));
2653
2656
  };
2654
2657
 
2655
2658
  var NetworkDropdown = React__default.memo(function (_ref) {
@@ -2825,7 +2828,7 @@ var ConfirmDetails = function ConfirmDetails(_ref) {
2825
2828
  return network.id === (mode === exports.ModeOptions.payment ? transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain : targetNetwork);
2826
2829
  })[0];
2827
2830
  }, [networkOptions, originNetwork]);
2828
- var selectedCoin = reactRedux.useSelector(selectCurrencyOptions);
2831
+ var selectedCoin = reactRedux.useSelector(selectSelectedToken);
2829
2832
  var sourceWalletAddress = React.useMemo(function () {
2830
2833
  return getShortenedAddress(walletAddress || '');
2831
2834
  }, [walletAddress]);
@@ -2864,7 +2867,7 @@ var ConfirmDetails = function ConfirmDetails(_ref) {
2864
2867
  className: 'detail-item'
2865
2868
  }, React__default.createElement("span", {
2866
2869
  className: 'label'
2867
- }, "Amount:"), React__default.createElement("p", null, formatterFloat.format(feeDeduct ? amount : amount + serviceFee), ' ', selectedCoin.symbol)), targetNetwork === exports.SupportNetworks.FIAT ? React__default.createElement("div", null, React__default.createElement("div", {
2870
+ }, "Amount:"), React__default.createElement("p", null, formatterFloat.format(feeDeduct ? amount : amount + serviceFee), ' ', selectedCoin)), targetNetwork === exports.SupportNetworks.FIAT ? React__default.createElement("div", null, React__default.createElement("div", {
2868
2871
  className: 'detail-item'
2869
2872
  }, React__default.createElement("span", {
2870
2873
  className: 'label'
@@ -3447,7 +3450,7 @@ var TransactionWidget = function TransactionWidget(_ref) {
3447
3450
  className: 'topbar'
3448
3451
  }, React__default.createElement("div", {
3449
3452
  className: 'title'
3450
- }, React__default.createElement("h3", null, "Transferring ", formatterFloat.format((data === null || data === void 0 ? void 0 : data.amount) || 0), ' ', COIN_LIST[(data === null || data === void 0 ? void 0 : data.symbol) || 'USDK'].symbol, "\xA0\xA0", "(" + percent + "%)")), !minimized ? React__default.createElement("div", {
3453
+ }, React__default.createElement("h3", null, "Transferring ", formatterFloat.format((data === null || data === void 0 ? void 0 : data.amount) || 0), ' ', (data === null || data === void 0 ? void 0 : data.symbol) || 'USDK', "\xA0\xA0", "(" + percent + "%)")), !minimized ? React__default.createElement("div", {
3451
3454
  className: 'control-buttons'
3452
3455
  }, React__default.createElement("button", {
3453
3456
  className: 'icon-button',
@@ -3536,9 +3539,10 @@ var SingleForm = function SingleForm(_ref) {
3536
3539
  var compliantOption = reactRedux.useSelector(selectCompliantOption);
3537
3540
  var targetCompliant = reactRedux.useSelector(selectTargetCompliant);
3538
3541
  var transactionOption = reactRedux.useSelector(selectTransactionOption);
3539
- var selectedCoin = reactRedux.useSelector(selectCurrencyOptions);
3542
+ var selectedCoin = reactRedux.useSelector(selectSelectedToken);
3540
3543
  var sourceNetwork = reactRedux.useSelector(selectSourceChain);
3541
3544
  var targetNetwork = reactRedux.useSelector(selectTargetChain);
3545
+ var Icon = COIN_LIST[selectedCoin || 'USDK'].icon;
3542
3546
  var errorMessage = React.useMemo(function () {
3543
3547
  return compliantOption && targetCompliant !== 'low' ? "Target address has " + targetCompliant + " risk" : '';
3544
3548
  }, [compliantOption, targetCompliant]);
@@ -3592,7 +3596,7 @@ var SingleForm = function SingleForm(_ref) {
3592
3596
  className: "amount-label " + theme.colorMode
3593
3597
  }, React__default.createElement("span", null, (transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.amount) || ''), React__default.createElement("div", {
3594
3598
  className: 'coin-wrapper'
3595
- }, React__default.createElement(selectedCoin.icon, null), selectedCoin.symbol))));
3599
+ }, React__default.createElement(Icon, null), selectedCoin))));
3596
3600
  };
3597
3601
 
3598
3602
  var CoinSelect = function CoinSelect() {
@@ -3600,7 +3604,8 @@ var CoinSelect = function CoinSelect() {
3600
3604
  var theme = reactRedux.useSelector(selectTheme);
3601
3605
  var mode = reactRedux.useSelector(selectMode);
3602
3606
  var amount = reactRedux.useSelector(selectAmount);
3603
- var selectedCoin = reactRedux.useSelector(selectCurrencyOptions);
3607
+ var selectedCoin = reactRedux.useSelector(selectSelectedToken);
3608
+ var Icon = COIN_LIST[selectedCoin || 'USDK'].icon;
3604
3609
  return React__default.createElement("div", {
3605
3610
  className: "coin-select"
3606
3611
  }, React__default.createElement("p", null, "Select Amount of Token for Funding"), React__default.createElement("div", {
@@ -3617,7 +3622,7 @@ var CoinSelect = function CoinSelect() {
3617
3622
  }
3618
3623
  }), React__default.createElement("div", {
3619
3624
  className: 'coin-label'
3620
- }, React__default.createElement(selectedCoin.icon, null), React__default.createElement("span", null, selectedCoin.symbol)))));
3625
+ }, React__default.createElement(Icon, null), React__default.createElement("span", null, selectedCoin)))));
3621
3626
  };
3622
3627
 
3623
3628
  function useServiceFee(isConfirming) {
@@ -7303,10 +7308,12 @@ function useAllowance(_ref) {
7303
7308
  var _useTronWallet = tronwalletAdapterReactHooks.useWallet(),
7304
7309
  tronAddress = _useTronWallet.address,
7305
7310
  signTronTransaction = _useTronWallet.signTransaction;
7306
- var selectedCoin = reactRedux.useSelector(selectCurrencyOptions);
7311
+ var selectedCoin = reactRedux.useSelector(selectSelectedToken);
7312
+ var tokenOptions = reactRedux.useSelector(selectTokenOptions);
7307
7313
  var tokenAddress = React.useMemo(function () {
7308
- return selectedCoin.address[sourceChain];
7309
- }, [selectedCoin, sourceChain]);
7314
+ if (isEmptyObject(tokenOptions)) return '';
7315
+ return tokenOptions[selectedCoin][sourceChain];
7316
+ }, [selectedCoin, sourceChain, tokenOptions]);
7310
7317
  var _useState3 = React.useState(),
7311
7318
  targetAddress = _useState3[0],
7312
7319
  setTargetAddress = _useState3[1];
@@ -7366,11 +7373,11 @@ function useAllowance(_ref) {
7366
7373
  var mint = new web3_js.PublicKey(tokenAddress);
7367
7374
  return Promise.resolve(getOrCreateAssociatedTokenAccount(connection, solanaAddress, mint, solanaAddress, signSolanaTransaction)).then(function (fromTokenAccount) {
7368
7375
  return Promise.resolve(connection.getParsedAccountInfo(fromTokenAccount.address)).then(function (accountInfo) {
7369
- var _accountInfo$value, _parsedAccountInfo$pa, _parsedAccountInfo$pa2, _parsedAccountInfo$pa3, _parsedAccountInfo$pa4, _parsedAccountInfo$pa5;
7376
+ var _accountInfo$value, _parsedAccountInfo$pa, _parsedAccountInfo$pa2, _parsedAccountInfo$pa3, _parsedAccountInfo$pa4, _parsedAccountInfo$pa5, _parsedAccountInfo$pa6, _parsedAccountInfo$pa7, _parsedAccountInfo$pa8;
7370
7377
  console.log('solana token account: ', accountInfo);
7371
- setDecimals(COIN_LIST['USDK'].decimals);
7372
7378
  var parsedAccountInfo = accountInfo === null || accountInfo === void 0 ? void 0 : (_accountInfo$value = accountInfo.value) === null || _accountInfo$value === void 0 ? void 0 : _accountInfo$value.data;
7373
- setAllowance(((_parsedAccountInfo$pa = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa === void 0 ? void 0 : (_parsedAccountInfo$pa2 = _parsedAccountInfo$pa.info) === null || _parsedAccountInfo$pa2 === void 0 ? void 0 : _parsedAccountInfo$pa2.delegate) === targetAddress ? (_parsedAccountInfo$pa3 = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa3 === void 0 ? void 0 : (_parsedAccountInfo$pa4 = _parsedAccountInfo$pa3.info) === null || _parsedAccountInfo$pa4 === void 0 ? void 0 : (_parsedAccountInfo$pa5 = _parsedAccountInfo$pa4.delegatedAmount) === null || _parsedAccountInfo$pa5 === void 0 ? void 0 : _parsedAccountInfo$pa5.uiAmount : 0);
7379
+ setDecimals((_parsedAccountInfo$pa = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa === void 0 ? void 0 : (_parsedAccountInfo$pa2 = _parsedAccountInfo$pa.info) === null || _parsedAccountInfo$pa2 === void 0 ? void 0 : (_parsedAccountInfo$pa3 = _parsedAccountInfo$pa2.tokenAmount) === null || _parsedAccountInfo$pa3 === void 0 ? void 0 : _parsedAccountInfo$pa3.decimals);
7380
+ setAllowance(((_parsedAccountInfo$pa4 = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa4 === void 0 ? void 0 : (_parsedAccountInfo$pa5 = _parsedAccountInfo$pa4.info) === null || _parsedAccountInfo$pa5 === void 0 ? void 0 : _parsedAccountInfo$pa5.delegate) === targetAddress ? (_parsedAccountInfo$pa6 = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa6 === void 0 ? void 0 : (_parsedAccountInfo$pa7 = _parsedAccountInfo$pa6.info) === null || _parsedAccountInfo$pa7 === void 0 ? void 0 : (_parsedAccountInfo$pa8 = _parsedAccountInfo$pa7.delegatedAmount) === null || _parsedAccountInfo$pa8 === void 0 ? void 0 : _parsedAccountInfo$pa8.uiAmount : 0);
7374
7381
  });
7375
7382
  });
7376
7383
  } else {
@@ -7416,7 +7423,7 @@ function useAllowance(_ref) {
7416
7423
  var mint = new web3_js.PublicKey(tokenAddress);
7417
7424
  var toPublicKey = new web3_js.PublicKey(targetAddress);
7418
7425
  return Promise.resolve(getOrCreateAssociatedTokenAccount(connection, solanaAddress, mint, solanaAddress, signSolanaTransaction)).then(function (fromTokenAccount) {
7419
- var transaction = new web3_js.Transaction().add(createApproveTransferInstruction(fromTokenAccount.address, toPublicKey, solanaAddress, +(amount + serviceFee).toFixed(2) * Math.pow(10, COIN_LIST['USDK'].decimals), [], splToken.TOKEN_PROGRAM_ID));
7426
+ var transaction = new web3_js.Transaction().add(createApproveTransferInstruction(fromTokenAccount.address, toPublicKey, solanaAddress, +(amount + serviceFee).toFixed(2) * Math.pow(10, decimals != null ? decimals : 6), [], splToken.TOKEN_PROGRAM_ID));
7420
7427
  return Promise.resolve(connection.getLatestBlockhash()).then(function (blockHash) {
7421
7428
  transaction.feePayer = solanaAddress;
7422
7429
  return Promise.resolve(blockHash.blockhash).then(function (_blockHash$blockhash) {
@@ -7432,10 +7439,10 @@ function useAllowance(_ref) {
7432
7439
  var retryCount = 0;
7433
7440
  var _temp11 = _do(function () {
7434
7441
  return Promise.resolve(connection.getParsedAccountInfo(fromTokenAccount.address)).then(function (_connection$getParsed) {
7435
- var _accountInfo, _accountInfo$value2, _parsedAccountInfo$pa6, _parsedAccountInfo$pa7, _parsedAccountInfo$pa8, _parsedAccountInfo$pa9, _parsedAccountInfo$pa10;
7442
+ var _accountInfo, _accountInfo$value2, _parsedAccountInfo$pa9, _parsedAccountInfo$pa10, _parsedAccountInfo$pa11, _parsedAccountInfo$pa12, _parsedAccountInfo$pa13;
7436
7443
  accountInfo = _connection$getParsed;
7437
7444
  var parsedAccountInfo = (_accountInfo = accountInfo) === null || _accountInfo === void 0 ? void 0 : (_accountInfo$value2 = _accountInfo.value) === null || _accountInfo$value2 === void 0 ? void 0 : _accountInfo$value2.data;
7438
- allowAmount = ((_parsedAccountInfo$pa6 = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa6 === void 0 ? void 0 : (_parsedAccountInfo$pa7 = _parsedAccountInfo$pa6.info) === null || _parsedAccountInfo$pa7 === void 0 ? void 0 : _parsedAccountInfo$pa7.delegate) === targetAddress ? (_parsedAccountInfo$pa8 = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa8 === void 0 ? void 0 : (_parsedAccountInfo$pa9 = _parsedAccountInfo$pa8.info) === null || _parsedAccountInfo$pa9 === void 0 ? void 0 : (_parsedAccountInfo$pa10 = _parsedAccountInfo$pa9.delegatedAmount) === null || _parsedAccountInfo$pa10 === void 0 ? void 0 : _parsedAccountInfo$pa10.uiAmount : 0;
7445
+ allowAmount = ((_parsedAccountInfo$pa9 = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa9 === void 0 ? void 0 : (_parsedAccountInfo$pa10 = _parsedAccountInfo$pa9.info) === null || _parsedAccountInfo$pa10 === void 0 ? void 0 : _parsedAccountInfo$pa10.delegate) === targetAddress ? (_parsedAccountInfo$pa11 = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa11 === void 0 ? void 0 : (_parsedAccountInfo$pa12 = _parsedAccountInfo$pa11.info) === null || _parsedAccountInfo$pa12 === void 0 ? void 0 : (_parsedAccountInfo$pa13 = _parsedAccountInfo$pa12.delegatedAmount) === null || _parsedAccountInfo$pa13 === void 0 ? void 0 : _parsedAccountInfo$pa13.uiAmount : 0;
7439
7446
  console.log('sleep');
7440
7447
  return Promise.resolve(sleep(1000)).then(function () {});
7441
7448
  });
@@ -7542,7 +7549,7 @@ var AddressInputWizard = function AddressInputWizard() {
7542
7549
  };
7543
7550
 
7544
7551
  function useCurrencyOptions() {
7545
- var _useState = React.useState(COIN_LIST['USDK']),
7552
+ var _useState = React.useState('USDK'),
7546
7553
  options = _useState[0],
7547
7554
  setOptions = _useState[1];
7548
7555
  var nodeProviderQuery = reactRedux.useSelector(selectNodeProviderQuery);
@@ -7554,12 +7561,12 @@ function useCurrencyOptions() {
7554
7561
  try {
7555
7562
  return _catch(function () {
7556
7563
  if (originNetwork === exports.SupportNetworks.FIAT || targetNetwork === exports.SupportNetworks.FIAT) {
7557
- setOptions(COIN_LIST['KEUR']);
7564
+ setOptions('KEUR');
7558
7565
  return;
7559
7566
  }
7560
7567
  return Promise.resolve(fetchWrapper.get(nodeProviderQuery + "/kima-finance/kima-blockchain/chains/get_currencies/" + originNetwork + "/" + targetNetwork)).then(function (coins) {
7561
7568
  var _coins$Currencies;
7562
- setOptions(COIN_LIST[(_coins$Currencies = coins.Currencies) !== null && _coins$Currencies !== void 0 && _coins$Currencies.length ? coins.Currencies[0] : 'USDK']);
7569
+ setOptions((_coins$Currencies = coins.Currencies) !== null && _coins$Currencies !== void 0 && _coins$Currencies.length ? coins.Currencies[0] : 'USDK');
7563
7570
  });
7564
7571
  }, function (e) {
7565
7572
  console.log('rpc disconnected', e);
@@ -7674,7 +7681,7 @@ var TransferWidget = function TransferWidget(_ref) {
7674
7681
  var keplrHandler = reactRedux.useSelector(selectKeplrHandler);
7675
7682
  var closeHandler = reactRedux.useSelector(selectCloseHandler);
7676
7683
  var _useCurrencyOptions = useCurrencyOptions(),
7677
- selectedCoin = _useCurrencyOptions.options;
7684
+ selectedToken = _useCurrencyOptions.options;
7678
7685
  var backendUrl = reactRedux.useSelector(selectBackendUrl);
7679
7686
  var nodeProviderQuery = reactRedux.useSelector(selectNodeProviderQuery);
7680
7687
  var bankDetails = reactRedux.useSelector(selectBankDetails);
@@ -7757,20 +7764,27 @@ var TransferWidget = function TransferWidget(_ref) {
7757
7764
  if (!nodeProviderQuery) return;
7758
7765
  try {
7759
7766
  return Promise.resolve(fetchWrapper.get(nodeProviderQuery + "/kima-finance/kima-blockchain/chains/pool_balance")).then(function (res) {
7760
- console.table(res.poolBalance.map(function (item) {
7761
- return {
7762
- chain: CHAIN_NAMES_TO_STRING[item.chainName],
7763
- balance: +item.balance
7764
- };
7765
- }));
7767
+ var poolsTable = [];
7768
+ for (var _iterator = _createForOfIteratorHelperLoose(res.poolBalance), _step; !(_step = _iterator()).done;) {
7769
+ var pool = _step.value;
7770
+ for (var _iterator2 = _createForOfIteratorHelperLoose(pool.balance), _step2; !(_step2 = _iterator2()).done;) {
7771
+ var token = _step2.value;
7772
+ poolsTable.push({
7773
+ chain: CHAIN_NAMES_TO_STRING[pool.chainName],
7774
+ symbol: token.tokenSymbol,
7775
+ balance: +token.amount
7776
+ });
7777
+ }
7778
+ }
7779
+ console.table(poolsTable);
7766
7780
  });
7767
7781
  } catch (e) {
7768
7782
  Promise.reject(e);
7769
7783
  }
7770
7784
  }, [nodeProviderQuery]);
7771
7785
  React.useEffect(function () {
7772
- dispatch(setCurrencyOptions(selectedCoin));
7773
- }, [selectedCoin]);
7786
+ dispatch(setSelectedToken(selectedToken));
7787
+ }, [selectedToken]);
7774
7788
  React.useEffect(function () {
7775
7789
  if (!isReady) {
7776
7790
  if (formStep > 0) setFormStep(0);
@@ -7783,14 +7797,18 @@ var TransferWidget = function TransferWidget(_ref) {
7783
7797
  var poolBalance = res.poolBalance;
7784
7798
  for (var i = 0; i < poolBalance.length; i++) {
7785
7799
  if (poolBalance[i].chainName === targetChain) {
7786
- if (+poolBalance[i].balance >= amount + fee) {
7787
- return true;
7800
+ for (var j = 0; j < poolBalance[i].balance.length; j++) {
7801
+ if (poolBalance[i].balance[j].tokenSymbol !== selectedToken) continue;
7802
+ if (+poolBalance[i].balance[j].amount >= amount + fee) {
7803
+ return true;
7804
+ }
7805
+ var symbol = selectedToken;
7806
+ var errorString = "Tried to transfer " + amount + " " + symbol + ", but " + CHAIN_NAMES_TO_STRING[targetChain] + " pool has only " + +poolBalance[i].balance[j].amount + " " + symbol;
7807
+ console.log(errorString);
7808
+ reactHotToast.toast.error(CHAIN_NAMES_TO_STRING[targetChain] + " pool has insufficient balance!");
7809
+ errorHandler(errorString);
7810
+ return false;
7788
7811
  }
7789
- var symbol = 'USDK';
7790
- var errorString = "Tried to transfer " + amount + " " + symbol + ", but " + CHAIN_NAMES_TO_STRING[targetChain] + " pool has only " + +poolBalance[i].balance + " " + symbol;
7791
- console.log(errorString);
7792
- reactHotToast.toast.error(CHAIN_NAMES_TO_STRING[targetChain] + " pool has insufficient balance!");
7793
- errorHandler(errorString);
7794
7812
  return false;
7795
7813
  }
7796
7814
  }
@@ -7849,7 +7867,7 @@ var TransferWidget = function TransferWidget(_ref) {
7849
7867
  originChain: sourceChain,
7850
7868
  targetAddress: mode === exports.ModeOptions.payment ? transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetAddress : targetAddress,
7851
7869
  targetChain: targetChain,
7852
- symbol: selectedCoin.label,
7870
+ symbol: selectedToken,
7853
7871
  amount: amount,
7854
7872
  fee: fee
7855
7873
  });
@@ -7864,11 +7882,11 @@ var TransferWidget = function TransferWidget(_ref) {
7864
7882
  return;
7865
7883
  }
7866
7884
  var txId = -1;
7867
- for (var _iterator = _createForOfIteratorHelperLoose(result.events), _step; !(_step = _iterator()).done;) {
7868
- var event = _step.value;
7885
+ for (var _iterator3 = _createForOfIteratorHelperLoose(result.events), _step3; !(_step3 = _iterator3()).done;) {
7886
+ var event = _step3.value;
7869
7887
  if (event.type === 'transaction_requested') {
7870
- for (var _iterator2 = _createForOfIteratorHelperLoose(event.attributes), _step2; !(_step2 = _iterator2()).done;) {
7871
- var attr = _step2.value;
7888
+ for (var _iterator4 = _createForOfIteratorHelperLoose(event.attributes), _step4; !(_step4 = _iterator4()).done;) {
7889
+ var attr = _step4.value;
7872
7890
  if (attr.key === 'txId') {
7873
7891
  txId = attr.value;
7874
7892
  }