You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ConsensusApp Deployed for Both Margin AND Escrow Channels (EscrowApp.sol never deployed) #537
The deployment script deploys ConsensusApp.sol for BOTH the Margin channel and the Escrow channel, but EscrowApp.sol — which contains proper swap verification logic — was never deployed. The TODO comments at lines 86-87 were never resolved:
constEscrowApp=awaitEscrowAppFactory.connect(deployer).deploy(gasOverrides);// TODO: change with EscrowApp when ready
Both lines use the ConsensusApp factory. Both deployed contracts have identical bytecode on-chain.
Impact:
EscrowApp.sol contains _requireAllocationSwapped() which validates that asset destinations actually swap between participants. Without this check, ConsensusApp only validates unanimous signatures and total amount unchanged — escrow settlements can be finalized without proper asset redistribution.
Scenario:
Alice deposits 100 USDT, Bob deposits 100 USDT into Escrow channel
They agree on settlement: Alice gets 150, Bob gets 50
Bob submits a DIFFERENT state: Alice gets 50, Bob gets 150 (same total, swapped)
ConsensusApp: both signed + total unchanged = PASS
Activity