• Mark Tyneway's avatar
    contracts-bedrock: flexible deploy script addresses · 13748031
    Mark Tyneway authored
    Allow for the addresses used in the deploy script to be defined
    by a JSON file at the the path defined by the `ADDRESSES` environment
    variable. This makes the deploy script easy to use when it comes to
    composing with the `superchain-registry`. Just set the `ADDRESSES`
    env var to the path on the local filesystem that points to the
    `extra/addresses/<network>/<l2>.json` file. See the
    [example](https://github.com/ethereum-optimism/superchain-registry/blob/main/superchain/extra/addresses/mainnet/op.json) here.
    
    This gives a path forward for deprecating the concept of `deployments`
    in the `contracts-bedrock` package. We really only use the `deployments`
    directory for getting contract addresses. We want a single source of
    truth for contract addresses which is `superchain-registry`. Using this
    env var allows the deploy script to easily compose with
    `superchain-registry`.
    
    `ffi` and `jq` are used instead of `vm.readFile` to break out of the
    security properties that foundry uses, we do not want to need to specify
    all possible directories on the filesystem as readable in the
    `foundry.toml`
    13748031
Deploy.s.sol 53.3 KB