4
1
mirror of https://github.com/Qortal/qortal-ui.git synced 2025-02-12 02:05:51 +00:00

added condition to transaction route - modal open

This commit is contained in:
Phillip Lang Martinez 2022-08-09 23:26:37 +03:00
parent 67cec578df
commit a784594b23

View File

@ -1,83 +1,95 @@
import { store } from '../store.js' import { store } from '../store.js';
import { doAddPluginUrl, doUpdateBlockInfo, doUpdateNodeStatus, doUpdateNodeInfo, doSetNode, doPageUrl, doSetChatHeads, doUpdateAccountInfo } from '../redux/app/app-actions.js' import {
import * as api from 'qortal-ui-crypto' doAddPluginUrl,
import { requestTransactionDialog } from '../functional-components/confirm-transaction-dialog.js' doUpdateBlockInfo,
import { doNewMessage } from '../notifications/controller.js' doUpdateNodeStatus,
import snackbar from '../functional-components/snackbar.js' doUpdateNodeInfo,
import { loadStateFromLocalStorage, saveStateToLocalStorage } from '../localStorageHelpers.js' doSetNode,
import copyTextMenu from '../functional-components/copy-text-menu.js' doPageUrl,
import framePasteMenu from '../functional-components/frame-paste-menu.js' doSetChatHeads,
doUpdateAccountInfo,
} from '../redux/app/app-actions.js';
import * as api from 'qortal-ui-crypto';
import { requestTransactionDialog } from '../functional-components/confirm-transaction-dialog.js';
import { doNewMessage } from '../notifications/controller.js';
import snackbar from '../functional-components/snackbar.js';
import {
loadStateFromLocalStorage,
saveStateToLocalStorage,
} from '../localStorageHelpers.js';
import copyTextMenu from '../functional-components/copy-text-menu.js';
import framePasteMenu from '../functional-components/frame-paste-menu.js';
const createTransaction = api.createTransaction const createTransaction = api.createTransaction;
const processTransaction = api.processTransaction const processTransaction = api.processTransaction;
const signChatTransaction = api.signChatTransaction const signChatTransaction = api.signChatTransaction;
const signArbitraryTransaction = api.signArbitraryTransaction const signArbitraryTransaction = api.signArbitraryTransaction;
const tradeBotCreateRequest = api.tradeBotCreateRequest const tradeBotCreateRequest = api.tradeBotCreateRequest;
const tradeBotRespondRequest = api.tradeBotRespondRequest const tradeBotRespondRequest = api.tradeBotRespondRequest;
const signTradeBotTxn = api.signTradeBotTxn const signTradeBotTxn = api.signTradeBotTxn;
const deleteTradeOffer = api.deleteTradeOffer const deleteTradeOffer = api.deleteTradeOffer;
const cancelAllOffers = api.cancelAllOffers const cancelAllOffers = api.cancelAllOffers;
const sendBtc = api.sendBtc const sendBtc = api.sendBtc;
const sendLtc = api.sendLtc const sendLtc = api.sendLtc;
const sendDoge = api.sendDoge const sendDoge = api.sendDoge;
const sendDgb = api.sendDgb const sendDgb = api.sendDgb;
const sendRvn = api.sendRvn const sendRvn = api.sendRvn;
export const routes = { export const routes = {
hello: async (req) => { hello: async (req) => {
return 'Hello from awesomeness' return 'Hello from awesomeness';
}, },
registerUrl: async (req) => { registerUrl: async (req) => {
store.dispatch(doAddPluginUrl(req.data)) store.dispatch(doAddPluginUrl(req.data));
}, },
setAccountInfo: async (req) => { setAccountInfo: async (req) => {
store.dispatch(doUpdateAccountInfo(req.data)) store.dispatch(doUpdateAccountInfo(req.data));
}, },
getAccountInfo: async (req) => { getAccountInfo: async (req) => {
return store.getState().app.accountInfo return store.getState().app.accountInfo;
}, },
setChatHeads: async (req) => { setChatHeads: async (req) => {
return store.dispatch(doSetChatHeads(req.data)) return store.dispatch(doSetChatHeads(req.data));
}, },
getChatHeads: async (req) => { getChatHeads: async (req) => {
return store.getState().app.chatHeads return store.getState().app.chatHeads;
}, },
updateBlockInfo: async (req) => { updateBlockInfo: async (req) => {
store.dispatch(doUpdateBlockInfo(req.data)) store.dispatch(doUpdateBlockInfo(req.data));
}, },
updateNodeStatus: async (req) => { updateNodeStatus: async (req) => {
store.dispatch(doUpdateNodeStatus(req.data)) store.dispatch(doUpdateNodeStatus(req.data));
}, },
updateNodeInfo: async (req) => { updateNodeInfo: async (req) => {
store.dispatch(doUpdateNodeInfo(req.data)) store.dispatch(doUpdateNodeInfo(req.data));
}, },
setNode: async (req) => { setNode: async (req) => {
store.dispatch(doSetNode(req.data)) store.dispatch(doSetNode(req.data));
}, },
getNodeConfig: async (req) => { getNodeConfig: async (req) => {
return store.getState().app.nodeConfig return store.getState().app.nodeConfig;
}, },
setPageUrl: async (req) => { setPageUrl: async (req) => {
return store.dispatch(doPageUrl(req.data)) return store.dispatch(doPageUrl(req.data));
}, },
getLocalStorage: async (req) => { getLocalStorage: async (req) => {
return loadStateFromLocalStorage(req.data) return loadStateFromLocalStorage(req.data);
}, },
setLocalStorage: async (req) => { setLocalStorage: async (req) => {
return saveStateToLocalStorage(req.data.key, req.data.dataObj) return saveStateToLocalStorage(req.data.key, req.data.dataObj);
}, },
openCopyTextMenu: async (req) => { openCopyTextMenu: async (req) => {
@ -85,26 +97,26 @@ export const routes = {
selectedText: req.data.selectedText, selectedText: req.data.selectedText,
eventObject: req.data.eventObject, eventObject: req.data.eventObject,
isFrame: req.data.isFrame, isFrame: req.data.isFrame,
} };
copyTextMenu.open(textMenuObject) copyTextMenu.open(textMenuObject);
}, },
closeCopyTextMenu: async (req) => { closeCopyTextMenu: async (req) => {
copyTextMenu.close() copyTextMenu.close();
}, },
openFramePasteMenu: async (req) => { openFramePasteMenu: async (req) => {
framePasteMenu.open(req.data) framePasteMenu.open(req.data);
}, },
closeFramePasteMenu: async (req) => { closeFramePasteMenu: async (req) => {
framePasteMenu.close() framePasteMenu.close();
}, },
apiCall: async (req) => { apiCall: async (req) => {
const url = req.data.url const url = req.data.url;
delete req.data.url delete req.data.url;
return api.request(url, req.data) return api.request(url, req.data);
}, },
addresses: async (req) => { addresses: async (req) => {
@ -115,250 +127,288 @@ export const routes = {
nonce: address.nonce, nonce: address.nonce,
textColor: address.textColor, textColor: address.textColor,
base58PublicKey: address.base58PublicKey, base58PublicKey: address.base58PublicKey,
} };
}) });
}, },
transaction: async (req) => { transaction: async (req) => {
let response let response;
try { try {
const tx = createTransaction(req.data.type, store.getState().app.wallet._addresses[req.data.nonce].keyPair, req.data.params) const tx = createTransaction(
await requestTransactionDialog.requestTransaction(tx) req.data.type,
const res = await processTransaction(tx.signedBytes) store.getState().app.wallet._addresses[req.data.nonce].keyPair,
req.data.params
);
if (!req.disableModal) {
await requestTransactionDialog.requestTransaction(tx);
}
const res = await processTransaction(tx.signedBytes);
response = { response = {
success: true, success: true,
data: res, data: res,
} };
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = { response = {
success: false, success: false,
message: e.message, message: e.message,
};
} }
} return response;
return response
}, },
standaloneTransaction: async (req) => { standaloneTransaction: async (req) => {
const rebuildUint8Array = (obj) => { const rebuildUint8Array = (obj) => {
let _array = new Uint8Array(Object.keys(obj).length) let _array = new Uint8Array(Object.keys(obj).length);
for (let i = 0; i < _array.byteLength; ++i) { for (let i = 0; i < _array.byteLength; ++i) {
_array.set([obj[i]], i) _array.set([obj[i]], i);
}
return _array
} }
return _array;
};
let response let response;
try { try {
// req.data.keyPair unfortunately "prepared" into horrible object so we need to convert back // req.data.keyPair unfortunately "prepared" into horrible object so we need to convert back
let _keyPair = {}; let _keyPair = {};
for (let _keyName in req.data.keyPair) { for (let _keyName in req.data.keyPair) {
_keyPair[_keyName] = rebuildUint8Array(req.data.keyPair[_keyName]) _keyPair[_keyName] = rebuildUint8Array(
req.data.keyPair[_keyName]
);
} }
const tx = createTransaction(req.data.type, _keyPair, req.data.params) const tx = createTransaction(
const res = await processTransaction(tx.signedBytes) req.data.type,
_keyPair,
req.data.params
);
const res = await processTransaction(tx.signedBytes);
response = { response = {
success: true, success: true,
data: res, data: res,
} };
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = { response = {
success: false, success: false,
message: e.message, message: e.message,
};
} }
} return response;
return response
}, },
username: async (req) => { username: async (req) => {
const state = store.getState() const state = store.getState();
const username = state.user.storedWallets[state.app.wallet.addresses[0].address].name const username =
state.user.storedWallets[state.app.wallet.addresses[0].address]
.name;
return username return username;
}, },
chat: async (req) => { chat: async (req) => {
let response let response;
try { try {
const tx = createTransaction(req.data.type, store.getState().app.wallet._addresses[req.data.nonce].keyPair, req.data.params) const tx = createTransaction(
req.data.type,
store.getState().app.wallet._addresses[req.data.nonce].keyPair,
req.data.params
);
response = tx.chatBytes response = tx.chatBytes;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = false response = false;
} }
return response return response;
}, },
sign_chat: async (req) => { sign_chat: async (req) => {
let response let response;
try { try {
const signedChatBytes = await signChatTransaction(req.data.chatBytesArray, req.data.chatNonce, store.getState().app.wallet._addresses[req.data.nonce].keyPair) const signedChatBytes = await signChatTransaction(
req.data.chatBytesArray,
req.data.chatNonce,
store.getState().app.wallet._addresses[req.data.nonce].keyPair
);
const res = await processTransaction(signedChatBytes) const res = await processTransaction(signedChatBytes);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = false response = false;
} }
return response return response;
}, },
sign_arbitrary: async (req) => { sign_arbitrary: async (req) => {
let response let response;
try { try {
const signedArbitraryBytes = await signArbitraryTransaction(req.data.arbitraryBytesBase58, req.data.arbitraryBytesForSigningBase58, req.data.arbitraryNonce, store.getState().app.wallet._addresses[req.data.nonce].keyPair) const signedArbitraryBytes = await signArbitraryTransaction(
req.data.arbitraryBytesBase58,
req.data.arbitraryBytesForSigningBase58,
req.data.arbitraryNonce,
store.getState().app.wallet._addresses[req.data.nonce].keyPair
);
const res = await processTransaction(signedArbitraryBytes) const res = await processTransaction(signedArbitraryBytes);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = false response = false;
} }
return response return response;
}, },
showNotification: async (req) => { showNotification: async (req) => {
doNewMessage(req.data) doNewMessage(req.data);
}, },
showSnackBar: async (req) => { showSnackBar: async (req) => {
snackbar.add({ snackbar.add({
labelText: req.data, labelText: req.data,
dismiss: true, dismiss: true,
}) });
}, },
tradeBotCreateRequest: async (req) => { tradeBotCreateRequest: async (req) => {
let response let response;
try { try {
const unsignedTxn = await tradeBotCreateRequest(req.data) const unsignedTxn = await tradeBotCreateRequest(req.data);
const signedTxnBytes = await signTradeBotTxn(unsignedTxn, store.getState().app.selectedAddress.keyPair) const signedTxnBytes = await signTradeBotTxn(
unsignedTxn,
store.getState().app.selectedAddress.keyPair
);
const res = await processTransaction(signedTxnBytes) const res = await processTransaction(signedTxnBytes);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
tradeBotRespondRequest: async (req) => { tradeBotRespondRequest: async (req) => {
let response let response;
try { try {
const res = await tradeBotRespondRequest(req.data) const res = await tradeBotRespondRequest(req.data);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
deleteTradeOffer: async (req) => { deleteTradeOffer: async (req) => {
let response let response;
try { try {
const unsignedTxn = await deleteTradeOffer(req.data) const unsignedTxn = await deleteTradeOffer(req.data);
const signedTxnBytes = await signTradeBotTxn(unsignedTxn, store.getState().app.selectedAddress.keyPair) const signedTxnBytes = await signTradeBotTxn(
unsignedTxn,
store.getState().app.selectedAddress.keyPair
);
const res = await processTransaction(signedTxnBytes) const res = await processTransaction(signedTxnBytes);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
cancelAllOffers: async (req) => { cancelAllOffers: async (req) => {
let response let response;
try { try {
const res = await cancelAllOffers(store.getState().app.selectedAddress) const res = await cancelAllOffers(
response = res store.getState().app.selectedAddress
);
response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
sendBtc: async (req) => { sendBtc: async (req) => {
let response let response;
try { try {
const res = await sendBtc(req.data) const res = await sendBtc(req.data);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
sendLtc: async (req) => { sendLtc: async (req) => {
let response let response;
try { try {
const res = await sendLtc(req.data) const res = await sendLtc(req.data);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
sendDoge: async (req) => { sendDoge: async (req) => {
let response let response;
try { try {
const res = await sendDoge(req.data) const res = await sendDoge(req.data);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
sendDgb: async (req) => { sendDgb: async (req) => {
let response let response;
try { try {
const res = await sendDgb(req.data) const res = await sendDgb(req.data);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
sendRvn: async (req) => { sendRvn: async (req) => {
let response let response;
try { try {
const res = await sendRvn(req.data) const res = await sendRvn(req.data);
response = res response = res;
} catch (e) { } catch (e) {
console.error(e) console.error(e);
console.error(e.message) console.error(e.message);
response = e.message response = e.message;
} }
return response return response;
}, },
} };