From 583f41c2ae241f45611c0241cb7a6a7683a5669d Mon Sep 17 00:00:00 2001 From: Tino Breddin Date: Wed, 2 Nov 2022 09:19:42 +0000 Subject: [PATCH] Fix compilation of smart contracts in Docker containers The build was broken due to more recent `solc` requiring libc compat files in Alpine and Hardhat ignoring errors from the execution of `solc`. This led to deadlocked compilation attempts. Hardhat fix: https://github.com/NomicFoundation/hardhat/pull/3284 This changes adds the required compat files in our Alpine image as well. --- Dockerfile.hardhat | 6 ++ packages/ethereum/package.hardhat.json | 2 +- packages/ethereum/package.json | 2 +- yarn.lock | 102 ++++++++++++------------- 4 files changed, 59 insertions(+), 53 deletions(-) diff --git a/Dockerfile.hardhat b/Dockerfile.hardhat index 4951ee7c484..472fa10b571 100644 --- a/Dockerfile.hardhat +++ b/Dockerfile.hardhat @@ -62,6 +62,12 @@ RUN make -j build \ # use alpine version of node for smallest image sizes FROM node:16-alpine as runtime +# install tools required within our scripts +RUN apk add --no-cache libc6-compat + +# symlink to ensure any files relying on the presence of the library keep working +RUN ln -s /lib/libc.musl-x86_64.so.1 /lib/ld-linux-x86-64.so.2 + RUN mkdir /core WORKDIR /hardhat diff --git a/packages/ethereum/package.hardhat.json b/packages/ethereum/package.hardhat.json index afc1d4b1ff2..9e8b90ec830 100644 --- a/packages/ethereum/package.hardhat.json +++ b/packages/ethereum/package.hardhat.json @@ -30,7 +30,7 @@ "chai": "4.3.6", "dotenv": "10.0.0", "ethers": "5.7.0", - "hardhat": "2.11.2", + "hardhat": "2.12.2", "hardhat-deploy": "^0.11.5", "hardhat-gas-reporter": "1.0.8", "solidity-coverage": "0.8.2", diff --git a/packages/ethereum/package.json b/packages/ethereum/package.json index f68026e77a2..93b71fcc2d4 100644 --- a/packages/ethereum/package.json +++ b/packages/ethereum/package.json @@ -54,7 +54,7 @@ "chai": "4.3.6", "dotenv": "10.0.0", "ethers": "5.7.0", - "hardhat": "2.11.2", + "hardhat": "2.12.2", "hardhat-deploy": "^0.11.5", "hardhat-gas-reporter": "1.0.8", "solidity-coverage": "0.8.2", diff --git a/yarn.lock b/yarn.lock index e9bf1d5260e..724c1d1e783 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3114,7 +3114,7 @@ __metadata: chai: 4.3.6 dotenv: 10.0.0 ethers: 5.7.0 - hardhat: 2.11.2 + hardhat: 2.12.2 hardhat-deploy: ^0.11.5 hardhat-gas-reporter: 1.0.8 solidity-coverage: 0.8.2 @@ -4291,90 +4291,90 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-darwin-arm64@npm:0.1.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-darwin-x64@npm:0.1.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-freebsd-x64@npm:0.1.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-gnu@npm:0.1.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-linux-arm64-musl@npm:0.1.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-linux-x64-gnu@npm:0.1.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-linux-x64-musl@npm:0.1.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-win32-arm64-msvc@npm:0.1.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-win32-ia32-msvc@npm:0.1.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.0.3" +"@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer-win32-x64-msvc@npm:0.1.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@nomicfoundation/solidity-analyzer@npm:^0.0.3": - version: 0.0.3 - resolution: "@nomicfoundation/solidity-analyzer@npm:0.0.3" - dependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64": 0.0.3 - "@nomicfoundation/solidity-analyzer-darwin-x64": 0.0.3 - "@nomicfoundation/solidity-analyzer-freebsd-x64": 0.0.3 - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": 0.0.3 - "@nomicfoundation/solidity-analyzer-linux-arm64-musl": 0.0.3 - "@nomicfoundation/solidity-analyzer-linux-x64-gnu": 0.0.3 - "@nomicfoundation/solidity-analyzer-linux-x64-musl": 0.0.3 - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": 0.0.3 - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": 0.0.3 - "@nomicfoundation/solidity-analyzer-win32-x64-msvc": 0.0.3 +"@nomicfoundation/solidity-analyzer@npm:^0.1.0": + version: 0.1.0 + resolution: "@nomicfoundation/solidity-analyzer@npm:0.1.0" + dependencies: + "@nomicfoundation/solidity-analyzer-darwin-arm64": 0.1.0 + "@nomicfoundation/solidity-analyzer-darwin-x64": 0.1.0 + "@nomicfoundation/solidity-analyzer-freebsd-x64": 0.1.0 + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": 0.1.0 + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": 0.1.0 + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": 0.1.0 + "@nomicfoundation/solidity-analyzer-linux-x64-musl": 0.1.0 + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": 0.1.0 + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": 0.1.0 + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": 0.1.0 dependenciesMeta: "@nomicfoundation/solidity-analyzer-darwin-arm64": optional: true @@ -4396,7 +4396,7 @@ __metadata: optional: true "@nomicfoundation/solidity-analyzer-win32-x64-msvc": optional: true - checksum: dd3e1e6aa75716eb22f256be06d6a4d808ef732f77c26b4489ae8f9508271799d555dff547cf037373b0974d892b4cc7f78bc4ea5027eee8561e4dd394fe61ac + checksum: 42dc5ba40e76bf14945fb6a423554bbbc6c99596675065d7d6f3c9a49ec39e37f3f77ecfedcf906fdb1bb33b033a5d92a90c645c886d6ff23334c8af8b14ff67 languageName: node linkType: hard @@ -12479,9 +12479,9 @@ __metadata: languageName: node linkType: hard -"hardhat@npm:2.11.2": - version: 2.11.2 - resolution: "hardhat@npm:2.11.2" +"hardhat@npm:2.12.2": + version: 2.12.2 + resolution: "hardhat@npm:2.12.2" dependencies: "@ethersproject/abi": ^5.1.2 "@metamask/eth-sig-util": ^4.0.0 @@ -12495,7 +12495,7 @@ __metadata: "@nomicfoundation/ethereumjs-tx": ^4.0.0 "@nomicfoundation/ethereumjs-util": ^8.0.0 "@nomicfoundation/ethereumjs-vm": ^6.0.0 - "@nomicfoundation/solidity-analyzer": ^0.0.3 + "@nomicfoundation/solidity-analyzer": ^0.1.0 "@sentry/node": ^5.18.1 "@types/bn.js": ^5.1.0 "@types/lru-cache": ^5.1.0 @@ -12543,7 +12543,7 @@ __metadata: optional: true bin: hardhat: internal/cli/cli.js - checksum: 6fc289931c970a16fe09f7aa2b14f8b4f4a63304895be7e89112d4065cfdb15887d90cdd827d10f413fb5cc1ca09fb0b512b7ffc79dc6bc121368bda70dffb4a + checksum: cd45bf9d4f15d967bd2d8154cc5bc60e7d0d4bab80caea909d36e3660437fc9f6b4faf41736ed3b75b11ff15ac9a9b68828eebb1026ed9fa8d9eb87242f061d2 languageName: node linkType: hard