NIP-11 Registry

REQ Queue で説明した通り、rx-nostr はリレーの制約を尊重して動作するために NIP-11 に関連する情報を自動で取得します。この動作は createRxNostr()skipFetchNip11 オプションで無効にできます。

Note

今のところ、rx-nostr が動作の最適化のために利用する情報は limitation.max_subscriptions のみです。

rx-nostr が扱う NIP-11 情報は Nip11Registry に集約されます。Nip11Registry は公開されており、開発者はこのクラスが提供する静的メソッドを通じて NIP-11 情報にアクセスできます。

Get NIP-11 info

rx-nostr によってすでに取得された NIP-11 情報のキャッシュは Nip11Registry.get() で取得できます。

Fetch NIP-11 info manually

Nip11Registry.fetch() によって手動で NIP-11 を取得することもできます。このようにして一度取得された情報は、たとえ skipFetchNip11 が設定されていたとしても、rx-nostr が動作の最適化のために利用できます。

Set Default NIP-11 info

特別な事情 (例えばテストなど) によって skipFetchNip11 を設定した場合や、そもそもリレーが NIP-11 をサポートしていなかった場合のために、Nip11Registry.setDefault() を使ってデフォルトの NIP-11 情報を設定することができます。

例えば、以下のように設定すると、rx-nostr は NIP-11 情報を取得できなかった際には limitation.max_subscriptions10 であるものとして振る舞います。

import { Nip11Registry } from "rx-nostr";

Nip11Registry.setDefault({
  limitation: {
    max_subscriptions: 10,
  },
});

Set NIP-11 info manually

NIP-11 をサポートしていない特定のリレーのために NIP-11 情報を手動で設定することもできます。

import { Nip11Registry } from "rx-nostr";

Nip11Registry.set("wss://nostr.example.com", {
  limitation: {
    max_subscriptions: 10,
  },
});