pub trait CircuitSubmitAPI<T: ConfigSystem, Balance> {
// Required methods
fn on_extrinsic_trigger(
origin: OriginFor<T>,
side_effects: Vec<SideEffect<T::AccountId, Balance>>,
speed_mode: SpeedMode,
preferred_security_level: SecurityLvl
) -> DispatchResultWithPostInfo;
fn on_remote_origin_trigger(
origin: OriginFor<T>,
order_origin: T::AccountId,
side_effects: Vec<SideEffect<T::AccountId, Balance>>,
speed_mode: SpeedMode
) -> DispatchResultWithPostInfo;
fn bid(
origin: OriginFor<T>,
sfx_id: SideEffectId<T>,
amount: Balance
) -> DispatchResultWithPostInfo;
fn store_gmp_payload(id: H256, payload: H256) -> bool;
fn get_gmp_payload(id: H256) -> Option<H256>;
fn verify_sfx_proof(
target: TargetId,
speed_mode: SpeedMode,
source: Option<ExecutionSource>,
encoded_proof: Vec<u8>
) -> Result<InclusionReceipt<BlockNumberFor<T>>, DispatchError>;
}