Android
You can find the latest updates for the Portal Android SDK below.
Last updated
Was this helpful?
You can find the latest updates for the Portal Android SDK below.
Last updated
Was this helpful?
# Changelog
All notable changes to this project will be documented in this file.
Possible Types of changes include:
- Added
- Changed
- Deprecated
- Removed
- Fixed
- Security
## 5.2.0
- Added MPC Enclave Sign Support
- Changed `Keychain` class to make it thread safe.
- Added ReceiveTestnetAsset and sentAsset helper functions to `Portal` class.
- Fixed a case where the error response was not being parsed correctly for HTTP 400 responses.
- General SDK code improvements
## 5.1.0
- Upgrade SDK to use the latest MPC binary
- Added `id` field to error objects coming from MPC (e.g., MPCError, PortalError)
- Changed the message format to include `id` as its part in error objects coming from MPC
- Deprecated the `code` field from error objects coming from MPC as it will be removed in future releases
- Made both `data` and `error` optional as in future updates of backend only one of these will be present in MPC responses and not both.
## 5.0.0 - 2024-12-06
- Added support for AppData folder backups with GDrive
- Added support for wallet customization in the dapps.
- Removed multiple deprecated constructors, fields and methods from main user facing classes
- Fixed incorrect signature being sent to Dapp browser
- Changed `mpc.backup()` method, it now returns a object with key and a callback that you the consumers must call to complete the backup.
- Added unit tests for GDrive related classes.
## 3.3.1 - 2024-11-08
- Removed the ability for the Javascript to continue running after the WebView is closed.
## 4.2.0 - 2024-10-31
- Add `buildTransaction` methods for ETH & SOL
- Add `getNFTAssets` method to get NFT assets by `chainId`
- Add `getAssets` method to get assets by `chainId`
- Remove SolanKt library from Portal SDK
## 4.1.7 - 2024-10-22
- Added function isWebSocketAllowed() function
## 4.1.6 - 2024-10-16
- Fixes cross-SDK recovery
## 4.1.5 - 2024-09-11
- Fix Gdrive backup current activity null bug
- Improve overall usage and handling of activity to avoid crashes
## 4.1.4 - 2024-09-09
- This version moves the `PasskeyStorage` and `GoogleStorage` class initializations out of the `Portal` initialization path.
- These Storage adapters will now be initialized when their respective `portal.configureXxxxxxxxStorage()` functions are invoked
## 4.1.3 - 2024-08-29
- PortalConnect Update
- Adds `emitGetSessionRequest()` to Connect class.
- Allows customers to retrieve previous session requests from dApps.
- This is primarily meant to be used in conjunction with mobile deeplinking to properly respond to a session request.
- Read more [here for Swift](https://docs.portalhq.io/guides/native-ios/connect-with-walletconnect#retrieve-session-request) and [here for Kotlin](https://docs.portalhq.io/guides/native-android/connect-with-walletconnect#retrieve-session-request).
- Fix chainId in signing request callback
- Fix `relyingPartyId` default overwrites in passkey backup
- Adds `PortalHttpUnauthorizedException` to throw when user token expires or is invalid
## 3.3.0 - 2024-08-15
- Add `canUsePasskeys()` helper method
## 4.1.2 - 2024-08-14
- Add default value for RPC Config in Portal constructor
- Add `canUsePasskeys()` helper method to Portal class.
- Add wallet lifecycle methods ([docs](https://docs.portalhq.io/guides/android/manage-wallet-lifecycle-states))
- Disable logs in production builds with R8/proguard enabled apps.
## 3.2.9 - 2024-08-14
- Disable logs in production builds with R8/proguard enabled apps.
## 4.1.1 - 2024-08-05
- Fixes solana share is erased when recovering
## 3.2.8 - 2024-08-01
- GDrive upgrades and bug fixes
## 4.1.0 - 2024-07-31
- Solana migration support for pre-multi wallet sdk versions. (Android v3 and iOS v3.0.x) [docs](https://docs.portalhq.io/resources/multi-wallet-migration-guides)
- Solana Eject ([iOS docs](https://docs.portalhq.io/guides/ios/eject-a-wallet), [android docs](https://docs.portalhq.io/guides/android/eject-a-wallet))
## 4.0.3 - 2024-07-11
- PortalConnect Update
- Adds `emitGetSessionRequest()` to Connect class.
- Allows customers to retrieve previous session requests from dApps.
- This is primarily meant to be used in conjunction with mobile deeplinking to properly respond to a session request.
- Read more [here for Swift](https://docs.portalhq.io/guides/native-ios/connect-with-walletconnect#retrieve-session-request) and [here for Kotlin](https://docs.portalhq.io/guides/native-android/connect-with-walletconnect#retrieve-session-request).
- Tracking SDK version on requests to Portal
- Fixed GDrive bug
- No longer creates an empty folder if a user attempts to recover with the incorrect gmail account.
## 3.2.7 - 2024-07-11
- PortalConnect Update
- Adds `emitGetSessionRequest()` to Connect class.
- Allows customers to retrieve previous session requests from dApps.
- This is primarily meant to be used in conjunction with mobile deeplinking to properly respond to a session request.
- Read more [here for Swift](https://docs.portalhq.io/guides/native-ios/connect-with-walletconnect#retrieve-session-request) and [here for Kotlin](https://docs.portalhq.io/guides/native-android/connect-with-walletconnect#retrieve-session-request).
- Tracking SDK version on requests to Portal
- Fixed GDrive bug
- No longer creates an empty folder if a user attempts to recover with the incorrect gmail account.
- Webview updates
- `PortalWebView` is now a proper View and can be used and controlled independently without using a fragment
- `PortalWebViewFragment` now uses this new `PortalWebView` fragment while providing the same old functionality so no changes are needed on consumers' side.
## 3.2.6 - 2024-07-08
- `PortalWebView` is now a proper View and can be used and controlled independently without using a fragment
- `PortalWebViewFragment` now uses this new `PortalWebView` fragment while providing the same old functionality so no changes are needed on consumers' side.
## 4.0.2 - 2024-06-26
- Stablize multi-wallet support
- Add send Solana helper function
- SDK API requests now also send the exact SDK version
- SDK now fully supports minification and have all the consumer proguard rules inside it. Consumers of the SDK don't need to worry about Portal SDK proguard/R8 rules.
- Remove Context from the Keychain constructor
- Multiple SDK bug fixes
## 3.2.5 - 2024-06-25
- Fix R8 Build failure
- Add more missing Progaurd rules
## 3.2.4 - 2024-06-25
- Bump maven version to 3.2.3
- Ignore R8 lint warnings
- Upgrade sample app AGP to latest version
## 3.2.3 - 2024-06-25
- Add missing proguard rules reported by customer
## 3.2.2 - 2024-06-17
- Publish v3 version of the sdk to maven
- Bump maven version name
- Make PortalErrorCodeTypes public
- Fixes `codes` is not a class member field so it is not accessible once the class has been initialized
## 4.0.1 - 2024-06-10
- GDrive share recovery issue due to cached access token
- Fix broken auto-approve feature
## 3.2.1 - 2024-06-10
- GDrive share recovery issue due to cached access token
- Change EvenBus higher order functions input lambdas return type to Unit instead of Void
## 3.2.0 - 2024-05-25
- Added ActivityResultManager internally to the sdk
- This is a breaking change that removes the need for you to call our sdk in the onActivityResult to receive results from Gdrive backup.
- This also removes the need to pass the context into the GoogleStorage and PasskeyStorage objects.
- This is all utilizing ActivityLifeCycleCallbacks
- Fixed a crash in storedClientBackupShare
- Improved PasskeyStorage
- Removed callbacks and added proper coroutines
- Added a field preferImmediatelyAvailableCredentials to allow for configuring this option. details here
- Added a check to error if the android device does not have the required android API version to run passkeys
## 3.0.9 - 2024-05-18
- Add missing consumer proguard rules
- Update SDK to use latest Android libraries
- Fix a passkey flow crash
## 3.0.8 - 2024-05-10
- Fix Json parsing type issues for HTTP requests
- Made gas field optional/nullable in transaction params
## 3.0.7 - 2024-03-22
- Adds optional field to Google Storage class: signoutAfterUse
- This will sign the user out of their google account that was used to run backup or recover.
- It requires the user to select the google account each time they run google backup or recover.
## 3.0.6 - 2024-03-15
- Adds support for Passkeys backup
- You can read more about setting up Passkey backups in the Android Backup Methods guide in our docs
- Updates to README
## 3.0.5 - 2024-03-08
- Removes portal.legacyRecover (deprecated).
- Removes WalletConnect v1 implementation (deprecated).
## 3.0.1 - 2024-02-17
- Added .getBackupShareMetadata() to get backup shares' details for a user.
- Added .getSigningShareMetadata() to get signing shares' details for a user.
## 3.0.0 - 2024-02-10
- Adds support for multi-backup.
- Updated staging domains for example app.
- Fix for Google Drive permission cancellation during backup.
## 2.1.1 - 2024-01-27
- Adds support for switching chains in the PortalWebView.
## 2.1.0 - 2024-01-20
- Eject feature available via the portal.mpc.ejectPrivateKey function.
## 2.0.13 - 2023-12-09
- Added convenience methods for ethGetBalance, ethEstimateGas, and ethGasPrice.
- Updated example apps to use the Sepolia chain instead of Goerli by default.
## 2.0.12 - 2023-12-01
- Support for page loading callbacks in WebView
## 2.0.11 - 2023-11-18
- Adds support for setting a custom nonce to Android.
- Makes the PortalWebView.webView and PortalWebView.webViewContentIsLoaded properties public in Android.
## 2.0.10 - 2023-11-10
- Added auto-connect functionality for the following dApps in the mobile WebViews:
- Aave (https://app.aave.com/)
- Arbitrum Bridge (https://bridge.arbitrum.io/)
- Compound Finance (https://app.compound.finance/?market=usdc-mainnet)
- Convex Finance (https://www.convexfinance.com/stake)
- MakerDAO (https://app.spark.fi/)
- Optimism Gateway (https://app.optimism.io/bridge/deposit)
- Rarible (https://rarible.com/)
- RocketPool (https://stake.rocketpool.net/)
- Uniswap (https://app.uniswap.org/#/swap)
- summer.fi (https://summer.fi/)
## 2.0.9 - 2023-11-04
- Users can now create multiple signing shares across all of the Portal SDKs. For example, a user can create a wallet on an iOS device and continue using that wallet on your web app!
- Use portal.provisionWallet (or portal.recoverWallet) to enable your users to create multiple signing shares across all of the Portal SDKs. Read more here.
## 2.0.8 - 2023-10-27
- Enhanced portal.getTransactions to support optional arguments: limit, offset, order, and chainId.
- Transactions from portal.getTransactions now include metadata.blockTimestamp and chainId. Read more here.
- Added support for allowanceTarget in Swap quotes.
- Introduced PortalWebView.
- Alpha release of Password/PIN Backups.
## 2.0.7 - 2023-10-21
- Resolves issues with WalletConnect when dApps exclude requiredNamespaces fields in their session proposal.
- Improved memory management for WalletConnect WebSocket connections
## 2.0.4 - 2023-09-30
- Optimization: Introduce an optional featureFlag into the Portal instance. Set optimized: true for a 10x speed boost for generate, backup, and recover!
- Added UserRecoverableGDriveException in the Gdrive storage class. This exception streamlines the process of catching user permission or authentication issues.
## 2.0.3 - 2023-09-22
- Enhanced MPC & API call tracking.
- Refreshed binary.
## 2.0.2 - 2023-09-15
- Fixed issue passing chainId from Portal Connect Server.
## 1.1.5 - 2023-09-15
- Fixed issue passing chainId from Portal Connect Server.
## 2.0.2 - 2023-09-09
- Portal Connect
- Adds a addChainsToProposal method. This will allow you to add all the chains in your gateway config to the proposal that you get from a dapp when you approve the connection. Docs for iOS and Android
- Adds error codes. Docs
## 2.0.0 - 2023-09-02
- Recovery Update:
- Breaking Change: The recover function now solely updates signing shares, returning the wallet address similar to generate.
- Earlier versions updated both signing and backup shares, with potentially confusing error handling.
- For those wanting the older method, use the new legacyRecover function.
- PortalConnect Enhancements:
- Boosted reliability with a new ping interval and advanced reconnection logic.
## 1.1.4 - 2023-08-25
- Adds support for transaction simulation
## 1.1.3 - 2023-08-11
### Added
- Request using `portal.api.storedClientBackupShareKey` on `backup` and `recover` following successfully saving the client backup share encryption key to the user's backup method.
### Changed
- Updated MPC binary.
## 1.0.1 2023-06-11
### Added
- Adds support for `connect.on('portal_dappSessionRequested', eventHandler)` event handlers to manage approval flows for Portal Connect sessions
- Adds support for `connect.on('portal_dappSessionRequestedV1', eventHandler)` event handlers to manage approval flows for Portal Connect sessions
- Adds support for `connect.emit('portal_dappSessionApproved', data)` event emitting to approve Portal Connect sessions
- Adds support for `connect.emit('portal_dappSessionRejected', data)` event emitting to reject Portal Connect sessions
### Fixed
- Improves support for delivery of signatures to dApps through Portal Connect
- Improves support for delivery of signing rejections to dApps through Portal Connect
- Improved stability support for WebSocket connections in Portal Connect, including automatic reconnection on timeouts and WebSocket failures
## 1.0.0 - 2023-06-09
### Added
- `portal.keychain.validateOperations`: Checks if you can write, read, and delete from keychain.
- validation checks for Keychain before running generate and recover.
- validation checks for the selected backup method before running backup and recover.
- `portal.api.storedClientBackupShare`.
- `portal.api.storedClientSigningShare`.
- wallet modification in-progress checks before running generate, backup, and recover.
### Changed
- Bump from v3 to v4 for default MPC version in classes.
- `portal.mpc.generate` & `portal.mpc.recover` use `portal.api.storedClientSigningShare` when keychain completes storage
## 0.9.2 - 2023-06-02
### Added
- Improved error messaging
- 0x Swaps integration
- Extensions to `portal.api`: `getNFT`, `getBalance`, `getTransactions`
### Security
- Internal mpc binary improvement
## 0.8.4 - 2023-04-21
### Added
- Support for `signTypedData_v3` and `signTypedData_v4`
- Support for `EIP-1559` transactions
### Changed
- v3 of MPC server