Operacions per Domini

Asset Core proporciona 16 operacions a través de 5 dominis. Aquesta referència documenta cada operació amb els seus arguments, errors i exemples.

Visió general

Les operacions es classifiquen segons el tipus d’entitat que afecten. Cada operació té:

  • Etiquetes que descriuen el domini, l’acció, l’abast i la reversibilitat
  • Arguments específics per a l’operació
  • Errors que poden ser retornades
  • Exemple que mostra l’ús típic

Estructura

Totes les operacions utilitzen el mateix sobre:

{
  "op": "OperationName",
  "args": { ... }
}

Camps

Definicions de Tag

Dominis: Quin tipus d’entitat està afectat

  • contenidor, saldo, instància, slot, esquema

Acció: Quin tipus de canvi

  • crear, destruir, moure, enllaçar, consolidar

Abast: Quantes entitats

  • single, multi

Reversibilitat: Es pot desfer?

  • reversible, destructive, neutral

Exemples

Operacions de contenidor

CreateContainer

Crea un nou contenidor per emmagatzemar actius.

Etiquetes: contenidor crear individual reversible

ArgumentTipusRequeritDescripció
container_identerIdentificador únic del contenidor
kindcadenaTipus de contenidor: Standard, Slots o Grid
ownerenterNoIdentificador de propietari opcional

Errors: ContainerAlreadyExists

{
  "op": "CreateContainer",
  "args": {
    "container_id": 1001,
    "kind": "Standard",
    "owner": null
  }
}

RemoveContainer

Elimina un contenidor buit.

Etiquetes: contenidor destruir individual destructiu

ArgumentTypeRequiredDescription
container_idintegerContenidor a eliminar

Errors: ContainerNotFound

{
  "op": "RemoveContainer",
  "args": {
    "container_id": 1001
  }
}

Operacions de Balanç

AddFungible

Afegeix quantitat a un saldo fungible.

Etiquetes: balance crear individual reversible

ArgumentTipusRequeritDescripció
container_identerContenidor objectiu
class_identerClasse d’actius
keyenterClau de saldo
quantityenterQuantitat a afegir

Errors: InvalidQuantity, ContainerNotFound, WrongContainerKind, UnregisteredClassShape, InvalidOperation

{
  "op": "AddFungible",
  "args": {
    "container_id": 1001,
    "class_id": 100,
    "key": 1,
    "quantity": 500
  }
}

RemoveFungible

Elimina la quantitat d’un saldo fungible.

Etiquetes: balance destroy single destructive

ArgumentTypeRequiredDescription
container_identerContenidor objectiu
class_identerClasse d’actius
keyenterClau de saldo
quantityenterQuantitat a eliminar

Errors: QuantitatInvàlida, ContenidorNoTrobat, TipusDeContenidorIncorrecte, SaldoInsuficient

{
  "op": "RemoveFungible",
  "args": {
    "container_id": 1001,
    "class_id": 100,
    "key": 1,
    "quantity": 100
  }
}

TransferFungible

Mou una quantitat fungible entre contenidors.

Etiquetes: balance move multi neutral

ArgumentTipusRequeritDescripció
from_containerenterContenidor d’origen
to_containerenterContenidor de destinació
class_identerClasse d’actius
keyenterClau de saldo
quantityenterQuantitat a transferir

Errors: QuantitatInvàlida, OperacióInvàlida, ContenidorNoTrobat, TipusDeContenidorIncorrecte, SaldoInsuficient, FormaDeClasseNoRegistrada

{
  "op": "TransferFungible",
  "args": {
    "from_container": 1001,
    "to_container": 1002,
    "class_id": 100,
    "key": 1,
    "quantity": 250
  }
}

MergeStacks

Combina dues piles fungibles en una.

Etiquetes: balance consolidar multi reversible

ArgumentTipusRequeritDescripció
src_stackenterPila d’on fusionar
dst_stackenterPila on fusionar

Errors: InvalidOperation, ContainerNotFound, WrongContainerKind, StackNotFound, IncompatibleStacks

