diff --git a/.github/workflows/test-bridge.yml b/.github/workflows/test-bridge.yml index 38c9957..db95cdd 100644 --- a/.github/workflows/test-bridge.yml +++ b/.github/workflows/test-bridge.yml @@ -45,7 +45,7 @@ jobs: run: | sudo apt-get update sudo apt-get install -y clang llvm libudev-dev protobuf-compiler - + - uses: foundry-rs/foundry-toolchain@v1 with: version: nightly @@ -66,7 +66,7 @@ jobs: solc-select install 0.8.19 solc-select use 0.8.19 solc --version - + - name: Checkout Madara uses: actions/checkout@v4 with: diff --git a/Cargo.lock b/Cargo.lock index d53e657..adb236b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2453,57 +2453,6 @@ dependencies = [ "signature", ] -[[package]] -name = "karnot-bridge-deploy" -version = "0.1.0" -dependencies = [ - "anyhow", - "assert_matches", - "async-trait", - "bytes", - "clap", - "color-eyre", - "dotenv", - "env_logger", - "ethereum-instance", - "ethers", - "flate2", - "hex", - "indexmap 2.2.6", - "inline_colorization", - "lazy_static", - "log", - "num-bigint", - "parity-scale-codec", - "reqwest", - "rstest", - "scale-info", - "serde", - "serde_json", - "serde_with 2.3.3", - "starkgate-manager-client", - "starkgate-registry-client", - "starknet", - "starknet-accounts 0.11.0", - "starknet-core 0.11.1", - "starknet-core-contract-client", - "starknet-crypto 0.7.2", - "starknet-erc20-client", - "starknet-eth-bridge-client", - "starknet-providers 0.11.0", - "starknet-proxy-client", - "starknet-signers 0.9.0", - "starknet-token-bridge-client", - "starknet-types-core", - "starknet_api", - "subxt-lightclient", - "tempfile", - "thiserror", - "tokio", - "url", - "utils", -] - [[package]] name = "keccak" version = "0.1.5" @@ -2676,6 +2625,57 @@ dependencies = [ "hashbrown 0.14.5", ] +[[package]] +name = "madara-bootstrapper" +version = "0.1.0" +dependencies = [ + "anyhow", + "assert_matches", + "async-trait", + "bytes", + "clap", + "color-eyre", + "dotenv", + "env_logger", + "ethereum-instance", + "ethers", + "flate2", + "hex", + "indexmap 2.2.6", + "inline_colorization", + "lazy_static", + "log", + "num-bigint", + "parity-scale-codec", + "reqwest", + "rstest", + "scale-info", + "serde", + "serde_json", + "serde_with 2.3.3", + "starkgate-manager-client", + "starkgate-registry-client", + "starknet", + "starknet-accounts 0.11.0", + "starknet-core 0.11.1", + "starknet-core-contract-client", + "starknet-crypto 0.7.2", + "starknet-erc20-client", + "starknet-eth-bridge-client", + "starknet-providers 0.11.0", + "starknet-proxy-client", + "starknet-signers 0.9.0", + "starknet-token-bridge-client", + "starknet-types-core", + "starknet_api", + "subxt-lightclient", + "tempfile", + "thiserror", + "tokio", + "url", + "utils", +] + [[package]] name = "matrixmultiply" version = "0.2.4" diff --git a/Cargo.toml b/Cargo.toml index 35b3e9d..dc1b648 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "karnot-bridge-deploy" +name = "madara-bootstrapper" version = "0.1.0" edition = "2021" diff --git a/Dockerfile b/Dockerfile index b74a8ac..6bdeed2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -102,7 +102,12 @@ RUN npm install -g --unsafe-perm ganache-cli@6.12.2 # First run setup-linux RUN make setup-linux -# Then build legacy contracts +# Build legacy starkgate contracts +# Note: This section implements the build steps for old starkgate contracts, +# replacing 'make starkgate-contracts-legacy' from the Makefile. We include these steps +# directly here because running the Makefile command would create a nested +# Docker container inside this build. + RUN cd lib/starkgate-contracts-old && \ # First verify ganache-cli installation which ganache-cli && \ @@ -187,13 +192,13 @@ RUN . "$HOME/.asdf/asdf.sh" && \ make argent-contracts-starknet # Build the Rust project with specific binary name -RUN cargo build --release --workspace --bin karnot-bridge-deploy +RUN cargo build --release --workspace --bin madara-bootstrapper # Runtime stage FROM debian:buster-slim # Copy only the compiled binary and artifacts -COPY --from=builder /app/target/release/karnot-bridge-deploy /usr/local/bin/ +COPY --from=builder /app/target/release/madara-bootstrapper /usr/local/bin/ COPY --from=builder /app/artifacts /app/artifacts # Set working directory @@ -203,4 +208,4 @@ WORKDIR /app ENV RUST_LOG=info # Run the binary -ENTRYPOINT ["/usr/local/bin/karnot-bridge-deploy"] \ No newline at end of file +ENTRYPOINT ["/usr/local/bin/madara-bootstrapper"] \ No newline at end of file diff --git a/Makefile b/Makefile index bedf831..fbe4509 100644 --- a/Makefile +++ b/Makefile @@ -165,30 +165,26 @@ starkgate-contracts-legacy: cp ./lib/starkgate-contracts-old/starkgate-artifacts/starkware/starknet/std_contracts/upgradability_proxy/proxy.json ./artifacts/proxy_starkgate.json cp ./lib/starkgate-contracts-old/starkgate-artifacts/starkware/starknet/std_contracts/ERC20/ERC20.json ./artifacts/ERC20.json +# Helper function for Scarb-based builds +define scarb_build + @if [ "$$(uname)" = "Darwin" ] && command -v brew >/dev/null 2>&1; then \ + . "$$(brew --prefix asdf)/libexec/asdf.sh"; \ + else \ + . "$(HOME_DIR)/.asdf/asdf.sh"; \ + fi && \ + cd $(1) && \ + git checkout $(2) && \ + asdf install scarb $(3) && \ + asdf local scarb $(3) && \ + scarb build +endef + # Target: braavos-account-cairo # Builds Braavos account contracts # Prerequisites: ensure-asdf braavos-account-cairo: ensure-asdf # Building - @if [ "$$(uname)" = "Darwin" ] && command -v brew >/dev/null 2>&1; then \ - . "$$(brew --prefix asdf)/libexec/asdf.sh" && \ - cd ./lib/braavos-account-cairo && \ - git checkout $(BRAAVOS_CONTRACTS_COMMIT_HASH) && \ - . "$$(brew --prefix asdf)/libexec/asdf.sh" && \ - asdf install scarb 2.8.4 && \ - . "$$(brew --prefix asdf)/libexec/asdf.sh" && \ - asdf local scarb 2.8.4 && \ - scarb build; \ - else \ - . "$(HOME_DIR)/.asdf/asdf.sh" && \ - cd ./lib/braavos-account-cairo && \ - git checkout $(BRAAVOS_CONTRACTS_COMMIT_HASH) && \ - . "$(HOME_DIR)/.asdf/asdf.sh" && \ - asdf install scarb 2.8.4 && \ - . "$(HOME_DIR)/.asdf/asdf.sh" && \ - asdf local scarb 2.8.4 && \ - scarb build; \ - fi + $(call scarb_build,./lib/braavos-account-cairo,$(BRAAVOS_CONTRACTS_COMMIT_HASH),2.8.4) # Copying Contracts cp ./lib/braavos-account-cairo/target/dev/braavos_account_BraavosAccount.contract_class.json ./artifacts/BraavosAccount.sierra.json cp ./lib/braavos-account-cairo/target/dev/braavos_account_BraavosAccount.compiled_contract_class.json ./artifacts/BraavosAccount.casm.json @@ -200,21 +196,7 @@ braavos-account-cairo: ensure-asdf # Prerequisites: ensure-asdf argent-contracts-starknet: ensure-asdf # Building - @if [ "$$(uname)" = "Darwin" ] && command -v brew >/dev/null 2>&1; then \ - . "$$(brew --prefix asdf)/libexec/asdf.sh" && \ - cd ./lib/argent-contracts-starknet && \ - git checkout $(ARGENT_CONTRACTS_COMMIT_HASH) && \ - asdf install scarb 2.6.3 && \ - asdf local scarb 2.6.3 && \ - scarb build; \ - else \ - . "$(HOME_DIR)/.asdf/asdf.sh" && \ - cd ./lib/argent-contracts-starknet && \ - git checkout $(ARGENT_CONTRACTS_COMMIT_HASH) && \ - asdf install scarb 2.6.3 && \ - asdf local scarb 2.6.3 && \ - scarb build; \ - fi + $(call scarb_build,./lib/argent-contracts-starknet,$(ARGENT_CONTRACTS_COMMIT_HASH),2.6.3) # Copying Contracts cp ./lib/argent-contracts-starknet/target/dev/argent_ArgentAccount.contract_class.json ./artifacts/ArgentAccount.sierra.json cp ./lib/argent-contracts-starknet/target/dev/argent_ArgentAccount.compiled_contract_class.json ./artifacts/ArgentAccount.casm.json