Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

bcs

Module0x0000…0002
Move path
0x0000…0002::bcs
Functions
3030 public, 0 entry
Structs
1
Friend modules
None
bcs

Bytecode1196 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v7
module 2.bcs {
use 0000000000000000000000000000000000000000000000000000000000000001::bcs as 1bcs;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::address;
 
struct BCS has copy, drop, store {
bytes: vector<u8>
}
 
public to_bytes<Ty0>(Arg0: &Ty0): vector<u8> {
B0:
0MoveLoc[0](Arg0: &Ty0)
1Call 1bcs::to_bytes<Ty0>(&Ty0): vector<u8>
2Ret
}
 
public new(Arg0: vector<u8>): BCS {
B0:
0MutBorrowLoc[0](Arg0: vector<u8>)
1Call vector::reverse<u8>(&mut vector<u8>)
2MoveLoc[0](Arg0: vector<u8>)
3Pack[0](BCS)
4Ret
}
 
public into_remainder_bytes(Arg0: BCS): vector<u8> {
L1: loc0: vector<u8>
B0:
0MoveLoc[0](Arg0: BCS)
1Unpack[0](BCS)
2StLoc[1](loc0: vector<u8>)
3MutBorrowLoc[1](loc0: vector<u8>)
4Call vector::reverse<u8>(&mut vector<u8>)
5MoveLoc[1](loc0: vector<u8>)
6Ret
}
 
public peel_address(Arg0: &mut BCS): address {
L1: loc0: u64
L2: loc1: u8
L3: loc2: &mut vector<u8>
L4: loc3: u64
L5: loc4: u64
L6: loc5: u64
L7: loc6: vector<u8>
B0:
0CopyLoc[0](Arg0: &mut BCS)
1ImmBorrowField[0](BCS.bytes: vector<u8>)
2VecLen(6)
3Call address::length(): u64
4Ge
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut BCS)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11LdConst[3](vector<u8>: "" /..)
12StLoc[7](loc6: vector<u8>)
13Call address::length(): u64
14StLoc[1](loc0: u64)
15LdU64(0)
16StLoc[5](loc4: u64)
17MoveLoc[1](loc0: u64)
18StLoc[6](loc5: u64)
B4:
19CopyLoc[5](loc4: u64)
20CopyLoc[6](loc5: u64)
21Lt
22BrFalse(41)
B5:
23CopyLoc[5](loc4: u64)
24StLoc[4](loc3: u64)
25MutBorrowLoc[7](loc6: vector<u8>)
26StLoc[3](loc2: &mut vector<u8>)
27MoveLoc[4](loc3: u64)
28Pop
29CopyLoc[0](Arg0: &mut BCS)
30MutBorrowField[0](BCS.bytes: vector<u8>)
31VecPopBack(6)
32StLoc[2](loc1: u8)
33MoveLoc[3](loc2: &mut vector<u8>)
34MoveLoc[2](loc1: u8)
35VecPushBack(6)
36MoveLoc[5](loc4: u64)
37LdU64(1)
38Add
39StLoc[5](loc4: u64)
40Branch(19)
B6:
41MoveLoc[0](Arg0: &mut BCS)
42Pop
43MoveLoc[7](loc6: vector<u8>)
44Call address::from_bytes(vector<u8>): address
45Ret
}
 
public peel_bool(Arg0: &mut BCS): bool {
L1: loc0: bool
L2: loc1: u8
B0:
0MoveLoc[0](Arg0: &mut BCS)
1Call peel_u8(&mut BCS): u8
2StLoc[2](loc1: u8)
3CopyLoc[2](loc1: u8)
4LdU8(0)
5Eq
6BrFalse(10)
B1:
7LdFalse
8StLoc[1](loc0: bool)
9Branch(19)
B2:
10MoveLoc[2](loc1: u8)
11LdU8(1)
12Eq
13BrFalse(15)
B3:
14Branch(17)
B4:
15LdConst[1](u64: 1)
16Abort
B5:
17LdTrue
18StLoc[1](loc0: bool)
B6:
19MoveLoc[1](loc0: bool)
20Ret
}
 
