decimal
Module0xf347…64f9
- Move path
- 0xc3c7…8ea3::decimal
- Functions
- 2018 public, 0 entry
- Structs
- 1
- Friend modules
- None
decimal
- aggregator35
- aggregator_delete_action3
- aggregator_init_action3
- aggregator_set_authority_action3
- aggregator_set_configs_action3
- aggregator_submit_result_action3
- decimal20
- emergency_action3
- guardian_queue_init_action3
- hash17
- on_demand7
- oracle16
- oracle_attest_action3
- oracle_init_action3
- oracle_queue_init_action3
- queue29
- queue_add_fee_coin_action3
- queue_override_oracle_action3
- queue_remove_fee_coin_action3
- queue_set_authority_action3
- queue_set_configs_action3
- quote17
- quote_emit_result_action1
- quote_submit_action21
- set_guardian_queue_id_action3
- set_oracle_queue_id_action3
- set_package_id_action3
Bytecode554 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module c3c7e6eb7202e9fb0389a2f7542b91cc40e4f7a33c02554fec11c4c92f938ea3.decimal {
struct Decimal has copy, drop, store {
value: u128,
neg: bool
}
public zero(): Decimal {
B0:
0LdU128(0)
1LdFalse
2Pack[0](Decimal)
3Ret
}
public new(Arg0: u128, Arg1: bool): Decimal {
B0:
0MoveLoc[0](Arg0: u128)
1MoveLoc[1](Arg1: bool)
2Pack[0](Decimal)
3Ret
}
public unpack(Arg0: Decimal): u128 * bool {
B0:
0MoveLoc[0](Arg0: Decimal)
1Unpack[0](Decimal)
2Ret
}
public value(Arg0: &Decimal): u128 {
B0:
0MoveLoc[0](Arg0: &Decimal)
1ImmBorrowField[0](Decimal.value: u128)
2ReadRef
3Ret
}
public dec(Arg0: &Decimal): u8 {
B0:
0LdConst[0](u8: 18)
1Ret
}
public neg(Arg0: &Decimal): bool {
B0:
0MoveLoc[0](Arg0: &Decimal)
1ImmBorrowField[1](Decimal.neg: bool)
2ReadRef
3Ret
}
public max_value(): Decimal {
B0:
0LdU128(340282366920938463463374607431768211455)
1LdFalse
2Pack[0](Decimal)
3Ret
}
public equals(Arg0: &Decimal, Arg1: &Decimal): bool {
L2: loc0: bool
B0:
0CopyLoc[0](Arg0: &Decimal)
1ImmBorrowField[0](Decimal.value: u128)
2ReadRef
3CopyLoc[1](Arg1: &Decimal)
4ImmBorrowField[0](Decimal.value: u128)
5ReadRef
6Eq
7BrFalse(17)
B1:
8MoveLoc[0](Arg0: &Decimal)
9ImmBorrowField[1](Decimal.neg: bool)
10ReadRef
11MoveLoc[1](Arg1: &Decimal)
12ImmBorrowField[1](Decimal.neg: bool)
13ReadRef
14Eq
15StLoc[2](loc0: bool)
16Branch(23)
B2:
17MoveLoc[1](Arg1: &Decimal)
18Pop
19MoveLoc[0](Arg0: &Decimal)
20Pop
21LdFalse
22StLoc[2](loc0: bool)
B3:
23MoveLoc[2](loc0: bool)
24Ret
}
public gt(Arg0: &Decimal, Arg1: &Decimal): bool {
L2: loc0: bool
B0:
0CopyLoc[0](Arg0: &Decimal)
1ImmBorrowField[1](Decimal.neg: bool)
2ReadRef
3BrFalse(9)
B1:
4CopyLoc[1](Arg1: &Decimal)
5ImmBorrowField[1](Decimal.neg: bool)
6ReadRef
7StLoc[2](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[2](loc0: bool)
B3:
11MoveLoc[2](loc0: bool)
12BrFalse(21)
B4:
13MoveLoc[0](Arg0: &Decimal)
14ImmBorrowField[0](Decimal.value: u128)
15ReadRef
16MoveLoc[1](Arg1: &Decimal)
17ImmBorrowField[0](Decimal.value: u128)
18ReadRef
19Lt
20Ret
B5:
21CopyLoc[0](Arg0: &Decimal)
22ImmBorrowField[1](Decimal.neg: bool)
23ReadRef
24BrFalse(31)
B6:
25MoveLoc[1](Arg1: &Decimal)
26Pop
27MoveLoc[0](Arg0: &Decimal)
28Pop
29LdFalse
30Ret
B7:
31CopyLoc[1](Arg1: &Decimal)
32ImmBorrowField[1](Decimal.neg: bool)
33ReadRef
34BrFalse(41)
B8:
35MoveLoc[1](Arg1: &Decimal)
36Pop
37MoveLoc[0](Arg0: &Decimal)
38Pop
39LdTrue
40Ret
B9:
41MoveLoc[0](Arg0: &Decimal)
42ImmBorrowField[0](Decimal.value: u128)
43ReadRef
44MoveLoc[1](Arg1: &Decimal)
45ImmBorrowField[0](Decimal.value: u128)
46ReadRef
47Gt
48Ret
}
public lt(Arg0: &Decimal, Arg1: &Decimal): bool {
L2: loc0: bool
B0:
0CopyLoc[0](Arg0: &Decimal)
1ImmBorrowField[1](Decimal.neg: bool)
2ReadRef
3BrFalse(9)
B1:
4CopyLoc[1](Arg1: &Decimal)
5ImmBorrowField[1](Decimal.neg: bool)
6ReadRef
7StLoc[2](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[2](loc0: bool)
B3:
11MoveLoc[2](loc0: bool)
12BrFalse(21)
B4:
13MoveLoc[0](Arg0: &Decimal)
14ImmBorrowField[0](Decimal.value: u128)
15ReadRef
16MoveLoc[1](Arg1: &Decimal)
17ImmBorrowField[0](Decimal.value: u128)
18ReadRef
19Gt
20Ret
B5:
21CopyLoc[0](Arg0: &Decimal)
22ImmBorrowField[1](Decimal.neg: bool)
23ReadRef
24BrFalse(31)
B6:
25MoveLoc[1](Arg1: &Decimal)
26Pop
27MoveLoc[0](Arg0: &Decimal)
28Pop
29LdTrue
30Ret
B7:
31CopyLoc[1](Arg1: &Decimal)
32ImmBorrowField[1](Decimal.neg: bool)
33ReadRef
34BrFalse(41)
B8:
35MoveLoc[1](Arg1: &Decimal)
36Pop
37MoveLoc[0](Arg0: &Decimal)
38Pop
39LdFalse
40Ret
B9:
41MoveLoc[0](Arg0: &Decimal)
42ImmBorrowField[0](Decimal.value: u128)
43ReadRef
44MoveLoc[1](Arg1: &Decimal)
45ImmBorrowField[0](Decimal.value: u128)
46ReadRef
47Lt
48Ret
}
public add(Arg0: &Decimal, Arg1: &Decimal): Decimal {
L2: loc0: bool
L3: loc1: Decimal
L4: loc2: Decimal
L5: loc3: Decimal
L6: loc4: Decimal
B0:
0CopyLoc[0](Arg0: &Decimal)
1ImmBorrowField[1](Decimal.neg: bool)
2ReadRef
3BrFalse(9)
B1:
4CopyLoc[1](Arg1: &Decimal)
5ImmBorrowField[1](Decimal.neg: bool)
6ReadRef
7StLoc[2](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[2](loc0: bool)
B3:
11MoveLoc[2](loc0: bool)
12BrFalse(24)
B4:
13MoveLoc[0](Arg0: &Decimal)
14MoveLoc[1](Arg1: &Decimal)
15Call add_internal(&Decimal, &Decimal): Decimal
16StLoc[6](loc4: Decimal)
17LdTrue
18MutBorrowLoc[6](loc4: Decimal)
19MutBorrowField[1](Decimal.neg: bool)
20WriteRef
21MoveLoc[6](loc4: Decimal)
22StLoc[5](loc3: Decimal)
23Branch(50)
B5:
24CopyLoc[0](Arg0: &Decimal)
25ImmBorrowField[1](Decimal.neg: bool)
26ReadRef
27BrFalse(33)
B6:
28MoveLoc[1](Arg1: &Decimal)
29MoveLoc[0](Arg0: &Decimal)
30Call sub_internal(&Decimal, &Decimal): Decimal
31StLoc[4](loc2: Decimal)
32Branch(48)
B7:
33CopyLoc[1](Arg1: &Decimal)
34ImmBorrowField[1](Decimal.neg: bool)
35ReadRef
36BrFalse(42)
B8:
37MoveLoc[0](Arg0: &Decimal)
38MoveLoc[1](Arg1: &Decimal)
39Call sub_internal(&Decimal, &Decimal): Decimal
40StLoc[3](loc1: Decimal)
41Branch(46)
B9:
42MoveLoc[0](Arg0: &Decimal)
43MoveLoc[1](Arg1: &Decimal)
44Call add_internal(&Decimal, &Decimal): Decimal
45StLoc[3](loc1: Decimal)
B10:
46MoveLoc[3](loc1: Decimal)
47StLoc[4](loc2: Decimal)
B11:
48MoveLoc[4](loc2: Decimal)
49StLoc[5](loc3: Decimal)
B12:
50MoveLoc[5](loc3: Decimal)
51Ret
}
public add_mut(Arg0: &mut Decimal, Arg1: &Decimal) {
B0:
0CopyLoc[0](Arg0: &mut Decimal)
1FreezeRef
2MoveLoc[1](Arg1: &Decimal)
3Call add(&Decimal, &Decimal): Decimal
4MoveLoc[0](Arg0: &mut Decimal)
5WriteRef
6Ret
}
public sub(Arg0: &Decimal, Arg1: &Decimal): Decimal {
L2: loc0: bool
L3: loc1: Decimal
L4: loc2: Decimal
L5: loc3: Decimal
L6: loc4: Decimal
B0:
0CopyLoc[0](Arg0: &Decimal)
1ImmBorrowField[1](Decimal.neg: bool)
2ReadRef
3BrFalse(9)
B1:
4CopyLoc[1](Arg1: &Decimal)
5ImmBorrowField[1](Decimal.neg: bool)
6ReadRef
7StLoc[2](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[2](loc0: bool)
B3:
11MoveLoc[2](loc0: bool)
12BrFalse(18)
B4:
13MoveLoc[1](Arg1: &Decimal)
14MoveLoc[0](Arg0: &Decimal)
15Call sub_internal(&Decimal, &Decimal): Decimal
16StLoc[5](loc3: Decimal)
17Branch(50)
B5:
18CopyLoc[0](Arg0: &Decimal)
19ImmBorrowField[1](Decimal.neg: bool)
20ReadRef
21BrFalse(33)
B6:
22MoveLoc[0](Arg0: &Decimal)
23MoveLoc[1](Arg1: &Decimal)
24Call add_internal(&Decimal, &Decimal): Decimal
25StLoc[6](loc4: Decimal)
26LdTrue
27MutBorrowLoc[6](loc4: Decimal)
28MutBorrowField[1](Decimal.neg: bool)
29WriteRef
30MoveLoc[6](loc4: Decimal)
31StLoc[4](loc2: Decimal)
32Branch(48)
B7:
33CopyLoc[1](Arg1: &Decimal)
34ImmBorrowField[1](Decimal.neg: bool)
35ReadRef
36BrFalse(42)
B8:
37MoveLoc[0](Arg0: &Decimal)
38MoveLoc[1](Arg1: &Decimal)
39Call add_internal(&Decimal, &Decimal): Decimal
40StLoc[3](loc1: Decimal)
41Branch(46)
B9:
42MoveLoc[0](Arg0: &Decimal)
43MoveLoc[1](Arg1: &Decimal)
44Call sub_internal(&Decimal, &Decimal): Decimal
45StLoc[3](loc1: Decimal)
B10:
46MoveLoc[3](loc1: Decimal)
47StLoc[4](loc2: Decimal)
B11:
48MoveLoc[4](loc2: Decimal)
49StLoc[5](loc3: Decimal)
B12:
50MoveLoc[5](loc3: Decimal)
51Ret
}
public sub_mut(Arg0: &mut Decimal, Arg1: &Decimal) {
B0:
0CopyLoc[0](Arg0: &mut Decimal)
1FreezeRef
2MoveLoc[1](Arg1: &Decimal)
3Call sub(&Decimal, &Decimal): Decimal
4MoveLoc[0](Arg0: &mut Decimal)
5WriteRef
6Ret
}
public min(Arg0: &Decimal, Arg1: &Decimal): Decimal {
L2: loc0: Decimal
B0:
0CopyLoc[0](Arg0: &Decimal)
1CopyLoc[1](Arg1: &Decimal)
2Call lt(&Decimal, &Decimal): bool
3BrFalse(10)
B1:
4MoveLoc[1](Arg1: &Decimal)
5Pop
6MoveLoc[0](Arg0: &Decimal)
7ReadRef
8StLoc[2](loc0: Decimal)
9Branch(15)
B2:
10MoveLoc[0](Arg0: &Decimal)
11Pop
12MoveLoc[1](Arg1: &Decimal)
13ReadRef
14StLoc[2](loc0: Decimal)
B3:
15MoveLoc[2](loc0: Decimal)
16Ret
}
public max(Arg0: &Decimal, Arg1: &Decimal): Decimal {
L2: loc0: Decimal
B0:
0CopyLoc[0](Arg0: &Decimal)
1CopyLoc[1](Arg1: &Decimal)
2Call gt(&Decimal, &Decimal): bool
3BrFalse(10)
B1:
4MoveLoc[1](Arg1: &Decimal)
5Pop
6MoveLoc[0](Arg0: &Decimal)
7ReadRef
8StLoc[2](loc0: Decimal)
9Branch(15)
B2:
10MoveLoc[0](Arg0: &Decimal)
11Pop
12MoveLoc[1](Arg1: &Decimal)
13ReadRef
14StLoc[2](loc0: Decimal)
B3:
15MoveLoc[2](loc0: Decimal)
16Ret
}
add_internal(Arg0: &Decimal, Arg1: &Decimal): Decimal {
B0:
0MoveLoc[0](Arg0: &Decimal)
1ImmBorrowField[0](Decimal.value: u128)
2ReadRef
3MoveLoc[1](Arg1: &Decimal)
4ImmBorrowField[0](Decimal.value: u128)
5ReadRef
6Add
7LdFalse
8Call new(u128, bool): Decimal
9Ret
}
sub_internal(Arg0: &Decimal, Arg1: &Decimal): Decimal {
L2: loc0: Decimal
B0:
0CopyLoc[1](Arg1: &Decimal)
1ImmBorrowField[0](Decimal.value: u128)
2ReadRef
3CopyLoc[0](Arg0: &Decimal)
4ImmBorrowField[0](Decimal.value: u128)
5ReadRef
6Gt
7BrFalse(19)
B1:
8MoveLoc[1](Arg1: &Decimal)
9ImmBorrowField[0](Decimal.value: u128)
10ReadRef
11MoveLoc[0](Arg0: &Decimal)
12ImmBorrowField[0](Decimal.value: u128)
13ReadRef
14Sub
15LdTrue
16Call new(u128, bool): Decimal
17StLoc[2](loc0: Decimal)
18Branch(29)
B2:
19MoveLoc[0](Arg0: &Decimal)
20ImmBorrowField[0](Decimal.value: u128)
21ReadRef
22MoveLoc[1](Arg1: &Decimal)
23ImmBorrowField[0](Decimal.value: u128)
24ReadRef
25Sub
26LdFalse
27Call new(u128, bool): Decimal
28StLoc[2](loc0: Decimal)
B3:
29MoveLoc[2](loc0: Decimal)
30Ret
}
public scale_to_decimals(Arg0: &Decimal, Arg1: u8): u128 {
B0:
0CopyLoc[1](Arg1: u8)
1LdConst[0](u8: 18)
2Lt
3BrFalse(13)
B1:
4MoveLoc[0](Arg0: &Decimal)
5ImmBorrowField[0](Decimal.value: u128)
6ReadRef
7LdConst[0](u8: 18)
8MoveLoc[1](Arg1: u8)
9Sub
10Call pow_10(u8): u128
11Mul
12Ret
B2:
13MoveLoc[0](Arg0: &Decimal)
14ImmBorrowField[0](Decimal.value: u128)
15ReadRef
16MoveLoc[1](Arg1: u8)
17LdConst[0](u8: 18)
18Sub
19Call pow_10(u8): u128
20Div
21Ret
}
public pow_10(Arg0: u8): u128 {
L1: loc0: u8
L2: loc1: u128
B0:
0LdU8(0)
1StLoc[1](loc0: u8)
2LdU128(1)
3StLoc[2](loc1: u128)
B1:
4CopyLoc[1](loc0: u8)
5CopyLoc[0](Arg0: u8)
6Lt
7BrFalse(18)
B2:
8Branch(9)
B3:
9MoveLoc[2](loc1: u128)
10LdU128(10)
11Mul
12StLoc[2](loc1: u128)
13MoveLoc[1](loc0: u8)
14LdU8(1)
15Add
16StLoc[1](loc0: u8)
17Branch(4)
B4:
18MoveLoc[2](loc1: u128)
19Ret
}
Constants [
0 => u8: 18
]
}