react-native-candle 19.0.12-beta → 40.0.6-beta

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 (138) hide show
  1. package/README.md +17 -25
  2. package/android/gradle.properties +5 -0
  3. package/android/src/main/java/com/margelo/nitro/rncandle/BridgeTypes.kt +189 -2
  4. package/android/src/main/java/com/margelo/nitro/rncandle/HybridRNCandle.kt +63 -10
  5. package/ios/Sources/CandleLinkSheetWrapperView.swift +3 -2
  6. package/ios/Sources/CandleLinkViewModel.swift +2 -1
  7. package/ios/Sources/RNCandle.swift +86 -9
  8. package/ios/Sources/Types.swift +199 -5
  9. package/lib/typescript/commonjs/src/context.d.ts +16 -6
  10. package/lib/typescript/commonjs/src/provider.d.ts +1 -2
  11. package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts +76 -6
  12. package/lib/typescript/commonjs/src/types.d.ts +15 -3
  13. package/lib/typescript/module/src/context.d.ts +16 -6
  14. package/lib/typescript/module/src/provider.d.ts +1 -2
  15. package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts +76 -6
  16. package/lib/typescript/module/src/types.d.ts +15 -3
  17. package/nitrogen/generated/android/c++/JAssetAccount.hpp +2 -0
  18. package/nitrogen/generated/android/c++/JAssetAccountsResponse.hpp +2 -0
  19. package/nitrogen/generated/android/c++/JCounterparty.hpp +2 -0
  20. package/nitrogen/generated/android/c++/JCryptoAccount.hpp +3 -0
  21. package/nitrogen/generated/android/c++/JCryptoAsset.hpp +3 -0
  22. package/nitrogen/generated/android/c++/JEventAsset.hpp +3 -0
  23. package/nitrogen/generated/android/c++/JFiatAccount.hpp +2 -0
  24. package/nitrogen/generated/android/c++/JFiatAsset.hpp +2 -0
  25. package/nitrogen/generated/android/c++/JFriendRequestAsset.hpp +86 -0
  26. package/nitrogen/generated/android/c++/JFriendRequestAssetDirection.hpp +58 -0
  27. package/nitrogen/generated/android/c++/JFriendRequestAssetQuoteRequest.hpp +63 -0
  28. package/nitrogen/generated/android/c++/JFriendRequestAssetQuoteRequestAction.hpp +64 -0
  29. package/nitrogen/generated/android/c++/JFriendRequestAssetRef.hpp +66 -0
  30. package/nitrogen/generated/android/c++/JFunc_void_LinkedAccount.hpp +13 -11
  31. package/nitrogen/generated/android/c++/JFunc_void_TradeExecutionResult.hpp +11 -0
  32. package/nitrogen/generated/android/c++/JHostedAuthorizationCallback.hpp +66 -0
  33. package/nitrogen/generated/android/c++/JHostedAuthorizationRequest.hpp +69 -0
  34. package/nitrogen/generated/android/c++/JHybridRNCandleSpec.cpp +78 -15
  35. package/nitrogen/generated/android/c++/JHybridRNCandleSpec.hpp +7 -4
  36. package/nitrogen/generated/android/c++/JLinkedAccount.hpp +2 -0
  37. package/nitrogen/generated/android/c++/JLinkedAccountStatusRef.hpp +3 -0
  38. package/nitrogen/generated/android/c++/JMessageThreadAsset.hpp +99 -0
  39. package/nitrogen/generated/android/c++/JMessageThreadAssetQuoteRequest.hpp +61 -0
  40. package/nitrogen/generated/android/c++/JMessageThreadAssetRef.hpp +65 -0
  41. package/nitrogen/generated/android/c++/JMessageThreadMessage.hpp +78 -0
  42. package/nitrogen/generated/android/c++/JService.hpp +36 -252
  43. package/nitrogen/generated/android/c++/JServiceCounterparty.hpp +3 -0
  44. package/nitrogen/generated/android/c++/JServiceID.hpp +316 -0
  45. package/nitrogen/generated/android/c++/JStockAccount.hpp +3 -0
  46. package/nitrogen/generated/android/c++/JStockAsset.hpp +3 -0
  47. package/nitrogen/generated/android/c++/JTrade.hpp +11 -0
  48. package/nitrogen/generated/android/c++/JTradeAsset.hpp +22 -1
  49. package/nitrogen/generated/android/c++/JTradeAssetKind.hpp +6 -0
  50. package/nitrogen/generated/android/c++/JTradeAssetQuoteRequest.hpp +15 -1
  51. package/nitrogen/generated/android/c++/JTradeAssetRef.hpp +13 -1
  52. package/nitrogen/generated/android/c++/JTradeExecutionResult.hpp +11 -0
  53. package/nitrogen/generated/android/c++/JTradeQuote.hpp +11 -0
  54. package/nitrogen/generated/android/c++/JTradeQuotesRequest.hpp +6 -0
  55. package/nitrogen/generated/android/c++/JTradeQuotesResponse.hpp +10 -0
  56. package/nitrogen/generated/android/c++/JTradeRef.hpp +4 -0
  57. package/nitrogen/generated/android/c++/JTradesResponse.hpp +10 -0
  58. package/nitrogen/generated/android/c++/JTransportAccount.hpp +3 -0
  59. package/nitrogen/generated/android/c++/JTransportAsset.hpp +3 -0
  60. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FriendRequestAsset.kt +53 -0
  61. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FriendRequestAssetDirection.kt +23 -0
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FriendRequestAssetQuoteRequest.kt +41 -0
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FriendRequestAssetQuoteRequestAction.kt +25 -0
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FriendRequestAssetRef.kt +44 -0
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Func_void_LinkedAccount.kt +9 -9
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/HostedAuthorizationCallback.kt +44 -0
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/HostedAuthorizationRequest.kt +47 -0
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/HybridRNCandleSpec.kt +18 -6
  69. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/MessageThreadAsset.kt +50 -0
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/MessageThreadAssetQuoteRequest.kt +41 -0
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/MessageThreadAssetRef.kt +44 -0
  72. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/MessageThreadMessage.kt +53 -0
  73. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Service.kt +32 -83
  74. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/ServiceID.kt +109 -0
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeAsset.kt +8 -2
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeAssetKind.kt +4 -2
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeAssetQuoteRequest.kt +8 -2
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeAssetRef.kt +8 -2
  79. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.cpp +3 -3
  80. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.hpp +184 -20
  81. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Umbrella.hpp +37 -1
  82. package/nitrogen/generated/ios/c++/HybridRNCandleSpecSwift.hpp +74 -14
  83. package/nitrogen/generated/ios/swift/FriendRequestAsset.swift +67 -0
  84. package/nitrogen/generated/ios/swift/FriendRequestAssetDirection.swift +40 -0
  85. package/nitrogen/generated/ios/swift/FriendRequestAssetQuoteRequest.swift +34 -0
  86. package/nitrogen/generated/ios/swift/FriendRequestAssetQuoteRequestAction.swift +48 -0
  87. package/nitrogen/generated/ios/swift/FriendRequestAssetRef.swift +52 -0
  88. package/nitrogen/generated/ios/swift/Func_void_LinkedAccount.swift +5 -5
  89. package/nitrogen/generated/ios/swift/HostedAuthorizationCallback.swift +52 -0
  90. package/nitrogen/generated/ios/swift/HostedAuthorizationRequest.swift +44 -0
  91. package/nitrogen/generated/ios/swift/HybridRNCandleSpec.swift +7 -4
  92. package/nitrogen/generated/ios/swift/HybridRNCandleSpec_cxx.swift +56 -13
  93. package/nitrogen/generated/ios/swift/MessageThreadAsset.swift +68 -0
  94. package/nitrogen/generated/ios/swift/MessageThreadAssetQuoteRequest.swift +34 -0
  95. package/nitrogen/generated/ios/swift/MessageThreadAssetRef.swift +39 -0
  96. package/nitrogen/generated/ios/swift/MessageThreadMessage.swift +119 -0
  97. package/nitrogen/generated/ios/swift/Service.swift +44 -334
  98. package/nitrogen/generated/ios/swift/ServiceID.swift +384 -0
  99. package/nitrogen/generated/ios/swift/TradeAsset.swift +23 -1
  100. package/nitrogen/generated/ios/swift/TradeAssetKind.swift +8 -0
  101. package/nitrogen/generated/ios/swift/TradeAssetQuoteRequest.swift +23 -1
  102. package/nitrogen/generated/ios/swift/TradeAssetRef.swift +23 -1
  103. package/nitrogen/generated/shared/c++/CryptoAccount.hpp +1 -1
  104. package/nitrogen/generated/shared/c++/CryptoAsset.hpp +1 -1
  105. package/nitrogen/generated/shared/c++/EventAsset.hpp +1 -1
  106. package/nitrogen/generated/shared/c++/FiatAccount.hpp +1 -1
  107. package/nitrogen/generated/shared/c++/FiatAsset.hpp +1 -1
  108. package/nitrogen/generated/shared/c++/FriendRequestAsset.hpp +112 -0
  109. package/nitrogen/generated/shared/c++/FriendRequestAssetDirection.hpp +76 -0
  110. package/nitrogen/generated/shared/c++/FriendRequestAssetQuoteRequest.hpp +89 -0
  111. package/nitrogen/generated/shared/c++/FriendRequestAssetQuoteRequestAction.hpp +84 -0
  112. package/nitrogen/generated/shared/c++/FriendRequestAssetRef.hpp +92 -0
  113. package/nitrogen/generated/shared/c++/HostedAuthorizationCallback.hpp +92 -0
  114. package/nitrogen/generated/shared/c++/HostedAuthorizationRequest.hpp +95 -0
  115. package/nitrogen/generated/shared/c++/HybridRNCandleSpec.cpp +5 -2
  116. package/nitrogen/generated/shared/c++/HybridRNCandleSpec.hpp +16 -7
  117. package/nitrogen/generated/shared/c++/LinkedAccount.hpp +1 -1
  118. package/nitrogen/generated/shared/c++/LinkedAccountStatusRef.hpp +1 -1
  119. package/nitrogen/generated/shared/c++/MessageThreadAsset.hpp +106 -0
  120. package/nitrogen/generated/shared/c++/MessageThreadAssetQuoteRequest.hpp +87 -0
  121. package/nitrogen/generated/shared/c++/MessageThreadAssetRef.hpp +91 -0
  122. package/nitrogen/generated/shared/c++/MessageThreadMessage.hpp +104 -0
  123. package/nitrogen/generated/shared/c++/Service.hpp +60 -346
  124. package/nitrogen/generated/shared/c++/ServiceCounterparty.hpp +1 -1
  125. package/nitrogen/generated/shared/c++/ServiceID.hpp +420 -0
  126. package/nitrogen/generated/shared/c++/StockAccount.hpp +1 -1
  127. package/nitrogen/generated/shared/c++/StockAsset.hpp +1 -1
  128. package/nitrogen/generated/shared/c++/TradeAsset.hpp +15 -1
  129. package/nitrogen/generated/shared/c++/TradeAssetKind.hpp +10 -2
  130. package/nitrogen/generated/shared/c++/TradeAssetQuoteRequest.hpp +15 -1
  131. package/nitrogen/generated/shared/c++/TradeAssetRef.hpp +15 -1
  132. package/nitrogen/generated/shared/c++/TransportAccount.hpp +1 -1
  133. package/nitrogen/generated/shared/c++/TransportAsset.hpp +1 -1
  134. package/package.json +1 -1
  135. package/src/context.ts +21 -5
  136. package/src/provider.tsx +62 -34
  137. package/src/specs/RNCandle.nitro.ts +109 -7
  138. package/src/types.ts +50 -1
