privy_ruby 0.3.0 → 0.5.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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/privy/authorization/canonicalization.rb +2 -0
  5. data/lib/privy/models/custom_token_transfer_source.rb +14 -13
  6. data/lib/privy/models/ethereum_yield_provider.rb +1 -0
  7. data/lib/privy/models/named_token_transfer_source.rb +14 -13
  8. data/lib/privy/models/rpc_intent_request_details.rb +2 -2
  9. data/lib/privy/models/rpc_intent_response.rb +2 -2
  10. data/lib/privy/models/spark_coop_exit_fee_quote.rb +101 -0
  11. data/lib/privy/models/spark_coop_exit_request.rb +90 -0
  12. data/lib/privy/models/spark_currency_amount.rb +23 -0
  13. data/lib/privy/models/spark_exit_speed.rb +17 -0
  14. data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rb +43 -0
  15. data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rb +23 -0
  16. data/lib/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rb +35 -0
  17. data/lib/privy/models/spark_rpc_input.rb +7 -1
  18. data/lib/privy/models/spark_rpc_response.rb +7 -1
  19. data/lib/privy/models/spark_withdraw_rpc_input.rb +43 -0
  20. data/lib/privy/models/spark_withdraw_rpc_input_params.rb +53 -0
  21. data/lib/privy/models/spark_withdraw_rpc_response.rb +35 -0
  22. data/lib/privy/models/transaction_chain_name_input.rb +25 -0
  23. data/lib/privy/models/transfer_received_transaction_detail.rb +6 -0
  24. data/lib/privy/models/transfer_sent_transaction_detail.rb +6 -0
  25. data/lib/privy/models/unsafe_unwrap_webhook_event.rb +17 -1
  26. data/lib/privy/models/wallet_action_earn_fee_collect_created_webhook_payload.rb +153 -0
  27. data/lib/privy/models/wallet_action_earn_fee_collect_failed_webhook_payload.rb +178 -0
  28. data/lib/privy/models/wallet_action_earn_fee_collect_rejected_webhook_payload.rb +177 -0
  29. data/lib/privy/models/wallet_action_earn_fee_collect_succeeded_webhook_payload.rb +169 -0
  30. data/lib/privy/models/wallet_asset.rb +2 -0
  31. data/lib/privy/models/wallet_asset_chain_name_input.rb +3 -0
  32. data/lib/privy/models/wallet_creation_input.rb +11 -1
  33. data/lib/privy/models/wallet_ethereum_asset.rb +1 -0
  34. data/lib/privy/models/wallet_rpc_request_body.rb +7 -1
  35. data/lib/privy/models/wallet_rpc_response.rb +7 -1
  36. data/lib/privy/models/wallet_tron_asset.rb +17 -0
  37. data/lib/privy/models/wallets/aave_vault_details.rb +130 -0
  38. data/lib/privy/models/wallets/balance_get_params.rb +6 -0
  39. data/lib/privy/models/wallets/balance_get_response.rb +6 -0
  40. data/lib/privy/models/wallets/earn_fee_collect_action_response.rb +149 -0
  41. data/lib/privy/models/wallets/earn_fee_collect_request_body.rb +20 -0
  42. data/lib/privy/models/wallets/ethereum_earn_provider.rb +1 -0
  43. data/lib/privy/models/wallets/ethereum_earn_vault_details_response.rb +13 -83
  44. data/lib/privy/models/wallets/list_wallet_actions_response.rb +2 -2
  45. data/lib/privy/models/wallets/morpho_vault_details.rb +130 -0
  46. data/lib/privy/models/wallets/transaction_get_params.rb +10 -20
  47. data/lib/privy/models/wallets/veda_vault_details.rb +122 -0
  48. data/lib/privy/models/wallets/wallet_action_response.rb +4 -1
  49. data/lib/privy/models/wallets/wallet_action_type.rb +1 -0
  50. data/lib/privy/models/webhook_payload.rb +13 -1
  51. data/lib/privy/models.rb +36 -0
  52. data/lib/privy/public_api/services/tron.rb +103 -0
  53. data/lib/privy/public_api/services/wallets.rb +4 -0
  54. data/lib/privy/resources/intents.rb +1 -1
  55. data/lib/privy/resources/wallets/actions.rb +1 -1
  56. data/lib/privy/resources/wallets/transactions.rb +1 -1
  57. data/lib/privy/resources/wallets.rb +2 -2
  58. data/lib/privy/resources/webhooks.rb +1 -1
  59. data/lib/privy/version.rb +1 -1
  60. data/lib/privy.rb +22 -0
  61. data/rbi/privy/models/custom_token_transfer_source.rbi +18 -13
  62. data/rbi/privy/models/ethereum_yield_provider.rbi +1 -0
  63. data/rbi/privy/models/named_token_transfer_source.rbi +18 -13
  64. data/rbi/privy/models/rpc_intent_request_details.rbi +6 -0
  65. data/rbi/privy/models/rpc_intent_response.rbi +2 -0
  66. data/rbi/privy/models/spark_coop_exit_fee_quote.rbi +143 -0
  67. data/rbi/privy/models/spark_coop_exit_request.rbi +114 -0
  68. data/rbi/privy/models/spark_currency_amount.rbi +31 -0
  69. data/rbi/privy/models/spark_exit_speed.rbi +21 -0
  70. data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rbi +94 -0
  71. data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rbi +34 -0
  72. data/rbi/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rbi +82 -0
  73. data/rbi/privy/models/spark_rpc_input.rbi +3 -1
  74. data/rbi/privy/models/spark_rpc_response.rbi +3 -1
  75. data/rbi/privy/models/spark_withdraw_rpc_input.rbi +77 -0
  76. data/rbi/privy/models/spark_withdraw_rpc_input_params.rbi +80 -0
  77. data/rbi/privy/models/spark_withdraw_rpc_response.rbi +71 -0
  78. data/rbi/privy/models/transaction_chain_name_input.rbi +38 -0
  79. data/rbi/privy/models/transfer_received_transaction_detail.rbi +10 -0
  80. data/rbi/privy/models/transfer_sent_transaction_detail.rbi +4 -0
  81. data/rbi/privy/models/unsafe_unwrap_webhook_event.rbi +4 -0
  82. data/rbi/privy/models/wallet_action_earn_fee_collect_created_webhook_payload.rbi +232 -0
  83. data/rbi/privy/models/wallet_action_earn_fee_collect_failed_webhook_payload.rbi +271 -0
  84. data/rbi/privy/models/wallet_action_earn_fee_collect_rejected_webhook_payload.rbi +269 -0
  85. data/rbi/privy/models/wallet_action_earn_fee_collect_succeeded_webhook_payload.rbi +258 -0
  86. data/rbi/privy/models/wallet_asset.rbi +2 -0
  87. data/rbi/privy/models/wallet_asset_chain_name_input.rbi +4 -0
  88. data/rbi/privy/models/wallet_creation_input.rbi +15 -0
  89. data/rbi/privy/models/wallet_ethereum_asset.rbi +1 -0
  90. data/rbi/privy/models/wallet_rpc_request_body.rbi +2 -0
  91. data/rbi/privy/models/wallet_rpc_response.rbi +2 -0
  92. data/rbi/privy/models/wallet_tron_asset.rbi +21 -0
  93. data/rbi/privy/models/wallets/aave_vault_details.rbi +165 -0
  94. data/rbi/privy/models/wallets/balance_get_params.rbi +4 -0
  95. data/rbi/privy/models/wallets/balance_get_response.rbi +10 -0
  96. data/rbi/privy/models/wallets/earn_fee_collect_action_response.rbi +236 -0
  97. data/rbi/privy/models/wallets/earn_fee_collect_request_body.rbi +33 -0
  98. data/rbi/privy/models/wallets/ethereum_earn_provider.rbi +1 -0
  99. data/rbi/privy/models/wallets/ethereum_earn_vault_details_response.rbi +11 -103
  100. data/rbi/privy/models/wallets/list_wallet_actions_response.rbi +6 -3
  101. data/rbi/privy/models/wallets/morpho_vault_details.rbi +167 -0
  102. data/rbi/privy/models/wallets/transaction_get_params.rbi +15 -69
  103. data/rbi/privy/models/wallets/veda_vault_details.rbi +157 -0
  104. data/rbi/privy/models/wallets/wallet_action_response.rbi +2 -1
  105. data/rbi/privy/models/wallets/wallet_action_type.rbi +5 -0
  106. data/rbi/privy/models/webhook_payload.rbi +5 -1
  107. data/rbi/privy/models.rbi +39 -0
  108. data/rbi/privy/resources/intents.rbi +2 -0
  109. data/rbi/privy/resources/wallets/transactions.rbi +2 -1
  110. data/rbi/privy/resources/wallets.rbi +2 -0
  111. data/rbi/privy/resources/webhooks.rbi +4 -0
  112. data/sig/privy/models/custom_token_transfer_source.rbs +8 -6
  113. data/sig/privy/models/ethereum_yield_provider.rbs +2 -1
  114. data/sig/privy/models/named_token_transfer_source.rbs +7 -5
  115. data/sig/privy/models/spark_coop_exit_fee_quote.rbs +75 -0
  116. data/sig/privy/models/spark_coop_exit_request.rbs +76 -0
  117. data/sig/privy/models/spark_currency_amount.rbs +16 -0
  118. data/sig/privy/models/spark_exit_speed.rbs +15 -0
  119. data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_input.rbs +44 -0
  120. data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_input_params.rbs +16 -0
  121. data/sig/privy/models/spark_get_withdrawal_fee_quote_rpc_response.rbs +37 -0
  122. data/sig/privy/models/spark_rpc_input.rbs +2 -0
  123. data/sig/privy/models/spark_rpc_response.rbs +2 -0
  124. data/sig/privy/models/spark_withdraw_rpc_input.rbs +44 -0
  125. data/sig/privy/models/spark_withdraw_rpc_input_params.rbs +53 -0
  126. data/sig/privy/models/spark_withdraw_rpc_response.rbs +37 -0
  127. data/sig/privy/models/transaction_chain_name_input.rbs +34 -0
  128. data/sig/privy/models/transfer_received_transaction_detail.rbs +4 -0
  129. data/sig/privy/models/transfer_sent_transaction_detail.rbs +4 -0
  130. data/sig/privy/models/unsafe_unwrap_webhook_event.rbs +4 -0
  131. data/sig/privy/models/wallet_action_earn_fee_collect_created_webhook_payload.rbs +111 -0
  132. data/sig/privy/models/wallet_action_earn_fee_collect_failed_webhook_payload.rbs +126 -0
  133. data/sig/privy/models/wallet_action_earn_fee_collect_rejected_webhook_payload.rbs +126 -0
  134. data/sig/privy/models/wallet_action_earn_fee_collect_succeeded_webhook_payload.rbs +121 -0
  135. data/sig/privy/models/wallet_asset.rbs +13 -1
  136. data/sig/privy/models/wallet_asset_chain_name_input.rbs +6 -0
  137. data/sig/privy/models/wallet_creation_input.rbs +7 -0
  138. data/sig/privy/models/wallet_ethereum_asset.rbs +2 -1
  139. data/sig/privy/models/wallet_rpc_request_body.rbs +2 -0
  140. data/sig/privy/models/wallet_rpc_response.rbs +2 -0
  141. data/sig/privy/models/wallet_tron_asset.rbs +15 -0
  142. data/sig/privy/models/wallets/aave_vault_details.rbs +92 -0
  143. data/sig/privy/models/wallets/balance_get_params.rbs +4 -0
  144. data/sig/privy/models/wallets/balance_get_response.rbs +4 -0
  145. data/sig/privy/models/wallets/earn_fee_collect_action_response.rbs +114 -0
  146. data/sig/privy/models/wallets/earn_fee_collect_request_body.rbs +15 -0
  147. data/sig/privy/models/wallets/ethereum_earn_provider.rbs +2 -1
  148. data/sig/privy/models/wallets/ethereum_earn_vault_details_response.rbs +6 -57
  149. data/sig/privy/models/wallets/morpho_vault_details.rbs +92 -0
  150. data/sig/privy/models/wallets/transaction_get_params.rbs +8 -31
  151. data/sig/privy/models/wallets/veda_vault_details.rbs +87 -0
  152. data/sig/privy/models/wallets/wallet_action_response.rbs +1 -0
  153. data/sig/privy/models/wallets/wallet_action_type.rbs +2 -0
  154. data/sig/privy/models/webhook_payload.rbs +4 -0
  155. data/sig/privy/models.rbs +32 -0
  156. data/sig/privy/resources/wallets/transactions.rbs +1 -1
  157. data/sig/privy/resources/webhooks.rbs +4 -0
  158. metadata +66 -2
