Set Asset Metadata

{
  "name": "set_asset_metadata",
  "desc": "Set D-ASA metadata",
  "readonly": false,
  "args": [
    {
      "type": "uint8",
      "name": "contract_type",
      "desc": "Contract type"
    },
    {
      "type": "uint8",
      "name": "calendar",
      "desc": "Calendar [default 0]"
    },
    {
      "type": "uint8",
      "name": "business_day_convention",
      "desc": "Business day convention [default 0]"
    },
    {
      "type": "uint8",
      "name": "end_of_month_convention",
      "desc": "End of month convention [default 0]"
    },
    {
      "type": "uint8",
      "name": "prepayment_effect",
      "desc": "Early repayment effect [default 0]"
    },
    {
      "type": "uint8",
      "name": "penalty_type",
      "desc": "Early repayment penalty type [default 0]"
    },
    {
      "type": "byte[32]",
      "name": "prospectus_hash",
      "desc": "Prospectus hash"
    },
    {
      "type": "string",
      "name": "prospectus_url",
      "desc": "Prospectus URL"
    }
  ],
  "returns": {
    "type": "uint64",
    "desc": "Timestamp of the set metadata"
  },
  "errors": [
    {
      "code": "UNAUTHORIZED",
      "message": "Not authorized"
    },
    {
      "code": "DEFAULTED",
      "message": "Defaulted"
    },
    {
      "code": "SUSPENDED",
      "message": "Asset operations are suspended"
    }
  ]
}

The call MUST fail with the UNAUTHORIZED error code if not called by an authorized caller.

The call MUST fail with the DEFAULTED error code if the asset is defaulted.

The call MAY fail with the SUSPENDED error code if the asset is suspended.