Skip to content

v2.80.0

Choose a tag to compare

@superKalo superKalo released this 04 Nov 16:59
5a1bcc5

Changelog:

  • Added: Prevent token spoofing #1838
  • Added: Use an unique nonce for the user operation if there's a pending user op #1916
  • Changed: Delay email vault banner until you have a hot wallet with money #1899
  • Changed: Swap & Bridge fetch quote despite insufficient amount #1901
  • Changed: Filter out invalid routes in Swap & Bridge #1902
  • Changed: Break defiPositions.#updatePositions into multiple methods #1896
  • Changed: DeFi positions providers and error handling #1905
    • Adds a critical error if the call to debank fails
    • Fixes: networksWithPositionsByAccounts was not read from storage on initial load :/. Its value was lost after every extension restart
    • Fixes: the amount of assets coming from debank was not converted to BigInt
    • Fixes: error and providerErrors were reset when the network state is set to loading. This was causing the selected account portfolio to go back to the isAllReady false state if there has never been a successful update (because updatedAt is undefined and there is no error)
    • Removes state mutations from private methods to make the mutation flow easier to understand
    • Allows custom positions to be updated even if the call to debank fails
    • Divides the controller into testable private methods and adds additional complex tests
    • Replaces console.error instances with emitError so the errors are sent to Sentry
    • Makes the call to debank testable in unit tests
  • Changed: Sort routes by times as well (If the diff between the receive amounts is less than 1.2%, prioritize by time, else - amount) #1915
  • Changed: Unified place for reestimate + limit #1907
    • make a unified place for the re-estimate logic: inside signAccountOp
    • put a re-estimate limit of 20 times per signAccountOp instance. This is regarding the interval re-estimate. If the user adds a new call or makes a change to the request, it will still re-estimate as this is caused by an user action
    • once the re-estimate counter hits 10, the next re-estimate will fire more slowly: 10000 * reestimateCounter
  • Changed: Remove dash from "on chain" #1888
  • Changed: Unify and async-ify sign7702 / signTransactionTypeFour for external signer and GridPlus EIP-7702 compatibility #1882
    • Added: New 7702 smart contract for GridPlus (Lattice1), because of the problem with paymasterAndData and callData - those values in bytes are too huge, causing GridPlus device to throw "invalid request" or to crash and self-restart.
    • Changed: sign7702 now accepts raw data - object with chainId, contract, and nonce (needed for the GridPlus EIP-7702 integration) instead of a pre-computed hash
    • Changed: Ref all types from the KeystoreSignerInterface to reduce repetition
    • Changed: Make the common sign7702 and signTransactionTypeFour async, because signing operations with external signers is always async
  • Changed: Handle better Relayer call failures when importing accounts #1749
    • Changed: User is now able to proceed with account(s) import even if the (first) Relayer create identity call for a smart account fails. An interval starts in the background (under the Accounts controller) that retries to create smart account identity on every 15min.
    • Changed: A similar mechanism is wired-up for importing view-only accounts. It allows user to proceed if the (first) Relayer call that gets account identity fails. Then, getting account identity retries on every 15min.
    • Changed: Removed the obsolete newlyCreated flag for the Account interface.
    • Changed: Instead of console errors, send crash reports for the scenarios in the AccountPicker controller that should never happen.
    • Fixed: Force refresh initialPrivileges from identityRequests for Ambire smart accounts v2. This fixes pre-v5.30.0 imports where view-only -> reimport with key left initialPrivileges empty. And post-v5.30.0 this is safe, as Ambire v2 accounts always share the same privileges, because key management for them got never implemented.
  • Fixed: Estimation cannot load error #1891
  • Fixed: Discard pending state if block is less than current #1908
  • Fixed: Sorting error protection on routes #1918
  • Fixed: Pending account ops status updates on non-selected accounts #1910
    • After this change, pending account ops will be updated for all accounts with pending ops, not just the currently selected one. This ensures that if there are still pending ops for the selected account and the user quickly switches to another account, the pending ops will be updated during the next activity interval. When the user returns to the previous account, the outdated pending state will no longer be displayed.
    • Optimize the updateAccountsOpsStatuses function in activity to iterate over up to 50 submittedAccountOps per network, improving performance for accounts with large transaction histories.

Full Changelog: v2.79.2...v2.80.0