react-native-zcash 0.10.1-beta.4 → 0.10.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.10.1 (2025-12-04)
6
+
7
+ - added: `proposeFulfillingPaymentURI` support
5
8
  - changed: iOS - Emit balance after rescan
6
9
  - fixed: iOS - get UUID after starting synchronizer
7
10
 
@@ -381,6 +381,32 @@ class RNZcashModule(
381
381
  }
382
382
  }
383
383
 
384
+ @ReactMethod
385
+ fun proposeFulfillingPaymentURI(
386
+ alias: String,
387
+ paymentUri: String,
388
+ promise: Promise,
389
+ ) {
390
+ val wallet = getWallet(alias)
391
+ wallet.coroutineScope.launch {
392
+ try {
393
+ val account = wallet.getAccounts().first()
394
+ val proposal =
395
+ wallet.proposeFulfillingPaymentUri(
396
+ account,
397
+ paymentUri,
398
+ )
399
+ val map = Arguments.createMap()
400
+ map.putInt("transactionCount", proposal.transactionCount())
401
+ map.putString("totalFee", proposal.totalFeeRequired().value.toString())
402
+ map.putString("proposalBase64", Base64.getEncoder().encodeToString(proposal.toByteArray()))
403
+ promise.resolve(map)
404
+ } catch (t: Throwable) {
405
+ promise.reject("Err", t)
406
+ }
407
+ }
408
+ }
409
+
384
410
  @kotlin.ExperimentalStdlibApi
385
411
  @ReactMethod
386
412
  fun createTransfer(
package/ios/RNZcash.m CHANGED
@@ -39,6 +39,12 @@ resolver:(RCTPromiseResolveBlock)resolve
39
39
  rejecter:(RCTPromiseRejectBlock)reject
40
40
  )
41
41
 
42
+ RCT_EXTERN_METHOD(proposeFulfillingPaymentURI:(NSString *)alias
43
+ :(NSString *)paymentUri
44
+ resolver:(RCTPromiseResolveBlock)resolve
45
+ rejecter:(RCTPromiseRejectBlock)reject
46
+ )
47
+
42
48
  RCT_EXTERN_METHOD(createTransfer:(NSString *)alias
43
49
  :(NSString *)proposalBase64
44
50
  :(NSString *)seed
package/ios/RNZcash.swift CHANGED
@@ -247,6 +247,42 @@ class RNZcash: RCTEventEmitter {
247
247
  }
248
248
  }
249
249
 
