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

API

admin

Module0xcd01…54db
Move path
0x2a74…2171::admin
Functions
1917 public, 18 entry
Structs
2
Friend modules
None
admin

Bytecode211 lines

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

// Move bytecode v6
module 2a74b5b27122aaf707fce12cdeb7f283f07509fa18dd9945d82ae443ca952171.admin {
use bde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d::hasui;
use bde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d::staking;
use 2a74b5b27122aaf707fce12cdeb7f283f07509fa18dd9945d82ae443ca952171::config;
use 2a74b5b27122aaf707fce12cdeb7f283f07509fa18dd9945d82ae443ca952171::random_vault;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::random;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
struct AdminCap has store, key {
id: UID
}
 
struct OperatorCap has store, key {
id: UID
}
 
init(Arg0: &mut TxContext) {
L1: loc0: address
B0:
0CopyLoc[0](Arg0: &mut TxContext)
1FreezeRef
2Call tx_context::sender(&TxContext): address
3StLoc[1](loc0: address)
4CopyLoc[0](Arg0: &mut TxContext)
5Call object::new(&mut TxContext): UID
6Pack[0](AdminCap)
7CopyLoc[1](loc0: address)
8Call transfer::transfer<AdminCap>(AdminCap, address)
9MoveLoc[0](Arg0: &mut TxContext)
10Call object::new(&mut TxContext): UID
11Pack[1](OperatorCap)
12MoveLoc[1](loc0: address)
13Call transfer::transfer<OperatorCap>(OperatorCap, address)
14Ret
}
 
entry public add_operator(Arg0: &AdminCap, Arg1: address, Arg2: &mut TxContext) {
B0:
0MoveLoc[2](Arg2: &mut TxContext)
1Call object::new(&mut TxContext): UID
2Pack[1](OperatorCap)
3MoveLoc[1](Arg1: address)
4Call transfer::transfer<OperatorCap>(OperatorCap, address)
5Ret
}
 
entry public migrate(Arg0: &AdminCap, Arg1: &mut RandomVault) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1Call random_vault::migrate(&mut RandomVault)
2Ret
}
 
entry public destroy_operator(Arg0: OperatorCap) {
B0:
0MoveLoc[0](Arg0: OperatorCap)
1Unpack[1](OperatorCap)
2Call object::delete(UID)
3Ret
}
 
entry public collect_fee(Arg0: &AdminCap, Arg1: &mut RandomVault, Arg2: u64, Arg3: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: u64)
2CopyLoc[3](Arg3: &mut TxContext)
3Call random_vault::collect_fee(&mut RandomVault, u64, &mut TxContext): Coin<HASUI>
4MoveLoc[3](Arg3: &mut TxContext)
5FreezeRef
6Call tx_context::sender(&TxContext): address
7Call transfer::public_transfer<Coin<HASUI>>(Coin<HASUI>, address)
8Ret
}
 
entry public start_first_round(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: u64, Arg3: &Clock, Arg4: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: u64)
2MoveLoc[3](Arg3: &Clock)
3MoveLoc[4](Arg4: &mut TxContext)
4Call random_vault::start_first_round(&mut RandomVault, u64, &Clock, &mut TxContext)
5Ret
}
 
entry public pause(Arg0: &OperatorCap, Arg1: &mut RandomVault) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1Call random_vault::pause(&mut RandomVault)
2Ret
}
 
entry public resume(Arg0: &OperatorCap, Arg1: &mut RandomVault) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1Call random_vault::resume(&mut RandomVault)
2Ret
}
 
entry public draw(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: &Staking, Arg3: &Clock, Arg4: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: &Staking)
2MoveLoc[3](Arg3: &Clock)
3MoveLoc[4](Arg4: &mut TxContext)
4Call random_vault::draw(&mut RandomVault, &Staking, &Clock, &mut TxContext)
5Ret
}
 
entry public draw_step_1(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: &Staking, Arg3: &Clock, Arg4: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: &Staking)
2MoveLoc[3](Arg3: &Clock)
3MoveLoc[4](Arg4: &mut TxContext)
4Call random_vault::draw_step_1(&mut RandomVault, &Staking, &Clock, &mut TxContext)
5Ret
}
 
entry draw_step_1_new(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: &Staking, Arg3: &Clock, Arg4: &Random, Arg5: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: &Staking)
2MoveLoc[3](Arg3: &Clock)
3MoveLoc[4](Arg4: &Random)
4MoveLoc[5](Arg5: &mut TxContext)
5Call random_vault::draw_step_1_new(&mut RandomVault, &Staking, &Clock, &Random, &mut TxContext)
6Ret
}
 
entry public draw_step_2(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: Coin<HASUI>, Arg3: &Staking, Arg4: &Clock, Arg5: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: Coin<HASUI>)
2MoveLoc[3](Arg3: &Staking)
3MoveLoc[4](Arg4: &Clock)
4MoveLoc[5](Arg5: &mut TxContext)
5Call random_vault::draw_step_2(&mut RandomVault, Coin<HASUI>, &Staking, &Clock, &mut TxContext)
6Ret
}
 
entry public draw_step_2_new(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: &Staking, Arg3: u64, Arg4: u64, Arg5: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: &Staking)
2MoveLoc[3](Arg3: u64)
3MoveLoc[4](Arg4: u64)
4MoveLoc[5](Arg5: &mut TxContext)
5Call random_vault::draw_step_2_new(&mut RandomVault, &Staking, u64, u64, &mut TxContext)
6Ret
}
 
entry public draw_step_3(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: &mut TxContext)
2Call random_vault::draw_step_3(&mut RandomVault, &mut TxContext)
3Ret
}
 
entry public collect_expired_prize(Arg0: &mut RandomVault, Arg1: &Clock, Arg2: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut RandomVault)
1MoveLoc[1](Arg1: &Clock)
2MoveLoc[2](Arg2: &mut TxContext)
3Call random_vault::collect_expired_prize(&mut RandomVault, &Clock, &mut TxContext)
4Ret
}
 
entry public clear_round_record(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: &Clock, Arg3: &mut TxContext) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1MoveLoc[2](Arg2: &Clock)
2MoveLoc[3](Arg3: &mut TxContext)
3Call random_vault::clear_round_record(&mut RandomVault, &Clock, &mut TxContext)
4Ret
}
 
entry public set_round_duration(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: u64) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1Call random_vault::get_config_mut(&mut RandomVault): &mut Config
2MoveLoc[2](Arg2: u64)
3Call config::set_round_duration(&mut Config, u64)
4Ret
}
 
entry public set_prize_rate(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: vector<u64>) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1Call random_vault::get_config_mut(&mut RandomVault): &mut Config
2MoveLoc[2](Arg2: vector<u64>)
3Call config::set_prize_rate(&mut Config, vector<u64>)
4Ret
}
 
entry public set_withdraw_fee_rate(Arg0: &OperatorCap, Arg1: &mut RandomVault, Arg2: u64) {
B0:
0MoveLoc[1](Arg1: &mut RandomVault)
1Call random_vault::get_config_mut(&mut RandomVault): &mut Config
2MoveLoc[2](Arg2: u64)
3Call config::set_withdraw_fee_rate(&mut Config, u64)
4Ret
}
 
}