stellar-base 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: efd6646cf6f9777ca99a367c19d7c2fe5703b17a
4
- data.tar.gz: 1d2615550df2380a7bca084d496eb8766d9517e6
3
+ metadata.gz: 76a58244d9d43b4caf7bec1f3790b9e016591ae8
4
+ data.tar.gz: 84cea328213662741b73508b9c39e08344a72132
5
5
  SHA512:
6
- metadata.gz: 56bc04654fbff876daa63882fe92b58a50a45cc24221e7fb18eb95ca3cc7d07052b1b1dc3bd61d97d3a391edb482bb225055ce3cd2dddff248d0b0a274462850
7
- data.tar.gz: a05f4a1019e6c137ce60af272e5a9b8a1bf19bd42dda65c87ea35c4973637aee8605b3721bc24489d4a304c92a66450885e26747837a678267beb58b7839b1fa
6
+ metadata.gz: f33e95865b77abb9917d09e21d8a5942aaa4863dd7b1e6a9bdab30b2de0ffe04710d29984278a7100b6f80edd630d521395ebcb84453819dc782341f5b408f49
7
+ data.tar.gz: 32d5196f9448ec39cb9745a53d2c65bd98c1d599c036f5ab742c797215de1b5d748b1c69516011a06e0f44210cb0de86a76b42645cb02de8de7fea08fbaa5d73
@@ -1,15 +1,9 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.0
4
- - 2.1.5
5
- - 2.0.0
6
- - 1.9.3
7
- - jruby-1.7.20
8
- - jruby-head
3
+ - 2.2.6
4
+ - 2.3.3
5
+ - 2.4.0
9
6
  script: bundle exec rake travis
10
7
  notifications:
11
8
  slack:
12
9
  secure: V/6a8KFe067uukrbCJA2R1HPO4xy0YSQ1pwmHVRi5StX+yl+lYsWWJdjdBdT0j3iJBYyPRqU4bQYck+OloxtELnrHCX+OkodxcxW8W/ACc914iIf0FyY9pnusK7ck2awmt4Iuf94YPgi0XTm1aCcm+f0yU7wiIVFpftoXSk1EDY=
13
- matrix:
14
- allow_failures:
15
- - rvm: jruby-head
File without changes
@@ -6,7 +6,17 @@ 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.11.0...master)
9
+ ## [unreleased](https://github.com/stellar/ruby-stellar-base/compare/v0.12.0...master)
10
+
11
+ ## [0.12.0](https://github.com/stellar/ruby-stellar-base/compare/v0.11.0...v0.12.0)
12
+
13
+ ### Changed
14
+ - Avoid modifying $LOAD_PATH to fix load order issues
15
+ - Update XDR definitions for stellar-core 0.6 support
16
+
17
+ ### Removed
18
+
19
+ - BREAKING CHANGE: Removed support for JRuby.
10
20
 
11
21
  ## [0.11.0](https://github.com/stellar/ruby-stellar-base/compare/v0.10.0...v0.11.0)
12
22
 
@@ -13,7 +13,10 @@ module Stellar
13
13
  Uint64 = XDR::UnsignedHyper
14
14
  Int64 = XDR::Hyper
15
15
  autoload :CryptoKeyType
16
+ autoload :PublicKeyType
17
+ autoload :SignerKeyType
16
18
  autoload :PublicKey
19
+ autoload :SignerKey
17
20
  Signature = XDR::VarOpaque[64]
18
21
  SignatureHint = XDR::Opaque[4]
19
22
  NodeID = PublicKey
@@ -66,6 +69,7 @@ module Stellar
66
69
  autoload :Memo
67
70
  autoload :TimeBounds
68
71
  autoload :Transaction
72
+ autoload :TransactionSignaturePayload
69
73
  autoload :TransactionEnvelope
70
74
  autoload :ClaimOfferAtom
71
75
  autoload :CreateAccountResultCode
@@ -108,7 +112,6 @@ module Stellar
108
112
  autoload :LedgerKey
109
113
  autoload :BucketEntryType
110
114
  autoload :BucketEntry
