iOS
You can find the latest updates for the Portal iOS SDK below.
Last updated
Was this helpful?
You can find the latest updates for the Portal iOS 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
- Improved
## 5.0.0 - 2025-02-25
- Added MPC Enclave Sign Support.
- Added ReceiveTestnetAsset and sentAsset helper functions to `Portal` class.
- Added `PortalProtocol` to enable clients to mock our SDK for unit-testing.
- Changed `PortalWebView.WebViewControllerErrors` to `PortalWebView.PortalWebViewErrors` for a better naming convention.
## 4.2.1 - 2025-01-16
- Improved error codes throughout the sdk
- Deprecated `Portal.request()` with optional parameters and string method in favor of implementation with default parameters
- Added public properties to `BuildSolanaTransactionResponse` & `BuildEip115TransactionResponse` type
- Added Xcode documentation for Portal's public API functions
## 4.2.0 - 2024-12-05
- Add support for AppData folder backups with GDrive
## 4.1.0 - 2024-11-20
- Change `createWallet` to return non-optional eth and Solana addresses & recover wallet non-optional ETH address
- EIP-6963 Support in the Dapp Browser
- Add `wallet_getCapabilities` method to the provider
- Throw errors for `isWalletOnDevice` instead of returning false for errors
## 4.0.3 - 2024-11-1
- Add `portal.getRpcUrl(forChainId)`
## 4.0.2 - 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`
- Enhance the `errors` to have a proper `localizedDescription`
- Fix for the `GETTransactions` API response.
## 4.0.1 - 2024-10-16
- Fixes cross-SDK recovery
## 4.0.0 - 2024-09-16
- Breaking change to `PortalKeychain.metadata` to be instance member & thread-safe.
- Fixes the `Portal.isWalletBackedUp()` bug.
- Breaking change to handle the unauthorized session to throw `PortalRequestsError.unauthorized` instead of a generic error
## 3.2.3 - 2024-08-30
- 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 on [Swift](https://docs.portalhq.io/guides/native-ios/connect-with-walletconnect#retrieve-session-request) and [Kotlin](https://docs.portalhq.io/guides/native-android/connect-with-walletconnect#retrieve-session-request).
- Adds thread safe access to client
- Adds evaluate transaction function using evaluate endpoint
- Refer to the Portal API Documentation for more details
- Adds sol_getTransaction RPC request
## 3.2.2 - 2024-08-15
- Fix eject error handling
- Default rpc urls
- Webview made public
## 3.2.1 - 2024-08-05
- Hot-Fix: recovering bug after solana generate with no backup.
## 3.2.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))
## 3.1.12 - 2024-07-30
- Includes `chainId` on the payload provided to all `Provider.request()` approval hooks
## 3.1.11 - 2024-07-29
- Resolves issues with `featureFlag` propagation during backup and recovery
## 3.1.10 - 2024-07-26
- Resolves issues with `continuation.resume()` falling throught.
## 3.1.9 - 2024-07-26
- Resolves issues with feature flags being propagated in `PortalConnect` instances.
## 3.1.8 - 2024-07-22
- Resolves an issue with signing share lookup when upgrading from 3.0.x to 3.1.x
## 3.1.7 & 3.0.13 - 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 on [Swift](https://docs.portalhq.io/guides/native-ios/connect-with-walletconnect#retrieve-session-request) and [Kotlin](https://docs.portalhq.io/guides/native-android/connect-with-walletconnect#retrieve-session-request).
- Tracking SDK version on requests to Portal
## 3.1.6 - 2024-06-18
- updated swiftformat rules
- Fixed crash while setting `self.events[event] = event`
- Added test case for PortalConnect.swift
- Created new class for EventBus unit test
- Removed apiKey constraint
- Added support for updating RPC URL on chain changed
## 3.1.5 & 3.0.12 - 2024-06-12 & 2024-06-18
- Resolves once listener bug
- Resolves disconnect event emit bug
- Adds check to params for requests
- apiKey is now a private variable
- Adds count check to params for requests
## 3.0.11 - 2024-06-12
- Resolves once listener bug
- Resolves disconnect event emit bug
## 3.1.4 - 2024-05-18
- Solana Support
- Adds a helper sendSol function
- Adds a createSolanaRequest function
- Adds all of the Solana RPC methods to our Provider
- Adds the following Solana signing methods
- sol_signAndConfirmTransaction
- sol_signAndSendTransaction
- sol_signMessage
- sol_signTransaction
- Increase the min deployment version to iOS 15
- Adds the solanaSwift library as a dependency
## 3.0.6 - 2024-04-11
- Adds support for development in Xcode 15.3
## 3.0.5 - 2024-03-08
- Removes portal.legacyRecover (deprecated).
- Removes WalletConnect v1 implementation (deprecated).
## 3.0.4 - 2024-03-07
- Fixes a bug that prompted users for permission to access the local network.
## 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.
- Configurable relying party for Passkeys
- Set your own domain as the relying party for your passkeys!
## 3.0.0 - 2024-02-10
- Adds support for multi-backup.
- Updated staging domains for example app.
## 2.1.2 - 2024-02-02
- Support for client attestation when using the optimized: true feature flag
- Support for changing chains on a dApp in the WebView from the app Provider
- This allows for the setChainId or updateChain functions in your app to also control the chain of a PortalWebView
- Addition of eject support to eject an MPC wallet's private key
## 2.1.1 - 2024-01-27
- Adds support for switching chains in the PortalWebView.
- Fixes a bug with transaction rejection.
## 2.1.0 - 2024-01-20
- Eject feature available via the portal.mpc.ejectPrivateKey function.
- Fixes bug with request approvals and rejections the PortalWebView .
## 2.0.18 - 2024-01-13
- Fixes auto-connect to Aave in the PortalWebView.
- Adds other PortalWebView improvements:
- Adds support for opening new tabs in the same view.
- Fixes a force unwrap bug.
- Improves script inject point for more reliable auto-connect.
- Removes session persistence between sessions by default, but can be configured to be enabled.
## 2.0.16 - 2024-01-04
- Passkey + Enclave Storage (Alpha)
## 2.0.15 - 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.14 - 2023-12-01
- Support for page loading callbacks in WebView.
## 2.0.13 - 2023-11-18
- Adds support for setting a custom nonce to iOS.
- Makes the PortalWebView.webView and PortalWebView.webViewContentIsLoaded properties public in iOS.
## 2.0.12 - 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.11 - 2023-11-07
- Adds support for SPM directly in the PortalSwift repo
- Makes the PortalSwift repo public to work better with CI tools
## 2.0.10 - 2024-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.
- Improved auto-connection for Native iOS WebView.
## 2.0.9 - 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.
## 2.0.8 - 2023-10-21
- Resolves issues with WalletConnect when dApps exclude requiredNamespaces fields in their session proposal.
- The alpha release of our Password/PIN Backups is now included.
- Improved memory management for WalletConnect WebSocket connections.
## 2.0.5 - 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!
- Correction: Changed eth_sendTransaction to eth_signTypedData.
## 2.0.4 - 2023-09-22
- Enhanced MPC & API call tracking.
- Refreshed binary.
- Created SPM package.
## 2.0.3 - 2023-09-15
- Added support for the following RPC methods:
- eth_getBlockByNumber
- eth_getBlockTransactionCountByHash
- eth_getBlockTransactionCountByNumber
- eth_getLogs
- eth_getTransactionByBlockHashAndIndex
- eth_getTransactionByBlockNumberAndIndex
- eth_getBlockByHash
- eth_getTransatctionByHash
- eth_getUncleByBlockHashAndIndex
- eth_newBlockFilter
- eth_newFilter
- eth_uninstallFilter
- net_listening
- web3_clientVersion
- web3_sha3
- Fixed issue passing chainId from Portal Connect Server
## 1.1.10 - 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.8 - 2023-08-25
- Adds support for transaction simulation
## 1.1.7 - 2023-08-18
### Fixed
- Portal Connect typing issue for some dapps sending no optional namespaces.
- More errors delivered through the `portal_connectError` event.
### Changed
- Updated MPC binary.
## 1.1.6 - 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.
- Added unit tests for wallet safeguarding.
- Added e2e tests for the provider.
### Changed
- Updated MPC binary.
## 1.1.2 - 2023-06-11
### Fixed
- Multiple event listeners firing for a single `signingRequest`
- Only firing event handlers for that specific request and removing handlers for events that have already been fired
## 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
### Removed
- `getAvailability` from icloud storage
## 0.2.4 - 2023-06-02
### Added
- Improved error messaging
### Security
- Internal mpc binary improvement
## 0.2.3 - 2023-05-26
### Added
- Extension to `portal.api`: `getNFT`, `getTransactions`, `getBalances`
- 0x Swap integration
### Fixed
- Missing error check
## 0.1.9 - 2023-04-21
### Added
- Progress callbacks for MPC operations
- Completion handler for keychain operations
- Webview signing on background thread
- Support for `signTypedData_v3` and `signTypedData_v4`
### Changed
- v3 of MPC server
### Fixed
- signing share being nil on backup MPC operation
- Blocking the webview UI when signing