Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"image":"mcr.microsoft.com/devcontainers/base:ubuntu-24.04"}
67 changes: 34 additions & 33 deletions .github/workflows/contracts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,44 +2,45 @@ name: Contracts CI

on:
push:
paths:
- 'contracts/**'
branches: [main, develop]
pull_request:
paths:
- 'contracts/**'
branches: [main, develop]

jobs:
test:
build-and-test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./contracts
steps:
- uses: actions/checkout@v4

- uses: software-mansion/setup-scarb@v1
with:
scarb-version: "2.11.3"

- uses: foundry-rs/setup-snfoundry@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
starknet-foundry-version: "0.39.0"


- name: Check Versions
toolchain: stable
override: true

- name: Checkout code
uses: actions/checkout@v3

- name: Install asdf
uses: asdf-vm/actions/setup@v2

- name: Install plugins
run: |
asdf plugin add scarb
asdf install scarb 2.11.4
asdf global scarb 2.11.4
asdf plugin add starknet-foundry
asdf install starknet-foundry 0.31.0
asdf global starknet-foundry 0.31.0

- name: Build contracts
run: |
cd contracts/
scarb build

- name: Run tests
run: |
cd contracts/
snforge test

- name: Check formatting
run: |
scarb --version
snforge -V


- name: Format Check
run: scarb fmt --check


- name: Run Tests
run: snforge test

- name: Build Project
run: scarb build
cd contracts/
scarb fmt --check
Empty file.
123 changes: 123 additions & 0 deletions contracts/Scarb.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,126 @@ version = 1
[[package]]
name = "contracts"
version = "0.1.0"
dependencies = [
"openzeppelin",
"snforge_std",
]

[[package]]
name = "openzeppelin"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
"openzeppelin_finance",
"openzeppelin_governance",
"openzeppelin_introspection",
"openzeppelin_merkle_tree",
"openzeppelin_presets",
"openzeppelin_security",
"openzeppelin_token",
"openzeppelin_upgrades",
"openzeppelin_utils",
]

[[package]]
name = "openzeppelin_access"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"
dependencies = [
"openzeppelin_introspection",
]

[[package]]
name = "openzeppelin_account"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"
dependencies = [
"openzeppelin_introspection",
"openzeppelin_utils",
]

[[package]]
name = "openzeppelin_finance"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"
dependencies = [
"openzeppelin_access",
"openzeppelin_token",
]

[[package]]
name = "openzeppelin_governance"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
"openzeppelin_introspection",
"openzeppelin_token",
"openzeppelin_utils",
]

[[package]]
name = "openzeppelin_introspection"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"

[[package]]
name = "openzeppelin_merkle_tree"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"

[[package]]
name = "openzeppelin_presets"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
"openzeppelin_finance",
"openzeppelin_introspection",
"openzeppelin_token",
"openzeppelin_upgrades",
"openzeppelin_utils",
]

[[package]]
name = "openzeppelin_security"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"

[[package]]
name = "openzeppelin_token"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
"openzeppelin_introspection",
"openzeppelin_utils",
]

[[package]]
name = "openzeppelin_upgrades"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"

[[package]]
name = "openzeppelin_utils"
version = "2.0.0-alpha.1"
source = "git+https://github.com/OpenZeppelin/cairo-contracts.git?branch=main#994bcb5eb5a3707f2fae02a9eb67e7e6ecfaf36f"

[[package]]
name = "snforge_scarb_plugin"
version = "0.31.0"
source = "git+https://github.com/foundry-rs/starknet-foundry?tag=v0.31.0#72ea785ca354e9e506de3e5d687da9fb2c1b3c67"

[[package]]
name = "snforge_std"
version = "0.31.0"
source = "git+https://github.com/foundry-rs/starknet-foundry?tag=v0.31.0#72ea785ca354e9e506de3e5d687da9fb2c1b3c67"
dependencies = [
"snforge_scarb_plugin",
]
5 changes: 5 additions & 0 deletions contracts/Scarb.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ edition = "2024_07"

[dependencies]
starknet = "2.11.4"
openzeppelin = { git = "https://github.com/OpenZeppelin/cairo-contracts.git", branch = "main" }



[dev-dependencies]
cairo_test = "2.9.2"
snforge_std = { git = "https://github.com/foundry-rs/starknet-foundry", tag = "v0.31.0" }

Loading
Loading