Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
7725fde
refactor: remove broker (#1166)
andreivladbrg Feb 6, 2025
ef3bc49
build: install evm utils (#1167)
andreivladbrg Feb 11, 2025
e22a24d
test: fix 1 FEB 2025 epoch timestamp
andreivladbrg Feb 11, 2025
0bc0157
feat: return value in cancel and make cancelMultiple non-reverting (#…
smol-ninja Feb 11, 2025
5f83bcd
build: bump evm-utils
andreivladbrg Feb 12, 2025
ee893de
test(refactor): StreamIDs struct in Types (#1175)
smol-ninja Feb 12, 2025
43f1f52
chore: remove benchmarks (#1176)
smol-ninja Feb 14, 2025
6ba4f43
docs: renaming of functions and variables (#1177)
smol-ninja Feb 17, 2025
70d3bb3
test: refactor fork tests to use a shared contract (#1179)
smol-ninja Feb 20, 2025
463bef7
feat: erc20 recovery (#1182)
andreivladbrg Feb 21, 2025
723a956
test: add err arg to token assertion
smol-ninja Feb 21, 2025
eb85c9b
build: bump evm utils (#1186)
andreivladbrg Feb 28, 2025
96ceb37
test(fork): run fork tests without forking the chain in non-productio…
smol-ninja Mar 5, 2025
c1ba9ec
docs: update license date
andreivladbrg Mar 6, 2025
3d6c92b
build: add more endpoints (#1200)
andreivladbrg Mar 6, 2025
b555a46
docs: refactor SECURITY doc (#1206)
smol-ninja Mar 13, 2025
9ee4c5e
build: use solc 0.8.29 (#1207)
andreivladbrg Mar 13, 2025
8d9a179
ci: rename multibuild workflow file
andreivladbrg Mar 13, 2025
080a04e
docs: improve writing in NatSpec (#1210)
PaulRBerg Mar 18, 2025
f3f61d6
Audit fixes (#1209)
andreivladbrg Mar 20, 2025
e105895
docs: update contributing guide
PaulRBerg Mar 23, 2025
9c8512e
build: bump evm utils (#1225)
andreivladbrg Mar 24, 2025
7e50adb
test(chore): don't use named args for setMsgSender
andreivladbrg Mar 24, 2025
8f32355
refactor: rename "aggregateBalance" to "aggregateAmount" (#1228)
andreivladbrg Mar 27, 2025
c77ad37
chore: use plural form for scripts (#1232)
andreivladbrg Mar 31, 2025
2bae244
refactor: move shell scripts under scripts/bash (#1233)
andreivladbrg Mar 31, 2025
8addfa3
build: cache prettier
smol-ninja Apr 2, 2025
fa57fb2
chore: cache prettier checks
smol-ninja Apr 4, 2025
768da0b
docs: explain why shanghai EVM is used
PaulRBerg Apr 8, 2025
42f8751
chore: fix taplo TOML formatter
PaulRBerg Apr 8, 2025
ccbd5ab
docs: relative links in CONTRIBUTING guide
PaulRBerg Apr 8, 2025
5826c51
chore: fix taplo TOML formatter (#1236)
PaulRBerg Apr 8, 2025
34b1711
chore: remove redundant cache location
PaulRBerg Apr 8, 2025
760724a
build: use bun lock textfile
PaulRBerg Apr 9, 2025
abffdca
chore: update prettier ignore paths
PaulRBerg Apr 9, 2025
8223cb8
Remove remappings (#1238)
andreivladbrg Apr 10, 2025
f98c83e
feat: collect fee with fee recipient (#1239)
smol-ninja Apr 11, 2025
ac83f92
ci: new cache mechanism
PaulRBerg Apr 15, 2025
f23bc17
Merge pull request #1245 from sablier-labs/ci/new-cache
PaulRBerg Apr 15, 2025
b673410
ci: enable Prettier formatting for YML workflows
PaulRBerg Mar 25, 2025
da2e102
ci: use new gha-utils repo
PaulRBerg Apr 16, 2025
b96a529
feat: access based control over collect fee function (#1242)
smol-ninja Apr 19, 2025
a893555
refactor: remove MAX_COUNT (#1243)
smol-ninja Apr 19, 2025
efa5ab2
perf: refactor for code size optimization (#1244)
smol-ninja Apr 25, 2025
a60110b
ci: use latest version of bun
PaulRBerg Apr 28, 2025
4c6cfa3
docs: remove extra spaces
smol-ninja Apr 28, 2025
9554634
feat: state contract (#1247)
andreivladbrg Apr 30, 2025
85968fe
build: bump dependencies, refactor Defaults contract (#1249)
smol-ninja May 2, 2025
a9c7b5b
build: bump evm-utils and solhint
smol-ninja May 12, 2025
cee5c64
build: remove taiko endpoints
andreivladbrg May 14, 2025
0c8f8fa
chore: fix camel case for a variable
smol-ninja May 15, 2025
c1c284b
build: bump evm-utils
smol-ninja May 21, 2025
5030339
chore: various configs improvements
PaulRBerg May 22, 2025
3f406aa
ci: temporarily use evm-lint.yml workflow
PaulRBerg May 22, 2025
07303b1
Merge pull request #1254 from sablier-labs/chore/just
PaulRBerg Jun 11, 2025
a1114dd
refactor: use comptroller (#1260)
andreivladbrg Jun 13, 2025
bac1870
bb-ci
itsshantanu Jun 13, 2025
8ff73a8
changed forge test file name
itsshantanu Jun 13, 2025
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
3 changes: 1 addition & 2 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export EOA="YOUR_EOA_ADDRESS"
export ETH_FROM="YOUR_DEPLOYER_ADDRESS"
export FOUNDRY_PROFILE="lite"
export MNEMONIC="YOUR_MNEMONIC"
export MAINNET_RPC_URL="YOUR_MAINNET_RPC_URL"

26 changes: 26 additions & 0 deletions .github/workflows/bb-ci-utils.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: "BB-CI: Build and Test"

on:
push:
branches: [main]
pull_request:
workflow_dispatch:

jobs:
lint:
name: Forge Lint
uses: sablier-labs/gha-utils/.github/workflows/evm-lint.yml@main
secrets: inherit

build:
name: Forge Build
uses: sablier-labs/gha-utils/.github/workflows/forge-build.yml@main
secrets: inherit

test-utils:
needs: ["lint", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/bb-forge-test.yml@main"
with:
foundry-profile: "test-optimized"
match-path: "tests/utils/**/*.sol"
name: "Utils tests"
34 changes: 17 additions & 17 deletions .github/workflows/ci-deep.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,54 +9,54 @@ on:
workflow_dispatch:
inputs:
unitFuzzRuns:
default: '50000'
default: "50000"
description: "Unit: number of fuzz runs."
required: false
integrationFuzzRuns:
default: '50000'
default: "50000"
description: "Integration: number of fuzz runs."
required: false
invariantRuns:
default: '100'
default: "100"
description: "Invariant runs: number of sequences of function calls generated and run."
required: false
invariantDepth:
default: '100'
default: "100"
description: "Invariant depth: number of function calls made in a given run."
required: false
forkFuzzRuns:
default: '1000'
default: "1000"
description: "Fork: number of fuzz runs."
required: false

jobs:
lint:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-lint.yml@main"
check:
uses: "sablier-labs/gha-utils/.github/workflows/full-check.yml@main"

build:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-build.yml@main"
uses: "sablier-labs/gha-utils/.github/workflows/forge-build.yml@main"

test-unit:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: ${{ fromJSON(inputs.unitFuzzRuns || '50000') }}
foundry-profile: "test-optimized"
match-path: "tests/unit/**/*.sol"
name: "Unit tests"

test-integration:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: ${{ fromJSON(inputs.integrationFuzzRuns || '50000') }}
foundry-profile: "test-optimized"
match-path: "tests/integration/**/*.sol"
name: "Integration tests"

test-invariant:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-invariant-depth: ${{ fromJSON(inputs.invariantDepth || '100') }}
foundry-invariant-runs: ${{ fromJSON(inputs.invariantRuns || '100') }}
Expand All @@ -65,10 +65,10 @@ jobs:
name: "Invariant tests"

test-fork:
needs: ["lint", "build"]
needs: ["check", "build"]
secrets:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: ${{ fromJSON(inputs.forkFuzzRuns || '1000') }}
foundry-profile: "test-optimized"
Expand All @@ -77,7 +77,7 @@ jobs:

notify-on-failure:
if: failure()
needs: ["lint", "build", "test-unit", "test-integration", "test-invariant", "test-fork"]
needs: ["check", "build", "test-unit", "test-integration", "test-invariant", "test-fork"]
runs-on: "ubuntu-latest"
steps:
- name: "Send Slack notification"
Expand Down
32 changes: 16 additions & 16 deletions .github/workflows/ci-fork.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,35 @@ on:
- cron: "0 3 * * 1,3,5" # at 3:00 AM UTC on Monday, Wednesday and Friday

jobs:
lint:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-lint.yml@main"
check:
uses: "sablier-labs/gha-utils/.github/workflows/full-check.yml@main"

build:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-build.yml@main"
uses: "sablier-labs/gha-utils/.github/workflows/forge-build.yml@main"

test-fork:
needs: ["lint", "build"]
secrets:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 100
foundry-profile: "test-optimized"
fuzz-seed: true
match-path: "tests/fork/**/*.sol"
name: "Fork tests"
needs: ["check", "build"]
secrets:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 100
foundry-profile: "test-optimized"
fuzz-seed: true
match-path: "tests/fork/**/*.sol"
name: "Fork tests"

test-utils:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-profile: "test-optimized"
match-path: "tests/utils/**/*.sol"
name: "Utils tests"

notify-on-failure:
if: failure()
needs: ["lint", "build", "test-fork", "test-utils"]
needs: ["check", "build", "test-fork", "test-utils"]
runs-on: "ubuntu-latest"
steps:
- name: "Send Slack notification"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ jobs:
uses: "actions/checkout@v4"

- name: "Install Bun"
uses: "oven-sh/setup-bun@v1"
uses: "oven-sh/setup-bun@v2"
with:
bun-version: "latest"

- name: "Install the Node.js dependencies"
run: "bun install --frozen-lockfile"
Expand All @@ -22,5 +24,5 @@ jobs:
uses: "PaulRBerg/foundry-multibuild@v1"
with:
min: "0.8.22"
max: "0.8.26"
max: "0.8.29"
skip-test: "true"
7 changes: 4 additions & 3 deletions .github/workflows/ci-slither.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ on:
- cron: "0 3 * * 0" # at 3:00am UTC every Sunday

jobs:
lint:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-lint.yml@main"
check:
uses: "sablier-labs/gha-utils/.github/workflows/full-check.yml@main"

slither-analyze:
uses: "sablier-labs/reusable-workflows/.github/workflows/slither-analyze.yml@main"
needs: "check"
uses: "sablier-labs/gha-utils/.github/workflows/slither-analyze.yml@main"
42 changes: 24 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,61 +14,67 @@ on:
- "staging-blast"

jobs:
lint:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-lint.yml@main"
check:
uses: "sablier-labs/gha-utils/.github/workflows/full-check.yml@main"

bulloak:
needs: ["lint"]
uses: "sablier-labs/reusable-workflows/.github/workflows/bulloak-check.yml@main"
build:
uses: "sablier-labs/gha-utils/.github/workflows/forge-build.yml@main"

test-bulloak:
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
uses: "sablier-labs/gha-utils/.github/workflows/bulloak-check.yml@main"
with:
skip-modifiers: true
tree-path: "tests"

build:
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-build.yml@main"

test-unit:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 2000
foundry-profile: "test-optimized"
match-path: "tests/unit/**/*.sol"
name: "Unit tests"

test-integration:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 2000
foundry-profile: "test-optimized"
match-path: "tests/integration/**/*.sol"
name: "Integration tests"

test-invariant:
needs: ["lint", "build"]
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-profile: "test-optimized"
match-path: "tests/invariant/**/*.sol"
name: "Invariant tests"

test-fork:
needs: ["lint", "build"]
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
secrets:
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-test.yml@main"
uses: "sablier-labs/gha-utils/.github/workflows/forge-test.yml@main"
with:
foundry-fuzz-runs: 20
foundry-profile: "test-optimized"
match-path: "tests/fork/**/*.sol"
name: "Fork tests"

coverage:
needs: ["lint", "build"]
needs: ["check", "build"]
if: needs.build.outputs.cache-status != 'primary'
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
MAINNET_RPC_URL: ${{ secrets.MAINNET_RPC_URL }}
uses: "sablier-labs/reusable-workflows/.github/workflows/forge-coverage.yml@main"
uses: "sablier-labs/gha-utils/.github/workflows/forge-coverage.yml@main"
with:
match-path: "tests/{fork,integration,unit}/**/*.sol"
10 changes: 10 additions & 0 deletions .github/workflows/cron-stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: "Cron: Close Stale Issues and PRs"

on:
workflow_dispatch:
schedule:
- cron: "0 3 * * 0" # at 3:00am UTC every Sunday

jobs:
cron-stale:
uses: "sablier-labs/gha-utils/.github/workflows/cron-stale.yml@main"
2 changes: 1 addition & 1 deletion .github/workflows/generate-svg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:

- name: "Generate an NFT SVG using the user-provided parameters"
run: >-
forge script script/GenerateSVG.s.sol
forge script scripts/solidity/GenerateSVG.s.sol
--sig "run(uint256,string,string,uint256)"
"${{ fromJSON(inputs.progress || true) }}",
"${{ fromJSON(inputs.status || true) }}"
Expand Down
10 changes: 0 additions & 10 deletions .github/workflows/stale.yml

This file was deleted.

8 changes: 4 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
# directories
artifacts
artifacts-zk
artifacts-*
broadcast
cache
cache_hardhat-zk
coverage
deployments
deployments-zk
deployments-*
docs
node_modules
out
out-optimized
out-svg
out-*
typechain-types

# files
Expand All @@ -20,6 +19,7 @@ typechain-types
*.log
.DS_Store
.pnp.*
bun.lockb
deployments.md
lcov.info
package-lock.json
Expand Down
10 changes: 10 additions & 0 deletions .lintstagedrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* @type {import("lint-staged").Configuration}
*/
module.exports = {
"*.{json,md,svg,yml}": "bun prettier --cache --write",
"*.sol": [
"bun solhint --fix --noPrompt",
"forge fmt",
],
};
4 changes: 0 additions & 4 deletions .lintstagedrc.yml

This file was deleted.

11 changes: 2 additions & 9 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
# directories
.github/workflows
broadcast
cache
cache_hardhat-zk
coverage
docs
node_modules
out
out-optimized
out-svg
out-*

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