Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/thematters/contracts int…
Browse files Browse the repository at this point in the history
…o develop
  • Loading branch information
robertu7 committed Jun 12, 2022
2 parents 35bd42b + 7ec1113 commit 06d024f
Show file tree
Hide file tree
Showing 10 changed files with 148 additions and 148 deletions.
8 changes: 1 addition & 7 deletions .env.local.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ ETH_RPC_URL=
CHAIN_ID=1337
GUID=
LOGBOOK_CONTRACT_ADDRESS=
LOGBOOK_ABI_ENCODE_CONSTRUCTOR_ARGS=
THESPACE_CURRENCY_ADDRESS=
THESPACE_TOKEN_IMAGE_URI=
THESPACE_ACL_MANAGER_ADDRESS=
Expand All @@ -18,9 +17,4 @@ THESPACE_TEAM_TOKENS=
THESPACE_INCENTIVES_ADDRESS=
THESPACE_INCENTIVES_TOKENS=
THESPACE_LP_ADDRESS=
THESPACE_LP_TOKENS=
THESPACE_CONTRACT_ADDRESS=
THESPACE_ABI_ENCODE_CONSTRUCTOR_ARGS=
THESPACE_REGISTRY_CONTRACT_ADDRESS=
THESPACE_REGISTRY_ABI_ENCODE_CONSTRUCTOR_ARGS=
SNAPPER_CONTRACT_ADDRESS=
THESPACE_LP_TOKENS=
7 changes: 1 addition & 6 deletions .env.polygon-mainnet.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ ETH_RPC_URL=https://<NETWORK>.alchemy.com/v2/<API_KEY>
CHAIN_ID=137
GUID=
LOGBOOK_CONTRACT_ADDRESS=
LOGBOOK_ABI_ENCODE_CONSTRUCTOR_ARGS=
THESPACE_CURRENCY_ADDRESS=
THESPACE_REGISTRY_ADDRESS=
THESPACE_TOKEN_IMAGE_URI=
THESPACE_ACL_MANAGER_ADDRESS=
THESPACE_MARKET_ADMIN_ADDRESS=
Expand All @@ -19,8 +19,3 @@ THESPACE_INCENTIVES_ADDRESS=
THESPACE_INCENTIVES_TOKENS=
THESPACE_LP_ADDRESS=
THESPACE_LP_TOKENS=
THESPACE_CONTRACT_ADDRESS=
THESPACE_ABI_ENCODE_CONSTRUCTOR_ARGS=
THESPACE_REGISTRY_CONTRACT_ADDRESS=
THESPACE_REGISTRY_ABI_ENCODE_CONSTRUCTOR_ARGS=
SNAPPER_CONTRACT_ADDRESS=
9 changes: 2 additions & 7 deletions .env.polygon-mumbai.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ ETH_RPC_URL=https://<NETWORK>.alchemy.com/v2/<API_KEY>
CHAIN_ID=80001
GUID=
LOGBOOK_CONTRACT_ADDRESS=
LOGBOOK_ABI_ENCODE_CONSTRUCTOR_ARGS=
THESPACE_CURRENCY_ADDRESS=
THESPACE_REGISTRY_ADDRESS=
THESPACE_TOKEN_IMAGE_URI=
THESPACE_ACL_MANAGER_ADDRESS=
THESPACE_MARKET_ADMIN_ADDRESS=
Expand All @@ -18,9 +18,4 @@ THESPACE_TEAM_TOKENS=
THESPACE_INCENTIVES_ADDRESS=
THESPACE_INCENTIVES_TOKENS=
THESPACE_LP_ADDRESS=
THESPACE_LP_TOKENS=
THESPACE_CONTRACT_ADDRESS=
THESPACE_ABI_ENCODE_CONSTRUCTOR_ARGS=
THESPACE_REGISTRY_CONTRACT_ADDRESS=
THESPACE_REGISTRY_ABI_ENCODE_CONSTRUCTOR_ARGS=
SNAPPER_CONTRACT_ADDRESS=
THESPACE_LP_TOKENS=
96 changes: 49 additions & 47 deletions .gas-snapshot
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
LogbookTest:testClaim() (gas: 134551)
LogbookTest:testDonate(uint96) (runs: 256, μ: 149154, ~: 156782)
LogbookTest:testDonateWithCommission(uint96,uint96) (runs: 256, μ: 144088, ~: 140238)
LogbookTest:testFork(uint96,string) (runs: 256, μ: 427760, ~: 451048)
LogbookTest:testForkRecursively(uint8,uint96) (runs: 256, μ: 2392440, ~: 515219)
LogbookTest:testForkWithCommission(uint96,string,uint256) (runs: 256, μ: 450501, ~: 257284)
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, μ: 264909, ~: 264344)
LogbookTest:testPublish(string) (runs: 256, μ: 264899, ~: 264312)
LogbookTest:testPublishEn1000() (gas: 243675)
LogbookTest:testPublishEn140() (gas: 221330)
LogbookTest:testPublishEn200() (gas: 223090)
Expand All @@ -25,9 +25,9 @@ LogbookTest:testPublishZh5000() (gas: 607910)
LogbookTest:testSetDescription() (gas: 141188)
LogbookTest:testSetForkPrice() (gas: 154277)
LogbookTest:testSetTitle() (gas: 167036)
LogbookTest:testSplitRoyalty(uint8,uint8,uint96) (runs: 256, μ: 1015125, ~: 176469)
LogbookTest:testSplitRoyalty(uint8,uint8,uint96) (runs: 256, μ: 1204465, ~: 310758)
LogbookTest:testWithdraw() (gas: 7464895)
LogbookNFTSVGTest:testTokenURI(uint8,uint8,uint16) (runs: 256, μ: 2063881, ~: 1338387)
LogbookNFTSVGTest:testTokenURI(uint8,uint8,uint16) (runs: 256, μ: 2186202, ~: 1336263)
SnapperTest:testCannotInitRegionByNotOwner() (gas: 11456)
SnapperTest:testCannotReInitRegion() (gas: 14399)
SnapperTest:testCannotTakeSnapshotBeforeInit() (gas: 15780)
Expand All @@ -47,52 +47,54 @@ ACLManagerTest:testGrantRole() (gas: 23656)
ACLManagerTest:testRenounceRole() (gas: 27973)
ACLManagerTest:testRoles() (gas: 15436)
ACLManagerTest:testTransferRole() (gas: 21660)
TheSpaceTest:testBatchBid() (gas: 752984)
TheSpaceTest:testBatchSetPixels(uint16,uint8) (runs: 256, μ: 397347, ~: 398254)
TheSpaceTest:testBidDefaultedToken() (gas: 434129)
TheSpaceTest:testBidExistingToken() (gas: 370396)
TheSpaceTest:testBidNewToken() (gas: 307307)
TheSpaceTest:testCanTransferFromIfSettleTax() (gas: 369940)
TheSpaceTest:testCannotBidExceedAllowance() (gas: 60756)
TheSpaceTest:testCannotBidOutBoundTokens() (gas: 300059)
TheSpaceTest:testCannotBidPriceTooLow() (gas: 354293)
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: 309639)
TheSpaceTest:testCannotSetColorByAttacker() (gas: 309158)
TheSpaceTest:testCannotGetTokenURIInLogicContract() (gas: 296845)
TheSpaceTest:testCannotSetColorByAttacker() (gas: 302930)
TheSpaceTest:testCannotSetConfigByAttacker() (gas: 12100)
TheSpaceTest:testCannotSetPixel(uint256) (runs: 256, μ: 318496, ~: 318496)
TheSpaceTest:testCannotSetPriceByNonOwner() (gas: 309234)
TheSpaceTest:testCannotSetPixel(uint256) (runs: 256, μ: 312268, ~: 312268)
TheSpaceTest:testCannotSetPriceByNonOwner() (gas: 303006)
TheSpaceTest:testCannotSetTokenImageURIByNonACLManager() (gas: 11909)
TheSpaceTest:testCannotSetTotalSupplyByAttacker() (gas: 11883)
TheSpaceTest:testCannotTransferFromIfDefault() (gas: 405796)
TheSpaceTest:testCollectableTax() (gas: 345977)
TheSpaceTest:testDefault() (gas: 402077)
TheSpaceTest:testCannotTransferFromIfDefault() (gas: 395605)
TheSpaceTest:testCannotUpgradeByAttacker() (gas: 11608)
TheSpaceTest:testCollectableTax() (gas: 333183)
TheSpaceTest:testDefault() (gas: 391886)
TheSpaceTest:testGetConfig() (gas: 14302)
TheSpaceTest:testGetExistingPixel() (gas: 322127)
TheSpaceTest:testGetExistingPixel() (gas: 309333)
TheSpaceTest:testGetNonExistingPixel() (gas: 60249)
TheSpaceTest:testGetNonExistingPrice() (gas: 19524)
TheSpaceTest:testGetOwner() (gas: 355160)
TheSpaceTest:testGetOwner() (gas: 348906)
TheSpaceTest:testGetOwnerOfNonExistingToken() (gas: 13346)
TheSpaceTest:testGetPixelsByOwnerWithNoPixels() (gas: 24331)
TheSpaceTest:testGetPixelsByOwnerWithOnePixel() (gas: 368352)
TheSpaceTest:testGetPixelsPageByOwnerWithPixels() (gas: 662355)
TheSpaceTest:testGetPrice() (gas: 304079)
TheSpaceTest:testGetTax() (gas: 390195)
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: 344272)
TheSpaceTest:testSetColor() (gas: 335141)
TheSpaceTest:testSetMintTax() (gas: 318118)
TheSpaceTest:testSetPixel(uint256) (runs: 256, μ: 416697, ~: 416697)
TheSpaceTest:testSetPrice(uint256) (runs: 256, μ: 326642, ~: 329130)
TheSpaceTest:testSetPriceByOperator(uint256) (runs: 256, μ: 353268, ~: 355756)
TheSpaceTest:testSetPriceTooHigh() (gas: 318412)
TheSpaceTest:testSetTaxRate() (gas: 351518)
TheSpaceTest:testSetTokenImageURI() (gas: 366967)
TheSpaceTest:testSetTotalSupply(uint256) (runs: 256, μ: 362248, ~: 362251)
TheSpaceTest:testSetTreasuryShare() (gas: 350799)
TheSpaceTest:testSettleTax() (gas: 349533)
TheSpaceTest:testTaxCalculation() (gas: 437495)
TheSpaceTest:testTokenShouldBeDefaulted() (gas: 335683)
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:testWithdrawTreasury() (gas: 381409)
TheSpaceTest:testWithdrawUBI() (gas: 403977)
TheSpaceTest:testUpgradeTo() (gas: 3197912)
TheSpaceTest:testWithdrawTreasury() (gas: 352481)
TheSpaceTest:testWithdrawUBI() (gas: 375552)
13 changes: 1 addition & 12 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ deploy-the-space-currency: clean
@forge create SpaceToken --rpc-url ${ETH_RPC_URL} --private-key ${DEPLOYER_PRIVATE_KEY} --constructor-args ${THESPACE_TREASURY_ADDRESS} --constructor-args ${THESPACE_TREASURY_TOKENS} --constructor-args ${THESPACE_TEAM_ADDRESS} --constructor-args ${THESPACE_TEAM_TOKENS} --constructor-args ${THESPACE_INCENTIVES_ADDRESS} --constructor-args ${THESPACE_INCENTIVES_TOKENS} --constructor-args ${THESPACE_LP_ADDRESS} --constructor-args ${THESPACE_LP_TOKENS} --legacy --verify --etherscan-api-key ${ETHERSCAN_API_KEY}

