react-native-zcash 0.3.1 → 0.3.3

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
@@ -1,5 +1,13 @@
1
1
  # React Native Zcash
2
2
 
3
+ ## 0.3.3 (2023-06-22)
4
+
5
+ - fixed: Update the Android build.gradle to use the upstream-specified Kotlin version and upstream-specified appcompat library version.
6
+
7
+ ## 0.3.2 (2022-12-20)
8
+
9
+ - getBirthdayHeight: Remove Android specific network name and use host and port for both platforms
10
+
3
11
  ## 0.3.1 (2022-12-15)
4
12
 
5
13
  - Add `getBirthdayHeight` method to query blockheight without an active synchronizer
@@ -1,26 +1,15 @@
1
1
  buildscript {
2
- ext.versions = [
3
- 'kotlin': '1.5.0',
4
- 'zcash': '1.5.0-beta01',
5
- 'room': '2.3.0'
6
- ]
7
- repositories {
8
- mavenLocal()
9
- google()
10
- mavenCentral()
11
- jcenter()
12
- maven {
13
- url 'https://jitpack.io'
14
- }
15
- maven {
16
- url "https://plugins.gradle.org/m2/"
17
- }
18
- }
2
+ def kotlinVersion = rootProject.ext.has('kotlinVersion')
3
+ ? rootProject.ext.get('kotlinVersion')
4
+ : '1.5.20'
19
5
 
20
- dependencies {
21
- classpath 'com.android.tools.build:gradle:4.0.2'
22
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
23
- }
6
+ repositories {
7
+ mavenCentral()
8
+ google()
9
+ }
10
+ dependencies {
11
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}"
12
+ }
24
13
  }
25
14
 
26
15
  apply plugin: 'com.android.library'
@@ -31,26 +20,11 @@ def safeExtGet(prop, fallback) {
31
20
  rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
32
21
  }
33
22
 
34
- def DEFAULT_COMPILE_SDK_VERSION = 28
35
- def DEFAULT_BUILD_TOOLS_VERSION = "28.0.2"
36
- def DEFAULT_MIN_SDK_VERSION = 19
37
- def DEFAULT_TARGET_SDK_VERSION = 27
38
-
39
23
  android {
40
- compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
41
- buildToolsVersion safeExtGet('buildToolsVersion', DEFAULT_BUILD_TOOLS_VERSION)
42
- compileOptions {
43
- sourceCompatibility JavaVersion.VERSION_1_8
44
- targetCompatibility JavaVersion.VERSION_1_8
45
- }
46
- kotlinOptions {
47
- jvmTarget = JavaVersion.VERSION_1_8
48
- }
24
+ compileSdkVersion safeExtGet('compileSdkVersion', 32)
49
25
  defaultConfig {
50
- minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
51
- targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION)
52
- versionCode 1
53
- versionName "1.0"
26
+ minSdkVersion safeExtGet('minSdkVersion', 23)
27
+ targetSdkVersion safeExtGet('targetSdkVersion', 32)
54
28
  }
55
29
  lintOptions {
56
30
  abortOnError false
@@ -58,32 +32,22 @@ android {
58
32
  }
59
33
 
60
34
  repositories {
61
- mavenLocal()
62
- google()
63
- jcenter()
64
- // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
65
35
  maven {
66
- url("../node_modules/react-native/android")
36
+ url('../node_modules/react-native/android')
67
37
  }
38
+ google()
39
+ mavenCentral()
68
40
  }
69
41
 
70
42
  dependencies {
71
- // React-Native
72
- implementation 'com.facebook.react:react-native:+'
73
-
74
- // Zcash
75
- implementation "cash.z.ecc.android:zcash-android-sdk:${versions.zcash}"
76
-
77
- // Process Room annotations
78
- kapt "androidx.room:room-compiler:${versions.room}"
43
+ implementation 'com.facebook.react:react-native:+'
79
44
 
80
- implementation "androidx.paging:paging-runtime-ktx:2.1.2"
81
- implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9"
82
- implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9"
45
+ // Compiler plugin for Room annotation support:
46
+ kapt 'androidx.room:room-compiler:2.3.0'
83
47
 
84
- implementation ("androidx.appcompat:appcompat:1.3.1") {
85
- version {
86
- strictly '1.3.1'
87
- }
88
- }
48
+ implementation 'androidx.appcompat:appcompat:1.4.1'
49
+ implementation 'androidx.paging:paging-runtime-ktx:2.1.2'
50
+ implementation 'cash.z.ecc.android:zcash-android-sdk:1.5.0-beta01'
51
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
52
+ implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9'
89
53
  }
@@ -177,12 +177,8 @@ class RNZcashModule(private val reactContext: ReactApplicationContext) :
177
177
  }
