privy_ruby 0.0.2 → 0.1.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 (177) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/privy/base58.rb +41 -0
  5. data/lib/privy/client.rb +8 -0
  6. data/lib/privy/cryptography.rb +34 -0
  7. data/lib/privy/models/create_link_auth_intent_input.rb +17 -0
  8. data/lib/privy/models/create_link_auth_intent_response.rb +36 -0
  9. data/lib/privy/models/create_stripe_onramp_session_input.rb +33 -0
  10. data/lib/privy/models/create_stripe_onramp_session_response.rb +23 -0
  11. data/lib/privy/models/device_authorization_response.rb +63 -0
  12. data/lib/privy/models/earn_incentive_reward_entry.rb +50 -0
  13. data/lib/privy/models/earn_incentive_rewards_query.rb +18 -0
  14. data/lib/privy/models/earn_incentive_rewards_response.rb +19 -0
  15. data/lib/privy/models/exchange_stripe_tokens_input.rb +23 -0
  16. data/lib/privy/models/exchange_stripe_tokens_response.rb +17 -0
  17. data/lib/privy/models/fiat_onramp_provider.rb +2 -0
  18. data/lib/privy/models/fiat_onramp_stripe_sdk_session_response.rb +45 -0
  19. data/lib/privy/models/fiat_onramp_url_session_response.rb +39 -0
  20. data/lib/privy/models/get_fiat_onramp_url_response.rb +12 -14
  21. data/lib/privy/models/get_stripe_crypto_customer_response.rb +39 -0
  22. data/lib/privy/models/kraken_embed_custom_order_cancelled_webhook_payload.rb +66 -0
  23. data/lib/privy/models/kraken_embed_custom_order_executed_webhook_payload.rb +54 -0
  24. data/lib/privy/models/kraken_embed_custom_order_execution_failed_webhook_payload.rb +67 -0
  25. data/lib/privy/models/link_auth_intent_created.rb +35 -0
  26. data/lib/privy/models/link_auth_intent_no_account.rb +27 -0
  27. data/lib/privy/models/list_stripe_consumer_wallets_response.rb +17 -0
  28. data/lib/privy/models/list_stripe_payment_tokens_response.rb +17 -0
  29. data/lib/privy/models/onramp_session_params.rb +61 -0
  30. data/lib/privy/models/refresh_stripe_quote_response.rb +18 -0
  31. data/lib/privy/models/rule_delete_intent_response.rb +63 -0
  32. data/lib/privy/models/rule_intent_response.rb +0 -1
  33. data/lib/privy/models/rule_mutate_intent_response.rb +64 -0
  34. data/lib/privy/models/stripe_consumer_wallet.rb +29 -0
  35. data/lib/privy/models/stripe_crypto_customer_active.rb +39 -0
  36. data/lib/privy/models/stripe_crypto_customer_expired.rb +33 -0
  37. data/lib/privy/models/stripe_crypto_customer_none.rb +27 -0
  38. data/lib/privy/models/stripe_onramp_checkout_response.rb +25 -0
  39. data/lib/privy/models/stripe_onramp_session_status.rb +17 -0
  40. data/lib/privy/models/stripe_payment_token.rb +23 -0
  41. data/lib/privy/models/stripe_quote.rb +17 -0
  42. data/lib/privy/models/stripe_transaction_details.rb +17 -0
  43. data/lib/privy/models/stripe_verification.rb +23 -0
  44. data/lib/privy/models/swap_action_response.rb +9 -1
  45. data/lib/privy/models/swap_destination.rb +13 -4
  46. data/lib/privy/models/swap_quote_destination.rb +15 -4
  47. data/lib/privy/models/swap_quote_request_body.rb +9 -1
  48. data/lib/privy/models/swap_quote_response.rb +25 -1
  49. data/lib/privy/models/swap_request_body.rb +9 -1
  50. data/lib/privy/models/wallets/swap_execute_params.rb +45 -0
  51. data/lib/privy/models/wallets/swap_quote_params.rb +36 -0
  52. data/lib/privy/models.rb +71 -4
  53. data/lib/privy/public_api/privy_client.rb +2 -1
  54. data/lib/privy/public_api/services/earn/ethereum/incentive.rb +61 -0
  55. data/lib/privy/public_api/services/earn/ethereum.rb +131 -0
  56. data/lib/privy/public_api/services/earn.rb +18 -0
  57. data/lib/privy/public_api/services/key_quorums.rb +7 -1
  58. data/lib/privy/public_api/services/policies.rb +21 -3
  59. data/lib/privy/public_api/services/transactions.rb +14 -0
  60. data/lib/privy/public_api/services/wallets.rb +153 -1
  61. data/lib/privy/resources/intents.rb +6 -6
  62. data/lib/privy/resources/oauth.rb +14 -0
  63. data/lib/privy/resources/onramps.rb +14 -0
  64. data/lib/privy/resources/wallets/swap.rb +105 -0
  65. data/lib/privy/resources/wallets.rb +10 -2
  66. data/lib/privy/version.rb +1 -1
  67. data/lib/privy/wallet_entropy.rb +60 -0
  68. data/lib/privy.rb +47 -4
  69. data/rbi/privy/client.rbi +6 -0
  70. data/rbi/privy/models/create_link_auth_intent_input.rbi +27 -0
  71. data/rbi/privy/models/create_link_auth_intent_response.rbi +68 -0
  72. data/rbi/privy/models/create_stripe_onramp_session_input.rbi +55 -0
  73. data/rbi/privy/models/create_stripe_onramp_session_response.rbi +30 -0
  74. data/rbi/privy/models/device_authorization_response.rbi +81 -0
  75. data/rbi/privy/models/earn_incentive_reward_entry.rbi +73 -0
  76. data/rbi/privy/models/earn_incentive_rewards_query.rbi +28 -0
  77. data/rbi/privy/models/earn_incentive_rewards_response.rbi +35 -0
  78. data/rbi/privy/models/exchange_stripe_tokens_input.rbi +33 -0
  79. data/rbi/privy/models/exchange_stripe_tokens_response.rbi +24 -0
  80. data/rbi/privy/models/fiat_onramp_provider.rbi +3 -0
  81. data/rbi/privy/models/fiat_onramp_stripe_sdk_session_response.rbi +78 -0
  82. data/rbi/privy/models/fiat_onramp_url_session_response.rbi +65 -0
  83. data/rbi/privy/models/get_fiat_onramp_url_response.rbi +12 -15
  84. data/rbi/privy/models/get_stripe_crypto_customer_response.rbi +81 -0
  85. data/rbi/privy/models/kraken_embed_custom_order_cancelled_webhook_payload.rbi +111 -0
  86. data/rbi/privy/models/kraken_embed_custom_order_executed_webhook_payload.rbi +101 -0
  87. data/rbi/privy/models/kraken_embed_custom_order_execution_failed_webhook_payload.rbi +111 -0
  88. data/rbi/privy/models/link_auth_intent_created.rbi +60 -0
  89. data/rbi/privy/models/link_auth_intent_no_account.rbi +54 -0
  90. data/rbi/privy/models/list_stripe_consumer_wallets_response.rbi +31 -0
  91. data/rbi/privy/models/list_stripe_payment_tokens_response.rbi +31 -0
  92. data/rbi/privy/models/onramp_session_params.rbi +76 -0
  93. data/rbi/privy/models/refresh_stripe_quote_response.rbi +33 -0
  94. data/rbi/privy/models/rule_delete_intent_response.rbi +113 -0
  95. data/rbi/privy/models/rule_mutate_intent_response.rbi +113 -0
  96. data/rbi/privy/models/stripe_consumer_wallet.rbi +38 -0
  97. data/rbi/privy/models/stripe_crypto_customer_active.rbi +68 -0
  98. data/rbi/privy/models/stripe_crypto_customer_expired.rbi +63 -0
  99. data/rbi/privy/models/stripe_crypto_customer_none.rbi +53 -0
  100. data/rbi/privy/models/stripe_onramp_checkout_response.rbi +51 -0
  101. data/rbi/privy/models/stripe_onramp_session_status.rbi +26 -0
  102. data/rbi/privy/models/stripe_payment_token.rbi +27 -0
  103. data/rbi/privy/models/stripe_quote.rbi +22 -0
  104. data/rbi/privy/models/stripe_transaction_details.rbi +24 -0
  105. data/rbi/privy/models/stripe_verification.rbi +27 -0
  106. data/rbi/privy/models/swap_action_response.rbi +17 -27
  107. data/rbi/privy/models/swap_destination.rbi +26 -7
  108. data/rbi/privy/models/swap_quote_destination.rbi +30 -7
  109. data/rbi/privy/models/swap_quote_request_body.rbi +11 -0
  110. data/rbi/privy/models/swap_quote_response.rbi +54 -3
  111. data/rbi/privy/models/swap_request_body.rbi +11 -0
  112. data/rbi/privy/models/wallets/swap_execute_params.rbi +71 -0
  113. data/rbi/privy/models/wallets/swap_quote_params.rbi +58 -0
  114. data/rbi/privy/models.rbi +76 -5
  115. data/rbi/privy/resources/intents.rbi +3 -3
  116. data/rbi/privy/resources/oauth.rbi +12 -0
  117. data/rbi/privy/resources/onramps.rbi +12 -0
  118. data/rbi/privy/resources/wallets/swap.rbi +94 -0
  119. data/rbi/privy/resources/wallets.rbi +9 -2
  120. data/sig/privy/client.rbs +4 -0
  121. data/sig/privy/models/create_link_auth_intent_input.rbs +15 -0
  122. data/sig/privy/models/create_link_auth_intent_response.rbs +26 -0
  123. data/sig/privy/models/create_stripe_onramp_session_input.rbs +30 -0
  124. data/sig/privy/models/create_stripe_onramp_session_response.rbs +16 -0
  125. data/sig/privy/models/device_authorization_response.rbs +45 -0
  126. data/sig/privy/models/earn_incentive_reward_entry.rbs +42 -0
  127. data/sig/privy/models/earn_incentive_rewards_query.rbs +13 -0
  128. data/sig/privy/models/earn_incentive_rewards_response.rbs +16 -0
  129. data/sig/privy/models/exchange_stripe_tokens_input.rbs +19 -0
  130. data/sig/privy/models/exchange_stripe_tokens_response.rbs +13 -0
  131. data/sig/privy/models/fiat_onramp_provider.rbs +4 -0
  132. data/sig/privy/models/fiat_onramp_stripe_sdk_session_response.rbs +45 -0
  133. data/sig/privy/models/fiat_onramp_url_session_response.rbs +40 -0
  134. data/sig/privy/models/get_fiat_onramp_url_response.rbs +6 -8
  135. data/sig/privy/models/get_stripe_crypto_customer_response.rbs +29 -0
  136. data/sig/privy/models/kraken_embed_custom_order_cancelled_webhook_payload.rbs +50 -0
  137. data/sig/privy/models/kraken_embed_custom_order_executed_webhook_payload.rbs +45 -0
  138. data/sig/privy/models/kraken_embed_custom_order_execution_failed_webhook_payload.rbs +50 -0
  139. data/sig/privy/models/link_auth_intent_created.rbs +32 -0
  140. data/sig/privy/models/link_auth_intent_no_account.rbs +26 -0
  141. data/sig/privy/models/list_stripe_consumer_wallets_response.rbs +14 -0
  142. data/sig/privy/models/list_stripe_payment_tokens_response.rbs +14 -0
  143. data/sig/privy/models/onramp_session_params.rbs +50 -0
  144. data/sig/privy/models/refresh_stripe_quote_response.rbs +13 -0
  145. data/sig/privy/models/rule_delete_intent_response.rbs +66 -0
  146. data/sig/privy/models/rule_mutate_intent_response.rbs +66 -0
  147. data/sig/privy/models/stripe_consumer_wallet.rbs +22 -0
  148. data/sig/privy/models/stripe_crypto_customer_active.rbs +40 -0
  149. data/sig/privy/models/stripe_crypto_customer_expired.rbs +35 -0
  150. data/sig/privy/models/stripe_crypto_customer_none.rbs +28 -0
  151. data/sig/privy/models/stripe_onramp_checkout_response.rbs +29 -0
  152. data/sig/privy/models/stripe_onramp_session_status.rbs +15 -0
  153. data/sig/privy/models/stripe_payment_token.rbs +15 -0
  154. data/sig/privy/models/stripe_quote.rbs +13 -0
  155. data/sig/privy/models/stripe_transaction_details.rbs +13 -0
  156. data/sig/privy/models/stripe_verification.rbs +15 -0
  157. data/sig/privy/models/swap_action_response.rbs +7 -0
  158. data/sig/privy/models/swap_destination.rbs +16 -3
  159. data/sig/privy/models/swap_quote_destination.rbs +16 -3
  160. data/sig/privy/models/swap_quote_request_body.rbs +9 -0
  161. data/sig/privy/models/swap_quote_response.rbs +26 -3
  162. data/sig/privy/models/swap_request_body.rbs +9 -0
  163. data/sig/privy/models/wallets/swap_execute_params.rbs +44 -0
  164. data/sig/privy/models/wallets/swap_quote_params.rbs +34 -0
  165. data/sig/privy/models.rbs +69 -5
  166. data/sig/privy/resources/intents.rbs +3 -3
  167. data/sig/privy/resources/oauth.rbs +7 -0
  168. data/sig/privy/resources/onramps.rbs +7 -0
  169. data/sig/privy/resources/wallets/swap.rbs +34 -0
  170. data/sig/privy/resources/wallets.rbs +2 -0
  171. metadata +125 -8
  172. data/lib/privy/models/gas_sponsorship_configuration.rb +0 -29
  173. data/lib/privy/models/gas_sponsorship_configuration_input.rb +0 -29
  174. data/rbi/privy/models/gas_sponsorship_configuration.rbi +0 -48
  175. data/rbi/privy/models/gas_sponsorship_configuration_input.rbi +0 -60
  176. data/sig/privy/models/gas_sponsorship_configuration.rbs +0 -30
  177. data/sig/privy/models/gas_sponsorship_configuration_input.rbs +0 -36
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "base58"
4
+
5
+ module Privy
6
+ module WalletEntropy
7
+ SECP256K1_ORDER = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141
8
+
9
+ module_function
10
+
11
+ def entropy_to_bytes(entropy:, entropy_type:, chain_type:)
12
+ case entropy_type.to_s
13
+ when "hd"
14
+ entropy.to_s.encode(Encoding::UTF_8).b
15
+ when "private-key"
16
+ private_key_to_bytes(entropy.to_s, chain_type.to_s)
17
+ else
18
+ raise Privy::Errors::Error, "Invalid entropy type: #{entropy_type}"
19
+ end
20
+ end
21
+
22
+ def private_key_to_bytes(entropy, chain_type)
23
+ case chain_type
24
+ when "ethereum"
25
+ ethereum_private_key_to_bytes(entropy)
26
+ when "solana"
27
+ solana_private_key_to_bytes(entropy)
28
+ else
29
+ raise Privy::Errors::Error, "Invalid chain type for imports: #{chain_type}"
30
+ end
31
+ end
32
+
33
+ def ethereum_private_key_to_bytes(entropy)
34
+ hex = entropy.start_with?("0x") ? entropy[2..] : entropy
35
+ unless hex.match?(/\A[0-9a-fA-F]{64}\z/)
36
+ raise Privy::Errors::Error,
37
+ "Invalid private key: Ethereum entropy must be 64 hex characters (32 bytes)"
38
+ end
39
+
40
+ scalar = hex.to_i(16)
41
+ if scalar.zero? || scalar >= SECP256K1_ORDER
42
+ raise Privy::Errors::Error,
43
+ "Invalid private key: Ethereum entropy must be in range [1, secp256k1 order)"
44
+ end
45
+
46
+ [hex].pack("H*")
47
+ end
48
+
49
+ def solana_private_key_to_bytes(entropy)
50
+ if entropy.empty?
51
+ raise Privy::Errors::Error,
52
+ "Invalid private key: Solana entropy must be base58 encoded"
53
+ end
54
+
55
+ Privy::Base58.decode(entropy)
56
+ rescue ArgumentError
57
+ raise Privy::Errors::Error, "Invalid private key: Solana entropy must be base58 encoded"
58
+ end
59
+ end
60
+ end
data/lib/privy.rb CHANGED
@@ -93,6 +93,8 @@ require_relative "privy/models/raw_sign_input"
93
93
  require_relative "privy/models/earn_incentive_claim_request_body"
