- Support for private auctions. Bidders of a private auction must obtain an authorization from a central service.
- Distribute the shares of joint accounts directly in USDC.
- Make SimpleAuction, SimpleExchange, and FiatGateway work with ERC20 directly.
- Remove the function FiatGateway.buyCereFromUsd.
- Fix a bug of incorrect royalty collection in auctions.
- Fix a vulnerability that may allow a buyer to disrupt an auction.
- Additional public function transferFrom has been implemented in Freeport contract to support the above fixes.
Make Freeport, FiatGateway, SimpleAuction, and NFTAttachment upgradeable.
NFT Attachments now support variable-sized attachment data, and separate events for minter, owner, and anonymous senders. This is included in the deployment 2021-12-31 below.
Use an ERC20 adapter instead of a Polygon bridge adapter. Commit caefd460 deployed.
Contracts: Freeport and Fiat Gateway and Simple Auction and NFT Attachment and Forwarder and Bypass Forwarder and USDC ERC20.
Accounts: Fiat-to-NFT Service ( see prod_setup). No Meta-tx Relayer Account yet. Admin.
Contracts: Freeport and Fiat Gateway and Simple Auction and NFT Attachment and Forwarder and Bypass Forwarder and TestERC20.
Accounts: Fiat-to-NFT Service ( see stage_setup). No Meta-tx Relayer Account yet. Admin.
Contracts: Freeport and Fiat Gateway and Simple Auction and NFT Attachment and Forwarder and Bypass Forwarder and TestERC20.
Accounts: Fiat-to-NFT Service ( see dev_setup). No Meta-tx Relayer Account yet. Admin.
- Attach arbitrary objects to NFTs.
NFTAttachment commit 89696561 deployed for Freeport version 2021-09-13 and 2021-11-03 below.
- Add the getter for bids (sellerNftBids).
- Prevent potential reentrancy bug.
SimpleAuction commit a74e4db0 deployed for Freeport version 2021-09-13 and 2021-11-03 below.
- Auction sales now capture royalties, if any.
Commit 6df6c349 deployed on Polygon Mumbai.
Contracts Freeport and Fiat Gateway and Simple Auction and NFT Attachment.
Fiat-to-NFT Service Account ( see dev_setup). Admin Account (Aurel).
Exchange rate of 0.1 CERE_stage for $0.01.
- A contract that holds auctions and make transfers in the main Freeport contract.
- An external function
captureFee
on the Freeport contract that can be used by authorized contracts (i.e., the auction contract). - Note: The call to
captureFee
is disabled in this deployment in order to work with the previous versions of Freeport. After deployment of the Freeport of this commit, this call can be reenabled (seeTODO in SimpleAuction.sol
).
Commit 032fbc7d deployed in dev and staging, see the links to "Simple Auction" in the sections below.
- Reduce permissions in migrate and dev_setup scripts.
Commit 7eb3e339 deployed on Polygon Mumbai.
Contracts Freeport and Fiat Gateway and Simple Auction and NFT Attachment.
Fiat-to-NFT Service Account ( see stage_setup).
Admin Account (Aurel).
Exchange rate of 0.1 CERE_stage for $0.01.
- Add event SetExchangeRate and function getExchangeRate.
Commit 07c8ad0f on Polygon Mumbai: Freeport and Fiat Gateway and Simple Auction.
- Validate that enough CERE were bought. See FiatGateway.
- Add getOffer function to get the NFT price. See Freeport.
Commit e8d42c55 on Polygon Mumbai: Freeport and Fiat Gateway
- Add a contract to handle fiat payments and buy CERE and NFTs. See FiatGateway.
Commit be6ed7dc on Polygon Mumbai: Freeport and Fiat Gateway
- Add a basic NFT sale functionality with
make / take
functions. This captures variable royalties based on the NFT price. See SimpleExchange.
Commit e1852250 on Polygon Mumbai: 0x656E87eC4607E81896C41de2135db72ee8abce13
-
Add access control mechanism to support other features in a flexible way.
-
Introduce a meta-transactions forwarder contract and deployment. See MinimalForwarder and the deploy script.
-
Support meta-transactions using the standard ERC2771. See the role
META_TX_FORWARDER
in MetaTxContext -
Add a mechanism to bypass royalties. There can be a meta-transaction forwarder whose transactions are not subject to royalties. See the role
BYPASS_SENDER
in TransferFees, used for BypassForwarder. -
Support marketplaces in a generic way. The smart contracts from marketplaces can be connected by giving them permissions to make transfers. See the role
TRANSFER_OPERATOR
inTransferOperator.sol
- Add support for
Polygon Bridge
with the
deposit
andwithdraw
functions. - Make the contract verifiable on Polyscan (solidity version, dependencies, flattening).
Commit 309ba894 on Polygon Mumbai: 0x09cA13A8dA7A049696dEc9df57f8948ed6702a71
This contract is bridged to a test ERC20 on Ethereum Goerli: 0x35C33219cFC617BA362860e28E7cf25085cA1355 . Try it with Polygon UI.
- ERC1155 and mint function
- Royalties configurable per NFT
- Royalties capture in transfers
- Joint Accounts
Commit 021f0116 on Polygon Mumbai 0x509Dfd7c670AC89246723EFe0f80f433BfbB6E5c