addMarket

params of newMarketParams -> storage upd

Creates new token lending market.

Types

type assetType          is
| FA12 of address
| FA2  of (address * nat)

type newMetadataParams is map(string, bytes)

type newMarketParams    is [@layout:comb] record [
  interestRateModel     : address;
  asset                 : assetType;
  collateralFactorF     : nat;
  reserveFactorF        : nat;
  maxBorrowRate         : nat;
  token_metadata        : newMetadataParams;
  threshold             : nat;
  liquidReserveRateF    : nat;
]
ParameterTypeDescription

interestRateModel

address

interestRate contract instance

asset

assetType

FA12 or FA2 token

collateralFactorF

nat

collateral factor

as float number multiplied by precision= 1000000000000000000n; (1e+18)

reserveFactorF

nat

reserve factor

as float number multiplied by precision= 1000000000000000000n; (1e+18)

maxBorrowRate

nat

token_metadata

map(string, bytes)

token metadata packed to bytes

threshold

nat

liquidReserveRateF

nat

Usage

const fa2TokenId = 3;
const tokenMetadata = MichelsonMap.fromLiteral({
  symbol: Buffer.from("TST").toString("hex"),
  name: Buffer.from("TEST").toString("hex"),
  decimals: Buffer.from("6").toString("hex"),
  icon: Buffer.from("someURL").toString("hex"),
});
const yupana = await tezos.contract.at(yTokenAddress);
const operation = await yupana.methodsObject.addMarket(
      {
      interestRateModel: "KT1...",
      asset: { fa12: "KT1..." } or { fa2: { 0: "KT1...", 1: fa2TokenId } },
      collateralFactorF: 650000000000000000,
      reserveFactorF: 200000000000000000,
      maxBorrowRate: 5000000000000,
      token_metadata: tokenMetadata,
      threshold: 550000000000000000
).send();
await operation.confirmation();

Errors

  • yToken/token-has-already-been-added -this token has been added to the market already.

  • yToken/not-admin - sender is not contract admin.

Last updated