Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add coverage report & bump deps #109

Merged
merged 3 commits into from Sep 28, 2022
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 0 additions & 1 deletion .env.local.example
Expand Up @@ -3,7 +3,6 @@ DEPLOYER_PRIVATE_KEY=
DEPLOYER_ADDRESS=
ETH_RPC_URL=
CHAIN_ID=1337
GUID=
LOGBOOK_CONTRACT_ADDRESS=
THESPACE_CURRENCY_ADDRESS=
THESPACE_TOKEN_IMAGE_URI=
Expand Down
1 change: 0 additions & 1 deletion .env.polygon-mainnet.example
Expand Up @@ -3,7 +3,6 @@ DEPLOYER_PRIVATE_KEY=
DEPLOYER_ADDRESS=
ETH_RPC_URL=https://<NETWORK>.alchemy.com/v2/<API_KEY>
CHAIN_ID=137
GUID=
LOGBOOK_CONTRACT_ADDRESS=
THESPACE_CURRENCY_ADDRESS=
THESPACE_REGISTRY_ADDRESS=
Expand Down
1 change: 0 additions & 1 deletion .env.polygon-mumbai.example
Expand Up @@ -3,7 +3,6 @@ DEPLOYER_PRIVATE_KEY=
DEPLOYER_ADDRESS=
ETH_RPC_URL=https://<NETWORK>.alchemy.com/v2/<API_KEY>
CHAIN_ID=80001
GUID=
LOGBOOK_CONTRACT_ADDRESS=
THESPACE_CURRENCY_ADDRESS=
THESPACE_REGISTRY_ADDRESS=
Expand Down
192 changes: 96 additions & 96 deletions .gas-snapshot
@@ -1,100 +1,100 @@
LogbookTest:testClaim() (gas: 134551)
LogbookTest:testDonate(uint96) (runs: 256, μ: 146160, ~: 156782)
LogbookTest:testDonateWithCommission(uint96,uint96) (runs: 256, μ: 142810, ~: 140238)
LogbookTest:testFork(uint96,string) (runs: 256, μ: 426671, ~: 451048)
LogbookTest:testForkRecursively(uint8,uint96) (runs: 256, μ: 2238066, ~: 268025)
LogbookTest:testForkWithCommission(uint96,string,uint256) (runs: 256, μ: 425319, ~: 257305)
LogbookTest:testMulticall() (gas: 286758)
LogbookTest:testPublicSale() (gas: 202464)
LogbookTest:testPublish(string) (runs: 256, μ: 264899, ~: 264312)
LogbookTest:testPublishEn1000() (gas: 243675)
LogbookTest:testPublishEn140() (gas: 221330)
LogbookTest:testPublishEn200() (gas: 223090)
LogbookTest:testPublishEn2000() (gas: 270196)
LogbookTest:testPublishEn300() (gas: 225526)
LogbookTest:testPublishEn50() (gas: 218920)
LogbookTest:testPublishEn500() (gas: 230532)
LogbookTest:testPublishEn5000() (gas: 348716)
LogbookTest:testPublishZh100() (gas: 224722)
LogbookTest:testPublishZh20() (gas: 218880)
LogbookTest:testPublishZh200() (gas: 231292)
LogbookTest:testPublishZh2000() (gas: 371353)
LogbookTest:testPublishZh50() (gas: 221328)
LogbookTest:testPublishZh500() (gas: 251198)
LogbookTest:testPublishZh5000() (gas: 607910)
LogbookTest:testSetDescription() (gas: 141188)
LogbookTest:testSetForkPrice() (gas: 154277)
LogbookTest:testSetTitle() (gas: 167036)
LogbookTest:testSplitRoyalty(uint8,uint8,uint96) (runs: 256, μ: 1204465, ~: 310758)
LogbookTest:testWithdraw() (gas: 7464895)
LogbookNFTSVGTest:testTokenURI(uint8,uint8,uint16) (runs: 256, μ: 2186202, ~: 1336263)
SnapperTest:testCannotInitRegionByNotOwner() (gas: 11456)
SnapperTest:testCannotReInitRegion() (gas: 14399)
SnapperTest:testCannotTakeSnapshotBeforeInit() (gas: 15780)
SnapperTest:testCannotTakeSnapshotByNotOwner() (gas: 12507)
SnapperTest:testCannotTakeSnapshotWrongLastBlock() (gas: 49275)
SnapperTest:testCannotTakeSnapshotWrongSnapshotBlock() (gas: 24002)
SnapperTest:testInitRegion(uint256) (runs: 256, μ: 114657, ~: 114657)
SnapperTest:testTakeSnapshot() (gas: 48060)
ACLManagerTest:testCannotGrantACLManagerRole() (gas: 12276)
ACLManagerTest:testCannotGrantRoleByNonACLManager() (gas: 17404)
ACLManagerTest:testCannotGrantRoleToZeroAddress() (gas: 12243)
ACLManagerTest:testCannotRenounceRoleByACLManager() (gas: 12148)
ACLManagerTest:testCannotRenounceRoleByAttacker() (gas: 12416)
ACLManagerTest:testCannotTransferRoleByAttacker() (gas: 12564)
ACLManagerTest:testCannotTransferRoleToZeroAddress() (gas: 12241)
ACLManagerTest:testGrantRole() (gas: 23656)
ACLManagerTest:testRenounceRole() (gas: 27973)
ACLManagerTest:testRoles() (gas: 15436)
ACLManagerTest:testTransferRole() (gas: 21660)
TheSpaceTest:testBatchBid() (gas: 692298)
TheSpaceTest:testBatchSetPixels(uint16,uint8) (runs: 256, μ: 363366, ~: 367792)
TheSpaceTest:testBidDefaultedToken() (gas: 410646)
TheSpaceTest:testBidExistingToken() (gas: 356958)
TheSpaceTest:testBidNewToken() (gas: 301097)
TheSpaceTest:testCanTransferFromIfSettleTax() (gas: 357146)
TheSpaceTest:testCannotBidExceedAllowance() (gas: 60820)
TheSpaceTest:testCannotBidOutBoundTokens() (gas: 260259)
TheSpaceTest:testCannotBidPriceTooLow() (gas: 341477)
TheSpaceTest:testCannotGetTaxWithNonExistingToken() (gas: 16448)
TheSpaceTest:testCannotGetTokenURIInLogicContract() (gas: 296845)
TheSpaceTest:testCannotSetColorByAttacker() (gas: 302930)
TheSpaceTest:testCannotSetConfigByAttacker() (gas: 12100)
TheSpaceTest:testCannotSetPixel(uint256) (runs: 256, μ: 312268, ~: 312268)
TheSpaceTest:testCannotSetPriceByNonOwner() (gas: 303006)
TheSpaceTest:testCannotSetTokenImageURIByNonACLManager() (gas: 11909)
LogbookTest:testClaim() (gas: 134763)
LogbookTest:testDonate(uint96) (runs: 256, μ: 155493, ~: 156942)
LogbookTest:testDonateWithCommission(uint96,uint96) (runs: 256, μ: 152152, ~: 140464)
LogbookTest:testFork(uint96,string) (runs: 256, μ: 446784, ~: 450614)
LogbookTest:testForkRecursively(uint8,uint96) (runs: 256, μ: 4683692, ~: 1016125)
LogbookTest:testForkWithCommission(uint96,string,uint256) (runs: 256, μ: 542620, ~: 257710)
LogbookTest:testMulticall() (gas: 285685)
LogbookTest:testPublicSale() (gas: 202868)
LogbookTest:testPublish(string) (runs: 256, μ: 264529, ~: 264648)
LogbookTest:testPublishEn1000() (gas: 243576)
LogbookTest:testPublishEn140() (gas: 221340)
LogbookTest:testPublishEn200() (gas: 222925)
LogbookTest:testPublishEn2000() (gas: 270119)
LogbookTest:testPublishEn300() (gas: 225383)
LogbookTest:testPublishEn50() (gas: 218821)
LogbookTest:testPublishEn500() (gas: 230367)
LogbookTest:testPublishEn5000() (gas: 348595)
LogbookTest:testPublishZh100() (gas: 224601)
LogbookTest:testPublishZh20() (gas: 218803)
LogbookTest:testPublishZh200() (gas: 231171)
LogbookTest:testPublishZh2000() (gas: 371254)
LogbookTest:testPublishZh50() (gas: 221251)
LogbookTest:testPublishZh500() (gas: 251055)
LogbookTest:testPublishZh5000() (gas: 607789)
LogbookTest:testSetDescription() (gas: 140859)
LogbookTest:testSetForkPrice() (gas: 153948)
LogbookTest:testSetTitle() (gas: 168804)
LogbookTest:testSplitRoyalty(uint8,uint8,uint96) (runs: 256, μ: 1896930, ~: 527893)
LogbookTest:testWithdraw() (gas: 7296693)
LogbookNFTSVGTest:testTokenURI(uint8,uint8,uint16) (runs: 256, μ: 2042387, ~: 1315240)
SnapperTest:testCannotInitRegionByNotOwner() (gas: 11390)
SnapperTest:testCannotReInitRegion() (gas: 14423)
SnapperTest:testCannotTakeSnapshotBeforeInit() (gas: 15792)
SnapperTest:testCannotTakeSnapshotByNotOwner() (gas: 12528)
SnapperTest:testCannotTakeSnapshotWrongLastBlock() (gas: 49279)
SnapperTest:testCannotTakeSnapshotWrongSnapshotBlock() (gas: 24049)
SnapperTest:testInitRegion(uint256) (runs: 256, μ: 114604, ~: 114604)
SnapperTest:testTakeSnapshot() (gas: 47962)
ACLManagerTest:testCannotGrantACLManagerRole() (gas: 12231)
ACLManagerTest:testCannotGrantRoleByNonACLManager() (gas: 17403)
ACLManagerTest:testCannotGrantRoleToZeroAddress() (gas: 12220)
ACLManagerTest:testCannotRenounceRoleByACLManager() (gas: 12081)
ACLManagerTest:testCannotRenounceRoleByAttacker() (gas: 12371)
ACLManagerTest:testCannotTransferRoleByAttacker() (gas: 12498)
ACLManagerTest:testCannotTransferRoleToZeroAddress() (gas: 12218)
ACLManagerTest:testGrantRole() (gas: 23547)
ACLManagerTest:testRenounceRole() (gas: 27841)
ACLManagerTest:testRoles() (gas: 15393)
ACLManagerTest:testTransferRole() (gas: 21528)
TheSpaceTest:testBatchBid() (gas: 690679)
TheSpaceTest:testBatchSetPixels(uint16,uint8) (runs: 256, μ: 369115, ~: 370766)
TheSpaceTest:testBidDefaultedToken() (gas: 409339)
TheSpaceTest:testBidExistingToken() (gas: 354974)
TheSpaceTest:testBidNewToken() (gas: 301167)
TheSpaceTest:testCanTransferFromIfSettleTax() (gas: 355017)
TheSpaceTest:testCannotBidExceedAllowance() (gas: 60907)
TheSpaceTest:testCannotBidOutBoundTokens() (gas: 260493)
TheSpaceTest:testCannotBidPriceTooLow() (gas: 341680)
TheSpaceTest:testCannotGetTaxWithNonExistingToken() (gas: 16426)
TheSpaceTest:testCannotGetTokenURIInLogicContract() (gas: 296920)
TheSpaceTest:testCannotSetColorByAttacker() (gas: 302856)
TheSpaceTest:testCannotSetConfigByAttacker() (gas: 12078)
TheSpaceTest:testCannotSetPixel(uint256) (runs: 256, μ: 312359, ~: 312359)
TheSpaceTest:testCannotSetPriceByNonOwner() (gas: 302932)
TheSpaceTest:testCannotSetTokenImageURIByNonACLManager() (gas: 11887)
TheSpaceTest:testCannotSetTotalSupplyByAttacker() (gas: 11883)
TheSpaceTest:testCannotTransferFromIfDefault() (gas: 395605)
TheSpaceTest:testCannotUpgradeByAttacker() (gas: 11608)
TheSpaceTest:testCollectableTax() (gas: 333183)
TheSpaceTest:testDefault() (gas: 391886)
TheSpaceTest:testCannotTransferFromIfDefault() (gas: 394091)
TheSpaceTest:testCannotUpgradeByAttacker() (gas: 11564)
TheSpaceTest:testCollectableTax() (gas: 333312)
TheSpaceTest:testDefault() (gas: 390517)
TheSpaceTest:testGetConfig() (gas: 14302)
TheSpaceTest:testGetExistingPixel() (gas: 309333)
TheSpaceTest:testGetNonExistingPixel() (gas: 60249)
TheSpaceTest:testGetExistingPixel() (gas: 309403)
TheSpaceTest:testGetNonExistingPixel() (gas: 60251)
TheSpaceTest:testGetNonExistingPrice() (gas: 19524)
TheSpaceTest:testGetOwner() (gas: 348906)
TheSpaceTest:testGetOwner() (gas: 346900)
TheSpaceTest:testGetOwnerOfNonExistingToken() (gas: 13346)
TheSpaceTest:testGetPixelsByOwnerWithNoPixels() (gas: 24309)
TheSpaceTest:testGetPixelsByOwnerWithOnePixel() (gas: 319236)
TheSpaceTest:testGetPixelsPageByOwnerWithPixels() (gas: 586023)
TheSpaceTest:testGetPrice() (gas: 297936)
TheSpaceTest:testGetTax() (gas: 377402)
TheSpaceTest:testGetTokenImageURI() (gas: 14461)
TheSpaceTest:testGetTokenURI() (gas: 331478)
TheSpaceTest:testSetColor() (gas: 328913)
TheSpaceTest:testSetMintTax() (gas: 268980)
TheSpaceTest:testSetPixel(uint256) (runs: 256, μ: 400887, ~: 400887)
TheSpaceTest:testSetPrice(uint256) (runs: 256, μ: 302087, ~: 302087)
TheSpaceTest:testSetPriceByOperator(uint256) (runs: 256, μ: 349876, ~: 349876)
TheSpaceTest:testSetPriceTooHigh() (gas: 312185)
TheSpaceTest:testSetTaxRate() (gas: 345290)
TheSpaceTest:testSetTokenImageURI() (gas: 354173)
TheSpaceTest:testSetTotalSupply(uint256) (runs: 256, μ: 349455, ~: 349457)
TheSpaceTest:testSetTreasuryShare() (gas: 381549)
TheSpaceTest:testSettleTax() (gas: 336739)
TheSpaceTest:testTaxCalculation() (gas: 401824)
TheSpaceTest:testTokenShouldBeDefaulted() (gas: 322889)
TheSpaceTest:testTotalSupply() (gas: 7568)
TheSpaceTest:testUpgradeTo() (gas: 3197912)
TheSpaceTest:testWithdrawTreasury() (gas: 352481)
TheSpaceTest:testWithdrawUBI() (gas: 375552)
TheSpaceTest:testGetPixelsByOwnerWithNoPixels() (gas: 24265)
TheSpaceTest:testGetPixelsByOwnerWithOnePixel() (gas: 319489)
TheSpaceTest:testGetPixelsPageByOwnerWithPixels() (gas: 586574)
TheSpaceTest:testGetPrice() (gas: 297984)
TheSpaceTest:testGetTax() (gas: 375340)
TheSpaceTest:testGetTokenImageURI() (gas: 14407)
TheSpaceTest:testGetTokenURI() (gas: 331148)
TheSpaceTest:testSetColor() (gas: 328831)
TheSpaceTest:testSetMintTax() (gas: 269213)
TheSpaceTest:testSetPixel(uint256) (runs: 256, μ: 398774, ~: 398774)
TheSpaceTest:testSetPrice(uint256) (runs: 256, μ: 302135, ~: 302135)
TheSpaceTest:testSetPriceByOperator(uint256) (runs: 256, μ: 352082, ~: 352082)
TheSpaceTest:testSetPriceTooHigh() (gas: 312001)
TheSpaceTest:testSetTaxRate() (gas: 345387)
TheSpaceTest:testSetTokenImageURI() (gas: 353533)
TheSpaceTest:testSetTotalSupply(uint256) (runs: 256, μ: 349634, ~: 349641)
TheSpaceTest:testSetTreasuryShare() (gas: 381733)
TheSpaceTest:testSettleTax() (gas: 336899)
TheSpaceTest:testTaxCalculation() (gas: 397345)
TheSpaceTest:testTokenShouldBeDefaulted() (gas: 322983)
TheSpaceTest:testTotalSupply() (gas: 7613)
TheSpaceTest:testUpgradeTo() (gas: 3215589)
TheSpaceTest:testWithdrawTreasury() (gas: 352594)
TheSpaceTest:testWithdrawUBI() (gas: 375731)
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Expand Up @@ -11,7 +11,7 @@ jobs:
run-ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
submodules: recursive

