stellar-base 0.20.0 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -21
  3. data/CONTRIBUTING.md +5 -5
  4. data/README.md +1 -1
  5. data/generated/stellar-base-generated.rb +6 -3
  6. data/generated/stellar/operation.rb +4 -2
  7. data/generated/stellar/operation/body.rb +30 -26
  8. data/generated/stellar/operation_result.rb +4 -2
  9. data/generated/stellar/operation_result/tr.rb +32 -28
  10. data/generated/stellar/operation_type.rb +17 -15
  11. data/generated/stellar/{path_payment_op.rb → path_payment_strict_receive_op.rb} +2 -2
  12. data/generated/stellar/path_payment_strict_receive_result.rb +38 -0
  13. data/generated/stellar/path_payment_strict_receive_result/success.rb +22 -0
  14. data/generated/stellar/path_payment_strict_receive_result_code.rb +47 -0
  15. data/generated/stellar/path_payment_strict_send_op.rb +32 -0
  16. data/generated/stellar/{path_payment_result.rb → path_payment_strict_send_result.rb} +7 -7
  17. data/generated/stellar/{path_payment_result → path_payment_strict_send_result}/success.rb +1 -1
  18. data/generated/stellar/path_payment_strict_send_result_code.rb +47 -0
  19. data/lib/stellar-base.rb +1 -1
  20. data/lib/stellar/base/version.rb +1 -1
  21. data/lib/stellar/operation.rb +63 -6
  22. data/lib/stellar/{path_payment_result.rb → path_payment_strict_receive_result.rb} +1 -1
  23. data/lib/stellar/transaction.rb +12 -0
  24. data/spec/lib/stellar/operation_spec.rb +63 -1
  25. data/spec/lib/stellar/{path_payment_result_spec.rb → path_payment_strict_receive_result_spec.rb} +10 -10
  26. data/spec/lib/stellar/transaction_spec.rb +32 -0
  27. data/xdr/Stellar-transaction.x +94 -27
  28. metadata +14 -10
  29. data/generated/stellar/path_payment_result_code.rb +0 -47
@@ -1,10 +1,10 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Stellar::PathPaymentResult, "#send_amount" do
3
+ describe Stellar::PathPaymentStrictReceiveResult, "#send_amount" do
4
4
 
5
5
 
6
6
  context "when the result is not successful" do
7
- subject{ Stellar::PathPaymentResult.new(:path_payment_malformed) }
7
+ subject{ Stellar::PathPaymentStrictReceiveResult.new(:path_payment_strict_receive_malformed) }
8
8
 
9
9
  it "raises an exception if the result is not successful" do
10
10
  expect{ subject.send_amount }.to raise_error(XDR::ArmNotSetError)
@@ -13,9 +13,9 @@ describe Stellar::PathPaymentResult, "#send_amount" do
13
13
 
14
14
  context "when the result has no claimed offers" do
15
15
  let(:simple_success){ Stellar::SimplePaymentResult.new(amount: 100) }
16
- let(:path_success){ Stellar::PathPaymentResult::Success.new(last: simple_success) }
16
+ let(:path_success){ Stellar::PathPaymentStrictReceiveResult::Success.new(last: simple_success) }
17
17
 
18
- subject{ Stellar::PathPaymentResult.new(:path_payment_success, path_success) }
18
+ subject{ Stellar::PathPaymentStrictReceiveResult.new(:path_payment_strict_receive_success, path_success) }
19
19
 
20
20
  it "returns the amount from the 'last' component" do
21
21
  expect(subject.send_amount).to eql(100)
@@ -30,13 +30,13 @@ describe Stellar::PathPaymentResult, "#send_amount" do
30
30
  end
31
31
 
32
32
  let(:path_success) do
