TON SDKs
TON SDKs (TON Software Development Kits) son kits para el desarrollo de software TON, representan bibliotecas de software diseñadas para facilitar el desarrollo de las aplicaciones e interactuar con los contratos inteligentes en la red TON.
Descripción
Los SDK de TON brindan a los desarrolladores un conjunto completo de recursos que incluyen API, ejemplos del código, documentación y mecanismos de prueba. Estas herramientas simplifican el proceso del desarrollo en la blockchain y les permiten a los desarrolladores crear las aplicaciones en TON.
SDK en varios lenguajes
Node.js
Para los desarrolladores de Node.js, el paquete node-tonlib proporciona un contenedor para la biblioteca tonlibjson que permite interactuar con TON directamente desde sus aplicaciones Node.js.
node-tonlib es un complemento de C++ que sirve como contenedor de Node.js para tonlibjson y la interfaz JSON de la biblioteca TON Client. Este complemento proporciona una manera fácil de integrar la funcionalidad de TON en sus proyectos Node.js, permitiendo realizar diversas operaciones, tales como crear y administrar billeteras, enviar y recibir transacciones, interactuar con contratos inteligentes y consultar la cadena de bloques TON.
TON JS Client
La biblioteca TON JS Client fue creada por Whales Corp. y se mantiene por Dan Volkov. Proporciona un cliente multiplataforma para interactuar con TON usando JavaScript o TypeScript. Ofrece una API intuitiva de alto nivel para las operaciones centrales de blockchain.
Características clave:
Creación de billeteras
Simplifica la creación de billeteras usando las funciones mnemonicNew() y mnemonicToPrivateKey(). Están diseñadas para almacenar y transferir monedas TON e interactuar con los contratos inteligentes.
Interacción con los contratos de las billeteras
Permite crear fácilmente los contratos de las billeteras usando WalletContractV4.create().
Abstrae los detalles de bajo nivel del contrato, centrándose en la lógica de la aplicación.
Solicitud de estado de cuenta
Permite utilizar la función contract.getBalance() para solicitudes de estado de cuenta simples. Muestra el saldo del usuario según los fondos disponibles.
Procesamiento de transacciones
Permite crear y enviar las transacciones - contract.createTransfer().
Configuración de transacciones flexible
Permite realizar varios tipos de transacciones, incluidos mensajes internos con valores específicos y direcciones de destinatario. Brinda la posibilidad de realizar diversas operaciones, desde las traducciones simples hasta las interacciones contractuales complejas.
Soporte multiplataforma
Se utiliza en varios entornos JavaScript.
Requiere configuración adicional mínima para las aplicaciones de navegador que utilizan un polyfill de navegador (require("buffer")).
Configuración de la red
Admite la interacción con las redes principales y de prueba especificando un punto final de API HTTP. Es muy importante para el desarrollo, la prueba y la implementación en un entorno de producción.
tonutils
Este es un conjunto moderno de herramientas de TypeScript diseñado para simplificar la interacción con los protocolos de red TON. Su arquitectura modular incluye tales componentes como tonutils/adnl, tonutils/dht, tonutils/keyring, tonutils/config и tonutils/tl.
Se centra en las funciones de red avanzadas de TON y en la interacción con tales servicios de TON como TON Proxy, TON Sites y TON Storage con soporte de recompensas.
TON Web
TonWeb es un potente SDK de JavaScript que se utiliza para interactuar con TON. Proporciona una amplia gama de herramientas y utilidades que permiten a los desarrolladores crear una variedad de aplicaciones basadas en TON, desde las billeteras simples hasta las aplicaciones descentralizadas complejas (DApps).
Instalación
TonWeb puede ser integrado fácilmente tanto en entornos web como en el Node.js.
Características principales
Los ejemplos presentados demuestran las capacidades de TonWeb:
Creación y gestión de billeteras.
Se usa tonweb.wallet.create() para crear las billeteras TON que requieren una clave pública generada o derivada de una frase mnemotécnica.
Procesamiento de direcciones
Se reciben las direcciones de billetera usando wallet.getAddress(). TonWeb admite varios formatos de direcciones, incluidas direcciones non-bounceable
Implementación de billeteras
Las billeteras en la cadena de bloques TON se implementan usando wallet.deploy(secretKey).send().
Creación de transacciones y estimación de comisiones
Las transacciones se crean y se envían con el uso de wallet.methods.transfer(), especificando el destinatario, el monto (en nanoTON), el número de secuencia, la carga útil y el modo de envío. Es posible estimar la comisión de la transacción antes de enviarla con el uso de .estimateFee().
Python
TON Tools
La biblioteca tontools es una biblioteca orientada a objetos que proporciona un conjunto conveniente de herramientas para interactuar con la blockchain, administrar las billeteras, implementar los contratos inteligentes e interactuar con varias funciones TON.
Los tontools principales incluyen:
Flexibilidad en la selección del proveedor: tontools admite varios proveedores: TonCenterClient (API TonCenter)LsClient (servidores Lite)DtonClient (API GraphQL)TonApiClient (API de indexación). Los desarrolladores se guían por los parámetros siguientes: rendimiento, límites de velocidad, indexación.
Gestión de billeteras: creación, implementación y administración fácil de las billeteras (normales o con frases mnemotécnicas). Verificación de la dirección, implementación y transferencia de monedas TON.
Interacción con contratos inteligentes: proporciona clases para interactuar con: NFT (NftItem, NftCollection, NftItemSale), fichas (Jetton, JettonWallet) y contratos personalizados (clase Contract).
Procesamiento de transacciones: simplifica los procesos de transacciones de TON: envío y recepción de monedas TON. Transferencia de fichas. Solicitud del historial de las transacciones.
Solicitudes a la blockchain: métodos de solicitud a la blockchain TON: Obtención de datos sobre bloques y transacciones. Obtención de los estados de los contratos. Suscribción a los eventos de la blockchain.
Object-Oriented Design: utiliza el enfoque OOD para crear un código intuitivo.
Manejo de errores y seguridad: incluye tales funciones como manejo de direcciones no retornantes.
Comunidad y recursos: el código fuente se mantiene por la comunidad TON.
pytoniq
Está creado para interactuar directamente con la red TON, ofreciendo tales características como:
- Implementación de Native LiteClient
- Soporte ADNL
- Cliente de tabla hash distribuida (DHT)
- Escaneo de bloques y procesamiento de transacciones
- Interacción con contratos inteligentes
Esto hace que pytoniq sea adecuado para una amplia gama de aplicaciones basadas en TON, desde las billeteras simples hasta las aplicaciones descentralizadas complejas (DApps).
Instalación
Para comenzar con pytoniq, puede instalarlo mediante pip, el instalador del paquete de Python: pip install pytoniq.
Componentes y características clave
LiteClient de pytoniq permite interactuar directamente con los servidores lite deTON . Capacidades principales:
- LiteClient
- Niveles de control configurables (de 0 a 2) para verificación de datos.
- Recepción de información de la masterchain.
- Escaneo de bloques y transacciones.
- Llamada al contrato inteligente.
2. LiteBalancer
LiteBalancer amplía las capacidades de LiteClient y enruta las solicitudes de manera inteligente al servidor Lite "óptimo" basándose en la capacidad de respuesta y el tamaño del bloque. También admite solicitudes repetidas de tiempo de espera y puede acceder específicamente a los servidores de archivo para obtener solicitudes de períodos anteriores.
3. Block Store
Para las operaciones de confianza cero (zero-trust), pytoniq utiliza almacenamiento de bloques local (carpeta .blockstore) para validar los datos recibidos de servidores lite, lo que garantiza la integridad de los datos sin sacrificar la descentralización.
4. ADNL и DHT
pytoniq proporciona el soporte nativo para ADNL (Abstract Datagram Network Layer) y DHT (Distributed Hash Table), lo que garantiza la comunicación punto a punto y el almacenamiento de datos descentralizado.
tonpy
tonpy es un paquete Python de alto rendimiento creado para interactuar con TON. Combina de forma única la eficiencia de C++ con la facilidad del uso de Python.
C++ Core: Los procesos críticos para el rendimiento se implementan en C++.
Python Wrapper: es una API de Python fácil de usar construida sobre los archivos binarios de C++ precompilados.
Características clave
Estructuras de datos TON: procesamiento eficiente de direcciones, celdas e identificadores
Gestión de billeteras: Creación y administración de billeteras.
Procesamiento de transacciones: creación, firma y envío de transacciones; evaluación de comisiones.
Contratos inteligentes: Implementación y llamada de contratos TON (FunC, TVM).
Network Protocols: Implementación de ADNL, DHT, RLDP.
Golang(Go)
tonutils-go
Es una poderosa biblioteca de Golang creada para interactuar fácilmente con la cadena de bloques TON. Se distingue por su implementación eficiente de los principales protocolos de red TON y se centra en las operaciones paralelas de alto rendimiento.
Operaciones con billeteras
Inicialización de billeteras
Creación de una billetera nueva con una frase de semilla o uso de la billetera existente. El contrato de billetera se implementa e inicializa con el primer mensaje.
Uso básico
- Seed Words: hay que utilizar la frase semilla para inicializar la billetera.
- Get Balance: Comprobación del saldo de la billetera.
- Transfer: Transferencia de fondos si el saldo lo permite, incluido el mensaje de transferencia.
Interacción con el contrato.
GET Methods
- Obtención de la información sobre el bloque, ejecución del método de contrato y análisis del resultado.
- Creación y envío de mensajes a la dirección del contrato. Procesamiento del contrato y deducción de comisiones.
- Implementación de contratos con ayuda de la billetera proporcionando el código del contrato y inicializando los datos y el cuerpo del mensaje.
Operaciones con NFT
- Gestión de NFT con acuñación, transferencia y recepción de información.
- Recepción de datos sobre NFT, incluida información sobre la recopilación y el propietario.
- Acceso a tal información sobre la colección, como la URL del contenido y el propietario.
- Recepción de URL del contenido de NFT.
También se puede realizar las operaciones Jetton y DNS.
C#
TonSdk.NET
Este es un conjunto completo de bibliotecas. Cada paquete del conjunto tiene un propósito específico, ayudando a los desarrolladores a conectarse a los contratos inteligentes y utilizar las funciones de red avanzadas.
Paquetes
- TonSdk.Core se compone de diferentes paquetes para diferentes propósitos.
- TonSdk.Client está diseñado para interactuar con TonCenter.
- TonSdk.Contracts proporciona la capa de abstracción y el funcionamiento de los contratos inteligentes.
- TonSdk.Connect se utiliza para la integración con Ton Connect 2.0.
- TonSdk.Adnl está diseñado para implementar la capa de red en TON.
Todos estos paquetes están disponibles en NuGet
Otros lenguajes del SDK
TonKotlin
TonKotlin proporciona varios módulos para gestionar las operaciones de la red, interactuando con blockchain y máquinas virtuales, siguiendo los principios descritos en el documento TON.
Módulos clave y su funcionalidad:
TON-Kotlin es un SDK multiplataforma creado para que los desarrolladores interactúen con The Open Network (TON) utilizando Kotlin. Ofrece varios módulos para gestionar operaciones de red, realizar interacciones de blockchain y operaciones de máquinas virtuales, siguiendo los principios descritos en el documento TON.
- ton-adnl Implementa el protocolo Abstract Datagram Networking Layer Protocol.
- ton-api Contiene estructuras del esquema TL.
- ton-bitstring Controla las cadenas de bits que se utilizan por (TVM).
- ton-block Contiene estructuras del esquema TL-B.
- ton-boc Serializa y deserializa celdas como una colección (bag-of-cells).
- ton-cell Proporciona datos en celdas, unidades fundamentales en la cadena de bloques TON y VM.
- ton-crypto Proporciona interfaces para los algoritmos criptográficos y los métodos de conversión de datos utilizados en TON.
Tonlib-java
Tonlib-java es un contenedor basado en JVM para TonLib, que permite su uso con Java, Scala, Kotlin y otros lenguajes JVM.
Información sobre TonLib
TonLib es una biblioteca cliente de C++ que proporciona una interacción segura y eficiente con The Open Network (TON). Incluye características básicas para garantizar la comunicación segura de la red.
Características clave de Tonlib-java:
- Integración JNI: Java interactúa con TonLib a través deJava Native Interface (JNI), lo que permite acceder directamente al código C++ nativo.
- Implementación del cliente: la funcionalidad principal está encapsulada en la clase Client.java.
- Clasificación de mensajes: la comunicación se lleva a cabo con ayuda de clases de mensajes generados especificados en TonApi.java.
- Security: TonLib verifica Merkle proofs para los datos recibidos de liteservers, garantizando la integridad y autenticidad de los datos. Esto permite una interacción segura con los liteservers.
ayrat555/ton
- Lenguaje: Elixir
- Tipo: Offchain-only
C++ Tonlib
- Lenguaje: C++
- Tipo: Tonlib binary
Java Tonlib
- Lenguaje: Java
- Tipo: Tonlib binary
labraburn/SwiftyTON
- Lenguaje: Swift
- Tipo: Tonlib binary
tonlib-xcframework
- Lenguaje: Swift
- Tipo: Tonlib binary