@@ -0,0 +1,269 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class WalletActionEarnFeeCollectRejectedWebhookPayload < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload,
10
+ Privy::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Type of wallet action
15
+ sig { returns(Privy::Wallets::WalletActionType::TaggedSymbol) }
16
+ attr_accessor :action_type
17
+
18
+ # Underlying asset token address.
19
+ sig { returns(String) }
20
+ attr_accessor :asset_address
21
+
22
+ # CAIP-2 chain identifier.
23
+ sig { returns(String) }
24
+ attr_accessor :caip2
25
+
26
+ # ISO 8601 timestamp of when the wallet action was created.
27
+ sig { returns(String) }
28
+ attr_accessor :created_at
29
+
30
+ # A description of why a wallet action (or a step within a wallet action) failed.
31
+ sig { returns(Privy::Wallets::FailureReason) }
32
+ attr_reader :failure_reason
33
+
34
+ sig { params(failure_reason: Privy::Wallets::FailureReason::OrHash).void }
35
+ attr_writer :failure_reason
36
+
37
+ # Base-unit amount of fees collected (e.g. "1500000").
38
+ sig { returns(String) }
39
+ attr_accessor :raw_amount
40
+
41
+ # ISO 8601 timestamp of when the wallet action was rejected.
42
+ sig { returns(String) }
43
+ attr_accessor :rejected_at
44
+
45
+ # The status of the wallet action.
46
+ sig do
47
+ returns(
48
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Status::TaggedSymbol
49
+ )
50
+ end
51
+ attr_accessor :status
52
+
53
+ # The steps of the wallet action at the time of rejection.
54
+ sig { returns(T::Array[Privy::Wallets::WalletActionStep::Variants]) }
55
+ attr_accessor :steps
56
+
57
+ # The type of webhook event.
58
+ sig do
59
+ returns(
60
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Type::TaggedSymbol
61
+ )
62
+ end
63
+ attr_accessor :type
64
+
65
+ # ERC-4626 vault contract address.
66
+ sig { returns(String) }
67
+ attr_accessor :vault_address
68
+
69
+ # The vault ID.
70
+ sig { returns(String) }
71
+ attr_accessor :vault_id
72
+
73
+ # The ID of the wallet action.
74
+ sig { returns(String) }
75
+ attr_accessor :wallet_action_id
76
+
77
+ # The ID of the wallet involved in the action.
78
+ sig { returns(String) }
79
+ attr_accessor :wallet_id
80
+
81
+ # Human-readable decimal amount of fees collected (e.g. "1.5"). Only present when
82
+ # the token is known in the asset registry.
83
+ sig { returns(T.nilable(String)) }
84
+ attr_reader :amount
85
+
86
+ sig { params(amount: String).void }
87
+ attr_writer :amount
88
+
89
+ # Asset identifier (e.g. "usdc", "eth"). Only present when the token is known in
90
+ # the asset registry.
91
+ sig { returns(T.nilable(String)) }
92
+ attr_reader :asset
93
+
94
+ sig { params(asset: String).void }
95
+ attr_writer :asset
96
+
97
+ # Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only
98
+ # present when the token is known in the asset registry.
99
+ sig { returns(T.nilable(Integer)) }
100
+ attr_reader :decimals
101
+
102
+ sig { params(decimals: Integer).void }
103
+ attr_writer :decimals
104
+
105
+ # Payload for the wallet_action.earn_fee_collect.rejected webhook event.
106
+ sig do
107
+ params(
108
+ action_type: Privy::Wallets::WalletActionType::OrSymbol,
109
+ asset_address: String,
110
+ caip2: String,
111
+ created_at: String,
112
+ failure_reason: Privy::Wallets::FailureReason::OrHash,
113
+ raw_amount: String,
114
+ rejected_at: String,
115
+ status:
116
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Status::OrSymbol,
117
+ steps:
118
+ T::Array[
119
+ T.any(
120
+ Privy::Wallets::EvmTransactionWalletActionStep::OrHash,
121
+ Privy::Wallets::EvmUserOperationWalletActionStep::OrHash,
122
+ Privy::Wallets::SvmTransactionWalletActionStep::OrHash,
123
+ Privy::Wallets::TvmTransactionWalletActionStep::OrHash,
124
+ Privy::Wallets::ExternalTransactionWalletActionStep::OrHash,
125
+ Privy::Wallets::CustodianTransactionWalletActionStep::OrHash
126
+ )
127
+ ],
128
+ type:
129
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Type::OrSymbol,
130
+ vault_address: String,
131
+ vault_id: String,
132
+ wallet_action_id: String,
133
+ wallet_id: String,
134
+ amount: String,
135
+ asset: String,
136
+ decimals: Integer
137
+ ).returns(T.attached_class)
138
+ end
139
+ def self.new(
140
+ # Type of wallet action
141
+ action_type:,
142
+ # Underlying asset token address.
143
+ asset_address:,
144
+ # CAIP-2 chain identifier.
145
+ caip2:,
146
+ # ISO 8601 timestamp of when the wallet action was created.
147
+ created_at:,
148
+ # A description of why a wallet action (or a step within a wallet action) failed.
149
+ failure_reason:,
150
+ # Base-unit amount of fees collected (e.g. "1500000").
151
+ raw_amount:,
152
+ # ISO 8601 timestamp of when the wallet action was rejected.
153
+ rejected_at:,
154
+ # The status of the wallet action.
155
+ status:,
156
+ # The steps of the wallet action at the time of rejection.
157
+ steps:,
158
+ # The type of webhook event.
159
+ type:,
160
+ # ERC-4626 vault contract address.
161
+ vault_address:,
162
+ # The vault ID.
163
+ vault_id:,
164
+ # The ID of the wallet action.
165
+ wallet_action_id:,
166
+ # The ID of the wallet involved in the action.
167
+ wallet_id:,
168
+ # Human-readable decimal amount of fees collected (e.g. "1.5"). Only present when
169
+ # the token is known in the asset registry.
170
+ amount: nil,
171
+ # Asset identifier (e.g. "usdc", "eth"). Only present when the token is known in
172
+ # the asset registry.
173
+ asset: nil,
174
+ # Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only
175
+ # present when the token is known in the asset registry.
176
+ decimals: nil
177
+ )
178
+ end
179
+
180
+ sig do
181
+ override.returns(
182
+ {
183
+ action_type: Privy::Wallets::WalletActionType::TaggedSymbol,
184
+ asset_address: String,
185
+ caip2: String,
186
+ created_at: String,
187
+ failure_reason: Privy::Wallets::FailureReason,
188
+ raw_amount: String,
189
+ rejected_at: String,
190
+ status:
191
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Status::TaggedSymbol,
192
+ steps: T::Array[Privy::Wallets::WalletActionStep::Variants],
193
+ type:
194
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Type::TaggedSymbol,
195
+ vault_address: String,
196
+ vault_id: String,
197
+ wallet_action_id: String,
198
+ wallet_id: String,
199
+ amount: String,
200
+ asset: String,
201
+ decimals: Integer
202
+ }
203
+ )
204
+ end
205
+ def to_hash
206
+ end
207
+
208
+ # The status of the wallet action.
209
+ module Status
210
+ extend Privy::Internal::Type::Enum
211
+
212
+ TaggedSymbol =
213
+ T.type_alias do
214
+ T.all(
215
+ Symbol,
216
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Status
217
+ )
218
+ end
219
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
220
+
221
+ REJECTED =
222
+ T.let(
223
+ :rejected,
224
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Status::TaggedSymbol
225
+ )
226
+
227
+ sig do
228
+ override.returns(
229
+ T::Array[
230
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Status::TaggedSymbol
231
+ ]
232
+ )
233
+ end
234
+ def self.values
235
+ end
236
+ end
237
+
238
+ # The type of webhook event.
239
+ module Type
240
+ extend Privy::Internal::Type::Enum
241
+
242
+ TaggedSymbol =
243
+ T.type_alias do
244
+ T.all(
245
+ Symbol,
246
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Type
247
+ )
248
+ end
249
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
250
+
251
+ WALLET_ACTION_EARN_FEE_COLLECT_REJECTED =
252
+ T.let(
253
+ :"wallet_action.earn_fee_collect.rejected",
254
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Type::TaggedSymbol
255
+ )
256
+
257
+ sig do
258
+ override.returns(
259
+ T::Array[
260
+ Privy::WalletActionEarnFeeCollectRejectedWebhookPayload::Type::TaggedSymbol
261
+ ]
262
+ )
263
+ end
264
+ def self.values
265
+ end
266
+ end
267
+ end
268
+ end
269
+ end
@@ -0,0 +1,258 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class WalletActionEarnFeeCollectSucceededWebhookPayload < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload,
10
+ Privy::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Type of wallet action
15
+ sig { returns(Privy::Wallets::WalletActionType::TaggedSymbol) }
16
+ attr_accessor :action_type
17
+
18
+ # Underlying asset token address.
19
+ sig { returns(String) }
20
+ attr_accessor :asset_address
21
+
22
+ # CAIP-2 chain identifier.
23
+ sig { returns(String) }
24
+ attr_accessor :caip2
25
+
26
+ # ISO 8601 timestamp of when the wallet action completed successfully.
27
+ sig { returns(String) }
28
+ attr_accessor :completed_at
29
+
30
+ # ISO 8601 timestamp of when the wallet action was created.
31
+ sig { returns(String) }
32
+ attr_accessor :created_at
33
+
34
+ # Base-unit amount of fees collected (e.g. "1500000").
35
+ sig { returns(String) }
36
+ attr_accessor :raw_amount
37
+
38
+ # The status of the wallet action.
39
+ sig do
40
+ returns(
41
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Status::TaggedSymbol
42
+ )
43
+ end
44
+ attr_accessor :status
45
+
46
+ # The steps of the wallet action, including transaction hashes.
47
+ sig { returns(T::Array[Privy::Wallets::WalletActionStep::Variants]) }
48
+ attr_accessor :steps
49
+
50
+ # The type of webhook event.
51
+ sig do
52
+ returns(
53
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Type::TaggedSymbol
54
+ )
55
+ end
56
+ attr_accessor :type
57
+
58
+ # ERC-4626 vault contract address.
59
+ sig { returns(String) }
60
+ attr_accessor :vault_address
61
+
62
+ # The vault ID.
63
+ sig { returns(String) }
64
+ attr_accessor :vault_id
65
+
66
+ # The ID of the wallet action.
67
+ sig { returns(String) }
68
+ attr_accessor :wallet_action_id
69
+
70
+ # The ID of the wallet involved in the action.
71
+ sig { returns(String) }
72
+ attr_accessor :wallet_id
73
+
74
+ # Human-readable decimal amount of fees collected (e.g. "1.5"). Only present when
75
+ # the token is known in the asset registry.
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :amount
78
+
79
+ sig { params(amount: String).void }
80
+ attr_writer :amount
81
+
82
+ # Asset identifier (e.g. "usdc", "eth"). Only present when the token is known in
83
+ # the asset registry.
84
+ sig { returns(T.nilable(String)) }
85
+ attr_reader :asset
86
+
87
+ sig { params(asset: String).void }
88
+ attr_writer :asset
89
+
90
+ # Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only
91
+ # present when the token is known in the asset registry.
92
+ sig { returns(T.nilable(Integer)) }
93
+ attr_reader :decimals
94
+
95
+ sig { params(decimals: Integer).void }
96
+ attr_writer :decimals
97
+
98
+ # Payload for the wallet_action.earn_fee_collect.succeeded webhook event.
99
+ sig do
100
+ params(
101
+ action_type: Privy::Wallets::WalletActionType::OrSymbol,
102
+ asset_address: String,
103
+ caip2: String,
104
+ completed_at: String,
105
+ created_at: String,
106
+ raw_amount: String,
107
+ status:
108
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Status::OrSymbol,
109
+ steps:
110
+ T::Array[
111
+ T.any(
112
+ Privy::Wallets::EvmTransactionWalletActionStep::OrHash,
113
+ Privy::Wallets::EvmUserOperationWalletActionStep::OrHash,
114
+ Privy::Wallets::SvmTransactionWalletActionStep::OrHash,
115
+ Privy::Wallets::TvmTransactionWalletActionStep::OrHash,
116
+ Privy::Wallets::ExternalTransactionWalletActionStep::OrHash,
117
+ Privy::Wallets::CustodianTransactionWalletActionStep::OrHash
118
+ )
119
+ ],
120
+ type:
121
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Type::OrSymbol,
122
+ vault_address: String,
123
+ vault_id: String,
124
+ wallet_action_id: String,
125
+ wallet_id: String,
126
+ amount: String,
127
+ asset: String,
128
+ decimals: Integer
129
+ ).returns(T.attached_class)
130
+ end
131
+ def self.new(
132
+ # Type of wallet action
133
+ action_type:,
134
+ # Underlying asset token address.
135
+ asset_address:,
136
+ # CAIP-2 chain identifier.
137
+ caip2:,
138
+ # ISO 8601 timestamp of when the wallet action completed successfully.
139
+ completed_at:,
140
+ # ISO 8601 timestamp of when the wallet action was created.
141
+ created_at:,
142
+ # Base-unit amount of fees collected (e.g. "1500000").
143
+ raw_amount:,
144
+ # The status of the wallet action.
145
+ status:,
146
+ # The steps of the wallet action, including transaction hashes.
147
+ steps:,
148
+ # The type of webhook event.
149
+ type:,
150
+ # ERC-4626 vault contract address.
151
+ vault_address:,
152
+ # The vault ID.
153
+ vault_id:,
154
+ # The ID of the wallet action.
155
+ wallet_action_id:,
156
+ # The ID of the wallet involved in the action.
157
+ wallet_id:,
158
+ # Human-readable decimal amount of fees collected (e.g. "1.5"). Only present when
159
+ # the token is known in the asset registry.
160
+ amount: nil,
161
+ # Asset identifier (e.g. "usdc", "eth"). Only present when the token is known in
162
+ # the asset registry.
163
+ asset: nil,
164
+ # Number of decimals for the underlying asset (e.g. 6 for USDC, 18 for ETH). Only
165
+ # present when the token is known in the asset registry.
166
+ decimals: nil
167
+ )
168
+ end
169
+
170
+ sig do
171
+ override.returns(
172
+ {
173
+ action_type: Privy::Wallets::WalletActionType::TaggedSymbol,
174
+ asset_address: String,
175
+ caip2: String,
176
+ completed_at: String,
177
+ created_at: String,
178
+ raw_amount: String,
179
+ status:
180
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Status::TaggedSymbol,
181
+ steps: T::Array[Privy::Wallets::WalletActionStep::Variants],
182
+ type:
183
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Type::TaggedSymbol,
184
+ vault_address: String,
185
+ vault_id: String,
186
+ wallet_action_id: String,
187
+ wallet_id: String,
188
+ amount: String,
189
+ asset: String,
190
+ decimals: Integer
191
+ }
192
+ )
193
+ end
194
+ def to_hash
195
+ end
196
+
197
+ # The status of the wallet action.
198
+ module Status
199
+ extend Privy::Internal::Type::Enum
200
+
201
+ TaggedSymbol =
202
+ T.type_alias do
203
+ T.all(
204
+ Symbol,
205
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Status
206
+ )
207
+ end
208
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
209
+
210
+ SUCCEEDED =
211
+ T.let(
212
+ :succeeded,
213
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Status::TaggedSymbol
214
+ )
215
+
216
+ sig do
217
+ override.returns(
218
+ T::Array[
219
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Status::TaggedSymbol
220
+ ]
221
+ )
222
+ end
223
+ def self.values
224
+ end
225
+ end
226
+
227
+ # The type of webhook event.
228
+ module Type
229
+ extend Privy::Internal::Type::Enum
230
+
231
+ TaggedSymbol =
232
+ T.type_alias do
233
+ T.all(
234
+ Symbol,
235
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Type
236
+ )
237
+ end
238
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
239
+
240
+ WALLET_ACTION_EARN_FEE_COLLECT_SUCCEEDED =
241
+ T.let(
242
+ :"wallet_action.earn_fee_collect.succeeded",
243
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Type::TaggedSymbol
244
+ )
245
+
246
+ sig do
247
+ override.returns(
248
+ T::Array[
249
+ Privy::WalletActionEarnFeeCollectSucceededWebhookPayload::Type::TaggedSymbol
250
+ ]
251
+ )
252
+ end
253
+ def self.values
254
+ end
255
+ end
256
+ end
257
+ end
258
+ end
@@ -14,10 +14,12 @@ module Privy
14
14
  ETH = T.let(:eth, Privy::WalletAsset::TaggedSymbol)