deploy-the-space: clean
@forge create TheSpace --rpc-url ${ETH_RPC_URL} --private-key ${DEPLOYER_PRIVATE_KEY} --constructor-args ${THESPACE_CURRENCY_ADDRESS} --constructor-args ${THESPACE_TOKEN_IMAGE_URI} --constructor-args ${THESPACE_ACL_MANAGER_ADDRESS} --constructor-args ${THESPACE_MARKET_ADMIN_ADDRESS} --constructor-args ${THESPACE_TREASURY_ADMIN_ADDRESS} --legacy --verify --etherscan-api-key ${ETHERSCAN_API_KEY}
@forge create TheSpace --rpc-url ${ETH_RPC_URL} --private-key ${DEPLOYER_PRIVATE_KEY} --constructor-args ${THESPACE_CURRENCY_ADDRESS} --constructor-args ${THESPACE_REGISTRY_ADDRESS} --constructor-args ${THESPACE_TOKEN_IMAGE_URI} --constructor-args ${THESPACE_ACL_MANAGER_ADDRESS} --constructor-args ${THESPACE_MARKET_ADMIN_ADDRESS} --constructor-args ${THESPACE_TREASURY_ADMIN_ADDRESS} --legacy --verify --etherscan-api-key ${ETHERSCAN_API_KEY}

