Source References: Use Doppler deployments as the contract source of truth for deployed addresses and revisions.
Proceeds Split Migration
When to use
- Launch uses
UniswapV4MigratorSplitpath - You need to configure a recipient proceeds share and top-up distribution
- You are debugging migration payouts and split accounting
Prerequisites
- Confirm migrator module and hook addresses
- Confirm
TopUpDistributordeployment and pull-up permissions - Confirm token ordering (
token0 < token1) and asset orientation (isToken0in split config)
Core workflow
- Configure migrator initialization data:
- V4 pool params
- locker settings / beneficiaries
- proceeds split recipient and share
- If split enabled (
proceedsShare > 0), migrator storesSplitConfigurationvia_setSplit. - Ensure migrator is pre-approved in
TopUpDistributorviasetPullUp(migrator, true)in deployment configuration. - During migration:
- compute balances
_distributeSplit(...)transfers split share to recipientTOP_UP_DISTRIBUTOR.pullUp(...)forwards cumulative top-ups
- Verify final balances and
DistributeSplit/PullUpevents.
Critical constraints
MAX_SPLIT_SHARE = 0.5e18- split recipient must be nonzero
- only approved migrators can call
pullUp - top-ups are pair-specific and cumulative until migration pull-up
Failure modes
- Migrator not approved in
TopUpDistributor - Wrong
isToken0orientation causing split on wrong side - Share exceeds cap or recipient is zero
- Assuming top-ups are recoverable without migration
References
- CONFIG.md
- FLOW.md
- Source:
doppler/src/base/ProceedsSplitter.sol,doppler/src/TopUpDistributor.sol,doppler/src/migrators/UniswapV4MigratorSplit.sol