vec_set
Module0x0000…0002
- Move path
- 0x0000…0002::vec_set
- Functions
- 1111 public, 0 entry
- Structs
- 1
- Friend modules
- None
vec_set
- accumulator18
- accumulator_metadata2
- accumulator_settlement8
- address10
- address_alias5
- allowance40
- authenticator_state13
- bag10
- balance18
- bcs30
- bls1238143
- borrow4
- clock3
- coin54
- coin_registry43
- config11
- deny_list21
- derived_object3
- display14
- display_registry18
- dynamic_field19
- dynamic_object_field15
- ecdsa_k13
- ecdsa_r12
- ecvrf1
- ed255191
- event3
- forwarding_address1
- funds_accumulator12
- groth1610
- group_ops23
- hash2
- hex3
- hmac1
- kiosk41
- kiosk_extension14
- linked_table19
- math7
- nitro_attestation11
- object32
- object_bag11
- object_table10
- package26
- party5
- pay8
- poseidon2
- priority_queue8
- protocol_config1
- prover0
- random20
- rangeproofs3
- ristretto25518
- scratch18
- sui2
- table10
- table_vec12
- token45
- transfer16
- transfer_policy18
- tx_context19
- types1
- url4
- vdf4
- vec_map20
- vec_set11
- versioned7
- zklogin_verified_id9
- zklogin_verified_issuer6
Bytecode280 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module 2.vec_set {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
struct VecSet<Ty0: copy + drop> has copy, drop, store {
contents: vector<Ty0>
}
public empty<Ty0: copy + drop>(): VecSet<Ty0> {
B0:
0VecPack(2, 0)
1PackGeneric[0](VecSet<Ty0>)
2Ret
}
public singleton<Ty0: copy + drop>(Arg0: Ty0): VecSet<Ty0> {
B0:
0MoveLoc[0](Arg0: Ty0)
1VecPack(2, 1)
2PackGeneric[0](VecSet<Ty0>)
3Ret
}
public insert<Ty0: copy + drop>(Arg0: &mut VecSet<Ty0>, Arg1: Ty0) {
B0:
0CopyLoc[0](Arg0: &mut VecSet<Ty0>)
1FreezeRef
2ImmBorrowLoc[1](Arg1: Ty0)
3Call contains<Ty0>(&VecSet<Ty0>, &Ty0): bool
4Not
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut VecSet<Ty0>)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11MoveLoc[0](Arg0: &mut VecSet<Ty0>)
12MutBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
13MoveLoc[1](Arg1: Ty0)
14VecPushBack(2)
15Ret
}
public remove<Ty0: copy + drop>(Arg0: &mut VecSet<Ty0>, Arg1: &Ty0) {
L2: loc0: u64
L3: loc1: Option<u64>
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
L7: loc5: Option<u64>
L8: loc6: u64
L9: loc7: &vector<Ty0>
B0:
0CopyLoc[0](Arg0: &mut VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2StLoc[9](loc7: &vector<Ty0>)
3CopyLoc[9](loc7: &vector<Ty0>)
4VecLen(2)
5StLoc[2](loc0: u64)
6LdU64(0)
7StLoc[4](loc2: u64)
8MoveLoc[2](loc0: u64)
9StLoc[8](loc6: u64)
B1:
10CopyLoc[4](loc2: u64)
11CopyLoc[8](loc6: u64)
12Lt
13BrFalse(35)
B2:
14CopyLoc[4](loc2: u64)
15StLoc[5](loc3: u64)
16CopyLoc[9](loc7: &vector<Ty0>)
17CopyLoc[5](loc3: u64)
18VecImmBorrow(2)
19CopyLoc[1](Arg1: &Ty0)
20Eq
21BrFalse(30)
B3:
22MoveLoc[9](loc7: &vector<Ty0>)
23Pop
24MoveLoc[1](Arg1: &Ty0)
25Pop
26MoveLoc[5](loc3: u64)
27Call option::some<u64>(u64): Option<u64>
28StLoc[3](loc1: Option<u64>)
29Branch(41)
B4:
30MoveLoc[4](loc2: u64)
31LdU64(1)
32Add
33StLoc[4](loc2: u64)
34Branch(10)
B5:
35MoveLoc[9](loc7: &vector<Ty0>)
36Pop
37MoveLoc[1](Arg1: &Ty0)
38Pop
39Call option::none<u64>(): Option<u64>
40StLoc[3](loc1: Option<u64>)
B6:
41MoveLoc[3](loc1: Option<u64>)
42StLoc[7](loc5: Option<u64>)
43ImmBorrowLoc[7](loc5: Option<u64>)
44Call option::is_some<u64>(&Option<u64>): bool
45BrFalse(47)
B7:
46Branch(53)
B8:
47MoveLoc[0](Arg0: &mut VecSet<Ty0>)
48Pop
49MoveLoc[7](loc5: Option<u64>)
50Call option::destroy_none<u64>(Option<u64>)
51LdConst[1](u64: 1)
52Abort
B9:
53MoveLoc[7](loc5: Option<u64>)
54Call option::destroy_some<u64>(Option<u64>): u64
55StLoc[6](loc4: u64)
56MoveLoc[0](Arg0: &mut VecSet<Ty0>)
57MutBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
58MoveLoc[6](loc4: u64)
59Call vector::remove<Ty0>(&mut vector<Ty0>, u64): Ty0
60Pop
61Ret
}
public contains<Ty0: copy + drop>(Arg0: &VecSet<Ty0>, Arg1: &Ty0): bool {
L2: loc0: u64
L3: loc1: bool
L4: loc2: u64
L5: loc3: u64
L6: loc4: u64
L7: loc5: &vector<Ty0>
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2StLoc[7](loc5: &vector<Ty0>)
3CopyLoc[7](loc5: &vector<Ty0>)
4VecLen(2)
5StLoc[2](loc0: u64)
6LdU64(0)
7StLoc[4](loc2: u64)
8MoveLoc[2](loc0: u64)
9StLoc[6](loc4: u64)
B1:
10CopyLoc[4](loc2: u64)
11CopyLoc[6](loc4: u64)
12Lt
13BrFalse(34)
B2:
14CopyLoc[4](loc2: u64)
15StLoc[5](loc3: u64)
16CopyLoc[7](loc5: &vector<Ty0>)
17MoveLoc[5](loc3: u64)
18VecImmBorrow(2)
19CopyLoc[1](Arg1: &Ty0)
20Eq
21BrFalse(29)
B3:
22MoveLoc[7](loc5: &vector<Ty0>)
23Pop
24MoveLoc[1](Arg1: &Ty0)
25Pop
26LdTrue
27StLoc[3](loc1: bool)
28Branch(40)
B4:
29MoveLoc[4](loc2: u64)
30LdU64(1)
31Add
32StLoc[4](loc2: u64)
33Branch(10)
B5:
34MoveLoc[7](loc5: &vector<Ty0>)
35Pop
36MoveLoc[1](Arg1: &Ty0)
37Pop
38LdFalse
39StLoc[3](loc1: bool)
B6:
40MoveLoc[3](loc1: bool)
41Ret
}
public length<Ty0: copy + drop>(Arg0: &VecSet<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2VecLen(2)
3Ret
}
public is_empty<Ty0: copy + drop>(Arg0: &VecSet<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1Call length<Ty0>(&VecSet<Ty0>): u64
2LdU64(0)
3Eq
4Ret
}
public into_keys<Ty0: copy + drop>(Arg0: VecSet<Ty0>): vector<Ty0> {
B0:
0MoveLoc[0](Arg0: VecSet<Ty0>)
1UnpackGeneric[0](VecSet<Ty0>)
2Ret
}
public from_keys<Ty0: copy + drop>(Arg0: vector<Ty0>): VecSet<Ty0> {
L1: loc0: u64
L2: loc1: u64
L3: loc2: Ty0
L4: loc3: VecSet<Ty0>
L5: loc4: u64
L6: loc5: vector<Ty0>
B0:
0Call empty<Ty0>(): VecSet<Ty0>
1StLoc[4](loc3: VecSet<Ty0>)
2MoveLoc[0](Arg0: vector<Ty0>)
3StLoc[6](loc5: vector<Ty0>)
4MutBorrowLoc[6](loc5: vector<Ty0>)
5Call vector::reverse<Ty0>(&mut vector<Ty0>)
6ImmBorrowLoc[6](loc5: vector<Ty0>)
7VecLen(2)
8StLoc[1](loc0: u64)
9LdU64(0)
10StLoc[2](loc1: u64)
11MoveLoc[1](loc0: u64)
12StLoc[5](loc4: u64)
B1:
13CopyLoc[2](loc1: u64)
14CopyLoc[5](loc4: u64)
15Lt
16BrFalse(30)
B2:
17CopyLoc[2](loc1: u64)
18Pop
19MutBorrowLoc[6](loc5: vector<Ty0>)
20VecPopBack(2)
21StLoc[3](loc2: Ty0)
22MutBorrowLoc[4](loc3: VecSet<Ty0>)
23MoveLoc[3](loc2: Ty0)
24Call insert<Ty0>(&mut VecSet<Ty0>, Ty0)
25MoveLoc[2](loc1: u64)
26LdU64(1)
27Add
28StLoc[2](loc1: u64)
29Branch(13)
B3:
30MoveLoc[6](loc5: vector<Ty0>)
31VecUnpack(2, 0)
32MoveLoc[4](loc3: VecSet<Ty0>)
33Ret
}
public keys<Ty0: copy + drop>(Arg0: &VecSet<Ty0>): &vector<Ty0> {
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2Ret
}
public size<Ty0: copy + drop>(Arg0: &VecSet<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &VecSet<Ty0>)
1ImmBorrowFieldGeneric[0](VecSet.contents: vector<Ty0>)
2VecLen(2)
3Ret
}
Constants [
0 => u64: 0
1 => u64: 1
]
}