## snapper
deploy-snapper: clean
Expand All @@ -36,14 +36,3 @@ deploy-snapper: clean
check-verification:
@forge verify-check --chain-id ${CHAIN_ID} ${GUID} ${ETHERSCAN_API_KEY}

verify-logbook:
@forge verify-contract --chain-id ${CHAIN_ID} --constructor-args ${LOGBOOK_ABI_ENCODE_CONSTRUCTOR_ARGS} --num-of-optimizations 200 --compiler-version v0.8.11+commit.d7f03943 ${LOGBOOK_CONTRACT_ADDRESS} src/Logbook/Logbook.sol:Logbook ${ETHERSCAN_API_KEY}

verify-the-space:
@forge verify-contract --chain-id ${CHAIN_ID} --num-of-optimizations 200 --constructor-args ${THESPACE_ABI_ENCODE_CONSTRUCTOR_ARGS} --compiler-version v0.8.13+commit.abaa5c0e ${THESPACE_CONTRACT_ADDRESS} src/TheSpace/TheSpace.sol:TheSpace ${ETHERSCAN_API_KEY}

verify-the-space-registry:
@forge verify-contract --compiler-version v0.8.13+commit.abaa5c0e --chain ${CHAIN_ID} --num-of-optimizations 200 --constructor-args ${THESPACE_REGISTRY_ABI_ENCODE_CONSTRUCTOR_ARGS} ${THESPACE_REGISTRY_CONTRACT_ADDRESS} src/TheSpace/TheSpaceRegistry.sol:TheSpaceRegistry ${ETHERSCAN_API_KEY}

