From 5f0e7cbd726845007f393e3c1bed51a192825be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Rodr=C3=ADguez?= Date: Wed, 17 Jun 2026 01:35:37 +0200 Subject: [PATCH] feat(spoke): expose ownership interface on TreasurySpoke Add IOwnable to ITreasurySpoke and verify owner() is available through the interface. --- src/spoke/interfaces/ITreasurySpoke.sol | 13 ++++++++++++- .../treasury-spoke/TreasurySpoke.Upgradeable.t.sol | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/spoke/interfaces/ITreasurySpoke.sol b/src/spoke/interfaces/ITreasurySpoke.sol index 30ef548c8..1e1e3d550 100644 --- a/src/spoke/interfaces/ITreasurySpoke.sol +++ b/src/spoke/interfaces/ITreasurySpoke.sol @@ -4,7 +4,18 @@ pragma solidity ^0.8.0; /// @title ITreasurySpoke /// @author Aave Labs /// @notice Interface for the TreasurySpoke. -interface ITreasurySpoke { +interface IOwnable { + /// @notice Returns the current owner. + function owner() external view returns (address); + + /// @notice Transfers ownership to a new owner. + function transferOwnership(address newOwner) external; + + /// @notice Renounces ownership of the contract. + function renounceOwnership() external; +} + +interface ITreasurySpoke is IOwnable { /// @notice Supplies a specified amount of the underlying asset to the specified Hub. /// @dev The Spoke pulls the underlying asset from the caller, so prior approval is required. /// @param hub The address of the Hub. diff --git a/tests/contracts/treasury-spoke/TreasurySpoke.Upgradeable.t.sol b/tests/contracts/treasury-spoke/TreasurySpoke.Upgradeable.t.sol index 12dfc30e1..c2e7389c1 100644 --- a/tests/contracts/treasury-spoke/TreasurySpoke.Upgradeable.t.sol +++ b/tests/contracts/treasury-spoke/TreasurySpoke.Upgradeable.t.sol @@ -57,6 +57,7 @@ contract TreasurySpokeUpgradeableTest is Base { assertEq(_getProxyInitializedVersion(address(proxy)), revision); assertEq(Ownable2Step(address(proxy)).owner(), TREASURY_ADMIN); + assertEq(ITreasurySpoke(address(proxy)).owner(), TREASURY_ADMIN); } function test_proxy_reinitialization_fuzz(uint64 initialRevision) public {