Context
Parallax is integrating Moss for a live Kuru MON → USDC pre-sign simulation flow.
The previous live path halted while parsing a legitimate FlipOrderUpdated
event. Moss PR #138 has now been merged and addresses that receipt parsing
boundary:
We verified the merged implementation locally through build, lint, typecheck,
offline tests, and focused Kuru receipt tests.
The implementation now:
- represents
FlipOrderUpdated and FlippedOrderCreated as structured
Receipt changes;
- preserves the original Change identity and ordering;
- requires an immediately following same-market Trade whose taker is the
Kuru Router;
- continues to reject unsupported OrderBook events fail-closed.
Our local verification was offline. We are not claiming a locally reproduced
Live SUCCESS in this Issue.
Remaining blocker
The simulator resolves and reuses one base block internally for a simulation
run, but that pinned base block is not exposed through the public Simulator
API or through SimulateOutcome.
Parallax requires an explicit simulatorPinnedBlock value for its Live
Acceptance Gate.
A stage RPC blockNumber cannot be substituted for this value because it
describes a stage observation, not the base block pinned and reused by the
simulator for the complete simulation.
Without an authoritative simulator-pinned block, Parallax intentionally
remains fail-closed and returns UNKNOWN rather than claiming Live SUCCESS.
Requested confirmation
Could you please confirm the following two points?
1. Approved immutable revision
May Parallax pin this immutable Moss revision?
0c11b5ee672672d1b381afbabb587ae165805aa1
This is the merged commit for PR #138 and is currently our technical
candidate. We are not treating the merge itself as explicit approval for the
Parallax runtime pin.
2. Public simulator pinned-block API
Could Moss expose the simulator's pinned base block through a minimal public
API?
One compatible option would be:
interface Simulator {
simulate(root: CapabilityNode): Promise<SimulateOutcome>;
getPinnedBlockNumber(): Promise<string>;
}
An alternative would be to include the value directly in the simulation
result:
type SimulateOutcome = {
simulatorPinnedBlock: string;
// existing fields
};
The returned value only needs to identify, without log parsing or inference,
the same base block used throughout the simulation.
The Parallax adapter already probes an optional getPinnedBlockNumber()
method, so that API shape could be consumed without changing the current
adapter boundary.
Alternative
If adding this API to Moss is not preferred, please confirm whether Parallax
may vendor a minimal immutable change that only exposes the block already
resolved internally.
Scope and safety
This request does not involve:
- private keys or seed phrases;
- transaction signing;
- transaction broadcasting;
- custody or automatic execution;
- weakening receipt validation;
- replacing the pinned block with a stage RPC block number.
Until the immutable revision and pinned-block API are confirmed, Parallax will
use its Recorded Replay / fixture path for the demo and will not claim Live
SUCCESS.
Context
Parallax is integrating Moss for a live Kuru MON → USDC pre-sign simulation flow.
The previous live path halted while parsing a legitimate
FlipOrderUpdatedevent. Moss PR #138 has now been merged and addresses that receipt parsing
boundary:
0c11b5ee672672d1b381afbabb587ae165805aa1We verified the merged implementation locally through build, lint, typecheck,
offline tests, and focused Kuru receipt tests.
The implementation now:
FlipOrderUpdatedandFlippedOrderCreatedas structuredReceipt changes;
Kuru Router;
Our local verification was offline. We are not claiming a locally reproduced
Live SUCCESS in this Issue.
Remaining blocker
The simulator resolves and reuses one base block internally for a simulation
run, but that pinned base block is not exposed through the public
SimulatorAPI or through
SimulateOutcome.Parallax requires an explicit
simulatorPinnedBlockvalue for its LiveAcceptance Gate.
A stage RPC
blockNumbercannot be substituted for this value because itdescribes a stage observation, not the base block pinned and reused by the
simulator for the complete simulation.
Without an authoritative simulator-pinned block, Parallax intentionally
remains fail-closed and returns
UNKNOWNrather than claiming Live SUCCESS.Requested confirmation
Could you please confirm the following two points?
1. Approved immutable revision
May Parallax pin this immutable Moss revision?
This is the merged commit for PR #138 and is currently our technical
candidate. We are not treating the merge itself as explicit approval for the
Parallax runtime pin.
2. Public simulator pinned-block API
Could Moss expose the simulator's pinned base block through a minimal public
API?
One compatible option would be:
An alternative would be to include the value directly in the simulation
result:
The returned value only needs to identify, without log parsing or inference,
the same base block used throughout the simulation.
The Parallax adapter already probes an optional
getPinnedBlockNumber()method, so that API shape could be consumed without changing the current
adapter boundary.
Alternative
If adding this API to Moss is not preferred, please confirm whether Parallax
may vendor a minimal immutable change that only exposes the block already
resolved internally.
Scope and safety
This request does not involve:
Until the immutable revision and pinned-block API are confirmed, Parallax will
use its Recorded Replay / fixture path for the demo and will not claim Live
SUCCESS.