Gestión de fichas
10

Una vez que sus fichas han sido acuñadas, puede que quiera editarlas, enviarlas o fundirlas y recuperar la moneda Enjin (ENJ) del interior de las fichas.

El API de la plataforma ha sido construido para proporcionar toda la funcionalidad necesaria para gestionar una robusta economía de juego basada en la cadena de bloques.

Es probable que utilice las siguientes consultas y mutaciones con bastante frecuencia cuando se trate de gestionar sus activos simbólicos.

Cambiar el nombre de la ficha

Las fichas tienen sus nombres especificados en la cadena de bloqueo y dentro de sus metadatos.

Esto significa que las fichas pueden, técnicamente, recibir un nombre diferente en la cadena de bloques y en sus metadatos.

La siguiente mutación puede utilizarse para actualizar el nombre de un token en la cadena de bloques:

GraphQL
mutation UpdateTokenName($identityId: Int!, $itemNameData: UpdateItemNameInput!) {
 CreateEnjinRequest(identity_id: $identityId, type: UPDATE_NAME, update_item_name_data: $itemNameData) {
   id
   encodedData
 }
}

Derretir los artículos del lote

Puede haber ocasiones en las que cometas un error durante el proceso de acuñación de fichas y desees fundir todas las fichas que has creado.

Para fundir cualquier token, éste debe estar en tu cartera. Es importante que compruebes cuatro veces la configuración de tus tokens antes de enviarlos a tus usuarios.

Una vez que sus fichas han sido distribuidas a sus usuarios, no hay vuelta atrás y la única manera de corregir cualquier error es generar fichas de reemplazo.

GraphQL

mutation BatchMelt($identityId: Int!, $meltTokenData: MeltTokenInput!) {
 CreateEnjinRequest(identity_id: $identityId, type: MELT, melt_token_data: $meltTokenData) {
   identityId
   tokenId
 }
}

Liberar la reserva

Cuando creas una ficha, se te pedirá que pongas una reserva inicial en la moneda de Enjin (ENJ) en ella.

Esto es para asegurar que puedas acuñar tus fichas con fluidez, usando la Moneda de Enjin que has dejado a un lado.

Si no desea seguir utilizando la ficha y decide no seguir adelante con la acuñación de las respectivas fichas, puede destruir la plantilla y devolver la moneda Enjin que ha dejado de lado utilizando la siguiente mutación:

GraphQL
mutation ReleaseReserve($identityId: Int!, $tokenId: String!, $value: Int!) {
 CreateEnjinRequest(identity_id: $identityId, type: RELEASE_RESERVE, release_reserve_data: {token_id: $tokenId, value: $value}) {
   tokenId
 }
}

Nota: Hay un período de enfriamiento para liberar la reserva y cuanto más moneda de Enjin tengas bloqueada en la plantilla, más tiempo tendrás que esperar hasta que puedas liberarla. Este período de espera puede tomar días o incluso semanas.

Envíe todos los tipos de artículos: Envío avanzado

El API de la plataforma permite enviar un número ilimitado de fichas Fungibles y hasta 100 fichas No Fungibles a un máximo de 1000 usuarios, en una sola transacción.
La mutación Advanced Send es una de las mutaciones más comunes para enviar grandes cantidades de activos de una dirección, a otra en una sola transacción y con facilidad.

Esta es la mutación de envío más robusta y popular utilizada por los desarrolladores:

GraphQL
mutation AdvancedSend($identityId: Int!, $tokenData: AdvancedSendTokenInput!) {
 CreateEnjinRequest(identity_id: $identityId, type: ADVANCED_SEND, advanced_send_token_data: $tokenData) {
   id
   encodedData
 }
}

Transferencia de la lista blanca

Si ha creado un token vinculado o un token con tasas de transferencia, y no desea que estos ajustes se apliquen en todas las circunstancias, puede utilizar las listas blancas de transferencia para permitir que determinados usuarios envíen tokens a direcciones específicas.

GraphQL
mutation WhitelistToken($identityId: Int!, $appId: Int!, $whitelistData: SetWhitelistedInput!) {
 CreateEnjinRequest(identityId: $identityId, appId: $appId, type: SET_WHITELISTED, set_whitelisted_data: $whitelistData) {
   id
   encodedData
 }
}

Ajustes de la lista blanca

Full Rights: The address has full rights to send and receive the token.
<inline-code>0x0000000000000000000000000000000000000001<inline-code>

Can Send: The address can send but not receive the token. Which means the only way they can get the token, is if you mint it directly to their address.
<inline-code>0x0000000000000000000000000000000000000002<inline-code>

Can Receive: The address can receive but can't send the token.
<inline-code>0x0000000000000000000000000000000000000003<inline-code>

No Fees: The address can send tokens without paying transfer fees.
<inline-code>0x0000000000000000000000000000000000000004<inline-code>

Detalles de la ficha

Si desea proporcionar a sus usuarios información detallada sobre un determinado token, puede utilizar esta consulta para buscar los datos:

GraphQL
query GetTokenDetails($name: String!) {
 EnjinTokens(name: $name, pagination: {page: 1, limit: 50}) {
   id
   name
   creator
   meltValue
   meltFeeRatio
   meltFeeMaxRatio
   supplyModel
   totalSupply
   circulatingSupply
   reserve
   transferable
   nonFungible
   blockHeight
   markedForDelete
   createdAt
   updatedAt
   availableToMint
   itemURI
 }
}

Los poseedores de las fichas

Esta consulta devuelve una lista de direcciones que poseen una ficha específica:

GraphQL
query GetBalance($tokenId: String!) {
 EnjinBalances(tokenId: $tokenId) {
   token {
     id
     index
   }
   wallet {
     ethAddress
   }
   value
 }
}

