Sui Framework
table_vec
- Move path
- 0x0000…0002::table_vec
- Functions
- 1212 public, 0 entry
- Structs
- 1
- Friend modules
- None
table_vec
- 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
Bytecode264 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v7
module 2.table_vec {
use 0000000000000000000000000000000000000000000000000000000000000002::table;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
struct TableVec<phantom Ty0: store> has store {
contents: Table<u64, Ty0>
}
public empty<Ty0: store>(Arg0: &mut TxContext): TableVec<Ty0> {
B0:
0MoveLoc[0](Arg0: &mut TxContext)
1Call table::new<u64, Ty0>(&mut TxContext): Table<u64, Ty0>
2PackGeneric[0](TableVec<Ty0>)
3Ret
}
public singleton<Ty0: store>(Arg0: Ty0, Arg1: &mut TxContext): TableVec<Ty0> {
L2: loc0: TableVec<Ty0>
B0:
0MoveLoc[1](Arg1: &mut TxContext)
1Call empty<Ty0>(&mut TxContext): TableVec<Ty0>
2StLoc[2](loc0: TableVec<Ty0>)
3MutBorrowLoc[2](loc0: TableVec<Ty0>)
4MoveLoc[0](Arg0: Ty0)
5Call push_back<Ty0>(&mut TableVec<Ty0>, Ty0)
6MoveLoc[2](loc0: TableVec<Ty0>)
7Ret
}
public length<Ty0: store>(Arg0: &TableVec<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &TableVec<Ty0>)
1ImmBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
2Call table::length<u64, Ty0>(&Table<u64, Ty0>): u64
3Ret
}
public is_empty<Ty0: store>(Arg0: &TableVec<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &TableVec<Ty0>)
1Call length<Ty0>(&TableVec<Ty0>): u64
2LdU64(0)
3Eq
4Ret
}
public borrow<Ty0: store>(Arg0: &TableVec<Ty0>, Arg1: u64): &Ty0 {
B0:
0CopyLoc[0](Arg0: &TableVec<Ty0>)
1Call length<Ty0>(&TableVec<Ty0>): u64
2CopyLoc[1](Arg1: u64)
3Gt
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &TableVec<Ty0>)
7Pop
8LdConst[0](u64: 0)
9Abort
B3:
10MoveLoc[0](Arg0: &TableVec<Ty0>)
11ImmBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
12MoveLoc[1](Arg1: u64)
13Call table::borrow<u64, Ty0>(&Table<u64, Ty0>, u64): &Ty0
14Ret
}
public push_back<Ty0: store>(Arg0: &mut TableVec<Ty0>, Arg1: Ty0) {
L2: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut TableVec<Ty0>)
1FreezeRef
2Call length<Ty0>(&TableVec<Ty0>): u64
3StLoc[2](loc0: u64)
4MoveLoc[0](Arg0: &mut TableVec<Ty0>)
5MutBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
6MoveLoc[2](loc0: u64)
7MoveLoc[1](Arg1: Ty0)
8Call table::add<u64, Ty0>(&mut Table<u64, Ty0>, u64, Ty0)
9Ret
}
public borrow_mut<Ty0: store>(Arg0: &mut TableVec<Ty0>, Arg1: u64): &mut Ty0 {
B0:
0CopyLoc[0](Arg0: &mut TableVec<Ty0>)
1FreezeRef
2Call length<Ty0>(&TableVec<Ty0>): u64
3CopyLoc[1](Arg1: u64)
4Gt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut TableVec<Ty0>)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11MoveLoc[0](Arg0: &mut TableVec<Ty0>)
12MutBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
13MoveLoc[1](Arg1: u64)
14Call table::borrow_mut<u64, Ty0>(&mut Table<u64, Ty0>, u64): &mut Ty0
15Ret
}
public pop_back<Ty0: store>(Arg0: &mut TableVec<Ty0>): Ty0 {
L1: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut TableVec<Ty0>)
1FreezeRef
2Call length<Ty0>(&TableVec<Ty0>): u64
3StLoc[1](loc0: u64)
4CopyLoc[1](loc0: u64)
5LdU64(0)
6Gt
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &mut TableVec<Ty0>)
10Pop
11LdConst[0](u64: 0)
12Abort
B3:
13MoveLoc[0](Arg0: &mut TableVec<Ty0>)
14MutBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
15MoveLoc[1](loc0: u64)
16LdU64(1)
17Sub
18Call table::remove<u64, Ty0>(&mut Table<u64, Ty0>, u64): Ty0
19Ret
}
public destroy_empty<Ty0: store>(Arg0: TableVec<Ty0>) {
B0:
0ImmBorrowLoc[0](Arg0: TableVec<Ty0>)
1Call length<Ty0>(&TableVec<Ty0>): u64
2LdU64(0)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[1](u64: 1)
7Abort
B3:
8MoveLoc[0](Arg0: TableVec<Ty0>)
9UnpackGeneric[0](TableVec<Ty0>)
10Call table::destroy_empty<u64, Ty0>(Table<u64, Ty0>)
11Ret
}
public drop<Ty0: drop + store>(Arg0: TableVec<Ty0>) {
B0:
0MoveLoc[0](Arg0: TableVec<Ty0>)
1UnpackGeneric[0](TableVec<Ty0>)
2Call table::drop<u64, Ty0>(Table<u64, Ty0>)
3Ret
}
public swap<Ty0: store>(Arg0: &mut TableVec<Ty0>, Arg1: u64, Arg2: u64) {
L3: loc0: Ty0
L4: loc1: Ty0
B0:
0CopyLoc[0](Arg0: &mut TableVec<Ty0>)
1FreezeRef
2Call length<Ty0>(&TableVec<Ty0>): u64
3CopyLoc[1](Arg1: u64)
4Gt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut TableVec<Ty0>)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11CopyLoc[0](Arg0: &mut TableVec<Ty0>)
12FreezeRef
13Call length<Ty0>(&TableVec<Ty0>): u64
14CopyLoc[2](Arg2: u64)
15Gt
16BrFalse(18)
B4:
17Branch(22)
B5:
18MoveLoc[0](Arg0: &mut TableVec<Ty0>)
19Pop
20LdConst[0](u64: 0)
21Abort
B6:
22CopyLoc[1](Arg1: u64)
23CopyLoc[2](Arg2: u64)
24Eq
25BrFalse(29)
B7:
26MoveLoc[0](Arg0: &mut TableVec<Ty0>)
27Pop
28Ret
B8:
29CopyLoc[0](Arg0: &mut TableVec<Ty0>)
30MutBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
31CopyLoc[1](Arg1: u64)
32Call table::remove<u64, Ty0>(&mut Table<u64, Ty0>, u64): Ty0
33StLoc[3](loc0: Ty0)
34CopyLoc[0](Arg0: &mut TableVec<Ty0>)
35MutBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
36CopyLoc[2](Arg2: u64)
37Call table::remove<u64, Ty0>(&mut Table<u64, Ty0>, u64): Ty0
38StLoc[4](loc1: Ty0)
39CopyLoc[0](Arg0: &mut TableVec<Ty0>)
40MutBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
41MoveLoc[2](Arg2: u64)
42MoveLoc[3](loc0: Ty0)
43Call table::add<u64, Ty0>(&mut Table<u64, Ty0>, u64, Ty0)
44MoveLoc[0](Arg0: &mut TableVec<Ty0>)
45MutBorrowFieldGeneric[0](TableVec.contents: Table<u64, Ty0>)
46MoveLoc[1](Arg1: u64)
47MoveLoc[4](loc1: Ty0)
48Call table::add<u64, Ty0>(&mut Table<u64, Ty0>, u64, Ty0)
49Ret
}
public swap_remove<Ty0: store>(Arg0: &mut TableVec<Ty0>, Arg1: u64): Ty0 {
L2: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut TableVec<Ty0>)
1FreezeRef
2Call length<Ty0>(&TableVec<Ty0>): u64
3CopyLoc[1](Arg1: u64)
4Gt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut TableVec<Ty0>)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11CopyLoc[0](Arg0: &mut TableVec<Ty0>)
12FreezeRef
13Call length<Ty0>(&TableVec<Ty0>): u64
14LdU64(1)
15Sub
16StLoc[2](loc0: u64)
17CopyLoc[0](Arg0: &mut TableVec<Ty0>)
18MoveLoc[1](Arg1: u64)
19MoveLoc[2](loc0: u64)
20Call swap<Ty0>(&mut TableVec<Ty0>, u64, u64)
21MoveLoc[0](Arg0: &mut TableVec<Ty0>)
22Call pop_back<Ty0>(&mut TableVec<Ty0>): Ty0
23Ret
}
Constants [
0 => u64: 0
1 => u64: 1
]
}