From bfc0e823a0ef7b40f9d7e158d389c89009a3a2ae Mon Sep 17 00:00:00 2001 From: John Cairns Date: Wed, 1 Nov 2023 09:38:09 -0500 Subject: [PATCH] Update go etheresum 1.13.4, solc 0.8.22, node 20.9.0 --- CHANGELOG.md | 7 +++++++ Dockerfile | 4 ++-- README.md | 6 ++++-- foundry.png | Bin 0 -> 19891 bytes 4 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 foundry.png diff --git a/CHANGELOG.md b/CHANGELOG.md index df7ff09..b22a5eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +1.0.3 (2023-11-01) + +* go ethereum 1.13.4 +* solc 0.8.22 +* node 20.9.0 + + 1.0.2 (2023-10-11) * go ethereum: 1.13.3 diff --git a/Dockerfile b/Dockerfile index d6138a9..3ec028b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ RUN go version ## Go Ethereum WORKDIR /go-ethereum -ARG ETH_VERSION=1.13.2 +ARG ETH_VERSION=1.13.4 ADD https://github.com/ethereum/go-ethereum/archive/refs/tags/v${ETH_VERSION}.tar.gz /go-ethereum/go-ethereum-${ETH_VERSION}.tar.gz RUN echo 'SHA256 of this go-ethereum package...' RUN cat /go-ethereum/go-ethereum-${ETH_VERSION}.tar.gz | sha256sum @@ -101,7 +101,7 @@ RUN export DEBIAN_FRONTEND=noninteractive && \ RUN mkdir -p /usr/local/nvm ENV NVM_DIR=/usr/local/nvm -ENV NODE_VERSION=v18.18.1 +ENV NODE_VERSION=v20.9.0 ADD https://raw.githubusercontent.com/creationix/nvm/master/install.sh /usr/local/etc/nvm/install.sh RUN bash /usr/local/etc/nvm/install.sh && \ diff --git a/README.md b/README.md index e950a3f..252c7ea 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Foundry Development Container for Docker and VS Code +![Foundry](foundry.png) + This development container for Visual Studio Code is a pre-configured and isolated environment that allows you to develop, build, and test your software projects using consistent tools and settings. This development container can be used in Docker to create a standardized and reproducible environment for your development workflow. This is useful when working on projects that require specific versions of programming languages, libraries, tools, and other dependencies. By using this development container, you can ensure that all members of your development team work with the same development environment, reducing issues related to differences in configurations and dependencies. Key benefits of using development containers in Visual Studio Code include: @@ -21,8 +23,8 @@ To use this development container in Visual Studio Code, specify the `Dockerfile Everything needed to develop smart contracts with Ethereum and [Foundry](https://github.com/foundry-rs/foundry) GO: 1.21.3 -ETH: 1.13.2 -SOLC: 0.8.21 +ETH: 1.13.4 +SOLC: 0.8.22 #### Deployments diff --git a/foundry.png b/foundry.png new file mode 100644 index 0000000000000000000000000000000000000000..49e60d3868b5117aacc6daa685aa8f56d0ce6ed6 GIT binary patch literal 19891 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