Fee Controller

All chain related functions which are not vault dependent

Functions

Create an instance
const fee = new FeeController({
    baseUrl: 'http://localhost:8000',
    walletType: {
        embedded: true, // for external wallet it should be false
        supportAa: boolean
    },
    selectedChainName,
    environment = "mainnet",
    aa,
    selectedWallet,
} as TriaArgs);
Get Send Fee
getSendFee({
    chain,
    payload,
  }: {
    chain: ChainData;
    payload: Send;
  }): Promise<FeeResponse>
Check Token Allowance
checkTokenAllowance({
    triaName,
    payload,
    chain,
  }: {
    triaName: string;
    payload: Approve;
    chain: ChainData;
  }): Promise<CheckTokenAllowanceResponse>;
export interface Approve {
  tokenAddress: string;
  amount: number;
  spender: string;
}
export interface CheckTokenAllowanceResponse {
  success: boolean;
  allowance?: boolean;
  message?: string;
}
  • Can be used to show Approve button or Swap button

  • Can be used to check allowance for the pay token and then proceed to Approve or the Txn requested for (like Mint, Swap, etc)

Get Approve Fee
getApproveFee({
    triaName,
    chain,
    payload,
  }: {
    triaName: string;
    chain: ChainData;
    payload: Approve;
  }): Promise<FeeResponse>
export interface Approve {
  tokenAddress: string; // e.g. USDC token
  amount: number; // eg. 1 MATIC
  spender: string; // contract address approving for
}
Get Call Contract Fee
getCallContractFee({
    triaName,
    chain,
    contractDetails,
  }: {
    triaName: string;
    chain: ChainData;
    contractDetails: ContractDetails;
  }): Promise<FeeResponse>;
export interface ContractDetails {
  contractAddress: string;
  abi: Object[];
  functionName: string;
  args: [];
  value?: number; // e.g. 1, if 1 MATIC to transfer, and 0 if no native token to be paid needed, if paying in ERC20 token need not be specified, use approve function for the same
}
Get Send NFT Fee
  • Use tokenAddress and tokenId, to getNFTDetails from User Controller.

Types

FeeResponse
ChainData

Last updated