dash-shielded-native 0.0.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 (49) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +27 -0
  3. package/README.md +36 -0
  4. package/android/build.gradle +56 -0
  5. package/android/src/main/AndroidManifest.xml +1 -0
  6. package/android/src/main/java/app/edge/rndashshielded/RNDashShieldedModule.kt +215 -0
  7. package/android/src/main/java/app/edge/rndashshielded/RNDashShieldedPackage.kt +16 -0
  8. package/android/src/main/java/uniffi/dash/dash.kt +1665 -0
  9. package/android/src/main/jniLibs/arm64-v8a/libdashshielded.so +0 -0
  10. package/dash-shielded-native.podspec +32 -0
  11. package/ios/.uniffi-generated +1 -0
  12. package/ios/EdgeDashClient.swift +88 -0
  13. package/ios/RNDashShielded.m +83 -0
  14. package/ios/RNDashShielded.swift +214 -0
  15. package/ios/dash-shielded-native-Bridging-Header.h +2 -0
  16. package/ios/dash.swift +1124 -0
  17. package/ios/libdashshielded.xcframework/Info.plist +47 -0
  18. package/ios/libdashshielded.xcframework/ios-arm64/Headers/dashFFI.h +696 -0
  19. package/ios/libdashshielded.xcframework/ios-arm64/Headers/module.modulemap +7 -0
  20. package/ios/libdashshielded.xcframework/ios-arm64/libdashshielded.a +0 -0
  21. package/ios/libdashshielded.xcframework/ios-arm64-simulator/Headers/dashFFI.h +696 -0
  22. package/ios/libdashshielded.xcframework/ios-arm64-simulator/Headers/module.modulemap +7 -0
  23. package/ios/libdashshielded.xcframework/ios-arm64-simulator/libdashshielded.a +0 -0
  24. package/lib/load-addon.d.ts +34 -0
  25. package/lib/node.d.ts +50 -0
  26. package/lib/react-native.d.ts +31 -0
  27. package/lib/rndash.rn.js +267 -0
  28. package/lib/rndash.rn.js.map +1 -0
  29. package/lib/src/node.js +328 -0
  30. package/lib/src/node.js.map +1 -0
  31. package/lib/types.d.ts +73 -0
  32. package/node.d.ts +1 -0
  33. package/node.js +2 -0
  34. package/package.json +105 -0
  35. package/prebuilds/darwin-arm64/dashshielded.node +0 -0
  36. package/rust/Cargo.lock +6795 -0
  37. package/rust/Cargo.toml +63 -0
  38. package/rust/build.rs +7 -0
  39. package/rust/rust-toolchain.toml +3 -0
  40. package/rust/src/dash.udl +90 -0
  41. package/rust/src/lib.rs +16 -0
  42. package/rust/src/napi_api.rs +164 -0
  43. package/rust/src/uniffi_api.rs +116 -0
  44. package/rust/src/wallet.rs +888 -0
  45. package/rust/uniffi-bindgen.rs +3 -0
  46. package/src/load-addon.ts +99 -0
  47. package/src/node.ts +248 -0
  48. package/src/react-native.ts +212 -0
  49. package/src/types.ts +88 -0
