diff --git a/core/src/components/login-view/login-view.js b/core/src/components/login-view/login-view.js
index 74eb66c2..8a50801f 100644
--- a/core/src/components/login-view/login-view.js
+++ b/core/src/components/login-view/login-view.js
@@ -20,7 +20,9 @@ import {
setSideEffectAction,
setTabNotifications,
allowQAPPAutoBalance,
- removeQAPPAutoBalance
+ removeQAPPAutoBalance,
+ allowQAPPAutoTransactions,
+ removeQAPPAutoTransactions
} from '../../redux/app/app-actions'
import settings from '../../functional-components/settings-page'
import './welcome-page'
@@ -56,7 +58,9 @@ window.reduxAction = {
allowShowSyncIndicator: allowShowSyncIndicator,
removeShowSyncIndicator: removeShowSyncIndicator,
allowQAPPAutoBalance: allowQAPPAutoBalance,
- removeQAPPAutoBalance: removeQAPPAutoBalance
+ removeQAPPAutoBalance: removeQAPPAutoBalance,
+ allowQAPPAutoTransactions: allowQAPPAutoTransactions,
+ removeQAPPAutoTransactions: removeQAPPAutoTransactions
}
const animationDuration = 0.7 // Seconds
diff --git a/core/src/components/settings-view/security-view.js b/core/src/components/settings-view/security-view.js
index 4f8fd51a..c0e529fb 100644
--- a/core/src/components/settings-view/security-view.js
+++ b/core/src/components/settings-view/security-view.js
@@ -10,7 +10,9 @@ import {
removeQAPPAutoLists,
setIsOpenDevDialog,
allowQAPPAutoBalance,
- removeQAPPAutoBalance
+ removeQAPPAutoBalance,
+ allowQAPPAutoTransactions,
+ removeQAPPAutoTransactions
} from '../../redux/app/app-actions'
import { securityViewStyles } from '../../styles/core-css'
import FileSaver from 'file-saver'
@@ -87,6 +89,12 @@ class SecurityView extends connect(store)(LitElement) {
this.checkForBalance(e)} ?checked=${store.getState().app.qAPPAutoBalance}>
+
+
+ this.checkForTransactions(e)} ?checked=${store.getState().app.qAPPAutoTransactions}>
+
@@ -5365,7 +5520,7 @@ async function showModalAndWait(type, data) {
})
}
- const checkbox1 = modal.querySelector('#abalanceButton')
+ const checkbox1 = modal.querySelector('#balanceButton')
if (checkbox1) {
checkbox1.addEventListener('click', (e) => {
if (e.target.checked) {
@@ -5394,6 +5549,24 @@ async function showModalAndWait(type, data) {
})
}
+ const labelButton3 = modal.querySelector('#transactionsButtonLabel')
+ if (labelButton3) {
+ labelButton1.addEventListener('click', () => {
+ this.shadowRoot.getElementById('transactionsButton').click()
+ })
+ }
+
+ const checkbox3 = modal.querySelector('#transactionsButton')
+ if (checkbox3) {
+ checkbox1.addEventListener('click', (e) => {
+ if (e.target.checked) {
+ window.parent.reduxStore.dispatch(window.parent.reduxAction.removeQAPPAutoTransacions(false))
+ return
+ }
+ window.parent.reduxStore.dispatch(window.parent.reduxAction.allowQAPPAutoTransacions(true))
+ })
+ }
+
const labelButtonFriendsList = modal.querySelector('#friendsListLabel')
if (labelButtonFriendsList) {
labelButtonFriendsList.addEventListener('click', () => {
diff --git a/plugins/plugins/utils/classes.js b/plugins/plugins/utils/classes.js
index 751c7194..4a2dcf1d 100644
--- a/plugins/plugins/utils/classes.js
+++ b/plugins/plugins/utils/classes.js
@@ -1552,3 +1552,99 @@ export const cancelTradeOfferTradeBot = async (body, keyPair) => {
throw new Error("Failed to Cancel Sell Order. Try again!")
}
}
+
+export const getArrrSyncStatus = async () => {
+ const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
+ const nodeUrl = `${myNode.protocol}://${myNode.domain}:${myNode.port}`
+ const myApiKey = myNode.apiKey
+ const url = `${nodeUrl}/crosschain/arrr/syncstatus?apiKey=${myApiKey}`
+ const arrrSeed = window.parent.reduxStore.getState().app.selectedAddress.arrrWallet.seed58
+
+ try {
+ const response = await fetch(url, {
+ method: "POST",
+ headers: {
+ Accept: "*/*"
+ },
+ body: arrrSeed
+ })
+
+ let res
+
+ try {
+ res = await response.clone().json()
+ } catch (e) {
+ res = await response.text()
+ }
+
+ return res
+ } catch (error) {
+ console.error(error.message || "Error in retrieving arrr sync status")
+ }
+}
+
+export const getNodeInfo = async () => {
+ const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
+ const nodeUrl = `${myNode.protocol}://${myNode.domain}:${myNode.port}`
+ const url = `${nodeUrl}/admin/info`
+
+ try {
+ const response = await fetch(url, {
+ method: "GET",
+ headers: {
+ Accept: "*/*"
+ }
+ })
+
+ if (!response.ok) console.error("Failed to retrieve node info")
+
+ let res
+
+ try {
+ res = await response.clone().json()
+ } catch (e) {
+ res = await response.text()
+ }
+
+ if (res.error && res.message) {
+ console.error(res.message)
+ }
+
+ return res
+ } catch (error) {
+ console.error(error.message || "Error in retrieving node info")
+ }
+}
+
+ export const getNodeStatus = async () => {
+ const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
+ const nodeUrl = `${myNode.protocol}://${myNode.domain}:${myNode.port}`
+ const url = `${nodeUrl}/admin/status`
+
+ try {
+ const response = await fetch(url, {
+ method: "GET",
+ headers: {
+ Accept: "*/*"
+ }
+ })
+
+ if (!response.ok) console.error("Failed to retrieve node status")
+
+ let res
+
+ try {
+ res = await response.clone().json()
+ } catch (e) {
+ res = await response.text()
+ }
+
+ if (res.error && res.message) {
+ console.error(res.message)
+ }
+
+ return res
+ } catch (error) {
+ console.error(error.message || "Error in retrieving node status")
+ }
+}