The InterestRateClient class provides methods to interact with the interest rate management system of the Aave protocol on the Aptos blockchain. It extends the AptosContractWrapperBaseClass and includes functionalities for configuring and calculating interest rates, managing rate strategies, and retrieving rate parameters for assets.

This client is designed to work with the interest rate contracts and provides a high-level API for interest rate operations. The client can be instantiated in two ways:

  1. Using the constructor directly with a provider and optional signer
  2. Using the static buildWithDefaultSigner method which automatically configures the client with the provider's pool profile account
// Using buildWithDefaultSigner
const provider = new AptosProvider();
const client = InterestRateClient.buildWithDefaultSigner(provider);

// Using constructor directly
const provider = new AptosProvider();
const signer = provider.getPoolProfileAccount();
const client = new InterestRateClient(provider, signer);

// Get interest rate strategy for a reserve
const strategy = await client.getReserveInterestRateStrategy(reserveAddress);

The AptosProvider instance used to interact with the Aptos blockchain.

Optional Ed25519Account signer for transaction signing.

Hierarchy (View Summary)

Constructors

Properties

interestRateContract: InterestRateContract

Methods

  • Builds a transaction for the specified user, function, and arguments.

    Parameters

    • user: AccountAddress

      The account address of the user initiating the transaction.

    • functionId: `${string}::${string}::${string}`

      The identifier of the Move function to be called.

    • funcArgs: (EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes)[]

      An array of arguments for the entry function.

    • typeArgs: string[] = []

    Returns Promise<SimpleTransaction>

    A promise that resolves to a SimpleTransaction object.

  • Calculates the current liquidity rate and current variable borrow rate for a given reserve.

    Parameters

    • unbacked: bigint

      The amount of unbacked assets.

    • liquidityAdded: bigint

      The amount of liquidity added to the reserve.

    • liquidityTaken: bigint

      The amount of liquidity taken from the reserve.

    • totalDebt: bigint
    • reserveFactor: bigint

      The reserve factor.

    • reserve: AccountAddress

      The address of the reserve account.

    • virtualUnderlyingBalance: bigint

      The virtual balance of the aToken underlying.

    Returns Promise<{ currentLiquidityRate: bigint; currentVariableBorrowRate: bigint }>

    An object containing the current liquidity rate and current variable borrow rate.

  • Calls a view method on the Aptos blockchain.

    Type Parameters

    • T extends MoveValue[]

      The type of the return value, which extends an array of MoveValue.

    Parameters

    • functionId: `${string}::${string}::${string}`

      The identifier of the function to call.

    • funcArgs: (EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes)[]

      The arguments to pass to the function.

    • typeArgs: string[] = []

      Optional generic type arguments for the function (e.g. ["0x1::aptos_coin::AptosCoin"]).

    Returns Promise<T>

    • A promise that resolves to the result of the view method call.
  • Funds an account with a specified amount.

    Parameters

    • account: AccountAddress

      The address of the account to be funded.

    • amount: bigint

      The amount to fund the account with, in bigint.

    Returns Promise<UserTransactionResponse>

    A promise that resolves to a UserTransactionResponse.

  • Retrieves the Aptos balance of a specified account.

    Parameters

    • account: Ed25519Account

      The Ed25519 account object.

    • accountAddress: AccountAddress

      The address of the account to retrieve the balance for.

    • OptionalversionToWaitFor: bigint

      (Optional) The specific version to wait for before retrieving the balance.

    Returns Promise<bigint>

    A promise that resolves to the balance of the account in bigint.

  • Retrieves the base variable borrow rate for a given asset.

    Parameters

    • asset: AccountAddress

      The account address of the asset.

    Returns Promise<bigint>

    A promise that resolves to the base variable borrow rate as a bigint.

  • Retrieves events associated with a specific account.

    Parameters

    • account: AccountAddress

      The address of the account to retrieve events for.

    • limit: number

      The maximum number of events to retrieve.

    Returns Promise<
        {
            account_address: string;
            creation_number: any;
            data: any;
            event_index: any;
            indexed_type: string;
            sequence_number: any;
            transaction_block_height: any;
            transaction_version: any;
            type: string;
        }[],
    >

    A promise that resolves to an array of event objects, each containing:

    • account_address: The address of the account.
    • creation_number: The creation number of the event.
    • data: The data associated with the event.
    • event_index: The index of the event.
    • sequence_number: The sequence number of the event.
    • transaction_block_height: The block height of the transaction.
    • transaction_version: The version of the transaction.
    • type: The type of the event.
    • indexed_type: The indexed type of the event.
  • Retrieves the maximum variable borrow rate for a given asset.

    Parameters

    • asset: AccountAddress

      The account address of the asset.

    Returns Promise<bigint>

    A promise that resolves to the maximum variable borrow rate as a bigint.

  • Retrieves the optimal usage ratio for a given asset.

    Parameters

    • asset: AccountAddress

      The account address of the asset for which to get the optimal usage ratio.

    Returns Promise<bigint>

    A promise that resolves to the optimal usage ratio as a bigint.

  • Returns the full InterestRateData object for the given reserve, in ray

    Parameters

    • reserve: AccountAddress

      The address of the reserve account.

    Returns Promise<InterestRateDataRay>

    The InterestRateDataRay object for the given reserve.

  • Returns the full InterestRateData object for the given reserve, in bps

    Parameters

    • reserve: AccountAddress

      The address of the reserve account.

    Returns Promise<InterestRateDataRay>

    The InterestRateDataRay object for the given reserve.

  • Retrieves the events associated with a given transaction hash.

    Parameters

    • txHash: HexInput

      The hash of the transaction to retrieve events for.

    Returns Promise<{ data: unknown }[]>

    A promise that resolves to an array of objects containing the event data.

    This method fetches the transaction details using the provided Aptos provider. It then checks if the transaction response is of type BlockMetadataTransactionResponse or UserTransactionResponse to extract the events. The event data is parsed from JSON and returned in an array.

  • Retrieves the variable rate slope 1 for a given asset.

    Parameters

    • asset: AccountAddress

      The address of the asset for which to get the variable rate slope 1.

    Returns Promise<bigint>

    A promise that resolves to a bigint representing the variable rate slope 1 of the specified asset.

  • Retrieves the variable rate slope 2 for a given asset.

    Parameters

    • asset: AccountAddress

      The address of the asset for which to get the variable rate slope 2.

    Returns Promise<bigint>

    A promise that resolves to the variable rate slope 2 as a bigint.

  • Sends a transaction and awaits the response.

    Parameters

    • functionId: `${string}::${string}::${string}`

      The ID of the Move function to be called.

    • funcArgs: (EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes)[]

      An array of arguments for the entry function.

    • typeArgs: string[] = []

    Returns Promise<CommittedTransactionResponse>

    A promise that resolves to the committed transaction response.

  • Sets the interest rate strategy for a given reserve asset.

    Parameters

    • reserve: AccountAddress

      The address of the reserve asset.

    • optimalUsageRatio: bigint

      The optimal usage ratio for the reserve.

    • baseVariableBorrowRate: bigint

      The base variable borrow rate for the reserve.

    • variableRateSlope1: bigint

      The first slope of the variable rate for the reserve.

    • variableRateSlope2: bigint

      The second slope of the variable rate for the reserve.

    Returns Promise<CommittedTransactionResponse>

    A promise that resolves to a CommittedTransactionResponse object.