Interfaces
NetworkSource (synthetic now, real crawler later) and Venue (simulated now, contract adapter later).
Both proof-of-concept programs keep their data behind an interface, so the real implementation replaces one class without touching the UI.
NetworkSource#
Used by FractalNets. Today SyntheticNetworkSource implements it; a real crawler will replace it.
export interface NetworkSource {
getNetwork(address: string, options: NetworkOptions): Promise<Network>;
}
export interface NetworkOptions {
size: "small" | "medium" | "large" | "huge";
reseed: number;
}
export interface Network {
nodes: NetNode[];
edges: NetEdge[];
meta: NetMeta; // meta.synthetic is true for generated networks
}
export interface NetNode {
id: string;
address: string;
age_days: number;
funded_at: number;
depth: number;
connections: number;
supply_share: number;
role: "root" | "hub" | "chain" | "leaf" | "satellite";
}
export interface NetEdge {
source: string;
target: string;
amount: number;
block: number;
}Venue#
Used by Pool. Today SimulatedVenue implements it; a contract adapter will replace it.
export interface Venue {
/** Counterparty orders for batch n. */
simOrders(n: number, market: string, ref: number, batchMs: number): SealedOrder[];
/** Clears a batch at the midpoint with the price guard. */
settle(orders: SealedOrder[], mid: number, samples: number[], bandBps: number): BatchResult;
}
export interface BatchResult {
voided: boolean;
mid: number;
sampleMean: number;
deviationBps: number;
fills: Fill[];
crossed: number;
}Last updated 2026-09-28

