auction-ruby-base 0.1.1

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.
Files changed (226) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.travis.yml +15 -0
  4. data/.yardopts +8 -0
  5. data/CHANGELOG.md +58 -0
  6. data/CONTRIBUTING.md +48 -0
  7. data/Gemfile +15 -0
  8. data/Guardfile +5 -0
  9. data/LICENSE.txt +202 -0
  10. data/README.md +83 -0
  11. data/Rakefile +4 -0
  12. data/auction-ruby-base.gemspec +35 -0
  13. data/examples/create_account.rb +26 -0
  14. data/examples/low_level_transaction_post.rb +46 -0
  15. data/examples/mid_level_transaction_post.rb +33 -0
  16. data/examples/non_native_payment.rb +60 -0
  17. data/examples/offer.rb +75 -0
  18. data/examples/transaction_merge.rb +23 -0
  19. data/generated/stellar-base-generated.rb +174 -0
  20. data/generated/stellar/account_entry.rb +55 -0
  21. data/generated/stellar/account_entry/ext.rb +24 -0
  22. data/generated/stellar/account_flags.rb +31 -0
  23. data/generated/stellar/account_merge_result.rb +26 -0
  24. data/generated/stellar/account_merge_result_code.rb +30 -0
  25. data/generated/stellar/affirm_fail_op.rb +22 -0
  26. data/generated/stellar/affirm_fail_result.rb +25 -0
  27. data/generated/stellar/affirm_fail_result_code.rb +22 -0
  28. data/generated/stellar/affirm_pass_op.rb +24 -0
  29. data/generated/stellar/affirm_pass_result.rb +25 -0
  30. data/generated/stellar/affirm_pass_result_code.rb +22 -0
  31. data/generated/stellar/allow_trust_op.rb +38 -0
  32. data/generated/stellar/allow_trust_op/asset.rb +33 -0
  33. data/generated/stellar/allow_trust_result.rb +25 -0
  34. data/generated/stellar/allow_trust_result_code.rb +31 -0
  35. data/generated/stellar/asset.rb +47 -0
  36. data/generated/stellar/asset/alpha_num12.rb +22 -0
  37. data/generated/stellar/asset/alpha_num4.rb +22 -0
  38. data/generated/stellar/asset_type.rb +24 -0
  39. data/generated/stellar/auth.rb +20 -0
  40. data/generated/stellar/auth_cert.rb +22 -0
  41. data/generated/stellar/authenticated_message.rb +32 -0
  42. data/generated/stellar/authenticated_message/v0.rb +24 -0
  43. data/generated/stellar/bucket_entry.rb +28 -0
  44. data/generated/stellar/bucket_entry_type.rb +22 -0
  45. data/generated/stellar/change_trust_op.rb +22 -0
  46. data/generated/stellar/change_trust_result.rb +25 -0
  47. data/generated/stellar/change_trust_result_code.rb +31 -0
  48. data/generated/stellar/claim_offer_atom.rb +33 -0
  49. data/generated/stellar/create_account_op.rb +20 -0
  50. data/generated/stellar/create_account_result.rb +25 -0
  51. data/generated/stellar/create_account_result_code.rb +32 -0
  52. data/generated/stellar/create_bid_op.rb +20 -0
  53. data/generated/stellar/create_bid_result.rb +25 -0
  54. data/generated/stellar/create_bid_result_code.rb +22 -0
  55. data/generated/stellar/create_lot_op.rb +46 -0
  56. data/generated/stellar/create_lot_result.rb +25 -0
  57. data/generated/stellar/create_lot_result_code.rb +22 -0
  58. data/generated/stellar/create_passive_offer_op.rb +24 -0
  59. data/generated/stellar/crypto_key_type.rb +20 -0
  60. data/generated/stellar/curve25519_public.rb +18 -0
  61. data/generated/stellar/curve25519_secret.rb +18 -0
  62. data/generated/stellar/decorated_signature.rb +20 -0
  63. data/generated/stellar/dont_have.rb +20 -0
  64. data/generated/stellar/envelope_type.rb +24 -0
  65. data/generated/stellar/error.rb +20 -0
  66. data/generated/stellar/error_code.rb +28 -0
  67. data/generated/stellar/hello.rb +34 -0
  68. data/generated/stellar/hmac_sha256_key.rb +18 -0
  69. data/generated/stellar/hmac_sha256_mac.rb +18 -0
  70. data/generated/stellar/inflation_payout.rb +20 -0
  71. data/generated/stellar/inflation_result.rb +26 -0
  72. data/generated/stellar/inflation_result_code.rb +24 -0
  73. data/generated/stellar/ip_addr_type.rb +22 -0
  74. data/generated/stellar/ledger_entry.rb +52 -0
  75. data/generated/stellar/ledger_entry/data.rb +49 -0
  76. data/generated/stellar/ledger_entry/ext.rb +24 -0
  77. data/generated/stellar/ledger_entry_change.rb +35 -0
  78. data/generated/stellar/ledger_entry_change_type.rb +26 -0
  79. data/generated/stellar/ledger_entry_type.rb +32 -0
  80. data/generated/stellar/ledger_header.rb +69 -0
  81. data/generated/stellar/ledger_header/ext.rb +24 -0
  82. data/generated/stellar/ledger_header_history_entry.rb +33 -0
  83. data/generated/stellar/ledger_header_history_entry/ext.rb +24 -0
  84. data/generated/stellar/ledger_key.rb +87 -0
  85. data/generated/stellar/ledger_key/account.rb +20 -0
  86. data/generated/stellar/ledger_key/lot.rb +22 -0
  87. data/generated/stellar/ledger_key/message.rb +22 -0
  88. data/generated/stellar/ledger_key/offer.rb +22 -0
  89. data/generated/stellar/ledger_key/participant.rb +22 -0
  90. data/generated/stellar/ledger_key/proof.rb +22 -0
  91. data/generated/stellar/ledger_key/trust_line.rb +22 -0
  92. data/generated/stellar/ledger_scp_messages.rb +20 -0
  93. data/generated/stellar/ledger_upgrade.rb +31 -0
  94. data/generated/stellar/ledger_upgrade_type.rb +24 -0
  95. data/generated/stellar/lot_branch.rb +21 -0
  96. data/generated/stellar/lot_entry.rb +64 -0
  97. data/generated/stellar/lot_entry/ext.rb +24 -0
  98. data/generated/stellar/lot_type.rb +21 -0
  99. data/generated/stellar/manage_offer_effect.rb +24 -0
  100. data/generated/stellar/manage_offer_op.rb +28 -0
  101. data/generated/stellar/manage_offer_result.rb +26 -0
  102. data/generated/stellar/manage_offer_result_code.rb +50 -0
  103. data/generated/stellar/manage_offer_success_result.rb +34 -0
  104. data/generated/stellar/manage_offer_success_result/offer.rb +30 -0
  105. data/generated/stellar/memo.rb +38 -0
  106. data/generated/stellar/memo_type.rb +28 -0
  107. data/generated/stellar/message_entry.rb +38 -0
  108. data/generated/stellar/message_entry/ext.rb +24 -0
  109. data/generated/stellar/message_type.rb +51 -0
  110. data/generated/stellar/offer_entry.rb +49 -0
  111. data/generated/stellar/offer_entry/ext.rb +24 -0
  112. data/generated/stellar/offer_entry_flags.rb +21 -0
  113. data/generated/stellar/operation.rb +65 -0
  114. data/generated/stellar/operation/body.rb +88 -0
  115. data/generated/stellar/operation_meta.rb +18 -0
  116. data/generated/stellar/operation_result.rb +67 -0
  117. data/generated/stellar/operation_result/tr.rb +89 -0
  118. data/generated/stellar/operation_result_code.rb +25 -0
  119. data/generated/stellar/operation_type.rb +52 -0
  120. data/generated/stellar/participant_entry.rb +39 -0
  121. data/generated/stellar/participant_entry/ext.rb +24 -0
  122. data/generated/stellar/participant_state.rb +25 -0
  123. data/generated/stellar/path_payment_op.rb +32 -0
  124. data/generated/stellar/path_payment_result.rb +38 -0
  125. data/generated/stellar/path_payment_result/success.rb +22 -0
  126. data/generated/stellar/path_payment_result_code.rb +47 -0
  127. data/generated/stellar/payment_op.rb +22 -0
  128. data/generated/stellar/payment_result.rb +25 -0
  129. data/generated/stellar/payment_result_code.rb +41 -0
  130. data/generated/stellar/peer_address.rb +33 -0
  131. data/generated/stellar/peer_address/ip.rb +29 -0
  132. data/generated/stellar/price.rb +20 -0
  133. data/generated/stellar/proof_entry.rb +42 -0
  134. data/generated/stellar/proof_entry/ext.rb +24 -0
  135. data/generated/stellar/provide_proof_op.rb +24 -0
  136. data/generated/stellar/provide_proof_result.rb +25 -0
  137. data/generated/stellar/provide_proof_result_code.rb +22 -0
  138. data/generated/stellar/public_key.rb +23 -0
  139. data/generated/stellar/register_participant_op.rb +22 -0
  140. data/generated/stellar/register_participant_result.rb +25 -0
  141. data/generated/stellar/register_participant_result_code.rb +22 -0
  142. data/generated/stellar/scp_ballot.rb +20 -0
  143. data/generated/stellar/scp_envelope.rb +20 -0
  144. data/generated/stellar/scp_history_entry.rb +23 -0
  145. data/generated/stellar/scp_history_entry_v0.rb +20 -0
  146. data/generated/stellar/scp_nomination.rb +22 -0
  147. data/generated/stellar/scp_quorum_set.rb +22 -0
  148. data/generated/stellar/scp_statement.rb +58 -0
  149. data/generated/stellar/scp_statement/pledges.rb +63 -0
  150. data/generated/stellar/scp_statement/pledges/confirm.rb +30 -0
  151. data/generated/stellar/scp_statement/pledges/externalize.rb +26 -0
  152. data/generated/stellar/scp_statement/pledges/prepare.rb +32 -0
  153. data/generated/stellar/scp_statement_type.rb +26 -0
  154. data/generated/stellar/send_message_op.rb +22 -0
  155. data/generated/stellar/send_message_result.rb +25 -0
  156. data/generated/stellar/send_message_result_code.rb +22 -0
  157. data/generated/stellar/set_options_op.rb +41 -0
  158. data/generated/stellar/set_options_result.rb +25 -0
  159. data/generated/stellar/set_options_result_code.rb +40 -0
  160. data/generated/stellar/signer.rb +20 -0
  161. data/generated/stellar/simple_payment_result.rb +22 -0
  162. data/generated/stellar/stellar_message.rb +74 -0
  163. data/generated/stellar/stellar_value.rb +41 -0
  164. data/generated/stellar/stellar_value/ext.rb +24 -0
  165. data/generated/stellar/threshold_indexes.rb +26 -0
  166. data/generated/stellar/time_bounds.rb +20 -0
  167. data/generated/stellar/transaction.rb +50 -0
  168. data/generated/stellar/transaction/ext.rb +24 -0
  169. data/generated/stellar/transaction_envelope.rb +20 -0
  170. data/generated/stellar/transaction_history_entry.rb +33 -0
  171. data/generated/stellar/transaction_history_entry/ext.rb +24 -0
  172. data/generated/stellar/transaction_history_result_entry.rb +33 -0
  173. data/generated/stellar/transaction_history_result_entry/ext.rb +24 -0
  174. data/generated/stellar/transaction_meta.rb +23 -0
  175. data/generated/stellar/transaction_result.rb +43 -0
  176. data/generated/stellar/transaction_result/ext.rb +24 -0
  177. data/generated/stellar/transaction_result/result.rb +30 -0
  178. data/generated/stellar/transaction_result_code.rb +45 -0
  179. data/generated/stellar/transaction_result_pair.rb +20 -0
  180. data/generated/stellar/transaction_result_set.rb +18 -0
  181. data/generated/stellar/transaction_set.rb +20 -0
  182. data/generated/stellar/trust_line_entry.rb +41 -0
  183. data/generated/stellar/trust_line_entry/ext.rb +24 -0
  184. data/generated/stellar/trust_line_flags.rb +21 -0
  185. data/lib/stellar-base.rb +33 -0
  186. data/lib/stellar/account_flags.rb +28 -0
  187. data/lib/stellar/asset.rb +69 -0
  188. data/lib/stellar/base.rb +1 -0
  189. data/lib/stellar/base/version.rb +5 -0
  190. data/lib/stellar/convert.rb +32 -0
  191. data/lib/stellar/key_pair.rb +112 -0
  192. data/lib/stellar/networks.rb +45 -0
  193. data/lib/stellar/operation.rb +384 -0
  194. data/lib/stellar/path_payment_result.rb +17 -0
  195. data/lib/stellar/price.rb +32 -0
  196. data/lib/stellar/thresholds.rb +39 -0
  197. data/lib/stellar/transaction.rb +205 -0
  198. data/lib/stellar/transaction_envelope.rb +32 -0
  199. data/lib/stellar/util/continued_fraction.rb +96 -0
  200. data/lib/stellar/util/strkey.rb +43 -0
  201. data/spec/lib/stellar/account_flags_spec.rb +19 -0
  202. data/spec/lib/stellar/asset_spec.rb +45 -0
  203. data/spec/lib/stellar/convert_spec.rb +61 -0
  204. data/spec/lib/stellar/key_pair_spec.rb +238 -0
  205. data/spec/lib/stellar/networks_spec.rb +77 -0
  206. data/spec/lib/stellar/operation_spec.rb +13 -0
  207. data/spec/lib/stellar/path_payment_result_spec.rb +95 -0
  208. data/spec/lib/stellar/price_spec.rb +34 -0
  209. data/spec/lib/stellar/thresholds_spec.rb +62 -0
  210. data/spec/lib/stellar/transaction_envelope_spec.rb +93 -0
  211. data/spec/lib/stellar/transaction_spec.rb +83 -0
  212. data/spec/lib/stellar/util/strkey_spec.rb +46 -0
  213. data/spec/spec_helper.rb +16 -0
  214. data/spec/support/matchers/be_strkey.rb +9 -0
  215. data/spec/support/matchers/eq_bytes.rb +5 -0
  216. data/spec/support/matchers/have_length.rb +5 -0
  217. data/tasks/rspec.rake +6 -0
  218. data/tasks/travis.rake +1 -0
  219. data/tasks/xdr.rake +50 -0
  220. data/xdr/Stellar-SCP.x +86 -0
  221. data/xdr/Stellar-ledger-entries.x +351 -0
  222. data/xdr/Stellar-ledger.x +288 -0
  223. data/xdr/Stellar-overlay.x +146 -0
  224. data/xdr/Stellar-transaction.x +936 -0
  225. data/xdr/Stellar-types.x +55 -0
  226. metadata +495 -0
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require "bundler/gem_tasks"
2
+ Bundler.setup
3
+
4
+ Dir["tasks/**/*.rake"].each{|f| load f}
@@ -0,0 +1,35 @@
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'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "auction-ruby-base"
8
+ spec.version = Stellar::Base::VERSION
9
+ spec.authors = ["Hlib Naumenko"]
10
+ spec.summary = %q{eAuction client library: XDR}
11
+ spec.license = "Apache 2.0"
12
+
13
+ spec.files = `git ls-files -z`.split("\x0")
14
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
15
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
+ spec.require_paths = ["generated", "lib"]
17
+
18
+ spec.add_dependency "xdr", "~> 1.0.0"
19
+ spec.add_dependency "digest-crc"
20
+ spec.add_dependency "base32"
21
+ spec.add_dependency "rbnacl"
22
+ spec.add_dependency "rbnacl-libsodium", "~> 1.0.3"
23
+ spec.add_dependency "activesupport", "~> 4"
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.7"
26
+ spec.add_development_dependency "rake", "~> 10.0"
27
+ spec.add_development_dependency "xdrgen"
28
+ spec.add_development_dependency "rspec", "~> 3.1"
29
+ spec.add_development_dependency "guard-rspec"
30
+ spec.add_development_dependency "simplecov"
31
+ spec.add_development_dependency "octokit"
32
+ spec.add_development_dependency "netrc"
33
+ spec.add_development_dependency "yard"
34
+
35
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+
4
+ require 'stellar-base'
5
+ require 'faraday'
6
+ require 'faraday_middleware'
7
+
8
+ $server = Faraday.new(url: "http://localhost:39132") do |conn|
9
+ conn.response :json
10
+ conn.adapter Faraday.default_adapter
11
+ end
12
+
13
+ master = Stellar::KeyPair.master
14
+ destination = Stellar::KeyPair.random
15
+
16
+ tx = Stellar::Transaction.create_account({
17
+ account: master,
18
+ destination: destination,
19
+ sequence: 1,
20
+ starting_balance: 50
21
+ })
22
+
23
+ b64 = tx.to_envelope(master).to_xdr(:base64)
24
+ p b64
25
+ result = $server.get('tx', blob: b64)
26
+ p result.body
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This is an example of using the raw xdr objects to post a transaction
4
+ # notice that we must manually hash/sign the structures and we must manually
5
+ # fill out all the fields.
6
+ #
7
+ # Look at mid_level_transaction_post.rb to see a friendlier form
8
+
9
+ require 'rbnacl'
10
+ require 'stellar-base'
11
+ require 'faraday'
12
+ require 'digest/sha2'
13
+
14
+ master = RbNaCl::SigningKey.new("allmylifemyhearthasbeensearching")
15
+ destination = RbNaCl::SigningKey.new("allmylifemyhearthasbeensearching")
16
+
17
+ tx = Stellar::Transaction.new
18
+ tx.account = master.verify_key.to_bytes
19
+ tx.fee = 1000
20
+ tx.seq_num = 1
21
+
22
+ payment = Stellar::PaymentOp.new
23
+ payment.destination = destination.verify_key.to_bytes
24
+ payment.asset = Stellar::Asset.new(:native)
25
+ payment.amount = 200 * Stellar::ONE
26
+
27
+ op = Stellar::Operation.new
28
+ op.body = Stellar::Operation::Body.new(:payment, payment)
29
+
30
+ tx.operations = [op]
31
+
32
+ raw = tx.to_xdr
33
+ tx_hash = Digest::SHA256.digest raw
34
+ signature = master.sign(tx_hash)
35
+
36
+ env = Stellar::TransactionEnvelope.new
37
+ env.tx = tx
38
+ env.signatures = [Stellar::DecoratedSignature.new({
39
+ hint:master.verify_key.to_bytes[0...4],
40
+ signature:signature
41
+ })]
42
+
43
+ env_hex = env.to_xdr.unpack("H*").first
44
+
45
+ result = Faraday.get('http://localhost:39132/tx', blob: env_hex)
46
+ puts result.body
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This is an example of using the higher level "payment" wrapper. Notice
4
+ # that we are using KeyPair instead of the raw rbnacl keys and that we need
5
+ # not build the entire heirarchy of xdr object manually.
6
+ #
7
+ # You can see where these helpers are defined in the files underneath /lib,
8
+ # which is where we extend the xdrgen generated source files with our higher
9
+ # level api.
10
+
11
+ require 'stellar-base'
12
+ require 'faraday'
13
+ require 'faraday_middleware'
14
+
15
+ $server = Faraday.new(url: "http://localhost:39132") do |conn|
16
+ conn.response :json
17
+ conn.adapter Faraday.default_adapter
18
+ end
19
+
20
+ master = Stellar::KeyPair.from_raw_seed("allmylifemyhearthasbeensearching")
21
+ destination = Stellar::KeyPair.from_raw_seed("allmylifemyhearthasbeensearching")
22
+
23
+ tx = Stellar::Transaction.payment({
24
+ account: master,
25
+ destination: destination,
26
+ sequence: 1,
27
+ amount: [:native, 20]
28
+ })
29
+
30
+ b64 = tx.to_envelope(master).to_xdr(:base64)
31
+
32
+ result = $server.get('tx', blob: b64)
33
+ p result.body
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This is an example of using the higher level "payment" wrapper. Notice
4
+ # that we are using KeyPair instead of the raw rbnacl keys and that we need
5
+ # not build the entire heirarchy of xdr object manually.
6
+ #
7
+ # You can see where these helpers are defined in the files underneath /lib,
8
+ # which is where we extend the xdrgen generated source files with our higher
9
+ # level api.
10
+ #
11
+ # NOTE: due to the way that sequence number for a new account are set, this
12
+ # example is pretty cumbersome to run. It is only used for illustrative purposes
13
+ # of the flow
14
+
15
+ require 'stellar-base'
16
+ require 'faraday'
17
+ require 'faraday_middleware'
18
+
19
+ $server = Faraday.new(url: "http://localhost:39132") do |conn|
20
+ conn.response :json
21
+ conn.adapter Faraday.default_adapter
22
+ end
23
+
24
+ def submit(key, tx)
25
+ b64 = tx.to_envelope(key).to_xdr(:base64)
26
+ response = $server.get('tx', blob: b64)
27
+ raw = [response.body["result"]].pack("H*")
28
+ p response.body
29
+ end
30
+
31
+ master = Stellar::KeyPair.master
32
+ destination = Stellar::KeyPair.master
33
+
34
+ submit master, Stellar::Transaction.payment({
35
+ account: master,
36
+ destination: destination,
37
+ sequence: 1,
38
+ amount: [:native, 2000]
39
+ })
40
+
41
+ # NOTE: after this step, you need to get the sequence number for destination
42
+ # Which is based off of the ledger sequence number it was funded in.
43
+ gets # pause to get the account's sequence from the hayashi db
44
+
45
+ destination_sequence = FILL_ME_IN
46
+ # destination_sequence = 17179869185
47
+
48
+ submit destination, Stellar::Transaction.change_trust({
49
+ account: destination,
50
+ sequence: destination_sequence,
51
+ line: [:alphanum4, "USD\x00", master],
52
+ limit: 1000
53
+ })
54
+
55
+ submit master, Stellar::Transaction.payment({
56
+ account: master,
57
+ destination: destination,
58
+ sequence: 3,
59
+ amount: [:alphanum4, "USD\x00", master, 100]
60
+ })
data/examples/offer.rb ADDED
@@ -0,0 +1,75 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This is an example of using the higher level "payment" wrapper. Notice
4
+ # that we are using KeyPair instead of the raw rbnacl keys and that we need
5
+ # not build the entire heirarchy of xdr object manually.
6
+ #
7
+ # You can see where these helpers are defined in the files underneath /lib,
8
+ # which is where we extend the xdrgen generated source files with our higher
9
+ # level api.
10
+ #
11
+ # NOTE: due to the way that sequence number for a new account are set, this
12
+ # example is pretty cumbersome to run. It is only used for illustrative purposes
13
+ # of the flow
14
+
15
+ require 'stellar-base'
16
+ require 'faraday'
17
+ require 'faraday_middleware'
18
+
19
+ $server = Faraday.new(url: "http://localhost:39132") do |conn|
20
+ conn.response :json
21
+ conn.adapter Faraday.default_adapter
22
+ end
23
+
24
+ def submit(key, tx)
25
+ b64 = tx.to_envelope(key).to_xdr(:base64)
26
+ response = $server.get('tx', blob: b64)
27
+ p response.body
28
+ end
29
+
30
+ master = Stellar::KeyPair.master
31
+ destination = Stellar::KeyPair.master
32
+
33
+ submit master, Stellar::Transaction.payment({
34
+ account: master,
35
+ destination: destination,
36
+ sequence: 1,
37
+ amount: [:native, 2000]
38
+ })
39
+
40
+ # NOTE: after this step, you need to get the sequence number for destination
41
+ # Which is based off of the ledger sequence number it was funded in.
42
+ gets # pause to get the account's sequence from the hayashi db
43
+
44
+ destination_sequence = FILL_ME_IN
45
+ # destination_sequence = 17179869185
46
+
47
+ submit destination, Stellar::Transaction.change_trust({
48
+ account: destination,
49
+ sequence: destination_sequence,
50
+ line: [:alphanum4, "USD\x00", master],
51
+ limit: 1000
52
+ })
53
+
54
+ submit destination, Stellar::Transaction.change_trust({
55
+ account: destination,
56
+ sequence: destination_sequence + 1,
57
+ line: [:alphanum4, "EUR\x00", master],
58
+ limit: 1000
59
+ })
60
+
61
+ submit master, Stellar::Transaction.payment({
62
+ account: master,
63
+ destination: destination,
64
+ sequence: destination_sequence + 2,
65
+ amount: [:alphanum4, "USD\x00", master, 1000]
66
+ })
67
+
68
+ submit master, Stellar::Transaction.manage_offer({
69
+ account: destination,
70
+ sequence: destination_sequence + 3,
71
+ selling: [:alphanum4, "USD\x00", usd_gateway],
72
+ buying: [:alphanum4, "EUR\x00", eur_gateway],
73
+ amount: 100,
74
+ price: 2.0,
75
+ })
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'stellar-base'
4
+
5
+ master = Stellar::KeyPair.master
6
+ destination = Stellar::KeyPair.master
7
+
8
+ tx1 = Stellar::Transaction.payment({
9
+ account: master,
10
+ destination: destination,
11
+ sequence: 1,
12
+ amount: [:native, 20]
13
+ })
14
+
15
+ tx2 = Stellar::Transaction.payment({
16
+ account: master,
17
+ destination: destination,
18
+ sequence: 2,
19
+ amount: [:native, 20]
20
+ })
21
+
22
+ hex = tx1.merge(tx2).to_envelope(master).to_xdr(:base64)
23
+ puts hex
@@ -0,0 +1,174 @@
1
+ # This code was automatically generated using xdrgen
2
+ # DO NOT EDIT or your changes may be overwritten
3
+
4
+ require 'xdr'
5
+
6
+ module Stellar
7
+ include XDR::Namespace
8
+
9
+ Hash = XDR::Opaque[32]
10
+ Uint256 = XDR::Opaque[32]
11
+ Uint32 = XDR::UnsignedInt
12
+ Int32 = XDR::Int
13
+ Uint64 = XDR::UnsignedHyper
14
+ Int64 = XDR::Hyper
15
+ autoload :CryptoKeyType
16
+ autoload :PublicKey
17
+ Signature = XDR::VarOpaque[64]
18
+ SignatureHint = XDR::Opaque[4]
19
+ NodeID = PublicKey
20
+ autoload :Curve25519Secret
21
+ autoload :Curve25519Public
22
+ autoload :HmacSha256Key
23
+ autoload :HmacSha256Mac
24
+ end
25
+ module Stellar
26
+ include XDR::Namespace
27
+
28
+ AccountID = PublicKey
29
+ Thresholds = XDR::Opaque[4]
30
+ String32 = XDR::String[32]
31
+ SequenceNumber = Uint64
32
+ autoload :AssetType
33
+ autoload :Asset
34
+ autoload :Price
35
+ autoload :ThresholdIndexes
36
+ autoload :LedgerEntryType
37
+ autoload :Signer
38
+ autoload :AccountFlags
39
+ autoload :AccountEntry
40
+ autoload :ProofEntry
41
+ autoload :TrustLineFlags
42
+ autoload :TrustLineEntry
43
+ autoload :OfferEntryFlags
44
+ autoload :OfferEntry
45
+ autoload :LotType
46
+ autoload :LotBranch
47
+ autoload :LotEntry
48
+ autoload :ParticipantState
49
+ autoload :ParticipantEntry
50
+ autoload :MessageEntry
51
+ autoload :LedgerEntry
52
+ autoload :EnvelopeType
53
+ end
54
+ module Stellar
55
+ include XDR::Namespace
56
+
57
+ autoload :DecoratedSignature
58
+ autoload :OperationType
59
+ autoload :CreateAccountOp
60
+ autoload :CreateLotOp
61
+ autoload :CreateBidOp
62
+ autoload :AffirmFailOp
63
+ autoload :AffirmPassOp
64
+ autoload :RegisterParticipantOp
65
+ autoload :ProvideProofOp
66
+ autoload :SendMessageOp
67
+ autoload :PaymentOp
68
+ autoload :PathPaymentOp
69
+ autoload :ManageOfferOp
70
+ autoload :CreatePassiveOfferOp
71
+ autoload :SetOptionsOp
72
+ autoload :ChangeTrustOp
73
+ autoload :AllowTrustOp
74
+ autoload :Operation
75
+ autoload :MemoType
76
+ autoload :Memo
77
+ autoload :TimeBounds
78
+ autoload :Transaction
79
+ autoload :TransactionEnvelope
80
+ autoload :ClaimOfferAtom
81
+ autoload :CreateAccountResultCode
82
+ autoload :CreateAccountResult
83
+ autoload :CreateLotResultCode
84
+ autoload :CreateLotResult
85
+ autoload :CreateBidResultCode
86
+ autoload :CreateBidResult
87
+ autoload :AffirmFailResultCode
88
+ autoload :AffirmFailResult
89
+ autoload :AffirmPassResultCode
90
+ autoload :AffirmPassResult
91
+ autoload :RegisterParticipantResultCode
92
+ autoload :RegisterParticipantResult
93
+ autoload :ProvideProofResultCode
94
+ autoload :ProvideProofResult
95
+ autoload :SendMessageResultCode
96
+ autoload :SendMessageResult
97
+ autoload :PaymentResultCode
98
+ autoload :PaymentResult
99
+ autoload :PathPaymentResultCode
100
+ autoload :SimplePaymentResult
101
+ autoload :PathPaymentResult
102
+ autoload :ManageOfferResultCode
103
+ autoload :ManageOfferEffect
104
+ autoload :ManageOfferSuccessResult
105
+ autoload :ManageOfferResult
106
+ autoload :SetOptionsResultCode
107
+ autoload :SetOptionsResult
108
+ autoload :ChangeTrustResultCode
109
+ autoload :ChangeTrustResult
110
+ autoload :AllowTrustResultCode
111
+ autoload :AllowTrustResult
112
+ autoload :AccountMergeResultCode
113
+ autoload :AccountMergeResult
114
+ autoload :InflationResultCode
115
+ autoload :InflationPayout
116
+ autoload :InflationResult
117
+ autoload :OperationResultCode
118
+ autoload :OperationResult
119
+ autoload :TransactionResultCode
120
+ autoload :TransactionResult
121
+ end
122
+ module Stellar
123
+ include XDR::Namespace
124
+
125
+ UpgradeType = XDR::VarOpaque[128]
126
+ autoload :StellarValue
127
+ autoload :LedgerHeader
128
+ autoload :LedgerUpgradeType
129
+ autoload :LedgerUpgrade
130
+ autoload :LedgerKey
131
+ autoload :BucketEntryType
132
+ autoload :BucketEntry
133
+ MAX_TX_PER_LEDGER = 5000
134
+ autoload :TransactionSet
135
+ autoload :TransactionResultPair
136
+ autoload :TransactionResultSet
137
+ autoload :TransactionHistoryEntry
138
+ autoload :TransactionHistoryResultEntry
139
+ autoload :LedgerHeaderHistoryEntry
140
+ autoload :LedgerSCPMessages
141
+ autoload :SCPHistoryEntryV0
142
+ autoload :SCPHistoryEntry
143
+ autoload :LedgerEntryChangeType
144
+ autoload :LedgerEntryChange
145
+ LedgerEntryChanges = XDR::VarArray[LedgerEntryChange]
146
+ autoload :OperationMeta
147
+ autoload :TransactionMeta
148
+ end
149
+ module Stellar
150
+ include XDR::Namespace
151
+
152
+ autoload :ErrorCode
153
+ autoload :Error
154
+ autoload :AuthCert
155
+ autoload :Hello
156
+ autoload :Auth
157
+ autoload :IPAddrType
158
+ autoload :PeerAddress
159
+ autoload :MessageType
160
+ autoload :DontHave
161
+ autoload :StellarMessage
162
+ autoload :AuthenticatedMessage
163
+ end
164
+ module Stellar
165
+ include XDR::Namespace
166
+
167
+ Value = XDR::VarOpaque[]
168
+ autoload :SCPBallot
169
+ autoload :SCPStatementType
170
+ autoload :SCPNomination
171
+ autoload :SCPStatement
172
+ autoload :SCPEnvelope
173
+ autoload :SCPQuorumSet
174
+ end