diff --git a/charts/bridge-test/.helmignore b/charts/bridge-test/.helmignore deleted file mode 100644 index 0e8a0eb..0000000 --- a/charts/bridge-test/.helmignore +++ /dev/null @@ -1,23 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*.orig -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/charts/bridge-test/Chart.yaml b/charts/bridge-test/Chart.yaml deleted file mode 100644 index 7beb394..0000000 --- a/charts/bridge-test/Chart.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v2 -name: bridge-test -description: A Helm chart for Kubernetes - -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. -type: application - -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 - -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -# It is recommended to use it with quotes. -appVersion: "0.1.0" - -maintainers: - - name: steezeburger - url: astria.org diff --git a/charts/bridge-test/files/scripts/test-ibc-transfer.sh b/charts/bridge-test/files/scripts/test-ibc-transfer.sh deleted file mode 100644 index d3e836b..0000000 --- a/charts/bridge-test/files/scripts/test-ibc-transfer.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh - -get_evm_balance() { - HEX_NUM=$(curl -X POST "$evm_url" -s -d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBalance\",\"params\":[\"$evm_to_address\", \"latest\"],\"id\":1}" -H 'Content-Type: application/json' | jq -r '.result') - # strip 0x - HEX_NUM=$(echo "$HEX_NUM" | sed 's/^0x//') - # capitalize all lowercase letters - HEX_NUM=$(echo "$HEX_NUM" | tr '[:lower:]' '[:upper:]') - # print as integer - echo "ibase=16; $HEX_NUM" | bc -} - -addKeyForCelestiaAccount() { - # add key for the celestia dev account using the mnemonic - echo "Adding key for the celestia dev account..." - echo "$celestia_dev_account_mnemonic" | celestia-appd keys add \ - "$celestia_dev_account_key_name" \ - --home "$home_dir" \ - --keyring-backend="$keyring_backend" \ - --recover -} - -performIBCTransfer() { - # perform ibc transfer - echo "Performing IBC transfer..." - celestia-appd tx ibc-transfer transfer \ - transfer \ - channel-0 \ - "$bridge_account_address_bech32" \ - 53000utia \ - --memo="{\"rollupAddress\":\"$evm_to_address\"}" \ - --chain-id="$celestia_chain_id" \ - --node="$celestia_node_url" \ - --from="$celestia_dev_account_address" \ - --fees=26000utia \ - --yes \ - --log_level=debug \ - --home "$home_dir" \ - --keyring-backend="$keyring_backend" -} - -initial_balance=$(get_evm_balance) - -addKeyForCelestiaAccount -performIBCTransfer - -# FIXME - should probably poll w/ timeout instead of sleeping? -sleep 30 - -final_balance=$(get_evm_balance) -expected_balance=$(echo "$initial_balance + 53000000000000000" | bc) -if [ "$(echo "$final_balance == $expected_balance" | bc)" -eq 0 ]; then - echo "IBC Transfer failed!" - echo "Expected balance $expected_balance, got $final_balance" - exit 1 -else - echo "IBC Transfer successful!" -fi diff --git a/charts/bridge-test/templates/_helpers.tpl b/charts/bridge-test/templates/_helpers.tpl deleted file mode 100644 index ad99756..0000000 --- a/charts/bridge-test/templates/_helpers.tpl +++ /dev/null @@ -1,23 +0,0 @@ -{{/* -Namespace to deploy elements into. -*/}} -{{- define "bridge-test.namespace" -}} -{{- default .Release.Namespace .Values.namespaceOverride | trunc 63 | trimSuffix "-" -}} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "bridge-test.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} diff --git a/charts/bridge-test/templates/configmap.yaml b/charts/bridge-test/templates/configmap.yaml deleted file mode 100644 index c31803c..0000000 --- a/charts/bridge-test/templates/configmap.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: bridge-test-env - namespace: {{ include "bridge-test.namespace" . }} -data: - home_dir: "/home/celestia" - keyring_backend: "test" - bridge_account_address: "{{ .Values.bridgeAccount.address }}" - bridge_account_address_bech32: "{{ .Values.bridgeAccount.bech32 }}" - evm_to_address: "{{ .Values.evmToAddress }}" - evm_url: "{{ .Values.evmURL }}" - celestia_chain_id: "{{ .Values.celestiaChainID }}" - celestia_node_url: "{{ .Values.celestiaNodeURL }}" - celestia_dev_account_address: "{{ .Values.celestiaDevAccount.address }}" - celestia_dev_account_mnemonic: "{{ .Values.celestiaDevAccount.mnemonic }}" - celestia_dev_account_key_name: "{{ .Values.celestiaDevAccount.name }}" ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: bridge-test-scripts - namespace: {{ include "bridge-test.namespace" . }} -data: - test-ibc-transfer.sh: | - {{- .Files.Get "files/scripts/test-ibc-transfer.sh" | nindent 4 }} diff --git a/charts/bridge-test/templates/job.yaml b/charts/bridge-test/templates/job.yaml deleted file mode 100644 index 391e472..0000000 --- a/charts/bridge-test/templates/job.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ include "bridge-test.fullname" . }} - labels: - app: astria-dev-cluster - namespace: {{ include "bridge-test.namespace" . }} -spec: - template: - metadata: - name: {{ include "bridge-test.fullname" . }} - labels: - app: astria-dev-cluster - spec: - initContainers: - - name: init-bridge-account - image: {{ .Values.bridgeTesterUtilityImage }} - command: [ "astria-go", "sequencer", "bridge", "init", {{ .Values.evmRollupName }} ] - args: - - --privkey={{ .Values.bridgeAccount.privkey }} - - --sequencer-chain-id={{ .Values.sequencerChainId }} - - --sequencer-url={{ .Values.sequencerURL }} - - --asset={{ .Values.asset }} - - --fee-asset={{ .Values.feeAsset }} - - --log-level=debug - containers: - - name: test-ibc-transfer - image: {{ .Values.bridgeTesterUtilityImage }} - command: [ "/scripts/test-ibc-transfer.sh" ] - volumeMounts: - - mountPath: /scripts/ - name: bridge-test-scripts-volume - envFrom: - - configMapRef: - name: bridge-test-env - volumes: - - name: bridge-test-scripts-volume - configMap: - name: bridge-test-scripts - defaultMode: 0777 - restartPolicy: Never diff --git a/charts/bridge-test/values.yaml b/charts/bridge-test/values.yaml deleted file mode 100644 index 66b0dc9..0000000 --- a/charts/bridge-test/values.yaml +++ /dev/null @@ -1,38 +0,0 @@ -replicaCount: 1 - -# this image is overridden in ci/cd with the image built in ci/cd -bridgeTesterUtilityImage: ghcr.io/astriaorg/bridge-tester-utility:local - -imagePullSecrets: [] -nameOverride: "" -namespaceOverride: "" -fullnameOverride: "" - -# must match rollup name used in evm rollup chart values -evmRollupName: "astria" -# this is a shared dev address -evmToAddress: "0xaC21B97d35Bf75A7dAb16f35b111a50e78A72F30" -# evm execution api url -evmURL: "http://astria-evm-service.astria-dev-cluster.svc.cluster.local:8545" - -sequencerURL: "http://node0-sequencer-rpc-service.astria-dev-cluster.svc.cluster.local:26657" -# must match chain id used in sequencer chart values -sequencerChainId: "sequencer-test-chain-0" -asset: "transfer/channel-0/utia" -feeAsset: "nria" - -# sequencer bridge account. is funded during sequencer genesis. -bridgeAccount: - address: "6f85297e587b61b37695a1ac17189b3e907e318e" - bech32: "astria1d7zjjljc0dsmxa545xkpwxym86g8uvvwhtezcr" - privkey: "6015fbe1c365d3c5ef92dc891db8c5bb26ad454bec2db4762b96e9f8b2430285" - pubkey: "b78aa61c65f21e5fe0f31d221819053fa2286dd6eff83fc490e3ee746f144626" - -celestiaChainID: "celestia-local-0" -celestiaNodeURL: "http://celestia-app-service.astria-dev-cluster.svc.cluster.local:26657" - -# this account should be funded during celestia genesis -celestiaDevAccount: - name: "dev-account" - address: "celestia1m0ksdjl2p5nzhqy3p47fksv52at3ln885xvl96" - mnemonic: "enrich avocado local net will avoid dizzy truth column excuse ready lesson" diff --git a/charts/deploy.just b/charts/deploy.just index 6cdbfc9..ade1183 100644 --- a/charts/deploy.just +++ b/charts/deploy.just @@ -1,3 +1,5 @@ +mod ibc-test + ############################################## ## Deploying and Running using Helm and K8s ## ############################################## @@ -225,6 +227,16 @@ init-rollup-bridge rollupName=defaultRollupName evmDestinationAddress=evm_destin --fee-asset=$FEE_ASSET --asset=$ASSET || exit 1 +init-ibc-bridge privateKey asset feeAsset rollupName=defaultRollupName: + astria-cli sequencer init-bridge-account \ + --rollup-name {{ rollupName }} \ + --private-key {{ privateKey }} \ + --sequencer.chain-id {{ sequencer_chain_id }} \ + --sequencer-url {{ sequencer_rpc_url }} \ + --fee-asset {{ feeAsset }} \ + --asset {{ asset }} + + eth_rpc_url := "http://executor.astria.localdev.me/" eth_ws_url := "ws://ws-executor.astria.localdev.me/" bridge_tx_bytes := "0xf8f280843c54e7f182898594a58639fb5458e65e4fa917ff951c390292c24a15880de0b6b3a7640000b884bab916d00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002d617374726961313777306164656736346b7930646178776432756779756e65656c6c6d6a676e786c333935303400000000000000000000000000000000000000820a96a086b85348c9816f6d34533669db3d3626cf55eecea6a380d4d072efb1839df443a04b8b60c8b91dd30add1ca4a96097238d73bab29b0a958322d9a51755d5a5f287" diff --git a/charts/ibc-test.just b/charts/ibc-test.just new file mode 100644 index 0000000..6561918 --- /dev/null +++ b/charts/ibc-test.just @@ -0,0 +1,111 @@ +defaultTag := "" + +delete: + -just delete celestia-local + -just delete sequencer + -just delete hermes-local + -just delete rollup + +@deploy tag=defaultTag: + echo "Deploying ingress controller..." && just deploy-ingress-controller > /dev/null + just wait-for-ingress-controller > /dev/null + echo "Deploying local celestia instance..." && just deploy celestia-local > /dev/null + helm dependency update ./sequencer > /dev/null + helm dependency update ./evm-stack > /dev/null + echo "Setting up single astria sequencer..." && helm install \ + -n astria-validator-single single-sequencer-chart ./sequencer \ + -f ../dev/values/validators/all.yml \ + -f ../dev/values/validators/single.yml \ + {{ if tag != '' { replace('--set images.sequencer.devTag=# --set sequencer-relayer.images.sequencerRelayer.devTag=#', '#', tag) } else { '' } }} \ + --create-namespace > /dev/null + just wait-for-sequencer > /dev/null + echo "Starting EVM rollup..." && helm install -n astria-dev-cluster astria-chain-chart ./evm-stack \ + -f ../dev/values/rollup/dev.yaml \ + -f ../dev/values/rollup/ibc-bridge-test.yaml \ + {{ if tag != '' { replace('--set evm-rollup.images.conductor.devTag=# --set composer.images.composer.devTag=# --set evm-bridge-withdrawer.images.evmBridgeWithdrawer.devTag=#', '#', tag) } else { '' } }} \ + --set blockscout-stack.enabled=false \ + --set postgresql.enabled=false \ + --set evm-faucet.enabled=false > /dev/null + just wait-for-rollup > /dev/null + echo "Deploying Hermes" + just deploy hermes-local > /dev/null + kubectl wait -n astria-dev-cluster deployment hermes-local-chart --for=condition=Available=True --timeout=300s + +[no-cd] +run celestiaHome pathToCelestiaAppd=default_celestia_appd : + #!/usr/bin/env bash + + initial_balance=$(just evm-get-balance {{evm_destination_address}}) + + # Create a bridge account on the sequencer + just init-ibc-bridge {{ sequencer_tia_bridge_pkey }} transfer/channel-0/utia nria + + # Load the private key of the Celestia dev account to issue transfers + just ibc-test _load-celestia-key "{{ celestiaHome}}" "{{ pathToCelestiaAppd }}" + + # Execute the transfer from Celestia to the Rollup + just ibc-test _do-ibc-transfer "{{ celestiaHome}}" "{{ pathToCelestiaAppd }}" + + # Multiplication factor is 10^-6 (utia to tia) * 10^18 (rollup factor) = 10^12 + let expected_balance="$initial_balance + {{ transfer_amount }} * 10**12" + + for i in {1..50} + do + current_balance=$(just evm-get-balance {{evm_destination_address}}) + echo "check $i, balance: $current_balance, expected: $expected_balance" + if (( expected_balance == $current_balance )); then + expected_balance_found="1" + break + else + sleep 1 + fi + done + if [[ -z $expected_balance_found ]]; then + echo "expected balance was not found; IBC transfer from Celestia to the Rollup failed" + exit 1 + fi + + +bridge_address := "astria1d7zjjljc0dsmxa545xkpwxym86g8uvvwhtezcr" +celestia_dev_account_address := "celestia1m0ksdjl2p5nzhqy3p47fksv52at3ln885xvl96" +celestia_dev_account_key_name := "dev" +celestia_dev_account_mnemonic := "enrich avocado local net will avoid dizzy truth column excuse ready lesson" +celestia_chain_id := "celestia-local-0" +celestia_node_url := "http://rpc.app.celestia.localdev.me:80" +sequencer_tia_bridge_pkey := "6015fbe1c365d3c5ef92dc891db8c5bb26ad454bec2db4762b96e9f8b2430285" +keyring_backend := "test" + +# This is the same address as used in deploy.just +evm_destination_address := "0xaC21B97d35Bf75A7dAb16f35b111a50e78A72F30" + +# all in units of utia +transfer_amount := "53000" +transfer_fees := "26000" + +default_celestia_appd := "celestia-appd" +[no-cd] +_load-celestia-key celestiaHome pathToCelestiaAppd=default_celestia_appd: + #!/usr/bin/env bash + pwd + "{{pathToCelestiaAppd}}" keys add {{ celestia_dev_account_key_name }} \ + --home "{{celestiaHome}}" \ + --keyring-backend="{{ keyring_backend }}" \ + --recover <<< "{{ celestia_dev_account_mnemonic }}" + +[no-cd] +_do-ibc-transfer celestiaHome pathToCelestiaAppd=default_celestia_appd: + echo "Performing IBC transfer..." + "{{pathToCelestiaAppd}}" tx ibc-transfer transfer \ + transfer \ + channel-0 \ + {{ bridge_address }} \ + "{{ transfer_amount }}utia" \ + --memo="{\"rollupDepositAddress\":\"{{ evm_destination_address }}\"}" \ + --chain-id="{{ celestia_chain_id }}" \ + --node="{{ celestia_node_url }}" \ + --from="{{ celestia_dev_account_address }}" \ + --fees="{{ transfer_fees }}utia" \ + --yes \ + --log_level=debug \ + --home "{{celestiaHome}}" \ + --keyring-backend="{{ keyring_backend }}" diff --git a/charts/sequencer-relayer/Chart.yaml b/charts/sequencer-relayer/Chart.yaml index bcebe7d..92b190f 100644 --- a/charts/sequencer-relayer/Chart.yaml +++ b/charts/sequencer-relayer/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.11.0 +version: 0.11.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/charts/sequencer/Chart.yaml b/charts/sequencer/Chart.yaml index 9982dc2..bb8d4fc 100644 --- a/charts/sequencer/Chart.yaml +++ b/charts/sequencer/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.19.0 +version: 0.19.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. @@ -24,7 +24,7 @@ appVersion: "0.14.0" dependencies: - name: sequencer-relayer - version: "0.11.0" + version: "0.11.1" repository: "file://../sequencer-relayer" condition: sequencer-relayer.enabled diff --git a/dev/bridgetester.just b/dev/bridgetester.just deleted file mode 100644 index 0c6a033..0000000 --- a/dev/bridgetester.just +++ /dev/null @@ -1,71 +0,0 @@ -# deploy infra for an ibc bridge smoke test -@deploy-ibc-test-infra tag=defaultTag: - echo "Deploying ingress controller..." && just deploy-ingress-controller > /dev/null - just wait-for-ingress-controller > /dev/null - echo "Deploying local celestia instance..." && just deploy celestia-local > /dev/null - helm dependency update ./charts/sequencer > /dev/null - helm dependency update ./charts/evm-stack> /dev/null - echo "Setting up single astria sequencer..." && helm install \ - -n astria-validator-single single-sequencer-chart charts/sequencer \ - -f ./dev/values/validators/all.yml \ - -f ./dev/values/validators/single.yml \ - {{ if tag != '' { replace('--set images.sequencer.devTag=# --set sequencer-relayer.images.sequencerRelayer.devTag=#', '#', tag) } else { '' } }} \ - --create-namespace > /dev/null - just wait-for-sequencer > /dev/null - echo "Starting EVM rollup..." && helm install -n astria-dev-cluster astria-chain-chart ./charts/evm-stack \ - -f ./dev/values/rollup/dev.yaml \ - -f ./dev/values/rollup/ibc-bridge-test.yaml \ - {{ if tag != '' { replace('--set evm-rollup.images.conductor.devTag=# --set composer.images.composer.devTag=# --set evm-bridge-withdrawer.images.evmBridgeWithdrawer.devTag=#', '#', tag) } else { '' } }} \ - --set blockscout-stack.enabled=false \ - --set postgresql.enabled=false \ - --set evm-faucet.enabled=false > /dev/null - just wait-for-rollup > /dev/null - echo "Deploying Hermes and creating IBC channel..." - just deploy hermes-local > /dev/null - kubectl wait -n astria-dev-cluster deployment hermes-local-chart --for=condition=Available=True --timeout=300s - -# delete infra used for the ibc bridge test -delete-ibc-test-infra: - -just delete celestia-local - -just delete sequencer - -just delete rollup - -just delete hermes-local - -just delete bridge-tester - -# deploy a bridge tester chart that runs a job to test the ibc bridge -deploy-bridge-tester tag='local' namespace=defaultNamespace: - helm install --debug bridge-tester-chart ./charts/bridge-test \ - --namespace {{namespace}} \ - --set bridgeTesterUtilityImage=ghcr.io/astriaorg/bridge-tester-utility:{{tag}} - -# delete the bridge tester release -delete-bridge-tester namespace=defaultNamespace: - helm uninstall bridge-tester-chart --namespace {{namespace}} - -########### -# helpers # -########### - -# NOTE - can't build for darwin because base images don't support it -default_target_platform := 'linux/amd64' - -# build bridge tester utility image, load into cluster -build-and-load-bridge-tester-image tag='local' target_platform=default_target_platform: - docker buildx build \ - --load \ - --platform {{target_platform}} \ - -f dev/containerfiles/bridgetesterutility.Dockerfile \ - -t ghcr.io/astriaorg/bridge-tester-utility:{{tag}} . - just load-image ghcr.io/astriaorg/bridge-tester-utility:{{tag}} - -# build the astria-geth image and load into cluster. NOTE - assumes astria-geth is sibling directory to monorepo -build-and-load-astria-geth: - @echo "building astria-geth local docker image..." - cd ../astria-geth && docker buildx build -f Dockerfile -t ghcr.io/astriaorg/astria-geth:local . - just load-image ghcr.io/astriaorg/astria-geth:local - -# load astria-go and astria-geth images into cluster -load-images: - #just load-image ghcr.io/astriaorg/astria-go:local - just load-image ghcr.io/astriaorg/bridge-tester-utility:local - just load-image ghcr.io/astriaorg/astria-geth:local diff --git a/dev/containerfiles/bridgetesterutility.Dockerfile b/dev/containerfiles/bridgetesterutility.Dockerfile deleted file mode 100644 index 911c187..0000000 --- a/dev/containerfiles/bridgetesterutility.Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -FROM ubuntu:22.04 - -# This is a utility image for testing the bridge. -# It contains the Celestia app and the Astria CLI, plus some bash utilities for testing. - -# dependencies needed for testing -RUN apt-get update && apt-get install -y --no-install-recommends \ - curl \ - bc \ - jq \ - sed \ - ca-certificates \ - coreutils \ - && rm -rf /var/lib/apt/lists/* - -WORKDIR /home - -ARG CELESTIA_VERSION=v1.9.0 -ARG ASTRIA_VERSION=v0.12.0 - -# download architecture-specific binaries -ARG TARGETPLATFORM -RUN echo "TARGETPLATFORM: $TARGETPLATFORM" -RUN if [ "$TARGETPLATFORM" = "darwin/arm64" ]; then \ - curl -L "https://github.com/celestiaorg/celestia-app/releases/download/$CELESTIA_VERSION/celestia-app_Darwin_arm64.tar.gz" -o celestia-appd.tar.gz; \ - curl -L "https://github.com/astriaorg/astria-cli-go/releases/download/$ASTRIA_VERSION/astria-go-$ASTRIA_VERSION-darwin-arm64.tar.gz" -o astria-go.tar.gz; \ - elif [ "$TARGETPLATFORM" = "darwin/amd64" ]; then \ - curl -L "https://github.com/celestiaorg/celestia-app/releases/download/$CELESTIA_VERSION/celestia-app_Darwin_x86_64.tar.gz" -o celestia-appd.tar.gz; \ - curl -L "https://github.com/astriaorg/astria-cli-go/releases/download/$ASTRIA_VERSION/astria-go-$ASTRIA_VERSION-darwin-amd64.tar.gz" -o astria-go.tar.gz; \ - elif [ "$TARGETPLATFORM" = "linux/amd64" ]; then \ - curl -L "https://github.com/celestiaorg/celestia-app/releases/download/$CELESTIA_VERSION/celestia-app_Linux_x86_64.tar.gz" -o celestia-appd.tar.gz; \ - curl -L "https://github.com/astriaorg/astria-cli-go/releases/download/$ASTRIA_VERSION/astria-go-$ASTRIA_VERSION-linux-amd64.tar.gz" -o astria-go.tar.gz; \ - else \ - echo "Unsupported architecture"; \ - echo "TARGETPLATFORM: $TARGETPLATFORM"; \ - exit 1; \ - fi - -# untar and move to bin -RUN tar -xzvf celestia-appd.tar.gz && mv celestia-appd /usr/local/bin/celestia-appd && \ - tar -xzvf astria-go.tar.gz && mv astria-go /usr/local/bin/astria-go && \ - chmod +x /usr/local/bin/celestia-appd /usr/local/bin/astria-go - -CMD ["echo", "This is the bridge tester utility image!"]