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
51 changes: 51 additions & 0 deletions .gas-snapshot
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
CounterTest:testFuzz_IncrementNeverOverflows(uint256) (runs: 1000, μ: 29848, ~: 29842)
CounterTest:testFuzz_SetNumber(uint256) (runs: 1000, μ: 27784, ~: 28501)
CounterTest:test_Decrement_RevertOnZero() (gas: 10507)
CounterTest:test_Increment() (gas: 28504)
NFTTest:testFuzz_Mint_AnyOwnerAndTokenId(address,uint256) (runs: 1000, μ: 57635, ~: 57635)
NFTTest:test_ApprovedSpenderCanTransfer() (gas: 89948)
NFTTest:test_MintAndOwnership() (gas: 56843)
NFTTest:test_Mint_RevertOnDoubleMint() (gas: 60750)
NFTTest:test_Mint_RevertOnZeroAddress() (gas: 8719)
NFTTest:test_OperatorCanTransfer() (gas: 97310)
NFTTest:test_OwnerOf_RevertOnNonexistent() (gas: 10784)
NFTTest:test_TransferFrom_ByOwner() (gas: 71974)
NFTTest:test_TransferFrom_RevertOnZeroAddress() (gas: 59090)
NFTTest:test_TransferFrom_RevertWhenUnauthorized() (gas: 66062)
NFTTest:test_Transfer_ClearsApproval() (gas: 88882)
OwnableTest:test_Accept_RevertWhenNotPending() (gas: 39927)
OwnableTest:test_InitialOwnerIsDeployer() (gas: 12926)
OwnableTest:test_OnlyOwner_CanCallProtected() (gas: 36846)
OwnableTest:test_Renounce_ZerosOwner() (gas: 14479)
OwnableTest:test_Transfer_OverwritesPendingOwner() (gas: 44002)
OwnableTest:test_Transfer_RevertWhenNotOwner() (gas: 15260)
OwnableTest:test_TwoStepTransfer() (gas: 34792)
StakingInvariantTest:invariant_totalStakedEqualsBalance() (runs: 256, calls: 3840, reverts: 0)
StakingTest:testFuzz_StakeUnstake_TotalAlwaysConsistent(uint96,uint96) (runs: 1000, μ: 113808, ~: 114389)
StakingTest:test_Stake() (gas: 65043)
StakingTest:test_Unstake() (gas: 75504)
StakingTest:test_Unstake_RevertInsufficientStake() (gas: 64892)
TimeLockTest:testFuzz_ExecuteAtAnyTimeAfterEta(uint256) (runs: 1000, μ: 56458, ~: 56505)
TimeLockTest:test_Cancel_ClearsQueue() (gas: 36989)
TimeLockTest:test_Execute_RevertWhenNotQueued() (gas: 20812)
TimeLockTest:test_Execute_RevertWhenTooEarly() (gas: 47721)
TimeLockTest:test_OnlyAdmin_CanExecute() (gas: 48914)
TimeLockTest:test_OnlyAdmin_CanQueue() (gas: 16143)
TimeLockTest:test_QueueThenExecute() (gas: 55711)
TimeLockTest:test_Queue_RevertOnDuplicate() (gas: 46068)
TokenTest:testFuzz_Approve(address,uint256) (runs: 1000, μ: 36452, ~: 36831)
TokenTest:testFuzz_Transfer_PreservesTotalSupply(uint256) (runs: 1000, μ: 47212, ~: 47844)
TokenTest:test_Approve_AndTransferFrom() (gas: 72961)
TokenTest:test_InfiniteAllowance_NotDecremented() (gas: 69946)
TokenTest:test_Metadata() (gas: 21459)
TokenTest:test_Transfer() (gas: 44638)
TokenTest:test_TransferFrom_RevertOnInsufficientAllowance() (gas: 39482)
TokenTest:test_Transfer_RevertOnInsufficientBalance() (gas: 15571)
TokenTest:test_Transfer_RevertOnZeroAddress() (gas: 11220)
VaultInvariantTest:invariant_contractBalanceEqualsUserSum() (runs: 256, calls: 3840, reverts: 0)
VaultInvariantTest:invariant_netFlowEqualsBalance() (runs: 256, calls: 3840, reverts: 0)
VaultInvariantTest:invariant_totalAssetsMatchesBalance() (runs: 256, calls: 3840, reverts: 0)
VaultTest:testFuzz_DepositWithdrawInvariant(uint96,uint96) (runs: 1000, μ: 54339, ~: 55245)
VaultTest:test_Deposit() (gas: 42719)
VaultTest:test_Withdraw() (gas: 52401)
VaultTest:test_Withdraw_RevertOnInsufficientBalance() (gas: 42777)
53 changes: 53 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Common workflows. Forge has good defaults; this just shortens what I type 50x a day.

.PHONY: help build test test-watch fuzz invariant snapshot snapshot-check gas coverage fmt clean deploy

help:
@echo "build - forge build"
@echo "test - forge test (full suite, summary output)"
@echo "test-watch - rerun tests on file change"
@echo "fuzz - run fuzz tests only, with more runs"
@echo "invariant - run invariant tests only, with more depth"
@echo "snapshot - write .gas-snapshot baseline"
@echo "snapshot-check - fail if gas usage moved vs baseline"
@echo "gas - per-test gas report"
@echo "coverage - line coverage summary"
@echo "fmt - forge fmt"
@echo "clean - remove build artifacts"
@echo "deploy - run script/Deploy.s.sol (needs PRIVATE_KEY, RPC_URL)"

build:
forge build

test:
forge test --summary

test-watch:
forge test --watch

fuzz:
forge test --match-test "Fuzz" --fuzz-runs 5000

invariant:
forge test --match-test "invariant" --invariant-runs 1000 --invariant-depth 50

snapshot:
forge snapshot

snapshot-check:
forge snapshot --check

gas:
forge test --gas-report

coverage:
forge coverage --report summary

fmt:
forge fmt

clean:
forge clean

deploy:
forge script script/Deploy.s.sol:DeployScript --rpc-url $$RPC_URL --broadcast -vvv
Loading