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.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +1 -1
  4. data/lib/privy/authorization/canonicalization.rb +2 -0
  5. data/lib/privy/models/rpc_intent_request_details.rb +2 -2
  6. data/lib/privy/models/rpc_intent_response.rb +2 -2
  7. data/lib/privy/models/spark_coop_exit_fee_quote.rb +101 -0
  8. data/lib/privy/models/spark_coop_exit_request.rb +90 -0
  9. data/lib/privy/models/spark_currency_amount.rb +23 -0
  10. data/lib/privy/models/spark_exit_speed.rb +17 -0
  11. data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rb +43 -0
  12. data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rb +23 -0
  13. data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rb +35 -0
  14. data/lib/privy/models/spark_rpc_input.rb +7 -1
  15. data/lib/privy/models/spark_rpc_response.rb +7 -1
  16. data/lib/privy/models/spark_withdraw_rpc_input.rb +43 -0
  17. data/lib/privy/models/spark_withdraw_rpc_input_params.rb +53 -0
  18. data/lib/privy/models/spark_withdraw_rpc_response.rb +35 -0
  19. data/lib/privy/models/transaction_chain_name_input.rb +25 -0
  20. data/lib/privy/models/transfer_received_transaction_detail.rb +6 -0
  21. data/lib/privy/models/transfer_sent_transaction_detail.rb +6 -0
  22. data/lib/privy/models/wallet_asset.rb +2 -0
  23. data/lib/privy/models/wallet_asset_chain_name_input.rb +3 -0
  24. data/lib/privy/models/wallet_creation_input.rb +11 -1
  25. data/lib/privy/models/wallet_ethereum_asset.rb +1 -0
  26. data/lib/privy/models/wallet_rpc_request_body.rb +7 -1
  27. data/lib/privy/models/wallet_rpc_response.rb +7 -1
  28. data/lib/privy/models/wallet_tron_asset.rb +17 -0
  29. data/lib/privy/models/wallets/aave_vault_details.rb +130 -0
  30. data/lib/privy/models/wallets/balance_get_params.rb +6 -0
  31. data/lib/privy/models/wallets/balance_get_response.rb +6 -0
  32. data/lib/privy/models/wallets/ethereum_earn_vault_details_response.rb +11 -84
  33. data/lib/privy/models/wallets/morpho_vault_details.rb +130 -0
  34. data/lib/privy/models/wallets/transaction_get_params.rb +10 -20
  35. data/lib/privy/models.rb +24 -0
  36. data/lib/privy/public_api/services/tron.rb +103 -0
  37. data/lib/privy/public_api/services/wallets.rb +4 -0
  38. data/lib/privy/resources/intents.rb +1 -1
  39. data/lib/privy/resources/wallets/transactions.rb +1 -1
  40. data/lib/privy/resources/wallets.rb +2 -2
  41. data/lib/privy/version.rb +1 -1
  42. data/lib/privy.rb +15 -0
  43. data/rbi/privy/models/rpc_intent_request_details.rbi +6 -0
  44. data/rbi/privy/models/rpc_intent_response.rbi +2 -0
  45. data/rbi/privy/models/spark_coop_exit_fee_quote.rbi +143 -0
  46. data/rbi/privy/models/spark_coop_exit_request.rbi +114 -0
  47. data/rbi/privy/models/spark_currency_amount.rbi +31 -0
  48. data/rbi/privy/models/spark_exit_speed.rbi +21 -0
  49. data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rbi +94 -0
  50. data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rbi +34 -0
  51. data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rbi +82 -0
  52. data/rbi/privy/models/spark_rpc_input.rbi +3 -1
  53. data/rbi/privy/models/spark_rpc_response.rbi +3 -1
  54. data/rbi/privy/models/spark_withdraw_rpc_input.rbi +77 -0
  55. data/rbi/privy/models/spark_withdraw_rpc_input_params.rbi +80 -0
  56. data/rbi/privy/models/spark_withdraw_rpc_response.rbi +71 -0
  57. data/rbi/privy/models/transaction_chain_name_input.rbi +38 -0
  58. data/rbi/privy/models/transfer_received_transaction_detail.rbi +10 -0
  59. data/rbi/privy/models/transfer_sent_transaction_detail.rbi +4 -0
  60. data/rbi/privy/models/wallet_asset.rbi +2 -0
  61. data/rbi/privy/models/wallet_asset_chain_name_input.rbi +4 -0
  62. data/rbi/privy/models/wallet_creation_input.rbi +15 -0
  63. data/rbi/privy/models/wallet_ethereum_asset.rbi +1 -0
  64. data/rbi/privy/models/wallet_rpc_request_body.rbi +2 -0
  65. data/rbi/privy/models/wallet_rpc_response.rbi +2 -0
  66. data/rbi/privy/models/wallet_tron_asset.rbi +21 -0
  67. data/rbi/privy/models/wallets/aave_vault_details.rbi +165 -0
  68. data/rbi/privy/models/wallets/balance_get_params.rbi +4 -0
  69. data/rbi/privy/models/wallets/balance_get_response.rbi +10 -0
  70. data/rbi/privy/models/wallets/ethereum_earn_vault_details_response.rbi +10 -103
  71. data/rbi/privy/models/wallets/morpho_vault_details.rbi +167 -0
  72. data/rbi/privy/models/wallets/transaction_get_params.rbi +15 -69
  73. data/rbi/privy/models.rbi +27 -0
  74. data/rbi/privy/resources/intents.rbi +2 -0
  75. data/rbi/privy/resources/wallets/transactions.rbi +2 -1
  76. data/rbi/privy/resources/wallets.rbi +2 -0
  77. data/sig/privy/models/spark_coop_exit_fee_quote.rbs +75 -0
  78. data/sig/privy/models/spark_coop_exit_request.rbs +76 -0
  79. data/sig/privy/models/spark_currency_amount.rbs +16 -0
  80. data/sig/privy/models/spark_exit_speed.rbs +15 -0
  81. data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rbs +44 -0
  82. data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rbs +16 -0
  83. data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rbs +37 -0
  84. data/sig/privy/models/spark_rpc_input.rbs +2 -0
  85. data/sig/privy/models/spark_rpc_response.rbs +2 -0
  86. data/sig/privy/models/spark_withdraw_rpc_input.rbs +44 -0
  87. data/sig/privy/models/spark_withdraw_rpc_input_params.rbs +53 -0
  88. data/sig/privy/models/spark_withdraw_rpc_response.rbs +37 -0
  89. data/sig/privy/models/transaction_chain_name_input.rbs +34 -0
  90. data/sig/privy/models/transfer_received_transaction_detail.rbs +4 -0
  91. data/sig/privy/models/transfer_sent_transaction_detail.rbs +4 -0
  92. data/sig/privy/models/wallet_asset.rbs +13 -1
  93. data/sig/privy/models/wallet_asset_chain_name_input.rbs +6 -0
  94. data/sig/privy/models/wallet_creation_input.rbs +7 -0
  95. data/sig/privy/models/wallet_ethereum_asset.rbs +2 -1
  96. data/sig/privy/models/wallet_rpc_request_body.rbs +2 -0
  97. data/sig/privy/models/wallet_rpc_response.rbs +2 -0
  98. data/sig/privy/models/wallet_tron_asset.rbs +15 -0
  99. data/sig/privy/models/wallets/aave_vault_details.rbs +92 -0
  100. data/sig/privy/models/wallets/balance_get_params.rbs +4 -0
  101. data/sig/privy/models/wallets/balance_get_response.rbs +4 -0
  102. data/sig/privy/models/wallets/ethereum_earn_vault_details_response.rbs +4 -57
  103. data/sig/privy/models/wallets/morpho_vault_details.rbs +92 -0
  104. data/sig/privy/models/wallets/transaction_get_params.rbs +8 -31
  105. data/sig/privy/models.rbs +24 -0
  106. data/sig/privy/resources/wallets/transactions.rbs +1 -1
  107. 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
