Skip to content

danfinlay/foundry-matt

Repository files navigation

MATT Auction

This is a Foundry implementation of a MATT Auction, designed to maximize revenue from auctioning a set of NFTs, while guaranteeing no bidder pays more than any other.

This implementation is extremely simple because it foregoes any bid struct, instead using an ERC-20 allowance as the bid.

So to use properly, the issuer would define the currency they're accepting, and would need to track allowances of that token to their contract for the lifetime of the auction.

To close the auction: The owner calls the bid function with the final price, and an array of winners who bid (granted allowances) equal to or higher than that price.

Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.

Foundry consists of:

  • Forge: Ethereum testing framework (like Truffle, Hardhat and DappTools).
  • Cast: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
  • Anvil: Local Ethereum node, akin to Ganache, Hardhat Network.
  • Chisel: Fast, utilitarian, and verbose solidity REPL.

Documentation

https://book.getfoundry.sh/

Usage

Build

$ forge build

Test

$ forge test

Format

$ forge fmt

Gas Snapshots

$ forge snapshot

Anvil

$ anvil

Deploy

$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>

Cast

$ cast <subcommand>

Help

$ forge --help
$ anvil --help
$ cast --help

Releases

No releases published

Packages

No packages published