Nouns Daoについて学ぶ

Nouns Daoの概要

NFTを一日一回ミントし、オークションにかける
⇨ミントはブロック生成時のハッシュ値を利用してランダムに生成されている
 完全ランダムというわけではなく、数通りある5つ(2022/7/17現在)のパーツを組み合わせてNFTが作成される。

2×30×137×234×21=約4000万通り

一日一回+開発者の報酬(生成数が10の倍数のNFT)で年400ほど生成されるので、 現状ミント上限によってNFTの価値が上下することはなさそう。

スマートコントラクトによって、ミントの生成から送受金がコントロールされているため、第三者が介入しておらず、無駄な手数料が発生しない。

オークションの収益はTreasury(=宝庫的な?)用のaddressに送金される

Treasuryの使い道は投票によって決まる。生成されたNFTひとつにつき1票の権限があり、 下記のように賛否をとって決めている。

Internal Txnsタブを見ると、一日置きにNouns DAO: Nouns Auction House Proxy⇨Nouns DAO: Treasuryに送金されてる。 Nouns DAO: Nouns Auction House ProxyはTreasuryにアクセスする際の中継の役割をしている。 Treasuryから送金されてるやつは、多分提案された案が実行されていて送金されている?

一番上のtransactionを見てみる。

Transaction Actionはエンドユーザーに関連するものだけ抜粋したもの。このtransactionがなんなのかをなんとなく理解するのが目的。 Nounsのトランザクションは、一個前のNFTが生成され、proxy経由で購入者に送られるところから、最新のNFTが生成されるところ までを一連のコントラクトにしているっぽい。
Fromとtoのアドレスは、オークションでのトランザクションだと全部同じなので、コントラクト作成用アドレス?かも。 コントラクトを実行するためには、多分だが、2点間は確定で必要なはずだから。 そのコントラクト上で、ethを送信したら絶対に自動的にNFTが送られるということをしている(まさにスマートコントラクト)。
~~ ただ、購入者からethの送金がされるのだけは、proxyのログからは確認できなかった。。 ~~
Nouns DAO: Nouns Auction House(Proxy) を呼び出す際に、入札者から入金されてる(以下)。

*補足
Transactions:トランザクション(取引の内容)のログを確認できる。ソースに書かれたものを自動的に再現して、取引を行う。        Fromは送信元
       Toは送信先

Internal Txns:トランザクション内で送受金された場合のログ的な?

Nouns Protocolについて

Auction lifecicle

無印□が生成されるトランザクションをさしているっぽい。。違うかも。。
簡単な流れ
Auctionスタート

以下繰り返す 入札者がオークションの入札額を払う(createBid(nounId))⇨一個前の入札者に、入札された額を自動的に返却する。

入札者決定、NFT送信、新しいNFTをミント、新しいオークションを設定

Settlement
オークション決済時と作成時、NounsAuctionHouseコントラクトの以下メソッドが呼ばれる。

function settleCurrentAndCreateNewAuction() external override nonReentrant whenNotPaused {
    _settleAuction(); //オークションの終了条件を満たせば、NFTを対象者に送信する。対象者いなければburnされる。
    _createAuction();
}

Creating a new auction 上のsettlementと同じトランザクションで新しいオークションが作られる。