Update Position Operations
V2 positions use a separate ledger. Update balance handling and permissions before replacing position calls.1
Use PositionManager for V2 Positions
Configure PositionManager and Router using their
Polygon Contract Addresses.Use PositionManager for V2 balances and transfers, with
uint256
position IDs. Retain CTF token IDs for V1 markets.2
Approve Router
Grant these permissions from the account or contract holding the assets.
Existing CTF approvals do not carry over.
3
Replace Split, Merge, and Redemption Calls
Replace legacy calls with these V2 Router ABI signatures:
Router ABI
Router pulls assets from the caller and returns outputs to that caller in
one transaction. Do not pre-transfer assets to a module in a separate
transaction.
Update Payout Reads and Indexing
Read redemption proceeds through PositionManager:PositionManager ABI
- Split burns pUSD; merge and redemption mint pUSD.
- Attribute operations using transfer owners and recipients. A module event’s
initiatoris the immediate caller. - Avoid counting Router and module events as separate operations.
ConditionResolved
events. Refresh on RemainingConditionsDerivableAsNo and
SyntheticConditionDerivableAsYes, then read the module’s getResult or
PositionManager’s getPayout.
Update V2 Trading
For BUY orders, approve ExchangeV3 to spend pUSD, including fees. For SELL orders, approve ExchangeV3 as a PositionManager operator. Sign V2 orders against ExchangeV3 with EIP-712 domain version"3"; see the
API Migration Guide.