vault upgrades; fees; refactoring

This commit is contained in:
Tim
2024-06-17 02:39:12 -04:00
parent fd8f20c4d4
commit 104b798d4f
15 changed files with 260 additions and 86 deletions

View File

@@ -0,0 +1,72 @@
<template>
<div v-if="upgradeVersion>0">
<v-alert type="info" closable rounded="0">
Vault Upgrade Available!
<v-btn @click="showDialog=true" size="small">
Upgrade Now
</v-btn>
</v-alert>
<v-dialog v-model="showDialog">
<v-card title="Upgrade Vault" width="25em" class="mx-auto">
<v-card-text>An upgrade to version {{upgradeVersion}} is available for your approval.</v-card-text>
<v-card-text><v-icon icon="mdi-information" color="yellow"/> Any currently open orders will continue to execute normally.</v-card-text>
<v-card-actions class="d-flex justify-center">
<v-btn color='primary' @click="doUpgrade">Upgrade Vault</v-btn>
<v-btn @click="showDialog=false">Cancel</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
<v-alert v-if="upgradeResult==='SUCCESS'" type="info" closable rounded="0">
Vault Upgraded Successfully!
</v-alert>
<v-alert v-if="upgradeResult && upgradeResult!=='SUCCESS'" type="warning" closable rounded="0">
Vault upgrade failed! ({{upgradeResult}})
</v-alert>
</div>
</template>
<script setup>
import {ref} from "vue";
import {upgradeVault, detectUpgrade} from "@/blockchain/wallet.js";
import {useStore} from "@/store/store.js";
const s = useStore()
const upgradeVersion = ref(0)
const showDialog = ref(false)
const upgradeResult = ref(null)
detectUpgrade().then((version)=>{
if (version===0) {
console.log('Vault is the latest version')
}
else {
upgradeVersion.value = version
console.log(`Vault upgrade available to version ${version}`)
}
})
async function doUpgrade() {
showDialog.value = false
if (!s.upgrade) {
console.error('no upgrade available')
return
}
const vault = s.vault
if (!vault) {
console.error('no vault logged in')
return
}
upgradeVault(vault, s.upgrade).then(()=>{
upgradeVersion.value = 0
console.log('vault upgraded')
upgradeResult.value = 'SUCCESS'
}).catch((reason)=>{
upgradeResult.value = reason
})
}
</script>
<style scoped lang="scss">
</style>