operator-filter-registry - このリポジトリには、スマートコントラクトやクリエイター料金を尊重しないマーケットプレイスのデリゲートなど、ユーザーに代わってトークンを転送できるオペレーターをトークンコントラクトが管理するのに役立つ多くのツールが含まれています。

(NULL)

Created at: 2022-11-04 11:40:59
Language: Solidity
License: MIT

オペレーター フィルター レジストリ

このリポジトリには、スマートコントラクトやクリエイター料金を尊重しないマーケットプレイスのデリゲートなど、ユーザーに代わってトークンを転送できるオペレーターをトークンコントラクトが管理するのに役立つ多くのツールが含まれています。

これは絶対確実なアプローチではありませんが、クリエイター料金のバイパスの流動性が低くなり、大規模に簡単になります。

仕組み

トークンスマートコントラクトは、自分自身を登録することができます(または彼らの「所有者」によって登録される)。トークンコントラクトまたはその「所有者」は、ユーザーに代わってトークンを転送することを許可すべきではないオペレーター(特定のアカウントアドレス)とcodehash(同じコードでデプロイされたスマートコントラクト)のリストをキュレートすることができます。

OperatorFilterRegistry

クリエイター手数料の執行

OpenSeaは、クリエイター料金を尊重しないことが知られているオペレーターからの転送をフィルタリングするために最善の努力をするスマートコントラクトのクリエイター料金を強制します。

このリポジトリは、OpenSeaのフィルタリングされたオペレーターのリストを自動的にサブスクライブするなど、レジストリと自動的にインターフェースするスマートコントラクトを提供することにより、そのプロセスを容易にします。

演算子をフィルタリングする場合、このレジストリの使用は必須ではなく、トークンコントラクトがこのレジストリ内のOpenSeaのリストを「サブスクライブ」する必要もありません。サブスクリプションはいつでも変更または削除できます。フィルタリングされた演算子とコードハッシュも同様に、いつでも追加または削除できます。

契約所有者は、このレジストリの外部に独自のフィルター処理を実装することも、このレジストリを使用してフィルター処理されたオペレーターの独自のリストをキュレートすることもできます。ただし、デフォルトのサブスクリプションでフィルタリングされる特定の契約があり、OpenSeaでのクリエイター料金の適用の対象となるにはフィルタリングする必要があります。

フィルタリングされたアドレス

このリストのエントリは、次の条件に従って追加されます。

  • 契約とのインターフェースに最も一般的に使用されるアプリケーションが、同じアイテムの同様の取引でクリエイター料金の支払いが必要になる場合に、買い手と売り手がクリエイター料金をバイパスできるようにする場合 OpenSea.io
  • 契約がオンチェーンのクリエイター料金執行措置の回避を促進している場合。たとえば、契約ではラッパー連絡先を使用して料金の適用をバイパスします。
名前 住所 ネットワーク
Blur.io 実行デリゲート 0x00000000000111AbE46ff893f3B2fdF1F759a8A8 イーサリアムメインネット
ルックスレアトランスファーマネージャーERC721 0xf42aa99F011A1fA7CDA90E5E98b277E306BcA83e イーサリアムメインネット
ルックスレアトランスファーマネージャーERC1155 0xFED24eC7E22f573c2e08AEF55aA6797Ca2b3A051 イーサリアムメインネット
X2Y2 ERC721デリゲート 0xf849de01b080adc3a814fabe1e2087475cf2e354 イーサリアムメインネット
X2Y2 ERC1155デリゲート 0x024ac22acdb367a3ae52a3d94ac6649fdc1f0779 イーサリアムメインネット
SudoSwap LSSVMPairRouter 0x2b2e8cda09bba9660dca5cb6233787738ad68329 イーサリアムメインネット

展開

ネットワーク オペレーターフィルターレジストリ OpenSeaキュレーションサブスクリプションアドレス
イーサリアム

0x000000000000AAeB6D7670E522A718067333cd4E

0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6

ゴエルリ