15
15
  AVAX = T.let(:avax, Privy::WalletAsset::TaggedSymbol)
16
16
  POL = T.let(:pol, Privy::WalletAsset::TaggedSymbol)
17
+ BNB = T.let(:bnb, Privy::WalletAsset::TaggedSymbol)
17
18
  USDT = T.let(:usdt, Privy::WalletAsset::TaggedSymbol)
18
19
  EURC = T.let(:eurc, Privy::WalletAsset::TaggedSymbol)
19
20
  USDB = T.let(:usdb, Privy::WalletAsset::TaggedSymbol)
20
21
  SOL = T.let(:sol, Privy::WalletAsset::TaggedSymbol)
22
+ TRX = T.let(:trx, Privy::WalletAsset::TaggedSymbol)
21
23
 
22
24
  sig { override.returns(T::Array[Privy::WalletAsset::TaggedSymbol]) }
23
25
  def self.values
@@ -22,7 +22,9 @@ module Privy
22
22
  OPTIMISM =
23
23
  T.let(:optimism, Privy::WalletAssetChainNameInput::TaggedSymbol)
24
24
  POLYGON = T.let(:polygon, Privy::WalletAssetChainNameInput::TaggedSymbol)
25
+ BSC = T.let(:bsc, Privy::WalletAssetChainNameInput::TaggedSymbol)
25
26
  SOLANA = T.let(:solana, Privy::WalletAssetChainNameInput::TaggedSymbol)
