diff --git a/locale/cnr/translation.toml b/locale/cnr/translation.toml
index 90d2c3514..508e1f6d5 100644
--- a/locale/cnr/translation.toml
+++ b/locale/cnr/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Interna greška, molimo pokušajte ponovo kasnije" # Internal error, please try again later
diff --git a/locale/de/translation.toml b/locale/de/translation.toml
index 6c4c87d87..60038ddc5 100644
--- a/locale/de/translation.toml
+++ b/locale/de/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Interner Fehler, bitte versuche es später erneut" # Internal error, please try again later
diff --git a/locale/en/translation.toml b/locale/en/translation.toml
index d0956ed49..9a033a033 100644
--- a/locale/en/translation.toml
+++ b/locale/en/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "Save Wallet File" # Save Wallet File
proposalOverBudget = "Over Budget" # Over Budget
badSaplingRoot = "There was an error while syncing. Resyncing from scratch (Bad sapling root)" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "Creating SHIELD transaction..." # Creating SHIELD transaction...
+autoShieldTransaction = "Auto shield transaction" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Internal error, please try again later" # Internal error, please try again later
diff --git a/locale/es-mx/translation.toml b/locale/es-mx/translation.toml
index 8799397c0..800fc9c37 100644
--- a/locale/es-mx/translation.toml
+++ b/locale/es-mx/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Error interno, vuelve a intentarlo más tarde" # Internal error, please try again later
diff --git a/locale/fr/translation.toml b/locale/fr/translation.toml
index 3ebe8c866..6b07e0ffe 100644
--- a/locale/fr/translation.toml
+++ b/locale/fr/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Erreur interne, veuillez réessayer plus tard" # Internal error, please try again later
diff --git a/locale/it/translation.toml b/locale/it/translation.toml
index 4af5510b4..2fc7058db 100644
--- a/locale/it/translation.toml
+++ b/locale/it/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Errore interno, rirova più tardi" # Internal error, please try again later
diff --git a/locale/nl/translation.toml b/locale/nl/translation.toml
index e70dc7836..214daba15 100644
--- a/locale/nl/translation.toml
+++ b/locale/nl/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Interne fout, probeer het later opnieuw" # Internal error, please try again later
diff --git a/locale/ph/translation.toml b/locale/ph/translation.toml
index 36d2dba1f..965046197 100644
--- a/locale/ph/translation.toml
+++ b/locale/ph/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Internal error, Pakiusap uliting muli" # Internal error, please try again later
diff --git a/locale/pl/translation.toml b/locale/pl/translation.toml
index 82bfc7344..a9bc631ca 100644
--- a/locale/pl/translation.toml
+++ b/locale/pl/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Błąd wewnętrzny, spróbuj ponownie później" # Internal error, please try again later
diff --git a/locale/pt-br/translation.toml b/locale/pt-br/translation.toml
index b1ec19379..9d6b00072 100644
--- a/locale/pt-br/translation.toml
+++ b/locale/pt-br/translation.toml
@@ -88,6 +88,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
STAKE_ADDR_SET = "Endereço de Cold Staking definido!
Ao fazer Stake no futuro este endereço irá ser usado." # Cold Address set!
Future stakes will use this address.
diff --git a/locale/pt-pt/translation.toml b/locale/pt-pt/translation.toml
index ea6d00b9a..91e338e8b 100644
--- a/locale/pt-pt/translation.toml
+++ b/locale/pt-pt/translation.toml
@@ -88,6 +88,7 @@ saveWalletFile = "" # Save Wallet File
proposalOverBudget = "" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
STAKE_ADDR_SET = "Endereço de Cold Staking definido!
Ao fazer Stake no futuro irá ser usado este endereço." # Cold Address set!
Future stakes will use this address.
diff --git a/locale/template/translation.toml b/locale/template/translation.toml
index cd777e5b4..39684d9b0 100644
--- a/locale/template/translation.toml
+++ b/locale/template/translation.toml
@@ -245,6 +245,7 @@ shieldAddress = "Shield address"
cantShieldToExc = "This address does not support shield transfers"
badSaplingRoot = "There was an error while syncing. Resyncing from scratch (Bad sapling root)"
creatingShieldTransaction = "Creating SHIELD transaction..."
+autoShieldTransaction = "Auto shield transaction"
[ALERTS]
INTERNAL_ERROR = "Internal error, please try again later"
diff --git a/locale/uwu/translation.toml b/locale/uwu/translation.toml
index 2ec8dde52..c233cf15d 100644
--- a/locale/uwu/translation.toml
+++ b/locale/uwu/translation.toml
@@ -221,6 +221,7 @@ saveWalletFile = "Save Wawwet File" # Save Wallet File
proposalOverBudget = "Over Budgey" # Over Budget
badSaplingRoot = "" # There was an error while syncing. Resyncing from scratch (Bad sapling root)
creatingShieldTransaction = "" # Creating SHIELD transaction...
+autoShieldTransaction = "" # Auto shield transaction
[ALERTS]
INTERNAL_ERROR = "Internal error, pwease try again later" # Internal error, please try again later
diff --git a/scripts/composables/use_wallet.js b/scripts/composables/use_wallet.js
index bceb179bb..13c89390d 100644
--- a/scripts/composables/use_wallet.js
+++ b/scripts/composables/use_wallet.js
@@ -73,6 +73,15 @@ export const useWallet = defineStore('wallet', () => {
getEventEmitter().on('shield-loaded-from-disk', () => {
hasShield.value = wallet.hasShield();
});
+ const sendTransaction = async (network, tx) => {
+ const res = await network.sendTransaction(tx.serialize());
+ if (res) {
+ await wallet.addTransaction(tx);
+ } else {
+ wallet.discardTransaction(tx);
+ }
+ return res;
+ };
const createAndSendTransaction = lockableFunction(
async (network, address, value, opts) => {
const tx = wallet.createTransaction(address, value, opts);
@@ -81,15 +90,17 @@ export const useWallet = defineStore('wallet', () => {
} else {
await wallet.sign(tx);
}
- const res = await network.sendTransaction(tx.serialize());
- if (res) {
- await wallet.addTransaction(tx);
- } else {
- wallet.discardTransaction(tx);
- }
- return res;
+ return await sendTransaction(network, tx);
}
);
+ const createAuthoshieldTransactions = async (network, address, value) => {
+ const txs = await wallet.createAutoshieldTransactions(address, value);
+ let res = true;
+ for (const tx of txs) {
+ res = res && (await sendTransaction(network, tx));
+ }
+ return res;
+ };
const isCreatingTransaction = () => createAndSendTransaction.isLocked();
getEventEmitter().on('toggle-network', async () => {
@@ -136,5 +147,6 @@ export const useWallet = defineStore('wallet', () => {
createAndSendTransaction,
loadFromDisk,
coldBalance,
+ createAuthoshieldTransactions,
};
});
diff --git a/scripts/dashboard/Dashboard.vue b/scripts/dashboard/Dashboard.vue
index 0779fbb3f..ea4533147 100644
--- a/scripts/dashboard/Dashboard.vue
+++ b/scripts/dashboard/Dashboard.vue
@@ -198,8 +198,9 @@ function lockWallet() {
* Sends a transaction
* @param {string} address - Address or contact to send to
* @param {number} amount - Amount of PIVs to send
+ * @param {boolean} isAutoShield - Whether or not this is an autoshield transaction
*/
-async function send(address, amount, useShieldInputs) {
+async function send(address, amount, useShieldInputs, isAutoShield) {
// Ensure a wallet is unlocked
if (wallet.isViewOnly && !wallet.isHardwareWallet) {
if (
@@ -325,9 +326,22 @@ async function send(address, amount, useShieldInputs) {
// Create and send the TX
try {
- await wallet.createAndSendTransaction(getNetwork(), address, nValue, {
- useShieldInputs,
- });
+ if (isAutoShield) {
+ await wallet.createAuthoshieldTransactions(
+ getNetwork(),
+ address,
+ nValue
+ );
+ } else {
+ await wallet.createAndSendTransaction(
+ getNetwork(),
+ address,
+ nValue,
+ {
+ useShieldInputs,
+ }
+ );
+ }
} catch (e) {
console.error(e);
createAlert('warning', e);
diff --git a/scripts/dashboard/TransferMenu.vue b/scripts/dashboard/TransferMenu.vue
index 943840073..8ab1cc026 100644
--- a/scripts/dashboard/TransferMenu.vue
+++ b/scripts/dashboard/TransferMenu.vue
@@ -17,8 +17,13 @@ const emit = defineEmits([
// Amount of PIVs to send in the selected currency (e.g. USD)
const amountCurrency = ref('');
const useShieldInputs = ref(false);
+const autoShieldTransaction = ref(false);
const color = ref('');
+watch(useShieldInputs, (useShieldInputs) => {
+ if (!useShieldInputs) autoShieldTransaction.value = false;
+});
+
const props = defineProps({
show: Boolean,
price: Number,
@@ -55,7 +60,8 @@ function send() {
'send',
sanitizeHTML(address.value),
amount.value,
- useShieldInputs.value
+ useShieldInputs.value,
+ autoShieldTransaction.value
);
}
@@ -254,6 +260,23 @@ async function selectContact() {
}}
+