mocked-chain-id: func() -> chain-id
mocked-application-id: func() -> application-id
mocked-application-parameters: func() -> list<u8>
mocked-read-chain-balance: func() -> amount
mocked-read-owner-balance: func() -> amount
mocked-read-system-timestamp: func() -> timestamp
mocked-log: func(message: string, level: log-level)
enum log-level {
trace,
debug,
info,
warn,
error,
}
mocked-read-multi-values-bytes: func(keys: list<list<u8>>) -> list<option<list<u8>>>
mocked-read-value-bytes: func(key: list<u8>) -> option<list<u8>>
mocked-find-keys: func(prefix: list<u8>) -> list<list<u8>>
mocked-find-key-values: func(prefix: list<u8>) -> list<tuple<list<u8>,list<u8>>>
mocked-write-batch: func(operations: list<write-operation>)
mocked-try-query-application: func(application: application-id, query: list<u8>) -> list<u8>
variant write-operation {
delete(list<u8>),
deleteprefix(list<u8>),
put(tuple<list<u8>,list<u8>>),
}
record application-id {
bytecode-id: bytecode-id,
creation: message-id,
}
type bytecode-id = message-id
record message-id {
chain-id: chain-id,
height: block-height,
index: u32,
}
type chain-id = crypto-hash
type block-height = u64
type timestamp = u64
record crypto-hash {
part1: u64,
part2: u64,
part3: u64,
part4: u64,
}
record amount {
lower-half: u64,
upper-half: u64,
}