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

API

u256

Module0x0000…0001
Move path
0x0000…0001::u256
Functions
2323 public, 0 entry
Structs
0
Friend modules
None
u256

Bytecode716 lines

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

// Move bytecode v7
module 1.u256 {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
 
public bitwise_not(Arg0: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1LdU256(115792089237316195423570985008687907853269984665640564039457584007913129639935)
2Xor
3Ret
}
 
public max(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc1: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[4](loc2: u256)
4CopyLoc[3](loc1: u256)
5CopyLoc[4](loc2: u256)
6Gt
7BrFalse(11)
B1:
8MoveLoc[3](loc1: u256)
9StLoc[2](loc0: u256)
10Branch(13)
B2:
11MoveLoc[4](loc2: u256)
12StLoc[2](loc0: u256)
B3:
13MoveLoc[2](loc0: u256)
14Ret
}
 
public min(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc1: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[4](loc2: u256)
4CopyLoc[3](loc1: u256)
5CopyLoc[4](loc2: u256)
6Lt
7BrFalse(11)
B1:
8MoveLoc[3](loc1: u256)
9StLoc[2](loc0: u256)
10Branch(13)
B2:
11MoveLoc[4](loc2: u256)
12StLoc[2](loc0: u256)
B3:
13MoveLoc[2](loc0: u256)
14Ret
}
 
public diff(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc1: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[4](loc2: u256)
4CopyLoc[3](loc1: u256)
5CopyLoc[4](loc2: u256)
6Gt
7BrFalse(13)
B1:
8MoveLoc[3](loc1: u256)
9MoveLoc[4](loc2: u256)
10Sub
11StLoc[2](loc0: u256)
12Branch(17)
B2:
13MoveLoc[4](loc2: u256)
14MoveLoc[3](loc1: u256)
15Sub
16StLoc[2](loc0: u256)
B3:
17MoveLoc[2](loc0: u256)
18Ret
}
 
public div_ceil(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc1: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[4](loc2: u256)
4CopyLoc[3](loc1: u256)
5CopyLoc[4](loc2: u256)
6Mod
7LdU256(0)
8Eq
9BrFalse(15)
B1:
10MoveLoc[3](loc1: u256)
11MoveLoc[4](loc2: u256)
12Div
13StLoc[2](loc0: u256)
14Branch(21)
B2:
15MoveLoc[3](loc1: u256)
16MoveLoc[4](loc2: u256)
17Div
18LdU256(1)
19Add
20StLoc[2](loc0: u256)
B3:
21MoveLoc[2](loc0: u256)
22Ret
}
 
public pow(Arg0: u256, Arg1: u8): u256 {
L2: loc0: u256
L3: loc1: u8
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[2](loc0: u256)
2MoveLoc[1](Arg1: u8)
3StLoc[3](loc1: u8)
4LdU256(1)
5StLoc[4](loc2: u256)
B1:
6CopyLoc[3](loc1: u8)
7LdU8(1)
8Ge
9BrFalse(35)
B2:
10Branch(11)
B3:
11CopyLoc[3](loc1: u8)
12LdU8(2)
13Mod
14LdU8(0)
15Eq
16BrFalse(26)
B4:
17CopyLoc[2](loc0: u256)
18MoveLoc[2](loc0: u256)
19Mul
20StLoc[2](loc0: u256)
21MoveLoc[3](loc1: u8)
22LdU8(2)
23Div
24StLoc[3](loc1: u8)
25Branch(6)
B5:
26MoveLoc[4](loc2: u256)
27CopyLoc[2](loc0: u256)
28Mul
29StLoc[4](loc2: u256)
30MoveLoc[3](loc1: u8)
31LdU8(1)
32Sub
33StLoc[3](loc1: u8)
34Branch(6)
B6:
35MoveLoc[4](loc2: u256)
36Ret
}
 
public try_as_u8(Arg0: u256): Option<u8> {
L1: loc0: Option<u8>
L2: loc1: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[2](loc1: u256)
2CopyLoc[2](loc1: u256)
3LdU256(255)
4Gt
5BrFalse(9)
B1:
6Call option::none<u8>(): Option<u8>
7StLoc[1](loc0: Option<u8>)
8Branch(13)
B2:
9MoveLoc[2](loc1: u256)
10CastU8
11Call option::some<u8>(u8): Option<u8>
12StLoc[1](loc0: Option<u8>)
B3:
13MoveLoc[1](loc0: Option<u8>)
14Ret
}
 
public try_as_u16(Arg0: u256): Option<u16> {
L1: loc0: Option<u16>
L2: loc1: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[2](loc1: u256)
2CopyLoc[2](loc1: u256)
3LdU256(65535)
4Gt
5BrFalse(9)
B1:
6Call option::none<u16>(): Option<u16>
7StLoc[1](loc0: Option<u16>)
8Branch(13)
B2:
9MoveLoc[2](loc1: u256)
10CastU16
11Call option::some<u16>(u16): Option<u16>
12StLoc[1](loc0: Option<u16>)
B3:
13MoveLoc[1](loc0: Option<u16>)
14Ret
}
 
public try_as_u32(Arg0: u256): Option<u32> {
L1: loc0: Option<u32>
L2: loc1: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[2](loc1: u256)
2CopyLoc[2](loc1: u256)
3LdU256(4294967295)
4Gt
5BrFalse(9)
B1:
6Call option::none<u32>(): Option<u32>
7StLoc[1](loc0: Option<u32>)
8Branch(13)
B2:
9MoveLoc[2](loc1: u256)
10CastU32
11Call option::some<u32>(u32): Option<u32>
12StLoc[1](loc0: Option<u32>)
B3:
13MoveLoc[1](loc0: Option<u32>)
14Ret
}
 
public try_as_u64(Arg0: u256): Option<u64> {
L1: loc0: Option<u64>
L2: loc1: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[2](loc1: u256)
2CopyLoc[2](loc1: u256)
3LdU256(18446744073709551615)
4Gt
5BrFalse(9)
B1:
6Call option::none<u64>(): Option<u64>
7StLoc[1](loc0: Option<u64>)
8Branch(13)
B2:
9MoveLoc[2](loc1: u256)
10CastU64
11Call option::some<u64>(u64): Option<u64>
12StLoc[1](loc0: Option<u64>)
B3:
13MoveLoc[1](loc0: Option<u64>)
14Ret
}
 
public try_as_u128(Arg0: u256): Option<u128> {
L1: loc0: Option<u128>
L2: loc1: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[2](loc1: u256)
2CopyLoc[2](loc1: u256)
3LdU256(340282366920938463463374607431768211455)
4Gt
5BrFalse(9)
B1:
6Call option::none<u128>(): Option<u128>
7StLoc[1](loc0: Option<u128>)
8Branch(13)
B2:
9MoveLoc[2](loc1: u256)
10CastU128
11Call option::some<u128>(u128): Option<u128>
12StLoc[1](loc0: Option<u128>)
B3:
13MoveLoc[1](loc0: Option<u128>)
14Ret
}
 
public to_string(Arg0: u256): String {
L1: loc0: String
L2: loc1: vector<u8>
L3: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc2: u256)
2CopyLoc[3](loc2: u256)
3LdU256(0)
4Eq
5BrFalse(10)
B1:
6LdConst[0](vector<u8>: "0" ..)
7Call string::utf8(vector<u8>): String
8StLoc[1](loc0: String)
9Branch(34)
B2:
10LdConst[1](vector<u8>: "" /..)
11StLoc[2](loc1: vector<u8>)
B3:
12CopyLoc[3](loc2: u256)
13LdU256(0)
14Neq
15BrFalse(29)
B4:
16MutBorrowLoc[2](loc1: vector<u8>)
17LdU256(48)
18CopyLoc[3](loc2: u256)
19LdU256(10)
20Mod
21Add
22CastU8
23VecPushBack(14)
24MoveLoc[3](loc2: u256)
25LdU256(10)
26Div
27StLoc[3](loc2: u256)
28Branch(12)
B5:
29MutBorrowLoc[2](loc1: vector<u8>)
30Call vector::reverse<u8>(&mut vector<u8>)
31MoveLoc[2](loc1: vector<u8>)
32Call string::utf8(vector<u8>): String
33StLoc[1](loc0: String)
B6:
34MoveLoc[1](loc0: String)
35Ret
}
 