111
- MAX_TX_PER_LEDGER = 5000
112
115
  autoload :TransactionSet
113
116
  autoload :TransactionResultPair
114
117
  autoload :TransactionResultSet
@@ -14,7 +14,8 @@ require 'xdr'
14
14
  # ALLOW_TRUST_NO_TRUST_LINE = -2, // trustor does not have a trustline
15
15
  # // source account does not require trust
16
16
  # ALLOW_TRUST_TRUST_NOT_REQUIRED = -3,
17
- # ALLOW_TRUST_CANT_REVOKE = -4 // source account can't revoke trust
17
+ # ALLOW_TRUST_CANT_REVOKE = -4, // source account can't revoke trust,
18
+ # ALLOW_TRUST_SELF_NOT_ALLOWED = -5 // trusting self is not allowed
18
19
  # };
19
20
  #
20
21
  # ===========================================================================
@@ -25,6 +26,7 @@ module Stellar
25
26
  member :allow_trust_no_trust_line, -2
26
27
  member :allow_trust_trust_not_required, -3
27
28
  member :allow_trust_cant_revoke, -4
29
+ member :allow_trust_self_not_allowed, -5
28
30
 
29
31
  seal
30
32
  end
@@ -14,17 +14,19 @@ require 'xdr'
14
14
  # CHANGE_TRUST_NO_ISSUER = -2, // could not find issuer
15
15
  # CHANGE_TRUST_INVALID_LIMIT = -3, // cannot drop limit below balance
16
16
  # // cannot create with a limit of 0
17
- # CHANGE_TRUST_LOW_RESERVE = -4 // not enough funds to create a new trust line
17
+ # CHANGE_TRUST_LOW_RESERVE = -4, // not enough funds to create a new trust line,
18
+ # CHANGE_TRUST_SELF_NOT_ALLOWED = -5 // trusting self is not allowed
18
19
  # };
19
20
  #
20
21
  # ===========================================================================
21
22
  module Stellar
22
23
  class ChangeTrustResultCode < XDR::Enum
23
- member :change_trust_success, 0
24
- member :change_trust_malformed, -1
25
- member :change_trust_no_issuer, -2
26
- member :change_trust_invalid_limit, -3
27
- member :change_trust_low_reserve, -4
24
+ member :change_trust_success, 0
25
+ member :change_trust_malformed, -1
26
+ member :change_trust_no_issuer, -2
27
+ member :change_trust_invalid_limit, -3
28
+ member :change_trust_low_reserve, -4
29
+ member :change_trust_self_not_allowed, -5
28
30
 
29
31
  seal
30
32
  end
@@ -7,13 +7,17 @@ require 'xdr'
7
7
  #
8
8
  # enum CryptoKeyType
9
9
  # {
10
- # KEY_TYPE_ED25519 = 0
10
+ # KEY_TYPE_ED25519 = 0,
11
+ # KEY_TYPE_HASH_TX = 1,
12
+ # KEY_TYPE_HASH_X = 2
11
13
  # };
12
14
  #
13
15
  # ===========================================================================
14
16
  module Stellar
15
17
  class CryptoKeyType < XDR::Enum
16
18
  member :key_type_ed25519, 0
19
+ member :key_type_hash_tx, 1
20
+ member :key_type_hash_x, 2
17
21
 
18
22
  seal
19
23
  end
@@ -5,18 +5,18 @@ require 'xdr'
5
5
 
6
6
  # === xdr source ============================================================
7
7
  #
8
- # union PublicKey switch (CryptoKeyType type)
8
+ # union PublicKey switch (PublicKeyType type)
9
9
  # {
10
- # case KEY_TYPE_ED25519:
10
+ # case PUBLIC_KEY_TYPE_ED25519:
11
11
  # uint256 ed25519;
12
12
  # };
13
13
  #
14
14
  # ===========================================================================
15
15
  module Stellar
16
16
  class PublicKey < XDR::Union
17
- switch_on CryptoKeyType, :type
17
+ switch_on PublicKeyType, :type
18
18
 
