From 7f5adef0ad770688ff9750da7d6f493e2908d5b2 Mon Sep 17 00:00:00 2001 From: Gerhard Steenkamp Date: Sun, 31 Mar 2024 21:14:55 +0200 Subject: [PATCH] fixes --- src/plugins/oSnap/Create.vue | 8 ---- .../TransactionBuilder/SafeImport.vue | 42 ++++++++++--------- .../TransactionBuilder/Transaction.vue | 2 - 3 files changed, 22 insertions(+), 30 deletions(-) diff --git a/src/plugins/oSnap/Create.vue b/src/plugins/oSnap/Create.vue index ceeba6a6..d4942df8 100644 --- a/src/plugins/oSnap/Create.vue +++ b/src/plugins/oSnap/Create.vue @@ -226,14 +226,6 @@ watch( } ); -watch( - newPluginData, - plugin => { - update(plugin); - }, - { deep: true } -); - onMounted(async () => { isLoading.value = true; safes.value = await createOsnapEnabledSafes(); diff --git a/src/plugins/oSnap/components/TransactionBuilder/SafeImport.vue b/src/plugins/oSnap/components/TransactionBuilder/SafeImport.vue index 901f7cb4..24fdb018 100644 --- a/src/plugins/oSnap/components/TransactionBuilder/SafeImport.vue +++ b/src/plugins/oSnap/components/TransactionBuilder/SafeImport.vue @@ -8,13 +8,13 @@ import { isAddress } from '@ethersproject/address'; const props = defineProps<{ transaction: SafeImportTransaction; network: Network; - setTransactionAsInvalid(): void; }>(); const emit = defineEmits<{ updateTransaction: [transaction: SafeImportTransaction]; }>(); +const transaction = ref(props.transaction); const isValueValid = ref(true); const isToValid = computed(() => { @@ -25,20 +25,23 @@ const isToValid = computed(() => { }); function updateFinalTransaction(tx: Partial) { - emit('updateTransaction', { - ...props.transaction, + const _tx = { + ...transaction.value, ...tx - }); + }; + transaction.value = _tx; + formatTransaction(); } function updateParams(paramsToUpdate: SafeImportTransaction['parameters']) { - emit('updateTransaction', { - ...props.transaction, + const tx = { + ...transaction.value, parameters: { - ...props.transaction?.parameters, + ...transaction.value?.parameters, ...paramsToUpdate } - }); + }; + updateFinalTransaction(tx); } function updateValue(newValue: string) { @@ -54,16 +57,12 @@ function updateValue(newValue: string) { } catch (error) { isValueValid.value = false; } finally { - updateTransaction(); + formatTransaction(); } } -function updateTransaction() { +function formatTransaction() { try { - if (!props.transaction) { - throw new Error('No Transaction selected'); - } - if (!isValueValid.value) { throw new Error('"Value" field is invalid'); } @@ -71,17 +70,20 @@ function updateTransaction() { if (!isToValid.value) { throw new Error('"To" field is invalid'); } - // attempt to finalize and format - const tx = createSafeImportTransaction(props.transaction); + const tx = createSafeImportTransaction(transaction.value); console.log(tx); emit('updateTransaction', tx); - } catch (error) { - console.error(error); - props.setTransactionAsInvalid(); + } catch { + emit('updateTransaction', { + ...transaction.value, + isValid: false + }); } } -onMounted(updateTransaction); +onMounted(formatTransaction); +watch(isToValid, formatTransaction); +watch(isValueValid, formatTransaction);