react-native-candle 1.0.1 → 19.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 (394) hide show
  1. package/README.md +23 -178
  2. package/ReactNativeCandle.podspec +2 -2
  3. package/android/CMakeLists.txt +11 -0
  4. package/android/build.gradle +136 -0
  5. package/android/gradle.properties +2 -0
  6. package/android/src/main/AndroidManifest.xml +1 -0
  7. package/android/src/main/cpp/cpp-adapter.cpp +9 -0
  8. package/android/src/main/java/com/margelo/nitro/rncandle/BridgeTypes.kt +814 -0
  9. package/android/src/main/java/com/margelo/nitro/rncandle/HybridRNCandle.kt +251 -0
  10. package/android/src/main/java/com/margelo/nitro/rncandle/ReactNativeCandlePackage.kt +22 -0
  11. package/ios/Sources/RNCandle.swift +18 -4
  12. package/ios/Sources/Types.swift +280 -175
  13. package/lib/typescript/commonjs/src/context.d.ts +4 -7
  14. package/lib/typescript/commonjs/src/index.d.ts +4 -4
  15. package/lib/typescript/commonjs/src/provider.d.ts +1 -1
  16. package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts +134 -72
  17. package/lib/typescript/commonjs/src/types.d.ts +70 -68
  18. package/lib/typescript/module/src/context.d.ts +4 -7
  19. package/lib/typescript/module/src/index.d.ts +4 -4
  20. package/lib/typescript/module/src/provider.d.ts +1 -1
  21. package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts +134 -72
  22. package/lib/typescript/module/src/types.d.ts +70 -68
  23. package/nitrogen/generated/android/ReactNativeCandle+autolinking.cmake +81 -0
  24. package/nitrogen/generated/android/ReactNativeCandle+autolinking.gradle +27 -0
  25. package/nitrogen/generated/android/ReactNativeCandleOnLoad.cpp +58 -0
  26. package/nitrogen/generated/android/ReactNativeCandleOnLoad.hpp +34 -0
  27. package/nitrogen/generated/android/c++/JACHAccountKind.hpp +58 -0
  28. package/nitrogen/generated/android/c++/JACHDetails.hpp +67 -0
  29. package/nitrogen/generated/android/c++/JActiveLinkedAccountDetails.hpp +74 -0
  30. package/nitrogen/generated/android/c++/JAddress.hpp +57 -0
  31. package/nitrogen/generated/android/c++/JAssetAccount.hpp +90 -0
  32. package/nitrogen/generated/android/c++/JAssetAccountKind.hpp +64 -0
  33. package/nitrogen/generated/android/c++/JAssetAccountRef.hpp +67 -0
  34. package/nitrogen/generated/android/c++/JAssetAccountsQuery.hpp +64 -0
  35. package/nitrogen/generated/android/c++/JAssetAccountsResponse.hpp +125 -0
  36. package/nitrogen/generated/android/c++/JCoordinates.hpp +61 -0
  37. package/nitrogen/generated/android/c++/JCounterparty.hpp +76 -0
  38. package/nitrogen/generated/android/c++/JCounterpartyKind.hpp +61 -0
  39. package/nitrogen/generated/android/c++/JCounterpartyQuoteRequest.hpp +74 -0
  40. package/nitrogen/generated/android/c++/JCryptoAccount.hpp +81 -0
  41. package/nitrogen/generated/android/c++/JCryptoAsset.hpp +99 -0
  42. package/nitrogen/generated/android/c++/JCryptoAssetQuoteRequest.hpp +74 -0
  43. package/nitrogen/generated/android/c++/JCryptoAssetRef.hpp +65 -0
  44. package/nitrogen/generated/android/c++/JEventAsset.hpp +107 -0
  45. package/nitrogen/generated/android/c++/JEventAssetQuoteRequest.hpp +70 -0
  46. package/nitrogen/generated/android/c++/JEventAssetRef.hpp +65 -0
  47. package/nitrogen/generated/android/c++/JFiatAccount.hpp +104 -0
  48. package/nitrogen/generated/android/c++/JFiatAsset.hpp +84 -0
  49. package/nitrogen/generated/android/c++/JFiatAssetQuoteRequest.hpp +70 -0
  50. package/nitrogen/generated/android/c++/JFiatAssetRef.hpp +66 -0
  51. package/nitrogen/generated/android/c++/JFinancialAccountKind.hpp +67 -0
  52. package/nitrogen/generated/android/c++/JFunc_void_LinkedAccount.hpp +89 -0
  53. package/nitrogen/generated/android/c++/JFunc_void_TradeExecutionResult.hpp +115 -0
  54. package/nitrogen/generated/android/c++/JHybridRNCandleSpec.cpp +559 -0
  55. package/nitrogen/generated/android/c++/JHybridRNCandleSpec.hpp +77 -0
  56. package/nitrogen/generated/android/c++/JInactiveLinkedAccountDetails.hpp +57 -0
  57. package/nitrogen/generated/android/c++/JLinkedAccount.hpp +80 -0
  58. package/nitrogen/generated/android/c++/JLinkedAccountDetails.hpp +72 -0
  59. package/nitrogen/generated/android/c++/JLinkedAccountRef.hpp +57 -0
  60. package/nitrogen/generated/android/c++/JLinkedAccountState.hpp +61 -0
  61. package/nitrogen/generated/android/c++/JLinkedAccountStatusRef.hpp +73 -0
  62. package/nitrogen/generated/android/c++/JMerchantCounterparty.hpp +72 -0
  63. package/nitrogen/generated/android/c++/JMerchantCounterpartyQuoteRequest.hpp +68 -0
  64. package/nitrogen/generated/android/c++/JMerchantLocation.hpp +65 -0
  65. package/nitrogen/generated/android/c++/JNothingAsset.hpp +57 -0
  66. package/nitrogen/generated/android/c++/JNothingAssetQuoteRequest.hpp +57 -0
  67. package/nitrogen/generated/android/c++/JNothingAssetRef.hpp +57 -0
  68. package/nitrogen/generated/android/c++/JOtherAsset.hpp +57 -0
  69. package/nitrogen/generated/android/c++/JOtherAssetQuoteRequest.hpp +57 -0
  70. package/nitrogen/generated/android/c++/JOtherAssetRef.hpp +57 -0
  71. package/nitrogen/generated/android/c++/JPresentationBackground.hpp +58 -0
  72. package/nitrogen/generated/android/c++/JPresentationStyle.hpp +58 -0
  73. package/nitrogen/generated/android/c++/JService.hpp +292 -0
  74. package/nitrogen/generated/android/c++/JServiceCounterparty.hpp +63 -0
  75. package/nitrogen/generated/android/c++/JServiceCounterpartyQuoteRequest.hpp +57 -0
  76. package/nitrogen/generated/android/c++/JStockAccount.hpp +81 -0
  77. package/nitrogen/generated/android/c++/JStockAsset.hpp +99 -0
  78. package/nitrogen/generated/android/c++/JStockAssetQuoteRequest.hpp +74 -0
  79. package/nitrogen/generated/android/c++/JStockAssetRef.hpp +65 -0
  80. package/nitrogen/generated/android/c++/JTrade.hpp +108 -0
  81. package/nitrogen/generated/android/c++/JTradeAsset.hpp +102 -0
  82. package/nitrogen/generated/android/c++/JTradeAssetKind.hpp +73 -0
  83. package/nitrogen/generated/android/c++/JTradeAssetQuoteRequest.hpp +100 -0
  84. package/nitrogen/generated/android/c++/JTradeAssetRef.hpp +96 -0
  85. package/nitrogen/generated/android/c++/JTradeExecutionResult.hpp +98 -0
  86. package/nitrogen/generated/android/c++/JTradeQuote.hpp +106 -0
  87. package/nitrogen/generated/android/c++/JTradeQuotesRequest.hpp +100 -0
  88. package/nitrogen/generated/android/c++/JTradeQuotesResponse.hpp +137 -0
  89. package/nitrogen/generated/android/c++/JTradeRef.hpp +78 -0
  90. package/nitrogen/generated/android/c++/JTradeState.hpp +61 -0
  91. package/nitrogen/generated/android/c++/JTradesQuery.hpp +78 -0
  92. package/nitrogen/generated/android/c++/JTradesResponse.hpp +139 -0
  93. package/nitrogen/generated/android/c++/JTransportAccount.hpp +81 -0
  94. package/nitrogen/generated/android/c++/JTransportAccountKind.hpp +61 -0
  95. package/nitrogen/generated/android/c++/JTransportAsset.hpp +123 -0
  96. package/nitrogen/generated/android/c++/JTransportAssetQuoteRequest.hpp +90 -0
  97. package/nitrogen/generated/android/c++/JTransportAssetRef.hpp +65 -0
  98. package/nitrogen/generated/android/c++/JUnavailableLinkedAccountDetails.hpp +57 -0
  99. package/nitrogen/generated/android/c++/JUserCounterparty.hpp +69 -0
  100. package/nitrogen/generated/android/c++/JUserCounterpartyQuoteRequest.hpp +66 -0
  101. package/nitrogen/generated/android/c++/JWireDetails.hpp +61 -0
  102. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/ACHAccountKind.kt +23 -0
  103. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/ACHDetails.kt +44 -0
  104. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/ActiveLinkedAccountDetails.kt +50 -0
  105. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Address.kt +38 -0
  106. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/AssetAccount.kt +47 -0
  107. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/AssetAccountKind.kt +25 -0
  108. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/AssetAccountRef.kt +44 -0
  109. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/AssetAccountsQuery.kt +41 -0
  110. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/AssetAccountsResponse.kt +41 -0
  111. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Coordinates.kt +41 -0
  112. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Counterparty.kt +44 -0
  113. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/CounterpartyKind.kt +24 -0
  114. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/CounterpartyQuoteRequest.kt +44 -0
  115. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/CryptoAccount.kt +53 -0
  116. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/CryptoAsset.kt +68 -0
  117. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/CryptoAssetQuoteRequest.kt +50 -0
  118. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/CryptoAssetRef.kt +44 -0
  119. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/EventAsset.kt +71 -0
  120. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/EventAssetQuoteRequest.kt +47 -0
  121. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/EventAssetRef.kt +44 -0
  122. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FiatAccount.kt +65 -0
  123. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FiatAsset.kt +56 -0
  124. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FiatAssetQuoteRequest.kt +47 -0
  125. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FiatAssetRef.kt +44 -0
  126. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/FinancialAccountKind.kt +26 -0
  127. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Func_void_LinkedAccount.kt +80 -0
  128. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Func_void_TradeExecutionResult.kt +80 -0
  129. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/HybridRNCandleSpec.kt +121 -0
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/InactiveLinkedAccountDetails.kt +38 -0
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/LinkedAccount.kt +47 -0
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/LinkedAccountDetails.kt +44 -0
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/LinkedAccountRef.kt +38 -0
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/LinkedAccountState.kt +24 -0
  135. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/LinkedAccountStatusRef.kt +47 -0
  136. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/MerchantCounterparty.kt +47 -0
  137. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/MerchantCounterpartyQuoteRequest.kt +44 -0
  138. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/MerchantLocation.kt +44 -0
  139. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/NothingAsset.kt +38 -0
  140. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/NothingAssetQuoteRequest.kt +38 -0
  141. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/NothingAssetRef.kt +38 -0
  142. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/OtherAsset.kt +38 -0
  143. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/OtherAssetQuoteRequest.kt +38 -0
  144. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/OtherAssetRef.kt +38 -0
  145. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/PresentationBackground.kt +23 -0
  146. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/PresentationStyle.kt +23 -0
  147. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/ReactNativeCandleOnLoad.kt +35 -0
  148. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Service.kt +101 -0
  149. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/ServiceCounterparty.kt +41 -0
  150. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/ServiceCounterpartyQuoteRequest.kt +38 -0
  151. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/StockAccount.kt +53 -0
  152. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/StockAsset.kt +68 -0
  153. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/StockAssetQuoteRequest.kt +50 -0
  154. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/StockAssetRef.kt +44 -0
  155. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/Trade.kt +50 -0
  156. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeAsset.kt +56 -0
  157. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeAssetKind.kt +28 -0
  158. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeAssetQuoteRequest.kt +56 -0
  159. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeAssetRef.kt +56 -0
  160. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeExecutionResult.kt +41 -0
  161. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeQuote.kt +50 -0
  162. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeQuotesRequest.kt +47 -0
  163. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeQuotesResponse.kt +41 -0
  164. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeRef.kt +41 -0
  165. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradeState.kt +24 -0
  166. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradesQuery.kt +50 -0
  167. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TradesResponse.kt +41 -0
  168. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TransportAccount.kt +53 -0
  169. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TransportAccountKind.kt +24 -0
  170. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TransportAsset.kt +83 -0
  171. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TransportAssetQuoteRequest.kt +59 -0
  172. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/TransportAssetRef.kt +44 -0
  173. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/UnavailableLinkedAccountDetails.kt +38 -0
  174. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/UserCounterparty.kt +47 -0
  175. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/UserCounterpartyQuoteRequest.kt +44 -0
  176. package/nitrogen/generated/android/kotlin/com/margelo/nitro/rncandle/WireDetails.kt +41 -0
  177. package/nitrogen/generated/ios/ReactNativeCandle+autolinking.rb +2 -2
  178. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.cpp +14 -13
  179. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.hpp +222 -99
  180. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Umbrella.hpp +37 -19
  181. package/nitrogen/generated/ios/ReactNativeCandleAutolinking.mm +1 -1
  182. package/nitrogen/generated/ios/ReactNativeCandleAutolinking.swift +9 -8
  183. package/nitrogen/generated/ios/c++/HybridRNCandleSpecSwift.cpp +1 -1
  184. package/nitrogen/generated/ios/c++/HybridRNCandleSpecSwift.hpp +63 -28
  185. package/nitrogen/generated/ios/swift/ACHAccountKind.swift +17 -15
  186. package/nitrogen/generated/ios/swift/ACHDetails.swift +17 -33
  187. package/nitrogen/generated/ios/swift/ActiveLinkedAccountDetails.swift +65 -118
  188. package/nitrogen/generated/ios/swift/Address.swift +9 -13
  189. package/nitrogen/generated/ios/swift/AssetAccount.swift +47 -96
  190. package/nitrogen/generated/ios/swift/AssetAccountKind.swift +25 -23
  191. package/nitrogen/generated/ios/swift/AssetAccountRef.swift +17 -33
  192. package/nitrogen/generated/ios/swift/AssetAccountsQuery.swift +33 -57
  193. package/nitrogen/generated/ios/swift/AssetAccountsResponse.swift +26 -50
  194. package/nitrogen/generated/ios/swift/Coordinates.swift +13 -23
  195. package/nitrogen/generated/ios/swift/Counterparty.swift +36 -99
  196. package/nitrogen/generated/ios/swift/CounterpartyKind.swift +21 -19
  197. package/nitrogen/generated/ios/swift/CounterpartyQuoteRequest.swift +36 -110
  198. package/nitrogen/generated/ios/swift/CryptoAccount.swift +54 -0
  199. package/nitrogen/generated/ios/swift/CryptoAsset.swift +79 -0
  200. package/nitrogen/generated/ios/swift/CryptoAssetQuoteRequest.swift +101 -0
  201. package/nitrogen/generated/ios/swift/CryptoAssetRef.swift +39 -0
  202. package/nitrogen/generated/ios/swift/EventAsset.swift +84 -0
  203. package/nitrogen/generated/ios/swift/EventAssetQuoteRequest.swift +83 -0
  204. package/nitrogen/generated/ios/swift/EventAssetRef.swift +39 -0
  205. package/nitrogen/generated/ios/swift/FiatAccount.swift +71 -163
  206. package/nitrogen/generated/ios/swift/FiatAsset.swift +47 -99
  207. package/nitrogen/generated/ios/swift/FiatAssetQuoteRequest.swift +61 -99
  208. package/nitrogen/generated/ios/swift/FiatAssetRef.swift +31 -55
  209. package/nitrogen/generated/ios/swift/FinancialAccountKind.swift +52 -0
  210. package/nitrogen/generated/ios/swift/Func_void.swift +6 -4
  211. package/nitrogen/generated/ios/swift/Func_void_AssetAccount.swift +6 -4
  212. package/nitrogen/generated/ios/swift/Func_void_AssetAccountsResponse.swift +7 -7
  213. package/nitrogen/generated/ios/swift/Func_void_LinkedAccount.swift +6 -4
  214. package/nitrogen/generated/ios/swift/Func_void_Trade.swift +6 -4
  215. package/nitrogen/generated/ios/swift/Func_void_TradeExecutionResult.swift +7 -7
  216. package/nitrogen/generated/ios/swift/Func_void_TradeQuotesResponse.swift +7 -6
  217. package/nitrogen/generated/ios/swift/Func_void_TradesResponse.swift +6 -4
  218. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +7 -6
  219. package/nitrogen/generated/ios/swift/Func_void_std__vector_LinkedAccount_.swift +7 -7
  220. package/nitrogen/generated/ios/swift/HybridRNCandleSpec.swift +29 -27
  221. package/nitrogen/generated/ios/swift/HybridRNCandleSpec_cxx.swift +117 -124
  222. package/nitrogen/generated/ios/swift/InactiveLinkedAccountDetails.swift +9 -13
  223. package/nitrogen/generated/ios/swift/LinkedAccount.swift +21 -45
  224. package/nitrogen/generated/ios/swift/LinkedAccountDetails.swift +36 -110
  225. package/nitrogen/generated/ios/swift/LinkedAccountRef.swift +9 -13
  226. package/nitrogen/generated/ios/swift/LinkedAccountState.swift +21 -19
  227. package/nitrogen/generated/ios/swift/LinkedAccountStatusRef.swift +21 -45
  228. package/nitrogen/generated/ios/swift/MerchantCounterparty.swift +28 -65
  229. package/nitrogen/generated/ios/swift/MerchantCounterpartyQuoteRequest.swift +39 -47
  230. package/nitrogen/generated/ios/swift/MerchantLocation.swift +17 -33
  231. package/nitrogen/generated/ios/swift/NothingAsset.swift +9 -13
  232. package/nitrogen/generated/ios/swift/NothingAssetQuoteRequest.swift +9 -13
  233. package/nitrogen/generated/ios/swift/NothingAssetRef.swift +9 -13
  234. package/nitrogen/generated/ios/swift/OtherAsset.swift +9 -13
  235. package/nitrogen/generated/ios/swift/OtherAssetQuoteRequest.swift +9 -13
  236. package/nitrogen/generated/ios/swift/OtherAssetRef.swift +9 -13
  237. package/nitrogen/generated/ios/swift/PresentationBackground.swift +17 -15
  238. package/nitrogen/generated/ios/swift/PresentationStyle.swift +17 -15
  239. package/nitrogen/generated/ios/swift/Service.swift +329 -327
  240. package/nitrogen/generated/ios/swift/ServiceCounterparty.swift +13 -23
  241. package/nitrogen/generated/ios/swift/ServiceCounterpartyQuoteRequest.swift +10 -15
  242. package/nitrogen/generated/ios/swift/StockAccount.swift +54 -0
  243. package/nitrogen/generated/ios/swift/StockAsset.swift +79 -0
  244. package/nitrogen/generated/ios/swift/StockAssetQuoteRequest.swift +101 -0
  245. package/nitrogen/generated/ios/swift/StockAssetRef.swift +39 -0
  246. package/nitrogen/generated/ios/swift/Trade.swift +25 -56
  247. package/nitrogen/generated/ios/swift/TradeAsset.swift +78 -157
  248. package/nitrogen/generated/ios/swift/TradeAssetKind.swift +37 -31
  249. package/nitrogen/generated/ios/swift/TradeAssetQuoteRequest.swift +78 -169
  250. package/nitrogen/generated/ios/swift/TradeAssetRef.swift +78 -159
  251. package/nitrogen/generated/ios/swift/TradeExecutionResult.swift +33 -64
  252. package/nitrogen/generated/ios/swift/TradeQuote.swift +25 -56
  253. package/nitrogen/generated/ios/swift/TradeQuotesRequest.swift +41 -87
  254. package/nitrogen/generated/ios/swift/TradeQuotesResponse.swift +26 -50
  255. package/nitrogen/generated/ios/swift/TradeRef.swift +13 -23
  256. package/nitrogen/generated/ios/swift/TradeState.swift +21 -19
  257. package/nitrogen/generated/ios/swift/TradesQuery.swift +70 -136
  258. package/nitrogen/generated/ios/swift/TradesResponse.swift +26 -50
  259. package/nitrogen/generated/ios/swift/TransportAccount.swift +30 -69
  260. package/nitrogen/generated/ios/swift/TransportAccountKind.swift +21 -19
  261. package/nitrogen/generated/ios/swift/TransportAsset.swift +87 -192
  262. package/nitrogen/generated/ios/swift/TransportAssetQuoteRequest.swift +101 -222
  263. package/nitrogen/generated/ios/swift/TransportAssetRef.swift +17 -33
  264. package/nitrogen/generated/ios/swift/UnavailableLinkedAccountDetails.swift +10 -15
  265. package/nitrogen/generated/ios/swift/UserCounterparty.swift +21 -43
  266. package/nitrogen/generated/ios/swift/UserCounterpartyQuoteRequest.swift +44 -75
  267. package/nitrogen/generated/ios/swift/WireDetails.swift +13 -23
  268. package/nitrogen/generated/shared/c++/ACHAccountKind.hpp +1 -1
  269. package/nitrogen/generated/shared/c++/ACHDetails.hpp +27 -11
  270. package/nitrogen/generated/shared/c++/ActiveLinkedAccountDetails.hpp +33 -17
  271. package/nitrogen/generated/shared/c++/Address.hpp +21 -5
  272. package/nitrogen/generated/shared/c++/AssetAccount.hpp +39 -16
  273. package/nitrogen/generated/shared/c++/AssetAccountKind.hpp +7 -7
  274. package/nitrogen/generated/shared/c++/AssetAccountRef.hpp +27 -11
  275. package/nitrogen/generated/shared/c++/AssetAccountsQuery.hpp +24 -8
  276. package/nitrogen/generated/shared/c++/AssetAccountsResponse.hpp +24 -8
  277. package/nitrogen/generated/shared/c++/Coordinates.hpp +24 -8
  278. package/nitrogen/generated/shared/c++/Counterparty.hpp +27 -11
  279. package/nitrogen/generated/shared/c++/CounterpartyKind.hpp +1 -1
  280. package/nitrogen/generated/shared/c++/CounterpartyQuoteRequest.hpp +27 -11
  281. package/nitrogen/generated/shared/c++/CryptoAccount.hpp +108 -0
  282. package/nitrogen/generated/shared/c++/CryptoAsset.hpp +125 -0
  283. package/nitrogen/generated/shared/c++/CryptoAssetQuoteRequest.hpp +100 -0
  284. package/nitrogen/generated/shared/c++/CryptoAssetRef.hpp +91 -0
  285. package/nitrogen/generated/shared/c++/EventAsset.hpp +135 -0
  286. package/nitrogen/generated/shared/c++/EventAssetQuoteRequest.hpp +96 -0
  287. package/nitrogen/generated/shared/c++/EventAssetRef.hpp +91 -0
  288. package/nitrogen/generated/shared/c++/FiatAccount.hpp +53 -37
  289. package/nitrogen/generated/shared/c++/FiatAsset.hpp +39 -23
  290. package/nitrogen/generated/shared/c++/FiatAssetQuoteRequest.hpp +30 -14
  291. package/nitrogen/generated/shared/c++/FiatAssetRef.hpp +27 -11
  292. package/nitrogen/generated/shared/c++/{FiatMarketAccountKind.hpp → FinancialAccountKind.hpp} +20 -20
  293. package/nitrogen/generated/shared/c++/HybridRNCandleSpec.cpp +2 -1
  294. package/nitrogen/generated/shared/c++/HybridRNCandleSpec.hpp +2 -1
  295. package/nitrogen/generated/shared/c++/InactiveLinkedAccountDetails.hpp +21 -5
  296. package/nitrogen/generated/shared/c++/LinkedAccount.hpp +30 -14
  297. package/nitrogen/generated/shared/c++/LinkedAccountDetails.hpp +27 -11
  298. package/nitrogen/generated/shared/c++/LinkedAccountRef.hpp +21 -5
  299. package/nitrogen/generated/shared/c++/LinkedAccountState.hpp +1 -1
  300. package/nitrogen/generated/shared/c++/LinkedAccountStatusRef.hpp +30 -14
  301. package/nitrogen/generated/shared/c++/MerchantCounterparty.hpp +30 -14
  302. package/nitrogen/generated/shared/c++/MerchantCounterpartyQuoteRequest.hpp +32 -10
  303. package/nitrogen/generated/shared/c++/MerchantLocation.hpp +27 -11
  304. package/nitrogen/generated/shared/c++/NothingAsset.hpp +21 -5
  305. package/nitrogen/generated/shared/c++/NothingAssetQuoteRequest.hpp +21 -5
  306. package/nitrogen/generated/shared/c++/NothingAssetRef.hpp +21 -5
  307. package/nitrogen/generated/shared/c++/OtherAsset.hpp +21 -5
  308. package/nitrogen/generated/shared/c++/OtherAssetQuoteRequest.hpp +21 -5
  309. package/nitrogen/generated/shared/c++/OtherAssetRef.hpp +21 -5
  310. package/nitrogen/generated/shared/c++/PresentationBackground.hpp +1 -1
  311. package/nitrogen/generated/shared/c++/PresentationStyle.hpp +1 -1
  312. package/nitrogen/generated/shared/c++/Service.hpp +1 -1
  313. package/nitrogen/generated/shared/c++/ServiceCounterparty.hpp +24 -8
  314. package/nitrogen/generated/shared/c++/ServiceCounterpartyQuoteRequest.hpp +21 -5
  315. package/nitrogen/generated/shared/c++/StockAccount.hpp +108 -0
  316. package/nitrogen/generated/shared/c++/StockAsset.hpp +125 -0
  317. package/nitrogen/generated/shared/c++/StockAssetQuoteRequest.hpp +100 -0
  318. package/nitrogen/generated/shared/c++/StockAssetRef.hpp +91 -0
  319. package/nitrogen/generated/shared/c++/Trade.hpp +33 -17
  320. package/nitrogen/generated/shared/c++/TradeAsset.hpp +52 -22
  321. package/nitrogen/generated/shared/c++/TradeAssetKind.hpp +13 -9
  322. package/nitrogen/generated/shared/c++/TradeAssetQuoteRequest.hpp +52 -22
  323. package/nitrogen/generated/shared/c++/TradeAssetRef.hpp +52 -22
  324. package/nitrogen/generated/shared/c++/TradeExecutionResult.hpp +24 -8
  325. package/nitrogen/generated/shared/c++/TradeQuote.hpp +33 -17
  326. package/nitrogen/generated/shared/c++/TradeQuotesRequest.hpp +30 -14
  327. package/nitrogen/generated/shared/c++/TradeQuotesResponse.hpp +24 -8
  328. package/nitrogen/generated/shared/c++/TradeRef.hpp +24 -8
  329. package/nitrogen/generated/shared/c++/TradeState.hpp +1 -1
  330. package/nitrogen/generated/shared/c++/TradesQuery.hpp +33 -17
  331. package/nitrogen/generated/shared/c++/TradesResponse.hpp +24 -8
  332. package/nitrogen/generated/shared/c++/TransportAccount.hpp +36 -20
  333. package/nitrogen/generated/shared/c++/TransportAccountKind.hpp +1 -1
  334. package/nitrogen/generated/shared/c++/TransportAsset.hpp +66 -50
  335. package/nitrogen/generated/shared/c++/TransportAssetQuoteRequest.hpp +42 -26
  336. package/nitrogen/generated/shared/c++/TransportAssetRef.hpp +27 -11
  337. package/nitrogen/generated/shared/c++/UnavailableLinkedAccountDetails.hpp +21 -5
  338. package/nitrogen/generated/shared/c++/UserCounterparty.hpp +30 -14
  339. package/nitrogen/generated/shared/c++/UserCounterpartyQuoteRequest.hpp +27 -11
  340. package/nitrogen/generated/shared/c++/WireDetails.hpp +24 -8
  341. package/package.json +26 -70
  342. package/react-native.config.js +10 -0
  343. package/src/context.ts +47 -46
  344. package/src/index.ts +4 -4
  345. package/src/provider.tsx +68 -79
  346. package/src/specs/RNCandle.nitro.ts +463 -399
  347. package/src/types.ts +317 -342
  348. package/app.plugin.js +0 -1
  349. package/lib/commonjs/context.js +0 -17
  350. package/lib/commonjs/context.js.map +0 -1
  351. package/lib/commonjs/index.js +0 -26
  352. package/lib/commonjs/index.js.map +0 -1
  353. package/lib/commonjs/package.json +0 -1
  354. package/lib/commonjs/provider.js +0 -122
  355. package/lib/commonjs/provider.js.map +0 -1
  356. package/lib/commonjs/specs/RNCandle.nitro.js +0 -6
  357. package/lib/commonjs/specs/RNCandle.nitro.js.map +0 -1
  358. package/lib/commonjs/types.js +0 -312
  359. package/lib/commonjs/types.js.map +0 -1
  360. package/lib/module/context.js +0 -12
  361. package/lib/module/context.js.map +0 -1
  362. package/lib/module/index.js +0 -5
  363. package/lib/module/index.js.map +0 -1
  364. package/lib/module/package.json +0 -1
  365. package/lib/module/provider.js +0 -116
  366. package/lib/module/provider.js.map +0 -1
  367. package/lib/module/specs/RNCandle.nitro.js +0 -4
  368. package/lib/module/specs/RNCandle.nitro.js.map +0 -1
  369. package/lib/module/types.js +0 -295
  370. package/lib/module/types.js.map +0 -1
  371. package/lib/typescript/commonjs/package.json +0 -1
  372. package/lib/typescript/commonjs/src/context.d.ts.map +0 -1
  373. package/lib/typescript/commonjs/src/index.d.ts.map +0 -1
  374. package/lib/typescript/commonjs/src/provider.d.ts.map +0 -1
  375. package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts.map +0 -1
  376. package/lib/typescript/commonjs/src/types.d.ts.map +0 -1
  377. package/lib/typescript/module/package.json +0 -1
  378. package/lib/typescript/module/src/context.d.ts.map +0 -1
  379. package/lib/typescript/module/src/index.d.ts.map +0 -1
  380. package/lib/typescript/module/src/provider.d.ts.map +0 -1
  381. package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts.map +0 -1
  382. package/lib/typescript/module/src/types.d.ts.map +0 -1
  383. package/nitrogen/generated/ios/swift/FiatMarketAccountKind.swift +0 -50
  384. package/nitrogen/generated/ios/swift/MarketAccount.swift +0 -93
  385. package/nitrogen/generated/ios/swift/MarketAssetKind.swift +0 -38
  386. package/nitrogen/generated/ios/swift/MarketAssetQuoteRequest.swift +0 -154
  387. package/nitrogen/generated/ios/swift/MarketTradeAsset.swift +0 -150
  388. package/nitrogen/generated/ios/swift/MarketTradeAssetRef.swift +0 -55
  389. package/nitrogen/generated/shared/c++/MarketAccount.hpp +0 -95
  390. package/nitrogen/generated/shared/c++/MarketAssetKind.hpp +0 -76
  391. package/nitrogen/generated/shared/c++/MarketAssetQuoteRequest.hpp +0 -86
  392. package/nitrogen/generated/shared/c++/MarketTradeAsset.hpp +0 -112
  393. package/nitrogen/generated/shared/c++/MarketTradeAssetRef.hpp +0 -77
  394. package/plugin/withIosDeploymentTarget.js +0 -71
