chore: sync submodule state (parent ref update)

Made-with: Cursor
This commit is contained in:
defiQUG
2026-03-02 12:14:07 -08:00
parent c2f4fa75f1
commit 9b511e5397
21 changed files with 2504 additions and 41 deletions

143
config/scenario-schema.json Normal file
View File

@@ -0,0 +1,143 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "ScenarioSpec",
"description": "Formal scenario input for reproducible, comparable sim runs. PRs that tweak k/fee can be tested against the same scenario file.",
"type": "object",
"required": [
"scenario",
"graphMode",
"topology",
"chainsIncluded",
"tokensIncluded",
"epochs"
],
"properties": {
"scenario": {
"type": "string",
"description": "Unique id, e.g. hub_only_11, full_quote_1_56_137, bridge_shock_137_56"
},
"graphMode": {
"type": "string",
"enum": [
"design",
"deployed"
],
"description": "design = topology + params only; deployed = deployment-status.json"
},
"topology": {
"type": "string",
"enum": [
"hub",
"full_quote",
"mixed"
],
"description": "hub = one PMM per cW vs hub per chain; full_quote = cW vs all anchors; mixed = hub on some chains, full_quote on others"
},
"chainsIncluded": {
"type": "array",
"items": {
"type": "string"
},
"description": "Chain IDs, e.g. [\"1\", \"56\", \"137\"]"
},
"tokensIncluded": {
"type": "array",
"items": {
"type": "string"
},
"description": "cW token symbols, e.g. [\"cWUSDT\", \"cWUSDC\"]"
},
"epochBlocks": {
"type": "integer",
"minimum": 1,
"description": "Blocks per epoch (optional; if absent, epoch is logical)"
},
"epochs": {
"type": "integer",
"minimum": 1,
"description": "Number of epochs to run"
},
"orderflowModel": {
"type": "object",
"description": "Distribution + volume ranges for synthetic trades",
"properties": {
"distribution": {
"type": "string",
"enum": [
"uniform",
"lognormal",
"pareto",
"poisson"
],
"default": "uniform"
},
"volumeMinUnits": {
"type": "number",
"minimum": 0
},
"volumeMaxUnits": {
"type": "number",
"minimum": 0
},
"tradesPerEpoch": {
"type": "integer",
"minimum": 0
},
"paretoAlpha": {
"type": "number",
"minimum": 0.5,
"description": "Pareto alpha (e.g. 1.52.5 for whale-heavy)"
}
}
},
"bridgeShock": {
"type": "object",
"description": "Optional bridge shock: from chain, to chain, magnitude, duration",
"properties": {
"fromChain": {
"type": "string"
},
"toChain": {
"type": "string"
},
"magnitudeFraction": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"durationEpochs": {
"type": "integer",
"minimum": 1
}
}
},
"oracleModel": {
"type": "string",
"enum": [
"static",
"stochastic"
],
"default": "static"
},
"latencyModel": {
"type": "object",
"description": "Finality per bridge, rho(Delta t) params",
"properties": {
"finalityBlocksPerChainPair": {
"type": "object",
"additionalProperties": {
"type": "number"
}
},
"rhoPerBlockBps": {
"type": "number",
"description": "Latency penalty per block in bps (piecewise linear)"
}
}
},
"seed": {
"type": "integer",
"description": "Optional RNG seed for deterministic runs; if omitted, derived from scenario name"
}
}
}