stellar-base 0.9.0 → 0.10.0
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 +4 -4
- data/CHANGELOG.md +4 -1
- data/lib/stellar/base/version.rb +1 -1
- data/lib/stellar/transaction.rb +20 -0
- data/spec/lib/stellar/transaction_spec.rb +29 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 549ab91d8bfb91e48d75d4b924d398fb85342e36
|
4
|
+
data.tar.gz: 631468aab5e41d20a439ae4b24a44a136eff1b98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a74bf53ea5b202bfcff75fbcada4e459a185849ec023dbe63613962c424779c82ed66e35f11b483ec68ffc804a76097e66dfade5a93dce3f8eda7364db37c8d4
|
7
|
+
data.tar.gz: 59b96582bcaf5e9869e0df8736129b5ed841d3633ddf4b0230bd6a16781cfb10d39be49cba12f175a93cd02982155451ab2236b184424bb4cecd8084315ce42e
|
data/CHANGELOG.md
CHANGED
@@ -6,7 +6,10 @@ file. This project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
As this project is pre 1.0, breaking changes may happen for minor version
|
7
7
|
bumps. A breaking change will get clearly notified in this log.
|
8
8
|
|
9
|
-
## [unreleased](https://github.com/stellar/ruby-stellar-base/compare/v0.
|
9
|
+
## [unreleased](https://github.com/stellar/ruby-stellar-base/compare/v0.10.0...master)
|
10
|
+
## [0.10.0](https://github.com/stellar/ruby-stellar-base/compare/v0.0.0...v0.10.0)
|
11
|
+
|
12
|
+
- Added memo helpers to `Stellar::Transaction.for_account`, allowing any operation builder (such as `Stellar::Transaction.payment) to provide a custom memo using the `:memo` attribute.
|
10
13
|
|
11
14
|
## [0.9.0](https://github.com/stellar/ruby-stellar-base/compare/v0.8.0...v0.9.0)
|
12
15
|
|
data/lib/stellar/base/version.rb
CHANGED
data/lib/stellar/transaction.rb
CHANGED
@@ -101,6 +101,7 @@ module Stellar
|
|
101
101
|
new.tap do |result|
|
102
102
|
result.seq_num = sequence
|
103
103
|
result.fee = fee
|
104
|
+
result.memo = make_memo(attributes[:memo])
|
104
105
|
result.source_account = account.account_id
|
105
106
|
result.apply_defaults
|
106
107
|
end
|
@@ -166,5 +167,24 @@ module Stellar
|
|
166
167
|
self.memo ||= Memo.new(:memo_none)
|
167
168
|
self.ext ||= Stellar::Transaction::Ext.new 0
|
168
169
|
end
|
170
|
+
|
171
|
+
private
|
172
|
+
def self.make_memo(memo)
|
173
|
+
case memo
|
174
|
+
when Stellar::Memo ;
|
175
|
+
memo
|
176
|
+
when nil ;
|
177
|
+
nil
|
178
|
+
when Integer ;
|
179
|
+
Memo.new(:memo_id, memo)
|
180
|
+
when String ;
|
181
|
+
Memo.new(:memo_text, memo)
|
182
|
+
when Array ;
|
183
|
+
t, val = *memo
|
184
|
+
Memo.new(:"memo_#{t}", val)
|
185
|
+
else
|
186
|
+
raise ArgumentError, "Bad :memo"
|
187
|
+
end
|
188
|
+
end
|
169
189
|
end
|
170
190
|
end
|
@@ -51,4 +51,33 @@ describe Stellar::Transaction do
|
|
51
51
|
end
|
52
52
|
|
53
53
|
end
|
54
|
+
|
55
|
+
describe ".for_account's memo assignment" do
|
56
|
+
let(:attrs){{account: Stellar::KeyPair.random, sequence: 1}}
|
57
|
+
|
58
|
+
def make(memo)
|
59
|
+
tx = Stellar::Transaction.for_account(attrs.merge(memo: memo))
|
60
|
+
tx.memo
|
61
|
+
end
|
62
|
+
|
63
|
+
it "sets to an ID memo when a number is provided" do
|
64
|
+
expect(make(3)).to eql(Stellar::Memo.new(:memo_id, 3))
|
65
|
+
end
|
66
|
+
|
67
|
+
it "sets to an text memo when a number is provided" do
|
68
|
+
expect(make("hello")).to eql(Stellar::Memo.new(:memo_text, "hello"))
|
69
|
+
end
|
70
|
+
|
71
|
+
it "uses the provided value directly if already a memo" do
|
72
|
+
expect(make(Stellar::Memo.new(:memo_text, "hello"))).to eql(Stellar::Memo.new(:memo_text, "hello"))
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
it "allows a 2-element array as shorthand" do
|
77
|
+
expect(make([:id, 3])).to eql(Stellar::Memo.new(:memo_id, 3))
|
78
|
+
expect(make([:text, "h"])).to eql(Stellar::Memo.new(:memo_text, "h"))
|
79
|
+
expect(make([:hash, "h"])).to eql(Stellar::Memo.new(:memo_hash, "h"))
|
80
|
+
expect(make([:return, "h"])).to eql(Stellar::Memo.new(:memo_return, "h"))
|
81
|
+
end
|
82
|
+
end
|
54
83
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stellar-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Fleckenstein
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: xdr
|