Signed-off-by: Uncle Fatso <uncle.fatso@ghostchain.io>
This commit is contained in:
commit
ef11410879
40
.github/workflows/test.yml
vendored
Normal file
40
.github/workflows/test.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
FOUNDRY_PROFILE: ci
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
name: Foundry project
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Install Foundry
|
||||||
|
uses: foundry-rs/foundry-toolchain@v1
|
||||||
|
|
||||||
|
- name: Show Forge version
|
||||||
|
run: |
|
||||||
|
forge --version
|
||||||
|
|
||||||
|
- name: Run Forge fmt
|
||||||
|
run: |
|
||||||
|
forge fmt --check
|
||||||
|
id: fmt
|
||||||
|
|
||||||
|
- name: Run Forge build
|
||||||
|
run: |
|
||||||
|
forge build --sizes
|
||||||
|
id: build
|
||||||
|
|
||||||
|
- name: Run Forge tests
|
||||||
|
run: |
|
||||||
|
forge test -vvv
|
||||||
|
id: test
|
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Compiler files
|
||||||
|
cache/
|
||||||
|
out/
|
||||||
|
|
||||||
|
# Ignores development broadcast logs
|
||||||
|
!/broadcast
|
||||||
|
/broadcast/*/31337/
|
||||||
|
/broadcast/**/dry-run/
|
||||||
|
|
||||||
|
# Docs
|
||||||
|
docs/
|
||||||
|
|
||||||
|
# Dotenv file
|
||||||
|
.env
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "lib\\forge-std"]
|
||||||
|
path = lib\\forge-std
|
||||||
|
url = https://github.com/foundry-rs/forge-std
|
9
README.md
Normal file
9
README.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# EXODUS - EXchange Of Digital Uniformed Signatures
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
For more information [visit wiki](https://git.ghostchain.io/ghostchain/ghost-exodus-draft/wiki/Description).
|
||||||
|
|
||||||
|
## Implementation
|
||||||
|
|
||||||
|
An implementation of the EXODUS verifier will be in this repository.
|
6
foundry.toml
Normal file
6
foundry.toml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[profile.default]
|
||||||
|
src = "src"
|
||||||
|
out = "out"
|
||||||
|
libs = ["lib"]
|
||||||
|
|
||||||
|
# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
|
1
lib/forge-std
Submodule
1
lib/forge-std
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 8bbcf6e3f8f62f419e5429a0bd89331c85c37824
|
19
script/Counter.s.sol
Normal file
19
script/Counter.s.sol
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
// SPDX-License-Identifier: UNLICENSED
|
||||||
|
pragma solidity ^0.8.13;
|
||||||
|
|
||||||
|
import {Script, console} from "forge-std/Script.sol";
|
||||||
|
import {Counter} from "../src/Counter.sol";
|
||||||
|
|
||||||
|
contract CounterScript is Script {
|
||||||
|
Counter public counter;
|
||||||
|
|
||||||
|
function setUp() public {}
|
||||||
|
|
||||||
|
function run() public {
|
||||||
|
vm.startBroadcast();
|
||||||
|
|
||||||
|
counter = new Counter();
|
||||||
|
|
||||||
|
vm.stopBroadcast();
|
||||||
|
}
|
||||||
|
}
|
14
src/Counter.sol
Normal file
14
src/Counter.sol
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// SPDX-License-Identifier: UNLICENSED
|
||||||
|
pragma solidity ^0.8.13;
|
||||||
|
|
||||||
|
contract Counter {
|
||||||
|
uint256 public number;
|
||||||
|
|
||||||
|
function setNumber(uint256 newNumber) public {
|
||||||
|
number = newNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
function increment() public {
|
||||||
|
number++;
|
||||||
|
}
|
||||||
|
}
|
24
test/Counter.t.sol
Normal file
24
test/Counter.t.sol
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// SPDX-License-Identifier: UNLICENSED
|
||||||
|
pragma solidity ^0.8.13;
|
||||||
|
|
||||||
|
import {Test, console} from "forge-std/Test.sol";
|
||||||
|
import {Counter} from "../src/Counter.sol";
|
||||||
|
|
||||||
|
contract CounterTest is Test {
|
||||||
|
Counter public counter;
|
||||||
|
|
||||||
|
function setUp() public {
|
||||||
|
counter = new Counter();
|
||||||
|
counter.setNumber(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function test_Increment() public {
|
||||||
|
counter.increment();
|
||||||
|
assertEq(counter.number(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function testFuzz_SetNumber(uint256 x) public {
|
||||||
|
counter.setNumber(x);
|
||||||
|
assertEq(counter.number(), x);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user