1pub use hopper_core::prelude::*;
5
6pub use hopper_core::abi::{
8 WireBool, WireI128, WireI16, WireI32, WireI64, WireU128, WireU16, WireU32, WireU64,
9};
10
11pub use crate::{
13 const_assert_pod, hopper_accounts, hopper_check, hopper_close, hopper_error, hopper_init,
14 hopper_interface, hopper_invariant, hopper_layout, hopper_manifest, hopper_register_discs,
15 hopper_require, hopper_segment, hopper_validate, hopper_verify_pda, hopper_virtual,
16};
17
18#[cfg(feature = "proc-macros")]
19pub use crate::{
20 account, accounts, context, hopper_context, hopper_program, hopper_state, program, state,
21 Accounts,
22};
23
24pub use hopper_core::account::segment_role::{
26 SegmentRole, SEG_ROLE_AUDIT, SEG_ROLE_CACHE, SEG_ROLE_CORE, SEG_ROLE_EXTENSION, SEG_ROLE_INDEX,
27 SEG_ROLE_JOURNAL, SEG_ROLE_SHARD,
28};
29pub use hopper_core::account::{
30 segment_id, SegmentEntry, SegmentId, SegmentRegistry, SegmentRegistryMut,
31};
32#[cfg(feature = "graph")]
33pub use hopper_core::check::graph::{
34 AccountConstraint, TransactionConstraint, ValidationContext, ValidationGraph,
35};
36#[cfg(feature = "collections")]
37pub use hopper_core::collections::journal::{Journal, JournalReader};
38#[cfg(feature = "collections")]
39pub use hopper_core::collections::slab::Slab;
40#[cfg(feature = "diff")]
41pub use hopper_core::diff::{StateDiff, StateSnapshot};
42#[cfg(feature = "policy")]
43pub use hopper_core::policy::{
44 Capability, CapabilitySet, InstructionPolicy, PolicyRequirement, RequirementSet,
45};
46#[cfg(feature = "receipt")]
47pub use hopper_core::receipt::{
48 FailureStage, StateReceipt, FAILED_INVARIANT_NONE, RECEIPT_SIZE, RECEIPT_SIZE_LEGACY,
49};
50#[cfg(feature = "virtual-state")]
51pub use hopper_core::virtual_state::{ShardedAccess, VirtualSlot, VirtualState};
52
53pub use hopper_associated_token;
55pub use hopper_associated_token::instructions as associated_token_instructions;
56pub use hopper_associated_token::ATA_PROGRAM_ID;
57pub use hopper_runtime::cpi::{
58 invoke as cpi_invoke, invoke_signed as cpi_invoke_signed,
59 set_return_data as cpi_set_return_data,
60};
61pub use hopper_runtime::error::ProgramError;
62pub use hopper_runtime::fast_entrypoint;
63pub use hopper_runtime::hopper_entrypoint;
64pub use hopper_runtime::hopper_fast_entrypoint;
65pub use hopper_runtime::hopper_lazy_entrypoint;
66pub use hopper_runtime::layout::{
67 init_header, read_disc, read_layout_id, read_version, write_header, HopperHeader, LayoutInfo,
68};
69pub use hopper_runtime::lazy_entrypoint;
70pub use hopper_runtime::program_entrypoint;
71pub use hopper_runtime::{no_allocator, nostd_panic_handler};
72pub use hopper_runtime::{
73 AccountView, Address, Context, InstructionAccount, InstructionView, LayoutContract,
74 ProgramResult, Seed, Signer, TailCodec, TransparentAddress,
75};
76pub use hopper_system;
77pub use hopper_system::instructions as system_instructions;
78pub use hopper_system::SYSTEM_PROGRAM_ID;
79pub use hopper_token;
80pub use hopper_token::instructions as token_instructions;
81pub use hopper_token::TOKEN_PROGRAM_ID;
82pub use hopper_token_2022;
83pub use hopper_token_2022::instructions as token_2022_instructions;
84pub use hopper_token_2022::TOKEN_2022_PROGRAM_ID;
85
86pub use hopper_memo;
89pub use hopper_memo::{Memo, MAX_MEMO_SIGNERS, MEMO_PROGRAM_ID};
90
91pub use hopper_solana::interface::{
97 interface_transfer_checked, interface_transfer_checked_signed, InterfaceMint,
98 InterfaceTokenAccount, TokenProgramKind,
99};
100
101#[cfg(feature = "metaplex")]
107pub use hopper_metaplex;
108#[cfg(feature = "metaplex")]
109pub use hopper_metaplex::{
110 master_edition_pda, master_edition_pda_with_bump, metadata_pda, metadata_pda_with_bump,
111 CreateMasterEditionV3, CreateMetadataAccountV3, DataV2, UpdateMetadataAccountV2,
112 MPL_TOKEN_METADATA_PROGRAM_ID,
113};
114
115pub use hopper_core::account::HEADER_LEN;
117pub use hopper_core::field_map::{FieldInfo, FieldMap};
118pub use hopper_core::invariant::InvariantSet;
119pub use hopper_core::segment_map::{SegmentMap, StaticSegment};
120
121#[cfg(target_os = "solana")]
122pub use crate::pda::{
123 create_program_address, find_program_address, verify_pda, verify_pda_with_bump,
124};
125
126pub use crate::guards::{
128 require, require_address, require_data_len, require_disc, require_eq, require_gt, require_gte,
129 require_has_data, require_keys_eq, require_keys_neq, require_layout, require_neq,
130 require_owner, require_payer, require_signer, require_unique_2, require_unique_3,
131 require_version, require_writable,
132};
133
134pub use hopper_runtime::{require_lt, require_lte};
149
150pub use hopper_runtime::{err, error};
154
155pub use crate::hopper_load;
161
162pub use crate::receipts::{
164 emit_receipt, emit_tagged_receipt, emit_typed_receipt, set_return_data, Receipt,
165};