Package 0x23ec…39f5
admin
- Move path
- 0x23ec…39f5::admin
- Functions
- 77 public, 0 entry
- Structs
- 3
- Friend modules
- None
admin
Bytecode381 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v6
module 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5.admin {
use 35169bc93e1fddfcf3a82a9eae726d349689ed59e4b065369af8789fe59f8608::mmt;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5::acl;
use 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5::assert;
use 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5::epoch;
use 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5::error;
use 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5::event;
use 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5::staking_pool;
use 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5::ve_mmt;
use 23ecc2b1c55a7e1c1c1e5091afee8ffdbbfc7b044d059d536804ad050c0c39f5::version;
struct SetVersionEvent has copy, drop {
sender: address,
major_version_old: u64,
major_version_new: u64,
minor_version_old: u64,
minor_version_new: u64
}
struct SetPauseEvent has copy, drop {
admin: address,
paused: bool
}
struct SetIncentiveAdminEvent has copy, drop {
old_admin: address,
new_admin: address,
changed_by: address
}
public initialize_pool(Arg0: &AdminCap, Arg1: &VeMMT, Arg2: &mut StakingPool, Arg3: &Clock) {
B0:
0CopyLoc[2](Arg2: &mut StakingPool)
1FreezeRef
2Call staking_pool::current_epoch(&StakingPool): u64
3LdU64(0)
4Eq
5BrFalse(7)
B1:
6Branch(15)
B2:
7MoveLoc[1](Arg1: &VeMMT)
8Pop
9MoveLoc[2](Arg2: &mut StakingPool)
10Pop
11MoveLoc[3](Arg3: &Clock)
12Pop
13Call error::e_pool_already_initialized(): u64
14Abort
B3:
15MoveLoc[2](Arg2: &mut StakingPool)
16MoveLoc[1](Arg1: &VeMMT)
17Call ve_mmt::ep_config(&VeMMT): &EpochConfig
18MoveLoc[3](Arg3: &Clock)
19Call staking_pool::initialize(&mut StakingPool, &EpochConfig, &Clock)
20Ret
}
public set_version(Arg0: &mut VeMMT, Arg1: &VersionCap, Arg2: u64, Arg3: u64, Arg4: &mut TxContext) {
L5: loc0: u64
L6: loc1: u64
L7: loc2: &mut Version
B0:
0MoveLoc[0](Arg0: &mut VeMMT)
1Call ve_mmt::version_mul(&mut VeMMT): &mut Version
2StLoc[7](loc2: &mut Version)
3CopyLoc[7](loc2: &mut Version)
4FreezeRef
5Call version::value_major(&Version): u64
6StLoc[5](loc0: u64)
7CopyLoc[7](loc2: &mut Version)
8FreezeRef
9Call version::value_minor(&Version): u64
10StLoc[6](loc1: u64)
11MoveLoc[7](loc2: &mut Version)
12CopyLoc[2](Arg2: u64)
13CopyLoc[3](Arg3: u64)
14Call version::set_version(&mut Version, u64, u64)
15MoveLoc[4](Arg4: &mut TxContext)
16FreezeRef
17Call tx_context::sender(&TxContext): address
18MoveLoc[5](loc0: u64)
19MoveLoc[2](Arg2: u64)
20MoveLoc[6](loc1: u64)
21MoveLoc[3](Arg3: u64)
22Pack[0](SetVersionEvent)
23Call event::emit<SetVersionEvent>(SetVersionEvent)
24Ret
}
public set_pause(Arg0: &AdminCap, Arg1: &mut VeMMT, Arg2: bool, Arg3: &mut TxContext) {
B0:
0CopyLoc[2](Arg2: bool)
1CopyLoc[1](Arg1: &mut VeMMT)
2FreezeRef
3Call ve_mmt::is_paused(&VeMMT): bool
4Neq
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[1](Arg1: &mut VeMMT)
8Pop
9MoveLoc[3](Arg3: &mut TxContext)
10Pop
11Call error::e_no_state_change(): u64
12Abort
B3:
13MoveLoc[1](Arg1: &mut VeMMT)
14CopyLoc[2](Arg2: bool)
15Call ve_mmt::set_paused(&mut VeMMT, bool)
16MoveLoc[3](Arg3: &mut TxContext)
17FreezeRef
18Call tx_context::sender(&TxContext): address
19MoveLoc[2](Arg2: bool)
20Pack[1](SetPauseEvent)
21Call event::emit<SetPauseEvent>(SetPauseEvent)
22Ret
}
public set_reward_admin(Arg0: &AdminCap, Arg1: &mut VeMMT, Arg2: address, Arg3: &mut TxContext) {
L4: loc0: address
B0:
0CopyLoc[1](Arg1: &mut VeMMT)
1FreezeRef
2Call ve_mmt::acl(&VeMMT): &Acl
3Call acl::get_reward_admin(&Acl): address
4StLoc[4](loc0: address)
5MoveLoc[1](Arg1: &mut VeMMT)
6Call ve_mmt::acl_mut(&mut VeMMT): &mut Acl
7CopyLoc[2](Arg2: address)
8Call acl::set_reward_admin(&mut Acl, address): Option<address>
9Pop
10MoveLoc[4](loc0: address)
11MoveLoc[2](Arg2: address)
12MoveLoc[3](Arg3: &mut TxContext)
13FreezeRef
14Call tx_context::sender(&TxContext): address
15Pack[2](SetIncentiveAdminEvent)
16Call event::emit<SetIncentiveAdminEvent>(SetIncentiveAdminEvent)
17Ret
}
public init_reward(Arg0: &VeMMT, Arg1: &mut StakingPool, Arg2: u64, Arg3: u64, Arg4: Balance<MMT>, Arg5: &Clock, Arg6: &TxContext) {
L7: loc0: &EpochConfig
B0:
0CopyLoc[0](Arg0: &VeMMT)
1Call ve_mmt::version(&VeMMT): &Version
2Call version::assert_supported_version(&Version)
3CopyLoc[0](Arg0: &VeMMT)
4Call ve_mmt::acl(&VeMMT): &Acl
5CopyLoc[6](Arg6: &TxContext)
6Call acl::assert_reward_admin(&Acl, &TxContext)
7CopyLoc[0](Arg0: &VeMMT)
8Call ve_mmt::is_paused(&VeMMT): bool
9Not
10BrFalse(12)
B1:
11Branch(22)
B2:
12MoveLoc[0](Arg0: &VeMMT)
13Pop
14MoveLoc[1](Arg1: &mut StakingPool)
15Pop
16MoveLoc[6](Arg6: &TxContext)
17Pop
18MoveLoc[5](Arg5: &Clock)
19Pop
20Call error::e_paused(): u64
21Abort
B3:
22CopyLoc[1](Arg1: &mut StakingPool)
23FreezeRef
24Call staking_pool::init_reward_at(&StakingPool): u64
25LdU64(0)
26Eq
27BrFalse(29)
B4:
28Branch(39)
B5:
29MoveLoc[0](Arg0: &VeMMT)
30Pop
31MoveLoc[1](Arg1: &mut StakingPool)
32Pop
33MoveLoc[6](Arg6: &TxContext)
34Pop
35MoveLoc[5](Arg5: &Clock)
36Pop
37Call error::e_reward_already_initialized(): u64
38Abort
B6:
39MoveLoc[0](Arg0: &VeMMT)
40Call ve_mmt::ep_config(&VeMMT): &EpochConfig
41StLoc[7](loc0: &EpochConfig)
42CopyLoc[2](Arg2: u64)
43CopyLoc[3](Arg3: u64)
44MoveLoc[5](Arg5: &Clock)
45MoveLoc[7](loc0: &EpochConfig)
46Call assert::assert_init_reward_valid(u64, u64, &Clock, &EpochConfig)
47ImmBorrowLoc[4](Arg4: Balance<MMT>)
48Call balance::value<MMT>(&Balance<MMT>): u64
49LdU64(0)
50Gt
51BrFalse(53)
B7:
52Branch(59)
B8:
53MoveLoc[1](Arg1: &mut StakingPool)
54Pop
55MoveLoc[6](Arg6: &TxContext)
56Pop
57Call error::e_invalid_amount(): u64
58Abort
B9:
59CopyLoc[1](Arg1: &mut StakingPool)
60MoveLoc[2](Arg2: u64)
61Call staking_pool::init_reward(&mut StakingPool, u64)
62MoveLoc[1](Arg1: &mut StakingPool)
63MoveLoc[4](Arg4: Balance<MMT>)
64MoveLoc[3](Arg3: u64)
65MoveLoc[6](Arg6: &TxContext)
66Call staking_pool::update_reward_emission(&mut StakingPool, Balance<MMT>, u64, &TxContext)
67Ret
}
public add_ms_to_reward_emission(Arg0: &VeMMT, Arg1: &mut StakingPool, Arg2: u64, Arg3: &Clock, Arg4: &TxContext) {
L5: loc0: &EpochConfig
B0:
0CopyLoc[0](Arg0: &VeMMT)
1Call ve_mmt::version(&VeMMT): &Version
2Call version::assert_supported_version(&Version)
3CopyLoc[0](Arg0: &VeMMT)
4Call ve_mmt::acl(&VeMMT): &Acl
5CopyLoc[4](Arg4: &TxContext)
6Call acl::assert_reward_admin(&Acl, &TxContext)
7CopyLoc[0](Arg0: &VeMMT)
8Call ve_mmt::is_paused(&VeMMT): bool
9Not
10BrFalse(12)
B1:
11Branch(22)
B2:
12MoveLoc[0](Arg0: &VeMMT)
13Pop
14MoveLoc[1](Arg1: &mut StakingPool)
15Pop
16MoveLoc[4](Arg4: &TxContext)
17Pop
18MoveLoc[3](Arg3: &Clock)
19Pop
20Call error::e_paused(): u64
21Abort
B3:
22CopyLoc[1](Arg1: &mut StakingPool)
23FreezeRef
24Call staking_pool::init_reward_at(&StakingPool): u64
25LdU64(0)
26Neq
27BrFalse(29)
B4:
28Branch(39)
B5:
29MoveLoc[0](Arg0: &VeMMT)
30Pop
31MoveLoc[1](Arg1: &mut StakingPool)
32Pop
33MoveLoc[4](Arg4: &TxContext)
34Pop
35MoveLoc[3](Arg3: &Clock)
36Pop
37Call error::e_reward_not_initialized(): u64
38Abort
B6:
39MoveLoc[0](Arg0: &VeMMT)
40Call ve_mmt::ep_config(&VeMMT): &EpochConfig
41StLoc[5](loc0: &EpochConfig)
42CopyLoc[2](Arg2: u64)
43MoveLoc[5](loc0: &EpochConfig)
44Call assert::assert_additional_ms(u64, &EpochConfig)
45CopyLoc[1](Arg1: &mut StakingPool)
46MoveLoc[3](Arg3: &Clock)
47Call clock::timestamp_ms(&Clock): u64
48Call staking_pool::update_reward_info(&mut StakingPool, u64)
49MoveLoc[1](Arg1: &mut StakingPool)
50Call balance::zero<MMT>(): Balance<MMT>
51MoveLoc[2](Arg2: u64)
52MoveLoc[4](Arg4: &TxContext)
53Call staking_pool::update_reward_emission(&mut StakingPool, Balance<MMT>, u64, &TxContext)
54Ret
}
public update_pool_reward_emission(Arg0: &VeMMT, Arg1: &mut StakingPool, Arg2: Balance<MMT>, Arg3: u64, Arg4: &Clock, Arg5: &TxContext) {
L6: loc0: &EpochConfig
B0:
0CopyLoc[0](Arg0: &VeMMT)
1Call ve_mmt::version(&VeMMT): &Version
2Call version::assert_supported_version(&Version)
3CopyLoc[0](Arg0: &VeMMT)
4Call ve_mmt::acl(&VeMMT): &Acl
5CopyLoc[5](Arg5: &TxContext)
6Call acl::assert_reward_admin(&Acl, &TxContext)
7CopyLoc[1](Arg1: &mut StakingPool)
8FreezeRef
9Call staking_pool::init_reward_at(&StakingPool): u64
10LdU64(0)
11Neq
12BrFalse(14)
B1:
13Branch(24)
B2:
14MoveLoc[0](Arg0: &VeMMT)
15Pop
16MoveLoc[1](Arg1: &mut StakingPool)
17Pop
18MoveLoc[5](Arg5: &TxContext)
19Pop
20MoveLoc[4](Arg4: &Clock)
21Pop
22Call error::e_reward_not_initialized(): u64
23Abort
B3:
24CopyLoc[0](Arg0: &VeMMT)
25Call ve_mmt::is_paused(&VeMMT): bool
26Not
27BrFalse(29)
B4:
28Branch(39)
B5:
29MoveLoc[0](Arg0: &VeMMT)
30Pop
31MoveLoc[1](Arg1: &mut StakingPool)
32Pop
33MoveLoc[5](Arg5: &TxContext)
34Pop
35MoveLoc[4](Arg4: &Clock)
36Pop
37Call error::e_paused(): u64
38Abort
B6:
39MoveLoc[0](Arg0: &VeMMT)
40Call ve_mmt::ep_config(&VeMMT): &EpochConfig
41StLoc[6](loc0: &EpochConfig)
42CopyLoc[3](Arg3: u64)
43MoveLoc[6](loc0: &EpochConfig)
44Call assert::assert_additional_ms(u64, &EpochConfig)
45ImmBorrowLoc[2](Arg2: Balance<MMT>)
46Call balance::value<MMT>(&Balance<MMT>): u64
47LdU64(0)
48Gt
49BrFalse(51)
B7:
50Branch(59)
B8:
51MoveLoc[1](Arg1: &mut StakingPool)
52Pop
53MoveLoc[5](Arg5: &TxContext)
54Pop
55MoveLoc[4](Arg4: &Clock)
56Pop
57Call error::e_invalid_amount(): u64
58Abort
B9:
59CopyLoc[1](Arg1: &mut StakingPool)
60MoveLoc[4](Arg4: &Clock)
61Call clock::timestamp_ms(&Clock): u64
62Call staking_pool::update_reward_info(&mut StakingPool, u64)
63MoveLoc[1](Arg1: &mut StakingPool)
64MoveLoc[2](Arg2: Balance<MMT>)
65MoveLoc[3](Arg3: u64)
66MoveLoc[5](Arg5: &TxContext)
67Call staking_pool::update_reward_emission(&mut StakingPool, Balance<MMT>, u64, &TxContext)
68Ret
}
}