Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

system

Module0xfa65…814e
Move path
0xfdc8…ea77::system
Functions
2821 public, 0 entry
Structs
1
Friend modules
initstakingupgrade
system

Bytecode690 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v7
module fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77.system {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
use 0000000000000000000000000000000000000000000000000000000000000002::coin;
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 0000000000000000000000000000000000000000000000000000000000000002::vec_map;
use 356a26eb9e012a68958082340d4c4116e7f55615cf27affcff209cf0ae544f59::wal;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::blob;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::bls_aggregate;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::epoch_parameters;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::snapshot_blob;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::storage_accounting;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::storage_node;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::storage_pool;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::storage_resource;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::system_state_inner;
 
struct SnapshotStateKey has copy, drop, store {
dummy_field: bool
}
 
struct System has key {
id: UID,
version: u64,
package_id: ID,
new_package_id: Option<ID>
}
 
public(friend) create_empty(Arg0: u32, Arg1: ID, Arg2: &mut TxContext) {
L3: loc0: System
L4: loc1: SystemStateInnerV1
B0:
0CopyLoc[2](Arg2: &mut TxContext)
1Call object::new(&mut TxContext): UID
2LdConst[3](u64: 4)
3MoveLoc[1](Arg1: ID)
4Call option::none<ID>(): Option<ID>
5Pack[1](System)
6StLoc[3](loc0: System)
7MoveLoc[0](Arg0: u32)
8MoveLoc[2](Arg2: &mut TxContext)
9Call system_state_inner::create_empty(u32, &mut TxContext): SystemStateInnerV1
10StLoc[4](loc1: SystemStateInnerV1)
11MutBorrowLoc[3](loc0: System)
12MutBorrowField[0](System.id: UID)
13LdConst[3](u64: 4)
14MoveLoc[4](loc1: SystemStateInnerV1)
15Call dynamic_field::add<u64, SystemStateInnerV1>(&mut UID, u64, SystemStateInnerV1)
16MutBorrowLoc[3](loc0: System)
17MutBorrowField[0](System.id: UID)
18LdFalse
19Pack[0](SnapshotStateKey)
20Call snapshot_blob::create_with_empty_state(): SnapshotBlobCertificationState
21Call dynamic_field::add<SnapshotStateKey, SnapshotBlobCertificationState>(&mut UID, SnapshotStateKey, SnapshotBlobCertificationState)
22MoveLoc[3](loc0: System)
23Call transfer::share_object<System>(System)
24Ret
}
 
public(friend) set_storage_price(Arg0: &mut System, Arg1: u64) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: u64)
3Call system_state_inner::set_storage_price(&mut SystemStateInnerV1, u64)
4Ret
}
 
public(friend) set_write_price(Arg0: &mut System, Arg1: u64) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: u64)
3Call system_state_inner::set_write_price(&mut SystemStateInnerV1, u64)
4Ret
}
 
public(friend) advance_epoch(Arg0: &mut System, Arg1: BlsCommittee, Arg2: &EpochParams): VecMap<ID, Balance<WAL>> {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: BlsCommittee)
3MoveLoc[2](Arg2: &EpochParams)
4Call system_state_inner::advance_epoch(&mut SystemStateInnerV1, BlsCommittee, &EpochParams): VecMap<ID, Balance<WAL>>
5Ret
}
 
public(friend) extract_burn_balance(Arg0: &mut System): Balance<WAL> {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2Call system_state_inner::extract_burn_balance(&mut SystemStateInnerV1): Balance<WAL>
3Ret
}
 
public invalidate_blob_id(Arg0: &System, Arg1: vector<u8>, Arg2: vector<u8>, Arg3: vector<u8>): u256 {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: vector<u8>)
3MoveLoc[2](Arg2: vector<u8>)
4MoveLoc[3](Arg3: vector<u8>)
5Call system_state_inner::invalidate_blob_id(&SystemStateInnerV1, vector<u8>, vector<u8>, vector<u8>): u256
6Ret
}
 
