diff --git a/cadence/contracts/FlowYieldVaults.cdc b/cadence/contracts/FlowYieldVaults.cdc index 3c54616e..ccf618ea 100644 --- a/cadence/contracts/FlowYieldVaults.cdc +++ b/cadence/contracts/FlowYieldVaults.cdc @@ -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) @@ -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 ) @@ -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 } diff --git a/cadence/tests/yield_vault_lifecycle_test.cdc b/cadence/tests/yield_vault_lifecycle_test.cdc index 58346a89..465044a5 100644 --- a/cadence/tests/yield_vault_lifecycle_test.cdc +++ b/cadence/tests/yield_vault_lifecycle_test.cdc @@ -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) @@ -109,6 +110,11 @@ fun testLifecycle() { log("✅ YieldVault created with ID: \(yieldVaultID)") + let addedToManagerEvents = Test.eventsOfType(Type()) + 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, @@ -134,6 +140,11 @@ fun testLifecycle() { closeYieldVault(signer: user, id: yieldVaultID, beFailed: false) log("✅ Closed YieldVault") + let burnedEvents = Test.eventsOfType(Type()) + 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)