@kimafinance/kima-transaction-widget 1.2.29-beta.1 → 1.2.30-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,7 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
declare const PendingTxPopup: ({ txData, handleHtlcContinue }: {
|
|
4
|
-
txData: Array<PendingTxData>;
|
|
2
|
+
declare const PendingTxPopup: ({ handleHtlcContinue }: {
|
|
5
3
|
handleHtlcContinue: (expireTime: any, hash: any, amount: any) => {};
|
|
6
4
|
}) => React.JSX.Element;
|
|
7
5
|
export default PendingTxPopup;
|
package/dist/index.js
CHANGED
|
@@ -1204,7 +1204,9 @@ var _optionSlice$actions = optionSlice.actions,
|
|
|
1204
1204
|
setSignature = _optionSlice$actions.setSignature,
|
|
1205
1205
|
setUuid = _optionSlice$actions.setUuid,
|
|
1206
1206
|
setKYCStatus = _optionSlice$actions.setKYCStatus,
|
|
1207
|
-
setExpireTime = _optionSlice$actions.setExpireTime
|
|
1207
|
+
setExpireTime = _optionSlice$actions.setExpireTime,
|
|
1208
|
+
setPendingTxData = _optionSlice$actions.setPendingTxData,
|
|
1209
|
+
setPendingTxs = _optionSlice$actions.setPendingTxs;
|
|
1208
1210
|
var optionReducer = optionSlice.reducer;
|
|
1209
1211
|
|
|
1210
1212
|
var configureStore = toolkitRaw.configureStore;
|
|
@@ -1420,6 +1422,9 @@ var selectHelpPopup = function selectHelpPopup(state) {
|
|
|
1420
1422
|
var selectHashPopup = function selectHashPopup(state) {
|
|
1421
1423
|
return state.option.hashPopup;
|
|
1422
1424
|
};
|
|
1425
|
+
var selectPendingTxPopup = function selectPendingTxPopup(state) {
|
|
1426
|
+
return state.option.pendingTxPopup;
|
|
1427
|
+
};
|
|
1423
1428
|
var selectBankPopup = function selectBankPopup(state) {
|
|
1424
1429
|
return state.option.bankPopup;
|
|
1425
1430
|
};
|
|
@@ -1510,6 +1515,9 @@ var selectExpireTime = function selectExpireTime(state) {
|
|
|
1510
1515
|
var selectPendingTxs = function selectPendingTxs(state) {
|
|
1511
1516
|
return state.option.pendingTxs;
|
|
1512
1517
|
};
|
|
1518
|
+
var selectPendingTxData = function selectPendingTxData(state) {
|
|
1519
|
+
return state.option.pendingTxData;
|
|
1520
|
+
};
|
|
1513
1521
|
|
|
1514
1522
|
var Loading180Ring = function Loading180Ring(_ref) {
|
|
1515
1523
|
var _ref$width = _ref.width,
|
|
@@ -2194,7 +2202,7 @@ function useIsWalletReady() {
|
|
|
2194
2202
|
if (bitcoinAddress) {
|
|
2195
2203
|
return createWalletStatus(true, undefined, connectBitcoinWallet, bitcoinAddress);
|
|
2196
2204
|
}
|
|
2197
|
-
return createWalletStatus(false, 'Xverse wallet
|
|
2205
|
+
return createWalletStatus(false, 'Xverse wallet not connected', connectBitcoinWallet, '');
|
|
2198
2206
|
} else if (isEVMChain(correctChain) && hasEthInfo && evmAddress) {
|
|
2199
2207
|
if (hasCorrectEvmNetwork) {
|
|
2200
2208
|
return createWalletStatus(true, undefined, connectBitcoinWallet, evmAddress);
|
|
@@ -3239,12 +3247,12 @@ var BankInput = function BankInput() {
|
|
|
3239
3247
|
};
|
|
3240
3248
|
|
|
3241
3249
|
var TxButton = function TxButton(_ref) {
|
|
3242
|
-
var theme = _ref.theme
|
|
3243
|
-
txCount = _ref.txCount;
|
|
3250
|
+
var theme = _ref.theme;
|
|
3244
3251
|
var dispatch = reactRedux.useDispatch();
|
|
3245
3252
|
var handleClick = function handleClick() {
|
|
3246
3253
|
dispatch(setPendingTxPopup(true));
|
|
3247
3254
|
};
|
|
3255
|
+
var txCount = reactRedux.useSelector(selectPendingTxs);
|
|
3248
3256
|
return React__default.createElement("button", {
|
|
3249
3257
|
className: "secondary-button tx-button " + theme.colorMode,
|
|
3250
3258
|
onClick: handleClick,
|
|
@@ -8039,6 +8047,82 @@ function htlcP2WSHAddress(htlcScript, network) {
|
|
|
8039
8047
|
return p2wsh.address;
|
|
8040
8048
|
}
|
|
8041
8049
|
|
|
8050
|
+
var PendingTxPopup = function PendingTxPopup(_ref) {
|
|
8051
|
+
var handleHtlcContinue = _ref.handleHtlcContinue;
|
|
8052
|
+
var dispatch = reactRedux.useDispatch();
|
|
8053
|
+
var theme = reactRedux.useSelector(selectTheme);
|
|
8054
|
+
var pendingTxPopup = reactRedux.useSelector(selectPendingTxPopup);
|
|
8055
|
+
var txData = reactRedux.useSelector(selectPendingTxData);
|
|
8056
|
+
return React__default.createElement("div", {
|
|
8057
|
+
className: "kima-modal pending-tx-popup " + theme.colorMode + " " + (pendingTxPopup ? 'open' : '')
|
|
8058
|
+
}, React__default.createElement("div", {
|
|
8059
|
+
className: 'modal-overlay',
|
|
8060
|
+
onClick: function onClick() {
|
|
8061
|
+
dispatch(setPendingTxPopup(false));
|
|
8062
|
+
}
|
|
8063
|
+
}), React__default.createElement("div", {
|
|
8064
|
+
className: 'modal-content-container'
|
|
8065
|
+
}, React__default.createElement("div", {
|
|
8066
|
+
className: 'kima-card-header'
|
|
8067
|
+
}, React__default.createElement("div", {
|
|
8068
|
+
className: 'topbar'
|
|
8069
|
+
}, React__default.createElement("div", {
|
|
8070
|
+
className: 'title'
|
|
8071
|
+
}, React__default.createElement("h3", null, "Bitcoin Transaction List")), React__default.createElement("div", {
|
|
8072
|
+
className: 'control-buttons'
|
|
8073
|
+
}, React__default.createElement("button", {
|
|
8074
|
+
className: 'icon-button',
|
|
8075
|
+
onClick: function onClick() {
|
|
8076
|
+
return dispatch(setPendingTxPopup(false));
|
|
8077
|
+
}
|
|
8078
|
+
}, React__default.createElement(Cross, {
|
|
8079
|
+
fill: theme.colorMode === 'light' ? 'black' : 'white'
|
|
8080
|
+
}))))), React__default.createElement("div", {
|
|
8081
|
+
className: 'modal-content'
|
|
8082
|
+
}, React__default.createElement("div", {
|
|
8083
|
+
className: 'scroll-area custom-scrollbar'
|
|
8084
|
+
}, React__default.createElement("div", {
|
|
8085
|
+
className: 'header-container'
|
|
8086
|
+
}, React__default.createElement("span", null, "Amount"), React__default.createElement("span", null, "Expire Time"), React__default.createElement("span", null, "Status"), React__default.createElement("span", null, "Hash"), React__default.createElement("span", null, "Action")), React__default.createElement("div", {
|
|
8087
|
+
className: 'tx-container'
|
|
8088
|
+
}, txData.map(function (tx, index) {
|
|
8089
|
+
var date = new Date(+tx.expireTime * 1000);
|
|
8090
|
+
var year = date.getFullYear();
|
|
8091
|
+
var month = date.getMonth() + 1;
|
|
8092
|
+
var day = date.getDate();
|
|
8093
|
+
var hours = date.getHours();
|
|
8094
|
+
var minutes = date.getMinutes();
|
|
8095
|
+
var seconds = date.getSeconds();
|
|
8096
|
+
var formattedDate = year + "-" + month.toString().padStart(2, '0') + "-" + day.toString().padStart(2, '0') + " " + hours.toString().padStart(2, '0') + ":" + minutes.toString().padStart(2, '0') + ":" + seconds.toString().padStart(2, '0');
|
|
8097
|
+
return React__default.createElement("div", {
|
|
8098
|
+
className: 'tx-item',
|
|
8099
|
+
key: index
|
|
8100
|
+
}, React__default.createElement("div", {
|
|
8101
|
+
className: 'label'
|
|
8102
|
+
}, React__default.createElement("div", {
|
|
8103
|
+
className: 'icon-wrapper'
|
|
8104
|
+
}, (+tx.amount).toFixed(8), React__default.createElement(BTC, null))), React__default.createElement("span", {
|
|
8105
|
+
className: 'label'
|
|
8106
|
+
}, "" + formattedDate), React__default.createElement("span", {
|
|
8107
|
+
className: 'label'
|
|
8108
|
+
}, tx.status), React__default.createElement("div", {
|
|
8109
|
+
className: 'label'
|
|
8110
|
+
}, React__default.createElement(ExternalLink, {
|
|
8111
|
+
to: "https://" + CHAIN_NAMES_TO_EXPLORER[exports.SupportNetworks.BTC] + "/tx/" + tx.hash
|
|
8112
|
+
}, getShortenedAddress(tx.hash))), React__default.createElement("div", {
|
|
8113
|
+
className: "action-button-container " + (tx.status === 'Pending' || tx.status === 'Failed' ? '' : 'disabled')
|
|
8114
|
+
}, React__default.createElement("div", {
|
|
8115
|
+
className: 'action-button'
|
|
8116
|
+
}, "Reclaim"), React__default.createElement("div", {
|
|
8117
|
+
className: 'action-button',
|
|
8118
|
+
onClick: function onClick() {
|
|
8119
|
+
handleHtlcContinue(tx.expireTime, tx.hash, tx.amount);
|
|
8120
|
+
dispatch(setPendingTxPopup(false));
|
|
8121
|
+
}
|
|
8122
|
+
}, "Continue")));
|
|
8123
|
+
}))))));
|
|
8124
|
+
};
|
|
8125
|
+
|
|
8042
8126
|
var TransferWidget = function TransferWidget(_ref) {
|
|
8043
8127
|
var _theme$backgroundColo;
|
|
8044
8128
|
var theme = _ref.theme,
|
|
@@ -8280,6 +8364,19 @@ var TransferWidget = function TransferWidget(_ref) {
|
|
|
8280
8364
|
return Promise.reject(e);
|
|
8281
8365
|
}
|
|
8282
8366
|
};
|
|
8367
|
+
var handleHtlcContinue = function handleHtlcContinue(expireTime, hash, amount) {
|
|
8368
|
+
try {
|
|
8369
|
+
setBTCTimestamp(expireTime);
|
|
8370
|
+
setBTCSigning(false);
|
|
8371
|
+
setBTCSigned(true);
|
|
8372
|
+
setBTCHash(hash);
|
|
8373
|
+
dispatch(setFeeDeduct(true));
|
|
8374
|
+
dispatch(setAmount(amount));
|
|
8375
|
+
return Promise.resolve();
|
|
8376
|
+
} catch (e) {
|
|
8377
|
+
return Promise.reject(e);
|
|
8378
|
+
}
|
|
8379
|
+
};
|
|
8283
8380
|
var handleSubmit = function handleSubmit() {
|
|
8284
8381
|
try {
|
|
8285
8382
|
var _temp8 = function _temp8(_result) {
|
|
@@ -8567,6 +8664,53 @@ var TransferWidget = function TransferWidget(_ref) {
|
|
|
8567
8664
|
React.useEffect(function () {
|
|
8568
8665
|
dispatch(setTheme(theme));
|
|
8569
8666
|
}, [theme]);
|
|
8667
|
+
React.useEffect(function () {
|
|
8668
|
+
if (!nodeProviderQuery || sourceChain !== exports.SupportNetworks.BTC || !walletAddress) return;
|
|
8669
|
+
var updatePendingTxs = function updatePendingTxs() {
|
|
8670
|
+
try {
|
|
8671
|
+
return Promise.resolve(fetchWrapper.get(nodeProviderQuery + "/kima-finance/kima-blockchain/transaction/get_htlc_transaction/" + walletAddress)).then(function (result) {
|
|
8672
|
+
var data = result === null || result === void 0 ? void 0 : result.htlcLockingTransaction;
|
|
8673
|
+
var txData = [];
|
|
8674
|
+
if (data.length > 0) {
|
|
8675
|
+
for (var _iterator5 = _createForOfIteratorHelperLoose(data), _step5; !(_step5 = _iterator5()).done;) {
|
|
8676
|
+
var tx = _step5.value;
|
|
8677
|
+
var status = '';
|
|
8678
|
+
if (tx.status !== 'Completed') {
|
|
8679
|
+
status = 'Confirming';
|
|
8680
|
+
} else if (tx.pull_status === 'htlc_pull_available') {
|
|
8681
|
+
status = 'Pending';
|
|
8682
|
+
} else if (tx.pull_status === 'htlc_pull_in_progress') {
|
|
8683
|
+
status = 'In Progress';
|
|
8684
|
+
} else if (tx.pull_status === 'htlc_pull_succeed') {
|
|
8685
|
+
status = 'Completed';
|
|
8686
|
+
} else if (tx.pull_status === 'htlc_pull_failed') {
|
|
8687
|
+
status = 'Failed';
|
|
8688
|
+
}
|
|
8689
|
+
txData.push({
|
|
8690
|
+
hash: tx.txHash,
|
|
8691
|
+
amount: tx.amount,
|
|
8692
|
+
expireTime: tx.htlcTimestamp,
|
|
8693
|
+
status: status
|
|
8694
|
+
});
|
|
8695
|
+
}
|
|
8696
|
+
dispatch(setPendingTxData([].concat(txData)));
|
|
8697
|
+
dispatch(setPendingTxs(txData.filter(function (tx) {
|
|
8698
|
+
return tx.status === 'Pending' || tx.status === 'Confirming';
|
|
8699
|
+
}).length));
|
|
8700
|
+
}
|
|
8701
|
+
});
|
|
8702
|
+
} catch (e) {
|
|
8703
|
+
return Promise.reject(e);
|
|
8704
|
+
}
|
|
8705
|
+
};
|
|
8706
|
+
var timerId = setInterval(function () {
|
|
8707
|
+
updatePendingTxs();
|
|
8708
|
+
}, 10000);
|
|
8709
|
+
updatePendingTxs();
|
|
8710
|
+
return function () {
|
|
8711
|
+
clearInterval(timerId);
|
|
8712
|
+
};
|
|
8713
|
+
}, [sourceChain, nodeProviderQuery, walletAddress]);
|
|
8570
8714
|
return React__default.createElement("div", {
|
|
8571
8715
|
className: "kima-card " + theme.colorMode + " font-" + theme.fontSize,
|
|
8572
8716
|
style: {
|
|
@@ -8582,8 +8726,7 @@ var TransferWidget = function TransferWidget(_ref) {
|
|
|
8582
8726
|
}, React__default.createElement("h3", null, isWizard && wizardStep === 3 || !isWizard && formStep > 0 ? titleOption !== null && titleOption !== void 0 && titleOption.confirmTitle ? titleOption === null || titleOption === void 0 ? void 0 : titleOption.confirmTitle : 'Transfer Details' : titleOption !== null && titleOption !== void 0 && titleOption.initialTitle ? titleOption === null || titleOption === void 0 ? void 0 : titleOption.initialTitle : 'New Transfer')), React__default.createElement("div", {
|
|
8583
8727
|
className: 'control-buttons'
|
|
8584
8728
|
}, pendingTxs > 0 ? React__default.createElement(TxButton, {
|
|
8585
|
-
theme: theme
|
|
8586
|
-
txCount: pendingTxs
|
|
8729
|
+
theme: theme
|
|
8587
8730
|
}) : null, React__default.createElement(ExternalLink, {
|
|
8588
8731
|
to: helpURL ? helpURL : 'https://docs.kima.finance/demo'
|
|
8589
8732
|
}, React__default.createElement("div", {
|
|
@@ -8668,6 +8811,8 @@ var TransferWidget = function TransferWidget(_ref) {
|
|
|
8668
8811
|
background: theme.colorMode === exports.ColorModeOptions.light ? 'white' : (_theme$backgroundColo = theme.backgroundColorDark) != null ? _theme$backgroundColo : '#1b1e25'
|
|
8669
8812
|
}
|
|
8670
8813
|
}
|
|
8814
|
+
}), React__default.createElement(PendingTxPopup, {
|
|
8815
|
+
handleHtlcContinue: handleHtlcContinue
|
|
8671
8816
|
}), React__default.createElement(reactTooltip.Tooltip, {
|
|
8672
8817
|
id: 'popup-tooltip',
|
|
8673
8818
|
className: "popup-tooltip " + theme.colorMode,
|