stellar-base 0.26.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +54 -32
- data/README.md +3 -3
- data/generated/stellar/account_flags.rb +9 -4
- data/generated/stellar/account_merge_result.rb +1 -1
- data/generated/stellar/allow_trust_op.rb +3 -18
- data/generated/stellar/allow_trust_result_code.rb +4 -1
- data/generated/stellar/alpha_num12.rb +20 -0
- data/generated/stellar/alpha_num4.rb +20 -0
- data/generated/stellar/asset.rb +2 -15
- data/generated/stellar/asset_code.rb +30 -0
- data/generated/stellar/asset_type.rb +3 -1
- data/generated/stellar/begin_sponsoring_future_reserves_result.rb +2 -1
- data/generated/stellar/change_trust_asset.rb +39 -0
- data/generated/stellar/change_trust_op.rb +2 -2
- data/generated/stellar/change_trust_result_code.rb +13 -7
- data/generated/stellar/claim_atom.rb +31 -0
- data/generated/stellar/claim_atom_type.rb +24 -0
- data/generated/stellar/claim_liquidity_atom.rb +30 -0
- data/generated/stellar/claim_offer_atom_v0.rb +33 -0
- data/generated/stellar/claimable_balance_entry/ext.rb +4 -0
- data/generated/stellar/claimable_balance_entry.rb +2 -0
- data/generated/stellar/{asset/alpha_num12.rb → claimable_balance_entry_extension_v1/ext.rb} +9 -7
- data/generated/stellar/{operation_id.rb → claimable_balance_entry_extension_v1.rb} +12 -14
- data/generated/stellar/claimable_balance_flags.rb +22 -0
- data/generated/stellar/clawback_claimable_balance_op.rb +18 -0
- data/generated/stellar/clawback_claimable_balance_result.rb +26 -0
- data/generated/stellar/clawback_claimable_balance_result_code.rb +29 -0
- data/generated/stellar/clawback_op.rb +22 -0
- data/generated/stellar/clawback_result.rb +25 -0
- data/generated/stellar/clawback_result_code.rb +31 -0
- data/generated/stellar/create_passive_sell_offer_op.rb +1 -1
- data/generated/stellar/end_sponsoring_future_reserves_result.rb +2 -1
- data/generated/stellar/envelope_type.rb +10 -8
- data/generated/stellar/{operation_id/id.rb → hash_id_preimage/operation_id.rb} +4 -4
- data/generated/stellar/hash_id_preimage/revoke_id.rb +28 -0
- data/generated/stellar/hash_id_preimage.rb +44 -0
- data/generated/stellar/ledger_entry/data.rb +4 -0
- data/generated/stellar/ledger_entry.rb +2 -0
- data/generated/stellar/ledger_entry_type.rb +3 -1
- data/generated/stellar/ledger_header/ext.rb +4 -0
- data/generated/stellar/ledger_header.rb +2 -0
- data/generated/stellar/ledger_header_extension_v1/ext.rb +24 -0
- data/generated/stellar/ledger_header_extension_v1.rb +30 -0
- data/generated/stellar/ledger_header_flags.rb +24 -0
- data/generated/stellar/{asset/alpha_num4.rb → ledger_key/liquidity_pool.rb} +4 -6
- data/generated/stellar/ledger_key/trust_line.rb +2 -2
- data/generated/stellar/ledger_key.rb +10 -1
- data/generated/stellar/ledger_upgrade.rb +4 -0
- data/generated/stellar/ledger_upgrade_type.rb +3 -1
- data/generated/stellar/liquidity_pool_constant_product_parameters.rb +22 -0
- data/generated/stellar/liquidity_pool_deposit_op.rb +26 -0
- data/generated/stellar/liquidity_pool_deposit_result.rb +26 -0
- data/generated/stellar/liquidity_pool_deposit_result_code.rb +41 -0
- data/generated/stellar/liquidity_pool_entry/body/constant_product.rb +31 -0
- data/generated/stellar/liquidity_pool_entry/body.rb +37 -0
- data/generated/stellar/liquidity_pool_entry.rb +38 -0
- data/generated/stellar/liquidity_pool_parameters.rb +23 -0
- data/generated/stellar/liquidity_pool_type.rb +20 -0
- data/generated/stellar/liquidity_pool_withdraw_op.rb +24 -0
- data/generated/stellar/liquidity_pool_withdraw_result.rb +26 -0
- data/generated/stellar/liquidity_pool_withdraw_result_code.rb +36 -0
- data/generated/stellar/manage_offer_success_result.rb +2 -2
- data/generated/stellar/operation/body.rb +20 -0
- data/generated/stellar/operation.rb +10 -0
- data/generated/stellar/operation_result/tr.rb +20 -0
- data/generated/stellar/operation_result.rb +10 -0
- data/generated/stellar/operation_type.rb +11 -1
- data/generated/stellar/path_payment_strict_receive_result/success.rb +2 -2
- data/generated/stellar/path_payment_strict_receive_result.rb +1 -1
- data/generated/stellar/path_payment_strict_send_result/success.rb +2 -2
- data/generated/stellar/path_payment_strict_send_result.rb +1 -1
- data/generated/stellar/payment_result_code.rb +1 -1
- data/generated/stellar/revoke_sponsorship_op.rb +1 -2
- data/generated/stellar/revoke_sponsorship_result_code.rb +3 -1
- data/generated/stellar/scp_quorum_set.rb +2 -2
- data/generated/stellar/set_options_result_code.rb +14 -11
- data/generated/stellar/set_trust_line_flags_op.rb +25 -0
- data/generated/stellar/set_trust_line_flags_result.rb +25 -0
- data/generated/stellar/set_trust_line_flags_result_code.rb +34 -0
- data/generated/stellar/transaction_result_code.rb +1 -1
- data/generated/stellar/trust_line_asset.rb +39 -0
- data/generated/stellar/trust_line_entry/ext/v1/ext.rb +4 -0
- data/generated/stellar/trust_line_entry/ext/v1.rb +2 -0
- data/generated/stellar/trust_line_entry/ext.rb +2 -0
- data/generated/stellar/trust_line_entry.rb +7 -5
- data/generated/stellar/trust_line_entry_extension_v2/ext.rb +24 -0
- data/generated/stellar/trust_line_entry_extension_v2.rb +30 -0
- data/generated/stellar/trust_line_flags.rb +5 -1
- data/generated/stellar-base-generated.rb +40 -1
- data/lib/stellar/account.rb +59 -0
- data/lib/stellar/account_flags.rb +1 -1
- data/lib/stellar/amount.rb +36 -0
- data/lib/stellar/asset.rb +8 -0
- data/lib/stellar/compat.rb +6 -3
- data/lib/stellar/concerns/transaction.rb +4 -2
- data/lib/stellar/dsl.rb +26 -0
- data/lib/stellar/ledger_key.rb +5 -3
- data/lib/stellar/liquidity_pool/base_pool.rb +47 -0
- data/lib/stellar/liquidity_pool/constant_product_pool.rb +15 -0
- data/lib/stellar/liquidity_pool.rb +12 -0
- data/lib/stellar/operation.rb +357 -386
- data/lib/stellar/price.rb +13 -7
- data/lib/stellar/transaction_builder.rb +27 -11
- data/lib/stellar/trust_line_flags.rb +53 -0
- data/lib/stellar/util/strkey.rb +15 -7
- data/lib/stellar/version.rb +3 -0
- data/lib/stellar-base.rb +5 -2
- metadata +61 -16
- data/generated/stellar/allow_trust_op/asset.rb +0 -33
- data/lib/stellar/base/version.rb +0 -5
|
@@ -7,7 +7,7 @@ require 'xdr'
|
|
|
7
7
|
#
|
|
8
8
|
# struct
|
|
9
9
|
# {
|
|
10
|
-
#
|
|
10
|
+
# ClaimAtom offers<>;
|
|
11
11
|
# SimplePaymentResult last;
|
|
12
12
|
# }
|
|
13
13
|
#
|
|
@@ -15,7 +15,7 @@ require 'xdr'
|
|
|
15
15
|
module Stellar
|
|
16
16
|
class PathPaymentStrictSendResult
|
|
17
17
|
class Success < XDR::Struct
|
|
18
|
-
attribute :offers, XDR::VarArray[
|
|
18
|
+
attribute :offers, XDR::VarArray[ClaimAtom]
|
|
19
19
|
attribute :last, SimplePaymentResult
|
|
20
20
|
end
|
|
21
21
|
end
|
|
@@ -8,7 +8,7 @@ require 'xdr'
|
|
|
8
8
|
# enum PaymentResultCode
|
|
9
9
|
# {
|
|
10
10
|
# // codes considered as "success" for the operation
|
|
11
|
-
# PAYMENT_SUCCESS = 0, // payment
|
|
11
|
+
# PAYMENT_SUCCESS = 0, // payment successfully completed
|
|
12
12
|
#
|
|
13
13
|
# // codes considered as "failure" for the operation
|
|
14
14
|
# PAYMENT_MALFORMED = -1, // bad input
|
|
@@ -14,7 +14,8 @@ require 'xdr'
|
|
|
14
14
|
# REVOKE_SPONSORSHIP_DOES_NOT_EXIST = -1,
|
|
15
15
|
# REVOKE_SPONSORSHIP_NOT_SPONSOR = -2,
|
|
16
16
|
# REVOKE_SPONSORSHIP_LOW_RESERVE = -3,
|
|
17
|
-
# REVOKE_SPONSORSHIP_ONLY_TRANSFERABLE = -4
|
|
17
|
+
# REVOKE_SPONSORSHIP_ONLY_TRANSFERABLE = -4,
|
|
18
|
+
# REVOKE_SPONSORSHIP_MALFORMED = -5
|
|
18
19
|
# };
|
|
19
20
|
#
|
|
20
21
|
# ===========================================================================
|
|
@@ -25,6 +26,7 @@ module Stellar
|
|
|
25
26
|
member :revoke_sponsorship_not_sponsor, -2
|
|
26
27
|
member :revoke_sponsorship_low_reserve, -3
|
|
27
28
|
member :revoke_sponsorship_only_transferable, -4
|
|
29
|
+
member :revoke_sponsorship_malformed, -5
|
|
28
30
|
|
|
29
31
|
seal
|
|
30
32
|
end
|
|
@@ -8,7 +8,7 @@ require 'xdr'
|
|
|
8
8
|
# struct SCPQuorumSet
|
|
9
9
|
# {
|
|
10
10
|
# uint32 threshold;
|
|
11
|
-
#
|
|
11
|
+
# NodeID validators<>;
|
|
12
12
|
# SCPQuorumSet innerSets<>;
|
|
13
13
|
# };
|
|
14
14
|
#
|
|
@@ -16,7 +16,7 @@ require 'xdr'
|
|
|
16
16
|
module Stellar
|
|
17
17
|
class SCPQuorumSet < XDR::Struct
|
|
18
18
|
attribute :threshold, Uint32
|
|
19
|
-
attribute :validators, XDR::VarArray[
|
|
19
|
+
attribute :validators, XDR::VarArray[NodeID]
|
|
20
20
|
attribute :inner_sets, XDR::VarArray[SCPQuorumSet]
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -18,22 +18,25 @@ require 'xdr'
|
|
|
18
18
|
# SET_OPTIONS_UNKNOWN_FLAG = -6, // can't set an unknown flag
|
|
19
19
|
# SET_OPTIONS_THRESHOLD_OUT_OF_RANGE = -7, // bad value for weight/threshold
|
|
20
20
|
# SET_OPTIONS_BAD_SIGNER = -8, // signer cannot be masterkey
|
|
21
|
-
# SET_OPTIONS_INVALID_HOME_DOMAIN = -9
|
|
21
|
+
# SET_OPTIONS_INVALID_HOME_DOMAIN = -9, // malformed home domain
|
|
22
|
+
# SET_OPTIONS_AUTH_REVOCABLE_REQUIRED =
|
|
23
|
+
# -10 // auth revocable is required for clawback
|
|
22
24
|
# };
|
|
23
25
|
#
|
|
24
26
|
# ===========================================================================
|
|
25
27
|
module Stellar
|
|
26
28
|
class SetOptionsResultCode < XDR::Enum
|
|
27
|
-
member :set_options_success,
|
|
28
|
-
member :set_options_low_reserve,
|
|
29
|
-
member :set_options_too_many_signers,
|
|
30
|
-
member :set_options_bad_flags,
|
|
31
|
-
member :set_options_invalid_inflation,
|
|
32
|
-
member :set_options_cant_change,
|
|
33
|
-
member :set_options_unknown_flag,
|
|
34
|
-
member :set_options_threshold_out_of_range,
|
|
35
|
-
member :set_options_bad_signer,
|
|
36
|
-
member :set_options_invalid_home_domain,
|
|
29
|
+
member :set_options_success, 0
|
|
30
|
+
member :set_options_low_reserve, -1
|
|
31
|
+
member :set_options_too_many_signers, -2
|
|
32
|
+
member :set_options_bad_flags, -3
|
|
33
|
+
member :set_options_invalid_inflation, -4
|
|
34
|
+
member :set_options_cant_change, -5
|
|
35
|
+
member :set_options_unknown_flag, -6
|
|
36
|
+
member :set_options_threshold_out_of_range, -7
|
|
37
|
+
member :set_options_bad_signer, -8
|
|
38
|
+
member :set_options_invalid_home_domain, -9
|
|
39
|
+
member :set_options_auth_revocable_required, -10
|
|
37
40
|
|
|
38
41
|
seal
|
|
39
42
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
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 SetTrustLineFlagsOp
|
|
9
|
+
# {
|
|
10
|
+
# AccountID trustor;
|
|
11
|
+
# Asset asset;
|
|
12
|
+
#
|
|
13
|
+
# uint32 clearFlags; // which flags to clear
|
|
14
|
+
# uint32 setFlags; // which flags to set
|
|
15
|
+
# };
|
|
16
|
+
#
|
|
17
|
+
# ===========================================================================
|
|
18
|
+
module Stellar
|
|
19
|
+
class SetTrustLineFlagsOp < XDR::Struct
|
|
20
|
+
attribute :trustor, AccountID
|
|
21
|
+
attribute :asset, Asset
|
|
22
|
+
attribute :clear_flags, Uint32
|
|
23
|
+
attribute :set_flags, Uint32
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
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 SetTrustLineFlagsResult switch (SetTrustLineFlagsResultCode code)
|
|
9
|
+
# {
|
|
10
|
+
# case SET_TRUST_LINE_FLAGS_SUCCESS:
|
|
11
|
+
# void;
|
|
12
|
+
# default:
|
|
13
|
+
# void;
|
|
14
|
+
# };
|
|
15
|
+
#
|
|
16
|
+
# ===========================================================================
|
|
17
|
+
module Stellar
|
|
18
|
+
class SetTrustLineFlagsResult < XDR::Union
|
|
19
|
+
switch_on SetTrustLineFlagsResultCode, :code
|
|
20
|
+
|
|
21
|
+
switch :set_trust_line_flags_success
|
|
22
|
+
switch :default
|
|
23
|
+
|
|
24
|
+
end
|
|
25
|
+
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
|
+
# enum SetTrustLineFlagsResultCode
|
|
9
|
+
# {
|
|
10
|
+
# // codes considered as "success" for the operation
|
|
11
|
+
# SET_TRUST_LINE_FLAGS_SUCCESS = 0,
|
|
12
|
+
#
|
|
13
|
+
# // codes considered as "failure" for the operation
|
|
14
|
+
# SET_TRUST_LINE_FLAGS_MALFORMED = -1,
|
|
15
|
+
# SET_TRUST_LINE_FLAGS_NO_TRUST_LINE = -2,
|
|
16
|
+
# SET_TRUST_LINE_FLAGS_CANT_REVOKE = -3,
|
|
17
|
+
# SET_TRUST_LINE_FLAGS_INVALID_STATE = -4,
|
|
18
|
+
# SET_TRUST_LINE_FLAGS_LOW_RESERVE = -5 // claimable balances can't be created
|
|
19
|
+
# // on revoke due to low reserves
|
|
20
|
+
# };
|
|
21
|
+
#
|
|
22
|
+
# ===========================================================================
|
|
23
|
+
module Stellar
|
|
24
|
+
class SetTrustLineFlagsResultCode < XDR::Enum
|
|
25
|
+
member :set_trust_line_flags_success, 0
|
|
26
|
+
member :set_trust_line_flags_malformed, -1
|
|
27
|
+
member :set_trust_line_flags_no_trust_line, -2
|
|
28
|
+
member :set_trust_line_flags_cant_revoke, -3
|
|
29
|
+
member :set_trust_line_flags_invalid_state, -4
|
|
30
|
+
member :set_trust_line_flags_low_reserve, -5
|
|
31
|
+
|
|
32
|
+
seal
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -22,7 +22,7 @@ require 'xdr'
|
|
|
22
22
|
# txNO_ACCOUNT = -8, // source account not found
|
|
23
23
|
# txINSUFFICIENT_FEE = -9, // fee is too small
|
|
24
24
|
# txBAD_AUTH_EXTRA = -10, // unused signatures attached to transaction
|
|
25
|
-
# txINTERNAL_ERROR = -11, // an unknown error
|
|
25
|
+
# txINTERNAL_ERROR = -11, // an unknown error occurred
|
|
26
26
|
#
|
|
27
27
|
# txNOT_SUPPORTED = -12, // transaction type not supported
|
|
28
28
|
# txFEE_BUMP_INNER_FAILED = -13, // fee bump inner transaction failed
|
|
@@ -0,0 +1,39 @@
|
|
|
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 TrustLineAsset switch (AssetType type)
|
|
9
|
+
# {
|
|
10
|
+
# case ASSET_TYPE_NATIVE: // Not credit
|
|
11
|
+
# void;
|
|
12
|
+
#
|
|
13
|
+
# case ASSET_TYPE_CREDIT_ALPHANUM4:
|
|
14
|
+
# AlphaNum4 alphaNum4;
|
|
15
|
+
#
|
|
16
|
+
# case ASSET_TYPE_CREDIT_ALPHANUM12:
|
|
17
|
+
# AlphaNum12 alphaNum12;
|
|
18
|
+
#
|
|
19
|
+
# case ASSET_TYPE_POOL_SHARE:
|
|
20
|
+
# PoolID liquidityPoolID;
|
|
21
|
+
#
|
|
22
|
+
# // add other asset types here in the future
|
|
23
|
+
# };
|
|
24
|
+
#
|
|
25
|
+
# ===========================================================================
|
|
26
|
+
module Stellar
|
|
27
|
+
class TrustLineAsset < XDR::Union
|
|
28
|
+
switch_on AssetType, :type
|
|
29
|
+
|
|
30
|
+
switch :asset_type_native
|
|
31
|
+
switch :asset_type_credit_alphanum4, :alpha_num4
|
|
32
|
+
switch :asset_type_credit_alphanum12, :alpha_num12
|
|
33
|
+
switch :asset_type_pool_share, :liquidity_pool_id
|
|
34
|
+
|
|
35
|
+
attribute :alpha_num4, AlphaNum4
|
|
36
|
+
attribute :alpha_num12, AlphaNum12
|
|
37
|
+
attribute :liquidity_pool_id, PoolID
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -9,6 +9,8 @@ require 'xdr'
|
|
|
9
9
|
# {
|
|
10
10
|
# case 0:
|
|
11
11
|
# void;
|
|
12
|
+
# case 2:
|
|
13
|
+
# TrustLineEntryExtensionV2 v2;
|
|
12
14
|
# }
|
|
13
15
|
#
|
|
14
16
|
# ===========================================================================
|
|
@@ -20,7 +22,9 @@ module Stellar
|
|
|
20
22
|
switch_on XDR::Int, :v
|
|
21
23
|
|
|
22
24
|
switch 0
|
|
25
|
+
switch 2, :v2
|
|
23
26
|
|
|
27
|
+
attribute :v2, TrustLineEntryExtensionV2
|
|
24
28
|
end
|
|
25
29
|
end
|
|
26
30
|
end
|
|
@@ -7,10 +7,10 @@ require 'xdr'
|
|
|
7
7
|
#
|
|
8
8
|
# struct TrustLineEntry
|
|
9
9
|
# {
|
|
10
|
-
# AccountID accountID;
|
|
11
|
-
#
|
|
12
|
-
# int64 balance;
|
|
13
|
-
#
|
|
10
|
+
# AccountID accountID; // account this trustline belongs to
|
|
11
|
+
# TrustLineAsset asset; // type of asset (with issuer)
|
|
12
|
+
# int64 balance; // how much of this asset the user has.
|
|
13
|
+
# // Asset defines the unit for this;
|
|
14
14
|
#
|
|
15
15
|
# int64 limit; // balance cannot be above this
|
|
16
16
|
# uint32 flags; // see TrustLineFlags
|
|
@@ -29,6 +29,8 @@ require 'xdr'
|
|
|
29
29
|
# {
|
|
30
30
|
# case 0:
|
|
31
31
|
# void;
|
|
32
|
+
# case 2:
|
|
33
|
+
# TrustLineEntryExtensionV2 v2;
|
|
32
34
|
# }
|
|
33
35
|
# ext;
|
|
34
36
|
# } v1;
|
|
@@ -44,7 +46,7 @@ module Stellar
|
|
|
44
46
|
autoload :Ext
|
|
45
47
|
|
|
46
48
|
attribute :account_id, AccountID
|
|
47
|
-
attribute :asset,
|
|
49
|
+
attribute :asset, TrustLineAsset
|
|
48
50
|
attribute :balance, Int64
|
|
49
51
|
attribute :limit, Int64
|
|
50
52
|
attribute :flags, Uint32
|
|
@@ -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
|
+
# union switch (int v)
|
|
9
|
+
# {
|
|
10
|
+
# case 0:
|
|
11
|
+
# void;
|
|
12
|
+
# }
|
|
13
|
+
#
|
|
14
|
+
# ===========================================================================
|
|
15
|
+
module Stellar
|
|
16
|
+
class TrustLineEntryExtensionV2
|
|
17
|
+
class Ext < XDR::Union
|
|
18
|
+
switch_on XDR::Int, :v
|
|
19
|
+
|
|
20
|
+
switch 0
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
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 TrustLineEntryExtensionV2
|
|
9
|
+
# {
|
|
10
|
+
# int32 liquidityPoolUseCount;
|
|
11
|
+
#
|
|
12
|
+
# union switch (int v)
|
|
13
|
+
# {
|
|
14
|
+
# case 0:
|
|
15
|
+
# void;
|
|
16
|
+
# }
|
|
17
|
+
# ext;
|
|
18
|
+
# };
|
|
19
|
+
#
|
|
20
|
+
# ===========================================================================
|
|
21
|
+
module Stellar
|
|
22
|
+
class TrustLineEntryExtensionV2 < XDR::Struct
|
|
23
|
+
include XDR::Namespace
|
|
24
|
+
|
|
25
|
+
autoload :Ext
|
|
26
|
+
|
|
27
|
+
attribute :liquidity_pool_use_count, Int32
|
|
28
|
+
attribute :ext, Ext
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -11,7 +11,10 @@ require 'xdr'
|
|
|
11
11
|
# AUTHORIZED_FLAG = 1,
|
|
12
12
|
# // issuer has authorized account to maintain and reduce liabilities for its
|
|
13
13
|
# // credit
|
|
14
|
-
# AUTHORIZED_TO_MAINTAIN_LIABILITIES_FLAG = 2
|
|
14
|
+
# AUTHORIZED_TO_MAINTAIN_LIABILITIES_FLAG = 2,
|
|
15
|
+
# // issuer has specified that it may clawback its credit, and that claimable
|
|
16
|
+
# // balances created with its credit may also be clawed back
|
|
17
|
+
# TRUSTLINE_CLAWBACK_ENABLED_FLAG = 4
|
|
15
18
|
# };
|
|
16
19
|
#
|
|
17
20
|
# ===========================================================================
|
|
@@ -19,6 +22,7 @@ module Stellar
|
|
|
19
22
|
class TrustLineFlags < XDR::Enum
|
|
20
23
|
member :authorized_flag, 1
|
|
21
24
|
member :authorized_to_maintain_liabilities_flag, 2
|
|
25
|
+
member :trustline_clawback_enabled_flag, 4
|
|
22
26
|
|
|
23
27
|
seal
|
|
24
28
|
end
|
|
@@ -35,9 +35,13 @@ module Stellar
|
|
|
35
35
|
SequenceNumber = Int64
|
|
36
36
|
TimePoint = Uint64
|
|
37
37
|
DataValue = XDR::VarOpaque[64]
|
|
38
|
+
PoolID = Hash
|
|
38
39
|
AssetCode4 = XDR::Opaque[4]
|
|
39
40
|
AssetCode12 = XDR::Opaque[12]
|
|
40
41
|
autoload :AssetType
|
|
42
|
+
autoload :AssetCode
|
|
43
|
+
autoload :AlphaNum4
|
|
44
|
+
autoload :AlphaNum12
|
|
41
45
|
autoload :Asset
|
|
42
46
|
autoload :Price
|
|
43
47
|
autoload :Liabilities
|
|
@@ -46,6 +50,7 @@ module Stellar
|
|
|
46
50
|
autoload :Signer
|
|
47
51
|
autoload :AccountFlags
|
|
48
52
|
MASK_ACCOUNT_FLAGS = 0x7
|
|
53
|
+
MASK_ACCOUNT_FLAGS_V17 = 0xF
|
|
49
54
|
MAX_SIGNERS = 20
|
|
50
55
|
SponsorshipDescriptor = XDR::Option[AccountID]
|
|
51
56
|
autoload :AccountEntryExtensionV2
|
|
@@ -54,6 +59,10 @@ module Stellar
|
|
|
54
59
|
autoload :TrustLineFlags
|
|
55
60
|
MASK_TRUSTLINE_FLAGS = 1
|
|
56
61
|
MASK_TRUSTLINE_FLAGS_V13 = 3
|
|
62
|
+
MASK_TRUSTLINE_FLAGS_V17 = 7
|
|
63
|
+
autoload :LiquidityPoolType
|
|
64
|
+
autoload :TrustLineAsset
|
|
65
|
+
autoload :TrustLineEntryExtensionV2
|
|
57
66
|
autoload :TrustLineEntry
|
|
58
67
|
autoload :OfferEntryFlags
|
|
59
68
|
MASK_OFFERENTRY_FLAGS = 1
|
|
@@ -65,7 +74,12 @@ module Stellar
|
|
|
65
74
|
autoload :Claimant
|
|
66
75
|
autoload :ClaimableBalanceIDType
|
|
67
76
|
autoload :ClaimableBalanceID
|
|
77
|
+
autoload :ClaimableBalanceFlags
|
|
78
|
+
MASK_CLAIMABLE_BALANCE_FLAGS = 0x1
|
|
79
|
+
autoload :ClaimableBalanceEntryExtensionV1
|
|
68
80
|
autoload :ClaimableBalanceEntry
|
|
81
|
+
autoload :LiquidityPoolConstantProductParameters
|
|
82
|
+
autoload :LiquidityPoolEntry
|
|
69
83
|
autoload :LedgerEntryExtensionV1
|
|
70
84
|
autoload :LedgerEntry
|
|
71
85
|
autoload :LedgerKey
|
|
@@ -74,6 +88,7 @@ end
|
|
|
74
88
|
module Stellar
|
|
75
89
|
include XDR::Namespace
|
|
76
90
|
|
|
91
|
+
autoload :LiquidityPoolParameters
|
|
77
92
|
autoload :MuxedAccount
|
|
78
93
|
autoload :DecoratedSignature
|
|
79
94
|
autoload :OperationType
|
|
@@ -85,6 +100,7 @@ module Stellar
|
|
|
85
100
|
autoload :ManageBuyOfferOp
|
|
86
101
|
autoload :CreatePassiveSellOfferOp
|
|
87
102
|
autoload :SetOptionsOp
|
|
103
|
+
autoload :ChangeTrustAsset
|
|
88
104
|
autoload :ChangeTrustOp
|
|
89
105
|
autoload :AllowTrustOp
|
|
90
106
|
autoload :ManageDataOp
|
|
@@ -94,8 +110,14 @@ module Stellar
|
|
|
94
110
|
autoload :BeginSponsoringFutureReservesOp
|
|
95
111
|
autoload :RevokeSponsorshipType
|
|
96
112
|
autoload :RevokeSponsorshipOp
|
|
113
|
+
autoload :ClawbackOp
|
|
114
|
+
autoload :ClawbackClaimableBalanceOp
|
|
115
|
+
autoload :SetTrustLineFlagsOp
|
|
116
|
+
LIQUIDITY_POOL_FEE_V18 = 30
|
|
117
|
+
autoload :LiquidityPoolDepositOp
|
|
118
|
+
autoload :LiquidityPoolWithdrawOp
|
|
97
119
|
autoload :Operation
|
|
98
|
-
autoload :
|
|
120
|
+
autoload :HashIDPreimage
|
|
99
121
|
autoload :MemoType
|
|
100
122
|
autoload :Memo
|
|
101
123
|
autoload :TimeBounds
|
|
@@ -108,7 +130,11 @@ module Stellar
|
|
|
108
130
|
autoload :FeeBumpTransactionEnvelope
|
|
109
131
|
autoload :TransactionEnvelope
|
|
110
132
|
autoload :TransactionSignaturePayload
|
|
133
|
+
autoload :ClaimAtomType
|
|
134
|
+
autoload :ClaimOfferAtomV0
|
|
111
135
|
autoload :ClaimOfferAtom
|
|
136
|
+
autoload :ClaimLiquidityAtom
|
|
137
|
+
autoload :ClaimAtom
|
|
112
138
|
autoload :CreateAccountResultCode
|
|
113
139
|
autoload :CreateAccountResult
|
|
114
140
|
autoload :PaymentResultCode
|
|
@@ -149,6 +175,16 @@ module Stellar
|
|
|
149
175
|
autoload :EndSponsoringFutureReservesResult
|
|
150
176
|
autoload :RevokeSponsorshipResultCode
|
|
151
177
|
autoload :RevokeSponsorshipResult
|
|
178
|
+
autoload :ClawbackResultCode
|
|
179
|
+
autoload :ClawbackResult
|
|
180
|
+
autoload :ClawbackClaimableBalanceResultCode
|
|
181
|
+
autoload :ClawbackClaimableBalanceResult
|
|
182
|
+
autoload :SetTrustLineFlagsResultCode
|
|
183
|
+
autoload :SetTrustLineFlagsResult
|
|
184
|
+
autoload :LiquidityPoolDepositResultCode
|
|
185
|
+
autoload :LiquidityPoolDepositResult
|
|
186
|
+
autoload :LiquidityPoolWithdrawResultCode
|
|
187
|
+
autoload :LiquidityPoolWithdrawResult
|
|
152
188
|
autoload :OperationResultCode
|
|
153
189
|
autoload :OperationResult
|
|
154
190
|
autoload :TransactionResultCode
|
|
@@ -163,6 +199,9 @@ module Stellar
|
|
|
163
199
|
autoload :StellarValueType
|
|
164
200
|
autoload :LedgerCloseValueSignature
|
|
165
201
|
autoload :StellarValue
|
|
202
|
+
MASK_LEDGER_HEADER_FLAGS = 0x7
|
|
203
|
+
autoload :LedgerHeaderFlags
|
|
204
|
+
autoload :LedgerHeaderExtensionV1
|
|
166
205
|
autoload :LedgerHeader
|
|
167
206
|
autoload :LedgerUpgradeType
|
|
168
207
|
autoload :LedgerUpgrade
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
module Stellar
|
|
2
|
+
class Account
|
|
3
|
+
delegate :address, to: :keypair
|
|
4
|
+
|
|
5
|
+
def self.random
|
|
6
|
+
keypair = Stellar::KeyPair.random
|
|
7
|
+
new(keypair)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.from_seed(seed)
|
|
11
|
+
keypair = Stellar::KeyPair.from_seed(seed)
|
|
12
|
+
new(keypair)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.from_address(address)
|
|
16
|
+
muxed_xdr = Util::StrKey.decode_muxed_account(address)
|
|
17
|
+
|
|
18
|
+
if muxed_xdr.ed25519
|
|
19
|
+
new(KeyPair.from_public_key(muxed_xdr.ed25519))
|
|
20
|
+
else
|
|
21
|
+
muxed_xdr = muxed_xdr.med25519!
|
|
22
|
+
new(KeyPair.from_public_key(muxed_xdr.ed25519), muxed_xdr.id)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.master
|
|
27
|
+
keypair = Stellar::KeyPair.from_raw_seed("allmylifemyhearthasbeensearching")
|
|
28
|
+
new(keypair)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
attr_reader :keypair, :id
|
|
32
|
+
|
|
33
|
+
# @param [Stellar::KeyPair] keypair
|
|
34
|
+
# @param [Integer] id
|
|
35
|
+
def initialize(keypair, id = nil)
|
|
36
|
+
@keypair = keypair
|
|
37
|
+
@id = id
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def base_account
|
|
41
|
+
Stellar::MuxedAccount.ed25519(keypair.raw_public_key)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def muxed_account
|
|
45
|
+
return base_account unless id
|
|
46
|
+
Stellar::MuxedAccount.med25519(ed25519: keypair.raw_public_key, id: id)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def address(force_account_id: true)
|
|
50
|
+
return keypair.address if force_account_id
|
|
51
|
+
|
|
52
|
+
Util::StrKey.check_encode(:muxed, keypair.raw_public_key + [id].pack("Q>"))
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def to_keypair
|
|
56
|
+
keypair
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -4,7 +4,7 @@ module Stellar
|
|
|
4
4
|
# Converts an array of Stellar::AccountFlags members into
|
|
5
5
|
# an Integer suitable for use in a SetOptionsOp.
|
|
6
6
|
#
|
|
7
|
-
# @param flags [Array<Stellar::AccountFlags
|
|
7
|
+
# @param flags [Array<Stellar::AccountFlags>, nil] the flags to combine
|
|
8
8
|
#
|
|
9
9
|
# @return [Fixnum] the combined result
|
|
10
10
|
def self.make_mask(flags = nil)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Stellar
|
|
2
|
+
class Amount
|
|
3
|
+
attr_reader :amount
|
|
4
|
+
attr_reader :asset
|
|
5
|
+
|
|
6
|
+
# @param [Fixnum] amount
|
|
7
|
+
# @param [Stellar::Asset] asset
|
|
8
|
+
def initialize(amount, asset = Stellar::Asset.native)
|
|
9
|
+
# TODO: how are we going to handle decimal considerations?
|
|
10
|
+
|
|
11
|
+
@amount = amount
|
|
12
|
+
@asset = asset
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# @return [Array(Symbol, Fixnum)] in case of a native asset
|
|
16
|
+
# @return [Array(Symbol, String, Stellar::KeyPair, Fixnum)] in case of alphanum asset
|
|
17
|
+
def to_payment
|
|
18
|
+
case asset.type
|
|
19
|
+
when AssetType.asset_type_native
|
|
20
|
+
[:native, amount]
|
|
21
|
+
when AssetType.asset_type_credit_alphanum4
|
|
22
|
+
keypair = KeyPair.from_public_key(asset.issuer.value)
|
|
23
|
+
[:alphanum4, asset.code, keypair, amount]
|
|
24
|
+
when AssetType.asset_type_credit_alphanum12
|
|
25
|
+
keypair = KeyPair.from_public_key(asset.issuer.value)
|
|
26
|
+
[:alphanum12, asset.code, keypair, amount]
|
|
27
|
+
else
|
|
28
|
+
raise "Unknown asset type: #{asset.type}"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def inspect
|
|
33
|
+
"#<Stellar::Amount #{asset}(#{amount})>"
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
data/lib/stellar/asset.rb
CHANGED
|
@@ -30,6 +30,14 @@ module Stellar
|
|
|
30
30
|
new(:asset_type_credit_alphanum12, an)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
def to_change_trust_asset
|
|
34
|
+
ChangeTrustAsset.new(switch, value)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def to_trust_line_asset
|
|
38
|
+
TrustLineAsset.new(switch, value)
|
|
39
|
+
end
|
|
40
|
+
|
|
33
41
|
def to_s
|
|
34
42
|
case switch
|
|
35
43
|
when AssetType.asset_type_native
|
data/lib/stellar/compat.rb
CHANGED
|
@@ -2,7 +2,10 @@ class << Stellar::Operation
|
|
|
2
2
|
alias_method :manage_offer, :manage_sell_offer
|
|
3
3
|
alias_method :create_passive_offer, :create_passive_sell_offer
|
|
4
4
|
|
|
5
|
-
deprecate
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
deprecate(
|
|
6
|
+
deprecator: Stellar::Deprecation,
|
|
7
|
+
manage_offer: :manage_sell_offer,
|
|
8
|
+
create_passive_offer: :create_passive_sell_offer,
|
|
9
|
+
allow_trust: :set_trust_line_flags
|
|
10
|
+
)
|
|
8
11
|
end
|