From b7e6c029f9ef61537d738d4de88894cf726aec4e Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 12 Mar 2025 16:15:02 +0200 Subject: [PATCH 01/14] update rust sc-meta --- Dockerfile | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5bf1d89..b4d7d64 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,10 +2,8 @@ FROM ubuntu:22.04 # Constants ARG BUILDER_NAME="multiversx/sdk-rust-contract-builder:v8.0.1" -ARG VERSION_RUST="1.78.0" -ARG VERSION_BINARYEN="version_112" -ARG DOWNLOAD_URL_BINARYEN="https://github.com/WebAssembly/binaryen/releases/download/${VERSION_BINARYEN}/binaryen-${VERSION_BINARYEN}-x86_64-linux.tar.gz" -ARG VERSION_SC_META="0.50.3" +ARG VERSION_RUST="stable" +ARG VERSION_SC_META="0.57.0" ARG TARGETPLATFORM # Install system dependencies @@ -17,38 +15,28 @@ RUN apt-get update --fix-missing && apt-get install -y \ pkg-config \ libssl-dev -# Install binaryen -RUN wget -O binaryen.tar.gz ${DOWNLOAD_URL_BINARYEN} && \ - tar -xf binaryen.tar.gz && \ - mkdir -p /binaryen && \ - cp binaryen-${VERSION_BINARYEN}/bin/wasm-opt /binaryen && \ - rm -rf binaryen.tar.gz binaryen-${VERSION_BINARYEN} && \ - chmod -R 777 /binaryen - # Install Python dependencies RUN pip3 install toml==0.10.2 semver==3.0.0-dev.4 # Install rust RUN wget -O rustup.sh https://sh.rustup.rs && \ chmod +x rustup.sh && \ - CARGO_HOME=/rust RUSTUP_HOME=/rust ./rustup.sh --verbose --default-toolchain ${VERSION_RUST} --profile minimal --target wasm32-unknown-unknown -y && \ + CARGO_HOME=/rust RUSTUP_HOME=/rust ./rustup.sh --verbose --default-toolchain stable --profile minimal --target wasm32-unknown-unknown -y && \ rm rustup.sh && \ chmod -R 777 /rust && \ rm -rf /rust/registry # Install sc-tool -RUN PATH="/rust/bin:${PATH}" CARGO_HOME=/rust RUSTUP_HOME=/rust cargo install multiversx-sc-meta --version ${VERSION_SC_META} --locked && \ +RUN PATH="/rust/bin:${PATH}" CARGO_HOME=/rust RUSTUP_HOME=/rust cargo install multiversx-sc-meta --locked && \ rm -rf /rust/registry COPY "multiversx_sdk_rust_contract_builder" "/multiversx_sdk_rust_contract_builder" -ENV PATH="/rust/bin:/binaryen:${PATH}" ENV CARGO_HOME="/rust" ENV RUSTUP_HOME="/rust" ENV PYTHONPATH=/ ENV BUILD_METADATA_BUILDER_NAME=${BUILDER_NAME} ENV BUILD_METADATA_VERSION_RUST=${VERSION_RUST} -ENV BUILD_METADATA_VERSION_BINARYEN=${VERSION_BINARYEN} ENV BUILD_METADATA_VERSION_SC_META=${VERSION_SC_META} ENV BUILD_METADATA_TARGETPLATFORM=${TARGETPLATFORM} @@ -62,5 +50,4 @@ ENTRYPOINT ["python", "/multiversx_sdk_rust_contract_builder/main.py", \ LABEL frozen="yes" LABEL rust=${VERSION_RUST} -LABEL wasm-opt-binaryen=${VERSION_BINARYEN} LABEL sc_meta=${VERSION_SC_META} From d08ac2befa0be2dd3dfb57b4aa8a67319ab839fe Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 12 Mar 2025 16:16:22 +0200 Subject: [PATCH 02/14] update yml --- .github/workflows/tests.yml | 4 ++-- multiversx_sdk_rust_contract_builder/build_metadata.py | 4 ---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c82d1ac..06ae83e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out the repo - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 @@ -32,7 +32,7 @@ jobs: python ./integration_tests/test_previous_builds_are_reproducible.py --selected-builds "a.1" "a.2" "a.3" - name: Save artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testdata_output path: | diff --git a/multiversx_sdk_rust_contract_builder/build_metadata.py b/multiversx_sdk_rust_contract_builder/build_metadata.py index f526fe9..e5d7f0c 100644 --- a/multiversx_sdk_rust_contract_builder/build_metadata.py +++ b/multiversx_sdk_rust_contract_builder/build_metadata.py @@ -7,13 +7,11 @@ def __init__( self, builder_name: str, version_rust: str, - version_binaryen: str, version_sc_meta: str, target_platform: str, ): self.builder_name = builder_name self.version_rust = version_rust - self.version_binaryen = version_binaryen self.version_sc_meta = version_sc_meta self.target_platform = target_platform @@ -22,7 +20,6 @@ def from_env(cls) -> 'BuildMetadata': return BuildMetadata( builder_name=os.environ["BUILD_METADATA_BUILDER_NAME"], version_rust=os.environ["BUILD_METADATA_VERSION_RUST"], - version_binaryen=os.environ["BUILD_METADATA_VERSION_BINARYEN"], version_sc_meta=os.environ["BUILD_METADATA_VERSION_SC_META"], target_platform=os.environ["BUILD_METADATA_TARGETPLATFORM"], ) @@ -31,7 +28,6 @@ def to_dict(self) -> Dict[str, str]: return { "builderName": self.builder_name, "versionRust": self.version_rust, - "versionBinaryen": self.version_binaryen, "versionScTool": self.version_sc_meta, "targetPlatform": self.target_platform, } From 63ab1010c3d28454e68124c5c54f4754090feba7 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 12 Mar 2025 16:27:40 +0200 Subject: [PATCH 03/14] fix tests --- integration_tests/test_basic.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration_tests/test_basic.py b/integration_tests/test_basic.py index d2e3c67..87342f7 100644 --- a/integration_tests/test_basic.py +++ b/integration_tests/test_basic.py @@ -6,8 +6,8 @@ from multiversx_sdk_rust_contract_builder.packaged_source_code import \ PackagedSourceCode -DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/80599388b9358842b50ea216a622d514e15df374.zip" -DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-80599388b9358842b50ea216a622d514e15df374" +DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/87f1e57978190cb7fff805fea6ed194aa8411567.zip" +DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-87f1e57978190cb7fff805fea6ed194aa8411567" DEFAULT_CONTRACT_NAME = "esdt-safe" From 776c6f05bf93972c5bbde4daf8f38a006f38e258 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 12 Mar 2025 16:36:50 +0200 Subject: [PATCH 04/14] removed hardcoded values version_rust, version_sc_meta | update previous_buils | replace cargo run command with sc-meta --- Dockerfile | 7 +------ integration_tests/previous_builds.py | 8 ++++---- integration_tests/test_basic.py | 13 ++++++++----- ...roject_folder_and_packaged_src_are_equivalent.py | 10 +++++----- .../build_metadata.py | 8 -------- multiversx_sdk_rust_contract_builder/builder.py | 8 +++----- 6 files changed, 21 insertions(+), 33 deletions(-) diff --git a/Dockerfile b/Dockerfile index b4d7d64..3b7142e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,6 @@ FROM ubuntu:22.04 # Constants ARG BUILDER_NAME="multiversx/sdk-rust-contract-builder:v8.0.1" -ARG VERSION_RUST="stable" -ARG VERSION_SC_META="0.57.0" ARG TARGETPLATFORM # Install system dependencies @@ -32,12 +30,11 @@ RUN PATH="/rust/bin:${PATH}" CARGO_HOME=/rust RUSTUP_HOME=/rust cargo install mu COPY "multiversx_sdk_rust_contract_builder" "/multiversx_sdk_rust_contract_builder" +ENV PATH="/rust/bin:${PATH}" ENV CARGO_HOME="/rust" ENV RUSTUP_HOME="/rust" ENV PYTHONPATH=/ ENV BUILD_METADATA_BUILDER_NAME=${BUILDER_NAME} -ENV BUILD_METADATA_VERSION_RUST=${VERSION_RUST} -ENV BUILD_METADATA_VERSION_SC_META=${VERSION_SC_META} ENV BUILD_METADATA_TARGETPLATFORM=${TARGETPLATFORM} # Additional arguments (must be provided at "docker run"): @@ -49,5 +46,3 @@ ENTRYPOINT ["python", "/multiversx_sdk_rust_contract_builder/main.py", \ "--cargo-target-dir", "/rust/cargo-target-dir"] LABEL frozen="yes" -LABEL rust=${VERSION_RUST} -LABEL sc_meta=${VERSION_SC_META} diff --git a/integration_tests/previous_builds.py b/integration_tests/previous_builds.py index 1380712..6acee46 100644 --- a/integration_tests/previous_builds.py +++ b/integration_tests/previous_builds.py @@ -54,13 +54,13 @@ def __init__(self, name: str, ), PreviousBuild( name="a.3", - project_archive_url="https://github.com/multiversx/mx-sovereign-sc/archive/80599388b9358842b50ea216a622d514e15df374.zip", - project_relative_path_in_archive="mx-sovereign-sc-80599388b9358842b50ea216a622d514e15df374", + project_archive_url="https://github.com/multiversx/mx-sovereign-sc/archive/e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac.zip", + project_relative_path_in_archive="mx-sovereign-sc-e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac", packaged_src_url=None, contract_name=None, expected_code_hashes={ - "esdt-safe": "08d0ba0f0931b9aa71946a543efc29da6e66d5247e911ce6595bea6a13a62cb4", - "fee-market": "e6efffc7723e1b38c9cdc41f3c2827acbcaed86c73795d09635d78b685c45576" + "sov-esdt-safe": "34f6479356b2621328bbfac0f0e0833a55a8bd1948b5a0e2500fd66291f0ad88", + "fee-market": "0b81078e61efd692ebb3f83b437da9cf83ffff7843aeb0a66a71b5ddff3b2fb2" }, docker_image="sdk-rust-contract-builder:next" ), diff --git a/integration_tests/test_basic.py b/integration_tests/test_basic.py index 87342f7..60a8018 100644 --- a/integration_tests/test_basic.py +++ b/integration_tests/test_basic.py @@ -1,14 +1,15 @@ import os import shutil +import re from integration_tests.config import PARENT_OUTPUT_FOLDER from integration_tests.shared import download_project_repository, run_docker from multiversx_sdk_rust_contract_builder.packaged_source_code import \ PackagedSourceCode -DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/87f1e57978190cb7fff805fea6ed194aa8411567.zip" -DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-87f1e57978190cb7fff805fea6ed194aa8411567" -DEFAULT_CONTRACT_NAME = "esdt-safe" +DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac.zip" +DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac" +DEFAULT_CONTRACT_NAME = "sov-esdt-safe" def test_with_symlinks(): @@ -62,7 +63,9 @@ def test_has_correct_packaged_source(): for entry in packaged_source_code.entries: assert not str(entry.path).startswith("target"), f"Unexpected file: {entry.path}" - assert entry.is_test_file == ("test" in str(entry.path)), f"Unexpected is_test_file marker for: {entry.path}" + + is_test_file = ("tests" in str(entry.path)) or ("test_" in str(entry.path)) or ("_test" in str(entry.path)) + assert entry.is_test_file == is_test_file, f"Unexpected is_test_file marker for: {entry.path}" def test_fail_if_contract_cargo_lock_is_missing(): @@ -74,7 +77,7 @@ def test_fail_if_contract_cargo_lock_is_missing(): output_folder.mkdir(parents=True, exist_ok=True) # Remove a (required) Cargo.lock file - (workspace / DEFAULT_CONTRACT_NAME / "wasm" / "Cargo.lock").unlink() + (workspace / DEFAULT_CONTRACT_NAME / f"wasm-{DEFAULT_CONTRACT_NAME}" / "Cargo.lock").unlink() (code, _, stderr) = run_docker( project_path=workspace, diff --git a/integration_tests/test_project_folder_and_packaged_src_are_equivalent.py b/integration_tests/test_project_folder_and_packaged_src_are_equivalent.py index 6e1a73b..a763a7b 100644 --- a/integration_tests/test_project_folder_and_packaged_src_are_equivalent.py +++ b/integration_tests/test_project_folder_and_packaged_src_are_equivalent.py @@ -9,15 +9,15 @@ def main(cli_args: List[str]): repository_url = "https://github.com/multiversx/mx-sovereign-sc" - commit = "80599388b9358842b50ea216a622d514e15df374" - archve_subfolder = f"mx-sovereign-sc-{commit}" - project_path = download_project_repository(f"{repository_url}/archive/{commit}.zip", archve_subfolder) - project_path = project_path / archve_subfolder + commit = "e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac" + archive_subfolder = f"mx-sovereign-sc-{commit}" + project_path = download_project_repository(f"{repository_url}/archive/{commit}.zip", archive_subfolder) + project_path = project_path / archive_subfolder check_project_folder_and_packaged_src_are_equivalent( project_path=project_path, parent_output_folder=PARENT_OUTPUT_FOLDER, - contracts=["esdt-safe", "fee-market"], + contracts=["sov-esdt-safe", "fee-market"], ) diff --git a/multiversx_sdk_rust_contract_builder/build_metadata.py b/multiversx_sdk_rust_contract_builder/build_metadata.py index e5d7f0c..dee699a 100644 --- a/multiversx_sdk_rust_contract_builder/build_metadata.py +++ b/multiversx_sdk_rust_contract_builder/build_metadata.py @@ -6,28 +6,20 @@ class BuildMetadata: def __init__( self, builder_name: str, - version_rust: str, - version_sc_meta: str, target_platform: str, ): self.builder_name = builder_name - self.version_rust = version_rust - self.version_sc_meta = version_sc_meta self.target_platform = target_platform @classmethod def from_env(cls) -> 'BuildMetadata': return BuildMetadata( builder_name=os.environ["BUILD_METADATA_BUILDER_NAME"], - version_rust=os.environ["BUILD_METADATA_VERSION_RUST"], - version_sc_meta=os.environ["BUILD_METADATA_VERSION_SC_META"], target_platform=os.environ["BUILD_METADATA_TARGETPLATFORM"], ) def to_dict(self) -> Dict[str, str]: return { "builderName": self.builder_name, - "versionRust": self.version_rust, - "versionScTool": self.version_sc_meta, "targetPlatform": self.target_platform, } diff --git a/multiversx_sdk_rust_contract_builder/builder.py b/multiversx_sdk_rust_contract_builder/builder.py index 621d2d6..477d3a0 100644 --- a/multiversx_sdk_rust_contract_builder/builder.py +++ b/multiversx_sdk_rust_contract_builder/builder.py @@ -27,7 +27,7 @@ def build_project( project_folder: Path, parent_output_folder: Path, metadata: BuildMetadata, - options: BuildOptions + options: BuildOptions ) -> BuildOutcome: project_folder = project_folder.expanduser().resolve() parent_output_folder = parent_output_folder.expanduser().resolve() @@ -135,12 +135,10 @@ def clean_contract(folder: Path, clean_output: bool = True): if clean_output: shutil.rmtree(folder / "output", ignore_errors=True) - def build_contract(build_folder: Path, output_folder: Path, cargo_target_dir: Path, no_wasm_opt: bool): cargo_output_folder = build_folder / "output" - meta_folder = build_folder / "meta" - args = ["cargo", "run", "build"] + args = ["sc-meta", "all", "build"] args.extend(["--target-dir", str(cargo_target_dir)]) args.extend(["--no-wasm-opt"] if no_wasm_opt else []) @@ -156,7 +154,7 @@ def build_contract(build_folder: Path, output_folder: Path, cargo_target_dir: Pa custom_env["CARGO_NET_GIT_FETCH_WITH_CLI"] = "true" logging.info(f"Building: {args}") - return_code = subprocess.run(args, cwd=meta_folder, env=custom_env).returncode + return_code = subprocess.run(args, cwd=build_folder, env=custom_env).returncode if return_code != 0: raise ErrKnown(f"Failed to build contract {build_folder}. Return code: {return_code}.") From f918f342f4d433f4570d5ed1f15b1493f292bba3 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 12:07:55 +0200 Subject: [PATCH 05/14] fix test- expected code hash for sov-esdt-safe --- integration_tests/previous_builds.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration_tests/previous_builds.py b/integration_tests/previous_builds.py index 6acee46..d9ec657 100644 --- a/integration_tests/previous_builds.py +++ b/integration_tests/previous_builds.py @@ -59,7 +59,7 @@ def __init__(self, name: str, packaged_src_url=None, contract_name=None, expected_code_hashes={ - "sov-esdt-safe": "34f6479356b2621328bbfac0f0e0833a55a8bd1948b5a0e2500fd66291f0ad88", + "sov-esdt-safe": "adc4e4f69b15153919c0bcf88df6436d4fcfacbc2da6a39e6bcc3f30927c80ad", "fee-market": "0b81078e61efd692ebb3f83b437da9cf83ffff7843aeb0a66a71b5ddff3b2fb2" }, docker_image="sdk-rust-contract-builder:next" From 5b1a64141dfac89d7054d09bdd19fcf17cb52f2d Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 13:09:31 +0200 Subject: [PATCH 06/14] fix test- expected code hash for fee-market --- integration_tests/previous_builds.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration_tests/previous_builds.py b/integration_tests/previous_builds.py index d9ec657..a894255 100644 --- a/integration_tests/previous_builds.py +++ b/integration_tests/previous_builds.py @@ -60,7 +60,7 @@ def __init__(self, name: str, contract_name=None, expected_code_hashes={ "sov-esdt-safe": "adc4e4f69b15153919c0bcf88df6436d4fcfacbc2da6a39e6bcc3f30927c80ad", - "fee-market": "0b81078e61efd692ebb3f83b437da9cf83ffff7843aeb0a66a71b5ddff3b2fb2" + "fee-market": "fb1fdbf57fd491a67ef04b3355fbb2e11edc0d357b956c17ed568e6701da9584" }, docker_image="sdk-rust-contract-builder:next" ), From 62801377b7aac36a80db4b4edf4828603206a6f1 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 14:07:12 +0200 Subject: [PATCH 07/14] revert VERSION_RUST, VERSION_SC_META constants | cleanup --- Dockerfile | 12 +++++++----- integration_tests/test_basic.py | 1 - .../build_metadata.py | 12 ++++++++---- multiversx_sdk_rust_contract_builder/builder.py | 3 ++- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3b7142e..195a884 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,8 @@ FROM ubuntu:22.04 # Constants -ARG BUILDER_NAME="multiversx/sdk-rust-contract-builder:v8.0.1" +ARG VERSION_RUST="1.85.0" +ARG VERSION_SC_META="0.57.0" ARG TARGETPLATFORM # Install system dependencies @@ -19,13 +20,13 @@ RUN pip3 install toml==0.10.2 semver==3.0.0-dev.4 # Install rust RUN wget -O rustup.sh https://sh.rustup.rs && \ chmod +x rustup.sh && \ - CARGO_HOME=/rust RUSTUP_HOME=/rust ./rustup.sh --verbose --default-toolchain stable --profile minimal --target wasm32-unknown-unknown -y && \ + CARGO_HOME=/rust RUSTUP_HOME=/rust ./rustup.sh --verbose --default-toolchain ${VERSION_RUST} --profile minimal --target wasm32-unknown-unknown -y && \ rm rustup.sh && \ chmod -R 777 /rust && \ rm -rf /rust/registry -# Install sc-tool -RUN PATH="/rust/bin:${PATH}" CARGO_HOME=/rust RUSTUP_HOME=/rust cargo install multiversx-sc-meta --locked && \ +# Install sc-meta tool +RUN PATH="/rust/bin:${PATH}" CARGO_HOME=/rust RUSTUP_HOME=/rust cargo install multiversx-sc-meta --version ${VERSION_SC_META} --locked && \ rm -rf /rust/registry COPY "multiversx_sdk_rust_contract_builder" "/multiversx_sdk_rust_contract_builder" @@ -34,7 +35,6 @@ ENV PATH="/rust/bin:${PATH}" ENV CARGO_HOME="/rust" ENV RUSTUP_HOME="/rust" ENV PYTHONPATH=/ -ENV BUILD_METADATA_BUILDER_NAME=${BUILDER_NAME} ENV BUILD_METADATA_TARGETPLATFORM=${TARGETPLATFORM} # Additional arguments (must be provided at "docker run"): @@ -46,3 +46,5 @@ ENTRYPOINT ["python", "/multiversx_sdk_rust_contract_builder/main.py", \ "--cargo-target-dir", "/rust/cargo-target-dir"] LABEL frozen="yes" +LABEL rust=${VERSION_RUST} +LABEL sc_meta=${VERSION_SC_META} diff --git a/integration_tests/test_basic.py b/integration_tests/test_basic.py index 60a8018..8a769b5 100644 --- a/integration_tests/test_basic.py +++ b/integration_tests/test_basic.py @@ -1,6 +1,5 @@ import os import shutil -import re from integration_tests.config import PARENT_OUTPUT_FOLDER from integration_tests.shared import download_project_repository, run_docker diff --git a/multiversx_sdk_rust_contract_builder/build_metadata.py b/multiversx_sdk_rust_contract_builder/build_metadata.py index dee699a..42c23d1 100644 --- a/multiversx_sdk_rust_contract_builder/build_metadata.py +++ b/multiversx_sdk_rust_contract_builder/build_metadata.py @@ -5,21 +5,25 @@ class BuildMetadata: def __init__( self, - builder_name: str, + version_rust: str, + version_sc_meta: str, target_platform: str, ): - self.builder_name = builder_name + self.version_rust = version_rust + self.version_sc_meta = version_sc_meta self.target_platform = target_platform @classmethod def from_env(cls) -> 'BuildMetadata': return BuildMetadata( - builder_name=os.environ["BUILD_METADATA_BUILDER_NAME"], + version_rust=os.environ["BUILD_METADATA_VERSION_RUST"], + version_sc_meta=os.environ["BUILD_METADATA_VERSION_SC_META"], target_platform=os.environ["BUILD_METADATA_TARGETPLATFORM"], ) def to_dict(self) -> Dict[str, str]: return { - "builderName": self.builder_name, + "versionRust": self.version_rust, + "versionScTool": self.version_sc_meta, "targetPlatform": self.target_platform, } diff --git a/multiversx_sdk_rust_contract_builder/builder.py b/multiversx_sdk_rust_contract_builder/builder.py index 477d3a0..96b0a3c 100644 --- a/multiversx_sdk_rust_contract_builder/builder.py +++ b/multiversx_sdk_rust_contract_builder/builder.py @@ -27,7 +27,7 @@ def build_project( project_folder: Path, parent_output_folder: Path, metadata: BuildMetadata, - options: BuildOptions + options: BuildOptions ) -> BuildOutcome: project_folder = project_folder.expanduser().resolve() parent_output_folder = parent_output_folder.expanduser().resolve() @@ -135,6 +135,7 @@ def clean_contract(folder: Path, clean_output: bool = True): if clean_output: shutil.rmtree(folder / "output", ignore_errors=True) + def build_contract(build_folder: Path, output_folder: Path, cargo_target_dir: Path, no_wasm_opt: bool): cargo_output_folder = build_folder / "output" From b35d056c22f6a2734c321845fa46992a8b1eaf27 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 14:13:11 +0200 Subject: [PATCH 08/14] update commit hash for sov contract --- integration_tests/test_basic.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration_tests/test_basic.py b/integration_tests/test_basic.py index 8a769b5..b351f9b 100644 --- a/integration_tests/test_basic.py +++ b/integration_tests/test_basic.py @@ -6,8 +6,8 @@ from multiversx_sdk_rust_contract_builder.packaged_source_code import \ PackagedSourceCode -DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac.zip" -DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac" +DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/d2eb20ad608b9f5d2e9e76ae8950901d9b8b2ff1.zip" +DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-d2eb20ad608b9f5d2e9e76ae8950901d9b8b2ff1" DEFAULT_CONTRACT_NAME = "sov-esdt-safe" From d6dd3d593d1264b236ab0e1a2adec5f9f52a6ad6 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 14:22:33 +0200 Subject: [PATCH 09/14] add env --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 195a884..af6b576 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,6 +35,8 @@ ENV PATH="/rust/bin:${PATH}" ENV CARGO_HOME="/rust" ENV RUSTUP_HOME="/rust" ENV PYTHONPATH=/ +ENV BUILD_METADATA_VERSION_RUST=${VERSION_RUST} +ENV BUILD_METADATA_VERSION_SC_META=${VERSION_SC_META} ENV BUILD_METADATA_TARGETPLATFORM=${TARGETPLATFORM} # Additional arguments (must be provided at "docker run"): From e64088b165d14877b45620d55d6bd0c4530dd99e Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 16:48:05 +0200 Subject: [PATCH 10/14] revert git hash --- integration_tests/test_basic.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration_tests/test_basic.py b/integration_tests/test_basic.py index b351f9b..8a769b5 100644 --- a/integration_tests/test_basic.py +++ b/integration_tests/test_basic.py @@ -6,8 +6,8 @@ from multiversx_sdk_rust_contract_builder.packaged_source_code import \ PackagedSourceCode -DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/d2eb20ad608b9f5d2e9e76ae8950901d9b8b2ff1.zip" -DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-d2eb20ad608b9f5d2e9e76ae8950901d9b8b2ff1" +DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac.zip" +DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac" DEFAULT_CONTRACT_NAME = "sov-esdt-safe" From e9d79298f1dfdb677e4f544495d2a7ee38f66281 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 17:14:45 +0200 Subject: [PATCH 11/14] git hash --- integration_tests/test_basic.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration_tests/test_basic.py b/integration_tests/test_basic.py index 8a769b5..f45bf97 100644 --- a/integration_tests/test_basic.py +++ b/integration_tests/test_basic.py @@ -6,8 +6,8 @@ from multiversx_sdk_rust_contract_builder.packaged_source_code import \ PackagedSourceCode -DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac.zip" -DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac" +DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/068151049f75aafa3e92aa87bbb69a95bf009316.zip" +DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-068151049f75aafa3e92aa87bbb69a95bf009316" DEFAULT_CONTRACT_NAME = "sov-esdt-safe" From 5698ead72208fed69a42c8eba46c9d998b8d7a21 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 17:49:44 +0200 Subject: [PATCH 12/14] change default contract version --- integration_tests/test_basic.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/integration_tests/test_basic.py b/integration_tests/test_basic.py index f45bf97..190eb7b 100644 --- a/integration_tests/test_basic.py +++ b/integration_tests/test_basic.py @@ -9,6 +9,7 @@ DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/068151049f75aafa3e92aa87bbb69a95bf009316.zip" DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-068151049f75aafa3e92aa87bbb69a95bf009316" DEFAULT_CONTRACT_NAME = "sov-esdt-safe" +DEFAULT_CONTRACT_VERSION = "0.1.0" def test_with_symlinks(): @@ -58,7 +59,7 @@ def test_has_correct_packaged_source(): assert code == 0 - packaged_source_code = PackagedSourceCode.from_file(output_folder / DEFAULT_CONTRACT_NAME / f"{DEFAULT_CONTRACT_NAME}-0.0.0.source.json") + packaged_source_code = PackagedSourceCode.from_file(output_folder / DEFAULT_CONTRACT_NAME / f"{DEFAULT_CONTRACT_NAME}-{DEFAULT_CONTRACT_VERSION}.source.json") for entry in packaged_source_code.entries: assert not str(entry.path).startswith("target"), f"Unexpected file: {entry.path}" From ac834c4719fa81e26c1f9f5646fa4799c2a0ee87 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 18:47:36 +0200 Subject: [PATCH 13/14] fix test- expected code hash for sov-esdt-safe --- integration_tests/previous_builds.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration_tests/previous_builds.py b/integration_tests/previous_builds.py index a894255..dd82cc6 100644 --- a/integration_tests/previous_builds.py +++ b/integration_tests/previous_builds.py @@ -59,7 +59,7 @@ def __init__(self, name: str, packaged_src_url=None, contract_name=None, expected_code_hashes={ - "sov-esdt-safe": "adc4e4f69b15153919c0bcf88df6436d4fcfacbc2da6a39e6bcc3f30927c80ad", + "sov-esdt-safe": "34f6479356b2621328bbfac0f0e0833a55a8bd1948b5a0e2500fd66291f0ad88", "fee-market": "fb1fdbf57fd491a67ef04b3355fbb2e11edc0d357b956c17ed568e6701da9584" }, docker_image="sdk-rust-contract-builder:next" From 60be0b83576205817450a59bfd13bd9dcb5bc592 Mon Sep 17 00:00:00 2001 From: BiancaIalangi Date: Wed, 19 Mar 2025 19:29:39 +0200 Subject: [PATCH 14/14] fix test- expected code hash for fee-market --- integration_tests/previous_builds.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration_tests/previous_builds.py b/integration_tests/previous_builds.py index dd82cc6..6acee46 100644 --- a/integration_tests/previous_builds.py +++ b/integration_tests/previous_builds.py @@ -60,7 +60,7 @@ def __init__(self, name: str, contract_name=None, expected_code_hashes={ "sov-esdt-safe": "34f6479356b2621328bbfac0f0e0833a55a8bd1948b5a0e2500fd66291f0ad88", - "fee-market": "fb1fdbf57fd491a67ef04b3355fbb2e11edc0d357b956c17ed568e6701da9584" + "fee-market": "0b81078e61efd692ebb3f83b437da9cf83ffff7843aeb0a66a71b5ddff3b2fb2" }, docker_image="sdk-rust-contract-builder:next" ),