27
+ TRON = T.let(:tron, Privy::WalletAssetChainNameInput::TaggedSymbol)
26
28
  ZKSYNC_ERA =
27
29
  T.let(:zksync_era, Privy::WalletAssetChainNameInput::TaggedSymbol)
28
30
  SEPOLIA = T.let(:sepolia, Privy::WalletAssetChainNameInput::TaggedSymbol)
@@ -42,6 +44,8 @@ module Privy
42
44
  T.let(:solana_devnet, Privy::WalletAssetChainNameInput::TaggedSymbol)
43
45
  SOLANA_TESTNET =
44
46
  T.let(:solana_testnet, Privy::WalletAssetChainNameInput::TaggedSymbol)
47
+ TRON_NILE =
48
+ T.let(:tron_nile, Privy::WalletAssetChainNameInput::TaggedSymbol)
45
49
 
46
50
  sig do
47
51
  override.returns(
@@ -34,6 +34,15 @@ module Privy
34
34
  sig { params(create_smart_wallet: T::Boolean).void }
35
35
  attr_writer :create_smart_wallet
36
36
 
37
+ # A customer-provided identifier for mapping to external systems. Write-once, set
38
+ # only at creation. Must be alphanumeric, hyphens, or underscores, max 64
39
+ # characters.
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :external_id
42
+
43
+ sig { params(external_id: String).void }
44
+ attr_writer :external_id
45
+
37
46
  # Policy IDs to enforce on the wallet. Currently, only one policy is supported per
38
47
  # wallet.
39
48
  sig { returns(T.nilable(T::Array[String])) }
@@ -50,6 +59,7 @@ module Privy
50
59
  additional_signers:
51
60
  T::Array[Privy::WalletCreationAdditionalSignerItem::OrHash],
52
61
  create_smart_wallet: T::Boolean,
62
+ external_id: String,
53
63
  policy_ids: T::Array[String]
54
64
  ).returns(T.attached_class)