public certify_event_blob(Arg0: &mut System, Arg1: &mut StorageNodeCap, Arg2: u256, Arg3: u256, Arg4: u64, Arg5: u8, Arg6: u64, Arg7: u32, Arg8: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StorageNodeCap)
3MoveLoc[2](Arg2: u256)
4MoveLoc[3](Arg3: u256)
5MoveLoc[4](Arg4: u64)
6MoveLoc[5](Arg5: u8)
7MoveLoc[6](Arg6: u64)
8MoveLoc[7](Arg7: u32)
9MoveLoc[8](Arg8: &mut TxContext)
10Call system_state_inner::certify_event_blob(&mut SystemStateInnerV1, &mut StorageNodeCap, u256, u256, u64, u8, u64, u32, &mut TxContext)
11Ret
}
 
public certify_snapshot_blob(Arg0: &mut System, Arg1: &StorageNodeCap, Arg2: u256, Arg3: u256, Arg4: u64, Arg5: u8, Arg6: u32, Arg7: &mut TxContext) {
L8: loc0: SnapshotBlobCertificationState
B0:
0CopyLoc[0](Arg0: &mut System)
1ImmBorrowField[1](System.version: u64)
2ReadRef
3LdConst[3](u64: 4)
4Eq
5BrFalse(7)
B1:
6Branch(15)
B2:
7MoveLoc[0](Arg0: &mut System)
8Pop
9MoveLoc[7](Arg7: &mut TxContext)
10Pop
11MoveLoc[1](Arg1: &StorageNodeCap)
12Pop
13LdConst[1](u64: 1)
14Abort
B3:
15CopyLoc[0](Arg0: &mut System)
16MutBorrowField[0](System.id: UID)
17LdFalse
18Pack[0](SnapshotStateKey)
19Call dynamic_field::remove<SnapshotStateKey, SnapshotBlobCertificationState>(&mut UID, SnapshotStateKey): SnapshotBlobCertificationState
20StLoc[8](loc0: SnapshotBlobCertificationState)
21CopyLoc[0](Arg0: &mut System)
22Call inner_mut(&mut System): &mut SystemStateInnerV1
23MutBorrowLoc[8](loc0: SnapshotBlobCertificationState)
24MoveLoc[1](Arg1: &StorageNodeCap)
25MoveLoc[2](Arg2: u256)
26MoveLoc[3](Arg3: u256)
27MoveLoc[4](Arg4: u64)
28MoveLoc[5](Arg5: u8)
29MoveLoc[6](Arg6: u32)
30MoveLoc[7](Arg7: &mut TxContext)
31Call system_state_inner::certify_snapshot_blob(&mut SystemStateInnerV1, &mut SnapshotBlobCertificationState, &StorageNodeCap, u256, u256, u64, u8, u32, &mut TxContext)
32MoveLoc[0](Arg0: &mut System)
33MutBorrowField[0](System.id: UID)
34LdFalse
35Pack[0](SnapshotStateKey)
36MoveLoc[8](loc0: SnapshotBlobCertificationState)
37Call dynamic_field::add<SnapshotStateKey, SnapshotBlobCertificationState>(&mut UID, SnapshotStateKey, SnapshotBlobCertificationState)
38Ret
}
 
public(friend) snapshot_blob_certification_state(Arg0: &System): &SnapshotBlobCertificationState {
B0:
0CopyLoc[0](Arg0: &System)
1ImmBorrowField[1](System.version: u64)
2ReadRef
3LdConst[3](u64: 4)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &System)
8Pop
9LdConst[1](u64: 1)
10Abort
B3:
11MoveLoc[0](Arg0: &System)
12ImmBorrowField[0](System.id: UID)
13LdFalse
14Pack[0](SnapshotStateKey)
15Call dynamic_field::borrow<SnapshotStateKey, SnapshotBlobCertificationState>(&UID, SnapshotStateKey): &SnapshotBlobCertificationState
16Ret
}
 
public reserve_space(Arg0: &mut System, Arg1: u64, Arg2: u32, Arg3: &mut Coin<WAL>, Arg4: &mut TxContext): Storage {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: u64)
3MoveLoc[2](Arg2: u32)
4MoveLoc[3](Arg3: &mut Coin<WAL>)
5MoveLoc[4](Arg4: &mut TxContext)
6Call system_state_inner::reserve_space(&mut SystemStateInnerV1, u64, u32, &mut Coin<WAL>, &mut TxContext): Storage
7Ret
}
 
