The validateContractCall() function seems important, but I am not 100% clear on what gets validated and what my own contract code needs to do in terms of further validation to ensure that the message is legit and originated from "allowed" contract(s) on the source chain. I know other GMP services require you to register an "allowlist" of contract addresses, etc. -- what is the approach with Axelar?
Thank You
What Does The Axelar Function ValidateContractCall() Do?
118 views Asked by benjamin852 At
1
There are 1 answers
Related Questions in ETHEREUM
- Gas estimation failed | Returned error: gas required exceeds allowance (16966)
- Historical data scrapping / collection for Ethereum
- IERC20 token.transfer always fails when called from within smart contract
- Installation Private Blockchain
- Call Uniswap V3 QuoterV2 `quoteExactOutput()` function with dart (flutter)
- Can I swap with 1inch swap apis with forked hardhart?
- Ethereum: why are the addresses still generated from the uncompressed public keys?
- WEB3.PHP Contract getEvents
- Ethereum: how to generate a valid address from the public key?
- Merkle Tree that should handle both odd and even numbers of leaves
- Uniswap v3 flashloan remainging balance not correct after paying off the loan
- Fetching Approved USDT Amount from User to Admin Wallet Using Etherscan USDT Contract Code
- How data saved using a smart contract is stored in the Ethereum blockchain
- Understanding the process of setting up a Geth client on a private network and running a DApp
- uniswapRouter.getAmountsOut returns less value of token B than present in reverses
Related Questions in BLOCKCHAIN
- Sepolia test network ID
- Gas Estimation Fee on Tron Mainnet
- This is the solidity code to list nft in marketplace after minting but while calling makeItem function Error is showing that Faliled to estimate gas
- Trying to send transactions via a signer using my private key
- My question is regarding installation of a package in VS code but im getting an error in installing it
- Historical data scrapping / collection for Ethereum
- Installation Private Blockchain
- How to import rpc information without importing .env file or hardcoding on frontend?
- How do I speed up transaction filtering on solan blockchain?
- Undeclared identifier: VRF_V2_Wrapper.calculateRequestPrice()
- how to interpret and format iterest rates and index returned by aave event
- Can I swap with 1inch swap apis with forked hardhart?
- How to connect metamask to flutter mobile app
- Scraping 'offers' data from OpenSea
- Which web3 decentralized wallet is suitable to store my crypto assets and lock some of the tokens for certain time?
Related Questions in AXELAR
- Minting of Fantom token with Hardhat fails
- Getting 400 types.DepositStateRequest on AxelarTest Api
- Axelar Transaction mined but execution failed on CallContractWithToken
- GMP Transaction Stuck at Approving Stage
- CW20 vs. ERC20 For Interchain Transactions
- Build Cross-Chain DAPPs between EVM and Cosmos non-EVM chains
- what will happen if I execute a call GMP and provide a small gas that was insufficient ? what if I did not provide more gas to complete execution?
- Where does Axelar GMP Service gets the gas price for destination chain from?
- High Gas Fees Across Many Testnets
- Is there a Specific Axelar Executor Address I can Whitelist?
- How to predict gas on source chain, in the contract itself with Axelar?
- Axelar "Transaction Underpriced" Error On Token Deployment For BSC
- What Does The Axelar Function ValidateContractCall() Do?
- Unhandled Runtime Error On Axelar Examples
- Mechanisms of Interaction Between Different Networks with Axelar
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
What is getting validated here is that the execution of the function is coming from the Axelar network. The Axelar validator set owns the key which controls the Gateway contract on each chain it's deployed on.
This key is generated by many "key shares". Each validator controls a given amount of key shares based on how much AXL they have staked. Transactions are confirmed after a vote by the validators. Only after a successful consensus by the validator set the Gateway contract is executed by this key.
The validateContractCall() is making sure that the key triggering the function is, in fact coming from the Axelar validator set after completing the above process.
Worth noting that in the actual definition of this function:
We pass in the
sourceChainandsourceAddressmanually, so it is also worth validating that the call is coming from the correct source chain and source contract address in addition to validating that the call is coming from the Axelar network.Here are some good resources if you want to read up more on this!