Introducción

Para usuarios avanzados con experiencia en el desarrollo de aplicaciones sobre blockchains EVM, hemos creado nuestra propia librería ligera y personalizada para Unity: SequenceEthereum. SequenceEthereum debería proporcionarle todo lo necesario para construir su app de Unity sobre EVM, sin todas las funciones adicionales que ofrece la popular librería Nethereum.

Aunque SequenceEthereum está ampliamente probada, en general, al trabajar con métodos asíncronos en la librería, debe considerarlos “no seguros”, ya que pueden lanzar excepciones si se usan incorrectamente. En general, envolver llamadas asíncronas que puedan lanzar excepciones en bloques try-catch es una buena práctica; especialmente en Unity, donde los Tasks pueden fallar silenciosamente al lanzar excepciones, lo que dificulta la depuración si no se envuelven en try-catch.

Componentes importantes

Al trabajar con la librería SequenceEthereum, puede ser útil entender algunos de los principales “componentes” y cómo se relacionan lógicamente entre sí.

Cliente

Los clientes gestionan la conexión a las redes blockchain, realizando diversas solicitudes RPC. Cada vez que desee consultar la blockchain o enviar una transacción, necesitará un cliente. Como regla general, si un método requiere un cliente, debe esperar que realizará una solicitud web y tendrá que trabajar con tareas asíncronas y estar preparado para manejar cualquier excepción que se genere.

Sequence.Wallet.IWallet

Un wallet mantiene su propio par de claves privada/pública y dirección, y es responsable de proporcionar su clave privada cuando se firman transacciones.

Transacción

Una transacción, tal como se implementa en EthTransaction, contiene todos los datos y parámetros para una transacción EVM. Este objeto se utiliza para iniciar su codificación RLP (las transacciones deben ser firmadas y codificadas en RLP al enviarse).

Nota: todas las transacciones se codifican incluyendo un chain id para proteger contra ataques de repetición; consulte EIP-155.

Contrato

Un contrato es responsable de crear transacciones (para llamadas a métodos) y mensajes (para consultas) dirigidos a él. Estas transacciones luego son firmadas por el wallet y enviadas (junto con los mensajes de consulta) usando un cliente.