94
94
  require_relative "privy/models/earn_deposit_request_body"
95
95
  require_relative "privy/models/earn_withdraw_request_body"
96
+ require_relative "privy/models/swap_request_body"
97
+ require_relative "privy/models/swap_quote_request_body"
96
98
  require_relative "privy/models/abi_parameter"
97
99
  require_relative "privy/models/abi_schema"
98
100
  require_relative "privy/models/account_balance_params"
@@ -197,8 +199,12 @@ require_relative "privy/models/condition_value"
197
199
  require_relative "privy/models/create_account_from_wallet_ids_input"
198
200
  require_relative "privy/models/create_account_from_wallets_configuration_input"
199
201
  require_relative "privy/models/create_account_input"
202
+ require_relative "privy/models/create_link_auth_intent_input"
203
+ require_relative "privy/models/create_link_auth_intent_response"
200
204
  require_relative "privy/models/create_organization_secret_response"
201
205
  require_relative "privy/models/create_or_update_fiat_customer_request_input"
206
+ require_relative "privy/models/create_stripe_onramp_session_input"
207
+ require_relative "privy/models/create_stripe_onramp_session_response"
202
208
  require_relative "privy/models/cross_app_connection"
203
209
  require_relative "privy/models/cross_app_connections_response"
204
210
  require_relative "privy/models/cross_app_embedded_wallet"
