react-native-zcash 0.6.14 → 0.7.1

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 (168) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -0
  3. package/android/build.gradle +4 -4
  4. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2470000.json +8 -0
  5. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2480000.json +8 -0
  6. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2490000.json +8 -0
  7. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2500000.json +8 -0
  8. package/android/src/main/java/app/edge/rnzcash/RNZcashModule.kt +51 -9
  9. package/ios/RNZcash.m +8 -0
  10. package/ios/RNZcash.swift +66 -16
  11. package/ios/ZCashLightClientKit/Block/Actions/DownloadAction.swift +1 -1
  12. package/ios/ZCashLightClientKit/Block/Actions/EnhanceAction.swift +3 -1
  13. package/ios/ZCashLightClientKit/Block/Actions/FetchUTXOsAction.swift +1 -1
  14. package/ios/ZCashLightClientKit/Block/Actions/ProcessSuggestedScanRangesAction.swift +11 -2
  15. package/ios/ZCashLightClientKit/Block/Actions/RewindAction.swift +2 -2
  16. package/ios/ZCashLightClientKit/Block/Actions/ScanAction.swift +28 -11
  17. package/ios/ZCashLightClientKit/Block/Actions/UpdateChainTipAction.swift +4 -4
  18. package/ios/ZCashLightClientKit/Block/Actions/UpdateSubtreeRootsAction.swift +36 -7
  19. package/ios/ZCashLightClientKit/Block/Actions/ValidateServerAction.swift +1 -1
  20. package/ios/ZCashLightClientKit/Block/CompactBlockProcessor.swift +93 -51
  21. package/ios/ZCashLightClientKit/Block/Download/BlockDownloader.swift +0 -26
  22. package/ios/ZCashLightClientKit/Block/Enhance/BlockEnhancer.swift +5 -6
  23. package/ios/ZCashLightClientKit/Block/FetchUnspentTxOutputs/UTXOFetcher.swift +1 -11
  24. package/ios/ZCashLightClientKit/Block/SaplingParameters/SaplingParametersHandler.swift +6 -4
  25. package/ios/ZCashLightClientKit/Block/Scan/BlockScanner.swift +10 -12
  26. package/ios/ZCashLightClientKit/Checkpoint/BundleCheckpointSource.swift +38 -0
  27. package/ios/ZCashLightClientKit/Checkpoint/BundleCheckpointURLProvider.swift +40 -0
  28. package/ios/ZCashLightClientKit/{Constants/Checkpoint+Constants.swift → Checkpoint/Checkpoint+helpers.swift} +1 -33
  29. package/ios/ZCashLightClientKit/Checkpoint/CheckpointSource.swift +34 -0
  30. package/ios/ZCashLightClientKit/Checkpoint/CheckpointSourceFactory.swift +14 -0
  31. package/ios/ZCashLightClientKit/ClosureSynchronizer.swift +61 -6
  32. package/ios/ZCashLightClientKit/CombineSynchronizer.swift +63 -4
  33. package/ios/ZCashLightClientKit/Constants/ZcashSDK.swift +4 -0
  34. package/ios/ZCashLightClientKit/DAO/TransactionDao.swift +21 -33
  35. package/ios/ZCashLightClientKit/DAO/UnspentTransactionOutputDao.swift +0 -182
  36. package/ios/ZCashLightClientKit/Entity/AccountEntity.swift +0 -173
  37. package/ios/ZCashLightClientKit/Entity/TransactionEntity.swift +5 -2
  38. package/ios/ZCashLightClientKit/Error/Sourcery/generateErrorCode.sh +1 -1
  39. package/ios/ZCashLightClientKit/Error/ZcashError.swift +53 -1
  40. package/ios/ZCashLightClientKit/Error/ZcashErrorCode.swift +19 -1
  41. package/ios/ZCashLightClientKit/Error/ZcashErrorCodeDefinition.swift +32 -0
  42. package/ios/ZCashLightClientKit/Initializer.swift +8 -17
  43. package/ios/ZCashLightClientKit/Metrics/SDKMetrics.swift +103 -217
  44. package/ios/ZCashLightClientKit/Model/Proposal.swift +45 -0
  45. package/ios/ZCashLightClientKit/Model/ScanSummary.swift +14 -0
  46. package/ios/ZCashLightClientKit/Model/WalletSummary.swift +58 -0
  47. package/ios/ZCashLightClientKit/Model/WalletTypes.swift +0 -16
  48. package/ios/ZCashLightClientKit/Modules/Service/GRPC/LightWalletGRPCService.swift +5 -3
  49. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proposal.pb.swift +934 -0
  50. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/proposal.proto +138 -0
  51. package/ios/ZCashLightClientKit/Modules/Service/LightWalletService.swift +2 -4
  52. package/ios/ZCashLightClientKit/Providers/LatestBlocksDataProvider.swift +9 -1
  53. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2272500.json +8 -0
  54. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2275000.json +8 -0
  55. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2277500.json +8 -0
  56. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2282500.json +8 -0
  57. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2285000.json +8 -0
  58. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2287500.json +8 -0
  59. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2292500.json +8 -0
  60. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2295000.json +8 -0
  61. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2297500.json +8 -0
  62. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2302500.json +8 -0
  63. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2305000.json +8 -0
  64. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2307500.json +8 -0
  65. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2312500.json +8 -0
  66. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2315000.json +8 -0
  67. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2317500.json +8 -0
  68. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2322500.json +8 -0
  69. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2325000.json +8 -0
  70. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2327500.json +8 -0
  71. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2332500.json +8 -0
  72. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2335000.json +8 -0
  73. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2337500.json +8 -0
  74. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2342500.json +8 -0
  75. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2345000.json +8 -0
  76. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2347500.json +8 -0
  77. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2352500.json +8 -0
  78. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2355000.json +8 -0
  79. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2357500.json +8 -0
  80. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2362500.json +8 -0
  81. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2365000.json +8 -0
  82. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2367500.json +8 -0
  83. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2372500.json +8 -0
  84. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2375000.json +8 -0
  85. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2377500.json +8 -0
  86. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2382500.json +8 -0
  87. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2385000.json +8 -0
  88. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2387500.json +8 -0
  89. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2392500.json +8 -0
  90. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2395000.json +8 -0
  91. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2397500.json +8 -0
  92. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2402500.json +8 -0
  93. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2405000.json +8 -0
  94. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2407500.json +8 -0
  95. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2412500.json +8 -0
  96. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2415000.json +8 -0
  97. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2417500.json +8 -0
  98. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2422500.json +8 -0
  99. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2425000.json +8 -0
  100. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2427500.json +8 -0
  101. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2432500.json +8 -0
  102. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2435000.json +8 -0
  103. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2437500.json +8 -0
  104. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2442500.json +8 -0
  105. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2445000.json +8 -0
  106. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2447500.json +8 -0
  107. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2452500.json +8 -0
  108. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2455000.json +8 -0
  109. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2457500.json +8 -0
  110. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2462500.json +8 -0
  111. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2465000.json +8 -0
  112. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2467500.json +8 -0
  113. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2470000.json +8 -0
  114. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2472500.json +8 -0
  115. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2480000.json +8 -0
  116. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2490000.json +8 -0
  117. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2500000.json +8 -0
  118. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2560000.json +8 -0
  119. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2570000.json +8 -0
  120. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2580000.json +8 -0
  121. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2590000.json +8 -0
  122. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2600000.json +8 -0
  123. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2610000.json +8 -0
  124. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2620000.json +8 -0
  125. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2630000.json +8 -0
  126. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2640000.json +8 -0
  127. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2650000.json +8 -0
  128. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2660000.json +8 -0
  129. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2670000.json +8 -0
  130. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2680000.json +8 -0
  131. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2690000.json +8 -0
  132. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2700000.json +8 -0
  133. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2710000.json +8 -0
  134. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2720000.json +8 -0
  135. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2730000.json +8 -0
  136. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2740000.json +8 -0
  137. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2750000.json +8 -0
  138. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2760000.json +8 -0
  139. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2770000.json +8 -0
  140. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2780000.json +8 -0
  141. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2790000.json +8 -0
  142. package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackend.swift +1 -5
  143. package/ios/ZCashLightClientKit/Rust/ZcashRustBackend.swift +327 -153
  144. package/ios/ZCashLightClientKit/Rust/ZcashRustBackendWelding.swift +78 -36
  145. package/ios/ZCashLightClientKit/Rust/zcashlc.h +402 -118
  146. package/ios/ZCashLightClientKit/Synchronizer/ClosureSDKSynchronizer.swift +43 -14
  147. package/ios/ZCashLightClientKit/Synchronizer/CombineSDKSynchronizer.swift +52 -14
  148. package/ios/ZCashLightClientKit/Synchronizer/Dependencies.swift +10 -6
  149. package/ios/ZCashLightClientKit/Synchronizer/SDKSynchronizer.swift +220 -70
  150. package/ios/ZCashLightClientKit/Synchronizer.swift +105 -29
  151. package/ios/ZCashLightClientKit/Transaction/TransactionEncoder.swift +61 -32
  152. package/ios/ZCashLightClientKit/Transaction/WalletTransactionEncoder.swift +52 -61
  153. package/ios/ZCashLightClientKit/Utils/DBActor.swift +21 -0
  154. package/ios/ZCashLightClientKit/Utils/LoggingProxy.swift +5 -0
  155. package/ios/ZCashLightClientKit/Utils/OSLogger.swift +71 -14
  156. package/ios/libzcashlc.xcframework/ios-arm64/libzcashlc.a +0 -0
  157. package/ios/libzcashlc.xcframework/ios-arm64_x86_64-simulator/libzcashlc.a +0 -0
  158. package/lib/rnzcash.rn.js +21 -6
  159. package/lib/rnzcash.rn.js.map +1 -1
  160. package/lib/src/react-native.d.ts +2 -1
  161. package/lib/src/types.d.ts +9 -1
  162. package/package.json +1 -1
  163. package/react-native-zcash.podspec +1 -1
  164. package/src/react-native.ts +23 -4
  165. package/src/types.ts +10 -1
  166. package/ios/ZCashLightClientKit/Model/ScanProgress.swift +0 -29
  167. package/ios/ZCashLightClientKit/Repository/UnspentTransactionOutputRepository.swift +0 -16
  168. /package/ios/ZCashLightClientKit/{Model → Checkpoint}/Checkpoint.swift +0 -0
