Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions cadence/contracts/FlowYieldVaults.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,10 @@ access(all) contract FlowYieldVaults {
access(all) view fun id(): UInt64 {
return self.uniqueID.id
}
/// Returns the type identifier of the Vault this YieldVault operates on
access(all) view fun getVaultTypeIdentifier(): String {
return self.vaultType.identifier
}
/// Returns the balance of the YieldVault's vaultType available via the encapsulated Strategy
access(all) fun getYieldVaultBalance(): UFix64 {
return self._borrowStrategy().availableBalance(ofToken: self.vaultType)
Expand All @@ -260,7 +264,7 @@ access(all) contract FlowYieldVaults {
emit BurnedYieldVault(
id: self.uniqueID.id,
strategyType: self.getStrategyType(),
tokenType: self.getType().identifier,
tokenType: self.getVaultTypeIdentifier(),
remainingBalance: self.getYieldVaultBalance(),
owner: self.owner?.address
)
Expand Down Expand Up @@ -415,7 +419,7 @@ access(all) contract FlowYieldVaults {
strategyType: yieldVault.getStrategyType(),
owner: self.owner?.address,
managerUUID: self.uuid,
tokenType: yieldVault.getType().identifier
tokenType: yieldVault.getVaultTypeIdentifier()
)
self.yieldVaults[yieldVault.uniqueID.id] <-! yieldVault
}
Expand Down
11 changes: 11 additions & 0 deletions cadence/tests/yield_vault_lifecycle_test.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import "MOET"
import "YieldToken"
import "FlowYieldVaultsStrategies"
import "FlowCreditMarket"
import "FlowYieldVaults"

access(all) let protocolAccount = Test.getAccount(0x0000000000000008)
access(all) let flowYieldVaultsAccount = Test.getAccount(0x0000000000000009)
Expand Down Expand Up @@ -109,6 +110,11 @@ fun testLifecycle() {

log("✅ YieldVault created with ID: \(yieldVaultID)")

let addedToManagerEvents = Test.eventsOfType(Type<FlowYieldVaults.AddedToManager>())
Test.assert(addedToManagerEvents.length > 0, message: "Expected at least 1 FlowYieldVaults.AddedToManager event but found none")
let addedToManagerEvent = addedToManagerEvents[addedToManagerEvents.length - 1] as! FlowYieldVaults.AddedToManager
Test.assertEqual(flowTokenIdentifier, addedToManagerEvent.tokenType)

// 2. Deposit to YieldVault
depositToYieldVault(
signer: user,
Expand All @@ -134,6 +140,11 @@ fun testLifecycle() {
closeYieldVault(signer: user, id: yieldVaultID, beFailed: false)
log("✅ Closed YieldVault")

let burnedEvents = Test.eventsOfType(Type<FlowYieldVaults.BurnedYieldVault>())
Test.assert(burnedEvents.length > 0, message: "Expected at least 1 FlowYieldVaults.BurnedYieldVault event but found none")
let burnedEvent = burnedEvents[burnedEvents.length - 1] as! FlowYieldVaults.BurnedYieldVault
Test.assertEqual(flowTokenIdentifier, burnedEvent.tokenType)

let finalYieldVaultIDs = getYieldVaultIDs(address: user.address)
Test.assert(finalYieldVaultIDs != nil, message: "Expected user's YieldVault IDs to be non-nil")
Test.assertEqual(0, finalYieldVaultIDs!.length)
Expand Down
Loading