{"abi":[{"type":"function","name":"buildSalesConfigForPremint","inputs":[{"name":"config","type":"tuple","internalType":"struct IERC20Minter.PremintSalesConfig","components":[{"name":"duration","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC20Minter.SalesConfig","components":[{"name":"saleStart","type":"uint64","internalType":"uint64"},{"name":"saleEnd","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"ethRewardAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getERC20MinterConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC20Minter.ERC20MinterConfig","components":[{"name":"zoraRewardRecipientAddress","type":"address","internalType":"address"},{"name":"rewardRecipientPercentage","type":"uint256","internalType":"uint256"},{"name":"ethReward","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"mintTo","type":"address","internalType":"address"},{"name":"quantity","type":"uint256","internalType":"uint256"},{"name":"tokenAddress","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"totalValue","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"mintReferral","type":"address","internalType":"address"},{"name":"comment","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sale","inputs":[{"name":"tokenContract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IERC20Minter.SalesConfig","components":[{"name":"saleStart","type":"uint64","internalType":"uint64"},{"name":"saleEnd","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"setERC20MinterConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct IERC20Minter.ERC20MinterConfig","components":[{"name":"zoraRewardRecipientAddress","type":"address","internalType":"address"},{"name":"rewardRecipientPercentage","type":"uint256","internalType":"uint256"},{"name":"ethReward","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPremintSale","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"encodedPremintSalesConfig","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSale","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"salesConfig","type":"tuple","internalType":"struct IERC20Minter.SalesConfig","components":[{"name":"saleStart","type":"uint64","internalType":"uint64"},{"name":"saleEnd","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"totalRewardPct","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"ERC20MinterConfigSet","inputs":[{"name":"config","type":"tuple","indexed":false,"internalType":"struct IERC20Minter.ERC20MinterConfig","components":[{"name":"zoraRewardRecipientAddress","type":"address","internalType":"address"},{"name":"rewardRecipientPercentage","type":"uint256","internalType":"uint256"},{"name":"ethReward","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"event","name":"ERC20RewardsDeposit","inputs":[{"name":"createReferral","type":"address","indexed":true,"internalType":"address"},{"name":"mintReferral","type":"address","indexed":true,"internalType":"address"},{"name":"firstMinter","type":"address","indexed":true,"internalType":"address"},{"name":"zora","type":"address","indexed":false,"internalType":"address"},{"name":"collection","type":"address","indexed":false,"internalType":"address"},{"name":"currency","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"createReferralReward","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"mintReferralReward","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"firstMinterReward","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"zoraReward","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MintComment","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"tokenContract","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quantity","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"comment","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"SaleSet","inputs":[{"name":"mediaContract","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"salesConfig","type":"tuple","indexed":false,"internalType":"struct IERC20Minter.SalesConfig","components":[{"name":"saleStart","type":"uint64","internalType":"uint64"},{"name":"saleEnd","type":"uint64","internalType":"uint64"},{"name":"maxTokensPerAddress","type":"uint64","internalType":"uint64"},{"name":"pricePerToken","type":"uint256","internalType":"uint256"},{"name":"fundsRecipient","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}]}],"anonymous":false},{"type":"error","name":"AddressZero","inputs":[]},{"type":"error","name":"ERC20TransferSlippage","inputs":[]},{"type":"error","name":"FailedToSendEthReward","inputs":[]},{"type":"error","name":"InvalidCurrency","inputs":[]},{"type":"error","name":"InvalidETHValue","inputs":[{"name":"expectedValue","type":"uint256","internalType":"uint256"},{"name":"actualValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidValue","inputs":[]},{"type":"error","name":"PricePerTokenTooLow","inputs":[]},{"type":"error","name":"RequestMintInvalidUseMint","inputs":[]},{"type":"error","name":"SaleEnded","inputs":[]},{"type":"error","name":"SaleHasNotStarted","inputs":[]},{"type":"error","name":"WrongValueSent","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))":"2206a675","ethRewardAmount()":"96325a5a","getERC20MinterConfig()":"e1bf91e9","mint(address,uint256,address,uint256,uint256,address,address,string)":"f54f216a","sale(address,uint256)":"611efc09","setERC20MinterConfig((address,uint256,uint256))":"2492f887","setPremintSale(uint256,bytes)":"a8094d05","setSale(uint256,(uint64,uint64,uint64,uint256,address,address))":"ce35b8af","totalRewardPct()":"62b60245"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC20TransferSlippage\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedToSendEthReward\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCurrency\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expectedValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actualValue\",\"type\":\"uint256\"}],\"name\":\"InvalidETHValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PricePerTokenTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RequestMintInvalidUseMint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaleEnded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaleHasNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WrongValueSent\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"zoraRewardRecipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardRecipientPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct IERC20Minter.ERC20MinterConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"ERC20MinterConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"createReferral\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mintReferral\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"firstMinter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"zora\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"createReferralReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"mintReferralReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstMinterReward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"zoraReward\",\"type\":\"uint256\"}],\"name\":\"ERC20RewardsDeposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"comment\",\"type\":\"string\"}],\"name\":\"MintComment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"mediaContract\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"saleStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"saleEnd\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct IERC20Minter.SalesConfig\",\"name\":\"salesConfig\",\"type\":\"tuple\"}],\"name\":\"SaleSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"internalType\":\"struct IERC20Minter.PremintSalesConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"buildSalesConfigForPremint\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"saleStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"saleEnd\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"internalType\":\"struct IERC20Minter.SalesConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethRewardAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getERC20MinterConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"zoraRewardRecipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardRecipientPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"}],\"internalType\":\"struct IERC20Minter.ERC20MinterConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"mintTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalValue\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mintReferral\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"comment\",\"type\":\"string\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"sale\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"saleStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"saleEnd\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"internalType\":\"struct IERC20Minter.SalesConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"zoraRewardRecipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardRecipientPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"}],\"internalType\":\"struct IERC20Minter.ERC20MinterConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setERC20MinterConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedPremintSalesConfig\",\"type\":\"bytes\"}],\"name\":\"setPremintSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"saleStart\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"saleEnd\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxTokensPerAddress\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"pricePerToken\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fundsRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"internalType\":\"struct IERC20Minter.SalesConfig\",\"name\":\"salesConfig\",\"type\":\"tuple\"}],\"name\":\"setSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalRewardPct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidETHValue(uint256,uint256)\":[{\"params\":{\"actualValue\":\"The actual value\",\"expectedValue\":\"The expected value\"}}]},\"events\":{\"ERC20MinterConfigSet((address,uint256,uint256))\":{\"params\":{\"config\":\"The ERC20MinterConfig\"}},\"ERC20RewardsDeposit(address,address,address,address,address,address,uint256,uint256,uint256,uint256,uint256)\":{\"params\":{\"collection\":\"The collection address of the token\",\"createReferral\":\"Creator referral address\",\"createReferralReward\":\"Creator referral reward\",\"currency\":\"Currency used for the deposit\",\"firstMinter\":\"First minter address\",\"firstMinterReward\":\"First minter amount\",\"mintReferral\":\"Mint referral address\",\"mintReferralReward\":\"Mint referral amount\",\"tokenId\":\"Token ID\",\"zora\":\"ZORA recipient address\",\"zoraReward\":\"ZORA amount\"}},\"MintComment(address,address,uint256,uint256,string)\":{\"params\":{\"comment\":\"The comment\",\"quantity\":\"The quantity of tokens minted\",\"sender\":\"The sender of the comment\",\"tokenContract\":\"The token contract address\",\"tokenId\":\"The token ID\"}},\"SaleSet(address,uint256,(uint64,uint64,uint64,uint256,address,address))\":{\"params\":{\"mediaContract\":\"The media contract address\",\"salesConfig\":\"The sales configuration\",\"tokenId\":\"The token ID\"}}},\"kind\":\"dev\",\"methods\":{\"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))\":{\"params\":{\"config\":\"The PremintSalesConfig to build the SalesConfig from\"}},\"mint(address,uint256,address,uint256,uint256,address,address,string)\":{\"params\":{\"comment\":\"The optional mint comment\",\"currency\":\"The address of the currency to use for the mint\",\"mintReferral\":\"The address of the mint referral\",\"mintTo\":\"The address to mint the token to\",\"quantity\":\"The quantity of tokens to mint\",\"tokenAddress\":\"The address of the token to mint\",\"tokenId\":\"The ID of the token to mint\",\"totalValue\":\"The total value of the mint\"}},\"sale(address,uint256)\":{\"params\":{\"tokenContract\":\"The TokenContract address\",\"tokenId\":\"The ID of the token to get the sale config for\"}},\"setERC20MinterConfig((address,uint256,uint256))\":{\"params\":{\"config\":\"The ERC20MinterConfig to set\"}},\"setPremintSale(uint256,bytes)\":{\"params\":{\"encodedPremintSalesConfig\":\"The abi encoded PremintSalesConfig\",\"tokenId\":\"The ID of the token to set the sale config for\"}},\"setSale(uint256,(uint64,uint64,uint64,uint256,address,address))\":{\"params\":{\"salesConfig\":\"The sale config to set\",\"tokenId\":\"The ID of the token to set the sale config for\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AddressZero()\":[{\"notice\":\"Cannot set address to zero\"}],\"ERC20TransferSlippage()\":[{\"notice\":\"ERC20 transfer slippage\"}],\"FailedToSendEthReward()\":[{\"notice\":\"Failed to send ETH reward\"}],\"InvalidCurrency()\":[{\"notice\":\"Cannot set currency address to zero\"}],\"InvalidETHValue(uint256,uint256)\":[{\"notice\":\"Invalid value for ETH reward\"}],\"InvalidValue()\":[{\"notice\":\"Invalid value\"}],\"PricePerTokenTooLow()\":[{\"notice\":\"Price per ERC20 token is too low\"}],\"RequestMintInvalidUseMint()\":[{\"notice\":\"requestMint() is not used in ERC20 minter, use mint() instead\"}],\"SaleEnded()\":[{\"notice\":\"Sale has already ended\"}],\"SaleHasNotStarted()\":[{\"notice\":\"Sale has not started yet\"}],\"WrongValueSent()\":[{\"notice\":\"Value sent is incorrect\"}]},\"events\":{\"ERC20MinterConfigSet((address,uint256,uint256))\":{\"notice\":\"ERC20MinterConfigSet Event\"},\"ERC20RewardsDeposit(address,address,address,address,address,address,uint256,uint256,uint256,uint256,uint256)\":{\"notice\":\"Rewards Deposit Event\"},\"MintComment(address,address,uint256,uint256,string)\":{\"notice\":\"MintComment Event\"},\"SaleSet(address,uint256,(uint64,uint64,uint64,uint256,address,address))\":{\"notice\":\"SaleSet Event\"}},\"kind\":\"user\",\"methods\":{\"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))\":{\"notice\":\"Dynamically builds a SalesConfig from a PremintSalesConfig, taking into consideration the current block timestamp and the PremintSalesConfig's duration.\"},\"ethRewardAmount()\":{\"notice\":\"Returns the ETH reward amount\"},\"getERC20MinterConfig()\":{\"notice\":\"Gets the ERC20MinterConfig\"},\"mint(address,uint256,address,uint256,uint256,address,address,string)\":{\"notice\":\"Mints a token using an ERC20 currency, note the total value must have been approved prior to calling this function\"},\"sale(address,uint256)\":{\"notice\":\"Returns the sale config for a given token\"},\"setERC20MinterConfig((address,uint256,uint256))\":{\"notice\":\"Sets the ERC20MinterConfig\"},\"setPremintSale(uint256,bytes)\":{\"notice\":\"Sets the sales config based for the msg.sender on the tokenId from the abi encoded premint sales config by abi decoding it and dynamically building the SalesConfig. The saleStart will be the current block timestamp and saleEnd will be the current block timestamp + the duration in the PremintSalesConfig.\"},\"setSale(uint256,(uint64,uint64,uint64,uint256,address,address))\":{\"notice\":\"Sets the sale config for a given token\"},\"totalRewardPct()\":{\"notice\":\"Returns the reward recipient percentage\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/IERC20Minter.sol\":\"IERC20Minter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":0},\"remappings\":[\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@zoralabs/mints-contracts/src/=node_modules/@zoralabs/mints-contracts/src/\",\":@zoralabs/openzeppelin-contracts-upgradeable/=node_modules/@zoralabs/openzeppelin-contracts-upgradeable/\",\":@zoralabs/protocol-rewards/src/=node_modules/@zoralabs/protocol-rewards/src/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":_imagine/=_imagine/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":mint/=_imagine/mint/\",\":solady/=node_modules/solady/src/\",\":solemate/=/node_modules/solemate/src/\",\":solmate/=node_modules/solmate/\"]},\"sources\":{\"src/interfaces/IERC20Minter.sol\":{\"keccak256\":\"0xe925dabbe144f8deeb264408d4adad5461912b4323b8ea9046b6377f128f4325\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d11dcd2f4391ebf23c4fa512c7a84aa4d61373f516680d0ddde9e9858dab7a4\",\"dweb:/ipfs/QmT2Y4p73yvBBn9nVnyzZqtLoyqovA9PzNuN5CciUr6Ljd\"]},\"src/interfaces/IMinterPremintSetup.sol\":{\"keccak256\":\"0xcd54737d7a06c30d58040f444884e1c8d57447bd2aa82bf8334ec08cc7faeb19\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07b02e088714f533c9053f5d4493050e3213d3c6f1092a42cd055055c6286209\",\"dweb:/ipfs/QmTAUtnaj2tHcpTamVY8hY8U2JAXv2XJEkK3RfvhHzVuC4\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.17+commit.8df45f5f"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressZero"},{"inputs":[],"type":"error","name":"ERC20TransferSlippage"},{"inputs":[],"type":"error","name":"FailedToSendEthReward"},{"inputs":[],"type":"error","name":"InvalidCurrency"},{"inputs":[{"internalType":"uint256","name":"expectedValue","type":"uint256"},{"internalType":"uint256","name":"actualValue","type":"uint256"}],"type":"error","name":"InvalidETHValue"},{"inputs":[],"type":"error","name":"InvalidValue"},{"inputs":[],"type":"error","name":"PricePerTokenTooLow"},{"inputs":[],"type":"error","name":"RequestMintInvalidUseMint"},{"inputs":[],"type":"error","name":"SaleEnded"},{"inputs":[],"type":"error","name":"SaleHasNotStarted"},{"inputs":[],"type":"error","name":"WrongValueSent"},{"inputs":[{"internalType":"struct IERC20Minter.ERC20MinterConfig","name":"config","type":"tuple","components":[{"internalType":"address","name":"zoraRewardRecipientAddress","type":"address"},{"internalType":"uint256","name":"rewardRecipientPercentage","type":"uint256"},{"internalType":"uint256","name":"ethReward","type":"uint256"}],"indexed":false}],"type":"event","name":"ERC20MinterConfigSet","anonymous":false},{"inputs":[{"internalType":"address","name":"createReferral","type":"address","indexed":true},{"internalType":"address","name":"mintReferral","type":"address","indexed":true},{"internalType":"address","name":"firstMinter","type":"address","indexed":true},{"internalType":"address","name":"zora","type":"address","indexed":false},{"internalType":"address","name":"collection","type":"address","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"createReferralReward","type":"uint256","indexed":false},{"internalType":"uint256","name":"mintReferralReward","type":"uint256","indexed":false},{"internalType":"uint256","name":"firstMinterReward","type":"uint256","indexed":false},{"internalType":"uint256","name":"zoraReward","type":"uint256","indexed":false}],"type":"event","name":"ERC20RewardsDeposit","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"tokenContract","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"quantity","type":"uint256","indexed":false},{"internalType":"string","name":"comment","type":"string","indexed":false}],"type":"event","name":"MintComment","anonymous":false},{"inputs":[{"internalType":"address","name":"mediaContract","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"struct IERC20Minter.SalesConfig","name":"salesConfig","type":"tuple","components":[{"internalType":"uint64","name":"saleStart","type":"uint64"},{"internalType":"uint64","name":"saleEnd","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"indexed":false}],"type":"event","name":"SaleSet","anonymous":false},{"inputs":[{"internalType":"struct IERC20Minter.PremintSalesConfig","name":"config","type":"tuple","components":[{"internalType":"uint64","name":"duration","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}]}],"stateMutability":"view","type":"function","name":"buildSalesConfigForPremint","outputs":[{"internalType":"struct IERC20Minter.SalesConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"saleStart","type":"uint64"},{"internalType":"uint64","name":"saleEnd","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ethRewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getERC20MinterConfig","outputs":[{"internalType":"struct IERC20Minter.ERC20MinterConfig","name":"","type":"tuple","components":[{"internalType":"address","name":"zoraRewardRecipientAddress","type":"address"},{"internalType":"uint256","name":"rewardRecipientPercentage","type":"uint256"},{"internalType":"uint256","name":"ethReward","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"mintTo","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"totalValue","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"mintReferral","type":"address"},{"internalType":"string","name":"comment","type":"string"}],"stateMutability":"payable","type":"function","name":"mint"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"sale","outputs":[{"internalType":"struct IERC20Minter.SalesConfig","name":"","type":"tuple","components":[{"internalType":"uint64","name":"saleStart","type":"uint64"},{"internalType":"uint64","name":"saleEnd","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}]}]},{"inputs":[{"internalType":"struct IERC20Minter.ERC20MinterConfig","name":"config","type":"tuple","components":[{"internalType":"address","name":"zoraRewardRecipientAddress","type":"address"},{"internalType":"uint256","name":"rewardRecipientPercentage","type":"uint256"},{"internalType":"uint256","name":"ethReward","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"setERC20MinterConfig"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"encodedPremintSalesConfig","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setPremintSale"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"struct IERC20Minter.SalesConfig","name":"salesConfig","type":"tuple","components":[{"internalType":"uint64","name":"saleStart","type":"uint64"},{"internalType":"uint64","name":"saleEnd","type":"uint64"},{"internalType":"uint64","name":"maxTokensPerAddress","type":"uint64"},{"internalType":"uint256","name":"pricePerToken","type":"uint256"},{"internalType":"address","name":"fundsRecipient","type":"address"},{"internalType":"address","name":"currency","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"setSale"},{"inputs":[],"stateMutability":"view","type":"function","name":"totalRewardPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))":{"params":{"config":"The PremintSalesConfig to build the SalesConfig from"}},"mint(address,uint256,address,uint256,uint256,address,address,string)":{"params":{"comment":"The optional mint comment","currency":"The address of the currency to use for the mint","mintReferral":"The address of the mint referral","mintTo":"The address to mint the token to","quantity":"The quantity of tokens to mint","tokenAddress":"The address of the token to mint","tokenId":"The ID of the token to mint","totalValue":"The total value of the mint"}},"sale(address,uint256)":{"params":{"tokenContract":"The TokenContract address","tokenId":"The ID of the token to get the sale config for"}},"setERC20MinterConfig((address,uint256,uint256))":{"params":{"config":"The ERC20MinterConfig to set"}},"setPremintSale(uint256,bytes)":{"params":{"encodedPremintSalesConfig":"The abi encoded PremintSalesConfig","tokenId":"The ID of the token to set the sale config for"}},"setSale(uint256,(uint64,uint64,uint64,uint256,address,address))":{"params":{"salesConfig":"The sale config to set","tokenId":"The ID of the token to set the sale config for"}}},"version":1},"userdoc":{"kind":"user","methods":{"buildSalesConfigForPremint((uint64,uint64,uint256,address,address))":{"notice":"Dynamically builds a SalesConfig from a PremintSalesConfig, taking into consideration the current block timestamp and the PremintSalesConfig's duration."},"ethRewardAmount()":{"notice":"Returns the ETH reward amount"},"getERC20MinterConfig()":{"notice":"Gets the ERC20MinterConfig"},"mint(address,uint256,address,uint256,uint256,address,address,string)":{"notice":"Mints a token using an ERC20 currency, note the total value must have been approved prior to calling this function"},"sale(address,uint256)":{"notice":"Returns the sale config for a given token"},"setERC20MinterConfig((address,uint256,uint256))":{"notice":"Sets the ERC20MinterConfig"},"setPremintSale(uint256,bytes)":{"notice":"Sets the sales config based for the msg.sender on the tokenId from the abi encoded premint sales config by abi decoding it and dynamically building the SalesConfig. The saleStart will be the current block timestamp and saleEnd will be the current block timestamp + the duration in the PremintSalesConfig."},"setSale(uint256,(uint64,uint64,uint64,uint256,address,address))":{"notice":"Sets the sale config for a given token"},"totalRewardPct()":{"notice":"Returns the reward recipient percentage"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@zoralabs/mints-contracts/src/=node_modules/@zoralabs/mints-contracts/src/","@zoralabs/openzeppelin-contracts-upgradeable/=node_modules/@zoralabs/openzeppelin-contracts-upgradeable/","@zoralabs/protocol-rewards/src/=node_modules/@zoralabs/protocol-rewards/src/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","_imagine/=_imagine/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","mint/=_imagine/mint/","solady/=node_modules/solady/src/","solemate/=/node_modules/solemate/src/","solmate/=node_modules/solmate/"],"optimizer":{"enabled":false,"runs":0},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/interfaces/IERC20Minter.sol":"IERC20Minter"},"evmVersion":"london","libraries":{}},"sources":{"src/interfaces/IERC20Minter.sol":{"keccak256":"0xe925dabbe144f8deeb264408d4adad5461912b4323b8ea9046b6377f128f4325","urls":["bzz-raw://9d11dcd2f4391ebf23c4fa512c7a84aa4d61373f516680d0ddde9e9858dab7a4","dweb:/ipfs/QmT2Y4p73yvBBn9nVnyzZqtLoyqovA9PzNuN5CciUr6Ljd"],"license":"MIT"},"src/interfaces/IMinterPremintSetup.sol":{"keccak256":"0xcd54737d7a06c30d58040f444884e1c8d57447bd2aa82bf8334ec08cc7faeb19","urls":["bzz-raw://07b02e088714f533c9053f5d4493050e3213d3c6f1092a42cd055055c6286209","dweb:/ipfs/QmTAUtnaj2tHcpTamVY8hY8U2JAXv2XJEkK3RfvhHzVuC4"],"license":"MIT"}},"version":1},"id":133}