Skip to content

build: update package names #918

build: update package names

build: update package names #918

Workflow file for this run

# This workflow ensure that the smart contracts can be compiled with different Solidity 0.8.x versions
# It checks if the `pragma solidity ^0.8.x` statement for `.sol` files satisfy the minimum version
# require by the Solidity language features used in this file.
name: Solidity Compiler Versions
on:
workflow_dispatch:
push:
# Used to check before releasing
branches:
- "develop"
# Only run when `.sol` files have been changed
paths:
- "contracts/**/*.sol"
pull_request:
paths:
- "contracts/**/*.sol"
jobs:
solc_version:
runs-on: ubuntu-latest
strategy:
matrix:
solc: [
"0.8.5",
"0.8.6",
"0.8.7",
"0.8.8",
"0.8.9",
"0.8.10",
"0.8.11",
"0.8.12",
"0.8.13",
"0.8.14",
"0.8.15",
"0.8.16",
# 0.8.17 skipped as default in hardhat.config.ts
"0.8.18",
"0.8.19",
"0.8.20",
"0.8.21",
"0.8.22",
"0.8.23",
]
steps:
- uses: actions/checkout@v3
- name: Use Node.js '16.15.0'
uses: actions/setup-node@v2
with:
node-version: "16.15.0"
cache: "npm"
- name: 📦 Install dependencies
run: npm ci
- name: Install solc-select
run: pip3 install solc-select
- name: Use Solc v${{ matrix.solc }}
run: |
solc-select install ${{ matrix.solc }}
solc-select use ${{ matrix.solc }}
- name: Compare versions to filter contracts to compile
uses: madhead/semver-utils@latest
id: comparison
with:
version: ${{ matrix.solc }}
compare-to: 0.8.12
# In the pattern matching of the `grep` command below, we use a path for LSP8 contracts with `pragma solidity ^0.8.12`
# instead of just the word "LSP8IdentifiableDigitalAsset" to prevent the whole `contracts/LSP8IdentifiableDigitalAsset/**/*.sol` folder from being discarded.
- name: Compile Smart Contracts
run: |
if [[ "<" == "${{ steps.comparison.outputs.comparison-result }}" ]]
then
solc $(ls contracts/**/*.sol | grep -v "Extension4337\|contracts/LSP8IdentifiableDigitalAsset/LSP8IdentifiableDigitalAsset") \
--allow-paths $(pwd)/node_modules/,$(pwd)/packages/ \
../=$(pwd)/contracts/ \
@=node_modules/@ \
solidity-bytes-utils/=node_modules/solidity-bytes-utils/ \
@lukso/lsp0-contracts/=packages/LSP0ERC725Account/ \
@lukso/lsp1-contracts/=packages/LSP1UniversalReceiver/ \
@lukso/lsp1delegate-contracts/=packages/LSP1UniversalReceiverDelegate/ \
@lukso/lsp2-contracts/=packages/LSP2ERC725YJSONSchema/ \
@lukso/lsp3-contracts/=packages/LSP3ProfileMetadata/ \
@lukso/lsp4-contracts/=packages/LSP4DigitalAssetMetadata/ \
@lukso/lsp5-contracts/=packages/LSP5ReceivedAssets/ \
@lukso/lsp6-contracts/=packages/LSP6KeyManager/ \
@lukso/lsp7-contracts/=packages/LSP7DigitalAsset/ \
@lukso/lsp8-contracts/=packages/LSP8IdentifiableDigitalAsset/ \
@lukso/lsp9-contracts/=packages/LSP9Vault/ \
@lukso/lsp10-contracts/=packages/LSP10ReceivedVaults/ \
@lukso/lsp12-contracts/=packages/LSP12IssuedAssets/ \
@lukso/lsp14-contracts/=packages/LSP14Ownable2Step/ \
@lukso/lsp16-contracts/=packages/LSP16UniversalFactory/ \
@lukso/lsp17-contracts/=packages/LSP17Extensions/ \
@lukso/lsp17contractextension-contracts/=packages/LSP17ContractExtension/ \
@lukso/lsp20-contracts/=packages/LSP20CallVerification/ \
@lukso/lsp23-contracts/=packages/LSP23LinkedContractsDeployment/ \
@lukso/lsp25-contracts/=packages/LSP25ExecuteRelayCall/ \
@lukso/universalprofile-contracts/=packages/UniversalProfile/
else
solc contracts/**/*.sol \
@=node_modules/@ \
solidity-bytes-utils/=node_modules/solidity-bytes-utils/ \
@lukso/lsp0-contracts/=packages/LSP0ERC725Account/ \
@lukso/lsp1-contracts/=packages/LSP1UniversalReceiver/ \
@lukso/lsp1delegate-contracts/=packages/LSP1UniversalReceiverDelegate/ \
@lukso/lsp2-contracts/=packages/LSP2ERC725YJSONSchema/ \
@lukso/lsp3-contracts/=packages/LSP3ProfileMetadata/ \
@lukso/lsp4-contracts/=packages/LSP4DigitalAssetMetadata/ \
@lukso/lsp5-contracts/=packages/LSP5ReceivedAssets/ \
@lukso/lsp6-contracts/=packages/LSP6KeyManager/ \
@lukso/lsp7-contracts/=packages/LSP7DigitalAsset/ \
@lukso/lsp8-contracts/=packages/LSP8IdentifiableDigitalAsset/ \
@lukso/lsp9-contracts/=packages/LSP9Vault/ \
@lukso/lsp10-contracts/=packages/LSP10ReceivedVaults/ \
@lukso/lsp12-contracts/=packages/LSP12IssuedAssets/ \
@lukso/lsp14-contracts/=packages/LSP14Ownable2Step/ \
@lukso/lsp16-contracts/=packages/LSP16UniversalFactory/ \
@lukso/lsp17-contracts/=packages/LSP17Extensions/ \
@lukso/lsp17contractextension-contracts/=packages/LSP17ContractExtension/ \
@lukso/lsp20-contracts/=packages/LSP20CallVerification/ \
@lukso/lsp23-contracts/=packages/LSP23LinkedContractsDeployment/ \
@lukso/lsp25-contracts/=packages/LSP25ExecuteRelayCall/ \
@lukso/universalprofile-contracts/=packages/UniversalProfile/
fi;