All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Fixed the error when trying to add gas for cosmos source chain from the axelarscan ui. #333
- update SDK to support Amplifier chains #334
- Add Linea and Polygon Sepolia chains to testnet
- Upgraded axelar-cgp-solidity to
6.3.0
to enable support for Node.js version >= 20 - Fixed an issue with the generation of
commandId
- Changed the type of
executeData
from0x${string}
tostring
to ensure compatibility with most libraries and clients - Corrected the documentation for the
estimateGasFee
function regarding gas limit calculation - Resolved an issue with the calculation of L1 gas fees when the source and destination tokens have different decimal places
- Improved the accuracy of
estimateGasFee
function by incorporating L1 rollup fee for destination L2 chain. - Fixed gas estimation for scroll and blast
- Fixed for
manualRelayToDestinationChain
to respect optionalprovider
parameter - Added support for recovery of cosmos-to-cosmos GMP calls
Breaking Changes:
The sourceChainTokenSymbol
will not be required anymore. If not specified, the native token of source chain will be used to calculate estimated fee. The following functions are affected:
calculateNativeGasFee
estimateGasFee
- Add configs for L2s on testnet; add configs for Blast, Fraxtal on mainnet
- Fix floating points issue for
executeGasMultiplier
inestimateGasFee
function.
Breaking Changes
AxelarQueryAPI: estimateGasFee
- gasLimit: Changed from optional (default 700,000) to required.
- gasMultiplier: Default changed from 1.1 to auto, using data from getFees.
AxelarGMPRecoveryAPI
- addNativeGas & addGasToCosmosChain:
gasLimit
is now required, removing the default700,000
.
- Remove unused internal APIs
- Add Fraxtal testnet
- Add
Immutable
to mainnet configs; updateImmutable
testnet RPC
- Fix BigNumberUnits utility to adjust for another
fractional component exceeds decimals
edge case - Add AddGasToCosmosChain method to AxelarGMPRecoveryAPI
- Remove singleton pattern that was used in the
getConfigs
function that caused an issue in toggling environments in the AxelarQueryAPI - Refactor "EvmChain" enum
- Update
manualRelayToDestChain
method, adding an additional parameter fortxEventIndex
that is used to confirm events on the network - Update
manualRelayToDestChain
method, adding an additional (optional) parameter formessageId
that is used to recover transactions for GMP transactions from Cosmos source chains - Add
Scroll
to testnet/mainnet configs,Celestia
,Centrifuge
to testnet/mainnet,Haqq
to mainnet,Provenance
,Sepolia
,Arbitrum-Sepolia
,Immutable
to testnet,Teritori
to mainnet - Updated Osmosis testnet to
osmosis-7
that points toosmo-test-5
- Fix the issue with
manualRelayToDestChain
where the web client incorrectly utilizes the provider from the injected browser wallet instead of the rpcUrl embedded in the SDK. This error arises when the injected wallet's network differs from the source chain. - update
manualRelayToDestChain
method to accepttxLogIndex
optional parameter - update
addGas
,addNativeGas
- Add
Linea
,Base
,Mantle
evm mainnet configs;Archway
,Aura
,IXO
,Neutron
,Provenance
,Sei
to cosmos mainnet configs; Polygon-zkEvm to evm configs - Update the
estimateGasFee
method onAxelarQueryAPI
to acceptBigNumberish
type forgasLimit
parameter - fix
doesTxMeetConfirmHt
andgetEventIndex
methods to search for EVM transaction receipt from Axelarscan API if not found from the source blockchain - fix
BigNumberUtils
to addressfractional component exceeds decimals
error, a valid edge case where floating point numbers can exceed specified atomic units
- Fix constant declaration for Optimism testnet
- Fix build issue in
0.13.2
with post-install script
- AxelarAssetTransfer
- add
sendToken
method that allows token transfers directly from a source chain (instead of using the deposit address method). This includes both Cosmos-based and EVM-based source chains.
- add
- AxelarGMPRecoveryAPI
- update
manualRelayToDestChain
method to include cosmos <> evm directions
- update
- Updated chain list constants to include recently-added chains (Linea testnet, Optimism testnet/mainnet), various Cosmos chains
- Technical upgrades
- added a post-install script to alert sdk consumers on new versions (if any) post 0.13.0
- upgraded downstream dependencies
- technical change, upgraded dependencies
- AxelarRecoveryAPI
- Fix
queryTransactionStatus
method to accept cosmos-based source chains - Add
expressExecuted
API response into the response object for thequeryTransactionStatus
method
- Fix
- AxelarQueryAPI
- Fix
estimateGasFee
method to allow for cosmos source chains, including adjustments to the way in which the numbers are calculated after swapping between currencies with different decimals - Fix: throw error instead of returning 0 in estimateGasFee
- Update
GMPParams
inestimateGasFee
method to acceptamountInUnits
- Fix
- AxelarGMPRecoveryAPI
- update the delay after transaction confirmation to 60 seconds before it finds the confirmed event on the axelar network (from 30 seconds originally)
- Add
Filecoin
EVM configs - Updated Osmosis testnet to
osmosis-6
that points toosmo-test-5
- add all current active chains (as of May 12 2023) to the
supported-chains-list
file - fix issue in generated deposit addresses for
wrap
transactions, addresses #267
- AxelarQueryAPI
- Update
estimateGasFee
function to allow user to see a more detailed response by passing in an additional parametergmpParams
, where they can also specify the details of the specific GMP call
- Update
- AxelarQueryAPI
- Fixed
estimateGasFee
function in how it handles theminGasPrice
parameter, which should compare the min to the destination chain gas price, whereas it was comparing to the source chain price originally. - Updated
estimateGasFee
to acceptisGMPExpressTransaction
parameter
- Fixed
- AxelarRecoveryAPI
- introduced wss subscription service (subscribeToTx) to invoke subscribe to specific transactions for updates
- fixed
addNativeGas
method so that it does not subtract out the fee the user originally paid (which has led to situations of adding zero gas)
- AxelarAssetTransfer
- adding feature to generate deposit addresses "offline" for erc-20 transfers
- AxelarGMPRecoveryAPI
- fixes to manualRelayToDestinationChain to first check if transaction is already confirmed but not broadcasted, and broadcast the transaction (as identified by command ID) if so
- update constants to include
BNBCHAIN
(in addition toBINANCE
)
- AxelarQueryAPI
- added
minGasPrice
parameter for theestimateGasFee
function.minGasPrice
is a floor set for the gas price in wei, used as override in case estimated gas price is below specified minimum.
- added
- AxelarGMPRecoveryAPI
- added
gasLimitBuffer
toEvmWalletDetails
object. Theexecute
function will now incorporate the use ofgasLimitBuffer
, providing an increased gas limit to the originally estimated gas value. As an example, if the estimated gas is300k
, with a gasLimitBuffer of100k
, the final gas limit will be400k
.
- added
- AxelarAssetTransfer
- (bugfix): normalize casing for chain ID and gas taken IDs
- AxelarQueryAPI
- fixed
getDenomFromSymbol
method that now erroneously returns native assets denom for erc20 input. bug was introduced when native assets were added to s3 asset configs
- fixed
- changed all method signatures to require chain IDs (as recognized by Axelar) instead of chain name. For example, in testnet, Ethereums (Goerli) is recognized as
ethereum-2
- added a chainId suggestion when passing wrong chainId e.g. chain name in
getTransferFee
api.
- added a chainId suggestion when passing wrong chainId e.g. chain name in
- AxelarQueryAPI
- added a query to retrieve all active chains on the network (
getActiveChain
) and updates all method implementations to ensure that invocations are only made to live chains - added
timeSpent
field to thequeryTransactionStatus
API. - added more possible values for
GMPStatus
enum. - added
getTransferLimit
query to retrieve the maximum transfer for an asset on a chain
- added a query to retrieve all active chains on the network (
getDepositAddress
updates:- update payload signature to accept a destructured object parameter. the method is still backwards compatible for previous invocations using regular parameters
- merged
getDepositAddressForNativeUnwrap
andgetDepositAddressForNativeWrap
method functionality intogetDepositAddress
method
- upgrade axelarjs-types dependency to
v0.27.0
- update default axelar rpc & lcd endpoints in testnet/mainnet from quickapi to imperator
- fix native gas estimates
- updated supported chains list
- updated
getDepositAddressForNativeUnwrap
to expose intermediary deposit address - removed salt argument from
getDepositAddressForNativeUnwrap
andgetDepositAddressForNativeWrap
- use bytes32
0x0
salt
- update
getDepositAddress
inAxelarAssetTransfer
to use chain identifiers - update
getDepositAddress
inAxelarAssetTransfer
to verify source & destination chain and provide suggestion - added chain identifiers list as object literal
- fixed destination address check bug
- added wrap/unwrap functionality
- [queryTransactionStatus] Changed error object type from
any
toGMPError
- [queryTransactionStatus] Fixed error object is undefined when "insufficient fee"
- [queryTransactionStatus] Added
approved
object for approval tx details
- update
queryTransactionStatus
inAxelarRecoveryApi
to include newexecuting
status. - update GET requests in
AxelarRecoveryApi
to disable cache. - fixed a regression issue caused in 0.11.0 in
AxelarAssetTransfer
, where thegetDepositAddress
method is no longer able to generate deposit addresses for cosmos-based destination chains, e.g. Axelar, Osmosis. Please update to this version if you are using this method. - [technical fix]: improving error messaging of REST responses.
- fixed a regression issue caused in 0.11.0 in
AxelarAssetTransfer
, where thegetDepositAddress
method is no longer able to generate deposit addresses for cosmos-based source chains, e.g. Axelar, Osmosis. Please update to this version if you are using this method. - added an additional default parameter in
estimateGasFee
onAxelarQueryAPI
to include a buffer to pad the calculated gas fee. this accounts for slippage that may occur throughout a tx's execution
- update to
queryTransactionStatus
method onAxelarRecoveryApi
to return additional optional fields forexecuted
andcallback
objects from the Axelarscan API response
- add
AxelarTransferAPI
to allow query transfer status for cross-chain transfer via deposit address or sendToken method. #154, addresses #143 - rename
axelarCachingServiceUrl
toaxelarGMPApiUrl
- Fixed an issue where the deposit address can be the same in the case of two parallel requests with different source chain names. #157
- UPDATE: this version caused a regression issue for deposit address generation for cosmos-based based source chains, e.g. Axelar, Osmosis, etc. Please update to 0.11.2
- updates
estimateGasFee
method to allow for input gastoken
- update the
AxelarGMPRecoveryAPI
to allow for rpc/lcd endpoint overrides in constructor for the API
- fixing a typo
estimateGasFee
method parameter forGasToken
symbol. It should beBNB
for Binance, previouslyBSC
.
- reduce testing time for
AxelarGMPRecoveryAPI.spec.ts
from about 3-4 mins to ~30s
- update AxelarGMPRecoveryAPI's
addGas
andaddNativeGas
methods to fetch gas receiver contract addresses remotely, replacing hard-coded values
- fix
execute
in AxelarGMPRecoveryAPI that returns wrong transaction status in some case. - accept
txLogIndex
(optional) toexecute
function to execute the right contract call which is needed when there're multipleContractCallWithToken
orContractCall
events emitted by Axelar Gateway contract associated with given transaction hash.
- add
getNativeGasBaseFee
to AxelarQueryAPI. This method gets the base fee in native token wei for a given source and destination chain combination. updateestimateGasFee
to add result ofgetNativeGasBaseFee
if native token is selected - fix
estimateGasFee
to handle decimal conversions, in cases where ERC20 token is selected as source token
- update
@axelar-network/axelarjs-types
dependency to v0.24.0. - add mainnet RPC endpoints for transaction recovery API, which can now toggle endpoints per environment
- add
getAssetConfigFromDenom
: #124 - fix
getTransferFee
andgetFeeForChainAndAsset
inAxelarQueryAPI
to accept RPC endpoint override: #141
- update
@axelar-network/axelarjs-types
dependency to v0.22.1.
changelog vs. 0.6.x. changelogs prior to 0.7.0 were not systematically captured, but they will be going forward.
- refactor to how chains and assets are instantiated. now fetches this list dynamically from a remote resource instead.
- in earlier versions, the list of chains and assets was hard-coded to the SDK version, meaning that any changes to chains or assets required a version bump in the SDK.
- any method that uses
loadChains
orloadAssets
changes to an asynchronous function that resolves to the expected response type, e.g.public getDenomFromSymbol(symbol: string, chainName: string): string
becomespublic getDenomFromSymbol(symbol: string, chainName: string): Promise<string>
. - Impacted methods:
AxelarQueryAPI
getDenomFromSymbol
getSymbolFromDenom
AxelarRecoveryAPI
getChainInfo
validateDestinationAddressByChainSymbol
andvalidateDestinationAddressByChainName
- refactor to LCD queries in
AxelarQueryAPI
to useaxelarjs-types
natively, rather than query params. - interfaces that were previously hard-coded in the SDK (such as
FeeInfoResponse
andTransferFeeResponse
) are now imported fromaxelarjs-types
- remove unused dependencies from package.json
- new axelarjs-types (based on axelar-core v20 upgrade): https://www.npmjs.com/package/@axelar-network/axelarjs-types/v/0.20.0