26 lines
1.1 KiB
Solidity
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);
|
|
}
|