Onchain.Aave.Types.UserReserveData (onchain_aave v0.2.0)

Copy Markdown View Source

Typed struct for Aave V3 per-user reserve data from getUserReservesData.

Contains scaled token balances (raw integers) for a single reserve. Scaled values must be divided by the reserve's liquidityIndex or variableBorrowIndex (from AggregatedReserveData) to get actual amounts.

Fields

FieldRaw TypeElixir TypeConversion
underlying_assetaddressString.t()Address.checksum!/1
scaled_a_token_balanceuint256non_neg_integer()raw
usage_as_collateral_enabled_on_userboolboolean()raw
scaled_variable_debtuint256non_neg_integer()raw

API Functions

FunctionArityDescriptionParam Kinds
from_raw1Convert raw UserReserveData tuple from getUserReservesData into a typed struct.raw: exchange_data

Summary

Functions

Convert raw UserReserveData tuple from getUserReservesData into a typed struct.

Types

t()

@type t() :: %Onchain.Aave.Types.UserReserveData{
  scaled_a_token_balance: non_neg_integer(),
  scaled_variable_debt: non_neg_integer(),
  underlying_asset: String.t(),
  usage_as_collateral_enabled_on_user: boolean()
}

Functions

from_raw(arg)

@spec from_raw({binary(), non_neg_integer(), boolean(), non_neg_integer()}) :: t()

Convert raw UserReserveData tuple from getUserReservesData into a typed struct.

Parameters

  • raw - 4-element tuple: {address, scaled_balance, collateral_enabled, scaled_debt} (exchange_data)

Returns

%UserReserveData{} with checksummed address (struct)

# descripex:contract
%{
  params: %{
    raw: %{
      description: "4-element tuple: {address, scaled_balance, collateral_enabled, scaled_debt}",
      source: "Onchain.Aave.UiPoolDataProvider.get_user_reserves_data/2",
      kind: :exchange_data
    }
  },
  returns: %{
    type: :struct,
    description: "%UserReserveData{} with checksummed address"
  }
}