Package
0x0000000000000000000000000000000000000000000000000000000000000001
- version
- 1
- digest
- B8HAJhJabB5iGVca88KsmSbj9XCJ9E8KW7oV2UZYAHAq
- previous transaction
- AzYEMWffCQNx3cGBpTYqdvYpiisYSghXsUtPZXg5a9EJ
- last modified
- Jul 30, 7:04:59 PM
- checkpoint
- 0
Modules (21)
address
// Move bytecode v6
module 1.address {
public length(): u64 {
B0:
0: LdU64(32)
1: Ret
}
}
ascii
// Move bytecode v6
module 1.ascii {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
struct String has copy, drop, store {
bytes: vector<u8>
}
struct Char has copy, drop, store {
byte: u8
}
public char(Arg0: u8): Char {
B0:
0: CopyLoc[0](Arg0: u8)
1: Call is_valid_char(u8): bool
2: BrFalse(4)
B1:
3: Branch(6)
B2:
4: LdConst[0](u64: 65536)
5: Abort
B3:
6: MoveLoc[0](Arg0: u8)
7: Pack[1](Char)
8: Ret
}
public string(Arg0: vector<u8>): String {
L1: loc0: Option<String>
B0:
0: MoveLoc[0](Arg0: vector<u8>)
1: Call try_string(vector<u8>): Option<String>
2: StLoc[1](loc0: Option<String>)
3: ImmBorrowLoc[1](loc0: Option<String>)
4: Call option::is_some<String>(&Option<String>): bool
5: BrFalse(7)
B1:
6: Branch(9)
B2:
7: LdConst[0](u64: 65536)
8: Abort
B3:
9: MoveLoc[1](loc0: Option<String>)
10: Call option::destroy_some<String>(Option<String>): String
11: Ret
}
public try_string(Arg0: vector<u8>): Option<String> {
L1: loc0: u64
L2: loc1: bool
L3: loc2: Option<String>
L4: loc3: u64
L5: loc4: u64
L6: loc5: u64
L7: loc6: &vector<u8>
B0:
0: ImmBorrowLoc[0](Arg0: vector<u8>)
1: StLoc[7](loc6: &vector<u8>)
2: CopyLoc[7](loc6: &vector<u8>)
3: VecLen(0)
4: StLoc[1](loc0: u64)
5: LdU64(0)
6: StLoc[5](loc4: u64)
7: MoveLoc[1](loc0: u64)
8: StLoc[6](loc5: u64)
B1:
9: CopyLoc[5](loc4: u64)
10: CopyLoc[6](loc5: u64)
11: Lt
12: BrFalse(32)
B2:
13: CopyLoc[5](loc4: u64)
14: StLoc[4](loc3: u64)
15: CopyLoc[7](loc6: &vector<u8>)
16: MoveLoc[4](loc3: u64)
17: VecImmBorrow(0)
18: ReadRef
19: Call is_valid_char(u8): bool
20: Not
21: BrFalse(27)
B3:
22: MoveLoc[7](loc6: &vector<u8>)
23: Pop
24: LdFalse
25: StLoc[2](loc1: bool)
26: Branch(36)
B4:
27: MoveLoc[5](loc4: u64)
28: LdU64(1)
29: Add
30: StLoc[5](loc4: u64)
31: Branch(9)
B5:
32: MoveLoc[7](loc6: &vector<u8>)
33: Pop
34: LdTrue
35: StLoc[2](loc1: bool)
B6:
36: MoveLoc[2](loc1: bool)
37: BrFalse(43)
B7:
38: MoveLoc[0](Arg0: vector<u8>)
39: Pack[0](String)
40: Call option::some<String>(String): Option<String>
41: StLoc[3](loc2: Option<String>)
42: Branch(45)
B8:
43: Call option::none<String>(): Option<String>
44: StLoc[3](loc2: Option<String>)
B9:
45: MoveLoc[3](loc2: Option<String>)
46: Ret
}
public all_characters_printable(Arg0: &String): bool {
L1: loc0: u64
L2: loc1: bool
L3: loc2: u64
L4: loc3: u64
L5: loc4: u64
L6: loc5: &vector<u8>
B0:
0: MoveLoc[0](Arg0: &String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: StLoc[6](loc5: &vector<u8>)
3: CopyLoc[6](loc5: &vector<u8>)
4: VecLen(0)
5: StLoc[1](loc0: u64)
6: LdU64(0)
7: StLoc[4](loc3: u64)
8: MoveLoc[1](loc0: u64)
9: StLoc[5](loc4: u64)
B1:
10: CopyLoc[4](loc3: u64)
11: CopyLoc[5](loc4: u64)
12: Lt
13: BrFalse(33)
B2:
14: CopyLoc[4](loc3: u64)
15: StLoc[3](loc2: u64)
16: CopyLoc[6](loc5: &vector<u8>)
17: MoveLoc[3](loc2: u64)
18: VecImmBorrow(0)
19: ReadRef
20: Call is_printable_char(u8): bool
21: Not
22: BrFalse(28)
B3:
23: MoveLoc[6](loc5: &vector<u8>)
24: Pop
25: LdFalse
26: StLoc[2](loc1: bool)
27: Branch(37)
B4:
28: MoveLoc[4](loc3: u64)
29: LdU64(1)
30: Add
31: StLoc[4](loc3: u64)
32: Branch(10)
B5:
33: MoveLoc[6](loc5: &vector<u8>)
34: Pop
35: LdTrue
36: StLoc[2](loc1: bool)
B6:
37: MoveLoc[2](loc1: bool)
38: Ret
}
public push_char(Arg0: &mut String, Arg1: Char) {
B0:
0: MoveLoc[0](Arg0: &mut String)
1: MutBorrowField[0](String.bytes: vector<u8>)
2: ImmBorrowLoc[1](Arg1: Char)
3: ImmBorrowField[1](Char.byte: u8)
4: ReadRef
5: VecPushBack(0)
6: Ret
}
public pop_char(Arg0: &mut String): Char {
B0:
0: MoveLoc[0](Arg0: &mut String)
1: MutBorrowField[0](String.bytes: vector<u8>)
2: VecPopBack(0)
3: Pack[1](Char)
4: Ret
}
public length(Arg0: &String): u64 {
B0:
0: MoveLoc[0](Arg0: &String)
1: Call as_bytes(&String): &vector<u8>
2: VecLen(0)
3: Ret
}
public append(Arg0: &mut String, Arg1: String) {
B0:
0: MoveLoc[0](Arg0: &mut String)
1: MutBorrowField[0](String.bytes: vector<u8>)
2: MoveLoc[1](Arg1: String)
3: Call into_bytes(String): vector<u8>
4: Call vector::append<u8>(&mut vector<u8>, vector<u8>)
5: Ret
}
public insert(Arg0: &mut String, Arg1: u64, Arg2: String) {
L3: loc0: u64
L4: loc1: u8
L5: loc2: u64
L6: loc3: u64
L7: loc4: vector<u8>
B0:
0: CopyLoc[1](Arg1: u64)
1: CopyLoc[0](Arg0: &mut String)
2: FreezeRef
3: Call length(&String): u64
4: Le
5: BrFalse(7)
B1:
6: Branch(11)
B2:
7: MoveLoc[0](Arg0: &mut String)
8: Pop
9: LdConst[1](u64: 65537)
10: Abort
B3:
11: MoveLoc[2](Arg2: String)
12: Call into_bytes(String): vector<u8>
13: StLoc[7](loc4: vector<u8>)
14: ImmBorrowLoc[7](loc4: vector<u8>)
15: VecLen(0)
16: StLoc[3](loc0: u64)
17: LdU64(0)
18: StLoc[5](loc2: u64)
19: MoveLoc[3](loc0: u64)
20: StLoc[6](loc3: u64)
B4:
21: CopyLoc[5](loc2: u64)
22: CopyLoc[6](loc3: u64)
23: Lt
24: BrFalse(40)
B5:
25: CopyLoc[5](loc2: u64)
26: Pop
27: MutBorrowLoc[7](loc4: vector<u8>)
28: VecPopBack(0)
29: StLoc[4](loc1: u8)
30: CopyLoc[0](Arg0: &mut String)
31: MutBorrowField[0](String.bytes: vector<u8>)
32: MoveLoc[4](loc1: u8)
33: CopyLoc[1](Arg1: u64)
34: Call vector::insert<u8>(&mut vector<u8>, u8, u64)
35: MoveLoc[5](loc2: u64)
36: LdU64(1)
37: Add
38: StLoc[5](loc2: u64)
39: Branch(21)
B6:
40: MoveLoc[0](Arg0: &mut String)
41: Pop
42: MoveLoc[7](loc4: vector<u8>)
43: VecUnpack(0, 0)
44: Ret
}
public substring(Arg0: &String, Arg1: u64, Arg2: u64): String {
L3: loc0: bool
L4: loc1: vector<u8>
L5: loc2: u64
L6: loc3: u64
L7: loc4: u64
B0:
0: CopyLoc[1](Arg1: u64)
1: CopyLoc[2](Arg2: u64)
2: Le
3: BrFalse(10)
B1:
4: CopyLoc[2](Arg2: u64)
5: CopyLoc[0](Arg0: &String)
6: Call length(&String): u64
7: Le
8: StLoc[3](loc0: bool)
9: Branch(12)
B2:
10: LdFalse
11: StLoc[3](loc0: bool)
B3:
12: MoveLoc[3](loc0: bool)
13: BrFalse(15)
B4:
14: Branch(19)
B5:
15: MoveLoc[0](Arg0: &String)
16: Pop
17: LdConst[1](u64: 65537)
18: Abort
B6:
19: LdConst[2](vector<u8>: "" /..)
20: StLoc[4](loc1: vector<u8>)
21: MoveLoc[1](Arg1: u64)
22: StLoc[5](loc2: u64)
23: MoveLoc[2](Arg2: u64)
24: StLoc[7](loc4: u64)
B7:
25: CopyLoc[5](loc2: u64)
26: CopyLoc[7](loc4: u64)
27: Lt
28: BrFalse(43)
B8:
29: CopyLoc[5](loc2: u64)
30: StLoc[6](loc3: u64)
31: MutBorrowLoc[4](loc1: vector<u8>)
32: CopyLoc[0](Arg0: &String)
33: ImmBorrowField[0](String.bytes: vector<u8>)
34: MoveLoc[6](loc3: u64)
35: VecImmBorrow(0)
36: ReadRef
37: VecPushBack(0)
38: MoveLoc[5](loc2: u64)
39: LdU64(1)
40: Add
41: StLoc[5](loc2: u64)
42: Branch(25)
B9:
43: MoveLoc[0](Arg0: &String)
44: Pop
45: MoveLoc[4](loc1: vector<u8>)
46: Pack[0](String)
47: Ret
}
public as_bytes(Arg0: &String): &vector<u8> {
B0:
0: MoveLoc[0](Arg0: &String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: Ret
}
public into_bytes(Arg0: String): vector<u8> {
B0:
0: MoveLoc[0](Arg0: String)
1: Unpack[0](String)
2: Ret
}
public byte(Arg0: Char): u8 {
B0:
0: MoveLoc[0](Arg0: Char)
1: Unpack[1](Char)
2: Ret
}
public is_valid_char(Arg0: u8): bool {
B0:
0: MoveLoc[0](Arg0: u8)
1: LdU8(127)
2: Le
3: Ret
}
public is_printable_char(Arg0: u8): bool {
L1: loc0: bool
B0:
0: CopyLoc[0](Arg0: u8)
1: LdU8(32)
2: Ge
3: BrFalse(9)
B1:
4: MoveLoc[0](Arg0: u8)
5: LdU8(126)
6: Le
7: StLoc[1](loc0: bool)
8: Branch(11)
B2:
9: LdFalse
10: StLoc[1](loc0: bool)
B3:
11: MoveLoc[1](loc0: bool)
12: Ret
}
public is_empty(Arg0: &String): bool {
B0:
0: MoveLoc[0](Arg0: &String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: Call vector::is_empty<u8>(&vector<u8>): bool
3: Ret
}
public to_uppercase(Arg0: &String): String {
L1: loc0: u64
L2: loc1: u8
L3: loc2: &mut vector<u8>
L4: loc3: &u8
L5: loc4: u64
L6: loc5: u64
L7: loc6: vector<u8>
L8: loc7: u64
L9: loc8: &vector<u8>
L10: loc9: &vector<u8>
B0:
0: MoveLoc[0](Arg0: &String)
1: Call as_bytes(&String): &vector<u8>
2: StLoc[9](loc8: &vector<u8>)
3: LdConst[2](vector<u8>: "" /..)
4: StLoc[7](loc6: vector<u8>)
5: MoveLoc[9](loc8: &vector<u8>)
6: StLoc[10](loc9: &vector<u8>)
7: CopyLoc[10](loc9: &vector<u8>)
8: VecLen(0)
9: StLoc[1](loc0: u64)
10: LdU64(0)
11: StLoc[6](loc5: u64)
12: MoveLoc[1](loc0: u64)
13: StLoc[8](loc7: u64)
B1:
14: CopyLoc[6](loc5: u64)
15: CopyLoc[8](loc7: u64)
16: Lt
17: BrFalse(38)
B2:
18: CopyLoc[6](loc5: u64)
19: StLoc[5](loc4: u64)
20: CopyLoc[10](loc9: &vector<u8>)
21: MoveLoc[5](loc4: u64)
22: VecImmBorrow(0)
23: StLoc[4](loc3: &u8)
24: MutBorrowLoc[7](loc6: vector<u8>)
25: StLoc[3](loc2: &mut vector<u8>)
26: MoveLoc[4](loc3: &u8)
27: ReadRef
28: Call char_to_uppercase(u8): u8
29: StLoc[2](loc1: u8)
30: MoveLoc[3](loc2: &mut vector<u8>)
31: MoveLoc[2](loc1: u8)
32: VecPushBack(0)
33: MoveLoc[6](loc5: u64)
34: LdU64(1)
35: Add
36: StLoc[6](loc5: u64)
37: Branch(14)
B3:
38: MoveLoc[10](loc9: &vector<u8>)
39: Pop
40: MoveLoc[7](loc6: vector<u8>)
41: Pack[0](String)
42: Ret
}
public to_lowercase(Arg0: &String): String {
L1: loc0: u64
L2: loc1: u8
L3: loc2: &mut vector<u8>
L4: loc3: &u8
L5: loc4: u64
L6: loc5: u64
L7: loc6: vector<u8>
L8: loc7: u64
L9: loc8: &vector<u8>
L10: loc9: &vector<u8>
B0:
0: MoveLoc[0](Arg0: &String)
1: Call as_bytes(&String): &vector<u8>
2: StLoc[9](loc8: &vector<u8>)
3: LdConst[2](vector<u8>: "" /..)
4: StLoc[7](loc6: vector<u8>)
5: MoveLoc[9](loc8: &vector<u8>)
6: StLoc[10](loc9: &vector<u8>)
7: CopyLoc[10](loc9: &vector<u8>)
8: VecLen(0)
9: StLoc[1](loc0: u64)
10: LdU64(0)
11: StLoc[6](loc5: u64)
12: MoveLoc[1](loc0: u64)
13: StLoc[8](loc7: u64)
B1:
14: CopyLoc[6](loc5: u64)
15: CopyLoc[8](loc7: u64)
16: Lt
17: BrFalse(38)
B2:
18: CopyLoc[6](loc5: u64)
19: StLoc[5](loc4: u64)
20: CopyLoc[10](loc9: &vector<u8>)
21: MoveLoc[5](loc4: u64)
22: VecImmBorrow(0)
23: StLoc[4](loc3: &u8)
24: MutBorrowLoc[7](loc6: vector<u8>)
25: StLoc[3](loc2: &mut vector<u8>)
26: MoveLoc[4](loc3: &u8)
27: ReadRef
28: Call char_to_lowercase(u8): u8
29: StLoc[2](loc1: u8)
30: MoveLoc[3](loc2: &mut vector<u8>)
31: MoveLoc[2](loc1: u8)
32: VecPushBack(0)
33: MoveLoc[6](loc5: u64)
34: LdU64(1)
35: Add
36: StLoc[6](loc5: u64)
37: Branch(14)
B3:
38: MoveLoc[10](loc9: &vector<u8>)
39: Pop
40: MoveLoc[7](loc6: vector<u8>)
41: Pack[0](String)
42: Ret
}
public index_of(Arg0: &String, Arg1: &String): u64 {
L2: loc0: bool
L3: loc1: u64
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
B0:
0: LdU64(0)
1: StLoc[3](loc1: u64)
2: CopyLoc[0](Arg0: &String)
3: Call length(&String): u64
4: CopyLoc[1](Arg1: &String)
5: Call length(&String): u64
6: StLoc[5](loc3: u64)
7: StLoc[6](loc4: u64)
8: CopyLoc[6](loc4: u64)
9: CopyLoc[5](loc3: u64)
10: Lt
11: BrFalse(18)
B1:
12: MoveLoc[1](Arg1: &String)
13: Pop
14: MoveLoc[0](Arg0: &String)
15: Pop
16: MoveLoc[6](loc4: u64)
17: Ret
B2:
18: CopyLoc[3](loc1: u64)
19: CopyLoc[6](loc4: u64)
20: CopyLoc[5](loc3: u64)
21: Sub
22: Le
23: BrFalse(71)
B3:
24: LdU64(0)
25: StLoc[4](loc2: u64)
B4:
26: CopyLoc[4](loc2: u64)
27: CopyLoc[5](loc3: u64)
28: Lt
29: BrFalse(46)
B5:
30: Branch(31)
B6:
31: CopyLoc[0](Arg0: &String)
32: ImmBorrowField[0](String.bytes: vector<u8>)
33: CopyLoc[3](loc1: u64)
34: CopyLoc[4](loc2: u64)
35: Add
36: VecImmBorrow(0)
37: ReadRef
38: CopyLoc[1](Arg1: &String)
39: ImmBorrowField[0](String.bytes: vector<u8>)
40: CopyLoc[4](loc2: u64)
41: VecImmBorrow(0)
42: ReadRef
43: Eq
44: StLoc[2](loc0: bool)
45: Branch(49)
B7:
46: LdFalse
47: StLoc[2](loc0: bool)
48: Branch(49)
B8:
49: MoveLoc[2](loc0: bool)
50: BrFalse(56)
B9:
51: MoveLoc[4](loc2: u64)
52: LdU64(1)
53: Add
54: StLoc[4](loc2: u64)
55: Branch(26)
B10:
56: MoveLoc[4](loc2: u64)
57: CopyLoc[5](loc3: u64)
58: Eq
59: BrFalse(66)
B11:
60: MoveLoc[1](Arg1: &String)
61: Pop
62: MoveLoc[0](Arg0: &String)
63: Pop
64: MoveLoc[3](loc1: u64)
65: Ret
B12:
66: MoveLoc[3](loc1: u64)
67: LdU64(1)
68: Add
69: StLoc[3](loc1: u64)
70: Branch(18)
B13:
71: MoveLoc[1](Arg1: &String)
72: Pop
73: MoveLoc[0](Arg0: &String)
74: Pop
75: MoveLoc[6](loc4: u64)
76: Ret
}
char_to_uppercase(Arg0: u8): u8 {
L1: loc0: bool
L2: loc1: u8
B0:
0: CopyLoc[0](Arg0: u8)
1: LdU8(97)
2: Ge
3: BrFalse(9)
B1:
4: CopyLoc[0](Arg0: u8)
5: LdU8(122)
6: Le
7: StLoc[1](loc0: bool)
8: Branch(11)
B2:
9: LdFalse
10: StLoc[1](loc0: bool)
B3:
11: MoveLoc[1](loc0: bool)
12: BrFalse(18)
B4:
13: MoveLoc[0](Arg0: u8)
14: LdU8(32)
15: Sub
16: StLoc[2](loc1: u8)
17: Branch(20)
B5:
18: MoveLoc[0](Arg0: u8)
19: StLoc[2](loc1: u8)
B6:
20: MoveLoc[2](loc1: u8)
21: Ret
}
char_to_lowercase(Arg0: u8): u8 {
L1: loc0: bool
L2: loc1: u8
B0:
0: CopyLoc[0](Arg0: u8)
1: LdU8(65)
2: Ge
3: BrFalse(9)
B1:
4: CopyLoc[0](Arg0: u8)
5: LdU8(90)
6: Le
7: StLoc[1](loc0: bool)
8: Branch(11)
B2:
9: LdFalse
10: StLoc[1](loc0: bool)
B3:
11: MoveLoc[1](loc0: bool)
12: BrFalse(18)
B4:
13: MoveLoc[0](Arg0: u8)
14: LdU8(32)
15: Add
16: StLoc[2](loc1: u8)
17: Branch(20)
B5:
18: MoveLoc[0](Arg0: u8)
19: StLoc[2](loc1: u8)
B6:
20: MoveLoc[2](loc1: u8)
21: Ret
}
Constants [
0 => u64: 65536
1 => u64: 65537
2 => vector<u8>: "" // interpreted as UTF8 string
]
}
bcs
// Move bytecode v6
module 1.bcs {
native public to_bytes<Ty0>(Arg0: &Ty0): vector<u8>;
}
bit_vector
// Move bytecode v6
module 1.bit_vector {
struct BitVector has copy, drop, store {
length: u64,
bit_field: vector<bool>
}
public new(Arg0: u64): BitVector {
L1: loc0: vector<bool>
L2: loc1: u64
B0:
0: CopyLoc[0](Arg0: u64)
1: LdU64(0)
2: Gt
3: BrFalse(5)
B1:
4: Branch(7)
B2:
5: LdConst[1](u64: 131073)
6: Abort
B3:
7: CopyLoc[0](Arg0: u64)
8: LdConst[3](u64: 1024)
9: Lt
10: BrFalse(12)
B4:
11: Branch(14)
B5:
12: LdConst[1](u64: 131073)
13: Abort
B6:
14: LdU64(0)
15: StLoc[2](loc1: u64)
16: VecPack(5, 0)
17: StLoc[1](loc0: vector<bool>)
B7:
18: CopyLoc[2](loc1: u64)
19: CopyLoc[0](Arg0: u64)
20: Lt
21: BrFalse(30)
B8:
22: MutBorrowLoc[1](loc0: vector<bool>)
23: LdFalse
24: VecPushBack(5)
25: MoveLoc[2](loc1: u64)
26: LdU64(1)
27: Add
28: StLoc[2](loc1: u64)
29: Branch(18)
B9:
30: MoveLoc[0](Arg0: u64)
31: MoveLoc[1](loc0: vector<bool>)
32: Pack[0](BitVector)
33: Ret
}
public set(Arg0: &mut BitVector, Arg1: u64) {
L2: loc0: &mut bool
B0:
0: CopyLoc[1](Arg1: u64)
1: CopyLoc[0](Arg0: &mut BitVector)
2: ImmBorrowField[0](BitVector.bit_field: vector<bool>)
3: VecLen(5)
4: Lt
5: BrFalse(7)
B1:
6: Branch(11)
B2:
7: MoveLoc[0](Arg0: &mut BitVector)
8: Pop
9: LdConst[0](u64: 131072)
10: Abort
B3:
11: MoveLoc[0](Arg0: &mut BitVector)
12: MutBorrowField[0](BitVector.bit_field: vector<bool>)
13: MoveLoc[1](Arg1: u64)
14: VecMutBorrow(5)
15: StLoc[2](loc0: &mut bool)
16: LdTrue
17: MoveLoc[2](loc0: &mut bool)
18: WriteRef
19: Ret
}
public unset(Arg0: &mut BitVector, Arg1: u64) {
L2: loc0: &mut bool
B0:
0: CopyLoc[1](Arg1: u64)
1: CopyLoc[0](Arg0: &mut BitVector)
2: ImmBorrowField[0](BitVector.bit_field: vector<bool>)
3: VecLen(5)
4: Lt
5: BrFalse(7)
B1:
6: Branch(11)
B2:
7: MoveLoc[0](Arg0: &mut BitVector)
8: Pop
9: LdConst[0](u64: 131072)
10: Abort
B3:
11: MoveLoc[0](Arg0: &mut BitVector)
12: MutBorrowField[0](BitVector.bit_field: vector<bool>)
13: MoveLoc[1](Arg1: u64)
14: VecMutBorrow(5)
15: StLoc[2](loc0: &mut bool)
16: LdFalse
17: MoveLoc[2](loc0: &mut bool)
18: WriteRef
19: Ret
}
public shift_left(Arg0: &mut BitVector, Arg1: u64) {
L2: loc0: &mut bool
L3: loc1: u64
L4: loc2: u64
L5: loc3: u64
B0:
0: CopyLoc[1](Arg1: u64)
1: CopyLoc[0](Arg0: &mut BitVector)
2: ImmBorrowField[1](BitVector.length: u64)
3: ReadRef
4: Ge
5: BrFalse(33)
B1:
6: CopyLoc[0](Arg0: &mut BitVector)
7: ImmBorrowField[0](BitVector.bit_field: vector<bool>)
8: VecLen(5)
9: StLoc[5](loc3: u64)
10: LdU64(0)
11: StLoc[3](loc1: u64)
B2:
12: CopyLoc[3](loc1: u64)
13: CopyLoc[5](loc3: u64)
14: Lt
15: BrFalse(30)
B3:
16: Branch(17)
B4:
17: CopyLoc[0](Arg0: &mut BitVector)
18: MutBorrowField[0](BitVector.bit_field: vector<bool>)
19: CopyLoc[3](loc1: u64)
20: VecMutBorrow(5)
21: StLoc[2](loc0: &mut bool)
22: LdFalse
23: MoveLoc[2](loc0: &mut bool)
24: WriteRef
25: MoveLoc[3](loc1: u64)
26: LdU64(1)
27: Add
28: StLoc[3](loc1: u64)
29: Branch(12)
B5:
30: MoveLoc[0](Arg0: &mut BitVector)
31: Pop
32: Branch(86)
B6:
33: CopyLoc[1](Arg1: u64)
34: StLoc[4](loc2: u64)
B7:
35: CopyLoc[4](loc2: u64)
36: CopyLoc[0](Arg0: &mut BitVector)
37: ImmBorrowField[1](BitVector.length: u64)
38: ReadRef
39: Lt
40: BrFalse(63)
B8:
41: Branch(42)
B9:
42: CopyLoc[0](Arg0: &mut BitVector)
43: FreezeRef
44: CopyLoc[4](loc2: u64)
45: Call is_index_set(&BitVector, u64): bool
46: BrFalse(53)
B10:
47: CopyLoc[0](Arg0: &mut BitVector)
48: CopyLoc[4](loc2: u64)
49: CopyLoc[1](Arg1: u64)
50: Sub
51: Call set(&mut BitVector, u64)
52: Branch(58)
B11:
53: CopyLoc[0](Arg0: &mut BitVector)
54: CopyLoc[4](loc2: u64)
55: CopyLoc[1](Arg1: u64)
56: Sub
57: Call unset(&mut BitVector, u64)
B12:
58: MoveLoc[4](loc2: u64)
59: LdU64(1)
60: Add
61: StLoc[4](loc2: u64)
62: Branch(35)
B13:
63: CopyLoc[0](Arg0: &mut BitVector)
64: ImmBorrowField[1](BitVector.length: u64)
65: ReadRef
66: MoveLoc[1](Arg1: u64)
67: Sub
68: StLoc[4](loc2: u64)
B14:
69: CopyLoc[4](loc2: u64)
70: CopyLoc[0](Arg0: &mut BitVector)
71: ImmBorrowField[1](BitVector.length: u64)
72: ReadRef
73: Lt
74: BrFalse(84)
B15:
75: Branch(76)
B16:
76: CopyLoc[0](Arg0: &mut BitVector)
77: CopyLoc[4](loc2: u64)
78: Call unset(&mut BitVector, u64)
79: MoveLoc[4](loc2: u64)
80: LdU64(1)
81: Add
82: StLoc[4](loc2: u64)
83: Branch(69)
B17:
84: MoveLoc[0](Arg0: &mut BitVector)
85: Pop
B18:
86: Ret
}
public is_index_set(Arg0: &BitVector, Arg1: u64): bool {
B0:
0: CopyLoc[1](Arg1: u64)
1: CopyLoc[0](Arg0: &BitVector)
2: ImmBorrowField[0](BitVector.bit_field: vector<bool>)
3: VecLen(5)
4: Lt
5: BrFalse(7)
B1:
6: Branch(11)
B2:
7: MoveLoc[0](Arg0: &BitVector)
8: Pop
9: LdConst[0](u64: 131072)
10: Abort
B3:
11: MoveLoc[0](Arg0: &BitVector)
12: ImmBorrowField[0](BitVector.bit_field: vector<bool>)
13: MoveLoc[1](Arg1: u64)
14: VecImmBorrow(5)
15: ReadRef
16: Ret
}
public length(Arg0: &BitVector): u64 {
B0:
0: MoveLoc[0](Arg0: &BitVector)
1: ImmBorrowField[0](BitVector.bit_field: vector<bool>)
2: VecLen(5)
3: Ret
}
public longest_set_sequence_starting_at(Arg0: &BitVector, Arg1: u64): u64 {
L2: loc0: u64
B0:
0: CopyLoc[1](Arg1: u64)
1: CopyLoc[0](Arg0: &BitVector)
2: ImmBorrowField[1](BitVector.length: u64)
3: ReadRef
4: Lt
5: BrFalse(7)
B1:
6: Branch(11)
B2:
7: MoveLoc[0](Arg0: &BitVector)
8: Pop
9: LdConst[0](u64: 131072)
10: Abort
B3:
11: CopyLoc[1](Arg1: u64)
12: StLoc[2](loc0: u64)
B4:
13: CopyLoc[2](loc0: u64)
14: CopyLoc[0](Arg0: &BitVector)
15: ImmBorrowField[1](BitVector.length: u64)
16: ReadRef
17: Lt
18: BrFalse(33)
B5:
19: CopyLoc[0](Arg0: &BitVector)
20: CopyLoc[2](loc0: u64)
21: Call is_index_set(&BitVector, u64): bool
22: Not
23: BrFalse(28)
B6:
24: Branch(25)
B7:
25: MoveLoc[0](Arg0: &BitVector)
26: Pop
27: Branch(33)
B8:
28: MoveLoc[2](loc0: u64)
29: LdU64(1)
30: Add
31: StLoc[2](loc0: u64)
32: Branch(13)
B9:
33: MoveLoc[2](loc0: u64)
34: MoveLoc[1](Arg1: u64)
35: Sub
36: Ret
}
Constants [
0 => u64: 131072
1 => u64: 131073
2 => u64: 1
3 => u64: 1024
]
}
bool
// Move bytecode v6
module 1.bool {
}
debug
// Move bytecode v6
module 1.debug {
native public print<Ty0>(Arg0: &Ty0);
native public print_stack_trace();
}
fixed_point32
// Move bytecode v6
module 1.fixed_point32 {
struct FixedPoint32 has copy, drop, store {
value: u64
}
public multiply_u64(Arg0: u64, Arg1: FixedPoint32): u64 {
L2: loc0: u128
B0:
0: MoveLoc[0](Arg0: u64)
1: CastU128
2: ImmBorrowLoc[1](Arg1: FixedPoint32)
3: ImmBorrowField[0](FixedPoint32.value: u64)
4: ReadRef
5: CastU128
6: Mul
7: LdU8(32)
8: Shr
9: StLoc[2](loc0: u128)
10: CopyLoc[2](loc0: u128)
11: LdConst[0](u128: 1844..)
12: Le
13: BrFalse(15)
B1:
14: Branch(17)
B2:
15: LdConst[3](u64: 131075)
16: Abort
B3:
17: MoveLoc[2](loc0: u128)
18: CastU64
19: Ret
}
public divide_u64(Arg0: u64, Arg1: FixedPoint32): u64 {
L2: loc0: u128
B0:
0: ImmBorrowLoc[1](Arg1: FixedPoint32)
1: ImmBorrowField[0](FixedPoint32.value: u64)
2: ReadRef
3: LdU64(0)
4: Neq
5: BrFalse(7)
B1:
6: Branch(9)
B2:
7: LdConst[4](u64: 65540)
8: Abort
B3:
9: MoveLoc[0](Arg0: u64)
10: CastU128
11: LdU8(32)
12: Shl
13: ImmBorrowLoc[1](Arg1: FixedPoint32)
14: ImmBorrowField[0](FixedPoint32.value: u64)
15: ReadRef
16: CastU128
17: Div
18: StLoc[2](loc0: u128)
19: CopyLoc[2](loc0: u128)
20: LdConst[0](u128: 1844..)
21: Le
22: BrFalse(24)
B4:
23: Branch(26)
B5:
24: LdConst[2](u64: 131074)
25: Abort
B6:
26: MoveLoc[2](loc0: u128)
27: CastU64
28: Ret
}
public create_from_rational(Arg0: u64, Arg1: u64): FixedPoint32 {
L2: loc0: bool
L3: loc1: u128
L4: loc2: u128
L5: loc3: u128
B0:
0: CopyLoc[0](Arg0: u64)
1: CastU128
2: LdU8(64)
3: Shl
4: StLoc[5](loc3: u128)
5: MoveLoc[1](Arg1: u64)
6: CastU128
7: LdU8(32)
8: Shl
9: StLoc[4](loc2: u128)
10: CopyLoc[4](loc2: u128)
11: LdU128(0)
12: Neq
13: BrFalse(15)
B1:
14: Branch(17)
B2:
15: LdConst[1](u64: 65537)
16: Abort
B3:
17: MoveLoc[5](loc3: u128)
18: MoveLoc[4](loc2: u128)
19: Div
20: StLoc[3](loc1: u128)
21: CopyLoc[3](loc1: u128)
22: LdU128(0)
23: Neq
24: BrFalse(28)
B4:
25: LdTrue
26: StLoc[2](loc0: bool)
27: Branch(32)
B5:
28: MoveLoc[0](Arg0: u64)
29: LdU64(0)
30: Eq
31: StLoc[2](loc0: bool)
B6:
32: MoveLoc[2](loc0: bool)
33: BrFalse(35)
B7:
34: Branch(37)
B8:
35: LdConst[5](u64: 131077)
36: Abort
B9:
37: CopyLoc[3](loc1: u128)
38: LdConst[0](u128: 1844..)
39: Le
40: BrFalse(42)
B10:
41: Branch(44)
B11:
42: LdConst[5](u64: 131077)
43: Abort
B12:
44: MoveLoc[3](loc1: u128)
45: CastU64
46: Pack[0](FixedPoint32)
47: Ret
}
public create_from_raw_value(Arg0: u64): FixedPoint32 {
B0:
0: MoveLoc[0](Arg0: u64)
1: Pack[0](FixedPoint32)
2: Ret
}
public get_raw_value(Arg0: FixedPoint32): u64 {
B0:
0: ImmBorrowLoc[0](Arg0: FixedPoint32)
1: ImmBorrowField[0](FixedPoint32.value: u64)
2: ReadRef
3: Ret
}
public is_zero(Arg0: FixedPoint32): bool {
B0:
0: ImmBorrowLoc[0](Arg0: FixedPoint32)
1: ImmBorrowField[0](FixedPoint32.value: u64)
2: ReadRef
3: LdU64(0)
4: Eq
5: Ret
}
Constants [
0 => u128: 18446744073709551615
1 => u64: 65537
2 => u64: 131074
3 => u64: 131075
4 => u64: 65540
5 => u64: 131077
]
}
hash
// Move bytecode v6
module 1.hash {
native public sha2_256(Arg0: vector<u8>): vector<u8>;
native public sha3_256(Arg0: vector<u8>): vector<u8>;
}
macros
// Move bytecode v6
module 1.macros {
}
option
// Move bytecode v6
module 1.option {
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
struct Option<Ty0> has copy, drop, store {
vec: vector<Ty0>
}
public none<Ty0>(): Option<Ty0> {
B0:
0: VecPack(2, 0)
1: PackGeneric[0](Option<Ty0>)
2: Ret
}
public some<Ty0>(Arg0: Ty0): Option<Ty0> {
B0:
0: MoveLoc[0](Arg0: Ty0)
1: Call vector::singleton<Ty0>(Ty0): vector<Ty0>
2: PackGeneric[0](Option<Ty0>)
3: Ret
}
public is_none<Ty0>(Arg0: &Option<Ty0>): bool {
B0:
0: MoveLoc[0](Arg0: &Option<Ty0>)
1: ImmBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
2: Call vector::is_empty<Ty0>(&vector<Ty0>): bool
3: Ret
}
public is_some<Ty0>(Arg0: &Option<Ty0>): bool {
B0:
0: MoveLoc[0](Arg0: &Option<Ty0>)
1: ImmBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
2: Call vector::is_empty<Ty0>(&vector<Ty0>): bool
3: Not
4: Ret
}
public contains<Ty0>(Arg0: &Option<Ty0>, Arg1: &Ty0): bool {
B0:
0: MoveLoc[0](Arg0: &Option<Ty0>)
1: ImmBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
2: MoveLoc[1](Arg1: &Ty0)
3: Call vector::contains<Ty0>(&vector<Ty0>, &Ty0): bool
4: Ret
}
public borrow<Ty0>(Arg0: &Option<Ty0>): &Ty0 {
B0:
0: CopyLoc[0](Arg0: &Option<Ty0>)
1: Call is_some<Ty0>(&Option<Ty0>): bool
2: BrFalse(4)
B1:
3: Branch(8)
B2:
4: MoveLoc[0](Arg0: &Option<Ty0>)
5: Pop
6: LdConst[1](u64: 262145)
7: Abort
B3:
8: MoveLoc[0](Arg0: &Option<Ty0>)
9: ImmBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
10: LdU64(0)
11: VecImmBorrow(2)
12: Ret
}
public borrow_with_default<Ty0>(Arg0: &Option<Ty0>, Arg1: &Ty0): &Ty0 {
L2: loc0: &Ty0
L3: loc1: &vector<Ty0>
B0:
0: MoveLoc[0](Arg0: &Option<Ty0>)
1: ImmBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
2: StLoc[3](loc1: &vector<Ty0>)
3: CopyLoc[3](loc1: &vector<Ty0>)
4: Call vector::is_empty<Ty0>(&vector<Ty0>): bool
5: BrFalse(11)
B1:
6: MoveLoc[3](loc1: &vector<Ty0>)
7: Pop
8: MoveLoc[1](Arg1: &Ty0)
9: StLoc[2](loc0: &Ty0)
10: Branch(17)
B2:
11: MoveLoc[1](Arg1: &Ty0)
12: Pop
13: MoveLoc[3](loc1: &vector<Ty0>)
14: LdU64(0)
15: VecImmBorrow(2)
16: StLoc[2](loc0: &Ty0)
B3:
17: MoveLoc[2](loc0: &Ty0)
18: Ret
}
public get_with_default<Ty0: copy + drop>(Arg0: &Option<Ty0>, Arg1: Ty0): Ty0 {
L2: loc0: Ty0
L3: loc1: &vector<Ty0>
B0:
0: MoveLoc[0](Arg0: &Option<Ty0>)
1: ImmBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
2: StLoc[3](loc1: &vector<Ty0>)
3: CopyLoc[3](loc1: &vector<Ty0>)
4: Call vector::is_empty<Ty0>(&vector<Ty0>): bool
5: BrFalse(11)
B1:
6: MoveLoc[3](loc1: &vector<Ty0>)
7: Pop
8: MoveLoc[1](Arg1: Ty0)
9: StLoc[2](loc0: Ty0)
10: Branch(16)
B2:
11: MoveLoc[3](loc1: &vector<Ty0>)
12: LdU64(0)
13: VecImmBorrow(2)
14: ReadRef
15: StLoc[2](loc0: Ty0)
B3:
16: MoveLoc[2](loc0: Ty0)
17: Ret
}
public fill<Ty0>(Arg0: &mut Option<Ty0>, Arg1: Ty0) {
L2: loc0: &mut vector<Ty0>
B0:
0: MoveLoc[0](Arg0: &mut Option<Ty0>)
1: MutBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
2: StLoc[2](loc0: &mut vector<Ty0>)
3: CopyLoc[2](loc0: &mut vector<Ty0>)
4: FreezeRef
5: Call vector::is_empty<Ty0>(&vector<Ty0>): bool
6: BrFalse(8)
B1:
7: Branch(12)
B2:
8: MoveLoc[2](loc0: &mut vector<Ty0>)
9: Pop
10: LdConst[0](u64: 262144)
11: Abort
B3:
12: MoveLoc[2](loc0: &mut vector<Ty0>)
13: MoveLoc[1](Arg1: Ty0)
14: VecPushBack(2)
15: Ret
}
public extract<Ty0>(Arg0: &mut Option<Ty0>): Ty0 {
B0:
0: CopyLoc[0](Arg0: &mut Option<Ty0>)
1: FreezeRef
2: Call is_some<Ty0>(&Option<Ty0>): bool
3: BrFalse(5)
B1:
4: Branch(9)
B2:
5: MoveLoc[0](Arg0: &mut Option<Ty0>)
6: Pop
7: LdConst[1](u64: 262145)
8: Abort
B3:
9: MoveLoc[0](Arg0: &mut Option<Ty0>)
10: MutBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
11: VecPopBack(2)
12: Ret
}
public borrow_mut<Ty0>(Arg0: &mut Option<Ty0>): &mut Ty0 {
B0:
0: CopyLoc[0](Arg0: &mut Option<Ty0>)
1: FreezeRef
2: Call is_some<Ty0>(&Option<Ty0>): bool
3: BrFalse(5)
B1:
4: Branch(9)
B2:
5: MoveLoc[0](Arg0: &mut Option<Ty0>)
6: Pop
7: LdConst[1](u64: 262145)
8: Abort
B3:
9: MoveLoc[0](Arg0: &mut Option<Ty0>)
10: MutBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
11: LdU64(0)
12: VecMutBorrow(2)
13: Ret
}
public swap<Ty0>(Arg0: &mut Option<Ty0>, Arg1: Ty0): Ty0 {
L2: loc0: Ty0
L3: loc1: &mut vector<Ty0>
B0:
0: CopyLoc[0](Arg0: &mut Option<Ty0>)
1: FreezeRef
2: Call is_some<Ty0>(&Option<Ty0>): bool
3: BrFalse(5)
B1:
4: Branch(9)
B2:
5: MoveLoc[0](Arg0: &mut Option<Ty0>)
6: Pop
7: LdConst[1](u64: 262145)
8: Abort
B3:
9: MoveLoc[0](Arg0: &mut Option<Ty0>)
10: MutBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
11: StLoc[3](loc1: &mut vector<Ty0>)
12: CopyLoc[3](loc1: &mut vector<Ty0>)
13: VecPopBack(2)
14: StLoc[2](loc0: Ty0)
15: MoveLoc[3](loc1: &mut vector<Ty0>)
16: MoveLoc[1](Arg1: Ty0)
17: VecPushBack(2)
18: MoveLoc[2](loc0: Ty0)
19: Ret
}
public swap_or_fill<Ty0>(Arg0: &mut Option<Ty0>, Arg1: Ty0): Option<Ty0> {
L2: loc0: Option<Ty0>
L3: loc1: Option<Ty0>
L4: loc2: &mut vector<Ty0>
B0:
0: MoveLoc[0](Arg0: &mut Option<Ty0>)
1: MutBorrowFieldGeneric[0](Option.vec: vector<Ty0>)
2: StLoc[4](loc2: &mut vector<Ty0>)
3: CopyLoc[4](loc2: &mut vector<Ty0>)
4: FreezeRef
5: Call vector::is_empty<Ty0>(&vector<Ty0>): bool
6: BrFalse(10)
B1:
7: Call none<Ty0>(): Option<Ty0>
8: StLoc[2](loc0: Option<Ty0>)
9: Branch(14)
B2:
10: CopyLoc[4](loc2: &mut vector<Ty0>)
11: VecPopBack(2)
12: Call some<Ty0>(Ty0): Option<Ty0>
13: StLoc[2](loc0: Option<Ty0>)
B3:
14: MoveLoc[2](loc0: Option<Ty0>)
15: StLoc[3](loc1: Option<Ty0>)
16: MoveLoc[4](loc2: &mut vector<Ty0>)
17: MoveLoc[1](Arg1: Ty0)
18: VecPushBack(2)
19: MoveLoc[3](loc1: Option<Ty0>)
20: Ret
}
public destroy_with_default<Ty0: drop>(Arg0: Option<Ty0>, Arg1: Ty0): Ty0 {
L2: loc0: Ty0
L3: loc1: vector<Ty0>
B0:
0: MoveLoc[0](Arg0: Option<Ty0>)
1: UnpackGeneric[0](Option<Ty0>)
2: StLoc[3](loc1: vector<Ty0>)
3: ImmBorrowLoc[3](loc1: vector<Ty0>)
4: Call vector::is_empty<Ty0>(&vector<Ty0>): bool
5: BrFalse(9)
B1:
6: MoveLoc[1](Arg1: Ty0)
7: StLoc[2](loc0: Ty0)
8: Branch(12)
B2:
9: MutBorrowLoc[3](loc1: vector<Ty0>)
10: VecPopBack(2)
11: StLoc[2](loc0: Ty0)
B3:
12: MoveLoc[2](loc0: Ty0)
13: Ret
}
public destroy_some<Ty0>(Arg0: Option<Ty0>): Ty0 {
L1: loc0: Ty0
L2: loc1: vector<Ty0>
B0:
0: ImmBorrowLoc[0](Arg0: Option<Ty0>)
1: Call is_some<Ty0>(&Option<Ty0>): bool
2: BrFalse(4)
B1:
3: Branch(6)
B2:
4: LdConst[1](u64: 262145)
5: Abort
B3:
6: MoveLoc[0](Arg0: Option<Ty0>)
7: UnpackGeneric[0](Option<Ty0>)
8: StLoc[2](loc1: vector<Ty0>)
9: MutBorrowLoc[2](loc1: vector<Ty0>)
10: VecPopBack(2)
11: StLoc[1](loc0: Ty0)
12: MoveLoc[2](loc1: vector<Ty0>)
13: VecUnpack(2, 0)
14: MoveLoc[1](loc0: Ty0)
15: Ret
}
public destroy_none<Ty0>(Arg0: Option<Ty0>) {
B0:
0: ImmBorrowLoc[0](Arg0: Option<Ty0>)
1: Call is_none<Ty0>(&Option<Ty0>): bool
2: BrFalse(4)
B1:
3: Branch(6)
B2:
4: LdConst[0](u64: 262144)
5: Abort
B3:
6: MoveLoc[0](Arg0: Option<Ty0>)
7: UnpackGeneric[0](Option<Ty0>)
8: VecUnpack(2, 0)
9: Ret
}
public to_vec<Ty0>(Arg0: Option<Ty0>): vector<Ty0> {
B0:
0: MoveLoc[0](Arg0: Option<Ty0>)
1: UnpackGeneric[0](Option<Ty0>)
2: Ret
}
Constants [
0 => u64: 262144
1 => u64: 262145
]
}
string
// Move bytecode v6
module 1.string {
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
struct String has copy, drop, store {
bytes: vector<u8>
}
public utf8(Arg0: vector<u8>): String {
B0:
0: ImmBorrowLoc[0](Arg0: vector<u8>)
1: Call internal_check_utf8(&vector<u8>): bool
2: BrFalse(4)
B1:
3: Branch(6)
B2:
4: LdConst[0](u64: 1)
5: Abort
B3:
6: MoveLoc[0](Arg0: vector<u8>)
7: Pack[0](String)
8: Ret
}
public from_ascii(Arg0: String): String {
B0:
0: MoveLoc[0](Arg0: String)
1: Call ascii::into_bytes(String): vector<u8>
2: Pack[0](String)
3: Ret
}
public to_ascii(Arg0: String): String {
B0:
0: MoveLoc[0](Arg0: String)
1: Unpack[0](String)
2: Call ascii::string(vector<u8>): String
3: Ret
}
public try_utf8(Arg0: vector<u8>): Option<String> {
L1: loc0: Option<String>
B0:
0: ImmBorrowLoc[0](Arg0: vector<u8>)
1: Call internal_check_utf8(&vector<u8>): bool
2: BrFalse(8)
B1:
3: MoveLoc[0](Arg0: vector<u8>)
4: Pack[0](String)
5: Call option::some<String>(String): Option<String>
6: StLoc[1](loc0: Option<String>)
7: Branch(10)
B2:
8: Call option::none<String>(): Option<String>
9: StLoc[1](loc0: Option<String>)
B3:
10: MoveLoc[1](loc0: Option<String>)
11: Ret
}
public as_bytes(Arg0: &String): &vector<u8> {
B0:
0: MoveLoc[0](Arg0: &String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: Ret
}
public into_bytes(Arg0: String): vector<u8> {
B0:
0: MoveLoc[0](Arg0: String)
1: Unpack[0](String)
2: Ret
}
public is_empty(Arg0: &String): bool {
B0:
0: MoveLoc[0](Arg0: &String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: Call vector::is_empty<u8>(&vector<u8>): bool
3: Ret
}
public length(Arg0: &String): u64 {
B0:
0: MoveLoc[0](Arg0: &String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: VecLen(19)
3: Ret
}
public append(Arg0: &mut String, Arg1: String) {
B0:
0: MoveLoc[0](Arg0: &mut String)
1: MutBorrowField[0](String.bytes: vector<u8>)
2: ImmBorrowLoc[1](Arg1: String)
3: ImmBorrowField[0](String.bytes: vector<u8>)
4: ReadRef
5: Call vector::append<u8>(&mut vector<u8>, vector<u8>)
6: Ret
}
public append_utf8(Arg0: &mut String, Arg1: vector<u8>) {
B0:
0: MoveLoc[0](Arg0: &mut String)
1: MoveLoc[1](Arg1: vector<u8>)
2: Call utf8(vector<u8>): String
3: Call append(&mut String, String)
4: Ret
}
public insert(Arg0: &mut String, Arg1: u64, Arg2: String) {
L3: loc0: bool
L4: loc1: &vector<u8>
L5: loc2: String
L6: loc3: String
L7: loc4: u64
B0:
0: CopyLoc[0](Arg0: &mut String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: StLoc[4](loc1: &vector<u8>)
3: CopyLoc[1](Arg1: u64)
4: CopyLoc[4](loc1: &vector<u8>)
5: VecLen(19)
6: Le
7: BrFalse(13)
B1:
8: MoveLoc[4](loc1: &vector<u8>)
9: CopyLoc[1](Arg1: u64)
10: Call internal_is_char_boundary(&vector<u8>, u64): bool
11: StLoc[3](loc0: bool)
12: Branch(17)
B2:
13: MoveLoc[4](loc1: &vector<u8>)
14: Pop
15: LdFalse
16: StLoc[3](loc0: bool)
B3:
17: MoveLoc[3](loc0: bool)
18: BrFalse(20)
B4:
19: Branch(24)
B5:
20: MoveLoc[0](Arg0: &mut String)
21: Pop
22: LdConst[1](u64: 2)
23: Abort
B6:
24: CopyLoc[0](Arg0: &mut String)
25: FreezeRef
26: Call length(&String): u64
27: StLoc[7](loc4: u64)
28: CopyLoc[0](Arg0: &mut String)
29: FreezeRef
30: LdU64(0)
31: CopyLoc[1](Arg1: u64)
32: Call substring(&String, u64, u64): String
33: StLoc[6](loc3: String)
34: CopyLoc[0](Arg0: &mut String)
35: FreezeRef
36: MoveLoc[1](Arg1: u64)
37: MoveLoc[7](loc4: u64)
38: Call substring(&String, u64, u64): String
39: StLoc[5](loc2: String)
40: MutBorrowLoc[6](loc3: String)
41: MoveLoc[2](Arg2: String)
42: Call append(&mut String, String)
43: MutBorrowLoc[6](loc3: String)
44: MoveLoc[5](loc2: String)
45: Call append(&mut String, String)
46: MoveLoc[6](loc3: String)
47: MoveLoc[0](Arg0: &mut String)
48: WriteRef
49: Ret
}
public substring(Arg0: &String, Arg1: u64, Arg2: u64): String {
L3: loc0: bool
L4: loc1: &vector<u8>
L5: loc2: u64
B0:
0: MoveLoc[0](Arg0: &String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: StLoc[4](loc1: &vector<u8>)
3: CopyLoc[4](loc1: &vector<u8>)
4: VecLen(19)
5: StLoc[5](loc2: u64)
6: CopyLoc[2](Arg2: u64)
7: MoveLoc[5](loc2: u64)
8: Le
9: BrFalse(29)
B1:
10: CopyLoc[1](Arg1: u64)
11: CopyLoc[2](Arg2: u64)
12: Le
13: BrFalse(26)
B2:
14: CopyLoc[4](loc1: &vector<u8>)
15: CopyLoc[1](Arg1: u64)
16: Call internal_is_char_boundary(&vector<u8>, u64): bool
17: BrFalse(23)
B3:
18: CopyLoc[4](loc1: &vector<u8>)
19: CopyLoc[2](Arg2: u64)
20: Call internal_is_char_boundary(&vector<u8>, u64): bool
21: StLoc[3](loc0: bool)
22: Branch(31)
B4:
23: LdFalse
24: StLoc[3](loc0: bool)
25: Branch(31)
B5:
26: LdFalse
27: StLoc[3](loc0: bool)
28: Branch(31)
B6:
29: LdFalse
30: StLoc[3](loc0: bool)
B7:
31: MoveLoc[3](loc0: bool)
32: BrFalse(34)
B8:
33: Branch(38)
B9:
34: MoveLoc[4](loc1: &vector<u8>)
35: Pop
36: LdConst[1](u64: 2)
37: Abort
B10:
38: MoveLoc[4](loc1: &vector<u8>)
39: MoveLoc[1](Arg1: u64)
40: MoveLoc[2](Arg2: u64)
41: Call internal_sub_string(&vector<u8>, u64, u64): vector<u8>
42: Pack[0](String)
43: Ret
}
public index_of(Arg0: &String, Arg1: &String): u64 {
B0:
0: MoveLoc[0](Arg0: &String)
1: ImmBorrowField[0](String.bytes: vector<u8>)
2: MoveLoc[1](Arg1: &String)
3: ImmBorrowField[0](String.bytes: vector<u8>)
4: Call internal_index_of(&vector<u8>, &vector<u8>): u64
5: Ret
}
native internal_check_utf8(Arg0: &vector<u8>): bool;
native internal_is_char_boundary(Arg0: &vector<u8>, Arg1: u64): bool;
native internal_sub_string(Arg0: &vector<u8>, Arg1: u64, Arg2: u64): vector<u8>;
native internal_index_of(Arg0: &vector<u8>, Arg1: &vector<u8>): u64;
public bytes(Arg0: &String): &vector<u8> {
B0:
0: MoveLoc[0](Arg0: &String)
1: Call as_bytes(&String): &vector<u8>
2: Ret
}
public sub_string(Arg0: &String, Arg1: u64, Arg2: u64): String {
B0:
0: MoveLoc[0](Arg0: &String)
1: MoveLoc[1](Arg1: u64)
2: MoveLoc[2](Arg2: u64)
3: Call substring(&String, u64, u64): String
4: Ret
}
Constants [
0 => u64: 1
1 => u64: 2
]
}
type_name
// Move bytecode v6
module 1.type_name {
use 0000000000000000000000000000000000000000000000000000000000000001::address;
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
struct TypeName has copy, drop, store {
name: String
}
native public get<Ty0>(): TypeName;
native public get_with_original_ids<Ty0>(): TypeName;
public is_primitive(Arg0: &TypeName): bool {
L1: loc0: bool
L2: loc1: &vector<u8>
L3: loc2: vector<u8>
L4: loc3: &vector<u8>
L5: loc4: vector<u8>
L6: loc5: &vector<u8>
L7: loc6: vector<u8>
L8: loc7: &vector<u8>
L9: loc8: vector<u8>
L10: loc9: &vector<u8>
L11: loc10: bool
L12: loc11: vector<u8>
L13: loc12: &vector<u8>
L14: loc13: vector<u8>
L15: loc14: &vector<u8>
L16: loc15: vector<u8>
L17: loc16: &vector<u8>
L18: loc17: vector<u8>
L19: loc18: &vector<u8>
B0:
0: MoveLoc[0](Arg0: &TypeName)
1: ImmBorrowField[0](TypeName.name: String)
2: Call ascii::as_bytes(&String): &vector<u8>
3: StLoc[19](loc18: &vector<u8>)
4: CopyLoc[19](loc18: &vector<u8>)
5: StLoc[10](loc9: &vector<u8>)
6: LdConst[8](vector<u8>: "boo..)
7: StLoc[9](loc8: vector<u8>)
8: MoveLoc[10](loc9: &vector<u8>)
9: ImmBorrowLoc[9](loc8: vector<u8>)
10: Eq
11: BrFalse(17)
B1:
12: MoveLoc[19](loc18: &vector<u8>)
13: Pop
14: LdTrue
15: StLoc[1](loc0: bool)
16: Branch(187)
B2:
17: CopyLoc[19](loc18: &vector<u8>)
18: StLoc[8](loc7: &vector<u8>)
19: LdConst[9](vector<u8>: "u8"..)
20: StLoc[7](loc6: vector<u8>)
21: MoveLoc[8](loc7: &vector<u8>)
22: ImmBorrowLoc[7](loc6: vector<u8>)
23: Eq
24: BrFalse(30)
B3:
25: MoveLoc[19](loc18: &vector<u8>)
26: Pop
27: LdTrue
28: StLoc[1](loc0: bool)
29: Branch(187)
B4:
30: CopyLoc[19](loc18: &vector<u8>)
31: StLoc[6](loc5: &vector<u8>)
32: LdConst[10](vector<u8>: "u16..)
33: StLoc[5](loc4: vector<u8>)
34: MoveLoc[6](loc5: &vector<u8>)
35: ImmBorrowLoc[5](loc4: vector<u8>)
36: Eq
37: BrFalse(43)
B5:
38: MoveLoc[19](loc18: &vector<u8>)
39: Pop
40: LdTrue
41: StLoc[1](loc0: bool)
42: Branch(187)
B6:
43: CopyLoc[19](loc18: &vector<u8>)
44: StLoc[4](loc3: &vector<u8>)
45: LdConst[11](vector<u8>: "u32..)
46: StLoc[3](loc2: vector<u8>)
47: MoveLoc[4](loc3: &vector<u8>)
48: ImmBorrowLoc[3](loc2: vector<u8>)
49: Eq
50: BrFalse(56)
B7:
51: MoveLoc[19](loc18: &vector<u8>)
52: Pop
53: LdTrue
54: StLoc[1](loc0: bool)
55: Branch(187)
B8:
56: CopyLoc[19](loc18: &vector<u8>)
57: StLoc[2](loc1: &vector<u8>)
58: LdConst[12](vector<u8>: "u64..)
59: StLoc[18](loc17: vector<u8>)
60: MoveLoc[2](loc1: &vector<u8>)
61: ImmBorrowLoc[18](loc17: vector<u8>)
62: Eq
63: BrFalse(69)
B9:
64: MoveLoc[19](loc18: &vector<u8>)
65: Pop
66: LdTrue
67: StLoc[1](loc0: bool)
68: Branch(187)
B10:
69: CopyLoc[19](loc18: &vector<u8>)
70: StLoc[17](loc16: &vector<u8>)
71: LdConst[13](vector<u8>: "u12..)
72: StLoc[16](loc15: vector<u8>)
73: MoveLoc[17](loc16: &vector<u8>)
74: ImmBorrowLoc[16](loc15: vector<u8>)
75: Eq
76: BrFalse(82)
B11:
77: MoveLoc[19](loc18: &vector<u8>)
78: Pop
79: LdTrue
80: StLoc[1](loc0: bool)
81: Branch(187)
B12:
82: CopyLoc[19](loc18: &vector<u8>)
83: StLoc[15](loc14: &vector<u8>)
84: LdConst[14](vector<u8>: "u25..)
85: StLoc[14](loc13: vector<u8>)
86: MoveLoc[15](loc14: &vector<u8>)
87: ImmBorrowLoc[14](loc13: vector<u8>)
88: Eq
89: BrFalse(95)
B13:
90: MoveLoc[19](loc18: &vector<u8>)
91: Pop
92: LdTrue
93: StLoc[1](loc0: bool)
94: Branch(187)
B14:
95: CopyLoc[19](loc18: &vector<u8>)
96: StLoc[13](loc12: &vector<u8>)
97: LdConst[15](vector<u8>: "add..)
98: StLoc[12](loc11: vector<u8>)
99: MoveLoc[13](loc12: &vector<u8>)
100: ImmBorrowLoc[12](loc11: vector<u8>)
101: Eq
102: BrFalse(108)
B15:
103: MoveLoc[19](loc18: &vector<u8>)
104: Pop
105: LdTrue
106: StLoc[1](loc0: bool)
107: Branch(187)
B16:
108: CopyLoc[19](loc18: &vector<u8>)
109: VecLen(8)
110: LdU64(6)
111: Ge
112: BrFalse(181)
B17:
113: CopyLoc[19](loc18: &vector<u8>)
114: LdU64(0)
115: VecImmBorrow(8)
116: ReadRef
117: LdConst[1](u8: 118)
118: Eq
119: BrFalse(176)
B18:
120: CopyLoc[19](loc18: &vector<u8>)
121: LdU64(1)
122: VecImmBorrow(8)
123: ReadRef
124: LdConst[2](u8: 101)
125: Eq
126: BrFalse(171)
B19:
127: CopyLoc[19](loc18: &vector<u8>)
128: LdU64(2)
129: VecImmBorrow(8)
130: ReadRef
131: LdConst[3](u8: 99)
132: Eq
133: BrFalse(166)
B20:
134: CopyLoc[19](loc18: &vector<u8>)
135: LdU64(3)
136: VecImmBorrow(8)
137: ReadRef
138: LdConst[4](u8: 116)
139: Eq
140: BrFalse(161)
B21:
141: CopyLoc[19](loc18: &vector<u8>)
142: LdU64(4)
143: VecImmBorrow(8)
144: ReadRef
145: LdConst[5](u8: 111)
146: Eq
147: BrFalse(156)
B22:
148: MoveLoc[19](loc18: &vector<u8>)
149: LdU64(5)
150: VecImmBorrow(8)
151: ReadRef
152: LdConst[6](u8: 114)
153: Eq
154: StLoc[11](loc10: bool)
155: Branch(185)
B23:
156: MoveLoc[19](loc18: &vector<u8>)
157: Pop
158: LdFalse
159: StLoc[11](loc10: bool)
160: Branch(185)
B24:
161: MoveLoc[19](loc18: &vector<u8>)
162: Pop
163: LdFalse
164: StLoc[11](loc10: bool)
165: Branch(185)
B25:
166: MoveLoc[19](loc18: &vector<u8>)
167: Pop
168: LdFalse
169: StLoc[11](loc10: bool)
170: Branch(185)
B26:
171: MoveLoc[19](loc18: &vector<u8>)
172: Pop
173: LdFalse
174: StLoc[11](loc10: bool)
175: Branch(185)
B27:
176: MoveLoc[19](loc18: &vector<u8>)
177: Pop
178: LdFalse
179: StLoc[11](loc10: bool)
180: Branch(185)
B28:
181: MoveLoc[19](loc18: &vector<u8>)
182: Pop
183: LdFalse
184: StLoc[11](loc10: bool)
B29:
185: MoveLoc[11](loc10: bool)
186: StLoc[1](loc0: bool)
B30:
187: MoveLoc[1](loc0: bool)
188: Ret
}
public borrow_string(Arg0: &TypeName): &String {
B0:
0: MoveLoc[0](Arg0: &TypeName)
1: ImmBorrowField[0](TypeName.name: String)
2: Ret
}
public get_address(Arg0: &TypeName): String {
L1: loc0: vector<u8>
L2: loc1: u64
L3: loc2: u64
L4: loc3: &vector<u8>
B0:
0: CopyLoc[0](Arg0: &TypeName)
1: Call is_primitive(&TypeName): bool
2: Not
3: BrFalse(5)
B1:
4: Branch(9)
B2:
5: MoveLoc[0](Arg0: &TypeName)
6: Pop
7: LdConst[7](u64: 0)
8: Abort
B3:
9: Call address::length(): u64
10: LdU64(2)
11: Mul
12: StLoc[3](loc2: u64)
13: MoveLoc[0](Arg0: &TypeName)
14: ImmBorrowField[0](TypeName.name: String)
15: Call ascii::as_bytes(&String): &vector<u8>
16: StLoc[4](loc3: &vector<u8>)
17: LdConst[16](vector<u8>: "" /..)
18: StLoc[1](loc0: vector<u8>)
19: LdU64(0)
20: StLoc[2](loc1: u64)
B4:
21: CopyLoc[2](loc1: u64)
22: CopyLoc[3](loc2: u64)
23: Lt
24: BrFalse(36)
B5:
25: MutBorrowLoc[1](loc0: vector<u8>)
26: CopyLoc[4](loc3: &vector<u8>)
27: CopyLoc[2](loc1: u64)
28: VecImmBorrow(8)
29: ReadRef
30: VecPushBack(8)
31: MoveLoc[2](loc1: u64)
32: LdU64(1)
33: Add
34: StLoc[2](loc1: u64)
35: Branch(21)
B6:
36: MoveLoc[4](loc3: &vector<u8>)
37: Pop
38: MoveLoc[1](loc0: vector<u8>)
39: Call ascii::string(vector<u8>): String
40: Ret
}
public get_module(Arg0: &TypeName): String {
L1: loc0: &u8
L2: loc1: u8
L3: loc2: u64
L4: loc3: vector<u8>
L5: loc4: &vector<u8>
B0:
0: CopyLoc[0](Arg0: &TypeName)
1: Call is_primitive(&TypeName): bool
2: Not
3: BrFalse(5)
B1:
4: Branch(9)
B2:
5: MoveLoc[0](Arg0: &TypeName)
6: Pop
7: LdConst[7](u64: 0)
8: Abort
B3:
9: Call address::length(): u64
10: LdU64(2)
11: Mul
12: LdU64(2)
13: Add
14: StLoc[3](loc2: u64)
15: MoveLoc[0](Arg0: &TypeName)
16: ImmBorrowField[0](TypeName.name: String)
17: Call ascii::as_bytes(&String): &vector<u8>
18: StLoc[5](loc4: &vector<u8>)
19: LdConst[16](vector<u8>: "" /..)
20: StLoc[4](loc3: vector<u8>)
21: LdConst[0](u8: 58)
22: StLoc[2](loc1: u8)
B4:
23: CopyLoc[5](loc4: &vector<u8>)
24: CopyLoc[3](loc2: u64)
25: VecImmBorrow(8)
26: StLoc[1](loc0: &u8)
27: CopyLoc[1](loc0: &u8)
28: ImmBorrowLoc[2](loc1: u8)
29: Neq
30: BrFalse(40)
B5:
31: MutBorrowLoc[4](loc3: vector<u8>)
32: MoveLoc[1](loc0: &u8)
33: ReadRef
34: VecPushBack(8)
35: MoveLoc[3](loc2: u64)
36: LdU64(1)
37: Add
38: StLoc[3](loc2: u64)
39: Branch(23)
B6:
40: MoveLoc[5](loc4: &vector<u8>)
41: Pop
42: MoveLoc[1](loc0: &u8)
43: Pop
44: MoveLoc[4](loc3: vector<u8>)
45: Call ascii::string(vector<u8>): String
46: Ret
}
public into_string(Arg0: TypeName): String {
B0:
0: ImmBorrowLoc[0](Arg0: TypeName)
1: ImmBorrowField[0](TypeName.name: String)
2: ReadRef
3: Ret
}
Constants [
0 => u8: 58
1 => u8: 118
2 => u8: 101
3 => u8: 99
4 => u8: 116
5 => u8: 111
6 => u8: 114
7 => u64: 0
8 => vector<u8>: "bool" // interpreted as UTF8 string
9 => vector<u8>: "u8" // interpreted as UTF8 string
10 => vector<u8>: "u16" // interpreted as UTF8 string
11 => vector<u8>: "u32" // interpreted as UTF8 string
12 => vector<u8>: "u64" // interpreted as UTF8 string
13 => vector<u8>: "u128" // interpreted as UTF8 string
14 => vector<u8>: "u256" // interpreted as UTF8 string
15 => vector<u8>: "address" // interpreted as UTF8 string
16 => vector<u8>: "" // interpreted as UTF8 string
]
}
u128
// Move bytecode v6
module 1.u128 {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
public bitwise_not(Arg0: u128): u128 {
B0:
0: MoveLoc[0](Arg0: u128)
1: LdU128(340282366920938463463374607431768211455)
2: Xor
3: Ret
}
public max(Arg0: u128, Arg1: u128): u128 {
L2: loc0: u128
L3: loc1: u128
L4: loc2: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[3](loc1: u128)
2: MoveLoc[1](Arg1: u128)
3: StLoc[4](loc2: u128)
4: CopyLoc[3](loc1: u128)
5: CopyLoc[4](loc2: u128)
6: Gt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u128)
9: StLoc[2](loc0: u128)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u128)
12: StLoc[2](loc0: u128)
B3:
13: MoveLoc[2](loc0: u128)
14: Ret
}
public min(Arg0: u128, Arg1: u128): u128 {
L2: loc0: u128
L3: loc1: u128
L4: loc2: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[3](loc1: u128)
2: MoveLoc[1](Arg1: u128)
3: StLoc[4](loc2: u128)
4: CopyLoc[3](loc1: u128)
5: CopyLoc[4](loc2: u128)
6: Lt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u128)
9: StLoc[2](loc0: u128)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u128)
12: StLoc[2](loc0: u128)
B3:
13: MoveLoc[2](loc0: u128)
14: Ret
}
public diff(Arg0: u128, Arg1: u128): u128 {
L2: loc0: u128
L3: loc1: u128
L4: loc2: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[3](loc1: u128)
2: MoveLoc[1](Arg1: u128)
3: StLoc[4](loc2: u128)
4: CopyLoc[3](loc1: u128)
5: CopyLoc[4](loc2: u128)
6: Gt
7: BrFalse(13)
B1:
8: MoveLoc[3](loc1: u128)
9: MoveLoc[4](loc2: u128)
10: Sub
11: StLoc[2](loc0: u128)
12: Branch(17)
B2:
13: MoveLoc[4](loc2: u128)
14: MoveLoc[3](loc1: u128)
15: Sub
16: StLoc[2](loc0: u128)
B3:
17: MoveLoc[2](loc0: u128)
18: Ret
}
public divide_and_round_up(Arg0: u128, Arg1: u128): u128 {
L2: loc0: u128
L3: loc1: u128
L4: loc2: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[3](loc1: u128)
2: MoveLoc[1](Arg1: u128)
3: StLoc[4](loc2: u128)
4: CopyLoc[3](loc1: u128)
5: CopyLoc[4](loc2: u128)
6: Mod
7: LdU128(0)
8: Eq
9: BrFalse(15)
B1:
10: MoveLoc[3](loc1: u128)
11: MoveLoc[4](loc2: u128)
12: Div
13: StLoc[2](loc0: u128)
14: Branch(21)
B2:
15: MoveLoc[3](loc1: u128)
16: MoveLoc[4](loc2: u128)
17: Div
18: LdU128(1)
19: Add
20: StLoc[2](loc0: u128)
B3:
21: MoveLoc[2](loc0: u128)
22: Ret
}
public pow(Arg0: u128, Arg1: u8): u128 {
L2: loc0: u128
L3: loc1: u8
L4: loc2: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[2](loc0: u128)
2: MoveLoc[1](Arg1: u8)
3: StLoc[3](loc1: u8)
4: LdU128(1)
5: StLoc[4](loc2: u128)
B1:
6: CopyLoc[3](loc1: u8)
7: LdU8(1)
8: Ge
9: BrFalse(35)
B2:
10: Branch(11)
B3:
11: CopyLoc[3](loc1: u8)
12: LdU8(2)
13: Mod
14: LdU8(0)
15: Eq
16: BrFalse(26)
B4:
17: CopyLoc[2](loc0: u128)
18: MoveLoc[2](loc0: u128)
19: Mul
20: StLoc[2](loc0: u128)
21: MoveLoc[3](loc1: u8)
22: LdU8(2)
23: Div
24: StLoc[3](loc1: u8)
25: Branch(6)
B5:
26: MoveLoc[4](loc2: u128)
27: CopyLoc[2](loc0: u128)
28: Mul
29: StLoc[4](loc2: u128)
30: MoveLoc[3](loc1: u8)
31: LdU8(1)
32: Sub
33: StLoc[3](loc1: u8)
34: Branch(6)
B6:
35: MoveLoc[4](loc2: u128)
36: Ret
}
public sqrt(Arg0: u128): u128 {
L1: loc0: u256
L2: loc1: u256
L3: loc2: u128
L4: loc3: u256
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[3](loc2: u128)
2: LdU256(340282366920938463463374607431768211456)
3: StLoc[1](loc0: u256)
4: LdU256(0)
5: StLoc[2](loc1: u256)
6: MoveLoc[3](loc2: u128)
7: CastU256
8: StLoc[4](loc3: u256)
B1:
9: CopyLoc[1](loc0: u256)
10: LdU256(0)
11: Neq
12: BrFalse(42)
B2:
13: Branch(14)
B3:
14: CopyLoc[4](loc3: u256)
15: CopyLoc[2](loc1: u256)
16: CopyLoc[1](loc0: u256)
17: Add
18: Ge
19: BrFalse(33)
B4:
20: MoveLoc[4](loc3: u256)
21: CopyLoc[2](loc1: u256)
22: CopyLoc[1](loc0: u256)
23: Add
24: Sub
25: StLoc[4](loc3: u256)
26: MoveLoc[2](loc1: u256)
27: LdU8(1)
28: Shr
29: CopyLoc[1](loc0: u256)
30: Add
31: StLoc[2](loc1: u256)
32: Branch(37)
B5:
33: MoveLoc[2](loc1: u256)
34: LdU8(1)
35: Shr
36: StLoc[2](loc1: u256)
B6:
37: MoveLoc[1](loc0: u256)
38: LdU8(2)
39: Shr
40: StLoc[1](loc0: u256)
41: Branch(9)
B7:
42: MoveLoc[2](loc1: u256)
43: CastU128
44: Ret
}
public try_as_u8(Arg0: u128): Option<u8> {
L1: loc0: Option<u8>
L2: loc1: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[2](loc1: u128)
2: CopyLoc[2](loc1: u128)
3: LdU128(255)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u8>(): Option<u8>
7: StLoc[1](loc0: Option<u8>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u128)
10: CastU8
11: Call option::some<u8>(u8): Option<u8>
12: StLoc[1](loc0: Option<u8>)
B3:
13: MoveLoc[1](loc0: Option<u8>)
14: Ret
}
public try_as_u16(Arg0: u128): Option<u16> {
L1: loc0: Option<u16>
L2: loc1: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[2](loc1: u128)
2: CopyLoc[2](loc1: u128)
3: LdU128(65535)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u16>(): Option<u16>
7: StLoc[1](loc0: Option<u16>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u128)
10: CastU16
11: Call option::some<u16>(u16): Option<u16>
12: StLoc[1](loc0: Option<u16>)
B3:
13: MoveLoc[1](loc0: Option<u16>)
14: Ret
}
public try_as_u32(Arg0: u128): Option<u32> {
L1: loc0: Option<u32>
L2: loc1: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[2](loc1: u128)
2: CopyLoc[2](loc1: u128)
3: LdU128(4294967295)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u32>(): Option<u32>
7: StLoc[1](loc0: Option<u32>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u128)
10: CastU32
11: Call option::some<u32>(u32): Option<u32>
12: StLoc[1](loc0: Option<u32>)
B3:
13: MoveLoc[1](loc0: Option<u32>)
14: Ret
}
public try_as_u64(Arg0: u128): Option<u64> {
L1: loc0: Option<u64>
L2: loc1: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[2](loc1: u128)
2: CopyLoc[2](loc1: u128)
3: LdU128(18446744073709551615)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u64>(): Option<u64>
7: StLoc[1](loc0: Option<u64>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u128)
10: CastU64
11: Call option::some<u64>(u64): Option<u64>
12: StLoc[1](loc0: Option<u64>)
B3:
13: MoveLoc[1](loc0: Option<u64>)
14: Ret
}
public to_string(Arg0: u128): String {
L1: loc0: String
L2: loc1: vector<u8>
L3: loc2: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[3](loc2: u128)
2: CopyLoc[3](loc2: u128)
3: LdU128(0)
4: Eq
5: BrFalse(10)
B1:
6: LdConst[0](vector<u8>: "0" ..)
7: Call string::utf8(vector<u8>): String
8: StLoc[1](loc0: String)
9: Branch(34)
B2:
10: LdConst[1](vector<u8>: "" /..)
11: StLoc[2](loc1: vector<u8>)
B3:
12: CopyLoc[3](loc2: u128)
13: LdU128(0)
14: Neq
15: BrFalse(29)
B4:
16: MutBorrowLoc[2](loc1: vector<u8>)
17: LdU128(48)
18: CopyLoc[3](loc2: u128)
19: LdU128(10)
20: Mod
21: Add
22: CastU8
23: VecPushBack(13)
24: MoveLoc[3](loc2: u128)
25: LdU128(10)
26: Div
27: StLoc[3](loc2: u128)
28: Branch(12)
B5:
29: MutBorrowLoc[2](loc1: vector<u8>)
30: Call vector::reverse<u8>(&mut vector<u8>)
31: MoveLoc[2](loc1: vector<u8>)
32: Call string::utf8(vector<u8>): String
33: StLoc[1](loc0: String)
B6:
34: MoveLoc[1](loc0: String)
35: Ret
}
Constants [
0 => vector<u8>: "0" // interpreted as UTF8 string
1 => vector<u8>: "" // interpreted as UTF8 string
]
}
u16
// Move bytecode v6
module 1.u16 {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
public bitwise_not(Arg0: u16): u16 {
B0:
0: MoveLoc[0](Arg0: u16)
1: LdU16(65535)
2: Xor
3: Ret
}
public max(Arg0: u16, Arg1: u16): u16 {
L2: loc0: u16
L3: loc1: u16
L4: loc2: u16
B0:
0: MoveLoc[0](Arg0: u16)
1: StLoc[3](loc1: u16)
2: MoveLoc[1](Arg1: u16)
3: StLoc[4](loc2: u16)
4: CopyLoc[3](loc1: u16)
5: CopyLoc[4](loc2: u16)
6: Gt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u16)
9: StLoc[2](loc0: u16)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u16)
12: StLoc[2](loc0: u16)
B3:
13: MoveLoc[2](loc0: u16)
14: Ret
}
public min(Arg0: u16, Arg1: u16): u16 {
L2: loc0: u16
L3: loc1: u16
L4: loc2: u16
B0:
0: MoveLoc[0](Arg0: u16)
1: StLoc[3](loc1: u16)
2: MoveLoc[1](Arg1: u16)
3: StLoc[4](loc2: u16)
4: CopyLoc[3](loc1: u16)
5: CopyLoc[4](loc2: u16)
6: Lt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u16)
9: StLoc[2](loc0: u16)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u16)
12: StLoc[2](loc0: u16)
B3:
13: MoveLoc[2](loc0: u16)
14: Ret
}
public diff(Arg0: u16, Arg1: u16): u16 {
L2: loc0: u16
L3: loc1: u16
L4: loc2: u16
B0:
0: MoveLoc[0](Arg0: u16)
1: StLoc[3](loc1: u16)
2: MoveLoc[1](Arg1: u16)
3: StLoc[4](loc2: u16)
4: CopyLoc[3](loc1: u16)
5: CopyLoc[4](loc2: u16)
6: Gt
7: BrFalse(13)
B1:
8: MoveLoc[3](loc1: u16)
9: MoveLoc[4](loc2: u16)
10: Sub
11: StLoc[2](loc0: u16)
12: Branch(17)
B2:
13: MoveLoc[4](loc2: u16)
14: MoveLoc[3](loc1: u16)
15: Sub
16: StLoc[2](loc0: u16)
B3:
17: MoveLoc[2](loc0: u16)
18: Ret
}
public divide_and_round_up(Arg0: u16, Arg1: u16): u16 {
L2: loc0: u16
L3: loc1: u16
L4: loc2: u16
B0:
0: MoveLoc[0](Arg0: u16)
1: StLoc[3](loc1: u16)
2: MoveLoc[1](Arg1: u16)
3: StLoc[4](loc2: u16)
4: CopyLoc[3](loc1: u16)
5: CopyLoc[4](loc2: u16)
6: Mod
7: LdU16(0)
8: Eq
9: BrFalse(15)
B1:
10: MoveLoc[3](loc1: u16)
11: MoveLoc[4](loc2: u16)
12: Div
13: StLoc[2](loc0: u16)
14: Branch(21)
B2:
15: MoveLoc[3](loc1: u16)
16: MoveLoc[4](loc2: u16)
17: Div
18: LdU16(1)
19: Add
20: StLoc[2](loc0: u16)
B3:
21: MoveLoc[2](loc0: u16)
22: Ret
}
public pow(Arg0: u16, Arg1: u8): u16 {
L2: loc0: u16
L3: loc1: u8
L4: loc2: u16
B0:
0: MoveLoc[0](Arg0: u16)
1: StLoc[2](loc0: u16)
2: MoveLoc[1](Arg1: u8)
3: StLoc[3](loc1: u8)
4: LdU16(1)
5: StLoc[4](loc2: u16)
B1:
6: CopyLoc[3](loc1: u8)
7: LdU8(1)
8: Ge
9: BrFalse(35)
B2:
10: Branch(11)
B3:
11: CopyLoc[3](loc1: u8)
12: LdU8(2)
13: Mod
14: LdU8(0)
15: Eq
16: BrFalse(26)
B4:
17: CopyLoc[2](loc0: u16)
18: MoveLoc[2](loc0: u16)
19: Mul
20: StLoc[2](loc0: u16)
21: MoveLoc[3](loc1: u8)
22: LdU8(2)
23: Div
24: StLoc[3](loc1: u8)
25: Branch(6)
B5:
26: MoveLoc[4](loc2: u16)
27: CopyLoc[2](loc0: u16)
28: Mul
29: StLoc[4](loc2: u16)
30: MoveLoc[3](loc1: u8)
31: LdU8(1)
32: Sub
33: StLoc[3](loc1: u8)
34: Branch(6)
B6:
35: MoveLoc[4](loc2: u16)
36: Ret
}
public sqrt(Arg0: u16): u16 {
L1: loc0: u32
L2: loc1: u32
L3: loc2: u16
L4: loc3: u32
B0:
0: MoveLoc[0](Arg0: u16)
1: StLoc[3](loc2: u16)
2: LdU32(65536)
3: StLoc[1](loc0: u32)
4: LdU32(0)
5: StLoc[2](loc1: u32)
6: MoveLoc[3](loc2: u16)
7: CastU32
8: StLoc[4](loc3: u32)
B1:
9: CopyLoc[1](loc0: u32)
10: LdU32(0)
11: Neq
12: BrFalse(42)
B2:
13: Branch(14)
B3:
14: CopyLoc[4](loc3: u32)
15: CopyLoc[2](loc1: u32)
16: CopyLoc[1](loc0: u32)
17: Add
18: Ge
19: BrFalse(33)
B4:
20: MoveLoc[4](loc3: u32)
21: CopyLoc[2](loc1: u32)
22: CopyLoc[1](loc0: u32)
23: Add
24: Sub
25: StLoc[4](loc3: u32)
26: MoveLoc[2](loc1: u32)
27: LdU8(1)
28: Shr
29: CopyLoc[1](loc0: u32)
30: Add
31: StLoc[2](loc1: u32)
32: Branch(37)
B5:
33: MoveLoc[2](loc1: u32)
34: LdU8(1)
35: Shr
36: StLoc[2](loc1: u32)
B6:
37: MoveLoc[1](loc0: u32)
38: LdU8(2)
39: Shr
40: StLoc[1](loc0: u32)
41: Branch(9)
B7:
42: MoveLoc[2](loc1: u32)
43: CastU16
44: Ret
}
public try_as_u8(Arg0: u16): Option<u8> {
L1: loc0: Option<u8>
L2: loc1: u16
B0:
0: MoveLoc[0](Arg0: u16)
1: StLoc[2](loc1: u16)
2: CopyLoc[2](loc1: u16)
3: LdU16(255)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u8>(): Option<u8>
7: StLoc[1](loc0: Option<u8>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u16)
10: CastU8
11: Call option::some<u8>(u8): Option<u8>
12: StLoc[1](loc0: Option<u8>)
B3:
13: MoveLoc[1](loc0: Option<u8>)
14: Ret
}
public to_string(Arg0: u16): String {
L1: loc0: String
L2: loc1: vector<u8>
L3: loc2: u16
B0:
0: MoveLoc[0](Arg0: u16)
1: StLoc[3](loc2: u16)
2: CopyLoc[3](loc2: u16)
3: LdU16(0)
4: Eq
5: BrFalse(10)
B1:
6: LdConst[0](vector<u8>: "0" ..)
7: Call string::utf8(vector<u8>): String
8: StLoc[1](loc0: String)
9: Branch(34)
B2:
10: LdConst[1](vector<u8>: "" /..)
11: StLoc[2](loc1: vector<u8>)
B3:
12: CopyLoc[3](loc2: u16)
13: LdU16(0)
14: Neq
15: BrFalse(29)
B4:
16: MutBorrowLoc[2](loc1: vector<u8>)
17: LdU16(48)
18: CopyLoc[3](loc2: u16)
19: LdU16(10)
20: Mod
21: Add
22: CastU8
23: VecPushBack(10)
24: MoveLoc[3](loc2: u16)
25: LdU16(10)
26: Div
27: StLoc[3](loc2: u16)
28: Branch(12)
B5:
29: MutBorrowLoc[2](loc1: vector<u8>)
30: Call vector::reverse<u8>(&mut vector<u8>)
31: MoveLoc[2](loc1: vector<u8>)
32: Call string::utf8(vector<u8>): String
33: StLoc[1](loc0: String)
B6:
34: MoveLoc[1](loc0: String)
35: Ret
}
Constants [
0 => vector<u8>: "0" // interpreted as UTF8 string
1 => vector<u8>: "" // interpreted as UTF8 string
]
}
u256
// Move bytecode v6
module 1.u256 {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
public bitwise_not(Arg0: u256): u256 {
B0:
0: MoveLoc[0](Arg0: u256)
1: LdU256(115792089237316195423570985008687907853269984665640564039457584007913129639935)
2: Xor
3: Ret
}
public max(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[3](loc1: u256)
2: MoveLoc[1](Arg1: u256)
3: StLoc[4](loc2: u256)
4: CopyLoc[3](loc1: u256)
5: CopyLoc[4](loc2: u256)
6: Gt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u256)
9: StLoc[2](loc0: u256)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u256)
12: StLoc[2](loc0: u256)
B3:
13: MoveLoc[2](loc0: u256)
14: Ret
}
public min(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[3](loc1: u256)
2: MoveLoc[1](Arg1: u256)
3: StLoc[4](loc2: u256)
4: CopyLoc[3](loc1: u256)
5: CopyLoc[4](loc2: u256)
6: Lt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u256)
9: StLoc[2](loc0: u256)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u256)
12: StLoc[2](loc0: u256)
B3:
13: MoveLoc[2](loc0: u256)
14: Ret
}
public diff(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[3](loc1: u256)
2: MoveLoc[1](Arg1: u256)
3: StLoc[4](loc2: u256)
4: CopyLoc[3](loc1: u256)
5: CopyLoc[4](loc2: u256)
6: Gt
7: BrFalse(13)
B1:
8: MoveLoc[3](loc1: u256)
9: MoveLoc[4](loc2: u256)
10: Sub
11: StLoc[2](loc0: u256)
12: Branch(17)
B2:
13: MoveLoc[4](loc2: u256)
14: MoveLoc[3](loc1: u256)
15: Sub
16: StLoc[2](loc0: u256)
B3:
17: MoveLoc[2](loc0: u256)
18: Ret
}
public divide_and_round_up(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[3](loc1: u256)
2: MoveLoc[1](Arg1: u256)
3: StLoc[4](loc2: u256)
4: CopyLoc[3](loc1: u256)
5: CopyLoc[4](loc2: u256)
6: Mod
7: LdU256(0)
8: Eq
9: BrFalse(15)
B1:
10: MoveLoc[3](loc1: u256)
11: MoveLoc[4](loc2: u256)
12: Div
13: StLoc[2](loc0: u256)
14: Branch(21)
B2:
15: MoveLoc[3](loc1: u256)
16: MoveLoc[4](loc2: u256)
17: Div
18: LdU256(1)
19: Add
20: StLoc[2](loc0: u256)
B3:
21: MoveLoc[2](loc0: u256)
22: Ret
}
public pow(Arg0: u256, Arg1: u8): u256 {
L2: loc0: u256
L3: loc1: u8
L4: loc2: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[2](loc0: u256)
2: MoveLoc[1](Arg1: u8)
3: StLoc[3](loc1: u8)
4: LdU256(1)
5: StLoc[4](loc2: u256)
B1:
6: CopyLoc[3](loc1: u8)
7: LdU8(1)
8: Ge
9: BrFalse(35)
B2:
10: Branch(11)
B3:
11: CopyLoc[3](loc1: u8)
12: LdU8(2)
13: Mod
14: LdU8(0)
15: Eq
16: BrFalse(26)
B4:
17: CopyLoc[2](loc0: u256)
18: MoveLoc[2](loc0: u256)
19: Mul
20: StLoc[2](loc0: u256)
21: MoveLoc[3](loc1: u8)
22: LdU8(2)
23: Div
24: StLoc[3](loc1: u8)
25: Branch(6)
B5:
26: MoveLoc[4](loc2: u256)
27: CopyLoc[2](loc0: u256)
28: Mul
29: StLoc[4](loc2: u256)
30: MoveLoc[3](loc1: u8)
31: LdU8(1)
32: Sub
33: StLoc[3](loc1: u8)
34: Branch(6)
B6:
35: MoveLoc[4](loc2: u256)
36: Ret
}
public try_as_u8(Arg0: u256): Option<u8> {
L1: loc0: Option<u8>
L2: loc1: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[2](loc1: u256)
2: CopyLoc[2](loc1: u256)
3: LdU256(255)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u8>(): Option<u8>
7: StLoc[1](loc0: Option<u8>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u256)
10: CastU8
11: Call option::some<u8>(u8): Option<u8>
12: StLoc[1](loc0: Option<u8>)
B3:
13: MoveLoc[1](loc0: Option<u8>)
14: Ret
}
public try_as_u16(Arg0: u256): Option<u16> {
L1: loc0: Option<u16>
L2: loc1: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[2](loc1: u256)
2: CopyLoc[2](loc1: u256)
3: LdU256(65535)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u16>(): Option<u16>
7: StLoc[1](loc0: Option<u16>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u256)
10: CastU16
11: Call option::some<u16>(u16): Option<u16>
12: StLoc[1](loc0: Option<u16>)
B3:
13: MoveLoc[1](loc0: Option<u16>)
14: Ret
}
public try_as_u32(Arg0: u256): Option<u32> {
L1: loc0: Option<u32>
L2: loc1: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[2](loc1: u256)
2: CopyLoc[2](loc1: u256)
3: LdU256(4294967295)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u32>(): Option<u32>
7: StLoc[1](loc0: Option<u32>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u256)
10: CastU32
11: Call option::some<u32>(u32): Option<u32>
12: StLoc[1](loc0: Option<u32>)
B3:
13: MoveLoc[1](loc0: Option<u32>)
14: Ret
}
public try_as_u64(Arg0: u256): Option<u64> {
L1: loc0: Option<u64>
L2: loc1: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[2](loc1: u256)
2: CopyLoc[2](loc1: u256)
3: LdU256(18446744073709551615)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u64>(): Option<u64>
7: StLoc[1](loc0: Option<u64>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u256)
10: CastU64
11: Call option::some<u64>(u64): Option<u64>
12: StLoc[1](loc0: Option<u64>)
B3:
13: MoveLoc[1](loc0: Option<u64>)
14: Ret
}
public try_as_u128(Arg0: u256): Option<u128> {
L1: loc0: Option<u128>
L2: loc1: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[2](loc1: u256)
2: CopyLoc[2](loc1: u256)
3: LdU256(340282366920938463463374607431768211455)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u128>(): Option<u128>
7: StLoc[1](loc0: Option<u128>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u256)
10: CastU128
11: Call option::some<u128>(u128): Option<u128>
12: StLoc[1](loc0: Option<u128>)
B3:
13: MoveLoc[1](loc0: Option<u128>)
14: Ret
}
public to_string(Arg0: u256): String {
L1: loc0: String
L2: loc1: vector<u8>
L3: loc2: u256
B0:
0: MoveLoc[0](Arg0: u256)
1: StLoc[3](loc2: u256)
2: CopyLoc[3](loc2: u256)
3: LdU256(0)
4: Eq
5: BrFalse(10)
B1:
6: LdConst[0](vector<u8>: "0" ..)
7: Call string::utf8(vector<u8>): String
8: StLoc[1](loc0: String)
9: Branch(34)
B2:
10: LdConst[1](vector<u8>: "" /..)
11: StLoc[2](loc1: vector<u8>)
B3:
12: CopyLoc[3](loc2: u256)
13: LdU256(0)
14: Neq
15: BrFalse(29)
B4:
16: MutBorrowLoc[2](loc1: vector<u8>)
17: LdU256(48)
18: CopyLoc[3](loc2: u256)
19: LdU256(10)
20: Mod
21: Add
22: CastU8
23: VecPushBack(13)
24: MoveLoc[3](loc2: u256)
25: LdU256(10)
26: Div
27: StLoc[3](loc2: u256)
28: Branch(12)
B5:
29: MutBorrowLoc[2](loc1: vector<u8>)
30: Call vector::reverse<u8>(&mut vector<u8>)
31: MoveLoc[2](loc1: vector<u8>)
32: Call string::utf8(vector<u8>): String
33: StLoc[1](loc0: String)
B6:
34: MoveLoc[1](loc0: String)
35: Ret
}
Constants [
0 => vector<u8>: "0" // interpreted as UTF8 string
1 => vector<u8>: "" // interpreted as UTF8 string
]
}
u32
// Move bytecode v6
module 1.u32 {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
public bitwise_not(Arg0: u32): u32 {
B0:
0: MoveLoc[0](Arg0: u32)
1: LdU32(4294967295)
2: Xor
3: Ret
}
public max(Arg0: u32, Arg1: u32): u32 {
L2: loc0: u32
L3: loc1: u32
L4: loc2: u32
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[3](loc1: u32)
2: MoveLoc[1](Arg1: u32)
3: StLoc[4](loc2: u32)
4: CopyLoc[3](loc1: u32)
5: CopyLoc[4](loc2: u32)
6: Gt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u32)
9: StLoc[2](loc0: u32)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u32)
12: StLoc[2](loc0: u32)
B3:
13: MoveLoc[2](loc0: u32)
14: Ret
}
public min(Arg0: u32, Arg1: u32): u32 {
L2: loc0: u32
L3: loc1: u32
L4: loc2: u32
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[3](loc1: u32)
2: MoveLoc[1](Arg1: u32)
3: StLoc[4](loc2: u32)
4: CopyLoc[3](loc1: u32)
5: CopyLoc[4](loc2: u32)
6: Lt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u32)
9: StLoc[2](loc0: u32)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u32)
12: StLoc[2](loc0: u32)
B3:
13: MoveLoc[2](loc0: u32)
14: Ret
}
public diff(Arg0: u32, Arg1: u32): u32 {
L2: loc0: u32
L3: loc1: u32
L4: loc2: u32
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[3](loc1: u32)
2: MoveLoc[1](Arg1: u32)
3: StLoc[4](loc2: u32)
4: CopyLoc[3](loc1: u32)
5: CopyLoc[4](loc2: u32)
6: Gt
7: BrFalse(13)
B1:
8: MoveLoc[3](loc1: u32)
9: MoveLoc[4](loc2: u32)
10: Sub
11: StLoc[2](loc0: u32)
12: Branch(17)
B2:
13: MoveLoc[4](loc2: u32)
14: MoveLoc[3](loc1: u32)
15: Sub
16: StLoc[2](loc0: u32)
B3:
17: MoveLoc[2](loc0: u32)
18: Ret
}
public divide_and_round_up(Arg0: u32, Arg1: u32): u32 {
L2: loc0: u32
L3: loc1: u32
L4: loc2: u32
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[3](loc1: u32)
2: MoveLoc[1](Arg1: u32)
3: StLoc[4](loc2: u32)
4: CopyLoc[3](loc1: u32)
5: CopyLoc[4](loc2: u32)
6: Mod
7: LdU32(0)
8: Eq
9: BrFalse(15)
B1:
10: MoveLoc[3](loc1: u32)
11: MoveLoc[4](loc2: u32)
12: Div
13: StLoc[2](loc0: u32)
14: Branch(21)
B2:
15: MoveLoc[3](loc1: u32)
16: MoveLoc[4](loc2: u32)
17: Div
18: LdU32(1)
19: Add
20: StLoc[2](loc0: u32)
B3:
21: MoveLoc[2](loc0: u32)
22: Ret
}
public pow(Arg0: u32, Arg1: u8): u32 {
L2: loc0: u32
L3: loc1: u8
L4: loc2: u32
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[2](loc0: u32)
2: MoveLoc[1](Arg1: u8)
3: StLoc[3](loc1: u8)
4: LdU32(1)
5: StLoc[4](loc2: u32)
B1:
6: CopyLoc[3](loc1: u8)
7: LdU8(1)
8: Ge
9: BrFalse(35)
B2:
10: Branch(11)
B3:
11: CopyLoc[3](loc1: u8)
12: LdU8(2)
13: Mod
14: LdU8(0)
15: Eq
16: BrFalse(26)
B4:
17: CopyLoc[2](loc0: u32)
18: MoveLoc[2](loc0: u32)
19: Mul
20: StLoc[2](loc0: u32)
21: MoveLoc[3](loc1: u8)
22: LdU8(2)
23: Div
24: StLoc[3](loc1: u8)
25: Branch(6)
B5:
26: MoveLoc[4](loc2: u32)
27: CopyLoc[2](loc0: u32)
28: Mul
29: StLoc[4](loc2: u32)
30: MoveLoc[3](loc1: u8)
31: LdU8(1)
32: Sub
33: StLoc[3](loc1: u8)
34: Branch(6)
B6:
35: MoveLoc[4](loc2: u32)
36: Ret
}
public sqrt(Arg0: u32): u32 {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u32
L4: loc3: u64
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[3](loc2: u32)
2: LdU64(4294967296)
3: StLoc[1](loc0: u64)
4: LdU64(0)
5: StLoc[2](loc1: u64)
6: MoveLoc[3](loc2: u32)
7: CastU64
8: StLoc[4](loc3: u64)
B1:
9: CopyLoc[1](loc0: u64)
10: LdU64(0)
11: Neq
12: BrFalse(42)
B2:
13: Branch(14)
B3:
14: CopyLoc[4](loc3: u64)
15: CopyLoc[2](loc1: u64)
16: CopyLoc[1](loc0: u64)
17: Add
18: Ge
19: BrFalse(33)
B4:
20: MoveLoc[4](loc3: u64)
21: CopyLoc[2](loc1: u64)
22: CopyLoc[1](loc0: u64)
23: Add
24: Sub
25: StLoc[4](loc3: u64)
26: MoveLoc[2](loc1: u64)
27: LdU8(1)
28: Shr
29: CopyLoc[1](loc0: u64)
30: Add
31: StLoc[2](loc1: u64)
32: Branch(37)
B5:
33: MoveLoc[2](loc1: u64)
34: LdU8(1)
35: Shr
36: StLoc[2](loc1: u64)
B6:
37: MoveLoc[1](loc0: u64)
38: LdU8(2)
39: Shr
40: StLoc[1](loc0: u64)
41: Branch(9)
B7:
42: MoveLoc[2](loc1: u64)
43: CastU32
44: Ret
}
public try_as_u8(Arg0: u32): Option<u8> {
L1: loc0: Option<u8>
L2: loc1: u32
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[2](loc1: u32)
2: CopyLoc[2](loc1: u32)
3: LdU32(255)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u8>(): Option<u8>
7: StLoc[1](loc0: Option<u8>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u32)
10: CastU8
11: Call option::some<u8>(u8): Option<u8>
12: StLoc[1](loc0: Option<u8>)
B3:
13: MoveLoc[1](loc0: Option<u8>)
14: Ret
}
public try_as_u16(Arg0: u32): Option<u16> {
L1: loc0: Option<u16>
L2: loc1: u32
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[2](loc1: u32)
2: CopyLoc[2](loc1: u32)
3: LdU32(65535)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u16>(): Option<u16>
7: StLoc[1](loc0: Option<u16>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u32)
10: CastU16
11: Call option::some<u16>(u16): Option<u16>
12: StLoc[1](loc0: Option<u16>)
B3:
13: MoveLoc[1](loc0: Option<u16>)
14: Ret
}
public to_string(Arg0: u32): String {
L1: loc0: String
L2: loc1: vector<u8>
L3: loc2: u32
B0:
0: MoveLoc[0](Arg0: u32)
1: StLoc[3](loc2: u32)
2: CopyLoc[3](loc2: u32)
3: LdU32(0)
4: Eq
5: BrFalse(10)
B1:
6: LdConst[0](vector<u8>: "0" ..)
7: Call string::utf8(vector<u8>): String
8: StLoc[1](loc0: String)
9: Branch(34)
B2:
10: LdConst[1](vector<u8>: "" /..)
11: StLoc[2](loc1: vector<u8>)
B3:
12: CopyLoc[3](loc2: u32)
13: LdU32(0)
14: Neq
15: BrFalse(29)
B4:
16: MutBorrowLoc[2](loc1: vector<u8>)
17: LdU32(48)
18: CopyLoc[3](loc2: u32)
19: LdU32(10)
20: Mod
21: Add
22: CastU8
23: VecPushBack(11)
24: MoveLoc[3](loc2: u32)
25: LdU32(10)
26: Div
27: StLoc[3](loc2: u32)
28: Branch(12)
B5:
29: MutBorrowLoc[2](loc1: vector<u8>)
30: Call vector::reverse<u8>(&mut vector<u8>)
31: MoveLoc[2](loc1: vector<u8>)
32: Call string::utf8(vector<u8>): String
33: StLoc[1](loc0: String)
B6:
34: MoveLoc[1](loc0: String)
35: Ret
}
Constants [
0 => vector<u8>: "0" // interpreted as UTF8 string
1 => vector<u8>: "" // interpreted as UTF8 string
]
}
u64
// Move bytecode v6
module 1.u64 {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
public bitwise_not(Arg0: u64): u64 {
B0:
0: MoveLoc[0](Arg0: u64)
1: LdU64(18446744073709551615)
2: Xor
3: Ret
}
public max(Arg0: u64, Arg1: u64): u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[3](loc1: u64)
2: MoveLoc[1](Arg1: u64)
3: StLoc[4](loc2: u64)
4: CopyLoc[3](loc1: u64)
5: CopyLoc[4](loc2: u64)
6: Gt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u64)
9: StLoc[2](loc0: u64)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u64)
12: StLoc[2](loc0: u64)
B3:
13: MoveLoc[2](loc0: u64)
14: Ret
}
public min(Arg0: u64, Arg1: u64): u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[3](loc1: u64)
2: MoveLoc[1](Arg1: u64)
3: StLoc[4](loc2: u64)
4: CopyLoc[3](loc1: u64)
5: CopyLoc[4](loc2: u64)
6: Lt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u64)
9: StLoc[2](loc0: u64)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u64)
12: StLoc[2](loc0: u64)
B3:
13: MoveLoc[2](loc0: u64)
14: Ret
}
public diff(Arg0: u64, Arg1: u64): u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[3](loc1: u64)
2: MoveLoc[1](Arg1: u64)
3: StLoc[4](loc2: u64)
4: CopyLoc[3](loc1: u64)
5: CopyLoc[4](loc2: u64)
6: Gt
7: BrFalse(13)
B1:
8: MoveLoc[3](loc1: u64)
9: MoveLoc[4](loc2: u64)
10: Sub
11: StLoc[2](loc0: u64)
12: Branch(17)
B2:
13: MoveLoc[4](loc2: u64)
14: MoveLoc[3](loc1: u64)
15: Sub
16: StLoc[2](loc0: u64)
B3:
17: MoveLoc[2](loc0: u64)
18: Ret
}
public divide_and_round_up(Arg0: u64, Arg1: u64): u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[3](loc1: u64)
2: MoveLoc[1](Arg1: u64)
3: StLoc[4](loc2: u64)
4: CopyLoc[3](loc1: u64)
5: CopyLoc[4](loc2: u64)
6: Mod
7: LdU64(0)
8: Eq
9: BrFalse(15)
B1:
10: MoveLoc[3](loc1: u64)
11: MoveLoc[4](loc2: u64)
12: Div
13: StLoc[2](loc0: u64)
14: Branch(21)
B2:
15: MoveLoc[3](loc1: u64)
16: MoveLoc[4](loc2: u64)
17: Div
18: LdU64(1)
19: Add
20: StLoc[2](loc0: u64)
B3:
21: MoveLoc[2](loc0: u64)
22: Ret
}
public pow(Arg0: u64, Arg1: u8): u64 {
L2: loc0: u64
L3: loc1: u8
L4: loc2: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[2](loc0: u64)
2: MoveLoc[1](Arg1: u8)
3: StLoc[3](loc1: u8)
4: LdU64(1)
5: StLoc[4](loc2: u64)
B1:
6: CopyLoc[3](loc1: u8)
7: LdU8(1)
8: Ge
9: BrFalse(35)
B2:
10: Branch(11)
B3:
11: CopyLoc[3](loc1: u8)
12: LdU8(2)
13: Mod
14: LdU8(0)
15: Eq
16: BrFalse(26)
B4:
17: CopyLoc[2](loc0: u64)
18: MoveLoc[2](loc0: u64)
19: Mul
20: StLoc[2](loc0: u64)
21: MoveLoc[3](loc1: u8)
22: LdU8(2)
23: Div
24: StLoc[3](loc1: u8)
25: Branch(6)
B5:
26: MoveLoc[4](loc2: u64)
27: CopyLoc[2](loc0: u64)
28: Mul
29: StLoc[4](loc2: u64)
30: MoveLoc[3](loc1: u8)
31: LdU8(1)
32: Sub
33: StLoc[3](loc1: u8)
34: Branch(6)
B6:
35: MoveLoc[4](loc2: u64)
36: Ret
}
public sqrt(Arg0: u64): u64 {
L1: loc0: u128
L2: loc1: u128
L3: loc2: u64
L4: loc3: u128
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[3](loc2: u64)
2: LdU128(18446744073709551616)
3: StLoc[1](loc0: u128)
4: LdU128(0)
5: StLoc[2](loc1: u128)
6: MoveLoc[3](loc2: u64)
7: CastU128
8: StLoc[4](loc3: u128)
B1:
9: CopyLoc[1](loc0: u128)
10: LdU128(0)
11: Neq
12: BrFalse(42)
B2:
13: Branch(14)
B3:
14: CopyLoc[4](loc3: u128)
15: CopyLoc[2](loc1: u128)
16: CopyLoc[1](loc0: u128)
17: Add
18: Ge
19: BrFalse(33)
B4:
20: MoveLoc[4](loc3: u128)
21: CopyLoc[2](loc1: u128)
22: CopyLoc[1](loc0: u128)
23: Add
24: Sub
25: StLoc[4](loc3: u128)
26: MoveLoc[2](loc1: u128)
27: LdU8(1)
28: Shr
29: CopyLoc[1](loc0: u128)
30: Add
31: StLoc[2](loc1: u128)
32: Branch(37)
B5:
33: MoveLoc[2](loc1: u128)
34: LdU8(1)
35: Shr
36: StLoc[2](loc1: u128)
B6:
37: MoveLoc[1](loc0: u128)
38: LdU8(2)
39: Shr
40: StLoc[1](loc0: u128)
41: Branch(9)
B7:
42: MoveLoc[2](loc1: u128)
43: CastU64
44: Ret
}
public try_as_u8(Arg0: u64): Option<u8> {
L1: loc0: Option<u8>
L2: loc1: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[2](loc1: u64)
2: CopyLoc[2](loc1: u64)
3: LdU64(255)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u8>(): Option<u8>
7: StLoc[1](loc0: Option<u8>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u64)
10: CastU8
11: Call option::some<u8>(u8): Option<u8>
12: StLoc[1](loc0: Option<u8>)
B3:
13: MoveLoc[1](loc0: Option<u8>)
14: Ret
}
public try_as_u16(Arg0: u64): Option<u16> {
L1: loc0: Option<u16>
L2: loc1: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[2](loc1: u64)
2: CopyLoc[2](loc1: u64)
3: LdU64(65535)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u16>(): Option<u16>
7: StLoc[1](loc0: Option<u16>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u64)
10: CastU16
11: Call option::some<u16>(u16): Option<u16>
12: StLoc[1](loc0: Option<u16>)
B3:
13: MoveLoc[1](loc0: Option<u16>)
14: Ret
}
public try_as_u32(Arg0: u64): Option<u32> {
L1: loc0: Option<u32>
L2: loc1: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[2](loc1: u64)
2: CopyLoc[2](loc1: u64)
3: LdU64(4294967295)
4: Gt
5: BrFalse(9)
B1:
6: Call option::none<u32>(): Option<u32>
7: StLoc[1](loc0: Option<u32>)
8: Branch(13)
B2:
9: MoveLoc[2](loc1: u64)
10: CastU32
11: Call option::some<u32>(u32): Option<u32>
12: StLoc[1](loc0: Option<u32>)
B3:
13: MoveLoc[1](loc0: Option<u32>)
14: Ret
}
public to_string(Arg0: u64): String {
L1: loc0: String
L2: loc1: vector<u8>
L3: loc2: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[3](loc2: u64)
2: CopyLoc[3](loc2: u64)
3: LdU64(0)
4: Eq
5: BrFalse(10)
B1:
6: LdConst[0](vector<u8>: "0" ..)
7: Call string::utf8(vector<u8>): String
8: StLoc[1](loc0: String)
9: Branch(34)
B2:
10: LdConst[1](vector<u8>: "" /..)
11: StLoc[2](loc1: vector<u8>)
B3:
12: CopyLoc[3](loc2: u64)
13: LdU64(0)
14: Neq
15: BrFalse(29)
B4:
16: MutBorrowLoc[2](loc1: vector<u8>)
17: LdU64(48)
18: CopyLoc[3](loc2: u64)
19: LdU64(10)
20: Mod
21: Add
22: CastU8
23: VecPushBack(12)
24: MoveLoc[3](loc2: u64)
25: LdU64(10)
26: Div
27: StLoc[3](loc2: u64)
28: Branch(12)
B5:
29: MutBorrowLoc[2](loc1: vector<u8>)
30: Call vector::reverse<u8>(&mut vector<u8>)
31: MoveLoc[2](loc1: vector<u8>)
32: Call string::utf8(vector<u8>): String
33: StLoc[1](loc0: String)
B6:
34: MoveLoc[1](loc0: String)
35: Ret
}
Constants [
0 => vector<u8>: "0" // interpreted as UTF8 string
1 => vector<u8>: "" // interpreted as UTF8 string
]
}
u8
// Move bytecode v6
module 1.u8 {
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
public bitwise_not(Arg0: u8): u8 {
B0:
0: MoveLoc[0](Arg0: u8)
1: LdU8(255)
2: Xor
3: Ret
}
public max(Arg0: u8, Arg1: u8): u8 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: u8
B0:
0: MoveLoc[0](Arg0: u8)
1: StLoc[3](loc1: u8)
2: MoveLoc[1](Arg1: u8)
3: StLoc[4](loc2: u8)
4: CopyLoc[3](loc1: u8)
5: CopyLoc[4](loc2: u8)
6: Gt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u8)
9: StLoc[2](loc0: u8)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u8)
12: StLoc[2](loc0: u8)
B3:
13: MoveLoc[2](loc0: u8)
14: Ret
}
public min(Arg0: u8, Arg1: u8): u8 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: u8
B0:
0: MoveLoc[0](Arg0: u8)
1: StLoc[3](loc1: u8)
2: MoveLoc[1](Arg1: u8)
3: StLoc[4](loc2: u8)
4: CopyLoc[3](loc1: u8)
5: CopyLoc[4](loc2: u8)
6: Lt
7: BrFalse(11)
B1:
8: MoveLoc[3](loc1: u8)
9: StLoc[2](loc0: u8)
10: Branch(13)
B2:
11: MoveLoc[4](loc2: u8)
12: StLoc[2](loc0: u8)
B3:
13: MoveLoc[2](loc0: u8)
14: Ret
}
public diff(Arg0: u8, Arg1: u8): u8 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: u8
B0:
0: MoveLoc[0](Arg0: u8)
1: StLoc[3](loc1: u8)
2: MoveLoc[1](Arg1: u8)
3: StLoc[4](loc2: u8)
4: CopyLoc[3](loc1: u8)
5: CopyLoc[4](loc2: u8)
6: Gt
7: BrFalse(13)
B1:
8: MoveLoc[3](loc1: u8)
9: MoveLoc[4](loc2: u8)
10: Sub
11: StLoc[2](loc0: u8)
12: Branch(17)
B2:
13: MoveLoc[4](loc2: u8)
14: MoveLoc[3](loc1: u8)
15: Sub
16: StLoc[2](loc0: u8)
B3:
17: MoveLoc[2](loc0: u8)
18: Ret
}
public divide_and_round_up(Arg0: u8, Arg1: u8): u8 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: u8
B0:
0: MoveLoc[0](Arg0: u8)
1: StLoc[3](loc1: u8)
2: MoveLoc[1](Arg1: u8)
3: StLoc[4](loc2: u8)
4: CopyLoc[3](loc1: u8)
5: CopyLoc[4](loc2: u8)
6: Mod
7: LdU8(0)
8: Eq
9: BrFalse(15)
B1:
10: MoveLoc[3](loc1: u8)
11: MoveLoc[4](loc2: u8)
12: Div
13: StLoc[2](loc0: u8)
14: Branch(21)
B2:
15: MoveLoc[3](loc1: u8)
16: MoveLoc[4](loc2: u8)
17: Div
18: LdU8(1)
19: Add
20: StLoc[2](loc0: u8)
B3:
21: MoveLoc[2](loc0: u8)
22: Ret
}
public pow(Arg0: u8, Arg1: u8): u8 {
L2: loc0: u8
L3: loc1: u8
L4: loc2: u8
B0:
0: MoveLoc[0](Arg0: u8)
1: StLoc[2](loc0: u8)
2: MoveLoc[1](Arg1: u8)
3: StLoc[3](loc1: u8)
4: LdU8(1)
5: StLoc[4](loc2: u8)
B1:
6: CopyLoc[3](loc1: u8)
7: LdU8(1)
8: Ge
9: BrFalse(35)
B2:
10: Branch(11)
B3:
11: CopyLoc[3](loc1: u8)
12: LdU8(2)
13: Mod
14: LdU8(0)
15: Eq
16: BrFalse(26)
B4:
17: CopyLoc[2](loc0: u8)
18: MoveLoc[2](loc0: u8)
19: Mul
20: StLoc[2](loc0: u8)
21: MoveLoc[3](loc1: u8)
22: LdU8(2)
23: Div
24: StLoc[3](loc1: u8)
25: Branch(6)
B5:
26: MoveLoc[4](loc2: u8)
27: CopyLoc[2](loc0: u8)
28: Mul
29: StLoc[4](loc2: u8)
30: MoveLoc[3](loc1: u8)
31: LdU8(1)
32: Sub
33: StLoc[3](loc1: u8)
34: Branch(6)
B6:
35: MoveLoc[4](loc2: u8)
36: Ret
}
public sqrt(Arg0: u8): u8 {
L1: loc0: u16
L2: loc1: u16
L3: loc2: u8
L4: loc3: u16
B0:
0: MoveLoc[0](Arg0: u8)
1: StLoc[3](loc2: u8)
2: LdU16(256)
3: StLoc[1](loc0: u16)
4: LdU16(0)
5: StLoc[2](loc1: u16)
6: MoveLoc[3](loc2: u8)
7: CastU16
8: StLoc[4](loc3: u16)
B1:
9: CopyLoc[1](loc0: u16)
10: LdU16(0)
11: Neq
12: BrFalse(42)
B2:
13: Branch(14)
B3:
14: CopyLoc[4](loc3: u16)
15: CopyLoc[2](loc1: u16)
16: CopyLoc[1](loc0: u16)
17: Add
18: Ge
19: BrFalse(33)
B4:
20: MoveLoc[4](loc3: u16)
21: CopyLoc[2](loc1: u16)
22: CopyLoc[1](loc0: u16)
23: Add
24: Sub
25: StLoc[4](loc3: u16)
26: MoveLoc[2](loc1: u16)
27: LdU8(1)
28: Shr
29: CopyLoc[1](loc0: u16)
30: Add
31: StLoc[2](loc1: u16)
32: Branch(37)
B5:
33: MoveLoc[2](loc1: u16)
34: LdU8(1)
35: Shr
36: StLoc[2](loc1: u16)
B6:
37: MoveLoc[1](loc0: u16)
38: LdU8(2)
39: Shr
40: StLoc[1](loc0: u16)
41: Branch(9)
B7:
42: MoveLoc[2](loc1: u16)
43: CastU8
44: Ret
}
public to_string(Arg0: u8): String {
L1: loc0: String
L2: loc1: vector<u8>
L3: loc2: u8
B0:
0: MoveLoc[0](Arg0: u8)
1: StLoc[3](loc2: u8)
2: CopyLoc[3](loc2: u8)
3: LdU8(0)
4: Eq
5: BrFalse(10)
B1:
6: LdConst[0](vector<u8>: "0" ..)
7: Call string::utf8(vector<u8>): String
8: StLoc[1](loc0: String)
9: Branch(34)
B2:
10: LdConst[1](vector<u8>: "" /..)
11: StLoc[2](loc1: vector<u8>)
B3:
12: CopyLoc[3](loc2: u8)
13: LdU8(0)
14: Neq
15: BrFalse(29)
B4:
16: MutBorrowLoc[2](loc1: vector<u8>)
17: LdU8(48)
18: CopyLoc[3](loc2: u8)
19: LdU8(10)
20: Mod
21: Add
22: CastU8
23: VecPushBack(0)
24: MoveLoc[3](loc2: u8)
25: LdU8(10)
26: Div
27: StLoc[3](loc2: u8)
28: Branch(12)
B5:
29: MutBorrowLoc[2](loc1: vector<u8>)
30: Call vector::reverse<u8>(&mut vector<u8>)
31: MoveLoc[2](loc1: vector<u8>)
32: Call string::utf8(vector<u8>): String
33: StLoc[1](loc0: String)
B6:
34: MoveLoc[1](loc0: String)
35: Ret
}
Constants [
0 => vector<u8>: "0" // interpreted as UTF8 string
1 => vector<u8>: "" // interpreted as UTF8 string
]
}
uq32_32
// Move bytecode v6
module 1.uq32_32 {
struct UQ32_32 has copy, drop, store {
pos0: u64
}
public from_quotient(Arg0: u64, Arg1: u64): UQ32_32 {
L2: loc0: bool
L3: loc1: u64
L4: loc2: u64
L5: loc3: u128
L6: loc4: u128
L7: loc5: u128
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[4](loc2: u64)
2: MoveLoc[1](Arg1: u64)
3: StLoc[3](loc1: u64)
4: CopyLoc[3](loc1: u64)
5: LdU64(0)
6: Eq
7: BrFalse(10)
B1:
8: LdU64(13906834419156516865)
9: Abort
B2:
10: CopyLoc[4](loc2: u64)
11: CastU128
12: LdConst[10](u8: 64)
13: Shl
14: StLoc[7](loc5: u128)
15: MoveLoc[3](loc1: u64)
16: CastU128
17: LdConst[10](u8: 64)
18: LdConst[11](u8: 32)
19: Sub
20: Shl
21: StLoc[6](loc4: u128)
22: MoveLoc[7](loc5: u128)
23: MoveLoc[6](loc4: u128)
24: Div
25: StLoc[5](loc3: u128)
26: CopyLoc[5](loc3: u128)
27: LdU128(0)
28: Eq
29: BrFalse(35)
B3:
30: MoveLoc[4](loc2: u64)
31: LdU64(0)
32: Neq
33: StLoc[2](loc0: bool)
34: Branch(37)
B4:
35: LdFalse
36: StLoc[2](loc0: bool)
B5:
37: MoveLoc[2](loc0: bool)
38: BrFalse(41)
B6:
39: LdU64(13906834423451615235)
40: Abort
B7:
41: CopyLoc[5](loc3: u128)
42: LdU128(18446744073709551615)
43: Gt
44: BrFalse(47)
B8:
45: LdU64(13906834427746713605)
46: Abort
B9:
47: MoveLoc[5](loc3: u128)
48: CastU64
49: Pack[0](UQ32_32)
50: Ret
}
public from_int(Arg0: u32): UQ32_32 {
B0:
0: MoveLoc[0](Arg0: u32)
1: CastU64
2: LdConst[11](u8: 32)
3: Shl
4: Pack[0](UQ32_32)
5: Ret
}
public add(Arg0: UQ32_32, Arg1: UQ32_32): UQ32_32 {
L2: loc0: u128
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: CastU128
4: ImmBorrowLoc[1](Arg1: UQ32_32)
5: ImmBorrowField[0](UQ32_32.pos0: u64)
6: ReadRef
7: CastU128
8: Add
9: StLoc[2](loc0: u128)
10: CopyLoc[2](loc0: u128)
11: LdU128(18446744073709551615)
12: Gt
13: BrFalse(16)
B1:
14: LdU64(13906834487876386823)
15: Abort
B2:
16: MoveLoc[2](loc0: u128)
17: CastU64
18: Pack[0](UQ32_32)
19: Ret
}
public sub(Arg0: UQ32_32, Arg1: UQ32_32): UQ32_32 {
L2: loc0: u64
L3: loc1: u64
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: StLoc[2](loc0: u64)
4: ImmBorrowLoc[1](Arg1: UQ32_32)
5: ImmBorrowField[0](UQ32_32.pos0: u64)
6: ReadRef
7: StLoc[3](loc1: u64)
8: CopyLoc[2](loc0: u64)
9: CopyLoc[3](loc1: u64)
10: Lt
11: BrFalse(14)
B1:
12: LdU64(13906834513646190599)
13: Abort
B2:
14: MoveLoc[2](loc0: u64)
15: MoveLoc[3](loc1: u64)
16: Sub
17: Pack[0](UQ32_32)
18: Ret
}
public mul(Arg0: UQ32_32, Arg1: UQ32_32): UQ32_32 {
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: MoveLoc[1](Arg1: UQ32_32)
4: Call int_mul(u64, UQ32_32): u64
5: Pack[0](UQ32_32)
6: Ret
}
public div(Arg0: UQ32_32, Arg1: UQ32_32): UQ32_32 {
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: MoveLoc[1](Arg1: UQ32_32)
4: Call int_div(u64, UQ32_32): u64
5: Pack[0](UQ32_32)
6: Ret
}
public to_int(Arg0: UQ32_32): u32 {
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: LdConst[11](u8: 32)
4: Shr
5: CastU32
6: Ret
}
public int_mul(Arg0: u64, Arg1: UQ32_32): u64 {
L2: loc0: u128
B0:
0: MoveLoc[0](Arg0: u64)
1: CastU128
2: ImmBorrowLoc[1](Arg1: UQ32_32)
3: ImmBorrowField[0](UQ32_32.pos0: u64)
4: ReadRef
5: CastU128
6: Mul
7: LdConst[11](u8: 32)
8: Shr
9: StLoc[2](loc0: u128)
10: CopyLoc[2](loc0: u128)
11: LdU128(18446744073709551615)
12: Gt
13: BrFalse(16)
B1:
14: LdU64(13906834638200242183)
15: Abort
B2:
16: MoveLoc[2](loc0: u128)
17: CastU64
18: Ret
}
public int_div(Arg0: u64, Arg1: UQ32_32): u64 {
L2: loc0: u64
L3: loc1: u128
L4: loc2: u64
B0:
0: MoveLoc[0](Arg0: u64)
1: StLoc[4](loc2: u64)
2: ImmBorrowLoc[1](Arg1: UQ32_32)
3: ImmBorrowField[0](UQ32_32.pos0: u64)
4: ReadRef
5: StLoc[2](loc0: u64)
6: CopyLoc[2](loc0: u64)
7: LdU64(0)
8: Eq
9: BrFalse(12)
B1:
10: LdU64(13906834694034948105)
11: Abort
B2:
12: MoveLoc[4](loc2: u64)
13: CastU128
14: LdConst[11](u8: 32)
15: Shl
16: MoveLoc[2](loc0: u64)
17: CastU128
18: Div
19: StLoc[3](loc1: u128)
20: CopyLoc[3](loc1: u128)
21: LdU128(18446744073709551615)
22: Gt
23: BrFalse(26)
B3:
24: LdU64(13906834698329784327)
25: Abort
B4:
26: MoveLoc[3](loc1: u128)
27: CastU64
28: Ret
}
public le(Arg0: UQ32_32, Arg1: UQ32_32): bool {
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: ImmBorrowLoc[1](Arg1: UQ32_32)
4: ImmBorrowField[0](UQ32_32.pos0: u64)
5: ReadRef
6: Le
7: Ret
}
public lt(Arg0: UQ32_32, Arg1: UQ32_32): bool {
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: ImmBorrowLoc[1](Arg1: UQ32_32)
4: ImmBorrowField[0](UQ32_32.pos0: u64)
5: ReadRef
6: Lt
7: Ret
}
public ge(Arg0: UQ32_32, Arg1: UQ32_32): bool {
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: ImmBorrowLoc[1](Arg1: UQ32_32)
4: ImmBorrowField[0](UQ32_32.pos0: u64)
5: ReadRef
6: Ge
7: Ret
}
public gt(Arg0: UQ32_32, Arg1: UQ32_32): bool {
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: ImmBorrowLoc[1](Arg1: UQ32_32)
4: ImmBorrowField[0](UQ32_32.pos0: u64)
5: ReadRef
6: Gt
7: Ret
}
public to_raw(Arg0: UQ32_32): u64 {
B0:
0: ImmBorrowLoc[0](Arg0: UQ32_32)
1: ImmBorrowField[0](UQ32_32.pos0: u64)
2: ReadRef
3: Ret
}
public from_raw(Arg0: u64): UQ32_32 {
B0:
0: MoveLoc[0](Arg0: u64)
1: Pack[0](UQ32_32)
2: Ret
}
Constants [
0 => vector<u8>: "EDenominator" // interpreted as UTF8 string
1 => vector<u8>: "Quotient specified with a zero denominator" // interpreted as UTF8 string
2 => vector<u8>: "EQuotientTooSmall" // interpreted as UTF8 string
3 => vector<u8>: "Quotient specified is too small, and is outside of the supported range" // interpreted as UTF8 string
4 => vector<u8>: "EQuotientTooLarge" // interpreted as UTF8 string
5 => vector<u8>: "Quotient specified is too large, and is outside of the supported range" // interpreted as UTF8 string
6 => vector<u8>: "EOverflow" // interpreted as UTF8 string
7 => vector<u8>: "Overflow from an arithmetic operation" // interpreted as UTF8 string
8 => vector<u8>: "EDivisionByZero" // interpreted as UTF8 string
9 => vector<u8>: "Division by zero" // interpreted as UTF8 string
10 => u8: 64
11 => u8: 32
]
}
uq64_64
// Move bytecode v6
module 1.uq64_64 {
struct UQ64_64 has copy, drop, store {
pos0: u128
}
public from_quotient(Arg0: u128, Arg1: u128): UQ64_64 {
L2: loc0: bool
L3: loc1: u128
L4: loc2: u128
L5: loc3: u256
L6: loc4: u256
L7: loc5: u256
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[4](loc2: u128)
2: MoveLoc[1](Arg1: u128)
3: StLoc[3](loc1: u128)
4: CopyLoc[3](loc1: u128)
5: LdU128(0)
6: Eq
7: BrFalse(10)
B1:
8: LdU64(13906834419156516865)
9: Abort
B2:
10: CopyLoc[4](loc2: u128)
11: CastU256
12: LdConst[10](u8: 128)
13: Shl
14: StLoc[7](loc5: u256)
15: MoveLoc[3](loc1: u128)
16: CastU256
17: LdConst[10](u8: 128)
18: LdConst[11](u8: 64)
19: Sub
20: Shl
21: StLoc[6](loc4: u256)
22: MoveLoc[7](loc5: u256)
23: MoveLoc[6](loc4: u256)
24: Div
25: StLoc[5](loc3: u256)
26: CopyLoc[5](loc3: u256)
27: LdU256(0)
28: Eq
29: BrFalse(35)
B3:
30: MoveLoc[4](loc2: u128)
31: LdU128(0)
32: Neq
33: StLoc[2](loc0: bool)
34: Branch(37)
B4:
35: LdFalse
36: StLoc[2](loc0: bool)
B5:
37: MoveLoc[2](loc0: bool)
38: BrFalse(41)
B6:
39: LdU64(13906834423451615235)
40: Abort
B7:
41: CopyLoc[5](loc3: u256)
42: LdU256(340282366920938463463374607431768211455)
43: Gt
44: BrFalse(47)
B8:
45: LdU64(13906834427746713605)
46: Abort
B9:
47: MoveLoc[5](loc3: u256)
48: CastU128
49: Pack[0](UQ64_64)
50: Ret
}
public from_int(Arg0: u64): UQ64_64 {
B0:
0: MoveLoc[0](Arg0: u64)
1: CastU128
2: LdConst[11](u8: 64)
3: Shl
4: Pack[0](UQ64_64)
5: Ret
}
public add(Arg0: UQ64_64, Arg1: UQ64_64): UQ64_64 {
L2: loc0: u256
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: CastU256
4: ImmBorrowLoc[1](Arg1: UQ64_64)
5: ImmBorrowField[0](UQ64_64.pos0: u128)
6: ReadRef
7: CastU256
8: Add
9: StLoc[2](loc0: u256)
10: CopyLoc[2](loc0: u256)
11: LdU256(340282366920938463463374607431768211455)
12: Gt
13: BrFalse(16)
B1:
14: LdU64(13906834487876386823)
15: Abort
B2:
16: MoveLoc[2](loc0: u256)
17: CastU128
18: Pack[0](UQ64_64)
19: Ret
}
public sub(Arg0: UQ64_64, Arg1: UQ64_64): UQ64_64 {
L2: loc0: u128
L3: loc1: u128
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: StLoc[2](loc0: u128)
4: ImmBorrowLoc[1](Arg1: UQ64_64)
5: ImmBorrowField[0](UQ64_64.pos0: u128)
6: ReadRef
7: StLoc[3](loc1: u128)
8: CopyLoc[2](loc0: u128)
9: CopyLoc[3](loc1: u128)
10: Lt
11: BrFalse(14)
B1:
12: LdU64(13906834513646190599)
13: Abort
B2:
14: MoveLoc[2](loc0: u128)
15: MoveLoc[3](loc1: u128)
16: Sub
17: Pack[0](UQ64_64)
18: Ret
}
public mul(Arg0: UQ64_64, Arg1: UQ64_64): UQ64_64 {
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: MoveLoc[1](Arg1: UQ64_64)
4: Call int_mul(u128, UQ64_64): u128
5: Pack[0](UQ64_64)
6: Ret
}
public div(Arg0: UQ64_64, Arg1: UQ64_64): UQ64_64 {
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: MoveLoc[1](Arg1: UQ64_64)
4: Call int_div(u128, UQ64_64): u128
5: Pack[0](UQ64_64)
6: Ret
}
public to_int(Arg0: UQ64_64): u64 {
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: LdConst[11](u8: 64)
4: Shr
5: CastU64
6: Ret
}
public int_mul(Arg0: u128, Arg1: UQ64_64): u128 {
L2: loc0: u256
B0:
0: MoveLoc[0](Arg0: u128)
1: CastU256
2: ImmBorrowLoc[1](Arg1: UQ64_64)
3: ImmBorrowField[0](UQ64_64.pos0: u128)
4: ReadRef
5: CastU256
6: Mul
7: LdConst[11](u8: 64)
8: Shr
9: StLoc[2](loc0: u256)
10: CopyLoc[2](loc0: u256)
11: LdU256(340282366920938463463374607431768211455)
12: Gt
13: BrFalse(16)
B1:
14: LdU64(13906834638200242183)
15: Abort
B2:
16: MoveLoc[2](loc0: u256)
17: CastU128
18: Ret
}
public int_div(Arg0: u128, Arg1: UQ64_64): u128 {
L2: loc0: u128
L3: loc1: u256
L4: loc2: u128
B0:
0: MoveLoc[0](Arg0: u128)
1: StLoc[4](loc2: u128)
2: ImmBorrowLoc[1](Arg1: UQ64_64)
3: ImmBorrowField[0](UQ64_64.pos0: u128)
4: ReadRef
5: StLoc[2](loc0: u128)
6: CopyLoc[2](loc0: u128)
7: LdU128(0)
8: Eq
9: BrFalse(12)
B1:
10: LdU64(13906834694034948105)
11: Abort
B2:
12: MoveLoc[4](loc2: u128)
13: CastU256
14: LdConst[11](u8: 64)
15: Shl
16: MoveLoc[2](loc0: u128)
17: CastU256
18: Div
19: StLoc[3](loc1: u256)
20: CopyLoc[3](loc1: u256)
21: LdU256(340282366920938463463374607431768211455)
22: Gt
23: BrFalse(26)
B3:
24: LdU64(13906834698329784327)
25: Abort
B4:
26: MoveLoc[3](loc1: u256)
27: CastU128
28: Ret
}
public le(Arg0: UQ64_64, Arg1: UQ64_64): bool {
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: ImmBorrowLoc[1](Arg1: UQ64_64)
4: ImmBorrowField[0](UQ64_64.pos0: u128)
5: ReadRef
6: Le
7: Ret
}
public lt(Arg0: UQ64_64, Arg1: UQ64_64): bool {
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: ImmBorrowLoc[1](Arg1: UQ64_64)
4: ImmBorrowField[0](UQ64_64.pos0: u128)
5: ReadRef
6: Lt
7: Ret
}
public ge(Arg0: UQ64_64, Arg1: UQ64_64): bool {
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: ImmBorrowLoc[1](Arg1: UQ64_64)
4: ImmBorrowField[0](UQ64_64.pos0: u128)
5: ReadRef
6: Ge
7: Ret
}
public gt(Arg0: UQ64_64, Arg1: UQ64_64): bool {
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: ImmBorrowLoc[1](Arg1: UQ64_64)
4: ImmBorrowField[0](UQ64_64.pos0: u128)
5: ReadRef
6: Gt
7: Ret
}
public to_raw(Arg0: UQ64_64): u128 {
B0:
0: ImmBorrowLoc[0](Arg0: UQ64_64)
1: ImmBorrowField[0](UQ64_64.pos0: u128)
2: ReadRef
3: Ret
}
public from_raw(Arg0: u128): UQ64_64 {
B0:
0: MoveLoc[0](Arg0: u128)
1: Pack[0](UQ64_64)
2: Ret
}
Constants [
0 => vector<u8>: "EDenominator" // interpreted as UTF8 string
1 => vector<u8>: "Quotient specified with a zero denominator" // interpreted as UTF8 string
2 => vector<u8>: "EQuotientTooSmall" // interpreted as UTF8 string
3 => vector<u8>: "Quotient specified is too small, and is outside of the supported range" // interpreted as UTF8 string
4 => vector<u8>: "EQuotientTooLarge" // interpreted as UTF8 string
5 => vector<u8>: "Quotient specified is too large, and is outside of the supported range" // interpreted as UTF8 string
6 => vector<u8>: "EOverflow" // interpreted as UTF8 string
7 => vector<u8>: "Overflow from an arithmetic operation" // interpreted as UTF8 string
8 => vector<u8>: "EDivisionByZero" // interpreted as UTF8 string
9 => vector<u8>: "Division by zero" // interpreted as UTF8 string
10 => u8: 128
11 => u8: 64
]
}
vector
// Move bytecode v6
module 1.vector {
native public empty<Ty0>(): vector<Ty0>;
native public length<Ty0>(Arg0: &vector<Ty0>): u64;
native public borrow<Ty0>(Arg0: &vector<Ty0>, Arg1: u64): &Ty0;
native public push_back<Ty0>(Arg0: &mut vector<Ty0>, Arg1: Ty0);
native public borrow_mut<Ty0>(Arg0: &mut vector<Ty0>, Arg1: u64): &mut Ty0;
native public pop_back<Ty0>(Arg0: &mut vector<Ty0>): Ty0;
native public destroy_empty<Ty0>(Arg0: vector<Ty0>);
native public swap<Ty0>(Arg0: &mut vector<Ty0>, Arg1: u64, Arg2: u64);
public singleton<Ty0>(Arg0: Ty0): vector<Ty0> {
L1: loc0: vector<Ty0>
B0:
0: VecPack(10, 0)
1: StLoc[1](loc0: vector<Ty0>)
2: MutBorrowLoc[1](loc0: vector<Ty0>)
3: MoveLoc[0](Arg0: Ty0)
4: VecPushBack(10)
5: MoveLoc[1](loc0: vector<Ty0>)
6: Ret
}
public reverse<Ty0>(Arg0: &mut vector<Ty0>) {
L1: loc0: u64
L2: loc1: u64
L3: loc2: u64
B0:
0: CopyLoc[0](Arg0: &mut vector<Ty0>)
1: FreezeRef
2: VecLen(10)
3: StLoc[3](loc2: u64)
4: CopyLoc[3](loc2: u64)
5: LdU64(0)
6: Eq
7: BrFalse(11)
B1:
8: MoveLoc[0](Arg0: &mut vector<Ty0>)
9: Pop
10: Ret
B2:
11: LdU64(0)
12: StLoc[2](loc1: u64)
13: MoveLoc[3](loc2: u64)
14: LdU64(1)
15: Sub
16: StLoc[1](loc0: u64)
B3:
17: CopyLoc[2](loc1: u64)
18: CopyLoc[1](loc0: u64)
19: Lt
20: BrFalse(34)
B4:
21: CopyLoc[0](Arg0: &mut vector<Ty0>)
22: CopyLoc[2](loc1: u64)
23: CopyLoc[1](loc0: u64)
24: VecSwap(10)
25: MoveLoc[2](loc1: u64)
26: LdU64(1)
27: Add
28: StLoc[2](loc1: u64)
29: MoveLoc[1](loc0: u64)
30: LdU64(1)
31: Sub
32: StLoc[1](loc0: u64)
33: Branch(17)
B5:
34: MoveLoc[0](Arg0: &mut vector<Ty0>)
35: Pop
36: Ret
}
public append<Ty0>(Arg0: &mut vector<Ty0>, Arg1: vector<Ty0>) {
L2: loc0: u64
L3: loc1: Ty0
L4: loc2: u64
L5: loc3: u64
L6: loc4: vector<Ty0>
B0:
0: MoveLoc[1](Arg1: vector<Ty0>)
1: StLoc[6](loc4: vector<Ty0>)
2: MutBorrowLoc[6](loc4: vector<Ty0>)
3: Call reverse<Ty0>(&mut vector<Ty0>)
4: ImmBorrowLoc[6](loc4: vector<Ty0>)
5: VecLen(10)
6: StLoc[2](loc0: u64)
7: LdU64(0)
8: StLoc[4](loc2: u64)
9: MoveLoc[2](loc0: u64)
10: StLoc[5](loc3: u64)
B1:
11: CopyLoc[4](loc2: u64)
12: CopyLoc[5](loc3: u64)
13: Lt
14: BrFalse(28)
B2:
15: CopyLoc[4](loc2: u64)
16: Pop
17: MutBorrowLoc[6](loc4: vector<Ty0>)
18: VecPopBack(10)
19: StLoc[3](loc1: Ty0)
20: CopyLoc[0](Arg0: &mut vector<Ty0>)
21: MoveLoc[3](loc1: Ty0)
22: VecPushBack(10)
23: MoveLoc[4](loc2: u64)
24: LdU64(1)
25: Add
26: StLoc[4](loc2: u64)
27: Branch(11)
B3:
28: MoveLoc[0](Arg0: &mut vector<Ty0>)
29: Pop
30: MoveLoc[6](loc4: vector<Ty0>)
31: VecUnpack(10, 0)
32: Ret
}
public is_empty<Ty0>(Arg0: &vector<Ty0>): bool {
B0:
0: MoveLoc[0](Arg0: &vector<Ty0>)
1: VecLen(10)
2: LdU64(0)
3: Eq
4: Ret
}
public contains<Ty0>(Arg0: &vector<Ty0>, Arg1: &Ty0): bool {
L2: loc0: u64
L3: loc1: u64
B0:
0: LdU64(0)
1: StLoc[2](loc0: u64)
2: CopyLoc[0](Arg0: &vector<Ty0>)
3: VecLen(10)
4: StLoc[3](loc1: u64)
B1:
5: CopyLoc[2](loc0: u64)
6: CopyLoc[3](loc1: u64)
7: Lt
8: BrFalse(27)
B2:
9: Branch(10)
B3:
10: CopyLoc[0](Arg0: &vector<Ty0>)
11: CopyLoc[2](loc0: u64)
12: VecImmBorrow(10)
13: CopyLoc[1](Arg1: &Ty0)
14: Eq
15: BrFalse(22)
B4:
16: MoveLoc[0](Arg0: &vector<Ty0>)
17: Pop
18: MoveLoc[1](Arg1: &Ty0)
19: Pop
20: LdTrue
21: Ret
B5:
22: MoveLoc[2](loc0: u64)
23: LdU64(1)
24: Add
25: StLoc[2](loc0: u64)
26: Branch(5)
B6:
27: MoveLoc[0](Arg0: &vector<Ty0>)
28: Pop
29: MoveLoc[1](Arg1: &Ty0)
30: Pop
31: LdFalse
32: Ret
}
public index_of<Ty0>(Arg0: &vector<Ty0>, Arg1: &Ty0): bool * u64 {
L2: loc0: u64
L3: loc1: u64
B0:
0: LdU64(0)
1: StLoc[2](loc0: u64)
2: CopyLoc[0](Arg0: &vector<Ty0>)
3: VecLen(10)
4: StLoc[3](loc1: u64)
B1:
5: CopyLoc[2](loc0: u64)
6: CopyLoc[3](loc1: u64)
7: Lt
8: BrFalse(28)
B2:
9: Branch(10)
B3:
10: CopyLoc[0](Arg0: &vector<Ty0>)
11: CopyLoc[2](loc0: u64)
12: VecImmBorrow(10)
13: CopyLoc[1](Arg1: &Ty0)
14: Eq
15: BrFalse(23)
B4:
16: MoveLoc[0](Arg0: &vector<Ty0>)
17: Pop
18: MoveLoc[1](Arg1: &Ty0)
19: Pop
20: LdTrue
21: MoveLoc[2](loc0: u64)
22: Ret
B5:
23: MoveLoc[2](loc0: u64)
24: LdU64(1)
25: Add
26: StLoc[2](loc0: u64)
27: Branch(5)
B6:
28: MoveLoc[0](Arg0: &vector<Ty0>)
29: Pop
30: MoveLoc[1](Arg1: &Ty0)
31: Pop
32: LdFalse
33: LdU64(0)
34: Ret
}
public remove<Ty0>(Arg0: &mut vector<Ty0>, Arg1: u64): Ty0 {
L2: loc0: u64
L3: loc1: &mut vector<Ty0>
L4: loc2: u64
B0:
0: CopyLoc[0](Arg0: &mut vector<Ty0>)
1: FreezeRef
2: VecLen(10)
3: StLoc[4](loc2: u64)
4: CopyLoc[1](Arg1: u64)
5: CopyLoc[4](loc2: u64)
6: Ge
7: BrFalse(12)
B1:
8: MoveLoc[0](Arg0: &mut vector<Ty0>)
9: Pop
10: LdConst[0](u64: 131072)
11: Abort
B2:
12: MoveLoc[4](loc2: u64)
13: LdU64(1)
14: Sub
15: StLoc[4](loc2: u64)
B3:
16: CopyLoc[1](Arg1: u64)
17: CopyLoc[4](loc2: u64)
18: Lt
19: BrFalse(33)
B4:
20: CopyLoc[0](Arg0: &mut vector<Ty0>)
21: StLoc[3](loc1: &mut vector<Ty0>)
22: CopyLoc[1](Arg1: u64)
23: StLoc[2](loc0: u64)
24: MoveLoc[1](Arg1: u64)
25: LdU64(1)
26: Add
27: StLoc[1](Arg1: u64)
28: MoveLoc[3](loc1: &mut vector<Ty0>)
29: MoveLoc[2](loc0: u64)
30: CopyLoc[1](Arg1: u64)
31: VecSwap(10)
32: Branch(16)
B5:
33: MoveLoc[0](Arg0: &mut vector<Ty0>)
34: VecPopBack(10)
35: Ret
}
public insert<Ty0>(Arg0: &mut vector<Ty0>, Arg1: Ty0, Arg2: u64) {
L3: loc0: u64
B0:
0: CopyLoc[0](Arg0: &mut vector<Ty0>)
1: FreezeRef
2: VecLen(10)
3: StLoc[3](loc0: u64)
4: CopyLoc[2](Arg2: u64)
5: CopyLoc[3](loc0: u64)
6: Gt
7: BrFalse(12)
B1:
8: MoveLoc[0](Arg0: &mut vector<Ty0>)
9: Pop
10: LdConst[0](u64: 131072)
11: Abort
B2:
12: CopyLoc[0](Arg0: &mut vector<Ty0>)
13: MoveLoc[1](Arg1: Ty0)
14: VecPushBack(10)
B3:
15: CopyLoc[2](Arg2: u64)
16: CopyLoc[3](loc0: u64)
17: Lt
18: BrFalse(28)
B4:
19: CopyLoc[0](Arg0: &mut vector<Ty0>)
20: CopyLoc[2](Arg2: u64)
21: CopyLoc[3](loc0: u64)
22: VecSwap(10)
23: MoveLoc[2](Arg2: u64)
24: LdU64(1)
25: Add
26: StLoc[2](Arg2: u64)
27: Branch(15)
B5:
28: MoveLoc[0](Arg0: &mut vector<Ty0>)
29: Pop
30: Ret
}
public swap_remove<Ty0>(Arg0: &mut vector<Ty0>, Arg1: u64): Ty0 {
L2: loc0: u64
B0:
0: CopyLoc[0](Arg0: &mut vector<Ty0>)
1: FreezeRef
2: VecLen(10)
3: LdU64(0)
4: Neq
5: BrFalse(7)
B1:
6: Branch(11)
B2:
7: MoveLoc[0](Arg0: &mut vector<Ty0>)
8: Pop
9: LdConst[0](u64: 131072)
10: Abort
B3:
11: CopyLoc[0](Arg0: &mut vector<Ty0>)
12: FreezeRef
13: VecLen(10)
14: LdU64(1)
15: Sub
16: StLoc[2](loc0: u64)
17: CopyLoc[0](Arg0: &mut vector<Ty0>)
18: MoveLoc[1](Arg1: u64)
19: MoveLoc[2](loc0: u64)
20: VecSwap(10)
21: MoveLoc[0](Arg0: &mut vector<Ty0>)
22: VecPopBack(10)
23: Ret
}
public skip<Ty0: drop>(Arg0: vector<Ty0>, Arg1: u64): vector<Ty0> {
L2: loc0: u64
L3: loc1: Ty0
L4: loc2: &mut vector<Ty0>
L5: loc3: u64
L6: loc4: u64
L7: loc5: u64
L8: loc6: vector<Ty0>
L9: loc7: u64
L10: loc8: vector<Ty0>
B0:
0: ImmBorrowLoc[0](Arg0: vector<Ty0>)
1: VecLen(10)
2: StLoc[7](loc5: u64)
3: CopyLoc[1](Arg1: u64)
4: CopyLoc[7](loc5: u64)
5: Ge
6: BrFalse(9)
B1:
7: VecPack(10, 0)
8: Ret
B2:
9: VecPack(10, 0)
10: StLoc[10](loc8: vector<Ty0>)
11: MoveLoc[7](loc5: u64)
12: MoveLoc[1](Arg1: u64)
13: Sub
14: StLoc[2](loc0: u64)
15: LdU64(0)
16: StLoc[6](loc4: u64)
17: MoveLoc[2](loc0: u64)
18: StLoc[9](loc7: u64)
B3:
19: CopyLoc[6](loc4: u64)
20: CopyLoc[9](loc7: u64)
21: Lt
22: BrFalse(40)
B4:
23: CopyLoc[6](loc4: u64)
24: StLoc[5](loc3: u64)
25: MutBorrowLoc[10](loc8: vector<Ty0>)
26: StLoc[4](loc2: &mut vector<Ty0>)
27: MoveLoc[5](loc3: u64)
28: Pop
29: MutBorrowLoc[0](Arg0: vector<Ty0>)
30: VecPopBack(10)
31: StLoc[3](loc1: Ty0)
32: MoveLoc[4](loc2: &mut vector<Ty0>)
33: MoveLoc[3](loc1: Ty0)
34: VecPushBack(10)
35: MoveLoc[6](loc4: u64)
36: LdU64(1)
37: Add
38: StLoc[6](loc4: u64)
39: Branch(19)
B5:
40: MoveLoc[10](loc8: vector<Ty0>)
41: StLoc[8](loc6: vector<Ty0>)
42: MutBorrowLoc[8](loc6: vector<Ty0>)
43: Call reverse<Ty0>(&mut vector<Ty0>)
44: MoveLoc[8](loc6: vector<Ty0>)
45: Ret
}
public take<Ty0: drop>(Arg0: vector<Ty0>, Arg1: u64): vector<Ty0> {
L2: loc0: u64
L3: loc1: Ty0
L4: loc2: &mut vector<Ty0>
L5: loc3: u64
L6: loc4: u64
L7: loc5: u64
L8: loc6: vector<Ty0>
B0:
0: CopyLoc[1](Arg1: u64)
1: ImmBorrowLoc[0](Arg0: vector<Ty0>)
2: VecLen(10)
3: Le
4: BrFalse(6)
B1:
5: Branch(8)
B2:
6: LdU64(13906834934552592383)
7: Abort
B3:
8: CopyLoc[1](Arg1: u64)
9: ImmBorrowLoc[0](Arg0: vector<Ty0>)
10: VecLen(10)
11: Eq
12: BrFalse(15)
B4:
13: MoveLoc[0](Arg0: vector<Ty0>)
14: Ret
B5:
15: MutBorrowLoc[0](Arg0: vector<Ty0>)
16: Call reverse<Ty0>(&mut vector<Ty0>)
17: VecPack(10, 0)
18: StLoc[8](loc6: vector<Ty0>)
19: MoveLoc[1](Arg1: u64)
20: StLoc[2](loc0: u64)
21: LdU64(0)
22: StLoc[6](loc4: u64)
23: MoveLoc[2](loc0: u64)
24: StLoc[7](loc5: u64)
B6:
25: CopyLoc[6](loc4: u64)
26: CopyLoc[7](loc5: u64)
27: Lt
28: BrFalse(46)
B7:
29: CopyLoc[6](loc4: u64)
30: StLoc[5](loc3: u64)
31: MutBorrowLoc[8](loc6: vector<Ty0>)
32: StLoc[4](loc2: &mut vector<Ty0>)
33: MoveLoc[5](loc3: u64)
34: Pop
35: MutBorrowLoc[0](Arg0: vector<Ty0>)
36: VecPopBack(10)
37: StLoc[3](loc1: Ty0)
38: MoveLoc[4](loc2: &mut vector<Ty0>)
39: MoveLoc[3](loc1: Ty0)
40: VecPushBack(10)
41: MoveLoc[6](loc4: u64)
42: LdU64(1)
43: Add
44: StLoc[6](loc4: u64)
45: Branch(25)
B8:
46: MoveLoc[8](loc6: vector<Ty0>)
47: Ret
}
public flatten<Ty0>(Arg0: vector<vector<Ty0>>): vector<Ty0> {
L1: loc0: u64
L2: loc1: u64
L3: loc2: vector<Ty0>
L4: loc3: u64
L5: loc4: vector<Ty0>
L6: loc5: vector<vector<Ty0>>
B0:
0: VecPack(10, 0)
1: StLoc[3](loc2: vector<Ty0>)
2: MoveLoc[0](Arg0: vector<vector<Ty0>>)
3: StLoc[6](loc5: vector<vector<Ty0>>)
4: MutBorrowLoc[6](loc5: vector<vector<Ty0>>)
5: Call reverse<vector<Ty0>>(&mut vector<vector<Ty0>>)
6: ImmBorrowLoc[6](loc5: vector<vector<Ty0>>)
7: VecLen(1)
8: StLoc[1](loc0: u64)
9: LdU64(0)
10: StLoc[2](loc1: u64)
11: MoveLoc[1](loc0: u64)
12: StLoc[4](loc3: u64)
B1:
13: CopyLoc[2](loc1: u64)
14: CopyLoc[4](loc3: u64)
15: Lt
16: BrFalse(30)
B2:
17: CopyLoc[2](loc1: u64)
18: Pop
19: MutBorrowLoc[6](loc5: vector<vector<Ty0>>)
20: VecPopBack(1)
21: StLoc[5](loc4: vector<Ty0>)
22: MutBorrowLoc[3](loc2: vector<Ty0>)
23: MoveLoc[5](loc4: vector<Ty0>)
24: Call append<Ty0>(&mut vector<Ty0>, vector<Ty0>)
25: MoveLoc[2](loc1: u64)
26: LdU64(1)
27: Add
28: StLoc[2](loc1: u64)
29: Branch(13)
B3:
30: MoveLoc[6](loc5: vector<vector<Ty0>>)
31: VecUnpack(1, 0)
32: MoveLoc[3](loc2: vector<Ty0>)
33: Ret
}
Constants [
0 => u64: 131072
]
}
SafeCoin