refcell / seals

Sealed Auctions with Commitment Schemes.

Repository from Github https://github.comrefcell/sealsRepository from Github https://github.comrefcell/seals

seals • tests lints GitHub GitHub package.json version

Sealed Commitment Auctions with Overcollateralized Bid Bands.

        .---.
       /o   o\
    __(=  "  =)__
     //\'-=-'/\\
        )   (_
       /      `"=-._
      /       \     ``"=.
     /  /   \  \         `=..--.
 ___/  /     \  \___      _,  , `\
`-----' `""""`'-----``"""`  \  \_/
                             `-`

Overview

Seals is a highly modular, unconventially named Protocol to run Sealed Auctions using Commitment Schemes.

Each Sealed Commitment Auction is created using wighawag and ZeframLou's Clones With Immutable Args factory pattern.

The factory contract is called Floe - a floating sheet of ice where Seals are spawned,

Floe deploys three contracts per auction:

  1. Bloc - The Sealed Auction Manager Contract.
  2. Nibs - The Project Shares issued once the reveal session ends.
  3. Coffer - A Lockbox Contract that stores auction collaterals.

Architecture

TODO

Blueprint

lib
├─ ds-test — https://github.com/dapphub/ds-test
├─ forge-std — https://github.com/brockelmore/forge-std
├─ solmate — https://github.com/Rari-Capital/solmate
├─ clones-with-immutable-args — https://github.com/wighawag/clones-with-immutable-args
src
├─ tests
│  └─ Seal.t — "Seal Tests"
└─ Seal"The Seal Coordination Contract"

Glossary

We use Primitive and Maker's approach of Unconvential Naming inspired by The Dangers of Surprising Code h/t Alex Mistrusting Variable Names.

`

Development

seals is built with Foundry but remains backwards compatible with DappTools.

Set up your environment by following the instructions outlined in abigger87/foundry-starter.

# Setup
make setup
# Build #
make build
# Testing #
make test

Configure Foundry

Using foundry.toml, Foundry is easily configurable.

Install Seals as a Dependency

To install with DappTools, run:

dapp install abigger87/seals

To install with Foundry, run:

forge install abigger87/seals

To install with Hardhat, run:

npm i -D seals

License

AGPL-3.0-only

Acknowledgements

Disclaimer

These smart contracts are being provided as is. No guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the user interface or the smart contracts. They have not been audited and as such there can be no assurance they will work as intended, and users may experience delays, failures, errors, omissions, loss of transmitted information or loss of funds. The creators are not liable for any of the foregoing. Users should proceed with caution and use at their own risk.

About

Sealed Auctions with Commitment Schemes.

License:GNU Affero General Public License v3.0


Languages

Language:Solidity 95.4%Language:Makefile 3.5%Language:Shell 1.1%