19
- switch :key_type_ed25519, :ed25519
19
+ switch :public_key_type_ed25519, :ed25519
20
20
 
21
21
  attribute :ed25519, Uint256
22
22
  end
@@ -0,0 +1,20 @@
1
+ # This code was automatically generated using xdrgen
2
+ # DO NOT EDIT or your changes may be overwritten
3
+
4
+ require 'xdr'
5
+
6
+ # === xdr source ============================================================
7
+ #
8
+ # enum PublicKeyType
9
+ # {
10
+ # PUBLIC_KEY_TYPE_ED25519 = KEY_TYPE_ED25519
11
+ # };
12
+ #
13
+ # ===========================================================================
14
+ module Stellar
15
+ class PublicKeyType < XDR::Enum
16
+ member :public_key_type_ed25519, 0
17
+
18
+ seal
19
+ end
20
+ end
@@ -7,14 +7,14 @@ require 'xdr'
7
7
  #
8
8
  # struct Signer
9
9
  # {
10
- # AccountID pubKey;
10
+ # SignerKey key;
11
11
  # uint32 weight; // really only need 1byte
12
12
  # };
13
13
  #
14
14
  # ===========================================================================
15
15
  module Stellar
16
16
  class Signer < XDR::Struct
17
- attribute :pub_key, AccountID
18
- attribute :weight, Uint32
17
+ attribute :key, SignerKey
18
+ attribute :weight, Uint32
19
19
  end
20
20
  end
@@ -0,0 +1,31 @@
1
+ # This code was automatically generated using xdrgen
2
+ # DO NOT EDIT or your changes may be overwritten
3
+
4
+ require 'xdr'
5
+
6
+ # === xdr source ============================================================
7
+ #
8
+ # union SignerKey switch (SignerKeyType type)
9
+ # {
10
+ # case SIGNER_KEY_TYPE_ED25519:
11
+ # uint256 ed25519;
12
+ # case SIGNER_KEY_TYPE_HASH_TX:
13
+ # Hash hashTx;
14
+ # case SIGNER_KEY_TYPE_HASH_X:
15
+ # Hash hashX;
16
+ # };
17
+ #
18
+ # ===========================================================================
19
+ module Stellar
20
+ class SignerKey < XDR::Union
21
+ switch_on SignerKeyType, :type
22
+
23
+ switch :signer_key_type_ed25519, :ed25519
24
+ switch :signer_key_type_hash_tx, :hash_tx
25
+ switch :signer_key_type_hash_x, :hash_x
26
+
27
+ attribute :ed25519, Uint256
28
+ attribute :hash_tx, Hash
29
+ attribute :hash_x, Hash
30
+ end
31
+ end
@@ -0,0 +1,24 @@
1
+ # This code was automatically generated using xdrgen
2
+ # DO NOT EDIT or your changes may be overwritten
3
+
4
+ require 'xdr'
5
+
6
+ # === xdr source ============================================================
7
+ #
8
+ # enum SignerKeyType
9
+ # {
10
+ # SIGNER_KEY_TYPE_ED25519 = KEY_TYPE_ED25519,
11
+ # SIGNER_KEY_TYPE_HASH_TX = KEY_TYPE_HASH_TX,
12
+ # SIGNER_KEY_TYPE_HASH_X = KEY_TYPE_HASH_X
13
+ # };
14
+ #
15
+ # ===========================================================================
16
+ module Stellar
17
+ class SignerKeyType < XDR::Enum
18
+ member :signer_key_type_ed25519, 0
19
+ member :signer_key_type_hash_tx, 1
20
+ member :signer_key_type_hash_x, 2
21
+
22
+ seal
23
+ end
24
+ end
@@ -8,7 +8,7 @@ require 'xdr'
8
8
  # struct TimeBounds
9
9
  # {
10
10
  # uint64 minTime;
11
- # uint64 maxTime;
11
+ # uint64 maxTime; // 0 here means no maxTime
12
12
  # };
13
13
  #
14
14
  # ===========================================================================
@@ -8,7 +8,10 @@ require 'xdr'
8
8
  # struct TransactionEnvelope