public peel_u8(Arg0: &mut BCS): u8 {
B0:
0CopyLoc[0](Arg0: &mut BCS)
1ImmBorrowField[0](BCS.bytes: vector<u8>)
2VecLen(6)
3LdU64(1)
4Ge
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut BCS)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11MoveLoc[0](Arg0: &mut BCS)
12MutBorrowField[0](BCS.bytes: vector<u8>)
13VecPopBack(6)
14Ret
}
 
public peel_u16(Arg0: &mut BCS): u16 {
L1: loc0: &mut BCS
L2: loc1: u16
L3: loc2: u8
L4: loc3: u16
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[1](loc0: &mut BCS)
2CopyLoc[1](loc0: &mut BCS)
3ImmBorrowField[0](BCS.bytes: vector<u8>)
4VecLen(6)
5LdU64(2)
6Ge
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[1](loc0: &mut BCS)
10Pop
11LdConst[0](u64: 0)
12Abort
B3:
13LdU16(0)
14StLoc[4](loc3: u16)
15LdU8(0)
16StLoc[3](loc2: u8)
B4:
17CopyLoc[3](loc2: u8)
18LdU8(16)
19Lt
20BrFalse(38)
B5:
21CopyLoc[1](loc0: &mut BCS)
22MutBorrowField[0](BCS.bytes: vector<u8>)
23VecPopBack(6)
24CastU16
25StLoc[2](loc1: u16)
26MoveLoc[4](loc3: u16)
27MoveLoc[2](loc1: u16)
28CopyLoc[3](loc2: u8)
29CastU8
30Shl
31Add
32StLoc[4](loc3: u16)
33MoveLoc[3](loc2: u8)
34LdU8(8)
35Add
36StLoc[3](loc2: u8)
37Branch(17)
B6:
38MoveLoc[1](loc0: &mut BCS)
39Pop
40MoveLoc[4](loc3: u16)
41Ret
}
 
public peel_u32(Arg0: &mut BCS): u32 {
L1: loc0: &mut BCS
L2: loc1: u32
L3: loc2: u8
L4: loc3: u32
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[1](loc0: &mut BCS)
2CopyLoc[1](loc0: &mut BCS)
3ImmBorrowField[0](BCS.bytes: vector<u8>)
4VecLen(6)
5LdU64(4)
6Ge
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[1](loc0: &mut BCS)
10Pop
11LdConst[0](u64: 0)
12Abort
B3:
13LdU32(0)
14StLoc[4](loc3: u32)
15LdU8(0)
16StLoc[3](loc2: u8)
B4:
17CopyLoc[3](loc2: u8)
18LdU8(32)
19Lt
20BrFalse(38)
B5:
21CopyLoc[1](loc0: &mut BCS)
22MutBorrowField[0](BCS.bytes: vector<u8>)
23VecPopBack(6)
24CastU32
25StLoc[2](loc1: u32)
26MoveLoc[4](loc3: u32)
27MoveLoc[2](loc1: u32)
28CopyLoc[3](loc2: u8)
29CastU8
30Shl
31Add
32StLoc[4](loc3: u32)
33MoveLoc[3](loc2: u8)
34LdU8(8)
35Add
36StLoc[3](loc2: u8)
37Branch(17)
B6:
38MoveLoc[1](loc0: &mut BCS)
39Pop
40MoveLoc[4](loc3: u32)
41Ret
}
 
