React Native SDK Changelog

3.0.0 (19-01-2024)

Features

  • Loans APIs are now stable on the sdk

❗️

BREAKING CHANGE

Note: For all partners using the alpha APIs of ScLoan

All methods of ScLoan will now return an object with type ScLoanSuccess and Throw an error of type ScLoanError instead of returning a String.

Bug Fixes

  • Fixed (Android) Sentry Package update to 7.1.0 following Google Play guidelines
  • Fixed (Android) Android 14 crash due to sentry package
  • Fixed (Android) Leadgen crash where pressing the back button while opening a broker account online crashes the app

2.3.1 (2023-12-08)

Bug Fixes

  • Fixed an issue where cancelling AuthenticationSession popup on logout does not close the sc-loader
  • Fixed an issue where Holdings Import was failing with internal_error:2000 due to incorrect INTENT_HOLDINGS_IMPORT constant value

Intents Impacted: All transactional intents & Logout.

2.3.0 (2023-10-17)

Bug Fixes

  • Fixed an issue causing the WebView to take up the font size of the device system settings. (Android)

Intents Impacted: All Transactional Intents, MF Holdings Import & smallplug.

2.1.1 (2023-05-17)

Bug Fixes

  • Fixed an issue causing the init method to return an undefined value.

Intents Impacted: N/A.

2.1.0 (2023-04-11)

Features

  • The SDK now supports OTP auto fill on MF Holdings Import and IN a/c opening(leadgen). The user is prompted to allow the SDK to read the first incoming message after the user reaches the OTP screen. If the user gives their consent then the SDK will read the OTP from the message and auto fill it for them.
The consent modal presented to the user. It contains the entire contents of the message so the user knows exactly which message he is allowing the SDK to read.

The consent modal presented to the user. It contains the entire contents of the message so the user knows exactly which message he is allowing the SDK to read.

2.0.2 (2023-03-29)

Dev Improvements

2.0.1 (2023-02-13)

Bug Fixes

  • Fixed an issue where the Add Funds flow would open up in a different browser(custom tab) than which the initial transaction started on. Now when the user wants to add funds, the flow opens in another Custom Tab of the same browser, where the session is still shared. (Android)
  • Fixed an issue where Dummy Orders were rejected due to market closed status. (Android & iOS)

Intents Impacted: Add Funds, Dummy Orders, Rebalance.

2.0.0 (2022-12-06)

Dev Improvements

  • Support for React Native New Architecture.
  • Support for react-native >= 0.69.

Intents Impacted: All intents

1.7.1 (2022-12-01)

Bug Fixes

  • Fixed an issue preventing smallplug UI from rendering correctly on iOS version 13 and below.
  • Fixed an issue causing build failures for Xcode 14.x.
  • Fixed an issue causing build failures when Mixpanel-swift is added as a dependency.

1.6.2 (11-11-2022)

Features

  • Mutual Funds Holdings Import: Added a feature enabling users to import a snapshot of their Mutual Funds Holdings natively in a seamless manner.
try {
      const res = await SmallcaseGateway.triggerMfTransaction(transactionId);
    } catch(err) {
      //Error callback
      //can be fetched using err.userInfo
    }

1.6.1 (19-10-2022)

Features

  • New error code 1014 for no_compatible_browser error in transactions. This happens when the user does not have any browsers installed on their device.(android)

Bug Fixes

  • Removed the restrictions on transactions to only whitelisted browsers. Now the sdk supports transactions on all browsers, but the user journey can suffer in some cases where the user is not using our recommended browsers.(android)

Recommended browsers : https://config.smallcase.com/gateway/mobileConfig/production/mobileConfig.json

  • Renamed mixpanel prop intent to Intent.(android)

Intents Impacted: All transactional intents

1.6.0 (23-09-2022)

Bug Fixes

  • Fixed an issue causing the SDK to return a hashmap response instead of a JSON response for transactions in PROCESSING state
  • Fixed an issue causing the SDK to return a hashmap response instead of a JSON response for SST Limit orders
  • Fixed an issue which caused the SDK to return smallcaseAuthToken along with lead status response
  • Fixed an issue which prevented the SDK from returning no_browser_found 4005 error for show orders

1.5.4 (08-09-2022)

