arweave 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a4e03c18e67d4f22000bd1b4f869a0a5c9257996831baa55b3336bc592ca218
4
- data.tar.gz: ad19ec432940ba258e15c634bd1cf7194912615e5122a0aefb73d357b8fa4b95
3
+ metadata.gz: df6c4a7ec670a6671f84a3e7e480eeae4a9169523944c50696d2b46aa5818e26
4
+ data.tar.gz: 11bfed6127a26a338a28c480b0c6b97490a09bbef275aec75f9fa3a8d9424117
5
5
  SHA512:
6
- metadata.gz: '041748d6f10669d8ac3ff2331b26360d7cc7bf989302b7a2eaadac0fad7ac7cbd9d7cba55ba8b9d043458da191af1c1eec5b9290571496ca8972ef393f8c6775'
7
- data.tar.gz: 92ff8ca2d17e3d6c24ce3d5d78482ebdb5026eaf8a5cbf7a5215e9907e19329eab1794dbc852f3000aba5f7106be3e98446dbf118f7bcd1158003264dabecfe7
6
+ metadata.gz: accb1b93ee65e402799bcc882d6961327cf51e3dd2492120b6c14c52c882385d13f36754f0440d39f0070847b4fc8da5bba6706d6065f2a55d85ac71c9032253
7
+ data.tar.gz: 9694281e4f4a6b57f15536f4d779bdd3fdd16833fe864ee7efe5e0d19359c2dcec613c44a099e8917337dfd7425c72b506b36c5ee68df90bf7aa79ae878f100d
data/.gitignore CHANGED
@@ -8,6 +8,7 @@
8
8
  /tmp/