@@ -219,9 +225,13 @@ require_relative "privy/models/custom_metadata"
219
225
  require_relative "privy/models/custom_oauth_provider_id"
220
226
  require_relative "privy/models/custom_token_transfer_source"
221
227
  require_relative "privy/models/developer_fee"
228
+ require_relative "privy/models/device_authorization_response"
222
229
  require_relative "privy/models/earn_asset"
223
230
  require_relative "privy/models/earn_deposit_action_response"
224
231
  require_relative "privy/models/earn_incentive_claim_action_response"
232
+ require_relative "privy/models/earn_incentive_reward_entry"
233
+ require_relative "privy/models/earn_incentive_rewards_query"
234
+ require_relative "privy/models/earn_incentive_rewards_response"
225
235
  require_relative "privy/models/earn_incetive_claim_reward_entry"
226
236
  require_relative "privy/models/earn_withdraw_action_response"
227
237
  require_relative "privy/models/email_domain"
@@ -300,6 +310,8 @@ require_relative "privy/models/evm_caip_2_chain_id"
300
310
  require_relative "privy/models/evm_transaction_wallet_action_step"
301
311
  require_relative "privy/models/evm_user_operation_wallet_action_step"
302
312
  require_relative "privy/models/evm_wallet_action_step_status"
313
+ require_relative "privy/models/exchange_stripe_tokens_input"
314
+ require_relative "privy/models/exchange_stripe_tokens_response"
303
315
  require_relative "privy/models/export_private_key_rpc_input"