@@ -38,6 +38,10 @@ namespace margelo::nitro::rncandle { struct StockAssetRef; }
38
38
  namespace margelo::nitro::rncandle { struct TransportAssetRef; }
39
39
  // Forward declaration of `EventAssetRef` to properly resolve imports.
40
40
  namespace margelo::nitro::rncandle { struct EventAssetRef; }
41
+ // Forward declaration of `MessageThreadAssetRef` to properly resolve imports.
42
+ namespace margelo::nitro::rncandle { struct MessageThreadAssetRef; }
43
+ // Forward declaration of `FriendRequestAssetRef` to properly resolve imports.
44
+ namespace margelo::nitro::rncandle { struct FriendRequestAssetRef; }
41
45
  // Forward declaration of `OtherAssetRef` to properly resolve imports.
42
46
  namespace margelo::nitro::rncandle { struct OtherAssetRef; }
43
47
  // Forward declaration of `NothingAssetRef` to properly resolve imports.
@@ -49,6 +53,8 @@ namespace margelo::nitro::rncandle { struct NothingAssetRef; }
49
53
  #include "StockAssetRef.hpp"
50
54
  #include "TransportAssetRef.hpp"
51
55
  #include "EventAssetRef.hpp"
56
+ #include "MessageThreadAssetRef.hpp"
57
+ #include "FriendRequestAssetRef.hpp"
52
58
  #include "OtherAssetRef.hpp"