33
- Stellar::PathPaymentResult::Success.new({
33
+ Stellar::PathPaymentStrictReceiveResult::Success.new({
34
34
  offers: offers,
35
35
  last: simple_success,
36
36
  })
37
37
  end
38
38
 
39
- subject{ Stellar::PathPaymentResult.new(:path_payment_success, path_success) }
39
+ subject{ Stellar::PathPaymentStrictReceiveResult.new(:path_payment_strict_receive_success, path_success) }
40
40
 
41
41
  it "returns the amount from the ClaimOfferAtom" do
42
42
  expect(subject.send_amount).to eql(200)
@@ -53,13 +53,13 @@ describe Stellar::PathPaymentResult, "#send_amount" do
53
53
  end
54
54
 
55
55
  let(:path_success) do
56
- Stellar::PathPaymentResult::Success.new({
56
+ Stellar::PathPaymentStrictReceiveResult::Success.new({
57
57
  offers: offers,
58
58
  last: simple_success,
59
59
  })
60
60
  end
61
61
 
62
- subject{ Stellar::PathPaymentResult.new(:path_payment_success, path_success) }
62
+ subject{ Stellar::PathPaymentStrictReceiveResult.new(:path_payment_strict_receive_success, path_success) }
63
63
 
64
64
  it "returns the summed amount from the ClaimOfferAtoms" do
65
65
  expect(subject.send_amount).to eql(400)
@@ -79,13 +79,13 @@ describe Stellar::PathPaymentResult, "#send_amount" do
79
79
  end
80
80
 
81
81
  let(:path_success) do
82
- Stellar::PathPaymentResult::Success.new({
82
+ Stellar::PathPaymentStrictReceiveResult::Success.new({
83
83
  offers: offers,
84
84
  last: simple_success,
85
85
  })
86
86
  end
87
87
 
88
- subject{ Stellar::PathPaymentResult.new(:path_payment_success, path_success) }
88
+ subject{ Stellar::PathPaymentStrictReceiveResult.new(:path_payment_strict_receive_success, path_success) }
89
89
 
90
90
  it "returns the summed amount from the ClaimOfferAtoms" do
91
91
  expect(subject.send_amount).to eql(400)
@@ -15,6 +15,38 @@ describe Stellar::Transaction do
15
15
  end
16
16
  let(:key_pair){ Stellar::KeyPair.random }
17
17
 
18
+ describe ".path_payment_strict_receive" do
19
+ it 'works' do
20
+ tx = Stellar::Transaction.path_payment_strict_receive({
21
+ account: Stellar::KeyPair.random,
22
+ sequence: 1,
23
+ fee: 100,
24
+ destination: Stellar::KeyPair.random,
25
+ with: [:alphanum4, "USD", Stellar::KeyPair.master, 10],
26
+ amount: [:alphanum4, "EUR", Stellar::KeyPair.master, 9.2],
27
+ })
28
+
29
+ expect(tx.operations.size).to eq(1)
30
+ expect(tx.operations.first.body.arm).to eql(:path_payment_strict_receive_op)
31
+ end
32
+ end
33
+
34
+ describe ".path_payment_strict_send" do
35
+ it 'works' do
36
+ tx = Stellar::Transaction.path_payment_strict_send({
37
+ account: Stellar::KeyPair.random,
38
+ sequence: 1,
39
+ fee: 100,
40
+ destination: Stellar::KeyPair.random,
41
+ with: [:alphanum4, "USD", Stellar::KeyPair.master, 10],
42
+ amount: [:alphanum4, "EUR", Stellar::KeyPair.master, 9.2],
43
+ })
44
+
45
+ expect(tx.operations.size).to eq(1)
46
+ expect(tx.operations.first.body.arm).to eql(:path_payment_strict_send_op)
47
+ end
48
+ end
49
+
18
50
  describe "#sign" do
19
51
  let(:result){ subject.sign(key_pair) }
20
52
 
@@ -17,7 +17,7 @@ enum OperationType
17
17
  {
18
18
  CREATE_ACCOUNT = 0,
19
19
  PAYMENT = 1,
20
- PATH_PAYMENT = 2,
20
+ PATH_PAYMENT_STRICT_RECEIVE = 2,
21
21
  MANAGE_SELL_OFFER = 3,
22
22
  CREATE_PASSIVE_SELL_OFFER = 4,
23
23
  SET_OPTIONS = 5,
@@ -27,7 +27,8 @@ enum OperationType
27
27
  INFLATION = 9,
28
28
  MANAGE_DATA = 10,
29
29
  BUMP_SEQUENCE = 11,
30
- MANAGE_BUY_OFFER = 12
30
+ MANAGE_BUY_OFFER = 12,
31
+ PATH_PAYMENT_STRICT_SEND = 13
31
32
  };
32
33
 
33
34
  /* CreateAccount
@@ -59,7 +60,7 @@ struct PaymentOp
59
60
  int64 amount; // amount they end up with
60
61
  };
61
62
 
62
- /* PathPayment
63
+ /* PathPaymentStrictReceive
63
64
 
64
65
  send an amount to a destination account through a path.
65
66
  (up to sendMax, sendAsset)
@@ -68,9 +69,9 @@ send an amount to a destination account through a path.
68
69
 
69
70
  Threshold: med
70
71
 
71
- Result: PathPaymentResult
72
+ Result: PathPaymentStrictReceiveResult
72
73
  */
73
- struct PathPaymentOp
74
+ struct PathPaymentStrictReceiveOp
74
75
  {
75
76
  Asset sendAsset; // asset we pay with
76
77
  int64 sendMax; // the maximum amount of sendAsset to
@@ -84,6 +85,32 @@ struct PathPaymentOp
84
85
  Asset path<5>; // additional hops it must go through to get there
85
86
  };
86
87
 
88
+ /* PathPaymentStrictSend
89
+
90
+ send an amount to a destination account through a path.
91
+ (sendMax, sendAsset)
92
+ (X0, Path[0]) .. (Xn, Path[n])
93
+ (at least destAmount, destAsset)
94
+
95
+ Threshold: med
96
+
97
+ Result: PathPaymentStrictSendResult
98
+ */
99
+ struct PathPaymentStrictSendOp
100
+ {
101
+ Asset sendAsset; // asset we pay with
102
+ int64 sendAmount; // amount of sendAsset to send (excluding fees)
103
+
104
+ AccountID destination; // recipient of the payment
105
+ Asset destAsset; // what they end up with
106
+ int64 destMin; // the minimum amount of dest asset to
107
+ // be received
108
+ // The operation will fail if it can't be met
109
+
110
+ Asset path<5>; // additional hops it must go through to get there
111
+ };
112
+
113
+
87
114
  /* Creates, updates or deletes an offer
88
115
 
89
116
  Threshold: med
@@ -266,8 +293,8 @@ struct Operation
266
293
  CreateAccountOp createAccountOp;
267
294
  case PAYMENT:
268
295
  PaymentOp paymentOp;
269
- case PATH_PAYMENT:
270
- PathPaymentOp pathPaymentOp;
296
+ case PATH_PAYMENT_STRICT_RECEIVE:
297
+ PathPaymentStrictReceiveOp pathPaymentStrictReceiveOp;
271
298
  case MANAGE_SELL_OFFER:
272
299
  ManageSellOfferOp manageSellOfferOp;
273
300
  case CREATE_PASSIVE_SELL_OFFER:
@@ -288,6 +315,8 @@ struct Operation
288
315
  BumpSequenceOp bumpSequenceOp;
289
316
  case MANAGE_BUY_OFFER:
290
317
  ManageBuyOfferOp manageBuyOfferOp;
318
+ case PATH_PAYMENT_STRICT_SEND:
319
+ PathPaymentStrictSendOp pathPaymentStrictSendOp;
291
320
  }
292
321
  body;
293
322
  };
@@ -447,26 +476,26 @@ default:
447
476
  void;
448
477
  };
449
478
 
450
- /******* Payment Result ********/
479
+ /******* PathPaymentStrictReceive Result ********/
451
480
 
452
- enum PathPaymentResultCode
481
+ enum PathPaymentStrictReceiveResultCode
453
482
  {
454
483
  // codes considered as "success" for the operation
455
- PATH_PAYMENT_SUCCESS = 0, // success
484
+ PATH_PAYMENT_STRICT_RECEIVE_SUCCESS = 0, // success
456
485
 
457
486
  // codes considered as "failure" for the operation
458
- PATH_PAYMENT_MALFORMED = -1, // bad input
459
- PATH_PAYMENT_UNDERFUNDED = -2, // not enough funds in source account
460
- PATH_PAYMENT_SRC_NO_TRUST = -3, // no trust line on source account
461
- PATH_PAYMENT_SRC_NOT_AUTHORIZED = -4, // source not authorized to transfer
462
- PATH_PAYMENT_NO_DESTINATION = -5, // destination account does not exist
463
- PATH_PAYMENT_NO_TRUST = -6, // dest missing a trust line for asset
464
- PATH_PAYMENT_NOT_AUTHORIZED = -7, // dest not authorized to hold asset
465
- PATH_PAYMENT_LINE_FULL = -8, // dest would go above their limit
466
- PATH_PAYMENT_NO_ISSUER = -9, // missing issuer on one asset
467
- PATH_PAYMENT_TOO_FEW_OFFERS = -10, // not enough offers to satisfy path
468
- PATH_PAYMENT_OFFER_CROSS_SELF = -11, // would cross one of its own offers
469
- PATH_PAYMENT_OVER_SENDMAX = -12 // could not satisfy sendmax
487
+ PATH_PAYMENT_STRICT_RECEIVE_MALFORMED = -1, // bad input
488
+ PATH_PAYMENT_STRICT_RECEIVE_UNDERFUNDED = -2, // not enough funds in source account
489
+ PATH_PAYMENT_STRICT_RECEIVE_SRC_NO_TRUST = -3, // no trust line on source account
490
+ PATH_PAYMENT_STRICT_RECEIVE_SRC_NOT_AUTHORIZED = -4, // source not authorized to transfer
491
+ PATH_PAYMENT_STRICT_RECEIVE_NO_DESTINATION = -5, // destination account does not exist
492
+ PATH_PAYMENT_STRICT_RECEIVE_NO_TRUST = -6, // dest missing a trust line for asset
493
+ PATH_PAYMENT_STRICT_RECEIVE_NOT_AUTHORIZED = -7, // dest not authorized to hold asset
494
+ PATH_PAYMENT_STRICT_RECEIVE_LINE_FULL = -8, // dest would go above their limit
495
+ PATH_PAYMENT_STRICT_RECEIVE_NO_ISSUER = -9, // missing issuer on one asset
496
+ PATH_PAYMENT_STRICT_RECEIVE_TOO_FEW_OFFERS = -10, // not enough offers to satisfy path
497
+ PATH_PAYMENT_STRICT_RECEIVE_OFFER_CROSS_SELF = -11, // would cross one of its own offers
498
+ PATH_PAYMENT_STRICT_RECEIVE_OVER_SENDMAX = -12 // could not satisfy sendmax
470
499
  };
471
500
 
472
501
  struct SimplePaymentResult
@@ -476,15 +505,51 @@ struct SimplePaymentResult
476
505
  int64 amount;
477
506
  };
478
507
 
479
- union PathPaymentResult switch (PathPaymentResultCode code)
508
+ union PathPaymentStrictReceiveResult switch (PathPaymentStrictReceiveResultCode code)
509
+ {
510
+ case PATH_PAYMENT_STRICT_RECEIVE_SUCCESS:
511
+ struct
512
+ {
513
+ ClaimOfferAtom offers<>;
514
+ SimplePaymentResult last;
515
+ } success;
516
+ case PATH_PAYMENT_STRICT_RECEIVE_NO_ISSUER:
517
+ Asset noIssuer; // the asset that caused the error
518
+ default:
519
+ void;
520
+ };
521
+
522
+ /******* PathPaymentStrictSend Result ********/
523
+
524
+ enum PathPaymentStrictSendResultCode
480
525
  {
481
- case PATH_PAYMENT_SUCCESS:
526
+ // codes considered as "success" for the operation
527
+ PATH_PAYMENT_STRICT_SEND_SUCCESS = 0, // success
528
+
529
+ // codes considered as "failure" for the operation
530
+ PATH_PAYMENT_STRICT_SEND_MALFORMED = -1, // bad input
531
+ PATH_PAYMENT_STRICT_SEND_UNDERFUNDED = -2, // not enough funds in source account
532
+ PATH_PAYMENT_STRICT_SEND_SRC_NO_TRUST = -3, // no trust line on source account
533
+ PATH_PAYMENT_STRICT_SEND_SRC_NOT_AUTHORIZED = -4, // source not authorized to transfer
534
+ PATH_PAYMENT_STRICT_SEND_NO_DESTINATION = -5, // destination account does not exist
535
+ PATH_PAYMENT_STRICT_SEND_NO_TRUST = -6, // dest missing a trust line for asset
536
+ PATH_PAYMENT_STRICT_SEND_NOT_AUTHORIZED = -7, // dest not authorized to hold asset
537
+ PATH_PAYMENT_STRICT_SEND_LINE_FULL = -8, // dest would go above their limit
538
+ PATH_PAYMENT_STRICT_SEND_NO_ISSUER = -9, // missing issuer on one asset
539
+ PATH_PAYMENT_STRICT_SEND_TOO_FEW_OFFERS = -10, // not enough offers to satisfy path
540
+ PATH_PAYMENT_STRICT_SEND_OFFER_CROSS_SELF = -11, // would cross one of its own offers
541
+ PATH_PAYMENT_STRICT_SEND_UNDER_DESTMIN = -12 // could not satisfy destMin
542
+ };
543
+
544
+ union PathPaymentStrictSendResult switch (PathPaymentStrictSendResultCode code)
545
+ {
546
+ case PATH_PAYMENT_STRICT_SEND_SUCCESS:
482
547
  struct
483
548
  {
484
549
  ClaimOfferAtom offers<>;
485
550
  SimplePaymentResult last;
486
551
  } success;
487
- case PATH_PAYMENT_NO_ISSUER:
552
+ case PATH_PAYMENT_STRICT_SEND_NO_ISSUER:
488
553
  Asset noIssuer; // the asset that caused the error
489
554
  default:
490
555
  void;
@@ -762,8 +827,8 @@ case opINNER:
762
827
  CreateAccountResult createAccountResult;
763
828
  case PAYMENT:
764
829
  PaymentResult paymentResult;
765
- case PATH_PAYMENT:
766
- PathPaymentResult pathPaymentResult;
830
+ case PATH_PAYMENT_STRICT_RECEIVE:
831
+ PathPaymentStrictReceiveResult pathPaymentStrictReceiveResult;
767
832
  case MANAGE_SELL_OFFER:
768
833
  ManageSellOfferResult manageSellOfferResult;
769
834
  case CREATE_PASSIVE_SELL_OFFER:
@@ -784,6 +849,8 @@ case opINNER:
784
849
  BumpSequenceResult bumpSeqResult;
785
850
  case MANAGE_BUY_OFFER:
786
851
  ManageBuyOfferResult manageBuyOfferResult;
852
+ case PATH_PAYMENT_STRICT_SEND:
853
+ PathPaymentStrictSendResult pathPaymentStrictSendResult;
787
854
  }
788
855
  tr;
789
856
  default:
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.20.0
4
+ version: 0.21.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: 2019-05-22 00:00:00.000000000 Z
11
+ date: 2019-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xdr
@@ -327,10 +327,14 @@ files:
327
327
  - generated/stellar/operation_result/tr.rb
328
328
  - generated/stellar/operation_result_code.rb
329
329
  - generated/stellar/operation_type.rb
330
- - generated/stellar/path_payment_op.rb
331
- - generated/stellar/path_payment_result.rb
332
- - generated/stellar/path_payment_result/success.rb
333
- - generated/stellar/path_payment_result_code.rb
330
+ - generated/stellar/path_payment_strict_receive_op.rb
331
+ - generated/stellar/path_payment_strict_receive_result.rb
332
+ - generated/stellar/path_payment_strict_receive_result/success.rb
333
+ - generated/stellar/path_payment_strict_receive_result_code.rb
334
+ - generated/stellar/path_payment_strict_send_op.rb
335
+ - generated/stellar/path_payment_strict_send_result.rb
336
+ - generated/stellar/path_payment_strict_send_result/success.rb
337
+ - generated/stellar/path_payment_strict_send_result_code.rb
334
338
  - generated/stellar/payment_op.rb
335
339
  - generated/stellar/payment_result.rb
336
340
  - generated/stellar/payment_result_code.rb
@@ -398,7 +402,7 @@ files:
398
402
  - lib/stellar/key_pair.rb
399
403
  - lib/stellar/networks.rb
400
404
  - lib/stellar/operation.rb
401
- - lib/stellar/path_payment_result.rb
405
+ - lib/stellar/path_payment_strict_receive_result.rb
402
406
  - lib/stellar/price.rb
403
407
  - lib/stellar/signer_key.rb
404
408
  - lib/stellar/thresholds.rb
@@ -413,7 +417,7 @@ files:
413
417
  - spec/lib/stellar/key_pair_spec.rb
414
418
  - spec/lib/stellar/networks_spec.rb
415
419
  - spec/lib/stellar/operation_spec.rb
416
- - spec/lib/stellar/path_payment_result_spec.rb
420
+ - spec/lib/stellar/path_payment_strict_receive_result_spec.rb
417
421
  - spec/lib/stellar/price_spec.rb
418
422
  - spec/lib/stellar/signer_key_spec.rb
419
423
  - spec/lib/stellar/thresholds_spec.rb
@@ -454,7 +458,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
454
458
  version: '0'
455
459
  requirements: []
456
460
  rubyforge_project:
457
- rubygems_version: 2.7.7
461
+ rubygems_version: 2.7.9
458
462
  signing_key:
459
463
  specification_version: 4
460
464
  summary: 'Stellar client library: XDR'
@@ -465,7 +469,7 @@ test_files:
465
469
  - spec/lib/stellar/key_pair_spec.rb
466
470
  - spec/lib/stellar/networks_spec.rb
467
471
  - spec/lib/stellar/operation_spec.rb
468
- - spec/lib/stellar/path_payment_result_spec.rb
472
+ - spec/lib/stellar/path_payment_strict_receive_result_spec.rb
469
473
  - spec/lib/stellar/price_spec.rb
470
474
  - spec/lib/stellar/signer_key_spec.rb
471
475
  - spec/lib/stellar/thresholds_spec.rb
@@ -1,47 +0,0 @@
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 PathPaymentResultCode
9
- # {
10
- # // codes considered as "success" for the operation
11
- # PATH_PAYMENT_SUCCESS = 0, // success
12
- #
13
- # // codes considered as "failure" for the operation
14
- # PATH_PAYMENT_MALFORMED = -1, // bad input
15
- # PATH_PAYMENT_UNDERFUNDED = -2, // not enough funds in source account
16
- # PATH_PAYMENT_SRC_NO_TRUST = -3, // no trust line on source account
17
- # PATH_PAYMENT_SRC_NOT_AUTHORIZED = -4, // source not authorized to transfer
18
- # PATH_PAYMENT_NO_DESTINATION = -5, // destination account does not exist
19
- # PATH_PAYMENT_NO_TRUST = -6, // dest missing a trust line for asset
20
- # PATH_PAYMENT_NOT_AUTHORIZED = -7, // dest not authorized to hold asset
21
- # PATH_PAYMENT_LINE_FULL = -8, // dest would go above their limit
22
- # PATH_PAYMENT_NO_ISSUER = -9, // missing issuer on one asset
23
- # PATH_PAYMENT_TOO_FEW_OFFERS = -10, // not enough offers to satisfy path
24
- # PATH_PAYMENT_OFFER_CROSS_SELF = -11, // would cross one of its own offers
25
- # PATH_PAYMENT_OVER_SENDMAX = -12 // could not satisfy sendmax
26
- # };
27
- #
28
- # ===========================================================================
29
- module Stellar
30
- class PathPaymentResultCode < XDR::Enum
31
- member :path_payment_success, 0
32
- member :path_payment_malformed, -1
33
- member :path_payment_underfunded, -2
34
- member :path_payment_src_no_trust, -3
35
- member :path_payment_src_not_authorized, -4
36
- member :path_payment_no_destination, -5
37
- member :path_payment_no_trust, -6
38
- member :path_payment_not_authorized, -7
39
- member :path_payment_line_full, -8
40
- member :path_payment_no_issuer, -9
41
- member :path_payment_too_few_offers, -10
42
- member :path_payment_offer_cross_self, -11
43
- member :path_payment_over_sendmax, -12
44
-
45
- seal
46
- end
47
- end