public checked_add(Arg0: u256, Arg1: u256): Option<u256> {
L2: loc0: Option<u256>
L3: loc1: u256
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc1: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[4](loc2: u256)
4CopyLoc[4](loc2: u256)
5LdU256(115792089237316195423570985008687907853269984665640564039457584007913129639935)
6CopyLoc[3](loc1: u256)
7Sub
8Gt
9BrFalse(13)
B1:
10Call option::none<u256>(): Option<u256>
11StLoc[2](loc0: Option<u256>)
12Branch(18)
B2:
13MoveLoc[3](loc1: u256)
14MoveLoc[4](loc2: u256)
15Add
16Call option::some<u256>(u256): Option<u256>
17StLoc[2](loc0: Option<u256>)
B3:
18MoveLoc[2](loc0: Option<u256>)
19Ret
}
 
public checked_sub(Arg0: u256, Arg1: u256): Option<u256> {
L2: loc0: Option<u256>
L3: loc1: u256
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc1: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[4](loc2: u256)
4CopyLoc[3](loc1: u256)
5CopyLoc[4](loc2: u256)
6Lt
7BrFalse(11)
B1:
8Call option::none<u256>(): Option<u256>
9StLoc[2](loc0: Option<u256>)
10Branch(16)
B2:
11MoveLoc[3](loc1: u256)
12MoveLoc[4](loc2: u256)
13Sub
14Call option::some<u256>(u256): Option<u256>
15StLoc[2](loc0: Option<u256>)
B3:
16MoveLoc[2](loc0: Option<u256>)
17Ret
}
 