53
59
  #include "NothingAssetRef.hpp"
54
60
 
@@ -64,12 +70,14 @@ namespace margelo::nitro::rncandle {
64
70
  std::optional<StockAssetRef> stockAssetRef SWIFT_PRIVATE;
65
71
  std::optional<TransportAssetRef> transportAssetRef SWIFT_PRIVATE;
66
72
  std::optional<EventAssetRef> eventAssetRef SWIFT_PRIVATE;
73
+ std::optional<MessageThreadAssetRef> messageThreadAssetRef SWIFT_PRIVATE;
74
+ std::optional<FriendRequestAssetRef> friendRequestAssetRef SWIFT_PRIVATE;
67
75
  std::optional<OtherAssetRef> otherAssetRef SWIFT_PRIVATE;
68
76
  std::optional<NothingAssetRef> nothingAssetRef SWIFT_PRIVATE;
69
77
 
70
78
  public:
71
79
  TradeAssetRef() = default;
72
- explicit TradeAssetRef(std::optional<FiatAssetRef> fiatAssetRef, std::optional<CryptoAssetRef> cryptoAssetRef, std::optional<StockAssetRef> stockAssetRef, std::optional<TransportAssetRef> transportAssetRef, std::optional<EventAssetRef> eventAssetRef, std::optional<OtherAssetRef> otherAssetRef, std::optional<NothingAssetRef> nothingAssetRef): fiatAssetRef(fiatAssetRef), cryptoAssetRef(cryptoAssetRef), stockAssetRef(stockAssetRef), transportAssetRef(transportAssetRef), eventAssetRef(eventAssetRef), otherAssetRef(otherAssetRef), nothingAssetRef(nothingAssetRef) {}
80
+ explicit TradeAssetRef(std::optional<FiatAssetRef> fiatAssetRef, std::optional<CryptoAssetRef> cryptoAssetRef, std::optional<StockAssetRef> stockAssetRef, std::optional<TransportAssetRef> transportAssetRef, std::optional<EventAssetRef> eventAssetRef, std::optional<MessageThreadAssetRef> messageThreadAssetRef, std::optional<FriendRequestAssetRef> friendRequestAssetRef, std::optional<OtherAssetRef> otherAssetRef, std::optional<NothingAssetRef> nothingAssetRef): fiatAssetRef(fiatAssetRef), cryptoAssetRef(cryptoAssetRef), stockAssetRef(stockAssetRef), transportAssetRef(transportAssetRef), eventAssetRef(eventAssetRef), messageThreadAssetRef(messageThreadAssetRef), friendRequestAssetRef(friendRequestAssetRef), otherAssetRef(otherAssetRef), nothingAssetRef(nothingAssetRef) {}
73
81
 
74
82
  public:
75
83
  friend bool operator==(const TradeAssetRef& lhs, const TradeAssetRef& rhs) = default;
@@ -90,6 +98,8 @@ namespace margelo::nitro {
90
98
  JSIConverter<std::optional<margelo::nitro::rncandle::StockAssetRef>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "stockAssetRef"))),
91
99
  JSIConverter<std::optional<margelo::nitro::rncandle::TransportAssetRef>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "transportAssetRef"))),
92
100
  JSIConverter<std::optional<margelo::nitro::rncandle::EventAssetRef>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "eventAssetRef"))),
101
+ JSIConverter<std::optional<margelo::nitro::rncandle::MessageThreadAssetRef>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "messageThreadAssetRef"))),
102
+ JSIConverter<std::optional<margelo::nitro::rncandle::FriendRequestAssetRef>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "friendRequestAssetRef"))),
93
103
  JSIConverter<std::optional<margelo::nitro::rncandle::OtherAssetRef>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "otherAssetRef"))),
94
104
  JSIConverter<std::optional<margelo::nitro::rncandle::NothingAssetRef>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "nothingAssetRef")))
95
105
  );
@@ -101,6 +111,8 @@ namespace margelo::nitro {
101
111
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "stockAssetRef"), JSIConverter<std::optional<margelo::nitro::rncandle::StockAssetRef>>::toJSI(runtime, arg.stockAssetRef));
102
112
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "transportAssetRef"), JSIConverter<std::optional<margelo::nitro::rncandle::TransportAssetRef>>::toJSI(runtime, arg.transportAssetRef));
103
113
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "eventAssetRef"), JSIConverter<std::optional<margelo::nitro::rncandle::EventAssetRef>>::toJSI(runtime, arg.eventAssetRef));
114
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "messageThreadAssetRef"), JSIConverter<std::optional<margelo::nitro::rncandle::MessageThreadAssetRef>>::toJSI(runtime, arg.messageThreadAssetRef));
115
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "friendRequestAssetRef"), JSIConverter<std::optional<margelo::nitro::rncandle::FriendRequestAssetRef>>::toJSI(runtime, arg.friendRequestAssetRef));
104
116
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "otherAssetRef"), JSIConverter<std::optional<margelo::nitro::rncandle::OtherAssetRef>>::toJSI(runtime, arg.otherAssetRef));
105
117
  obj.setProperty(runtime, PropNameIDCache::get(runtime, "nothingAssetRef"), JSIConverter<std::optional<margelo::nitro::rncandle::NothingAssetRef>>::toJSI(runtime, arg.nothingAssetRef));
