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

[Feature] Batch Offers #4

Open
wants to merge 28 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
3ea2e13
adds batchoffer example boilerplate
rymcol Aug 13, 2024
bf5101a
updates to batchoffer
rymcol Aug 13, 2024
3fb2fc8
handles imports
rymcol Aug 13, 2024
3762402
handles remapping
rymcol Aug 14, 2024
2a379dd
updates remapping
rymcol Aug 14, 2024
d3461b4
forge install: governance-contracts
rymcol Aug 14, 2024
17b208e
moves structs for batch offers to interface
rymcol Aug 14, 2024
a0c28c7
add requirements to batch offer
rymcol Aug 14, 2024
60d8f18
fixes events
rymcol Aug 14, 2024
a604275
merge main
rymcol Aug 14, 2024
45ce0e7
reorder mark as sold
rymcol Aug 14, 2024
b3aa059
test: add tests
rymcol Aug 19, 2024
468824b
test: add failing test
rymcol Aug 19, 2024
e95474f
test: improves failing tests
rymcol Aug 20, 2024
903fac6
test: improves failing tests
rymcol Aug 20, 2024
028787b
test: improves failing tests
rymcol Aug 21, 2024
1413819
test: fixes missing escrow
rymcol Aug 21, 2024
fbd2c9b
test: converts to single roundtrip test
rymcol Aug 23, 2024
979d012
refactors memory usage
rymcol Sep 11, 2024
da23b21
refactors offer storage
rymcol Sep 11, 2024
72d4ceb
update ABIs
rymcol Sep 19, 2024
c47dd5d
add splits check to accept offer
rymcol Sep 19, 2024
3686be2
adds init address checks
rymcol Sep 19, 2024
d857556
ensure roothash is not empty
rymcol Sep 19, 2024
11485ec
optimize mload for gas
rymcol Sep 19, 2024
d20b368
remove redundant root hash check
rymcol Sep 19, 2024
6108a09
double check token owner before mark as sold
rymcol Sep 19, 2024
70c93bd
cleans bad linting
rymcol Sep 19, 2024
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
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ node_modules
.DS_Store
.env*
*.env
broadcast/
broadcast/
7 changes: 7 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,10 @@
[submodule "lib/royalty-guard"]
path = lib/royalty-guard
url = https://github.com/rareprotocol/royalty-guard
[submodule "lib/governance-contracts"]
path = lib/governance-contracts
url = https://github.com/ensdomains/governance-contracts
[submodule "lib/murky"]
path = lib/murky
url = https://github.com/dmfxyz/murky
branch = main
2 changes: 1 addition & 1 deletion abis/ApprovedTokenRegistry.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion abis/CollectorRoyaltiesClaim.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion abis/CreatorRegistry.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion abis/ERC2981Upgradeable.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion abis/IApprovedTokenRegistry.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions abis/IBatchOffer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"abi":[{"type":"event","name":"BatchOfferAccepted","inputs":[{"name":"seller","type":"address","indexed":true,"internalType":"address"},{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"contractAddress","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rootHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"currency","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BatchOfferCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"rootHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"},{"name":"expiry","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BatchOfferAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"BatchOfferCreated\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"SuperRare Labs Inc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"IBatchOffer\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface for the RareMinter\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/batchoffer/IBatchOffer.sol\":\"IBatchOffer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/buffer/=lib/buffer/\",\":@ensdomains/ens-contracts/=lib/ens-contracts/contracts/\",\":@ensdomains/governance/=lib/governance-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib/v3-core/contracts/\",\":@uniswap/v3-core/contracts/=lib/v3-core/contracts/\",\":@uniswap/v3-periphery/=lib/v3-periphery/contracts/\",\":arachnid/solidity-stringutils/=lib/solidity-stringutils/\",\":ds-test/=lib/ds-test/src/\",\":ensdomains/ens-contracts/=lib/ensdomains/ens-contracts/contracts/\",\":ensdomains/governance/=lib/governance-contracts/contracts/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":rareprotocol/assets/=lib/assets/src/\",\":rareprotocol/aux/=src/\",\":royalty-guard/=lib/royalty-guard/src/royalty-guard/\",\":royalty-registry-solidity/=lib/royalty-registry-solidity/contracts/\",\":royalty-registry/=lib/royalty-registry-solidity/contracts/\",\":solmate/=lib/solmate/src/\"],\"viaIR\":true},\"sources\":{\"src/batchoffer/IBatchOffer.sol\":{\"keccak256\":\"0x44626a4f71718c7d60b372a0812953cbffa0c0d9658268eba04383250539a051\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b72b83f9851b994ddf43fcf0a511ba4e54da4c0c0060fa2b850aadff8f84a7f8\",\"dweb:/ipfs/QmfJt4TxCvrZhZQyrmXz8QDDgFCvNxZSUd5S4pwKSGFydN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"seller","type":"address","indexed":true},{"internalType":"address","name":"buyer","type":"address","indexed":true},{"internalType":"address","name":"contractAddress","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes32","name":"rootHash","type":"bytes32","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"BatchOfferAccepted","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"bytes32","name":"rootHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false},{"internalType":"uint256","name":"expiry","type":"uint256","indexed":false}],"type":"event","name":"BatchOfferCreated","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/buffer/=lib/buffer/","@ensdomains/ens-contracts/=lib/ens-contracts/contracts/","@ensdomains/governance/=lib/governance-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/v3-core/=lib/v3-core/contracts/","@uniswap/v3-core/contracts/=lib/v3-core/contracts/","@uniswap/v3-periphery/=lib/v3-periphery/contracts/","arachnid/solidity-stringutils/=lib/solidity-stringutils/","ds-test/=lib/ds-test/src/","ensdomains/ens-contracts/=lib/ensdomains/ens-contracts/contracts/","ensdomains/governance/=lib/governance-contracts/contracts/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","rareprotocol/assets/=lib/assets/src/","rareprotocol/aux/=src/","royalty-guard/=lib/royalty-guard/src/royalty-guard/","royalty-registry-solidity/=lib/royalty-registry-solidity/contracts/","royalty-registry/=lib/royalty-registry-solidity/contracts/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/batchoffer/IBatchOffer.sol":"IBatchOffer"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/batchoffer/IBatchOffer.sol":{"keccak256":"0x44626a4f71718c7d60b372a0812953cbffa0c0d9658268eba04383250539a051","urls":["bzz-raw://b72b83f9851b994ddf43fcf0a511ba4e54da4c0c0060fa2b850aadff8f84a7f8","dweb:/ipfs/QmfJt4TxCvrZhZQyrmXz8QDDgFCvNxZSUd5S4pwKSGFydN"],"license":"MIT"}},"version":1},"id":51}
2 changes: 1 addition & 1 deletion abis/ICreatorRegistry.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"abi":[{"type":"function","name":"tokenCreator","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"tokenCreator(address,uint256)":"b85ed7e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenCreator\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/registry/interfaces/ICreatorRegistry.sol\":\"ICreatorRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/buffer/=lib/buffer/\",\":@ensdomains/ens-contracts/=lib/ens-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib/v3-core/contracts/\",\":@uniswap/v3-core/contracts/=lib/v3-core/contracts/\",\":@uniswap/v3-periphery/=lib/v3-periphery/contracts/\",\":arachnid/solidity-stringutils/=lib/solidity-stringutils/\",\":ds-test/=lib/ds-test/src/\",\":ensdomains/ens-contracts/=lib/ensdomains/ens-contracts/contracts/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":rareprotocol/assets/=lib/assets/src/\",\":rareprotocol/aux/=src/\",\":royalty-guard/=lib/royalty-guard/src/royalty-guard/\",\":royalty-registry-solidity/=lib/royalty-registry-solidity/contracts/\",\":royalty-registry/=lib/royalty-registry-solidity/contracts/\",\":solmate/=lib/solmate/src/\"],\"viaIR\":true},\"sources\":{\"src/registry/interfaces/ICreatorRegistry.sol\":{\"keccak256\":\"0xcaeba1e630efa2ce901d39632fa5760cfbfd8647bf8657a137f4cece2d714ed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://161e5d0d9f9b27e97cbdb4fc10134254fe329fcd549fdb07900bb553d2a1ccc1\",\"dweb:/ipfs/QmNtKFgVqB28YwLJg6TWgXWHEJybrXFXEWbU5gep99HEcP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenCreator","outputs":[{"internalType":"address payable","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/buffer/=lib/buffer/","@ensdomains/ens-contracts/=lib/ens-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/v3-core/=lib/v3-core/contracts/","@uniswap/v3-core/contracts/=lib/v3-core/contracts/","@uniswap/v3-periphery/=lib/v3-periphery/contracts/","arachnid/solidity-stringutils/=lib/solidity-stringutils/","ds-test/=lib/ds-test/src/","ensdomains/ens-contracts/=lib/ensdomains/ens-contracts/contracts/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","rareprotocol/assets/=lib/assets/src/","rareprotocol/aux/=src/","royalty-guard/=lib/royalty-guard/src/royalty-guard/","royalty-registry-solidity/=lib/royalty-registry-solidity/contracts/","royalty-registry/=lib/royalty-registry-solidity/contracts/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/registry/interfaces/ICreatorRegistry.sol":"ICreatorRegistry"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/registry/interfaces/ICreatorRegistry.sol":{"keccak256":"0xcaeba1e630efa2ce901d39632fa5760cfbfd8647bf8657a137f4cece2d714ed8","urls":["bzz-raw://161e5d0d9f9b27e97cbdb4fc10134254fe329fcd549fdb07900bb553d2a1ccc1","dweb:/ipfs/QmNtKFgVqB28YwLJg6TWgXWHEJybrXFXEWbU5gep99HEcP"],"license":"MIT"}},"version":1},"id":37}
{"abi":[{"type":"function","name":"tokenCreator","inputs":[{"name":"_contractAddress","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"tokenCreator(address,uint256)":"b85ed7e4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenCreator\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/registry/interfaces/ICreatorRegistry.sol\":\"ICreatorRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/buffer/=lib/buffer/\",\":@ensdomains/ens-contracts/=lib/ens-contracts/contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib/v3-core/contracts/\",\":@uniswap/v3-core/contracts/=lib/v3-core/contracts/\",\":@uniswap/v3-periphery/=lib/v3-periphery/contracts/\",\":arachnid/solidity-stringutils/=lib/solidity-stringutils/\",\":ds-test/=lib/ds-test/src/\",\":ensdomains/ens-contracts/=lib/ensdomains/ens-contracts/contracts/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":rareprotocol/assets/=lib/assets/src/\",\":rareprotocol/aux/=src/\",\":royalty-guard/=lib/royalty-guard/src/royalty-guard/\",\":royalty-registry-solidity/=lib/royalty-registry-solidity/contracts/\",\":royalty-registry/=lib/royalty-registry-solidity/contracts/\",\":solmate/=lib/solmate/src/\"],\"viaIR\":true},\"sources\":{\"src/registry/interfaces/ICreatorRegistry.sol\":{\"keccak256\":\"0xcaeba1e630efa2ce901d39632fa5760cfbfd8647bf8657a137f4cece2d714ed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://161e5d0d9f9b27e97cbdb4fc10134254fe329fcd549fdb07900bb553d2a1ccc1\",\"dweb:/ipfs/QmNtKFgVqB28YwLJg6TWgXWHEJybrXFXEWbU5gep99HEcP\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenCreator","outputs":[{"internalType":"address payable","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@ensdomains/buffer/=lib/buffer/","@ensdomains/ens-contracts/=lib/ens-contracts/contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uniswap/v3-core/=lib/v3-core/contracts/","@uniswap/v3-core/contracts/=lib/v3-core/contracts/","@uniswap/v3-periphery/=lib/v3-periphery/contracts/","arachnid/solidity-stringutils/=lib/solidity-stringutils/","ds-test/=lib/ds-test/src/","ensdomains/ens-contracts/=lib/ensdomains/ens-contracts/contracts/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","rareprotocol/assets/=lib/assets/src/","rareprotocol/aux/=src/","royalty-guard/=lib/royalty-guard/src/royalty-guard/","royalty-registry-solidity/=lib/royalty-registry-solidity/contracts/","royalty-registry/=lib/royalty-registry-solidity/contracts/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/registry/interfaces/ICreatorRegistry.sol":"ICreatorRegistry"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/registry/interfaces/ICreatorRegistry.sol":{"keccak256":"0xcaeba1e630efa2ce901d39632fa5760cfbfd8647bf8657a137f4cece2d714ed8","urls":["bzz-raw://161e5d0d9f9b27e97cbdb4fc10134254fe329fcd549fdb07900bb553d2a1ccc1","dweb:/ipfs/QmNtKFgVqB28YwLJg6TWgXWHEJybrXFXEWbU5gep99HEcP"],"license":"MIT"}},"version":1},"id":37}
Loading