File tree 6 files changed +143
-0
lines changed
6 files changed +143
-0
lines changed Original file line number Diff line number Diff line change
1
+ name : test
2
+
3
+ on : workflow_dispatch
4
+
5
+ env :
6
+ FOUNDRY_PROFILE : ci
7
+
8
+ jobs :
9
+ check :
10
+ strategy :
11
+ fail-fast : true
12
+
13
+ name : Foundry project
14
+ runs-on : ubuntu-latest
15
+ steps :
16
+ - uses : actions/checkout@v4
17
+ with :
18
+ submodules : recursive
19
+
20
+ - name : Install Foundry
21
+ uses : foundry-rs/foundry-toolchain@v1
22
+ with :
23
+ version : nightly
24
+
25
+ - name : Run Forge build
26
+ run : |
27
+ forge --version
28
+ forge build --sizes
29
+ id : build
30
+
31
+ - name : Run Forge tests
32
+ run : |
33
+ forge test -vvv
34
+ id : test
Original file line number Diff line number Diff line change
1
+ # Compiler files
2
+ cache /
3
+ out /
4
+
5
+ # Ignores development broadcast logs
6
+ ! /broadcast
7
+ /broadcast /* /31337 /
8
+ /broadcast /** /dry-run /
9
+
10
+ # Docs
11
+ docs /
12
+
13
+ # Dotenv file
14
+ .env
Original file line number Diff line number Diff line change
1
+ ## Foundry
2
+
3
+ ** Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.**
4
+
5
+ Foundry consists of:
6
+
7
+ - ** Forge** : Ethereum testing framework (like Truffle, Hardhat and DappTools).
8
+ - ** Cast** : Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
9
+ - ** Anvil** : Local Ethereum node, akin to Ganache, Hardhat Network.
10
+ - ** Chisel** : Fast, utilitarian, and verbose solidity REPL.
11
+
12
+ ## Documentation
13
+
14
+ https://book.getfoundry.sh/
15
+
16
+ ## Usage
17
+
18
+ ### Build
19
+
20
+ ``` shell
21
+ $ forge build
22
+ ```
23
+
24
+ ### Test
25
+
26
+ ``` shell
27
+ $ forge test
28
+ ```
29
+
30
+ ### Format
31
+
32
+ ``` shell
33
+ $ forge fmt
34
+ ```
35
+
36
+ ### Gas Snapshots
37
+
38
+ ``` shell
39
+ $ forge snapshot
40
+ ```
41
+
42
+ ### Anvil
43
+
44
+ ``` shell
45
+ $ anvil
46
+ ```
47
+
48
+ ### Deploy
49
+
50
+ ``` shell
51
+ $ forge script script/Counter.s.sol:CounterScript --rpc-url < your_rpc_url> --private-key < your_private_key>
52
+ ```
53
+
54
+ ### Cast
55
+
56
+ ``` shell
57
+ $ cast < subcommand>
58
+ ```
59
+
60
+ ### Help
61
+
62
+ ``` shell
63
+ $ forge --help
64
+ $ anvil --help
65
+ $ cast --help
66
+ ```
Original file line number Diff line number Diff line change
1
+ [profile .default ]
2
+ src = " src"
3
+ out = " out"
4
+ libs = [" lib" ]
5
+
6
+ # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options
Original file line number Diff line number Diff line change
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^ 0.8.19 ;
3
+
4
+ contract Orchestrator {
5
+ /*
6
+ Constants
7
+ */
8
+
9
+ address constant NOUNS_EXECUTOR = 0x0BC3807Ec262cB779b38D65b38158acC3bfedE10 ;
10
+ address constant NOUNS_GOVERNOR = payable (address (0x6f3E6272A167e8AcCb32072d08E0957F9c79223d ));
11
+ address constant NOUNS_TOKEN = 0x9C8fF314C9Bc7F6e59A9d9225Fb22946427eDC03 ;
12
+ address constant NOUNS_AUCTION = 0x830BD73E4184ceF73443C15111a1DF14e495C706 ;
13
+ address constant DELEGATE_CASH = 0x00000000000000447e69651d841bD8D104Bed493 ;
14
+ }
Original file line number Diff line number Diff line change
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^ 0.8.13 ;
3
+
4
+ import {Test, console2} from "forge-std/Test.sol " ;
5
+ import {Orchestrator} from "../src/Orchestrator.sol " ;
6
+
7
+ contract OrchestratorTest is Test {
8
+ Orchestrator public orchestrator;
9
+ }
You can’t perform that action at this time.
0 commit comments