From ca0a3a2f8fdc588c2dde6e817722c93bb56824dc Mon Sep 17 00:00:00 2001 From: qedk <1994constant@gmail.com> Date: Mon, 18 Dec 2023 18:50:21 +0400 Subject: [PATCH] feat: add CI --- .github/workflows/test.yml | 57 +++++++++++++++++++++++++++++++++++--- src/AvailBridge.sol | 13 +++++---- 2 files changed, 60 insertions(+), 10 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 09880b1..e04613b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,16 +1,20 @@ -name: test +name: Solidity CI -on: workflow_dispatch +on: + push: + branches: [main] + pull_request: + branches: [main] env: FOUNDRY_PROFILE: ci jobs: - check: + test: strategy: fail-fast: true - name: Foundry project + name: Foundry runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -32,3 +36,48 @@ jobs: run: | forge test -vvv id: test + + slither: + strategy: + fail-fast: true + + name: Slither + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - uses: crytic/slither-action@v0.3.0 + + coverage: + strategy: + fail-fast: true + + name: Foundry coverage + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Run Forge build + run: | + forge --version + forge build --sizes + id: build + + - name: Run Forge tests + run: | + forge coverage + id: coverage diff --git a/src/AvailBridge.sol b/src/AvailBridge.sol index ee9b227..2604337 100644 --- a/src/AvailBridge.sol +++ b/src/AvailBridge.sol @@ -41,10 +41,11 @@ contract AvailBridge is Initializable, Ownable2StepUpgradeable, ReentrancyGuardU using Merkle for bytes32[]; using SafeERC20 for IERC20; - uint32 public constant AVAIL_DOMAIN = 1; - uint32 public constant ETH_DOMAIN = 2; + uint32 private constant AVAIL_DOMAIN = 1; + uint32 private constant ETH_DOMAIN = 2; // slither-disable-next-line too-many-digits - bytes32 public constant ETH_ASSET_ID = 0x4554480000000000000000000000000000000000000000000000000000000000; + bytes32 private constant ETH_ASSET_ID = 0x4554480000000000000000000000000000000000000000000000000000000000; + bytes1 private constant TOKEN_TRANSFER_MESSAGE_TYPE = 0x02; IVectorX public vectorx; IWrappedAvail public avail; uint256 public messageId; @@ -216,7 +217,7 @@ contract AvailBridge is Initializable, Ownable2StepUpgradeable, ReentrancyGuardU function sendAVL(bytes32 recipient, uint256 amount) external checkDestAmt(recipient, amount) { uint256 id = messageId++; Message memory message = Message( - 0x02, + TOKEN_TRANSFER_MESSAGE_TYPE, bytes32(bytes20(msg.sender)), recipient, ETH_DOMAIN, @@ -234,7 +235,7 @@ contract AvailBridge is Initializable, Ownable2StepUpgradeable, ReentrancyGuardU function sendETH(bytes32 recipient) external payable checkDestAmt(recipient, msg.value) { uint256 id = messageId++; Message memory message = Message( - 0x02, + TOKEN_TRANSFER_MESSAGE_TYPE, bytes32(bytes20(msg.sender)), recipient, ETH_DOMAIN, @@ -254,7 +255,7 @@ contract AvailBridge is Initializable, Ownable2StepUpgradeable, ReentrancyGuardU } uint256 id = messageId++; Message memory message = Message( - 0x02, + TOKEN_TRANSFER_MESSAGE_TYPE, bytes32(bytes20(msg.sender)), recipient, ETH_DOMAIN,