@@ -11,10 +11,12 @@ module Privy
11
11
  ETH = :eth
12
12
  AVAX = :avax
13
13
  POL = :pol
14
+ BNB = :bnb
14
15
  USDT = :usdt
15
16
  EURC = :eurc
16
17
  USDB = :usdb
17
18
  SOL = :sol
19
+ TRX = :trx
18
20
 
19
21
  # @!method self.values
20
22
  # @return [Array<Symbol>]
@@ -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
@@ -11,6 +11,7 @@ module Privy
11
11
  ETH = :eth
12
12
  AVAX = :avax
13
13
  POL = :pol
14
+ BNB = :bnb
14
15
  USDT = :usdt
15
16
  EURC = :eurc
16
17
  USDB = :usdb
@@ -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
- class EthereumEarnVaultDetailsResponse < Privy::Internal::Type::BaseModel
7
- # @!attribute id
8
- # Vault identifier.
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
- # @!attribute app_apy
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
- # @!attribute asset
21
- # Asset metadata for an earn vault position.
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
- # @!attribute available_liquidity_usd
27
- # Available liquidity in USD.
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
- # @!attribute caip2
33
- # CAIP-2 chain identifier (e.g. "eip155:8453").
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::Wallets::TransactionGetParams::Chain]
20
- required :chain, enum: -> { Privy::Wallets::TransactionGetParams::Chain }
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::Wallets::TransactionGetParams::Chain]
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