Pyth package
state
- Move path
- 0x5530…e2c0::state
- Functions
- 3012 public, 0 entry
- Structs
- 3
state
- accumulator4
- batch_price_attestation6
- contract_upgrade6
- data_source7
- deserialize7
- event2
- governance6
- governance_action8
- governance_instruction6
- hot_potato_vector6
- i646
- merkle_tree8
- migrate2
- price5
- price_feed5
- price_identifier2
- price_info16
- price_status4
- pyth19
- set4
- set_data_sources2
- set_fee_recipient2
- set_governance_data_source2
- set_stale_price_threshold2
- set_update_fee3
- setup2
- state30
- version_control2
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>: "