9
9
  # {
10
10
  # Transaction tx;
11
- # DecoratedSignature signatures<20>;
11
+ # /* Each decorated signature is a signature over the SHA256 hash of
12
+ # * a TransactionSignaturePayload */
13
+ # DecoratedSignature
14
+ # signatures<20>;
12
15
  # };
13
16
  #
14
17
  # ===========================================================================
@@ -7,12 +7,12 @@ require 'xdr'
7
7
  #
8
8
  # struct TransactionResultSet
9
9
  # {
10
- # TransactionResultPair results<MAX_TX_PER_LEDGER>;
10
+ # TransactionResultPair results<>;
11
11
  # };
12
12
  #
13
13
  # ===========================================================================
14
14
  module Stellar
15
15
  class TransactionResultSet < XDR::Struct
16
- attribute :results, XDR::VarArray[TransactionResultPair, MAX_TX_PER_LEDGER]
16
+ attribute :results, XDR::VarArray[TransactionResultPair]
17
17
  end
18
18
  end
@@ -8,13 +8,13 @@ require 'xdr'
8
8
  # struct TransactionSet
9
9
  # {
10
10
  # Hash previousLedgerHash;
11
- # TransactionEnvelope txs<MAX_TX_PER_LEDGER>;
11
+ # TransactionEnvelope txs<>;
12
12
  # };
13
13
  #
14
14
  # ===========================================================================
15
15
  module Stellar
16
16
  class TransactionSet < XDR::Struct
17
17
  attribute :previous_ledger_hash, Hash
18
- attribute :txs, XDR::VarArray[TransactionEnvelope, MAX_TX_PER_LEDGER]
18
+ attribute :txs, XDR::VarArray[TransactionEnvelope]
19
19
  end
20
20
  end
@@ -0,0 +1,28 @@
1
+ # This code was automatically generated using xdrgen
2
+ # DO NOT EDIT or your changes may be overwritten
3
+
4
+ require 'xdr'
5
+
6
+ # === xdr source ============================================================
7
+ #
8
+ # struct TransactionSignaturePayload {
9
+ # Hash networkId;
10
+ # union switch (EnvelopeType type)
11
+ # {
12
+ # case ENVELOPE_TYPE_TX:
13
+ # Transaction tx;
14
+ # /* All other values of type are invalid */
15
+ # } taggedTransaction;
16
+ # };
17
+ #
18
+ # ===========================================================================
19
+ module Stellar
20
+ class TransactionSignaturePayload < XDR::Struct
21
+ include XDR::Namespace
22
+
23
+ autoload :TaggedTransaction
24
+
25
+ attribute :network_id, Hash
26
+ attribute :tagged_transaction, TaggedTransaction
27
+ end
28
+ end
@@ -0,0 +1,26 @@
1
+ # This code was automatically generated using xdrgen
2
+ # DO NOT EDIT or your changes may be overwritten
3
+
4
+ require 'xdr'
5
+
6
+ # === xdr source ============================================================
7
+ #
8
+ # union switch (EnvelopeType type)
9
+ # {
10
+ # case ENVELOPE_TYPE_TX:
11
+ # Transaction tx;
12
+ # /* All other values of type are invalid */
13
+ # }
14
+ #
15
+ # ===========================================================================
16
+ module Stellar
17
+ class TransactionSignaturePayload
18
+ class TaggedTransaction < XDR::Union
19
+ switch_on EnvelopeType, :type
20
+
21
+ switch :envelope_type_tx, :tx
22
+
23
+ attribute :tx, Transaction
24
+ end
25
+ end
26
+ end
@@ -6,7 +6,6 @@ require 'active_support/core_ext/enumerable'
6
6
  require 'active_support/core_ext/kernel/reporting'
7
7
 
8
8
  # See ../generated for code-gen'ed files
9
-
10
9
  silence_warnings do
11
10
  require 'stellar-base-generated'
12
11
  end
@@ -1,5 +1,5 @@
1
1
  module Stellar
2
2
  module Base
3
- VERSION = "0.11.0"
3
+ VERSION = "0.12.0"
4
4
  end
