math
Module0x9193…6edc
- Move path
- 0x9193…6edc::math
- Functions
- 66 public, 0 entry
- Structs
- 0
- Friend modules
- None
math
Bytecode186 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module 9193d45dad53d69b83728cc015e398196fc7a35c06f1e758dfd5f71c51cf6edc.math {
public mul_factor(Arg0: u64, Arg1: u64, Arg2: u64): u64 {
B0:
0CopyLoc[2](Arg2: u64)
1LdU64(0)
2Gt
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 0)
6Abort
B3:
7MoveLoc[0](Arg0: u64)
8CastU128
9MoveLoc[1](Arg1: u64)
10CastU128
11Mul
12CopyLoc[2](Arg2: u64)
13CastU128
14LdU128(2)
15Div
16Add
17MoveLoc[2](Arg2: u64)
18CastU128
19Div
20CastU64
21Ret
}
public mul_factor_u128(Arg0: u128, Arg1: u128, Arg2: u128): u128 {
B0:
0CopyLoc[2](Arg2: u128)
1LdU128(0)
2Gt
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[0](u64: 0)
6Abort
B3:
7MoveLoc[0](Arg0: u128)
8MoveLoc[1](Arg1: u128)
9Mul
10CopyLoc[2](Arg2: u128)
11LdU128(2)
12Div
13Add
14MoveLoc[2](Arg2: u128)
15Div
16Ret
}
public compute_time_multiplier(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64): u64 {
L4: loc0: bool
B0:
0CopyLoc[0](Arg0: u64)
1MoveLoc[1](Arg1: u64)
2Ge
3BrFalse(9)
B1:
4CopyLoc[0](Arg0: u64)
5CopyLoc[2](Arg2: u64)
6Le
7StLoc[4](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[4](loc0: bool)
B3:
11MoveLoc[4](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[1](u64: 1)
15Abort
B6:
16MoveLoc[3](Arg3: u64)
17MoveLoc[0](Arg0: u64)
18MoveLoc[2](Arg2: u64)
19Call mul_factor(u64, u64, u64): u64
20Ret
}
public compute_net_multiplier(Arg0: u64, Arg1: u64): u64 {
B0:
0MoveLoc[0](Arg0: u64)
1MoveLoc[1](Arg1: u64)
2LdConst[3](u64: 1000..)
3Call mul_factor(u64, u64, u64): u64
4Ret
}
public compute_stake_weight(Arg0: u64, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64): u128 * u64 * u64 {
L6: loc0: u64
L7: loc1: u64
L8: loc2: u64
L9: loc3: u64
L10: loc4: u128
B0:
0MoveLoc[1](Arg1: u64)
1MoveLoc[2](Arg2: u64)
2MoveLoc[3](Arg3: u64)
3MoveLoc[4](Arg4: u64)
4Call compute_time_multiplier(u64, u64, u64, u64): u64
5StLoc[8](loc2: u64)
6CopyLoc[8](loc2: u64)
7MoveLoc[5](Arg5: u64)
8Call compute_net_multiplier(u64, u64): u64
9StLoc[6](loc0: u64)
10MoveLoc[0](Arg0: u64)
11CastU128
12CopyLoc[6](loc0: u64)
13CastU128
14LdConst[3](u64: 1000..)
15CastU128
16Call mul_factor_u128(u128, u128, u128): u128
17MoveLoc[6](loc0: u64)
18MoveLoc[8](loc2: u64)
19StLoc[9](loc3: u64)
20StLoc[7](loc1: u64)
21StLoc[10](loc4: u128)
22CopyLoc[10](loc4: u128)
23LdU128(340282366920938463463374607431768211455)
24Lt
25BrFalse(27)
B1:
26Branch(29)
B2:
27LdConst[2](u64: 2)
28Abort
B3:
29CopyLoc[10](loc4: u128)
30LdU128(0)
31Gt
32BrFalse(34)
B4:
33Branch(36)
B5:
34LdConst[2](u64: 2)
35Abort
B6:
36CopyLoc[7](loc1: u64)
37LdU64(0)
38Gt
39BrFalse(41)
B7:
40Branch(43)
B8:
41LdConst[2](u64: 2)
42Abort
B9:
43CopyLoc[9](loc3: u64)
44LdU64(0)
45Gt
46BrFalse(48)
B10:
47Branch(50)
B11:
48LdConst[2](u64: 2)
49Abort
B12:
50MoveLoc[10](loc4: u128)
51MoveLoc[7](loc1: u64)
52MoveLoc[9](loc3: u64)
53Ret
}
public multiplier_scale(): u64 {
B0:
0LdConst[3](u64: 1000..)
1Ret
}
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 1000000000
]
}