Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Aboudjem authored Feb 18, 2024
0 parents commit c660e84
Show file tree
Hide file tree
Showing 38 changed files with 1,551 additions and 0 deletions.
11 changes: 11 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export API_KEY_ALCHEMY="YOUR_API_KEY_ALCHEMY"
export API_KEY_ARBISCAN="YOUR_API_KEY_ARBISCAN"
export API_KEY_BSCSCAN="YOUR_API_KEY_BSCSCAN"
export API_KEY_ETHERSCAN="YOUR_API_KEY_ETHERSCAN"
export API_KEY_GNOSISSCAN="YOUR_API_KEY_GNOSISSCAN"
export API_KEY_INFURA="YOUR_API_KEY_INFURA"
export API_KEY_OPTIMISTIC_ETHERSCAN="YOUR_API_KEY_OPTIMISTIC_ETHERSCAN"
export API_KEY_POLYGONSCAN="YOUR_API_KEY_POLYGONSCAN"
export API_KEY_SNOWTRACE="YOUR_API_KEY_SNOWTRACE"
export MNEMONIC="YOUR_MNEMONIC"
export FOUNDRY_PROFILE="default"
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/1_general_issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: 💡 General Inquiry & Suggestions
description: Share general questions or suggestions that don't fit other categories
title: "[GENERAL] "
labels: ["question", "enhancement"]
body:
- type: markdown
attributes:
value: "Got a question or suggestion? We're all ears!"
- type: textarea
attributes:
label: Inquiry or Suggestion
description: What would you like to share with us?
placeholder: "I'm wondering about..."
validations:
required: false
- type: input
attributes:
label: Relevant Links or References
description: Optionally, add any relevant links or references.
placeholder: "e.g., https://github.com/example"
- type: checkboxes
attributes:
label: Code of Conduct
options:
- label: I agree to follow this project's Code of Conduct.
required: true
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/2_bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: 🐛 Bug Report & Test Failures
description: Report unexpected behaviors or failing tests
title: "[BUG] "
labels: ["bug", "help wanted"]
body:
- type: markdown
attributes:
value: "Please fill out this form with as much detail as possible to help us pinpoint the issue."
- type: input
attributes:
label: Summary
description: Provide a brief summary of the issue.
placeholder: "e.g., Function fails to return the correct value."
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce
description: Describe the steps to reproduce the issue.
placeholder: |
1. Deploy the contract...
2. Call the function...
3. The incorrect value is returned...
validations:
required: true
- type: textarea
attributes:
label: Expected vs. Actual Behavior
description: Detail the expected outcome versus what actually happened.
placeholder: "Expected to return X, but got Y instead."
validations:
required: true
- type: input
attributes:
label: Environment
description: Specify your development environment (e.g., compiler version, test framework).
placeholder: "Solidity v0.8.4, Hardhat v2.3.0"
- type: checkboxes
attributes:
label: Code of Conduct
options:
- label: I agree to follow this project's Code of Conduct.
required: true
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/3_feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: ✨ Feature Requests & Performance Improvements
description: Suggest a new feature or performance enhancement
title: "[FEATURE] "
labels: ["enhancement", "good first issue"]
body:
- type: markdown
attributes:
value: "Your suggestions inspire us to improve. Share your ideas below!"
- type: input
attributes:
label: Feature or Improvement Description
description: Describe the feature or improvement you're suggesting.
placeholder: "e.g., Optimize gas usage in function Z."
validations:
required: true
- type: textarea
attributes:
label: Benefits & Outcomes
description: Explain the benefits of your suggestion and the expected outcomes.
placeholder: "This improvement will reduce gas costs by 30%..."
- type: input
attributes:
label: Any References?
description: Provide links or references to similar features or standards.
placeholder: "EIP-1234, https://github.com/example"
- type: checkboxes
attributes:
label: Code of Conduct
options:
- label: I agree to follow this project's Code of Conduct.
required: true
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/4_security_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: 🔒 Security Pre-Screening
description: Pre-screening for security-related reports
title: "[SECURITY PRE-SCREEN] "
labels: ["security", "triage needed"]
body:
- type: markdown
attributes:
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."
- type: checkboxes
attributes:
label: Security Level Acknowledgement
options:
- label: "I understand this issue will be public. It is NOT critical or high risk and does not endanger deployed contracts."
required: true
- type: input
attributes:
label: Overview
description: Provide a summary of the non-critical security concern or question.
placeholder: "e.g., Questions about the audit process."
validations:
required: true
- type: textarea
attributes:
label: Additional Details
description: Offer more detail on your concern or question.
placeholder: "Provide any additional context..."
- type: input
attributes:
label: Suggestions for Mitigation
description: (Optional) Suggest ways to address the concern.
placeholder: "Potential mitigation steps include..."
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/5_document_improvement.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: 📚 Documentation Improvement
description: Propose improvements or report issues with documentation
title: "[DOCS] "
labels: ["documentation"]
body:
- type: markdown
attributes:
value: "Help us enhance our documentation for everyone."
- type: input
attributes:
label: Documentation Page/Section
description: Which page or section are you referring to?
placeholder: "e.g., README.md, NatSpec guidelines."
validations:
required: true
- type: textarea
attributes:
label: Suggested Improvements
description: Detail the improvements or corrections needed.
placeholder: "The section on XYZ could clarify..."
validations:
required: true
- type: input
attributes:
label: Additional Comments
description: Any other comments or suggestions?
placeholder: "Consider adding examples for..."
- type: checkboxes
attributes:
label: Code of Conduct
options:
- label: I agree to follow this project's Code of Conduct.
required: true
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/6_build_deployment_issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: 🛠 Build & Deployment Issues
description: Report issues related to building or deploying smart contracts
title: "[BUILD/DEPLOY] "
labels: ["bug", "help wanted"]
body:
- type: markdown
attributes:
value: "Help us identify build or deployment problems to improve our processes."
- type: input
attributes:
label: Issue Summary
description: Briefly describe the issue encountered.
placeholder: "e.g., Failed to deploy contract due to..."
validations:
required: true
- type: textarea
attributes:
label: Error Logs & Messages
description: Provide any error logs or messages seen.
placeholder: "Error: Failed to..."
validations:
required: true
- type: input
attributes:
label: Environment & Tools
description: Mention the tools and environment where the issue occurred.
placeholder: "e.g., Truffle v5.3, Rinkeby testnet"
- type: checkboxes
attributes:
label: Code of Conduct
options:
- label: I agree to follow this project's Code of Conduct.
required: true
22 changes: 22 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
## Pull Request for Smart Contract Improvement