5
5
  end
@@ -42,11 +42,11 @@ module Stellar
42
42
  end
43
43
 
44
44
  def account_id
45
- Stellar::AccountID.new :key_type_ed25519, raw_public_key
45
+ Stellar::AccountID.new :public_key_type_ed25519, raw_public_key
46
46
  end
47
47
 
48
48
  def public_key
49
- Stellar::PublicKey.new :key_type_ed25519, raw_public_key
49
+ Stellar::PublicKey.new :public_key_type_ed25519, raw_public_key
50
50
  end
51
51
 
52
52
  def raw_public_key
@@ -14,7 +14,7 @@ module Stellar
14
14
  COMPONENTS.each do |c|
15
15
  good = true
16
16
 
17
- good &&= thresholds[c].is_a?(Fixnum)
17
+ good &&= thresholds[c].is_a?(Integer)
18
18
  good &&= VALID_RANGE.include? thresholds[c]
19
19
 
20
20
  unless good
@@ -1,7 +1,5 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'stellar/base/version'
2
+ require_relative './lib/stellar/base/version'
5
3
 
6
4
  Gem::Specification.new do |spec|
7
5
  spec.name = "stellar-base"
@@ -17,12 +15,12 @@ Gem::Specification.new do |spec|
17
15
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
16
  spec.require_paths = ["generated", "lib"]
19
17
 
20
- spec.add_dependency "xdr", "~> 1.0.0"
18
+ spec.add_dependency "xdr", "~> 2.0.0"
21
19
  spec.add_dependency "digest-crc"
22
20
  spec.add_dependency "base32"
23
21
  spec.add_dependency "rbnacl"
24
22
  spec.add_dependency "rbnacl-libsodium", "~> 1.0.3"
25
- spec.add_dependency "activesupport", "~> 4"
23
+ spec.add_dependency "activesupport", ">= 4.2.7"
26
24
 
27
25
  spec.add_development_dependency "bundler", "~> 1.7"
28
26
  spec.add_development_dependency "rake", "~> 10.0"
@@ -51,7 +51,7 @@ describe Stellar::Convert do
51
51
 
52
52
  describe "#pk_to_address" do
53
53
  let(:pk_raw){ "\x00" * 32 }
54
- let(:pk_account_id){ Stellar::AccountID.new(:key_type_ed25519, pk_raw)}
54
+ let(:pk_account_id){ Stellar::AccountID.new(:public_key_type_ed25519, pk_raw)}
55
55
 
56
56
  it "converts a Stellar::AccountID into an address using StrKey.check_encode(:account_id)" do
57
57
  address = Stellar::Util::StrKey.check_encode(:account_id, pk_raw)
@@ -3,7 +3,7 @@ require "spec_helper"
3
3
  describe Stellar::Transaction do
4
4
  subject do