55
65
  end
@@ -61,6 +71,10 @@ module Privy
61
71
  # Create a smart wallet with this wallet as the signer. Only supported for wallets
62
72
  # with `chain_type: "ethereum"`.
63
73
  create_smart_wallet: nil,
74
+ # A customer-provided identifier for mapping to external systems. Write-once, set
75
+ # only at creation. Must be alphanumeric, hyphens, or underscores, max 64
76
+ # characters.
77
+ external_id: nil,
64
78
  # Policy IDs to enforce on the wallet. Currently, only one policy is supported per
65
79
  # wallet.
66
80
  policy_ids: nil
@@ -74,6 +88,7 @@ module Privy
74
88
  additional_signers:
75
89
  T::Array[Privy::WalletCreationAdditionalSignerItem],
76
90
  create_smart_wallet: T::Boolean,
91
+ external_id: String,
77
92
  policy_ids: T::Array[String]
78
93
  }
79
94
  )
@@ -14,6 +14,7 @@ module Privy
14
14
  ETH = T.let(:eth, Privy::WalletEthereumAsset::TaggedSymbol)
15
15
  AVAX = T.let(:avax, Privy::WalletEthereumAsset::TaggedSymbol)
16
16
  POL = T.let(:pol, Privy::WalletEthereumAsset::TaggedSymbol)