使い

フィルター処理された演算子の一覧を管理し、それらからの転送を制限するトークン コントラクトは、OperatorFilterer コントラクトとDefaultOperatorFiltererコントラクトを使用してレジストリと簡単に統合できます。これらのコントラクトは、フィルター処理された演算子からの転送を制限するためにトークンの転送メソッドで使用できる修飾子 () を提供します。

isAllowedOperator

を継承する基本的な実装については、ExampleERC721コントラクトを参照してください。

DefaultOperatorFilterer

スマートコントラクト

OperatorFilterRegistry

OperatorFilterRegistry
スマートコントラクトまたはそのEIP-173所有者がアドレスとコードハッシュのリストを登録して、いつ拒否するかが呼び出されます。
isOperatorBlocked

また、コントラクトがオペレーターのフィルター処理を別のコントラクトに委任できる "サブスクリプション" もサポートしています。これは、ユーザーがオペレーターのフィルター処理を信頼できるサード パーティに委任し、フィルター処理された演算子とコード ハッシュの一覧を継続的に更新できるコントラクトに役立ちます。サブスクリプションは、サブスクライバーまたはそのサブスクライバーによっていつでもキャンセルされる場合があります。

Owner

updateOperatorAddress(アドレス登録者、アドレス演算子、ブールフィルタ)

このメソッドは、特定の登録者の演算子のフィルター処理を切り替えます。イフィスは、戻ってきます。イフィスは、戻ってきます。これにより、既知のアドレスをフィルタリングできます。

filter
true
isOperatorAllowed
false
filter
false
isOperatorAllowed
true

updateOperatorCodeHash(アドレス登録者、バイト32コードハッシュ、ブールフィルタ)

このメソッドは、指定された登録者のコードハッシュのフィルタリングを切り替えます。演算子がフィルタリングされたコードハッシュと一致する場合、が返されます。それ以外の場合は、戻ります。これにより、アドレスが異なるが同じコードを持つスマートコントラクトオペレーターをフィルタリングできます。

EXTCODEHASH
isOperatorAllowed
true
isOperatorAllowed
false

OperatorFilterer

このスマートコントラクトは、トークンコントラクトによって継承されることを意図しているため、andメソッドでthemodifierを使用できます。

onlyAllowedOperator
transferFrom
safeTransferFrom

構築時には、3つのパラメータを取ります。

  • address registry
    : 契約の住所
    OperatorFilterRegistry
  • address subscriptionOrRegistrantToCopy
    : 契約がサブスクライブするか、その登録者のフィルターの 1 回限りのコピーを実行する登録者のアドレス。ゼロアドレスが指定されている場合、サブスクリプションまたはコピーは作成されません。
  • bool subscribe
    : true の場合、前のアドレスがゼロ アドレスでなかった場合は、そのアドレスにサブスクライブします。false の場合、将来の更新をサブスクライブせずに、既存のフィルター処理されたアドレスと codeHash をコピーします。

onlyAllowedOperator(address operator)

この修飾子は、そのコード ハッシュがコントラクトによってフィルター処理された場合に元に戻ります。

operator
OperatorFilterRegistry

DefaultOperatorFilterer

このスマートコントラクトは、OpenSeaのフィルタリングされた演算子とコードハッシュのリストをサブスクライブするように、それを継承するトークンコントラクトを拡張して自動的に構成します。このサブスクリプションは、所有者が呼び出すことでいつでも更新できます契約。

OperatorFilterer
updateSubscription
OperatorFilterRegistry

OwnedRegistrant

このスマートコントラクトは、管理のために新しい所有者に簡単に転送できるサブスクリプションアドレスを有効にするための単純なユーティリティとして意図されています。例:EOAは、フィルタリングされた演算子とコードハッシュのリストをキュレートし、その所有権をマルチシグウォレットに転送します。

Ownable
OwnedRegistrant

ライセンス

マサチューセッツ工科大学Copyright 2022 オゾンネットワークス株式会社