package/lib/rnzcash.rn.js CHANGED
@@ -158,13 +158,26 @@ var Synchronizer = /*#__PURE__*/function () {
158
158
  return rescan;
159
159
  }();
160
160
 
161
+ _proto.proposeTransfer = /*#__PURE__*/function () {
162
+ var _proposeTransfer = _asyncToGenerator(function* (spendInfo) {
163
+ var result = yield RNZcash.proposeTransfer(this.alias, spendInfo.zatoshi, spendInfo.toAddress, spendInfo.memo);
164
+ return result;
165
+ });
166
+
167
+ function proposeTransfer(_x9) {
168
+ return _proposeTransfer.apply(this, arguments);
169
+ }
170
+
171
+ return proposeTransfer;
172
+ }();
173
+
161
174
  _proto.sendToAddress = /*#__PURE__*/function () {
162
175
  var _sendToAddress = _asyncToGenerator(function* (spendInfo) {
163
176
  var result = yield RNZcash.sendToAddress(this.alias, spendInfo.zatoshi, spendInfo.toAddress, spendInfo.memo, spendInfo.mnemonicSeed);
164
177
  return result;
165
178
  });
166
179
 
167
- function sendToAddress(_x9) {
180
+ function sendToAddress(_x10) {
168
181
  return _sendToAddress.apply(this, arguments);
169
182
  }
170
183
 
@@ -177,7 +190,7 @@ var Synchronizer = /*#__PURE__*/function () {
177
190
  return result;
178
191
  });
179
192
 
180
- function shieldFunds(_x10) {
193
+ function shieldFunds(_x11) {
181
194
  return _shieldFunds.apply(this, arguments);
182
195
  }
183
196
 
@@ -194,9 +207,11 @@ var Synchronizer = /*#__PURE__*/function () {
194
207
  var transparentAvailableZatoshi = event.transparentAvailableZatoshi,
195
208
  transparentTotalZatoshi = event.transparentTotalZatoshi,
196
209
  saplingAvailableZatoshi = event.saplingAvailableZatoshi,
197
- saplingTotalZatoshi = event.saplingTotalZatoshi;
198
- event.availableZatoshi = biggystring.add(transparentAvailableZatoshi, saplingAvailableZatoshi);
199
- event.totalZatoshi = biggystring.add(transparentTotalZatoshi, saplingTotalZatoshi);
210
+ saplingTotalZatoshi = event.saplingTotalZatoshi,
211
+ orchardAvailableZatoshi = event.orchardAvailableZatoshi,
212
+ orchardTotalZatoshi = event.orchardTotalZatoshi;
213
+ event.availableZatoshi = biggystring.add(biggystring.add(transparentAvailableZatoshi, saplingAvailableZatoshi), orchardAvailableZatoshi);
214
+ event.totalZatoshi = biggystring.add(biggystring.add(transparentTotalZatoshi, saplingTotalZatoshi), orchardTotalZatoshi);
200
215
  onBalanceChanged(event);
201
216
  });
202
217
  this.setListener('StatusEvent', onStatusChanged);
@@ -233,7 +248,7 @@ var makeSynchronizer = /*#__PURE__*/function () {
233
248
  return synchronizer;
234
249
  });
