protocol_fee
Module0x7713…9f9d
- Move path
- 0xaec9…5faa::protocol_fee
- Functions
- 108 public, 0 entry
- Structs
- 1
- Friend modules
- router
protocol_fee
Bytecode305 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module aec914fe1ed3be0aa3fc3cc610cccba02ace491ab45589035f657e1097c75faa.protocol_fee {
use aec914fe1ed3be0aa3fc3cc610cccba02ace491ab45589035f657e1097c75faa::admin;
use aec914fe1ed3be0aa3fc3cc610cccba02ace491ab45589035f657e1097c75faa::treasury;
use aec914fe1ed3be0aa3fc3cc610cccba02ace491ab45589035f657e1097c75faa::version;
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::types;
struct ProtocolFeeConfig has store, key {
id: UID,
version: u64,
dev_wallet: address,
total_protocol_fee_percent_base_18: u64,
treasury_fee_percent_base_18: u64,
dev_wallet_fee_percent_base_18: u64,
referee_discount: u64
}
check_version(Arg0: &ProtocolFeeConfig) {
B0:
0MoveLoc[0](Arg0: &ProtocolFeeConfig)
1ImmBorrowField[0](ProtocolFeeConfig.version: u64)
2ReadRef
3Call version::check_version(u64)
4Ret
}
public change_fee_percentages(Arg0: &AdminCap, Arg1: &mut ProtocolFeeConfig, Arg2: &mut Option<u64>, Arg3: &mut Option<u64>, Arg4: &mut Option<u64>, Arg5: &mut Option<u64>, Arg6: &mut Option<u64>) {
B0:
0CopyLoc[2](Arg2: &mut Option<u64>)
1FreezeRef
2Call option::is_some<u64>(&Option<u64>): bool
3BrFalse(10)
B1:
4MoveLoc[2](Arg2: &mut Option<u64>)
5Call option::extract<u64>(&mut Option<u64>): u64
6CopyLoc[1](Arg1: &mut ProtocolFeeConfig)
7MutBorrowField[0](ProtocolFeeConfig.version: u64)
8WriteRef
9Branch(12)
B2:
10MoveLoc[2](Arg2: &mut Option<u64>)
11Pop
B3:
12CopyLoc[3](Arg3: &mut Option<u64>)
13FreezeRef
14Call option::is_some<u64>(&Option<u64>): bool
15BrFalse(22)
B4:
16MoveLoc[3](Arg3: &mut Option<u64>)
17Call option::extract<u64>(&mut Option<u64>): u64
18CopyLoc[1](Arg1: &mut ProtocolFeeConfig)
19MutBorrowField[1](ProtocolFeeConfig.total_protocol_fee_percent_base_18: u64)
20WriteRef
21Branch(24)
B5:
22MoveLoc[3](Arg3: &mut Option<u64>)
23Pop
B6:
24CopyLoc[4](Arg4: &mut Option<u64>)
25FreezeRef
26Call option::is_some<u64>(&Option<u64>): bool
27BrFalse(34)
B7:
28MoveLoc[4](Arg4: &mut Option<u64>)
29Call option::extract<u64>(&mut Option<u64>): u64
30CopyLoc[1](Arg1: &mut ProtocolFeeConfig)
31MutBorrowField[2](ProtocolFeeConfig.treasury_fee_percent_base_18: u64)
32WriteRef
33Branch(36)
B8:
34MoveLoc[4](Arg4: &mut Option<u64>)
35Pop
B9:
36CopyLoc[5](Arg5: &mut Option<u64>)
37FreezeRef
38Call option::is_some<u64>(&Option<u64>): bool
39BrFalse(46)
B10:
40MoveLoc[5](Arg5: &mut Option<u64>)
41Call option::extract<u64>(&mut Option<u64>): u64
42CopyLoc[1](Arg1: &mut ProtocolFeeConfig)
43MutBorrowField[3](ProtocolFeeConfig.dev_wallet_fee_percent_base_18: u64)
44WriteRef
45Branch(48)
B11:
46MoveLoc[5](Arg5: &mut Option<u64>)
47Pop
B12:
48CopyLoc[1](Arg1: &mut ProtocolFeeConfig)
49ImmBorrowField[2](ProtocolFeeConfig.treasury_fee_percent_base_18: u64)
50ReadRef
51CopyLoc[1](Arg1: &mut ProtocolFeeConfig)
52ImmBorrowField[3](ProtocolFeeConfig.dev_wallet_fee_percent_base_18: u64)
53ReadRef
54Add
55LdU64(1000000000000000000)
56Eq
57BrFalse(59)
B13:
58Branch(65)
B14:
59MoveLoc[6](Arg6: &mut Option<u64>)
60Pop
61MoveLoc[1](Arg1: &mut ProtocolFeeConfig)
62Pop
63LdU64(3)
64Abort
B15:
65CopyLoc[6](Arg6: &mut Option<u64>)
66FreezeRef
67Call option::is_some<u64>(&Option<u64>): bool
68BrFalse(75)
B16:
69MoveLoc[6](Arg6: &mut Option<u64>)
70Call option::extract<u64>(&mut Option<u64>): u64
71MoveLoc[1](Arg1: &mut ProtocolFeeConfig)
72MutBorrowField[4](ProtocolFeeConfig.referee_discount: u64)
73WriteRef
74Branch(79)
B17:
75MoveLoc[6](Arg6: &mut Option<u64>)
76Pop
77MoveLoc[1](Arg1: &mut ProtocolFeeConfig)
78Pop
B18:
79Ret
}
public(friend) create_config<Ty0: drop>(Arg0: &Ty0, Arg1: &mut TxContext): ProtocolFeeConfig {
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(1)
7Abort
B3:
8MoveLoc[1](Arg1: &mut TxContext)
9Call object::new(&mut TxContext): UID
10Call version::current_version(): u64
11LdConst[0](address: 0x00..)
12LdU64(500000000000000)
13LdU64(1000000000000000000)
14LdU64(0)
15LdU64(0)
16Pack[0](ProtocolFeeConfig)
17Ret
}
public dev_wallet_fee(Arg0: &ProtocolFeeConfig): u64 {
B0:
0MoveLoc[0](Arg0: &ProtocolFeeConfig)
1ImmBorrowField[3](ProtocolFeeConfig.dev_wallet_fee_percent_base_18: u64)
2ReadRef
3Ret
}
public distribute_protocol_fees<Ty0>(Arg0: &ProtocolFeeConfig, Arg1: &mut Treasury, Arg2: &mut Coin<Ty0>, Arg3: &mut TxContext) {
L4: loc0: u64
L5: loc1: u64
L6: loc2: u64
B0:
0CopyLoc[0](Arg0: &ProtocolFeeConfig)
1Call check_version(&ProtocolFeeConfig)
2CopyLoc[0](Arg0: &ProtocolFeeConfig)
3ImmBorrowField[1](ProtocolFeeConfig.total_protocol_fee_percent_base_18: u64)
4ReadRef
5LdU64(0)
6Eq
7BrFalse(17)
B1:
8MoveLoc[1](Arg1: &mut Treasury)
9Pop
10MoveLoc[0](Arg0: &ProtocolFeeConfig)
11Pop
12MoveLoc[3](Arg3: &mut TxContext)
13Pop
14MoveLoc[2](Arg2: &mut Coin<Ty0>)
15Pop
16Ret
B2:
17CopyLoc[2](Arg2: &mut Coin<Ty0>)
18FreezeRef
19Call coin::value<Ty0>(&Coin<Ty0>): u64
20CopyLoc[0](Arg0: &ProtocolFeeConfig)
21ImmBorrowField[1](ProtocolFeeConfig.total_protocol_fee_percent_base_18: u64)
22ReadRef
23Call take_percent_base_18(u64, u64): u64
24StLoc[5](loc1: u64)
25CopyLoc[5](loc1: u64)
26CopyLoc[0](Arg0: &ProtocolFeeConfig)
27ImmBorrowField[2](ProtocolFeeConfig.treasury_fee_percent_base_18: u64)
28ReadRef
29Call take_percent_base_18(u64, u64): u64
30StLoc[6](loc2: u64)
31CopyLoc[6](loc2: u64)
32LdU64(0)
33Gt
34BrFalse(42)
B3:
35MoveLoc[1](Arg1: &mut Treasury)
36CopyLoc[2](Arg2: &mut Coin<Ty0>)
37MoveLoc[6](loc2: u64)
38CopyLoc[3](Arg3: &mut TxContext)
39Call coin::split<Ty0>(&mut Coin<Ty0>, u64, &mut TxContext): Coin<Ty0>
40Call treasury::deposit<Ty0>(&mut Treasury, Coin<Ty0>)
41Branch(44)
B4:
42MoveLoc[1](Arg1: &mut Treasury)
43Pop
B5:
44MoveLoc[5](loc1: u64)
45CopyLoc[0](Arg0: &ProtocolFeeConfig)
46ImmBorrowField[3](ProtocolFeeConfig.dev_wallet_fee_percent_base_18: u64)
47ReadRef
48Call take_percent_base_18(u64, u64): u64
49StLoc[4](loc0: u64)
50CopyLoc[4](loc0: u64)
51LdU64(0)
52Gt
53BrFalse(63)
B6:
54MoveLoc[2](Arg2: &mut Coin<Ty0>)
55MoveLoc[4](loc0: u64)
56MoveLoc[3](Arg3: &mut TxContext)
57Call coin::split<Ty0>(&mut Coin<Ty0>, u64, &mut TxContext): Coin<Ty0>
58MoveLoc[0](Arg0: &ProtocolFeeConfig)
59ImmBorrowField[5](ProtocolFeeConfig.dev_wallet: address)
60ReadRef
61Call transfer::public_transfer<Coin<Ty0>>(Coin<Ty0>, address)
62Branch(69)
B7:
63MoveLoc[0](Arg0: &ProtocolFeeConfig)
64Pop
65MoveLoc[3](Arg3: &mut TxContext)
66Pop
67MoveLoc[2](Arg2: &mut Coin<Ty0>)
68Pop
B8:
69Ret
}
public referee_discount(Arg0: &ProtocolFeeConfig): u64 {
B0:
0MoveLoc[0](Arg0: &ProtocolFeeConfig)
1ImmBorrowField[4](ProtocolFeeConfig.referee_discount: u64)
2ReadRef
3Ret
}
public take_percent_base_18(Arg0: u64, Arg1: u64): u64 {
B0:
0MoveLoc[0](Arg0: u64)
1CastU128
2MoveLoc[1](Arg1: u64)
3CastU128
4Mul
5LdU128(1000000000000000000)
6Div
7CastU64
8Ret
}
public total_protocol_fee(Arg0: &ProtocolFeeConfig): u64 {
B0:
0MoveLoc[0](Arg0: &ProtocolFeeConfig)
1ImmBorrowField[1](ProtocolFeeConfig.total_protocol_fee_percent_base_18: u64)
2ReadRef
3Ret
}
public treasury_fee(Arg0: &ProtocolFeeConfig): u64 {
B0:
0MoveLoc[0](Arg0: &ProtocolFeeConfig)
1ImmBorrowField[2](ProtocolFeeConfig.treasury_fee_percent_base_18: u64)
2ReadRef
3Ret
}
public update_dev_wallet_address(Arg0: &AdminCap, Arg1: &mut ProtocolFeeConfig, Arg2: address) {
B0:
0CopyLoc[1](Arg1: &mut ProtocolFeeConfig)
1FreezeRef
2Call check_version(&ProtocolFeeConfig)
3MoveLoc[2](Arg2: address)
4MoveLoc[1](Arg1: &mut ProtocolFeeConfig)
5MutBorrowField[5](ProtocolFeeConfig.dev_wallet: address)
6WriteRef
7Ret
}
Constants [
0 => address: 0x0000060c049b5aea93660573019b2ed5d657245212a998e030981589726d11fe
]
}