Files
smom-dbis-138/contracts/emoney/interfaces/IAccountWalletRegistry.sol
2026-03-02 12:14:09 -08:00

26 lines
1.1 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
/**
* @title IAccountWalletRegistry
* @notice Registry linking account refs to wallet refs
*/
struct WalletLink {
bytes32 walletRefId;
uint64 linkedAt;
bool active;
bytes32 provider;
}
interface IAccountWalletRegistry {
event AccountWalletLinked(bytes32 indexed accountRefId, bytes32 indexed walletRefId, bytes32 provider, uint64 linkedAt);
event AccountWalletUnlinked(bytes32 indexed accountRefId, bytes32 indexed walletRefId);
function linkAccountToWallet(bytes32 accountRefId, bytes32 walletRefId, bytes32 provider) external;
function unlinkAccountFromWallet(bytes32 accountRefId, bytes32 walletRefId) external;
function getWallets(bytes32 accountRefId) external view returns (WalletLink[] memory);
function getAccounts(bytes32 walletRefId) external view returns (bytes32[] memory);
function isLinked(bytes32 accountRefId, bytes32 walletRefId) external view returns (bool);
function isActive(bytes32 accountRefId, bytes32 walletRefId) external view returns (bool);
}