ConsolidateStacks

Fusiona totes les piles coincidents en un contenidor.

Etiquetes: balance consolidar multi reversible

ArgumentTypeRequiredDescription
container_identerContenidor a consolidar
class_identerClasse d’actius
keyenterClau de saldo

Errors: ContainerNotFound, WrongContainerKind, InvalidOperation, StackNotFound

Operacions d’Instància

MintInstance

Crea una nova instància única.

Etiquetes: instància crear individual reversible

ArgumentTipusRequeritDescripció
class_identerClasse d’instància
keyenterClau d’instància

Errors: IntegerOverflow

{
  "op": "MintInstance",
  "args": {
    "class_id": 200,
    "key": 1
  }
}

L’ID de la instància minvada es retorna en minted_instances.

BurnInstance

Destrueix una instància única de manera permanent.

Etiquetes: instància destruir individual destructiu

ArgumentTypeRequiredDescription
instance_idintegerInstància a destruir

Errors: InstanceNotFound, HasChildren

Adjuntar

Adjunta una instància fill a un pare.

Etiquetes: instance link multi reversible

ArgumentTipusRequeritDescripció
child_instanceenterInstància a adjuntar
parent_instanceenterInstància pare

Errors: InvalidOperation, InstanceNotFound, AlreadyAttached, WouldCreateCycle

Desconnectar

Desconnecta una instància del seu pare.

Etiquetes: instància enllaç individual destructiu

ArgumentTypeRequiredDescription
child_instanceintegerInstància a desconnectar

Errors: InstanceNotFound, NotAttached

Operacions de Slot

PlaceInSlot

Col·loca una instància en un slot de contenidor.

Etiquetes: slot move single reversible

ArgumentTipusRequeritDescripció
container_identerContenidor objectiu
instance_identerInstància a col·locar
slot_indexenterPosició de la ranura

Errors: ContainerNotFound, WrongContainerKind, SlotOutOfBounds, InstanceNotFound, SlotOccupied

{
  "op": "PlaceInSlot",
  "args": {
    "container_id": 1001,
    "instance_id": 9001,
    "slot_index": 0
  }
}

RemoveFromSlot

Elimina una instància d’una ranura.

Etiquetes: slot move single destructive

ArgumentTipusRequeritDescripció
container_identerContenidor objectiu
slot_indexenterPosició de la ranura

Errors: ContainerNotFound, WrongContainerKind, SlotOutOfBounds, SlotEmpty

SwapSlots

Intercanvia continguts entre dues ranures.

Etiquetes: slot move multi neutral

ArgumentTipusRequeritDescripció
container_aenterPrimer contenidor
slot_aenterPrimer slot
container_benterSegon contenidor
slot_benterSegon slot

Errors: InvalidOperation, ContainerNotFound, WrongContainerKind, SlotOutOfBounds, SlotEmpty

Operacions d’Esquema

RegisterClass

Registra una nova definició de classe d’actius.

Etiquetes: schema crear individual reversible

ArgumentTipusRequeritDescripció
request.class_identerIdentificador únic de la classe
request.namecadenaNom llegible per humans
request.fungiblebooleàSi els actius són fungibles

Errors: ClassAlreadyExists, ClassCapacityExceeded

{
  "op": "RegisterClass",
  "args": {
    "request": {
      "class_id": 100,
      "name": "Gold Coin",
      "fungible": true
    }
  }
}

RegisterClassShape

Afegeix una configuració de forma a una classe existent.

Etiquetes: schema crear individual reversible

ArgumentTipusRequeritDescripció
request.class_identerClasse a configurar
request.shape_identerIdentificador únic de la forma
request.widthenterAmplada de la forma
request.heightenterAlçada de la forma

Errors: ClassNotFound, ShapeAlreadyDefined

{
  "op": "RegisterClassShape",
  "args": {
    "request": {
      "class_id": 200,
      "shape_id": 1,
      "width": 2,
      "height": 3
    }
  }
}

Referències relacionades