From a18e6ee07bee103e8f4016d7f59d80a1d851312d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Sedl=C3=A1=C4=8Dek?= Date: Fri, 16 May 2025 16:49:59 +0200 Subject: [PATCH] update sales contracts --- Makefile | 3 + .../IERC1155Sale.sol/IERC1155Sale.json | 169 +++++++++++++++++- .../seq_sale/IERC721Sale.sol/IERC721Sale.json | 51 +++++- .../gen/seq_sale/erc1155/sale_erc1155.gen.go | 169 +++++++++++++++++- .../gen/seq_sale/erc721/sale_erc721.gen.go | 137 +++++++++++++- go.work.sum | 3 + 6 files changed, 515 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index c00a2e0f..65c45a67 100644 --- a/Makefile +++ b/Makefile @@ -42,3 +42,6 @@ wait-on-chain: .PHONY: mock mock: go generate ./mock + +generate-contracts: + go generate ./contracts/gen/. diff --git a/contracts/artifacts/seq_sale/IERC1155Sale.sol/IERC1155Sale.json b/contracts/artifacts/seq_sale/IERC1155Sale.sol/IERC1155Sale.json index 2456c407..0c4237ac 100644 --- a/contracts/artifacts/seq_sale/IERC1155Sale.sol/IERC1155Sale.json +++ b/contracts/artifacts/seq_sale/IERC1155Sale.sol/IERC1155Sale.json @@ -142,6 +142,52 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "tokenSaleDetailsBatch", + "inputs": [ + { + "name": "tokenIds", + "type": "uint256[]", + "internalType": "uint256[]" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple[]", + "internalType": "struct IERC1155SaleFunctions.SaleDetails[]", + "components": [ + { + "name": "cost", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "supplyCap", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "startTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "endTime", + "type": "uint64", + "internalType": "uint64" + }, + { + "name": "merkleRoot", + "type": "bytes32", + "internalType": "bytes32" + } + ] + } + ], + "stateMutability": "view" + }, { "type": "event", "name": "GlobalSaleDetailsUpdated", @@ -179,6 +225,31 @@ ], "anonymous": false }, + { + "type": "event", + "name": "ItemsMinted", + "inputs": [ + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "tokenIds", + "type": "uint256[]", + "indexed": false, + "internalType": "uint256[]" + }, + { + "name": "amounts", + "type": "uint256[]", + "indexed": false, + "internalType": "uint256[]" + } + ], + "anonymous": false + }, { "type": "event", "name": "TokenSaleDetailsUpdated", @@ -302,9 +373,10 @@ "globalSaleDetails()": "119cd50c", "mint(address,uint256[],uint256[],bytes,address,uint256,bytes32[])": "60e606f6", "paymentToken()": "3013ce29", - "tokenSaleDetails(uint256)": "0869678c" + "tokenSaleDetails(uint256)": "0869678c", + "tokenSaleDetailsBatch(uint256[])": "ff81434e" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"GlobalSaleInactive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientPayment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"InsufficientSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSaleDetails\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenIds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"SaleInactive\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"GlobalSaleDetailsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"TokenSaleDetailsUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"globalSaleDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct IERC1155SaleFunctions.SaleDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxTotal\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymentToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenSaleDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct IERC1155SaleFunctions.SaleDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InsufficientPayment(address,uint256,uint256)\":[{\"params\":{\"actual\":\"Actual amount of tokens.\",\"currency\":\"Currency address. address(0) indicates ETH.\",\"expected\":\"Expected amount of tokens.\"}}],\"SaleInactive(uint256)\":[{\"params\":{\"tokenId\":\"Invalid Token ID.\"}}]},\"kind\":\"dev\",\"methods\":{\"globalSaleDetails()\":{\"returns\":{\"_0\":\"Sale details.\"}},\"mint(address,uint256[],uint256[],bytes,address,uint256,bytes32[])\":{\"details\":\"tokenIds must be sorted ascending without duplicates.An empty proof is supplied when no proof is required.\",\"params\":{\"amounts\":\"Amounts of tokens to mint.\",\"data\":\"Data to pass if receiver is contract.\",\"maxTotal\":\"Maximum amount of payment tokens.\",\"paymentToken\":\"ERC20 token address to accept payment in. address(0) indicates ETH.\",\"proof\":\"Merkle proof for allowlist minting.\",\"to\":\"Address to mint tokens to.\",\"tokenIds\":\"Token IDs to mint.\"}},\"paymentToken()\":{\"returns\":{\"_0\":\"Payment token address.\"}},\"tokenSaleDetails(uint256)\":{\"params\":{\"tokenId\":\"Token ID to get sale details for.\"},\"returns\":{\"_0\":\"Sale details.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"GlobalSaleInactive()\":[{\"notice\":\"Sale is not active globally.\"}],\"InsufficientPayment(address,uint256,uint256)\":[{\"notice\":\"Insufficient tokens for payment.\"}],\"InsufficientSupply(uint256,uint256,uint256)\":[{\"notice\":\"Insufficient supply of tokens.\"}],\"InvalidInitialization()\":[{\"notice\":\"Contract already initialized.\"}],\"InvalidSaleDetails()\":[{\"notice\":\"Sale details supplied are invalid.\"}],\"InvalidTokenIds()\":[{\"notice\":\"Invalid token IDs.\"}],\"SaleInactive(uint256)\":[{\"notice\":\"Sale is not active.\"}]},\"kind\":\"user\",\"methods\":{\"globalSaleDetails()\":{\"notice\":\"Get global sales details.Global sales details apply to all tokens.Global sales details are overriden when token sale is active.\"},\"mint(address,uint256[],uint256[],bytes,address,uint256,bytes32[])\":{\"notice\":\"Mint tokens.Sale must be active for all tokens.\"},\"paymentToken()\":{\"notice\":\"Get payment token.address(0) indicates payment in ETH.\"},\"tokenSaleDetails(uint256)\":{\"notice\":\"Get token sale details.Token sale details override global sale details.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokens/ERC1155/utility/sale/IERC1155Sale.sol\":\"IERC1155Sale\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":0xsequence/=lib/0xsequence/\",\":@0xsequence/contracts-library/=src/\",\":@0xsequence/erc-1155/=lib/0xsequence/erc-1155/src/\",\":@0xsequence/erc20-meta-token/=lib/0xsequence/erc20-meta-token/src/\",\":@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin/\",\":chiru-labs/=lib/chiru-labs/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":erc721a-upgradeable/=lib/chiru-labs/erc721a-upgradeable/\",\":erc721a/=lib/chiru-labs/erc721a/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"src/tokens/ERC1155/utility/sale/IERC1155Sale.sol\":{\"keccak256\":\"0x153d0f88e91beedc685c1ceae856d69a0267c366e9eb0d6be0976244f921478e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8f5b2af7e2dafbba179286f1b5d78b42296d43275248b8bca37fc91af457dec2\",\"dweb:/ipfs/QmaKtmBN5JUm8vQCu75iUupsisLv1mcvG5ETZ2xsZxXGsk\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"GlobalSaleInactive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientPayment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"InsufficientSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSaleDetails\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenIds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"SaleInactive\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"GlobalSaleDetailsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"ItemsMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"TokenSaleDetailsUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"globalSaleDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct IERC1155SaleFunctions.SaleDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxTotal\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paymentToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenSaleDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct IERC1155SaleFunctions.SaleDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"tokenSaleDetailsBatch\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct IERC1155SaleFunctions.SaleDetails[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InsufficientPayment(address,uint256,uint256)\":[{\"params\":{\"actual\":\"Actual amount of tokens.\",\"currency\":\"Currency address. address(0) indicates ETH.\",\"expected\":\"Expected amount of tokens.\"}}],\"SaleInactive(uint256)\":[{\"params\":{\"tokenId\":\"Invalid Token ID.\"}}]},\"kind\":\"dev\",\"methods\":{\"globalSaleDetails()\":{\"returns\":{\"_0\":\"Sale details.\"}},\"mint(address,uint256[],uint256[],bytes,address,uint256,bytes32[])\":{\"details\":\"tokenIds must be sorted ascending without duplicates.An empty proof is supplied when no proof is required.\",\"params\":{\"amounts\":\"Amounts of tokens to mint.\",\"data\":\"Data to pass if receiver is contract.\",\"maxTotal\":\"Maximum amount of payment tokens.\",\"paymentToken\":\"ERC20 token address to accept payment in. address(0) indicates ETH.\",\"proof\":\"Merkle proof for allowlist minting.\",\"to\":\"Address to mint tokens to.\",\"tokenIds\":\"Token IDs to mint.\"}},\"paymentToken()\":{\"returns\":{\"_0\":\"Payment token address.\"}},\"tokenSaleDetails(uint256)\":{\"params\":{\"tokenId\":\"Token ID to get sale details for.\"},\"returns\":{\"_0\":\"Sale details.\"}},\"tokenSaleDetailsBatch(uint256[])\":{\"params\":{\"tokenIds\":\"Array of token IDs to retrieve sale details for.\"},\"returns\":{\"_0\":\"Array of sale details corresponding to each token ID.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"GlobalSaleInactive()\":[{\"notice\":\"Sale is not active globally.\"}],\"InsufficientPayment(address,uint256,uint256)\":[{\"notice\":\"Insufficient tokens for payment.\"}],\"InsufficientSupply(uint256,uint256,uint256)\":[{\"notice\":\"Insufficient supply of tokens.\"}],\"InvalidInitialization()\":[{\"notice\":\"Contract already initialized.\"}],\"InvalidSaleDetails()\":[{\"notice\":\"Sale details supplied are invalid.\"}],\"InvalidTokenIds()\":[{\"notice\":\"Invalid token IDs.\"}],\"SaleInactive(uint256)\":[{\"notice\":\"Sale is not active.\"}]},\"kind\":\"user\",\"methods\":{\"globalSaleDetails()\":{\"notice\":\"Get global sales details.Global sales details apply to all tokens.Global sales details are overriden when token sale is active.\"},\"mint(address,uint256[],uint256[],bytes,address,uint256,bytes32[])\":{\"notice\":\"Mint tokens.Sale must be active for all tokens.\"},\"paymentToken()\":{\"notice\":\"Get payment token.address(0) indicates payment in ETH.\"},\"tokenSaleDetails(uint256)\":{\"notice\":\"Get token sale details.Token sale details override global sale details.\"},\"tokenSaleDetailsBatch(uint256[])\":{\"notice\":\"Get sale details for multiple tokens.Each token's sale details override the global sale details if set.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokens/ERC1155/utility/sale/IERC1155Sale.sol\":\"IERC1155Sale\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":0xsequence/=lib/0xsequence/\",\":@0xsequence/contracts-library/=src/\",\":@0xsequence/erc-1155/=lib/0xsequence/erc-1155/src/\",\":@0xsequence/erc20-meta-token/=lib/0xsequence/erc20-meta-token/src/\",\":@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin/\",\":chiru-labs/=lib/chiru-labs/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":erc721a-upgradeable/=lib/chiru-labs/erc721a-upgradeable/\",\":erc721a/=lib/chiru-labs/erc721a/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"src/tokens/ERC1155/utility/sale/IERC1155Sale.sol\":{\"content\":\"// SPDX-License-Identifier: Apache-2.0\\npragma solidity ^0.8.19;\\n\\ninterface IERC1155SaleFunctions {\\n\\n struct SaleDetails {\\n uint256 cost;\\n uint256 supplyCap; // 0 supply cap indicates unlimited supply\\n uint64 startTime;\\n uint64 endTime; // 0 end time indicates sale inactive\\n bytes32 merkleRoot; // Root of allowed addresses\\n }\\n\\n /**\\n * Get global sales details.\\n * @return Sale details.\\n * @notice Global sales details apply to all tokens.\\n * @notice Global sales details are overriden when token sale is active.\\n */\\n function globalSaleDetails() external view returns (SaleDetails memory);\\n\\n /**\\n * Get token sale details.\\n * @param tokenId Token ID to get sale details for.\\n * @return Sale details.\\n * @notice Token sale details override global sale details.\\n */\\n function tokenSaleDetails(\\n uint256 tokenId\\n ) external view returns (SaleDetails memory);\\n\\n /**\\n * Get sale details for multiple tokens.\\n * @param tokenIds Array of token IDs to retrieve sale details for.\\n * @return Array of sale details corresponding to each token ID.\\n * @notice Each token's sale details override the global sale details if set.\\n */\\n function tokenSaleDetailsBatch(\\n uint256[] calldata tokenIds\\n ) external view returns (SaleDetails[] memory);\\n\\n /**\\n * Get payment token.\\n * @return Payment token address.\\n * @notice address(0) indicates payment in ETH.\\n */\\n function paymentToken() external view returns (address);\\n\\n /**\\n * Mint tokens.\\n * @param to Address to mint tokens to.\\n * @param tokenIds Token IDs to mint.\\n * @param amounts Amounts of tokens to mint.\\n * @param data Data to pass if receiver is contract.\\n * @param paymentToken ERC20 token address to accept payment in. address(0) indicates ETH.\\n * @param maxTotal Maximum amount of payment tokens.\\n * @param proof Merkle proof for allowlist minting.\\n * @notice Sale must be active for all tokens.\\n * @dev tokenIds must be sorted ascending without duplicates.\\n * @dev An empty proof is supplied when no proof is required.\\n */\\n function mint(\\n address to,\\n uint256[] memory tokenIds,\\n uint256[] memory amounts,\\n bytes memory data,\\n address paymentToken,\\n uint256 maxTotal,\\n bytes32[] calldata proof\\n ) external payable;\\n\\n}\\n\\ninterface IERC1155SaleSignals {\\n\\n event GlobalSaleDetailsUpdated(\\n uint256 cost, uint256 supplyCap, uint64 startTime, uint64 endTime, bytes32 merkleRoot\\n );\\n event TokenSaleDetailsUpdated(\\n uint256 tokenId, uint256 cost, uint256 supplyCap, uint64 startTime, uint64 endTime, bytes32 merkleRoot\\n );\\n event ItemsMinted(address to, uint256[] tokenIds, uint256[] amounts);\\n\\n /**\\n * Contract already initialized.\\n */\\n error InvalidInitialization();\\n\\n /**\\n * Sale details supplied are invalid.\\n */\\n error InvalidSaleDetails();\\n\\n /**\\n * Sale is not active globally.\\n */\\n error GlobalSaleInactive();\\n\\n /**\\n * Sale is not active.\\n * @param tokenId Invalid Token ID.\\n */\\n error SaleInactive(uint256 tokenId);\\n\\n /**\\n * Insufficient tokens for payment.\\n * @param currency Currency address. address(0) indicates ETH.\\n * @param expected Expected amount of tokens.\\n * @param actual Actual amount of tokens.\\n */\\n error InsufficientPayment(address currency, uint256 expected, uint256 actual);\\n\\n /**\\n * Invalid token IDs.\\n */\\n error InvalidTokenIds();\\n\\n /**\\n * Insufficient supply of tokens.\\n */\\n error InsufficientSupply(uint256 currentSupply, uint256 requestedAmount, uint256 maxSupply);\\n\\n}\\n\\ninterface IERC1155Sale is IERC1155SaleFunctions, IERC1155SaleSignals { }\\n\",\"keccak256\":\"0x67f2f21c53c4519fc85bf95bc4eabd4c0e2ebec3dd8f91d723711ef60e2153b6\",\"license\":\"Apache-2.0\"}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -422,6 +494,31 @@ "name": "GlobalSaleDetailsUpdated", "anonymous": false }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]", + "indexed": false + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]", + "indexed": false + } + ], + "type": "event", + "name": "ItemsMinted", + "anonymous": false + }, { "inputs": [ { @@ -605,6 +702,52 @@ ] } ] + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "tokenIds", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function", + "name": "tokenSaleDetailsBatch", + "outputs": [ + { + "internalType": "struct IERC1155SaleFunctions.SaleDetails[]", + "name": "", + "type": "tuple[]", + "components": [ + { + "internalType": "uint256", + "name": "cost", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "supplyCap", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "startTime", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "endTime", + "type": "uint64" + }, + { + "internalType": "bytes32", + "name": "merkleRoot", + "type": "bytes32" + } + ] + } + ] } ], "devdoc": { @@ -639,6 +782,14 @@ "returns": { "_0": "Sale details." } + }, + "tokenSaleDetailsBatch(uint256[])": { + "params": { + "tokenIds": "Array of token IDs to retrieve sale details for." + }, + "returns": { + "_0": "Array of sale details corresponding to each token ID." + } } }, "version": 1 @@ -657,6 +808,9 @@ }, "tokenSaleDetails(uint256)": { "notice": "Get token sale details.Token sale details override global sale details." + }, + "tokenSaleDetailsBatch(uint256[])": { + "notice": "Get sale details for multiple tokens.Each token's sale details override the global sale details if set." } }, "version": 1 @@ -687,6 +841,7 @@ "runs": 20000 }, "metadata": { + "useLiteralContent": true, "bytecodeHash": "ipfs" }, "compilationTarget": { @@ -698,15 +853,13 @@ }, "sources": { "src/tokens/ERC1155/utility/sale/IERC1155Sale.sol": { - "keccak256": "0x153d0f88e91beedc685c1ceae856d69a0267c366e9eb0d6be0976244f921478e", - "urls": [ - "bzz-raw://8f5b2af7e2dafbba179286f1b5d78b42296d43275248b8bca37fc91af457dec2", - "dweb:/ipfs/QmaKtmBN5JUm8vQCu75iUupsisLv1mcvG5ETZ2xsZxXGsk" - ], + "keccak256": "0x67f2f21c53c4519fc85bf95bc4eabd4c0e2ebec3dd8f91d723711ef60e2153b6", + "urls": [], + "content": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.19;\n\ninterface IERC1155SaleFunctions {\n\n struct SaleDetails {\n uint256 cost;\n uint256 supplyCap; // 0 supply cap indicates unlimited supply\n uint64 startTime;\n uint64 endTime; // 0 end time indicates sale inactive\n bytes32 merkleRoot; // Root of allowed addresses\n }\n\n /**\n * Get global sales details.\n * @return Sale details.\n * @notice Global sales details apply to all tokens.\n * @notice Global sales details are overriden when token sale is active.\n */\n function globalSaleDetails() external view returns (SaleDetails memory);\n\n /**\n * Get token sale details.\n * @param tokenId Token ID to get sale details for.\n * @return Sale details.\n * @notice Token sale details override global sale details.\n */\n function tokenSaleDetails(\n uint256 tokenId\n ) external view returns (SaleDetails memory);\n\n /**\n * Get sale details for multiple tokens.\n * @param tokenIds Array of token IDs to retrieve sale details for.\n * @return Array of sale details corresponding to each token ID.\n * @notice Each token's sale details override the global sale details if set.\n */\n function tokenSaleDetailsBatch(\n uint256[] calldata tokenIds\n ) external view returns (SaleDetails[] memory);\n\n /**\n * Get payment token.\n * @return Payment token address.\n * @notice address(0) indicates payment in ETH.\n */\n function paymentToken() external view returns (address);\n\n /**\n * Mint tokens.\n * @param to Address to mint tokens to.\n * @param tokenIds Token IDs to mint.\n * @param amounts Amounts of tokens to mint.\n * @param data Data to pass if receiver is contract.\n * @param paymentToken ERC20 token address to accept payment in. address(0) indicates ETH.\n * @param maxTotal Maximum amount of payment tokens.\n * @param proof Merkle proof for allowlist minting.\n * @notice Sale must be active for all tokens.\n * @dev tokenIds must be sorted ascending without duplicates.\n * @dev An empty proof is supplied when no proof is required.\n */\n function mint(\n address to,\n uint256[] memory tokenIds,\n uint256[] memory amounts,\n bytes memory data,\n address paymentToken,\n uint256 maxTotal,\n bytes32[] calldata proof\n ) external payable;\n\n}\n\ninterface IERC1155SaleSignals {\n\n event GlobalSaleDetailsUpdated(\n uint256 cost, uint256 supplyCap, uint64 startTime, uint64 endTime, bytes32 merkleRoot\n );\n event TokenSaleDetailsUpdated(\n uint256 tokenId, uint256 cost, uint256 supplyCap, uint64 startTime, uint64 endTime, bytes32 merkleRoot\n );\n event ItemsMinted(address to, uint256[] tokenIds, uint256[] amounts);\n\n /**\n * Contract already initialized.\n */\n error InvalidInitialization();\n\n /**\n * Sale details supplied are invalid.\n */\n error InvalidSaleDetails();\n\n /**\n * Sale is not active globally.\n */\n error GlobalSaleInactive();\n\n /**\n * Sale is not active.\n * @param tokenId Invalid Token ID.\n */\n error SaleInactive(uint256 tokenId);\n\n /**\n * Insufficient tokens for payment.\n * @param currency Currency address. address(0) indicates ETH.\n * @param expected Expected amount of tokens.\n * @param actual Actual amount of tokens.\n */\n error InsufficientPayment(address currency, uint256 expected, uint256 actual);\n\n /**\n * Invalid token IDs.\n */\n error InvalidTokenIds();\n\n /**\n * Insufficient supply of tokens.\n */\n error InsufficientSupply(uint256 currentSupply, uint256 requestedAmount, uint256 maxSupply);\n\n}\n\ninterface IERC1155Sale is IERC1155SaleFunctions, IERC1155SaleSignals { }\n", "license": "Apache-2.0" } }, "version": 1 }, - "id": 45 + "id": 123 } diff --git a/contracts/artifacts/seq_sale/IERC721Sale.sol/IERC721Sale.json b/contracts/artifacts/seq_sale/IERC721Sale.sol/IERC721Sale.json index 7405ee1e..d4f6ffe9 100644 --- a/contracts/artifacts/seq_sale/IERC721Sale.sol/IERC721Sale.json +++ b/contracts/artifacts/seq_sale/IERC721Sale.sol/IERC721Sale.json @@ -116,6 +116,25 @@ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "event", + "name": "ItemsMinted", + "inputs": [ + { + "name": "to", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, { "type": "event", "name": "SaleDetailsUpdated", @@ -224,7 +243,7 @@ "saleDetails()": "3474a4a6", "setSaleDetails(uint256,uint256,address,uint64,uint64,bytes32)": "8c17030f" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientPayment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"InsufficientSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSaleDetails\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaleInactive\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"SaleDetailsUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxTotal\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"saleDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct IERC721SaleFunctions.SaleDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"setSaleDetails\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InsufficientPayment(address,uint256,uint256)\":[{\"params\":{\"actual\":\"Actual amount of tokens.\",\"currency\":\"Currency address. address(0) indicates ETH.\",\"expected\":\"Expected amount of tokens.\"}}],\"InsufficientSupply(uint256,uint256,uint256)\":[{\"params\":{\"amount\":\"Amount to mint.\",\"currentSupply\":\"Current supply.\",\"maxSupply\":\"Maximum supply.\"}}]},\"kind\":\"dev\",\"methods\":{\"mint(address,uint256,address,uint256,bytes32[])\":{\"details\":\"An empty proof is supplied when no proof is required.\",\"params\":{\"amount\":\"Amount of tokens to mint.\",\"maxTotal\":\"Maximum amount of payment tokens.\",\"paymentToken\":\"ERC20 token address to accept payment in. address(0) indicates ETH.\",\"proof\":\"Merkle proof for allowlist minting.\",\"to\":\"Address to mint tokens to.\"}},\"saleDetails()\":{\"returns\":{\"_0\":\"Sale details.\"}},\"setSaleDetails(uint256,uint256,address,uint64,uint64,bytes32)\":{\"params\":{\"cost\":\"The amount of payment tokens to accept for each token minted.\",\"endTime\":\"The end time of the sale. Tokens cannot be minted after this time.\",\"merkleRoot\":\"The merkle root for allowlist minting.\",\"paymentToken\":\"The ERC20 token address to accept payment in. address(0) indicates ETH.\",\"startTime\":\"The start time of the sale. Tokens cannot be minted before this time.\",\"supplyCap\":\"The maximum number of tokens that can be minted. 0 indicates unlimited supply.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientPayment(address,uint256,uint256)\":[{\"notice\":\"Insufficient tokens for payment.\"}],\"InsufficientSupply(uint256,uint256,uint256)\":[{\"notice\":\"Insufficient supply.\"}],\"InvalidInitialization()\":[{\"notice\":\"Contract already initialized.\"}],\"InvalidSaleDetails()\":[{\"notice\":\"Sale details supplied are invalid.\"}],\"SaleInactive()\":[{\"notice\":\"Sale is not active.\"}]},\"kind\":\"user\",\"methods\":{\"mint(address,uint256,address,uint256,bytes32[])\":{\"notice\":\"Mint tokens.Sale must be active for all tokens.\"},\"saleDetails()\":{\"notice\":\"Get sale details.\"},\"setSaleDetails(uint256,uint256,address,uint64,uint64,bytes32)\":{\"notice\":\"Set the sale details.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokens/ERC721/utility/sale/IERC721Sale.sol\":\"IERC721Sale\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":0xsequence/=lib/0xsequence/\",\":@0xsequence/contracts-library/=src/\",\":@0xsequence/erc-1155/=lib/0xsequence/erc-1155/src/\",\":@0xsequence/erc20-meta-token/=lib/0xsequence/erc20-meta-token/src/\",\":@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin/\",\":chiru-labs/=lib/chiru-labs/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":erc721a-upgradeable/=lib/chiru-labs/erc721a-upgradeable/\",\":erc721a/=lib/chiru-labs/erc721a/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"src/tokens/ERC721/utility/sale/IERC721Sale.sol\":{\"keccak256\":\"0xc7c8a2cb09eedaf23b299723bd5725fcda87a9c889048d861bcb9af8852d6344\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://492708684638e73e3f80fb82f754214cc39d0aa53749b847ac094d156dd769fa\",\"dweb:/ipfs/QmSm6bofZvZE15b1Xt82kLWN4FwyEAuNcWEmocygtJxAja\"]}},\"version\":1}", + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientPayment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"InsufficientSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSaleDetails\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SaleInactive\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ItemsMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"SaleDetailsUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxTotal\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"proof\",\"type\":\"bytes32[]\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"saleDetails\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct IERC721SaleFunctions.SaleDetails\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"supplyCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cost\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"startTime\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"endTime\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"name\":\"setSaleDetails\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InsufficientPayment(address,uint256,uint256)\":[{\"params\":{\"actual\":\"Actual amount of tokens.\",\"currency\":\"Currency address. address(0) indicates ETH.\",\"expected\":\"Expected amount of tokens.\"}}],\"InsufficientSupply(uint256,uint256,uint256)\":[{\"params\":{\"amount\":\"Amount to mint.\",\"currentSupply\":\"Current supply.\",\"maxSupply\":\"Maximum supply.\"}}]},\"kind\":\"dev\",\"methods\":{\"mint(address,uint256,address,uint256,bytes32[])\":{\"details\":\"An empty proof is supplied when no proof is required.\",\"params\":{\"amount\":\"Amount of tokens to mint.\",\"maxTotal\":\"Maximum amount of payment tokens.\",\"paymentToken\":\"ERC20 token address to accept payment in. address(0) indicates ETH.\",\"proof\":\"Merkle proof for allowlist minting.\",\"to\":\"Address to mint tokens to.\"}},\"saleDetails()\":{\"returns\":{\"_0\":\"Sale details.\"}},\"setSaleDetails(uint256,uint256,address,uint64,uint64,bytes32)\":{\"params\":{\"cost\":\"The amount of payment tokens to accept for each token minted.\",\"endTime\":\"The end time of the sale. Tokens cannot be minted after this time.\",\"merkleRoot\":\"The merkle root for allowlist minting.\",\"paymentToken\":\"The ERC20 token address to accept payment in. address(0) indicates ETH.\",\"startTime\":\"The start time of the sale. Tokens cannot be minted before this time.\",\"supplyCap\":\"The maximum number of tokens that can be minted. 0 indicates unlimited supply.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"InsufficientPayment(address,uint256,uint256)\":[{\"notice\":\"Insufficient tokens for payment.\"}],\"InsufficientSupply(uint256,uint256,uint256)\":[{\"notice\":\"Insufficient supply.\"}],\"InvalidInitialization()\":[{\"notice\":\"Contract already initialized.\"}],\"InvalidSaleDetails()\":[{\"notice\":\"Sale details supplied are invalid.\"}],\"SaleInactive()\":[{\"notice\":\"Sale is not active.\"}]},\"kind\":\"user\",\"methods\":{\"mint(address,uint256,address,uint256,bytes32[])\":{\"notice\":\"Mint tokens.Sale must be active for all tokens.\"},\"saleDetails()\":{\"notice\":\"Get sale details.\"},\"setSaleDetails(uint256,uint256,address,uint64,uint64,bytes32)\":{\"notice\":\"Set the sale details.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokens/ERC721/utility/sale/IERC721Sale.sol\":\"IERC721Sale\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":0xsequence/=lib/0xsequence/\",\":@0xsequence/contracts-library/=src/\",\":@0xsequence/erc-1155/=lib/0xsequence/erc-1155/src/\",\":@0xsequence/erc20-meta-token/=lib/0xsequence/erc20-meta-token/src/\",\":@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin/\",\":chiru-labs/=lib/chiru-labs/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":erc721a-upgradeable/=lib/chiru-labs/erc721a-upgradeable/\",\":erc721a/=lib/chiru-labs/erc721a/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"src/tokens/ERC721/utility/sale/IERC721Sale.sol\":{\"content\":\"// SPDX-License-Identifier: Apache-2.0\\npragma solidity ^0.8.19;\\n\\ninterface IERC721SaleFunctions {\\n\\n struct SaleDetails {\\n uint256 supplyCap; // 0 supply cap indicates unlimited supply\\n uint256 cost;\\n address paymentToken; // ERC20 token address for payment. address(0) indicated payment in ETH.\\n uint64 startTime;\\n uint64 endTime; // 0 end time indicates sale inactive\\n bytes32 merkleRoot; // Root of allowed addresses\\n }\\n\\n /**\\n * Mint tokens.\\n * @param to Address to mint tokens to.\\n * @param amount Amount of tokens to mint.\\n * @param paymentToken ERC20 token address to accept payment in. address(0) indicates ETH.\\n * @param maxTotal Maximum amount of payment tokens.\\n * @param proof Merkle proof for allowlist minting.\\n * @notice Sale must be active for all tokens.\\n * @dev An empty proof is supplied when no proof is required.\\n */\\n function mint(\\n address to,\\n uint256 amount,\\n address paymentToken,\\n uint256 maxTotal,\\n bytes32[] memory proof\\n ) external payable;\\n\\n /**\\n * Set the sale details.\\n * @param supplyCap The maximum number of tokens that can be minted. 0 indicates unlimited supply.\\n * @param cost The amount of payment tokens to accept for each token minted.\\n * @param paymentToken The ERC20 token address to accept payment in. address(0) indicates ETH.\\n * @param startTime The start time of the sale. Tokens cannot be minted before this time.\\n * @param endTime The end time of the sale. Tokens cannot be minted after this time.\\n * @param merkleRoot The merkle root for allowlist minting.\\n */\\n function setSaleDetails(\\n uint256 supplyCap,\\n uint256 cost,\\n address paymentToken,\\n uint64 startTime,\\n uint64 endTime,\\n bytes32 merkleRoot\\n ) external;\\n\\n /**\\n * Get sale details.\\n * @return Sale details.\\n */\\n function saleDetails() external view returns (SaleDetails memory);\\n\\n}\\n\\ninterface IERC721SaleSignals {\\n\\n event SaleDetailsUpdated(\\n uint256 supplyCap, uint256 cost, address paymentToken, uint64 startTime, uint64 endTime, bytes32 merkleRoot\\n );\\n event ItemsMinted(address to, uint256 amount);\\n\\n /**\\n * Contract already initialized.\\n */\\n error InvalidInitialization();\\n\\n /**\\n * Sale details supplied are invalid.\\n */\\n error InvalidSaleDetails();\\n\\n /**\\n * Sale is not active.\\n */\\n error SaleInactive();\\n\\n /**\\n * Insufficient supply.\\n * @param currentSupply Current supply.\\n * @param amount Amount to mint.\\n * @param maxSupply Maximum supply.\\n */\\n error InsufficientSupply(uint256 currentSupply, uint256 amount, uint256 maxSupply);\\n\\n /**\\n * Insufficient tokens for payment.\\n * @param currency Currency address. address(0) indicates ETH.\\n * @param expected Expected amount of tokens.\\n * @param actual Actual amount of tokens.\\n */\\n error InsufficientPayment(address currency, uint256 expected, uint256 actual);\\n\\n}\\n\\ninterface IERC721Sale is IERC721SaleFunctions, IERC721SaleSignals { }\\n\",\"keccak256\":\"0xd7401d1a2471f1f6c77ed1092cd16461cbc0c5d8997e424ad80867bb2567f7ff\",\"license\":\"Apache-2.0\"}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.19+commit.7dd6d404" @@ -289,6 +308,25 @@ "type": "error", "name": "SaleInactive" }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "ItemsMinted", + "anonymous": false + }, { "inputs": [ { @@ -519,6 +557,7 @@ "runs": 20000 }, "metadata": { + "useLiteralContent": true, "bytecodeHash": "ipfs" }, "compilationTarget": { @@ -530,15 +569,13 @@ }, "sources": { "src/tokens/ERC721/utility/sale/IERC721Sale.sol": { - "keccak256": "0xc7c8a2cb09eedaf23b299723bd5725fcda87a9c889048d861bcb9af8852d6344", - "urls": [ - "bzz-raw://492708684638e73e3f80fb82f754214cc39d0aa53749b847ac094d156dd769fa", - "dweb:/ipfs/QmSm6bofZvZE15b1Xt82kLWN4FwyEAuNcWEmocygtJxAja" - ], + "keccak256": "0xd7401d1a2471f1f6c77ed1092cd16461cbc0c5d8997e424ad80867bb2567f7ff", + "urls": [], + "content": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.19;\n\ninterface IERC721SaleFunctions {\n\n struct SaleDetails {\n uint256 supplyCap; // 0 supply cap indicates unlimited supply\n uint256 cost;\n address paymentToken; // ERC20 token address for payment. address(0) indicated payment in ETH.\n uint64 startTime;\n uint64 endTime; // 0 end time indicates sale inactive\n bytes32 merkleRoot; // Root of allowed addresses\n }\n\n /**\n * Mint tokens.\n * @param to Address to mint tokens to.\n * @param amount Amount of tokens to mint.\n * @param paymentToken ERC20 token address to accept payment in. address(0) indicates ETH.\n * @param maxTotal Maximum amount of payment tokens.\n * @param proof Merkle proof for allowlist minting.\n * @notice Sale must be active for all tokens.\n * @dev An empty proof is supplied when no proof is required.\n */\n function mint(\n address to,\n uint256 amount,\n address paymentToken,\n uint256 maxTotal,\n bytes32[] memory proof\n ) external payable;\n\n /**\n * Set the sale details.\n * @param supplyCap The maximum number of tokens that can be minted. 0 indicates unlimited supply.\n * @param cost The amount of payment tokens to accept for each token minted.\n * @param paymentToken The ERC20 token address to accept payment in. address(0) indicates ETH.\n * @param startTime The start time of the sale. Tokens cannot be minted before this time.\n * @param endTime The end time of the sale. Tokens cannot be minted after this time.\n * @param merkleRoot The merkle root for allowlist minting.\n */\n function setSaleDetails(\n uint256 supplyCap,\n uint256 cost,\n address paymentToken,\n uint64 startTime,\n uint64 endTime,\n bytes32 merkleRoot\n ) external;\n\n /**\n * Get sale details.\n * @return Sale details.\n */\n function saleDetails() external view returns (SaleDetails memory);\n\n}\n\ninterface IERC721SaleSignals {\n\n event SaleDetailsUpdated(\n uint256 supplyCap, uint256 cost, address paymentToken, uint64 startTime, uint64 endTime, bytes32 merkleRoot\n );\n event ItemsMinted(address to, uint256 amount);\n\n /**\n * Contract already initialized.\n */\n error InvalidInitialization();\n\n /**\n * Sale details supplied are invalid.\n */\n error InvalidSaleDetails();\n\n /**\n * Sale is not active.\n */\n error SaleInactive();\n\n /**\n * Insufficient supply.\n * @param currentSupply Current supply.\n * @param amount Amount to mint.\n * @param maxSupply Maximum supply.\n */\n error InsufficientSupply(uint256 currentSupply, uint256 amount, uint256 maxSupply);\n\n /**\n * Insufficient tokens for payment.\n * @param currency Currency address. address(0) indicates ETH.\n * @param expected Expected amount of tokens.\n * @param actual Actual amount of tokens.\n */\n error InsufficientPayment(address currency, uint256 expected, uint256 actual);\n\n}\n\ninterface IERC721Sale is IERC721SaleFunctions, IERC721SaleSignals { }\n", "license": "Apache-2.0" } }, "version": 1 }, - "id": 50 + "id": 142 } diff --git a/contracts/gen/seq_sale/erc1155/sale_erc1155.gen.go b/contracts/gen/seq_sale/erc1155/sale_erc1155.gen.go index ee2bba2c..e6aff0c8 100644 --- a/contracts/gen/seq_sale/erc1155/sale_erc1155.gen.go +++ b/contracts/gen/seq_sale/erc1155/sale_erc1155.gen.go @@ -40,7 +40,7 @@ type IERC1155SaleFunctionsSaleDetails struct { // SaleMetaData contains all meta data concerning the Sale contract. var SaleMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"globalSaleDetails\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIERC1155SaleFunctions.SaleDetails\",\"components\":[{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenIds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"amounts\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxTotal\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"proof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"paymentToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tokenSaleDetails\",\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIERC1155SaleFunctions.SaleDetails\",\"components\":[{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"GlobalSaleDetailsUpdated\",\"inputs\":[{\"name\":\"cost\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokenSaleDetailsUpdated\",\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"cost\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"GlobalSaleInactive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientPayment\",\"inputs\":[{\"name\":\"currency\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expected\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"actual\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InsufficientSupply\",\"inputs\":[{\"name\":\"currentSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requestedAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSaleDetails\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTokenIds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaleInactive\",\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]", + ABI: "[{\"type\":\"function\",\"name\":\"globalSaleDetails\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIERC1155SaleFunctions.SaleDetails\",\"components\":[{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"tokenIds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"amounts\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxTotal\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"proof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"paymentToken\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tokenSaleDetails\",\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIERC1155SaleFunctions.SaleDetails\",\"components\":[{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"tokenSaleDetailsBatch\",\"inputs\":[{\"name\":\"tokenIds\",\"type\":\"uint256[]\",\"internalType\":\"uint256[]\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIERC1155SaleFunctions.SaleDetails[]\",\"components\":[{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"GlobalSaleDetailsUpdated\",\"inputs\":[{\"name\":\"cost\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ItemsMinted\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"tokenIds\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"},{\"name\":\"amounts\",\"type\":\"uint256[]\",\"indexed\":false,\"internalType\":\"uint256[]\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"TokenSaleDetailsUpdated\",\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"cost\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"supplyCap\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"GlobalSaleInactive\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientPayment\",\"inputs\":[{\"name\":\"currency\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expected\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"actual\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InsufficientSupply\",\"inputs\":[{\"name\":\"currentSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requestedAmount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSaleDetails\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidTokenIds\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaleInactive\",\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]", } // SaleABI is the input ABI used to generate the binding from. @@ -282,6 +282,37 @@ func (_Sale *SaleCallerSession) TokenSaleDetails(tokenId *big.Int) (IERC1155Sale return _Sale.Contract.TokenSaleDetails(&_Sale.CallOpts, tokenId) } +// TokenSaleDetailsBatch is a free data retrieval call binding the contract method 0xff81434e. +// +// Solidity: function tokenSaleDetailsBatch(uint256[] tokenIds) view returns((uint256,uint256,uint64,uint64,bytes32)[]) +func (_Sale *SaleCaller) TokenSaleDetailsBatch(opts *bind.CallOpts, tokenIds []*big.Int) ([]IERC1155SaleFunctionsSaleDetails, error) { + var out []interface{} + err := _Sale.contract.Call(opts, &out, "tokenSaleDetailsBatch", tokenIds) + + if err != nil { + return *new([]IERC1155SaleFunctionsSaleDetails), err + } + + out0 := *abi.ConvertType(out[0], new([]IERC1155SaleFunctionsSaleDetails)).(*[]IERC1155SaleFunctionsSaleDetails) + + return out0, err + +} + +// TokenSaleDetailsBatch is a free data retrieval call binding the contract method 0xff81434e. +// +// Solidity: function tokenSaleDetailsBatch(uint256[] tokenIds) view returns((uint256,uint256,uint64,uint64,bytes32)[]) +func (_Sale *SaleSession) TokenSaleDetailsBatch(tokenIds []*big.Int) ([]IERC1155SaleFunctionsSaleDetails, error) { + return _Sale.Contract.TokenSaleDetailsBatch(&_Sale.CallOpts, tokenIds) +} + +// TokenSaleDetailsBatch is a free data retrieval call binding the contract method 0xff81434e. +// +// Solidity: function tokenSaleDetailsBatch(uint256[] tokenIds) view returns((uint256,uint256,uint64,uint64,bytes32)[]) +func (_Sale *SaleCallerSession) TokenSaleDetailsBatch(tokenIds []*big.Int) ([]IERC1155SaleFunctionsSaleDetails, error) { + return _Sale.Contract.TokenSaleDetailsBatch(&_Sale.CallOpts, tokenIds) +} + // Mint is a paid mutator transaction binding the contract method 0x60e606f6. // // Solidity: function mint(address to, uint256[] tokenIds, uint256[] amounts, bytes data, address paymentToken, uint256 maxTotal, bytes32[] proof) payable returns() @@ -441,6 +472,142 @@ func (_Sale *SaleFilterer) ParseGlobalSaleDetailsUpdated(log types.Log) (*SaleGl return event, nil } +// SaleItemsMintedIterator is returned from FilterItemsMinted and is used to iterate over the raw logs and unpacked data for ItemsMinted events raised by the Sale contract. +type SaleItemsMintedIterator struct { + Event *SaleItemsMinted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SaleItemsMintedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SaleItemsMinted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SaleItemsMinted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SaleItemsMintedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SaleItemsMintedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SaleItemsMinted represents a ItemsMinted event raised by the Sale contract. +type SaleItemsMinted struct { + To common.Address + TokenIds []*big.Int + Amounts []*big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterItemsMinted is a free log retrieval operation binding the contract event 0x23519238b590c499a2abcf44a33b5f431ac6ca51c22fad26bc2c3d08b97eaa21. +// +// Solidity: event ItemsMinted(address to, uint256[] tokenIds, uint256[] amounts) +func (_Sale *SaleFilterer) FilterItemsMinted(opts *bind.FilterOpts) (*SaleItemsMintedIterator, error) { + + logs, sub, err := _Sale.contract.FilterLogs(opts, "ItemsMinted") + if err != nil { + return nil, err + } + return &SaleItemsMintedIterator{contract: _Sale.contract, event: "ItemsMinted", logs: logs, sub: sub}, nil +} + +// WatchItemsMinted is a free log subscription operation binding the contract event 0x23519238b590c499a2abcf44a33b5f431ac6ca51c22fad26bc2c3d08b97eaa21. +// +// Solidity: event ItemsMinted(address to, uint256[] tokenIds, uint256[] amounts) +func (_Sale *SaleFilterer) WatchItemsMinted(opts *bind.WatchOpts, sink chan<- *SaleItemsMinted) (event.Subscription, error) { + + logs, sub, err := _Sale.contract.WatchLogs(opts, "ItemsMinted") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SaleItemsMinted) + if err := _Sale.contract.UnpackLog(event, "ItemsMinted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseItemsMinted is a log parse operation binding the contract event 0x23519238b590c499a2abcf44a33b5f431ac6ca51c22fad26bc2c3d08b97eaa21. +// +// Solidity: event ItemsMinted(address to, uint256[] tokenIds, uint256[] amounts) +func (_Sale *SaleFilterer) ParseItemsMinted(log types.Log) (*SaleItemsMinted, error) { + event := new(SaleItemsMinted) + if err := _Sale.contract.UnpackLog(event, "ItemsMinted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + // SaleTokenSaleDetailsUpdatedIterator is returned from FilterTokenSaleDetailsUpdated and is used to iterate over the raw logs and unpacked data for TokenSaleDetailsUpdated events raised by the Sale contract. type SaleTokenSaleDetailsUpdatedIterator struct { Event *SaleTokenSaleDetailsUpdated // Event containing the contract specifics and raw log diff --git a/contracts/gen/seq_sale/erc721/sale_erc721.gen.go b/contracts/gen/seq_sale/erc721/sale_erc721.gen.go index c9364cb7..29769a3d 100644 --- a/contracts/gen/seq_sale/erc721/sale_erc721.gen.go +++ b/contracts/gen/seq_sale/erc721/sale_erc721.gen.go @@ -41,7 +41,7 @@ type IERC721SaleFunctionsSaleDetails struct { // SaleMetaData contains all meta data concerning the Sale contract. var SaleMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxTotal\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"proof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"saleDetails\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIERC721SaleFunctions.SaleDetails\",\"components\":[{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setSaleDetails\",\"inputs\":[{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"SaleDetailsUpdated\",\"inputs\":[{\"name\":\"supplyCap\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"cost\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InsufficientPayment\",\"inputs\":[{\"name\":\"currency\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expected\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"actual\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InsufficientSupply\",\"inputs\":[{\"name\":\"currentSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSaleDetails\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaleInactive\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"maxTotal\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"proof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"saleDetails\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIERC721SaleFunctions.SaleDetails\",\"components\":[{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setSaleDetails\",\"inputs\":[{\"name\":\"supplyCap\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"cost\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ItemsMinted\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"SaleDetailsUpdated\",\"inputs\":[{\"name\":\"supplyCap\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"cost\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"startTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"endTime\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"merkleRoot\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"InsufficientPayment\",\"inputs\":[{\"name\":\"currency\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"expected\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"actual\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InsufficientSupply\",\"inputs\":[{\"name\":\"currentSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidInitialization\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidSaleDetails\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"SaleInactive\",\"inputs\":[]}]", } // SaleABI is the input ABI used to generate the binding from. @@ -263,6 +263,141 @@ func (_Sale *SaleTransactorSession) SetSaleDetails(supplyCap *big.Int, cost *big return _Sale.Contract.SetSaleDetails(&_Sale.TransactOpts, supplyCap, cost, paymentToken, startTime, endTime, merkleRoot) } +// SaleItemsMintedIterator is returned from FilterItemsMinted and is used to iterate over the raw logs and unpacked data for ItemsMinted events raised by the Sale contract. +type SaleItemsMintedIterator struct { + Event *SaleItemsMinted // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SaleItemsMintedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SaleItemsMinted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SaleItemsMinted) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SaleItemsMintedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SaleItemsMintedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SaleItemsMinted represents a ItemsMinted event raised by the Sale contract. +type SaleItemsMinted struct { + To common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterItemsMinted is a free log retrieval operation binding the contract event 0xf32d98590495ee51bacb93809409a188e7ab8268b70b4c969d9da3a883c539f7. +// +// Solidity: event ItemsMinted(address to, uint256 amount) +func (_Sale *SaleFilterer) FilterItemsMinted(opts *bind.FilterOpts) (*SaleItemsMintedIterator, error) { + + logs, sub, err := _Sale.contract.FilterLogs(opts, "ItemsMinted") + if err != nil { + return nil, err + } + return &SaleItemsMintedIterator{contract: _Sale.contract, event: "ItemsMinted", logs: logs, sub: sub}, nil +} + +// WatchItemsMinted is a free log subscription operation binding the contract event 0xf32d98590495ee51bacb93809409a188e7ab8268b70b4c969d9da3a883c539f7. +// +// Solidity: event ItemsMinted(address to, uint256 amount) +func (_Sale *SaleFilterer) WatchItemsMinted(opts *bind.WatchOpts, sink chan<- *SaleItemsMinted) (event.Subscription, error) { + + logs, sub, err := _Sale.contract.WatchLogs(opts, "ItemsMinted") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SaleItemsMinted) + if err := _Sale.contract.UnpackLog(event, "ItemsMinted", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseItemsMinted is a log parse operation binding the contract event 0xf32d98590495ee51bacb93809409a188e7ab8268b70b4c969d9da3a883c539f7. +// +// Solidity: event ItemsMinted(address to, uint256 amount) +func (_Sale *SaleFilterer) ParseItemsMinted(log types.Log) (*SaleItemsMinted, error) { + event := new(SaleItemsMinted) + if err := _Sale.contract.UnpackLog(event, "ItemsMinted", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + // SaleSaleDetailsUpdatedIterator is returned from FilterSaleDetailsUpdated and is used to iterate over the raw logs and unpacked data for SaleDetailsUpdated events raised by the Sale contract. type SaleSaleDetailsUpdatedIterator struct { Event *SaleSaleDetailsUpdated // Event containing the contract specifics and raw log diff --git a/go.work.sum b/go.work.sum index b3951cfb..e9e16983 100644 --- a/go.work.sum +++ b/go.work.sum @@ -308,10 +308,12 @@ github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cA github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -545,6 +547,7 @@ golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= +golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=