Add docs for blossom, add nip 86 and 98 support
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# NIP-86 Relay Management
|
||||
|
||||
Implementation of NIP-86 for managing Nostr relays through authenticated RPC requests.
|
||||
|
||||
## Types
|
||||
|
||||
```typescript
|
||||
export enum ManagementMethod {
|
||||
SupportedMethods = "supportedmethods",
|
||||
BanPubkey = "banpubkey",
|
||||
AllowPubkey = "allowpubkey",
|
||||
ListBannedPubkeys = "listbannedpubkeys",
|
||||
ListAllowedPubkeys = "listallowedpubkeys",
|
||||
ListEventsNeedingModeration = "listeventsneedingmoderation",
|
||||
AllowEvent = "allowevent",
|
||||
BanEvent = "banevent",
|
||||
ListBannedEvents = "listbannedevents",
|
||||
ChangeRelayName = "changerelayname",
|
||||
ChangeRelayDescription = "changerelaydescription",
|
||||
ChangeRelayIcon = "changerelayicon",
|
||||
AllowKind = "allowkind",
|
||||
DisallowKind = "disallowkind",
|
||||
ListAllowedKinds = "listallowedkinds",
|
||||
BlockIp = "blockip",
|
||||
UnblockIp = "unblockip",
|
||||
ListBlockedIps = "listblockedips",
|
||||
}
|
||||
|
||||
export type ManagementRequest = {
|
||||
method: ManagementMethod
|
||||
params: string[]
|
||||
}
|
||||
```
|
||||
|
||||
## Functions
|
||||
|
||||
```typescript
|
||||
// Sends a management request to a relay
|
||||
export declare const sendManagementRequest: (url: string, request: ManagementRequest, authEvent: SignedEvent) => Promise<any>
|
||||
```
|
||||
|
||||
## Example
|
||||
|
||||
```typescript
|
||||
import { sendManagementRequest, ManagementMethod, makeHttpAuth } from '@welshman/util'
|
||||
|
||||
// Set up our url and params
|
||||
const url = "https://relay.example.com/"
|
||||
const payload = {method: ManagementMethod.SupportedMethods, params: []}
|
||||
|
||||
// Create auth event for the management endpoint
|
||||
const authEvent = await makeHttpAuth(url, "POST", JSON.stringify(payload))
|
||||
const signedAuthEvent = await signer.signEvent(authEvent)
|
||||
|
||||
// Get a list of supported methods
|
||||
const response = await sendManagementRequest(url, payload, signedAuthEvent)
|
||||
```
|
||||
Reference in New Issue
Block a user