pyth-crosschain/target_chains/aptos/contracts/sources/governance/governance_action.move

39 lines
1.1 KiB
Plaintext

module pyth::governance_action {
use pyth::error;
const CONTRACT_UPGRADE: u8 = 0;
const SET_GOVERNANCE_DATA_SOURCE: u8 = 1;
const SET_DATA_SOURCES: u8 = 2;
const SET_UPDATE_FEE: u8 = 3;
const SET_STALE_PRICE_THRESHOLD: u8 = 4;
struct GovernanceAction has copy, drop {
value: u8,
}
public fun from_u8(value: u8): GovernanceAction {
assert!(CONTRACT_UPGRADE <= value && value <= SET_STALE_PRICE_THRESHOLD, error::invalid_governance_action());
GovernanceAction { value }
}
public fun new_contract_upgrade(): GovernanceAction {
GovernanceAction { value: CONTRACT_UPGRADE }
}
public fun new_set_governance_data_source(): GovernanceAction {
GovernanceAction { value: SET_GOVERNANCE_DATA_SOURCE }
}
public fun new_set_data_sources(): GovernanceAction {
GovernanceAction { value: SET_DATA_SOURCES }
}
public fun new_set_update_fee(): GovernanceAction {
GovernanceAction { value: SET_UPDATE_FEE }
}
public fun new_set_stale_price_threshold(): GovernanceAction {
GovernanceAction { value: SET_STALE_PRICE_THRESHOLD }
}
}