From 7fbad3644b82cb7fc0c688de395496a761e14a75 Mon Sep 17 00:00:00 2001 From: liobrasil Date: Mon, 2 Feb 2026 16:04:03 -0400 Subject: [PATCH 1/2] fix(FLOW-3): consistent tokenType in YieldVault events --- cadence/contracts/FlowYieldVaults.cdc | 8 ++++++-- cadence/tests/yield_vault_lifecycle_test.cdc | 11 +++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/cadence/contracts/FlowYieldVaults.cdc b/cadence/contracts/FlowYieldVaults.cdc index 3c54616e..4ee21149 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.vaultType.identifier, 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) From b5ca2c1d234918f53e9c0b1a7801fd1c7b6b2ca6 Mon Sep 17 00:00:00 2001 From: Lionel LIMOL Date: Wed, 4 Feb 2026 17:54:44 -0400 Subject: [PATCH 2/2] Apply suggestion from @jordanschalm Co-authored-by: Jordan Schalm --- cadence/contracts/FlowYieldVaults.cdc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cadence/contracts/FlowYieldVaults.cdc b/cadence/contracts/FlowYieldVaults.cdc index 4ee21149..ccf618ea 100644 --- a/cadence/contracts/FlowYieldVaults.cdc +++ b/cadence/contracts/FlowYieldVaults.cdc @@ -264,7 +264,7 @@ access(all) contract FlowYieldVaults { emit BurnedYieldVault( id: self.uniqueID.id, strategyType: self.getStrategyType(), - tokenType: self.vaultType.identifier, + tokenType: self.getVaultTypeIdentifier(), remainingBalance: self.getYieldVaultBalance(), owner: self.owner?.address )