Onchain.Aave.V4.Spoke (onchain_aave v0.4.0)

Copy Markdown View Source

Aave V4 Spoke read operations.

Reads are scoped to a caller-supplied Spoke contract. Reserve and user structs are decoded into Onchain.Aave.V4.Types structs; numeric values remain in their contract units (asset units, BPS, WAD, or RAY).

Errors pass through from address validation and Onchain.Contract.call/5.

API Functions

FunctionArityDescriptionParam Kinds
max_user_reserves_limit2Fetch the maximum collateral and borrow reserve count per user.spoke: value, opts: value
oracle2Fetch the Spoke oracle address.spoke: value, opts: value
get_liquidation_logic2Fetch the liquidation logic library address.spoke: value, opts: value
position_manager?4Fetch whether a position manager is active and approved by a user.spoke: value, user: value, position_manager: value, opts: value
position_manager_active?3Fetch whether governance has activated a position manager.spoke: value, position_manager: value, opts: value
get_liquidation_bonus5Fetch the liquidation bonus for a user's reserve at a health factor.spoke: value, reserve_id: value, user: value, health_factor: value, opts: value
get_user_last_risk_premium3Fetch the risk premium from a user's last position update.spoke: value, user: value, opts: value
get_user_account_data3Fetch a user's typed per-Spoke health and account summary.spoke: value, user: value, opts: value
get_user_position4Fetch a user's typed position for one Spoke reserve.spoke: value, reserve_id: value, user: value, opts: value
get_user_debt4Fetch a user's drawn and premium debt for a Spoke reserve.spoke: value, reserve_id: value, user: value, opts: value
get_user_premium_debt_ray4Fetch a user's RAY-scaled premium debt for a Spoke reserve.spoke: value, reserve_id: value, user: value, opts: value
get_user_total_debt4Fetch a user's total debt for a Spoke reserve.spoke: value, reserve_id: value, user: value, opts: value
get_user_supplied_shares4Fetch a user's supplied shares for a Spoke reserve.spoke: value, reserve_id: value, user: value, opts: value
get_user_supplied_assets4Fetch a user's supplied assets for a Spoke reserve.spoke: value, reserve_id: value, user: value, opts: value
get_user_reserve_status4Fetch whether a user uses a reserve as collateral and borrows it.spoke: value, reserve_id: value, user: value, opts: value
get_dynamic_reserve_config4Fetch a typed dynamic configuration version for a Spoke reserve.spoke: value, reserve_id: value, dynamic_config_key: value, opts: value
get_reserve_config3Fetch typed static configuration for a Spoke reserve.spoke: value, reserve_id: value, opts: value
get_reserve3Fetch typed metadata and flags for a Spoke reserve.spoke: value, reserve_id: value, opts: value
get_reserve_id4Resolve a Hub asset to its Spoke-local reserve id.spoke: value, hub: value, asset_id: value, opts: value
get_reserve_debt3Fetch drawn and premium debt for a Spoke reserve.spoke: value, reserve_id: value, opts: value
get_reserve_total_debt3Fetch the total reserve debt for a Spoke reserve.spoke: value, reserve_id: value, opts: value
get_reserve_supplied_shares3Fetch the total supplied shares for a Spoke reserve.spoke: value, reserve_id: value, opts: value
get_reserve_supplied_assets3Fetch the total supplied assets for a Spoke reserve.spoke: value, reserve_id: value, opts: value
get_reserve_count2Fetch the number of reserves listed on the Spoke.spoke: value, opts: value
get_liquidation_config2Fetch the Spoke liquidation thresholds and bonus factor.spoke: value, opts: value

Summary

Functions

Fetch a typed dynamic configuration version for a Spoke reserve.

Fetch the liquidation bonus for a user's reserve at a health factor.

Fetch the Spoke liquidation thresholds and bonus factor.

Fetch the liquidation logic library address.

Fetch typed metadata and flags for a Spoke reserve.

Fetch typed static configuration for a Spoke reserve.

Fetch the number of reserves listed on the Spoke.

Fetch drawn and premium debt for a Spoke reserve.

Resolve a Hub asset to its Spoke-local reserve id.

Fetch the total supplied assets for a Spoke reserve.

Fetch the total supplied shares for a Spoke reserve.

Fetch the total reserve debt for a Spoke reserve.

Fetch a user's typed per-Spoke health and account summary.

Fetch a user's drawn and premium debt for a Spoke reserve.

Fetch the risk premium from a user's last position update.

Fetch a user's typed position for one Spoke reserve.

Fetch a user's RAY-scaled premium debt for a Spoke reserve.

Fetch whether a user uses a reserve as collateral and borrows it.

Fetch a user's supplied assets for a Spoke reserve.