public peel_u64(Arg0: &mut BCS): u64 {
L1: loc0: &mut BCS
L2: loc1: u64
L3: loc2: u8
L4: loc3: u64
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[1](loc0: &mut BCS)
2CopyLoc[1](loc0: &mut BCS)
3ImmBorrowField[0](BCS.bytes: vector<u8>)
4VecLen(6)
5LdU64(8)
6Ge
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[1](loc0: &mut BCS)
10Pop
11LdConst[0](u64: 0)
12Abort
B3:
13LdU64(0)
14StLoc[4](loc3: u64)
15LdU8(0)
16StLoc[3](loc2: u8)
B4:
17CopyLoc[3](loc2: u8)
18LdU8(64)
19Lt
20BrFalse(38)
B5:
21CopyLoc[1](loc0: &mut BCS)
22MutBorrowField[0](BCS.bytes: vector<u8>)
23VecPopBack(6)
24CastU64
25StLoc[2](loc1: u64)
26MoveLoc[4](loc3: u64)
27MoveLoc[2](loc1: u64)
28CopyLoc[3](loc2: u8)
29CastU8
30Shl
31Add
32StLoc[4](loc3: u64)
33MoveLoc[3](loc2: u8)
34LdU8(8)
35Add
36StLoc[3](loc2: u8)
37Branch(17)
B6:
38MoveLoc[1](loc0: &mut BCS)
39Pop
40MoveLoc[4](loc3: u64)
41Ret
}
 
public peel_u128(Arg0: &mut BCS): u128 {
L1: loc0: &mut BCS
L2: loc1: u128
L3: loc2: u8
L4: loc3: u128
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[1](loc0: &mut BCS)
2CopyLoc[1](loc0: &mut BCS)
3ImmBorrowField[0](BCS.bytes: vector<u8>)
4VecLen(6)
5LdU64(16)
6Ge
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[1](loc0: &mut BCS)
10Pop
11LdConst[0](u64: 0)
12Abort
B3:
13LdU128(0)
14StLoc[4](loc3: u128)
15LdU8(0)
16StLoc[3](loc2: u8)
B4:
17CopyLoc[3](loc2: u8)
18LdU8(128)
19Lt
20BrFalse(38)
B5:
21CopyLoc[1](loc0: &mut BCS)
22MutBorrowField[0](BCS.bytes: vector<u8>)
23VecPopBack(6)
24CastU128
25StLoc[2](loc1: u128)
26MoveLoc[4](loc3: u128)
27MoveLoc[2](loc1: u128)
28CopyLoc[3](loc2: u8)
29CastU8
30Shl
31Add
32StLoc[4](loc3: u128)
33MoveLoc[3](loc2: u8)
34LdU8(8)
35Add
36StLoc[3](loc2: u8)
37Branch(17)
B6:
38MoveLoc[1](loc0: &mut BCS)
39Pop
40MoveLoc[4](loc3: u128)
41Ret
}
 
public peel_u256(Arg0: &mut BCS): u256 {
L1: loc0: &mut BCS
L2: loc1: u256
L3: loc2: u16
L4: loc3: u256
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[1](loc0: &mut BCS)
2CopyLoc[1](loc0: &mut BCS)
3ImmBorrowField[0](BCS.bytes: vector<u8>)
4VecLen(6)
5LdU64(32)
6Ge
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[1](loc0: &mut BCS)
10Pop
11LdConst[0](u64: 0)
12Abort
B3:
13LdU256(0)
14StLoc[4](loc3: u256)
15LdU16(0)
16StLoc[3](loc2: u16)
B4:
17CopyLoc[3](loc2: u16)
18LdU16(256)
19Lt
20BrFalse(38)
B5:
21CopyLoc[1](loc0: &mut BCS)
22MutBorrowField[0](BCS.bytes: vector<u8>)
23VecPopBack(6)
24CastU256
25StLoc[2](loc1: u256)
26MoveLoc[4](loc3: u256)
27MoveLoc[2](loc1: u256)
28CopyLoc[3](loc2: u16)
29CastU8
30Shl
31Add
32StLoc[4](loc3: u256)
33MoveLoc[3](loc2: u16)
34LdU16(8)
35Add
36StLoc[3](loc2: u16)
37Branch(17)
B6:
38MoveLoc[1](loc0: &mut BCS)
39Pop
40MoveLoc[4](loc3: u256)
41Ret
}
 
