Skip to content

Commit

Permalink
foundry example added (#16)
Browse files Browse the repository at this point in the history
* foundry example added

* dependencies removed

* dependencies removed from repo

* code added

* issue fixed

* just counter included

---------

Co-authored-by: Lesther Caballero <[email protected]>
  • Loading branch information
itslesther and Lesther Caballero authored Jun 21, 2024
1 parent 90263de commit c10408b
Show file tree
Hide file tree
Showing 9 changed files with 141 additions and 0 deletions.
34 changes: 34 additions & 0 deletions Contract_deployment_foundry/.github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: test

on: workflow_dispatch

env:
FOUNDRY_PROFILE: ci

jobs:
check:
strategy:
fail-fast: true

name: Foundry project
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
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 test -vvv
id: test
16 changes: 16 additions & 0 deletions Contract_deployment_foundry/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Compiler files
cache/
out/

# Ignores development broadcast logs
!/broadcast
/broadcast/*/31337/
/broadcast/**/dry-run/

# Docs
docs/

# Dotenv file
.env

dependencies
15 changes: 15 additions & 0 deletions Contract_deployment_foundry/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# SWTRPRoxy with Foundry

## Install

`forge soldeer update`

## Build

`forge build`

## Deploy

To deploy run:
`forge create src/Counter.sol:Counter --rpc-url https://json-rpc.testnet.swisstronik.com --private-key <your_private_key>`

10 changes: 10 additions & 0 deletions Contract_deployment_foundry/foundry.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[profile.default]
src = "src"
out = "out"
libs = ["lib", "dependencies"]

# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options

[dependencies]
"@openzeppelin-contracts" = { version = "5.0.2" }
forge-std = { version = "1.8.2" }
4 changes: 4 additions & 0 deletions Contract_deployment_foundry/remappings.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
@openzeppelin/contracts=dependencies/@openzeppelin-contracts-5.0.2
forge-std=dependencies/forge-std-1.8.2/src
@openzeppelin-contracts-5.0.2=dependencies/@openzeppelin-contracts-5.0.2
@forge-std-1.8.2=dependencies/forge-std-1.8.2
12 changes: 12 additions & 0 deletions Contract_deployment_foundry/script/Counter.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import {Script, console} from "forge-std/Script.sol";

contract CounterScript is Script {
function setUp() public {}

function run() public {
vm.broadcast();
}
}
12 changes: 12 additions & 0 deletions Contract_deployment_foundry/soldeer.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

[[dependencies]]
name = "@openzeppelin-contracts"
version = "5.0.2"
source = "https://soldeer-revisions.s3.amazonaws.com/@openzeppelin-contracts/5_0_2_14-03-2024_06:11:59_contracts.zip"
checksum = "8bc4f0acc7c187771b878d46f7de4bfad1acad2eb5d096d9d05d34035853f5c3"

[[dependencies]]
name = "forge-std"
version = "1.8.2"
source = "https://soldeer-revisions.s3.amazonaws.com/forge-std/1_8_2_19-05-2024_18:52:07_forge-std-1.8.2.zip"
checksum = "88a37e1d79f60b8aad08c7bd50a7a5ef973fc172b1495028d0725a17f5a4976c"
14 changes: 14 additions & 0 deletions Contract_deployment_foundry/src/Counter.sol
Original file line number Diff line number Diff line change
@@ -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 changes: 24 additions & 0 deletions Contract_deployment_foundry/test/Counter.t.sol
Original file line number Diff line number Diff line change
@@ -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);
}
}

0 comments on commit c10408b

Please sign in to comment.