Bug Fixes

  • Permanently removed arm64 architecture from for iOS simulators.

1.5.1 (02-08-2022)

Bug Fixes

  • Removed arm64 architecture from DEBUG build configuration for iOS simulators.

Intents Impacted: NA

1.5.0 (01-08-2022)

Features

  • The SDK will now share smallcaseAuthToken and broker values in addition to the error message and code for users performing a successful broker login but not completing the intended transaction successfully.

Syntax

{
   "data":{
      "broker":"kite-leprechaun",
      "smallcaseAuthToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbWFsbGNhc2VBdXRoSWQiOiI2MmVhMzkyODRlZmY1YmM4NjYwYWU0YzYiLCJpYXQiOjE2NTk1MTcyMDYsImV4cCI6MTY1OTUyMDgwNn0.qgYiZCxZxFrlcGgtvKmUqSaTpIyk4H2Mt2XWGfAYXqg"
   },
   "code":1012,
   "message":"user_cancelled"
}

Bug Fixes

  • Fixed an issue which caused the SDK to return an error response for a successful SMT transaction.
  • Fixed an issue which caused a failure in downloading the rebalance timeline of a smallcase (android).
  • Fixed an issue which caused no error data shared for market_closed 4005 and intent_not_enabled_for_broker 3000 errors.
  • Fixed an issue which caused the SDK to not share a transactionId post a successful CONNECT transaction.
  • Fixed an issue which caused an analytics event to register incorrect property value (android).
  • Fixed an issue which caused the iOS SDK to use the overriden value of CFBundleVersionString while deploying an app to the App Store (iOS).
  • Removed the default smallcase logo from smallplug header, SDK displays only the back (left) icon if a gateway's smallplug header icon is not available (iOS).
  • Fixed an issue which prevented SDK to share smallcaseAuthToken and broker values for consent_denied 1003 and transaction_expired 1005 error (iOS).
  • Fixed an issue which caused the SDK to crash for webhook_unreachable 3003 error (iOS).

Dev improvements

  • Added CI release scripts in package.json to streamline the SDK release process
  • Removed redundant method to fetch the SDK version from info.plist file

Intents Impacted: All Transactional and Non-Transactional Intents.

1.4.2 (21-07-2022)

Bug Fixes

  • Fixed an issue which caused the SDK version number to be accepted as null (android)
  • Fixed an issue which caused an incorrect smallcase gif animation to load with Lottie.
  • Removed the default Smartinvesting logo as a placeholder from smallplug header.

Dev Improvements

  • Disabled remote debugging on webViews.
  • Removed redundant mixpanel-swift dependency from podspec

1.4.1 (27-06-2022)

Bug Fixes

  • Fixed an issue which caused MixpanelApi to return a null instance.
  • Fixed an issue which caused smallplug to crash for null input arguments.
  • Added default header and back icon color in smallplug.

Dev Improvements

  • Exceptions raised by Glide are now caught and logged on Sentry.
  • removed unnecessary null safe checks in smallplug.

Intents Impacted: All Transactional Intents and smallplug.

1.4.0 (23-06-2022)

Features

  • Added partner branding to smallplug. With this new experience your app logos will be very accessible and prominent on all the screens inside smallplug.

  • Syntax:

try {
      const res = await SmallcaseGateway.launchSmallplugWithBranding(
        targetEndpoint,
        params, 
        headerColor, 
        headerOpacity, 
        backIconColor, 
        backIconOpacity);
    } catch(err) {
      //Error callback
      //can be fetched using err.userInfo
    }

// headerColor: This is the string HEX value of the color. eg: "#000000"
// headerOpacity: 0 <= value <=1, value should be between 0 and 1.
// backIconColor: This is the string HEX value of the color. eg: "#FFFFFF"
// backIconOpacity: 0 <= value <=1, value should be between 0 and 1.

The refactored smallplug window:

1242

smallcase Distribution Module: custom branding screenshot (on iOS)

1080

smallcase Distribution Module: custom branding screenshot (on Android)

  • Integrated Mixpanel sdk to track user events on iOS.

