Futaba
TwitterBlog
  • 🌱Introduction
    • Introduction
    • Concept
    • Architecture
  • 🛠️Protocol
    • Gateway
      • Send
      • Receive
      • Estimate fee
      • Cache
    • Light Client
      • Request Query
      • Verify
      • Estimate fee
    • Relayer
    • Konoha
      • Chainlink Oracle
      • Herodotus
      • Lagrange
  • 💡Guide
    • Futaba Testnet
      • Balance query
      • Custom query
      • Access cache
      • Cross-chain voting
    • Quick Start
    • Customize Light Client
    • Example Apps
  • 📗References
    • FAQ
    • Contract addresses
    • Glossary
  • 🔗Links
    • Twitter
    • Blog
Powered by GitBook
On this page
  • Overview
  • How to calculate

Was this helpful?

  1. Protocol
  2. Gateway

Estimate fee

Calculate the fees required for query

Overview

This function calculates the fees required for the query. If the Gateway contract's query() sends less than the required fee, it is reverted as InvalidFee.

struct QueryRequest {
  uint32 dstChainId;
  address to;
  uint256 height;
  bytes32 slot;
}

function estimateFee(
  address lightClient,
  QueryType.QueryRequest[] memory queries
) public view returns (uint256);
Field
Description

lightClient

The address of the contract is to be verified

queries

An array of QueryRequest data

How to calculate

In estimateFee(), the function calculates the sum of the fees for each actor, such as Relayer, Oracle, etc.

There are two main categories of the fee;

  • Protocol fee

  • Verification fee

PreviousReceiveNextCache

Last updated 1 year ago

Was this helpful?

Of these, only the Protocol fee is calculated by Gateway contract's estimateFee() itself. The verification fee is calculated by of the Light Client Contract.

🛠️
estimateQueryFee()