Skip to content

INestorOnChainAssetToken

Git Source

Inherits: IBasicNestorToken

Author: Originally developed by DEFYCA Labs S.a.r.l., maintained by Nestor Exchange OÜ

MIT Licence. Originally Copyright © 2023 DEFYCA Labs S.a.r.l.

Implementation of the storage of the underlying OnChain Asset and its data.

Functions

setSpecificationData

Sets the specData for the NestorOnChainAssetToken. This data is immutable — an attempt to modify will throw NestorOnChainAssetTokenUnableToUpdateData.

function setSpecificationData(FOCASpecData calldata specData) external;

Parameters

Name Type Description
specData FOCASpecData the specData for the NestorOnChainAssetToken

setIssuanceData

Sets the issuanceData for the NestorOnChainAssetToken. This data is immutable — an attempt to modify will throw NestorOnChainAssetTokenUnableToUpdateData.

function setIssuanceData(FOCAIssuanceData calldata issuanceData) external;

setUpdateData

Sets the updatable data for the NestorOnChainAssetToken

function setUpdateData(FOCAUpdateData calldata updateData) external;

getSpecificationData

function getSpecificationData() external view returns (FOCASpecData memory);

getIssuanceData

function getIssuanceData() external view returns (FOCAIssuanceData memory);

getUpdateData

function getUpdateData() external view returns (FOCAUpdateData memory);

getCurrency

Get the currency the NestorOnChainAssetToken is issued in.

function getCurrency() external view returns (string memory);

Errors

NestorOnChainAssetTokenUnableToUpdateData

Error thrown if there is an attempt to modify the immutable data.

error NestorOnChainAssetTokenUnableToUpdateData();

Structs

FOCASpecData

The specification data for the NestorOnChainAssetToken. This is an immutable data struct.

struct FOCASpecData {
    uint256 issuedOn;
    uint256 maturityDays;
    NestorOnChainAssetSchedule schedule;
    NestorOnChainAssetPaymentFrequency paymentFrequency;
    NestorOnChainAssetYieldType yieldType;
    string baseCurrency;
    uint256 stripTotal;
    string name;
    string symbol;
}

FOCAIssuanceData

struct FOCAIssuanceData {
    uint256 auctionedOn;
    NestorOnChainAssetPriceStatus priceQuoteStatus;
    string onChainAssetUUID;
    string issuerUUID;
    string isin;
    string issuanceDocs;
    string assetClass;
}

FOCAUpdateData

struct FOCAUpdateData {
    uint256 maturesOn;
    uint256 total;
    NestorOnChainAssetStatus status;
    uint256 yield;
    NestorOnChainAssetRiskGrade riskGrade;
    uint256 pullToParValue;
    address custodianAddress;
}

Enums

NestorOnChainAssetSchedule

enum NestorOnChainAssetSchedule {
    SCHEDULE_COUPON_ONLY,
    SCHEDULE_PRO_RATA
}

NestorOnChainAssetPaymentFrequency

enum NestorOnChainAssetPaymentFrequency {
    PAYMENT_FREQUENCY_DAILY,
    PAYMENT_FREQUENCY_WEEKLY,
    PAYMENT_FREQUENCY_MONTHLY,
    PAYMENT_FREQUENCY_QUARTERLY,
    PAYMENT_FREQUENCY_SEMI_ANNUALLY,
    PAYMENT_FREQUENCY_ANNUALLY,
    PAYMENT_FREQUENCY_SINGLE
}

NestorOnChainAssetYieldType

enum NestorOnChainAssetYieldType {
    YIELD_FIXED,
    YIELD_FLOATING
}

NestorOnChainAssetPriceStatus

enum NestorOnChainAssetPriceStatus {
    PRICE_QUOTE_STATUS_UNDER_SUBSCRIBED,
    PRICE_QUOTE_STATUS_PRICED_AT_PAR,
    PRICE_QUOTE_STATUS_PRICED_AT_DISCOUNT,
    PRICE_QUOTE_STATUS_PRICED_AT_PREMIUM
}

NestorOnChainAssetStatus

enum NestorOnChainAssetStatus {
    STATUS_MINTED,
    STATUS_PURCHASED,
    STATUS_MATURED,
    STATUS_IMPAIRED,
    STATUS_REDEEMED
}

NestorOnChainAssetRiskGrade

enum NestorOnChainAssetRiskGrade {
    BER_AAA,
    BER_AA,
    BER_A,
    BER_BBB,
    BER_BB,
    BER_B,
    BER_CCC,
    BER_CC,
    BER_C,
    BER_D,
    BER_UNRATED
}