public peel_vec_length(Arg0: &mut BCS): u64 {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u8
L4: loc3: u64
B0:
0LdU64(0)
1LdU8(0)
2LdU64(0)
3StLoc[2](loc1: u64)
4StLoc[3](loc2: u8)
5StLoc[4](loc3: u64)
B1:
6CopyLoc[2](loc1: u64)
7LdU64(4)
8Le
9BrFalse(11)
B2:
10Branch(15)
B3:
11MoveLoc[0](Arg0: &mut BCS)
12Pop
13LdConst[2](u64: 2)
14Abort
B4:
15CopyLoc[0](Arg0: &mut BCS)
16MutBorrowField[0](BCS.bytes: vector<u8>)
17VecPopBack(6)
18CastU64
19StLoc[1](loc0: u64)
20MoveLoc[2](loc1: u64)
21LdU64(1)
22Add
23StLoc[2](loc1: u64)
24MoveLoc[4](loc3: u64)
25CopyLoc[1](loc0: u64)
26LdU64(127)
27BitAnd
28CopyLoc[3](loc2: u8)
29Shl
30BitOr
31StLoc[4](loc3: u64)
32MoveLoc[1](loc0: u64)
33LdU64(128)
34BitAnd
35LdU64(0)
36Eq
37BrFalse(39)
B5:
38Branch(44)
B6:
39MoveLoc[3](loc2: u8)
40LdU8(7)
41Add
42StLoc[3](loc2: u8)
43Branch(6)
B7:
44MoveLoc[0](Arg0: &mut BCS)
45Pop
46MoveLoc[4](loc3: u64)
47Ret
}
 
public peel_vec_address(Arg0: &mut BCS): vector<address> {
L1: loc0: u64
L2: loc1: address
L3: loc2: &mut vector<address>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<address>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[4](vector<address>: 00)
3StLoc[8](loc7: vector<address>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<address>)
18StLoc[3](loc2: &mut vector<address>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_address(&mut BCS): address
23StLoc[2](loc1: address)
24MoveLoc[3](loc2: &mut vector<address>)
25MoveLoc[2](loc1: address)
26VecPushBack(4)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<address>)
35Ret
}
 
public peel_vec_bool(Arg0: &mut BCS): vector<bool> {
L1: loc0: u64
L2: loc1: bool
L3: loc2: &mut vector<bool>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<bool>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[5](vector<bool>: 00)
3StLoc[8](loc7: vector<bool>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<bool>)
18StLoc[3](loc2: &mut vector<bool>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_bool(&mut BCS): bool
23StLoc[2](loc1: bool)
24MoveLoc[3](loc2: &mut vector<bool>)
25MoveLoc[2](loc1: bool)
26VecPushBack(5)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<bool>)
35Ret
}
 
public peel_vec_u8(Arg0: &mut BCS): vector<u8> {
L1: loc0: u64
L2: loc1: u8
L3: loc2: &mut vector<u8>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<u8>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[3](vector<u8>: "" /..)
3StLoc[8](loc7: vector<u8>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<u8>)
18StLoc[3](loc2: &mut vector<u8>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_u8(&mut BCS): u8
23StLoc[2](loc1: u8)
24MoveLoc[3](loc2: &mut vector<u8>)
25MoveLoc[2](loc1: u8)
26VecPushBack(6)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<u8>)
35Ret
}
 
public peel_vec_vec_u8(Arg0: &mut BCS): vector<vector<u8>> {
L1: loc0: u64
L2: loc1: vector<u8>
L3: loc2: &mut vector<vector<u8>>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<vector<u8>>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[6](vector<vector<u8>>: 00)
3StLoc[8](loc7: vector<vector<u8>>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<vector<u8>>)
18StLoc[3](loc2: &mut vector<vector<u8>>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_vec_u8(&mut BCS): vector<u8>
23StLoc[2](loc1: vector<u8>)
24MoveLoc[3](loc2: &mut vector<vector<u8>>)
25MoveLoc[2](loc1: vector<u8>)
26VecPushBack(1)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<vector<u8>>)
35Ret
}
 
