Module diem_types::access_path
source · Expand description
Suppose we have the following data structure in a smart contract:
struct B { Map<String, String> mymap; }
struct A { B b; int my_int; }
struct C {
List<int>
mylist;
}
A a; C c;
and the data belongs to Alice. Then an access to a.b.mymap
would be translated to an access
to an entry in key-value store whose key is <Alice>/a/b/mymap
. In the same way, the access to
c.mylist
would need to query <Alice>/c/mylist
.
So an account stores its data in a directory structure, for example:
If someone needs to query the map above and find out what value associated with “Bob” is,
address
will be set to Alice and path
will be set to “/a/b/mymap/Bob”.
On the other hand, if you want to query only address
will be set to Alice and
path
will be set to “/a” and use the get_prefix()
method from statedb