Operaciones por Dominio

Asset Core proporciona 16 operaciones en 5 dominios. Esta referencia documenta cada operación con sus argumentos, errores y ejemplos.

Visión general

Las operaciones se categorizan según el tipo de entidad que afectan. Cada operación tiene:

  • Etiquetas que describen dominio, acción, alcance y reversibilidad
  • Argumentos específicos para la operación
  • Errores que pueden ser devueltos
  • Ejemplo que muestra el uso típico

Estructura

Todas las operaciones utilizan el mismo sobre:

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

Campos

Definiciones de Etiquetas

Dominio: Qué tipo de entidad se ve afectado

  • container, balance, instance, slot, schema

Acción: Qué tipo de cambio

  • crear, destruir, mover, enlazar, consolidar

Alcance: Cuántas entidades

  • único, múltiple

Reversibilidad: ¿Se puede deshacer?

  • reversible, destructive, neutral

Ejemplos

Operaciones de Contenedor

CrearContenedor

Crea un nuevo contenedor para almacenar activos.

Etiquetas: container create single reversible

ArgumentoTipoRequeridoDescripción
container_identeroIdentificador único del contenedor
kindcadenaTipo de contenedor: Standard, Slots o Grid
ownerenteroNoIdentificador de propietario opcional

Errores: ContainerAlreadyExists

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

RemoveContainer

Elimina un contenedor vacío.

Etiquetas: container destroy single destructive

ArgumentoTipoRequeridoDescripción
container_identeroContenedor a eliminar

Errores: ContainerNotFound

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

Operaciones de Balance

AddFungible

Agrega cantidad a un saldo fungible.

Etiquetas: balance crear único reversible

ArgumentoTipoRequeridoDescripción
container_identeroContenedor objetivo
class_identeroClase de activo
keyenteroClave de saldo
quantityenteroCantidad a añadir

Errores: InvalidQuantity, ContainerNotFound, WrongContainerKind, UnregisteredClassShape, InvalidOperation

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

RemoveFungible

Elimina cantidad de un saldo fungible.

Etiquetas: balance destroy single destructive

ArgumentoTipoRequeridoDescripción
container_identeroContenedor objetivo
class_identeroClase de activo
keyenteroClave de saldo
quantityenteroCantidad a eliminar

Errores: InvalidQuantity, ContainerNotFound, WrongContainerKind, InsufficientBalance

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

TransferFungible

Mueve una cantidad fungible entre contenedores.

Etiquetas: balance move multi neutral

ArgumentoTipoRequeridoDescripción
from_containerenteroContenedor de origen
to_containerenteroContenedor de destino
class_identeroClase de activo
keyenteroClave de saldo
quantityenteroCantidad a transferir

Errores: InvalidQuantity, InvalidOperation, ContainerNotFound, WrongContainerKind, InsufficientBalance, UnregisteredClassShape

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

MergeStacks

Combina dos pilas fungibles en una.

Etiquetas: balance consolidar multi reversible

ArgumentoTipoRequeridoDescripción
src_stackenteroPila de la que fusionar
dst_stackenteroPila en la que fusionar

Errores: InvalidOperation, ContainerNotFound, WrongContainerKind, StackNotFound, IncompatibleStacks

ConsolidarPilas

Fusiona todas las pilas coincidentes en un contenedor.

Etiquetas: balance consolidar multi reversible

ArgumentoTipoRequeridoDescripción
container_identeroContenedor a consolidar
class_identeroClase de activo
keyenteroClave de saldo

Errores: ContainerNotFound, WrongContainerKind, InvalidOperation, StackNotFound

Operaciones de Instancia

MintInstance

Crea una nueva instancia única.

Etiquetas: instancia crear único reversible

ArgumentoTipoRequeridoDescripción
class_identeroClase de instancia
keyenteroClave de instancia

Errores: IntegerOverflow

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

El ID de instancia acuñado se devuelve en minted_instances.

BurnInstance

Destruye una instancia única de forma permanente.

Etiquetas: instancia destruir único destructivo

ArgumentoTipoRequeridoDescripción
instance_identeroInstancia a destruir

Errores: InstanceNotFound, HasChildren

Adjuntar

Adjunta una instancia hija a un padre.

Etiquetas: instance link multi reversible

ArgumentoTipoRequeridoDescripción
child_instanceenteroInstancia a adjuntar
parent_instanceenteroInstancia padre

Errores: InvalidOperation, InstanceNotFound, AlreadyAttached, WouldCreateCycle

Desconectar

Desvincula una instancia de su padre.

Etiquetas: instancia enlace único destructivo

ArgumentoTipoRequeridoDescripción
child_instanceenteroInstancia a desacoplar

Errores: InstanceNotFound, NotAttached

Operaciones de Slot

PlaceInSlot

Coloca una instancia en un espacio de contenedor.

Etiquetas: slot move single reversible

ArgumentoTipoRequeridoDescripción
container_identeroContenedor objetivo
instance_identeroInstancia a colocar
slot_indexenteroPosición del slot

Errores: ContainerNotFound, WrongContainerKind, SlotOutOfBounds, InstanceNotFound, SlotOccupied

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

RemoveFromSlot

Elimina una instancia de un slot.

Etiquetas: slot move single destructive

ArgumentoTipoRequeridoDescripción
container_identeroContenedor objetivo
slot_indexenteroPosición de la ranura

Errores: ContainerNotFound, WrongContainerKind, SlotOutOfBounds, SlotEmpty

SwapSlots

Intercambia contenidos entre dos espacios.

Etiquetas: slot move multi neutral

ArgumentoTipoRequeridoDescripción
container_aenteroPrimer contenedor
slot_aenteroPrimer espacio
container_benteroSegundo contenedor
slot_benteroSegundo espacio

Errores: InvalidOperation, ContainerNotFound, WrongContainerKind, SlotOutOfBounds, SlotEmpty

Operaciones de Esquema

RegisterClass

Registra una nueva definición de clase de activo.

Etiquetas: schema create single reversible

ArgumentoTipoRequeridoDescripción
request.class_identeroIdentificador único de la clase
request.namecadenaNombre legible por humanos
request.fungiblebooleanoSi los activos son fungibles

Errores: ClassAlreadyExists, ClassCapacityExceeded

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

RegisterClassShape

Agrega una configuración de forma a una clase existente.

Etiquetas: schema create single reversible

ArgumentoTipoRequeridoDescripción
request.class_identeroClase a configurar
request.shape_identeroIdentificador único de la forma
request.widthenteroAncho de la forma
request.heightenteroAltura de la forma

Errores: ClassNotFound, ShapeAlreadyDefined

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

Referencias relacionadas