Remove the use of L2 chain & contracts for running nitro nodes (#11)

Part of [Create bridge channel in go-nitro](https://www.notion.so/Create-bridge-channel-in-go-nitro-22ce80a0d8ae4edb80020a8f250ea270)
- Remove L2 stack setup from demo steps
- Remove steps to deploy l2 contract

Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
Co-authored-by: Neeraj <neeraj.rtly@gmail.com>
Reviewed-on: #11
This commit is contained in:
nabarun 2024-09-30 04:24:38 +00:00
parent 2826bbd67d
commit 034778ebeb
10 changed files with 27 additions and 226 deletions

View File

@ -2,24 +2,20 @@
## Setup
### L1 eth and L2 Optimism Stacks
### eth-stack
- Clone the stack repo:
```bash
laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-eth-stacks --pull
laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-optimism-stack --pull
```
- Clone required repositories:
```bash
# L1 (fixturenet-eth)
# fixturenet-eth
laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth setup-repositories --pull
# L2 (optimism)
laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism setup-repositories --pull
# If this throws an error as a result of being already checked out to a branch/tag in a repo, remove all repositories from that stack and re-run the command
# The repositories are located in $HOME/cerc by default
```
@ -30,12 +26,9 @@
# Remove any older foundry image with `latest` tag
docker rmi ghcr.io/foundry-rs/foundry:latest
# L1 (fixturenet-eth)
# fixturenet-eth
laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth build-containers --force-rebuild
# L2 (optimism)
laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism build-containers --force-rebuild
# If errors are thrown during build, old images used by this stack would have to be deleted
```
@ -51,8 +44,6 @@
```bash
laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth deploy init --output fixturenet-eth-spec.yml
laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism deploy init --output fixturenet-optimism-spec.yml
```
- Configure ports:
@ -75,28 +66,11 @@
...
```
- `fixturenet-optimism-spec.yml`
```yml
...
network:
ports:
op-geth:
- '9545:8545'
- '9546:8546'
...
```
- Create deployments:
Once you've made any needed changes to the spec files, create deployments from them:
```bash
laconic-so --stack ~/cerc/fixturenet-eth-stacks/stack-orchestrator/stacks/fixturenet-eth deploy create --spec-file fixturenet-eth-spec.yml --deployment-dir fixturenet-eth-deployment
laconic-so --stack ~/cerc/fixturenet-optimism-stack/stack/fixturenet-optimism deploy create --spec-file fixturenet-optimism-spec.yml --deployment-dir fixturenet-optimism-deployment
# Place them both in the same namespace (cluster)
cp fixturenet-eth-deployment/deployment.yml fixturenet-optimism-deployment/deployment.yml
```
- Env configuration:
@ -107,7 +81,7 @@
EOF
```
### Go-nitro
### go-nitro
- Clone the stack repo:
@ -205,7 +179,7 @@
## Run
- Start L1, L2 stacks:
- Start fixturenet eth stack:
(run steps in directory where the stack deployments had been created)
- Start `fixturenet-eth-deployment` deployment:
@ -228,80 +202,12 @@
laconic-so deployment --dir fixturenet-eth-deployment logs -f fixturenet-eth-geth-1
```
- Start `fixturenet-optimism-deployment` deployment:
```bash
laconic-so deployment --dir fixturenet-optimism-deployment start
```
NOTE: The `fixturenet-optimism-contracts` service will configure and deploy the Optimism contracts to L1, exiting when complete. This may take several minutes; you can follow the progress by following the container's logs
- Follow optimism contracts deployment logs:
```bash
laconic-so deployment --dir fixturenet-optimism-deployment logs -f fixturenet-optimism-contracts
```
- Check L2 logs:
```bash
laconic-so deployment --dir fixturenet-optimism-deployment logs -f op-geth
# Ensure new blocks are getting created
```
- Send ETH from L1 to L2 (run steps in directory where the stack deployments had been created)
- Get information about funded accounts on L1
```bash
curl 127.0.0.1:9898/accounts.csv
```
- Send some ETH from the desired account to the `L1StandardBridgeProxy` contract on L1 to bridge it to L2:
- Set the following variables:
```bash
L1_RPC=http://fixturenet-eth-geth-1:8545
L2_RPC=http://op-geth:8545
DEPLOYMENT_CONTEXT=1212
ACCOUNT=0xe6CE22afe802CAf5fF7d3845cec8c736ecc8d61F
```
- Read the bridge contract address from the L1 deployment records in the `op-node` container:
```bash
BRIDGE=$(laconic-so deployment --dir fixturenet-optimism-deployment exec op-node "cat /l1-deployment/$DEPLOYMENT_CONTEXT-deploy.json" | jq -r .L1StandardBridgeProxy)
# Get the funded account's pk
ACCOUNT_PK=$(laconic-so deployment --dir fixturenet-optimism-deployment exec op-node "jq -r '.AdminKey' /l2-accounts/accounts.json")
```
- Use cast to send ETH to the bridge contract:
```bash
laconic-so deployment --dir fixturenet-eth-deployment exec foundry "cast send --from $ACCOUNT --value 1ether $BRIDGE --rpc-url $L1_RPC --private-key $ACCOUNT_PK"
```
NOTE: This is for sending funds to the contracts deployer account which is also the Bridge node account
- Allow a couple minutes for the bridge to complete
- Check balance on L2
```bash
laconic-so deployment --dir fixturenet-eth-deployment exec foundry "cast balance $ACCOUNT --rpc-url $L2_RPC"
# 100000000000000000
```
- Deploy L1 nitro contracts
- Create a deployment spec-file for L1 nitro contract:
```bash
laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/nitro-contracts deploy init --output nitro-contracts-spec.yml --config "GETH_URL=http://host.docker.internal:8545,GETH_DEPLOYER_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,GETH_CHAIN_ID=1212,TOKEN_NAME=LaconicNetworkToken,TOKEN_SYMBOL=LNT,INITIAL_TOKEN_SUPPLY=129600"
laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/nitro-contracts deploy init --output nitro-contracts-spec.yml --config "GETH_URL=http://host.docker.internal:8545,GETH_DEPLOYER_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,GETH_CHAIN_ID=1212,TOKEN_NAME=TestToken,TOKEN_SYMBOL=TST,INITIAL_TOKEN_SUPPLY=129600"
```
- Create a deployment `nitro-contracts` from the spec file
@ -329,13 +235,12 @@
export NA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.NitroAdjudicator.address' /app/deployment/nitro-addresses.json")
export CA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.ConsensusApp.address' /app/deployment/nitro-addresses.json")
export VPA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.VirtualPaymentApp.address' /app/deployment/nitro-addresses.json")
export L1_ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json")
```
- Create a spec-file for the deployment, map container ports to host ports and set env variables:
```bash
laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/bridge deploy init --map-ports-to-host any-same --output bridge-nitro-spec.yml --config "NITRO_L1_CHAIN_URL=ws://host.docker.internal:8546,NITRO_L2_CHAIN_URL=ws://host.docker.internal:9546,NITRO_CHAIN_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,NITRO_SC_PK=0279651921cd800ac560c21ceea27aab0107b67daf436cdd25ce84cad30159b4,OPTIMISM_URL=http://host.docker.internal:9545,OPTIMISM_DEPLOYER_PK=$ACCOUNT_PK,TOKEN_NAME=LaconicNetworkToken,TOKEN_SYMBOL=LNT,INITIAL_TOKEN_SUPPLY=129600,NA_ADDRESS=$NA_ADDRESS,VPA_ADDRESS=$VPA_ADDRESS,CA_ADDRESS=$CA_ADDRESS,L1_ASSET_ADDRESS=$L1_ASSET_ADDRESS"
laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/bridge deploy init --map-ports-to-host any-same --output bridge-nitro-spec.yml --config "NITRO_CHAIN_URL=ws://host.docker.internal:8546,NITRO_CHAIN_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,NITRO_SC_PK=0279651921cd800ac560c21ceea27aab0107b67daf436cdd25ce84cad30159b4,TOKEN_NAME=TestToken,TOKEN_SYMBOL=TST,INITIAL_TOKEN_SUPPLY=129600,NA_ADDRESS=$NA_ADDRESS,VPA_ADDRESS=$VPA_ADDRESS,CA_ADDRESS=$CA_ADDRESS"
```
- Create a deployment from the spec file:
@ -349,20 +254,17 @@
```bash
laconic-so deployment --dir bridge-deployment start
# Check the l2 nitro contract deployments
laconic-so deployment --dir bridge-deployment logs l2-nitro-contracts -f
# Check the logs, ensure that the node is running
laconic-so deployment --dir bridge-deployment logs nitro-bridge -f
```
- Send custom tokens to Alice and Charlie on L1
- Send custom tokens to Alice and Charlie
- Export variables for L1 token address
```bash
export GETH_CHAIN_ID="1212"
export L1_ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json")
export ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json")
export A_CHAIN_ADDRESS="0xe22AD83A0dE117bA0d03d5E94Eb4E0d80a69C62a"
export C_CHAIN_ADDRESS="0xf1ac8Dd1f6D6F5c0dA99097c57ebF50CD99Ce293"
@ -372,10 +274,10 @@
```bash
# Send tokens to Alice
laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $L1_ASSET_ADDRESS --to $A_CHAIN_ADDRESS --amount 1000 --network geth"
laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $ASSET_ADDRESS --to $A_CHAIN_ADDRESS --amount 1000 --network geth"
#Send tokens to Charlie
laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $L1_ASSET_ADDRESS --to $C_CHAIN_ADDRESS --amount 1000 --network geth"
laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $ASSET_ADDRESS --to $C_CHAIN_ADDRESS --amount 1000 --network geth"
```
- Get the deployed nitro contract addresses (run in the directory where the deployments were created):
@ -386,10 +288,6 @@
export NA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.NitroAdjudicator.address' /app/deployment/nitro-addresses.json")
export CA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.ConsensusApp.address' /app/deployment/nitro-addresses.json")
export VPA_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.VirtualPaymentApp.address' /app/deployment/nitro-addresses.json")
# Contract address of bridge
export OPTIMISM_CHAIN_ID="42069"
export BRIDGE_ADDRESS=$(laconic-so deployment --dir bridge-deployment exec nitro-bridge "jq -r '.\"$OPTIMISM_CHAIN_ID\"[0].contracts.Bridge.address' /app/deployment/nitro-addresses.json")
```
```bash
@ -457,7 +355,6 @@
NA_ADDRESS=$NA_ADDRESS
VPA_ADDRESS=$VPA_ADDRESS
CA_ADDRESS=$CA_ADDRESS
BRIDGE_ADDRESS=$BRIDGE_ADDRESS
NITRO_BOOTPEERS=/dns4/host.docker.internal/tcp/3006/p2p/16Uiu2HAmJDxLM8rSybX78FH51iZq9PdrwCoCyyHRBCndNzcAYMes
NITRO_EXT_MULTIADDR=/dns4/host.docker.internal/tcp/3009
NITRO_L2=true
@ -480,7 +377,6 @@
NA_ADDRESS=$NA_ADDRESS
VPA_ADDRESS=$VPA_ADDRESS
CA_ADDRESS=$CA_ADDRESS
BRIDGE_ADDRESS=$BRIDGE_ADDRESS
NITRO_BOOTPEERS=/dns4/host.docker.internal/tcp/3006/p2p/16Uiu2HAmJDxLM8rSybX78FH51iZq9PdrwCoCyyHRBCndNzcAYMes
NITRO_EXT_MULTIADDR=/dns4/host.docker.internal/tcp/3010
NITRO_L2=true
@ -542,13 +438,13 @@
```bash
export BRIDGE_NITRO_ADDRESS=0xBBB676f9cFF8D242e9eaC39D063848807d3D1D94
export GETH_CHAIN_ID="1212"
export L1_ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json")
export ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.Token.address' /app/deployment/nitro-addresses.json")
```
- Create ledger channel between A and Bridge with custom token
```bash
laconic-so deployment --dir l1alice-nitro-deployment exec nitro-rpc-client "nitro-rpc-client direct-fund $BRIDGE_NITRO_ADDRESS --assetAddress $L1_ASSET_ADDRESS --alphaAmount 1000000 --betaAmount 1000000 -p 4005 -h nitro-node"
laconic-so deployment --dir l1alice-nitro-deployment exec nitro-rpc-client "nitro-rpc-client direct-fund $BRIDGE_NITRO_ADDRESS --assetAddress $ASSET_ADDRESS --alphaAmount 1000000 --betaAmount 1000000 -p 4005 -h nitro-node"
# Expected Output:
# Objective started DirectFunding-0x161d289a50222caa781db215bb82a3ede4f557217742245525b8e8cbff04ec21
@ -592,7 +488,7 @@
- Create ledger channel between C and Bridge with custom token
```bash
laconic-so deployment --dir l1charlie-nitro-deployment exec nitro-rpc-client "nitro-rpc-client direct-fund $BRIDGE_NITRO_ADDRESS --assetAddress $L1_ASSET_ADDRESS --alphaAmount 1000000 --betaAmount 1000000 -p 4005 -h nitro-node"
laconic-so deployment --dir l1charlie-nitro-deployment exec nitro-rpc-client "nitro-rpc-client direct-fund $BRIDGE_NITRO_ADDRESS --assetAddress $ASSET_ADDRESS --alphaAmount 1000000 --betaAmount 1000000 -p 4005 -h nitro-node"
# Expected Output:
# Objective started DirectFunding-0x69a3f09b6f4f94f033cf084e6e4a9453438c45b43606e9a95f5434f4c6527543
@ -882,20 +778,18 @@
sudo rm -rf nitro-contracts-deployment
```
- Clean up L1 and L2 deployments:
- Stop deployment and remove volumes:
- Clean up eth-stack deployment:
- Stop deployment and remove volume:
```bash
# Run where deployments are created
laconic-so deployment --dir fixturenet-optimism-deployment stop --delete-volumes
laconic-so deployment --dir fixturenet-eth-deployment stop --delete-volumes
```
- Clear deployments:
- Clear deployment:
```bash
# Run where deployments are created
sudo rm -rf fixturenet-optimism-deployment
sudo rm -rf fixturenet-eth-deployment
```

View File

@ -128,7 +128,7 @@
- Create a deployment spec-file for nitro contract:
```bash
laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/nitro-contracts deploy init --output nitro-contracts-spec.yml --config "GETH_URL=http://host.docker.internal:8545,GETH_DEPLOYER_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,GETH_CHAIN_ID=1212,TOKEN_NAME=LaconicNetworkToken,TOKEN_SYMBOL=LNT,INITIAL_TOKEN_SUPPLY=129600"
laconic-so --stack ~/cerc/nitro-stack/stack-orchestrator/stacks/nitro-contracts deploy init --output nitro-contracts-spec.yml --config "GETH_URL=http://host.docker.internal:8545,GETH_DEPLOYER_PK=888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218,GETH_CHAIN_ID=1212,TOKEN_NAME=TestToken,TOKEN_SYMBOL=TST,INITIAL_TOKEN_SUPPLY=129600"
```
- Create a deployment `nitro-contracts` from the spec file
@ -319,7 +319,7 @@
- Create virtual channel from Alice to Charlie
```bash
laconic-so deployment --dir alice-nitro-deployment exec nitro-rpc-client "nitro-rpc-client virtual-fund $COUNTERPARTY --amount 1000 -p 4005 -h nitro-node"
laconic-so deployment --dir alice-nitro-deployment exec nitro-rpc-client "nitro-rpc-client virtual-fund $COUNTERPARTY --amount 1000 -p 4005 -h nitro-node"
```
- Set the payment channel id in a variable

View File

@ -1,38 +1,13 @@
name: nitro-bridge
services:
l2-nitro-contracts:
image: cerc/nitro-client:local
restart: on-failure
environment:
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
OPTIMISM_DEPLOYER_PK: ${OPTIMISM_DEPLOYER_PK}
OPTIMISM_CHAIN_ID: ${OPTIMISM_CHAIN_ID:-42069}
OPTIMISM_URL: ${OPTIMISM_URL}
TOKEN_NAME: ${TOKEN_NAME}
TOKEN_SYMBOL: ${TOKEN_SYMBOL}
INITIAL_TOKEN_SUPPLY: ${INITIAL_TOKEN_SUPPLY}
DISABLE_DETERMINISTIC_DEPLOYMENT: ${DISABLE_DETERMINISTIC_DEPLOYMENT:-true}
L1_ASSET_ADDRESS: ${L1_ASSET_ADDRESS}
volumes:
- nitro_deployment:/app/deployment
- ../config/nitro-contracts/deploy-l2-contracts.sh:/app/deploy-l2-contracts.sh
command: ["bash", "-c", "/app/deploy-l2-contracts.sh"]
extra_hosts:
- "host.docker.internal:host-gateway"
nitro-bridge:
image: cerc/go-nitro:local
hostname: nitro-bridge
restart: unless-stopped
depends_on:
l2-nitro-contracts:
condition: service_started
environment:
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
OPTIMISM_CHAIN_ID: ${OPTIMISM_CHAIN_ID:-42069}
NITRO_L1_CHAIN_URL: ${NITRO_L1_CHAIN_URL}
NITRO_L2_CHAIN_URL: ${NITRO_L2_CHAIN_URL}
NITRO_CHAIN_URL: ${NITRO_CHAIN_URL}
NITRO_CHAIN_PK: ${NITRO_CHAIN_PK}
NITRO_SC_PK: ${NITRO_SC_PK}
NITRO_L1_MSG_PORT: ${NITRO_L1_MSG_PORT:-3005}

View File

@ -19,7 +19,6 @@ services:
NA_ADDRESS: ${NA_ADDRESS}
CA_ADDRESS: ${CA_ADDRESS}
VPA_ADDRESS: ${VPA_ADDRESS}
BRIDGE_ADDRESS: ${BRIDGE_ADDRESS}
NITRO_PUBLIC_RPC_HOST: nitro-node
entrypoint: ["bash", "-c", "/app/run-nitro-node.sh"]
volumes:

View File

@ -6,12 +6,10 @@ if [ -n "$CERC_SCRIPT_DEBUG" ]; then
fi
nitro_addresses_file="/app/deployment/nitro-addresses.json"
bridge_assets_map_file="/app/deployment/bridge-assets-map.toml"
bridge_config_file="/app/bridge.toml"
echo "Using the following environment variables:"
echo "NITRO_L1_CHAIN_URL: ${NITRO_L1_CHAIN_URL}"
echo "NITRO_L2_CHAIN_URL: ${NITRO_L2_CHAIN_URL}"
echo "NITRO_CHAIN_URL: ${NITRO_CHAIN_URL}"
echo "NITRO_CHAIN_PK: ${NITRO_CHAIN_PK}"
echo "NITRO_SC_PK: ${NITRO_SC_PK}"
echo "NITRO_L1_MSG_PORT: ${NITRO_L1_MSG_PORT}"
@ -23,15 +21,6 @@ echo "NITRO_L2_EXT_MULTIADDR: ${NITRO_L2_EXT_MULTIADDR}"
echo "NA_ADDRESS: ${NA_ADDRESS}"
echo "CA_ADDRESS: ${CA_ADDRESS}"
echo "VPA_ADDRESS: ${VPA_ADDRESS}"
echo "OPTIMISM_CHAIN_ID: ${OPTIMISM_CHAIN_ID}"
echo "Waiting for $bridge_assets_map_file to be ready"
while [ ! -e "$bridge_assets_map_file" ]; do
sleep 3
done
echo "File $bridge_assets_map_file found"
# Create required certs
./create-certs.sh
@ -40,23 +29,18 @@ echo "File $bridge_assets_map_file found"
cat <<EOF > "$bridge_config_file"
chainpk = "$NITRO_CHAIN_PK"
statechannelpk = "$NITRO_SC_PK"
l1chainurl = "$NITRO_L1_CHAIN_URL"
l2chainurl = "$NITRO_L2_CHAIN_URL"
l1chainurl = "$NITRO_CHAIN_URL"
nodel1msgport = $NITRO_L1_MSG_PORT
nodel2msgport = $NITRO_L2_MSG_PORT
rpcport = $NITRO_RPC_PORT
bridgepublicip = "$NITRO_PUBLIC_P2P_HOST"
nodel1ExtMultiAddr = "$NITRO_L1_EXT_MULTIADDR"
nodel2ExtMultiAddr = "$NITRO_L2_EXT_MULTIADDR"
assetmapfilepath = "$bridge_assets_map_file"
naaddress = "${NA_ADDRESS}"
vpaaddress = "${VPA_ADDRESS}"
caaddress = "${CA_ADDRESS}"
EOF
# Export bridge address
export BRIDGE_ADDRESS=$(jq -r ".\"$OPTIMISM_CHAIN_ID\"[0].contracts.Bridge.address" ${nitro_addresses_file})
# Start bridge
echo "Starting nitro-bridge"
./nitro-bridge -config $bridge_config_file

View File

@ -22,7 +22,6 @@ echo "Using Nitro contract addresses:"
echo "NA_ADDRESS: ${NA_ADDRESS}"
echo "CA_ADDRESS: ${CA_ADDRESS}"
echo "VPA_ADDRESS: ${VPA_ADDRESS}"
echo "BRIDGE_ADDRESS: ${BRIDGE_ADDRESS}"
# Create required certs
./create-certs.sh
@ -43,7 +42,6 @@ l2 = ${NITRO_L2}
naaddress = "${NA_ADDRESS}"
vpaaddress = "${VPA_ADDRESS}"
caaddress = "${CA_ADDRESS}"
bridgeaddress = "${BRIDGE_ADDRESS}"
EOF
# Start the node

View File

@ -1,44 +0,0 @@
#!/bin/bash
set -e
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
set -x
fi
addresses_deployment_file="packages/nitro-protocol/addresses.json"
nitro_addresses_file="/app/deployment/nitro-addresses.json"
bridge_assets_map_file="/app/deployment/bridge-assets-map.toml"
echo "Using the following environment variables:"
echo "OPTIMISM_URL: ${OPTIMISM_URL}"
echo "OPTIMISM_CHAIN_ID: ${OPTIMISM_CHAIN_ID}"
echo "OPTIMISM_DEPLOYER_PK: ${OPTIMISM_DEPLOYER_PK}"
echo "TOKEN_NAME: ${TOKEN_NAME}"
echo "TOKEN_SYMBOL: ${TOKEN_SYMBOL}"
echo "INITIAL_TOKEN_SUPPLY: ${INITIAL_TOKEN_SUPPLY}"
echo "DISABLE_DETERMINISTIC_DEPLOYMENT: ${DISABLE_DETERMINISTIC_DEPLOYMENT}"
echo "L1_ASSET_ADDRESS: ${L1_ASSET_ADDRESS}"
# Check if L2 chain id key is present for L2 deployment
if [ -f "$nitro_addresses_file" ] && jq -e "has(\"$OPTIMISM_CHAIN_ID\")" ${nitro_addresses_file} > /dev/null; then
echo "L2 addresses found in ${nitro_addresses_file}, skipping deployment"
else
# Deploy Nitro contracts
yarn contracts:deploy-optimism
# Deploy custom token
yarn contracts:deploy-token-optimism
cp ${addresses_deployment_file} ${nitro_addresses_file}
fi
L2_ASSET_ADDRESS=$(jq -r ".\"$OPTIMISM_CHAIN_ID\"[0].contracts.Token.address" ${nitro_addresses_file})
# Deploy custom tokens and create bridge-assets-map.toml
cat <<EOF > "$bridge_assets_map_file"
[[assets]]
l1AssetAddress = "$L1_ASSET_ADDRESS"
l2AssetAddress = "$L2_ASSET_ADDRESS"
EOF
echo "Done"

View File

@ -1,4 +1,4 @@
FROM golang:1.21-bullseye AS builder
FROM golang:1.22-bullseye AS builder
# Copy files into image
WORKDIR /app

View File

@ -52,13 +52,8 @@
```bash
GETH_CHAIN_ID=1212
OPTIMISM_CHAIN_ID=42069
# URL endpoint of the L1 chain (Example: ws://host.docker.internal:8545)
NITRO_L1_CHAIN_URL=
# URL endpoint of the L2 chain (Example: ws://host.docker.internal:8546)
NITRO_L2_CHAIN_URL=
# URL endpoint of the chain (Example: ws://host.docker.internal:8545)
NITRO_CHAIN_URL=
# Private key of the account on chain that is used for funding channels
NITRO_CHAIN_PK: ${NITRO_CHAIN_PK}

View File

@ -45,9 +45,9 @@
# Private key of the account on chain that is used for deploying L1 contracts
GETH_DEPLOYER_PK=
TOKEN_NAME=LaconicNetworkToken
TOKEN_NAME=TestToken
TOKEN_SYMBOL=LNT
TOKEN_SYMBOL=TST
INITIAL_TOKEN_SUPPLY=129600
```