Skip to main content
A thin adapter that emits DarkPool attribution events alongside the underlying predict::* call. The pattern is “TypeScript PTB places the Predict call, then immediately places our attribute_* call in the same PTB.” This avoids any Move-level dependency on Predict’s branch-pinned types.

Events emitted

Entry functions

Each reads no state. It just emits the event.

Wired in

  • Resolver settlement PTB (buildAtomicSettlementPTB) to attribute_redeem per redeemed position.
  • scripts/supply-plp.ts to attribute_plp_supply after predict::supply.

Not wired in (republish-era follow-up)

  • Frontend mints (buildPredictMintPTB).
  • Agent-service mints.
  • No indexer stream consumes facade events directly today. The indexer reads predict::PositionMinted / PositionRedeemed instead.

Tests

tests/predict_facade_tests.move: each attribute_* function emits exactly one event.