How to bridge assets between Ethereum and DBK Chain use Optimism SDK
How to bridge assets between Ethereum and DBK Chain use Optimism SDK
This tutorial explains how you can use the Optimism SDK to bridge ETH from L1 (Ethereum) to L2 (DBK Chain). The Optimism SDK is an easy way to add bridging functionality to your JavaScript-based application. It also provides some safety rails to prevent common mistakes that could cause ETH or ERC-20 tokens to be made inaccessible.
Dependencies
Create a Demo Project
You're going to use the Optimism SDK for this tutorial. Since the Optimism SDK is a Node.js library, you'll need to create a Node.js project to use it.
Make a Project Folder
Initialize the Project
Install the Optimism SDK
Install ethers.js
Add a Private Key to Your Environment
You need a private key in order to sign transactions. Set your private key as an environment variable with the export command. Make sure this private key corresponds to an address that has ETH.
Import Dependencies
Create a new file called index.js
and import the necessary dependencies.
Initialize the SDK
Initialize the SDK with the rpc of the ETH and DBK Chain.
Deposit ETH
Now that you have some ETH on L1 you can deposit that ETH into the L1StandardBridge
contract. You'll then receive the same number of ETH on L2 in return.
Check your wallet balance on L1
See how much ETH you have on L1 so you can confirm that the deposit worked later on.
Create a CrossChainMessenger instance
The Optimism SDK exports a CrossChainMessenger class that makes it easy to interact with the L1StandardBridge
contract.
Create an instance of the CrossChainMessenger class:
Deposit your ETH
Now you can deposit your ETH into the Standard Bridge contract. You'll deposit a small amount of ETH just to demonstrate the process.
Wait for the deposit to be relayed
You can use the waitForMessageStatus
function to wait for the deposit to be relayed to L2.
Check your wallet balance on L1
You should now have less ETH on L1.
Check your wallet balance on L2
You should now have more ETH on L2.
Withdraw ETH
You just bridged some ETH from L1 to L2. Nice! Now you're going to repeat the process in reverse to bridge some ETH from L2 to L1.
Start your withdrawal on L2
The first step to withdrawing ETH from L2 to L1 is to start the withdrawal on L2.
Check your wallet balance on L2
You should now have less ETH on L2, but your wallet balance on L1 will not have changed yet.
Wait until the withdrawal is ready to prove
The second step to withdrawing ETH from L2 to L1 is to prove to the bridge on L1 that the withdrawal happened on L2. You first need to wait until the withdrawal is ready to prove.
This step can take one hour. Feel free to take a quick break while you wait.
Prove the withdrawal on L1
Once the withdrawal is ready to be proven, you'll send an L1 transaction to prove that the withdrawal happened on L2.
Wait until the withdrawal is ready for relay
The final step to withdrawing ETH from L2 to L1 is to relay the withdrawal on L1. This can only happen after the fault proof period has elapsed. On OP Mainnet, this takes 7 days.
Relay the withdrawal on L1
Once the withdrawal is ready to be relayed you can finally complete the withdrawal process.
Wait until the withdrawal is relayed
Now you simply wait until the message is relayed.
Check your wallet balance on L1
You should now have more ETH on L1.
Last updated