pub trait CircuitSubmitAPI<T, Balance>where
T: Config,{
// Required methods
fn on_extrinsic_trigger(
origin: <T as Config>::RuntimeOrigin,
side_effects: Vec<SideEffect<<T as Config>::AccountId, Balance>, Global>,
speed_mode: SpeedMode,
preferred_security_level: SecurityLvl
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>;
fn on_remote_origin_trigger(
origin: <T as Config>::RuntimeOrigin,
order_origin: <T as Config>::AccountId,
side_effects: Vec<SideEffect<<T as Config>::AccountId, Balance>, Global>,
speed_mode: SpeedMode
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>;
fn bid(
origin: <T as Config>::RuntimeOrigin,
sfx_id: <T as Config>::Hash,
amount: Balance
) -> Result<PostDispatchInfo, DispatchErrorWithPostInfo<PostDispatchInfo>>;
fn store_gmp_payload(id: H256, payload: H256) -> bool;
fn get_gmp_payload(id: H256) -> Option<H256>;
fn verify_sfx_proof(
target: [u8; 4],
speed_mode: SpeedMode,
source: Option<[u8; 32]>,
encoded_proof: Vec<u8, Global>
) -> Result<InclusionReceipt<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number>, DispatchError>;
}