NegentropyEncoder class
Negentropy Protocol V1 codec, as specified in the NIP-77 appendix.
See https://github.com/hoytech/negentropy/blob/master/docs/negentropy-protocol-v1.md
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
bytesToHex(
List< int> bytes) → String - Converts bytes to hex string
-
calculateFingerprint(
List< Uint8List> ids) → Uint8List -
Calculates the fingerprint of a range: the first 16 bytes of
SHA256(sum of the IDs mod 2^256, little-endian || varint(count)). -
createInitialMessage(
List< NegentropyItem> items, [int itemIdSize = idSize]) → Uint8List -
Creates the initial message an initiator sends in
NEG-OPEN. -
decodeBound(
Uint8List data, [int offset = 0, int lastTimestamp = 0]) → (int, Uint8List, int) -
Decodes a bound.
lastTimestampis the timestamp of the previously decoded bound in the same message (0 at the start of every message). -
decodeVarint(
Uint8List data, [int offset = 0]) → (int, int) - Decodes a varint from bytes, returns (value, bytesConsumed)
-
encodeBound(
int timestamp, Uint8List idPrefix, {int lastTimestamp = 0}) → Uint8List -
Encodes a bound. Timestamps are delta encoded against
lastTimestamp, which is the timestamp of the previously encoded bound in the same message (0 at the start of every message). -
encodeVarint(
int value) → Uint8List - Encodes an integer as a varint (base-128, most significant digit first)
-
hexToBytes(
String hex) → Uint8List - Parses a hex string to bytes
-
reconcile(
Uint8List message, List< NegentropyItem> items) → (Uint8List, List<String> , List<String> ) - Reconciles a message received from the other side as the initiator.
-
respond(
Uint8List message, List< NegentropyItem> items) → Uint8List - Reconciles a message received from an initiator, as the responding side.
Constants
- fingerprintSize → const int
- Size of fingerprint in bytes
- idSize → const int
- Size of event ID in bytes (32 bytes = 64 hex chars)
- infiniteTimestamp → const int
-
Reserved "infinity" timestamp. The spec reserves
2**64 - 1, which does not survive dart2js; this sentinel is the largest exactly representable integer on both native and web, and never touches the wire (infinity is always encoded as0). - modeFingerprint → const int
- modeIdList → const int
- modeSkip → const int
- Mode constants
- protocolVersion → const int
- Protocol version byte (version 1)