9
9
  /*.gem
10
10
  .byebug_history
11
+ Gemfile.lock
11
12
 
12
13
  # rspec failure tracking
13
14
  .rspec_status
@@ -1,7 +1,7 @@
1
1
  GNU GENERAL PUBLIC LICENSE
2
2
  Version 3, 29 June 2007
3
3
 
4
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
4
+ Copyright (C) 2020 license.rocks GmbH <https://license.rocks;
5
5
  Everyone is permitted to copy and distribute verbatim copies
6
6
  of this license document, but changing it is not allowed.
7
7
 
data/README.md CHANGED
@@ -1,7 +1,10 @@
1
1
  # Arweave Ruby SDK
2
- Ruby flavoured Arweave
2
+ Got any important data that should be accessable for mankind in the future?
3
+ Love to build great things with Ruby?
4
+ Here comes your Ruby flavoured Arweave SDK solution.
5
+ Combine arweave's permanent storage solution and Ruby, so that your data will be stored for 200 years plus and create like that your own precious data Ruby.
3
6
 
4
- ## installation
7
+ ## Installation
5
8
  Run `gem install arweave`
6
9
 
7
10
  or put the gem into your gemfile:
@@ -42,12 +45,28 @@ Arweave::Transaction.new(data: 'test').sign(wallet).commit
42
45
  # => #<Arweavev::Transaction:0x00007f9b61299330 @attributes={...}>
43
46
  ```
44
47
 
45
- You can get the transaction attributes from the attribuets hash:
48
+ You can get the transaction attributes from the attributes hash:
46
49
  ```ruby
47
50
  transaction.attributes[:id]
48
51
  # => "tSF6pxiknBk0hBUTkdzq02E0zvsrT0xe4UtCzZit-bz"
49
52
  ```
50
53
 
54
+ ### Adding tags
55
+ You can add tags to a transaction using `add_tag` method:
56
+ ```ruby
57
+ transaction.add_tag(name: 'tag_name', value: 'tag_value')
58
+ # => #<Arweavev::Transaction:0x00007f9b61299330 @attributes={...}>
59
+ ```
60
+
61
+ **NOTE**: You should add tags before commiting the transaction, because once the
62
+ transcation created, then you can't modify it and add tags to it.
63
+
64
+ You can also retrieve tags using `tags` method on the transaction instance:
65
+ ```ruby
66
+ transaction.tags
67
+ # => [{ :name => "tag_name", :value => "tag_value" }]
68
+ ```
69
+
51
70
  ### Find transaction by id
52
71
  ```ruby
53
72
  Arweave::Transaction.find('tSF6pxiknBk0hBUTkdzq02E0zvsrT0xe4UtCzZit-bz')
@@ -50,6 +50,27 @@ module Arweave
50
50
  self
51
51
  end
52
52
 
53
+ def add_tag(name:, value:)
54
+ attributes[:tags].push(
55
+ {
56
+ name: Base64.urlsafe_encode64(name, padding: false),
57
+ value: Base64.urlsafe_encode64(value, padding: false)
58
+ }
59
+ )
60
+
61
+ self
62
+ end
63
+
64
+ def tags
65
+ attributes[:tags].map do |tag|
66
+ tag.transform_keys!(&:to_sym)
67
+ {
68
+ name: Base64.urlsafe_decode64(tag[:name]),
69
+ value: Base64.urlsafe_decode64(tag[:value])
70
+ }
71
+ end
72
+ end
73
+
53
74
  class << self
54
75
  def anchor
55
76
  Api.instance.get_transaction_anchor.body
@@ -78,7 +99,10 @@ module Arweave
78
99
  res = Api.instance.get_transaction_status(id)
79
100
  raise TransactionNotFound if res.not_found?
80
101
 
81
- create_status_object(:accepted, JSON.parse(res.body).transform_keys!(&:to_sym))
102
+ create_status_object(
103
+ :accepted,
104
+ JSON.parse(res.body).transform_keys!(&:to_sym)
105
+ )
82
106
  rescue JSON::ParserError
83
107
  create_status_object(:pending, {})
84
108
  end
@@ -123,8 +147,10 @@ module Arweave
123
147
  end
124
148
 
125
149
  def tags_string
126
- # TODO: Create tags string
127
- ''
150
+ attributes.fetch(:tags).reduce('') do |acc, tag|
151
+ acc + Base64.urlsafe_decode64(tag[:name]) +
152
+ Base64.urlsafe_decode64(tag[:value])
153
+ end
128
154
  end
129
155
  end
130
156
  end
@@ -1,3 +1,3 @@
1
1
  module Arweave
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arweave
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aref Aslani
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-25 00:00:00.000000000 Z
11
+ date: 2020-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json-jwt
@@ -64,7 +64,6 @@ files:
64
64
  - ".travis.yml"
65
65
  - CODE_OF_CONDUCT.md
66
66
  - Gemfile
67
- - Gemfile.lock
68
67
  - LICENSE.txt
69
68
  - README.md
70
69
  - Rakefile
@@ -1,65 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- arweave (0.1.0)
5
- httparty (~> 0.18.1)
6
- json-jwt (~> 1.13)
7
-
8
- GEM
9
- remote: https://rubygems.org/
10
- specs:
11
- activesupport (6.0.3.1)
12
- concurrent-ruby (~> 1.0, >= 1.0.2)
13
- i18n (>= 0.7, < 2)
14
- minitest (~> 5.1)
15
- tzinfo (~> 1.1)
16
- zeitwerk (~> 2.2, >= 2.2.2)
17
- aes_key_wrap (1.0.1)
18
- bindata (2.4.7)
19
- byebug (11.1.3)
20
- concurrent-ruby (1.1.6)
21
- diff-lcs (1.3)
22
- httparty (0.18.1)
23
- mime-types (~> 3.0)
24
- multi_xml (>= 0.5.2)
25
- i18n (1.8.3)
26
- concurrent-ruby (~> 1.0)
27
- json-jwt (1.13.0)
28
- activesupport (>= 4.2)
29
- aes_key_wrap
30
- bindata
31
- mime-types (3.3.1)
32
- mime-types-data (~> 3.2015)
33
- mime-types-data (3.2020.0512)
34
- minitest (5.14.1)
35
- multi_xml (0.6.0)
36
- rake (12.3.3)
37
- rspec (3.9.0)
38
- rspec-core (~> 3.9.0)
39
- rspec-expectations (~> 3.9.0)
40
- rspec-mocks (~> 3.9.0)
41
- rspec-core (3.9.2)
42
- rspec-support (~> 3.9.3)
43
- rspec-expectations (3.9.2)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.9.0)
46
- rspec-mocks (3.9.1)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.9.0)
49
- rspec-support (3.9.3)
50
- thread_safe (0.3.6)
51
- tzinfo (1.2.7)
52
- thread_safe (~> 0.1)
53
- zeitwerk (2.3.0)
54
-
55
- PLATFORMS
56
- ruby
57
-
58
- DEPENDENCIES
59
- arweave!
60
- byebug (~> 11.1)
61
- rake (~> 12.0)
62
- rspec (~> 3.0)
63
-
64
- BUNDLED WITH
65
- 2.1.4