public checked_mul(Arg0: u256, Arg1: u256): Option<u256> {
L2: loc0: bool
L3: loc1: Option<u256>
L4: loc2: Option<u256>
L5: loc3: u256
L6: loc4: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[5](loc3: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[6](loc4: u256)
4CopyLoc[5](loc3: u256)
5LdU256(0)
6Eq
7BrFalse(11)
B1:
8LdTrue
9StLoc[2](loc0: bool)
10Branch(15)
B2:
11CopyLoc[6](loc4: u256)
12LdU256(0)
13Eq
14StLoc[2](loc0: bool)
B3:
15MoveLoc[2](loc0: bool)
16BrFalse(21)
B4:
17LdU256(0)
18Call option::some<u256>(u256): Option<u256>
19StLoc[4](loc2: Option<u256>)
20Branch(37)
B5:
21CopyLoc[6](loc4: u256)
22LdU256(115792089237316195423570985008687907853269984665640564039457584007913129639935)
23CopyLoc[5](loc3: u256)
24Div
25Gt
26BrFalse(30)
B6:
27Call option::none<u256>(): Option<u256>
28StLoc[3](loc1: Option<u256>)
29Branch(35)
B7:
30MoveLoc[5](loc3: u256)
31MoveLoc[6](loc4: u256)
32Mul
33Call option::some<u256>(u256): Option<u256>
34StLoc[3](loc1: Option<u256>)
B8:
35MoveLoc[3](loc1: Option<u256>)
36StLoc[4](loc2: Option<u256>)
B9:
37MoveLoc[4](loc2: Option<u256>)
38Ret
}
 
public checked_div(Arg0: u256, Arg1: u256): Option<u256> {
L2: loc0: Option<u256>
L3: loc1: u256
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc1: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[4](loc2: u256)
4CopyLoc[4](loc2: u256)
5LdU256(0)
6Eq
7BrFalse(11)
B1:
8Call option::none<u256>(): Option<u256>
9StLoc[2](loc0: Option<u256>)
10Branch(16)
B2:
11MoveLoc[3](loc1: u256)
12MoveLoc[4](loc2: u256)
13Div
14Call option::some<u256>(u256): Option<u256>
15StLoc[2](loc0: Option<u256>)
B3:
16MoveLoc[2](loc0: Option<u256>)
17Ret
}
 
public saturating_add(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
L5: loc3: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[4](loc2: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[5](loc3: u256)
4LdU256(115792089237316195423570985008687907853269984665640564039457584007913129639935)
5StLoc[3](loc1: u256)
6CopyLoc[5](loc3: u256)
7CopyLoc[3](loc1: u256)
8CopyLoc[4](loc2: u256)
9Sub
10Gt
11BrFalse(15)
B1:
12MoveLoc[3](loc1: u256)
13StLoc[2](loc0: u256)
14Branch(19)
B2:
15MoveLoc[4](loc2: u256)
16MoveLoc[5](loc3: u256)
17Add
18StLoc[2](loc0: u256)
B3:
19MoveLoc[2](loc0: u256)
20Ret
}
 
public saturating_sub(Arg0: u256, Arg1: u256): u256 {
L2: loc0: u256
L3: loc1: u256
L4: loc2: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[3](loc1: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[4](loc2: u256)
4CopyLoc[3](loc1: u256)
5CopyLoc[4](loc2: u256)
6Lt
7BrFalse(11)
B1:
8LdU256(0)
9StLoc[2](loc0: u256)
10Branch(15)
B2:
11MoveLoc[3](loc1: u256)
12MoveLoc[4](loc2: u256)
13Sub
14StLoc[2](loc0: u256)
B3:
15MoveLoc[2](loc0: u256)
16Ret
}
 
public saturating_mul(Arg0: u256, Arg1: u256): u256 {
L2: loc0: bool
L3: loc1: u256
L4: loc2: u256
L5: loc3: u256
L6: loc4: u256
L7: loc5: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[6](loc4: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[7](loc5: u256)
4LdU256(115792089237316195423570985008687907853269984665640564039457584007913129639935)
5StLoc[5](loc3: u256)
6CopyLoc[6](loc4: u256)
7LdU256(0)
8Eq
9BrFalse(13)
B1:
10LdTrue
11StLoc[2](loc0: bool)
12Branch(17)
B2:
13CopyLoc[7](loc5: u256)
14LdU256(0)
15Eq
16StLoc[2](loc0: bool)
B3:
17MoveLoc[2](loc0: bool)
18BrFalse(22)
B4:
19LdU256(0)
20StLoc[4](loc2: u256)
21Branch(37)
B5:
22CopyLoc[7](loc5: u256)
23CopyLoc[5](loc3: u256)
24CopyLoc[6](loc4: u256)
25Div
26Gt
27BrFalse(31)
B6:
28MoveLoc[5](loc3: u256)
29StLoc[3](loc1: u256)
30Branch(35)
B7:
31MoveLoc[6](loc4: u256)
32MoveLoc[7](loc5: u256)
33Mul
34StLoc[3](loc1: u256)
B8:
35MoveLoc[3](loc1: u256)
36StLoc[4](loc2: u256)
B9:
37MoveLoc[4](loc2: u256)
38Ret
}
 
public lossless_shl(Arg0: u256, Arg1: u8): Option<u256> {
L2: loc0: Option<u256>
L3: loc1: u256
B0:
0CopyLoc[0](Arg0: u256)
1CopyLoc[1](Arg1: u8)
2Shl
3StLoc[3](loc1: u256)
4CopyLoc[3](loc1: u256)
5MoveLoc[1](Arg1: u8)
6Shr
7MoveLoc[0](Arg0: u256)
8Eq
9BrFalse(14)
B1:
10MoveLoc[3](loc1: u256)
11Call option::some<u256>(u256): Option<u256>
12StLoc[2](loc0: Option<u256>)
13Branch(16)
B2:
14Call option::none<u256>(): Option<u256>
15StLoc[2](loc0: Option<u256>)
B3:
16MoveLoc[2](loc0: Option<u256>)
17Ret
}
 
public lossless_shr(Arg0: u256, Arg1: u8): Option<u256> {
L2: loc0: Option<u256>
L3: loc1: u256
B0:
0CopyLoc[0](Arg0: u256)
1CopyLoc[1](Arg1: u8)
2Shr
3StLoc[3](loc1: u256)
4CopyLoc[3](loc1: u256)
5MoveLoc[1](Arg1: u8)
6Shl
7MoveLoc[0](Arg0: u256)
8Eq
9BrFalse(14)
B1:
10MoveLoc[3](loc1: u256)
11Call option::some<u256>(u256): Option<u256>
12StLoc[2](loc0: Option<u256>)
13Branch(16)
B2:
14Call option::none<u256>(): Option<u256>
15StLoc[2](loc0: Option<u256>)
B3:
16MoveLoc[2](loc0: Option<u256>)
17Ret
}
 
public lossless_div(Arg0: u256, Arg1: u256): Option<u256> {
L2: loc0: Option<u256>
L3: loc1: Option<u256>
L4: loc2: u256
L5: loc3: u256
B0:
0MoveLoc[0](Arg0: u256)
1StLoc[4](loc2: u256)
2MoveLoc[1](Arg1: u256)
3StLoc[5](loc3: u256)
4CopyLoc[5](loc3: u256)
5LdU256(0)
6Eq
7BrFalse(11)
B1:
8Call option::none<u256>(): Option<u256>
9StLoc[3](loc1: Option<u256>)
10Branch(27)
B2:
11CopyLoc[4](loc2: u256)
12CopyLoc[5](loc3: u256)
13Mod
14LdU256(0)
15Eq
16BrFalse(23)
B3:
17MoveLoc[4](loc2: u256)
18MoveLoc[5](loc3: u256)
19Div
20Call option::some<u256>(u256): Option<u256>
21StLoc[2](loc0: Option<u256>)
22Branch(25)
B4:
23Call option::none<u256>(): Option<u256>
24StLoc[2](loc0: Option<u256>)
B5:
25MoveLoc[2](loc0: Option<u256>)
26StLoc[3](loc1: Option<u256>)
B6:
27MoveLoc[3](loc1: Option<u256>)
28Ret
}
 
public divide_and_round_up(Arg0: u256, Arg1: u256): u256 {
B0:
0MoveLoc[0](Arg0: u256)
1MoveLoc[1](Arg1: u256)
2Call div_ceil(u256, u256): u256
3Ret
}
 
Constants [
0 => vector<u8>: "0" // interpreted as UTF8 string
1 => vector<u8>: "" // interpreted as UTF8 string
]
}