178
178
 
179
179
  @ReactMethod
180
- fun getBirthdayHeight(network: String = "mainnet", promise: Promise) = promise.wrap {
181
- var networkInt = 1
182
- if (network != "mainnet") {
183
- networkInt = 0
184
- }
185
- var lightwalletService = LightWalletGrpcService(reactApplicationContext, ZcashNetwork.from(networkInt))
180
+ fun getBirthdayHeight(host: String, port: Int, promise: Promise) = promise.wrap {
181
+ var lightwalletService = LightWalletGrpcService(reactApplicationContext, host, port)
186
182
  val height = lightwalletService?.getLatestBlockHeight()
187
183
  lightwalletService?.shutdown()
188
184
  height
package/lib/rnzcash.rn.js CHANGED
@@ -41,7 +41,6 @@ function _asyncToGenerator(fn) {
41
41
  }
42
42
 
43
43
  var RNZcash = reactNative.NativeModules.RNZcash;
44
- var isAndroid = reactNative.Platform.OS === 'android';
45
44
  var KeyTool = {
46
45
  deriveViewingKey: function () {
47
46
  var _deriveViewingKey = _asyncToGenerator(function* (seedBytesHex, network) {
@@ -68,13 +67,12 @@ var KeyTool = {
68
67
  return deriveSpendingKey;
69
68
  }(),
70
69
  getBirthdayHeight: function () {
71
- var _getBirthdayHeight = _asyncToGenerator(function* (network, host, port) {
72
- var args = isAndroid ? [network] : [host, port];
73
- var result = yield RNZcash.getBirthdayHeight.apply(RNZcash, args);
70
+ var _getBirthdayHeight = _asyncToGenerator(function* (host, port) {
71
+ var result = yield RNZcash.getBirthdayHeight(host, port);
74
72
  return result;
75
73
  });
76
74
 
77
- function getBirthdayHeight(_x5, _x6, _x7) {
75
+ function getBirthdayHeight(_x5, _x6) {
78
76
  return _getBirthdayHeight.apply(this, arguments);
79
77
  }
80
78
 
@@ -88,7 +86,7 @@ var AddressTool = {
88
86
  return result;
89
87
  });
90
88
 
91
- function deriveShieldedAddress(_x8, _x9) {
89
+ function deriveShieldedAddress(_x7, _x8) {
92
90
  return _deriveShieldedAddress.apply(this, arguments);
93
91
  }
94
92
 
@@ -104,7 +102,7 @@ var AddressTool = {
104
102
  return result;
105
103
  });
106
104
 
107
- function isValidShieldedAddress(_x10, _x11) {
105
+ function isValidShieldedAddress(_x9, _x10) {
108
106
  return _isValidShieldedAddress.apply(this, arguments);
109
107
  }
110
108
 
@@ -120,7 +118,7 @@ var AddressTool = {
120
118
  return result;
121
119
  });
122
120
 
123
- function isValidTransparentAddress(_x12, _x13) {
121
+ function isValidTransparentAddress(_x11, _x12) {
124
122
  return _isValidTransparentAddress.apply(this, arguments);
125
123
  }
126
124
 
@@ -169,7 +167,7 @@ var Synchronizer = /*#__PURE__*/function () {
169
167
  yield RNZcash.initialize(initializerConfig.fullViewingKey.extfvk, initializerConfig.fullViewingKey.extpub, initializerConfig.birthdayHeight, initializerConfig.alias, initializerConfig.networkName, initializerConfig.defaultHost, initializerConfig.defaultPort);
170
168
  });
171
169
 
172
- function initialize(_x14) {
170
+ function initialize(_x13) {
173
171
  return _initialize.apply(this, arguments);
174
172
  }
175
173
 
@@ -182,7 +180,7 @@ var Synchronizer = /*#__PURE__*/function () {
182
180
  return result;
183
181
  });
184
182
 
185
- function getLatestNetworkHeight(_x15) {
183
+ function getLatestNetworkHeight(_x14) {
186
184
  return _getLatestNetworkHeight.apply(this, arguments);
187
185
  }
188
186
 
@@ -208,7 +206,7 @@ var Synchronizer = /*#__PURE__*/function () {
208
206
  return result;
209
207
  });
210
208
 
211
- function getTransactions(_x16) {
209
+ function getTransactions(_x15) {
212
210
  return _getTransactions.apply(this, arguments);
213
211
  }
214
212
 
@@ -225,7 +223,7 @@ var Synchronizer = /*#__PURE__*/function () {
225
223
  return result;
226
224
  });
227
225
 
228
- function sendToAddress(_x17) {
226
+ function sendToAddress(_x16) {
229
227
  return _sendToAddress.apply(this, arguments);
230
228
  }
231
229
 
@@ -269,7 +267,7 @@ var makeSynchronizer = /*#__PURE__*/function () {
269
267
  return synchronizer;
270
268
  });
271
269
 
272
- return function makeSynchronizer(_x18) {
270
+ return function makeSynchronizer(_x17) {
273
271
  return _ref2.apply(this, arguments);
274
272
  };
275
273
  }();
@@ -1 +1 @@
1
- {"version":3,"file":"rnzcash.rn.js","sources":["../src/react-native.ts"],"sourcesContent":["import {\n EventSubscription,\n NativeEventEmitter,\n NativeModules,\n Platform\n} from 'react-native'\n\nimport {\n BlockRange,\n ConfirmedTransaction,\n InitializerConfig,\n Network,\n SpendFailure,\n SpendInfo,\n SpendSuccess,\n SynchronizerCallbacks,\n UnifiedViewingKey,\n WalletBalance\n} from './types'\n\nconst { RNZcash } = NativeModules\n\ntype Callback = (...args: any[]) => any\n\nconst isAndroid = Platform.OS === 'android'\n\nexport const KeyTool = {\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 deriveSpendingKey: async (\n seedBytesHex: string,\n network: Network\n ): Promise<string> => {\n const result = await RNZcash.deriveSpendingKey(seedBytesHex, network)\n return result\n },\n getBirthdayHeight: async (\n network: 'mainnet' | 'testnet',\n host: string,\n port: number\n ): Promise<number> => {\n const args = isAndroid ? [network] : [host, port]\n const result = await RNZcash.getBirthdayHeight(...args)\n return result\n }\n}\n\nexport const AddressTool = {\n deriveShieldedAddress: async (\n viewingKey: string,\n network: Network\n ): Promise<string> => {\n const result = await RNZcash.deriveShieldedAddress(viewingKey, network)\n return result\n },\n isValidShieldedAddress: async (\n address: string,\n network: Network = 'mainnet'\n ): Promise<boolean> => {\n const result = await RNZcash.isValidShieldedAddress(address, network)\n return result\n },\n isValidTransparentAddress: async (\n address: string,\n network: Network = 'mainnet'\n ): Promise<boolean> => {\n const result = await RNZcash.isValidTransparentAddress(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 start(): Promise<String> {\n const result = await RNZcash.start(this.alias)\n return result\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.fullViewingKey.extfvk,\n initializerConfig.fullViewingKey.extpub,\n initializerConfig.birthdayHeight,\n initializerConfig.alias,\n initializerConfig.networkName,\n initializerConfig.defaultHost,\n initializerConfig.defaultPort\n )\n }\n\n async getLatestNetworkHeight(alias: string): Promise<number> {\n const result = await RNZcash.getLatestNetworkHeight(alias)\n return result\n }\n\n async getShieldedBalance(): Promise<WalletBalance> {\n const result = await RNZcash.getShieldedBalance(this.alias)\n return result\n }\n\n async getTransactions(range: BlockRange): Promise<ConfirmedTransaction[]> {\n const result = await RNZcash.getTransactions(\n this.alias,\n range.first,\n range.last\n )\n return result\n }\n\n rescan(height: number): void {\n RNZcash.rescan(this.alias, height)\n }\n\n async sendToAddress(\n spendInfo: SpendInfo\n ): Promise<SpendSuccess | SpendFailure> {\n const result = await RNZcash.spendToAddress(\n this.alias,\n spendInfo.zatoshi,\n spendInfo.toAddress,\n spendInfo.memo,\n spendInfo.fromAccountIndex,\n spendInfo.spendingKey\n )\n return result\n }\n\n // Events\n\n subscribe({ onStatusChanged, onUpdate }: SynchronizerCallbacks): void {\n this.setListener('StatusEvent', onStatusChanged)\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","isAndroid","Platform","OS","KeyTool","deriveViewingKey","seedBytesHex","network","result","deriveSpendingKey","getBirthdayHeight","host","port","args","AddressTool","deriveShieldedAddress","viewingKey","isValidShieldedAddress","address","isValidTransparentAddress","Synchronizer","alias","eventEmitter","NativeEventEmitter","subscriptions","start","stop","unsubscribe","initialize","initializerConfig","fullViewingKey","extfvk","extpub","birthdayHeight","networkName","defaultHost","defaultPort","getLatestNetworkHeight","getShieldedBalance","getTransactions","range","first","last","rescan","height","sendToAddress","spendInfo","spendToAddress","zatoshi","toAddress","memo","fromAccountIndex","spendingKey","subscribe","onStatusChanged","onUpdate","setListener","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 {\n EventSubscription,\n NativeEventEmitter,\n NativeModules\n} from 'react-native'\n\nimport {\n BlockRange,\n ConfirmedTransaction,\n InitializerConfig,\n Network,\n SpendFailure,\n SpendInfo,\n SpendSuccess,\n SynchronizerCallbacks,\n UnifiedViewingKey,\n WalletBalance\n} from './types'\n\nconst { RNZcash } = NativeModules\n\ntype Callback = (...args: any[]) => any\n\nexport const KeyTool = {\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 deriveSpendingKey: async (\n seedBytesHex: string,\n network: Network\n ): Promise<string> => {\n const result = await RNZcash.deriveSpendingKey(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}\n\nexport const AddressTool = {\n deriveShieldedAddress: async (\n viewingKey: string,\n network: Network\n ): Promise<string> => {\n const result = await RNZcash.deriveShieldedAddress(viewingKey, network)\n return result\n },\n isValidShieldedAddress: async (\n address: string,\n network: Network = 'mainnet'\n ): Promise<boolean> => {\n const result = await RNZcash.isValidShieldedAddress(address, network)\n return result\n },\n isValidTransparentAddress: async (\n address: string,\n network: Network = 'mainnet'\n ): Promise<boolean> => {\n const result = await RNZcash.isValidTransparentAddress(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 start(): Promise<String> {\n const result = await RNZcash.start(this.alias)\n return result\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.fullViewingKey.extfvk,\n initializerConfig.fullViewingKey.extpub,\n initializerConfig.birthdayHeight,\n initializerConfig.alias,\n initializerConfig.networkName,\n initializerConfig.defaultHost,\n initializerConfig.defaultPort\n )\n }\n\n async getLatestNetworkHeight(alias: string): Promise<number> {\n const result = await RNZcash.getLatestNetworkHeight(alias)\n return result\n }\n\n async getShieldedBalance(): Promise<WalletBalance> {\n const result = await RNZcash.getShieldedBalance(this.alias)\n return result\n }\n\n async getTransactions(range: BlockRange): Promise<ConfirmedTransaction[]> {\n const result = await RNZcash.getTransactions(\n this.alias,\n range.first,\n range.last\n )\n return result\n }\n\n rescan(height: number): void {\n RNZcash.rescan(this.alias, height)\n }\n\n async sendToAddress(\n spendInfo: SpendInfo\n ): Promise<SpendSuccess | SpendFailure> {\n const result = await RNZcash.spendToAddress(\n this.alias,\n spendInfo.zatoshi,\n spendInfo.toAddress,\n spendInfo.memo,\n spendInfo.fromAccountIndex,\n spendInfo.spendingKey\n )\n return result\n }\n\n // Events\n\n subscribe({ onStatusChanged, onUpdate }: SynchronizerCallbacks): void {\n this.setListener('StatusEvent', onStatusChanged)\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","KeyTool","deriveViewingKey","seedBytesHex","network","result","deriveSpendingKey","getBirthdayHeight","host","port","AddressTool","deriveShieldedAddress","viewingKey","isValidShieldedAddress","address","isValidTransparentAddress","Synchronizer","alias","eventEmitter","NativeEventEmitter","subscriptions","start","stop","unsubscribe","initialize","initializerConfig","fullViewingKey","extfvk","extpub","birthdayHeight","networkName","defaultHost","defaultPort","getLatestNetworkHeight","getShieldedBalance","getTransactions","range","first","last","rescan","height","sendToAddress","spendInfo","spendToAddress","zatoshi","toAddress","memo","fromAccountIndex","spendingKey","subscribe","onStatusChanged","onUpdate","setListener","eventName","callback","t","push","addListener","arg","forEach","subscription","remove","makeSynchronizer","synchronizer"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { BlockRange, ConfirmedTransaction, InitializerConfig, Network, SpendFail
3
3
  export declare const KeyTool: {
4
4
  deriveViewingKey: (seedBytesHex: string, network: Network) => Promise<UnifiedViewingKey>;
5
5
  deriveSpendingKey: (seedBytesHex: string, network: Network) => Promise<string>;
6
- getBirthdayHeight: (network: 'mainnet' | 'testnet', host: string, port: number) => Promise<number>;
6
+ getBirthdayHeight: (host: string, port: number) => Promise<number>;
7
7
  };
8
8
  export declare const AddressTool: {
9
9
  deriveShieldedAddress: (viewingKey: string, network: Network) => Promise<string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-zcash",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "Zcash library for React Native",
5
5
  "homepage": "https://github.com/EdgeApp/react-native-zcash",
6
6
  "repository": {
@@ -1,8 +1,7 @@
1
1
  import {
2
2
  EventSubscription,
3
3
  NativeEventEmitter,
4
- NativeModules,
5
- Platform
4
+ NativeModules
6
5
  } from 'react-native'
7
6
 
8
7
  import {
@@ -22,8 +21,6 @@ const { RNZcash } = NativeModules
22
21
 
23
22
  type Callback = (...args: any[]) => any
24
23
 
25
- const isAndroid = Platform.OS === 'android'
26
-
27
24
  export const KeyTool = {
28
25
  deriveViewingKey: async (
29
26
  seedBytesHex: string,
@@ -39,13 +36,8 @@ export const KeyTool = {
39
36
  const result = await RNZcash.deriveSpendingKey(seedBytesHex, network)
40
37
  return result
41
38
  },
42
- getBirthdayHeight: async (
43
- network: 'mainnet' | 'testnet',
44
- host: string,
45
- port: number
46
- ): Promise<number> => {
47
- const args = isAndroid ? [network] : [host, port]
48
- const result = await RNZcash.getBirthdayHeight(...args)
39
+ getBirthdayHeight: async (host: string, port: number): Promise<number> => {
40
+ const result = await RNZcash.getBirthdayHeight(host, port)
49
41
  return result
50
42
  }
51
43
  }
@@ -1,22 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>SchemeUserState</key>
6
- <dict>
7
- <key>RNZcash.xcscheme_^#shared#^_</key>
8
- <dict>
9
- <key>orderHint</key>
10
- <integer>28</integer>
11
- </dict>
12
- </dict>
13
- <key>SuppressBuildableAutocreation</key>
14
- <dict>
15
- <key>58B511DA1A9E6C8500147676</key>
16
- <dict>
17
- <key>primary</key>
18
- <true/>
19
- </dict>
20
- </dict>
21
- </dict>
22
- </plist>