public peel_vec_u16(Arg0: &mut BCS): vector<u16> {
L1: loc0: u64
L2: loc1: u16
L3: loc2: &mut vector<u16>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<u16>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[7](vector<u16>: 00)
3StLoc[8](loc7: vector<u16>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<u16>)
18StLoc[3](loc2: &mut vector<u16>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_u16(&mut BCS): u16
23StLoc[2](loc1: u16)
24MoveLoc[3](loc2: &mut vector<u16>)
25MoveLoc[2](loc1: u16)
26VecPushBack(7)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<u16>)
35Ret
}
 
public peel_vec_u32(Arg0: &mut BCS): vector<u32> {
L1: loc0: u64
L2: loc1: u32
L3: loc2: &mut vector<u32>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<u32>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[8](vector<u32>: 00)
3StLoc[8](loc7: vector<u32>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<u32>)
18StLoc[3](loc2: &mut vector<u32>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_u32(&mut BCS): u32
23StLoc[2](loc1: u32)
24MoveLoc[3](loc2: &mut vector<u32>)
25MoveLoc[2](loc1: u32)
26VecPushBack(8)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<u32>)
35Ret
}
 
public peel_vec_u64(Arg0: &mut BCS): vector<u64> {
L1: loc0: u64
L2: loc1: u64
L3: loc2: &mut vector<u64>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<u64>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[9](vector<u64>: 00)
3StLoc[8](loc7: vector<u64>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<u64>)
18StLoc[3](loc2: &mut vector<u64>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_u64(&mut BCS): u64
23StLoc[2](loc1: u64)
24MoveLoc[3](loc2: &mut vector<u64>)
25MoveLoc[2](loc1: u64)
26VecPushBack(9)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<u64>)
35Ret
}
 
public peel_vec_u128(Arg0: &mut BCS): vector<u128> {
L1: loc0: u64
L2: loc1: u128
L3: loc2: &mut vector<u128>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<u128>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[10](vector<u128>: 00)
3StLoc[8](loc7: vector<u128>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<u128>)
18StLoc[3](loc2: &mut vector<u128>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_u128(&mut BCS): u128
23StLoc[2](loc1: u128)
24MoveLoc[3](loc2: &mut vector<u128>)
25MoveLoc[2](loc1: u128)
26VecPushBack(10)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<u128>)
35Ret
}
 
public peel_vec_u256(Arg0: &mut BCS): vector<u256> {
L1: loc0: u64
L2: loc1: u256
L3: loc2: &mut vector<u256>
L4: loc3: &mut BCS
L5: loc4: u64
L6: loc5: u64
L7: loc6: u64
L8: loc7: vector<u256>
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[4](loc3: &mut BCS)
2LdConst[11](vector<u256>: 00)
3StLoc[8](loc7: vector<u256>)
4CopyLoc[4](loc3: &mut BCS)
5Call peel_vec_length(&mut BCS): u64
6StLoc[1](loc0: u64)
7LdU64(0)
8StLoc[5](loc4: u64)
9MoveLoc[1](loc0: u64)
10StLoc[7](loc6: u64)
B1:
11CopyLoc[5](loc4: u64)
12CopyLoc[7](loc6: u64)
13Lt
14BrFalse(32)
B2:
15CopyLoc[5](loc4: u64)
16StLoc[6](loc5: u64)
17MutBorrowLoc[8](loc7: vector<u256>)
18StLoc[3](loc2: &mut vector<u256>)
19MoveLoc[6](loc5: u64)
20Pop
21CopyLoc[4](loc3: &mut BCS)
22Call peel_u256(&mut BCS): u256
23StLoc[2](loc1: u256)
24MoveLoc[3](loc2: &mut vector<u256>)
25MoveLoc[2](loc1: u256)
26VecPushBack(11)
27MoveLoc[5](loc4: u64)
28LdU64(1)
29Add
30StLoc[5](loc4: u64)
31Branch(11)
B3:
32MoveLoc[4](loc3: &mut BCS)
33Pop
34MoveLoc[8](loc7: vector<u256>)
35Ret
}
 
