Skip to content

Releases: AmbireTech/ambire-common

v2.81.0

Choose a tag to compare

@superKalo superKalo released this 11 Nov 16:36
5919986

Changelog:

  • Changed: Optimize portfolio updates for unused networks #1917
    • dds a new maxDataAgeUnused param
    • Adds a new portfolio function #getMaxDataAgeMs that determines which maxDataAge to use (if any)
  • Changed: Tiny account controller improvements #1928
    • Changed: reduce the view only identity retrieval and smart account identity create retry to 5 min
    • Changed: make some comments giving context public vs private
    • Change: omit some default flags
  • Changed: Clean up obsolete "newlyCreated" flags on the accounts in storage #1926
  • Changed: Portfolio remove latest pending #1925
  • Changed: Make the humanizer 4x faster with this simple trick #1930
  • Fixed: Handle missing account state edge case (rare scenario where a request is triggered for a network that has no available account state (and no previous state to fall back to)) #1938

Full Changelog: v2.80.3...v2.81.0

v2.80.3

Choose a tag to compare

@superKalo superKalo released this 11 Nov 15:25
e358659

Changelog:

  • Fixed: Un-batch debug trace call as it could affect performance #1933
  • Fixed: Do not update signAccountOp if the request has changed #1934
  • Fixed: Updates by reference instead of index in activity.ts to prevent race state mix #1936

Full Changelog: v2.80.2...v2.80.3

v2.80.2

Choose a tag to compare

@superKalo superKalo released this 06 Nov 17:05
f7f799d

Changelog:

  • Fixed: Race condition in #onAccountPickerSuccess causing Smart Accounts sometimes to get imported as view-only (due to associatedKeys getting corrupted) #1929

Full Changelog: v2.80.1...v2.80.2

v2.80.1

Choose a tag to compare

@superKalo superKalo released this 05 Nov 14:39
d752351

Changelog:

  • Added: Apps Catalog v2 #1869
    • Implemented App Catalog v2 with dynamic and more extended list of apps that we fetch from DefiLlama
    • Added storage migration from dapps to dappsV2
    • Extend the item structure of the predefined dapps
    • Added "Ambire Governance" to the apps catalog positioned right after "Ambire Rewards"
    • Fetching and updating the latest dapps from DefiLlama runs once per version update. If the initial fetch fails, a retry mechanism will trigger during user inactivity to avoid slowing down the extension, since the fetched data is quite large.
  • Changed: Delete obsolete findAccountDomainFromPartialDomain #1921 and #1924
  • Fixed: DeFi positions custom and debank merging and fallback mechanism #1920
  • Fixed: Crash when reading stkWALLET/WALLET token price in projected rewards calculation #1922

Full Changelog: v2.80.0...v2.80.1

v2.79.3

Choose a tag to compare

@superKalo superKalo released this 05 Nov 12:36
7b66add

Changelog:

  • Fixed: Crash when reading stkWALLET/WALLET token price in projected rewards calculation #1922

Full Changelog: v2.79.2...v2.79.3

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

v2.79.2

Choose a tag to compare

@superKalo superKalo released this 04 Nov 15:53
55064cd

Changelog:

  • Fixed: RPC errors that aren't casted to ProviderError (Sentry issue grouping and filtering relies on all rpc errors being ProviderError instances) #1909
  • Fixed: Throw an error and do not continue on with the execution in sign account op on error #1911
  • Changed: Project reward latest changes #1913

Full Changelog: v2.79.1...v2.79.2

v2.79.1

Choose a tag to compare

@superKalo superKalo released this 30 Oct 13:57
1c413a2

Changelog:

  • Added: JPYC as a fee token in the extension #1898
    • Adds JPYC as a gas tank fee token, so users can pay fees using the JPYC stablecoin
    • Tweaks Swap & Bridge config so that JPYC variants does not appear in the default lists on supported chains: Ethereum, Avalanche and Polygon (for one reason or another)
  • Fixed: Handle ERC-4337 nonce discrepancies and inconsistent pending state leading to infinite loop #1903
    • Extracted nonce fetching logic into a reusable fetchNonce function
    • Added infinite loop prevention with a counter for 4337 nonce discrepancy retries
    • Implemented pending state correction in account state updates to handle RPC inconsistencies. If the block tag is pending & we have a fetched latest state, we check each nonce against the latest state. If the pending nonce is lower than the latest state, we override the res also, we check isDeployed, isSmarterEoa & isEOA. We do this because rogue RPCs sometimes mess up the pending state.

Full Changelog: v2.79.0...v2.79.1

v2.78.4

Choose a tag to compare

@superKalo superKalo released this 30 Oct 10:47
4a08bb3

Changelog:

  • Fixed: Handle ERC-4337 nonce discrepancies and inconsistent pending state leading to infinite loop #1903
    • Extracted nonce fetching logic into a reusable fetchNonce function
    • Added infinite loop prevention with a counter for 4337 nonce discrepancy retries
    • Implemented pending state correction in account state updates to handle RPC inconsistencies. If the block tag is pending & we have a fetched latest state, we check each nonce against the latest state. If the pending nonce is lower than the latest state, we override the res also, we check isDeployed, isSmarterEoa & isEOA. We do this because rogue RPCs sometimes mess up the pending state.

Full Changelog: v2.78.3...v2.78.4

v2.78.3

Choose a tag to compare

@superKalo superKalo released this 29 Oct 10:00
d71c199

Changelog:

  • Added: JPYC as a fee token in the extension #1898
    • Adds JPYC as a gas tank fee token, so users can pay fees using the JPYC stablecoin
    • Tweaks Swap & Bridge config so that JPYC variants does not appear in the default lists on supported chains: Ethereum, Avalanche and Polygon (for one reason or another)

Full Changelog: v2.78.2...v2.78.3