ENS について調べた

ENS Text Record について

公式ドキュメント

twitter, github などは vendor-specific key に分類され、独自に指定することが可能とのこと

In addition, anyone may specify vendor-specific keys, which must be prefixed with vnd.. The following vendor-specific keys are currently known:

https://docs.ens.domains/contract-api-reference/publicresolver#get-text-data

ここから察するにENS Dapps ではメジャーなものを表示してくれているだけっぽい? (要出典)

また、Text Record の実体はENSとは別のコントラクト

The functions setText() and text() allow ENS name holders to associate metadata with a ENS name.
Both are functions of the TextResolver.sol contract.

https://ethereum.stackexchange.com/questions/72007/web3-ens-library-purpose-of-settext-gettext-against-ens-name

TextResolver.sol コントラクト (GitHub)


`supportsInterface` APIがあるけど、設定してある text record の key 値を取得してくれる系ではないっぽい?

    function supportsInterface(bytes4 interfaceID)
        public
        view
        virtual
        override
        returns (bool)
    {
        return
            interfaceID == type(ITextResolver).interfaceId ||
            super.supportsInterface(interfaceID);
    }

https://github.com/ensdomains/ens-contracts/blob/3445b94a187cac1016ec6e3fb69b885227565d8e/contracts/resolvers/profiles/TextResolver.sol#L42-L52


「設定済みの text record の key 値を取得する」のは、どちらかというと texts の変数の方が該当するけど、公開されていない? (はず。多分。Solidity の変数宣言をうろ覚え)

    mapping(bytes32 => mapping(string => string)) texts;

https://github.com/ensdomains/ens-contracts/blob/3445b94a187cac1016ec6e3fb69b885227565d8e/contracts/resolvers/profiles/TextResolver.sol#L8

それに、メタ情報がコントラクト毎に設定されている場合だったら、コントラクト:TextRecord は 1:1 だから望む結果にはならなさそう。ただし一つのコントラクトで複数のメタ情報を扱ってるのかは未確認なので要出典。

いいなと思ったら応援しよう!