Puede ser útil para recompensar a todos los poseedores de una ficha específica de una sola vez, mediante un lanzamiento aéreo coordinado.

Datos de la transacción

Cada vez que emita una mutación de envío, se le devolverá una identificación. Esta identificación es muy importante y es muy aconsejable registrar estos datos para poder acceder a ellos de nuevo, en una fecha posterior.

Si desea ver el estado de cualquier transacción que haya realizado en la cadena de bloqueo, deberá utilizar esta consulta:

GraphQL
query GetTransaction($id: Int!) {
 EnjinTransactions(id: $id) {
   id
   transactionId
   type
   state
   error
   token {
     id
     name
   }
 }
}

La consulta de Transacciones de Enjin devolverá vvarias piezas de información, dependiendo del estado de la transacción que haya ejecutado.
Notará que hemos añadido el argumento de error dentro de la consulta. El argumento de error es útil para tener, en caso de que su transacción haya fallado / se haya caído por una determinada razón, esto mostrará por qué la transacción en cuestión no se procesó en la cadena de bloqueo.

Esta consulta devolverá los siguientes valores:

  • PENDIENTE: La transacción se crea en la Nube de Enjiin, pero aún no ha sido firmada por el usuario/dev.
  • TP_PROCESAMIENTO: La transacción ha sido firmada y está esperando que la Nube/Plataforma de Enjin) procese la transacción para su emisión.
  • TRANSMISIÓN: La transacción ha sido firmada y ha sido transmitida pero aún no ha sido confirmada en la cadena de bloqueo.
  • EJECUTADO: La transacción ha recibido confirmación en la cadena de bloqueo y la Nube de Enjin.
  • CANCELADO_USUARIO: El usuario ha cancelado la transacción PENDIENTE/no firmada.
  • PLATAFORMA_CANCELADA: La Plataforma ha cancelado la transacción PENDIENTE.
  • FALLÓ: La transacción ha fallado en la Plataforma Enjiin.
  • CAYÓ: La transacción no fue minada en la cadena de bloques y desde entonces ha sido abandonada.

Establecer el subsidio de gastos

Si quieres aumentar la seguridad de tu proyecto y establecer un límite de gastos para ti, o permitir que tus jugadores elijan su propio límite de gastos, puedes usar esta mutación para establecer un límite de gastos:

GraphQL
mutation ApproveEnj($id: String!, $limit: Int!) {
 CreateEnjinRequest(identity_id: $id, type: APPROVE, approve_enj_data: {value: $limit}) {
   id
 }
}

Poner el valor como -1 para el valor máximo.

Nota: Este valor disminuye a medida que se usa, como una asignación literal de gastos. Si establece el valor en 10 monedas de Enjin (ENJ) y luego hace 10 transacciones por 1 ENJ cada una, su asignación bajará a 0 y tendrá que ser establecida de nuevo.

Petición de comercio

Iniciar intercambios seguros entre pares es un proceso de tres pasos. La forma en que esto funciona es, primero, hay que crear el comercio, los respectivos artículos deben mantenerse en custodia, y una vez que ambas partes hayan comprobado los artículos, pueden completar el comercio.

Paso 1: Crear la solicitud de intercambio y confirmarla en el monedero de la primera persona.

GraphQL
mutation SendTradeRequest($initiatorId: Int!, $recipientId: Int!) {
 CreateEnjinRequest(identity_id: $initiatorId, type: CREATE_TRADE, create_trade_data: {asking_tokens: [{id: "XXXXXXXXXXXXXXXXX", value: 1}], offering_tokens: [{id: "XXXXXXXXXXXXXXXXX", value: 1}], second_party_identity_id: $recipientId}) {
   id
   encodedData
   state
 }
}

Usa el id: "0" argumento para Enjin Coin (ENJ).

Paso 2: Obtener el trade_id - param1.

GraphQL
query RetrieveTradeId($id: Int!) {
 EnjinTransactions(id: $id) {
   type
   transactionId
   events {
     param1
   }
 }
}

Paso 3: Completar la solicitud de comercio. Ingresa param1 como trade_id, 2nd persons identity_id y confirma en la cartera de la 2ª persona.

GraphQL
mutation CompleteTradeRequest($id: Int!, $tradeId: String!) {
 CreateEnjinRequest(identity_id: $id, type: COMPLETE_TRADE, complete_trade_data: {trade_id: $tradeId}) {
   id
   transactionId
   encodedData
 }
}

Cambio del estado de la transferencia de activos

En ocasiones, puede que desee cambiar el estado de transferencia de un vale de seguridad que ha creado para darle cierto valor, ya sea que desee que el vale sea transferible permanentemente, transferible temporalmente o vinculado a una dirección.

Nota: Si ha configurado la ficha para que sea permanentemente transferible, no podrá alterar esa configuración.

GraphQL
mutation ChangeAssetTransferableType($appId: Int!, $identityId: Int!, $tokenId: String!, $transferable: TokenTransferable!) {
 CreateEnjinRequest(appId: $appId, identityId: $identityId, type: SET_TRANSFERABLE, set_transferable_data: {token_id: $tokenId, transferable: $transferable}) {
   id
   encodedData
 }
}

Explorador de la cadena de bloques

Los jugadores están intrínsecamente interesados en los datos de la cadena de bloqueo detrás de los activos que poseen.

Si desea vincular a sus usuarios a la lista de EnjinX de un token específico, puede añadir el ID del token al final de la URL. Esto les permite aprender todo lo que puedan sobre sus símbolos.

Ejemplo:

https://jumpnet.enjinx.io/eth/asset/000000000000000

https://enjinx.io/eth/asset/000000000000000

Anterior
siguiente
En esta página