Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions docs/mainnet-deployment-addresses.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
{
"id": "deploymentStatusOracle",
"label": "Deployment Status Oracle",
"address": "0x5561f668DaED6f1A31bA83Cf450F842C6C921A7F"
"address": "0x9f60ca8EfCc044EB5CFF8f71d46fC292e4b1A886"
},
{
"id": "multicall3",
Expand Down Expand Up @@ -53,34 +53,34 @@
{
"id": "shareTokenFactory",
"label": "ShareTokenFactory",
"address": "0xFE76cb4a5Df7C20c8c71BdA31A243a21Dd40eDa7"
"address": "0x9e3adB2eFB22B4C8471B3A439127C9c1e42DA197"
},
{
"id": "priceOracleManagerAndOperatorQueuerFactory",
"label": "OpenOracle Price Coordinator Factory",
"address": "0x53549F52578C67b84FFa6EA16B5dE85Ea4BF95B2"
"address": "0x4318D853ccFCa15ab973621ea4BBE1Aa6A628C93"
},
{
"id": "securityPoolForker",
"label": "Security Pool Forker",
"address": "0xF50b3cf192B155085050fF107b21Aa0b6E39cC71"
"address": "0x12DDac4Eaa2854eBF38D5e6cd116538003D6f608"
},
{
"id": "escalationGameFactory",
"label": "Escalation Game Factory",
"address": "0x8cb282741cE860e9c93c256B176746AC252dE830"
"address": "0x0e15497C658F9530C85931A02e9E3f6047F9e62F"
},
{
"id": "securityPoolFactory",
"label": "Security Pool Factory",
"address": "0x071D120657D5Cd261F36fF4EEA3AD63917fF0E89"
"address": "0x5b7F5A06B3eBf67eE8f5FF03718a05904F700052"
}
],
"derivedContracts": [
{
"id": "escalationGameProofVerifier",
"label": "Escalation Game Proof Verifier",
"address": "0xcbBB0262c97bFf536fF902fA40790fAaED9C8A5B"
"address": "0x77a2BfF40a775fA2d05a6574926c66E00a369E82"
}
]
}
4 changes: 2 additions & 2 deletions docs/operator-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,8 @@ child-pool creation, REP splitting, and child outcome selection.
| Proxy authority | The migration proxy is owner-controlled by the forker and wraps `lockRep`, `forkUniverse`, `splitToChild`, and child REP sweeping. | [SecurityPoolMigrationProxy.sol](../solidity/contracts/peripherals/SecurityPoolMigrationProxy.sol) |
| Child REP backing | During vault migration, the forker ensures the child pool is backed by enough child-universe REP for cumulative migrated REP credited to that child. | [SecurityPoolForkerVaultMigrationBase.sol](../solidity/contracts/peripherals/SecurityPoolForkerVaultMigrationBase.sol) |
| Split shortfall tracking | The forker tracks how much REP has already been split for each parent-pool/outcome pair and only splits the shortfall before sweeping child REP into the child pool. | [SecurityPoolForkerVaultMigrationBase.sol](../solidity/contracts/peripherals/SecurityPoolForkerVaultMigrationBase.sol) |
| Continuation balance snapshot | Child continuations initialize live `Invalid`/`Yes`/`No` balances from the parent escalation game, while forked escrow separately tracks source principal and arriving child REP backing for inherited unresolved deposits. | [`SecurityPoolForkerVaultMigrationBase._initializeChildForkedEscalationGameIfNeeded`](../solidity/contracts/peripherals/SecurityPoolForkerVaultMigrationBase.sol), [`EscalationGameCalculations.getOutcomeBalances`](../solidity/contracts/peripherals/EscalationGameCalculations.sol), [`EscalationGameCarry.initializeForkCarrySnapshotWithResolutionBalances`](../solidity/contracts/peripherals/EscalationGameCarry.sol), [`EscalationGameEscrow.recordForkedEscrowForOutcome`](../solidity/contracts/peripherals/EscalationGameEscrow.sol) |
| Own-fork REP buckets | In an own fork, the forker splits auctionable child REP into a vault bucket and an unresolved-escalation bucket according to the pre-burn pool REP and escalation REP mix. | [`SecurityPoolForker.forkZoltarWithOwnEscalationGame`](../solidity/contracts/peripherals/SecurityPoolForker.sol), [`SecurityPoolForkerVaultMigrationBase._initializeOwnForkRepBuckets`](../solidity/contracts/peripherals/SecurityPoolForkerVaultMigrationBase.sol) |
| Continuation balance snapshot | Child continuations initialize live `Invalid`/`Yes`/`No` balances from the parent escalation game, while forked escrow separately tracks source principal and arriving child REP backing for inherited unresolved deposits. | [`SecurityPoolForkerBase._initializeChildForkedEscalationGameIfNeeded`](../solidity/contracts/peripherals/SecurityPoolForkerBase.sol), [`EscalationGameCalculations.getOutcomeBalances`](../solidity/contracts/peripherals/EscalationGameCalculations.sol), [`EscalationGameCarry.initializeForkCarrySnapshotWithResolutionBalances`](../solidity/contracts/peripherals/EscalationGameCarry.sol), [`EscalationGameEscrow.recordForkedEscrowForOutcome`](../solidity/contracts/peripherals/EscalationGameEscrow.sol) |
| Own-fork REP buckets | In an own fork, the forker splits auctionable child REP into a vault bucket and an unresolved-escalation bucket according to the pre-burn pool REP and escalation REP mix. | [`SecurityPoolForker.forkZoltarWithOwnEscalationGame`](../solidity/contracts/peripherals/SecurityPoolForker.sol), [`SecurityPoolForkerBase._initializeOwnForkRepBuckets`](../solidity/contracts/peripherals/SecurityPoolForkerBase.sol) |
| Forked escrow scaling | Forked escrow records source principal and child REP by original outcome; later claims scale source amounts into child REP with cumulative ceiling division. | [`EscalationGameEscrow.recordForkedEscrowForOutcome`](../solidity/contracts/peripherals/EscalationGameEscrow.sol), [`EscalationGameEscrow._consumeForkedEscrow`](../solidity/contracts/peripherals/EscalationGameEscrow.sol) |
| Child-pool deployment window | Child pools are created lazily for selected fork outcomes, but only while the parent pool is `PoolForked` and the eight-week migration window is still open. | [SecurityPoolForkerVaultMigrationBase.sol](../solidity/contracts/peripherals/SecurityPoolForkerVaultMigrationBase.sol), [SecurityPoolUtils.sol](../solidity/contracts/peripherals/SecurityPoolUtils.sol) |
| Own-fork child outcome | In an own-fork child, the child's outcome is fixed by the child's Zoltar outcome index. | [SecurityPoolForker.sol](../solidity/contracts/peripherals/SecurityPoolForker.sol) |
Expand Down
3 changes: 2 additions & 1 deletion solidity/contracts/peripherals/EscalationGameForker.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@ import { BinaryOutcomes } from './BinaryOutcomes.sol';
import { SecurityPoolUtils } from './SecurityPoolUtils.sol';
import { SecurityPoolMigrationProxy } from './SecurityPoolMigrationProxy.sol';
import { SecurityPoolForkerVaultMigrationBase } from './SecurityPoolForkerVaultMigrationBase.sol';
import { SecurityPoolForkerBase } from './SecurityPoolForkerBase.sol';
import { SecurityPoolForkerForkData } from './SecurityPoolForkerTypes.sol';

contract EscalationGameForker is SecurityPoolForkerVaultMigrationBase {
constructor(Zoltar _zoltar) SecurityPoolForkerVaultMigrationBase(_zoltar) {}
constructor(Zoltar _zoltar) SecurityPoolForkerBase(_zoltar) {}

function _initializeChildForkedEscalationGameIfNeeded(ISecurityPool parent, ISecurityPool child) internal override {
ISecurityPoolForkerChildEscalationGameInitializer(address(this)).initializeChildForkedEscalationGameIfNeeded(
Expand Down
Loading