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

Move path
0x5530…e2c0::state
Functions
3012 public, 0 entry
Structs
3
state

Bytecode414 lines

The on-chain disassembly. Offsets are instruction numbers within each function.

// Move bytecode v6
module 55300367a2d40813727ccac4ecee977a39fb9cdb46f2e6b2c354b9798f5de2c0.state {
use 55300367a2d40813727ccac4ecee977a39fb9cdb46f2e6b2c354b9798f5de2c0::data_source;
use 55300367a2d40813727ccac4ecee977a39fb9cdb46f2e6b2c354b9798f5de2c0::price_identifier;
use 55300367a2d40813727ccac4ecee977a39fb9cdb46f2e6b2c354b9798f5de2c0::price_info;
use 55300367a2d40813727ccac4ecee977a39fb9cdb46f2e6b2c354b9798f5de2c0::version_control;
use 0000000000000000000000000000000000000000000000000000000000000001::vector;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 99de5c967d8206ef4b75c0afab3df2a59eb02b05c282821db803831008ac25b4::bytes32;
use 99de5c967d8206ef4b75c0afab3df2a59eb02b05c282821db803831008ac25b4::consumed_vaas;
use 99de5c967d8206ef4b75c0afab3df2a59eb02b05c282821db803831008ac25b4::external_address;
use 99de5c967d8206ef4b75c0afab3df2a59eb02b05c282821db803831008ac25b4::package_utils;
 
struct LatestOnly has drop {
dummy_field: bool
}
 
struct State has store, key {
id: UID,
governance_data_source: DataSource,
stale_price_threshold: u64,
base_update_fee: u64,
fee_recipient_address: address,
last_executed_governance_sequence: u64,
consumed_vaas: ConsumedVAAs,
upgrade_cap: UpgradeCap
}
 
struct CurrentDigest has copy, drop, store {
dummy_field: bool
}
 
public(friend) new(Arg0: UpgradeCap, Arg1: vector<DataSource>, Arg2: DataSource, Arg3: u64, Arg4: u64, Arg5: &mut TxContext): State {
L6: loc0: UID
L7: loc1: UpgradeCap
L8: loc2: DataSource
L9: loc3: u64
L10: loc4: address
L11: loc5: u64
L12: loc6: ConsumedVAAs
L13: loc7: ConsumedVAAs
L14: loc8: UID
B0:
0CopyLoc[5](Arg5: &mut TxContext)
1Call object::new(&mut TxContext): UID
2StLoc[14](loc8: UID)
3MutBorrowLoc[14](loc8: UID)
4CopyLoc[5](Arg5: &mut TxContext)
5Call data_source::new_data_source_registry(&mut UID, &mut TxContext)
6MutBorrowLoc[14](loc8: UID)
7CopyLoc[5](Arg5: &mut TxContext)
8Call price_info::new_price_info_registry(&mut UID, &mut TxContext)
B1:
9ImmBorrowLoc[1](Arg1: vector<DataSource>)
10Call vector::is_empty<DataSource>(&vector<DataSource>): bool
11Not
12BrFalse(19)
B2:
13Branch(14)
B3:
14MutBorrowLoc[14](loc8: UID)
15MutBorrowLoc[1](Arg1: vector<DataSource>)
16VecPopBack(8)
17Call data_source::add(&mut UID, DataSource)
18Branch(9)
B4:
19CopyLoc[5](Arg5: &mut TxContext)
20Call consumed_vaas::new(&mut TxContext): ConsumedVAAs
21StLoc[13](loc7: ConsumedVAAs)
22MutBorrowLoc[14](loc8: UID)
23Call version_control::current_version(): V__0_1_2
24ImmBorrowLoc[0](Arg0: UpgradeCap)
25Call package_utils::init_package_info<V__0_1_2>(&mut UID, V__0_1_2, &UpgradeCap)
26MoveLoc[14](loc8: UID)
27StLoc[6](loc0: UID)
28MoveLoc[0](Arg0: UpgradeCap)
29StLoc[7](loc1: UpgradeCap)
30MoveLoc[2](Arg2: DataSource)
31StLoc[8](loc2: DataSource)
32MoveLoc[3](Arg3: u64)
33StLoc[9](loc3: u64)
34MoveLoc[5](Arg5: &mut TxContext)
35FreezeRef
36Call tx_context::sender(&TxContext): address
37StLoc[10](loc4: address)
38MoveLoc[4](Arg4: u64)
39StLoc[11](loc5: u64)
40MoveLoc[13](loc7: ConsumedVAAs)
41StLoc[12](loc6: ConsumedVAAs)
42MoveLoc[6](loc0: UID)
43MoveLoc[8](loc2: DataSource)
44MoveLoc[9](loc3: u64)
45MoveLoc[11](loc5: u64)
46MoveLoc[10](loc4: address)
47LdU64(0)
48MoveLoc[12](loc6: ConsumedVAAs)
49MoveLoc[7](loc1: UpgradeCap)
50Pack[1](State)
51Ret
}
 
public get_stale_price_threshold_secs(Arg0: &State): u64 {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[0](State.stale_price_threshold: u64)
2ReadRef
3Ret
}
 
public get_base_update_fee(Arg0: &State): u64 {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[1](State.base_update_fee: u64)
2ReadRef
3Ret
}
 
public get_fee_recipient(Arg0: &State): address {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[2](State.fee_recipient_address: address)
2ReadRef
3Ret
}
 
public is_valid_data_source(Arg0: &State, Arg1: DataSource): bool {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[3](State.id: UID)
2MoveLoc[1](Arg1: DataSource)
3Call data_source::contains(&UID, DataSource): bool
4Ret
}
 
public is_valid_governance_data_source(Arg0: &State, Arg1: DataSource): bool {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[4](State.governance_data_source: DataSource)
2ReadRef
3MoveLoc[1](Arg1: DataSource)
4Eq
5Ret
}
 
public price_feed_object_exists(Arg0: &State, Arg1: PriceIdentifier): bool {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[3](State.id: UID)
2MoveLoc[1](Arg1: PriceIdentifier)
3Call price_info::contains(&UID, PriceIdentifier): bool
4Ret
}
 
public governance_data_source(Arg0: &State): DataSource {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[4](State.governance_data_source: DataSource)
2ReadRef
3Ret
}
 
public get_last_executed_governance_sequence(Arg0: &State): u64 {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[5](State.last_executed_governance_sequence: u64)
2ReadRef
3Ret
}
 
public governance_module(): Bytes32 {
B0:
0LdConst[1](vector<u8>: "..)
1Call bytes32::new(vector<u8>): Bytes32
2Ret
}
 
public governance_chain(Arg0: &State): u16 {
L1: loc0: DataSource
B0:
0MoveLoc[0](Arg0: &State)
1Call governance_data_source(&State): DataSource
2StLoc[1](loc0: DataSource)
3ImmBorrowLoc[1](loc0: DataSource)
4Call data_source::emitter_chain(&DataSource): u64
5CastU16
6Ret
}
 
public governance_contract(Arg0: &State): ExternalAddress {
L1: loc0: DataSource
B0:
0MoveLoc[0](Arg0: &State)
1Call governance_data_source(&State): DataSource
2StLoc[1](loc0: DataSource)
3ImmBorrowLoc[1](loc0: DataSource)
4Call data_source::emitter_address(&DataSource): ExternalAddress
5Ret
}
 
public get_price_info_object_id(Arg0: &State, Arg1: vector<u8>): ID {
L2: loc0: PriceIdentifier
B0:
0MoveLoc[1](Arg1: vector<u8>)
1Call price_identifier::from_byte_vec(vector<u8>): PriceIdentifier
2StLoc[2](loc0: PriceIdentifier)
3MoveLoc[0](Arg0: &State)
4ImmBorrowField[3](State.id: UID)
5MoveLoc[2](loc0: PriceIdentifier)
6Call price_info::get_id(&UID, PriceIdentifier): ID
7Ret
}
 
public(friend) assert_latest_only(Arg0: &State): LatestOnly {
B0:
0MoveLoc[0](Arg0: &State)
1ImmBorrowField[3](State.id: UID)
2Call version_control::current_version(): V__0_1_2
3Call package_utils::assert_version<V__0_1_2>(&UID, V__0_1_2)
4LdFalse
5Pack[0](LatestOnly)
6Ret
}
 
public(friend) set_fee_recipient(Arg0: &LatestOnly, Arg1: &mut State, Arg2: address) {
B0:
0MoveLoc[2](Arg2: address)
1MoveLoc[1](Arg1: &mut State)
2MutBorrowField[2](State.fee_recipient_address: address)
3WriteRef
4Ret
}
 
public(friend) borrow_mut_consumed_vaas(Arg0: &LatestOnly, Arg1: &mut State): &mut ConsumedVAAs {
B0:
0MoveLoc[1](Arg1: &mut State)
1Call borrow_mut_consumed_vaas_unchecked(&mut State): &mut ConsumedVAAs
2Ret
}
 
public(friend) borrow_mut_consumed_vaas_unchecked(Arg0: &mut State): &mut ConsumedVAAs {
B0:
0MoveLoc[0](Arg0: &mut State)
1MutBorrowField[6](State.consumed_vaas: ConsumedVAAs)
2Ret
}
 
public(friend) current_package(Arg0: &LatestOnly, Arg1: &State): ID {
B0:
0MoveLoc[1](Arg1: &State)
1ImmBorrowField[3](State.id: UID)
2Call package_utils::current_package(&UID): ID
3Ret
}
 
public(friend) set_data_sources(Arg0: &LatestOnly, Arg1: &mut State, Arg2: vector<DataSource>) {
B0:
0CopyLoc[1](Arg1: &mut State)
1MutBorrowField[3](State.id: UID)
2Call data_source::empty(&mut UID)
B1:
3ImmBorrowLoc[2](Arg2: vector<DataSource>)
4Call vector::is_empty<DataSource>(&vector<DataSource>): bool
5Not
6BrFalse(14)
B2:
7Branch(8)
B3:
8CopyLoc[1](Arg1: &mut State)
9MutBorrowField[3](State.id: UID)
10MutBorrowLoc[2](Arg2: vector<DataSource>)
11VecPopBack(8)
12Call data_source::add(&mut UID, DataSource)
13Branch(3)
B4:
14MoveLoc[1](Arg1: &mut State)
15Pop
16Ret
}
 
public(friend) register_price_info_object(Arg0: &LatestOnly, Arg1: &mut State, Arg2: PriceIdentifier, Arg3: ID) {
B0:
0MoveLoc[1](Arg1: &mut State)
1MutBorrowField[3](State.id: UID)
2MoveLoc[2](Arg2: PriceIdentifier)
3MoveLoc[3](Arg3: ID)
4Call price_info::add(&mut UID, PriceIdentifier, ID)
5Ret
}
 
public(friend) set_governance_data_source(Arg0: &LatestOnly, Arg1: &mut State, Arg2: DataSource) {
B0:
0MoveLoc[2](Arg2: DataSource)
1MoveLoc[1](Arg1: &mut State)
2MutBorrowField[4](State.governance_data_source: DataSource)
3WriteRef
4Ret
}
 
public(friend) set_last_executed_governance_sequence(Arg0: &LatestOnly, Arg1: &mut State, Arg2: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1MoveLoc[1](Arg1: &mut State)
2MutBorrowField[5](State.last_executed_governance_sequence: u64)
3WriteRef
4Ret
}
 
public(friend) set_last_executed_governance_sequence_unchecked(Arg0: &mut State, Arg1: u64) {
B0:
0MoveLoc[1](Arg1: u64)
1MoveLoc[0](Arg0: &mut State)
2MutBorrowField[5](State.last_executed_governance_sequence: u64)
3WriteRef
4Ret
}
 
public(friend) set_base_update_fee(Arg0: &LatestOnly, Arg1: &mut State, Arg2: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1MoveLoc[1](Arg1: &mut State)
2MutBorrowField[1](State.base_update_fee: u64)
3WriteRef
4Ret
}
 
public(friend) set_stale_price_threshold_secs(Arg0: &LatestOnly, Arg1: &mut State, Arg2: u64) {
B0:
0MoveLoc[2](Arg2: u64)
1MoveLoc[1](Arg1: &mut State)
2MutBorrowField[0](State.stale_price_threshold: u64)
3WriteRef
4Ret
}
 
public(friend) authorize_upgrade(Arg0: &mut State, Arg1: Bytes32): UpgradeTicket {
L2: loc0: &mut UpgradeCap
B0:
0CopyLoc[0](Arg0: &mut State)
1MutBorrowField[7](State.upgrade_cap: UpgradeCap)
2StLoc[2](loc0: &mut UpgradeCap)
3MoveLoc[0](Arg0: &mut State)
4MutBorrowField[3](State.id: UID)
5MoveLoc[2](loc0: &mut UpgradeCap)
6MoveLoc[1](Arg1: Bytes32)
7Call package_utils::authorize_upgrade(&mut UID, &mut UpgradeCap, Bytes32): UpgradeTicket
8Ret
}
 
public(friend) commit_upgrade(Arg0: &mut State, Arg1: UpgradeReceipt): ID * ID {
L2: loc0: &mut UpgradeCap
B0:
0CopyLoc[0](Arg0: &mut State)
1MutBorrowField[7](State.upgrade_cap: UpgradeCap)
2StLoc[2](loc0: &mut UpgradeCap)
3MoveLoc[0](Arg0: &mut State)
4MutBorrowField[3](State.id: UID)
5MoveLoc[2](loc0: &mut UpgradeCap)
6MoveLoc[1](Arg1: UpgradeReceipt)
7Call package_utils::commit_upgrade(&mut UID, &mut UpgradeCap, UpgradeReceipt): ID * ID
8Ret
}
 
public(friend) migrate_version(Arg0: &mut State) {
B0:
0MoveLoc[0](Arg0: &mut State)
1MutBorrowField[3](State.id: UID)
2Call version_control::previous_version(): V__0_1_1
3Call version_control::current_version(): V__0_1_2
4Call package_utils::migrate_version<V__0_1_1, V__0_1_2>(&mut UID, V__0_1_1, V__0_1_2)
5Ret
}
 
public(friend) assert_authorized_digest(Arg0: &LatestOnly, Arg1: &State, Arg2: Bytes32) {
L3: loc0: Bytes32
B0:
0MoveLoc[1](Arg1: &State)
1ImmBorrowField[3](State.id: UID)
2Call package_utils::authorized_digest(&UID): Bytes32
3StLoc[3](loc0: Bytes32)
4MoveLoc[2](Arg2: Bytes32)
5MoveLoc[3](loc0: Bytes32)
6Eq
7BrFalse(9)
B1:
8Branch(11)
B2:
9LdConst[0](u64: 0)
10Abort
B3:
11Ret
}
 
public(friend) migrate__v__0_1_1(Arg0: &mut State) {
L1: loc0: &UpgradeCap
B0:
0CopyLoc[0](Arg0: &mut State)
1ImmBorrowField[7](State.upgrade_cap: UpgradeCap)
2StLoc[1](loc0: &UpgradeCap)
3MoveLoc[0](Arg0: &mut State)
4MutBorrowField[3](State.id: UID)
5Call version_control::current_version(): V__0_1_2
6MoveLoc[1](loc0: &UpgradeCap)
7Call package_utils::init_package_info<V__0_1_2>(&mut UID, V__0_1_2, &UpgradeCap)
8Ret
}
 
Constants [
0 => u64: 0
1 => vector<u8>: "" // interpreted as UTF8 string
]
}