verify-snapper:
@forge verify-contract --chain-id ${CHAIN_ID} --num-of-optimizations 200 --compiler-version v0.8.11+commit.d7f03943 ${SNAPPER_CONTRACT_ADDRESS} src/Snapper/Snapper.sol:Snapper ${ETHERSCAN_API_KEY}
16 changes: 2 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
| SpaceToken | Polygon Mumbai | [0xeb6814043dc2184b0b321f6de995bf11bdbcc5b8](https://mumbai.polygonscan.com/address/0xeb6814043dc2184b0b321f6de995bf11bdbcc5b8) |
| SpaceToken | Polygon Mainnet | [0x264808855b0a6a5a318d238c6ee9f299179f27fc](https://polygonscan.com/address/0x264808855b0a6a5a318d238c6ee9f299179f27fc) |
| TheSpace | Polygon Mainnet | [0x9b71045ac2a1563dc5ff8e0c537413a6aae16cd1](https://polygonscan.com/address/0x9b71045ac2a1563dc5ff8e0c537413a6aae16cd1) |
| TheSpaceRegistry | Polygon Mainnet | |
| TheSpaceRegistry | Polygon Mainnet | [0x8da7a7a48ebbd870358f2fd824e52e5142f44257](https://polygonscan.com/address/0x8da7a7a48ebbd870358f2fd824e52e5142f44257) |

In the "Contract" tab of Polygonscan/Etherscan, you can see the contract code and ABI.

Expand Down Expand Up @@ -122,19 +122,7 @@ make deploy-the-space NETWORK=polygon-mainnet
make deploy-the-space NETWORK=polygon-mumbai
```

## Verify Contract

### [Automatically](https://onbjerg.github.io/foundry-book/forge/deploying.html#verifying)

```bash
# Verify on Polygon Mumbai
make verify-the-space NETWORK=polygon-mumbai

# Verify on Poygon Mainnet
make verify-the-space NETWORK=polygon-mainnet
```

### Manually
## Verify Contract Manually

```bash
# 1. Concat all file into one
Expand Down
3 changes: 2 additions & 1 deletion foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ fuzz_runs = 256
optimizer = true
optimizer_runs = 200
remappings = [
"@openzeppelin/=lib/openzeppelin-contracts/"
"@openzeppelin/=lib/openzeppelin-contracts/",
"forge-std/=lib/forge-std/src/"
]
verbosity = 3
gas_reports = ["*"]
Expand Down
34 changes: 18 additions & 16 deletions src/TheSpace/TheSpace.sol
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,28 @@ contract TheSpace is ITheSpace, Multicall, ReentrancyGuard, ACLManager {

constructor(
address currencyAddress_,
address registryAddress_,
string memory tokenImageURI_,
address aclManager_,
address marketAdmin_,
address treasuryAdmin_
) ACLManager(aclManager_, marketAdmin_, treasuryAdmin_) {
registry = new TheSpaceRegistry(
"Planck", // property name
"PLK", // property symbol
1000000, // total supply
75, // taxRate
500, // treasuryShare
1 * (10**uint256(ERC20(currencyAddress_).decimals())), // mintTax, 1 $SPACE
currencyAddress_
);
// deploy logic contract only and upgrade later
if (registryAddress_ != address(0)) {
registry = TheSpaceRegistry(registryAddress_);
}
// deploy logic and registry contracts
else {
registry = new TheSpaceRegistry(
"Planck", // property name
"PLK", // property symbol
1000000, // total supply
12, // taxRate
0, // treasuryShare
1 * (10**uint256(ERC20(currencyAddress_).decimals())), // mintTax, 1 $SPACE
currencyAddress_
);
}

tokenImageURI = tokenImageURI_;
}
Expand Down Expand Up @@ -262,9 +270,6 @@ contract TheSpace is ITheSpace, Multicall, ReentrancyGuard, ACLManager {
// emit deal event
registry.emitDeal(tokenId_, owner, msg.sender, bidPrice);

// update price to ask price if difference
if (price_ > askPrice) _setPrice(tokenId_, price_, msg.sender);

return;
} else {
// if tax not fully paid, token is treated as defaulted and mint tax is collected and recorded
Expand All @@ -288,10 +293,7 @@ contract TheSpace is ITheSpace, Multicall, ReentrancyGuard, ACLManager {
registry.mint(msg.sender, tokenId_);

// emit deal event
registry.emitDeal(tokenId_, owner, msg.sender, bidPrice);

// update price to ask price if difference
if (price_ > askPrice) _setPrice(tokenId_, price_, msg.sender);
registry.emitDeal(tokenId_, address(0), msg.sender, bidPrice);
}

//////////////////////////////
Expand Down
34 changes: 20 additions & 14 deletions src/test/TheSpace/BaseTheSpace.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,14 @@ contract BaseTheSpaceTest is Test {
emit Config(CONFIG_TREASURY_SHARE, 0);
vm.expectEmit(true, false, false, false);
emit Config(CONFIG_MINT_TAX, 0);
thespace = new TheSpace(address(currency), TOKEN_IMAGE_URI, ACL_MANAGER, MARKET_ADMIN, TREASURY_ADMIN);
thespace = new TheSpace(
address(currency),
address(0),
TOKEN_IMAGE_URI,
ACL_MANAGER,
MARKET_ADMIN,
TREASURY_ADMIN
);
registry = thespace.registry();

vm.stopPrank();
Expand All @@ -105,11 +112,6 @@ contract BaseTheSpaceTest is Test {
currency.approve(address(registry), type(uint256).max);
}

function _bid() internal {
vm.prank(PIXEL_OWNER);
thespace.bid(PIXEL_ID, PIXEL_PRICE);
}

function _bid(uint256 bidPrice) internal {
vm.expectEmit(true, true, true, false);
emit Deal(PIXEL_ID, address(0), PIXEL_OWNER, 0);
Expand All @@ -119,13 +121,16 @@ contract BaseTheSpaceTest is Test {
}

function _bid(uint256 bidPrice, uint256 newPrice) internal {
vm.expectEmit(true, true, true, false);
emit Price(PIXEL_ID, newPrice, PIXEL_OWNER);

vm.startPrank(PIXEL_OWNER);
vm.prank(PIXEL_OWNER);
thespace.bid(PIXEL_ID, bidPrice);

if (thespace.getPrice(PIXEL_ID) != newPrice) {
vm.expectEmit(true, true, true, false);
emit Price(PIXEL_ID, newPrice, PIXEL_OWNER);
}

vm.prank(PIXEL_OWNER);
thespace.setPrice(PIXEL_ID, newPrice);
vm.stopPrank();
}

function _bidAs(address bidder, uint256 bidPrice) internal {
Expand All @@ -138,15 +143,16 @@ contract BaseTheSpaceTest is Test {
uint256 bidPrice,
uint256 newPrice
) internal {
vm.prank(bidder);
thespace.bid(PIXEL_ID, bidPrice);

if (thespace.getPrice(PIXEL_ID) != newPrice) {
vm.expectEmit(true, true, true, false);
emit Price(PIXEL_ID, newPrice, bidder);
}

vm.startPrank(bidder);
thespace.bid(PIXEL_ID, bidPrice);
vm.prank(bidder);
thespace.setPrice(PIXEL_ID, newPrice);
vm.stopPrank();
}

function _bidThis(uint256 tokenId, uint256 bidPrice) internal {
Expand Down

0 comments on commit 06d024f

Please sign in to comment.