**Describe your changes:**

<!-- Briefly describe what you're changing or fixing. -->

**Link any related issues:**

<!-- Link any related issues here. -->

**Testing:**

<!-- Describe how the changes were tested. Include steps if applicable. -->

**Note:** Please ensure all tests and lint checks pass before requesting a review. If there are any errors, fix them prior to submission.

**Checklist:**

- [ ] I have performed a self-review of my own code.
- [ ] I have added tests that prove my fix is effective or that my feature works.
- [ ] I have made corresponding changes to the documentation, if applicable.
- [ ] My changes generate no new warnings or errors.
50 changes: 50 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Test workflow
on: push
jobs:
lint:
name: Lint sources
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Install foundry dependencies
run: forge install

- name: Lint sources
run: yarn lint:sol

unit_test:
name: Unit tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Create a fake .secret file
run: echo "primary twist rack vendor diagram image used route theme frown either will" > .secret

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Install foundry dependencies
run: forge install

- name: Build Typechain and Foundry
run: yarn build

- name: Run Forge and Hardhat Tests
run: yarn test
44 changes: 44 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Coverage
on: push
jobs:
coverage:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: "20.x"

- name: Install lcov (for genhtml)
run: sudo apt-get update && sudo apt-get install -y lcov

- name: Install JavaScript Dependencies
run: yarn install --frozen-lockfile

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Install Foundry Dependencies
run: forge install

- name: Generate Hardhat & Foundry Coverage Report
run: yarn coverage:report

- name: Upload Foundry Coverage Report to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage/foundry/lcov.info
flags: foundry

- name: Upload Hardhat Coverage Report to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage/lcov.info
flags: hardhat
44 changes: 44 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# directories
cache
coverage
node_modules
out
docs
storageLayout

# files
*.env
*.log
.DS_Store
.pnp.*
lcov.info
package-lock.json
pnpm-lock.yaml
yarn.lock

# broadcasts
!broadcast
broadcast/*
broadcast/*/31337/

node_modules
.env

# Hardhat files
/cache
/artifacts
/docs

# TypeChain files
/typechain
/typechain-types

# solidity-coverage files
/coverage
/coverage.json

node_modules
.env

# Foundry cache
cache_forge/solidity-files-cache.json
Empty file added .gitmodules
Empty file.
17 changes: 17 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# directories
broadcast
cache
coverage
node_modules
out

# files
*.env
*.log
.DS_Store
.pnp.*
bun.lockb
lcov.info
package-lock.json
pnpm-lock.yaml
yarn.lock
Loading

0 comments on commit c660e84

Please sign in to comment.