-
Notifications
You must be signed in to change notification settings - Fork 96
feat: add uniV4 deployments to supersim #397
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Deploying supersim with
|
Latest commit: |
ffea9c3
|
Status: | ✅ Deploy successful! |
Preview URL: | https://69535344.supersim.pages.dev |
Branch Preview URL: | https://06-09-supersim-uniswap.supersim.pages.dev |
optimizer_runs = 1 | ||
via_ir = true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why did you add these? just curious for my own learning
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the v4 contracts are pretty huge. and our genesis script fails since it enforces limits via --sizes
. So without optimization, v4 isn't straight up deployable. So they tinkered with the optimizations to just get the bytecode to the right size.
We could remove the limits in our scripts so that we don't need any of this
ICreate2Deployer internal constant _deployer = ICreate2Deployer(0x13b0D85CcB8bf860b6b79AF3029fCA081AE9beF2); | ||
|
||
/// @notice Create2Deployer creationCode. | ||
bytes internal constant _deployerCode = hex"6080604052600436106100435760003560e01c8063076c37b21461004f578063481286e61461007157806356299481146100ba57806366cfa057146100da57600080fd5b3661004a57005b600080fd5b34801561005b57600080fd5b5061006f61006a366004610327565b6100fa565b005b34801561007d57600080fd5b5061009161008c366004610327565b61014a565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100c657600080fd5b506100916100d5366004610349565b61015d565b3480156100e657600080fd5b5061006f6100f53660046103ca565b610172565b61014582826040518060200161010f9061031a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604052610183565b505050565b600061015683836102e7565b9392505050565b600061016a8484846102f0565b949350505050565b61017d838383610183565b50505050565b6000834710156101f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064015b60405180910390fd5b815160000361025f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016101eb565b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff8116610156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016101eb565b60006101568383305b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b61014e806104ad83390190565b6000806040838503121561033a57600080fd5b50508035926020909101359150565b60008060006060848603121561035e57600080fd5b8335925060208401359150604084013573ffffffffffffffffffffffffffffffffffffffff8116811461039057600080fd5b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156103df57600080fd5b8335925060208401359150604084013567ffffffffffffffff8082111561040557600080fd5b818601915086601f83011261041957600080fd5b81358181111561042b5761042b61039b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156104715761047161039b565b8160405282815289602084870101111561048a57600080fd5b826020860160208301376000602084830101528095505050505050925092509256fe608060405234801561001057600080fd5b5061012e806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063249cb3fa14602d575b600080fd5b603c603836600460b1565b604e565b60405190815260200160405180910390f35b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915281205460ff16608857600060aa565b7fa2ef4600d742022d532d4747cb3547474667d6f13804902513b2ec01c848f4b45b9392505050565b6000806040838503121560c357600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff8116811460ed57600080fd5b80915050925092905056fea26469706673582212205ffd4e6cede7d06a5daf93d48d0541fc68189eeb16608c1999a82063b666eb1164736f6c63430008130033a2646970667358221220fdc4a0fe96e3b21c108ca155438d37c9143fb01278a3c1d274948bad89c564ba64736f6c63430008130033"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh does the supersim genesis not include preinstalls? do you know how preinstalls are installed on op stack chains? no need to do it in this pr, but we might want to consider creating a ticket so all preinstalls come automatically on all supersim chains. This bytecode is also here: https://github.com/ethereum-optimism/optimism/blob/555a5d13a14d040d6ea84964e93172c24bb11ac1/packages/contracts-bedrock/src/libraries/Preinstalls.sol#L82-L83
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The supersim L2s do have the preinstalls. The forge script is run on against vanilla anvil and not vanilla supersim state.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Kinda annoying. Would be great to figure out how to do have them available though
genesis/worldgen/periphery.go
Outdated
@@ -57,7 +57,23 @@ func deployPeripheryContracts(logger log.Logger, l2Host *script.Host, peripheryA | |||
return fmt.Errorf("failed to dump state after deploying periphery contracts: %w", err) | |||
} | |||
|
|||
deployL2AuxilliaryContractsScript, cleanup, err := script.WithScript[DeployL2PeripheryContractsScript](l2PeripheryHost, "DeployL2AuxilliaryContracts.s.sol", "DeployL2AuxilliaryContracts") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is it ok for this to be sharing l2PeripheryHost
across both the deployL2AuxilliaryContractsScript
and the deployL2PeripheryContractsScript
or should each have its own dedicated host?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yea it should be fine but i do want to split them later into separate steps. Gonna do that in a followup PR
693df55
to
be615ee
Compare
not logging the addresses for now on startup. But will available as apart of the chain addresses in viem