Skip to content

Commit 811b335

Browse files
Initial commit
0 parents  commit 811b335

38 files changed

+1551
-0
lines changed

.env.example

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export API_KEY_ALCHEMY="YOUR_API_KEY_ALCHEMY"
2+
export API_KEY_ARBISCAN="YOUR_API_KEY_ARBISCAN"
3+
export API_KEY_BSCSCAN="YOUR_API_KEY_BSCSCAN"
4+
export API_KEY_ETHERSCAN="YOUR_API_KEY_ETHERSCAN"
5+
export API_KEY_GNOSISSCAN="YOUR_API_KEY_GNOSISSCAN"
6+
export API_KEY_INFURA="YOUR_API_KEY_INFURA"
7+
export API_KEY_OPTIMISTIC_ETHERSCAN="YOUR_API_KEY_OPTIMISTIC_ETHERSCAN"
8+
export API_KEY_POLYGONSCAN="YOUR_API_KEY_POLYGONSCAN"
9+
export API_KEY_SNOWTRACE="YOUR_API_KEY_SNOWTRACE"
10+
export MNEMONIC="YOUR_MNEMONIC"
11+
export FOUNDRY_PROFILE="default"
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: 💡 General Inquiry & Suggestions
2+
description: Share general questions or suggestions that don't fit other categories
3+
title: "[GENERAL] "
4+
labels: ["question", "enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: "Got a question or suggestion? We're all ears!"
9+
- type: textarea
10+
attributes:
11+
label: Inquiry or Suggestion
12+
description: What would you like to share with us?
13+
placeholder: "I'm wondering about..."
14+
validations:
15+
required: false
16+
- type: input
17+
attributes:
18+
label: Relevant Links or References
19+
description: Optionally, add any relevant links or references.
20+
placeholder: "e.g., https://github.com/example"
21+
- type: checkboxes
22+
attributes:
23+
label: Code of Conduct
24+
options:
25+
- label: I agree to follow this project's Code of Conduct.
26+
required: true
+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: 🐛 Bug Report & Test Failures
2+
description: Report unexpected behaviors or failing tests
3+
title: "[BUG] "
4+
labels: ["bug", "help wanted"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: "Please fill out this form with as much detail as possible to help us pinpoint the issue."
9+
- type: input
10+
attributes:
11+
label: Summary
12+
description: Provide a brief summary of the issue.
13+
placeholder: "e.g., Function fails to return the correct value."
14+
validations:
15+
required: true
16+
- type: textarea
17+
attributes:
18+
label: Steps to Reproduce
19+
description: Describe the steps to reproduce the issue.
20+
placeholder: |
21+
1. Deploy the contract...
22+
2. Call the function...
23+
3. The incorrect value is returned...
24+
validations:
25+
required: true
26+
- type: textarea
27+
attributes:
28+
label: Expected vs. Actual Behavior
29+
description: Detail the expected outcome versus what actually happened.
30+
placeholder: "Expected to return X, but got Y instead."
31+
validations:
32+
required: true
33+
- type: input
34+
attributes:
35+
label: Environment
36+
description: Specify your development environment (e.g., compiler version, test framework).
37+
placeholder: "Solidity v0.8.4, Hardhat v2.3.0"
38+
- type: checkboxes
39+
attributes:
40+
label: Code of Conduct
41+
options:
42+
- label: I agree to follow this project's Code of Conduct.
43+
required: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: ✨ Feature Requests & Performance Improvements
2+
description: Suggest a new feature or performance enhancement
3+
title: "[FEATURE] "
4+
labels: ["enhancement", "good first issue"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: "Your suggestions inspire us to improve. Share your ideas below!"
9+
- type: input
10+
attributes:
11+
label: Feature or Improvement Description
12+
description: Describe the feature or improvement you're suggesting.
13+
placeholder: "e.g., Optimize gas usage in function Z."
14+
validations:
15+
required: true
16+
- type: textarea
17+
attributes:
18+
label: Benefits & Outcomes
19+
description: Explain the benefits of your suggestion and the expected outcomes.
20+
placeholder: "This improvement will reduce gas costs by 30%..."
21+
- type: input
22+
attributes:
23+
label: Any References?
24+
description: Provide links or references to similar features or standards.
25+
placeholder: "EIP-1234, https://github.com/example"
26+
- type: checkboxes
27+
attributes:
28+
label: Code of Conduct
29+
options:
30+
- label: I agree to follow this project's Code of Conduct.
31+
required: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: 🔒 Security Pre-Screening
2+
description: Pre-screening for security-related reports
3+
title: "[SECURITY PRE-SCREEN] "
4+
labels: ["security", "triage needed"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: "Security is our top priority. If you've discovered a potential security issue that is **critical or high** in nature and could affect our deployed contracts, **please do not report it here.** Instead, email us directly at [email protected] for a confidential review. For all other security-related inquiries that do not pose an immediate risk to our deployed contracts, please proceed."
9+
- type: checkboxes
10+
attributes:
11+
label: Security Level Acknowledgement
12+
options:
13+
- label: "I understand this issue will be public. It is NOT critical or high risk and does not endanger deployed contracts."
14+
required: true
15+
- type: input
16+
attributes:
17+
label: Overview
18+
description: Provide a summary of the non-critical security concern or question.
19+
placeholder: "e.g., Questions about the audit process."
20+
validations:
21+
required: true
22+
- type: textarea
23+
attributes:
24+
label: Additional Details
25+
description: Offer more detail on your concern or question.
26+
placeholder: "Provide any additional context..."
27+
- type: input
28+
attributes:
29+
label: Suggestions for Mitigation
30+
description: (Optional) Suggest ways to address the concern.
31+
placeholder: "Potential mitigation steps include..."
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: 📚 Documentation Improvement
2+
description: Propose improvements or report issues with documentation
3+
title: "[DOCS] "
4+
labels: ["documentation"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: "Help us enhance our documentation for everyone."
9+
- type: input
10+
attributes:
11+
label: Documentation Page/Section
12+
description: Which page or section are you referring to?
13+
placeholder: "e.g., README.md, NatSpec guidelines."
14+
validations:
15+
required: true
16+
- type: textarea
17+
attributes:
18+
label: Suggested Improvements
19+
description: Detail the improvements or corrections needed.
20+
placeholder: "The section on XYZ could clarify..."
21+
validations:
22+
required: true
23+
- type: input
24+
attributes:
25+
label: Additional Comments
26+
description: Any other comments or suggestions?
27+
placeholder: "Consider adding examples for..."
28+
- type: checkboxes
29+
attributes:
30+
label: Code of Conduct
31+
options:
32+
- label: I agree to follow this project's Code of Conduct.
33+
required: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: 🛠 Build & Deployment Issues
2+
description: Report issues related to building or deploying smart contracts
3+
title: "[BUILD/DEPLOY] "
4+
labels: ["bug", "help wanted"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: "Help us identify build or deployment problems to improve our processes."
9+
- type: input
10+
attributes:
11+
label: Issue Summary
12+
description: Briefly describe the issue encountered.
13+
placeholder: "e.g., Failed to deploy contract due to..."
14+
validations:
15+
required: true
16+
- type: textarea
17+
attributes:
18+
label: Error Logs & Messages
19+
description: Provide any error logs or messages seen.
20+
placeholder: "Error: Failed to..."
21+
validations:
22+
required: true
23+
- type: input
24+
attributes:
25+
label: Environment & Tools
26+
description: Mention the tools and environment where the issue occurred.
27+
placeholder: "e.g., Truffle v5.3, Rinkeby testnet"
28+
- type: checkboxes
29+
attributes:
30+
label: Code of Conduct
31+
options:
32+
- label: I agree to follow this project's Code of Conduct.
33+
required: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
## Pull Request for Smart Contract Improvement
2+
3+
**Describe your changes:**
4+
5+
<!-- Briefly describe what you're changing or fixing. -->
6+
7+
**Link any related issues:**
8+
9+
<!-- Link any related issues here. -->
10+
11+
**Testing:**
12+
13+
<!-- Describe how the changes were tested. Include steps if applicable. -->
14+
15+
**Note:** Please ensure all tests and lint checks pass before requesting a review. If there are any errors, fix them prior to submission.
16+
17+
**Checklist:**
18+
19+
- [ ] I have performed a self-review of my own code.
20+
- [ ] I have added tests that prove my fix is effective or that my feature works.
21+
- [ ] I have made corresponding changes to the documentation, if applicable.
22+
- [ ] My changes generate no new warnings or errors.

.github/workflows/ci.yml

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Test workflow
2+
on: push
3+
jobs:
4+
lint:
5+
name: Lint sources
6+
runs-on: ubuntu-latest
7+
steps:
8+
- name: Checkout
9+
uses: actions/checkout@v3
10+
11+
- name: Install dependencies
12+
run: yarn install --frozen-lockfile
13+
14+
- name: Install Foundry
15+
uses: foundry-rs/foundry-toolchain@v1
16+
with:
17+
version: nightly
18+
19+
- name: Install foundry dependencies
20+
run: forge install
21+
22+
- name: Lint sources
23+
run: yarn lint:sol
24+
25+
unit_test:
26+
name: Unit tests
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v3
31+
32+
- name: Install dependencies
33+
run: yarn install --frozen-lockfile
34+
35+
- name: Create a fake .secret file
36+
run: echo "primary twist rack vendor diagram image used route theme frown either will" > .secret
37+
38+
- name: Install Foundry
39+
uses: foundry-rs/foundry-toolchain@v1
40+
with:
41+
version: nightly
42+
43+
- name: Install foundry dependencies
44+
run: forge install
45+
46+
- name: Build Typechain and Foundry
47+
run: yarn build
48+
49+
- name: Run Forge and Hardhat Tests
50+
run: yarn test

.github/workflows/coverage.yml

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Coverage
2+
on: push
3+
jobs:
4+
coverage:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- name: Checkout Repository
8+
uses: actions/checkout@v3
9+
10+
- name: Set up Node.js
11+
uses: actions/setup-node@v3
12+
with:
13+
node-version: "20.x"
14+
15+
- name: Install lcov (for genhtml)
16+
run: sudo apt-get update && sudo apt-get install -y lcov
17+
18+
- name: Install JavaScript Dependencies
19+
run: yarn install --frozen-lockfile
20+
21+
- name: Install Foundry
22+
uses: foundry-rs/foundry-toolchain@v1
23+
with:
24+
version: nightly
25+
26+
- name: Install Foundry Dependencies
27+
run: forge install
28+
29+
- name: Generate Hardhat & Foundry Coverage Report
30+
run: yarn coverage:report
31+
32+
- name: Upload Foundry Coverage Report to Codecov
33+
uses: codecov/codecov-action@v3
34+
with:
35+
token: ${{ secrets.CODECOV_TOKEN }}
36+
file: ./coverage/foundry/lcov.info
37+
flags: foundry
38+
39+
- name: Upload Hardhat Coverage Report to Codecov
40+
uses: codecov/codecov-action@v3
41+
with:
42+
token: ${{ secrets.CODECOV_TOKEN }}
43+
file: ./coverage/lcov.info
44+
flags: hardhat

.gitignore

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# directories
2+
cache
3+
coverage
4+
node_modules
5+
out
6+
docs
7+
storageLayout
8+
9+
# files
10+
*.env
11+
*.log
12+
.DS_Store
13+
.pnp.*
14+
lcov.info
15+
package-lock.json
16+
pnpm-lock.yaml
17+
yarn.lock
18+
19+
# broadcasts
20+
!broadcast
21+
broadcast/*
22+
broadcast/*/31337/
23+
24+
node_modules
25+
.env
26+
27+
# Hardhat files
28+
/cache
29+
/artifacts
30+
/docs
31+
32+
# TypeChain files
33+
/typechain
34+
/typechain-types
35+
36+
# solidity-coverage files
37+
/coverage
38+
/coverage.json
39+
40+
node_modules
41+
.env
42+
43+
# Foundry cache
44+
cache_forge/solidity-files-cache.json

.gitmodules

Whitespace-only changes.

.prettierignore

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# directories
2+
broadcast
3+
cache
4+
coverage
5+
node_modules
6+
out
7+
8+
# files
9+
*.env
10+
*.log
11+
.DS_Store
12+
.pnp.*
13+
bun.lockb
14+
lcov.info
15+
package-lock.json
16+
pnpm-lock.yaml
17+
yarn.lock

0 commit comments

Comments
 (0)