nostr 0.2.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,111 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Nostr
4
- # Part of an +Event+. A complete +Event+ must have an +id+ and a +sig+.
5
- class EventFragment
6
- # 32-bytes hex-encoded public key of the event creator
7
- #
8
- # @api public
9
- #
10
- # @example
11
- # event.pubkey # => '48df4af6e240ac5f7c5de89bf5941b249880be0e87d03685b178ccb1a315f52e'
12
- #
13
- # @return [String]
14
- #
15
- attr_reader :pubkey
16
-
17
- # Date of the creation of the vent. A UNIX timestamp, in seconds
18
- #
19
- # @api public
20
- #
21
- # @example
22
- # event.created_at # => 1230981305
23
- #
24
- # @return [Integer]
25
- #
26
- attr_reader :created_at
27
-
28
- # The kind of the event. An integer from 0 to 2
29
- #
30
- # @api public
31
- #
32
- # @example
33
- # event.kind # => 1
34
- #
35
- # @return [Integer]
36
- #
37
- attr_reader :kind
38
-
39
- # An array of tags. Each tag is an array of strings
40
- #
41
- # @api public
42
- #
43
- # @example Tags referencing an event
44
- # event.tags #=> [["e", "event_id", "relay URL"]]
45
- #
46
- # @example Tags referencing a key
47
- # event.tags #=> [["p", "event_id", "relay URL"]]
48
- #
49
- # @return [Array<Array>]
50
- #
51
- attr_reader :tags
52
-
53
- # An arbitrary string
54
- #
55
- # @api public
56
- #
57
- # @example
58
- # event.content # => 'Your feedback is appreciated, now pay $8'
59
- #
60
- # @return [String]
61
- #
62
- attr_reader :content
63
-
64
- # Instantiates a new EventFragment
65
- #
66
- # @api public
67
- #
68
- # @example
69
- # Nostr::EventFragment.new(
70
- # pubkey: 'ccf9fdf3e1466d7c20969c71ec98defcf5f54aee088513e1b73ccb7bd770d460',
71
- # created_at: 1230981305,
72
- # kind: 1,
73
- # tags: [['e', '189df012cfff8a075785b884bd702025f4a7a37710f581c4ac9d33e24b585408']],
74
- # content: 'Your feedback is appreciated, now pay $8'
75
- # )
76
- #
77
- # @param pubkey [String] 32-bytes hex-encoded public key of the event creator.
78
- # @param created_at [Integer] Date of the creation of the vent. A UNIX timestamp, in seconds.
79
- # @param kind [Integer] The kind of the event. An integer from 0 to 2.
80
- # @param tags [Array<Array>] An array of tags. Each tag is an array of strings.
81
- # @param content [String] Arbitrary string.
82
- #
83
- def initialize(pubkey:, kind:, content:, created_at: Time.now.to_i, tags: [])
84
- @pubkey = pubkey
85
- @created_at = created_at
86
- @kind = kind
87
- @tags = tags
88
- @content = content
89
- end
90
-
91
- # Serializes the event fragment, to obtain a SHA256 hash of it
92
- #
93
- # @api public
94
- #
95
- # @example Converting the event to a hash
96
- # event_fragment.serialize
97
- #
98
- # @return [Array] The event fragment as an array.
99
- #
100
- def serialize
101
- [
102
- 0,
103
- pubkey,
104
- created_at,
105
- kind,
106
- tags,
107
- content
108
- ]
109
- end
110
- end
111
- end