mirror of
https://github.com/nostr-protocol/nips.git
synced 2025-12-10 00:58:51 +00:00
Compare commits
8 Commits
editable
...
nh-editabl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d527dba15 | ||
|
|
c275ae74eb | ||
|
|
03a555beb5 | ||
|
|
93e6c3880b | ||
|
|
061d2ac47d | ||
|
|
5bcb2d834a | ||
|
|
4aa46562eb | ||
|
|
c0568fe8cc |
38
37.md
Normal file
38
37.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
NIP-37
|
||||||
|
======
|
||||||
|
|
||||||
|
Editable Short Notes
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
`draft` `optional`
|
||||||
|
|
||||||
|
This NIP describes a flow for clients that want to support editable short notes without breaking the experience of clients that don't and keeping `kind:1` a safe place.
|
||||||
|
|
||||||
|
The idea is that editable notes are published as `kind:31000` notes that follow all the same rules of `kind:1`, except for the fact that they can be replaceable anytime.
|
||||||
|
|
||||||
|
```jsonc
|
||||||
|
{
|
||||||
|
"kind": 31000,
|
||||||
|
"created_at": 1730820000,
|
||||||
|
"content": "I like dogs",
|
||||||
|
"tags": [
|
||||||
|
["d", "c2huy3f"],
|
||||||
|
// other kind1 tags
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Clients that want to support edits would automatically only publish `kind:31000` notes, then immediately publish `kind:1` notes that quote the `kind:31000` note.
|
||||||
|
|
||||||
|
```jsonc
|
||||||
|
{
|
||||||
|
"kind": 1,
|
||||||
|
"created_at": 1730820000,
|
||||||
|
"content": "naddr1...",
|
||||||
|
"tags": [
|
||||||
|
["q", "31000:...:c2huy3f"]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Clients that support this NIP would then fetch the `kind:31000` and display it normally in place of the `kind:1`. Other clients would display the editable event embedded inside the `kind:1`.
|
||||||
29
55.md
29
55.md
@@ -72,6 +72,35 @@ Set the Signer package name:
|
|||||||
intent.`package` = "com.example.signer"
|
intent.`package` = "com.example.signer"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you are sending multiple intents without awaiting you can add some intent flags to sign all events without opening multiple times the signer
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are developing a signer application them you need to add this to your AndroidManifest.xml so clients can use the intent flags above
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
android:launchMode="singleTop"
|
||||||
|
```
|
||||||
|
|
||||||
|
Signer MUST answer multiple permissions with an array of results
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
|
||||||
|
val results = listOf(
|
||||||
|
Result(
|
||||||
|
package = signerPackageName,
|
||||||
|
result = eventSignture,
|
||||||
|
id = intentId
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
val json = results.toJson()
|
||||||
|
|
||||||
|
intent.putExtra("results", json)
|
||||||
|
```
|
||||||
|
|
||||||
Send the Intent:
|
Send the Intent:
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
|
|||||||
Reference in New Issue
Block a user