5
5
  Stellar::Transaction.new({
6
- source_account: Stellar::AccountID.new(:key_type_ed25519, "\x00" * 32),
6
+ source_account: Stellar::AccountID.new(:public_key_type_ed25519, "\x00" * 32),
7
7
  fee: 10,
8
8
  seq_num: 1,
9
9
  memo: Stellar::Memo.new(:memo_none),
@@ -26,7 +26,7 @@ namespace :xdr do
26
26
 
27
27
  HAYASHI_XDR.each do |src|
28
28
  local_path = "xdr/" + File.basename(src)
29
- encoded = client.contents("stellar/stellar-core", path: src).content
29
+ encoded = client.contents("stellar/stellar-core", path: src, ref:"1c2a3fb7a29eedb0c9513132834dd38fee243a63").content
30
30
  decoded = Base64.decode64 encoded
31
31
 
32
32
  IO.write(local_path, decoded)
@@ -70,7 +70,7 @@ enum LedgerEntryType
70
70
 
71
71
  struct Signer
72
72
  {
73
- AccountID pubKey;
73
+ SignerKey key;
74
74
  uint32 weight; // really only need 1byte
75
75
  };
76
76
 
@@ -144,11 +144,10 @@ case DEADENTRY:
144
144
 
145
145
  // Transaction sets are the unit used by SCP to decide on transitions
146
146
  // between ledgers
147
- const MAX_TX_PER_LEDGER = 5000;
148
147
  struct TransactionSet
149
148
  {
150
149
  Hash previousLedgerHash;
151
- TransactionEnvelope txs<MAX_TX_PER_LEDGER>;
150
+ TransactionEnvelope txs<>;
152
151
  };
153
152
 
154
153
  struct TransactionResultPair
@@ -160,7 +159,7 @@ struct TransactionResultPair
160
159
  // TransactionResultSet is used to recover results between ledgers
161
160
  struct TransactionResultSet
162
161
  {
163
- TransactionResultPair results<MAX_TX_PER_LEDGER>;
162
+ TransactionResultPair results<>;
164
163
  };
165
164
 
166
165
  // Entries below are used in the historical subsystem
@@ -283,7 +283,7 @@ case MEMO_RETURN:
283
283
  struct TimeBounds
284
284
  {
285
285
  uint64 minTime;
286
- uint64 maxTime;
286
+ uint64 maxTime; // 0 here means no maxTime
287
287
  };
288
288
 
289
289
  /* a transaction is a container for a set of operations
@@ -321,11 +321,24 @@ struct Transaction
321
321
  ext;
322
322
  };
323
323
 
324
+ struct TransactionSignaturePayload {
325
+ Hash networkId;
326
+ union switch (EnvelopeType type)
327
+ {
328
+ case ENVELOPE_TYPE_TX:
329
+ Transaction tx;
330
+ /* All other values of type are invalid */
331
+ } taggedTransaction;
332
+ };
333
+
324
334
  /* A TransactionEnvelope wraps a transaction with signatures. */
325
335
  struct TransactionEnvelope
326
336
  {
327
337
  Transaction tx;
328
- DecoratedSignature signatures<20>;
338
+ /* Each decorated signature is a signature over the SHA256 hash of
339
+ * a TransactionSignaturePayload */
340
+ DecoratedSignature
341
+ signatures<20>;
329
342
  };
330
343
 
331
344
  /* Operation Results section */
@@ -532,7 +545,8 @@ enum ChangeTrustResultCode
532
545
  CHANGE_TRUST_NO_ISSUER = -2, // could not find issuer
533
546
  CHANGE_TRUST_INVALID_LIMIT = -3, // cannot drop limit below balance
534
547
  // cannot create with a limit of 0
535
- CHANGE_TRUST_LOW_RESERVE = -4 // not enough funds to create a new trust line
548
+ CHANGE_TRUST_LOW_RESERVE = -4, // not enough funds to create a new trust line,
549
+ CHANGE_TRUST_SELF_NOT_ALLOWED = -5 // trusting self is not allowed
536
550
  };
537
551
 
538
552
  union ChangeTrustResult switch (ChangeTrustResultCode code)
@@ -554,7 +568,8 @@ enum AllowTrustResultCode
554
568
  ALLOW_TRUST_NO_TRUST_LINE = -2, // trustor does not have a trustline
555
569
  // source account does not require trust
556
570
  ALLOW_TRUST_TRUST_NOT_REQUIRED = -3,
557
- ALLOW_TRUST_CANT_REVOKE = -4 // source account can't revoke trust
571
+ ALLOW_TRUST_CANT_REVOKE = -4, // source account can't revoke trust,
572
+ ALLOW_TRUST_SELF_NOT_ALLOWED = -5 // trusting self is not allowed
558
573
  };
559
574
 
560
575
  union AllowTrustResult switch (AllowTrustResultCode code)
@@ -16,13 +16,37 @@ typedef hyper int64;
16
16
 
17
17
  enum CryptoKeyType
18
18
  {
19
- KEY_TYPE_ED25519 = 0
19
+ KEY_TYPE_ED25519 = 0,
20
+ KEY_TYPE_HASH_TX = 1,
21
+ KEY_TYPE_HASH_X = 2
20
22
  };
21
23
 
