config
Module0x25eb…e5e3
- Move path
- 0x1eab…b2fb::config
- Functions
- 3231 public, 0 entry
- Structs
- 14
- Friend modules
- None
config
Bytecode874 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module 1eabed72c53feb3805120a081dc15963c204dc8d091542592abaf7a35689b2fb.config {
use 1eabed72c53feb3805120a081dc15963c204dc8d091542592abaf7a35689b2fb::acl;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::event;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
struct AdminCap has store, key {
id: UID
}
struct ProtocolFeeClaimCap has store, key {
id: UID
}
struct FeeTier has copy, drop, store {
tick_spacing: u32,
fee_rate: u64
}
struct GlobalConfig has store, key {
id: UID,
protocol_fee_rate: u64,
fee_tiers: VecMap<u32, FeeTier>,
acl: ACL,
package_version: u64
}
struct InitConfigEvent has copy, drop {
admin_cap_id: ID,
global_config_id: ID
}
struct UpdateFeeRateEvent has copy, drop {
old_fee_rate: u64,
new_fee_rate: u64
}
struct AddFeeTierEvent has copy, drop {
tick_spacing: u32,
fee_rate: u64
}
struct UpdateFeeTierEvent has copy, drop {
tick_spacing: u32,
old_fee_rate: u64,
new_fee_rate: u64
}
struct DeleteFeeTierEvent has copy, drop {
tick_spacing: u32,
fee_rate: u64
}
struct SetRolesEvent has copy, drop {
member: address,
roles: u128
}
struct AddRoleEvent has copy, drop {
member: address,
role: u8
}
struct RemoveRoleEvent has copy, drop {
member: address,
role: u8
}
struct RemoveMemberEvent has copy, drop {
member: address
}
struct SetPackageVersion has copy, drop {
new_version: u64,
old_version: u64
}
init(Arg0: &mut TxContext) {
L1: loc0: AdminCap
L2: loc1: ID
L3: loc2: GlobalConfig
L4: loc3: ID
L5: loc4: u128
L6: loc5: address
B0:
0CopyLoc[0](Arg0: &mut TxContext)
1Call object::new(&mut TxContext): UID
2LdConst[2](u64: 2000)
3Call vec_map::empty<u32, FeeTier>(): VecMap<u32, FeeTier>
4CopyLoc[0](Arg0: &mut TxContext)
5Call acl::new(&mut TxContext): ACL
6LdU64(1)
7Pack[3](GlobalConfig)
8CopyLoc[0](Arg0: &mut TxContext)
9Call object::new(&mut TxContext): UID
10Pack[0](AdminCap)
11StLoc[1](loc0: AdminCap)
12StLoc[3](loc2: GlobalConfig)
13ImmBorrowLoc[3](loc2: GlobalConfig)
14Call object::id<GlobalConfig>(&GlobalConfig): ID
15ImmBorrowLoc[1](loc0: AdminCap)
16Call object::id<AdminCap>(&AdminCap): ID
17StLoc[2](loc1: ID)
18StLoc[4](loc3: ID)
19CopyLoc[0](Arg0: &mut TxContext)
20FreezeRef
21Call tx_context::sender(&TxContext): address
22StLoc[6](loc5: address)
23LdU128(0)
24LdU128(1)
25LdConst[5](u8: 0)
26Shl
27BitOr
28LdU128(1)
29LdConst[6](u8: 1)
30Shl
31BitOr
32LdU128(1)
33LdConst[9](u8: 4)
34Shl
35BitOr
36LdU128(1)
37LdConst[8](u8: 3)
38Shl
39BitOr
40StLoc[5](loc4: u128)
41ImmBorrowLoc[1](loc0: AdminCap)
42MutBorrowLoc[3](loc2: GlobalConfig)
43CopyLoc[6](loc5: address)
44MoveLoc[5](loc4: u128)
45Call set_roles(&AdminCap, &mut GlobalConfig, address, u128)
46MutBorrowLoc[3](loc2: GlobalConfig)
47LdConst[3](u32: 200)
48LdConst[4](u64: 10000)
49MoveLoc[0](Arg0: &mut TxContext)
50FreezeRef
51Call add_fee_tier(&mut GlobalConfig, u32, u64, &TxContext)
52MoveLoc[1](loc0: AdminCap)
53MoveLoc[6](loc5: address)
54Call transfer::transfer<AdminCap>(AdminCap, address)
55MoveLoc[3](loc2: GlobalConfig)
56Call transfer::share_object<GlobalConfig>(GlobalConfig)
57MoveLoc[2](loc1: ID)
58MoveLoc[4](loc3: ID)
59Pack[4](InitConfigEvent)
60Call event::emit<InitConfigEvent>(InitConfigEvent)
61Ret
}
public update_protocol_fee_rate(Arg0: &mut GlobalConfig, Arg1: u64, Arg2: &TxContext) {
L3: loc0: u64
B0:
0CopyLoc[1](Arg1: u64)
1LdConst[1](u64: 3000)
2Le
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[2](Arg2: &TxContext)
6Pop
7MoveLoc[0](Arg0: &mut GlobalConfig)
8Pop
9LdConst[20](u64: 4)
10Abort
B3:
11CopyLoc[0](Arg0: &mut GlobalConfig)
12FreezeRef
13Call checked_package_version(&GlobalConfig)
14CopyLoc[0](Arg0: &mut GlobalConfig)
15FreezeRef
16MoveLoc[2](Arg2: &TxContext)
17Call tx_context::sender(&TxContext): address
18Call check_pool_manager_role(&GlobalConfig, address)
19CopyLoc[0](Arg0: &mut GlobalConfig)
20ImmBorrowField[0](GlobalConfig.protocol_fee_rate: u64)
21ReadRef
22StLoc[3](loc0: u64)
23CopyLoc[1](Arg1: u64)
24MoveLoc[0](Arg0: &mut GlobalConfig)
25MutBorrowField[0](GlobalConfig.protocol_fee_rate: u64)
26WriteRef
27MoveLoc[3](loc0: u64)
28MoveLoc[1](Arg1: u64)
29Pack[5](UpdateFeeRateEvent)
30Call event::emit<UpdateFeeRateEvent>(UpdateFeeRateEvent)
31Ret
}
public add_fee_tier(Arg0: &mut GlobalConfig, Arg1: u32, Arg2: u64, Arg3: &TxContext) {
L4: loc0: bool
B0:
0CopyLoc[2](Arg2: u64)
1LdConst[0](u64: 200000)
2Le
3BrFalse(5)
B1:
4Branch(11)
B2:
5MoveLoc[3](Arg3: &TxContext)
6Pop
7MoveLoc[0](Arg0: &mut GlobalConfig)
8Pop
9LdConst[19](u64: 3)
10Abort
B3:
11CopyLoc[0](Arg0: &mut GlobalConfig)
12ImmBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
13ImmBorrowLoc[1](Arg1: u32)
14Call vec_map::contains<u32, FeeTier>(&VecMap<u32, FeeTier>, &u32): bool
15Not
16BrFalse(18)
B4:
17Branch(24)
B5:
18MoveLoc[3](Arg3: &TxContext)
19Pop
20MoveLoc[0](Arg0: &mut GlobalConfig)
21Pop
22LdConst[17](u64: 1)
23Abort
B6:
24CopyLoc[0](Arg0: &mut GlobalConfig)
25FreezeRef
26Call checked_package_version(&GlobalConfig)
27CopyLoc[0](Arg0: &mut GlobalConfig)
28FreezeRef
29MoveLoc[3](Arg3: &TxContext)
30Call tx_context::sender(&TxContext): address
31Call check_fee_tier_manager_role(&GlobalConfig, address)
32CopyLoc[1](Arg1: u32)
33LdU32(0)
34Gt
35BrFalse(41)
B7:
36CopyLoc[1](Arg1: u32)
37LdConst[16](u32: 1000)
38Le
39StLoc[4](loc0: bool)
40Branch(43)
B8:
41LdFalse
42StLoc[4](loc0: bool)
B9:
43MoveLoc[4](loc0: bool)
44BrFalse(46)
B10:
45Branch(50)
B11:
46MoveLoc[0](Arg0: &mut GlobalConfig)
47Pop
48LdConst[27](u64: 11)
49Abort
B12:
50MoveLoc[0](Arg0: &mut GlobalConfig)
51MutBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
52CopyLoc[1](Arg1: u32)
53CopyLoc[1](Arg1: u32)
54CopyLoc[2](Arg2: u64)
55Pack[2](FeeTier)
56Call vec_map::insert<u32, FeeTier>(&mut VecMap<u32, FeeTier>, u32, FeeTier)
57MoveLoc[1](Arg1: u32)
58MoveLoc[2](Arg2: u64)
59Pack[6](AddFeeTierEvent)
60Call event::emit<AddFeeTierEvent>(AddFeeTierEvent)
61Ret
}
public delete_fee_tier(Arg0: &mut GlobalConfig, Arg1: u32, Arg2: &TxContext) {
L3: loc0: FeeTier
B0:
0CopyLoc[0](Arg0: &mut GlobalConfig)
1ImmBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
2ImmBorrowLoc[1](Arg1: u32)
3Call vec_map::contains<u32, FeeTier>(&VecMap<u32, FeeTier>, &u32): bool
4BrFalse(6)
B1:
5Branch(12)
B2:
6MoveLoc[2](Arg2: &TxContext)
7Pop
8MoveLoc[0](Arg0: &mut GlobalConfig)
9Pop
10LdConst[18](u64: 2)
11Abort
B3:
12CopyLoc[0](Arg0: &mut GlobalConfig)
13FreezeRef
14Call checked_package_version(&GlobalConfig)
15CopyLoc[0](Arg0: &mut GlobalConfig)
16FreezeRef
17MoveLoc[2](Arg2: &TxContext)
18Call tx_context::sender(&TxContext): address
19Call check_fee_tier_manager_role(&GlobalConfig, address)
20MoveLoc[0](Arg0: &mut GlobalConfig)
21MutBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
22ImmBorrowLoc[1](Arg1: u32)
23Call vec_map::remove<u32, FeeTier>(&mut VecMap<u32, FeeTier>, &u32): u32 * FeeTier
24StLoc[3](loc0: FeeTier)
25Pop
26MoveLoc[1](Arg1: u32)
27ImmBorrowLoc[3](loc0: FeeTier)
28ImmBorrowField[2](FeeTier.fee_rate: u64)
29ReadRef
30Pack[8](DeleteFeeTierEvent)
31Call event::emit<DeleteFeeTierEvent>(DeleteFeeTierEvent)
32Ret
}
public update_fee_tier(Arg0: &mut GlobalConfig, Arg1: u32, Arg2: u64, Arg3: &TxContext) {
L4: loc0: &mut FeeTier
L5: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut GlobalConfig)
1ImmBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
2ImmBorrowLoc[1](Arg1: u32)
3Call vec_map::contains<u32, FeeTier>(&VecMap<u32, FeeTier>, &u32): bool
4BrFalse(6)
B1:
5Branch(12)
B2:
6MoveLoc[3](Arg3: &TxContext)
7Pop
8MoveLoc[0](Arg0: &mut GlobalConfig)
9Pop
10LdConst[18](u64: 2)
11Abort
B3:
12CopyLoc[2](Arg2: u64)
13LdConst[0](u64: 200000)
14Le
15BrFalse(17)
B4:
16Branch(23)
B5:
17MoveLoc[3](Arg3: &TxContext)
18Pop
19MoveLoc[0](Arg0: &mut GlobalConfig)
20Pop
21LdConst[19](u64: 3)
22Abort
B6:
23CopyLoc[0](Arg0: &mut GlobalConfig)
24FreezeRef
25Call checked_package_version(&GlobalConfig)
26CopyLoc[0](Arg0: &mut GlobalConfig)
27FreezeRef
28MoveLoc[3](Arg3: &TxContext)
29Call tx_context::sender(&TxContext): address
30Call check_fee_tier_manager_role(&GlobalConfig, address)
31MoveLoc[0](Arg0: &mut GlobalConfig)
32MutBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
33ImmBorrowLoc[1](Arg1: u32)
34Call vec_map::get_mut<u32, FeeTier>(&mut VecMap<u32, FeeTier>, &u32): &mut FeeTier
35StLoc[4](loc0: &mut FeeTier)
36CopyLoc[4](loc0: &mut FeeTier)
37ImmBorrowField[2](FeeTier.fee_rate: u64)
38ReadRef
39StLoc[5](loc1: u64)
40CopyLoc[2](Arg2: u64)
41MoveLoc[4](loc0: &mut FeeTier)
42MutBorrowField[2](FeeTier.fee_rate: u64)
43WriteRef
44MoveLoc[1](Arg1: u32)
45MoveLoc[5](loc1: u64)
46MoveLoc[2](Arg2: u64)
47Pack[7](UpdateFeeTierEvent)
48Call event::emit<UpdateFeeTierEvent>(UpdateFeeTierEvent)
49Ret
}
public set_roles(Arg0: &AdminCap, Arg1: &mut GlobalConfig, Arg2: address, Arg3: u128) {
B0:
0CopyLoc[1](Arg1: &mut GlobalConfig)
1FreezeRef
2Call checked_package_version(&GlobalConfig)
3MoveLoc[1](Arg1: &mut GlobalConfig)
4MutBorrowField[3](GlobalConfig.acl: ACL)
5CopyLoc[2](Arg2: address)
6CopyLoc[3](Arg3: u128)
7Call acl::set_roles(&mut ACL, address, u128)
8MoveLoc[2](Arg2: address)
9MoveLoc[3](Arg3: u128)
10Pack[9](SetRolesEvent)
11Call event::emit<SetRolesEvent>(SetRolesEvent)
12Ret
}
public add_role(Arg0: &AdminCap, Arg1: &mut GlobalConfig, Arg2: address, Arg3: u8) {
B0:
0CopyLoc[1](Arg1: &mut GlobalConfig)
1FreezeRef
2Call checked_package_version(&GlobalConfig)
3MoveLoc[1](Arg1: &mut GlobalConfig)
4MutBorrowField[3](GlobalConfig.acl: ACL)
5CopyLoc[2](Arg2: address)
6CopyLoc[3](Arg3: u8)
7Call acl::add_role(&mut ACL, address, u8)
8MoveLoc[2](Arg2: address)
9MoveLoc[3](Arg3: u8)
10Pack[10](AddRoleEvent)
11Call event::emit<AddRoleEvent>(AddRoleEvent)
12Ret
}
public remove_role(Arg0: &AdminCap, Arg1: &mut GlobalConfig, Arg2: address, Arg3: u8) {
B0:
0CopyLoc[1](Arg1: &mut GlobalConfig)
1FreezeRef
2Call checked_package_version(&GlobalConfig)
3MoveLoc[1](Arg1: &mut GlobalConfig)
4MutBorrowField[3](GlobalConfig.acl: ACL)
5CopyLoc[2](Arg2: address)
6CopyLoc[3](Arg3: u8)
7Call acl::remove_role(&mut ACL, address, u8)
8MoveLoc[2](Arg2: address)
9MoveLoc[3](Arg3: u8)
10Pack[11](RemoveRoleEvent)
11Call event::emit<RemoveRoleEvent>(RemoveRoleEvent)
12Ret
}
public remove_member(Arg0: &AdminCap, Arg1: &mut GlobalConfig, Arg2: address) {
B0:
0CopyLoc[1](Arg1: &mut GlobalConfig)
1FreezeRef
2Call checked_package_version(&GlobalConfig)
3MoveLoc[1](Arg1: &mut GlobalConfig)
4MutBorrowField[3](GlobalConfig.acl: ACL)
5CopyLoc[2](Arg2: address)
6Call acl::remove_member(&mut ACL, address)
7MoveLoc[2](Arg2: address)
8Pack[12](RemoveMemberEvent)
9Call event::emit<RemoveMemberEvent>(RemoveMemberEvent)
10Ret
}
public get_members(Arg0: &GlobalConfig): vector<Member> {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2Call acl::get_members(&ACL): vector<Member>
3Ret
}
public get_protocol_fee_rate(Arg0: &GlobalConfig): u64 {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[0](GlobalConfig.protocol_fee_rate: u64)
2ReadRef
3Ret
}
public get_fee_rate(Arg0: u32, Arg1: &GlobalConfig): u64 {
B0:
0CopyLoc[1](Arg1: &GlobalConfig)
1ImmBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
2ImmBorrowLoc[0](Arg0: u32)
3Call vec_map::contains<u32, FeeTier>(&VecMap<u32, FeeTier>, &u32): bool
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[1](Arg1: &GlobalConfig)
7Pop
8LdConst[18](u64: 2)
9Abort
B3:
10MoveLoc[1](Arg1: &GlobalConfig)
11ImmBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
12ImmBorrowLoc[0](Arg0: u32)
13Call vec_map::get<u32, FeeTier>(&VecMap<u32, FeeTier>, &u32): &FeeTier
14ImmBorrowField[2](FeeTier.fee_rate: u64)
15ReadRef
16Ret
}
public max_fee_rate(): u64 {
B0:
0LdConst[0](u64: 200000)
1Ret
}
public max_protocol_fee_rate(): u64 {
B0:
0LdConst[1](u64: 3000)
1Ret
}
public is_pool_manager(Arg0: &GlobalConfig, Arg1: address): bool {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2MoveLoc[1](Arg1: address)
3LdConst[5](u8: 0)
4Call acl::has_role(&ACL, address, u8): bool
5Ret
}
public check_pool_manager_role(Arg0: &GlobalConfig, Arg1: address) {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1MoveLoc[1](Arg1: address)
2Call is_pool_manager(&GlobalConfig, address): bool
3BrFalse(5)
B1:
4Branch(7)
B2:
5LdConst[21](u64: 5)
6Abort
B3:
7Ret
}
public check_fee_tier_manager_role(Arg0: &GlobalConfig, Arg1: address) {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2MoveLoc[1](Arg1: address)
3LdConst[6](u8: 1)
4Call acl::has_role(&ACL, address, u8): bool
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[22](u64: 6)
8Abort
B3:
9Ret
}
public check_protocol_fee_claim_role(Arg0: &GlobalConfig, Arg1: address) {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2MoveLoc[1](Arg1: address)
3LdConst[7](u8: 2)
4Call acl::has_role(&ACL, address, u8): bool
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[25](u64: 9)
8Abort
B3:
9Ret
}
public check_partner_manager_role(Arg0: &GlobalConfig, Arg1: address) {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2MoveLoc[1](Arg1: address)
3LdConst[8](u8: 3)
4Call acl::has_role(&ACL, address, u8): bool
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[23](u64: 7)
8Abort
B3:
9Ret
}
public check_rewarder_manager_role(Arg0: &GlobalConfig, Arg1: address) {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2MoveLoc[1](Arg1: address)
3LdConst[9](u8: 4)
4Call acl::has_role(&ACL, address, u8): bool
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[24](u64: 8)
8Abort
B3:
9Ret
}
public check_emergency_pause_role(Arg0: &GlobalConfig, Arg1: address) {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2MoveLoc[1](Arg1: address)
3LdConst[11](u8: 6)
4Call acl::has_role(&ACL, address, u8): bool
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[29](u64: 13)
8Abort
B3:
9Ret
}
public check_emergency_unpause_role(Arg0: &GlobalConfig, Arg1: address) {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2MoveLoc[1](Arg1: address)
3LdConst[10](u8: 5)
4Call acl::has_role(&ACL, address, u8): bool
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[32](u64: 17)
8Abort
B3:
9Ret
}
public tick_spacing(Arg0: &FeeTier): u32 {
B0:
0MoveLoc[0](Arg0: &FeeTier)
1ImmBorrowField[4](FeeTier.tick_spacing: u32)
2ReadRef
3Ret
}
public fee_rate(Arg0: &FeeTier): u64 {
B0:
0MoveLoc[0](Arg0: &FeeTier)
1ImmBorrowField[2](FeeTier.fee_rate: u64)
2ReadRef
3Ret
}
public protocol_fee_rate(Arg0: &GlobalConfig): u64 {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[0](GlobalConfig.protocol_fee_rate: u64)
2ReadRef
3Ret
}
public fee_tiers(Arg0: &GlobalConfig): &VecMap<u32, FeeTier> {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[1](GlobalConfig.fee_tiers: VecMap<u32, FeeTier>)
2Ret
}
public acl(Arg0: &GlobalConfig): &ACL {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[3](GlobalConfig.acl: ACL)
2Ret
}
public checked_package_version(Arg0: &GlobalConfig) {
B0:
0LdConst[12](u64: 15)
1MoveLoc[0](Arg0: &GlobalConfig)
2ImmBorrowField[5](GlobalConfig.package_version: u64)
3ReadRef
4Ge
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[26](u64: 10)
8Abort
B3:
9Ret
}
public check_emergency_restore_version(Arg0: &GlobalConfig) {
B0:
0MoveLoc[0](Arg0: &GlobalConfig)
1ImmBorrowField[5](GlobalConfig.package_version: u64)
2ReadRef
3LdConst[13](u64: 1844..)
4Eq
5BrFalse(7)
B1:
6Branch(9)
B2:
7LdConst[28](u64: 12)
8Abort
B3:
9Ret
}
public emergency_pause(Arg0: &mut GlobalConfig, Arg1: &TxContext) {
L2: loc0: u64
B0:
0CopyLoc[0](Arg0: &mut GlobalConfig)
1FreezeRef
2MoveLoc[1](Arg1: &TxContext)
3Call tx_context::sender(&TxContext): address
4Call check_emergency_pause_role(&GlobalConfig, address)
5CopyLoc[0](Arg0: &mut GlobalConfig)
6ImmBorrowField[5](GlobalConfig.package_version: u64)
7ReadRef
8StLoc[2](loc0: u64)
9LdConst[14](u64: 9223..)
10CopyLoc[0](Arg0: &mut GlobalConfig)
11MutBorrowField[5](GlobalConfig.package_version: u64)
12WriteRef
13CopyLoc[0](Arg0: &mut GlobalConfig)
14ImmBorrowField[6](GlobalConfig.id: UID)
15LdConst[15](vector<u8>: "eme..)
16Call dynamic_field::exists_with_type<vector<u8>, u64>(&UID, vector<u8>): bool
17Not
18BrFalse(20)
B1:
19Branch(24)
B2:
20MoveLoc[0](Arg0: &mut GlobalConfig)
21Pop
22LdConst[12](u64: 15)
23Abort
B3:
24MoveLoc[0](Arg0: &mut GlobalConfig)
25MutBorrowField[6](GlobalConfig.id: UID)
26LdConst[15](vector<u8>: "eme..)
27MoveLoc[2](loc0: u64)
28Call dynamic_field::add<vector<u8>, u64>(&mut UID, vector<u8>, u64)
29Ret
}
public emergency_unpause(Arg0: &mut GlobalConfig, Arg1: u64, Arg2: &TxContext) {
L3: loc0: bool
L4: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut GlobalConfig)
1FreezeRef
2MoveLoc[2](Arg2: &TxContext)
3Call tx_context::sender(&TxContext): address
4Call check_emergency_unpause_role(&GlobalConfig, address)
5CopyLoc[0](Arg0: &mut GlobalConfig)
6ImmBorrowField[6](GlobalConfig.id: UID)
7LdConst[15](vector<u8>: "eme..)
8Call dynamic_field::exists_with_type<vector<u8>, u64>(&UID, vector<u8>): bool
9BrFalse(11)
B1:
10Branch(15)
B2:
11MoveLoc[0](Arg0: &mut GlobalConfig)
12Pop
13LdConst[30](u64: 14)
14Abort
B3:
15CopyLoc[0](Arg0: &mut GlobalConfig)
16MutBorrowField[6](GlobalConfig.id: UID)
17LdConst[15](vector<u8>: "eme..)
18Call dynamic_field::remove<vector<u8>, u64>(&mut UID, vector<u8>): u64
19StLoc[4](loc1: u64)
20CopyLoc[1](Arg1: u64)
21MoveLoc[4](loc1: u64)
22Ge
23BrFalse(29)
B4:
24CopyLoc[1](Arg1: u64)
25Call package_version(): u64
26Le
27StLoc[3](loc0: bool)
28Branch(31)
B5:
29LdFalse
30StLoc[3](loc0: bool)
B6:
31MoveLoc[3](loc0: bool)
32BrFalse(34)
B7:
33Branch(38)
B8:
34MoveLoc[0](Arg0: &mut GlobalConfig)
35Pop
36LdConst[31](u64: 16)
37Abort
B9:
38MoveLoc[1](Arg1: u64)
39MoveLoc[0](Arg0: &mut GlobalConfig)
40MutBorrowField[5](GlobalConfig.package_version: u64)
41WriteRef
42Ret
}
public update_package_version(Arg0: &AdminCap, Arg1: &mut GlobalConfig, Arg2: u64) {
L3: loc0: bool
L4: loc1: u64
B0:
0CopyLoc[1](Arg1: &mut GlobalConfig)
1ImmBorrowField[5](GlobalConfig.package_version: u64)
2ReadRef
3StLoc[4](loc1: u64)
4CopyLoc[2](Arg2: u64)
5CopyLoc[4](loc1: u64)
6Gt
7BrFalse(13)
B1:
8CopyLoc[2](Arg2: u64)
9LdConst[14](u64: 9223..)
10Lt
11StLoc[3](loc0: bool)
12Branch(15)
B2:
13LdFalse
14StLoc[3](loc0: bool)
B3:
15MoveLoc[3](loc0: bool)
16BrFalse(18)
B4:
17Branch(22)
B5:
18MoveLoc[1](Arg1: &mut GlobalConfig)
19Pop
20LdConst[31](u64: 16)
21Abort
B6:
22CopyLoc[2](Arg2: u64)
23MoveLoc[1](Arg1: &mut GlobalConfig)
24MutBorrowField[5](GlobalConfig.package_version: u64)
25WriteRef
26MoveLoc[2](Arg2: u64)
27MoveLoc[4](loc1: u64)
28Pack[13](SetPackageVersion)
29Call event::emit<SetPackageVersion>(SetPackageVersion)
30Ret
}
public package_version(): u64 {
B0:
0LdConst[12](u64: 15)
1Ret
}
Constants [
0 => u64: 200000
1 => u64: 3000
2 => u64: 2000
3 => u32: 200
4 => u64: 10000
5 => u8: 0
6 => u8: 1
7 => u8: 2
8 => u8: 3
9 => u8: 4
10 => u8: 5
11 => u8: 6
12 => u64: 15
13 => u64: 18446744073709551000
14 => u64: 9223372036854775808
15 => vector<u8>: "emergency_pause_before" // interpreted as UTF8 string
16 => u32: 1000
17 => u64: 1
18 => u64: 2
19 => u64: 3
20 => u64: 4
21 => u64: 5
22 => u64: 6
23 => u64: 7
24 => u64: 8
25 => u64: 9
26 => u64: 10
27 => u64: 11
28 => u64: 12
29 => u64: 13
30 => u64: 14
31 => u64: 16
32 => u64: 17
]
}