portal_flutter 0.1.0-alpha.11 copy "portal_flutter: ^0.1.0-alpha.11" to clipboard
portal_flutter: ^0.1.0-alpha.11 copied to clipboard

Flutter SDK for Portal - Stablecoin wallet infrastructure

0.1.0-alpha.11 #

Breaking Changes #

  • portal.backupWallet() now returns a PendingBackup instead of PortalBackupResponse (removed). Read the encrypted payload from pendingBackup.cipherText, persist it, then call pendingBackup.confirm() (or pendingBackup.discard() if your storage step fails).
  • Removed portal.swap() and its PortalSwapRequest / PortalSwapResult types. Use portal.trading.zeroX (0x DEX aggregator) or portal.trading.lifi (cross-chain) instead.

New APIs #

  • portal.buildEip155Transaction({chainId, to, token, amount}) — Build an unsigned EIP-155 transaction.
  • portal.buildSolanaTransaction({chainId, to, token, amount}) — Build an unsigned Solana transaction.
  • portal.evmAccountType.buildAuthorizationList() and portal.evmAccountType.build7702UpgradeTx() — Manual EIP-7702 upgrade flow. Both accept an optional subsidize flag. See the EIP-7702 tab in the example app for the full three-step flow.
  • Portal.configureGoogleStorage(...) now accepts backupOption, folderName, signOutAfterUse, and useNewExperimentalGoogleAuthApi — full parity with native SDK config knobs.
  • New PortalGDriveBackupOption enum: appDataFolder, appDataFolderWithFallback, customFolder.
  • portal.apiKey exposed as a public getter.
  • Portal native events exposed as a broadcast Stream<PortalEventData> via portal.events, with portal.emit(event, [data]) to emit events back to the SDK (e.g. approving or rejecting a manual signing request from your listener).
  • Backup + signing share metadata accessors: portal.getBackupShareMetadata() and portal.getSigningSharesMetadata().
  • Share management: portal.storedClientBackupShare(...) and portal.updateShareStatus(...) for reporting custodian-stored backup shares and updating share-pair status.
  • Portal-managed backups: portal.backupWallet() and portal.recoverWallet() now support custodian-managed cipherText storage, returning a PendingBackup you confirm once your storage step succeeds.
  • ZeroX (0x) DEX aggregator submodule: portal.trading.zeroX.getSources(), portal.trading.zeroX.getQuote(), and portal.trading.zeroX.getPrice().

Deprecations #

  • Portal.configureGoogleStorage(applicationName: ...) is deprecated; use folderName instead. Will be removed in the next minor.

Bug Fixes #

  • iOS: Pigeon completion handlers that return structured or list responses (getAssets, getBalances, getTransactions, getNftAssets, getTransactionDetails, getBackupShareMetadata, getSigningSharesMetadata, getAddresses, getClient, buildEip155Transaction, buildSolanaTransaction, evmAccountType.buildAuthorizationList, evmAccountType.build7702UpgradeTx) are now dispatched to the main thread, preventing a stack overflow crash during codec serialization of nested responses.
  • iOS: configureGoogleStorage now auto-resolves the top UIViewController so the Google Sign-In sheet has a presenter without callers wiring it manually.
  • Android: FlutterError in coroutine handlers is now caught and surfaced as a PortalException instead of crashing.
  • Android: Fixed Hypernative.scanEip712Tx URL path (eip712eip-712).
  • iOS & Android: Manual signing approve/reject events now fail fast with a NO_PENDING_REQUEST error when no matching pending request exists, and rejected events emit the payload type the provider expects — fixing cases where a manual signing request could hang indefinitely.
  • Android: request() now serializes non-string RPC results (objects and arrays) as JSON instead of relying on toString(), fixing malformed responses for methods that return structured data.
  • Android: configurePasskeyStorage now prepends https:// to webAuthnHost when the scheme is omitted, so passkey WebAuthn flows work with a bare host.
  • Android: Yield discovery (portal.yieldIntegrations.yieldxyz.discover()) now skips opportunities and reward-rate components containing enum values the SDK doesn't recognize yet, instead of throwing.
  • Android: availableRecoveryMethods() no longer throws on an unrecognized recovery method; unknown methods are filtered out.
  • Android: Backup/signing metadata accessors and 0x trading methods now surface a NOT_INITIALIZED error immediately when Portal isn't initialized.
  • PendingBackup.confirm() and discard() now clear the internal backup id so a pending backup can't be resolved twice.

Improvements #

  • Bumped PortalSwift to 7.2.1.
  • Bumped portal-android to 9.0.0:
    • HTTP 400 backend errors now include the raw response body in PortalException.details across all API methods, providing clearer diagnostics on failures.
    • portal.security.blockaid.scanUrl()rawResponseJson no longer contains a modals field (removed by the Blockaid backend).
    • portal.security.hypernative.scanSolanaTx() — within findingsJson, each trace's funcId changed from a plain string to {"type": "StringValue" | "BytesValue", "value": "..."} to handle both string and byte-array formats returned by the Hypernative API.
    • portal.security.hypernative.scanTransaction() / scanEip712Tx() — within findingsJson, each trace's status changed from an integer to a boolean, matching the Hypernative API.

