From 9b0d4e97c41942582830f11756d64fb3a24cae4d Mon Sep 17 00:00:00 2001 From: Ysrbolles Date: Wed, 25 Sep 2024 05:27:09 +0100 Subject: [PATCH 1/2] Refactor DepositRewardCard and TreasuryRewardCard components --- .../wallet/earn/DepositRewardCard.vue | 9 +++++++++ .../wallet/earn/ModalClaimDepositReward.vue | 1 + .../wallet/earn/TreasuryRewardCard.vue | 19 +++++++++++++------ src/components/wallet/earn/UserRewards.vue | 9 +++++++++ src/store/modules/platform/types.ts | 1 + 5 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/components/wallet/earn/DepositRewardCard.vue b/src/components/wallet/earn/DepositRewardCard.vue index 2cdfafb98..22b9a4127 100644 --- a/src/components/wallet/earn/DepositRewardCard.vue +++ b/src/components/wallet/earn/DepositRewardCard.vue @@ -89,12 +89,14 @@ :amount="reward.amountToClaim" :rewardOwner="reward.deposit.rewardOwner" :canExecuteMultisigTx="canExecuteMultisigTx" + @updatePendingDepositClaim="updatePendingDepositClaim" /> @@ -213,6 +215,7 @@ export default class DepositRewardCard extends Vue { message: this.$t('transfer.multisig.transaction_aborted'), type: 'success', }) + this.updatePendingDepositClaim(false) } } catch (err) { console.log(err) @@ -273,6 +276,8 @@ export default class DepositRewardCard extends Vue { } signatureStatus(depositTxID: string): number { + const depositId = this.signedDepositID() + if (depositId === depositTxID) this.updatePendingDepositClaim(true) if (!this.getPendingMultisigTx(depositTxID)?.tx) return -1 else if (!this.canExecuteMultisigTx(depositTxID)) return 1 else if (this.canExecuteMultisigTx(depositTxID)) return 2 @@ -280,6 +285,10 @@ export default class DepositRewardCard extends Vue { return -1 } + updatePendingDepositClaim(status: boolean) { + this.$emit('updatePendingDepositClaim', status) + } + canExecuteMultisigTx(depositTxID: string): boolean { let signers = 0 let threshold = this.getPendingMultisigTx(depositTxID)?.tx?.threshold diff --git a/src/components/wallet/earn/ModalClaimDepositReward.vue b/src/components/wallet/earn/ModalClaimDepositReward.vue index 151d53bae..adb643c8c 100644 --- a/src/components/wallet/earn/ModalClaimDepositReward.vue +++ b/src/components/wallet/earn/ModalClaimDepositReward.vue @@ -222,6 +222,7 @@ export default class ModalClaimDepositReward extends Vue { this.issueMultisigTx() this.updateBalance() } + this.$emit('updatePendingDepositClaim', false) } async issueMultisigTx() { diff --git a/src/components/wallet/earn/TreasuryRewardCard.vue b/src/components/wallet/earn/TreasuryRewardCard.vue index c2d5fce20..a9a632f27 100644 --- a/src/components/wallet/earn/TreasuryRewardCard.vue +++ b/src/components/wallet/earn/TreasuryRewardCard.vue @@ -80,7 +80,7 @@ import { Component, Prop, Vue, Watch } from 'vue-property-decorator' import ModalClaimReward from '@/components/modals/ClaimRewardModal.vue' import { cleanAvaxBN } from '@/helpers/helper' -import { PlatformRewardDeposit } from '@/store/modules/platform/types' +import { PlatformRewardTreasury } from '@/store/modules/platform/types' import { bintools } from '@/AVA' import Alert from '@/components/Alert.vue' @@ -92,7 +92,6 @@ import { WalletType } from '@/js/wallets/types' import { MultisigTx as SignavaultTx } from '@/store/modules/signavault/types' import { BN, Buffer } from '@c4tplatform/caminojs/dist' import { ClaimTx, UnsignedTx } from '@c4tplatform/caminojs/dist/apis/platformvm' -import { DepositOffer } from '@c4tplatform/caminojs/dist/apis/platformvm/interfaces' import { ModelMultisigTxOwner } from '@c4tplatform/signavaultjs' import ModalAbortSigning from './ModalAbortSigning.vue' import ModalClaimDepositReward from './ModalClaimDepositReward.vue' @@ -116,7 +115,8 @@ export default class TreasuryRewardCard extends Vue { helpers = this.globalHelper() signedclaimedAmount: BN = new BN(0) // signedDepositID: string = '' - @Prop() reward!: PlatformRewardDeposit + @Prop() reward!: PlatformRewardTreasury + @Prop() pendingDepositClaimStatus!: boolean $refs!: { // modal_claim_reward: ModalClaimReward @@ -239,10 +239,17 @@ export default class TreasuryRewardCard extends Vue { return this.pendingSendMultisigTX?.tx?.owners ?? [] } + getPendingMultisigTx(): SignavaultTx | undefined { + const tx = this.pendingSendMultisigTX + if (!tx) return undefined + + return tx + } + signatureStatus(): number { - if (!this.pendingSendMultisigTX?.tx) return -1 - else if (!this.canExecuteMultisigTx()) return 1 - else if (this.canExecuteMultisigTx()) return 2 + if (!this.getPendingMultisigTx()?.tx && !this.pendingDepositClaimStatus) return -1 + else if (!this.canExecuteMultisigTx() && !this.pendingDepositClaimStatus) return 1 + else if (this.canExecuteMultisigTx() && !this.pendingDepositClaimStatus) return 2 return -1 } diff --git a/src/components/wallet/earn/UserRewards.vue b/src/components/wallet/earn/UserRewards.vue index e5a115495..101b175fd 100644 --- a/src/components/wallet/earn/UserRewards.vue +++ b/src/components/wallet/earn/UserRewards.vue @@ -3,7 +3,9 @@
@@ -31,10 +34,16 @@ import TreasuryRewardCard from './TreasuryRewardCard.vue' }, }) export default class UserRewards extends Vue { + pendingDepositClaimStatus = false + mounted() { this.updateExpiredDepositRewards() } + updatePendingDepositClaim(status: boolean) { + this.pendingDepositClaimStatus = status + } + updateExpiredDepositRewards() { const { depositRewards } = this.$store.state.Platform.rewards depositRewards.forEach((reward: any) => { diff --git a/src/store/modules/platform/types.ts b/src/store/modules/platform/types.ts index f03518997..114f05290 100644 --- a/src/store/modules/platform/types.ts +++ b/src/store/modules/platform/types.ts @@ -116,6 +116,7 @@ export interface PlatformRewardDeposit { deposit: APIDeposit } + export interface PlatformRewards { treasuryRewards: PlatformRewardTreasury[] depositRewards: PlatformRewardDeposit[] From 9045c9d134c0a7d373c1471cba6c46814e075744 Mon Sep 17 00:00:00 2001 From: Ysrbolles Date: Wed, 25 Sep 2024 05:35:03 +0100 Subject: [PATCH 2/2] Fix format issues --- src/components/wallet/earn/DepositRewardCard.vue | 1 - src/store/modules/platform/types.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/src/components/wallet/earn/DepositRewardCard.vue b/src/components/wallet/earn/DepositRewardCard.vue index 22b9a4127..4f7d8fc9b 100644 --- a/src/components/wallet/earn/DepositRewardCard.vue +++ b/src/components/wallet/earn/DepositRewardCard.vue @@ -96,7 +96,6 @@ :title="$t('earn.rewards.abort_modal.title')" :modalText="$t('earn.rewards.abort_modal.message')" @cancelTx="cancelMultisigTx" - /> diff --git a/src/store/modules/platform/types.ts b/src/store/modules/platform/types.ts index 114f05290..f03518997 100644 --- a/src/store/modules/platform/types.ts +++ b/src/store/modules/platform/types.ts @@ -116,7 +116,6 @@ export interface PlatformRewardDeposit { deposit: APIDeposit } - export interface PlatformRewards { treasuryRewards: PlatformRewardTreasury[] depositRewards: PlatformRewardDeposit[]