diff --git a/CHANGELOG.MD b/CHANGELOG.MD index dc8530d..db00035 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,5 +1,10 @@ # OST Wallet SDK Changelog +## Version 2.3.10 +* OstWalletSdk supports custom loader for OstWalletUI. To use custom loader, please update downstream sdk.
+iOS:`v2.3.5`
+Android:`v2.3.6` + ## Version 2.3.9 * Downstream iOS Sdk updated to `v2.3.4` diff --git a/README.md b/README.md index d80b329..7ef4255 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,9 @@ Starting version `2.3.1` application can also pass SDK config in the initialize "REQUEST_TIMEOUT_DURATION": 60, "SESSION_BUFFER_TIME": 3600, "PRICE_POINT_CURRENCY_SYMBOL": "USD", - "USE_SEED_PASSWORD": false + "USE_SEED_PASSWORD": false, + "NO_OF_SESSIONS_ON_ACTIVATE_USER": 1, + "ENABLE_IOS_DEVICE_RESTORE": false }; /** diff --git a/android/build.gradle b/android/build.gradle index b900699..b9c192a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -45,5 +45,5 @@ repositories { dependencies { implementation 'com.facebook.react:react-native:+' - implementation 'com.ost:ost-wallet-sdk-android:2.3.5' + implementation 'com.ost:ost-wallet-sdk-android:2.3.6' } diff --git a/android/src/main/java/com/ostwalletrnsdk/OstRNSdkJsonApiModule.java b/android/src/main/java/com/ostwalletrnsdk/OstRNSdkJsonApiModule.java index aa76e52..49db67e 100644 --- a/android/src/main/java/com/ostwalletrnsdk/OstRNSdkJsonApiModule.java +++ b/android/src/main/java/com/ostwalletrnsdk/OstRNSdkJsonApiModule.java @@ -15,6 +15,8 @@ import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableMap; +import com.ost.walletsdk.annotations.NonNull; +import com.ost.walletsdk.annotations.Nullable; import com.ost.walletsdk.network.OstJsonApi; import com.ost.walletsdk.network.OstJsonApiCallback; import com.ost.walletsdk.workflows.errors.OstError; @@ -25,9 +27,6 @@ import java.util.HashMap; import java.util.Map; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; - public class OstRNSdkJsonApiModule extends ReactContextBaseJavaModule { private final ReactApplicationContext reactContext; @@ -174,7 +173,7 @@ public void onOstJsonApiSuccess(@Nullable JSONObject data) { } @Override - public void onOstJsonApiError(@Nonnull OstError err, @Nullable JSONObject data) { + public void onOstJsonApiError(@NonNull OstError err, @Nullable JSONObject data) { try { if (null == data) data = new JSONObject(); diff --git a/android/src/main/java/com/ostwalletrnsdk/OstWalletRnSdkModule.java b/android/src/main/java/com/ostwalletrnsdk/OstWalletRnSdkModule.java index 50ee61a..fda3cbc 100644 --- a/android/src/main/java/com/ostwalletrnsdk/OstWalletRnSdkModule.java +++ b/android/src/main/java/com/ostwalletrnsdk/OstWalletRnSdkModule.java @@ -11,8 +11,6 @@ package com.ostwalletrnsdk; import android.graphics.Bitmap; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.Base64; import android.util.Log; @@ -22,6 +20,8 @@ import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.ReadableMap; import com.ost.walletsdk.OstSdk; +import com.ost.walletsdk.annotations.NonNull; +import com.ost.walletsdk.annotations.Nullable; import com.ost.walletsdk.ecKeyInteracts.UserPassphrase; import com.ost.walletsdk.models.entities.OstDevice; import com.ost.walletsdk.models.entities.OstSession; diff --git a/android/src/main/java/com/ostwalletrnsdk/OstWorkFlowCallbackImpl.java b/android/src/main/java/com/ostwalletrnsdk/OstWorkFlowCallbackImpl.java index 8bd5d80..f9910f9 100644 --- a/android/src/main/java/com/ostwalletrnsdk/OstWorkFlowCallbackImpl.java +++ b/android/src/main/java/com/ostwalletrnsdk/OstWorkFlowCallbackImpl.java @@ -17,6 +17,7 @@ import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.core.DeviceEventManagerModule; import com.ost.walletsdk.OstSdk; +import com.ost.walletsdk.annotations.Nullable; import com.ost.walletsdk.models.entities.OstBaseEntity; import com.ost.walletsdk.workflows.OstContextEntity; import com.ost.walletsdk.workflows.OstWorkflowContext; @@ -34,8 +35,6 @@ import java.util.HashMap; -import javax.annotation.Nullable; - public class OstWorkFlowCallbackImpl implements OstWorkFlowCallback { private static final String LOG_TAG = "OstWorkFlowCallbackImpl"; diff --git a/android/src/main/java/com/ostwalletrnsdk/ui/OstUICallbackImpl.java b/android/src/main/java/com/ostwalletrnsdk/ui/OstUICallbackImpl.java index d01c5ec..30f8d8a 100644 --- a/android/src/main/java/com/ostwalletrnsdk/ui/OstUICallbackImpl.java +++ b/android/src/main/java/com/ostwalletrnsdk/ui/OstUICallbackImpl.java @@ -8,6 +8,7 @@ import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.core.DeviceEventManagerModule; import com.ost.walletsdk.OstSdk; +import com.ost.walletsdk.annotations.Nullable; import com.ost.walletsdk.models.entities.OstBaseEntity; import com.ost.walletsdk.ui.OstPassphraseAcceptor; import com.ost.walletsdk.ui.OstUserPassphraseCallback; @@ -24,8 +25,6 @@ import java.util.HashMap; -import javax.annotation.Nullable; - public class OstUICallbackImpl implements OstUserPassphraseCallback, RequestAcknowledgedListener, FlowInterruptListener, diff --git a/documentation/OstWalletUI.md b/documentation/OstWalletUI.md index 1dea54d..41d091c 100644 --- a/documentation/OstWalletUI.md +++ b/documentation/OstWalletUI.md @@ -18,7 +18,7 @@ import {OstWalletSdkUI} from '@ostdotcom/ost-wallet-sdk-react-native'; ``` ### Set Theme Config -Theme for OstWalletSdkUI can be initialized by calling `setThemeConfig` API which setup OstWalletSdkUI theme config. To define custom theme config, please refer to [Theme Config](https://github.com/ostdotcom/ost-wallet-sdk-android/blob/release-2.3/documentation/ThemeConfig.md) documentation. +Theme for OstWalletSdkUI can be initialized by calling `setThemeConfig` API which setup OstWalletSdkUI theme config. To define custom theme config, please refer to [Theme Config Android](https://github.com/ostdotcom/ost-wallet-sdk-android/blob/release-2.3/documentation/ThemeConfig.md)/[Theme Config iOS](https://github.com/ostdotcom/ost-wallet-sdk-ios/blob/release-2.3/documentation/ThemeConfig.md) documentation. ```js // Define the content config @@ -39,7 +39,7 @@ Theme for OstWalletSdkUI can be initialized by calling `setThemeConfig` API whic ### Set Content Config Content for OstWalletSdkUI can be initialized by calling `setContentConfig` API which set-up OstWalletSdkUI content config. -To define custom content config, please refer to [Content Config](https://github.com/ostdotcom/ost-wallet-sdk-android/blob/release-2.3/documentation/ContentConfig.md) documentation. +To define custom content config, please refer to [Content Config Android](https://github.com/ostdotcom/ost-wallet-sdk-android/blob/release-2.3/documentation/ContentConfig.md)/[Content Config iOS](https://github.com/ostdotcom/ost-wallet-sdk-ios/blob/release-2.3/documentation/ContentConfig.md) documentation. ```js // Please update terms_and_condition.url as per your needs. @@ -68,6 +68,15 @@ To define custom content config, please refer to [Content Config](https://github */ OstWalletSdkUI.setContentConfig(content_config); ``` +### Set Loader Manager + +Application loader for OstWalletUI can be initialized by calling `setLoaderManager` API. This API is available in native SDK.

