Files
solace-bg-dubai/contracts/contracts/interfaces/ITreasuryWallet.sol
defiQUG c94eb595f8
Some checks failed
CI / lint-and-test (push) Has been cancelled
Initial commit: add .gitignore and README
2026-02-09 21:51:53 -08:00

69 lines
1.8 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface ITreasuryWallet {
/// @notice Emitted when a transaction is proposed
event TransactionProposed(
uint256 indexed proposalId,
address indexed to,
uint256 value,
bytes data,
address proposer
);
/// @notice Emitted when a transaction is approved
event TransactionApproved(
uint256 indexed proposalId,
address indexed approver
);
/// @notice Emitted when a transaction is executed
event TransactionExecuted(
uint256 indexed proposalId,
address indexed executor
);
/// @notice Emitted when an owner is added
event OwnerAdded(address indexed newOwner);
/// @notice Emitted when an owner is removed
event OwnerRemoved(address indexed removedOwner);
/// @notice Emitted when the threshold is changed
event ThresholdChanged(uint256 oldThreshold, uint256 newThreshold);
/// @notice Propose a new transaction
function proposeTransaction(
address to,
uint256 value,
bytes calldata data
) external returns (uint256 proposalId);
/// @notice Approve a pending transaction
function approveTransaction(uint256 proposalId) external;
/// @notice Execute a transaction that has reached threshold
function executeTransaction(uint256 proposalId) external;
/// @notice Get transaction details
function getTransaction(
uint256 proposalId
)
external
view
returns (
address to,
uint256 value,
bytes memory data,
bool executed,
uint256 approvalCount
);
/// @notice Check if an address has approved a transaction
function hasApproved(
uint256 proposalId,
address owner
) external view returns (bool);
}