0.1.0-alpha.10 #

Bug Fixes #

  • Android: HTTP 400 responses now surface errors as PortalException:
    • portal.delegations.approve
    • portal.delegations.revoke
    • portal.delegations.getStatus
    • portal.delegations.transferFrom
    • portal.getTransactionDetails
  • Android: Fixed release builds with proper proguard rules for response body fields.

Improvements #

  • Bumped portal-android to 8.4.0

0.1.0-alpha.9 #

Improvements #

  • Adding release automation

0.1.0-alpha.8 #

Firebase Auth Backup

  • portal.configureFirebaseStorage({required getToken}) - Configure Firebase as a backup storage method with a token callback
  • portal.backupWallet(method: PortalBackupMethod.firebase) - Backup wallet using Firebase auth
  • portal.recoverWallet(method: PortalBackupMethod.firebase) - Recover wallet using Firebase auth

0.1.0-alpha.7 #

New APIs #

Transaction Details

  • portal.getTransactionDetails(chain, txHash) - Get transaction details for a given chain and transaction hash

0.1.0-alpha.6 #

Bug Fixes #

  • Fixed Android Hypernative scan crash

0.1.0-alpha.5 #

New APIs #

Security Scanning

  • portal.security.blockaid.scanTransaction() - Scan a transaction for security risks using Blockaid
  • portal.security.blockaid.scanAddress() - Scan an address for security risks using Blockaid
  • portal.security.hypernative.scanTransaction() - Scan a transaction for security risks using Hypernative
  • portal.security.hypernative.scanAddress() - Scan an address for security risks using Hypernative

ERC-4337 Account Abstraction

  • eth_signUserOperation support via portal.request() - Sign UserOperations for Account Abstracted wallets

LiFi Cross-Chain Swaps

  • portal.trading.lifi.getQuote() - Get a quote for a cross-chain swap
  • portal.trading.lifi.getRoutes() - Get available routes for a swap
  • portal.trading.lifi.getRouteStep() - Get a specific step from a route
  • portal.trading.lifi.sendRouteTransaction() - Execute a route step transaction
  • portal.trading.lifi.sendSequentialSteps() - Execute all steps in a route sequentially
  • portal.trading.lifi.getStatus() - Check the status of a cross-chain transaction

EVM Account Type (EIP-7702)

  • portal.evmAccountType.getStatus() - Query the current EVM account type status
  • portal.evmAccountType.getAddresses() - Get EOA and smart contract addresses
  • portal.evmAccountType.upgradeTo7702() - Upgrade an EOA to EIP-7702 smart account

MPC Progress Stream

  • portal.onProgress - Stream of MPC operation progress events (create, backup, recover)

Balance API

  • portal.getBalances() - Get native and token balances for a chain

Log Level

  • portal.setLogLevel() - Set the SDK log level at runtime
  • logLevel parameter in portal.initialize() - Set log level during initialization

Bug Fixes #

  • Fixed iOS yield crash caused by Pigeon completion handlers running off main thread
  • Fixed Android delegation getStatus null pointer when no delegations exist

Improvements #

  • Dispatched MPC progress callbacks to main thread on iOS for thread safety
  • Used tokenAddress metadata key consistently in Android getBalances implementation
  • Added isClosed guard on progress stream controller to prevent crashes after dispose
  • Fixed dispose() ordering: unregister handler before closing stream controller
  • Added release automation CI/CD workflows for pub.dev publishing

0.1.0-alpha.4 #

New APIs #

Yield.xyz Integration

  • portal.yieldIntegrations.yieldxyz.discover() - Find yield opportunities
  • portal.yieldIntegrations.yieldxyz.enter() - Enter yield positions
  • portal.yieldIntegrations.yieldxyz.exit() - Exit yield positions
  • portal.yieldIntegrations.yieldxyz.manage() - Manage pending actions
  • portal.yieldIntegrations.yieldxyz.getBalances() - Query active balances
  • portal.yieldIntegrations.yieldxyz.getHistoricalActions() - View historical actions
  • portal.yieldIntegrations.yieldxyz.getTransaction() - Get transaction status
  • portal.yieldIntegrations.yieldxyz.track() - Track transaction on-chain

Delegation API

  • portal.delegations.approve() - Approve token delegation
  • portal.delegations.revoke() - Revoke token delegation
  • portal.delegations.getStatus() - Get delegation status
  • portal.delegations.transferFrom() - Transfer from delegated allowance

Bug Fixes #

  • Fixed Solana sol_signMessage on Android (platform-specific encoding)

0.1.0-alpha.3 #

  • Updated iOS podspec metadata

0.1.0-alpha.2 #

  • Updated README

0.1.0-alpha.1 #

  • Initial alpha release of Portal Flutter SDK
  • Stablecoin wallet infrastructure for Flutter apps
  • Support for iOS and Android platforms
0
likes
150
points
380
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Flutter SDK for Portal - Stablecoin wallet infrastructure

Homepage

License

MIT (license)

Dependencies

flutter, plugin_platform_interface, portal_flutter_android, portal_flutter_ios

More

Packages that depend on portal_flutter

Packages that implement portal_flutter