Fetch a user's supplied shares for a Spoke reserve.

Fetch a user's total debt for a Spoke reserve.

Fetch the maximum collateral and borrow reserve count per user.

Fetch the Spoke oracle address.

Fetch whether a position manager is active and approved by a user.

Fetch whether governance has activated a position manager.

Types

address()

@type address() :: String.t() | binary()

result(value)

@type result(value) :: {:ok, value} | {:error, term()}

Functions

get_dynamic_reserve_config(spoke, reserve_id, dynamic_config_key, opts \\ [])

Fetch a typed dynamic configuration version for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • dynamic_config_key - Dynamic configuration version key (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, SpokeDynamicReserveConfig.t()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value},
    dynamic_config_key: %{
      description: "Dynamic configuration version key",
      kind: :value
    }
  },
  returns: %{type: "{:ok, SpokeDynamicReserveConfig.t()} | {:error, term()}"}
}

get_liquidation_bonus(spoke, reserve_id, user, health_factor, opts \\ [])

@spec get_liquidation_bonus(
  address(),
  non_neg_integer(),
  address(),
  non_neg_integer(),
  keyword()
) ::
  result(non_neg_integer())

Fetch the liquidation bonus for a user's reserve at a health factor.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • user - User address (value)
  • health_factor - Health factor in WAD (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    health_factor: %{description: "Health factor in WAD", kind: :value},
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_liquidation_config(spoke, opts \\ [])

@spec get_liquidation_config(
  address(),
  keyword()
) :: result(Onchain.Aave.V4.Types.SpokeLiquidationConfig.t())

Fetch the Spoke liquidation thresholds and bonus factor.

Parameters

  • spoke - Spoke contract address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, SpokeLiquidationConfig.t()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value}
  },
  returns: %{type: "{:ok, SpokeLiquidationConfig.t()} | {:error, term()}"}
}

get_liquidation_logic(spoke, opts \\ [])

@spec get_liquidation_logic(
  address(),
  keyword()
) :: result(String.t())

Fetch the liquidation logic library address.

Parameters

  • spoke - Spoke contract address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, String.t()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value}
  },
  returns: %{type: "{:ok, String.t()} | {:error, term()}"}
}

get_reserve(spoke, reserve_id, opts \\ [])

Fetch typed metadata and flags for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, SpokeReserveData.t()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, SpokeReserveData.t()} | {:error, term()}"}
}

get_reserve_config(spoke, reserve_id, opts \\ [])

Fetch typed static configuration for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, SpokeReserveConfig.t()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, SpokeReserveConfig.t()} | {:error, term()}"}
}

get_reserve_count(spoke, opts \\ [])

@spec get_reserve_count(
  address(),
  keyword()
) :: result(non_neg_integer())

Fetch the number of reserves listed on the Spoke.

Parameters

  • spoke - Spoke contract address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_reserve_debt(spoke, reserve_id, opts \\ [])

@spec get_reserve_debt(address(), non_neg_integer(), keyword()) ::
  result({non_neg_integer(), non_neg_integer()})

Fetch drawn and premium debt for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, {non_neg_integer(), non_neg_integer()}} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{
    type: "{:ok, {non_neg_integer(), non_neg_integer()}} | {:error, term()}"
  }
}

get_reserve_id(spoke, hub, asset_id, opts \\ [])

@spec get_reserve_id(address(), address(), non_neg_integer(), keyword()) ::
  result(non_neg_integer())

Resolve a Hub asset to its Spoke-local reserve id.

Parameters

  • spoke - Spoke contract address (value)
  • hub - Hub contract address (value)
  • asset_id - Hub-local asset identifier (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    hub: %{description: "Hub contract address", kind: :value},
    asset_id: %{description: "Hub-local asset identifier", kind: :value},
    spoke: %{description: "Spoke contract address", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_reserve_supplied_assets(spoke, reserve_id, opts \\ [])

@spec get_reserve_supplied_assets(address(), non_neg_integer(), keyword()) ::
  result(non_neg_integer())

Fetch the total supplied assets for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_reserve_supplied_shares(spoke, reserve_id, opts \\ [])

@spec get_reserve_supplied_shares(address(), non_neg_integer(), keyword()) ::
  result(non_neg_integer())

Fetch the total supplied shares for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_reserve_total_debt(spoke, reserve_id, opts \\ [])

@spec get_reserve_total_debt(address(), non_neg_integer(), keyword()) ::
  result(non_neg_integer())

Fetch the total reserve debt for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_user_account_data(spoke, user, opts \\ [])

@spec get_user_account_data(address(), address(), keyword()) ::
  result(Onchain.Aave.V4.Types.SpokeUserData.t())

Fetch a user's typed per-Spoke health and account summary.

Parameters

  • spoke - Spoke contract address (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, SpokeUserData.t()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value}
  },
  returns: %{type: "{:ok, SpokeUserData.t()} | {:error, term()}"}
}

