pending_values
Module0xfa65…814e
- Move path
- 0xfdc8…ea77::pending_values
- Functions
- 100 public, 0 entry
- Structs
- 1
- Friend modules
- staking_pool
pending_values
- active_set11
- apportionment_queue6
- auth5
- blob27
- bls_aggregate16
- committee9
- display4
- encoding1
- epoch_parameters4
- event_blob15
- events16
- extended_field5
- init3
- messages29
- metadata4
- node_metadata10
- pending_values10
- pool_exchange_rate4
- redstuff7
- shared_blob6
- sort0
- staked_wal12
- staking39
- staking_inner47
- staking_pool38
- storage_accounting13
- storage_node21
- storage_resource11
- system28
- system_state_inner26
- upgrade9
- walrus_context4
Bytecode394 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v7
module fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77.pending_values {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
struct PendingValues has copy, drop, store {
pos0: VecMap<u32, u64>
}
public(friend) empty(): PendingValues {
B0:
0Call vec_map::empty<u32, u64>(): VecMap<u32, u64>
1Pack[0](PendingValues)
2Ret
}
public(friend) insert_or_add(Arg0: &mut PendingValues, Arg1: u32, Arg2: u64) {
L3: loc0: &mut VecMap<u32, u64>
B0:
0MoveLoc[0](Arg0: &mut PendingValues)
1MutBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
2StLoc[3](loc0: &mut VecMap<u32, u64>)
3CopyLoc[3](loc0: &mut VecMap<u32, u64>)
4FreezeRef
5ImmBorrowLoc[1](Arg1: u32)
6Call vec_map::contains<u32, u64>(&VecMap<u32, u64>, &u32): bool
7Not
8BrFalse(14)
B1:
9MoveLoc[3](loc0: &mut VecMap<u32, u64>)
10MoveLoc[1](Arg1: u32)
11MoveLoc[2](Arg2: u64)
12Call vec_map::insert<u32, u64>(&mut VecMap<u32, u64>, u32, u64)
13Branch(25)
B2:
14CopyLoc[3](loc0: &mut VecMap<u32, u64>)
15FreezeRef
16ImmBorrowLoc[1](Arg1: u32)
17Call vec_map::get<u32, u64>(&VecMap<u32, u64>, &u32): &u64
18ReadRef
19MoveLoc[2](Arg2: u64)
20Add
21MoveLoc[3](loc0: &mut VecMap<u32, u64>)
22ImmBorrowLoc[1](Arg1: u32)
23Call vec_map::get_mut<u32, u64>(&mut VecMap<u32, u64>, &u32): &mut u64
24WriteRef
B3:
25Ret
}
public(friend) insert_or_replace(Arg0: &mut PendingValues, Arg1: u32, Arg2: u64) {
L3: loc0: &mut VecMap<u32, u64>
B0:
0MoveLoc[0](Arg0: &mut PendingValues)
1MutBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
2StLoc[3](loc0: &mut VecMap<u32, u64>)
3CopyLoc[3](loc0: &mut VecMap<u32, u64>)
4FreezeRef
5ImmBorrowLoc[1](Arg1: u32)
6Call vec_map::contains<u32, u64>(&VecMap<u32, u64>, &u32): bool
7Not
8BrFalse(14)
B1:
9MoveLoc[3](loc0: &mut VecMap<u32, u64>)
10MoveLoc[1](Arg1: u32)
11MoveLoc[2](Arg2: u64)
12Call vec_map::insert<u32, u64>(&mut VecMap<u32, u64>, u32, u64)
13Branch(19)
B2:
14MoveLoc[2](Arg2: u64)
15MoveLoc[3](loc0: &mut VecMap<u32, u64>)
16ImmBorrowLoc[1](Arg1: u32)
17Call vec_map::get_mut<u32, u64>(&mut VecMap<u32, u64>, &u32): &mut u64
18WriteRef
B3:
19Ret
}
public(friend) reduce(Arg0: &mut PendingValues, Arg1: u32, Arg2: u64) {
L3: loc0: u64
L4: loc1: &mut VecMap<u32, u64>
B0:
0MoveLoc[0](Arg0: &mut PendingValues)
1MutBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
2StLoc[4](loc1: &mut VecMap<u32, u64>)
3CopyLoc[4](loc1: &mut VecMap<u32, u64>)
4FreezeRef
5ImmBorrowLoc[1](Arg1: u32)
6Call vec_map::contains<u32, u64>(&VecMap<u32, u64>, &u32): bool
7Not
8BrFalse(13)
B1:
9MoveLoc[4](loc1: &mut VecMap<u32, u64>)
10Pop
11LdConst[0](u64: 0)
12Abort
B2:
13CopyLoc[4](loc1: &mut VecMap<u32, u64>)
14FreezeRef
15ImmBorrowLoc[1](Arg1: u32)
16Call vec_map::get<u32, u64>(&VecMap<u32, u64>, &u32): &u64
17ReadRef
18StLoc[3](loc0: u64)
19CopyLoc[3](loc0: u64)
20CopyLoc[2](Arg2: u64)
21Ge
22BrFalse(24)
B3:
23Branch(28)
B4:
24MoveLoc[4](loc1: &mut VecMap<u32, u64>)
25Pop
26LdConst[1](u64: 1)
27Abort
B5:
28MoveLoc[3](loc0: u64)
29MoveLoc[2](Arg2: u64)
30Sub
31MoveLoc[4](loc1: &mut VecMap<u32, u64>)
32ImmBorrowLoc[1](Arg1: u32)
33Call vec_map::get_mut<u32, u64>(&mut VecMap<u32, u64>, &u32): &mut u64
34WriteRef
35Ret
}
public(friend) value_at(Arg0: &PendingValues, Arg1: u32): u64 {
L2: loc0: u64
L3: loc1: u64
L4: loc2: u32
L5: loc3: u32
L6: loc4: u64
L7: loc5: u64
L8: loc6: vector<u32>
L9: loc7: vector<u32>
L10: loc8: u64
B0:
0CopyLoc[0](Arg0: &PendingValues)
1ImmBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
2Call vec_map::keys<u32, u64>(&VecMap<u32, u64>): vector<u32>
3StLoc[8](loc6: vector<u32>)
4LdU64(0)
5StLoc[3](loc1: u64)
6MoveLoc[8](loc6: vector<u32>)
7StLoc[9](loc7: vector<u32>)
8MutBorrowLoc[9](loc7: vector<u32>)
9Call vector::reverse<u32>(&mut vector<u32>)
10ImmBorrowLoc[9](loc7: vector<u32>)
11VecLen(24)
12StLoc[2](loc0: u64)
13LdU64(0)
14StLoc[6](loc4: u64)
15MoveLoc[2](loc0: u64)
16StLoc[7](loc5: u64)
B1:
17CopyLoc[6](loc4: u64)
18CopyLoc[7](loc5: u64)
19Lt
20BrFalse(49)
B2:
21CopyLoc[6](loc4: u64)
22Pop
23MutBorrowLoc[9](loc7: vector<u32>)
24VecPopBack(24)
25StLoc[4](loc2: u32)
26MoveLoc[3](loc1: u64)
27StLoc[10](loc8: u64)
28MoveLoc[4](loc2: u32)
29StLoc[5](loc3: u32)
30CopyLoc[5](loc3: u32)
31CopyLoc[1](Arg1: u32)
32Le
33BrFalse(42)
B3:
34MoveLoc[10](loc8: u64)
35CopyLoc[0](Arg0: &PendingValues)
36ImmBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
37ImmBorrowLoc[5](loc3: u32)
38Call vec_map::get<u32, u64>(&VecMap<u32, u64>, &u32): &u64
39ReadRef
40Add
41StLoc[10](loc8: u64)
B4:
42MoveLoc[10](loc8: u64)
43StLoc[3](loc1: u64)
44MoveLoc[6](loc4: u64)
45LdU64(1)
46Add
47StLoc[6](loc4: u64)
48Branch(17)
B5:
49MoveLoc[0](Arg0: &PendingValues)
50Pop
51MoveLoc[9](loc7: vector<u32>)
52VecUnpack(24, 0)
53MoveLoc[3](loc1: u64)
54Ret
}
public(friend) latest_value_at(Arg0: &PendingValues, Arg1: u32): Option<u64> {
L2: loc0: u64
L3: loc1: bool
L4: loc2: Option<u64>
L5: loc3: u32
L6: loc4: u64
L7: loc5: Option<u32>
L8: loc6: u64
L9: loc7: vector<u32>
B0:
0Call option::none<u32>(): Option<u32>
1StLoc[7](loc5: Option<u32>)
2CopyLoc[0](Arg0: &PendingValues)
3ImmBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
4Call vec_map::keys<u32, u64>(&VecMap<u32, u64>): vector<u32>
5StLoc[9](loc7: vector<u32>)
6MutBorrowLoc[9](loc7: vector<u32>)
7Call vector::reverse<u32>(&mut vector<u32>)
8ImmBorrowLoc[9](loc7: vector<u32>)
9VecLen(24)
10StLoc[2](loc0: u64)
11LdU64(0)
12StLoc[6](loc4: u64)
13MoveLoc[2](loc0: u64)
14StLoc[8](loc6: u64)
B1:
15CopyLoc[6](loc4: u64)
16CopyLoc[8](loc6: u64)
17Lt
18BrFalse(51)
B2:
19CopyLoc[6](loc4: u64)
20Pop
21MutBorrowLoc[9](loc7: vector<u32>)
22VecPopBack(24)
23StLoc[5](loc3: u32)
24CopyLoc[5](loc3: u32)
25CopyLoc[1](Arg1: u32)
26Le
27BrFalse(46)
B3:
28ImmBorrowLoc[7](loc5: Option<u32>)
29Call option::is_none<u32>(&Option<u32>): bool
30BrFalse(34)
B4:
31LdTrue
32StLoc[3](loc1: bool)
33Branch(41)
B5:
34ImmBorrowLoc[7](loc5: Option<u32>)
35Call option::borrow<u32>(&Option<u32>): &u32
36ReadRef
37CopyLoc[5](loc3: u32)
38Lt
39StLoc[3](loc1: bool)
40Branch(41)
B6:
41MoveLoc[3](loc1: bool)
42BrFalse(46)
B7:
43MoveLoc[5](loc3: u32)
44Call option::some<u32>(u32): Option<u32>
45StLoc[7](loc5: Option<u32>)
B8:
46MoveLoc[6](loc4: u64)
47LdU64(1)
48Add
49StLoc[6](loc4: u64)
50Branch(15)
B9:
51MoveLoc[9](loc7: vector<u32>)
52VecUnpack(24, 0)
53ImmBorrowLoc[7](loc5: Option<u32>)
54Call option::is_some<u32>(&Option<u32>): bool
55BrFalse(65)
B10:
56MoveLoc[0](Arg0: &PendingValues)
57ImmBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
58ImmBorrowLoc[7](loc5: Option<u32>)
59Call option::borrow<u32>(&Option<u32>): &u32
60Call vec_map::get<u32, u64>(&VecMap<u32, u64>, &u32): &u64
61ReadRef
62Call option::some<u64>(u64): Option<u64>
63StLoc[4](loc2: Option<u64>)
64Branch(69)
B11:
65MoveLoc[0](Arg0: &PendingValues)
66Pop
67Call option::none<u64>(): Option<u64>
68StLoc[4](loc2: Option<u64>)
B12:
69MoveLoc[4](loc2: Option<u64>)
70Ret
}
public(friend) flush(Arg0: &mut PendingValues, Arg1: u32): u64 {
L2: loc0: u64
L3: loc1: u32
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
L7: loc5: vector<u32>
L8: loc6: u64
B0:
0LdU64(0)
1StLoc[8](loc6: u64)
2CopyLoc[0](Arg0: &mut PendingValues)
3ImmBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
4Call vec_map::keys<u32, u64>(&VecMap<u32, u64>): vector<u32>
5StLoc[7](loc5: vector<u32>)
6MutBorrowLoc[7](loc5: vector<u32>)
7Call vector::reverse<u32>(&mut vector<u32>)
8ImmBorrowLoc[7](loc5: vector<u32>)
9VecLen(24)
10StLoc[2](loc0: u64)
11LdU64(0)
12StLoc[5](loc3: u64)
13MoveLoc[2](loc0: u64)
14StLoc[6](loc4: u64)
B1:
15CopyLoc[5](loc3: u64)
16CopyLoc[6](loc4: u64)
17Lt
18BrFalse(43)
B2:
19CopyLoc[5](loc3: u64)
20Pop
21MutBorrowLoc[7](loc5: vector<u32>)
22VecPopBack(24)
23StLoc[3](loc1: u32)
24CopyLoc[3](loc1: u32)
25CopyLoc[1](Arg1: u32)
26Le
27BrFalse(38)
B3:
28CopyLoc[0](Arg0: &mut PendingValues)
29MutBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
30ImmBorrowLoc[3](loc1: u32)
31Call vec_map::remove<u32, u64>(&mut VecMap<u32, u64>, &u32): u32 * u64
32StLoc[4](loc2: u64)
33Pop
34MoveLoc[8](loc6: u64)
35MoveLoc[4](loc2: u64)
36Add
37StLoc[8](loc6: u64)
B4:
38MoveLoc[5](loc3: u64)
39LdU64(1)
40Add
41StLoc[5](loc3: u64)
42Branch(15)
B5:
43MoveLoc[0](Arg0: &mut PendingValues)
44Pop
45MoveLoc[7](loc5: vector<u32>)
46VecUnpack(24, 0)
47MoveLoc[8](loc6: u64)
48Ret
}
public(friend) inner(Arg0: &PendingValues): &VecMap<u32, u64> {
B0:
0MoveLoc[0](Arg0: &PendingValues)
1ImmBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
2Ret
}
public(friend) inner_mut(Arg0: &mut PendingValues): &mut VecMap<u32, u64> {
B0:
0MoveLoc[0](Arg0: &mut PendingValues)
1MutBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
2Ret
}
public(friend) unwrap(Arg0: PendingValues): VecMap<u32, u64> {
B0:
0MoveLoc[0](Arg0: PendingValues)
1Unpack[0](PendingValues)
2Ret
}
public(friend) is_empty(Arg0: &PendingValues): bool {
B0:
0MoveLoc[0](Arg0: &PendingValues)
1ImmBorrowField[0](PendingValues.pos0: VecMap<u32, u64>)
2Call vec_map::is_empty<u32, u64>(&VecMap<u32, u64>): bool
3Ret
}
Constants [
0 => u64: 0
1 => u64: 1
]
}