EIP-6239
每个合约必须实现ISemanticSBT
接口
在有新的SBT产生的时候,需要发出
CreateRDF
事件在更新已有SBT的RDF的时候,需要发出
UpdateRDF
事件在销毁SBT的时候,需要发出
RemoveRDF
事件合约需要提供
rdfOf
方法
interface ISemanticSBT{
/**
* @dev This emits when minting a Semantic Soulbound Token.
* @param tokenId The identifier for the Semantic Soulbound Token.
* @param rdfStatements The RDF statements for the Semantic Soulbound Token. An RDF statement is the statement made by an RDF triple.
*/
event CreateRDF (
uint256 indexed tokenId,
string rdfStatements
);
/**
* @dev This emits when updating the RDF data of Semantic Soulbound Token. RDF data is a collection of RDF statements that are used to represent information about resources.
* @param tokenId The identifier for the Semantic Soulbound Token.
* @param rdfStatements The RDF statements for the semantic soulbound token. An RDF statement is the statement made by an RDF triple.
*/
event UpdateRDF (
uint256 indexed tokenId,
string rdfStatements
);
/**
* @dev This emits when burning or revoking Semantic Soulbound Token.
* @param tokenId The identifier for the Semantic Soulbound Token.
* @param rdfStatements The RDF statements for the Semantic Soulbound Token. An RDF statement is the statement made by an RDF triple.
*/
event RemoveRDF (
uint256 indexed tokenId,
string rdfStatements
);
/**
* @dev Returns the RDF statements of the Semantic Soulbound Token. An RDF statement is the statement made by an RDF triple.
* @param tokenId The identifier for the Semantic Soulbound Token.
*/
function rdfOf(uint256 tokenId) external view returns (string memory);
}
可以选择性的实现ISemanticRDFSchema
接口,用于获取描述RDF数据的Schema URI。
interface ISemanticRDFSchema{
/**
* @notice Get the URI of schema for this contract.
* @return The URI of the contract which point to a configuration profile.
*/
function schemaURI() external view returns (string memory);
}
可以选择性的实现ISemanticSBTUpdate
接口,用于更新SBT的RDF数据
interface ISemanticSBTUpdate{
/**
* @notice Update the RDF data for Semantic Soulbound Token. Implementors can assign updaters as needed, for example, the token issuer.
* @dev Emits the `UpdateRDF` event.
* @param tokenId The identifier for the Semantic Soulbound Token.
* @param rdfData RDF data is a collection of RDF statements that are used to represent information about resources.
*/
function updateRDF(uint256 tokenId, RDFData memory rdfData) external;
}
可以选择性的实现ISemanticSBTPrivacy
接口
interface ISemanticSBTPrivacy is ISemanticSBT {
/**
* @dev Returns if the `viewer` is allowed to view the `tokenId` .
* @param viewer The viewer address
* @param tokenId The token Id
*/
function isViewerOf(address viewer, uint256 tokenId) external view returns (bool);
}
Last updated