get_user_debt(spoke, reserve_id, user, opts \\ [])

@spec get_user_debt(address(), non_neg_integer(), address(), keyword()) ::
  result({non_neg_integer(), non_neg_integer()})

Fetch a user's drawn and premium debt for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, {non_neg_integer(), non_neg_integer()}} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{
    type: "{:ok, {non_neg_integer(), non_neg_integer()}} | {:error, term()}"
  }
}

get_user_last_risk_premium(spoke, user, opts \\ [])

@spec get_user_last_risk_premium(address(), address(), keyword()) ::
  result(non_neg_integer())

Fetch the risk premium from a user's last position update.

Parameters

  • spoke - Spoke contract address (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_user_position(spoke, reserve_id, user, opts \\ [])

Fetch a user's typed position for one Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, SpokeUserPosition.t()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, SpokeUserPosition.t()} | {:error, term()}"}
}

get_user_premium_debt_ray(spoke, reserve_id, user, opts \\ [])

@spec get_user_premium_debt_ray(address(), non_neg_integer(), address(), keyword()) ::
  result(non_neg_integer())

Fetch a user's RAY-scaled premium debt for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_user_reserve_status(spoke, reserve_id, user, opts \\ [])

@spec get_user_reserve_status(address(), non_neg_integer(), address(), keyword()) ::
  result({boolean(), boolean()})

Fetch whether a user uses a reserve as collateral and borrows it.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, {boolean(), boolean()}} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, {boolean(), boolean()}} | {:error, term()}"}
}

get_user_supplied_assets(spoke, reserve_id, user, opts \\ [])

@spec get_user_supplied_assets(address(), non_neg_integer(), address(), keyword()) ::
  result(non_neg_integer())

Fetch a user's supplied assets for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_user_supplied_shares(spoke, reserve_id, user, opts \\ [])

@spec get_user_supplied_shares(address(), non_neg_integer(), address(), keyword()) ::
  result(non_neg_integer())

Fetch a user's supplied shares for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

get_user_total_debt(spoke, reserve_id, user, opts \\ [])

@spec get_user_total_debt(address(), non_neg_integer(), address(), keyword()) ::
  result(non_neg_integer())

Fetch a user's total debt for a Spoke reserve.

Parameters

  • spoke - Spoke contract address (value)
  • reserve_id - Spoke-local reserve identifier (value)
  • user - User address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    reserve_id: %{description: "Spoke-local reserve identifier", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

max_user_reserves_limit(spoke, opts \\ [])

@spec max_user_reserves_limit(
  address(),
  keyword()
) :: result(non_neg_integer())

Fetch the maximum collateral and borrow reserve count per user.

Parameters

  • spoke - Spoke contract address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, non_neg_integer()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value}
  },
  returns: %{type: "{:ok, non_neg_integer()} | {:error, term()}"}
}

oracle(spoke, opts \\ [])

@spec oracle(
  address(),
  keyword()
) :: result(String.t())

Fetch the Spoke oracle address.

Parameters

  • spoke - Spoke contract address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, String.t()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value}
  },
  returns: %{type: "{:ok, String.t()} | {:error, term()}"}
}

position_manager?(spoke, user, position_manager, opts \\ [])

@spec position_manager?(address(), address(), address(), keyword()) ::
  result(boolean())

Fetch whether a position manager is active and approved by a user.

Parameters

  • spoke - Spoke contract address (value)
  • user - User address (value)
  • position_manager - Position manager address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, boolean()} | {:error, term()})

# descripex:contract
%{
  params: %{
    user: %{description: "User address", kind: :value},
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    position_manager: %{description: "Position manager address", kind: :value}
  },
  returns: %{type: "{:ok, boolean()} | {:error, term()}"}
}

position_manager_active?(spoke, position_manager, opts \\ [])

@spec position_manager_active?(address(), address(), keyword()) :: result(boolean())

Fetch whether governance has activated a position manager.

Parameters

  • spoke - Spoke contract address (value)
  • position_manager - Position manager address (value)
  • opts - Options: :rpc_url, :timeout, :block (default: [], value)

Returns

({:ok, boolean()} | {:error, term()})

# descripex:contract
%{
  params: %{
    opts: %{
      default: [],
      description: "Options: :rpc_url, :timeout, :block",
      kind: :value
    },
    spoke: %{description: "Spoke contract address", kind: :value},
    position_manager: %{description: "Position manager address", kind: :value}
  },
  returns: %{type: "{:ok, boolean()} | {:error, term()}"}
}