Bug Fixes

  • Fixed an issue on ANDROID with apps targeting API 30 and above where pressing the back button on the Chrome Custom Tab(while performing any transactions) would show the transaction loader indefinitely.
  • Fixed an issue on ANDROID where pressing the back button on the connect loader would still continue to open the Broker Chooser. Now it cancels the transaction and returns a user_cancelled error.
  • Fixed an issue on ANDROID where DM would open if launched during the SDK initialisation process. Now DM will only launch after SDK has FINISHED initialising.
  • Fixed an issue on ANDROID where on 5paisa PWA, no response is passed back from the SDK incase of back press.

Intents Impacted: All Transactional and Non Transactional Intents. DM.

1.2.4(30-05-2022)

Bug Fixes

  • Excluded arm64 architecture from ios simulator target.
  • Fixed an issue which caused Lead Gen to not return any response with 5paisa broker.

Intents Impacted: All Transactional Intents and Non-Transactional intent.

1.2.3(30-05-2022)

Bug Fixes

  • Smallcase Gateway rebranding issue on loading screen.

Intents Impacted: All Transactional Intents.

1.2.2(27-05-2022)

Bug Fixes

  • Fixed an issue which caused Show Orders feature to throw intent_not_enabled_for_broker 3000 error for connected leprechaun users.
  • Fixed an issue which caused login for iframe brokers to fail on STAG.

Intents Impacted: All Transactional Intents.

1.2.1(27-05-2022)

Bug Fixes

  • Fixed an issue which caused smallplug to crash while launching an URL with HTTP scheme and about:blank page.
  • Fixed an issue which caused login for iframe brokers to fail on STAG.

Intents Impacted: All Transactional Intents.

1.2.0(17-05-2022)

Features

  • Added SHOW_ORDERS non transactional intent
try {
  const showOrdersRes = await SmallcaseGateway.showOrders();
} catch (err) {
  //Error callback
  //Error can be fetched using err.userInfo
}

Bug Fixes

  • Fixed an issue which caused broker chooser to show only 2 brokers when navigated from show_orders to transactional flow
  • Fixed an issue which caused broker chooser to show more than allowed brokers for show_orders.
  • Fixed an issue in show_orders which caused the SDK to launch user investments landing page for iframe brokers like AxisDirect and HDFC Sec.
  • Added intent_not_enabled_for_broker 3000 error in case a connected user's broker tries to launch show_orders even if it is not allowed to.

Intents Impacted: NA (only non-transactional intents).

1.1.0(07-04-2022)

Features

  • Added SMT AMO cancellation

Bug Fixes

  • Lead Gen status response from 5paisa PWA screen and broker redirection screen
  • Fixed an issue which caused files of type .xlsx to fail downloading on smallcase module.

Dev improvements

  • Refactored mobile SDK version sent to gateway api.
  • Refactored smallcase gateway branding in connect-ui
  • Updated copy content in connect-ui.
    (for more details, please refer this)
  • Compiled the iOS framework with Xcode 13 (Swift 5.5) along with library evolution.
  • Fixed an issue which caused broker chooser to show only 1 broker when navigated from an intent with single available broker to an intent with available brokers > 1.

Intents Impacted: All Transactional Intents.

1.0.2(04-04-2022)

Dev improvements

  • Added a method to expose sdk version to the host module (internal-tracking).

Intents Impacted : NA.

1.0.1(15-03-2022)

Bug Fixes

  • Refactor: removed post install script from package.json file.

Intents Impacted : NA.

1.0.0(21-01-2022)

Features

  • Added Distribution Module to enable transactions without requiring a transactionId from the consumer. The consumer can launch the distribution module with a custom header text and a custom route along with any parameters.

  • Syntax:

try {
      const res = await SmallcaseGateway.launchSmallplug(targetEndpoint, params);
    } catch(err) {
      //Error callback
      //can be fetched using err.userInfo
    }
  • Integrated Mixpanel sdk to track user events.
  • Integrated Sentry sdk for logging exceptions and unknown error cases.

Bug Fixes

  • Fixed an issue which caused an order to cancel when the app was minimised.
  • Removed redundant orderConfig while communicating with broker chooser.
  • Fixed an issue which caused SMT transactions to fail for a GUEST user.
  • Added objc for using smallcase module.

Dev improvements

  • Upgraded mrmike ok2curl interceptor library to version 0.7.0.
  • Removed deprecated R8 from gradle properties.
  • Replaced Coil with Glide library for inflating remote images in ImageView
  • Added support for Xcode 13