106
118
  return obj;
@@ -118,6 +130,8 @@ namespace margelo::nitro {
118
130
  if (!JSIConverter<std::optional<margelo::nitro::rncandle::StockAssetRef>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "stockAssetRef")))) return false;
119
131
  if (!JSIConverter<std::optional<margelo::nitro::rncandle::TransportAssetRef>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "transportAssetRef")))) return false;
120
132
  if (!JSIConverter<std::optional<margelo::nitro::rncandle::EventAssetRef>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "eventAssetRef")))) return false;
133
+ if (!JSIConverter<std::optional<margelo::nitro::rncandle::MessageThreadAssetRef>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "messageThreadAssetRef")))) return false;
134
+ if (!JSIConverter<std::optional<margelo::nitro::rncandle::FriendRequestAssetRef>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "friendRequestAssetRef")))) return false;
121
135
  if (!JSIConverter<std::optional<margelo::nitro::rncandle::OtherAssetRef>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "otherAssetRef")))) return false;
122
136
  if (!JSIConverter<std::optional<margelo::nitro::rncandle::NothingAssetRef>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "nothingAssetRef")))) return false;
123
137
  return true;
@@ -31,7 +31,7 @@
31
31
  // Forward declaration of `TransportAccountKind` to properly resolve imports.
32
32
  namespace margelo::nitro::rncandle { enum class TransportAccountKind; }
33
33
  // Forward declaration of `Service` to properly resolve imports.
34
- namespace margelo::nitro::rncandle { enum class Service; }
34
+ namespace margelo::nitro::rncandle { struct Service; }
35
35
 
36
36
  #include <string>
37
37
  #include "TransportAccountKind.hpp"
@@ -33,7 +33,7 @@ namespace margelo::nitro::rncandle { struct Coordinates; }
33
33
  // Forward declaration of `Address` to properly resolve imports.
34
34
  namespace margelo::nitro::rncandle { struct Address; }
35
35
  // Forward declaration of `Service` to properly resolve imports.
36
- namespace margelo::nitro::rncandle { enum class Service; }
36
+ namespace margelo::nitro::rncandle { struct Service; }
37
37
 
38
38
  #include <string>
39
39
  #include "Coordinates.hpp"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-candle",
3
- "version": "19.0.12-beta",
3
+ "version": "40.0.6-beta",
4
4
  "description": "Candle SDK for React Native",
5
5
  "license": "MIT",
6
6
  "author": "Candle Finance Inc.",
