react-native-zcash 0.7.7 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.8.0 (2024-09-05)
6
+
7
+ - added: Add error listeners
8
+ - changed: Updated checkpoints
9
+
5
10
  ## 0.7.7 (2024-08-19)
6
11
 
7
12
  - changed: Updated checkpoints
@@ -0,0 +1,8 @@
1
+ {
2
+ "network": "main",
3
+ "height": "2620000",
4
+ "hash": "000000000090f3ee85cf2a29fb5d6e5cc6fb509f79a6cff0b6c44c235f4ddba6",
5
+ "time": 1724341443,
6
+ "saplingTree": "0155c1bb2c0008f2d4ed479ca2c79af8b43a51a8d2d3420fccbfb44c2c66cf3a0d01725ed2720f8ddce8534cd5549cedf894d07feea8343aa62f00918797c1db05521f00000001e731cfc3c78a5ce9e21f2b5a9553bbc038dc4f38e6fef523951fef33ba9d6e6900000143c2d3a8743f4535b9d990b60a1c5b494fffe54166939f905a6b710c1bb06a1900000162e301b349b6d7fb581d7c4917717065cf2092a9fa325926c82d1b7682e7710c01b21a0f5e06c1c07e8c14e4ea0b5de1aaa95dc45eef2d048003be6c66e026441a010d3156dcb9605aefb88ad75fd97a78797e7e83c6f7d2cd0f8f2699293e0952520107ce458cf2cc5c0351bc0ecb8e4ce1ab7edc9b9b528dbbbe0a70b9057e4cdf5601889e7a0849bac67b05fe418b808099194a54632db5d8de4dab43ff55c3b22a0a01f762af15779fb5c9593af1a8a9a2c777b9377dcb3117e5c55b4365f1061ea86c012415b957855163102c9f373eec835c3b3aa11f0ac872533a867d3e2eb562d30200000000013e2598f743726006b8de42476ed56a55a75629a7b82e430c4e7c101a69e9b02a011619f99023a69bb647eab2d2aa1a73c3673c74bb033c3c4930eacda19e6fd93b0000000160272b134ca494b602137d89e528c751c06d3ef4a87a45f33af343c15060cc1e0000000000",
7
+ "orchardTree": "019eef8d7f26921e7c276b2f6c52f96a9a2c837b2b07b73800cd21257fe69ed72701532f76468abf55c89ba7756cd5cc4b4ca089f42d413091368be1047bacfa60271f017f9bee27f8fdb95e0f1e4c0207789b9b034795f982a994d9972c7c633846bf1600000001249c40dd4c4b03b7be7414d2eaf426411a3668ad830ad721b1ee8da660b5ab060000016fb505682c8da0f68640af24fc156827969c6aa8108d1cc649f447183d41a02501bf9cdc7c4b45107d1e9d7fc5ffa1226d091a654a02c20b0bc86d96ec1ac0eb3e00000185edfe70c36f5d1c3216c4750bbd8f11fe1ab96802f9eaf273f2e85ea0709c1d0001f427516d6600178ef99cc049193c413103980c407ea3489a687b3c3479d2300c00000112278dfeae9949f887b70ae81e084f8897a5054627acef3efd01c8b29793d522000160040850b766b126a2b4843fcdfdffa5d5cab3f53bc860a3bef68958b5f066170001cc2dcaa338b312112db04b435a706d63244dd435238f0aa1e9e1598d35470810012dcc4273c8a0ed2337ecf7879380a07e7d427c7f9d82e538002bd1442978402c01daf63debf5b40df902dae98dadc029f281474d190cddecef1b10653248a234150001e2bca6a8d987d668defba89dc082196a922634ed88e065c669e526bb8815ee1b000000000000"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "network": "main",
3
+ "height": "2630000",
4
+ "hash": "0000000000a895df571dfd40a79e8f565afa1866b06df8de945612ddc2208ac5",
5
+ "time": 1725095685,
6
+ "saplingTree": "01ebdeb4660783a87222b9a8a33e83d9d56f0a6aa99f3ab2e941bb6b8eaca4874e01e9debf006d3773e46e01a563e47f23fce83cbeddcbc1246357bb055b232fee4c1f00013c16c47049af25b1594cfd6af24e171aae29b2dbe6cc452c73c48684cfd7a531017ef29f42c194e56dac501f174ef50e6dbb8ad91fc6c171e44087489d818a6363000001082ae7978338d87b54eeb721505421e7db499387cd7b09168bcc6a039c408f2b000148a78a5aab5faa815223b8080979d01e7967175d50e5fef6011ba15122b8b6040000000199100b85242c92aaeab280566441c4407cb5783757ea93c0a1b8266fe2525b5e00010fdff8660d84e9dbb3979b612a8c64535da6d9c5820ed495c395857252d3863b000001b254e3cfba937bcd40621e1d623a943440b083892546f081aab37058fd1b763f000000013e2598f743726006b8de42476ed56a55a75629a7b82e430c4e7c101a69e9b02a011619f99023a69bb647eab2d2aa1a73c3673c74bb033c3c4930eacda19e6fd93b0000000160272b134ca494b602137d89e528c751c06d3ef4a87a45f33af343c15060cc1e0000000000",
7
+ "orchardTree": "010ec9ed61bb20a9019f527a0fde76af802f91d93073bbc1a9d49f1a3cf0c8c708001f01046e770e337820010092000327f4f3069780f02f1c02748357bbc80f9e457b26016c65e02f1df7f54a97b482d96a2107083bd928fa8134ddd89c33dd58c985400a000001916fb87613d68da24723a6efc5a8c58972d276988da3663856d29d11d8800a09000125728df0802110f9458966392a1b6fdb1a5c8f062a2cbc51aa978649b8462224000130ed9968c67d2b11cdd6864582eed4001e96f94e67b9fad73f022732d106283501e8b3066a9d744eb2836f58a4c49966828705364648c16c8fc0ba2d268f1f71230112852a88a1d88b30c5a3bd2f532500e25379fc536934f2bbe26a2fcdea5dff250185edfe70c36f5d1c3216c4750bbd8f11fe1ab96802f9eaf273f2e85ea0709c1d0001f427516d6600178ef99cc049193c413103980c407ea3489a687b3c3479d2300c00000112278dfeae9949f887b70ae81e084f8897a5054627acef3efd01c8b29793d522000160040850b766b126a2b4843fcdfdffa5d5cab3f53bc860a3bef68958b5f066170001cc2dcaa338b312112db04b435a706d63244dd435238f0aa1e9e1598d35470810012dcc4273c8a0ed2337ecf7879380a07e7d427c7f9d82e538002bd1442978402c01daf63debf5b40df902dae98dadc029f281474d190cddecef1b10653248a234150001e2bca6a8d987d668defba89dc082196a922634ed88e065c669e526bb8815ee1b000000000000"
8
+ }
@@ -140,6 +140,39 @@ class RNZcashModule(private val reactContext: ReactApplicationContext) :
140
140
  args.putString("orchardTotalZatoshi", orchardTotalZatoshi.value.toString())
