cic-contracts/doc/texinfo/locator.sol.texi

64 lines
2.5 KiB
Plaintext
Raw Normal View History

@subsection Locator
This interface supports @code{ERC721 Metadata}, in particular the @code{tokenURI(uint256)} call.
Off-chain resources in the CIC network @emph{must} be defined in terms of content addressed strings.
It @emph{must} be possible to refer to all off-chain resources directly by the content address.
Furthermore, it @emph{should} be possible to refer to a resource by a fully-qualified location on the web or an overlay network (e.g. tor).
@subsubsection ERC165 Interface identifier
@include ../../build/Locator.interface
@subsubsection Solidity interface definition
@include ../../build/contract_Locator.texi
@subsubsection Example implementation
2023-03-26 13:04:31 +02:00
@uref{git://holbrook.no/eth-event-msg.git}
@subsubsection Expressing locators in terms of numeric token id
2023-03-25 12:24:23 +01:00
Given the numeric token id @code{1234567890987654321} (@code{0x112210f4b16c1cb1} hex), and a base url @code{https://contentgateway.grassecon.net}, the result of the methods may be as follows:
@table @code
2023-03-25 12:24:23 +01:00
@item toURI(toHex(1234567890987654321))
-> @code{https://contentgateway.grassecon.net/000000000000000000000000000000000000000000000000112210f4b16c1cb1}
2023-03-25 12:24:23 +01:00
@item toURL(toHex(1234567890987654321))
-> @code{https://contentgateway.grassecon.net/000000000000000000000000000000000000000000000000112210f4b16c1cb1}
@item tokenURI(1234567890987654321)
-> @code{https://contentgateway.grassecon.net/000000000000000000000000000000000000000000000000112210f4b16c1cb1}
@end table
@subsubsection Expressing locators in terms of a digest
Given the data @code{foo}, the digest algorithm @code{sha256} and a base url @code{https://contentgateway.grassecon.net}, the result of the methods may be as follows:
@table @code
@item toURI(sha256(foo))
-> @code{"sha256:2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}
@item toURL(sha256(foo))
-> @code{"https://contentgateway.grassecon.net/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}
@item tokenURI(toUint(sha256(foo)))
-> @code{"https://contentgateway.grassecon.net/2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}
@end table
@subsubsection Locator without URL
Given the data @code{foo}, the digest algorithm @code{sha256} and no base url, the result of the methods may be as follows:
@table @code
@item toURI(sha256(foo))
-> @code{"sha256:2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}
@item toURL(sha256(foo))
-> @code{""}
@item tokenURI(toUint(sha256(foo)))
-> @code{"sha256:2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}
@end table