subscribeAmm
Subscribe to seqenced updates of the target AMM endstate of angstrom for block N + 1. This Stream will only start updating once the pool moves from the current block N state. It will update every 100ms. It operates in 2 different modes:
- Before
PreProposalAggregation: The node will continously build the book from all valid orders for block N inside it's local order storage - After
PreProposalAggregation: The node will build the book from the orders in the currentPreProposalAggregation- this is too prevent anyone from submitting invalid orders (they are valid, but after the auction, so they will always fail) that will skew UCP in the stream
Params
This subscription method currently does not accept any filtering parameters. Subscribers will receive all empty block attestations emitted by the connected Angstrom node.
| Parameter | Type | Description |
|---|---|---|
pools | HashSet | the set of pool_ids to receive updates for |
Request
To subscribe, send a JSON-RPC request to the Angstrom WebSocket endpoint:
wscat -c ws://<ANGSTROM_URL>:<ANGSTROM_PORT>
> {"jsonrpc": "2.0", "id": 1, "method": "angstrom_subscribeAmm", "params": [["0x234241..112"]]}
Response
When an
{
"jsonrpc": "2.0",
"method": "angstrom_subscribeAmm",
"params": {
"subscription": "SUBSCRIPTION_ID_EXAMPLE_XYZ789",
"result": {
// What update this is. There are max 120 updates per block
"seq_id": 0,
"current_block:": 123,
"angstrom_pool_id": 0x2341,
"uni_pool_id": 0x21111,
"liquidity": 49412451353253425,
"sqrt_price_x96": 12412451353253425,
"tick": 10040
}
}
}
Using the Slot0 data
These updates allow anyone to simulate swapping on the expected angstrom state after a bundle lands.