250
+ @objc func proposeFulfillingPaymentURI(
251
+ _ alias: String, _ paymentUri: String,
252
+ resolver resolve: @escaping RCTPromiseResolveBlock,
253
+ rejecter reject: @escaping RCTPromiseRejectBlock
254
+ ) {
255
+ Task {
256
+ if let wallet = await synchronizerStore.get(alias) {
257
+ do {
258
+ guard let accountUUID = wallet.accountUUID else {
259
+ reject("proposeFulfillingPaymentURI", "Account UUID not found", genericError)
260
+ return
261
+ }
262
+ let proposal = try await wallet.synchronizer.proposefulfillingPaymentURI(
263
+ paymentUri,
264
+ accountUUID: accountUUID
265
+ )
266
+ let proposalBase64 = try proposal.inner.serializedData().base64EncodedString()
267
+
268
+ let out: NSMutableDictionary = [
269
+ "proposalBase64": proposalBase64,
270
+ "transactionCount": proposal.transactionCount(),
271
+ "totalFee": String(proposal.totalFeeRequired().amount),
272
+ ]
273
+
274
+ resolve(out)
275
+ } catch let error as ZcashError {
276
+ reject("proposeFulfillingPaymentURI", "Failed to propose from payment URI", error)
277
+ } catch {
278
+ reject("proposeFulfillingPaymentURI", "Unknown error", error)
279
+ }
280
+ } else {
281
+ reject("proposeFulfillingPaymentURI", "Wallet does not exist", genericError)
282
+ }
283
+ }
284
+ }
285
+
250
286
  @objc func createTransfer(
251
287
  _ alias: String, _ proposalBase64: String, _ seed: String,
252
288
  resolver resolve: @escaping RCTPromiseResolveBlock,
package/lib/rnzcash.rn.js CHANGED
@@ -171,13 +171,26 @@ var Synchronizer = /*#__PURE__*/function () {
171
171
  return proposeTransfer;
172
172
  }();
173
173
 
174
+ _proto.proposeFulfillingPaymentURI = /*#__PURE__*/function () {
175
+ var _proposeFulfillingPaymentURI = _asyncToGenerator(function* (paymentUri) {
176
+ var result = yield RNZcash.proposeFulfillingPaymentURI(this.alias, paymentUri);
177
+ return result;
178
+ });
179
+
180
+ function proposeFulfillingPaymentURI(_x10) {
181
+ return _proposeFulfillingPaymentURI.apply(this, arguments);
182
+ }
183
+
184
+ return proposeFulfillingPaymentURI;
185
+ }();
186
+
174
187
  _proto.createTransfer = /*#__PURE__*/function () {
175
188
  var _createTransfer = _asyncToGenerator(function* (opts) {
176
189
  var result = yield RNZcash.createTransfer(this.alias, opts.proposalBase64, opts.mnemonicSeed);
177
190
  return result;
178
191
  });
179
192
 
180
- function createTransfer(_x10) {
193
+ function createTransfer(_x11) {
181
194
  return _createTransfer.apply(this, arguments);
182
195
  }
183
196
 
@@ -190,7 +203,7 @@ var Synchronizer = /*#__PURE__*/function () {
190
203
  return result;
191
204
  });
192
205
 
193
- function shieldFunds(_x11) {
206
+ function shieldFunds(_x12) {
194
207
  return _shieldFunds.apply(this, arguments);
195
208
  }
196
209
 
@@ -250,7 +263,7 @@ var makeSynchronizer = /*#__PURE__*/function () {
250
263
  return synchronizer;
251
264
  });
252
265
 
253
- return function makeSynchronizer(_x12) {
266
+ return function makeSynchronizer(_x13) {
254
267
  return _ref2.apply(this, arguments);
255
268
  };
256
269
  }();
@@ -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 CreateTransferOpts,\n InitializerConfig,\n Network,\n ProposalSuccess,\n ProposeTransferOpts,\n ShieldFundsInfo,\n SpendFailure,\n SynchronizerCallbacks\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(opts: ProposeTransferOpts): Promise<ProposalSuccess> {\n const result = await RNZcash.proposeTransfer(\n this.alias,\n opts.zatoshi,\n opts.toAddress,\n opts.memo\n )\n return result\n }\n\n async createTransfer(\n opts: CreateTransferOpts\n ): Promise<string | SpendFailure> {\n const result = await RNZcash.createTransfer(\n this.alias,\n opts.proposalBase64,\n opts.mnemonicSeed\n )\n return result\n }\n\n async shieldFunds(shieldFundsInfo: ShieldFundsInfo): Promise<string> {\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","opts","zatoshi","toAddress","memo","createTransfer","proposalBase64","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBQA,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,WAAsBC,IAAtB,EAA2E;AACzE,UAAMzB,MAAM,SAASN,OAAO,CAAC8B,eAAR,CACnB,KAAKjB,KADc,EAEnBkB,IAAI,CAACC,OAFc,EAGnBD,IAAI,CAACE,SAHc,EAInBF,IAAI,CAACG,IAJc,CAArB;AAMA,aAAO5B,MAAP;AACD,KArDH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SAuDQ6B,cAvDR;AAAA,4CAuDE,WACEJ,IADF,EAEkC;AAChC,UAAMzB,MAAM,SAASN,OAAO,CAACmC,cAAR,CACnB,KAAKtB,KADc,EAEnBkB,IAAI,CAACK,cAFc,EAGnBL,IAAI,CAACV,YAHc,CAArB;AAKA,aAAOf,MAAP;AACD,KAhEH;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA,SAkEQ+B,WAlER;AAAA,yCAkEE,WAAkBC,eAAlB,EAAqE;AACnE,UAAMhC,MAAM,SAASN,OAAO,CAACqC,WAAR,CACnB,KAAKxB,KADc,EAEnByB,eAAe,CAACC,IAFG,EAGnBD,eAAe,CAACJ,IAHG,EAInBI,eAAe,CAACE,SAJG,CAArB;AAMA,aAAOlC,MAAP;AACD,KA1EH;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA,SA8EEmC,SA9EF,GA8EE,yBAMgC;AAAA,QAL9BC,gBAK8B,QAL9BA,gBAK8B;AAAA,QAJ9BC,eAI8B,QAJ9BA,eAI8B;AAAA,QAH9BC,qBAG8B,QAH9BA,qBAG8B;AAAA,QAF9BC,QAE8B,QAF9BA,QAE8B;AAAA,QAD9BC,OAC8B,QAD9BA,OAC8B;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;AAIAZ,MAAAA,gBAAgB,CAACM,KAAD,CAAhB;AACD,KAnBD;AAoBA,SAAKD,WAAL,CAAiB,aAAjB,EAAgCJ,eAAhC;AACA,SAAKI,WAAL,CAAiB,kBAAjB,EAAqCH,qBAArC;AACA,SAAKG,WAAL,CAAiB,aAAjB,EAAgCF,QAAhC;AACA,SAAKE,WAAL,CAAiB,YAAjB,EAA+BD,OAA/B;AACD,GA7GH;;AAAA,SA+GUC,WA/GV,GA+GE,qBACEW,SADF,EAEEC,QAFF,EAGQ;AAAA;;AAAA,QADNA,QACM;AADNA,MAAAA,QACM,GADe,kBAACC,CAAD;AAAA,eAAY,IAAZ;AAAA,OACf;AAAA;;AACN,SAAK5C,aAAL,CAAmB6C,IAAnB,CACE,KAAK/C,YAAL,CAAkBgD,WAAlB,CAA8BJ,SAA9B,EAAyC,UAAAK,GAAG;AAAA,aAC1CA,GAAG,CAAClD,KAAJ,KAAc,KAAI,CAACA,KAAnB,GAA2B8C,QAAQ,CAACI,GAAD,CAAnC,GAA2C,IADD;AAAA,KAA5C,CADF;AAKD,GAxHH;;AAAA,SA0HE7C,WA1HF,GA0HE,uBAAoB;AAClB,SAAKF,aAAL,CAAmBgD,OAAnB,CAA2B,UAAAC,YAAY,EAAI;AACzCA,MAAAA,YAAY,CAACC,MAAb;AACD,KAFD;AAGD,GA9HH;;AAAA;AAAA;IAiIaC,gBAAgB;AAAA,gCAAG,WAC9B/C,iBAD8B,EAEJ;AAC1B,QAAMgD,YAAY,GAAG,IAAIxD,YAAJ,CACnBQ,iBAAiB,CAACP,KADC,EAEnBO,iBAAiB,CAACG,WAFC,CAArB;AAIA,UAAM6C,YAAY,CAACjD,UAAb,CAAwBC,iBAAxB,CAAN;AACA,WAAOgD,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 CreateTransferOpts,\n InitializerConfig,\n Network,\n ProposalSuccess,\n ProposeTransferOpts,\n ShieldFundsInfo,\n SpendFailure,\n SynchronizerCallbacks\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(opts: ProposeTransferOpts): Promise<ProposalSuccess> {\n const result = await RNZcash.proposeTransfer(\n this.alias,\n opts.zatoshi,\n opts.toAddress,\n opts.memo\n )\n return result\n }\n\n async proposeFulfillingPaymentURI(\n paymentUri: string\n ): Promise<ProposalSuccess> {\n const result = await RNZcash.proposeFulfillingPaymentURI(\n this.alias,\n paymentUri\n )\n return result\n }\n\n async createTransfer(\n opts: CreateTransferOpts\n ): Promise<string | SpendFailure> {\n const result = await RNZcash.createTransfer(\n this.alias,\n opts.proposalBase64,\n opts.mnemonicSeed\n )\n return result\n }\n\n async shieldFunds(shieldFundsInfo: ShieldFundsInfo): Promise<string> {\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","opts","zatoshi","toAddress","memo","proposeFulfillingPaymentURI","paymentUri","createTransfer","proposalBase64","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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"}
@@ -18,6 +18,7 @@ export declare class Synchronizer {
18
18
  getLatestNetworkHeight(alias: string): Promise<number>;
19
19
  rescan(): Promise<void>;
20
20
  proposeTransfer(opts: ProposeTransferOpts): Promise<ProposalSuccess>;
21
+ proposeFulfillingPaymentURI(paymentUri: string): Promise<ProposalSuccess>;
21
22
  createTransfer(opts: CreateTransferOpts): Promise<string | SpendFailure>;
22
23
  shieldFunds(shieldFundsInfo: ShieldFundsInfo): Promise<string>;
23
24
  subscribe({ onBalanceChanged, onStatusChanged, onTransactionsChanged, onUpdate, onError }: SynchronizerCallbacks): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-zcash",
3
- "version": "0.10.1-beta.4",
3
+ "version": "0.10.1",
4
4
  "description": "Zcash library for React Native",
5
5
  "homepage": "https://github.com/EdgeApp/react-native-zcash",
6
6
  "repository": {
@@ -98,6 +98,16 @@ export class Synchronizer {
98
98
  return result
99
99
  }
100
100
 
101
+ async proposeFulfillingPaymentURI(
102
+ paymentUri: string
103
+ ): Promise<ProposalSuccess> {
104
+ const result = await RNZcash.proposeFulfillingPaymentURI(
105
+ this.alias,
106
+ paymentUri
107
+ )
108
+ return result
109
+ }
110
+
101
111
  async createTransfer(
102
112
  opts: CreateTransferOpts
103
113
  ): Promise<string | SpendFailure> {