@@ -0,0 +1,251 @@
1
+ package com.margelo.nitro.rncandle
2
+
3
+ import android.app.Activity
4
+ import android.os.Handler
5
+ import android.os.Looper
6
+ import android.view.ViewGroup
7
+ import android.widget.FrameLayout
8
+ import androidx.compose.ui.platform.ComposeView
9
+ import androidx.compose.ui.platform.ViewCompositionStrategy
10
+ import com.margelo.nitro.NitroModules
11
+ import com.margelo.nitro.core.Promise
12
+ import fi.candle.Candle
13
+ import fi.candle.client.supportedServices
14
+ import fi.candle.ui.CandleUiContent
15
+ import fi.candle.ui.models.PresentationStyle as CandlePresentationStyle
16
+ import java.util.concurrent.atomic.AtomicBoolean
17
+
18
+ class HybridRNCandle : HybridRNCandleSpec() {
19
+ private val mainHandler = Handler(Looper.getMainLooper())
20
+
21
+ private var linkSheetView: ComposeView? = null
22
+ private var tradeSheetView: ComposeView? = null
23
+
24
+ override fun initialize(appKey: String, appSecret: String, accessGroup: String?) {
25
+ ReactNativeCandleOnLoad.initializeNative()
26
+ val context =
27
+ NitroModules.applicationContext
28
+ ?: error(
29
+ "React application context is unavailable. NitroModules was not initialized."
30
+ )
31
+
32
+ // Android does not use the iOS keychain access-group concept.
33
+ accessGroup?.let {}
34
+ Candle.Client.initialize(context, appKey, appSecret)
35
+ }
36
+
37
+ override fun candleLinkSheet(
38
+ isPresented: Boolean,
39
+ services: Array<Service>?,
40
+ cornerRadius: Double,
41
+ customerName: String?,
42
+ showDynamicLoading: Boolean,
43
+ presentationBackground: PresentationBackground,
44
+ presentationStyle: PresentationStyle,
45
+ onSuccess: (account: LinkedAccount) -> Unit,
46
+ ) {
47
+ runOnMainThread {
48
+ if (!isPresented) {
49
+ removeLinkSheet()
50
+ return@runOnMainThread
51
+ }
52
+
53
+ val activity = requireCurrentActivity()
54
+ removeLinkSheet()
55
+
56
+ val callbackDelivered = AtomicBoolean(false)
57
+ val composeView = createOverlayView(activity)
58
+ composeView.setContent(
59
+ CandleUiContent.candleLinkSheet(
60
+ services = services?.map { it.toCandleModel() } ?: supportedServices,
61
+ customerName = customerName,
62
+ cornerRadiusDp = cornerRadius.toFloat(),
63
+ showDynamicLoading = showDynamicLoading,
64
+ presentationStyle = presentationStyle.toCandleModel(),
65
+ presentationBackgroundArgb = presentationBackground.toCandleArgb(),
66
+ onDismiss = ::removeLinkSheet,
67
+ onLinkedAccount = { account ->
68
+ if (callbackDelivered.compareAndSet(false, true)) {
69
+ onSuccess(account.toReactModel())
70
+ }
71
+ },
72
+ )
73
+ )
74
+
75
+ linkSheetView = composeView
76
+ attachOverlay(activity, composeView)
77
+ }
78
+ }
79
+
80
+ override fun candleTradeExecutionSheet(
81
+ tradeQuote: TradeQuote,
82
+ presentationBackground: PresentationBackground,
83
+ completion: (result: TradeExecutionResult) -> Unit,
84
+ ) {
85
+ runOnMainThread {
86
+ val activity = requireCurrentActivity()
87
+ removeTradeSheet()
88
+
89
+ val callbackDelivered = AtomicBoolean(false)
90
+ val quote = tradeQuote.toCandleModel()
91
+ val composeView = createOverlayView(activity)
92
+
93
+ composeView.setContent(
94
+ CandleUiContent.candleTradeExecutionSheet(
95
+ quote = quote,
96
+ presentationBackgroundArgb = presentationBackground.toCandleArgb(),
97
+ onDismiss = ::removeTradeSheet,
98
+ onComplete = { result ->
99
+ if (callbackDelivered.compareAndSet(false, true)) {
100
+ val tradeExecutionResult =
101
+ result.fold(
102
+ onSuccess = { trade ->
103
+ TradeExecutionResult(
104
+ trade = trade.toReactModel(),
105
+ error = null,
106
+ )
107
+ },
108
+ onFailure = { error ->
109
+ TradeExecutionResult(
110
+ trade = null,
111
+ error = error.message ?: error.toString(),
112
+ )
113
+ },
114
+ )
115
+ completion(tradeExecutionResult)
116
+ }
117
+ },
118
+ )
119
+ )
120
+
121
+ tradeSheetView = composeView
122
+ attachOverlay(activity, composeView)
123
+ }
124
+ }
125
+
126
+ override fun getLinkedAccounts(): Promise<Array<LinkedAccount>> {
127
+ return Promise.async {
128
+ Candle.Client.shared.getLinkedAccounts().map { it.toReactModel() }.toTypedArray()
129
+ }
130
+ }
131
+
132
+ override fun getLinkedAccount(ref: LinkedAccountRef): Promise<LinkedAccount> {
133
+ return Promise.async {
134
+ Candle.Client.shared.getLinkedAccount(ref.toGetLinkedAccountRef()).toReactModel()
135
+ }
136
+ }
137
+
138
+ override fun unlinkAccount(ref: LinkedAccountRef): Promise<Unit> {
139
+ return Promise.async { Candle.Client.shared.unlinkAccount(ref.toDeleteLinkedAccountRef()) }
140
+ }
141
+
142
+ override fun getAssetAccounts(query: AssetAccountsQuery): Promise<AssetAccountsResponse> {
143
+ return Promise.async {
144
+ Candle.Client.shared.getAssetAccounts(query.toCandleModel()).toReactModel()
145
+ }
146
+ }
147
+
148
+ override fun getAssetAccount(ref: AssetAccountRef): Promise<AssetAccount> {
149
+ return Promise.async {
150
+ Candle.Client.shared.getAssetAccount(ref.toCandleModel()).toReactModel()
151
+ }
152
+ }
153
+
154
+ override fun getTrades(query: TradesQuery): Promise<TradesResponse> {
155
+ return Promise.async {
156
+ Candle.Client.shared.getTrades(query.toCandleModel()).toReactModel()
157
+ }
158
+ }
159
+
160
+ override fun getTrade(ref: TradeRef): Promise<Trade> {
161
+ return Promise.async { Candle.Client.shared.getTrade(ref.toCandleModel()).toReactModel() }
162
+ }
163
+
164
+ override fun cancelTrade(ref: TradeRef): Promise<Trade> {
165
+ return Promise.async {
166
+ Candle.Client.shared.cancelTrade(ref.toCandleModel()).toReactModel()
167
+ }
168
+ }
169
+
170
+ override fun getTradeQuotes(request: TradeQuotesRequest): Promise<TradeQuotesResponse> {
171
+ return Promise.async {
172
+ Candle.Client.shared.getTradeQuotes(request.toCandleModel()).toReactModel()
173
+ }
174
+ }
175
+
176
+ override fun executeTrade(quote: TradeQuote): Promise<Trade> {
177
+ return Promise.async {
178
+ Candle.Client.shared.executeTrade(quote.toCandleModel()).toReactModel()
179
+ }
180
+ }
181
+
182
+ override fun createUser(appUserID: String): Promise<Unit> {
183
+ return Promise.async { Candle.Client.shared.createUser(appUserID) }
184
+ }
185
+
186
+ override fun deleteUser(): Promise<Unit> {
187
+ return Promise.async { Candle.Client.shared.deleteUser() }
188
+ }
189
+
190
+ private fun runOnMainThread(block: () -> Unit) {
191
+ if (Looper.myLooper() == Looper.getMainLooper()) {
192
+ block()
193
+ } else {
194
+ mainHandler.post(block)
195
+ }
196
+ }
197
+
198
+ private fun requireCurrentActivity(): Activity {
199
+ return NitroModules.applicationContext?.currentActivity
200
+ ?: error("React activity is unavailable. Candle UI requires a foreground activity.")
201
+ }
202
+
203
+ private fun createOverlayView(activity: Activity): ComposeView {
204
+ return ComposeView(activity).apply {
205
+ layoutParams =
206
+ FrameLayout.LayoutParams(
207
+ ViewGroup.LayoutParams.MATCH_PARENT,
208
+ ViewGroup.LayoutParams.MATCH_PARENT,
209
+ )
210
+ setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow)
211
+ }
212
+ }
213
+
214
+ private fun attachOverlay(activity: Activity, composeView: ComposeView) {
215
+ val root =
216
+ activity.findViewById<ViewGroup>(android.R.id.content)
217
+ ?: error("Activity content view is unavailable.")
218
+ root.addView(composeView)
219
+ }
220
+
221
+ private fun removeLinkSheet() {
222
+ linkSheetView?.removeFromParentAndDispose()
223
+ linkSheetView = null
224
+ }
225
+
226
+ private fun removeTradeSheet() {
227
+ tradeSheetView?.removeFromParentAndDispose()
228
+ tradeSheetView = null
229
+ }
230
+
231
+ private fun ComposeView.removeFromParentAndDispose() {
232
+ (parent as? ViewGroup)?.removeView(this)
233
+ disposeComposition()
234
+ }
235
+
236
+ private fun PresentationStyle.toCandleModel(): CandlePresentationStyle {
237
+ return when (this) {
238
+ PresentationStyle.SHEET -> CandlePresentationStyle.Sheet
239
+ PresentationStyle.FULLSCREEN -> CandlePresentationStyle.FullScreen
240
+ }
241
+ }
242
+
243
+ private fun PresentationBackground.toCandleArgb(): Long? {
244
+ return when (this) {
245
+ PresentationBackground.DEFAULT -> null
246
+ // Android has no matching blur-backed sheet treatment here, so avoid a fake translucent
247
+ // overlay and fall back to the SDK's normal opaque presentation background.
248
+ PresentationBackground.BLUR -> null
249
+ }
250
+ }
251
+ }
@@ -0,0 +1,22 @@
1
+ package com.margelo.nitro.rncandle
2
+
3
+ import com.facebook.react.ReactPackage
4
+ import com.facebook.react.bridge.NativeModule
5
+ import com.facebook.react.bridge.ReactApplicationContext
6
+ import com.facebook.react.uimanager.ViewManager
7
+
8
+ class ReactNativeCandlePackage : ReactPackage {
9
+ init {
10
+ ReactNativeCandleOnLoad.initializeNative()
11
+ }
12
+
13
+ override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
14
+ return emptyList()
15
+ }
16
+
17
+ override fun createViewManagers(
18
+ reactContext: ReactApplicationContext
19
+ ): List<ViewManager<*, *>> {
20
+ return emptyList()
21
+ }
22
+ }
@@ -9,6 +9,8 @@ import UIKit
9
9
  private var rootVC: UIHostingController<CandleLinkSheetWrapper>?