304
316
  require_relative "privy/models/export_private_key_rpc_response"
305
317
  require_relative "privy/models/export_seed_phrase_rpc_input"
@@ -348,7 +360,9 @@ require_relative "privy/models/fiat_onramp_provider"
348
360
  require_relative "privy/models/fiat_onramp_provider_error"
349
361
  require_relative "privy/models/fiat_onramp_quote"
350
362
  require_relative "privy/models/fiat_onramp_source"
363
+ require_relative "privy/models/fiat_onramp_stripe_sdk_session_response"
351
364
  require_relative "privy/models/fiat_onramp_transaction_status"
365
+ require_relative "privy/models/fiat_onramp_url_session_response"
352
366
  require_relative "privy/models/fiat_virtual_account_request"
353
367
  require_relative "privy/models/fiat_virtual_account_response"
354
368
  require_relative "privy/models/first_class_chain_type"
@@ -360,8 +374,6 @@ require_relative "privy/models/funds_withdrawn_webhook_payload"
360
374
  require_relative "privy/models/gas_spend_currency"
361
375
  require_relative "privy/models/gas_spend_request_body"
362
376
  require_relative "privy/models/gas_spend_response_body"
363
- require_relative "privy/models/gas_sponsorship_configuration"
364
- require_relative "privy/models/gas_sponsorship_configuration_input"
365
377
  require_relative "privy/models/get_fiat_customer_request_input"