141
141
  }
142
142
  }
143
+
144
+ fun handleError(
145
+ level: String,
146
+ error: Throwable?,
147
+ ) {
148
+ sendEvent("ErrorEvent") { args ->
149
+ args.putString("alias", alias)
150
+ args.putString("level", level)
151
+ args.putString("message", error?.message ?: "Unknown error")
152
+ }
153
+ }
154
+
155
+ // Error listeners
156
+ wallet.onCriticalErrorHandler = { error ->
157
+ handleError("critical", error)
158
+ false
159
+ }
160
+ wallet.onProcessorErrorHandler = { error ->
161
+ handleError("error", error)
162
+ true
163
+ }
164
+ wallet.onSetupErrorHandler = { error ->
165
+ handleError("error", error)
166
+ false
167
+ }
168
+ wallet.onSubmissionErrorHandler = { error ->
169
+ handleError("error", error)
170
+ false
171
+ }
172
+ wallet.onChainErrorHandler = { errorHeight, rewindHeight ->
173
+ val message = "Chain error detected at height: $errorHeight. Rewinding to: $rewindHeight"
174
+ handleError("error", Throwable(message))
175
+ }
143
176
  return@wrap null
144
177
  }
145
178
  }
package/ios/RNZcash.swift CHANGED
@@ -441,21 +441,21 @@ class RNZcash: RCTEventEmitter {
441
441
 
442
442
  // Events
443
443
  public func sendToJs(name: String, data: Any) {
444
- if (hasListeners) {
444
+ if hasListeners {
445
445
  self.sendEvent(withName: name, body: data)
446
446
  }
447
447
  }
448
448
 
449
- override func startObserving() -> Void {
449
+ override func startObserving() {
450
450
  hasListeners = true
451
451
  }
452
452
 
453
- override func stopObserving() -> Void {
453
+ override func stopObserving() {
454
454
  hasListeners = false
455
455
  }
456
456
 
457
457
  override func supportedEvents() -> [String] {
458
- return ["BalanceEvent", "StatusEvent", "TransactionEvent", "UpdateEvent"]
458
+ return ["BalanceEvent", "ErrorEvent", "StatusEvent", "TransactionEvent", "UpdateEvent"]
459
459
  }
460
460
  }
461
461
 
@@ -527,6 +527,20 @@ class WalletSynchronizer: NSObject {
527
527
  status = "SYNCED"
528
528
 
529
529
  self.fullySynced = true
530
+ case .error(let error):
531
+ let zcashError = error.toZcashError()
532
+ switch zcashError.code {
533
+ case .compactBlockProcessorCritical:
534
+ let data: NSDictionary = [
535
+ "alias": self.alias, "level": "critical", "message": zcashError.message,
536
+ ]
537
+ emit("ErrorEvent", data)
538
+ default:
539
+ let data: NSDictionary = [
540
+ "alias": self.alias, "level": "error", "message": zcashError.message,
541
+ ]
542
+ emit("ErrorEvent", data)
543
+ }
530
544
  default:
531
545
  break
532
546
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "network": "main",
3
+ "height": "2620000",
4
+ "hash": "000000000090f3ee85cf2a29fb5d6e5cc6fb509f79a6cff0b6c44c235f4ddba6",
5
+ "time": 1724341443,
6
+ "saplingTree": "0155c1bb2c0008f2d4ed479ca2c79af8b43a51a8d2d3420fccbfb44c2c66cf3a0d01725ed2720f8ddce8534cd5549cedf894d07feea8343aa62f00918797c1db05521f00000001e731cfc3c78a5ce9e21f2b5a9553bbc038dc4f38e6fef523951fef33ba9d6e6900000143c2d3a8743f4535b9d990b60a1c5b494fffe54166939f905a6b710c1bb06a1900000162e301b349b6d7fb581d7c4917717065cf2092a9fa325926c82d1b7682e7710c01b21a0f5e06c1c07e8c14e4ea0b5de1aaa95dc45eef2d048003be6c66e026441a010d3156dcb9605aefb88ad75fd97a78797e7e83c6f7d2cd0f8f2699293e0952520107ce458cf2cc5c0351bc0ecb8e4ce1ab7edc9b9b528dbbbe0a70b9057e4cdf5601889e7a0849bac67b05fe418b808099194a54632db5d8de4dab43ff55c3b22a0a01f762af15779fb5c9593af1a8a9a2c777b9377dcb3117e5c55b4365f1061ea86c012415b957855163102c9f373eec835c3b3aa11f0ac872533a867d3e2eb562d30200000000013e2598f743726006b8de42476ed56a55a75629a7b82e430c4e7c101a69e9b02a011619f99023a69bb647eab2d2aa1a73c3673c74bb033c3c4930eacda19e6fd93b0000000160272b134ca494b602137d89e528c751c06d3ef4a87a45f33af343c15060cc1e0000000000",
7
+ "orchardTree": "019eef8d7f26921e7c276b2f6c52f96a9a2c837b2b07b73800cd21257fe69ed72701532f76468abf55c89ba7756cd5cc4b4ca089f42d413091368be1047bacfa60271f017f9bee27f8fdb95e0f1e4c0207789b9b034795f982a994d9972c7c633846bf1600000001249c40dd4c4b03b7be7414d2eaf426411a3668ad830ad721b1ee8da660b5ab060000016fb505682c8da0f68640af24fc156827969c6aa8108d1cc649f447183d41a02501bf9cdc7c4b45107d1e9d7fc5ffa1226d091a654a02c20b0bc86d96ec1ac0eb3e00000185edfe70c36f5d1c3216c4750bbd8f11fe1ab96802f9eaf273f2e85ea0709c1d0001f427516d6600178ef99cc049193c413103980c407ea3489a687b3c3479d2300c00000112278dfeae9949f887b70ae81e084f8897a5054627acef3efd01c8b29793d522000160040850b766b126a2b4843fcdfdffa5d5cab3f53bc860a3bef68958b5f066170001cc2dcaa338b312112db04b435a706d63244dd435238f0aa1e9e1598d35470810012dcc4273c8a0ed2337ecf7879380a07e7d427c7f9d82e538002bd1442978402c01daf63debf5b40df902dae98dadc029f281474d190cddecef1b10653248a234150001e2bca6a8d987d668defba89dc082196a922634ed88e065c669e526bb8815ee1b000000000000"
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "network": "main",
3
+ "height": "2630000",
4
+ "hash": "0000000000a895df571dfd40a79e8f565afa1866b06df8de945612ddc2208ac5",
5
+ "time": 1725095685,
6
+ "saplingTree": "01ebdeb4660783a87222b9a8a33e83d9d56f0a6aa99f3ab2e941bb6b8eaca4874e01e9debf006d3773e46e01a563e47f23fce83cbeddcbc1246357bb055b232fee4c1f00013c16c47049af25b1594cfd6af24e171aae29b2dbe6cc452c73c48684cfd7a531017ef29f42c194e56dac501f174ef50e6dbb8ad91fc6c171e44087489d818a6363000001082ae7978338d87b54eeb721505421e7db499387cd7b09168bcc6a039c408f2b000148a78a5aab5faa815223b8080979d01e7967175d50e5fef6011ba15122b8b6040000000199100b85242c92aaeab280566441c4407cb5783757ea93c0a1b8266fe2525b5e00010fdff8660d84e9dbb3979b612a8c64535da6d9c5820ed495c395857252d3863b000001b254e3cfba937bcd40621e1d623a943440b083892546f081aab37058fd1b763f000000013e2598f743726006b8de42476ed56a55a75629a7b82e430c4e7c101a69e9b02a011619f99023a69bb647eab2d2aa1a73c3673c74bb033c3c4930eacda19e6fd93b0000000160272b134ca494b602137d89e528c751c06d3ef4a87a45f33af343c15060cc1e0000000000",
7
+ "orchardTree": "010ec9ed61bb20a9019f527a0fde76af802f91d93073bbc1a9d49f1a3cf0c8c708001f01046e770e337820010092000327f4f3069780f02f1c02748357bbc80f9e457b26016c65e02f1df7f54a97b482d96a2107083bd928fa8134ddd89c33dd58c985400a000001916fb87613d68da24723a6efc5a8c58972d276988da3663856d29d11d8800a09000125728df0802110f9458966392a1b6fdb1a5c8f062a2cbc51aa978649b8462224000130ed9968c67d2b11cdd6864582eed4001e96f94e67b9fad73f022732d106283501e8b3066a9d744eb2836f58a4c49966828705364648c16c8fc0ba2d268f1f71230112852a88a1d88b30c5a3bd2f532500e25379fc536934f2bbe26a2fcdea5dff250185edfe70c36f5d1c3216c4750bbd8f11fe1ab96802f9eaf273f2e85ea0709c1d0001f427516d6600178ef99cc049193c413103980c407ea3489a687b3c3479d2300c00000112278dfeae9949f887b70ae81e084f8897a5054627acef3efd01c8b29793d522000160040850b766b126a2b4843fcdfdffa5d5cab3f53bc860a3bef68958b5f066170001cc2dcaa338b312112db04b435a706d63244dd435238f0aa1e9e1598d35470810012dcc4273c8a0ed2337ecf7879380a07e7d427c7f9d82e538002bd1442978402c01daf63debf5b40df902dae98dadc029f281474d190cddecef1b10653248a234150001e2bca6a8d987d668defba89dc082196a922634ed88e065c669e526bb8815ee1b000000000000"
8
+ }
@@ -8,32 +8,32 @@
8
8
  <key>BinaryPath</key>
9
9
  <string>libzcashlc.a</string>
10
10
  <key>LibraryIdentifier</key>
11
- <string>ios-arm64</string>
11
+ <string>ios-arm64_x86_64-simulator</string>
12
12
  <key>LibraryPath</key>
13
13
  <string>libzcashlc.a</string>
14
14
  <key>SupportedArchitectures</key>
15
15
  <array>
16
16
  <string>arm64</string>
17
+ <string>x86_64</string>
17
18
  </array>
18
19
  <key>SupportedPlatform</key>
19
20
  <string>ios</string>
21
+ <key>SupportedPlatformVariant</key>
22
+ <string>simulator</string>
20
23
  </dict>
21
24
  <dict>
22
25
  <key>BinaryPath</key>
23
26
  <string>libzcashlc.a</string>
24
27
  <key>LibraryIdentifier</key>
25
- <string>ios-arm64_x86_64-simulator</string>
28
+ <string>ios-arm64</string>
26
29
  <key>LibraryPath</key>
27
30
  <string>libzcashlc.a</string>
28
31
  <key>SupportedArchitectures</key>
29
32
  <array>
30
33
  <string>arm64</string>
31
- <string>x86_64</string>
32
34
  </array>
33
35
  <key>SupportedPlatform</key>
34
36
  <string>ios</string>
35
- <key>SupportedPlatformVariant</key>
36
- <string>simulator</string>
37
37
  </dict>
38
38
  </array>
39
39
  <key>CFBundlePackageType</key>
package/lib/rnzcash.rn.js CHANGED
@@ -202,7 +202,8 @@ var Synchronizer = /*#__PURE__*/function () {
202
202
  var onBalanceChanged = _ref.onBalanceChanged,
203
203
  onStatusChanged = _ref.onStatusChanged,
204
204
  onTransactionsChanged = _ref.onTransactionsChanged,
205
- onUpdate = _ref.onUpdate;
205
+ onUpdate = _ref.onUpdate,
206
+ onError = _ref.onError;
206
207
  this.setListener('BalanceEvent', function (event) {
207
208
  var transparentAvailableZatoshi = event.transparentAvailableZatoshi,
208
209
  transparentTotalZatoshi = event.transparentTotalZatoshi,
@@ -217,6 +218,7 @@ var Synchronizer = /*#__PURE__*/function () {
217
218
  this.setListener('StatusEvent', onStatusChanged);
218
219
  this.setListener('TransactionEvent', onTransactionsChanged);
219
220
  this.setListener('UpdateEvent', onUpdate);
221
+ this.setListener('ErrorEvent', onError);
220
222
  };
221
223
 
222
224
  _proto.setListener = function setListener(eventName, callback) {
@@ -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 ProposalSuccess,\n ShieldFundsInfo,\n SpendFailure,\n SpendInfo,\n SpendSuccess,\n SynchronizerCallbacks,\n Transaction,\n TransferSpendInfo\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<string> => {\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBQA,UAAYC,0BAAZD;IAIKE,KAAK,GAAG;AACnBC,EAAAA,gBAAgB;AAAA,8CAAE,WAChBC,YADgB,EAEhBC,OAFgB,EAGI;AACpB,UAAMC,MAAM,SAASN,OAAO,CAACG,gBAAR,CAAyBC,YAAzB,EAAuCC,OAAvC,CAArB;AACA,aAAOC,MAAP;AACD,KANe;;AAAA;AAAA;AAAA;;AAAA;AAAA,KADG;AAQnBC,EAAAA,iBAAiB;AAAA,+CAAE,WAAOC,IAAP,EAAqBC,IAArB,EAAuD;AACxE,UAAMH,MAAM,SAASN,OAAO,CAACO,iBAAR,CAA0BC,IAA1B,EAAgCC,IAAhC,CAArB;AACA,aAAOH,MAAP;AACD,KAHgB;;AAAA;AAAA;AAAA;;AAAA;AAAA,KARE;AAYnBI,EAAAA,cAAc;AAAA,4CAAE,WACdC,OADc,EAEdN,OAFc,EAGO;AAAA,UADrBA,OACqB;AADrBA,QAAAA,OACqB,GADF,SACE;AAAA;;AACrB,UAAMC,MAAM,SAASN,OAAO,CAACU,cAAR,CAAuBC,OAAvB,EAAgCN,OAAhC,CAArB;AACA,aAAOC,MAAP;AACD,KANa;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAZK;IAqBRM,YAAb;AAME,wBAAYC,KAAZ,EAA2BR,OAA3B,EAA6C;AAC3C,SAAKS,YAAL,GAAoB,IAAIC,8BAAJ,CAAuBf,OAAvB,CAApB;AACA,SAAKgB,aAAL,GAAqB,EAArB;AACA,SAAKH,KAAL,GAAaA,KAAb;AACA,SAAKR,OAAL,GAAeA,OAAf;AACD;;AAXH;;AAAA,SAaQY,IAbR;AAAA,kCAaE,aAA8B;AAC5B,WAAKC,WAAL;AACA,UAAMZ,MAAM,SAASN,OAAO,CAACiB,IAAR,CAAa,KAAKJ,KAAlB,CAArB;AACA,aAAOP,MAAP;AACD,KAjBH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SAmBQa,UAnBR;AAAA,wCAmBE,WAAiBC,iBAAjB,EAAsE;AACpE,YAAMpB,OAAO,CAACmB,UAAR,CACJC,iBAAiB,CAACC,YADd,EAEJD,iBAAiB,CAACE,cAFd,EAGJF,iBAAiB,CAACP,KAHd,EAIJO,iBAAiB,CAACG,WAJd,EAKJH,iBAAiB,CAACI,WALd,EAMJJ,iBAAiB,CAACK,WANd,EAOJL,iBAAiB,CAACM,SAPd,CAAN;AASD,KA7BH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SA+BQC,oBA/BR;AAAA,kDA+BE,aAAiD;AAC/C,UAAMrB,MAAM,SAASN,OAAO,CAAC2B,oBAAR,CAA6B,KAAKd,KAAlC,CAArB;AACA,aAAOP,MAAP;AACD,KAlCH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SAoCQsB,sBApCR;AAAA,oDAoCE,WAA6Bf,KAA7B,EAA6D;AAC3D,UAAMP,MAAM,SAASN,OAAO,CAAC4B,sBAAR,CAA+Bf,KAA/B,CAArB;AACA,aAAOP,MAAP;AACD,KAvCH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SAyCQuB,MAzCR;AAAA,oCAyCE,aAA8B;AAC5B,YAAM7B,OAAO,CAAC6B,MAAR,CAAe,KAAKhB,KAApB,CAAN;AACD,KA3CH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SA6CQiB,eA7CR;AAAA,6CA6CE,WACEC,SADF,EAE4B;AAC1B,UAAMzB,MAAM,SAASN,OAAO,CAAC8B,eAAR,CACnB,KAAKjB,KADc,EAEnBkB,SAAS,CAACC,OAFS,EAGnBD,SAAS,CAACE,SAHS,EAInBF,SAAS,CAACG,IAJS,CAArB;AAMA,aAAO5B,MAAP;AACD,KAvDH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SAyDQ6B,aAzDR;AAAA,2CAyDE,WACEJ,SADF,EAEwC;AACtC,UAAMzB,MAAM,SAASN,OAAO,CAACmC,aAAR,CACnB,KAAKtB,KADc,EAEnBkB,SAAS,CAACC,OAFS,EAGnBD,SAAS,CAACE,SAHS,EAInBF,SAAS,CAACG,IAJS,EAKnBH,SAAS,CAACV,YALS,CAArB;AAOA,aAAOf,MAAP;AACD,KApEH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SAsEQ8B,WAtER;AAAA,yCAsEE,WAAkBC,eAAlB,EAA0E;AACxE,UAAM/B,MAAM,SAASN,OAAO,CAACoC,WAAR,CACnB,KAAKvB,KADc,EAEnBwB,eAAe,CAACC,IAFG,EAGnBD,eAAe,CAACH,IAHG,EAInBG,eAAe,CAACE,SAJG,CAArB;AAMA,aAAOjC,MAAP;AACD,KA9EH;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA,SAkFEkC,SAlFF,GAkFE,yBAKgC;AAAA,QAJ9BC,gBAI8B,QAJ9BA,gBAI8B;AAAA,QAH9BC,eAG8B,QAH9BA,eAG8B;AAAA,QAF9BC,qBAE8B,QAF9BA,qBAE8B;AAAA,QAD9BC,QAC8B,QAD9BA,QAC8B;AAC9B,SAAKC,WAAL,CAAiB,cAAjB,EAAiC,UAAAC,KAAK,EAAI;AAAA,UAEtCC,2BAFsC,GAQpCD,KARoC,CAEtCC,2BAFsC;AAAA,UAGtCC,uBAHsC,GAQpCF,KARoC,CAGtCE,uBAHsC;AAAA,UAItCC,uBAJsC,GAQpCH,KARoC,CAItCG,uBAJsC;AAAA,UAKtCC,mBALsC,GAQpCJ,KARoC,CAKtCI,mBALsC;AAAA,UAMtCC,uBANsC,GAQpCL,KARoC,CAMtCK,uBANsC;AAAA,UAOtCC,mBAPsC,GAQpCN,KARoC,CAOtCM,mBAPsC;AAUxCN,MAAAA,KAAK,CAACO,gBAAN,GAAyBC,eAAG,CAC1BA,eAAG,CAACP,2BAAD,EAA8BE,uBAA9B,CADuB,EAE1BE,uBAF0B,CAA5B;AAIAL,MAAAA,KAAK,CAACS,YAAN,GAAqBD,eAAG,CACtBA,eAAG,CAACN,uBAAD,EAA0BE,mBAA1B,CADmB,EAEtBE,mBAFsB,CAAxB;AAIAX,MAAAA,gBAAgB,CAACK,KAAD,CAAhB;AACD,KAnBD;AAoBA,SAAKD,WAAL,CAAiB,aAAjB,EAAgCH,eAAhC;AACA,SAAKG,WAAL,CAAiB,kBAAjB,EAAqCF,qBAArC;AACA,SAAKE,WAAL,CAAiB,aAAjB,EAAgCD,QAAhC;AACD,GA/GH;;AAAA,SAiHUC,WAjHV,GAiHE,qBACEW,SADF,EAEEC,QAFF,EAGQ;AAAA;;AAAA,QADNA,QACM;AADNA,MAAAA,QACM,GADe,kBAACC,CAAD;AAAA,eAAY,IAAZ;AAAA,OACf;AAAA;;AACN,SAAK1C,aAAL,CAAmB2C,IAAnB,CACE,KAAK7C,YAAL,CAAkB8C,WAAlB,CAA8BJ,SAA9B,EAAyC,UAAAK,GAAG;AAAA,aAC1CA,GAAG,CAAChD,KAAJ,KAAc,KAAI,CAACA,KAAnB,GAA2B4C,QAAQ,CAACI,GAAD,CAAnC,GAA2C,IADD;AAAA,KAA5C,CADF;AAKD,GA1HH;;AAAA,SA4HE3C,WA5HF,GA4HE,uBAAoB;AAClB,SAAKF,aAAL,CAAmB8C,OAAnB,CAA2B,UAAAC,YAAY,EAAI;AACzCA,MAAAA,YAAY,CAACC,MAAb;AACD,KAFD;AAGD,GAhIH;;AAAA;AAAA;IAmIaC,gBAAgB;AAAA,gCAAG,WAC9B7C,iBAD8B,EAEJ;AAC1B,QAAM8C,YAAY,GAAG,IAAItD,YAAJ,CACnBQ,iBAAiB,CAACP,KADC,EAEnBO,iBAAiB,CAACG,WAFC,CAArB;AAIA,UAAM2C,YAAY,CAAC/C,UAAb,CAAwBC,iBAAxB,CAAN;AACA,WAAO8C,YAAP;AACD,GAT4B;;AAAA,kBAAhBD,gBAAgB;AAAA;AAAA;AAAA;;;;;;"}
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} 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<string> => {\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 onError\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 this.setListener('ErrorEvent', onError)\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","onError","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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"}
@@ -20,7 +20,7 @@ export declare class Synchronizer {
20
20
  proposeTransfer(spendInfo: TransferSpendInfo): Promise<ProposalSuccess>;
21
21
  sendToAddress(spendInfo: SpendInfo): Promise<SpendSuccess | SpendFailure>;
22
22
  shieldFunds(shieldFundsInfo: ShieldFundsInfo): Promise<Transaction>;
23
- subscribe({ onBalanceChanged, onStatusChanged, onTransactionsChanged, onUpdate }: SynchronizerCallbacks): void;
23
+ subscribe({ onBalanceChanged, onStatusChanged, onTransactionsChanged, onUpdate, onError }: SynchronizerCallbacks): void;
24
24
  private setListener;
25
25
  unsubscribe(): void;
26
26
  }
@@ -56,11 +56,17 @@ export interface UpdateEvent {
56
56
  scanProgress: number;
57
57
  networkBlockHeight: number;
58
58
  }
59
+ export interface ErrorEvent {
60
+ alias: string;
61
+ level: 'critical' | 'error';
62
+ message: string;
63
+ }
59
64
  export interface SynchronizerCallbacks {
60
65
  onBalanceChanged(balance: BalanceEvent): void;
61
66
  onStatusChanged(status: StatusEvent): void;
62
67
  onTransactionsChanged(transactions: TransactionEvent): void;
63
68
  onUpdate(event: UpdateEvent): void;
69
+ onError(error: ErrorEvent): void;
64
70
  }
65
71
  export interface BlockRange {
66
72
  first: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-zcash",
3
- "version": "0.7.7",
3
+ "version": "0.8.0",
4
4
  "description": "Zcash library for React Native",
5
5
  "homepage": "https://github.com/EdgeApp/react-native-zcash",
6
6
  "repository": {
@@ -131,7 +131,8 @@ export class Synchronizer {
131
131
  onBalanceChanged,
132
132
  onStatusChanged,
133
133
  onTransactionsChanged,
134
- onUpdate
134
+ onUpdate,
135
+ onError
135
136
  }: SynchronizerCallbacks): void {
136
137
  this.setListener('BalanceEvent', event => {
137
138
  const {
@@ -156,6 +157,7 @@ export class Synchronizer {
156
157
  this.setListener('StatusEvent', onStatusChanged)
157
158
  this.setListener('TransactionEvent', onTransactionsChanged)
158
159
  this.setListener('UpdateEvent', onUpdate)
160
+ this.setListener('ErrorEvent', onError)
159
161
  }
160
162
 
161
163
  private setListener<T>(
package/src/types.ts CHANGED
@@ -72,11 +72,18 @@ export interface UpdateEvent {
72
72
  networkBlockHeight: number
73
73
  }
74
74
 
75
+ export interface ErrorEvent {
76
+ alias: string
77
+ level: 'critical' | 'error'
78
+ message: string
79
+ }
80
+
75
81
  export interface SynchronizerCallbacks {
76
82
  onBalanceChanged(balance: BalanceEvent): void
77
83
  onStatusChanged(status: StatusEvent): void
78
84
  onTransactionsChanged(transactions: TransactionEvent): void
79
85
  onUpdate(event: UpdateEvent): void
86
+ onError(error: ErrorEvent): void
80
87
  }
81
88
 
82
89
  export interface BlockRange {