Expand All @@ -20,7 +20,7 @@ jobs:
run: npm install

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

Expand Down
10 changes: 3 additions & 7 deletions Makefile
@@ -1,12 +1,13 @@
NETWORK ?= local # defaults to local node with ganache
NETWORK ?= local # defaults to local node
include .env.$(NETWORK)

# Deps
update:; forge update

# Build & test
clean :; forge clean
snapshot :; forge snapshot --gas-report --include-fuzz-tests
snapshot :; forge snapshot --gas-report
coverage :; forge coverage --report=summary
build: clean
forge build
test:
Expand All @@ -31,8 +32,3 @@ deploy-the-space: clean
## snapper
deploy-snapper: clean
@forge create Snapper --rpc-url ${ETH_RPC_URL} --private-key ${DEPLOYER_PRIVATE_KEY} --legacy --verify --etherscan-api-key ${ETHERSCAN_API_KEY}

# Verifications
check-verification:
@forge verify-check --chain-id ${CHAIN_ID} ${GUID} ${ETHERSCAN_API_KEY}

3 changes: 0 additions & 3 deletions README.md
Expand Up @@ -89,9 +89,6 @@ make test
### Deploy on Local Node:

```bash
# Run local node
npm run ganache

# Preprare environment
cp .env.local.example .env.local
cp .env.polygon-mainnet.example .env.polygon-mainnet
Expand Down
4 changes: 2 additions & 2 deletions foundry.toml
@@ -1,4 +1,4 @@
[default]
[profile.default]
ffi = true
fuzz_runs = 256
optimizer = true
Expand All @@ -10,6 +10,6 @@ remappings = [
verbosity = 3
gas_reports = ["*"]

[ci]
[profile.ci]
fuzz_runs = 1024
verbosity = 5
2 changes: 1 addition & 1 deletion lib/ds-test
Submodule ds-test updated 2 files
+21 −22 demo/demo.sol
+42 −7 src/test.sol
2 changes: 1 addition & 1 deletion lib/openzeppelin-contracts
2 changes: 0 additions & 2 deletions package.json
Expand Up @@ -26,7 +26,6 @@
"format:list": "prettier --list-different 'src/**/*.sol'",
"solhint": "solhint --config ./.solhint.json 'src/**/*.sol' --fix",
"solhint:check": "solhint --config ./.solhint.json 'src/**/*.sol'",
"ganache": "ganache",
"prepare": "husky install"
},
"lint-staged": {
Expand All @@ -39,7 +38,6 @@
"devDependencies": {
"@types/node": "^17.0.21",
"ethers": "^5.6.1",
"ganache": "^7.0.3",
"husky": "^7.0.4",
"lint-staged": "^12.3.5",
"prettier": "^2.5.1",
Expand Down
2 changes: 1 addition & 1 deletion src/test/Logbook/Logbook.t.sol
Expand Up @@ -94,7 +94,7 @@ contract LogbookTest is Test {
logbook.claim(TRAVELOGGERS_OWNER, CLAIM_TOKEN_END_ID);

// token has not been claimed yet
vm.expectRevert("ERC721: owner query for nonexistent token");
vm.expectRevert("ERC721: invalid token ID");
logbook.ownerOf(CLAIM_TOKEN_START_ID);

assertEq(logbook.balanceOf(TRAVELOGGERS_OWNER), 0);
Expand Down
4 changes: 2 additions & 2 deletions src/test/TheSpace/TheSpace.t.sol
Expand Up @@ -218,7 +218,7 @@ contract TheSpaceTest is BaseTheSpaceTest {
}

function testSetPixel(uint256 bidPrice) public {
vm.assume(bidPrice > PIXEL_PRICE && bidPrice <= registry.currency().totalSupply());
vm.assume(bidPrice > PIXEL_PRICE && bidPrice < registry.currency().totalSupply());

uint256 newPrice = bidPrice + 1;

Expand Down Expand Up @@ -634,7 +634,7 @@ contract TheSpaceTest is BaseTheSpaceTest {
currency.approve(address(registry), 0);

// bid a pixel
vm.expectRevert("ERC20: transfer amount exceeds allowance");
vm.expectRevert("ERC20: insufficient allowance");
vm.prank(PIXEL_OWNER);
thespace.bid(PIXEL_ID, PIXEL_PRICE);
}
Expand Down