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

Move path
0x0000…0002::party
Functions
51 public, 0 entry
Structs
2
Friend modules
transfer
party

Bytecode195 lines

The on-chain disassembly. Offsets are instruction numbers within each function.

// Move bytecode v7
module 2.party {
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
 
struct Party has copy, drop {
default: Permissions,
members: VecMap<address, Permissions>
}
 
struct Permissions has copy, drop {
pos0: u64
}
 
public single_owner(Arg0: address): Party {
L1: loc0: Party
B0:
0Call empty(): Party
1StLoc[1](loc0: Party)
2MutBorrowLoc[1](loc0: Party)
3MoveLoc[0](Arg0: address)
4LdConst[5](u64: 15)
5Pack[1](Permissions)
6Call set_permissions(&mut Party, address, Permissions)
7MoveLoc[1](loc0: Party)
8Ret
}
 
empty(): Party {
B0:
0LdConst[4](u64: 0)
1Pack[1](Permissions)
2Call vec_map::empty<address, Permissions>(): VecMap<address, Permissions>
3Pack[0](Party)
4Ret
}
 
set_permissions(Arg0: &mut Party, Arg1: address, Arg2: Permissions) {
B0:
0CopyLoc[0](Arg0: &mut Party)
1ImmBorrowField[0](Party.members: VecMap<address, Permissions>)
2ImmBorrowLoc[1](Arg1: address)
3Call vec_map::contains<address, Permissions>(&VecMap<address, Permissions>, &address): bool
4BrFalse(11)
B1:
5CopyLoc[0](Arg0: &mut Party)
6MutBorrowField[0](Party.members: VecMap<address, Permissions>)
7ImmBorrowLoc[1](Arg1: address)
8Call vec_map::remove<address, Permissions>(&mut VecMap<address, Permissions>, &address): address * Permissions
9Pop
10Pop
B2:
11MoveLoc[0](Arg0: &mut Party)
12MutBorrowField[0](Party.members: VecMap<address, Permissions>)
13MoveLoc[1](Arg1: address)
14MoveLoc[2](Arg2: Permissions)
15Call vec_map::insert<address, Permissions>(&mut VecMap<address, Permissions>, address, Permissions)
16Ret
}
 
public(friend) is_single_owner(Arg0: &Party): bool {
L1: loc0: bool
L2: loc1: &Permissions
B0:
0CopyLoc[0](Arg0: &Party)
1ImmBorrowField[1](Party.default: Permissions)
2ImmBorrowField[2](Permissions.pos0: u64)
3ReadRef
4LdConst[4](u64: 0)
5Eq
6BrFalse(31)
B1:
7CopyLoc[0](Arg0: &Party)
8ImmBorrowField[0](Party.members: VecMap<address, Permissions>)
9Call vec_map::length<address, Permissions>(&VecMap<address, Permissions>): u64
10LdU64(1)
11Eq
12BrFalse(26)
B2:
13MoveLoc[0](Arg0: &Party)
14ImmBorrowField[0](Party.members: VecMap<address, Permissions>)
15LdU64(0)
16Call vec_map::get_entry_by_idx<address, Permissions>(&VecMap<address, Permissions>, u64): &address * &Permissions
17StLoc[2](loc1: &Permissions)
18Pop
19MoveLoc[2](loc1: &Permissions)
20ImmBorrowField[2](Permissions.pos0: u64)
21ReadRef
22LdConst[5](u64: 15)
23Eq
24StLoc[1](loc0: bool)
25Branch(35)
B3:
26MoveLoc[0](Arg0: &Party)
27Pop
28LdFalse
29StLoc[1](loc0: bool)
30Branch(35)
B4:
31MoveLoc[0](Arg0: &Party)
32Pop
33LdFalse
34StLoc[1](loc0: bool)
B5:
35MoveLoc[1](loc0: bool)
36Ret
}
 
public(friend) into_native(Arg0: Party): u64 * vector<address> * vector<u64> {
L1: loc0: u64
L2: loc1: u64
L3: loc2: &mut vector<u64>
L4: loc3: vector<address>
L5: loc4: Permissions
L6: loc5: Permissions
L7: loc6: u64
L8: loc7: VecMap<address, Permissions>
L9: loc8: vector<Permissions>
L10: loc9: vector<u64>
L11: loc10: vector<u64>
L12: loc11: u64
L13: loc12: vector<Permissions>
L14: loc13: vector<Permissions>
B0:
0MoveLoc[0](Arg0: Party)
1Unpack[0](Party)
2StLoc[8](loc7: VecMap<address, Permissions>)
3StLoc[5](loc4: Permissions)
4MoveLoc[8](loc7: VecMap<address, Permissions>)
5Call vec_map::into_keys_values<address, Permissions>(VecMap<address, Permissions>): vector<address> * vector<Permissions>
6StLoc[9](loc8: vector<Permissions>)
7StLoc[4](loc3: vector<address>)
8MoveLoc[9](loc8: vector<Permissions>)
9StLoc[13](loc12: vector<Permissions>)
10LdConst[6](vector<u64>: 00)
11StLoc[11](loc10: vector<u64>)
12MoveLoc[13](loc12: vector<Permissions>)
13StLoc[14](loc13: vector<Permissions>)
14MutBorrowLoc[14](loc13: vector<Permissions>)
15Call vector::reverse<Permissions>(&mut vector<Permissions>)
16ImmBorrowLoc[14](loc13: vector<Permissions>)
17VecLen(20)
18StLoc[1](loc0: u64)
19LdU64(0)
20StLoc[7](loc6: u64)
21MoveLoc[1](loc0: u64)
22StLoc[12](loc11: u64)
B1:
23CopyLoc[7](loc6: u64)
24CopyLoc[12](loc11: u64)
25Lt
26BrFalse(45)
B2:
27CopyLoc[7](loc6: u64)
28Pop
29MutBorrowLoc[14](loc13: vector<Permissions>)
30VecPopBack(20)
31StLoc[6](loc5: Permissions)
32MutBorrowLoc[11](loc10: vector<u64>)
33StLoc[3](loc2: &mut vector<u64>)
34MoveLoc[6](loc5: Permissions)
35Unpack[1](Permissions)
36StLoc[2](loc1: u64)
37MoveLoc[3](loc2: &mut vector<u64>)
38MoveLoc[2](loc1: u64)
39VecPushBack(15)
40MoveLoc[7](loc6: u64)
41LdU64(1)
42Add
43StLoc[7](loc6: u64)
44Branch(23)
B3:
45MoveLoc[14](loc13: vector<Permissions>)
46VecUnpack(20, 0)
47MoveLoc[11](loc10: vector<u64>)
48StLoc[10](loc9: vector<u64>)
49ImmBorrowLoc[5](loc4: Permissions)
50ImmBorrowField[2](Permissions.pos0: u64)
51ReadRef
52MoveLoc[4](loc3: vector<address>)
53MoveLoc[10](loc9: vector<u64>)
54Ret
}
 
Constants [
0 => u8: 1
1 => u8: 2
2 => u8: 4
3 => u8: 8
4 => u64: 0
5 => u64: 15
6 => vector<u64>: 00
]
}