Skip to content

Commit

Permalink
refactor: Update SPECIFICATION.md to include long cast validation rul…
Browse files Browse the repository at this point in the history
…es from FIP-16
  • Loading branch information
0x330a authored Nov 23, 2024
1 parent 2f1dcde commit a2e267c
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions docs/SPECIFICATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,14 +303,15 @@ A CastAddBody in a message `m` is valid only if it passes these validations:

1. `m.signature_scheme` must be `SIGNATURE_SCHEME_ED25519`.
2. `m.data.type` must be `MESSAGE_TYPE_CAST_ADD`.
3. `m.data.body.type` must be `CastAddBody`.
3. `m.data.body` must be `CastAddBody` type.
4. `m.data.body.embeds_deprecated` can contain up to 2 valid UTF8 strings whose lengths are >=1 byte and <= 256 bytes if the timestamp is <= 73612800 (5/3/23 00:00 UTC).
5. `m.data.body.mentions` must contain between 0 and 10 256-bit integer values.
6. `m.data.body.parent`, if present, must be a valid CastId or a UTF8 string whose length is >= 1 byte and <= 256 bytes.
7. `m.data.body.text` must contain <= 320 bytes and be a valid UTF8 string.
8. `m.data.body.mentions_positions` must have unique integers between 0 and length of `text` inclusive.
9. `m.data.body.mentions_positions` integers must be in ascending order and must have as many elements as `mentions`.
10. `m.data.body.embeds` can contain up to 2 embeds, each of which is a CastId or valid UTF8 string whose length is >=1 byte and <= 256bytes.
7. `m.data.body.text` must contain <= 1024 bytes and be a valid UTF8 string.
8. `m.data.body.type` must be either `CastType.CAST` for casts with text length of 0 <= length <= 320 and `CastType.LONG` for casts that are 321 <= length <= 1024
9. `m.data.body.mentions_positions` must have unique integers between 0 and length of `text` inclusive.
10. `m.data.body.mentions_positions` integers must be in ascending order and must have as many elements as `mentions`.
11. `m.data.body.embeds` can contain up to 2 embeds, each of which is a CastId or valid UTF8 string whose length is >=1 byte and <= 256bytes.

A CastRemoveBody in a message `m` is valid only if it passes these validations:

Expand Down

0 comments on commit a2e267c

Please sign in to comment.