neo_solidity/cli/bytecode/bytecode_helpers/
bytes_runtime.rs

1fn emit_new_buffer(bytecode: &mut Vec<u8>) {
2    bytecode.push(0x88); // NEWBUFFER
3}
4
5fn stack_item_type_code(target: ir::ConvertTarget) -> u8 {
6    match target {
7        ir::ConvertTarget::Any => 0x00,
8        ir::ConvertTarget::Boolean => 0x20,
9        ir::ConvertTarget::Integer => 0x21,
10        ir::ConvertTarget::ByteArray => 0x28,
11        ir::ConvertTarget::Array => 0x40,
12        ir::ConvertTarget::Map => 0x48,
13    }
14}
15
16fn emit_convert(bytecode: &mut Vec<u8>, target: ir::ConvertTarget) {
17    bytecode.push(0xDB); // CONVERT
18    bytecode.push(stack_item_type_code(target));
19}
20
21fn emit_is_type(bytecode: &mut Vec<u8>, target: ir::ConvertTarget) {
22    bytecode.push(0xD9); // ISTYPE
23    bytecode.push(stack_item_type_code(target));
24}