package/src/context.ts CHANGED
@@ -9,7 +9,7 @@ import type {
9
9
  LinkedAccountStatusRef,
10
10
  PresentationBackground,
11
11
  PresentationStyle,
12
- Service,
12
+ ServiceID,
13
13
  Trade,
14
14
  TradeRef,
15
15
  TradesQuery,
@@ -17,6 +17,10 @@ import type {
17
17
  TradeQuotesRequest,
18
18
  TradeAssetKind,
19
19
  } from './types'
20
+ import type {
21
+ HostedAuthorizationCallback,
22
+ HostedAuthorizationRequest,
23
+ } from './specs/RNCandle.nitro'
20
24
 
21
25
  export type CandleContextValue = {
22
26
  presentCandleTradeExecutionSheet: <
@@ -33,7 +37,7 @@ export type CandleContextValue = {
33
37
  }) => void
34
38
 
35
39
  presentCandleLinkSheet: (input: {
36
- services?: Service[]
40
+ services?: ServiceID[]
37
41
  cornerRadius?: number
38
42
  customerName?: string
39
43
  showSandbox?: boolean
@@ -47,8 +51,20 @@ export type CandleContextValue = {
47
51
  getLinkedAccount: (ref: LinkedAccountRef) => Promise<LinkedAccount>
48
52
  unlinkAccount: (ref: LinkedAccountRef) => Promise<void>
49
53
 
50
- createUser: (input: { appUserID: string }) => Promise<void>
51
- deleteUser: () => Promise<void>
54
+ hostedAuthorizationUrl: (input: {
55
+ redirectUri: string
56
+ state: string
57
+ codeChallenge: string
58
+ grantPackagePublicKey: string
59
+ }) => string
60
+ makeHostedAuthorizationRequest: (input: {
61
+ redirectUri: string
62
+ state?: string
63
+ }) => HostedAuthorizationRequest
64
+ parseHostedAuthorizationCallback: (callbackUrl: string) => HostedAuthorizationCallback
65
+ completeHostedAuthorization: (callbackUrl: string) => Promise<void>
66
+
67
+ signOut: () => Promise<void>
52
68
 
53
69
  getAssetAccounts: (query?: AssetAccountsQuery) => Promise<{
54
70
  assetAccounts: AssetAccount[]
@@ -91,7 +107,7 @@ export const useCandle = () => {
91
107
  const ctx = useContext(CandleContext)
92
108
  if (ctx === null) {
93
109
  throw new Error(
94
- "`useCandle` must be used within a <CandleProvider>. Wrap your app's root with <CandleProvider appKey={...} appSecret={...}>.",
110
+ "`useCandle` must be used within a <CandleProvider>. Wrap your app's root with <CandleProvider clientID={...}>.",
95
111
  )
96
112
  }
97
113
  return ctx
package/src/provider.tsx CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useLayoutEffect, useMemo, useState } from 'react'
1
+ import React, { useLayoutEffect, useMemo, useRef, useState } from 'react'
2
2
  import type { CandleContextValue } from './context'
3
3
  import { CandleContext } from './context'
4
4
  import {
@@ -12,36 +12,36 @@ import {
12
12
  toNativeTradeRef,
13
13
  } from './types'
14
14
  import { NitroModules } from 'react-native-nitro-modules'
15
- import type { RNCandle } from './specs/RNCandle.nitro'
15
+ import type { LinkedAccount as NativeLinkedAccount, RNCandle } from './specs/RNCandle.nitro'
16
+
17
+ type LinkSheetSuccessCallback = (nativeLinkedAccount: NativeLinkedAccount) => void
16
18
 
17
19
  export const CandleProvider: React.FC<{
18
20
  children: React.ReactNode
19
- appKey: string
20
- appSecret: string
21
+ clientID: string
21
22
  accessGroup?: string
22
- }> = ({ appKey, appSecret, accessGroup, children }) => {
23
+ }> = ({ clientID, accessGroup, children }) => {
23
24
  // NOTE: We only use useState here because useRef does not have a true lazy initializer
24
25
  const [nativeCandle] = useState<RNCandle>(() =>
25
26
  NitroModules.createHybridObject<RNCandle>('RNCandle'),
26
27
  )
28
+ const linkSheetSuccessCallbackRef = useRef<LinkSheetSuccessCallback | undefined>(undefined)
27
29
 
28
30
  useLayoutEffect(() => {
29
- nativeCandle.initialize(appKey, appSecret, accessGroup)
30
- }, [appKey, appSecret, accessGroup])
31
+ nativeCandle.initialize(clientID, accessGroup)
32
+ }, [clientID, accessGroup])
31
33
 
32
34
  const value = useMemo(
33
35
  (): CandleContextValue => ({
34
36
  presentCandleTradeExecutionSheet: ({ tradeQuote, presentationBackground, completion }) => {
35
- const nativeTradeQuote = toNativeTradeQuote(tradeQuote)
36
37
  nativeCandle.candleTradeExecutionSheet(
37
- nativeTradeQuote,
38
+ toNativeTradeQuote(tradeQuote),
38
39
  presentationBackground ?? 'default',
39
40
  (result) => {
40
41
  if (completion !== undefined) {
41
42
  if (result.trade !== undefined) {
42
- const trade = fromNativeTradeAndQuote(tradeQuote)(result.trade)
43
43
  completion({
44
- ...trade,
44
+ ...fromNativeTradeAndQuote(tradeQuote)(result.trade),
45
45
  kind: 'success' as const,
46
46
  })
47
47
  } else if (result.error === undefined) {
@@ -57,6 +57,7 @@ export const CandleProvider: React.FC<{
57
57
 
58
58
  presentCandleLinkSheet: ({
59
59
  services,
60
+ showSandbox = false,
60
61
  cornerRadius = 24,
61
62
  customerName,
62
63
  showDynamicLoading = true,
@@ -64,19 +65,36 @@ export const CandleProvider: React.FC<{
64
65
  presentationStyle = 'fullScreen',
65
66
  onSuccess,
66
67
  }) => {
67
- nativeCandle.candleLinkSheet(
68
- true,
69
- services,
70
- cornerRadius,
71
- customerName,
72
- showDynamicLoading,
73
- presentationBackground,
74
- presentationStyle,
75
- (nativeLinkedAccount) => {
76
- const linkedAccount = fromNativeLinkedAccount(nativeLinkedAccount)
77
- onSuccess(linkedAccount)
78
- },
79
- )
68
+ const retainedOnSuccess: LinkSheetSuccessCallback = (nativeLinkedAccount) => {
69
+ setTimeout(() => {
70
+ try {
71
+ onSuccess(fromNativeLinkedAccount(nativeLinkedAccount))
72
+ } finally {
73
+ if (linkSheetSuccessCallbackRef.current === retainedOnSuccess) {
74
+ linkSheetSuccessCallbackRef.current = undefined
75
+ }
76
+ }
77
+ }, 0)
78
+ }
79
+ linkSheetSuccessCallbackRef.current = retainedOnSuccess
80
+ try {
81
+ nativeCandle.candleLinkSheet(
82
+ true,
83
+ services,
84
+ showSandbox,
85
+ cornerRadius,
86
+ customerName,
87
+ showDynamicLoading,
88
+ presentationBackground,
89
+ presentationStyle,
90
+ retainedOnSuccess,
91
+ )
92
+ } catch (error) {
93
+ if (linkSheetSuccessCallbackRef.current === retainedOnSuccess) {
94
+ linkSheetSuccessCallbackRef.current = undefined
95
+ }
96
+ throw error
97
+ }
80
98
  },
81
99
 
82
100
  getLinkedAccounts: async () => {
@@ -87,10 +105,22 @@ export const CandleProvider: React.FC<{
87
105
  const nativeLinkedAccount = await nativeCandle.getLinkedAccount(ref)
88
106
  return fromNativeLinkedAccount(nativeLinkedAccount)
89
107
  },
108
+ hostedAuthorizationUrl: ({ codeChallenge, grantPackagePublicKey, redirectUri, state }) =>
109
+ nativeCandle.hostedAuthorizationUrl(
110
+ redirectUri,
111
+ state,
112
+ codeChallenge,
113
+ grantPackagePublicKey,
114
+ ),
115
+ makeHostedAuthorizationRequest: ({ redirectUri, state }) =>
116
+ nativeCandle.makeHostedAuthorizationRequest(redirectUri, state),
117
+ parseHostedAuthorizationCallback: (callbackUrl) =>
118
+ nativeCandle.parseHostedAuthorizationCallback(callbackUrl),
119
+ completeHostedAuthorization: (callbackUrl) =>
120
+ nativeCandle.completeHostedAuthorization(callbackUrl),
90
121
  unlinkAccount: (ref) => nativeCandle.unlinkAccount(ref),
91
122
 
92
- createUser: ({ appUserID }) => nativeCandle.createUser(appUserID),
93
- deleteUser: () => nativeCandle.deleteUser(),
123
+ signOut: () => nativeCandle.signOut(),
94
124
 
95
125
  getAssetAccounts: async (query = {}) => {
96
126
  const nativeAssetAccountsResponse = await nativeCandle.getAssetAccounts(query)
@@ -113,19 +143,18 @@ export const CandleProvider: React.FC<{
113
143
  },
114
144
 
115
145
  getTrade: async (ref) => {
116
- const nativeRef = toNativeTradeRef(ref)
117
- const nativeTrade = await nativeCandle.getTrade(nativeRef)
146
+ const nativeTrade = await nativeCandle.getTrade(toNativeTradeRef(ref))
118
147
  return fromNativeTrade(nativeTrade)
119
148
  },
120
149
  cancelTrade: async (ref) => {
121
- const nativeRef = toNativeTradeRef(ref)
122
- const nativeTrade = await nativeCandle.cancelTrade(nativeRef)
150
+ const nativeTrade = await nativeCandle.cancelTrade(toNativeTradeRef(ref))
123
151
  return fromNativeTrade(nativeTrade)
124
152
  },
125
153
 
126
154
  getTradeQuotes: async (request) => {
127
- const nativeRequest = toNativeTradeQuoteRequest(request)
128
- const nativeTradeQuotesResponse = await nativeCandle.getTradeQuotes(nativeRequest)
155
+ const nativeTradeQuotesResponse = await nativeCandle.getTradeQuotes(
156
+ toNativeTradeQuoteRequest(request),
157
+ )
129
158
  return {
130
159
  ...nativeTradeQuotesResponse,
131
160
  tradeQuotes: nativeTradeQuotesResponse.tradeQuotes.map(
@@ -135,8 +164,7 @@ export const CandleProvider: React.FC<{
135
164
  },
136
165
 
137
166
  executeTrade: async (quote) => {
138
- const nativeQuote = toNativeTradeQuote(quote)
139
- const nativeTrade = await nativeCandle.executeTrade(nativeQuote)
167
+ const nativeTrade = await nativeCandle.executeTrade(toNativeTradeQuote(quote))
140
168
  return fromNativeTradeAndQuote(quote)(nativeTrade)
141
169
  },
142
170
  }),
@@ -69,6 +69,19 @@ export type AssetAccount = {
69
69
  transportAccount?: TransportAccount
70
70
  }
71
71
 
72
+ export type HostedAuthorizationCallback = {
73
+ authorizationCode: string
74
+ state?: string | undefined
75
+ encryptedGrantPackage: string
76
+ }
77
+
78
+ export type HostedAuthorizationRequest = {
79
+ url: string
80
+ state: string
81
+ codeVerifier: string
82
+ grantPackagePublicKey: string
83
+ }
84
+
72
85
  type AssetAccountKind = 'fiat' | 'stock' | 'crypto' | 'transport'
73
86
 
74
87
  export type AssetAccountsQuery = {
@@ -157,6 +170,34 @@ export type EventAsset = {
157
170
  service: Service
158
171
  }
159
172
 
173
+ export type MessageThreadMessage = {
174
+ serviceMessageID?: string | undefined
175
+ senderProfileURN?: string | undefined
176
+ senderLegalName?: string | undefined
177
+ senderUsername?: string | undefined
178
+ text: string
179
+ dateTime?: string | undefined
180
+ }
181
+
182
+ export type MessageThreadAsset = {
183
+ assetKind: string // "message_thread"
184
+ serviceTradeID?: string | undefined
185
+ messages: MessageThreadMessage[]
186
+ linkedAccountID: string
187
+ service: Service
188
+ }
189
+
190
+ export type FriendRequestAssetDirection = 'received' | 'sent'
191
+
192
+ export type FriendRequestAsset = {
193
+ assetKind: string // "friend_request"
194
+ serviceTradeID?: string | undefined
195
+ direction: FriendRequestAssetDirection
196
+ user: UserCounterparty
197
+ linkedAccountID: string
198
+ service: Service
199
+ }
200
+
160
201
  export type OtherAsset = {
161
202
  assetKind: string // "other"
162
203
  }
@@ -171,6 +212,8 @@ export type TradeAsset = {
171
212
  stockAsset?: StockAsset
172
213
  transportAsset?: TransportAsset
173
214
  eventAsset?: EventAsset
215
+ messageThreadAsset?: MessageThreadAsset
216
+ friendRequestAsset?: FriendRequestAsset
174
217
  otherAsset?: OtherAsset
175
218
  nothingAsset?: NothingAsset
176
219
  }
@@ -222,6 +265,8 @@ export type TradeAssetKind =
222
265
  | 'crypto'
223
266
  | 'transport'
224
267
  | 'event'
268
+ | 'message_thread'
269
+ | 'friend_request'
225
270
  | 'other'
226
271
  | 'nothing'
227
272
 
@@ -276,6 +321,18 @@ export type EventAssetQuoteRequest = {
276
321
  dateTime?: string | undefined
277
322
  }
278
323
 
324
+ export type MessageThreadAssetQuoteRequest = {
325
+ assetKind: string // "message_thread"
326
+ text: string
327
+ }
328
+
329
+ export type FriendRequestAssetQuoteRequestAction = 'accept' | 'reject' | 'send' | 'withdraw'
330
+
331
+ export type FriendRequestAssetQuoteRequest = {
332
+ assetKind: string // "friend_request"
333
+ action: FriendRequestAssetQuoteRequestAction
334
+ }
335
+
279
336
  export type NothingAssetQuoteRequest = {
280
337
  assetKind: string // "nothing"
281
338
  }
@@ -290,6 +347,8 @@ export type TradeAssetQuoteRequest = {
290
347
  stockAssetQuoteRequest?: StockAssetQuoteRequest
291
348
  transportAssetQuoteRequest?: TransportAssetQuoteRequest
292
349
  eventAssetQuoteRequest?: EventAssetQuoteRequest
350
+ messageThreadAssetQuoteRequest?: MessageThreadAssetQuoteRequest
351
+ friendRequestAssetQuoteRequest?: FriendRequestAssetQuoteRequest
293
352
  nothingAssetQuoteRequest?: NothingAssetQuoteRequest
294
353
  otherAssetQuoteRequest?: OtherAssetQuoteRequest
295
354
  }
@@ -336,12 +395,13 @@ export type TradeQuote = {
336
395
  expirationDateTime: string
337
396
  }
338
397
 
339
- export type Service =
398
+ export type ServiceID =
340
399
  | 'robinhood'
341
400
  | 'cash_app'
342
401
  | 'venmo'
343
402
  | 'apple'
344
403
  | 'sandbox'
404
+ | 'spotify'
345
405
  | 'uber'
346
406
  | 'lyft'
347
407
  | 'chime'
@@ -351,6 +411,12 @@ export type Service =
351
411
  | 'american_express'
352
412
  | 'jpmorgan_chase'
353
413
  | 'bank_of_america'
414
+ | 'us_bank'
415
+ | 'pnc'
416
+ | 'td_bank_us'
417
+ | 'fidelity'
418
+ | 'adp'
419
+ | 'toyota_financial_services'
354
420
  | 'capital_one'
355
421
  | 'citibank'
356
422
  | 'vanguard'
@@ -369,7 +435,6 @@ export type Service =
369
435
  | 'united'
370
436
  | 'jetblue'
371
437
  | 'southwest'
372
- | 'hawaiian'
373
438
  | 'hotels'
374
439
  | 'geico'
375
440
  | 'progressive'
@@ -413,10 +478,20 @@ export type Service =
413
478
  | 'fox'
414
479
  | 'perplexity'
415
480
  | 'openai'
481
+ | 'claude'
416
482
  | 'polymarket'
417
483
  | 'espn'
418
484
  | 'youtube'
419
485
  | 'netflix'
486
+ | 'hbo_max'
487
+
488
+ export type Service = {
489
+ id: ServiceID
490
+ displayName: string
491
+ logoURL: string
492
+ thumbhash?: string | undefined
493
+ accentColor: string
494
+ }
420
495
 
421
496
  export type PresentationBackground = 'default' | 'blur'
422
497
  export type PresentationStyle = 'sheet' | 'fullScreen'
@@ -492,6 +567,18 @@ export type EventAssetRef = {
492
567
  linkedAccountID: string
493
568
  }
494
569
 
570
+ export type MessageThreadAssetRef = {
571
+ assetKind: string // "message_thread"
572
+ serviceTradeID: string
573
+ linkedAccountID: string
574
+ }
575
+
576
+ export type FriendRequestAssetRef = {
577
+ assetKind: string // "friend_request"
578
+ serviceTradeID?: string | undefined
579
+ linkedAccountID: string
580
+ }
581
+
495
582
  export type OtherAssetRef = {
496
583
  assetKind: string // "other"
497
584
  }
@@ -506,6 +593,8 @@ export type TradeAssetRef = {
506
593
  stockAssetRef?: StockAssetRef
507
594
  transportAssetRef?: TransportAssetRef
508
595
  eventAssetRef?: EventAssetRef
596
+ messageThreadAssetRef?: MessageThreadAssetRef
597
+ friendRequestAssetRef?: FriendRequestAssetRef
509
598
  otherAssetRef?: OtherAssetRef
510
599
  nothingAssetRef?: NothingAssetRef
511
600
  }
@@ -548,13 +637,14 @@ export type TradeQuotesResponse = {
548
637
  export interface RNCandle extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
549
638
  candleLinkSheet(
550
639
  isPresented: boolean,
551
- services: Service[] | undefined,
640
+ services: ServiceID[] | undefined,
641
+ showSandbox: boolean,
552
642
  cornerRadius: number,
553
643
  customerName: string | undefined,
554
644
  showDynamicLoading: boolean,
555
645
  presentationBackground: PresentationBackground,
556
646
  presentationStyle: PresentationStyle,
557
- onSuccess: (account: LinkedAccount) => void,
647
+ onSuccess: (linkedAccount: LinkedAccount) => void,
558
648
  ): void
559
649
  candleTradeExecutionSheet(
560
650
  tradeQuote: TradeQuote,
@@ -562,7 +652,7 @@ export interface RNCandle extends HybridObject<{ ios: 'swift'; android: 'kotlin'
562
652
  completion: (result: TradeExecutionResult) => void,
563
653
  ): void
564
654
 
565
- initialize(appKey: string, appSecret: string, accessGroup: string | undefined): void
655
+ initialize(clientID: string, accessGroup: string | undefined): void
566
656
 
567
657
  getLinkedAccounts(): Promise<LinkedAccount[]>
568
658
  getLinkedAccount(ref: LinkedAccountRef): Promise<LinkedAccount>
@@ -575,6 +665,18 @@ export interface RNCandle extends HybridObject<{ ios: 'swift'; android: 'kotlin'
575
665
  getTradeQuotes(request: TradeQuotesRequest): Promise<TradeQuotesResponse>
576
666
  executeTrade(quote: TradeQuote): Promise<Trade>
577
667
 
578
- createUser(appUserID: string): Promise<void>
579
- deleteUser(): Promise<void>
668
+ hostedAuthorizationUrl(
669
+ redirectUri: string,
670
+ state: string,
671
+ codeChallenge: string,
672
+ grantPackagePublicKey: string,
673
+ ): string
674
+ makeHostedAuthorizationRequest(
675
+ redirectUri: string,
676
+ state: string | undefined,
677
+ ): HostedAuthorizationRequest
678
+ parseHostedAuthorizationCallback(callbackUrl: string): HostedAuthorizationCallback
679
+ completeHostedAuthorization(callbackUrl: string): Promise<void>
680
+
681
+ signOut(): Promise<void>
580
682
  }
package/src/types.ts CHANGED
@@ -23,9 +23,15 @@ import type {
23
23
  FiatAsset,
24
24
  FiatAssetQuoteRequest,
25
25
  FiatAssetRef,
26
+ FriendRequestAsset,
27
+ FriendRequestAssetQuoteRequest,
28
+ FriendRequestAssetRef,
26
29
  InactiveLinkedAccountDetails,
27
30
  MerchantCounterparty,
28
31
  MerchantCounterpartyQuoteRequest,
32
+ MessageThreadAsset,
33
+ MessageThreadAssetQuoteRequest,
34
+ MessageThreadAssetRef,
29
35
  NothingAsset,
30
36
  NothingAssetQuoteRequest,
31
37
  NothingAssetRef,
@@ -59,6 +65,7 @@ export type {
59
65
  PresentationBackground,
60
66
  PresentationStyle,
61
67
  Service,
68
+ ServiceID,
62
69
  TradeAssetKind,
63
70
  TradeState,
64
71
  TradesQuery,
@@ -66,7 +73,15 @@ export type {
66
73
  WireDetails,
67
74
  } from './specs/RNCandle.nitro'
68
75
 
69
- export type TradeQuoteAssetKind = 'nothing' | 'transport' | 'event' | 'fiat' | 'stock' | 'crypto'
76
+ export type TradeQuoteAssetKind =
77
+ | 'nothing'
78
+ | 'transport'
79
+ | 'event'
80
+ | 'message_thread'
81
+ | 'friend_request'
82
+ | 'fiat'
83
+ | 'stock'
84
+ | 'crypto'
70
85
 
71
86
  // Discriminated unions
72
87
 
@@ -79,6 +94,8 @@ export type TradeAssetQuoteRequest =
79
94
  | ({ assetKind: 'fiat' } & FiatAssetQuoteRequest)
80
95
  | ({ assetKind: 'stock' } & StockAssetQuoteRequest)
81
96
  | ({ assetKind: 'crypto' } & CryptoAssetQuoteRequest)
97
+ | ({ assetKind: 'message_thread' } & MessageThreadAssetQuoteRequest)
98
+ | ({ assetKind: 'friend_request' } & FriendRequestAssetQuoteRequest)
82
99
  | ({ assetKind: 'other' } & OtherAssetQuoteRequest)
83
100
 
84
101
  export type CounterpartyQuoteRequest =
@@ -99,6 +116,8 @@ export type TradeAsset =
99
116
  | ({ assetKind: 'event' } & EventAsset)
100
117
  | ({ assetKind: 'fiat' } & FiatAsset)
101
118
  | ({ assetKind: 'stock' } & StockAsset)
119
+ | ({ assetKind: 'message_thread' } & MessageThreadAsset)
120
+ | ({ assetKind: 'friend_request' } & FriendRequestAsset)
102
121
  | ({ assetKind: 'crypto' } & CryptoAsset)
103
122
 
104
123
  export type Counterparty =
@@ -131,6 +150,8 @@ export type TradeAssetRef =
131
150
  | ({ assetKind: 'other' } & OtherAssetRef)
132
151
  | ({ assetKind: 'fiat' } & FiatAssetRef)
133
152
  | ({ assetKind: 'stock' } & StockAssetRef)
153
+ | ({ assetKind: 'message_thread' } & MessageThreadAssetRef)
154
+ | ({ assetKind: 'friend_request' } & FriendRequestAssetRef)
134
155
  | ({ assetKind: 'crypto' } & CryptoAssetRef)
135
156
 
136
157
  export type LinkedAccountDetails =
@@ -197,6 +218,12 @@ export const toNativeTradeAssetRef = (tradeAssetRef: TradeAssetRef): NativeTrade
197
218
  case 'event': {
198
219
  return { eventAssetRef: tradeAssetRef }
199
220
  }
221
+ case 'message_thread': {
222
+ return { messageThreadAssetRef: tradeAssetRef }
223
+ }
224
+ case 'friend_request': {
225
+ return { friendRequestAssetRef: tradeAssetRef }
226
+ }
200
227
  case 'other': {
201
228
  return { otherAssetRef: tradeAssetRef }
202
229
  }
@@ -223,6 +250,12 @@ export const toNativeTradeAsset = (tradeAsset: TradeAsset): NativeTradeAsset =>
223
250
  case 'event': {
224
251
  return { eventAsset: tradeAsset }
225
252
  }
253
+ case 'message_thread': {
254
+ return { messageThreadAsset: tradeAsset }
255
+ }
256
+ case 'friend_request': {
257
+ return { friendRequestAsset: tradeAsset }
258
+ }
226
259
  case 'other': {
227
260
  return { otherAsset: tradeAsset }
228
261
  }
@@ -265,6 +298,12 @@ export const toNativeTradeAssetQuoteRequest = (
265
298
  case 'event': {
266
299
  return { eventAssetQuoteRequest: tradeAssetQuoteRequest }
267
300
  }
301
+ case 'message_thread': {
302
+ return { messageThreadAssetQuoteRequest: tradeAssetQuoteRequest }
303
+ }
304
+ case 'friend_request': {
305
+ return { friendRequestAssetQuoteRequest: tradeAssetQuoteRequest }
306
+ }
268
307
  case 'other': {
269
308
  return { otherAssetQuoteRequest: tradeAssetQuoteRequest }
270
309
  }
@@ -346,6 +385,16 @@ export const fromNativeTradeAsset = (nativeTradeAsset: NativeTradeAsset): TradeA
346
385
  ...nativeTradeAsset.eventAsset,
347
386
  assetKind: 'event',
348
387
  }
388
+ } else if (nativeTradeAsset.messageThreadAsset !== undefined) {
389
+ return {
390
+ ...nativeTradeAsset.messageThreadAsset,
391
+ assetKind: 'message_thread',
392
+ }
393
+ } else if (nativeTradeAsset.friendRequestAsset !== undefined) {
394
+ return {
395
+ ...nativeTradeAsset.friendRequestAsset,
396
+ assetKind: 'friend_request',
397
+ }
349
398
  } else if (nativeTradeAsset.otherAsset !== undefined) {
350
399
  return { assetKind: 'other' }
351
400
  } else if (nativeTradeAsset.nothingAsset !== undefined) {