Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

authority

Module0xc067…8bf8
Move path
0x79ee…5b7a::authority
Functions
60 public, 0 entry
Structs
4
Friend modules
vault
authority

Bytecode118 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v7
module 79ee374b9e3c60c00a19fdbeaea25731bbea8f2cab9bb61bb712543e0ba55b7a.authority {
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000002::address;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::types;
 
struct PACKAGE<phantom Ty0> has drop {
dummy_field: bool
}
 
struct VAULT<phantom Ty0> has drop {
dummy_field: bool
}
 
struct ADMIN has drop {
dummy_field: bool
}
 
struct AuthorityCap<phantom Ty0> has store, key {
id: UID,
for: ID
}
 
public(friend) create_package_admin_cap_and_keep<Ty0: drop>(Arg0: &Ty0, Arg1: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &Ty0)
1Call types::is_one_time_witness<Ty0>(&Ty0): bool
2BrFalse(4)
B1:
3Branch(8)
B2:
4MoveLoc[1](Arg1: &mut TxContext)
5Pop
6LdU64(13906834470696124417)
7Abort
B3:
8CopyLoc[1](Arg1: &mut TxContext)
9Call object::new(&mut TxContext): UID
10Call this_package(): ID
11PackGeneric[0](AuthorityCap<PACKAGE<ADMIN>>)
12MoveLoc[1](Arg1: &mut TxContext)
13FreezeRef
14Call tx_context::sender(&TxContext): address
15Call transfer::transfer<AuthorityCap<PACKAGE<ADMIN>>>(AuthorityCap<PACKAGE<ADMIN>>, address)
16Ret
}
 
public(friend) create_vault_admin_cap(Arg0: ID, Arg1: &mut TxContext): AuthorityCap<VAULT<ADMIN>> {
B0:
0MoveLoc[1](Arg1: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[0](Arg0: ID)
3PackGeneric[1](AuthorityCap<VAULT<ADMIN>>)
4Ret
}
 
public(friend) destroy_vault_admin_cap(Arg0: AuthorityCap<VAULT<ADMIN>>) {
B0:
0MoveLoc[0](Arg0: AuthorityCap<VAULT<ADMIN>>)
1UnpackGeneric[1](AuthorityCap<VAULT<ADMIN>>)
2Pop
3Call object::delete(UID)
4Ret
}
 
public(friend) vault_id<Ty0: drop>(Arg0: &AuthorityCap<Ty0>): ID {
B0:
0MoveLoc[0](Arg0: &AuthorityCap<Ty0>)
1ImmBorrowFieldGeneric[0](AuthorityCap.for: ID)
2ReadRef
3Ret
}
 
public(friend) assert_has_authority_over<Ty0: drop>(Arg0: &AuthorityCap<Ty0>, Arg1: ID) {
B0:
0MoveLoc[0](Arg0: &AuthorityCap<Ty0>)
1ImmBorrowFieldGeneric[0](AuthorityCap.for: ID)
2ReadRef
3MoveLoc[1](Arg1: ID)
4Eq
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdU64(13906834676854685699)
8Abort
B3:
9Ret
}
 
this_package(): ID {
L0: loc0: TypeName
L1: loc1: vector<u8>
B0:
0Call type_name::get<ADMIN>(): TypeName
1StLoc[0](loc0: TypeName)
2ImmBorrowLoc[0](loc0: TypeName)
3Call type_name::get_address(&TypeName): String
4Call ascii::into_bytes(String): vector<u8>
5StLoc[1](loc1: vector<u8>)
6ImmBorrowLoc[1](loc1: vector<u8>)
7Call address::from_ascii_bytes(&vector<u8>): address
8Call object::id_from_address(address): ID
9Ret
}
 
Constants [
0 => vector<u8>: "EAdminCapAlreadyCreated" // interpreted as UTF8 string
1 => vector<u8>: "The singleton `AuthorityCap<PACKAGE<ADMIN>>` has already been created." // interpreted as UTF8 string
2 => vector<u8>: "EInvalidAuthority" // interpreted as UTF8 string
3 => vector<u8>: "The provided `AuthorityCap` does not have authority over the given `Vault`." // interpreted as UTF8 string
]
}