public reserve_space_for_epochs(Arg0: &mut System, Arg1: u64, Arg2: u32, Arg3: u32, Arg4: &mut Coin<WAL>, Arg5: &mut TxContext): Storage {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: u64)
3MoveLoc[2](Arg2: u32)
4MoveLoc[3](Arg3: u32)
5MoveLoc[4](Arg4: &mut Coin<WAL>)
6MoveLoc[5](Arg5: &mut TxContext)
7Call system_state_inner::reserve_space_for_epochs(&mut SystemStateInnerV1, u64, u32, u32, &mut Coin<WAL>, &mut TxContext): Storage
8Ret
}
 
public register_blob(Arg0: &mut System, Arg1: Storage, Arg2: u256, Arg3: u256, Arg4: u64, Arg5: u8, Arg6: bool, Arg7: &mut Coin<WAL>, Arg8: &mut TxContext): Blob {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: Storage)
3MoveLoc[2](Arg2: u256)
4MoveLoc[3](Arg3: u256)
5MoveLoc[4](Arg4: u64)
6MoveLoc[5](Arg5: u8)
7MoveLoc[6](Arg6: bool)
8MoveLoc[7](Arg7: &mut Coin<WAL>)
9MoveLoc[8](Arg8: &mut TxContext)
10Call system_state_inner::register_blob(&mut SystemStateInnerV1, Storage, u256, u256, u64, u8, bool, &mut Coin<WAL>, &mut TxContext): Blob
11Ret
}
 
public certify_blob(Arg0: &System, Arg1: &mut Blob, Arg2: vector<u8>, Arg3: vector<u8>, Arg4: vector<u8>) {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: &mut Blob)
3MoveLoc[2](Arg2: vector<u8>)
4MoveLoc[3](Arg3: vector<u8>)
5MoveLoc[4](Arg4: vector<u8>)
6Call system_state_inner::certify_blob(&SystemStateInnerV1, &mut Blob, vector<u8>, vector<u8>, vector<u8>)
7Ret
}
 
public delete_blob(Arg0: &System, Arg1: Blob): Storage {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: Blob)
3Call system_state_inner::delete_blob(&SystemStateInnerV1, Blob): Storage
4Ret
}
 
public extend_blob_with_resource(Arg0: &System, Arg1: &mut Blob, Arg2: Storage) {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: &mut Blob)
3MoveLoc[2](Arg2: Storage)
4Call system_state_inner::extend_blob_with_resource(&SystemStateInnerV1, &mut Blob, Storage)
5Ret
}
 
public extend_blob(Arg0: &mut System, Arg1: &mut Blob, Arg2: u32, Arg3: &mut Coin<WAL>) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: &mut Blob)
3MoveLoc[2](Arg2: u32)
4MoveLoc[3](Arg3: &mut Coin<WAL>)
5Call system_state_inner::extend_blob(&mut SystemStateInnerV1, &mut Blob, u32, &mut Coin<WAL>)
6Ret
}
 
public create_storage_pool(Arg0: &mut System, Arg1: u64, Arg2: u32, Arg3: &mut Coin<WAL>, Arg4: &mut TxContext): StoragePool {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: u64)
3MoveLoc[2](Arg2: u32)
4MoveLoc[3](Arg3: &mut Coin<WAL>)
5MoveLoc[4](Arg4: &mut TxContext)
6Call system_state_inner::create_storage_pool(&mut SystemStateInnerV1, u64, u32, &mut Coin<WAL>, &mut TxContext): StoragePool
7Ret
}
 
public create_storage_pool_with_storage(Arg0: &System, Arg1: Storage, Arg2: &mut TxContext): StoragePool {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: Storage)
3MoveLoc[2](Arg2: &mut TxContext)
4Call system_state_inner::create_storage_pool_with_storage(&SystemStateInnerV1, Storage, &mut TxContext): StoragePool
5Ret
}
 
public register_pooled_blob(Arg0: &mut System, Arg1: &mut StoragePool, Arg2: u256, Arg3: u256, Arg4: u64, Arg5: u8, Arg6: bool, Arg7: &mut Coin<WAL>, Arg8: &mut TxContext) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: u256)
4MoveLoc[3](Arg3: u256)
5MoveLoc[4](Arg4: u64)
6MoveLoc[5](Arg5: u8)
7MoveLoc[6](Arg6: bool)
8MoveLoc[7](Arg7: &mut Coin<WAL>)
9MoveLoc[8](Arg8: &mut TxContext)
10Call system_state_inner::register_pooled_blob(&mut SystemStateInnerV1, &mut StoragePool, u256, u256, u64, u8, bool, &mut Coin<WAL>, &mut TxContext)
11Ret
}
 