366
378
  require_relative "privy/models/get_fiat_onramp_quotes_input"
367
379
  require_relative "privy/models/get_fiat_onramp_quotes_response"
@@ -369,6 +381,7 @@ require_relative "privy/models/get_fiat_onramp_transaction_status_input"
369
381
  require_relative "privy/models/get_fiat_onramp_transaction_status_response"
370
382
  require_relative "privy/models/get_fiat_onramp_url_input"
371
383
  require_relative "privy/models/get_fiat_onramp_url_response"
384
+ require_relative "privy/models/get_stripe_crypto_customer_response"
372
385
  require_relative "privy/models/guest_authenticate_request_body"
373
386
  require_relative "privy/models/hd_init_input"
374
387
  require_relative "privy/models/hd_path"
@@ -418,6 +431,9 @@ require_relative "privy/models/kraken_embed_current_day_pnl"
418
431
  require_relative "privy/models/kraken_embed_custom_order"
419
432
  require_relative "privy/models/kraken_embed_custom_order_action"
420
433
  require_relative "privy/models/kraken_embed_custom_order_amount"
434
+ require_relative "privy/models/kraken_embed_custom_order_cancelled_webhook_payload"
435
+ require_relative "privy/models/kraken_embed_custom_order_executed_webhook_payload"
436
+ require_relative "privy/models/kraken_embed_custom_order_execution_failed_webhook_payload"
421
437
  require_relative "privy/models/kraken_embed_custom_order_occurrence"
422
438
  require_relative "privy/models/kraken_embed_custom_order_occurrence_trigger"
423
439
  require_relative "privy/models/kraken_embed_custom_order_quote_asset"
@@ -457,6 +473,8 @@ require_relative "privy/models/kraken_embed_upcoming_reward"
457
473
  require_relative "privy/models/kraken_embed_user_closed_webhook_payload"
458
474
  require_relative "privy/models/kraken_embed_user_disabled_webhook_payload"
459
475
  require_relative "privy/models/kraken_embed_user_verified_webhook_payload"
476
+ require_relative "privy/models/link_auth_intent_created"
477
+ require_relative "privy/models/link_auth_intent_no_account"
460
478
  require_relative "privy/models/linked_account"
461
479
  require_relative "privy/models/linked_account_apple_input"
462
480
  require_relative "privy/models/linked_account_apple_oauth"
@@ -506,6 +524,8 @@ require_relative "privy/models/linked_account_type"
506
524
  require_relative "privy/models/linked_account_wallet_input"
507
525
  require_relative "privy/models/linked_mfa_method"
508
526
  require_relative "privy/models/link_jwt_input"
527
+ require_relative "privy/models/list_stripe_consumer_wallets_response"
528
+ require_relative "privy/models/list_stripe_payment_tokens_response"
509
529
  require_relative "privy/models/mfa_disabled_webhook_payload"
510
530
  require_relative "privy/models/mfa_enabled_webhook_payload"
511
531
  require_relative "privy/models/mfa_passkey_enrollment_request_body"
@@ -553,6 +573,7 @@ require_relative "privy/models/oauth_unlink_request_body"
553
573
  require_relative "privy/models/oauth_verify_request_body"
554
574
  require_relative "privy/models/oauth_verify_response_body"
555
575
  require_relative "privy/models/onramp_provider"
576
+ require_relative "privy/models/onramp_session_params"
556
577
  require_relative "privy/models/optional_refresh_token_input"
557
578
  require_relative "privy/models/organization_secrets_list_response"
558
579
  require_relative "privy/models/output_with_previous_transaction_data"
@@ -635,17 +656,20 @@ require_relative "privy/models/recovery_configuration_icloud_response"
635
656
  require_relative "privy/models/recovery_key_material_input"
636
657
  require_relative "privy/models/recovery_key_material_response"
637
658
  require_relative "privy/models/recovery_type"
659
+ require_relative "privy/models/refresh_stripe_quote_response"
638
660
  require_relative "privy/models/relayer_fee"
639
661
  require_relative "privy/models/response_passkey_init_authenticate"
640
662
  require_relative "privy/models/response_passkey_init_link"
641
663
  require_relative "privy/models/response_passkey_init_register"
642
664
  require_relative "privy/models/rpc_intent_request_details"
643
665
  require_relative "privy/models/rpc_intent_response"
666
+ require_relative "privy/models/rule_delete_intent_response"
644
667
  require_relative "privy/models/rule_intent_create_request_details"
645
668
  require_relative "privy/models/rule_intent_delete_request_details"
646
669
  require_relative "privy/models/rule_intent_request_details"
647
670
  require_relative "privy/models/rule_intent_response"
648
671
  require_relative "privy/models/rule_intent_update_request_details"
672
+ require_relative "privy/models/rule_mutate_intent_response"
649
673
  require_relative "privy/models/seed_phrase_export_input"