17
+ BNB = T.let(:bnb, Privy::WalletEthereumAsset::TaggedSymbol)
17
18
  USDT = T.let(:usdt, Privy::WalletEthereumAsset::TaggedSymbol)
18
19
  EURC = T.let(:eurc, Privy::WalletEthereumAsset::TaggedSymbol)
19
20
  USDB = T.let(:usdb, Privy::WalletEthereumAsset::TaggedSymbol)
@@ -29,6 +29,8 @@ module Privy
29
29
  Privy::SparkCreateLightningInvoiceRpcInput,
30
30
  Privy::SparkPayLightningInvoiceRpcInput,
31
31
  Privy::SparkSignMessageWithIdentityKeyRpcInput,
32
+ Privy::SparkWithdrawRpcInput,
33
+ Privy::SparkGetWithdrawalFeeQuoteRpcInput,
32
34
  Privy::TronSignTransactionRpcInput,
33
35
  Privy::TronSendTransactionRpcInput,
34
36
  Privy::ExportPrivateKeyRpcInput,
@@ -29,6 +29,8 @@ module Privy
29
29
  Privy::SparkCreateLightningInvoiceRpcResponse,
30
30
  Privy::SparkPayLightningInvoiceRpcResponse,
31
31
  Privy::SparkSignMessageWithIdentityKeyRpcResponse,
32
+ Privy::SparkWithdrawRpcResponse,
33
+ Privy::SparkGetWithdrawalFeeQuoteRpcResponse,
32
34
  Privy::TronSignTransactionRpcResponse,
33
35
  Privy::TronSendTransactionRpcResponse,
34
36
  Privy::ExportPrivateKeyRpcResponse,
@@ -0,0 +1,21 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ # A named asset on Tron.
6
+ module WalletTronAsset
7
+ extend Privy::Internal::Type::Enum
8
+
9
+ TaggedSymbol = T.type_alias { T.all(Symbol, Privy::WalletTronAsset) }
10
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
11
+
12
+ TRX = T.let(:trx, Privy::WalletTronAsset::TaggedSymbol)
13
+ USDT = T.let(:usdt, Privy::WalletTronAsset::TaggedSymbol)
14
+ USDC = T.let(:usdc, Privy::WalletTronAsset::TaggedSymbol)
15
+
16
+ sig { override.returns(T::Array[Privy::WalletTronAsset::TaggedSymbol]) }
17
+ def self.values
18
+ end
19
+ end
20
+ end
21
+ end