init
Module0xa9ac…bf1e
- Move path
- 0xfdc8…ea77::init
- Functions
- 42 public, 1 entry
- Structs
- 2
- Friend modules
- None
init
- active_set12
- apportionment_queue6
- auth5
- blob27
- bls_aggregate16
- committee9
- display4
- encoding1
- epoch_parameters4
- event_blob15
- events22
- extended_field5
- init4
- messages29
- metadata4
- node_metadata10
- pending_values11
- pool_exchange_rate4
- redstuff7
- shared_blob6
- slashing6
- snapshot_blob16
- sort0
- staked_wal12
- staking43
- staking_inner52
- staking_pool42
- storage_accounting14
- storage_node21
- storage_pool43
- storage_resource12
- system44
- system_state_inner42
- upgrade9
- walrus_context4
Bytecode163 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v7
module fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77.init {
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
use 0000000000000000000000000000000000000000000000000000000000000002::address;
use 0000000000000000000000000000000000000000000000000000000000000002::clock;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::display;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::events;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::staking;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::system;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::upgrade;
struct INIT has drop {
dummy_field: bool
}
struct InitCap has store, key {
id: UID,
publisher: Publisher
}
init(Arg0: INIT, Arg1: &mut TxContext) {
L2: loc0: UID
L3: loc1: Publisher
B0:
0CopyLoc[1](Arg1: &mut TxContext)
1Call object::new(&mut TxContext): UID
2StLoc[2](loc0: UID)
3MoveLoc[0](Arg0: INIT)
4CopyLoc[1](Arg1: &mut TxContext)
5Call package::claim<INIT>(INIT, &mut TxContext): Publisher
6StLoc[3](loc1: Publisher)
7MoveLoc[2](loc0: UID)
8MoveLoc[3](loc1: Publisher)
9Pack[1](InitCap)
10MoveLoc[1](Arg1: &mut TxContext)
11FreezeRef
12Call tx_context::sender(&TxContext): address
13Call transfer::transfer<InitCap>(InitCap, address)
14Ret
}
public initialize_walrus(Arg0: InitCap, Arg1: UpgradeCap, Arg2: u64, Arg3: u64, Arg4: u16, Arg5: u32, Arg6: &Clock, Arg7: &mut TxContext): EmergencyUpgradeCap {
L8: loc0: TypeName
L9: loc1: ID
L10: loc2: Publisher
B0:
0MoveLoc[0](Arg0: InitCap)
1Unpack[1](InitCap)
2StLoc[10](loc2: Publisher)
3Call object::delete(UID)
4ImmBorrowLoc[1](Arg1: UpgradeCap)
5Call package::upgrade_package(&UpgradeCap): ID
6StLoc[9](loc1: ID)
7Call type_name::with_defining_ids<InitCap>(): TypeName
8StLoc[8](loc0: TypeName)
9ImmBorrowLoc[8](loc0: TypeName)
10Call type_name::address_string(&TypeName): String
11ImmBorrowLoc[9](loc1: ID)
12Call object::id_to_address(&ID): address
13Call address::to_ascii_string(address): String
14Eq
15BrFalse(17)
B1:
16Branch(23)
B2:
17MoveLoc[7](Arg7: &mut TxContext)
18Pop
19MoveLoc[6](Arg6: &Clock)
20Pop
21LdConst[1](u64: 1)
22Abort
B3:
23MoveLoc[5](Arg5: u32)
24CopyLoc[9](loc1: ID)
25CopyLoc[7](Arg7: &mut TxContext)
26Call system::create_empty(u32, ID, &mut TxContext)
27MoveLoc[2](Arg2: u64)
28MoveLoc[3](Arg3: u64)
29MoveLoc[4](Arg4: u16)
30MoveLoc[9](loc1: ID)
31MoveLoc[6](Arg6: &Clock)
32CopyLoc[7](Arg7: &mut TxContext)
33Call staking::create(u64, u64, u16, ID, &Clock, &mut TxContext)
34MoveLoc[10](loc2: Publisher)
35CopyLoc[7](Arg7: &mut TxContext)
36Call display::create(Publisher, &mut TxContext)
37MoveLoc[1](Arg1: UpgradeCap)
38MoveLoc[7](Arg7: &mut TxContext)
39Call upgrade::new(UpgradeCap, &mut TxContext): EmergencyUpgradeCap
40Ret
}
public migrate(Arg0: &mut Staking, Arg1: &mut System) {
B0:
0LdConst[2](u64: 2)
1Abort
}
entry migrate_v2(Arg0: &mut Staking, Arg1: &mut System, Arg2: &mut TxContext) {
B0:
0CopyLoc[0](Arg0: &mut Staking)
1Call staking::migrate(&mut Staking)
2CopyLoc[1](Arg1: &mut System)
3Call system::migrate(&mut System)
4CopyLoc[0](Arg0: &mut Staking)
5FreezeRef
6Call staking::package_id(&Staking): ID
7CopyLoc[1](Arg1: &mut System)
8FreezeRef
9Call system::package_id(&System): ID
10Eq
11BrFalse(13)
B1:
12Branch(19)
B2:
13MoveLoc[1](Arg1: &mut System)
14Pop
15MoveLoc[0](Arg0: &mut Staking)
16Pop
17LdConst[0](u64: 0)
18Abort
B3:
19CopyLoc[0](Arg0: &mut Staking)
20FreezeRef
21Call staking::version(&Staking): u64
22MoveLoc[1](Arg1: &mut System)
23FreezeRef
24Call system::version(&System): u64
25Eq
26BrFalse(28)
B4:
27Branch(32)
B5:
28MoveLoc[0](Arg0: &mut Staking)
29Pop
30LdConst[0](u64: 0)
31Abort
B6:
32CopyLoc[0](Arg0: &mut Staking)
33FreezeRef
34Call staking::epoch(&Staking): u32
35CopyLoc[0](Arg0: &mut Staking)
36FreezeRef
37Call staking::package_id(&Staking): ID
38MoveLoc[0](Arg0: &mut Staking)
39FreezeRef
40Call staking::version(&Staking): u64
41Call events::emit_contract_upgraded(u32, ID, u64)
42Ret
}
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
]
}