@kimafinance/kima-transaction-widget 1.1.0 → 1.1.2
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/index.js +88 -57
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +43 -25
- package/dist/index.modern.js.map +1 -1
- package/dist/store/optionSlice.d.ts +1 -3
- package/dist/store/selectors.d.ts +2 -3
- package/dist/utils/config.d.ts +1 -1
- package/dist/utils/constants.d.ts +1 -11
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -546,7 +546,7 @@ var Copy = function Copy(_ref) {
|
|
|
546
546
|
};
|
|
547
547
|
|
|
548
548
|
var SOLANA_USDK_ADDRESS = 'GkbnUDkymDTF4U6Z5wM5kKJn3GmGndMn2rN5typmyUHY';
|
|
549
|
-
var ETHEREUM_USDK_ADDRESS = '
|
|
549
|
+
var ETHEREUM_USDK_ADDRESS = '0x7C043d4D2b505740742dF6Fdb79C5caEe08728a5';
|
|
550
550
|
var POLYGON_USDK_ADDRESS = '0x5bd4865a6dEd507dA08ed1aBE3cd971a7e0405D7';
|
|
551
551
|
var AVAX_USDK_ADDRESS = '0x7C043d4D2b505740742dF6Fdb79C5caEe08728a5';
|
|
552
552
|
var FUSE_GDOLLAR_ADDRESS = '0x79BeecC4b165Ccf547662cB4f7C0e83b3796E5b3';
|
|
@@ -563,7 +563,7 @@ var _CHAIN_NAMES_TO_IDS, _CHAIN_NAMES_TO_STRIN, _CHAIN_NAMES_TO_EXPLO, _CHAIN_NA
|
|
|
563
563
|
})(exports.SupportNetworks || (exports.SupportNetworks = {}));
|
|
564
564
|
var SupportedChainId;
|
|
565
565
|
(function (SupportedChainId) {
|
|
566
|
-
SupportedChainId[SupportedChainId["ETHEREUM"] =
|
|
566
|
+
SupportedChainId[SupportedChainId["ETHEREUM"] = 11155111] = "ETHEREUM";
|
|
567
567
|
SupportedChainId[SupportedChainId["POLYGON"] = 80001] = "POLYGON";
|
|
568
568
|
SupportedChainId[SupportedChainId["AVALANCHE"] = 43113] = "AVALANCHE";
|
|
569
569
|
SupportedChainId[SupportedChainId["FUSE"] = 122] = "FUSE";
|
|
@@ -571,7 +571,7 @@ var SupportedChainId;
|
|
|
571
571
|
})(SupportedChainId || (SupportedChainId = {}));
|
|
572
572
|
var CHAIN_NAMES_TO_IDS = (_CHAIN_NAMES_TO_IDS = {}, _CHAIN_NAMES_TO_IDS[exports.SupportNetworks.ETHEREUM] = SupportedChainId.ETHEREUM, _CHAIN_NAMES_TO_IDS[exports.SupportNetworks.POLYGON] = SupportedChainId.POLYGON, _CHAIN_NAMES_TO_IDS[exports.SupportNetworks.AVALANCHE] = SupportedChainId.AVALANCHE, _CHAIN_NAMES_TO_IDS[exports.SupportNetworks.FUSE] = SupportedChainId.FUSE, _CHAIN_NAMES_TO_IDS[exports.SupportNetworks.CELO] = SupportedChainId.CELO, _CHAIN_NAMES_TO_IDS);
|
|
573
573
|
var CHAIN_NAMES_TO_STRING = (_CHAIN_NAMES_TO_STRIN = {}, _CHAIN_NAMES_TO_STRIN[exports.SupportNetworks.ETHEREUM] = 'Ethereum', _CHAIN_NAMES_TO_STRIN[exports.SupportNetworks.POLYGON] = 'Polygon', _CHAIN_NAMES_TO_STRIN[exports.SupportNetworks.AVALANCHE] = 'Avalanche', _CHAIN_NAMES_TO_STRIN[exports.SupportNetworks.FUSE] = 'Fuse', _CHAIN_NAMES_TO_STRIN[exports.SupportNetworks.CELO] = 'Celo', _CHAIN_NAMES_TO_STRIN[exports.SupportNetworks.SOLANA] = 'Solana', _CHAIN_NAMES_TO_STRIN);
|
|
574
|
-
var CHAIN_NAMES_TO_EXPLORER = (_CHAIN_NAMES_TO_EXPLO = {}, _CHAIN_NAMES_TO_EXPLO[exports.SupportNetworks.ETHEREUM] = '
|
|
574
|
+
var CHAIN_NAMES_TO_EXPLORER = (_CHAIN_NAMES_TO_EXPLO = {}, _CHAIN_NAMES_TO_EXPLO[exports.SupportNetworks.ETHEREUM] = 'sepolia.etherscan.io', _CHAIN_NAMES_TO_EXPLO[exports.SupportNetworks.POLYGON] = 'mumbai.polygonscan.com', _CHAIN_NAMES_TO_EXPLO[exports.SupportNetworks.AVALANCHE] = 'testnet.snowtrace.io', _CHAIN_NAMES_TO_EXPLO[exports.SupportNetworks.FUSE] = 'explorer.fuse.io', _CHAIN_NAMES_TO_EXPLO[exports.SupportNetworks.CELO] = 'explorer.celo.org', _CHAIN_NAMES_TO_EXPLO[exports.SupportNetworks.SOLANA] = 'solscan.io', _CHAIN_NAMES_TO_EXPLO);
|
|
575
575
|
var CHAIN_NAMES_TO_GECKO_ID = (_CHAIN_NAMES_TO_GECKO = {}, _CHAIN_NAMES_TO_GECKO[exports.SupportNetworks.ETHEREUM] = 'ethereum', _CHAIN_NAMES_TO_GECKO[exports.SupportNetworks.POLYGON] = 'matic-network', _CHAIN_NAMES_TO_GECKO[exports.SupportNetworks.AVALANCHE] = 'avalanche-2', _CHAIN_NAMES_TO_GECKO[exports.SupportNetworks.FUSE] = 'fuse-network-token', _CHAIN_NAMES_TO_GECKO[exports.SupportNetworks.CELO] = 'celo', _CHAIN_NAMES_TO_GECKO[exports.SupportNetworks.SOLANA] = 'solana', _CHAIN_NAMES_TO_GECKO);
|
|
576
576
|
var CHAIN_IDS_TO_NAMES = (_CHAIN_IDS_TO_NAMES = {}, _CHAIN_IDS_TO_NAMES[SupportedChainId.ETHEREUM] = exports.SupportNetworks.ETHEREUM, _CHAIN_IDS_TO_NAMES[SupportedChainId.POLYGON] = exports.SupportNetworks.POLYGON, _CHAIN_IDS_TO_NAMES[SupportedChainId.AVALANCHE] = exports.SupportNetworks.AVALANCHE, _CHAIN_IDS_TO_NAMES[SupportedChainId.FUSE] = exports.SupportNetworks.FUSE, _CHAIN_IDS_TO_NAMES[SupportedChainId.CELO] = exports.SupportNetworks.CELO, _CHAIN_IDS_TO_NAMES);
|
|
577
577
|
var networkOptions = [{
|
|
@@ -680,7 +680,6 @@ var initialState = {
|
|
|
680
680
|
isSubmitting: false,
|
|
681
681
|
isConfirming: false,
|
|
682
682
|
feeDeduct: false,
|
|
683
|
-
splAllowance: 0,
|
|
684
683
|
errorHandler: function errorHandler() {
|
|
685
684
|
return void 0;
|
|
686
685
|
},
|
|
@@ -748,9 +747,6 @@ var optionSlice = toolkit.createSlice({
|
|
|
748
747
|
setSubmitting: function setSubmitting(state, action) {
|
|
749
748
|
state.isSubmitting = action.payload;
|
|
750
749
|
},
|
|
751
|
-
setSplAllowance: function setSplAllowance(state, action) {
|
|
752
|
-
state.splAllowance = action.payload;
|
|
753
|
-
},
|
|
754
750
|
setErrorHandler: function setErrorHandler(state, action) {
|
|
755
751
|
state.errorHandler = action.payload;
|
|
756
752
|
},
|
|
@@ -802,7 +798,6 @@ var _optionSlice$actions = optionSlice.actions,
|
|
|
802
798
|
setApproving = _optionSlice$actions.setApproving,
|
|
803
799
|
setSubmitting = _optionSlice$actions.setSubmitting,
|
|
804
800
|
setConfirming = _optionSlice$actions.setConfirming,
|
|
805
|
-
setSplAllowance = _optionSlice$actions.setSplAllowance,
|
|
806
801
|
setErrorHandler = _optionSlice$actions.setErrorHandler,
|
|
807
802
|
setCloseHandler = _optionSlice$actions.setCloseHandler,
|
|
808
803
|
setSuccessHandler = _optionSlice$actions.setSuccessHandler,
|
|
@@ -864,9 +859,6 @@ var selectApproving = function selectApproving(state) {
|
|
|
864
859
|
var selectSubmitting = function selectSubmitting(state) {
|
|
865
860
|
return state.option.isSubmitting;
|
|
866
861
|
};
|
|
867
|
-
var selectSplAllowance = function selectSplAllowance(state) {
|
|
868
|
-
return state.option.splAllowance;
|
|
869
|
-
};
|
|
870
862
|
var selectErrorHandler = function selectErrorHandler(state) {
|
|
871
863
|
return state.option.errorHandler;
|
|
872
864
|
};
|
|
@@ -6552,7 +6544,7 @@ var TokenAmount = /*#__PURE__*/function (_BN) {
|
|
|
6552
6544
|
|
|
6553
6545
|
function useAllowance() {
|
|
6554
6546
|
var dispatch = reactRedux.useDispatch();
|
|
6555
|
-
var _useState = React.useState(
|
|
6547
|
+
var _useState = React.useState(0),
|
|
6556
6548
|
allowance = _useState[0],
|
|
6557
6549
|
setAllowance = _useState[1];
|
|
6558
6550
|
var _useState2 = React.useState(null),
|
|
@@ -6573,8 +6565,6 @@ function useAllowance() {
|
|
|
6573
6565
|
}, [selectedNetwork, evmChainId]);
|
|
6574
6566
|
var amount = reactRedux.useSelector(selectAmount);
|
|
6575
6567
|
var serviceFee = reactRedux.useSelector(selectServiceFee);
|
|
6576
|
-
var isApproving = reactRedux.useSelector(selectApproving);
|
|
6577
|
-
var splAllowance = reactRedux.useSelector(selectSplAllowance);
|
|
6578
6568
|
var nodeProviderQuery = reactRedux.useSelector(selectNodeProviderQuery);
|
|
6579
6569
|
var _useConnection = walletAdapterReact.useConnection(),
|
|
6580
6570
|
connection = _useConnection.connection;
|
|
@@ -6589,12 +6579,8 @@ function useAllowance() {
|
|
|
6589
6579
|
targetAddress = _useState3[0],
|
|
6590
6580
|
setTargetAddress = _useState3[1];
|
|
6591
6581
|
var isApproved = React.useMemo(function () {
|
|
6592
|
-
|
|
6593
|
-
|
|
6594
|
-
}
|
|
6595
|
-
if (allowance && amount && allowance.gte(units.parseUnits((amount + serviceFee).toString(), decimals))) return true;
|
|
6596
|
-
return false;
|
|
6597
|
-
}, [decimals, sourceChain, allowance, amount, splAllowance, serviceFee]);
|
|
6582
|
+
return allowance >= amount + serviceFee;
|
|
6583
|
+
}, [allowance, amount, serviceFee]);
|
|
6598
6584
|
var updatePoolAddress = function updatePoolAddress() {
|
|
6599
6585
|
try {
|
|
6600
6586
|
return Promise.resolve(_catch(function () {
|
|
@@ -6632,19 +6618,17 @@ function useAllowance() {
|
|
|
6632
6618
|
return Promise.resolve(erc20Contract.decimals()).then(function (decimals) {
|
|
6633
6619
|
return Promise.resolve(erc20Contract.allowance(signerAddress, targetAddress)).then(function (userAllowance) {
|
|
6634
6620
|
setDecimals(+decimals);
|
|
6635
|
-
setAllowance(userAllowance);
|
|
6621
|
+
setAllowance(+units.formatUnits(userAllowance, decimals));
|
|
6636
6622
|
});
|
|
6637
6623
|
});
|
|
6638
6624
|
}
|
|
6639
6625
|
var _temp = function () {
|
|
6640
6626
|
if (!isEVMChain(sourceChain) && publicKey && tokenAddress && connection) {
|
|
6641
6627
|
var mint = new web3_js.PublicKey(tokenAddress);
|
|
6642
|
-
console.log(mint, publicKey, tokenAddress);
|
|
6643
6628
|
return Promise.resolve(getOrCreateAssociatedTokenAccount(connection, publicKey, mint, publicKey, signTransaction)).then(function (fromTokenAccount) {
|
|
6644
|
-
console.log(fromTokenAccount);
|
|
6645
6629
|
return Promise.resolve(connection.getParsedAccountInfo(fromTokenAccount.address)).then(function (accountInfo) {
|
|
6646
6630
|
var _accountInfo$value, _parsedAccountInfo$pa, _parsedAccountInfo$pa2, _parsedAccountInfo$pa3, _parsedAccountInfo$pa4, _parsedAccountInfo$pa5;
|
|
6647
|
-
console.log(accountInfo);
|
|
6631
|
+
console.log('solana token account: ', accountInfo);
|
|
6648
6632
|
setDecimals(COIN_LIST['USDK'].decimals);
|
|
6649
6633
|
var parsedAccountInfo = accountInfo === null || accountInfo === void 0 ? void 0 : (_accountInfo$value = accountInfo.value) === null || _accountInfo$value === void 0 ? void 0 : _accountInfo$value.data;
|
|
6650
6634
|
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);
|
|
@@ -6661,7 +6645,7 @@ function useAllowance() {
|
|
|
6661
6645
|
Promise.reject(e);
|
|
6662
6646
|
}
|
|
6663
6647
|
})();
|
|
6664
|
-
}, [signerAddress, tokenAddress, targetAddress,
|
|
6648
|
+
}, [signerAddress, tokenAddress, targetAddress, sourceChain, publicKey]);
|
|
6665
6649
|
var approve = React.useCallback(function () {
|
|
6666
6650
|
try {
|
|
6667
6651
|
var _temp8 = function _temp8(_result4) {
|
|
@@ -6679,7 +6663,7 @@ function useAllowance() {
|
|
|
6679
6663
|
transaction.recentBlockhash = _blockHash$blockhash;
|
|
6680
6664
|
return Promise.resolve(signTransaction(transaction)).then(function (signed) {
|
|
6681
6665
|
return Promise.resolve(connection.sendRawTransaction(signed.serialize())).then(function () {
|
|
6682
|
-
|
|
6666
|
+
setAllowance(amount + serviceFee);
|
|
6683
6667
|
dispatch(setApproving(false));
|
|
6684
6668
|
});
|
|
6685
6669
|
});
|
|
@@ -6708,6 +6692,7 @@ function useAllowance() {
|
|
|
6708
6692
|
return Promise.resolve(erc20Contract.approve(targetAddress, units.parseUnits((amount + serviceFee).toString(), decimals))).then(function (approve) {
|
|
6709
6693
|
return Promise.resolve(approve.wait()).then(function () {
|
|
6710
6694
|
dispatch(setApproving(false));
|
|
6695
|
+
setAllowance(amount + serviceFee);
|
|
6711
6696
|
});
|
|
6712
6697
|
});
|
|
6713
6698
|
}, function (error) {
|
|
@@ -6917,6 +6902,22 @@ var TransferWidget = function TransferWidget(_ref) {
|
|
|
6917
6902
|
var _useCurrencyOptions = useCurrencyOptions(),
|
|
6918
6903
|
selectedCoin = _useCurrencyOptions.options;
|
|
6919
6904
|
var backendUrl = reactRedux.useSelector(selectBackendUrl);
|
|
6905
|
+
var nodeProviderQuery = reactRedux.useSelector(selectNodeProviderQuery);
|
|
6906
|
+
React.useEffect(function () {
|
|
6907
|
+
if (!nodeProviderQuery) return;
|
|
6908
|
+
try {
|
|
6909
|
+
return Promise.resolve(fetchWrapper.get(nodeProviderQuery + "/kima-finance/kima/kima/pool_balance")).then(function (res) {
|
|
6910
|
+
console.table(res.poolBalance.map(function (item) {
|
|
6911
|
+
return {
|
|
6912
|
+
chain: CHAIN_NAMES_TO_STRING[item.chainName],
|
|
6913
|
+
balance: +item.balance
|
|
6914
|
+
};
|
|
6915
|
+
}));
|
|
6916
|
+
});
|
|
6917
|
+
} catch (e) {
|
|
6918
|
+
Promise.reject(e);
|
|
6919
|
+
}
|
|
6920
|
+
}, [nodeProviderQuery]);
|
|
6920
6921
|
React.useEffect(function () {
|
|
6921
6922
|
dispatch(setCurrencyOptions(selectedCoin));
|
|
6922
6923
|
}, [selectedCoin]);
|
|
@@ -6929,48 +6930,78 @@ var TransferWidget = function TransferWidget(_ref) {
|
|
|
6929
6930
|
React.useEffect(function () {
|
|
6930
6931
|
dispatch(setServiceFee(fee));
|
|
6931
6932
|
}, [fee]);
|
|
6933
|
+
var checkPoolBalance = function checkPoolBalance() {
|
|
6934
|
+
try {
|
|
6935
|
+
return Promise.resolve(fetchWrapper.get(nodeProviderQuery + "/kima-finance/kima/kima/pool_balance")).then(function (res) {
|
|
6936
|
+
var poolBalance = res.poolBalance;
|
|
6937
|
+
for (var i = 0; i < poolBalance.length; i++) {
|
|
6938
|
+
if (poolBalance[i].chainName === targetNetwork) {
|
|
6939
|
+
if (+poolBalance[i].balance >= amount + fee) {
|
|
6940
|
+
return true;
|
|
6941
|
+
}
|
|
6942
|
+
var symbol = targetNetwork === exports.SupportNetworks.FUSE || targetNetwork === exports.SupportNetworks.CELO ? 'G$' : 'USDK';
|
|
6943
|
+
console.log("Tried to transfer " + amount + " " + symbol + ", but " + CHAIN_NAMES_TO_STRING[targetNetwork] + " pool has only " + +poolBalance[i].balance + " " + symbol);
|
|
6944
|
+
return false;
|
|
6945
|
+
}
|
|
6946
|
+
}
|
|
6947
|
+
console.log(CHAIN_NAMES_TO_STRING[targetNetwork] + " pool error");
|
|
6948
|
+
return false;
|
|
6949
|
+
});
|
|
6950
|
+
} catch (e) {
|
|
6951
|
+
return Promise.reject(e);
|
|
6952
|
+
}
|
|
6953
|
+
};
|
|
6932
6954
|
var handleSubmit = function handleSubmit() {
|
|
6933
6955
|
try {
|
|
6956
|
+
var _exit3 = false;
|
|
6934
6957
|
if (!isApproved) {
|
|
6935
6958
|
approve();
|
|
6936
6959
|
return Promise.resolve();
|
|
6937
6960
|
}
|
|
6938
6961
|
return Promise.resolve(_catch(function () {
|
|
6962
|
+
var _exit2 = false;
|
|
6939
6963
|
dispatch(setSubmitting(true));
|
|
6940
|
-
|
|
6941
|
-
|
|
6942
|
-
|
|
6943
|
-
|
|
6944
|
-
|
|
6945
|
-
|
|
6946
|
-
|
|
6947
|
-
|
|
6948
|
-
|
|
6949
|
-
|
|
6950
|
-
|
|
6951
|
-
|
|
6952
|
-
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
|
|
6957
|
-
|
|
6958
|
-
|
|
6959
|
-
|
|
6960
|
-
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6964
|
+
return Promise.resolve(checkPoolBalance()).then(function (_checkPoolBalance) {
|
|
6965
|
+
if (!_checkPoolBalance) {
|
|
6966
|
+
dispatch(setSubmitting(false));
|
|
6967
|
+
_exit3 = true;
|
|
6968
|
+
return;
|
|
6969
|
+
}
|
|
6970
|
+
var params = JSON.stringify({
|
|
6971
|
+
originAddress: walletAddress,
|
|
6972
|
+
originChain: sourceChain,
|
|
6973
|
+
targetAddress: targetAddress,
|
|
6974
|
+
targetChain: targetNetwork,
|
|
6975
|
+
symbol: selectedCoin.label,
|
|
6976
|
+
amount: amount,
|
|
6977
|
+
fee: fee
|
|
6978
|
+
});
|
|
6979
|
+
console.log(params);
|
|
6980
|
+
return Promise.resolve(fetchWrapper.post(backendUrl + "/auth", params)).then(function () {
|
|
6981
|
+
return Promise.resolve(fetchWrapper.post(backendUrl + "/submit", params)).then(function (result) {
|
|
6982
|
+
console.log(result);
|
|
6983
|
+
if ((result === null || result === void 0 ? void 0 : result.code) !== 0) {
|
|
6984
|
+
errorHandler(result);
|
|
6985
|
+
dispatch(setSubmitting(false));
|
|
6986
|
+
return;
|
|
6987
|
+
}
|
|
6988
|
+
var txId = -1;
|
|
6989
|
+
for (var _iterator = _createForOfIteratorHelperLoose(result.events), _step; !(_step = _iterator()).done;) {
|
|
6990
|
+
var event = _step.value;
|
|
6991
|
+
if (event.type === 'transaction_requested') {
|
|
6992
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(event.attributes), _step2; !(_step2 = _iterator2()).done;) {
|
|
6993
|
+
var attr = _step2.value;
|
|
6994
|
+
if (attr.key === 'txId') {
|
|
6995
|
+
txId = attr.value;
|
|
6996
|
+
}
|
|
6966
6997
|
}
|
|
6967
6998
|
}
|
|
6968
6999
|
}
|
|
6969
|
-
|
|
6970
|
-
|
|
6971
|
-
|
|
6972
|
-
|
|
6973
|
-
|
|
7000
|
+
console.log(txId);
|
|
7001
|
+
dispatch(setTxId(txId));
|
|
7002
|
+
dispatch(setSubmitted(true));
|
|
7003
|
+
dispatch(setSubmitting(false));
|
|
7004
|
+
});
|
|
6974
7005
|
});
|
|
6975
7006
|
});
|
|
6976
7007
|
}, function (e) {
|