650
674
  require_relative "privy/models/seed_phrase_export_response"
651
675
  require_relative "privy/models/seed_phrase_export_webhook_payload"
@@ -741,6 +765,16 @@ require_relative "privy/models/spark_transfer_tokens_rpc_response"
741
765
  require_relative "privy/models/spark_transfer_tokens_rpc_response_data"
742
766
  require_relative "privy/models/spark_user_token_metadata"
743
767
  require_relative "privy/models/spark_wallet_leaf"
768
+ require_relative "privy/models/stripe_consumer_wallet"
769
+ require_relative "privy/models/stripe_crypto_customer_active"
770
+ require_relative "privy/models/stripe_crypto_customer_expired"
771
+ require_relative "privy/models/stripe_crypto_customer_none"
772
+ require_relative "privy/models/stripe_onramp_checkout_response"
773
+ require_relative "privy/models/stripe_onramp_session_status"
774
+ require_relative "privy/models/stripe_payment_token"
775
+ require_relative "privy/models/stripe_quote"
776
+ require_relative "privy/models/stripe_transaction_details"
777
+ require_relative "privy/models/stripe_verification"
744
778
  require_relative "privy/models/success_response"
745
779
  require_relative "privy/models/sui_command_name"
746
780
  require_relative "privy/models/sui_transaction_command_condition"
@@ -752,9 +786,7 @@ require_relative "privy/models/svm_wallet_action_step_status"
752
786
  require_relative "privy/models/swap_action_response"
753
787
  require_relative "privy/models/swap_destination"
754
788
  require_relative "privy/models/swap_quote_destination"
755
- require_relative "privy/models/swap_quote_request_body"
756
789
  require_relative "privy/models/swap_quote_response"
757
- require_relative "privy/models/swap_request_body"
758
790
  require_relative "privy/models/swap_source"
759
791
  require_relative "privy/models/system_condition"
760
792
  require_relative "privy/models/telegram_auth_config_schema"
@@ -938,6 +970,8 @@ require_relative "privy/models/wallets/balance_get_response"
938
970
  require_relative "privy/models/wallets/earn/ethereum/incentive_claim_params"
939
971
  require_relative "privy/models/wallets/earn/ethereum_deposit_params"
940
972
  require_relative "privy/models/wallets/earn/ethereum_withdraw_params"
973
+ require_relative "privy/models/wallets/swap_execute_params"
974
+ require_relative "privy/models/wallets/swap_quote_params"
941
975
  require_relative "privy/models/wallets/transaction_get_params"
942
976
  require_relative "privy/models/wallets/transaction_get_response"
943
977
  require_relative "privy/models/wallet_solana_asset"
@@ -963,6 +997,8 @@ require_relative "privy/resources/funding"
963
997
  require_relative "privy/resources/intents"
964
998
  require_relative "privy/resources/key_quorums"
965
999
  require_relative "privy/resources/kraken_embed"
1000
+ require_relative "privy/resources/oauth"
1001
+ require_relative "privy/resources/onramps"
966
1002
  require_relative "privy/resources/organizations"
967
1003
  require_relative "privy/resources/policies"
968
1004
  require_relative "privy/resources/shared"
@@ -975,15 +1011,22 @@ require_relative "privy/resources/wallets/balance"
975
1011
  require_relative "privy/resources/wallets/earn"
976
1012
  require_relative "privy/resources/wallets/earn/ethereum"
977
1013
  require_relative "privy/resources/wallets/earn/ethereum/incentive"
1014
+ require_relative "privy/resources/wallets/swap"
978
1015
  require_relative "privy/resources/wallets/transactions"
979
1016
  require_relative "privy/resources/webhooks"
980
1017
  require_relative "privy/resources/yield_"
981
1018
 
982
1019
  # Custom layer on top of the generated client.
1020
+ require_relative "privy/base58"
1021
+ require_relative "privy/wallet_entropy"
1022
+ require_relative "privy/public_api/services/earn"
1023
+ require_relative "privy/public_api/services/earn/ethereum"
1024
+ require_relative "privy/public_api/services/earn/ethereum/incentive"
983
1025
  require_relative "privy/public_api/services/wallets"
984
1026
  require_relative "privy/public_api/services/users"
985
1027
  require_relative "privy/public_api/services/policies"
986
1028
  require_relative "privy/public_api/services/key_quorums"
1029
+ require_relative "privy/public_api/services/transactions"
987
1030
  require_relative "privy/public_api/privy_request_expiry_options"
988
1031
  require_relative "privy/public_api/privy_client"
989
1032
 
data/rbi/privy/client.rbi CHANGED
@@ -71,6 +71,9 @@ module Privy
71
71
  sig { returns(Privy::Resources::ClientAuth) }
72
72
  attr_reader :client_auth
73
73
 
74
+ sig { returns(Privy::Resources::Onramps) }
75
+ attr_reader :onramps
76
+
74
77
  sig { returns(Privy::Resources::Funding) }
75
78
  attr_reader :funding
76
79
 
@@ -83,6 +86,9 @@ module Privy
83
86
  sig { returns(Privy::Resources::Shared) }
84
87
  attr_reader :shared
85
88
 
