export interface StateInterface { emergencyHaltWallet: string; halted: boolean; protocolFeePercent: number; pairGatekeeper: boolean; communityContract: string; pairs: { pair: [string, string]; priceLogs?: { orderID: string; token: string; logs: PriceLogInterface[]; }; orders: OrderInterface[]; }[]; invocations: string[]; foreignCalls: ForeignCallInterface[]; } export interface ActionInterface { input: any; caller: string; } export interface AddPairInterface { function: "addPair"; pair: [string, string]; } export interface CreateOrderInterface { function: "createOrder"; transaction: string; token: string; pair: [string, string]; price?: number; } export interface CancelOrderInterface { function: "cancelOrder"; orderID: string; } export interface HaltInterface { function: "halt"; } export interface TogglePairGatekeeperInterface { function: "togglePairGatekeeper"; } export interface SetCommunityContractInterface { function: "setCommunityContract"; id: string; } export interface InvokeInterface { function: "invoke"; foreignContract: string; invocation: InvocationInterface; } export interface ReadOutboxInterface { function: "readOutbox"; contract: string; id: string; } export interface ForeignTransferInterface { function: "foreignTransfer"; tokenID: string; target: string; qty: number; } export interface OrderInterface { id: string; transfer: string; creator: string; token: string; price: number; quantity: number; originalQuantity: number; } export interface ForeignCallInterface { txID: string; contract: string; input: InvocationInterface; } export interface InvocationInterface { function: string; [key: string | number]: any; } export interface PriceLogInterface { id: string; price: number; qty: number; }