dynamic_object_field
Module0x0000…0002
- Move path
- 0x0000…0002::dynamic_object_field
- Functions
- 1510 public, 0 entry
- Structs
- 1
- Friend modules
- deny_list
dynamic_object_field
- 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
Bytecode361 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module 2.dynamic_object_field {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
struct Wrapper<Ty0> has copy, drop, store {
name: Ty0
}
public add<Ty0: copy + drop + store, Ty1: store + key>(Arg0: &mut UID, Arg1: Ty0, Arg2: Ty1) {
L3: loc0: ID
L4: loc1: Wrapper<Ty0>
L5: loc2: Ty0
L6: loc3: &mut UID
L7: loc4: Ty1
B0:
0MoveLoc[0](Arg0: &mut UID)
1StLoc[6](loc3: &mut UID)
2MoveLoc[1](Arg1: Ty0)
3StLoc[5](loc2: Ty0)
4MoveLoc[2](Arg2: Ty1)
5StLoc[7](loc4: Ty1)
6MoveLoc[5](loc2: Ty0)
7PackGeneric[0](Wrapper<Ty0>)
8StLoc[4](loc1: Wrapper<Ty0>)
9ImmBorrowLoc[7](loc4: Ty1)
10Call object::id<Ty1>(&Ty1): ID
11StLoc[3](loc0: ID)
12CopyLoc[6](loc3: &mut UID)
13CopyLoc[4](loc1: Wrapper<Ty0>)
14MoveLoc[3](loc0: ID)
15Call dynamic_field::add<Wrapper<Ty0>, ID>(&mut UID, Wrapper<Ty0>, ID)
16MoveLoc[6](loc3: &mut UID)
17FreezeRef
18MoveLoc[4](loc1: Wrapper<Ty0>)
19Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
20Pop
21Call object::uid_to_address(&UID): address
22MoveLoc[7](loc4: Ty1)
23Call dynamic_field::add_child_object<Ty1>(address, Ty1)
24Ret
}
public borrow<Ty0: copy + drop + store, Ty1: store + key>(Arg0: &UID, Arg1: Ty0): &Ty1 {
L2: loc0: Wrapper<Ty0>
L3: loc1: &UID
B0:
0MoveLoc[0](Arg0: &UID)
1StLoc[3](loc1: &UID)
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](Wrapper<Ty0>)
4StLoc[2](loc0: Wrapper<Ty0>)
5MoveLoc[3](loc1: &UID)
6MoveLoc[2](loc0: Wrapper<Ty0>)
7Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
8Call dynamic_field::borrow_child_object<Ty1>(&UID, address): &Ty1
9Ret
}
public borrow_mut<Ty0: copy + drop + store, Ty1: store + key>(Arg0: &mut UID, Arg1: Ty0): &mut Ty1 {
L2: loc0: Wrapper<Ty0>
L3: loc1: &mut UID
B0:
0MoveLoc[0](Arg0: &mut UID)
1StLoc[3](loc1: &mut UID)
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](Wrapper<Ty0>)
4StLoc[2](loc0: Wrapper<Ty0>)
5MoveLoc[3](loc1: &mut UID)
6MoveLoc[2](loc0: Wrapper<Ty0>)
7Call dynamic_field::field_info_mut<Wrapper<Ty0>>(&mut UID, Wrapper<Ty0>): &mut UID * address
8Call dynamic_field::borrow_child_object_mut<Ty1>(&mut UID, address): &mut Ty1
9Ret
}
public remove<Ty0: copy + drop + store, Ty1: store + key>(Arg0: &mut UID, Arg1: Ty0): Ty1 {
L2: loc0: Wrapper<Ty0>
L3: loc1: &mut UID
L4: loc2: Ty1
L5: loc3: address
B0:
0MoveLoc[0](Arg0: &mut UID)
1StLoc[3](loc1: &mut UID)
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](Wrapper<Ty0>)
4StLoc[2](loc0: Wrapper<Ty0>)
5CopyLoc[3](loc1: &mut UID)
6FreezeRef
7CopyLoc[2](loc0: Wrapper<Ty0>)
8Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
9StLoc[5](loc3: address)
10Call object::uid_to_address(&UID): address
11MoveLoc[5](loc3: address)
12Call dynamic_field::remove_child_object<Ty1>(address, address): Ty1
13StLoc[4](loc2: Ty1)
14MoveLoc[3](loc1: &mut UID)
15MoveLoc[2](loc0: Wrapper<Ty0>)
16Call dynamic_field::remove<Wrapper<Ty0>, ID>(&mut UID, Wrapper<Ty0>): ID
17Pop
18MoveLoc[4](loc2: Ty1)
19Ret
}
public exists<Ty0: copy + drop + store>(Arg0: &UID, Arg1: Ty0): bool {
L2: loc0: Wrapper<Ty0>
B0:
0MoveLoc[1](Arg1: Ty0)
1PackGeneric[0](Wrapper<Ty0>)
2StLoc[2](loc0: Wrapper<Ty0>)
3MoveLoc[0](Arg0: &UID)
4MoveLoc[2](loc0: Wrapper<Ty0>)
5Call dynamic_field::exists_with_type<Wrapper<Ty0>, ID>(&UID, Wrapper<Ty0>): bool
6Ret
}
public exists_with_type<Ty0: copy + drop + store, Ty1: store + key>(Arg0: &UID, Arg1: Ty0): bool {
L2: loc0: bool
L3: loc1: Wrapper<Ty0>
L4: loc2: &UID
L5: loc3: address
B0:
0MoveLoc[0](Arg0: &UID)
1StLoc[4](loc2: &UID)
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](Wrapper<Ty0>)
4StLoc[3](loc1: Wrapper<Ty0>)
5CopyLoc[4](loc2: &UID)
6CopyLoc[3](loc1: Wrapper<Ty0>)
7Call dynamic_field::exists_with_type<Wrapper<Ty0>, ID>(&UID, Wrapper<Ty0>): bool
8Not
9BrFalse(15)
B1:
10MoveLoc[4](loc2: &UID)
11Pop
12LdFalse
13StLoc[2](loc0: bool)
14Branch(23)
B2:
15MoveLoc[4](loc2: &UID)
16MoveLoc[3](loc1: Wrapper<Ty0>)
17Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
18StLoc[5](loc3: address)
19Call object::uid_to_address(&UID): address
20MoveLoc[5](loc3: address)
21Call dynamic_field::has_child_object_with_ty<Ty1>(address, address): bool
22StLoc[2](loc0: bool)
B3:
23MoveLoc[2](loc0: bool)
24Ret
}
public id<Ty0: copy + drop + store>(Arg0: &UID, Arg1: Ty0): Option<ID> {
L2: loc0: Wrapper<Ty0>
L3: loc1: address
B0:
0MoveLoc[1](Arg1: Ty0)
1PackGeneric[0](Wrapper<Ty0>)
2StLoc[2](loc0: Wrapper<Ty0>)
3CopyLoc[0](Arg0: &UID)
4CopyLoc[2](loc0: Wrapper<Ty0>)
5Call dynamic_field::exists_with_type<Wrapper<Ty0>, ID>(&UID, Wrapper<Ty0>): bool
6Not
7BrFalse(12)
B1:
8MoveLoc[0](Arg0: &UID)
9Pop
10Call option::none<ID>(): Option<ID>
11Ret
B2:
12MoveLoc[0](Arg0: &UID)
13MoveLoc[2](loc0: Wrapper<Ty0>)
14Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
15StLoc[3](loc1: address)
16Pop
17MoveLoc[3](loc1: address)
18Call object::id_from_address(address): ID
19Call option::some<ID>(ID): Option<ID>
20Ret
}
public remove_opt<Ty0: copy + drop + store, Ty1: store + key>(Arg0: &mut UID, Arg1: Ty0): Option<Ty1> {
L2: loc0: Option<Ty1>
B0:
0CopyLoc[0](Arg0: &mut UID)
1FreezeRef
2CopyLoc[1](Arg1: Ty0)
3Call exists<Ty0>(&UID, Ty0): bool
4BrFalse(11)
B1:
5MoveLoc[0](Arg0: &mut UID)
6MoveLoc[1](Arg1: Ty0)
7Call remove<Ty0, Ty1>(&mut UID, Ty0): Ty1
8Call option::some<Ty1>(Ty1): Option<Ty1>
9StLoc[2](loc0: Option<Ty1>)
10Branch(15)
B2:
11MoveLoc[0](Arg0: &mut UID)
12Pop
13Call option::none<Ty1>(): Option<Ty1>
14StLoc[2](loc0: Option<Ty1>)
B3:
15MoveLoc[2](loc0: Option<Ty1>)
16Ret
}
public replace<Ty0: copy + drop + store, Ty1: store + key, Ty2: store + key>(Arg0: &mut UID, Arg1: Ty0, Arg2: Ty1): Option<Ty2> {
L3: loc0: Option<Ty2>
B0:
0CopyLoc[0](Arg0: &mut UID)
1CopyLoc[1](Arg1: Ty0)
2Call remove_opt<Ty0, Ty2>(&mut UID, Ty0): Option<Ty2>
3StLoc[3](loc0: Option<Ty2>)
4MoveLoc[0](Arg0: &mut UID)
5MoveLoc[1](Arg1: Ty0)
6MoveLoc[2](Arg2: Ty1)
7Call add<Ty0, Ty1>(&mut UID, Ty0, Ty1)
8MoveLoc[3](loc0: Option<Ty2>)
9Ret
}
public exists_<Ty0: copy + drop + store>(Arg0: &UID, Arg1: Ty0): bool {
B0:
0MoveLoc[0](Arg0: &UID)
1MoveLoc[1](Arg1: Ty0)
2Call exists<Ty0>(&UID, Ty0): bool
3Ret
}
public(friend) internal_add<Ty0: copy + drop + store, Ty1: key>(Arg0: &mut UID, Arg1: Ty0, Arg2: Ty1) {
L3: loc0: ID
L4: loc1: Wrapper<Ty0>
L5: loc2: Ty0
L6: loc3: &mut UID
L7: loc4: Ty1
B0:
0MoveLoc[0](Arg0: &mut UID)
1StLoc[6](loc3: &mut UID)
2MoveLoc[1](Arg1: Ty0)
3StLoc[5](loc2: Ty0)
4MoveLoc[2](Arg2: Ty1)
5StLoc[7](loc4: Ty1)
6MoveLoc[5](loc2: Ty0)
7PackGeneric[0](Wrapper<Ty0>)
8StLoc[4](loc1: Wrapper<Ty0>)
9ImmBorrowLoc[7](loc4: Ty1)
10Call object::id<Ty1>(&Ty1): ID
11StLoc[3](loc0: ID)
12CopyLoc[6](loc3: &mut UID)
13CopyLoc[4](loc1: Wrapper<Ty0>)
14MoveLoc[3](loc0: ID)
15Call dynamic_field::add<Wrapper<Ty0>, ID>(&mut UID, Wrapper<Ty0>, ID)
16MoveLoc[6](loc3: &mut UID)
17FreezeRef
18MoveLoc[4](loc1: Wrapper<Ty0>)
19Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
20Pop
21Call object::uid_to_address(&UID): address
22MoveLoc[7](loc4: Ty1)
23Call dynamic_field::add_child_object<Ty1>(address, Ty1)
24Ret
}
public(friend) internal_borrow<Ty0: copy + drop + store, Ty1: key>(Arg0: &UID, Arg1: Ty0): &Ty1 {
L2: loc0: Wrapper<Ty0>
L3: loc1: &UID
B0:
0MoveLoc[0](Arg0: &UID)
1StLoc[3](loc1: &UID)
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](Wrapper<Ty0>)
4StLoc[2](loc0: Wrapper<Ty0>)
5MoveLoc[3](loc1: &UID)
6MoveLoc[2](loc0: Wrapper<Ty0>)
7Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
8Call dynamic_field::borrow_child_object<Ty1>(&UID, address): &Ty1
9Ret
}
public(friend) internal_borrow_mut<Ty0: copy + drop + store, Ty1: key>(Arg0: &mut UID, Arg1: Ty0): &mut Ty1 {
L2: loc0: Wrapper<Ty0>
L3: loc1: &mut UID
B0:
0MoveLoc[0](Arg0: &mut UID)
1StLoc[3](loc1: &mut UID)
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](Wrapper<Ty0>)
4StLoc[2](loc0: Wrapper<Ty0>)
5MoveLoc[3](loc1: &mut UID)
6MoveLoc[2](loc0: Wrapper<Ty0>)
7Call dynamic_field::field_info_mut<Wrapper<Ty0>>(&mut UID, Wrapper<Ty0>): &mut UID * address
8Call dynamic_field::borrow_child_object_mut<Ty1>(&mut UID, address): &mut Ty1
9Ret
}
public(friend) internal_remove<Ty0: copy + drop + store, Ty1: key>(Arg0: &mut UID, Arg1: Ty0): Ty1 {
L2: loc0: Wrapper<Ty0>
L3: loc1: &mut UID
L4: loc2: Ty1
L5: loc3: address
B0:
0MoveLoc[0](Arg0: &mut UID)
1StLoc[3](loc1: &mut UID)
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](Wrapper<Ty0>)
4StLoc[2](loc0: Wrapper<Ty0>)
5CopyLoc[3](loc1: &mut UID)
6FreezeRef
7CopyLoc[2](loc0: Wrapper<Ty0>)
8Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
9StLoc[5](loc3: address)
10Call object::uid_to_address(&UID): address
11MoveLoc[5](loc3: address)
12Call dynamic_field::remove_child_object<Ty1>(address, address): Ty1
13StLoc[4](loc2: Ty1)
14MoveLoc[3](loc1: &mut UID)
15MoveLoc[2](loc0: Wrapper<Ty0>)
16Call dynamic_field::remove<Wrapper<Ty0>, ID>(&mut UID, Wrapper<Ty0>): ID
17Pop
18MoveLoc[4](loc2: Ty1)
19Ret
}
public(friend) internal_exists_with_type<Ty0: copy + drop + store, Ty1: key>(Arg0: &UID, Arg1: Ty0): bool {
L2: loc0: bool
L3: loc1: Wrapper<Ty0>
L4: loc2: &UID
L5: loc3: address
B0:
0MoveLoc[0](Arg0: &UID)
1StLoc[4](loc2: &UID)
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](Wrapper<Ty0>)
4StLoc[3](loc1: Wrapper<Ty0>)
5CopyLoc[4](loc2: &UID)
6CopyLoc[3](loc1: Wrapper<Ty0>)
7Call dynamic_field::exists_with_type<Wrapper<Ty0>, ID>(&UID, Wrapper<Ty0>): bool
8Not
9BrFalse(15)
B1:
10MoveLoc[4](loc2: &UID)
11Pop
12LdFalse
13StLoc[2](loc0: bool)
14Branch(23)
B2:
15MoveLoc[4](loc2: &UID)
16MoveLoc[3](loc1: Wrapper<Ty0>)
17Call dynamic_field::field_info<Wrapper<Ty0>>(&UID, Wrapper<Ty0>): &UID * address
18StLoc[5](loc3: address)
19Call object::uid_to_address(&UID): address
20MoveLoc[5](loc3: address)
21Call dynamic_field::has_child_object_with_ty<Ty1>(address, address): bool
22StLoc[2](loc0: bool)
B3:
23MoveLoc[2](loc0: bool)
24Ret
}
}