public peel_enum_tag(Arg0: &mut BCS): u32 {
L1: loc0: u64
B0:
0MoveLoc[0](Arg0: &mut BCS)
1Call peel_vec_length(&mut BCS): u64
2StLoc[1](loc0: u64)
3CopyLoc[1](loc0: u64)
4LdU64(4294967295)
5Le
6BrFalse(8)
B1:
7Branch(10)
B2:
8LdConst[0](u64: 0)
9Abort
B3:
10MoveLoc[1](loc0: u64)
11CastU32
12Ret
}
 
public peel_option_address(Arg0: &mut BCS): Option<address> {
L1: loc0: Option<address>
L2: loc1: &mut BCS
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[2](loc1: &mut BCS)
2CopyLoc[2](loc1: &mut BCS)
3Call peel_bool(&mut BCS): bool
4BrFalse(10)
B1:
5MoveLoc[2](loc1: &mut BCS)
6Call peel_address(&mut BCS): address
7Call option::some<address>(address): Option<address>
8StLoc[1](loc0: Option<address>)
9Branch(14)
B2:
10MoveLoc[2](loc1: &mut BCS)
11Pop
12Call option::none<address>(): Option<address>
13StLoc[1](loc0: Option<address>)
B3:
14MoveLoc[1](loc0: Option<address>)
15Ret
}
 
public peel_option_bool(Arg0: &mut BCS): Option<bool> {
L1: loc0: Option<bool>
L2: loc1: &mut BCS
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[2](loc1: &mut BCS)
2CopyLoc[2](loc1: &mut BCS)
3Call peel_bool(&mut BCS): bool
4BrFalse(10)
B1:
5MoveLoc[2](loc1: &mut BCS)
6Call peel_bool(&mut BCS): bool
7Call option::some<bool>(bool): Option<bool>
8StLoc[1](loc0: Option<bool>)
9Branch(14)
B2:
10MoveLoc[2](loc1: &mut BCS)
11Pop
12Call option::none<bool>(): Option<bool>
13StLoc[1](loc0: Option<bool>)
B3:
14MoveLoc[1](loc0: Option<bool>)
15Ret
}
 
public peel_option_u8(Arg0: &mut BCS): Option<u8> {
L1: loc0: Option<u8>
L2: loc1: &mut BCS
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[2](loc1: &mut BCS)
2CopyLoc[2](loc1: &mut BCS)
3Call peel_bool(&mut BCS): bool
4BrFalse(10)
B1:
5MoveLoc[2](loc1: &mut BCS)
6Call peel_u8(&mut BCS): u8
7Call option::some<u8>(u8): Option<u8>
8StLoc[1](loc0: Option<u8>)
9Branch(14)
B2:
10MoveLoc[2](loc1: &mut BCS)
11Pop
12Call option::none<u8>(): Option<u8>
13StLoc[1](loc0: Option<u8>)
B3:
14MoveLoc[1](loc0: Option<u8>)
15Ret
}
 
public peel_option_u16(Arg0: &mut BCS): Option<u16> {
L1: loc0: Option<u16>
L2: loc1: &mut BCS
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[2](loc1: &mut BCS)
2CopyLoc[2](loc1: &mut BCS)
3Call peel_bool(&mut BCS): bool
4BrFalse(10)
B1:
5MoveLoc[2](loc1: &mut BCS)
6Call peel_u16(&mut BCS): u16
7Call option::some<u16>(u16): Option<u16>
8StLoc[1](loc0: Option<u16>)
9Branch(14)
B2:
10MoveLoc[2](loc1: &mut BCS)
11Pop
12Call option::none<u16>(): Option<u16>
13StLoc[1](loc0: Option<u16>)
B3:
14MoveLoc[1](loc0: Option<u16>)
15Ret
}
 