235
250
 
236
- return function makeSynchronizer(_x11) {
251
+ return function makeSynchronizer(_x12) {
237
252
  return _ref2.apply(this, arguments);
238
253
  };
239
254
  }();
@@ -1 +1 @@
1
- {"version":3,"file":"rnzcash.rn.js","sources":["../src/react-native.ts"],"sourcesContent":["import { add } from 'biggystring'\nimport {\n EventSubscription,\n NativeEventEmitter,\n NativeModules\n} from 'react-native'\n\nimport {\n Addresses,\n InitializerConfig,\n Network,\n ShieldFundsInfo,\n SpendFailure,\n SpendInfo,\n SpendSuccess,\n SynchronizerCallbacks,\n Transaction,\n UnifiedViewingKey\n} from './types'\nexport * from './types'\n\nconst { RNZcash } = NativeModules\n\ntype Callback = (...args: any[]) => any\n\nexport const Tools = {\n deriveViewingKey: async (\n seedBytesHex: string,\n network: Network\n ): Promise<UnifiedViewingKey> => {\n const result = await RNZcash.deriveViewingKey(seedBytesHex, network)\n return result\n },\n getBirthdayHeight: async (host: string, port: number): Promise<number> => {\n const result = await RNZcash.getBirthdayHeight(host, port)\n return result\n },\n isValidAddress: async (\n address: string,\n network: Network = 'mainnet'\n ): Promise<boolean> => {\n const result = await RNZcash.isValidAddress(address, network)\n return result\n }\n}\n\nexport class Synchronizer {\n eventEmitter: NativeEventEmitter\n subscriptions: EventSubscription[]\n alias: string\n network: Network\n\n constructor(alias: string, network: Network) {\n this.eventEmitter = new NativeEventEmitter(RNZcash)\n this.subscriptions = []\n this.alias = alias\n this.network = network\n }\n\n async stop(): Promise<string> {\n this.unsubscribe()\n const result = await RNZcash.stop(this.alias)\n return result\n }\n\n async initialize(initializerConfig: InitializerConfig): Promise<void> {\n await RNZcash.initialize(\n initializerConfig.mnemonicSeed,\n initializerConfig.birthdayHeight,\n initializerConfig.alias,\n initializerConfig.networkName,\n initializerConfig.defaultHost,\n initializerConfig.defaultPort,\n initializerConfig.newWallet\n )\n }\n\n async deriveUnifiedAddress(): Promise<Addresses> {\n const result = await RNZcash.deriveUnifiedAddress(this.alias)\n return result\n }\n\n async getLatestNetworkHeight(alias: string): Promise<number> {\n const result = await RNZcash.getLatestNetworkHeight(alias)\n return result\n }\n\n async rescan(): Promise<void> {\n await RNZcash.rescan(this.alias)\n }\n\n async sendToAddress(\n spendInfo: SpendInfo\n ): Promise<SpendSuccess | SpendFailure> {\n const result = await RNZcash.sendToAddress(\n this.alias,\n spendInfo.zatoshi,\n spendInfo.toAddress,\n spendInfo.memo,\n spendInfo.mnemonicSeed\n )\n return result\n }\n\n async shieldFunds(shieldFundsInfo: ShieldFundsInfo): Promise<Transaction> {\n const result = await RNZcash.shieldFunds(\n this.alias,\n shieldFundsInfo.seed,\n shieldFundsInfo.memo,\n shieldFundsInfo.threshold\n )\n return result\n }\n\n // Events\n\n subscribe({\n onBalanceChanged,\n onStatusChanged,\n onTransactionsChanged,\n onUpdate\n }: SynchronizerCallbacks): void {\n this.setListener('BalanceEvent', event => {\n const {\n transparentAvailableZatoshi,\n transparentTotalZatoshi,\n saplingAvailableZatoshi,\n saplingTotalZatoshi\n } = event\n\n event.availableZatoshi = add(\n transparentAvailableZatoshi,\n saplingAvailableZatoshi\n )\n event.totalZatoshi = add(transparentTotalZatoshi, saplingTotalZatoshi)\n onBalanceChanged(event)\n })\n this.setListener('StatusEvent', onStatusChanged)\n this.setListener('TransactionEvent', onTransactionsChanged)\n this.setListener('UpdateEvent', onUpdate)\n }\n\n private setListener<T>(\n eventName: string,\n callback: Callback = (t: any) => null\n ): void {\n this.subscriptions.push(\n this.eventEmitter.addListener(eventName, arg =>\n arg.alias === this.alias ? callback(arg) : null\n )\n )\n }\n\n unsubscribe(): void {\n this.subscriptions.forEach(subscription => {\n subscription.remove()\n })\n }\n}\n\nexport const makeSynchronizer = async (\n initializerConfig: InitializerConfig\n): Promise<Synchronizer> => {\n const synchronizer = new Synchronizer(\n initializerConfig.alias,\n initializerConfig.networkName\n )\n await synchronizer.initialize(initializerConfig)\n return synchronizer\n}\n"],"names":["RNZcash","NativeModules","Tools","deriveViewingKey","seedBytesHex","network","result","getBirthdayHeight","host","port","isValidAddress","address","Synchronizer","alias","eventEmitter","NativeEventEmitter","subscriptions","stop","unsubscribe","initialize","initializerConfig","mnemonicSeed","birthdayHeight","networkName","defaultHost","defaultPort","newWallet","deriveUnifiedAddress","getLatestNetworkHeight","rescan","sendToAddress","spendInfo","zatoshi","toAddress","memo","shieldFunds","shieldFundsInfo","seed","threshold","subscribe","onBalanceChanged","onStatusChanged","onTransactionsChanged","onUpdate","setListener","event","transparentAvailableZatoshi","transparentTotalZatoshi","saplingAvailableZatoshi","saplingTotalZatoshi","availableZatoshi","add","totalZatoshi","eventName","callback","t","push","addListener","arg","forEach","subscription","remove","makeSynchronizer","synchronizer"],"mappings":"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"}
1
+ {"version":3,"file":"rnzcash.rn.js","sources":["../src/react-native.ts"],"sourcesContent":["import { add } from 'biggystring'\nimport {\n EventSubscription,\n NativeEventEmitter,\n NativeModules\n} from 'react-native'\n\nimport {\n Addresses,\n InitializerConfig,\n Network,\n ProposalSuccess,\n ShieldFundsInfo,\n SpendFailure,\n SpendInfo,\n SpendSuccess,\n SynchronizerCallbacks,\n Transaction,\n TransferSpendInfo,\n UnifiedViewingKey\n} from './types'\nexport * from './types'\n\nconst { RNZcash } = NativeModules\n\ntype Callback = (...args: any[]) => any\n\nexport const Tools = {\n deriveViewingKey: async (\n seedBytesHex: string,\n network: Network\n ): Promise<UnifiedViewingKey> => {\n const result = await RNZcash.deriveViewingKey(seedBytesHex, network)\n return result\n },\n getBirthdayHeight: async (host: string, port: number): Promise<number> => {\n const result = await RNZcash.getBirthdayHeight(host, port)\n return result\n },\n isValidAddress: async (\n address: string,\n network: Network = 'mainnet'\n ): Promise<boolean> => {\n const result = await RNZcash.isValidAddress(address, network)\n return result\n }\n}\n\nexport class Synchronizer {\n eventEmitter: NativeEventEmitter\n subscriptions: EventSubscription[]\n alias: string\n network: Network\n\n constructor(alias: string, network: Network) {\n this.eventEmitter = new NativeEventEmitter(RNZcash)\n this.subscriptions = []\n this.alias = alias\n this.network = network\n }\n\n async stop(): Promise<string> {\n this.unsubscribe()\n const result = await RNZcash.stop(this.alias)\n return result\n }\n\n async initialize(initializerConfig: InitializerConfig): Promise<void> {\n await RNZcash.initialize(\n initializerConfig.mnemonicSeed,\n initializerConfig.birthdayHeight,\n initializerConfig.alias,\n initializerConfig.networkName,\n initializerConfig.defaultHost,\n initializerConfig.defaultPort,\n initializerConfig.newWallet\n )\n }\n\n async deriveUnifiedAddress(): Promise<Addresses> {\n const result = await RNZcash.deriveUnifiedAddress(this.alias)\n return result\n }\n\n async getLatestNetworkHeight(alias: string): Promise<number> {\n const result = await RNZcash.getLatestNetworkHeight(alias)\n return result\n }\n\n async rescan(): Promise<void> {\n await RNZcash.rescan(this.alias)\n }\n\n async proposeTransfer(\n spendInfo: TransferSpendInfo\n ): Promise<ProposalSuccess> {\n const result = await RNZcash.proposeTransfer(\n this.alias,\n spendInfo.zatoshi,\n spendInfo.toAddress,\n spendInfo.memo\n )\n return result\n }\n\n async sendToAddress(\n spendInfo: SpendInfo\n ): Promise<SpendSuccess | SpendFailure> {\n const result = await RNZcash.sendToAddress(\n this.alias,\n spendInfo.zatoshi,\n spendInfo.toAddress,\n spendInfo.memo,\n spendInfo.mnemonicSeed\n )\n return result\n }\n\n async shieldFunds(shieldFundsInfo: ShieldFundsInfo): Promise<Transaction> {\n const result = await RNZcash.shieldFunds(\n this.alias,\n shieldFundsInfo.seed,\n shieldFundsInfo.memo,\n shieldFundsInfo.threshold\n )\n return result\n }\n\n // Events\n\n subscribe({\n onBalanceChanged,\n onStatusChanged,\n onTransactionsChanged,\n onUpdate\n }: SynchronizerCallbacks): void {\n this.setListener('BalanceEvent', event => {\n const {\n transparentAvailableZatoshi,\n transparentTotalZatoshi,\n saplingAvailableZatoshi,\n saplingTotalZatoshi,\n orchardAvailableZatoshi,\n orchardTotalZatoshi\n } = event\n\n event.availableZatoshi = add(\n add(transparentAvailableZatoshi, saplingAvailableZatoshi),\n orchardAvailableZatoshi\n )\n event.totalZatoshi = add(\n add(transparentTotalZatoshi, saplingTotalZatoshi),\n orchardTotalZatoshi\n )\n onBalanceChanged(event)\n })\n this.setListener('StatusEvent', onStatusChanged)\n this.setListener('TransactionEvent', onTransactionsChanged)\n this.setListener('UpdateEvent', onUpdate)\n }\n\n private setListener<T>(\n eventName: string,\n callback: Callback = (t: any) => null\n ): void {\n this.subscriptions.push(\n this.eventEmitter.addListener(eventName, arg =>\n arg.alias === this.alias ? callback(arg) : null\n )\n )\n }\n\n unsubscribe(): void {\n this.subscriptions.forEach(subscription => {\n subscription.remove()\n })\n }\n}\n\nexport const makeSynchronizer = async (\n initializerConfig: InitializerConfig\n): Promise<Synchronizer> => {\n const synchronizer = new Synchronizer(\n initializerConfig.alias,\n initializerConfig.networkName\n )\n await synchronizer.initialize(initializerConfig)\n return synchronizer\n}\n"],"names":["RNZcash","NativeModules","Tools","deriveViewingKey","seedBytesHex","network","result","getBirthdayHeight","host","port","isValidAddress","address","Synchronizer","alias","eventEmitter","NativeEventEmitter","subscriptions","stop","unsubscribe","initialize","initializerConfig","mnemonicSeed","birthdayHeight","networkName","defaultHost","defaultPort","newWallet","deriveUnifiedAddress","getLatestNetworkHeight","rescan","proposeTransfer","spendInfo","zatoshi","toAddress","memo","sendToAddress","shieldFunds","shieldFundsInfo","seed","threshold","subscribe","onBalanceChanged","onStatusChanged","onTransactionsChanged","onUpdate","setListener","event","transparentAvailableZatoshi","transparentTotalZatoshi","saplingAvailableZatoshi","saplingTotalZatoshi","orchardAvailableZatoshi","orchardTotalZatoshi","availableZatoshi","add","totalZatoshi","eventName","callback","t","push","addListener","arg","forEach","subscription","remove","makeSynchronizer","synchronizer"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EventSubscription, NativeEventEmitter } from 'react-native';
2
- import { Addresses, InitializerConfig, Network, ShieldFundsInfo, SpendFailure, SpendInfo, SpendSuccess, SynchronizerCallbacks, Transaction, UnifiedViewingKey } from './types';
2
+ import { Addresses, InitializerConfig, Network, ProposalSuccess, ShieldFundsInfo, SpendFailure, SpendInfo, SpendSuccess, SynchronizerCallbacks, Transaction, TransferSpendInfo, UnifiedViewingKey } from './types';
3
3
  export * from './types';
4
4
  export declare const Tools: {
5
5
  deriveViewingKey: (seedBytesHex: string, network: Network) => Promise<UnifiedViewingKey>;
@@ -17,6 +17,7 @@ export declare class Synchronizer {
17
17
  deriveUnifiedAddress(): Promise<Addresses>;
18
18
  getLatestNetworkHeight(alias: string): Promise<number>;
19
19
  rescan(): Promise<void>;
20
+ proposeTransfer(spendInfo: TransferSpendInfo): Promise<ProposalSuccess>;
20
21
  sendToAddress(spendInfo: SpendInfo): Promise<SpendSuccess | SpendFailure>;
21
22
  shieldFunds(shieldFundsInfo: ShieldFundsInfo): Promise<Transaction>;
22
23
  subscribe({ onBalanceChanged, onStatusChanged, onTransactionsChanged, onUpdate }: SynchronizerCallbacks): void;
@@ -8,10 +8,12 @@ export interface InitializerConfig {
8
8
  birthdayHeight: number;
9
9
  newWallet: boolean;
10
10
  }
11
- export interface SpendInfo {
11
+ export interface TransferSpendInfo {
12
12
  zatoshi: string;
13
13
  toAddress: string;
14
14
  memo?: string;
15
+ }
16
+ export interface SpendInfo extends TransferSpendInfo {
15
17
  mnemonicSeed: string;
16
18
  }
17
19
  export interface ShieldFundsInfo {
@@ -19,6 +21,10 @@ export interface ShieldFundsInfo {
19
21
  memo: string;
20
22
  threshold: string;
21
23
  }
24
+ export interface ProposalSuccess {
25
+ transactionCount: number;
26
+ totalFee: string;
27
+ }
22
28
  export interface SpendSuccess {
23
29
  txId: string;
24
30
  raw: string;
@@ -36,6 +42,8 @@ export interface BalanceEvent {
36
42
  transparentTotalZatoshi: string;
37
43
  saplingAvailableZatoshi: string;
38
44
  saplingTotalZatoshi: string;
45
+ orchardAvailableZatoshi: string;
46
+ orchardTotalZatoshi: string;
39
47
  /** @deprecated */
40
48
  availableZatoshi: string;
41
49
  totalZatoshi: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-zcash",
3
- "version": "0.6.14",
3
+ "version": "0.7.1",
4
4
  "description": "Zcash library for React Native",
5
5
  "homepage": "https://github.com/EdgeApp/react-native-zcash",
6
6
  "repository": {
@@ -28,6 +28,6 @@ Pod::Spec.new do |s|
28
28
 
29
29
  s.dependency "MnemonicSwift", "~> 2.2"
30
30
  s.dependency "gRPC-Swift", "~> 1.8"
31
- s.dependency "SQLite.swift", "~> 0.12"
31
+ s.dependency "SQLite.swift/standalone", "~> 0.14"
32
32
  s.dependency "React-Core"
33
33
  end
@@ -9,12 +9,14 @@ import {
9
9
  Addresses,
10
10
  InitializerConfig,
11
11
  Network,
12
+ ProposalSuccess,
12
13
  ShieldFundsInfo,
13
14
  SpendFailure,
14
15
  SpendInfo,
15
16
  SpendSuccess,
16
17
  SynchronizerCallbacks,
17
18
  Transaction,
19
+ TransferSpendInfo,
18
20
  UnifiedViewingKey
19
21
  } from './types'
20
22
  export * from './types'
@@ -89,6 +91,18 @@ export class Synchronizer {
89
91
  await RNZcash.rescan(this.alias)
90
92
  }
91
93
 
94
+ async proposeTransfer(
95
+ spendInfo: TransferSpendInfo
96
+ ): Promise<ProposalSuccess> {
97
+ const result = await RNZcash.proposeTransfer(
98
+ this.alias,
99
+ spendInfo.zatoshi,
100
+ spendInfo.toAddress,
101
+ spendInfo.memo
102
+ )
103
+ return result
104
+ }
105
+
92
106
  async sendToAddress(
93
107
  spendInfo: SpendInfo
94
108
  ): Promise<SpendSuccess | SpendFailure> {
@@ -125,14 +139,19 @@ export class Synchronizer {
125
139
  transparentAvailableZatoshi,
126
140
  transparentTotalZatoshi,
127
141
  saplingAvailableZatoshi,
128
- saplingTotalZatoshi
142
+ saplingTotalZatoshi,
143
+ orchardAvailableZatoshi,
144
+ orchardTotalZatoshi
129
145
  } = event
130
146
 
131
147
  event.availableZatoshi = add(
132
- transparentAvailableZatoshi,
133
- saplingAvailableZatoshi
148
+ add(transparentAvailableZatoshi, saplingAvailableZatoshi),
149
+ orchardAvailableZatoshi
150
+ )
151
+ event.totalZatoshi = add(
152
+ add(transparentTotalZatoshi, saplingTotalZatoshi),
153
+ orchardTotalZatoshi
134
154
  )
135
- event.totalZatoshi = add(transparentTotalZatoshi, saplingTotalZatoshi)
136
155
  onBalanceChanged(event)
137
156
  })
138
157
  this.setListener('StatusEvent', onStatusChanged)
package/src/types.ts CHANGED
@@ -10,10 +10,12 @@ export interface InitializerConfig {
10
10
  newWallet: boolean
11
11
  }
12
12
 
13
- export interface SpendInfo {
13
+ export interface TransferSpendInfo {
14
14
  zatoshi: string
15
15
  toAddress: string
16
16
  memo?: string
17
+ }
18
+ export interface SpendInfo extends TransferSpendInfo {
17
19
  mnemonicSeed: string
18
20
  }
19
21
 
@@ -23,6 +25,11 @@ export interface ShieldFundsInfo {
23
25
  threshold: string
24
26
  }
25
27
 
28
+ export interface ProposalSuccess {
29
+ transactionCount: number
30
+ totalFee: string
31
+ }
32
+
26
33
  export interface SpendSuccess {
27
34
  txId: string
28
35
  raw: string
@@ -43,6 +50,8 @@ export interface BalanceEvent {
43
50
  transparentTotalZatoshi: string
44
51
  saplingAvailableZatoshi: string
45
52
  saplingTotalZatoshi: string
53
+ orchardAvailableZatoshi: string
54
+ orchardTotalZatoshi: string
46
55
 
47
56
  /** @deprecated */
48
57
  availableZatoshi: string
@@ -1,29 +0,0 @@
1
- //
2
- // ScanProgress.swift
3
- //
4
- //
5
- // Created by Jack Grigg on 06/09/2023.
6
- //
7
-
8
- import Foundation
9
-
10
- struct ScanProgress: Equatable {
11
- let numerator: UInt64
12
- let denominator: UInt64
13
-
14
- func progress() throws -> Float {
15
- guard denominator != 0 else {
16
- // this shouldn't happen but if it does, we need to get notified by clients and work on a fix
17
- throw ZcashError.rustScanProgressOutOfRange("\(numerator)/\(denominator)")
18
- }
19
-
20
- let value = Float(numerator) / Float(denominator)
21
-
22
- // this shouldn't happen but if it does, we need to get notified by clients and work on a fix
23
- if value > 1.0 {
24
- throw ZcashError.rustScanProgressOutOfRange("\(value)")
25
- }
26
-
27
- return value
28
- }
29
- }
@@ -1,16 +0,0 @@
1
- //
2
- // UnspentTransactionOutputRepository.swift
3
- // ZcashLightClientKit
4
- //
5
- // Created by Francisco Gindre on 12/11/20.
6
- //
7
-
8
- import Foundation
9
-
10
- protocol UnspentTransactionOutputRepository {
11
- func initialise() async throws
12
- func getAll(address: String?) async throws -> [UnspentTransactionOutputEntity]
13
- func balance(address: String, latestHeight: BlockHeight) async throws -> WalletBalance
14
- func store(utxos: [UnspentTransactionOutputEntity]) async throws
15
- func clearAll(address: String?) async throws
16
- }