handle dsa cast on receipt

This commit is contained in:
Georges KABBOUCHI 2021-08-23 22:57:11 +03:00
parent 27fe5f6e94
commit 77801cb1db
19 changed files with 180 additions and 50 deletions

View File

@ -98,8 +98,10 @@ export default defineComponent({
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, plus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { status, displayPositions, liquidation, maxLiquidation, liquidationPrice, liquidationMaxPrice, annualPercentageRateTypes } = useAaveV2Position({
const { showPendingTransaction, showWarning, showConfirmedTransaction } = useNotification()
const { fetchBalances } = useBalances();
const { status, displayPositions, liquidation, maxLiquidation, liquidationPrice, liquidationMaxPrice, annualPercentageRateTypes, refreshPosition } = useAaveV2Position({
overridePosition: (position) => {
if (rootTokenKey.value !== position.key) return position
@ -176,6 +178,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await refreshPosition();
}
})
showPendingTransaction(txHash)

View File

@ -122,8 +122,8 @@ export default defineComponent({
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, plus, max, minus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { status, displayPositions, liquidation, maxLiquidation, liquidationPrice, liquidationMaxPrice, annualPercentageRateTypes } = useAaveV2Position({
const { showPendingTransaction, showWarning, showConfirmedTransaction } = useNotification()
const { status, displayPositions, liquidation, maxLiquidation, liquidationPrice, liquidationMaxPrice, annualPercentageRateTypes, refreshPosition } = useAaveV2Position({
overridePosition: (position) => {
if (rootTokenKey.value !== position.key) return position
@ -213,6 +213,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await refreshPosition();
}
})
showPendingTransaction(txHash)

View File

@ -103,9 +103,11 @@ export default defineComponent({
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, plus, max, minus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const { fetchBalances } = useBalances();
const originalBalance = ref('0')
const { stats, status, displayPositions, maxLiquidation, liquidationPrice, liquidationMaxPrice } = useAaveV2Position({
const { stats, status, displayPositions, maxLiquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useAaveV2Position({
overridePosition: (position) => {
if (rootTokenKey.value !== position.key) return position
@ -182,6 +184,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await refreshPosition();
}
})
showPendingTransaction(txHash)

View File

@ -75,6 +75,7 @@ import { useSidebar } from '~/composables/useSidebar'
import { useCompoundPosition } from '~/composables/protocols/useCompoundPosition'
import ctokens from '~/constant/ctokens'
import tokenIdMapping from '~/constant/tokenIdMapping'
import { useBalances } from '~/composables/useBalances'
export default defineComponent({
components: { InputNumeric, ToggleButton, ButtonCTA, Button },
@ -86,17 +87,18 @@ export default defineComponent({
const { networkName, account } = useWeb3()
const { dsa } = useDSA()
const { getTokenByKey, valInt } = useToken()
const { fetchBalances } = useBalances()
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, div, plus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const tokenId = computed(() => props.tokenId)
const tokenKey = computed(() => tokenIdMapping.idToToken[tokenId.value])
const rootTokenKey = computed(() => ctokens[networkName.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
const { stats, status: initialStatus, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice } = useCompoundPosition({
const { stats, status: initialStatus, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useCompoundPosition({
overridePosition: (position) => {
if (tokenId.value !== position.cTokenId) return position
@ -158,6 +160,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await refreshPosition();
}
})
showPendingTransaction(txHash)

View File

@ -115,14 +115,14 @@ export default defineComponent({
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gte, plus, max, minus, min } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning} = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const tokenId = computed(() => props.tokenId)
const tokenKey = computed(() => tokenIdMapping.idToToken[tokenId.value])
const rootTokenKey = computed(() => ctokens[networkName.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
const { status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice } = useCompoundPosition({
const { status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useCompoundPosition({
overridePosition: (position) => {
if (tokenId.value !== position.cTokenId) return position
@ -188,10 +188,16 @@ export default defineComponent({
args: [tokenId.value, amount, 0, 0],
})
try {
try {
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await refreshPosition();
}
})
showPendingTransaction(txHash)

View File

@ -103,14 +103,14 @@ export default defineComponent({
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, plus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const tokenId = computed(() => props.tokenId)
const tokenKey = computed(() => tokenIdMapping.idToToken[tokenId.value])
const rootTokenKey = computed(() => ctokens[networkName.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
const { status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice } = useCompoundPosition({
const { status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useCompoundPosition({
overridePosition: (position) => {
if (tokenId.value !== position.cTokenId) return position
@ -173,6 +173,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await refreshPosition();
}
})
showPendingTransaction(txHash)

View File

@ -89,6 +89,7 @@ import { useSidebar } from '~/composables/useSidebar'
import tokenIdMapping from '~/constant/tokenIdMapping'
import ctokens from '~/constant/ctokens'
import { useCompoundPosition } from '~/composables/protocols/useCompoundPosition'
import { useBalances } from '~/composables/useBalances'
export default defineComponent({
components: { InputNumeric, ToggleButton, ButtonCTA, Button },
@ -99,11 +100,12 @@ export default defineComponent({
const { close } = useSidebar()
const { networkName, account } = useWeb3()
const { dsa } = useDSA()
const { fetchBalances } = useBalances()
const { getTokenByKey, valInt } = useToken()
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, plus, max, minus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const originalBalance = ref('0')
const tokenId = computed(() => props.tokenId)
const tokenKey = computed(() => tokenIdMapping.idToToken[tokenId.value])
@ -111,7 +113,7 @@ export default defineComponent({
const rootTokenKey = computed(() => ctokens[networkName.value].rootTokens.includes(tokenKey.value) ? tokenKey.value : 'eth')
const { stats, status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice } = useCompoundPosition({
const { stats, status, position, displayPositions, liquidation, liquidationPrice, liquidationMaxPrice, refreshPosition } = useCompoundPosition({
overridePosition: (position) => {
if (tokenId.value !== position.cTokenId) return position
originalBalance.value = position.supply
@ -176,6 +178,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await refreshPosition();
}
})
showPendingTransaction(txHash)

View File

@ -115,9 +115,9 @@ export default defineComponent({
const { formatPercent, formatNumber, formatDecimal, formatUsdMax, formatUsd } = useFormatting()
const { plus, times, isZero, max, min } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { getBalanceByKey } = useBalances()
const { getBalanceByKey, fetchBalances } = useBalances()
const { valInt } = useToken()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const { dsa } = useDSA()
const amount = ref('')
@ -134,6 +134,7 @@ export default defineComponent({
maxFeePercentageInWei,
getTrovePositionHints,
borrowFee,
fetchPosition,
} = useLiquityPosition()
const balance = computed(() => getBalanceByKey(debtToken.value.key))
@ -184,6 +185,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)

View File

@ -126,9 +126,9 @@ export default defineComponent({
const { formatPercent, formatNumber, formatDecimal, formatUsdMax, formatUsd } = useFormatting()
const { plus, times, isZero } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { getBalanceByKey } = useBalances()
const { getBalanceByKey, fetchBalances } = useBalances()
const { valInt } = useToken()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const { dsa } = useDSA()
const {
@ -140,6 +140,7 @@ export default defineComponent({
borrowFee,
maxFeePercentageInWei,
getTrovePositionHints,
fetchPosition,
} = useLiquityPosition()
const collateralAmount = ref('')
@ -214,6 +215,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)

View File

@ -7,7 +7,9 @@
<template #icon
><IconCurrency :currency="debtToken.key" class="w-16 h-16" noHeight
/></template>
<template #value>{{ formatDecimal(changedDebt) }} {{ debtToken.symbol }}</template>
<template #value
>{{ formatDecimal(changedDebt) }} {{ debtToken.symbol }}</template
>
</SidebarSectionValueWithIcon>
<SidebarSectionValueWithIcon class="" label="Token Balance" center>
@ -15,7 +17,9 @@
><IconCurrency :currency="debtToken.key" class="w-16 h-16" noHeight
/></template>
<template #value>{{ formatDecimal(changedBalance) }} {{ debtToken.symbol }}</template>
<template #value
>{{ formatDecimal(changedBalance) }} {{ debtToken.symbol }}</template
>
</SidebarSectionValueWithIcon>
</div>
@ -107,11 +111,11 @@ export default defineComponent({
const { networkName, account } = useWeb3()
const { dsa } = useDSA()
const { valInt } = useToken()
const { getBalanceByKey } = useBalances()
const { getBalanceByKey, fetchBalances } = useBalances()
const { formatDecimal, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gte, plus, max, minus, min } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const amount = ref('')
const amountParsed = computed(() => parseSafeFloat(amount.value))
@ -125,6 +129,7 @@ export default defineComponent({
debtToken,
collateralToken,
getTrovePositionHints,
fetchPosition,
} = useLiquityPosition()
const balance = computed(() => getBalanceByKey(debtToken.value.key))
@ -175,6 +180,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)

View File

@ -99,11 +99,11 @@ export default defineComponent({
const { account } = useWeb3()
const { dsa } = useDSA()
const { valInt } = useToken()
const { getBalanceByKey } = useBalances()
const { getBalanceByKey, fetchBalances } = useBalances()
const { formatDecimal, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, plus, max, minus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const amount = ref('')
const amountParsed = computed(() => parseSafeFloat(amount.value))
@ -117,6 +117,7 @@ export default defineComponent({
liquidation,
liquidationMaxPrice,
getTrovePositionHints,
fetchPosition,
} = useLiquityPosition()
const changedCollateral = computed(() => max(plus(collateral.value, amountParsed.value), '0').toFixed())
@ -147,7 +148,7 @@ export default defineComponent({
pending.value = true
try {
const inputAmountInWei = valInt(amountParsed.value, collateralToken.value.decimals)
console.log(inputAmountInWei);
const totalDepositAmountInWei = plus(inputAmountInWei, collateralInWei.value).toFixed()
const { upperHint, lowerHint } = await getTrovePositionHints(totalDepositAmountInWei, debtInWei.value)
@ -166,6 +167,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)

View File

@ -104,6 +104,7 @@ import { useNotification } from '~/composables/useNotification'
import Button from '~/components/Button.vue'
import { useSidebar } from '~/composables/useSidebar'
import { useLiquityPosition } from '~/composables/protocols/useLiquityPosition'
import { useBalances } from '~/composables/useBalances'
export default defineComponent({
components: { InputNumeric, ToggleButton, ButtonCTA, Button },
@ -112,7 +113,8 @@ export default defineComponent({
const { account } = useWeb3()
const { dsa } = useDSA()
const { valInt } = useToken()
const { showPendingTransaction, showWarning } = useNotification()
const { fetchBalances } = useBalances()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const { formatUsd, formatUsdMax, formatDecimal, formatNumber } = useFormatting()
const { parseSafeFloat } = useParsing()
const { isZero, minus, max, plus } = useBigNumber()
@ -129,6 +131,7 @@ export default defineComponent({
liquidation,
liquidationMaxPrice,
getTrovePositionHints,
fetchPosition,
} = useLiquityPosition()
const changedCollateral = computed(() => max(minus(collateral.value, amountParsed.value), '0').toFixed())
@ -159,7 +162,7 @@ export default defineComponent({
async function cast() {
pending.value = true
const inputAmountInWei = valInt(amountParsed.value,collateralToken.value.decimals)
const inputAmountInWei = valInt(amountParsed.value, collateralToken.value.decimals)
const totalDepositAmountInWei = minus(collateralInWei.value, inputAmountInWei).toFixed()
const { upperHint, lowerHint } = await getTrovePositionHints(totalDepositAmountInWei, debtInWei.value)
@ -167,7 +170,7 @@ export default defineComponent({
const setId = 0
const spells = dsa.value.Spell()
spells.add({
connector: 'LIQUITY-A',
method: 'withdraw',
@ -178,6 +181,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)

View File

@ -78,6 +78,7 @@ import Button from '~/components/Button.vue'
import { useSidebar } from '~/composables/useSidebar'
import ctokens from '~/constant/ctokens'
import { useMakerdaoPosition } from '~/composables/protocols/useMakerdaoPosition'
import { useBalances } from '~/composables/useBalances'
export default defineComponent({
components: { InputNumeric, ToggleButton, ButtonCTA, Button },
@ -89,16 +90,17 @@ export default defineComponent({
const { networkName, account } = useWeb3()
const { dsa } = useDSA()
const { getTokenByKey, valInt } = useToken()
const { fetchBalances } = useBalances()
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, div, plus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction , showWarning } = useNotification()
const amount = ref('')
const amountParsed = computed(() => parseSafeFloat(amount.value))
const { debt, collateral, liquidation, liquidationMaxPrice, vault, vaultId, symbol: tokenSymbol } = useMakerdaoPosition({
const { debt, collateral, liquidation, liquidationMaxPrice, vault, vaultId, symbol: tokenSymbol, fetchPosition } = useMakerdaoPosition({
overridePosition: (position) => {
return position;
},
@ -148,10 +150,16 @@ export default defineComponent({
args: [vaultId.value, amount, 0, 0],
})
try {
try {
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)

View File

@ -15,9 +15,7 @@
><IconCurrency :currency="daiTokenKey" class="w-20 h-20" noHeight
/></template>
<template #value
>{{ formatNumber(balance) }} {{ symbol }}</template
>
<template #value>{{ formatNumber(balance) }} {{ symbol }}</template>
</SidebarSectionValueWithIcon>
</div>
@ -54,7 +52,10 @@
:status="status"
/>
<SidebarSectionValueWithIcon class="mt-8" :label="`Liquidation Price (${tokenSymbol})`">
<SidebarSectionValueWithIcon
class="mt-8"
:label="`Liquidation Price (${tokenSymbol})`"
>
<template #value>
{{ formatUsdMax(liquidationPrice, liquidationMaxPrice) }}
<span class="text-primary-gray"
@ -113,9 +114,9 @@ export default defineComponent({
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gte, plus, max, minus, min } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const { debt, collateral, liquidation, liquidationMaxPrice, vaultId, symbol: tokenSymbol } = useMakerdaoPosition()
const { debt, collateral, liquidation, liquidationMaxPrice, vaultId, symbol: tokenSymbol, fetchPosition, minDebt } = useMakerdaoPosition()
const amount = ref('')
const amountParsed = computed(() => parseSafeFloat(amount.value))
@ -129,7 +130,7 @@ export default defineComponent({
const balance = computed(() => getBalanceByKey(tokenKey.value))
const balanceRaw = computed(() => getBalanceRawByKey(tokenKey.value))
const changedDebt = computed(() => plus(debt.value, amountParsed.value).toFixed())
const changedDebt = computed(() => max(minus(debt.value, amountParsed.value), '0').toFixed())
const { liquidationPrice, status } = useMakerdaoPosition(collateral, changedDebt)
const maxBalance = computed(() => min(balance.value, debt.value).toFixed())
@ -156,7 +157,7 @@ export default defineComponent({
const amount = isMaxAmount.value
? gte(balance.value, balance.value)
? $dsa().maxValue
? dsa.value.maxValue
: balanceRaw.value
: valInt(amountParsed.value, decimals.value)
@ -172,10 +173,17 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)
} catch (error) {
console.log(error);
showWarning(error.message)
}
@ -205,6 +213,7 @@ export default defineComponent({
pending,
toggle,
tokenSymbol,
minDebt,
}
},
})

View File

@ -94,17 +94,17 @@ export default defineComponent({
const { account } = useWeb3()
const { dsa } = useDSA()
const { valInt } = useToken()
const { getBalanceByKey } = useBalances()
const { getBalanceByKey, fetchBalances } = useBalances()
const { formatUsdMax, formatUsd, formatDecimal } = useFormatting()
const { plus, isZero } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const amount = ref('')
const amountParsed = computed(() => parseSafeFloat(amount.value))
const { tokenKey, token, debt, collateral, liquidation, liquidationMaxPrice, isNewVault, vaultId, vaultType } = useMakerdaoPosition()
const { tokenKey, token, debt, collateral, liquidation, liquidationMaxPrice, isNewVault, vaultId, vaultType, fetchPosition} = useMakerdaoPosition()
const symbol = computed(() => token.value?.symbol)
const decimals = computed(() => token.value?.decimals)
@ -161,6 +161,12 @@ export default defineComponent({
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)

View File

@ -85,6 +85,7 @@ import { useNotification } from '~/composables/useNotification'
import Button from '~/components/Button.vue'
import { useSidebar } from '~/composables/useSidebar'
import { useMakerdaoPosition } from '~/composables/protocols/useMakerdaoPosition'
import { useBalances } from '~/composables/useBalances'
export default defineComponent({
components: { InputNumeric, ToggleButton, ButtonCTA, Button },
@ -93,15 +94,16 @@ export default defineComponent({
const { account } = useWeb3()
const { dsa } = useDSA()
const { valInt } = useToken()
const { fetchBalances } = useBalances()
const { formatNumber, formatUsdMax, formatUsd } = useFormatting()
const { isZero, gt, plus, max, minus } = useBigNumber()
const { parseSafeFloat } = useParsing()
const { showPendingTransaction, showWarning } = useNotification()
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification()
const amount = ref('')
const amountParsed = computed(() => parseSafeFloat(amount.value))
const { tokenKey, token, debt, collateral, liquidation, liquidationMaxPrice, vaultId } = useMakerdaoPosition()
const { tokenKey, token, debt, collateral, liquidation, liquidationMaxPrice, vaultId, fetchPosition } = useMakerdaoPosition()
const symbol = computed(() => token.value?.symbol)
const decimals = computed(() => token.value?.decimals)
@ -142,10 +144,16 @@ export default defineComponent({
args: [vaultId.value, amount, 0, 0],
})
try {
try {
const txHash = await dsa.value.cast({
spells,
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
await fetchPosition();
}
})
showPendingTransaction(txHash)

View File

@ -199,6 +199,7 @@ export function useLiquityPosition(
);
return {
fetchPosition,
troveOpened,
netValue,
borrowFee,

View File

@ -109,7 +109,7 @@ export function useMakerdaoPosition(
});
const debt = computed(() => ensureValue(vault.value.debt).toFixed());
const minDebt = computed(() => vaultTypes.value[0]?.totalFloor || "5000");
const minDebt = computed(() => vaultTypes.value[0]?.totalFloor.toString() || "5000");
const debtCeilingReached = computed(() =>
vaultTypes.value?.some(v =>
gt(v.overallTotalDebt, v.overallTotalDebtCeiling)

View File

@ -58,6 +58,7 @@ import { useDSA } from "~/composables/useDSA";
import { use1InchSwap } from "~/composables/swap/use1InchSwap";
import { useWeb3 } from "~/composables/useWeb3";
import { useNotification } from "~/composables/useNotification";
import { useBalances } from "~/composables/useBalances";
export default defineComponent({
components: {
@ -71,7 +72,8 @@ export default defineComponent({
const { dsa } = useDSA();
const { getSellSpell } = use1InchSwap();
const { account } = useWeb3();
const { showPendingTransaction, showWarning } = useNotification();
const { fetchBalances } = useBalances();
const { showPendingTransaction, showConfirmedTransaction, showWarning } = useNotification();
const { valInt } = useToken();
const sellToken = ref();
const buyToken = ref();
@ -96,7 +98,7 @@ export default defineComponent({
getSellSpell({
buyAddr: buyToken.value.address,
sellAddr: sellToken.value.address,
sellAmt: valInt(sellToken.value.amount, sellToken.value.decimals),
sellAmt: valInt(sellToken.value.amount, sellToken.value.decimals),
unitAmt: caculateUnitAmt(),
calldata: result.tx.data,
setId: 0
@ -106,7 +108,12 @@ export default defineComponent({
try {
const txHash = await dsa.value.cast({
spells,
from: account.value
from: account.value,
onReceipt: async receipt => {
showConfirmedTransaction(receipt.transactionHash);
await fetchBalances(true);
}
});
showPendingTransaction(txHash);