versioned
Module0x0000…0002
- Move path
- 0x0000…0002::versioned
- Functions
- 77 public, 0 entry
- Structs
- 2
- Friend modules
- None
versioned
- 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
Bytecode148 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v7
module 2.versioned {
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
struct Versioned has store, key {
id: UID,
version: u64
}
struct VersionChangeCap {
versioned_id: ID,
old_version: u64
}
public create<Ty0: store>(Arg0: u64, Arg1: Ty0, Arg2: &mut TxContext): Versioned {
L3: loc0: Versioned
B0:
0MoveLoc[2](Arg2: &mut TxContext)
1Call object::new(&mut TxContext): UID
2CopyLoc[0](Arg0: u64)
3Pack[0](Versioned)
4StLoc[3](loc0: Versioned)
5MutBorrowLoc[3](loc0: Versioned)
6MutBorrowField[0](Versioned.id: UID)
7MoveLoc[0](Arg0: u64)
8MoveLoc[1](Arg1: Ty0)
9Call dynamic_field::add<u64, Ty0>(&mut UID, u64, Ty0)
10MoveLoc[3](loc0: Versioned)
11Ret
}
public version(Arg0: &Versioned): u64 {
B0:
0MoveLoc[0](Arg0: &Versioned)
1ImmBorrowField[1](Versioned.version: u64)
2ReadRef
3Ret
}
public load_value<Ty0: store>(Arg0: &Versioned): &Ty0 {
B0:
0CopyLoc[0](Arg0: &Versioned)
1ImmBorrowField[0](Versioned.id: UID)
2MoveLoc[0](Arg0: &Versioned)
3ImmBorrowField[1](Versioned.version: u64)
4ReadRef
5Call dynamic_field::borrow<u64, Ty0>(&UID, u64): &Ty0
6Ret
}
public load_value_mut<Ty0: store>(Arg0: &mut Versioned): &mut Ty0 {
B0:
0CopyLoc[0](Arg0: &mut Versioned)
1MutBorrowField[0](Versioned.id: UID)
2MoveLoc[0](Arg0: &mut Versioned)
3ImmBorrowField[1](Versioned.version: u64)
4ReadRef
5Call dynamic_field::borrow_mut<u64, Ty0>(&mut UID, u64): &mut Ty0
6Ret
}
public remove_value_for_upgrade<Ty0: store>(Arg0: &mut Versioned): Ty0 * VersionChangeCap {
B0:
0CopyLoc[0](Arg0: &mut Versioned)
1MutBorrowField[0](Versioned.id: UID)
2CopyLoc[0](Arg0: &mut Versioned)
3ImmBorrowField[1](Versioned.version: u64)
4ReadRef
5Call dynamic_field::remove<u64, Ty0>(&mut UID, u64): Ty0
6CopyLoc[0](Arg0: &mut Versioned)
7FreezeRef
8Call object::id<Versioned>(&Versioned): ID
9MoveLoc[0](Arg0: &mut Versioned)
10ImmBorrowField[1](Versioned.version: u64)
11ReadRef
12Pack[1](VersionChangeCap)
13Ret
}
public upgrade<Ty0: store>(Arg0: &mut Versioned, Arg1: u64, Arg2: Ty0, Arg3: VersionChangeCap) {
L4: loc0: u64
B0:
0MoveLoc[3](Arg3: VersionChangeCap)
1Unpack[1](VersionChangeCap)
2StLoc[4](loc0: u64)
3CopyLoc[0](Arg0: &mut Versioned)
4FreezeRef
5Call object::id<Versioned>(&Versioned): ID
6Eq
7BrFalse(9)
B1:
8Branch(13)
B2:
9MoveLoc[0](Arg0: &mut Versioned)
10Pop
11LdConst[0](u64: 0)
12Abort
B3:
13MoveLoc[4](loc0: u64)
14CopyLoc[1](Arg1: u64)
15Lt
16BrFalse(18)
B4:
17Branch(22)
B5:
18MoveLoc[0](Arg0: &mut Versioned)
19Pop
20LdConst[0](u64: 0)
21Abort
B6:
22CopyLoc[0](Arg0: &mut Versioned)
23MutBorrowField[0](Versioned.id: UID)
24CopyLoc[1](Arg1: u64)
25MoveLoc[2](Arg2: Ty0)
26Call dynamic_field::add<u64, Ty0>(&mut UID, u64, Ty0)
27MoveLoc[1](Arg1: u64)
28MoveLoc[0](Arg0: &mut Versioned)
29MutBorrowField[1](Versioned.version: u64)
30WriteRef
31Ret
}
public destroy<Ty0: store>(Arg0: Versioned): Ty0 {
L1: loc0: UID
L2: loc1: Ty0
L3: loc2: u64
B0:
0MoveLoc[0](Arg0: Versioned)
1Unpack[0](Versioned)
2StLoc[3](loc2: u64)
3StLoc[1](loc0: UID)
4MutBorrowLoc[1](loc0: UID)
5MoveLoc[3](loc2: u64)
6Call dynamic_field::remove<u64, Ty0>(&mut UID, u64): Ty0
7StLoc[2](loc1: Ty0)
8MoveLoc[1](loc0: UID)
9Call object::delete(UID)
10MoveLoc[2](loc1: Ty0)
11Ret
}
Constants [
0 => u64: 0
]
}