admin
Module0x0d73…d960
- Move path
- 0xf6c0…ebf1::admin
- Functions
- 88 public, 0 entry
- Structs
- 3
- Friend modules
- None
admin
Bytecode387 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module f6c05e2d9301e6e91dc6ab6c3ca918f7d55896e1f1edd64adc0e615cde27ebf1.admin {
use f6c05e2d9301e6e91dc6ab6c3ca918f7d55896e1f1edd64adc0e615cde27ebf1::app;
use f6c05e2d9301e6e91dc6ab6c3ca918f7d55896e1f1edd64adc0e615cde27ebf1::error;
use f6c05e2d9301e6e91dc6ab6c3ca918f7d55896e1f1edd64adc0e615cde27ebf1::pool;
use f6c05e2d9301e6e91dc6ab6c3ca918f7d55896e1f1edd64adc0e615cde27ebf1::utils;
use f6c05e2d9301e6e91dc6ab6c3ca918f7d55896e1f1edd64adc0e615cde27ebf1::version;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::math;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
struct CollectProtocolFeeEvent has copy, drop, store {
sender: address,
pool_id: ID,
amount_x: u64,
amount_y: u64
}
struct SetProtocolSwapFeeRateEvent has copy, drop, store {
sender: address,
pool_id: ID,
protocol_fee_share_old: u64,
protocol_fee_share_new: u64
}
struct SetProtocolFlashLoanFeeRateEvent has copy, drop, store {
sender: address,
pool_id: ID,
protocol_fee_share_old: u64,
protocol_fee_share_new: u64
}
public initialize_pool_reward<Ty0, Ty1, Ty2>(Arg0: &Acl, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: u64, Arg4: Balance<Ty2>, Arg5: &Clock, Arg6: &Version, Arg7: &TxContext) {
L8: loc0: PoolRewardInfo
B0:
0MoveLoc[6](Arg6: &Version)
1Call version::assert_supported_version(&Version)
2MoveLoc[0](Arg0: &Acl)
3Call app::get_rewarder_admin(&Acl): address
4CopyLoc[7](Arg7: &TxContext)
5Call tx_context::sender(&TxContext): address
6Eq
7BrFalse(9)
B1:
8Branch(17)
B2:
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10Pop
11MoveLoc[7](Arg7: &TxContext)
12Pop
13MoveLoc[5](Arg5: &Clock)
14Pop
15Call error::not_authorised(): u64
16Abort
B3:
17CopyLoc[2](Arg2: u64)
18MoveLoc[5](Arg5: &Clock)
19Call clock::timestamp_ms(&Clock): u64
20Call utils::to_seconds(u64): u64
21Gt
22BrFalse(24)
B4:
23Branch(30)
B5:
24MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
25Pop
26MoveLoc[7](Arg7: &TxContext)
27Pop
28Call error::invalid_timestamp(): u64
29Abort
B6:
30Call type_name::get<Ty2>(): TypeName
31MoveLoc[2](Arg2: u64)
32Call pool::default_reward_info(TypeName, u64): PoolRewardInfo
33StLoc[8](loc0: PoolRewardInfo)
34CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
35MoveLoc[8](loc0: PoolRewardInfo)
36CopyLoc[7](Arg7: &TxContext)
37Call pool::add_reward_info<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1>, PoolRewardInfo, &TxContext)
38MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
39MoveLoc[4](Arg4: Balance<Ty2>)
40MoveLoc[3](Arg3: u64)
41MoveLoc[7](Arg7: &TxContext)
42Call pool::update_pool_reward_emission<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1>, Balance<Ty2>, u64, &TxContext)
43Ret
}
public collect_protocol_fee<Ty0, Ty1>(Arg0: &AdminCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: u64, Arg4: &Version, Arg5: &TxContext): Balance<Ty0> * Balance<Ty1> {
L6: loc0: u64
L7: loc1: u64
L8: loc2: u64
L9: loc3: u64
B0:
0MoveLoc[4](Arg4: &Version)
1Call version::assert_supported_version(&Version)
2MoveLoc[2](Arg2: u64)
3CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
4FreezeRef
5Call pool::protocol_fee_x<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64
6Call math::min(u64, u64): u64
7StLoc[6](loc0: u64)
8MoveLoc[3](Arg3: u64)
9CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10FreezeRef
11Call pool::protocol_fee_y<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64
12Call math::min(u64, u64): u64
13StLoc[7](loc1: u64)
14CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
15FreezeRef
16Call pool::protocol_fee_x<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64
17StLoc[8](loc2: u64)
18CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
19FreezeRef
20Call pool::protocol_fee_y<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64
21StLoc[9](loc3: u64)
22CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
23MoveLoc[8](loc2: u64)
24CopyLoc[6](loc0: u64)
25Sub
26Call pool::set_protocol_fee_x<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64)
27CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
28MoveLoc[9](loc3: u64)
29CopyLoc[7](loc1: u64)
30Sub
31Call pool::set_protocol_fee_y<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64)
32MoveLoc[5](Arg5: &TxContext)
33Call tx_context::sender(&TxContext): address
34CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
35FreezeRef
36Call object::id<Pool<Ty0, Ty1>>(&Pool<Ty0, Ty1>): ID
37CopyLoc[6](loc0: u64)
38CopyLoc[7](loc1: u64)
39Pack[0](CollectProtocolFeeEvent)
40Call event::emit<CollectProtocolFeeEvent>(CollectProtocolFeeEvent)
41MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
42MoveLoc[6](loc0: u64)
43MoveLoc[7](loc1: u64)
44Call pool::take_from_reserves<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64, u64): Balance<Ty0> * Balance<Ty1>
45Ret
}
public add_seconds_to_reward_emission<Ty0, Ty1, Ty2>(Arg0: &Acl, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: &Clock, Arg4: &Version, Arg5: &TxContext) {
B0:
0MoveLoc[4](Arg4: &Version)
1Call version::assert_supported_version(&Version)
2MoveLoc[0](Arg0: &Acl)
3Call app::get_rewarder_admin(&Acl): address
4CopyLoc[5](Arg5: &TxContext)
5Call tx_context::sender(&TxContext): address
6Eq
7BrFalse(9)
B1:
8Branch(17)
B2:
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10Pop
11MoveLoc[5](Arg5: &TxContext)
12Pop
13MoveLoc[3](Arg3: &Clock)
14Pop
15Call error::not_authorised(): u64
16Abort
B3:
17CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
18MoveLoc[3](Arg3: &Clock)
19Call clock::timestamp_ms(&Clock): u64
20Call utils::to_seconds(u64): u64
21Call pool::update_reward_infos<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64): vector<u128>
22Pop
23MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
24Call balance::zero<Ty2>(): Balance<Ty2>
25MoveLoc[2](Arg2: u64)
26MoveLoc[5](Arg5: &TxContext)
27Call pool::update_pool_reward_emission<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1>, Balance<Ty2>, u64, &TxContext)
28Ret
}
public update_pool_reward_emission<Ty0, Ty1, Ty2>(Arg0: &Acl, Arg1: &mut Pool<Ty0, Ty1>, Arg2: Balance<Ty2>, Arg3: u64, Arg4: &Clock, Arg5: &Version, Arg6: &TxContext) {
B0:
0MoveLoc[5](Arg5: &Version)
1Call version::assert_supported_version(&Version)
2MoveLoc[0](Arg0: &Acl)
3Call app::get_rewarder_admin(&Acl): address
4CopyLoc[6](Arg6: &TxContext)
5Call tx_context::sender(&TxContext): address
6Eq
7BrFalse(9)
B1:
8Branch(17)
B2:
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10Pop
11MoveLoc[6](Arg6: &TxContext)
12Pop
13MoveLoc[4](Arg4: &Clock)
14Pop
15Call error::not_authorised(): u64
16Abort
B3:
17CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
18MoveLoc[4](Arg4: &Clock)
19Call clock::timestamp_ms(&Clock): u64
20Call utils::to_seconds(u64): u64
21Call pool::update_reward_infos<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64): vector<u128>
22Pop
23MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
24MoveLoc[2](Arg2: Balance<Ty2>)
25MoveLoc[3](Arg3: u64)
26MoveLoc[6](Arg6: &TxContext)
27Call pool::update_pool_reward_emission<Ty0, Ty1, Ty2>(&mut Pool<Ty0, Ty1>, Balance<Ty2>, u64, &TxContext)
28Ret
}
L5: loc0: bool
L6: loc1: SetProtocolFlashLoanFeeRateEvent
B0:
0MoveLoc[3](Arg3: &Version)
1Call version::assert_supported_version(&Version)
2MoveLoc[0](Arg0: &Acl)
3Call app::get_pool_admin(&Acl): address
4CopyLoc[4](Arg4: &TxContext)
5Call tx_context::sender(&TxContext): address
6Eq
7BrFalse(9)
B1:
8Branch(15)
B2:
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10Pop
11MoveLoc[4](Arg4: &TxContext)
12Pop
13Call error::not_authorised(): u64
14Abort
B3:
15CopyLoc[2](Arg2: u64)
16LdU64(0)
17Ge
18BrFalse(24)
B4:
19CopyLoc[2](Arg2: u64)
20LdU64(750000)
21Le
22StLoc[5](loc0: bool)
23Branch(26)
B5:
24LdFalse
25StLoc[5](loc0: bool)
B6:
26MoveLoc[5](loc0: bool)
27BrFalse(29)
B7:
28Branch(35)
B8:
29MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
30Pop
31MoveLoc[4](Arg4: &TxContext)
32Pop
33Call error::invalid_protocol_fee(): u64
34Abort
B9:
35MoveLoc[4](Arg4: &TxContext)
36Call tx_context::sender(&TxContext): address
37CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
38FreezeRef
39Call object::id<Pool<Ty0, Ty1>>(&Pool<Ty0, Ty1>): ID
40CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
41FreezeRef
42Call pool::protocol_flash_loan_fee_share<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64
43CopyLoc[2](Arg2: u64)
44Pack[2](SetProtocolFlashLoanFeeRateEvent)
45StLoc[6](loc1: SetProtocolFlashLoanFeeRateEvent)
46MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
47MoveLoc[2](Arg2: u64)
48Call pool::set_protocol_flash_loan_fee_share<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64)
49MoveLoc[6](loc1: SetProtocolFlashLoanFeeRateEvent)
50Call event::emit<SetProtocolFlashLoanFeeRateEvent>(SetProtocolFlashLoanFeeRateEvent)
51Ret
}
L5: loc0: bool
L6: loc1: SetProtocolSwapFeeRateEvent
B0:
0MoveLoc[3](Arg3: &Version)
1Call version::assert_supported_version(&Version)
2MoveLoc[0](Arg0: &Acl)
3Call app::get_pool_admin(&Acl): address
4CopyLoc[4](Arg4: &TxContext)
5Call tx_context::sender(&TxContext): address
6Eq
7BrFalse(9)
B1:
8Branch(15)
B2:
9MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
10Pop
11MoveLoc[4](Arg4: &TxContext)
12Pop
13Call error::not_authorised(): u64
14Abort
B3:
15CopyLoc[2](Arg2: u64)
16LdU64(0)
17Ge
18BrFalse(24)
B4:
19CopyLoc[2](Arg2: u64)
20LdU64(750000)
21Le
22StLoc[5](loc0: bool)
23Branch(26)
B5:
24LdFalse
25StLoc[5](loc0: bool)
B6:
26MoveLoc[5](loc0: bool)
27BrFalse(29)
B7:
28Branch(35)
B8:
29MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
30Pop
31MoveLoc[4](Arg4: &TxContext)
32Pop
33Call error::invalid_protocol_fee(): u64
34Abort
B9:
35MoveLoc[4](Arg4: &TxContext)
36Call tx_context::sender(&TxContext): address
37CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
38FreezeRef
39Call object::id<Pool<Ty0, Ty1>>(&Pool<Ty0, Ty1>): ID
40CopyLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
41FreezeRef
42Call pool::protocol_flash_loan_fee_share<Ty0, Ty1>(&Pool<Ty0, Ty1>): u64
43CopyLoc[2](Arg2: u64)
44Pack[1](SetProtocolSwapFeeRateEvent)
45StLoc[6](loc1: SetProtocolSwapFeeRateEvent)
46MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
47MoveLoc[2](Arg2: u64)
48Call pool::set_protocol_fee_share<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64)
49MoveLoc[6](loc1: SetProtocolSwapFeeRateEvent)
50Call event::emit<SetProtocolSwapFeeRateEvent>(SetProtocolSwapFeeRateEvent)
51Ret
}
public increase_observation_cardinality_next<Ty0, Ty1>(Arg0: &Acl, Arg1: &mut Pool<Ty0, Ty1>, Arg2: u64, Arg3: &TxContext) {
B0:
0MoveLoc[0](Arg0: &Acl)
1Call app::get_pool_admin(&Acl): address
2CopyLoc[3](Arg3: &TxContext)
3Call tx_context::sender(&TxContext): address
4Eq
5BrFalse(7)
B1:
6Branch(13)
B2:
7MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
8Pop
9MoveLoc[3](Arg3: &TxContext)
10Pop
11Call error::not_authorised(): u64
12Abort
B3:
13MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
14MoveLoc[2](Arg2: u64)
15MoveLoc[3](Arg3: &TxContext)
16Call pool::increase_observation_cardinality_next<Ty0, Ty1>(&mut Pool<Ty0, Ty1>, u64, &TxContext)
17Ret
}
public toggle_trading<Ty0, Ty1>(Arg0: &AdminCap, Arg1: &mut Pool<Ty0, Ty1>, Arg2: bool, Arg3: &TxContext) {
B0:
0MoveLoc[0](Arg0: &AdminCap)
1MoveLoc[1](Arg1: &mut Pool<Ty0, Ty1>)
2MoveLoc[2](Arg2: bool)
3Call pool::toggle_trading<Ty0, Ty1>(&AdminCap, &mut Pool<Ty0, Ty1>, bool)
4Ret
}
}