mirror of
https://github.com/luxfi/onchain-id.git
synced 2026-10-30 15:23:49 +00:00
106 lines
2.8 KiB
Solidity
106 lines
2.8 KiB
Solidity
// SPDX-License-Identifier: GPL-3.0
|
|
pragma solidity ^0.8.27;
|
|
|
|
/**
|
|
* @dev interface of the ERC735 (Claim Holder) standard as defined in the EIP.
|
|
*/
|
|
interface IERC735 {
|
|
|
|
/**
|
|
* @dev Emitted when a claim was added.
|
|
*
|
|
* Specification: MUST be triggered when a claim was successfully added.
|
|
*/
|
|
event ClaimAdded(
|
|
bytes32 indexed claimId,
|
|
uint256 indexed topic,
|
|
uint256 scheme,
|
|
address indexed issuer,
|
|
bytes signature,
|
|
bytes data,
|
|
string uri
|
|
);
|
|
|
|
/**
|
|
* @dev Emitted when a claim was removed.
|
|
*
|
|
* Specification: MUST be triggered when removeClaim was successfully called.
|
|
*/
|
|
event ClaimRemoved(
|
|
bytes32 indexed claimId,
|
|
uint256 indexed topic,
|
|
uint256 scheme,
|
|
address indexed issuer,
|
|
bytes signature,
|
|
bytes data,
|
|
string uri
|
|
);
|
|
|
|
/**
|
|
* @dev Emitted when a claim was changed.
|
|
*
|
|
* Specification: MUST be triggered when addClaim was successfully called on an existing claimId.
|
|
*/
|
|
event ClaimChanged(
|
|
bytes32 indexed claimId,
|
|
uint256 indexed topic,
|
|
uint256 scheme,
|
|
address indexed issuer,
|
|
bytes signature,
|
|
bytes data,
|
|
string uri
|
|
);
|
|
|
|
/**
|
|
* @dev Add or update a claim.
|
|
*
|
|
* Triggers Event: `ClaimAdded`, `ClaimChanged`
|
|
*
|
|
* Specification: Add or update a claim from an issuer.
|
|
*
|
|
* _signature is a signed message of the following structure:
|
|
* `keccak256(abi.encode(address identityHolder_address, uint256 topic, bytes data))`.
|
|
* Claim IDs are generated using `keccak256(abi.encode(address issuer_address + uint256 topic))`.
|
|
*/
|
|
function addClaim(
|
|
uint256 _topic,
|
|
uint256 _scheme,
|
|
address issuer,
|
|
bytes calldata _signature,
|
|
bytes calldata _data,
|
|
string calldata _uri
|
|
) external returns (bytes32 claimRequestId);
|
|
|
|
/**
|
|
* @dev Removes a claim.
|
|
*
|
|
* Triggers Event: `ClaimRemoved`
|
|
*
|
|
* Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.
|
|
*/
|
|
function removeClaim(bytes32 _claimId) external returns (bool success);
|
|
|
|
/**
|
|
* @dev Get a claim by its ID.
|
|
*
|
|
* Claim IDs are generated using `keccak256(abi.encode(address issuer_address, uint256 topic))`.
|
|
*/
|
|
function getClaim(bytes32 _claimId)
|
|
external
|
|
view
|
|
returns (
|
|
uint256 topic,
|
|
uint256 scheme,
|
|
address issuer,
|
|
bytes memory signature,
|
|
bytes memory data,
|
|
string memory uri
|
|
);
|
|
|
|
/**
|
|
* @dev Returns an array of claim IDs by topic.
|
|
*/
|
|
function getClaimIdsByTopic(uint256 _topic) external view returns (bytes32[] memory claimIds);
|
|
|
|
}
|