[ ] Metadata entity access aspects: who sees the keys and values, who could limit the visibility of data? According to @Mingela, this is defined by the executor and one should have a look at a list of the default permissions here hyperledger/iroha@7523a69/smart_contract/executor/src/default/tokens.rs#L66
[ ] Make sure there are iroha_client_cli examples of working with Metadata
[ ] Make sure there is a Rust-based example for working with Metadata: adding keys with values of different types, reading them, removing them, transferring them between different entities
[ ] Make sure there's a WASM example for working with Metadata. Demonstrate the transfer of metadata as pointed out by @takemiyamakoto in the community chat: "The object's metadata can be transferred one by one, or in bulk via a WASM transaction."
[ ] Explain an "object"'s Metadata fields can't be accessed directly, given the question from Matias about the Store asset: "Should I use an object's metadata, but not the Store type directly if I need to store key/value type data?". He asked it after reading "There is also the Store asset type, which is used for storing key-values in object's metadata." in asset documentation and got confused.
This list may not cover some important aspects of Metadata behaviour. Please feel free to comment so it is expanded and our documentation provides enough material to work with it.
Following https://github.com/hyperledger/iroha-2-docs/issues/450, I believe we should also refresh documentation on
metadata
. I will list the details I believe are worth documenting.iroha_client_cli
examples of working with MetadataThis list may not cover some important aspects of Metadata behaviour. Please feel free to comment so it is expanded and our documentation provides enough material to work with it.