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
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
container_id | enter | Sí | Identificador únic del contenidor |
kind | cadena | Sí | Tipus de contenidor: Standard, Slots o Grid |
owner | enter | No | Identificador 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
| Argument | Type | Required | Description |
|---|---|---|---|
container_id | integer | Sí | Contenidor 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
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
container_id | enter | Sí | Contenidor objectiu |
class_id | enter | Sí | Classe d’actius |
key | enter | Sí | Clau de saldo |
quantity | enter | Sí | Quantitat 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
| Argument | Type | Required | Description |
|---|---|---|---|
container_id | enter | Sí | Contenidor objectiu |
class_id | enter | Sí | Classe d’actius |
key | enter | Sí | Clau de saldo |
quantity | enter | Sí | Quantitat 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
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
from_container | enter | Sí | Contenidor d’origen |
to_container | enter | Sí | Contenidor de destinació |
class_id | enter | Sí | Classe d’actius |
key | enter | Sí | Clau de saldo |
quantity | enter | Sí | Quantitat 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
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
src_stack | enter | Sí | Pila d’on fusionar |
dst_stack | enter | Sí | Pila on fusionar |
Errors: InvalidOperation, ContainerNotFound, WrongContainerKind, StackNotFound, IncompatibleStacks
ConsolidateStacks
Fusiona totes les piles coincidents en un contenidor.
Etiquetes: balance consolidar multi reversible
| Argument | Type | Required | Description |
|---|---|---|---|
container_id | enter | Sí | Contenidor a consolidar |
class_id | enter | Sí | Classe d’actius |
key | enter | Sí | Clau de saldo |
Errors: ContainerNotFound, WrongContainerKind, InvalidOperation, StackNotFound
Operacions d’Instància
MintInstance
Crea una nova instància única.
Etiquetes: instància crear individual reversible
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
class_id | enter | Sí | Classe d’instància |
key | enter | Sí | Clau 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
| Argument | Type | Required | Description |
|---|---|---|---|
instance_id | integer | Sí | Instància a destruir |
Errors: InstanceNotFound, HasChildren
Adjuntar
Adjunta una instància fill a un pare.
Etiquetes: instance link multi reversible
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
child_instance | enter | Sí | Instància a adjuntar |
parent_instance | enter | Sí | Instància pare |
Errors: InvalidOperation, InstanceNotFound, AlreadyAttached, WouldCreateCycle
Desconnectar
Desconnecta una instància del seu pare.
Etiquetes: instància enllaç individual destructiu
| Argument | Type | Required | Description |
|---|---|---|---|
child_instance | integer | Sí | Instà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
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
container_id | enter | Sí | Contenidor objectiu |
instance_id | enter | Sí | Instància a col·locar |
slot_index | enter | Sí | Posició 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
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
container_id | enter | Sí | Contenidor objectiu |
slot_index | enter | Sí | Posició de la ranura |
Errors: ContainerNotFound, WrongContainerKind, SlotOutOfBounds, SlotEmpty
SwapSlots
Intercanvia continguts entre dues ranures.
Etiquetes: slot move multi neutral
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
container_a | enter | Sí | Primer contenidor |
slot_a | enter | Sí | Primer slot |
container_b | enter | Sí | Segon contenidor |
slot_b | enter | Sí | Segon slot |
Errors: InvalidOperation, ContainerNotFound, WrongContainerKind, SlotOutOfBounds, SlotEmpty
Operacions d’Esquema
RegisterClass
Registra una nova definició de classe d’actius.
Etiquetes: schema crear individual reversible
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
request.class_id | enter | Sí | Identificador únic de la classe |
request.name | cadena | Sí | Nom llegible per humans |
request.fungible | booleà | Sí | 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
| Argument | Tipus | Requerit | Descripció |
|---|---|---|---|
request.class_id | enter | Sí | Classe a configurar |
request.shape_id | enter | Sí | Identificador únic de la forma |
request.width | enter | Sí | Amplada de la forma |
request.height | enter | Sí | Alçada de la forma |
Errors: ClassNotFound, ShapeAlreadyDefined
{
"op": "RegisterClassShape",
"args": {
"request": {
"class_id": 200,
"shape_id": 1,
"width": 2,
"height": 3
}
}
}
Referències relacionades
- Transaccions - Estructura de la sol·licitud
- Receptes - Patrons de múltiples operacions
- Model d’Error - Gestió d’errors