public peel_option_u32(Arg0: &mut BCS): Option<u32> {
L1: loc0: Option<u32>
L2: loc1: &mut BCS
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[2](loc1: &mut BCS)
2CopyLoc[2](loc1: &mut BCS)
3Call peel_bool(&mut BCS): bool
4BrFalse(10)
B1:
5MoveLoc[2](loc1: &mut BCS)
6Call peel_u32(&mut BCS): u32
7Call option::some<u32>(u32): Option<u32>
8StLoc[1](loc0: Option<u32>)
9Branch(14)
B2:
10MoveLoc[2](loc1: &mut BCS)
11Pop
12Call option::none<u32>(): Option<u32>
13StLoc[1](loc0: Option<u32>)
B3:
14MoveLoc[1](loc0: Option<u32>)
15Ret
}
 
public peel_option_u64(Arg0: &mut BCS): Option<u64> {
L1: loc0: Option<u64>
L2: loc1: &mut BCS
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[2](loc1: &mut BCS)
2CopyLoc[2](loc1: &mut BCS)
3Call peel_bool(&mut BCS): bool
4BrFalse(10)
B1:
5MoveLoc[2](loc1: &mut BCS)
6Call peel_u64(&mut BCS): u64
7Call option::some<u64>(u64): Option<u64>
8StLoc[1](loc0: Option<u64>)
9Branch(14)
B2:
10MoveLoc[2](loc1: &mut BCS)
11Pop
12Call option::none<u64>(): Option<u64>
13StLoc[1](loc0: Option<u64>)
B3:
14MoveLoc[1](loc0: Option<u64>)
15Ret
}
 
public peel_option_u128(Arg0: &mut BCS): Option<u128> {
L1: loc0: Option<u128>
L2: loc1: &mut BCS
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[2](loc1: &mut BCS)
2CopyLoc[2](loc1: &mut BCS)
3Call peel_bool(&mut BCS): bool
4BrFalse(10)
B1:
5MoveLoc[2](loc1: &mut BCS)
6Call peel_u128(&mut BCS): u128
7Call option::some<u128>(u128): Option<u128>
8StLoc[1](loc0: Option<u128>)
9Branch(14)
B2:
10MoveLoc[2](loc1: &mut BCS)
11Pop
12Call option::none<u128>(): Option<u128>
13StLoc[1](loc0: Option<u128>)
B3:
14MoveLoc[1](loc0: Option<u128>)
15Ret
}
 
public peel_option_u256(Arg0: &mut BCS): Option<u256> {
L1: loc0: Option<u256>
L2: loc1: &mut BCS
B0:
0MoveLoc[0](Arg0: &mut BCS)
1StLoc[2](loc1: &mut BCS)
2CopyLoc[2](loc1: &mut BCS)
3Call peel_bool(&mut BCS): bool
4BrFalse(10)
B1:
5MoveLoc[2](loc1: &mut BCS)
6Call peel_u256(&mut BCS): u256
7Call option::some<u256>(u256): Option<u256>
8StLoc[1](loc0: Option<u256>)
9Branch(14)
B2:
10MoveLoc[2](loc1: &mut BCS)
11Pop
12Call option::none<u256>(): Option<u256>
13StLoc[1](loc0: Option<u256>)
B3:
14MoveLoc[1](loc0: Option<u256>)
15Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => vector<u8>: "" // interpreted as UTF8 string
4 => vector<address>: 00
5 => vector<bool>: 00
6 => vector<vector<u8>>: 00
7 => vector<u16>: 00
8 => vector<u32>: 00
9 => vector<u64>: 00
10 => vector<u128>: 00
11 => vector<u256>: 00
]
}