Referència d’Operacions de Transacció d’AssetCore
Generat a partir de Operations Manifest v1.0.0 (API 0.1.0)
Generat automàticament a partir del manifest d’operacions el 2026-01-22
AssetCore és un substrat de memòria determinista. Els contenidors són regions de memòria persistent. Les operacions són transformacions de memòria atòmiques. Les transaccions són compromisos de memòria reproduïbles.
Les següents operacions modifiquen regions de memòria estructurada d’una manera independent del domini.
Aquest document proporciona una referència completa per a les 24 operacions disponibles en els compromisos d’AssetCore.
Taula de continguts
Visió general
Tots els canvis d’estat en el substrat de memòria estructurada d’AssetCore flueixen a través del punt final de confirmació com una seqüència d’operacions. Cada operació és una transformació atòmica que es pot combinar amb altres en una única transacció.
Estructura de la Sol·licitud de Compromís
{
"operations": [
{ "op": "OperationName", "args": { ... } },
{ "op": "AnotherOperation", "args": { ... } }
],
"idempotency_key": "optional-unique-key"
}
Les operacions s’executen en ordre dins d’una única transacció. Si alguna operació falla, tota la confirmació es desfa.
Sistema de Etiquetes
Les operacions es classifiquen en quatre dimensions:
Domini
Quin tipus d’entitat afecta l’operació:
- contenidor: Operacions del cicle de vida del contenidor
- balance: Quantitat fungible i operacions de pila
- instància: Operacions d’instància úniques
- slot: Operacions de posicionament d’slots espacials
- schema: Operacions de definició de classe i forma
Acció
Quin tipus d’acció s’executa:
- crear: Fa que alguna cosa existeixi
- destruir: Elimina alguna cosa de l’existència
- moure: Reubica entre ubicacions
- enllaç: Estableix o elimina relacions
- consolidar: Fusiona o reorganitza
Abast
Quantes entitats estan afectades:
- individual: Un objectiu principal
- multi: Múltiples objectius o contenidors
Impact
L’abast de l’impacte dels efectes de l’operació:
- dirigit: Els canvis es limiten a entitats referenciades explícitament
- fanout: Els canvis es distribueixen entre múltiples entitats en un lot o conjunt de coincidències
- cascada: Els canvis eliminen o invaliden implícitament continguts anidats
Operacions per Domini
Operacions de contenidor
CreateContainer
Crea un contenidor (regió de memòria estructurada) amb el tipus sol·licitat.
contenidor crear únic dirigit
Crea un contenidor persistent del tipus sol·licitat (balance, graella, slots, continu 1D/2D). Proporciona external_id per reclamar un identificador extern estable; els IDs interns són densos, auto-assignats i mai exposats. Els IDs externs són d’àmbit de namespace i no han d’existir ja.
Errors:
- ContainerAlreadyExists: A container with that ID already exists. ContainerAlreadyExists: Ja existeix un contenidor amb aquest ID. Example:
{
"op": "CreateContainer",
"args": {
"external_id": "container-1000",
"kind": {
"quantization_inv": 100,
"type": "balance"
}
}
}
RemoveContainer
Elimina un contenidor després de drenar el seu contingut.
contenidor destruir únic cascada
Elimina un contenidor després que la transacció dreni qualsevol saldo, instàncies i contingut de slots. Això és irreversible per a l’identificador del contenidor i preserva les regions de memòria circumdants.
Errors:
- ContainerNotFound: The specified container does not exist. ContainerNotFound: El contenidor especificat no existeix. Example:
{
"op": "RemoveContainer",
"args": {
"container_id": "container-1001"
}
}
Operacions de Balanceig
AddFungible
Afegeix una quantitat fungible a un saldo o a una cel·la de graella explícita.
balance crear únic dirigit
Augmenta la quantitat fungible per a un parell de classe/clau. Quan es dirigeix a un contenidor de saldo, la quantitat s’afegeix al saldo agregat. Quan es dirigeix a una cel·la de la graella, l’operació crea o fa créixer una pila a l’ancoratge especificat, imposant formes registrades i rotació per a la col·locació.
Errors:
- InvalidQuantity: La quantitat ha de ser superior a zero.
- WrongContainerKind: Els contenidors de slots no poden contenir actius fungibles.
- ContainerNotFound: El contenidor objectiu no existeix.
- UnregisteredClass: La classe no està registrada en l’espai de noms.
- UnregisteredClassShape: Les addicions de la graella requereixen una forma registrada per a la classe i la clau.
- PositionOccupied: The requested grid anchor overlaps an existing placement. PositionOccupied: L’ancoratge de graella sol·licitat s’obre a una ubicació existent. Example:
{
"op": "AddFungible",
"args": {
"class_id": "class-100",
"key": 1,
"location": {
"container_id": "container-2001",
"kind": "grid_cell",
"position": 5,
"rotation": "none"
},
"quantity": "500"
}
}
RemoveFungible
Elimina una quantitat fungible d’un saldo o d’una cel·la de graella explícita.
equilibri destruir únic dirigit
Disminueix la quantitat fungible per a un parell de classe/clau dins d’un contenidor. Suporta la crema de balances o la neteja d’una pila de graells en un ancoratge específic. Quan una pila arriba a zero, es pot eliminar, mantenint el substrat determinista.
Errors:
- InvalidQuantity: La quantitat ha de ser superior a zero.
- WrongContainerKind: Els contenidors de slots no poden contenir actius fungibles.
- ContainerNotFound: El contenidor objectiu no existeix.
- UnregisteredClass: La classe no està registrada en l’espai de noms.
- InsufficientBalance: La quantitat sol·licitada supera el saldo disponible.
- PositionEmpty: No stack exists at the requested grid anchor. PositionEmpty: No hi ha cap pila a l’ancoratge de graella sol·licitat. Example:
{
"op": "RemoveFungible",
"args": {
"class_id": "class-100",
"from": {
"container_id": "container-1001",
"kind": "balance"
},
"key": 1,
"quantity": "100"
}
}
MoveFungible
Mou quantitat fungible entre saldos o cel·les de la graella.
moviment de balanç multi objectiu
Transfereix una quantitat fungible d’una ubicació a una altra. Suporta moviments de saldo<->saldo, saldo<->reix, i reix<->reix mentre aplica formes registrades per a les destinacions de reix i assegura que les quantitats d’origen siguin suficients.
Errors:
- InvalidQuantity: La quantitat ha de ser superior a zero.
- WrongContainerKind: Els contenidors de slots no poden participar en moviments fungibles.
- ContainerNotFound: Un dels contenidors no existeix.
- UnregisteredClass: La classe no està registrada en l’espai de noms.
- InsufficientBalance: La ubicació d’origen no té la quantitat sol·licitada.
- PositionEmpty: No hi ha cap pila a l’ancoratge de graella sol·licitat.
- PositionOccupied: L’ancoratge de la graella de destinació es superposa a una col·locació existent.
- UnregisteredClassShape: Grid destinations require a registered shape for the class and key. UnregisteredClassShape: Les destinacions de la quadrícula requereixen una forma registrada per a la classe i la clau. Exemple:
{
"op": "MoveFungible",
"args": {
"class_id": "class-100",
"from": {
"container_id": "container-1001",
"kind": "balance"
},
"key": 1,
"quantity": "50",
"to": {
"container_id": "container-2001",
"kind": "grid_cell",
"position": 4,
"rotation": "clockwise90"
}
}
}
TransferFungible
Transfereix una quantitat fungible entre contenidors estructurats.
moviment de balanç multi objectiu
Mou una quantitat fungible d’un contenidor a un altre en una única transacció. Ambdós contenidors han d’existir, suportar saldos per al parell de classe/clau, i la font ha de contenir l’import sol·licitat. El registre de forma s’aplica quan es requereix la col·locació en graella.
Errors:
- InvalidQuantity: La quantitat ha de ser superior a zero.
- InvalidOperation: Les transferències d’identitat o l’overflow aritmètic són invàlids.
- ContainerNotFound: Un dels contenidors no existeix.
- WrongContainerKind: Els contenidors de slots no poden participar en transferències fungibles.
- UnregisteredClass: La classe no està registrada en l’espai de noms.
- InsufficientBalance: El contenidor d’origen no té la quantitat sol·licitada.
- UnregisteredClassShape: Grid destinations require a registered shape for the class and key. UnregisteredClassShape: Les destinacions de la quadrícula requereixen una forma registrada per a la classe i la clau. Exemple:
{
"op": "TransferFungible",
"args": {
"class_id": "class-100",
"from_container": "container-1001",
"key": 1,
"quantity": "250",
"to_container": "container-1002"
}
}
TransferMany
Transfereix múltiples quantitats fungibles entre contenidors en un sol lot.
balance move multi fanout
Executa un lot ordenat de transferències de contenidor a contenidor amb semàntica atòmica de tot o res. Cada entrada valida els tipus de contenidor, el registre de classes i els saldos suficients abans que es produeixin qualsevol mutació.
Errors:
- InvalidQuantity: La quantitat ha de ser superior a zero.
- InvalidOperation: Les transferències d’identitat o l’estructura de lot no vàlida han estat rebutjades.
- ContainerNotFound: Un dels contenidors no existeix.
- WrongContainerKind: Els contenidors de slots no poden participar en transferències fungibles.
- UnregisteredClass: La classe no està registrada en l’espai de noms.
- InsufficientBalance: El contenidor d’origen no té la quantitat sol·licitada.
- UnregisteredClassShape: Grid destinations require a registered shape for the class and key. UnregisteredClassShape: Les destinacions de la quadrícula requereixen una forma registrada per a la classe i la clau. Exemple:
{
"op": "TransferMany",
"args": {
"transfers": [
{
"class_id": "class-100",
"from_container": "container-1001",
"key": 1,
"quantity": "25",
"to_container": "container-1002"
},
{
"class_id": "class-101",
"from_container": "container-1002",
"quantity": "10",
"to_container": "container-1003"
}
]
}
}
Distribueix
Distribueix una quantitat fungible d’una font a múltiples destinacions.
balance move multi fanout
Divideix una única quantitat font entre múltiples contenidors de destí en un únic lot atòmic. La font ha de contenir la quantitat total sol·licitada a través de totes les entrades de distribució.
Errors:
- InvalidQuantity: Cada quantitat de distribució ha de ser superior a zero.
- InvalidOperation: Els totals han d’ajustar-se dins dels límits de saldo per a la font.
- ContainerNotFound: Un dels contenidors no existeix.
- WrongContainerKind: Els contenidors de slots no poden participar en la distribució fungible.
- UnregisteredClass: La classe no està registrada en l’espai de noms.
- InsufficientBalance: El contenidor d’origen no té la quantitat total sol·licitada.
- UnregisteredClassShape: Grid destinations require a registered shape for the class and key. UnregisteredClassShape: Les destinacions de la quadrícula requereixen una forma registrada per a la classe i la clau. Exemple:
{
"op": "Distribute",
"args": {
"class_id": "class-100",
"distributions": [
{
"quantity": "10",
"to_container": "container-2001"
},
{
"quantity": "15",
"to_container": "container-2002"
}
],
"from_container": "container-1001",
"key": 1
}
}
MergeStacks
Fusiona una pila fungible en una altra dins d’un contenidor.
balance consolidat multi objectiu
Combina la pila font a la pila de destinació dins del mateix contenidor de graella. Les piles han de compartir la classe i la identitat de clau. Les quantitats es sumen de manera determinista i la pila font es retira.
Errors:
- InvalidOperation: Les auto-fusions, les fusiones entre contenidors o els desbordaments són rebutjats.
- ContainerNotFound: El contenidor de la graella va desaparèixer abans que la fusió es completés.
- WrongContainerKind: Només els contenidors de graella contenen entitats d’apilament.
- StackNotFound: Una de les piles referenciades ja no existeix.
- IncompatibleStacks: Stacks must share the same class and key to merge. IncompatibleStacks: Les piles han de compartir la mateixa classe i clau per fusionar-se. Exemple:
{
"op": "MergeStacks",
"args": {
"dst_stack": "stack-5001",
"src_stack": "stack-5002"
}
}
ConsolidarPiles
Consolida totes les piles fungibles coincidents dins d’un contenidor.
balance consolidat multi fanout
Troba cada pila en un contenidor que coincideix amb el parell de classe/clau i les col·lapsa en una sola pila. Normalitza els saldos fragmentats que s’han acumulat a través de múltiples operacions mentre preserva els totals.
Errors:
- ContainerNotFound: El contenidor especificat no existeix.
- WrongContainerKind: Només els contenidors de graella poden contenir piles per a la consolidació.
- UnregisteredClass: La classe no està registrada en l’espai de noms.
- InvalidOperation: No s’han trobat piles o la quantitat total ha desbordat u64.
- StackNotFound: A stack disappeared during consolidation. StackNotFound: Una pila ha desaparegut durant la consolidació. Exemple:
{
"op": "ConsolidateStacks",
"args": {
"class_id": "class-100",
"container_id": "container-1001",
"key": 1
}
}
MoveMany
Mou múltiples piles entre contenidors de la reixa en un sol lot.
balance move multi fanout
Executa un lot de moviments de pila a través de contenidors Grid. Cada entrada especifica un identificador de pila, un contenidor de destinació i una quantitat; els moviments parcials divideixen les piles mentre que els moviments complets les reubiquen.
Errors:
- InvalidQuantity: La quantitat de moviment ha de ser superior a zero.
- InvalidOperation: S’han rebutjat piles duplicades o destinacions no vàlides.
- ContainerNotFound: Un dels contenidors no existeix.
- WrongContainerKind: Les piles només poden moure’s entre contenidors de reixeta.
- StackNotFound: Una de les piles referenciades ja no existeix.
- InsufficientBalance: Una pila no té la quantitat sol·licitada per al moviment.
- StackLimitExceeded: Destination container exceeds stack limits. StackLimitExceeded: El contenidor de destinació supera els límits de la pila. Example:
{
"op": "MoveMany",
"args": {
"moves": [
{
"quantity": "3",
"stack": "stack-5001",
"to_container": "container-2001"
},
{
"quantity": "5",
"stack": "stack-5002",
"to_container": "container-2002"
}
]
}
}
Operacions d’Instància
AddInstance
Crea una nova instància i la col·loca en una ubicació objectiu.
instància crear única dirigida
Crea una instància única per a la classe/variant especificada i la col·loca en una ranura, ancoratge de graella o coordenada contínua. Valida el tipus de contenidor, les regles de forma/rotació i la col·lisió abans de la col·locació.
Errors:
- ContainerNotFound: El contenidor objectiu no existeix.
- UnregisteredClass: La classe no està registrada en l’espai de noms.
- WrongContainerKind: Les col·locacions de reixeta requereixen contenidors de reixeta; les col·locacions de ranura requereixen contenidors de ranura; les col·locacions continuades requereixen contenidors continus.
- SlotOutOfBounds: L’índex de slot excedeix la capacitat del contenidor.
- SlotOccupied: El slot sol·licitat ja està ocupat.
- PositionOccupied: L’ancoratge de la graella s’overposa a una ubicació existent.
- PositionOutOfBounds: La col·locació excediria els límits de la graella.
- ContinuousPlacementOutOfBounds: La col·locació contínua s’estén més enllà dels límits del contenidor.
- UnregisteredClassShape: Grid placements require a registered shape for the class/key. UnregisteredClassShape: Les ubicacions de la graella requereixen una forma registrada per a la classe/clau. Exemple:
{
"op": "AddInstance",
"args": {
"class_id": "class-200",
"key": 1,
"location": {
"container_id": "container-500",
"kind": "slot",
"slot_index": 1
}
}
}
MoveInstance
Mou una instància existent a una nova ubicació.
instància mou única dirigida
Recol·loca una instància anteriorment emesa en un slot, ancoratge de graella o coordenada contínua. Valida les regles de forma/rotació i impedeix la superposició en contenidors de graella i continus.
Errors:
- InstanceNotFound: La instància no existeix.
- WrongContainerKind: El tipus de contenidor de destinació no suporta el moviment sol·licitat.
- SlotOutOfBounds: L’índex de slot excedeix la capacitat del contenidor.
- SlotOccupied: El slot de destinació ja està ocupat.
- PositionOccupied: L’ancoratge de la graella de destinació es superposa a una col·locació existent.
- PositionOutOfBounds: L’ancoratge de la graella de destinació supera els límits.
- ContinuousPlacementOutOfBounds: La col·locació contínua s’estén més enllà dels límits del contenidor.
- UnregisteredClassShape: Les destinacions de la graella requereixen una forma registrada per a la classe/clau de la instància.
- ContinuousPlacementOverlap: Continuous destination overlaps an existing placement. ContinuousPlacementOverlap: La destinació contínua solapa una col·locació existent. Example:
{
"op": "MoveInstance",
"args": {
"instance": "instance-9001",
"to": {
"container_id": "container-2001",
"kind": "grid_cell",
"position": 5,
"rotation": "none"
}
}
}
RemoveInstance
Crema una instància del món.
instància destruir única dirigida
Elimina una instància independentment de la seva ubicació actual. L’instància no pot tenir fills adjunts. Les referències de la graella o del slot es netegen com a part de la crema.
Errors:
- InstanceNotFound: L’ID de la instància de destinació no existeix.
- HasChildren: Children must be detached before burning the instance. HasChildren: Els fills han d’estar desconnectats abans de cremar la instància. Exemple:
{
"op": "RemoveInstance",
"args": {
"instance": "instance-9001"
}
}
BurnInstance
Elimina una instància única de manera permanent del substrat.
instància destruir única dirigida
Elimina permanentment una instància única. L’instància no ha d’estar adjunta a altres instàncies ni col·locada en una ranura. L’identificador mai no es reutilitza un cop cremat.
Errors:
- InstanceNotFound: L’ID de la instància de destinació no existeix.
- HasChildren: Children must be detached before burning the instance. HasChildren: Els fills han d’estar desconnectats abans de cremar la instància. Exemple:
{
"op": "BurnInstance",
"args": {
"instance_id": "instance-9001"
}
}
Adjuntar
Adjunta una instància fill a un pare per a un moviment vinculat.
enllaç d’instància multi objectiu
Crea una relació de pare-fill entre dues instàncies perquè es moguin juntes. El fill només pot tenir un pare, i els cicles es rebutgen per mantenir el gràfic d’instàncies acíclic.
Errors:
- InvalidOperation: El fill i el pare han de ser diferents i els cicles són rebutjats.
- InstanceNotFound: La instància fill o pare no existeix.
- AlreadyAttached: El nen ja té un pare.
- WouldCreateCycle: Attachment would create a cycle in the hierarchy. WouldCreateCycle: L’adjunt crearia un cicle en la jerarquia. Example:
{
"op": "Attach",
"args": {
"child_instance": "instance-9002",
"parent_instance": "instance-9001"
}
}
Desconnectar
Desconnecta una instància fill de la seva instància pare.
enllaç d’instància únic dirigit
Elimina la relació de parentiu perquè el fill esdevingui independent mentre roman en el substrat de memòria. El fill conserva la seva ID i pot ser reassignat en un altre lloc.
Errors:
- InstanceNotFound: La instància especificada no existeix.
- NotAttached: The instance has no parent to detach from. NotAttached: La instància no té cap pare del qual desconnectar-se. Example:
{
"op": "Detach",
"args": {
"child_instance": "instance-9002"
}
}
Operacions de màquines escurabutxaques
PlaceInSlot
Posiciona una instància en una posició adreçable dins d’un contenidor.
moviment de slot individual dirigit
Col·loca una instància única en un espai específic dins d’un contenidor que admet dissenys d’espai. L’espai ha d’estar buit i el tipus de contenidor ha de permetre la col·locació d’espais, preservant una posició determinista.
Errors:
- ContainerNotFound: El contenidor de destinació no existeix.
- WrongContainerKind: Només els contenidors Slots suporten la col·locació de slots.
- SlotOutOfBounds: L’índex de slot excedeix la capacitat del contenidor.
- InstanceNotFound: La instància que s’està col·locant no existeix.
- SlotOccupied: The requested slot is already occupied. SlotOccupied: El slot sol·licitat ja està ocupat. Example:
{
"op": "PlaceInSlot",
"args": {
"container_id": "container-1001",
"instance_id": "instance-9001",
"slot_index": 1
}
}
RemoveFromSlot
Elimina una instància d’una ranura de contenidor.
moviment de slot individual dirigit
Esborra una slot i deixa la instància sense col·locar. L’instància roman en el substrat de memòria però ja no ocupa aquest vincle posicional, permetent el reubicament.
Errors:
- ContainerNotFound: El contenidor no existeix.
- WrongContainerKind: Només els contenidors de Slots suporten la eliminació de slots.
- SlotOutOfBounds: L’índex de slot excedeix la capacitat del contenidor.
- SlotEmpty: The slot does not contain an instance to remove. SlotEmpty: El slot no conté una instància per eliminar. Example:
{
"op": "RemoveFromSlot",
"args": {
"container_id": "container-1001",
"slot_index": 1
}
}
SwapSlots
Intercanvia el contingut de dues ranures ocupades de manera atòmica.
moviment de ranura multi objectiu
Intercanvia atòmicament el contingut de dues ranures, que poden residir en el mateix o en diferents contenidors. Ambdues ranures han d’existir i estar ocupades. L’intercanvi preserva invariants posicionals a través dels contenidors.
Errors:
- InvalidOperation: No es pot intercanviar una ranura amb ella mateixa al mateix contenidor.
- ContainerNotFound: Un dels contenidors no existeix.
- WrongContainerKind: Ambdós contenidors han de ser de tipus Slots.
- SlotOutOfBounds: Un dels índexs de la ranura supera la capacitat del contenidor.
- SlotEmpty: A slot is empty and cannot be swapped. SlotEmpty: Un slot està buit i no es pot intercanviar. Exemple:
{
"op": "SwapSlots",
"args": {
"container_a": "container-1001",
"container_b": "container-1001",
"slot_a": 1,
"slot_b": 5
}
}
Operacions d’Esquema
RegisterClass
Registra una definició de classe perquè les operacions futures la puguin referenciar.
esquema crear únic dirigit
Registra un ID extern de classe i un nom perquè les transaccions puguin fer referència a la classe i aplicar les seves regles de validació. Els IDs externs són de l’espai de noms i immutables un cop registrats; els IDs interns són assignats automàticament i mai no s’exposen.
Errors:
- ClassAlreadyExists: L’identificador de classe proporcionat (class_id) ja està en ús.
- ClassCapacityExceeded: The global class registry has reached its configured limit. ClassCapacityExceeded: El registre global de classes ha arribat al seu límit configurat. Example:
{
"op": "RegisterClass",
"args": {
"request": {
"class_id": "class-100",
"flags": 2,
"name": "ExampleClass"
}
}
}
RegisterClassShape
Registra una empremta de forma de graella per a una classe o variant de classe.
esquema crear únic dirigit
Defineix la forma d’amplada/alçada per a un class_id (identificador extern) i un stack_key opcional perquè les ubicacions de la graella puguin validar l’ocupació i la rotació. Les formes són necessàries abans de col·locar instàncies o piles dins dels contenidors de la graella per a aquella classe. Tornar a registrar una forma idèntica es tracta com una no-op.
Errors:
- ClassNotFound: La classe referenciada class_id (identificador extern) no s’ha registrat.
- ShapeAlreadyDefined: The shape_id already exists for the class. ShapeAlreadyDefined: El shape_id ja existeix per a la classe. Example:
{
"op": "RegisterClassShape",
"args": {
"request": {
"class_id": "class-200",
"shape": {
"height": 3,
"width": 2
}
}
}
}
RegisterClassContinuousShape2d
Registra un rectangle 2D continu per a una classe o variant de classe.
esquema crear únic dirigit
Defineix el rectangle de punt fixe per a un class_id (identificador extern) i un stack_key opcional perquè les col·locacions 2D continuades puguin validar les col·lisions i les rotacions. Requerit abans de col·locar en contenidors continuous_grid_2d per a aquesta classe. Tornar a registrar un rectangle idèntic es tracta com una operació sense efecte.
Errors:
- ClassNotFound: La classe referenciada class_id (identificador extern) no s’ha registrat.
- ContinuousShapeAlreadyDefined: The continuous shape is already registered for the class/key. ContinuousShapeAlreadyDefined: La forma contínua ja està registrada per a la classe/clau. Exemple:
{
"op": "RegisterClassContinuousShape2d",
"args": {
"request": {
"class_id": "class-200",
"rect": {
"height": 8,
"width": 10
}
}
}
}
RegisterClassContinuousShape1d
Registra un interval 1D continu per a una classe o variant de classe.
esquema crear únic dirigit
Defineix la longitud de l’interval de punt fix per a un class_id (identificador extern) i un stack_key opcional perquè les col·locacions contínues 1D puguin validar les col·lisions. Requerit abans de col·locar en contenidors continuous_line_1d per a aquesta classe. Tornar a registrar un interval idèntic es considera una operació sense efecte.
Errors:
- ClassNotFound: La classe referenciada class_id (identificador extern) no s’ha registrat.
- ContinuousShapeAlreadyDefined: The continuous shape is already registered for the class/key. ContinuousShapeAlreadyDefined: La forma contínua ja està registrada per a la classe/clau. Exemple:
{
"op": "RegisterClassContinuousShape1d",
"args": {
"request": {
"class_id": "class-200",
"span": {
"length": 10
}
}
}
}
Receptes
Moure l’Equilibri Fungible Entre Contenidors
Moure una quantitat fungible d’un contenidor a un altre en una única operació semàntica.
Operacions:
- MoveFungible
Exemple:
{
"namespace_id": 1,
"operations": [
{
"op": "MoveFungible",
"args": {
"class_id": "class-100",
"key": 1,
"quantity": "50",
"from": {
"kind": "balance",
"container_id": "container-1001"
},
"to": {
"kind": "balance",
"container_id": "container-1002"
}
}
}
]
}
Moure la instància entre slots
Elimina una instància d’una ranura i col·loca-la en una altra ranura adreçable dins del mateix contenidor mentre mantens la transacció atòmica.
Operacions:
RemoveFromSlotPlaceInSlot
Exemple:
{
"namespace_id": 1,
"operations": [
{
"op": "RemoveFromSlot",
"args": {
"container_id": "container-1001",
"slot_index": 1
}
},
{
"op": "PlaceInSlot",
"args": {
"container_id": "container-1001",
"slot_index": 2,
"instance_id": "instance-9001"
}
}
]
}
Registrar classe amb Shape
Registreu una nova classe d’actius i declareu immediatament una forma de graella perquè les regles de col·locació estiguin disponibles per a contenidors estructurats.
Operacions:
RegisterClassRegisterClassShape
Exemple:
{
"namespace_id": 1,
"operations": [
{
"op": "RegisterClass",
"args": {
"request": {
"class_id": "class-100",
"name": "ExampleClass",
"flags": 2
}
}
},
{
"op": "RegisterClassShape",
"args": {
"request": {
"class_id": "class-100",
"shape": {
"width": 2,
"height": 3
}
}
}
}
]
}
Referència ràpida
| Operació | Domini | Acció | Resum |
|---|---|---|---|
| CreateContainer | contenidor | crear | Crea un contenidor (regió de memòria estructurada) amb el tipus sol·licitat |
| RemoveContainer | contenidor | destruir | Elimina un contenidor després de drenar el seu contingut |
| AddFungible | saldo | crear | Afegeix una quantitat fungible a un saldo o a una cel·la de graella explícita |
| RemoveFungible | saldo | destruir | Elimina una quantitat fungible d’un saldo o d’una cel·la de graella explícita |
| MoveFungible | saldo | moure | Mou una quantitat fungible entre saldos o cel·les de graella |
| TransferFungible | saldo | moure | Transfereix una quantitat fungible entre contenidors estructurats |
| TransferMany | saldo | moure | Transfereix múltiples quantitats fungibles entre contenidors en un sol lot |
| Distribute | saldo | moure | Distribueix una quantitat fungible d’una font a múltiples destinacions |
| MergeStacks | saldo | consolidar | Fusiona una pila fungible en una altra dins d’un contenidor |
| ConsolidateStacks | saldo | consolidar | Consolida totes les piles fungibles coincidents dins d’un contenidor |
| MoveMany | saldo | moure | Mou múltiples piles entre contenidors de graella en un sol lot |
| AddInstance | instància | crear | Crea una nova instància i la col·loca en una ubicació objectiu |
| MoveInstance | instància | moure | Mou una instància existent a una nova ubicació |
| RemoveInstance | instància | destruir | Elimina una instància del món |
| BurnInstance | instància | destruir | Elimina una instància única de manera permanent del substrat |
| Attach | instància | enllaçar | Adjunta una instància fill a un pare per a un moviment enllaçat |
| Detach | instància | enllaçar | Desadjunta una instància fill de la seva instància pare |
| PlaceInSlot | slot | moure | Posiciona una instància en un slot adreçable dins d’un contenidor |
| RemoveFromSlot | slot | moure | Elimina una instància d’un slot de contenidor |
| SwapSlots | slot | moure | Intercanvia el contingut de dos slots ocupats de manera atòmica |
| RegisterClass | esquema | crear | Registra una definició de classe perquè les operacions futures la puguin referenciar |
| RegisterClassShape | esquema | crear | Registra una empremta de forma de graella per a una classe o variant de classe |
| RegisterClassContinuousShape2d | esquema | crear | Registra un rectangle continu 2D per a una classe o variant de classe |
| RegisterClassContinuousShape1d | esquema | crear | Registra un interval continu 1D per a una classe o variant de classe |
Aquest document es va generar automàticament a partir del manifest d’operació d’AssetCore.