Intents Impacted : All Transaction Intents.

0.9.0 (2022-01-03)

Bug Fixes

  • Fixed an issue which caused custom tab to destroy as soon as user navigates away from the app.
  • Fixed an issue which caused the SDK to be unresponsive when user clicks on back button on custom tab.
  • Fixed title and subtitle for connected users on gateway loading screen.
  • Fixed an issue which caused transactions to fail on iFrame brokers.

0.8.0 (2021-11-15)

Features

  • Added Lead Id and Lead Status in LeadGen response. SDK will now send the leadId and status of the application in response to triggerLeadGen method invocation

  • Syntax:

try {
      const res = await SmallcaseGateway.triggerLeadGenWithStatus(
        {name: 'John Doe'});
    } catch (err) {
      //catch SDK error here
    }

Bug Fixes

  • Fixed the title text of Axis Direct consent screen for SMT transactions.
  • Fixed leprechaun toggle flow in Broker Chooser. Clicking 10 times on Login with your broker will toggle the leprechaun mode for transactions.
  • Fixed an issue causing the SDK to return with init_sdk 3004 if the user logged out from the Broker Platform.

Dev improvements

  • Removed redundant network calls to check transactionId status.
  • Broker chooser would now close automatically once the transactionId expires (i.e. in 5 minutes)
  • Removed hardcoded IP address used for internal testing of jetpack compose.

Intents Impacted : All Transaction Intents.

0.6.0 (2021-08-17)

Features

  • Added broker name in Transaction responses.
    Sample transaction response
{
  "data": {
    "batches": [
      {
        "filled": 1,
        "variety": "regular",
        "buyAmount": 121,
        "sellAmount": 0,
        "orders": [
          {
            "orderType": "MARKET",
            "product": "CNC",
            "exchange": "NSE",
            "status": "COMPLETE",
            "quantity": 11,
            "tradingsymbol": "YESBANK",
            "transactionType": "BUY",
            "filledQuantity": 11,
            "averagePrice": 11,
            "exchangeOrderId": "611f4c58053f50b5bca736de611f4ce9053f50b5bca736e2"
          }
        ],
        "unplaced": [],
        "batchId": "611f4ce96cc52ec2a55af32d",
        "quantity": 1,
        "status": "COMPLETED",
        "completedDate": "2021-08-20T06:34:20.796Z",
        "transactionId": "TRX_ac3d3d23eddc45a48c627d32b2fa0282"
      }
    ]
  },
  "signup": false,
  "broker": "kite-leprechaun",
  "transactionId": "TRX_ac3d3d23eddc45a48c627d32b2fa0282",
  "smallcaseAuthToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbWFsbGNhc2VBdXRoSWQiOiI2MTFmNGNjNTAwMzIyY2E5NmIxOTVmZDciLCJpYXQiOjE2Mjk0NDEyNjUsImV4cCI6MTYyOTQ0NDg2NX0.sJkUtXGa8jg26XqyMcfHcdpRr_gm27gJ6qfr7NXm_E8"
}

Dev improvements

  • Refactored CONNECT Transaction response to a JSON string.
    Sample response for a new user on smallcase ecosystem
{
  "signup":true,
  "smallcaseAuthToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzbWFsbGNhc2VBdXRoSWQiOiI2MTFhMDMxYzAzMzY0YzgyNDdhYTVlNDgiLCJpYXQiOjE2MjkxMTA2MjAsImV4cCI6MTYyOTExNDIyMH0.c8CP9zjL9gKIFC1sTECaVpUTfmwrg0aTi1x89GXii5Q",
  "broker":"kite-leprechaun"
}

📘

Note

The signup key signifies whether a user is new to smallcase-ecosystem or not and it would only be visible to first-party gateway.

Bug Fixes

  • Fixed an issue which prevented LEAD_GEN window from getting closed.
  • Fixed an issue which caused gateway sdk to return with no_broker 1008 code while passing an empty broker list in triggerTransaction method (obj-c).

Intents Impacted : CONNECT, TRANSACTION, HOLDINGS_IMPORT, AUTHORISE_HOLDINGS, FETCH_FUNDS, SIP_SETUP