+Custom loader is supported from OstWalletSdk-native version Android v`2.3.6` Or iOS v`2.3.5`
+Please, verify OstWalletSdk version in `Cartfile`. +

+Custom loader needs to be written in native code (java, swift/Objective-C).
+Sample code for custom loader is available in respective platform directory. For [iOS](https://github.com/ostdotcom/ost-wallet-sdk-ios/blob/release-2.3/Samples/CustomLoader/OstMockCustomLoader.md) and [Android](https://github.com/ostdotcom/ost-wallet-sdk-android/blob/tem/customLoader/Samples/CustomLoader/OstMockCustomLoader.md) + ### Setup your Passphrase Prefix Delegate `Passphrase Prefix` is a salt provided by your application that assists in generation of User's recovery key using user's PIN. diff --git a/documentation/android_setup.md b/documentation/android_setup.md index 577af3d..9d66d3c 100644 --- a/documentation/android_setup.md +++ b/documentation/android_setup.md @@ -49,6 +49,15 @@ Create file `./android/app/src/main/assets/ost-mobilesdk.json` with application "USE_SEED_PASSWORD": false } ``` + +1. BlockGenerationTime: The time in seconds it takes to mine a block on auxiliary chain. +2. PricePointTokenSymbol: This is the symbol of base currency. So its value will be OST. +3. PricePointCurrencySymbol: It is the symbol of quote currency used in price conversion. +4. RequestTimeoutDuration: Request timeout in seconds for https calls made by ostWalletSdk. +5. PinMaxRetryCount: Maximum retry count to get the wallet Pin from user. +6. SessionBufferTime: Buffer expiration time for session keys in seconds. Default value is 3600 seconds. +7. UseSeedPassword: The seed password is salt to PBKDF2 used to generate seed from the mnemonic. When UseSeedPassword set to `true`, different deterministic salts are used for different keys. + **NOTE: These configurations are MANDATORY for successful operation. Failing to set them will significantly impact usage.** diff --git a/documentation/ios_setup.md b/documentation/ios_setup.md index 3adea7f..69222e3 100644 --- a/documentation/ios_setup.md +++ b/documentation/ios_setup.md @@ -15,7 +15,7 @@ Carthage looks at a file called `Cartfile` to determine which libraries to insta Add following entry in your `Cartfile` ```bash - github "ostdotcom/ost-wallet-sdk-ios" == 2.3.4 + github "ostdotcom/ost-wallet-sdk-ios" == 2.3.5 ``` Now to actually install everything run the following in your terminal: @@ -95,37 +95,41 @@ Create `OstWalletSdk.plist` file. This file has configuration attributes used by ``` - - - - BlockGenerationTime - 3 - PricePointCurrencySymbol - USD - RequestTimeoutDuration - 30 - PinMaxRetryCount - 3 - SessionBufferTime - 3600 - UseSeedPassword - - - + + + + BlockGenerationTime + 3 + PricePointTokenSymbol + OST + PricePointCurrencySymbol + USD + RequestTimeoutDuration + 30 + PinMaxRetryCount + 3 + SessionBufferTime + 3600 + UseSeedPassword + + EnableIOSDeviceRestore + + + ``` 1. BlockGenerationTime: The time in seconds it takes to mine a block on auxiliary chain. -2. PricePointCurrencySymbol: It is the symbol of quote currency used in price conversion. -3. RequestTimeoutDuration: Request timeout in seconds for https calls made by ostWalletSdk. -4. PinMaxRetryCount: Maximum retry count to get the wallet Pin from user. -5. SessionBufferTime: Buffer expiration time for session keys in seconds. -6. UseSeedPassword: Uses mnemonics and password to generate seed. +2. PricePointTokenSymbol: This is the symbol of base currency. So its value will be OST. +3. PricePointCurrencySymbol: It is the symbol of quote currency used in price conversion. +4. RequestTimeoutDuration: Request timeout in seconds for https calls made by ostWalletSdk. +5. PinMaxRetryCount: Maximum retry count to get the wallet Pin from user. +6. SessionBufferTime: Buffer expiration time for session keys in seconds. Default value is 3600 seconds. +7. UseSeedPassword: The seed password is salt to PBKDF2 used to generate seed from the mnemonic. When UseSeedPassword set to `true`, different deterministic salts are used for different keys. +8. EnableIOSDeviceRestore: When EnableIOSDeviceRestore is set to `true`, After app re-installation, SDK checks for available device key in Keychain for given user id. **These configurations are MANDATORY for successful operation. Failing to set them will significantly impact usage.** - - # Next Steps 1. [SDK Usage](../README.md#sdk-usage) diff --git a/package.json b/package.json index f294595..af517bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ostdotcom/ost-wallet-sdk-react-native", - "version": "2.3.9", + "version": "2.3.10", "description": "OST Wallet SDK for React Native applications.", "main": "./js/index.js", "repository": {