10
10
 
11
11
  private var cancellables = Set<AnyCancellable>()
12
+ private var linkSheetPresentationCancellable: AnyCancellable?
13
+ private var linkSheetSuccessCancellable: AnyCancellable?
12
14
 
13
15
  var viewModel: CandleLinkViewModel {
14
16
  get throws {
@@ -39,6 +41,10 @@ import UIKit
39
41
  onSuccess: @escaping (LinkedAccount) -> Void
40
42
  ) throws {
41
43
  Task { @MainActor in
44
+ linkSheetPresentationCancellable?.cancel()
45
+ linkSheetSuccessCancellable?.cancel()
46
+
47
+ try viewModel.linkedAccount = nil
42
48
  try viewModel.isPresented = isPresented
43
49
  try viewModel.services = services
44
50
  try viewModel.cornerRadius = cornerRadius
@@ -68,13 +74,14 @@ import UIKit
68
74
  #endif
69
75
  }
70
76
  }
71
- try viewModel.$isPresented.removeDuplicates().receive(on: RunLoop.main)
77
+ linkSheetPresentationCancellable = try viewModel.$isPresented.removeDuplicates()
78
+ .receive(on: RunLoop.main)
72
79
  .sink(receiveValue: { [weak self] isPresented in
73
80
  if let rootVC = self?.rootVC, !isPresented { parentVC.removeEmbedded(rootVC) }
74
81
  })
75
- .store(in: &cancellables)
76
- try viewModel.$linkedAccount.removeDuplicates().compactMap(\.?.reactModel)
77
- .receive(on: RunLoop.main).sink(receiveValue: onSuccess).store(in: &cancellables)
82
+ linkSheetSuccessCancellable = try viewModel.$linkedAccount.removeDuplicates()
83
+ .compactMap(\.?.reactModel).prefix(1).receive(on: RunLoop.main)
84
+ .sink(receiveValue: onSuccess)
78
85
  }
79
86
  }
80
87
 
@@ -172,6 +179,13 @@ import UIKit
172
179
  }
173
180
  }
174
181
 
182
+ public func cancelTrade(ref: TradeRef) throws -> Promise<Trade> {
183
+ .async {
184
+ let trade = try await Client.shared.cancelTrade(ref: .init(reactModel: ref))
185
+ return trade.reactModel
186
+ }
187
+ }
188
+
175
189
  public func getTrades(query: TradesQuery) throws -> Promise<TradesResponse> {
176
190
  .async {
177
191
  let trades = try await Client.shared.getTrades(query: .init(reactModel: query))