derived_object
Module0x0000…0002
- Move path
- 0x0000…0002::derived_object
- Functions
- 33 public, 0 entry
- Structs
- 3
- Friend modules
- None
derived_object
- 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
Bytecode90 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module 2.derived_object {
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
struct Claimed has copy, drop, store {
pos0: ID
}
struct DerivedObjectKey<Ty0: copy + drop + store> has copy, drop, store {
pos0: Ty0
}
enum ClaimedStatus has store {
Reserved { }
}
public claim<Ty0: copy + drop + store>(Arg0: &mut UID, Arg1: Ty0): UID {
L2: loc0: address
L3: loc1: ID
B0:
0CopyLoc[0](Arg0: &mut UID)
1FreezeRef
2Call object::uid_to_inner(&UID): ID
3MoveLoc[1](Arg1: Ty0)
4Call derive_address<Ty0>(ID, Ty0): address
5StLoc[2](loc0: address)
6CopyLoc[2](loc0: address)
7Call object::id_from_address(address): ID
8StLoc[3](loc1: ID)
9CopyLoc[0](Arg0: &mut UID)
10FreezeRef
11CopyLoc[3](loc1: ID)
12Pack[0](Claimed)
13Call dynamic_field::exists<Claimed>(&UID, Claimed): bool
14Not
15BrFalse(17)
B1:
16Branch(21)
B2:
17MoveLoc[0](Arg0: &mut UID)
18Pop
19LdU64(13835058231375822849)
20Abort
B3:
21CopyLoc[0](Arg0: &mut UID)
22MoveLoc[3](loc1: ID)
23Pack[0](Claimed)
24PackVariant(VariantHandleIndex(0))
25Call dynamic_field::add<Claimed, ClaimedStatus>(&mut UID, Claimed, ClaimedStatus)
26MoveLoc[0](Arg0: &mut UID)
27FreezeRef
28Call object::uid_to_address(&UID): address
29MoveLoc[2](loc0: address)
30Call object::new_uid_from_hash(address, address): UID
31Ret
}
public exists<Ty0: copy + drop + store>(Arg0: &UID, Arg1: Ty0): bool {
L2: loc0: address
B0:
0CopyLoc[0](Arg0: &UID)
1Call object::uid_to_inner(&UID): ID
2MoveLoc[1](Arg1: Ty0)
3Call derive_address<Ty0>(ID, Ty0): address
4StLoc[2](loc0: address)
5MoveLoc[0](Arg0: &UID)
6MoveLoc[2](loc0: address)
7Call object::id_from_address(address): ID
8Pack[0](Claimed)
9Call dynamic_field::exists<Claimed>(&UID, Claimed): bool
10Ret
}
public derive_address<Ty0: copy + drop + store>(Arg0: ID, Arg1: Ty0): address {
B0:
0ImmBorrowLoc[0](Arg0: ID)
1Call object::id_to_address(&ID): address
2MoveLoc[1](Arg1: Ty0)
3PackGeneric[0](DerivedObjectKey<Ty0>)
4Call dynamic_field::hash_type_and_key<DerivedObjectKey<Ty0>>(address, DerivedObjectKey<Ty0>): address
5Ret
}
Constants [
0 => vector<u8>: "EObjectAlreadyExists" // interpreted as UTF8 string
1 => vector<u8>: "Derived object is already claimed." // interpreted as UTF8 string
]
}