89
+ sig { returns(Privy::Resources::OAuth) }
90
+ attr_reader :oauth
91
+
86
92
  sig { returns(Privy::Resources::WalletActions) }
87
93
  attr_reader :wallet_actions
88
94
 
@@ -0,0 +1,27 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class CreateLinkAuthIntentInput < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Privy::CreateLinkAuthIntentInput, Privy::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :email
13
+
14
+ sig { params(email: String).void }
15
+ attr_writer :email
16
+
17
+ # Input for creating a Link auth intent to initiate Stripe onramp authentication.
18
+ sig { params(email: String).returns(T.attached_class) }
19
+ def self.new(email: nil)
20
+ end
21
+
22
+ sig { override.returns({ email: String }) }
23
+ def to_hash
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,68 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class CreateLinkAuthIntentResponse < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Privy::CreateLinkAuthIntentResponse, Privy::Internal::AnyHash)
9
+ end
10
+
11
+ # Auth intent created. Pass id to authenticate().
12
+ sig do
13
+ returns(
14
+ T.any(Privy::LinkAuthIntentCreated, Privy::LinkAuthIntentNoAccount)
15
+ )
16
+ end
17
+ attr_accessor :data
18
+
19
+ # The created Link auth intent.
20
+ sig do
21
+ params(
22
+ data:
23
+ T.any(
24
+ Privy::LinkAuthIntentCreated::OrHash,
25
+ Privy::LinkAuthIntentNoAccount::OrHash
26
+ )
27
+ ).returns(T.attached_class)
28
+ end
29
+ def self.new(
30
+ # Auth intent created. Pass id to authenticate().
31
+ data:
32
+ )
33
+ end
34
+
35
+ sig do
36
+ override.returns(
37
+ {
38
+ data:
39
+ T.any(
40
+ Privy::LinkAuthIntentCreated,
41
+ Privy::LinkAuthIntentNoAccount
42
+ )
43
+ }
44
+ )
45
+ end
46
+ def to_hash
47
+ end
48
+
49
+ # Auth intent created. Pass id to authenticate().
50
+ module Data
51
+ extend Privy::Internal::Type::Union
52
+
53
+ Variants =
54
+ T.type_alias do
55
+ T.any(Privy::LinkAuthIntentCreated, Privy::LinkAuthIntentNoAccount)
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ T::Array[Privy::CreateLinkAuthIntentResponse::Data::Variants]
61
+ )
62
+ end
63
+ def self.variants
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,55 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class CreateStripeOnrampSessionInput < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Privy::CreateStripeOnrampSessionInput, Privy::Internal::AnyHash)
9
+ end
10
+
11
+ # Whether to use the sandbox or production environment for fiat onramp.
12
+ sig { returns(Privy::FiatOnrampEnvironment::OrSymbol) }
13
+ attr_accessor :environment
14
+
15
+ # Parameters for creating a Stripe onramp session.
16
+ sig { returns(Privy::OnrampSessionParams) }
17
+ attr_reader :session
18
+
19
+ sig { params(session: Privy::OnrampSessionParams::OrHash).void }
20
+ attr_writer :session
21
+
22
+ sig { returns(String) }
23
+ attr_accessor :session_id
24
+
25
+ # Input for creating a Stripe onramp session.
26
+ sig do
27
+ params(
28
+ environment: Privy::FiatOnrampEnvironment::OrSymbol,
29
+ session: Privy::OnrampSessionParams::OrHash,
30
+ session_id: String
31
+ ).returns(T.attached_class)
32
+ end
33
+ def self.new(
34
+ # Whether to use the sandbox or production environment for fiat onramp.
35
+ environment:,
36
+ # Parameters for creating a Stripe onramp session.
37
+ session:,
38
+ session_id:
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ environment: Privy::FiatOnrampEnvironment::OrSymbol,
46
+ session: Privy::OnrampSessionParams,
47
+ session_id: String
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,30 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class CreateStripeOnrampSessionResponse < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Privy::CreateStripeOnrampSessionResponse,
10
+ Privy::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :session_id
19
+
20
+ # The created onramp session.
21
+ sig { params(id: String, session_id: String).returns(T.attached_class) }
22
+ def self.new(id:, session_id:)
23
+ end
24
+
25
+ sig { override.returns({ id: String, session_id: String }) }
26
+ def to_hash
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,81 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class DeviceAuthorizationResponse < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Privy::DeviceAuthorizationResponse, Privy::Internal::AnyHash)
9
+ end
10
+
11
+ # A long-lived code used by the device to poll for authorization status.
12
+ sig { returns(String) }
13
+ attr_accessor :device_code
14
+
15
+ # The lifetime in seconds of the device_code and user_code.
16
+ sig { returns(Integer) }
17
+ attr_accessor :expires_in
18
+
19
+ # The minimum number of seconds the device should wait between polling requests.
20
+ sig { returns(Integer) }
21
+ attr_accessor :interval
22
+
23
+ # A short code displayed to the user, who enters it at the verification URI to
24
+ # authorize the device.
25
+ sig { returns(String) }
26
+ attr_accessor :user_code
27
+
28
+ # The URI where the user navigates to enter the user_code.
29
+ sig { returns(String) }
30
+ attr_accessor :verification_uri
31
+
32
+ # The verification URI with the user_code pre-filled as a query parameter.
33
+ sig { returns(String) }
34
+ attr_accessor :verification_uri_complete
35
+
36
+ # Response from the device authorization endpoint per RFC 8628. Contains codes and
37
+ # URIs for the device flow.
38
+ sig do
39
+ params(
40
+ device_code: String,
41
+ expires_in: Integer,
42
+ interval: Integer,
43
+ user_code: String,
44
+ verification_uri: String,
45
+ verification_uri_complete: String
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # A long-lived code used by the device to poll for authorization status.
50
+ device_code:,
51
+ # The lifetime in seconds of the device_code and user_code.
52
+ expires_in:,
53
+ # The minimum number of seconds the device should wait between polling requests.
54
+ interval:,
55
+ # A short code displayed to the user, who enters it at the verification URI to
56
+ # authorize the device.
57
+ user_code:,
58
+ # The URI where the user navigates to enter the user_code.
59
+ verification_uri:,
60
+ # The verification URI with the user_code pre-filled as a query parameter.
61
+ verification_uri_complete:
62
+ )
63
+ end
64
+
65
+ sig do
66
+ override.returns(
67
+ {
68
+ device_code: String,
69
+ expires_in: Integer,
70
+ interval: Integer,
71
+ user_code: String,
72
+ verification_uri: String,
73
+ verification_uri_complete: String
74
+ }
75
+ )
76
+ end
77
+ def to_hash
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,73 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class EarnIncentiveRewardEntry < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Privy::EarnIncentiveRewardEntry, Privy::Internal::AnyHash)
9
+ end
10
+
11
+ # Total amount already claimed, in smallest unit.
12
+ sig { returns(String) }
13
+ attr_accessor :amount_claimed
14
+
15
+ # Amount available to claim on-chain but not yet claimed, in smallest unit.
16
+ sig { returns(String) }
17
+ attr_accessor :amount_unclaimed
18
+
19
+ # Address of the reward token.
20
+ sig { returns(String) }
21
+ attr_accessor :token_address
22
+
23
+ # Symbol of the reward token (e.g. "MORPHO").
24
+ sig { returns(String) }
25
+ attr_accessor :token_symbol
26
+
27
+ # Number of decimals for the reward token.
28
+ sig { returns(T.nilable(Integer)) }
29
+ attr_reader :token_decimals
30
+
31
+ sig { params(token_decimals: Integer).void }
32
+ attr_writer :token_decimals
33
+
34
+ # A reward token with claimed and unclaimed amounts.
35
+ sig do
36
+ params(
37
+ amount_claimed: String,
38
+ amount_unclaimed: String,
39
+ token_address: String,
40
+ token_symbol: String,
41
+ token_decimals: Integer
42
+ ).returns(T.attached_class)
43
+ end
44
+ def self.new(
45
+ # Total amount already claimed, in smallest unit.
46
+ amount_claimed:,
47
+ # Amount available to claim on-chain but not yet claimed, in smallest unit.
48
+ amount_unclaimed:,
49
+ # Address of the reward token.
50
+ token_address:,
51
+ # Symbol of the reward token (e.g. "MORPHO").
52
+ token_symbol:,
53
+ # Number of decimals for the reward token.
54
+ token_decimals: nil
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ amount_claimed: String,
62
+ amount_unclaimed: String,
63
+ token_address: String,
64
+ token_symbol: String,
65
+ token_decimals: Integer
66
+ }
67
+ )
68
+ end
69
+ def to_hash
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,28 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class EarnIncentiveRewardsQuery < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Privy::EarnIncentiveRewardsQuery, Privy::Internal::AnyHash)
9
+ end
10
+
11
+ # Chain name to fetch rewards for (e.g. "base", "ethereum").
12
+ sig { returns(String) }
13
+ attr_accessor :chain
14
+
15
+ # Query parameters for fetching incentive rewards.
16
+ sig { params(chain: String).returns(T.attached_class) }
17
+ def self.new(
18
+ # Chain name to fetch rewards for (e.g. "base", "ethereum").
19
+ chain:
20
+ )
21
+ end
22
+
23
+ sig { override.returns({ chain: String }) }
24
+ def to_hash
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Privy
4
+ module Models
5
+ class EarnIncentiveRewardsResponse < Privy::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Privy::EarnIncentiveRewardsResponse, Privy::Internal::AnyHash)
9
+ end
10
+
11
+ # Reward tokens with their claimed and unclaimed amounts.
12
+ sig { returns(T::Array[Privy::EarnIncentiveRewardEntry]) }
13
+ attr_accessor :rewards
14
+
15
+ # All incentive rewards for a wallet, with claimed and unclaimed amounts per
16
+ # token.
17
+ sig do
18
+ params(
19
+ rewards: T::Array[Privy::EarnIncentiveRewardEntry::OrHash]
20
+ ).returns(T.attached_class)
21
+ end
22
+ def self.new(
23
+ # Reward tokens with their claimed and unclaimed amounts.
24
+ rewards:
25
+ )
26
+ end
27
+
28
+ sig do
29
+ override.returns({ rewards: T::Array[Privy::EarnIncentiveRewardEntry] })
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end