22
- union PublicKey switch (CryptoKeyType type)
24
+ enum PublicKeyType
23
25
  {
24
- case KEY_TYPE_ED25519:
26
+ PUBLIC_KEY_TYPE_ED25519 = KEY_TYPE_ED25519
27
+ };
28
+
29
+ enum SignerKeyType
30
+ {
31
+ SIGNER_KEY_TYPE_ED25519 = KEY_TYPE_ED25519,
32
+ SIGNER_KEY_TYPE_HASH_TX = KEY_TYPE_HASH_TX,
33
+ SIGNER_KEY_TYPE_HASH_X = KEY_TYPE_HASH_X
34
+ };
35
+
36
+ union PublicKey switch (PublicKeyType type)
37
+ {
38
+ case PUBLIC_KEY_TYPE_ED25519:
39
+ uint256 ed25519;
40
+ };
41
+
42
+ union SignerKey switch (SignerKeyType type)
43
+ {
44
+ case SIGNER_KEY_TYPE_ED25519:
25
45
  uint256 ed25519;
46
+ case SIGNER_KEY_TYPE_HASH_TX:
47
+ Hash hashTx;
48
+ case SIGNER_KEY_TYPE_HASH_X:
49
+ Hash hashX;
26
50
  };
27
51
 
28
52
  // variable size as the size depends on the signature scheme used
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.11.0
4
+ version: 0.12.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: 2016-03-03 00:00:00.000000000 Z
11
+ date: 2017-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xdr
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0
19
+ version: 2.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.0
26
+ version: 2.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: digest-crc
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: activesupport
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '4'
89
+ version: 4.2.7
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '4'
96
+ version: 4.2.7
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bundler
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -229,6 +229,7 @@ extra_rdoc_files: []
229
229
  files:
230
230
  - ".gitignore"
231
231
  - ".travis.yml"
232
+ - ".vscode/temp.sql"
232
233
  - ".yardopts"
233
234
  - CHANGELOG.md
234
235
  - CONTRIBUTING.md
@@ -339,6 +340,7 @@ files:
339
340
  - generated/stellar/peer_address/ip.rb
340
341
  - generated/stellar/price.rb
341
342
  - generated/stellar/public_key.rb
343
+ - generated/stellar/public_key_type.rb
342
344
  - generated/stellar/scp_ballot.rb
343
345
  - generated/stellar/scp_envelope.rb
344
346
  - generated/stellar/scp_history_entry.rb
@@ -355,6 +357,8 @@ files:
355
357
  - generated/stellar/set_options_result.rb
356
358
  - generated/stellar/set_options_result_code.rb
357
359
  - generated/stellar/signer.rb
360
+ - generated/stellar/signer_key.rb
361
+ - generated/stellar/signer_key_type.rb
358
362
  - generated/stellar/simple_payment_result.rb
359
363
  - generated/stellar/stellar_message.rb
360
364
  - generated/stellar/stellar_value.rb
@@ -376,6 +380,8 @@ files:
376
380
  - generated/stellar/transaction_result_pair.rb
377
381
  - generated/stellar/transaction_result_set.rb
378
382
  - generated/stellar/transaction_set.rb
383
+ - generated/stellar/transaction_signature_payload.rb
384
+ - generated/stellar/transaction_signature_payload/tagged_transaction.rb
379
385
  - generated/stellar/trust_line_entry.rb
380
386
  - generated/stellar/trust_line_entry/ext.rb
381
387
  - generated/stellar/trust_line_flags.rb
@@ -442,7 +448,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
442
448
  version: '0'
443
449
  requirements: []
444
450
  rubyforge_project:
445
- rubygems_version: 2.2.2
451
+ rubygems_version: 2.6.8
446
452
  signing_key:
447
453
  specification_version: 4
448
454
  summary: 'Stellar client library: XDR'
@@ -463,4 +469,3 @@ test_files:
463
469
  - spec/support/matchers/be_strkey.rb
464
470
  - spec/support/matchers/eq_bytes.rb
465
471
  - spec/support/matchers/have_length.rb
466
- has_rdoc: