1. Grab the `OptimismPortalProxy` address and, using the wallet that you want to have ETH on your Rollup, send that address a small amount of ETH on Goerli (0.1 or less is fine). It may take up to 5 minutes for that ETH to appear in your wallet on L2.
1. Grab the L1 bridge proxy contract address and, using the wallet that you want to have ETH on your Rollup, send that address a small amount of ETH on Goerli (0.1 or less is fine). It may take up to 5 minutes for that ETH to appear in your wallet on L2.
When building applications for use with your OP Stack, you can continue to use [the Optimism JavaScript SDK](https://sdk.optimism.io/).
The main difference is you need to provide some contract addresses to the `CrossDomainMessenger` because they aren't preconfigured.
## Contract addresses
### L1 contract addresses
The contract addresses are in `.../optimism/packages/contracts-bedrock/deployments/getting-started`, which you created when you deployed the L1 contracts.
| Contract name when creating `CrossDomainMessenger` | File with address |
@@ -21,7 +21,7 @@ The OP Stack needs YOU (yes you!) to help review the codebase for bugs and vulne
...
@@ -21,7 +21,7 @@ The OP Stack needs YOU (yes you!) to help review the codebase for bugs and vulne
## Documentation help
## Documentation help
Spot a typo in these docs? See something that could be a little clearer? Head over to the Optimism Monorepo where the OP Stack docs are hosted and make a pull request. No contribution is too small!
Spot a typo in these docs? See something that could be a little clearer? Head over to the Optimism Monorepo where the OP Stack docs are hosted and make a pull request. No contribution is too small!
## Community contributions
## Community contributions
...
@@ -30,4 +30,4 @@ If you’re looking for other ways to get involved, here are a few options:
...
@@ -30,4 +30,4 @@ If you’re looking for other ways to get involved, here are a few options:
- Grab an idea from the [project ideas list](https://github.com/ethereum-optimism/optimism-project-ideas) to and building
- Grab an idea from the [project ideas list](https://github.com/ethereum-optimism/optimism-project-ideas) to and building
- Suggest a new idea for the [project ideas list](https://github.com/ethereum-optimism/optimism-project-ideas)
- Suggest a new idea for the [project ideas list](https://github.com/ethereum-optimism/optimism-project-ideas)
- Improve the [Optimism Community Hub](https://community.optimism.io/)[documentation](https://github.com/ethereum-optimism/community-hub) or [tutorials](https://github.com/ethereum-optimism/optimism-tutorial)
- Improve the [Optimism Community Hub](https://community.optimism.io/)[documentation](https://github.com/ethereum-optimism/community-hub) or [tutorials](https://github.com/ethereum-optimism/optimism-tutorial)
- Become an Optimism Ambassador, Support Nerd, and more in the [Optimism Discord](https://discord-gateway.optimism.io/)
- Become an Optimism Ambassador, Support Nerd, and more in the [Optimism Discord](https://discord-gateway.optimism.io/)
returneth.L2BlockRef{},fmt.Errorf("expected L2 genesis hash to match L2 block at genesis block number %d: %s <> %s",genesis.L2.Number,hash,genesis.L2.Hash)
}
l1Origin=genesis.L1
sequenceNumber=0
}else{
txs:=block.Transactions()
iftxs.Len()==0{
returneth.L2BlockRef{},fmt.Errorf("l2 block is missing L1 info deposit tx, block hash: %s",hash)
}
tx:=txs[0]
iftx.Type()!=types.DepositTxType{
returneth.L2BlockRef{},fmt.Errorf("first payload tx has unexpected tx type: %d",tx.Type())
}
info,err:=L1InfoDepositTxData(tx.Data())
iferr!=nil{
returneth.L2BlockRef{},fmt.Errorf("failed to parse L1 info deposit tx from L2 block: %w",err)
m.l.Debug("Reusing the previous fee cap","previous",tx.GasFeeCap(),"suggested",gasFeeCap)
ifreusedTip{
gasFeeCap=tx.GasFeeCap()
m.l.Debug("Reusing the previous fee cap","previous",tx.GasFeeCap(),"suggested",gasFeeCap)
reusedFeeCap=true
gasFeeCap=tx.GasFeeCap()
reusedFeeCap=true
}else{
m.l.Debug("Overriding the fee cap to enforce a price bump because we increased the tip","previous",tx.GasFeeCap(),"suggested",gasFeeCap,"new",thresholdFeeCap)
gasFeeCap=thresholdFeeCap
}
}elseifthresholdFeeCap.Cmp(gasFeeCap)>0{
}elseifthresholdFeeCap.Cmp(gasFeeCap)>0{
m.l.Debug("Overriding the fee cap to enforce a price bump","previous",tx.GasFeeCap(),"suggested",gasFeeCap,"new",thresholdFeeCap)
ifreusedTip{
// TODO (CLI-3620): Increase the basefee then recompute the feecap
m.l.Warn("Overriding the fee cap to enforce a price bump without increasing the tip. Will likely result in ErrReplacementUnderpriced",