Receptes
Les receptes són patrons comuns de múltiples operacions que aconsegueixen fluxos de treball típics. Utilitzeu-les com a plantilles per a les vostres transaccions.
Requisits previs
- Comprensió de operacions
- Classes d’actius registrades per al vostre domini
- Contenidors creats per a la font i la destinació
Pas 1 - Transferència de Saldo Fungible Entre Contenidors
Moure una quantitat fungible d’un contenidor a un altre utilitzant operacions de eliminar i afegir.
Quan utilitzar: Moure recursos, transferir saldos, reequilibrar inventari.
Operacions: RemoveFungible, AddFungible
{
"operations": [
{
"op": "RemoveFungible",
"args": {
"container_id": 1001,
"class_id": 200,
"key": 1,
"quantity": 150
}
},
{
"op": "AddFungible",
"args": {
"container_id": 1002,
"class_id": 200,
"key": 1,
"quantity": 150
}
}
],
"idempotency_key": "transfer-balance-1001-1002"
}
Alternativament, utilitzeu TransferFungible per a una transferència d’una sola operació:
{
"operations": [
{
"op": "TransferFungible",
"args": {
"from_container": 1001,
"to_container": 1002,
"class_id": 200,
"key": 1,
"quantity": 150
}
}
]
}
Pas 2 - Moure la Instància Entre Slots
Reubiqueu una instància única d’una ranura a una altra dins dels mateixos o diferents contenidors.
Quan utilitzar: Reorganitzar l’inventari, moure equipament, reposicionar articles.
Operacions: RemoveFromSlot, PlaceInSlot
{
"operations": [
{
"op": "RemoveFromSlot",
"args": {
"container_id": 1001,
"slot_index": 0
}
},
{
"op": "PlaceInSlot",
"args": {
"container_id": 1001,
"slot_index": 1,
"instance_id": 9001
}
}
],
"idempotency_key": "slot-move-9001"
}
Per intercanviar dues places ocupades, utilitzeu SwapSlots en el seu lloc.
Pas 3 - Registrar la Classe amb Shape
Defineix una nova classe d’actius i configura immediatament la seva forma de graella en una sola transacció.
Quan utilitzar: Configurar nous tipus d’actius que es col·locaran en contenidors de graella.
Operacions: RegisterClass, RegisterClassShape
{
"operations": [
{
"op": "RegisterClass",
"args": {
"request": {
"class_id": 300,
"name": "Battle Tank",
"fungible": false
}
}
},
{
"op": "RegisterClassShape",
"args": {
"request": {
"class_id": 300,
"shape_id": 1,
"width": 3,
"height": 2
}
}
}
],
"idempotency_key": "class-with-shape-300"
}
Pas 4 - Menta i Col·loca Instància
Creeu una nova instància única i col·loqueu-la immediatament en una ranura.
Quan utilitzar: Generar articles, crear equipament, afegir mostres.
Operacions: MintInstance, PlaceInSlot
{
"operations": [
{
"op": "MintInstance",
"args": {
"class_id": 200,
"key": 1
}
},
{
"op": "PlaceInSlot",
"args": {
"container_id": 1001,
"instance_id": 9001,
"slot_index": 0
}
}
]
}
Nota: Cal que coneguis l’ID de la instància que es crearà. Utilitza un esquema d’assignació determinista o envia la creació i la ubicació com a transaccions separades.
Pas 5 - Configurar el contenidor amb saldo inicial
Creeu un contenidor i ompliu-lo amb recursos inicials.
Quan utilitzar: Inicialitzar inventaris de jugadors, crear nou emmagatzematge, configurar experiments.
Operacions: CreateContainer, AddFungible
{
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 2001,
"kind": "Standard",
"owner": null
}
},
{
"op": "AddFungible",
"args": {
"container_id": 2001,
"class_id": 100,
"key": 1,
"quantity": 1000
}
},
{
"op": "AddFungible",
"args": {
"container_id": 2001,
"class_id": 101,
"key": 1,
"quantity": 500
}
}
],
"idempotency_key": "init-container-2001"
}
Pas 6 - Adjuntar Equip a Personatge
Creeu relacions de pare-fill entre instàncies per a equips o components.
Quan utilitzar: Equipar articles, adjuntar components, construir jerarquies.
Operacions: MintInstance, Attach
{
"operations": [
{
"op": "MintInstance",
"args": {
"class_id": 300,
"key": 1
}
},
{
"op": "Attach",
"args": {
"child_instance": 9002,
"parent_instance": 9001
}
}
]
}
Per eliminar equip, utilitzeu Detach seguit de la ubicació desitjada.
Resolució de problemes
L’ordre és important
Les operacions s’executen de manera seqüencial. Assegureu-vos que les operacions anteriors creen l’estat del qual depenen les operacions posteriors.
Utilitzeu claus d’idempotència
Sempre inclou claus d’idempotència per a operacions que modifiquen l’estat. Això evita compromisos duplicats en reintents.
Comprovar els tipus de contenidors
Les operacions de balanceig requereixen contenidors Standard o Grid. Les operacions de slots requereixen contenidors Slots. Els tipus no coincidents causen errors WrongContainerKind.
Validar quantitats
Assegureu-vos que els contenidors d’origen tinguin un saldo suficient abans de les transferències. Un saldo insuficient provoca que tota la transacció es reverti.
Properes passes
- Operacions per Domini - Referència completa d’operacions
- Model d’Error - Comprendre les fallades
- Python SDK - Constructors d’operacions segurs en tipus