messages
Module0xfa65…814e
- Move path
- 0xfdc8…ea77::messages
- Functions
- 290 public, 0 entry
- Structs
- 8
messages
- 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
Bytecode632 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module fdc88f7d7cf30afab2f82e8380d11ee8f70efb90e863d1de8616fae1bb09ea77.messages {
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::bcs;
use 0000000000000000000000000000000000000000000000000000000000000002::bls12381;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
struct ProofOfPossessionMessage has drop {
intent_type: u8,
intent_version: u8,
intent_app: u8,
epoch: u32,
sui_address: address,
bls_key: vector<u8>
}
struct CertifiedMessage has drop {
intent_type: u8,
intent_version: u8,
cert_epoch: u32,
message: vector<u8>,
stake_support: u16
}
struct CertifiedBlobMessage has drop {
blob_id: u256,
blob_persistence_type: BlobPersistenceType
}
struct CertifiedInvalidBlobId has drop {
blob_id: u256
}
struct ProtocolVersionMessage has drop {
start_epoch: u32,
protocol_version: u64
}
struct DenyListUpdateMessage has drop {
storage_node_id: ID,
deny_list_sequence_number: u64,
deny_list_size: u64,
deny_list_root: u256
}
struct DenyListBlobDeleted has drop {
blob_id: u256
}
enum BlobPersistenceType has copy, drop {
Permanent { },
Deletable { object_id: ID }
}
public(friend) new_proof_of_possession_msg(Arg0: u32, Arg1: address, Arg2: vector<u8>): ProofOfPossessionMessage {
B0:
0ImmBorrowLoc[2](Arg2: vector<u8>)
1VecLen(15)
2LdConst[2](u64: 48)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[14](u64: 6)
7Abort
B3:
8LdConst[1](u8: 0)
9LdConst[1](u8: 0)
10LdConst[0](u8: 3)
11MoveLoc[0](Arg0: u32)
12MoveLoc[1](Arg1: address)
13MoveLoc[2](Arg2: vector<u8>)
14Pack[0](ProofOfPossessionMessage)
15Ret
}
public(friend) to_bcs(Arg0: &ProofOfPossessionMessage): vector<u8> {
L1: loc0: u64
L2: loc1: vector<u8>
L3: loc2: u64
L4: loc3: u64
L5: loc4: &u8
L6: loc5: u64
L7: loc6: &vector<u8>
B0:
0LdConst[15](vector<u8>: "" /..)
1StLoc[2](loc1: vector<u8>)
2MutBorrowLoc[2](loc1: vector<u8>)
3CopyLoc[0](Arg0: &ProofOfPossessionMessage)
4ImmBorrowField[0](ProofOfPossessionMessage.intent_type: u8)
5Call bcs::to_bytes<u8>(&u8): vector<u8>
6Call vector::append<u8>(&mut vector<u8>, vector<u8>)
7MutBorrowLoc[2](loc1: vector<u8>)
8CopyLoc[0](Arg0: &ProofOfPossessionMessage)
9ImmBorrowField[1](ProofOfPossessionMessage.intent_version: u8)
10Call bcs::to_bytes<u8>(&u8): vector<u8>
11Call vector::append<u8>(&mut vector<u8>, vector<u8>)
12MutBorrowLoc[2](loc1: vector<u8>)
13CopyLoc[0](Arg0: &ProofOfPossessionMessage)
14ImmBorrowField[2](ProofOfPossessionMessage.intent_app: u8)
15Call bcs::to_bytes<u8>(&u8): vector<u8>
16Call vector::append<u8>(&mut vector<u8>, vector<u8>)
17MutBorrowLoc[2](loc1: vector<u8>)
18CopyLoc[0](Arg0: &ProofOfPossessionMessage)
19ImmBorrowField[3](ProofOfPossessionMessage.epoch: u32)
20Call bcs::to_bytes<u32>(&u32): vector<u8>
21Call vector::append<u8>(&mut vector<u8>, vector<u8>)
22MutBorrowLoc[2](loc1: vector<u8>)
23CopyLoc[0](Arg0: &ProofOfPossessionMessage)
24ImmBorrowField[4](ProofOfPossessionMessage.sui_address: address)
25Call bcs::to_bytes<address>(&address): vector<u8>
26Call vector::append<u8>(&mut vector<u8>, vector<u8>)
27MoveLoc[0](Arg0: &ProofOfPossessionMessage)
28ImmBorrowField[5](ProofOfPossessionMessage.bls_key: vector<u8>)
29StLoc[7](loc6: &vector<u8>)
30CopyLoc[7](loc6: &vector<u8>)
31VecLen(15)
32StLoc[1](loc0: u64)
33LdU64(0)
34StLoc[3](loc2: u64)
35MoveLoc[1](loc0: u64)
36StLoc[6](loc5: u64)
B1:
37CopyLoc[3](loc2: u64)
38CopyLoc[6](loc5: u64)
39Lt
40BrFalse(56)
B2:
41CopyLoc[3](loc2: u64)
42StLoc[4](loc3: u64)
43CopyLoc[7](loc6: &vector<u8>)
44MoveLoc[4](loc3: u64)
45VecImmBorrow(15)
46StLoc[5](loc4: &u8)
47MutBorrowLoc[2](loc1: vector<u8>)
48MoveLoc[5](loc4: &u8)
49Call bcs::to_bytes<u8>(&u8): vector<u8>
50Call vector::append<u8>(&mut vector<u8>, vector<u8>)
51MoveLoc[3](loc2: u64)
52LdU64(1)
53Add
54StLoc[3](loc2: u64)
55Branch(37)
B3:
56MoveLoc[7](loc6: &vector<u8>)
57Pop
58MoveLoc[2](loc1: vector<u8>)
59Ret
}
public(friend) verify_proof_of_possession(Arg0: &ProofOfPossessionMessage, Arg1: vector<u8>): bool {
L2: loc0: vector<u8>
B0:
0CopyLoc[0](Arg0: &ProofOfPossessionMessage)
1Call to_bcs(&ProofOfPossessionMessage): vector<u8>
2StLoc[2](loc0: vector<u8>)
3ImmBorrowLoc[1](Arg1: vector<u8>)
4MoveLoc[0](Arg0: &ProofOfPossessionMessage)
5ImmBorrowField[5](ProofOfPossessionMessage.bls_key: vector<u8>)
6ImmBorrowLoc[2](loc0: vector<u8>)
7Call bls12381::bls12381_min_pk_verify(&vector<u8>, &vector<u8>, &vector<u8>): bool
8Ret
}
public(friend) new_certified_message(Arg0: vector<u8>, Arg1: u32, Arg2: u16): CertifiedMessage {
L3: loc0: BCS
L4: loc1: u32
L5: loc2: u8
L6: loc3: u8
L7: loc4: vector<u8>
B0:
0MoveLoc[0](Arg0: vector<u8>)
1Call bcs::new(vector<u8>): BCS
2StLoc[3](loc0: BCS)
3MutBorrowLoc[3](loc0: BCS)
4Call bcs::peel_u8(&mut BCS): u8
5StLoc[5](loc2: u8)
6MutBorrowLoc[3](loc0: BCS)
7Call bcs::peel_u8(&mut BCS): u8
8StLoc[6](loc3: u8)
9CopyLoc[6](loc3: u8)
10LdConst[1](u8: 0)
11Eq
12BrFalse(14)
B1:
13Branch(16)
B2:
14LdConst[11](u64: 3)
15Abort
B3:
16MutBorrowLoc[3](loc0: BCS)
17Call bcs::peel_u8(&mut BCS): u8
18LdConst[0](u8: 3)
19Eq
20BrFalse(22)
B4:
21Branch(24)
B5:
22LdConst[8](u64: 0)
23Abort
B6:
24MutBorrowLoc[3](loc0: BCS)
25Call bcs::peel_u32(&mut BCS): u32
26StLoc[4](loc1: u32)
27CopyLoc[4](loc1: u32)
28MoveLoc[1](Arg1: u32)
29Eq
30BrFalse(32)
B7:
31Branch(34)
B8:
32LdConst[9](u64: 1)
33Abort
B9:
34MoveLoc[3](loc0: BCS)
35Call bcs::into_remainder_bytes(BCS): vector<u8>
36StLoc[7](loc4: vector<u8>)
37MoveLoc[5](loc2: u8)
38MoveLoc[6](loc3: u8)
39MoveLoc[4](loc1: u32)
40MoveLoc[7](loc4: vector<u8>)
41MoveLoc[2](Arg2: u16)
42Pack[1](CertifiedMessage)
43Ret
}
public(friend) certify_blob_message(Arg0: CertifiedMessage): CertifiedBlobMessage {
L1: loc0: BCS
L2: loc1: u256
L3: loc2: BlobPersistenceType
B0:
0ImmBorrowLoc[0](Arg0: CertifiedMessage)
1Call intent_type(&CertifiedMessage): u8
2LdConst[3](u8: 1)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[10](u64: 2)
7Abort
B3:
8MoveLoc[0](Arg0: CertifiedMessage)
9Call into_message(CertifiedMessage): vector<u8>
10Call bcs::new(vector<u8>): BCS
11StLoc[1](loc0: BCS)
12MutBorrowLoc[1](loc0: BCS)
13Call bcs::peel_u256(&mut BCS): u256
14StLoc[2](loc1: u256)
15MutBorrowLoc[1](loc0: BCS)
16Call peel_blob_persistence_type(&mut BCS): BlobPersistenceType
17StLoc[3](loc2: BlobPersistenceType)
18MoveLoc[2](loc1: u256)
19MoveLoc[3](loc2: BlobPersistenceType)
20Pack[2](CertifiedBlobMessage)
21Ret
}
public(friend) certified_system_blob_message(Arg0: u256): CertifiedBlobMessage {
B0:
0MoveLoc[0](Arg0: u256)
1PackVariant(VariantHandleIndex(0))
2Pack[2](CertifiedBlobMessage)
3Ret
}
public(friend) invalid_blob_id_message(Arg0: CertifiedMessage): CertifiedInvalidBlobId {
L1: loc0: BCS
B0:
0ImmBorrowLoc[0](Arg0: CertifiedMessage)
1Call intent_type(&CertifiedMessage): u8
2LdConst[4](u8: 2)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[10](u64: 2)
7Abort
B3:
8MoveLoc[0](Arg0: CertifiedMessage)
9Call into_message(CertifiedMessage): vector<u8>
10Call bcs::new(vector<u8>): BCS
11StLoc[1](loc0: BCS)
12MutBorrowLoc[1](loc0: BCS)
13Call bcs::peel_u256(&mut BCS): u256
14Pack[3](CertifiedInvalidBlobId)
15Ret
}
public(friend) protocol_version_message(Arg0: CertifiedMessage): ProtocolVersionMessage {
L1: loc0: BCS
L2: loc1: u64
L3: loc2: u32
B0:
0ImmBorrowLoc[0](Arg0: CertifiedMessage)
1Call intent_type(&CertifiedMessage): u8
2LdConst[7](u8: 6)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[10](u64: 2)
7Abort
B3:
8MoveLoc[0](Arg0: CertifiedMessage)
9Call into_message(CertifiedMessage): vector<u8>
10Call bcs::new(vector<u8>): BCS
11StLoc[1](loc0: BCS)
12MutBorrowLoc[1](loc0: BCS)
13Call bcs::peel_u32(&mut BCS): u32
14StLoc[3](loc2: u32)
15MutBorrowLoc[1](loc0: BCS)
16Call bcs::peel_u64(&mut BCS): u64
17StLoc[2](loc1: u64)
18MoveLoc[3](loc2: u32)
19MoveLoc[2](loc1: u64)
20Pack[4](ProtocolVersionMessage)
21Ret
}
public(friend) deny_list_update_message(Arg0: CertifiedMessage): DenyListUpdateMessage {
L1: loc0: BCS
L2: loc1: u256
L3: loc2: u64
L4: loc3: u64
L5: loc4: ID
B0:
0ImmBorrowLoc[0](Arg0: CertifiedMessage)
1Call intent_type(&CertifiedMessage): u8
2LdConst[5](u8: 4)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[10](u64: 2)
7Abort
B3:
8MoveLoc[0](Arg0: CertifiedMessage)
9Call into_message(CertifiedMessage): vector<u8>
10Call bcs::new(vector<u8>): BCS
11StLoc[1](loc0: BCS)
12MutBorrowLoc[1](loc0: BCS)
13Call bcs::peel_address(&mut BCS): address
14Call object::id_from_address(address): ID
15StLoc[5](loc4: ID)
16MutBorrowLoc[1](loc0: BCS)
17Call bcs::peel_u64(&mut BCS): u64
18StLoc[3](loc2: u64)
19MutBorrowLoc[1](loc0: BCS)
20Call bcs::peel_u64(&mut BCS): u64
21StLoc[4](loc3: u64)
22MutBorrowLoc[1](loc0: BCS)
23Call bcs::peel_u256(&mut BCS): u256
24StLoc[2](loc1: u256)
25MoveLoc[5](loc4: ID)
26MoveLoc[3](loc2: u64)
27MoveLoc[4](loc3: u64)
28MoveLoc[2](loc1: u256)
29Pack[5](DenyListUpdateMessage)
30Ret
}
public(friend) deny_list_blob_deleted_message(Arg0: CertifiedMessage): DenyListBlobDeleted {
L1: loc0: BCS
B0:
0ImmBorrowLoc[0](Arg0: CertifiedMessage)
1Call intent_type(&CertifiedMessage): u8
2LdConst[6](u8: 5)
3Eq
4BrFalse(6)
B1:
5Branch(8)
B2:
6LdConst[10](u64: 2)
7Abort
B3:
8MoveLoc[0](Arg0: CertifiedMessage)
9Call into_message(CertifiedMessage): vector<u8>
10Call bcs::new(vector<u8>): BCS
11StLoc[1](loc0: BCS)
12MutBorrowLoc[1](loc0: BCS)
13Call bcs::peel_u256(&mut BCS): u256
14Pack[6](DenyListBlobDeleted)
15Ret
}
public(friend) intent_type(Arg0: &CertifiedMessage): u8 {
B0:
0MoveLoc[0](Arg0: &CertifiedMessage)
1ImmBorrowField[6](CertifiedMessage.intent_type: u8)
2ReadRef
3Ret
}
public(friend) intent_version(Arg0: &CertifiedMessage): u8 {
B0:
0MoveLoc[0](Arg0: &CertifiedMessage)
1ImmBorrowField[7](CertifiedMessage.intent_version: u8)
2ReadRef
3Ret
}
public(friend) cert_epoch(Arg0: &CertifiedMessage): u32 {
B0:
0MoveLoc[0](Arg0: &CertifiedMessage)
1ImmBorrowField[8](CertifiedMessage.cert_epoch: u32)
2ReadRef
3Ret
}
public(friend) stake_support(Arg0: &CertifiedMessage): u16 {
B0:
0MoveLoc[0](Arg0: &CertifiedMessage)
1ImmBorrowField[9](CertifiedMessage.stake_support: u16)
2ReadRef
3Ret
}
public(friend) message(Arg0: &CertifiedMessage): &vector<u8> {
B0:
0MoveLoc[0](Arg0: &CertifiedMessage)
1ImmBorrowField[10](CertifiedMessage.message: vector<u8>)
2Ret
}
public(friend) into_message(Arg0: CertifiedMessage): vector<u8> {
B0:
0ImmBorrowLoc[0](Arg0: CertifiedMessage)
1ImmBorrowField[10](CertifiedMessage.message: vector<u8>)
2ReadRef
3Ret
}
public(friend) certified_blob_id(Arg0: &CertifiedBlobMessage): u256 {
B0:
0MoveLoc[0](Arg0: &CertifiedBlobMessage)
1ImmBorrowField[11](CertifiedBlobMessage.blob_id: u256)
2ReadRef
3Ret
}
public(friend) blob_persistence_type(Arg0: &CertifiedBlobMessage): BlobPersistenceType {
B0:
0MoveLoc[0](Arg0: &CertifiedBlobMessage)
1ImmBorrowField[12](CertifiedBlobMessage.blob_persistence_type: BlobPersistenceType)
2ReadRef
3Ret
}
public(friend) invalid_blob_id(Arg0: &CertifiedInvalidBlobId): u256 {
B0:
0MoveLoc[0](Arg0: &CertifiedInvalidBlobId)
1ImmBorrowField[13](CertifiedInvalidBlobId.blob_id: u256)
2ReadRef
3Ret
}
public(friend) start_epoch(Arg0: &ProtocolVersionMessage): u32 {
B0:
0MoveLoc[0](Arg0: &ProtocolVersionMessage)
1ImmBorrowField[14](ProtocolVersionMessage.start_epoch: u32)
2ReadRef
3Ret
}
public(friend) protocol_version(Arg0: &ProtocolVersionMessage): u64 {
B0:
0MoveLoc[0](Arg0: &ProtocolVersionMessage)
1ImmBorrowField[15](ProtocolVersionMessage.protocol_version: u64)
2ReadRef
3Ret
}
public(friend) storage_node_id(Arg0: &DenyListUpdateMessage): ID {
B0:
0MoveLoc[0](Arg0: &DenyListUpdateMessage)
1ImmBorrowField[16](DenyListUpdateMessage.storage_node_id: ID)
2ReadRef
3Ret
}
public(friend) sequence_number(Arg0: &DenyListUpdateMessage): u64 {
B0:
0MoveLoc[0](Arg0: &DenyListUpdateMessage)
1ImmBorrowField[17](DenyListUpdateMessage.deny_list_sequence_number: u64)
2ReadRef
3Ret
}
public(friend) size(Arg0: &DenyListUpdateMessage): u64 {
B0:
0MoveLoc[0](Arg0: &DenyListUpdateMessage)
1ImmBorrowField[18](DenyListUpdateMessage.deny_list_size: u64)
2ReadRef
3Ret
}
public(friend) root(Arg0: &DenyListUpdateMessage): u256 {
B0:
0MoveLoc[0](Arg0: &DenyListUpdateMessage)
1ImmBorrowField[19](DenyListUpdateMessage.deny_list_root: u256)
2ReadRef
3Ret
}
public(friend) blob_id(Arg0: &DenyListBlobDeleted): u256 {
B0:
0MoveLoc[0](Arg0: &DenyListBlobDeleted)
1ImmBorrowField[20](DenyListBlobDeleted.blob_id: u256)
2ReadRef
3Ret
}
public(friend) is_deletable(Arg0: &BlobPersistenceType): bool {
L1: loc0: bool
L2: loc1: &BlobPersistenceType
B0:
0MoveLoc[0](Arg0: &BlobPersistenceType)
1StLoc[2](loc1: &BlobPersistenceType)
2CopyLoc[2](loc1: &BlobPersistenceType)
3VariantSwitch(VariantJumpTableIndex(0))
B1:
4MoveLoc[2](loc1: &BlobPersistenceType)
5UnpackVariantImmRef(VariantHandleIndex(0))
6LdFalse
7StLoc[1](loc0: bool)
8Branch(14)
B2:
9MoveLoc[2](loc1: &BlobPersistenceType)
10UnpackVariantImmRef(VariantHandleIndex(1))
11Pop
12LdTrue
13StLoc[1](loc0: bool)
B3:
14MoveLoc[1](loc0: bool)
15Ret
Jump tables:
[0]: variant_switch BlobPersistenceType {
Variant0 => jump 4
Variant1 => jump 9
}
}
public(friend) object_id(Arg0: &BlobPersistenceType): ID {
L1: loc0: &BlobPersistenceType
L2: loc1: &BlobPersistenceType
B0:
0MoveLoc[0](Arg0: &BlobPersistenceType)
1StLoc[2](loc1: &BlobPersistenceType)
2CopyLoc[2](loc1: &BlobPersistenceType)
3StLoc[1](loc0: &BlobPersistenceType)
4CopyLoc[1](loc0: &BlobPersistenceType)
5VariantSwitch(VariantJumpTableIndex(0))
B1:
6MoveLoc[2](loc1: &BlobPersistenceType)
7Pop
8MoveLoc[1](loc0: &BlobPersistenceType)
9UnpackVariantImmRef(VariantHandleIndex(0))
10LdConst[13](u64: 5)
11Abort
B2:
12MoveLoc[1](loc0: &BlobPersistenceType)
13UnpackVariantImmRef(VariantHandleIndex(1))
14Pop
15MoveLoc[2](loc1: &BlobPersistenceType)
16UnpackVariantImmRef(VariantHandleIndex(1))
17ReadRef
18Ret
Jump tables:
[0]: variant_switch BlobPersistenceType {
Variant0 => jump 6
Variant1 => jump 12
}
}
public(friend) peel_blob_persistence_type(Arg0: &mut BCS): BlobPersistenceType {
L1: loc0: u8
B0:
0CopyLoc[0](Arg0: &mut BCS)
1Call bcs::peel_u8(&mut BCS): u8
2StLoc[1](loc0: u8)
3CopyLoc[1](loc0: u8)
4LdU8(0)
5Eq
6BrFalse(11)
B1:
7MoveLoc[0](Arg0: &mut BCS)
8Pop
9PackVariant(VariantHandleIndex(0))
10Ret
B2:
11MoveLoc[1](loc0: u8)
12LdU8(1)
13Eq
14BrFalse(20)
B3:
15MoveLoc[0](Arg0: &mut BCS)
16Call bcs::peel_address(&mut BCS): address
17Call object::id_from_address(address): ID
18PackVariant(VariantHandleIndex(1))
19Ret
B4:
20MoveLoc[0](Arg0: &mut BCS)
21Pop
22LdConst[12](u64: 4)
23Abort
}
Constants [
0 => u8: 3
1 => u8: 0
2 => u64: 48
3 => u8: 1
4 => u8: 2
5 => u8: 4
6 => u8: 5
7 => u8: 6
8 => u64: 0
9 => u64: 1
10 => u64: 2
11 => u64: 3
12 => u64: 4
13 => u64: 5
14 => u64: 6
15 => vector<u8>: "" // interpreted as UTF8 string
]
}