privy_ruby 0.3.0 → 0.4.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 +11 -0
- data/README.md +1 -1
- data/lib/privy/authorization/canonicalization.rb +2 -0
- data/lib/privy/models/rpc_intent_request_details.rb +2 -2
- data/lib/privy/models/rpc_intent_response.rb +2 -2
- data/lib/privy/models/spark_coop_exit_fee_quote.rb +101 -0
- data/lib/privy/models/spark_coop_exit_request.rb +90 -0
- data/lib/privy/models/spark_currency_amount.rb +23 -0
- data/lib/privy/models/spark_exit_speed.rb +17 -0
- data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rb +43 -0
- data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rb +23 -0
- data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rb +35 -0
- data/lib/privy/models/spark_rpc_input.rb +7 -1
- data/lib/privy/models/spark_rpc_response.rb +7 -1
- data/lib/privy/models/spark_withdraw_rpc_input.rb +43 -0
- data/lib/privy/models/spark_withdraw_rpc_input_params.rb +53 -0
- data/lib/privy/models/spark_withdraw_rpc_response.rb +35 -0
- data/lib/privy/models/transaction_chain_name_input.rb +25 -0
- data/lib/privy/models/transfer_received_transaction_detail.rb +6 -0
- data/lib/privy/models/transfer_sent_transaction_detail.rb +6 -0
- data/lib/privy/models/wallet_asset.rb +2 -0
- data/lib/privy/models/wallet_asset_chain_name_input.rb +3 -0
- data/lib/privy/models/wallet_creation_input.rb +11 -1
- data/lib/privy/models/wallet_ethereum_asset.rb +1 -0
- data/lib/privy/models/wallet_rpc_request_body.rb +7 -1
- data/lib/privy/models/wallet_rpc_response.rb +7 -1
- data/lib/privy/models/wallet_tron_asset.rb +17 -0
- data/lib/privy/models/wallets/aave_vault_details.rb +130 -0
- data/lib/privy/models/wallets/balance_get_params.rb +6 -0
- data/lib/privy/models/wallets/balance_get_response.rb +6 -0
- data/lib/privy/models/wallets/ethereum_earn_vault_details_response.rb +11 -84
- data/lib/privy/models/wallets/morpho_vault_details.rb +130 -0
- data/lib/privy/models/wallets/transaction_get_params.rb +10 -20
- data/lib/privy/models.rb +24 -0
- data/lib/privy/public_api/services/tron.rb +103 -0
- data/lib/privy/public_api/services/wallets.rb +4 -0
- data/lib/privy/resources/intents.rb +1 -1
- data/lib/privy/resources/wallets/transactions.rb +1 -1
- data/lib/privy/resources/wallets.rb +2 -2
- data/lib/privy/version.rb +1 -1
- data/lib/privy.rb +15 -0
- data/rbi/privy/models/rpc_intent_request_details.rbi +6 -0
- data/rbi/privy/models/rpc_intent_response.rbi +2 -0
- data/rbi/privy/models/spark_coop_exit_fee_quote.rbi +143 -0
- data/rbi/privy/models/spark_coop_exit_request.rbi +114 -0
- data/rbi/privy/models/spark_currency_amount.rbi +31 -0
- data/rbi/privy/models/spark_exit_speed.rbi +21 -0
- data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rbi +94 -0
- data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rbi +34 -0
- data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rbi +82 -0
- data/rbi/privy/models/spark_rpc_input.rbi +3 -1
- data/rbi/privy/models/spark_rpc_response.rbi +3 -1
- data/rbi/privy/models/spark_withdraw_rpc_input.rbi +77 -0
- data/rbi/privy/models/spark_withdraw_rpc_input_params.rbi +80 -0
- data/rbi/privy/models/spark_withdraw_rpc_response.rbi +71 -0
- data/rbi/privy/models/transaction_chain_name_input.rbi +38 -0
- data/rbi/privy/models/transfer_received_transaction_detail.rbi +10 -0
- data/rbi/privy/models/transfer_sent_transaction_detail.rbi +4 -0
- data/rbi/privy/models/wallet_asset.rbi +2 -0
- data/rbi/privy/models/wallet_asset_chain_name_input.rbi +4 -0
- data/rbi/privy/models/wallet_creation_input.rbi +15 -0
- data/rbi/privy/models/wallet_ethereum_asset.rbi +1 -0
- data/rbi/privy/models/wallet_rpc_request_body.rbi +2 -0
- data/rbi/privy/models/wallet_rpc_response.rbi +2 -0
- data/rbi/privy/models/wallet_tron_asset.rbi +21 -0
- data/rbi/privy/models/wallets/aave_vault_details.rbi +165 -0
- data/rbi/privy/models/wallets/balance_get_params.rbi +4 -0
- data/rbi/privy/models/wallets/balance_get_response.rbi +10 -0
- data/rbi/privy/models/wallets/ethereum_earn_vault_details_response.rbi +10 -103
- data/rbi/privy/models/wallets/morpho_vault_details.rbi +167 -0
- data/rbi/privy/models/wallets/transaction_get_params.rbi +15 -69
- data/rbi/privy/models.rbi +27 -0
- data/rbi/privy/resources/intents.rbi +2 -0
- data/rbi/privy/resources/wallets/transactions.rbi +2 -1
- data/rbi/privy/resources/wallets.rbi +2 -0
- data/sig/privy/models/spark_coop_exit_fee_quote.rbs +75 -0
- data/sig/privy/models/spark_coop_exit_request.rbs +76 -0
- data/sig/privy/models/spark_currency_amount.rbs +16 -0
- data/sig/privy/models/spark_exit_speed.rbs +15 -0
- data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rbs +44 -0
- data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rbs +16 -0
- data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rbs +37 -0
- data/sig/privy/models/spark_rpc_input.rbs +2 -0
- data/sig/privy/models/spark_rpc_response.rbs +2 -0
- data/sig/privy/models/spark_withdraw_rpc_input.rbs +44 -0
- data/sig/privy/models/spark_withdraw_rpc_input_params.rbs +53 -0
- data/sig/privy/models/spark_withdraw_rpc_response.rbs +37 -0
- data/sig/privy/models/transaction_chain_name_input.rbs +34 -0
- data/sig/privy/models/transfer_received_transaction_detail.rbs +4 -0
- data/sig/privy/models/transfer_sent_transaction_detail.rbs +4 -0
- data/sig/privy/models/wallet_asset.rbs +13 -1
- data/sig/privy/models/wallet_asset_chain_name_input.rbs +6 -0
- data/sig/privy/models/wallet_creation_input.rbs +7 -0
- data/sig/privy/models/wallet_ethereum_asset.rbs +2 -1
- data/sig/privy/models/wallet_rpc_request_body.rbs +2 -0
- data/sig/privy/models/wallet_rpc_response.rbs +2 -0
- data/sig/privy/models/wallet_tron_asset.rbs +15 -0
- data/sig/privy/models/wallets/aave_vault_details.rbs +92 -0
- data/sig/privy/models/wallets/balance_get_params.rbs +4 -0
- data/sig/privy/models/wallets/balance_get_response.rbs +4 -0
- data/sig/privy/models/wallets/ethereum_earn_vault_details_response.rbs +4 -57
- data/sig/privy/models/wallets/morpho_vault_details.rbs +92 -0
- data/sig/privy/models/wallets/transaction_get_params.rbs +8 -31
- data/sig/privy/models.rbs +24 -0
- data/sig/privy/resources/wallets/transactions.rbs +1 -1
- metadata +45 -2
|
@@ -91,6 +91,8 @@ module Privy
|
|
|
91
91
|
|
|
92
92
|
variant const: -> { Privy::Models::TransferSentTransactionDetail::Asset::POL }
|
|
93
93
|
|
|
94
|
+
variant const: -> { Privy::Models::TransferSentTransactionDetail::Asset::BNB }
|
|
95
|
+
|
|
94
96
|
variant const: -> { Privy::Models::TransferSentTransactionDetail::Asset::USDT }
|
|
95
97
|
|
|
96
98
|
variant const: -> { Privy::Models::TransferSentTransactionDetail::Asset::EURC }
|
|
@@ -99,6 +101,8 @@ module Privy
|
|
|
99
101
|
|
|
100
102
|
variant const: -> { Privy::Models::TransferSentTransactionDetail::Asset::SOL }
|
|
101
103
|
|
|
104
|
+
variant const: -> { Privy::Models::TransferSentTransactionDetail::Asset::TRX }
|
|
105
|
+
|
|
102
106
|
variant String
|
|
103
107
|
|
|
104
108
|
# @!method self.variants
|
|
@@ -115,10 +119,12 @@ module Privy
|
|
|
115
119
|
ETH = :eth
|
|
116
120
|
AVAX = :avax
|
|
117
121
|
POL = :pol
|
|
122
|
+
BNB = :bnb
|
|
118
123
|
USDT = :usdt
|
|
119
124
|
EURC = :eurc
|
|
120
125
|
USDB = :usdb
|
|
121
126
|
SOL = :sol
|
|
127
|
+
TRX = :trx
|
|
122
128
|
|
|
123
129
|
# @!endgroup
|
|
124
130
|
end
|
|
@@ -14,7 +14,9 @@ module Privy
|
|
|
14
14
|
LINEA = :linea
|
|
15
15
|
OPTIMISM = :optimism
|
|
16
16
|
POLYGON = :polygon
|
|
17
|
+
BSC = :bsc
|
|
17
18
|
SOLANA = :solana
|
|
19
|
+
TRON = :tron
|
|
18
20
|
ZKSYNC_ERA = :zksync_era
|
|
19
21
|
SEPOLIA = :sepolia
|
|
20
22
|
ARBITRUM_SEPOLIA = :arbitrum_sepolia
|
|
@@ -25,6 +27,7 @@ module Privy
|
|
|
25
27
|
POLYGON_AMOY = :polygon_amoy
|
|
26
28
|
SOLANA_DEVNET = :solana_devnet
|
|
27
29
|
SOLANA_TESTNET = :solana_testnet
|
|
30
|
+
TRON_NILE = :tron_nile
|
|
28
31
|
|
|
29
32
|
# @!method self.values
|
|
30
33
|
# @return [Array<Symbol>]
|
|
@@ -23,6 +23,14 @@ module Privy
|
|
|
23
23
|
# @return [Boolean, nil]
|
|
24
24
|
optional :create_smart_wallet, Privy::Internal::Type::Boolean
|
|
25
25
|
|
|
26
|
+
# @!attribute external_id
|
|
27
|
+
# A customer-provided identifier for mapping to external systems. Write-once, set
|
|
28
|
+
# only at creation. Must be alphanumeric, hyphens, or underscores, max 64
|
|
29
|
+
# characters.
|
|
30
|
+
#
|
|
31
|
+
# @return [String, nil]
|
|
32
|
+
optional :external_id, String
|
|
33
|
+
|
|
26
34
|
# @!attribute policy_ids
|
|
27
35
|
# Policy IDs to enforce on the wallet. Currently, only one policy is supported per
|
|
28
36
|
# wallet.
|
|
@@ -30,7 +38,7 @@ module Privy
|
|
|
30
38
|
# @return [Array<String>, nil]
|
|
31
39
|
optional :policy_ids, Privy::Internal::Type::ArrayOf[String]
|
|
32
40
|
|
|
33
|
-
# @!method initialize(chain_type:, additional_signers: nil, create_smart_wallet: nil, policy_ids: nil)
|
|
41
|
+
# @!method initialize(chain_type:, additional_signers: nil, create_smart_wallet: nil, external_id: nil, policy_ids: nil)
|
|
34
42
|
# Some parameter documentations has been truncated, see
|
|
35
43
|
# {Privy::Models::WalletCreationInput} for more details.
|
|
36
44
|
#
|
|
@@ -43,6 +51,8 @@ module Privy
|
|
|
43
51
|
#
|
|
44
52
|
# @param create_smart_wallet [Boolean] Create a smart wallet with this wallet as the signer. Only supported for wallets
|
|
45
53
|
#
|
|
54
|
+
# @param external_id [String] A customer-provided identifier for mapping to external systems. Write-once, set
|
|
55
|
+
#
|
|
46
56
|
# @param policy_ids [Array<String>] Policy IDs to enforce on the wallet. Currently, only one policy is supported per
|
|
47
57
|
end
|
|
48
58
|
end
|
|
@@ -68,6 +68,12 @@ module Privy
|
|
|
68
68
|
# Signs a message with the Spark identity key.
|
|
69
69
|
variant :signMessageWithIdentityKey, -> { Privy::SparkSignMessageWithIdentityKeyRpcInput }
|
|
70
70
|
|
|
71
|
+
# Withdraws from Spark to a Bitcoin L1 address (cooperative exit).
|
|
72
|
+
variant :withdraw, -> { Privy::SparkWithdrawRpcInput }
|
|
73
|
+
|
|
74
|
+
# Gets a fee quote for withdrawing from Spark to a Bitcoin L1 address.
|
|
75
|
+
variant :getWithdrawalFeeQuote, -> { Privy::SparkGetWithdrawalFeeQuoteRpcInput }
|
|
76
|
+
|
|
71
77
|
# Executes the Tron `tron_signTransaction` RPC to sign a transaction. The caller is responsible for broadcasting.
|
|
72
78
|
variant :tron_signTransaction, -> { Privy::TronSignTransactionRpcInput }
|
|
73
79
|
|
|
@@ -81,7 +87,7 @@ module Privy
|
|
|
81
87
|
variant :exportSeedPhrase, -> { Privy::ExportSeedPhraseRpcInput }
|
|
82
88
|
|
|
83
89
|
# @!method self.variants
|
|
84
|
-
# @return [Array(Privy::Models::EthereumSignTransactionRpcInput, Privy::Models::EthereumSendTransactionRpcInput, Privy::Models::EthereumPersonalSignRpcInput, Privy::Models::EthereumSignTypedDataRpcInput, Privy::Models::EthereumSecp256k1SignRpcInput, Privy::Models::EthereumSign7702AuthorizationRpcInput, Privy::Models::EthereumSignUserOperationRpcInput, Privy::Models::EthereumSendCallsRpcInput, Privy::Models::SolanaSignTransactionRpcInput, Privy::Models::SolanaSignAndSendTransactionRpcInput, Privy::Models::SolanaSignMessageRpcInput, Privy::Models::SparkTransferRpcInput, Privy::Models::SparkGetBalanceRpcInput, Privy::Models::SparkTransferTokensRpcInput, Privy::Models::SparkGetStaticDepositAddressRpcInput, Privy::Models::SparkGetClaimStaticDepositQuoteRpcInput, Privy::Models::SparkClaimStaticDepositRpcInput, Privy::Models::SparkCreateLightningInvoiceRpcInput, Privy::Models::SparkPayLightningInvoiceRpcInput, Privy::Models::SparkSignMessageWithIdentityKeyRpcInput, Privy::Models::TronSignTransactionRpcInput, Privy::Models::TronSendTransactionRpcInput, Privy::Models::ExportPrivateKeyRpcInput, Privy::Models::ExportSeedPhraseRpcInput)]
|
|
90
|
+
# @return [Array(Privy::Models::EthereumSignTransactionRpcInput, Privy::Models::EthereumSendTransactionRpcInput, Privy::Models::EthereumPersonalSignRpcInput, Privy::Models::EthereumSignTypedDataRpcInput, Privy::Models::EthereumSecp256k1SignRpcInput, Privy::Models::EthereumSign7702AuthorizationRpcInput, Privy::Models::EthereumSignUserOperationRpcInput, Privy::Models::EthereumSendCallsRpcInput, Privy::Models::SolanaSignTransactionRpcInput, Privy::Models::SolanaSignAndSendTransactionRpcInput, Privy::Models::SolanaSignMessageRpcInput, Privy::Models::SparkTransferRpcInput, Privy::Models::SparkGetBalanceRpcInput, Privy::Models::SparkTransferTokensRpcInput, Privy::Models::SparkGetStaticDepositAddressRpcInput, Privy::Models::SparkGetClaimStaticDepositQuoteRpcInput, Privy::Models::SparkClaimStaticDepositRpcInput, Privy::Models::SparkCreateLightningInvoiceRpcInput, Privy::Models::SparkPayLightningInvoiceRpcInput, Privy::Models::SparkSignMessageWithIdentityKeyRpcInput, Privy::Models::SparkWithdrawRpcInput, Privy::Models::SparkGetWithdrawalFeeQuoteRpcInput, Privy::Models::TronSignTransactionRpcInput, Privy::Models::TronSendTransactionRpcInput, Privy::Models::ExportPrivateKeyRpcInput, Privy::Models::ExportSeedPhraseRpcInput)]
|
|
85
91
|
end
|
|
86
92
|
end
|
|
87
93
|
end
|
|
@@ -70,6 +70,12 @@ module Privy
|
|
|
70
70
|
# Response to the Spark `signMessageWithIdentityKey` RPC.
|
|
71
71
|
variant :signMessageWithIdentityKey, -> { Privy::SparkSignMessageWithIdentityKeyRpcResponse }
|
|
72
72
|
|
|
73
|
+
# Response to the Spark `withdraw` RPC.
|
|
74
|
+
variant :withdraw, -> { Privy::SparkWithdrawRpcResponse }
|
|
75
|
+
|
|
76
|
+
# Response to the Spark `getWithdrawalFeeQuote` RPC.
|
|
77
|
+
variant :getWithdrawalFeeQuote, -> { Privy::SparkGetWithdrawalFeeQuoteRpcResponse }
|
|
78
|
+
|
|
73
79
|
# Response to the Tron `tron_signTransaction` RPC.
|
|
74
80
|
variant :tron_signTransaction, -> { Privy::TronSignTransactionRpcResponse }
|
|
75
81
|
|
|
@@ -83,7 +89,7 @@ module Privy
|
|
|
83
89
|
variant :exportSeedPhrase, -> { Privy::ExportSeedPhraseRpcResponse }
|
|
84
90
|
|
|
85
91
|
# @!method self.variants
|
|
86
|
-
# @return [Array(Privy::Models::EthereumPersonalSignRpcResponse, Privy::Models::EthereumSignTypedDataRpcResponse, Privy::Models::EthereumSignTransactionRpcResponse, Privy::Models::EthereumSendTransactionRpcResponse, Privy::Models::EthereumSignUserOperationRpcResponse, Privy::Models::EthereumSign7702AuthorizationRpcResponse, Privy::Models::EthereumSecp256k1SignRpcResponse, Privy::Models::EthereumSendCallsRpcResponse, Privy::Models::SolanaSignMessageRpcResponse, Privy::Models::SolanaSignTransactionRpcResponse, Privy::Models::SolanaSignAndSendTransactionRpcResponse, Privy::Models::SparkTransferRpcResponse, Privy::Models::SparkGetBalanceRpcResponse, Privy::Models::SparkTransferTokensRpcResponse, Privy::Models::SparkGetStaticDepositAddressRpcResponse, Privy::Models::SparkGetClaimStaticDepositQuoteRpcResponse, Privy::Models::SparkClaimStaticDepositRpcResponse, Privy::Models::SparkCreateLightningInvoiceRpcResponse, Privy::Models::SparkPayLightningInvoiceRpcResponse, Privy::Models::SparkSignMessageWithIdentityKeyRpcResponse, Privy::Models::TronSignTransactionRpcResponse, Privy::Models::TronSendTransactionRpcResponse, Privy::Models::ExportPrivateKeyRpcResponse, Privy::Models::ExportSeedPhraseRpcResponse)]
|
|
92
|
+
# @return [Array(Privy::Models::EthereumPersonalSignRpcResponse, Privy::Models::EthereumSignTypedDataRpcResponse, Privy::Models::EthereumSignTransactionRpcResponse, Privy::Models::EthereumSendTransactionRpcResponse, Privy::Models::EthereumSignUserOperationRpcResponse, Privy::Models::EthereumSign7702AuthorizationRpcResponse, Privy::Models::EthereumSecp256k1SignRpcResponse, Privy::Models::EthereumSendCallsRpcResponse, Privy::Models::SolanaSignMessageRpcResponse, Privy::Models::SolanaSignTransactionRpcResponse, Privy::Models::SolanaSignAndSendTransactionRpcResponse, Privy::Models::SparkTransferRpcResponse, Privy::Models::SparkGetBalanceRpcResponse, Privy::Models::SparkTransferTokensRpcResponse, Privy::Models::SparkGetStaticDepositAddressRpcResponse, Privy::Models::SparkGetClaimStaticDepositQuoteRpcResponse, Privy::Models::SparkClaimStaticDepositRpcResponse, Privy::Models::SparkCreateLightningInvoiceRpcResponse, Privy::Models::SparkPayLightningInvoiceRpcResponse, Privy::Models::SparkSignMessageWithIdentityKeyRpcResponse, Privy::Models::SparkWithdrawRpcResponse, Privy::Models::SparkGetWithdrawalFeeQuoteRpcResponse, Privy::Models::TronSignTransactionRpcResponse, Privy::Models::TronSendTransactionRpcResponse, Privy::Models::ExportPrivateKeyRpcResponse, Privy::Models::ExportSeedPhraseRpcResponse)]
|
|
87
93
|
end
|
|
88
94
|
end
|
|
89
95
|
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Privy
|
|
4
|
+
module Models
|
|
5
|
+
# A named asset on Tron.
|
|
6
|
+
module WalletTronAsset
|
|
7
|
+
extend Privy::Internal::Type::Enum
|
|
8
|
+
|
|
9
|
+
TRX = :trx
|
|
10
|
+
USDT = :usdt
|
|
11
|
+
USDC = :usdc
|
|
12
|
+
|
|
13
|
+
# @!method self.values
|
|
14
|
+
# @return [Array<Symbol>]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Privy
|
|
4
|
+
module Models
|
|
5
|
+
module Wallets
|
|
6
|
+
class AaveVaultDetails < Privy::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute id
|
|
8
|
+
# Vault identifier.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :id, String
|
|
12
|
+
|
|
13
|
+
# @!attribute admin_wallet_address
|
|
14
|
+
# EVM address of the vault admin wallet.
|
|
15
|
+
#
|
|
16
|
+
# @return [String]
|
|
17
|
+
required :admin_wallet_address, String
|
|
18
|
+
|
|
19
|
+
# @!attribute admin_wallet_id
|
|
20
|
+
# Privy wallet ID of the vault admin.
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
required :admin_wallet_id, String
|
|
24
|
+
|
|
25
|
+
# @!attribute app_apy
|
|
26
|
+
# Annual percentage yield earned by the app from fee wrapper fees, in basis
|
|
27
|
+
# points.
|
|
28
|
+
#
|
|
29
|
+
# @return [Float, nil]
|
|
30
|
+
required :app_apy, Float, nil?: true
|
|
31
|
+
|
|
32
|
+
# @!attribute asset
|
|
33
|
+
# Asset metadata for an earn vault position.
|
|
34
|
+
#
|
|
35
|
+
# @return [Privy::Models::Wallets::EarnAsset]
|
|
36
|
+
required :asset, -> { Privy::Wallets::EarnAsset }
|
|
37
|
+
|
|
38
|
+
# @!attribute available_fees
|
|
39
|
+
# Fees available to collect, in smallest unit of the underlying asset.
|
|
40
|
+
#
|
|
41
|
+
# @return [String]
|
|
42
|
+
required :available_fees, String
|
|
43
|
+
|
|
44
|
+
# @!attribute available_liquidity_usd
|
|
45
|
+
# Available liquidity in USD.
|
|
46
|
+
#
|
|
47
|
+
# @return [Float, nil]
|
|
48
|
+
required :available_liquidity_usd, Float, nil?: true
|
|
49
|
+
|
|
50
|
+
# @!attribute caip2
|
|
51
|
+
# CAIP-2 chain identifier (e.g. "eip155:8453").
|
|
52
|
+
#
|
|
53
|
+
# @return [String]
|
|
54
|
+
required :caip2, String
|
|
55
|
+
|
|
56
|
+
# @!attribute name
|
|
57
|
+
# Human-readable vault name from the yield provider.
|
|
58
|
+
#
|
|
59
|
+
# @return [String]
|
|
60
|
+
required :name, String
|
|
61
|
+
|
|
62
|
+
# @!attribute provider
|
|
63
|
+
#
|
|
64
|
+
# @return [Symbol, Privy::Models::Wallets::AaveVaultDetails::Provider]
|
|
65
|
+
required :provider, enum: -> { Privy::Wallets::AaveVaultDetails::Provider }
|
|
66
|
+
|
|
67
|
+
# @!attribute tvl_usd
|
|
68
|
+
# Total value locked in USD.
|
|
69
|
+
#
|
|
70
|
+
# @return [Float, nil]
|
|
71
|
+
required :tvl_usd, Float, nil?: true
|
|
72
|
+
|
|
73
|
+
# @!attribute user_apy
|
|
74
|
+
# Annual percentage yield available to the user, after fees and excluding rewards,
|
|
75
|
+
# in basis points (e.g. 500 for 5%). 1 basis point = 0.01%.
|
|
76
|
+
#
|
|
77
|
+
# @return [Float, nil]
|
|
78
|
+
required :user_apy, Float, nil?: true
|
|
79
|
+
|
|
80
|
+
# @!attribute vault_address
|
|
81
|
+
# Onchain vault contract address.
|
|
82
|
+
#
|
|
83
|
+
# @return [String]
|
|
84
|
+
required :vault_address, String
|
|
85
|
+
|
|
86
|
+
# @!method initialize(id:, admin_wallet_address:, admin_wallet_id:, app_apy:, asset:, available_fees:, available_liquidity_usd:, caip2:, name:, provider:, tvl_usd:, user_apy:, vault_address:)
|
|
87
|
+
# Some parameter documentations has been truncated, see
|
|
88
|
+
# {Privy::Models::Wallets::AaveVaultDetails} for more details.
|
|
89
|
+
#
|
|
90
|
+
# Vault details for an Aave earn vault, including fee visibility.
|
|
91
|
+
#
|
|
92
|
+
# @param id [String] Vault identifier.
|
|
93
|
+
#
|
|
94
|
+
# @param admin_wallet_address [String] EVM address of the vault admin wallet.
|
|
95
|
+
#
|
|
96
|
+
# @param admin_wallet_id [String] Privy wallet ID of the vault admin.
|
|
97
|
+
#
|
|
98
|
+
# @param app_apy [Float, nil] Annual percentage yield earned by the app from fee wrapper fees, in basis points
|
|
99
|
+
#
|
|
100
|
+
# @param asset [Privy::Models::Wallets::EarnAsset] Asset metadata for an earn vault position.
|
|
101
|
+
#
|
|
102
|
+
# @param available_fees [String] Fees available to collect, in smallest unit of the underlying asset.
|
|
103
|
+
#
|
|
104
|
+
# @param available_liquidity_usd [Float, nil] Available liquidity in USD.
|
|
105
|
+
#
|
|
106
|
+
# @param caip2 [String] CAIP-2 chain identifier (e.g. "eip155:8453").
|
|
107
|
+
#
|
|
108
|
+
# @param name [String] Human-readable vault name from the yield provider.
|
|
109
|
+
#
|
|
110
|
+
# @param provider [Symbol, Privy::Models::Wallets::AaveVaultDetails::Provider]
|
|
111
|
+
#
|
|
112
|
+
# @param tvl_usd [Float, nil] Total value locked in USD.
|
|
113
|
+
#
|
|
114
|
+
# @param user_apy [Float, nil] Annual percentage yield available to the user, after fees and excluding rewards,
|
|
115
|
+
#
|
|
116
|
+
# @param vault_address [String] Onchain vault contract address.
|
|
117
|
+
|
|
118
|
+
# @see Privy::Models::Wallets::AaveVaultDetails#provider
|
|
119
|
+
module Provider
|
|
120
|
+
extend Privy::Internal::Type::Enum
|
|
121
|
+
|
|
122
|
+
AAVE = :aave
|
|
123
|
+
|
|
124
|
+
# @!method self.values
|
|
125
|
+
# @return [Array<Symbol>]
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
@@ -101,6 +101,8 @@ module Privy
|
|
|
101
101
|
|
|
102
102
|
variant const: -> { Privy::Models::Wallets::BalanceGetParams::Asset::POL }
|
|
103
103
|
|
|
104
|
+
variant const: -> { Privy::Models::Wallets::BalanceGetParams::Asset::BNB }
|
|
105
|
+
|
|
104
106
|
variant const: -> { Privy::Models::Wallets::BalanceGetParams::Asset::USDT }
|
|
105
107
|
|
|
106
108
|
variant const: -> { Privy::Models::Wallets::BalanceGetParams::Asset::EURC }
|
|
@@ -109,6 +111,8 @@ module Privy
|
|
|
109
111
|
|
|
110
112
|
variant const: -> { Privy::Models::Wallets::BalanceGetParams::Asset::SOL }
|
|
111
113
|
|
|
114
|
+
variant const: -> { Privy::Models::Wallets::BalanceGetParams::Asset::TRX }
|
|
115
|
+
|
|
112
116
|
variant -> { Privy::Models::Wallets::BalanceGetParams::Asset::WalletAssetArray }
|
|
113
117
|
|
|
114
118
|
# @!method self.variants
|
|
@@ -125,10 +129,12 @@ module Privy
|
|
|
125
129
|
ETH = :eth
|
|
126
130
|
AVAX = :avax
|
|
127
131
|
POL = :pol
|
|
132
|
+
BNB = :bnb
|
|
128
133
|
USDT = :usdt
|
|
129
134
|
EURC = :eurc
|
|
130
135
|
USDB = :usdb
|
|
131
136
|
SOL = :sol
|
|
137
|
+
TRX = :trx
|
|
132
138
|
|
|
133
139
|
# @!endgroup
|
|
134
140
|
|
|
@@ -66,6 +66,8 @@ module Privy
|
|
|
66
66
|
|
|
67
67
|
variant const: -> { Privy::Models::Wallets::BalanceGetResponse::Balance::Asset::POL }
|
|
68
68
|
|
|
69
|
+
variant const: -> { Privy::Models::Wallets::BalanceGetResponse::Balance::Asset::BNB }
|
|
70
|
+
|
|
69
71
|
variant const: -> { Privy::Models::Wallets::BalanceGetResponse::Balance::Asset::USDT }
|
|
70
72
|
|
|
71
73
|
variant const: -> { Privy::Models::Wallets::BalanceGetResponse::Balance::Asset::EURC }
|
|
@@ -74,6 +76,8 @@ module Privy
|
|
|
74
76
|
|
|
75
77
|
variant const: -> { Privy::Models::Wallets::BalanceGetResponse::Balance::Asset::SOL }
|
|
76
78
|
|
|
79
|
+
variant const: -> { Privy::Models::Wallets::BalanceGetResponse::Balance::Asset::TRX }
|
|
80
|
+
|
|
77
81
|
variant String
|
|
78
82
|
|
|
79
83
|
# @!method self.variants
|
|
@@ -90,10 +94,12 @@ module Privy
|
|
|
90
94
|
ETH = :eth
|
|
91
95
|
AVAX = :avax
|
|
92
96
|
POL = :pol
|
|
97
|
+
BNB = :bnb
|
|
93
98
|
USDT = :usdt
|
|
94
99
|
EURC = :eurc
|
|
95
100
|
USDB = :usdb
|
|
96
101
|
SOL = :sol
|
|
102
|
+
TRX = :trx
|
|
97
103
|
|
|
98
104
|
# @!endgroup
|
|
99
105
|
end
|
|
@@ -3,94 +3,21 @@
|
|
|
3
3
|
module Privy
|
|
4
4
|
module Models
|
|
5
5
|
module Wallets
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
# @return [String]
|
|
11
|
-
required :id, String
|
|
6
|
+
# Detailed vault information including current APY, liquidity, and asset metadata.
|
|
7
|
+
# Discriminated on provider.
|
|
8
|
+
module EthereumEarnVaultDetailsResponse
|
|
9
|
+
extend Privy::Internal::Type::Union
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
# Annual percentage yield earned by the app from fee wrapper fees, in basis
|
|
15
|
-
# points.
|
|
16
|
-
#
|
|
17
|
-
# @return [Float, nil]
|
|
18
|
-
required :app_apy, Float, nil?: true
|
|
11
|
+
discriminator :provider
|
|
19
12
|
|
|
20
|
-
#
|
|
21
|
-
|
|
22
|
-
#
|
|
23
|
-
# @return [Privy::Models::Wallets::EarnAsset]
|
|
24
|
-
required :asset, -> { Privy::Wallets::EarnAsset }
|
|
13
|
+
# Vault details for an Aave earn vault, including fee visibility.
|
|
14
|
+
variant :aave, -> { Privy::Wallets::AaveVaultDetails }
|
|
25
15
|
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
#
|
|
29
|
-
# @return [Float, nil]
|
|
30
|
-
required :available_liquidity_usd, Float, nil?: true
|
|
16
|
+
# Vault details for a Morpho earn vault.
|
|
17
|
+
variant :morpho, -> { Privy::Wallets::MorphoVaultDetails }
|
|
31
18
|
|
|
32
|
-
# @!
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
# @return [String]
|
|
36
|
-
required :caip2, String
|
|
37
|
-
|
|
38
|
-
# @!attribute name
|
|
39
|
-
# Human-readable vault name from the yield provider.
|
|
40
|
-
#
|
|
41
|
-
# @return [String]
|
|
42
|
-
required :name, String
|
|
43
|
-
|
|
44
|
-
# @!attribute provider
|
|
45
|
-
# Supported earn provider protocols.
|
|
46
|
-
#
|
|
47
|
-
# @return [Symbol, Privy::Models::Wallets::EthereumEarnProvider]
|
|
48
|
-
required :provider, enum: -> { Privy::Wallets::EthereumEarnProvider }
|
|
49
|
-
|
|
50
|
-
# @!attribute tvl_usd
|
|
51
|
-
# Total value locked in USD.
|
|
52
|
-
#
|
|
53
|
-
# @return [Float, nil]
|
|
54
|
-
required :tvl_usd, Float, nil?: true
|
|
55
|
-
|
|
56
|
-
# @!attribute user_apy
|
|
57
|
-
# Current annual percentage yield in basis points (e.g. 500 for 5%). 1 basis point
|
|
58
|
-
# = 0.01%.
|
|
59
|
-
#
|
|
60
|
-
# @return [Float, nil]
|
|
61
|
-
required :user_apy, Float, nil?: true
|
|
62
|
-
|
|
63
|
-
# @!attribute vault_address
|
|
64
|
-
# Onchain vault contract address.
|
|
65
|
-
#
|
|
66
|
-
# @return [String]
|
|
67
|
-
required :vault_address, String
|
|
68
|
-
|
|
69
|
-
# @!method initialize(id:, app_apy:, asset:, available_liquidity_usd:, caip2:, name:, provider:, tvl_usd:, user_apy:, vault_address:)
|
|
70
|
-
# Some parameter documentations has been truncated, see
|
|
71
|
-
# {Privy::Models::Wallets::EthereumEarnVaultDetailsResponse} for more details.
|
|
72
|
-
#
|
|
73
|
-
# Detailed vault information including current APY, liquidity, and asset metadata.
|
|
74
|
-
#
|
|
75
|
-
# @param id [String] Vault identifier.
|
|
76
|
-
#
|
|
77
|
-
# @param app_apy [Float, nil] Annual percentage yield earned by the app from fee wrapper fees, in basis points
|
|
78
|
-
#
|
|
79
|
-
# @param asset [Privy::Models::Wallets::EarnAsset] Asset metadata for an earn vault position.
|
|
80
|
-
#
|
|
81
|
-
# @param available_liquidity_usd [Float, nil] Available liquidity in USD.
|
|
82
|
-
#
|
|
83
|
-
# @param caip2 [String] CAIP-2 chain identifier (e.g. "eip155:8453").
|
|
84
|
-
#
|
|
85
|
-
# @param name [String] Human-readable vault name from the yield provider.
|
|
86
|
-
#
|
|
87
|
-
# @param provider [Symbol, Privy::Models::Wallets::EthereumEarnProvider] Supported earn provider protocols.
|
|
88
|
-
#
|
|
89
|
-
# @param tvl_usd [Float, nil] Total value locked in USD.
|
|
90
|
-
#
|
|
91
|
-
# @param user_apy [Float, nil] Current annual percentage yield in basis points (e.g. 500 for 5%). 1 basis point
|
|
92
|
-
#
|
|
93
|
-
# @param vault_address [String] Onchain vault contract address.
|
|
19
|
+
# @!method self.variants
|
|
20
|
+
# @return [Array(Privy::Models::Wallets::AaveVaultDetails, Privy::Models::Wallets::MorphoVaultDetails)]
|
|
94
21
|
end
|
|
95
22
|
end
|
|
96
23
|
end
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Privy
|
|
4
|
+
module Models
|
|
5
|
+
module Wallets
|
|
6
|
+
class MorphoVaultDetails < Privy::Internal::Type::BaseModel
|
|
7
|
+
# @!attribute id
|
|
8
|
+
# Vault identifier.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :id, String
|
|
12
|
+
|
|
13
|
+
# @!attribute admin_wallet_address
|
|
14
|
+
# EVM address of the vault admin wallet.
|
|
15
|
+
#
|
|
16
|
+
# @return [String]
|
|
17
|
+
required :admin_wallet_address, String
|
|
18
|
+
|
|
19
|
+
# @!attribute admin_wallet_id
|
|
20
|
+
# Privy wallet ID of the vault admin.
|
|
21
|
+
#
|
|
22
|
+
# @return [String]
|
|
23
|
+
required :admin_wallet_id, String
|
|
24
|
+
|
|
25
|
+
# @!attribute app_apy
|
|
26
|
+
# Annual percentage yield earned by the app from fee wrapper fees, in basis
|
|
27
|
+
# points.
|
|
28
|
+
#
|
|
29
|
+
# @return [Float, nil]
|
|
30
|
+
required :app_apy, Float, nil?: true
|
|
31
|
+
|
|
32
|
+
# @!attribute asset
|
|
33
|
+
# Asset metadata for an earn vault position.
|
|
34
|
+
#
|
|
35
|
+
# @return [Privy::Models::Wallets::EarnAsset]
|
|
36
|
+
required :asset, -> { Privy::Wallets::EarnAsset }
|
|
37
|
+
|
|
38
|
+
# @!attribute available_liquidity_usd
|
|
39
|
+
# Available liquidity in USD.
|
|
40
|
+
#
|
|
41
|
+
# @return [Float, nil]
|
|
42
|
+
required :available_liquidity_usd, Float, nil?: true
|
|
43
|
+
|
|
44
|
+
# @!attribute caip2
|
|
45
|
+
# CAIP-2 chain identifier (e.g. "eip155:8453").
|
|
46
|
+
#
|
|
47
|
+
# @return [String]
|
|
48
|
+
required :caip2, String
|
|
49
|
+
|
|
50
|
+
# @!attribute name
|
|
51
|
+
# Human-readable vault name from the yield provider.
|
|
52
|
+
#
|
|
53
|
+
# @return [String]
|
|
54
|
+
required :name, String
|
|
55
|
+
|
|
56
|
+
# @!attribute provider
|
|
57
|
+
#
|
|
58
|
+
# @return [Symbol, Privy::Models::Wallets::MorphoVaultDetails::Provider]
|
|
59
|
+
required :provider, enum: -> { Privy::Wallets::MorphoVaultDetails::Provider }
|
|
60
|
+
|
|
61
|
+
# @!attribute total_rewards_apr
|
|
62
|
+
# Total rewards annual percentage rate in basis points.
|
|
63
|
+
#
|
|
64
|
+
# @return [Float]
|
|
65
|
+
required :total_rewards_apr, Float
|
|
66
|
+
|
|
67
|
+
# @!attribute tvl_usd
|
|
68
|
+
# Total value locked in USD.
|
|
69
|
+
#
|
|
70
|
+
# @return [Float, nil]
|
|
71
|
+
required :tvl_usd, Float, nil?: true
|
|
72
|
+
|
|
73
|
+
# @!attribute user_apy
|
|
74
|
+
# Annual percentage yield available to the user, after fees and excluding rewards,
|
|
75
|
+
# in basis points (e.g. 500 for 5%). 1 basis point = 0.01%.
|
|
76
|
+
#
|
|
77
|
+
# @return [Float, nil]
|
|
78
|
+
required :user_apy, Float, nil?: true
|
|
79
|
+
|
|
80
|
+
# @!attribute vault_address
|
|
81
|
+
# Onchain vault contract address.
|
|
82
|
+
#
|
|
83
|
+
# @return [String]
|
|
84
|
+
required :vault_address, String
|
|
85
|
+
|
|
86
|
+
# @!method initialize(id:, admin_wallet_address:, admin_wallet_id:, app_apy:, asset:, available_liquidity_usd:, caip2:, name:, provider:, total_rewards_apr:, tvl_usd:, user_apy:, vault_address:)
|
|
87
|
+
# Some parameter documentations has been truncated, see
|
|
88
|
+
# {Privy::Models::Wallets::MorphoVaultDetails} for more details.
|
|
89
|
+
#
|
|
90
|
+
# Vault details for a Morpho earn vault.
|
|
91
|
+
#
|
|
92
|
+
# @param id [String] Vault identifier.
|
|
93
|
+
#
|
|
94
|
+
# @param admin_wallet_address [String] EVM address of the vault admin wallet.
|
|
95
|
+
#
|
|
96
|
+
# @param admin_wallet_id [String] Privy wallet ID of the vault admin.
|
|
97
|
+
#
|
|
98
|
+
# @param app_apy [Float, nil] Annual percentage yield earned by the app from fee wrapper fees, in basis points
|
|
99
|
+
#
|
|
100
|
+
# @param asset [Privy::Models::Wallets::EarnAsset] Asset metadata for an earn vault position.
|
|
101
|
+
#
|
|
102
|
+
# @param available_liquidity_usd [Float, nil] Available liquidity in USD.
|
|
103
|
+
#
|
|
104
|
+
# @param caip2 [String] CAIP-2 chain identifier (e.g. "eip155:8453").
|
|
105
|
+
#
|
|
106
|
+
# @param name [String] Human-readable vault name from the yield provider.
|
|
107
|
+
#
|
|
108
|
+
# @param provider [Symbol, Privy::Models::Wallets::MorphoVaultDetails::Provider]
|
|
109
|
+
#
|
|
110
|
+
# @param total_rewards_apr [Float] Total rewards annual percentage rate in basis points.
|
|
111
|
+
#
|
|
112
|
+
# @param tvl_usd [Float, nil] Total value locked in USD.
|
|
113
|
+
#
|
|
114
|
+
# @param user_apy [Float, nil] Annual percentage yield available to the user, after fees and excluding rewards,
|
|
115
|
+
#
|
|
116
|
+
# @param vault_address [String] Onchain vault contract address.
|
|
117
|
+
|
|
118
|
+
# @see Privy::Models::Wallets::MorphoVaultDetails#provider
|
|
119
|
+
module Provider
|
|
120
|
+
extend Privy::Internal::Type::Enum
|
|
121
|
+
|
|
122
|
+
MORPHO = :morpho
|
|
123
|
+
|
|
124
|
+
# @!method self.values
|
|
125
|
+
# @return [Array<Symbol>]
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
@@ -15,9 +15,10 @@ module Privy
|
|
|
15
15
|
required :wallet_id, String
|
|
16
16
|
|
|
17
17
|
# @!attribute chain
|
|
18
|
+
# Chains supported for transaction history queries.
|
|
18
19
|
#
|
|
19
|
-
# @return [Symbol, Privy::Models::
|
|
20
|
-
required :chain, enum: -> { Privy::
|
|
20
|
+
# @return [Symbol, Privy::Models::TransactionChainNameInput]
|
|
21
|
+
required :chain, enum: -> { Privy::TransactionChainNameInput }
|
|
21
22
|
|
|
22
23
|
# @!attribute token
|
|
23
24
|
# Exactly one of `token` or `asset` is required. Cannot be used together with
|
|
@@ -60,7 +61,7 @@ module Privy
|
|
|
60
61
|
#
|
|
61
62
|
# @param wallet_id [String] ID of the wallet.
|
|
62
63
|
#
|
|
63
|
-
# @param chain [Symbol, Privy::Models::
|
|
64
|
+
# @param chain [Symbol, Privy::Models::TransactionChainNameInput] Chains supported for transaction history queries.
|
|
64
65
|
#
|
|
65
66
|
# @param token [String, Array<String>] Exactly one of `token` or `asset` is required. Cannot be used together with `ass
|
|
66
67
|
#
|
|
@@ -76,23 +77,6 @@ module Privy
|
|
|
76
77
|
#
|
|
77
78
|
# @param request_options [Privy::RequestOptions, Hash{Symbol=>Object}]
|
|
78
79
|
|
|
79
|
-
module Chain
|
|
80
|
-
extend Privy::Internal::Type::Enum
|
|
81
|
-
|
|
82
|
-
ETHEREUM = :ethereum
|
|
83
|
-
ARBITRUM = :arbitrum
|
|
84
|
-
BASE = :base
|
|
85
|
-
TEMPO = :tempo
|
|
86
|
-
LINEA = :linea
|
|
87
|
-
OPTIMISM = :optimism
|
|
88
|
-
POLYGON = :polygon
|
|
89
|
-
SOLANA = :solana
|
|
90
|
-
SEPOLIA = :sepolia
|
|
91
|
-
|
|
92
|
-
# @!method self.values
|
|
93
|
-
# @return [Array<Symbol>]
|
|
94
|
-
end
|
|
95
|
-
|
|
96
80
|
# Exactly one of `token` or `asset` is required. Cannot be used together with
|
|
97
81
|
# `asset`.
|
|
98
82
|
module Token
|
|
@@ -125,6 +109,8 @@ module Privy
|
|
|
125
109
|
|
|
126
110
|
variant const: -> { Privy::Models::Wallets::TransactionGetParams::Asset::POL }
|
|
127
111
|
|
|
112
|
+
variant const: -> { Privy::Models::Wallets::TransactionGetParams::Asset::BNB }
|
|
113
|
+
|
|
128
114
|
variant const: -> { Privy::Models::Wallets::TransactionGetParams::Asset::USDT }
|
|
129
115
|
|
|
130
116
|
variant const: -> { Privy::Models::Wallets::TransactionGetParams::Asset::EURC }
|
|
@@ -133,6 +119,8 @@ module Privy
|
|
|
133
119
|
|
|
134
120
|
variant const: -> { Privy::Models::Wallets::TransactionGetParams::Asset::SOL }
|
|
135
121
|
|
|
122
|
+
variant const: -> { Privy::Models::Wallets::TransactionGetParams::Asset::TRX }
|
|
123
|
+
|
|
136
124
|
variant -> { Privy::Models::Wallets::TransactionGetParams::Asset::WalletAssetArray }
|
|
137
125
|
|
|
138
126
|
# @!method self.variants
|
|
@@ -154,10 +142,12 @@ module Privy
|
|
|
154
142
|
ETH = :eth
|
|
155
143
|
AVAX = :avax
|
|
156
144
|
POL = :pol
|
|
145
|
+
BNB = :bnb
|
|
157
146
|
USDT = :usdt
|
|
158
147
|
EURC = :eurc
|
|
159
148
|
USDB = :usdb
|
|
160
149
|
SOL = :sol
|
|
150
|
+
TRX = :trx
|
|
161
151
|
|
|
162
152
|
# @!endgroup
|
|
163
153
|
|