#[macro_use]
extern crate lazy_static;
use address::Address;
use clock::ChainEpoch;
pub mod address;
pub mod bigint;
pub mod chainid;
pub mod clock;
pub mod commcid;
pub mod consensus;
pub mod crypto;
pub mod deal;
pub mod econ;
pub mod error;
pub mod event;
pub mod math;
pub mod message;
pub mod piece;
pub mod randomness;
pub mod receipt;
pub mod reward;
pub mod sector;
pub mod smooth;
pub mod state;
pub mod sys;
pub mod version;
use econ::TokenAmount;
use fvm_ipld_encoding::ipld_block::IpldBlock;
use crate::error::ExitCode;
lazy_static! {
pub static ref TOTAL_FILECOIN: TokenAmount = TokenAmount::from_whole(TOTAL_FILECOIN_BASE);
pub static ref ZERO_ADDRESS: Address = address::Network::Mainnet.parse_address("f3yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaby2smx7a").unwrap();
}
pub const IPLD_RAW: u64 = 0x55;
pub const IDENTITY_HASH: u64 = 0x0;
pub const MAX_CID_LEN: usize = 100;
pub type ActorID = u64;
pub const HAMT_BIT_WIDTH: u32 = 5;
pub const BLOCK_GAS_LIMIT: u64 = 10_000_000_000;
pub const TOTAL_FILECOIN_BASE: i64 = 2_000_000_000;
pub const TICKET_RANDOMNESS_LOOKBACK: ChainEpoch = 1;
pub const WINNING_POST_SECTOR_SET_LOOKBACK: ChainEpoch = 10;
pub const BLOCKS_PER_EPOCH: u64 = 5;
pub const ALLOWABLE_CLOCK_DRIFT: u64 = 1;
pub trait NetworkParams {
const TOTAL_FILECOIN: i64;
const MINING_REWARD_TOTAL: i64;
fn initial_reward_balance() -> TokenAmount {
TokenAmount::from_whole(Self::MINING_REWARD_TOTAL)
}
}
pub struct DefaultNetworkParams;
impl NetworkParams for DefaultNetworkParams {
const TOTAL_FILECOIN: i64 = TOTAL_FILECOIN_BASE;
const MINING_REWARD_TOTAL: i64 = 1_400_000_000;
}
pub type MethodNum = u64;
pub const METHOD_SEND: MethodNum = 0;
pub const METHOD_CONSTRUCTOR: MethodNum = 1;
#[derive(Debug, PartialEq, Eq, Clone)]
pub struct Response {
pub exit_code: ExitCode,
pub return_data: Option<IpldBlock>,
}