Documentation ¶
Index ¶
Constants ¶
const SCAddressNumLeadingZeros = 8
SCAddressNumLeadingZeros is the number of zero bytes every smart contract address begins with.
const SCAddressReservedPrefixLength = SCAddressNumLeadingZeros + 2
SCAddressReservedPrefixLength is the number of zero bytes every smart contract address begins with. Its value is 10. 10 = 8 zeros for all SC addresses + 2 zeros as placeholder for the VM type.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ExprInterpreter ¶
type ExprInterpreter struct { FileResolver fr.FileResolver VMType []byte }
ExprInterpreter provides context for computing scenario values.
func (*ExprInterpreter) GetVMType ¶
func (ei *ExprInterpreter) GetVMType() []byte
GetVMType yields the configured VM type, which is used for generating SC addresses. Will yield default value [0, 0] is not explicitly configured.
func (*ExprInterpreter) InterpretString ¶
func (ei *ExprInterpreter) InterpretString(strRaw string) ([]byte, error)
InterpretString resolves a string to a byte slice according to the scenario value format. Supported rules are: - numbers: decimal, hex, binary, signed/unsigned - fixed length numbers: "u32:5", "i8:-3", etc. - ascii strings as "str:...", "“...", "”..." - "true"/"false" - "address:..." - "sc:..." (also an address) - "file:..." - "keccak256:..." - concatenation using |
func (*ExprInterpreter) InterpretSubTree ¶
func (ei *ExprInterpreter) InterpretSubTree(obj oj.OJsonObject) ([]byte, error)
InterpretSubTree attempts to produce a value based on a JSON subtree. Subtrees are composed of strings, lists and maps. The idea is to intuitively represent serialized objects. Lists are evaluated by concatenating their items' representations. Maps are evaluated by concatenating their values' representations (keys are ignored). See InterpretString on how strings are being interpreted.