@@ -0,0 +1,34 @@
1
+ export interface NativeDashAddon {
2
+ setDocumentDirectory: (path: string) => void;
3
+ initialize: (mnemonicSeed: string, account: number, alias: string, networkName: string, defaultHost: string, defaultPort: number) => Promise<void>;
4
+ stop: (alias: string) => Promise<string>;
5
+ startSync: (alias: string) => Promise<void>;
6
+ stopSync: (alias: string) => Promise<void>;
7
+ deriveShieldedAddress: (alias: string) => Promise<{
8
+ shieldedAddress: string;
9
+ }>;
10
+ isValidAddress: (address: string, network: string) => boolean;
11
+ deriveViewingKey: (mnemonicSeed: string, network: string) => string;
12
+ warmUpProver: () => Promise<void>;
13
+ isProverReady: () => boolean;
14
+ poll: (alias: string) => Promise<{
15
+ alias: string;
16
+ status: string;
17
+ scanProgress: number;
18
+ networkBlockHeight: number;
19
+ availableCredits: string;
20
+ totalCredits: string;
21
+ transactions: Array<{
22
+ txid: string;
23
+ blockTimeInSeconds: number;
24
+ minedHeight: number;
25
+ value: string;
26
+ fee?: string;
27
+ toAddress?: string;
28
+ memos: string[];
29
+ }>;
30
+ }>;
31
+ proposeTransfer: (alias: string, amountCredits: string, toAddress: string, memo?: string) => Promise<string>;
32
+ createTransfer: (alias: string, proposalId: string, mnemonicSeed: string) => Promise<string>;
33
+ }
34
+ export declare function loadNativeAddon(): NativeDashAddon;
package/lib/node.d.ts ADDED
@@ -0,0 +1,50 @@
1
+ import { NativeDashAddon } from './load-addon';
2
+ import { Addresses, CreateTransferOpts, InitializerConfig, Network, ProposalSuccess, ProposeTransferOpts, SpendFailure, SpendSuccess, SynchronizerCallbacks, ViewingKeySet } from './types';
3
+ export * from './types';
4
+ export interface MakeNodeDashShieldedOpts {
5
+ documentDirectory: string;
6
+ }
7
+ export declare const Tools: {
8
+ deriveViewingKey: (mnemonicSeed: string, network: Network) => Promise<ViewingKeySet>;
9
+ deriveShieldedAddress: (mnemonicSeed: string, network: Network, account?: number) => Promise<string>;
10
+ isValidAddress: (address: string, network?: Network) => Promise<boolean>;
11
+ warmUpProver: () => Promise<void>;
12
+ isProverReady: () => Promise<boolean>;
13
+ };
14
+ export declare class Synchronizer {
15
+ alias: string;
16
+ network: Network;
17
+ private readonly addon;
18
+ private timer?;
19
+ private callbacks?;
20
+ private lastStatus?;
21
+ constructor(alias: string, network: Network, addon: NativeDashAddon);
22
+ stop(): Promise<string>;
23
+ initialize(config: InitializerConfig): Promise<void>;
24
+ startSync(): Promise<void>;
25
+ stopSync(): Promise<void>;
26
+ deriveShieldedAddress(): Promise<Addresses>;
27
+ getBalance(): Promise<{
28
+ availableCredits: string;
29
+ totalCredits: string;
30
+ }>;
31
+ getTransactions(): Promise<Array<{
32
+ txid: string;
33
+ blockTimeInSeconds: number;
34
+ minedHeight: number;
35
+ value: string;
36
+ fee?: string;
37
+ toAddress?: string;
38
+ memos: string[];
39
+ }>>;
40
+ proposeTransfer(opts: ProposeTransferOpts): Promise<ProposalSuccess>;
41
+ createTransfer(opts: CreateTransferOpts): Promise<SpendSuccess | SpendFailure>;
42
+ subscribe(callbacks: SynchronizerCallbacks): void;
43
+ unsubscribe(): void;
44
+ private pump;
45
+ }
46
+ export declare const makeSynchronizer: (config: InitializerConfig) => Promise<Synchronizer>;
47
+ export declare function makeNodeDashShieldedModule(opts: MakeNodeDashShieldedOpts): {
48
+ Tools: typeof Tools;
49
+ makeSynchronizer: typeof makeSynchronizer;
50
+ };
@@ -0,0 +1,31 @@
1
+ import { EventSubscription, NativeEventEmitter } from 'react-native';
2
+ import { Addresses, CreateTransferOpts, InitializerConfig, Network, ProposalSuccess, ProposeTransferOpts, SpendFailure, SpendSuccess, SynchronizerCallbacks, ViewingKeySet } from './types';
3
+ export * from './types';
4
+ export declare const Tools: {
5
+ deriveViewingKey: (mnemonicSeed: string, network: Network) => Promise<ViewingKeySet>;
6
+ deriveShieldedAddress: (mnemonicSeed: string, network: Network, account?: number) => Promise<string>;
7
+ isValidAddress: (address: string, network?: Network) => Promise<boolean>;
8
+ warmUpProver: () => Promise<void>;
9
+ isProverReady: () => Promise<boolean>;
10
+ };
11
+ export declare class Synchronizer {
12
+ eventEmitter: NativeEventEmitter;
13
+ subscriptions: EventSubscription[];
14
+ alias: string;
15
+ network: Network;
16
+ private timer?;
17
+ private callbacks?;
18
+ private lastStatus?;
19
+ constructor(alias: string, network: Network);
20
+ stop(): Promise<string>;
21
+ initialize(config: InitializerConfig): Promise<void>;
22
+ startSync(): Promise<void>;
23
+ stopSync(): Promise<void>;
24
+ deriveShieldedAddress(): Promise<Addresses>;
25
+ proposeTransfer(opts: ProposeTransferOpts): Promise<ProposalSuccess>;
26
+ createTransfer(opts: CreateTransferOpts): Promise<SpendSuccess | SpendFailure>;
27
+ subscribe(callbacks: SynchronizerCallbacks): void;
28
+ unsubscribe(): void;
29
+ private pump;
30
+ }
31
+ export declare const makeSynchronizer: (config: InitializerConfig) => Promise<Synchronizer>;
@@ -0,0 +1,267 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var reactNative = require('react-native');
6
+
7
+ function asyncGeneratorStep(n, t, e, r, o, a, c) {
8
+ try {
9
+ var i = n[a](c),
10
+ u = i.value;
11
+ } catch (n) {
12
+ return void e(n);
13
+ }
14
+ i.done ? t(u) : Promise.resolve(u).then(r, o);
15
+ }
16
+ function _asyncToGenerator(n) {
17
+ return function () {
18
+ var t = this,
19
+ e = arguments;
20
+ return new Promise(function (r, o) {
21
+ var a = n.apply(t, e);
22
+ function _next(n) {
23
+ asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
24
+ }
25
+ function _throw(n) {
26
+ asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
27
+ }
28
+ _next(void 0);
29
+ });
30
+ };
31
+ }
32
+
33
+ var RNDashShielded = reactNative.NativeModules.RNDashShielded;
34
+ function parseJsonObject(value) {
35
+ try {
36
+ return JSON.parse(value);
37
+ } catch (_unused) {
38
+ return {
39
+ errorMessage: value
40
+ };
41
+ }
42
+ }
43
+ var Tools = {
44
+ deriveViewingKey: function () {
45
+ var _deriveViewingKey = _asyncToGenerator(function* (mnemonicSeed, network) {
46
+ var fullViewingKey = yield RNDashShielded.deriveViewingKey(mnemonicSeed, network);
47
+ return {
48
+ fullViewingKey: fullViewingKey
49
+ };
50
+ });
51
+ function deriveViewingKey(_x, _x2) {
52
+ return _deriveViewingKey.apply(this, arguments);
53
+ }
54
+ return deriveViewingKey;
55
+ }(),
56
+ deriveShieldedAddress: function () {
57
+ var _deriveShieldedAddress = _asyncToGenerator(function* (mnemonicSeed, network, account) {
58
+ if (account === void 0) {
59
+ account = 0;
60
+ }
61
+ return RNDashShielded.deriveShieldedAddressFromSeed(mnemonicSeed, network, account);
62
+ });
63
+ function deriveShieldedAddress(_x3, _x4, _x5) {
64
+ return _deriveShieldedAddress.apply(this, arguments);
65
+ }
66
+ return deriveShieldedAddress;
67
+ }(),
68
+ isValidAddress: function () {
69
+ var _isValidAddress = _asyncToGenerator(function* (address, network) {
70
+ if (network === void 0) {
71
+ network = 'mainnet';
72
+ }
73
+ return RNDashShielded.isValidAddress(address, network);
74
+ });
75
+ function isValidAddress(_x6, _x7) {
76
+ return _isValidAddress.apply(this, arguments);
77
+ }
78
+ return isValidAddress;
79
+ }(),
80
+ warmUpProver: function () {
81
+ var _warmUpProver = _asyncToGenerator(function* () {
82
+ yield RNDashShielded.warmUpProver();
83
+ });
84
+ function warmUpProver() {
85
+ return _warmUpProver.apply(this, arguments);
86
+ }
87
+ return warmUpProver;
88
+ }(),
89
+ isProverReady: function () {
90
+ var _isProverReady = _asyncToGenerator(function* () {
91
+ return RNDashShielded.isProverReady();
92
+ });
93
+ function isProverReady() {
94
+ return _isProverReady.apply(this, arguments);
95
+ }
96
+ return isProverReady;
97
+ }()
98
+ };
99
+ var Synchronizer = /*#__PURE__*/function () {
100
+ function Synchronizer(alias, network) {
101
+ this.eventEmitter = new reactNative.NativeEventEmitter(RNDashShielded);
102
+ this.subscriptions = [];
103
+ this.alias = alias;
104
+ this.network = network;
105
+ }
106
+ var _proto = Synchronizer.prototype;
107
+ _proto.stop = /*#__PURE__*/function () {
108
+ var _stop = _asyncToGenerator(function* () {
109
+ this.unsubscribe();
110
+ return RNDashShielded.stop(this.alias);
111
+ });
112
+ function stop() {
113
+ return _stop.apply(this, arguments);
114
+ }
115
+ return stop;
116
+ }();
117
+ _proto.initialize = /*#__PURE__*/function () {
118
+ var _initialize = _asyncToGenerator(function* (config) {
119
+ var _config$mnemonicSeed;
120
+ var seed = (_config$mnemonicSeed = config.mnemonicSeed) != null ? _config$mnemonicSeed : config.seedHex;
121
+ if (seed == null) throw new Error('Missing mnemonicSeed');
122
+ yield RNDashShielded.initialize(seed, config.account, config.alias, config.network, config.defaultHost, config.defaultPort);
123
+ });
124
+ function initialize(_x8) {
125
+ return _initialize.apply(this, arguments);
126
+ }
127
+ return initialize;
128
+ }();
129
+ _proto.startSync = /*#__PURE__*/function () {
130
+ var _startSync = _asyncToGenerator(function* () {
131
+ yield RNDashShielded.startSync(this.alias);
132
+ });
133
+ function startSync() {
134
+ return _startSync.apply(this, arguments);
135
+ }
136
+ return startSync;
137
+ }();
138
+ _proto.stopSync = /*#__PURE__*/function () {
139
+ var _stopSync = _asyncToGenerator(function* () {
140
+ yield RNDashShielded.stopSync(this.alias);
141
+ });
142
+ function stopSync() {
143
+ return _stopSync.apply(this, arguments);
144
+ }
145
+ return stopSync;
146
+ }();
147
+ _proto.deriveShieldedAddress = /*#__PURE__*/function () {
148
+ var _deriveShieldedAddress2 = _asyncToGenerator(function* () {
149
+ return RNDashShielded.deriveShieldedAddress(this.alias);
150
+ });
151
+ function deriveShieldedAddress() {
152
+ return _deriveShieldedAddress2.apply(this, arguments);
153
+ }
154
+ return deriveShieldedAddress;
155
+ }();
156
+ _proto.proposeTransfer = /*#__PURE__*/function () {
157
+ var _proposeTransfer = _asyncToGenerator(function* (opts) {
158
+ var result = yield RNDashShielded.proposeTransfer(this.alias, opts.amountCredits, opts.toAddress, opts.memo);
159
+ return parseJsonObject(result);
160
+ });
161
+ function proposeTransfer(_x9) {
162
+ return _proposeTransfer.apply(this, arguments);
163
+ }
164
+ return proposeTransfer;
165
+ }();
166
+ _proto.createTransfer = /*#__PURE__*/function () {
167
+ var _createTransfer = _asyncToGenerator(function* (opts) {
168
+ try {
169
+ var result = yield RNDashShielded.createTransfer(this.alias, opts.proposalId, opts.mnemonicSeed);
170
+ return parseJsonObject(result);
171
+ } catch (error) {
172
+ var errorMessage = error instanceof Error ? error.message : String(error);
173
+ return {
174
+ errorMessage: errorMessage
175
+ };
176
+ }
177
+ });
178
+ function createTransfer(_x0) {
179
+ return _createTransfer.apply(this, arguments);
180
+ }
181
+ return createTransfer;
182
+ }();
183
+ _proto.subscribe = function subscribe(callbacks) {
184
+ var _this = this;
185
+ this.callbacks = callbacks;
186
+ this.pump()["catch"](function (error) {
187
+ callbacks.onError({
188
+ alias: _this.alias,
189
+ level: 'error',
190
+ message: "event pump failed: " + String(error)
191
+ });
192
+ });
193
+ };
194
+ _proto.unsubscribe = function unsubscribe() {
195
+ if (this.timer != null) {
196
+ clearTimeout(this.timer);
197
+ this.timer = undefined;
198
+ }
199
+ this.callbacks = undefined;
200
+ this.subscriptions.forEach(function (subscription) {
201
+ subscription.remove();
202
+ });
203
+ this.subscriptions = [];
204
+ };
205
+ _proto.pump = /*#__PURE__*/function () {
206
+ var _pump = _asyncToGenerator(function* () {
207
+ var _this2 = this;
208
+ if (this.callbacks == null) return;
209
+ var snap = yield RNDashShielded.poll(this.alias);
210
+ var _this$callbacks = this.callbacks,
211
+ onBalanceChanged = _this$callbacks.onBalanceChanged,
212
+ onStatusChanged = _this$callbacks.onStatusChanged,
213
+ onTransactionsChanged = _this$callbacks.onTransactionsChanged,
214
+ onUpdate = _this$callbacks.onUpdate;
215
+ onBalanceChanged({
216
+ availableCredits: snap.availableCredits,
217
+ totalCredits: snap.totalCredits
218
+ });
219
+ if (snap.status !== this.lastStatus) {
220
+ this.lastStatus = snap.status;
221
+ onStatusChanged({
222
+ alias: this.alias,
223
+ name: snap.status
224
+ });
225
+ }
226
+ onTransactionsChanged({
227
+ transactions: snap.transactions
228
+ });
229
+ onUpdate({
230
+ alias: this.alias,
231
+ scanProgress: snap.scanProgress,
232
+ networkBlockHeight: snap.networkBlockHeight
233
+ });
234
+ var delay = snap.status === 'SYNCING' ? 500 : 2000;
235
+ this.timer = setTimeout(function () {
236
+ _this2.pump()["catch"](function (error) {
237
+ var _this2$callbacks;
238
+ (_this2$callbacks = _this2.callbacks) == null || _this2$callbacks.onError({
239
+ alias: _this2.alias,
240
+ level: 'error',
241
+ message: "event pump failed: " + String(error)
242
+ });
243
+ });
244
+ }, delay);
245
+ });
246
+ function pump() {
247
+ return _pump.apply(this, arguments);
248
+ }
249
+ return pump;
250
+ }();
251
+ return Synchronizer;
252
+ }();
253
+ var makeSynchronizer = /*#__PURE__*/function () {
254
+ var _ref = _asyncToGenerator(function* (config) {
255
+ var synchronizer = new Synchronizer(config.alias, config.network);
256
+ yield synchronizer.initialize(config);
257
+ return synchronizer;
258
+ });
259
+ return function makeSynchronizer(_x1) {
260
+ return _ref.apply(this, arguments);
261
+ };
262
+ }();
263
+
264
+ exports.Synchronizer = Synchronizer;
265
+ exports.Tools = Tools;
266
+ exports.makeSynchronizer = makeSynchronizer;
267
+ //# sourceMappingURL=rndash.rn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rndash.rn.js","sources":["../src/react-native.ts"],"sourcesContent":["import {\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 SpendFailure,\n SpendSuccess,\n SynchronizerCallbacks,\n ViewingKeySet\n} from './types'\nexport * from './types'\n\nconst { RNDashShielded } = NativeModules\n\nfunction parseJsonObject(value: string): unknown {\n try {\n return JSON.parse(value)\n } catch {\n return { errorMessage: value }\n }\n}\n\nexport const Tools = {\n deriveViewingKey: async (\n mnemonicSeed: string,\n network: Network\n ): Promise<ViewingKeySet> => {\n const fullViewingKey = await RNDashShielded.deriveViewingKey(\n mnemonicSeed,\n network\n )\n return { fullViewingKey }\n },\n deriveShieldedAddress: async (\n mnemonicSeed: string,\n network: Network,\n account: number = 0\n ): Promise<string> => {\n return RNDashShielded.deriveShieldedAddressFromSeed(\n mnemonicSeed,\n network,\n account\n )\n },\n isValidAddress: async (\n address: string,\n network: Network = 'mainnet'\n ): Promise<boolean> => {\n return RNDashShielded.isValidAddress(address, network)\n },\n warmUpProver: async (): Promise<void> => {\n await RNDashShielded.warmUpProver()\n },\n isProverReady: async (): Promise<boolean> => {\n return RNDashShielded.isProverReady()\n }\n}\n\nexport class Synchronizer {\n eventEmitter: NativeEventEmitter\n subscriptions: EventSubscription[]\n alias: string\n network: Network\n private timer?: ReturnType<typeof setTimeout>\n private callbacks?: SynchronizerCallbacks\n private lastStatus?: string\n\n constructor(alias: string, network: Network) {\n this.eventEmitter = new NativeEventEmitter(RNDashShielded)\n this.subscriptions = []\n this.alias = alias\n this.network = network\n }\n\n async stop(): Promise<string> {\n this.unsubscribe()\n return RNDashShielded.stop(this.alias)\n }\n\n async initialize(config: InitializerConfig): Promise<void> {\n const seed = config.mnemonicSeed ?? config.seedHex\n if (seed == null) throw new Error('Missing mnemonicSeed')\n await RNDashShielded.initialize(\n seed,\n config.account,\n config.alias,\n config.network,\n config.defaultHost,\n config.defaultPort\n )\n }\n\n async startSync(): Promise<void> {\n await RNDashShielded.startSync(this.alias)\n }\n\n async stopSync(): Promise<void> {\n await RNDashShielded.stopSync(this.alias)\n }\n\n async deriveShieldedAddress(): Promise<Addresses> {\n return RNDashShielded.deriveShieldedAddress(this.alias)\n }\n\n async proposeTransfer(opts: ProposeTransferOpts): Promise<ProposalSuccess> {\n const result = await RNDashShielded.proposeTransfer(\n this.alias,\n opts.amountCredits,\n opts.toAddress,\n opts.memo\n )\n return parseJsonObject(result) as ProposalSuccess\n }\n\n async createTransfer(\n opts: CreateTransferOpts\n ): Promise<SpendSuccess | SpendFailure> {\n try {\n const result = await RNDashShielded.createTransfer(\n this.alias,\n opts.proposalId,\n opts.mnemonicSeed\n )\n return parseJsonObject(result) as SpendSuccess\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error)\n return { errorMessage }\n }\n }\n\n subscribe(callbacks: SynchronizerCallbacks): void {\n this.callbacks = callbacks\n this.pump().catch(error => {\n callbacks.onError({\n alias: this.alias,\n level: 'error',\n message: `event pump failed: ${String(error)}`\n })\n })\n }\n\n unsubscribe(): void {\n if (this.timer != null) {\n clearTimeout(this.timer)\n this.timer = undefined\n }\n this.callbacks = undefined\n this.subscriptions.forEach(subscription => {\n subscription.remove()\n })\n this.subscriptions = []\n }\n\n private async pump(): Promise<void> {\n if (this.callbacks == null) return\n const snap = await RNDashShielded.poll(this.alias)\n const {\n onBalanceChanged,\n onStatusChanged,\n onTransactionsChanged,\n onUpdate\n } = this.callbacks\n\n onBalanceChanged({\n availableCredits: snap.availableCredits,\n totalCredits: snap.totalCredits\n })\n\n if (snap.status !== this.lastStatus) {\n this.lastStatus = snap.status\n onStatusChanged({\n alias: this.alias,\n name: snap.status as 'STOPPED' | 'DISCONNECTED' | 'SYNCING' | 'SYNCED'\n })\n }\n\n onTransactionsChanged({ transactions: snap.transactions })\n onUpdate({\n alias: this.alias,\n scanProgress: snap.scanProgress,\n networkBlockHeight: snap.networkBlockHeight\n })\n\n const delay = snap.status === 'SYNCING' ? 500 : 2000\n this.timer = setTimeout(() => {\n this.pump().catch(error => {\n this.callbacks?.onError({\n alias: this.alias,\n level: 'error',\n message: `event pump failed: ${String(error)}`\n })\n })\n }, delay)\n }\n}\n\nexport const makeSynchronizer = async (\n config: InitializerConfig\n): Promise<Synchronizer> => {\n const synchronizer = new Synchronizer(config.alias, config.network)\n await synchronizer.initialize(config)\n return synchronizer\n}\n"],"names":["RNDashShielded","NativeModules","parseJsonObject","value","JSON","parse","_unused","errorMessage","Tools","deriveViewingKey","_deriveViewingKey","_asyncToGenerator","mnemonicSeed","network","fullViewingKey","_x","_x2","apply","arguments","deriveShieldedAddress","_deriveShieldedAddress","account","deriveShieldedAddressFromSeed","_x3","_x4","_x5","isValidAddress","_isValidAddress","address","_x6","_x7","warmUpProver","_warmUpProver","isProverReady","_isProverReady","Synchronizer","alias","eventEmitter","NativeEventEmitter","subscriptions","_proto","prototype","stop","_stop","unsubscribe","initialize","_initialize","config","_config$mnemonicSeed","seed","seedHex","Error","defaultHost","defaultPort","_x8","startSync","_startSync","stopSync","_stopSync","_deriveShieldedAddress2","proposeTransfer","_proposeTransfer","opts","result","amountCredits","toAddress","memo","_x9","createTransfer","_createTransfer","proposalId","error","message","String","_x0","subscribe","callbacks","_this","pump","onError","level","timer","clearTimeout","undefined","forEach","subscription","remove","_pump","_this2","snap","poll","_this$callbacks","onBalanceChanged","onStatusChanged","onTransactionsChanged","onUpdate","availableCredits","totalCredits","status","lastStatus","name","transactions","scanProgress","networkBlockHeight","delay","setTimeout","_this2$callbacks","makeSynchronizer","_ref","synchronizer","_x1"],"mappings":"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"}