Open rockfridrich opened 6 years ago
@rockfridrich could you elaborate on what does this mean?
The data of a variable or array element is not interleaved with other data and it is relocatable, i.e. it only uses relative “addresses”
For future reference:
update: this is not currently possible.struct
s are encoded as tuples.
enum
is not a part of ABI as of now and is converted to the minimally needed capacity uint
@bashalex specification on tuple (X
) encoding says:
enc(X) = head(X(1)) ... head(X(k-1)) tail(X(0)) ... tail(X(k-1))
There is tail(X(0))
but there is no head(X(0))
. Where does the head(X(0))
go? Should you drop it or is it just a typo in the specification?
@bashalex there is a similar issue with specification on variable-length array vs fixed-length array.
For fixed-length it is:
enc(X) = enc((X[0], ..., X[k-1]))
and for variable-length it is:
enc(X) = enc(k) enc([X[1], ..., X[k]])
is it supposed to be X[1]
to X[k]
?
As of now the following constraints also apply: