plugins
Module0x34a2…c82c
- Move path
- 0xbc3d…e5f9::plugins
- Functions
- 1413 public, 0 entry
- Structs
- 1
- Friend modules
- None
plugins
- access_policy19
- attributes18
- collection19
- composable_nft28
- composable_svg27
- composable_url10
- creators16
- display_info14
- frozen_pub1
- mint_cap15
- mint_event3
- mint_pass12
- mint_supply19
- nft18
- nft_bag28
- nft_protocol5
- p2p_list8
- p2p_list_domain13
- plugins14
- royalty29
- royalty_strategy_bps23
- session_token8
- supply27
- svg13
- symbol10
- tags11
- transfer_allowlist6
- transfer_allowlist_domain13
- transfer_token5
- url7
Bytecode182 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module bc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9.plugins {
use 16c5f17f2d55584a6e6daa442ccf83b4530d10546a8e7dedda9ba324e012fc40::witness;
use 859eb18bd5b5e8cc32deb6dfb1c39941008ab3c6e27f0b8ce2364be7102bb7cb::utils;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_set;
struct Plugins<phantom Ty0> has store {
generator: WitnessGenerator<Ty0>,
packages: VecSet<TypeName>
}
new<Ty0, Ty1: drop>(Arg0: Ty1): Plugins<Ty0> {
B0:
0MoveLoc[0](Arg0: Ty1)
1Call witness::generator<Ty0, Ty1>(Ty1): WitnessGenerator<Ty0>
2Call vec_set::empty<TypeName>(): VecSet<TypeName>
3PackGeneric[0](Plugins<Ty0>)
4Ret
}
public contains_plugin<Ty0, Ty1>(Arg0: &Plugins<Ty0>): bool {
L1: loc0: TypeName
L2: loc1: &VecSet<TypeName>
B0:
0MoveLoc[0](Arg0: &Plugins<Ty0>)
1ImmBorrowFieldGeneric[0](Plugins.packages: VecSet<TypeName>)
2StLoc[2](loc1: &VecSet<TypeName>)
3Call type_name::get<Ty1>(): TypeName
4StLoc[1](loc0: TypeName)
5MoveLoc[2](loc1: &VecSet<TypeName>)
6ImmBorrowLoc[1](loc0: TypeName)
7Call vec_set::contains<TypeName>(&VecSet<TypeName>, &TypeName): bool
8Ret
}
public get_plugins<Ty0>(Arg0: &mut Plugins<Ty0>): &VecSet<TypeName> {
B0:
0MoveLoc[0](Arg0: &mut Plugins<Ty0>)
1ImmBorrowFieldGeneric[0](Plugins.packages: VecSet<TypeName>)
2Ret
}
public add_plugin<Ty0, Ty1>(Arg0: Witness<Ty0>, Arg1: &mut Plugins<Ty0>) {
B0:
0MoveLoc[1](Arg1: &mut Plugins<Ty0>)
1MutBorrowFieldGeneric[0](Plugins.packages: VecSet<TypeName>)
2Call type_name::get<Ty1>(): TypeName
3Call vec_set::insert<TypeName>(&mut VecSet<TypeName>, TypeName)
4Ret
}
public remove_plugin<Ty0, Ty1>(Arg0: Witness<Ty0>, Arg1: &mut Plugins<Ty0>) {
L2: loc0: TypeName
L3: loc1: &mut VecSet<TypeName>
B0:
0MoveLoc[1](Arg1: &mut Plugins<Ty0>)
1MutBorrowFieldGeneric[0](Plugins.packages: VecSet<TypeName>)
2StLoc[3](loc1: &mut VecSet<TypeName>)
3Call type_name::get<Ty1>(): TypeName
4StLoc[2](loc0: TypeName)
5MoveLoc[3](loc1: &mut VecSet<TypeName>)
6ImmBorrowLoc[2](loc0: TypeName)
7Call vec_set::remove<TypeName>(&mut VecSet<TypeName>, &TypeName)
8Ret
}
public delegate<Ty0, Ty1>(Arg0: &Ty1, Arg1: &mut Plugins<Ty0>): Witness<Ty0> {
B0:
0CopyLoc[1](Arg1: &mut Plugins<Ty0>)
1FreezeRef
2Call assert_plugin<Ty0, Ty1>(&Plugins<Ty0>)
3MoveLoc[1](Arg1: &mut Plugins<Ty0>)
4ImmBorrowFieldGeneric[1](Plugins.generator: WitnessGenerator<Ty0>)
5Call witness::delegate<Ty0>(&WitnessGenerator<Ty0>): Witness<Ty0>
6Ret
}
public has_domain<Ty0>(Arg0: &UID): bool {
B0:
0MoveLoc[0](Arg0: &UID)
1Call utils::marker<Plugins<Ty0>>(): Marker<Plugins<Ty0>>
2Call dynamic_field::exists_with_type<Marker<Plugins<Ty0>>, Plugins<Ty0>>(&UID, Marker<Plugins<Ty0>>): bool
3Ret
}
public borrow_domain<Ty0>(Arg0: &UID): &Plugins<Ty0> {
B0:
0CopyLoc[0](Arg0: &UID)
1Call assert_plugins<Ty0>(&UID)
2MoveLoc[0](Arg0: &UID)
3Call utils::marker<Plugins<Ty0>>(): Marker<Plugins<Ty0>>
4Call dynamic_field::borrow<Marker<Plugins<Ty0>>, Plugins<Ty0>>(&UID, Marker<Plugins<Ty0>>): &Plugins<Ty0>
5Ret
}
public borrow_domain_mut<Ty0>(Arg0: &mut UID): &mut Plugins<Ty0> {
B0:
0CopyLoc[0](Arg0: &mut UID)
1FreezeRef
2Call assert_plugins<Ty0>(&UID)
3MoveLoc[0](Arg0: &mut UID)
4Call utils::marker<Plugins<Ty0>>(): Marker<Plugins<Ty0>>
5Call dynamic_field::borrow_mut<Marker<Plugins<Ty0>>, Plugins<Ty0>>(&mut UID, Marker<Plugins<Ty0>>): &mut Plugins<Ty0>
6Ret
}
public add_domain<Ty0>(Arg0: &mut UID, Arg1: Plugins<Ty0>) {
B0:
0CopyLoc[0](Arg0: &mut UID)
1FreezeRef
2Call assert_no_plugins<Ty0>(&UID)
3MoveLoc[0](Arg0: &mut UID)
4Call utils::marker<Plugins<Ty0>>(): Marker<Plugins<Ty0>>
5MoveLoc[1](Arg1: Plugins<Ty0>)
6Call dynamic_field::add<Marker<Plugins<Ty0>>, Plugins<Ty0>>(&mut UID, Marker<Plugins<Ty0>>, Plugins<Ty0>)
7Ret
}
public remove_domain<Ty0>(Arg0: &mut UID): Plugins<Ty0> {
B0:
0CopyLoc[0](Arg0: &mut UID)
1FreezeRef
2Call assert_plugins<Ty0>(&UID)
3MoveLoc[0](Arg0: &mut UID)
4Call utils::marker<Plugins<Ty0>>(): Marker<Plugins<Ty0>>
5Call dynamic_field::remove<Marker<Plugins<Ty0>>, Plugins<Ty0>>(&mut UID, Marker<Plugins<Ty0>>): Plugins<Ty0>
6Ret
}
public assert_plugin<Ty0, Ty1>(Arg0: &Plugins<Ty0>) {
B0:
0MoveLoc[0](Arg0: &Plugins<Ty0>)
1Call contains_plugin<Ty0, Ty1>(&Plugins<Ty0>): bool
2BrFalse(4)
B1:
3Branch(6)
B2:
4LdConst[2](u64: 3)
5Abort
B3:
6Ret
}
public assert_plugins<Ty0>(Arg0: &UID) {
B0:
0MoveLoc[0](Arg0: &UID)
1Call has_domain<Ty0>(&UID): bool
2BrFalse(4)
B1:
3Branch(6)
B2:
4LdConst[0](u64: 1)
5Abort
B3:
6Ret
}
public assert_no_plugins<Ty0>(Arg0: &UID) {
B0:
0MoveLoc[0](Arg0: &UID)
1Call has_domain<Ty0>(&UID): bool
2Not
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[1](u64: 2)
6Abort
B3:
7Ret
}
Constants [
0 => u64: 1
1 => u64: 2
2 => u64: 3
]
}