public delete_pooled_blob(Arg0: &System, Arg1: &mut StoragePool, Arg2: u256) {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: u256)
4Call system_state_inner::delete_pooled_blob(&SystemStateInnerV1, &mut StoragePool, u256)
5Ret
}
 
public burn_expired_pooled_blob(Arg0: &System, Arg1: &mut StoragePool, Arg2: u256) {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: u256)
4Call system_state_inner::burn_expired_pooled_blob(&SystemStateInnerV1, &mut StoragePool, u256)
5Ret
}
 
public extend_storage_pool(Arg0: &mut System, Arg1: &mut StoragePool, Arg2: u32, Arg3: &mut Coin<WAL>) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: u32)
4MoveLoc[3](Arg3: &mut Coin<WAL>)
5Call system_state_inner::extend_storage_pool(&mut SystemStateInnerV1, &mut StoragePool, u32, &mut Coin<WAL>)
6Ret
}
 
public increase_storage_pool_capacity(Arg0: &mut System, Arg1: &mut StoragePool, Arg2: u64, Arg3: &mut Coin<WAL>) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: u64)
4MoveLoc[3](Arg3: &mut Coin<WAL>)
5Call system_state_inner::increase_storage_pool_capacity(&mut SystemStateInnerV1, &mut StoragePool, u64, &mut Coin<WAL>)
6Ret
}
 
public increase_storage_pool_capacity_with_storage(Arg0: &System, Arg1: &mut StoragePool, Arg2: Storage) {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: Storage)
4Call system_state_inner::increase_storage_pool_capacity_with_storage(&SystemStateInnerV1, &mut StoragePool, Storage)
5Ret
}
 
public decrease_storage_pool_capacity_by_size(Arg0: &System, Arg1: &mut StoragePool, Arg2: u64, Arg3: &mut TxContext): Storage {
L4: loc0: Option<Storage>
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: u64)
4MoveLoc[3](Arg3: &mut TxContext)
5Call system_state_inner::decrease_storage_pool_capacity_by_size(&SystemStateInnerV1, &mut StoragePool, u64, &mut TxContext): Option<Storage>
6StLoc[4](loc0: Option<Storage>)
7ImmBorrowLoc[4](loc0: Option<Storage>)
8Call option::is_some<Storage>(&Option<Storage>): bool
9BrFalse(11)
B1:
10Branch(13)
B2:
11LdConst[2](u64: 2)
12Abort
B3:
13MoveLoc[4](loc0: Option<Storage>)
14Call option::destroy_some<Storage>(Option<Storage>): Storage
15Ret
}
 
public decrease_storage_pool_unused_capacity_by_percent(Arg0: &System, Arg1: &mut StoragePool, Arg2: u8, Arg3: &mut TxContext): Storage {
L4: loc0: Option<Storage>
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: u8)
4MoveLoc[3](Arg3: &mut TxContext)
5Call system_state_inner::decrease_storage_pool_unused_capacity_by_percent(&SystemStateInnerV1, &mut StoragePool, u8, &mut TxContext): Option<Storage>
6StLoc[4](loc0: Option<Storage>)
7ImmBorrowLoc[4](loc0: Option<Storage>)
8Call option::is_some<Storage>(&Option<Storage>): bool
9BrFalse(11)
B1:
10Branch(13)
B2:
11LdConst[2](u64: 2)
12Abort
B3:
13MoveLoc[4](loc0: Option<Storage>)
14Call option::destroy_some<Storage>(Option<Storage>): Storage
15Ret
}
 
public certify_pooled_blob(Arg0: &System, Arg1: &mut StoragePool, Arg2: u256, Arg3: vector<u8>, Arg4: vector<u8>, Arg5: vector<u8>) {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StoragePool)
3MoveLoc[2](Arg2: u256)
4MoveLoc[3](Arg3: vector<u8>)
5MoveLoc[4](Arg4: vector<u8>)
6MoveLoc[5](Arg5: vector<u8>)
7Call system_state_inner::certify_pooled_blob(&SystemStateInnerV1, &mut StoragePool, u256, vector<u8>, vector<u8>, vector<u8>)
8Ret
}
 
public add_subsidy(Arg0: &mut System, Arg1: Coin<WAL>, Arg2: u32) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: Coin<WAL>)
3MoveLoc[2](Arg2: u32)
4Call system_state_inner::add_subsidy(&mut SystemStateInnerV1, Coin<WAL>, u32)
5Ret
}
 
public add_per_epoch_subsidies(Arg0: &mut System, Arg1: vector<Balance<WAL>>) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: vector<Balance<WAL>>)
3Call system_state_inner::add_per_epoch_subsidies(&mut SystemStateInnerV1, vector<Balance<WAL>>)
4Ret
}
 
public update_protocol_version(Arg0: &mut System, Arg1: &StorageNodeCap, Arg2: vector<u8>, Arg3: vector<u8>, Arg4: vector<u8>) {
B0:
0MoveLoc[0](Arg0: &mut System)
1FreezeRef
2Call inner(&System): &SystemStateInnerV1
3MoveLoc[1](Arg1: &StorageNodeCap)
4MoveLoc[2](Arg2: vector<u8>)
5MoveLoc[3](Arg3: vector<u8>)
6MoveLoc[4](Arg4: vector<u8>)
7Call system_state_inner::update_protocol_version(&SystemStateInnerV1, &StorageNodeCap, vector<u8>, vector<u8>, vector<u8>)
8Ret
}
 
public register_deny_list_update(Arg0: &mut System, Arg1: &StorageNodeCap, Arg2: u256, Arg3: u64) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2FreezeRef
3MoveLoc[1](Arg1: &StorageNodeCap)
4MoveLoc[2](Arg2: u256)
5MoveLoc[3](Arg3: u64)
6Call system_state_inner::register_deny_list_update(&SystemStateInnerV1, &StorageNodeCap, u256, u64)
7Ret
}
 
public update_deny_list(Arg0: &mut System, Arg1: &mut StorageNodeCap, Arg2: vector<u8>, Arg3: vector<u8>, Arg4: vector<u8>) {
B0:
0MoveLoc[0](Arg0: &mut System)
1Call inner_mut(&mut System): &mut SystemStateInnerV1
2MoveLoc[1](Arg1: &mut StorageNodeCap)
3MoveLoc[2](Arg2: vector<u8>)
4MoveLoc[3](Arg3: vector<u8>)
5MoveLoc[4](Arg4: vector<u8>)
6Call system_state_inner::update_deny_list(&mut SystemStateInnerV1, &mut StorageNodeCap, vector<u8>, vector<u8>, vector<u8>)
7Ret
}
 
public delete_deny_listed_blob(Arg0: &System, Arg1: vector<u8>, Arg2: vector<u8>, Arg3: vector<u8>) {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2MoveLoc[1](Arg1: vector<u8>)
3MoveLoc[2](Arg2: vector<u8>)
4MoveLoc[3](Arg3: vector<u8>)
5Call system_state_inner::delete_deny_listed_blob(&SystemStateInnerV1, vector<u8>, vector<u8>, vector<u8>)
6Ret
}
 
public epoch(Arg0: &System): u32 {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2Call system_state_inner::epoch(&SystemStateInnerV1): u32
3Ret
}
 
public total_capacity_size(Arg0: &System): u64 {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2Call system_state_inner::total_capacity_size(&SystemStateInnerV1): u64
3Ret
}
 
public used_capacity_size(Arg0: &System): u64 {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2Call system_state_inner::used_capacity_size(&SystemStateInnerV1): u64
3Ret
}
 
public n_shards(Arg0: &System): u16 {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2Call system_state_inner::n_shards(&SystemStateInnerV1): u16
3Ret
}
 
public future_accounting(Arg0: &System): &FutureAccountingRingBuffer {
B0:
0MoveLoc[0](Arg0: &System)
1Call inner(&System): &SystemStateInnerV1
2Call system_state_inner::future_accounting(&SystemStateInnerV1): &FutureAccountingRingBuffer
3Ret
}
 
public(friend) package_id(Arg0: &System): ID {
B0:
0MoveLoc[0](Arg0: &System)
1ImmBorrowField[2](System.package_id: ID)
2ReadRef
3Ret
}
 
public version(Arg0: &System): u64 {
B0:
0MoveLoc[0](Arg0: &System)
1ImmBorrowField[1](System.version: u64)
2ReadRef
3Ret
}
 
public(friend) set_new_package_id(Arg0: &mut System, Arg1: ID) {
B0:
0MoveLoc[1](Arg1: ID)
1Call option::some<ID>(ID): Option<ID>
2MoveLoc[0](Arg0: &mut System)
3MutBorrowField[3](System.new_package_id: Option<ID>)
4WriteRef
5Ret
}
 
public(friend) migrate(Arg0: &mut System) {
L1: loc0: SystemStateInnerV1
B0:
0CopyLoc[0](Arg0: &mut System)
1ImmBorrowField[1](System.version: u64)
2ReadRef
3LdConst[3](u64: 4)
4Lt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut System)
8Pop
9LdConst[0](u64: 0)
10Abort
B3:
11LdConst[3](u64: 4)
12LdU64(4)
13Eq
14BrFalse(16)
B4:
15Branch(20)
B5:
16MoveLoc[0](Arg0: &mut System)
17Pop
18LdConst[0](u64: 0)
19Abort
B6:
20CopyLoc[0](Arg0: &mut System)
21MutBorrowField[0](System.id: UID)
22CopyLoc[0](Arg0: &mut System)
23ImmBorrowField[1](System.version: u64)
24ReadRef
25Call dynamic_field::remove<u64, SystemStateInnerV1>(&mut UID, u64): SystemStateInnerV1
26StLoc[1](loc0: SystemStateInnerV1)
27CopyLoc[0](Arg0: &mut System)
28MutBorrowField[0](System.id: UID)
29LdConst[3](u64: 4)
30MoveLoc[1](loc0: SystemStateInnerV1)
31Call dynamic_field::add<u64, SystemStateInnerV1>(&mut UID, u64, SystemStateInnerV1)
32LdConst[3](u64: 4)
33CopyLoc[0](Arg0: &mut System)
34MutBorrowField[1](System.version: u64)
35WriteRef
36CopyLoc[0](Arg0: &mut System)
37MutBorrowField[0](System.id: UID)
38LdFalse
39Pack[0](SnapshotStateKey)
40Call snapshot_blob::create_with_empty_state(): SnapshotBlobCertificationState
41Call dynamic_field::add<SnapshotStateKey, SnapshotBlobCertificationState>(&mut UID, SnapshotStateKey, SnapshotBlobCertificationState)
42CopyLoc[0](Arg0: &mut System)
43ImmBorrowField[3](System.new_package_id: Option<ID>)
44Call option::is_some<ID>(&Option<ID>): bool
45BrFalse(47)
B7:
46Branch(51)
B8:
47MoveLoc[0](Arg0: &mut System)
48Pop
49LdConst[0](u64: 0)
50Abort
B9:
51CopyLoc[0](Arg0: &mut System)
52MutBorrowField[3](System.new_package_id: Option<ID>)
53Call option::extract<ID>(&mut Option<ID>): ID
54MoveLoc[0](Arg0: &mut System)
55MutBorrowField[2](System.package_id: ID)
56WriteRef
57Ret
}
 
inner_mut(Arg0: &mut System): &mut SystemStateInnerV1 {
B0:
0CopyLoc[0](Arg0: &mut System)
1ImmBorrowField[1](System.version: u64)
2ReadRef
3LdConst[3](u64: 4)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut System)
8Pop
9LdConst[1](u64: 1)
10Abort
B3:
11MoveLoc[0](Arg0: &mut System)
12MutBorrowField[0](System.id: UID)
13LdConst[3](u64: 4)
14Call dynamic_field::borrow_mut<u64, SystemStateInnerV1>(&mut UID, u64): &mut SystemStateInnerV1
15Ret
}
 
public(friend) inner(Arg0: &System): &SystemStateInnerV1 {
B0:
0CopyLoc[0](Arg0: &System)
1ImmBorrowField[1](System.version: u64)
2ReadRef
3LdConst[3](u64: 4)
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &System)
8Pop
9LdConst[1](u64: 1)
10Abort
B3:
11MoveLoc[0](Arg0: &System)
12ImmBorrowField[0](System.id: UID)
13LdConst[3](u64: 4)
14Call dynamic_field::borrow<u64, SystemStateInnerV1>(&UID, u64): &SystemStateInnerV1
15Ret
}
 
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 4
]
}