Releases: AmbireTech/ambire-common
Releases · AmbireTech/ambire-common
Release list
v2.81.0
Changelog:
- Changed: Optimize portfolio updates for unused networks #1917
- dds a new
maxDataAgeUnusedparam - Adds a new portfolio function
#getMaxDataAgeMsthat determines which maxDataAge to use (if any)
- dds a new
- 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
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
v2.80.1
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
v2.80.0
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.#updatePositionsinto multiple methods #1896 - Changed: DeFi positions providers and error handling #1905
- Adds a critical error if the call to debank fails
- Fixes:
networksWithPositionsByAccountswas 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:
errorandproviderErrorswere reset when the network state is set to loading. This was causing the selected account portfolio to go back to theisAllReadyfalse state if there has never been a successful update (becauseupdatedAtis undefined and there is noerror) - 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
privatemethods and adds additional complex tests - Replaces
console.errorinstances withemitErrorso 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/signTransactionTypeFourfor external signer and GridPlus EIP-7702 compatibility #1882- Added: New 7702 smart contract for GridPlus (Lattice1), because of the problem with
paymasterAndDataandcallData- those values in bytes are too huge, causing GridPlus device to throw "invalid request" or to crash and self-restart. - Changed:
sign7702now accepts raw data - object withchainId,contract, andnonce(needed for the GridPlus EIP-7702 integration) instead of a pre-computed hash - Changed: Ref all types from the
KeystoreSignerInterfaceto reduce repetition - Changed: Make the common
sign7702andsignTransactionTypeFourasync, because signing operations with external signers is always async
- Added: New 7702 smart contract for GridPlus (Lattice1), because of the problem with
- 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
newlyCreatedflag for theAccountinterface. - Changed: Instead of console errors, send crash reports for the scenarios in the AccountPicker controller that should never happen.
- Fixed: Force refresh
initialPrivilegesfromidentityRequestsfor Ambire smart accounts v2. This fixes pre-v5.30.0 imports where view-only -> reimport with key leftinitialPrivilegesempty. 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
Changelog:
- Fixed: RPC errors that aren't casted to
ProviderError(Sentry issue grouping and filtering relies on all rpc errors beingProviderErrorinstances) #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
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
fetchNoncefunction - 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.
- Extracted nonce fetching logic into a reusable
Full Changelog: v2.79.0...v2.79.1
v2.78.4
Changelog:
- Fixed: Handle ERC-4337 nonce discrepancies and inconsistent pending state leading to infinite loop #1903
- Extracted nonce fetching logic into a reusable
fetchNoncefunction - 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.
- Extracted nonce fetching logic into a reusable
Full Changelog: v2.78.3...v2.78.4
v2.78.3
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