stellar-base 0.23.0 → 0.26.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +114 -1
  3. data/README.md +4 -7
  4. data/generated/stellar-base-generated.rb +29 -1
  5. data/generated/stellar/account_entry.rb +3 -13
  6. data/generated/stellar/account_entry/ext.rb +2 -16
  7. data/generated/stellar/account_entry_extension_v1.rb +32 -0
  8. data/generated/stellar/account_entry_extension_v1/ext.rb +28 -0
  9. data/generated/stellar/account_entry_extension_v2.rb +34 -0
  10. data/generated/stellar/{account_entry/ext/v1 → account_entry_extension_v2}/ext.rb +8 -12
  11. data/generated/stellar/account_merge_result_code.rb +3 -1
  12. data/generated/stellar/begin_sponsoring_future_reserves_op.rb +18 -0
  13. data/generated/stellar/begin_sponsoring_future_reserves_result.rb +25 -0
  14. data/generated/stellar/begin_sponsoring_future_reserves_result_code.rb +29 -0
  15. data/generated/stellar/claim_claimable_balance_op.rb +18 -0
  16. data/generated/stellar/claim_claimable_balance_result.rb +25 -0
  17. data/generated/stellar/claim_claimable_balance_result_code.rb +31 -0
  18. data/generated/stellar/claim_predicate.rb +43 -0
  19. data/generated/stellar/claim_predicate_type.rb +30 -0
  20. data/generated/stellar/claimable_balance_entry.rb +44 -0
  21. data/generated/stellar/claimable_balance_entry/ext.rb +24 -0
  22. data/generated/stellar/claimable_balance_id.rb +23 -0
  23. data/generated/stellar/claimable_balance_id_type.rb +20 -0
  24. data/generated/stellar/claimant.rb +31 -0
  25. data/generated/stellar/claimant/v0.rb +22 -0
  26. data/generated/stellar/claimant_type.rb +20 -0
  27. data/generated/stellar/create_claimable_balance_op.rb +22 -0
  28. data/generated/stellar/create_claimable_balance_result.rb +27 -0
  29. data/generated/stellar/create_claimable_balance_result_code.rb +30 -0
  30. data/generated/stellar/end_sponsoring_future_reserves_result.rb +25 -0
  31. data/generated/stellar/end_sponsoring_future_reserves_result_code.rb +25 -0
  32. data/generated/stellar/envelope_type.rb +3 -1
  33. data/generated/stellar/inner_transaction_result.rb +2 -1
  34. data/generated/stellar/inner_transaction_result/result.rb +3 -1
  35. data/generated/stellar/ledger_entry.rb +4 -0
  36. data/generated/stellar/ledger_entry/data.rb +12 -8
  37. data/generated/stellar/ledger_entry/ext.rb +4 -0
  38. data/generated/stellar/ledger_entry_extension_v1.rb +30 -0
  39. data/generated/stellar/ledger_entry_extension_v1/ext.rb +24 -0
  40. data/generated/stellar/ledger_entry_type.rb +7 -5
  41. data/generated/stellar/ledger_key.rb +17 -8
  42. data/generated/stellar/ledger_key/claimable_balance.rb +20 -0
  43. data/generated/stellar/operation.rb +10 -0
  44. data/generated/stellar/operation/body.rb +45 -26
  45. data/generated/stellar/operation_id.rb +32 -0
  46. data/generated/stellar/operation_id/id.rb +24 -0
  47. data/generated/stellar/operation_result.rb +10 -0
  48. data/generated/stellar/operation_result/tr.rb +48 -28
  49. data/generated/stellar/operation_result_code.rb +3 -1
  50. data/generated/stellar/operation_type.rb +25 -15
  51. data/generated/stellar/path_payment_strict_receive_result.rb +2 -1
  52. data/generated/stellar/revoke_sponsorship_op.rb +36 -0
  53. data/generated/stellar/revoke_sponsorship_op/signer.rb +22 -0
  54. data/generated/stellar/revoke_sponsorship_result.rb +25 -0
  55. data/generated/stellar/revoke_sponsorship_result_code.rb +31 -0
  56. data/generated/stellar/revoke_sponsorship_type.rb +22 -0
  57. data/generated/stellar/transaction_result_code.rb +4 -2
  58. data/lib/stellar-base.rb +18 -5
  59. data/lib/stellar/account_flags.rb +1 -1
  60. data/lib/stellar/asset.rb +10 -0
  61. data/lib/stellar/{version.rb → base/version.rb} +1 -1
  62. data/lib/stellar/claim_predicate.rb +198 -0
  63. data/lib/stellar/compat.rb +2 -15
  64. data/lib/stellar/concerns/transaction.rb +2 -3
  65. data/lib/stellar/dsl.rb +89 -0
  66. data/lib/stellar/ext/xdr.rb +50 -0
  67. data/lib/stellar/key_pair.rb +60 -53
  68. data/lib/stellar/ledger_key.rb +32 -0
  69. data/lib/stellar/muxed_account.rb +16 -0
  70. data/lib/stellar/networks.rb +12 -12
  71. data/lib/stellar/operation.rb +59 -1
  72. data/lib/stellar/price.rb +11 -2
  73. data/lib/stellar/transaction.rb +17 -167
  74. data/lib/stellar/transaction_builder.rb +35 -18
  75. data/lib/stellar/transaction_envelope.rb +7 -43
  76. data/lib/stellar/transaction_v0.rb +5 -1
  77. data/lib/stellar/util/strkey.rb +6 -6
  78. metadata +162 -30
  79. data/generated/stellar/account_entry/ext/v1.rb +0 -34
  80. data/lib/stellar/util/continued_fraction.rb +0 -96
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d47a957d6769b441707e5072b9de09576c87bb411787d10818e885680e59de69
4
- data.tar.gz: '07820e81c7b00d7b6db48192095f5bd6ad497b3680383c85944030abaae60410'
3
+ metadata.gz: b29836900dbce5c01176c3b92c7c3ef365dbca086d700258e00299edf3edbd61
4
+ data.tar.gz: 0c17163d8d41dc0c7847ea888d5e2650b715dc43ecd552f292dc1090fce6e786
5
5
  SHA512:
6
- metadata.gz: 19b5c2836eaafa4ce5b53e5c33f373bc995428111d1463ffa3571ec0e3411c1dbec6ca319ac5689c138a2dfdd01e07fa5d3cca08fff5ba7f827f3d4d1f71ca54
7
- data.tar.gz: 342be2d0102eea5d6fe61e137a4609ff1e562639aa994eb908f9f025625ee4585a39a9cb09daaceba6824129cfc1812890577101cb62f1ede4c5d6da5e6c23ea
6
+ metadata.gz: d2470776823bd7581c6b0985756001fbfb796368aa8ecb2f6c0ead49c13b776dad0405a37b3f3f9c33c3765b84103a16cd4854a3122e1a4e9ef6712ffa1b12fe
7
+ data.tar.gz: 1c13e6d755225adc62c22f9e917e74ec178d85df6bfd440ab9ae65d757830c393bab00bb63fb9c8abac34af6c0044a738dea0a1acad03969dda754a627022875
data/CHANGELOG.md CHANGED
@@ -1,11 +1,124 @@
1
1
  # Changelog
2
2
 
3
3
  All notable changes to this project will be documented in this
4
- file. This project adheres to [Semantic Versioning](http://semver.org/).
4
+ file. The format is based on [Keep a Changelog](http://keepachangelog.com/)
5
+ and this project adheres to [Semantic Versioning](http://semver.org/).
5
6
 
6
7
  As this project is pre 1.0, breaking changes may happen for minor version
7
8
  bumps. A breaking change will get clearly notified in this log.
8
9
 
10
+ ## [Unreleased](https://github.com/stellar/ruby-stellar-sdk/compare/v0.26.0...master)
11
+
12
+ ## [0.26.0](https://github.com/stellar/ruby-stellar-sdk/compare/v0.25.0...0.26.0) - 2021-02-05
13
+ - No changes
14
+
15
+ ## [0.25.0](https://github.com/stellar/ruby-stellar-sdk/compare/v0.24.0...v0.25.0) - 2020-10-30
16
+ ### Added
17
+ - `MuxedAccount` implements `#to_keypair` conversion protocol
18
+ - `MuxedAccount` correctly responds to `#address` with strkey encoded public key
19
+ ### Fixed
20
+ - `Transaction::V0#source_account` now properly returns `MuxedAccount` instead of raw bytes
21
+
22
+ ## [0.24.0](https://github.com/stellar/ruby-stellar-sdk/compare/v0.23.1...v0.24.0) - 2020-10-20
23
+ ### Added
24
+ - Add conversion methods for KeyPair and Asset
25
+ - Stellar Protocol 14 support
26
+ - Regenerate XDR wrappers from definitions in stellar-core 14.1.1
27
+ - Add [CAP-23 Two-Part Payments](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0023.md) support
28
+ - Add ClaimPredicate DSL methods which help with creation of claim predicates.
29
+ ```ruby
30
+ # use class-level helpers to create simple predicates
31
+ unconditional = Stellar::ClaimPredicate.unconditional
32
+ before_rel_time = Stellar::ClaimPredicate.before_relative_time(1.hour)
33
+ before_abs_time = Stellar::ClaimPredicate.before_absolute_time(Date.tomorrow.beginning_of_day)
34
+
35
+ # negate predicates using `~` unary operator
36
+ ~predicate # same as predicate.not
37
+
38
+ # build complex predicates using `&` and `|` infix operators
39
+ predicate & other_predicate # same as `predicate.and(other_predicate)`
40
+ predicate | other_predicate # same as `predicate.or(other_predicate)`
41
+
42
+ # quickly define complex predicates using `.compose` class method with the block
43
+ unconditional = Stellar::ClaimPredicate.compose { }
44
+ complex = Stellar::ClaimPredicate.compose do
45
+ before_relative_time(1.week) & ~before_relative_time(10.seconds) |
46
+ end
47
+
48
+ # here's what building this predicate would look like without DSL
49
+ complex = Stellar::ClaimPredicate.new(
50
+ Stellar::ClaimPredicateType::AND,
51
+ Stellar::ClaimPredicate.new(
52
+ Stellar::ClaimPredicateType::BEFORE_RELATIVE_TIME, 7 * 24 * 60 * 60
53
+ ),
54
+ Stellar::ClaimPredicate.new(
55
+ Stellar::ClaimPredicateType::NOT, Stellar::ClaimPredicate.new(
56
+ Stellar::ClaimPredicateType::BEFORE_RELATIVE_TIME, 10
57
+ )
58
+ )
59
+ )
60
+
61
+ ```
62
+ - Extend Operation with `create_claimable_balance` and `claim_claimable_balance` helpers
63
+ - Add Claimant and ClaimPredicate DSL methods to reduce the noise.
64
+ ```ruby
65
+ include Stellar::DSL
66
+
67
+ sender = KeyPair('S....')
68
+ recipient = 'G....'
69
+
70
+ op = Operation.create_claimable_balance(
71
+ asset: Stellar::Asset.native,
72
+ amount: 100,
73
+ claimants: [
74
+ Claimant(recipient) { after(10.seconds) & before(1.week) },
75
+ Claimant(sender), # allow unconditional claim-back
76
+ ]
77
+ )
78
+ ])
79
+ ```
80
+ - Add simple predicate evaluation feature so that developers can sanity-check their predicates
81
+ ```ruby
82
+ include Stellar::DSL
83
+
84
+ predicate = ClaimPredicate { before_relative_time(1.week) & ~before_relative_time(10.seconds) }
85
+
86
+ # predicate.evaluate(balance_creation_time, claim_evaluation_time)
87
+ predicate.evaluate("2020-10-20 09:00:00", "2020-10-20 09:00:05") # => false
88
+ predicate.evaluate("2020-10-20 09:00:00", "2020-10-20 09:01:00") # => true
89
+ predicate.evaluate("2020-10-20 09:00:00", "2020-10-27 08:50:00") # => true
90
+
91
+ # you can also pass an instance of ActiveSupport::Duration as a second parameter, in this case
92
+ # it works as a relative offset from `balance_creation_time`
93
+ predicate.evaluate("2020-10-20 09:00:00", 1.week + 1.second) # => false
94
+
95
+ # it is effectively the same as
96
+ predicate.evaluate("2020-10-20 09:00:00", "2020-10-27 09:00:01") # => false
97
+ ```
98
+ - Add [CAP-33 Sponsored Reserves](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0033.md) support
99
+ - Extend the operation class with helpers that allow sponsoring reserves and also revoke sponsorships.
100
+ - `Operation.begin_sponsoring_future_reserves`
101
+ - `Operation.end_sponsoring_future_reserves`
102
+ - `Operation.revoke_sponsorship(account_id:)`
103
+ - `Operation.revoke_sponsorship(account_id:, asset:)`
104
+ - `Operation.revoke_sponsorship(account_id:, offer_id:)`
105
+ - `Operation.revoke_sponsorship(account_id:, data_name:)`
106
+ - `Operation.revoke_sponsorship(account_id:, balance_id:)`
107
+ - `Operation.revoke_sponsorship(account_id:, signer:)`
108
+
109
+
110
+ ## [0.23.1](https://github.com/stellar/ruby-stellar-sdk/compare/v0.23.0...v0.23.1) - 2020-06-18
111
+ ### Added
112
+ - Transaction builder now builds V1 transactions
113
+ - FeeBumpTransaction can wrap V0 transaction
114
+
115
+ ## [0.23.0](https://github.com/stellar/ruby-stellar-sdk/compare/v0.22.0...v0.23.0) - 2020-06-11
116
+ ### Added
117
+ - Stellar Protocol 13 support
118
+ - Fee-Bump transactions ([CAP-0015](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0015.md))
119
+ - Multiplexed accounts ([CAP-0027](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0027.md))
120
+ - Fine-Grained control on trustline authorization ([CAP-0018](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0018.md))
121
+
9
122
  ## [0.22.0](https://github.com/stellar/ruby-stellar-base/compare/v0.21.0...v0.22.0) - 2020-03-26
10
123
  ### Added
11
124
  - Add TransactionBuilder ([#54](https://github.com/stellar/ruby-stellar-base/issues/54))
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
- # Stellar::Base
2
-
3
- [![Build Status](https://travis-ci.org/stellar/ruby-stellar-base.svg)](https://travis-ci.org/stellar/ruby-stellar-base)
4
- [![Code Climate](https://codeclimate.com/github/stellar/ruby-stellar-base/badges/gpa.svg)](https://codeclimate.com/github/stellar/ruby-stellar-base)
1
+ # Stellar SDK for Ruby: XDR and Low Level Abstractions
2
+ [![stellar-base](https://badge.fury.io/rb/stellar-base.svg)](https://badge.fury.io/rb/stellar-base)
3
+ [![Test](https://github.com/astroband/ruby-stellar-sdk/workflows/Test/badge.svg)](https://github.com/astroband/ruby-stellar-sdk/actions?query=branch%3Amaster)
4
+ [![Maintainability](https://api.codeclimate.com/v1/badges/dadfcd9396aba493cb93/maintainability)](https://codeclimate.com/github/astroband/ruby-stellar-sdk/maintainability)
5
5
 
6
6
  The stellar-base library is the lowest-level stellar helper library. It consists of classes
7
7
  to read, write, hash, and sign the xdr structures that are used in stellard.
@@ -12,15 +12,12 @@ Add this line to your application's Gemfile:
12
12
 
13
13
  ```ruby
14
14
  gem 'stellar-base'
15
- gem 'xdr', git: 'https://github.com/stellar/ruby-xdr.git', tag: 'v3.0.1'
16
15
  ```
17
16
 
18
17
  And then execute:
19
18
 
20
19
  $ bundle
21
20
 
22
- **Note** we need to add such explicit xdr dependency, because version 3.0.1 is not on RubyGems yet. When it's published, you can remove this line
23
-
24
21
  Also requires libsodium. Installable via `brew install libsodium` on OS X.
25
22
 
26
23
  ## Supported Ruby Versions
@@ -46,6 +46,10 @@ module Stellar
46
46
  autoload :Signer
47
47
  autoload :AccountFlags
48
48
  MASK_ACCOUNT_FLAGS = 0x7
49
+ MAX_SIGNERS = 20
50
+ SponsorshipDescriptor = XDR::Option[AccountID]
51
+ autoload :AccountEntryExtensionV2
52
+ autoload :AccountEntryExtensionV1
49
53
  autoload :AccountEntry
50
54
  autoload :TrustLineFlags
51
55
  MASK_TRUSTLINE_FLAGS = 1
@@ -55,7 +59,16 @@ module Stellar
55
59
  MASK_OFFERENTRY_FLAGS = 1
56
60
  autoload :OfferEntry
57
61
  autoload :DataEntry
62
+ autoload :ClaimPredicateType
63
+ autoload :ClaimPredicate
64
+ autoload :ClaimantType
65
+ autoload :Claimant
66
+ autoload :ClaimableBalanceIDType
67
+ autoload :ClaimableBalanceID
68
+ autoload :ClaimableBalanceEntry
69
+ autoload :LedgerEntryExtensionV1
58
70
  autoload :LedgerEntry
71
+ autoload :LedgerKey
59
72
  autoload :EnvelopeType
60
73
  end
61
74
  module Stellar
@@ -76,7 +89,13 @@ module Stellar
76
89
  autoload :AllowTrustOp
77
90
  autoload :ManageDataOp
78
91
  autoload :BumpSequenceOp
92
+ autoload :CreateClaimableBalanceOp
93
+ autoload :ClaimClaimableBalanceOp
94
+ autoload :BeginSponsoringFutureReservesOp
95
+ autoload :RevokeSponsorshipType
96
+ autoload :RevokeSponsorshipOp
79
97
  autoload :Operation
98
+ autoload :OperationID
80
99
  autoload :MemoType
81
100
  autoload :Memo
82
101
  autoload :TimeBounds
@@ -120,6 +139,16 @@ module Stellar
120
139
  autoload :ManageDataResult
121
140
  autoload :BumpSequenceResultCode
122
141
  autoload :BumpSequenceResult
142
+ autoload :CreateClaimableBalanceResultCode
143
+ autoload :CreateClaimableBalanceResult
144
+ autoload :ClaimClaimableBalanceResultCode
145
+ autoload :ClaimClaimableBalanceResult
146
+ autoload :BeginSponsoringFutureReservesResultCode
147
+ autoload :BeginSponsoringFutureReservesResult
148
+ autoload :EndSponsoringFutureReservesResultCode
149
+ autoload :EndSponsoringFutureReservesResult
150
+ autoload :RevokeSponsorshipResultCode
151
+ autoload :RevokeSponsorshipResult
123
152
  autoload :OperationResultCode
124
153
  autoload :OperationResult
125
154
  autoload :TransactionResultCode
@@ -137,7 +166,6 @@ module Stellar
137
166
  autoload :LedgerHeader
138
167
  autoload :LedgerUpgradeType
139
168
  autoload :LedgerUpgrade
140
- autoload :LedgerKey
141
169
  autoload :BucketEntryType
142
170
  autoload :BucketMetadata
143
171
  autoload :BucketEntry
@@ -21,7 +21,7 @@ require 'xdr'
21
21
  # // thresholds stores unsigned bytes: [weight of master|low|medium|high]
22
22
  # Thresholds thresholds;
23
23
  #
24
- # Signer signers<20>; // possible signers for this account
24
+ # Signer signers<MAX_SIGNERS>; // possible signers for this account
25
25
  #
26
26
  # // reserved for future use
27
27
  # union switch (int v)
@@ -29,17 +29,7 @@ require 'xdr'
29
29
  # case 0:
30
30
  # void;
31
31
  # case 1:
32
- # struct
33
- # {
34
- # Liabilities liabilities;
35
- #
36
- # union switch (int v)
37
- # {
38
- # case 0:
39
- # void;
40
- # }
41
- # ext;
42
- # } v1;
32
+ # AccountEntryExtensionV1 v1;
43
33
  # }
44
34
  # ext;
45
35
  # };
@@ -59,7 +49,7 @@ module Stellar
59
49
  attribute :flags, Uint32
60
50
  attribute :home_domain, String32
61
51
  attribute :thresholds, Thresholds
62
- attribute :signers, XDR::VarArray[Signer, 20]
52
+ attribute :signers, XDR::VarArray[Signer, MAX_SIGNERS]
63
53
  attribute :ext, Ext
64
54
  end
65
55
  end
@@ -10,33 +10,19 @@ require 'xdr'
10
10
  # case 0:
11
11
  # void;
12
12
  # case 1:
13
- # struct
14
- # {
15
- # Liabilities liabilities;
16
- #
17
- # union switch (int v)
18
- # {
19
- # case 0:
20
- # void;
21
- # }
22
- # ext;
23
- # } v1;
13
+ # AccountEntryExtensionV1 v1;
24
14
  # }
25
15
  #
26
16
  # ===========================================================================
27
17
  module Stellar
28
18
  class AccountEntry
29
19
  class Ext < XDR::Union
30
- include XDR::Namespace
31
-
32
- autoload :V1
33
-
34
20
  switch_on XDR::Int, :v
35
21
 
36
22
  switch 0
37
23
  switch 1, :v1
38
24
 
39
- attribute :v1, V1
25
+ attribute :v1, AccountEntryExtensionV1
40
26
  end
41
27
  end
42
28
  end
@@ -0,0 +1,32 @@
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 AccountEntryExtensionV1
9
+ # {
10
+ # Liabilities liabilities;
11
+ #
12
+ # union switch (int v)
13
+ # {
14
+ # case 0:
15
+ # void;
16
+ # case 2:
17
+ # AccountEntryExtensionV2 v2;
18
+ # }
19
+ # ext;
20
+ # };
21
+ #
22
+ # ===========================================================================
23
+ module Stellar
24
+ class AccountEntryExtensionV1 < XDR::Struct
25
+ include XDR::Namespace
26
+
27
+ autoload :Ext
28
+
29
+ attribute :liabilities, Liabilities
30
+ attribute :ext, Ext
31
+ end
32
+ 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
+ # union switch (int v)
9
+ # {
10
+ # case 0:
11
+ # void;
12
+ # case 2:
13
+ # AccountEntryExtensionV2 v2;
14
+ # }
15
+ #
16
+ # ===========================================================================
17
+ module Stellar
18
+ class AccountEntryExtensionV1
19
+ class Ext < XDR::Union
20
+ switch_on XDR::Int, :v
21
+
22
+ switch 0
23
+ switch 2, :v2
24
+
25
+ attribute :v2, AccountEntryExtensionV2
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,34 @@
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 AccountEntryExtensionV2
9
+ # {
10
+ # uint32 numSponsored;
11
+ # uint32 numSponsoring;
12
+ # SponsorshipDescriptor signerSponsoringIDs<MAX_SIGNERS>;
13
+ #
14
+ # union switch (int v)
15
+ # {
16
+ # case 0:
17
+ # void;
18
+ # }
19
+ # ext;
20
+ # };
21
+ #
22
+ # ===========================================================================
23
+ module Stellar
24
+ class AccountEntryExtensionV2 < XDR::Struct
25
+ include XDR::Namespace
26
+
27
+ autoload :Ext
28
+
29
+ attribute :num_sponsored, Uint32
30
+ attribute :num_sponsoring, Uint32
31
+ attribute :signer_sponsoring_i_ds, XDR::VarArray[SponsorshipDescriptor, MAX_SIGNERS]
32
+ attribute :ext, Ext
33
+ end
34
+ end
@@ -6,23 +6,19 @@ require 'xdr'
6
6
  # === xdr source ============================================================
7
7
  #
8
8
  # union switch (int v)
9
- # {
10
- # case 0:
11
- # void;
12
- # }
9
+ # {
10
+ # case 0:
11
+ # void;
12
+ # }
13
13
  #
14
14
  # ===========================================================================
15
15
  module Stellar
16
- class AccountEntry
17
- class Ext
18
- class V1
19
- class Ext < XDR::Union
20
- switch_on XDR::Int, :v
16
+ class AccountEntryExtensionV2
17
+ class Ext < XDR::Union
18
+ switch_on XDR::Int, :v
21
19
 
22
- switch 0
20
+ switch 0
23
21
 
24
- end
25
- end
26
22
  end
27
23
  end
28
24
  end
@@ -15,8 +15,9 @@ require 'xdr'
15
15
  # ACCOUNT_MERGE_IMMUTABLE_SET = -3, // source account has AUTH_IMMUTABLE set
16
16
  # ACCOUNT_MERGE_HAS_SUB_ENTRIES = -4, // account has trust lines/offers
17
17
  # ACCOUNT_MERGE_SEQNUM_TOO_FAR = -5, // sequence number is over max allowed
18
- # ACCOUNT_MERGE_DEST_FULL = -6 // can't add source balance to
18
+ # ACCOUNT_MERGE_DEST_FULL = -6, // can't add source balance to
19
19
  # // destination balance
20
+ # ACCOUNT_MERGE_IS_SPONSOR = -7 // can't merge account that is a sponsor
20
21
  # };
21
22
  #
22
23
  # ===========================================================================
@@ -29,6 +30,7 @@ module Stellar
29
30
  member :account_merge_has_sub_entries, -4
30
31
  member :account_merge_seqnum_too_far, -5
31
32
  member :account_merge_dest_full, -6
33
+ member :account_merge_is_sponsor, -7
32
34
 
33
35
  seal
34
36
  end