storage_node
Module0xfa65…814e
- Move path
- 0xfdc8…ea77::storage_node
- Functions
- 216 public, 0 entry
- Structs
- 2
- Friend modules
- stakingstaking_innerstaking_poolsystem_state_inner
storage_node
- active_set11
- apportionment_queue6
- auth5
- blob27
- bls_aggregate16
- committee9
- display4
- encoding1
- epoch_parameters4
- event_blob15
- events16
- extended_field5
- init3
- messages29
- metadata4
- node_metadata10
- pending_values10
- pool_exchange_rate4
- redstuff7
- shared_blob6
- sort0
- staked_wal12
- staking39
- staking_inner47
- staking_pool38
- storage_accounting13
- storage_node21
- storage_resource11
- system28
- system_state_inner26
- upgrade9
- walrus_context4
Bytecode319 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77.storage_node {
use 0000000000000000000000000000000000000000000000000000000000000001::option;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000002::bls12381;
use 0000000000000000000000000000000000000000000000000000000000000002::group_ops;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::event_blob;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::extended_field;
use fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77::node_metadata;
struct StorageNodeInfo has store {
name: String,
node_id: ID,
network_address: String,
public_key: Element<UncompressedG1>,
next_epoch_public_key: Option<Element<UncompressedG1>>,
network_public_key: vector<u8>,
metadata: ExtendedField<NodeMetadata>
}
struct StorageNodeCap has store, key {
id: UID,
node_id: ID,
last_epoch_sync_done: u32,
last_event_blob_attestation: Option<EventBlobAttestation>,
deny_list_root: u256,
deny_list_sequence: u64,
deny_list_size: u64
}
public(friend) new(Arg0: String, Arg1: ID, Arg2: String, Arg3: vector<u8>, Arg4: vector<u8>, Arg5: NodeMetadata, Arg6: &mut TxContext): StorageNodeInfo {
L7: loc0: ID
L8: loc1: String
L9: loc2: String
L10: loc3: Element<G1>
L11: loc4: Element<UncompressedG1>
L12: loc5: Option<Element<UncompressedG1>>
L13: loc6: vector<u8>
L14: loc7: ExtendedField<NodeMetadata>
B0:
0ImmBorrowLoc[4](Arg4: vector<u8>)
1VecLen(23)
2LdU64(33)
3Eq
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[6](Arg6: &mut TxContext)
7Pop
8LdConst[0](u64: 0)
9Abort
B3:
10MoveLoc[1](Arg1: ID)
11StLoc[7](loc0: ID)
12MoveLoc[0](Arg0: String)
13StLoc[8](loc1: String)
14MoveLoc[2](Arg2: String)
15StLoc[9](loc2: String)
16ImmBorrowLoc[3](Arg3: vector<u8>)
17Call bls12381::g1_from_bytes(&vector<u8>): Element<G1>
18StLoc[10](loc3: Element<G1>)
19ImmBorrowLoc[10](loc3: Element<G1>)
20Call bls12381::g1_to_uncompressed_g1(&Element<G1>): Element<UncompressedG1>
21StLoc[11](loc4: Element<UncompressedG1>)
22Call option::none<Element<UncompressedG1>>(): Option<Element<UncompressedG1>>
23StLoc[12](loc5: Option<Element<UncompressedG1>>)
24MoveLoc[4](Arg4: vector<u8>)
25StLoc[13](loc6: vector<u8>)
26MoveLoc[5](Arg5: NodeMetadata)
27MoveLoc[6](Arg6: &mut TxContext)
28Call extended_field::new<NodeMetadata>(NodeMetadata, &mut TxContext): ExtendedField<NodeMetadata>
29StLoc[14](loc7: ExtendedField<NodeMetadata>)
30MoveLoc[8](loc1: String)
31MoveLoc[7](loc0: ID)
32MoveLoc[9](loc2: String)
33MoveLoc[11](loc4: Element<UncompressedG1>)
34MoveLoc[12](loc5: Option<Element<UncompressedG1>>)
35MoveLoc[13](loc6: vector<u8>)
36MoveLoc[14](loc7: ExtendedField<NodeMetadata>)
37Pack[0](StorageNodeInfo)
38Ret
}
public(friend) new_cap(Arg0: ID, Arg1: &mut TxContext): StorageNodeCap {
B0:
0MoveLoc[1](Arg1: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[0](Arg0: ID)
3LdU32(0)
4Call option::none<EventBlobAttestation>(): Option<EventBlobAttestation>
5LdU256(0)
6LdU64(0)
7LdU64(0)
8Pack[1](StorageNodeCap)
9Ret
}
public(friend) public_key(Arg0: &StorageNodeInfo): &Element<UncompressedG1> {
B0:
0MoveLoc[0](Arg0: &StorageNodeInfo)
1ImmBorrowField[0](StorageNodeInfo.public_key: Element<UncompressedG1>)
2Ret
}
public(friend) metadata(Arg0: &StorageNodeInfo): NodeMetadata {
B0:
0MoveLoc[0](Arg0: &StorageNodeInfo)
1ImmBorrowField[1](StorageNodeInfo.metadata: ExtendedField<NodeMetadata>)
2Call extended_field::borrow<NodeMetadata>(&ExtendedField<NodeMetadata>): &NodeMetadata
3ReadRef
4Ret
}
public(friend) next_epoch_public_key(Arg0: &StorageNodeInfo): &Element<UncompressedG1> {
B0:
0CopyLoc[0](Arg0: &StorageNodeInfo)
1ImmBorrowField[2](StorageNodeInfo.next_epoch_public_key: Option<Element<UncompressedG1>>)
2MoveLoc[0](Arg0: &StorageNodeInfo)
3ImmBorrowField[0](StorageNodeInfo.public_key: Element<UncompressedG1>)
4Call option::borrow_with_default<Element<UncompressedG1>>(&Option<Element<UncompressedG1>>, &Element<UncompressedG1>): &Element<UncompressedG1>
5Ret
}
public id(Arg0: &StorageNodeInfo): ID {
B0:
0MoveLoc[0](Arg0: &StorageNodeInfo)
1ImmBorrowField[3](StorageNodeInfo.node_id: ID)
2ReadRef
3Ret
}
public node_id(Arg0: &StorageNodeCap): ID {
B0:
0MoveLoc[0](Arg0: &StorageNodeCap)
1ImmBorrowField[4](StorageNodeCap.node_id: ID)
2ReadRef
3Ret
}
public last_epoch_sync_done(Arg0: &StorageNodeCap): u32 {
B0:
0MoveLoc[0](Arg0: &StorageNodeCap)
1ImmBorrowField[5](StorageNodeCap.last_epoch_sync_done: u32)
2ReadRef
3Ret
}
public last_event_blob_attestation(Arg0: &mut StorageNodeCap): Option<EventBlobAttestation> {
B0:
0MoveLoc[0](Arg0: &mut StorageNodeCap)
1ImmBorrowField[6](StorageNodeCap.last_event_blob_attestation: Option<EventBlobAttestation>)
2ReadRef
3Ret
}
public deny_list_root(Arg0: &StorageNodeCap): u256 {
B0:
0MoveLoc[0](Arg0: &StorageNodeCap)
1ImmBorrowField[7](StorageNodeCap.deny_list_root: u256)
2ReadRef
3Ret
}
public deny_list_sequence(Arg0: &StorageNodeCap): u64 {
B0:
0MoveLoc[0](Arg0: &StorageNodeCap)
1ImmBorrowField[8](StorageNodeCap.deny_list_sequence: u64)
2ReadRef
3Ret
}
public(friend) set_last_epoch_sync_done(Arg0: &mut StorageNodeCap, Arg1: u32) {
B0:
0MoveLoc[1](Arg1: u32)
1MoveLoc[0](Arg0: &mut StorageNodeCap)
2MutBorrowField[5](StorageNodeCap.last_epoch_sync_done: u32)
3WriteRef
4Ret
}
public(friend) set_last_event_blob_attestation(Arg0: &mut StorageNodeCap, Arg1: EventBlobAttestation) {
B0:
0MoveLoc[1](Arg1: EventBlobAttestation)
1Call option::some<EventBlobAttestation>(EventBlobAttestation): Option<EventBlobAttestation>
2MoveLoc[0](Arg0: &mut StorageNodeCap)
3MutBorrowField[6](StorageNodeCap.last_event_blob_attestation: Option<EventBlobAttestation>)
4WriteRef
5Ret
}
public(friend) set_next_public_key(Arg0: &mut StorageNodeInfo, Arg1: vector<u8>) {
L2: loc0: Element<G1>
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1Call bls12381::g1_from_bytes(&vector<u8>): Element<G1>
2StLoc[2](loc0: Element<G1>)
3MoveLoc[0](Arg0: &mut StorageNodeInfo)
4MutBorrowField[2](StorageNodeInfo.next_epoch_public_key: Option<Element<UncompressedG1>>)
5ImmBorrowLoc[2](loc0: Element<G1>)
6Call bls12381::g1_to_uncompressed_g1(&Element<G1>): Element<UncompressedG1>
7Call option::swap_or_fill<Element<UncompressedG1>>(&mut Option<Element<UncompressedG1>>, Element<UncompressedG1>): Option<Element<UncompressedG1>>
8Pop
9Ret
}
public(friend) set_name(Arg0: &mut StorageNodeInfo, Arg1: String) {
B0:
0MoveLoc[1](Arg1: String)
1MoveLoc[0](Arg0: &mut StorageNodeInfo)
2MutBorrowField[9](StorageNodeInfo.name: String)
3WriteRef
4Ret
}
public(friend) set_network_address(Arg0: &mut StorageNodeInfo, Arg1: String) {
B0:
0MoveLoc[1](Arg1: String)
1MoveLoc[0](Arg0: &mut StorageNodeInfo)
2MutBorrowField[10](StorageNodeInfo.network_address: String)
3WriteRef
4Ret
}
public(friend) set_network_public_key(Arg0: &mut StorageNodeInfo, Arg1: vector<u8>) {
B0:
0ImmBorrowLoc[1](Arg1: vector<u8>)
1VecLen(23)
2LdU64(33)
3Eq
4BrFalse(6)
B1:
5Branch(10)
B2:
6MoveLoc[0](Arg0: &mut StorageNodeInfo)
7Pop
8LdConst[0](u64: 0)
9Abort
B3:
10MoveLoc[1](Arg1: vector<u8>)
11MoveLoc[0](Arg0: &mut StorageNodeInfo)
12MutBorrowField[11](StorageNodeInfo.network_public_key: vector<u8>)
13WriteRef
14Ret
}
public(friend) set_node_metadata(Arg0: &mut StorageNodeInfo, Arg1: NodeMetadata) {
B0:
0MoveLoc[0](Arg0: &mut StorageNodeInfo)
1MutBorrowField[1](StorageNodeInfo.metadata: ExtendedField<NodeMetadata>)
2MoveLoc[1](Arg1: NodeMetadata)
3Call extended_field::swap<NodeMetadata>(&mut ExtendedField<NodeMetadata>, NodeMetadata): NodeMetadata
4Pop
5Ret
}
public(friend) rotate_public_key(Arg0: &mut StorageNodeInfo) {
B0:
0CopyLoc[0](Arg0: &mut StorageNodeInfo)
1ImmBorrowField[2](StorageNodeInfo.next_epoch_public_key: Option<Element<UncompressedG1>>)
2Call option::is_some<Element<UncompressedG1>>(&Option<Element<UncompressedG1>>): bool
3BrFalse(11)
B1:
4CopyLoc[0](Arg0: &mut StorageNodeInfo)
5MutBorrowField[2](StorageNodeInfo.next_epoch_public_key: Option<Element<UncompressedG1>>)
6Call option::extract<Element<UncompressedG1>>(&mut Option<Element<UncompressedG1>>): Element<UncompressedG1>
7MoveLoc[0](Arg0: &mut StorageNodeInfo)
8MutBorrowField[0](StorageNodeInfo.public_key: Element<UncompressedG1>)
9WriteRef
10Branch(13)
B2:
11MoveLoc[0](Arg0: &mut StorageNodeInfo)
12Pop
B3:
13Ret
}
public(friend) destroy(Arg0: StorageNodeInfo) {
L1: loc0: ExtendedField<NodeMetadata>
B0:
0MoveLoc[0](Arg0: StorageNodeInfo)
1Unpack[0](StorageNodeInfo)
2StLoc[1](loc0: ExtendedField<NodeMetadata>)
3Pop
4Pop
5Pop
6Pop
7Pop
8Pop
9MoveLoc[1](loc0: ExtendedField<NodeMetadata>)
10Call extended_field::destroy<NodeMetadata>(ExtendedField<NodeMetadata>): NodeMetadata
11Pop
12Ret
}
public(friend) set_deny_list_properties(Arg0: &mut StorageNodeCap, Arg1: u256, Arg2: u64, Arg3: u64) {
B0:
0MoveLoc[1](Arg1: u256)
1CopyLoc[0](Arg0: &mut StorageNodeCap)
2MutBorrowField[7](StorageNodeCap.deny_list_root: u256)
3WriteRef
4MoveLoc[2](Arg2: u64)
5CopyLoc[0](Arg0: &mut StorageNodeCap)
6MutBorrowField[8](StorageNodeCap.deny_list_sequence: u64)
7WriteRef
8MoveLoc[3](Arg3: u64)
9MoveLoc[0](Arg0: &mut StorageNodeCap)
10MutBorrowField[12](StorageNodeCap.deny_list_size: u64)
11WriteRef
12Ret
}
Constants [
0 => u64: 0
]
}