Crear transacciones de tokens
Introducción
Sección titulada «Introducción»En este tutorial veremos cómo crear transacciones de tokens ERC20 (Ethereum), BEP20 (Binance Smart Chain) y TRC20 (Tron) usando la API Chaingateway V2. Ofreceremos ejemplos en varios lenguajes de programación, entre ellos Shell (cURL), PHP, Python y JavaScript.
Para obtener una clave de API y aprender sobre la autorización, consulte la sección Primeros pasos de la documentación de ChainGateway.
Para realizar transacciones desde Ethereum, BSC o Polygon, su dirección debe estar importada en Chaingateway o haberse creado con la API de Chaingateway. De lo contrario, el proceso de autorización no funcionará.
Para crear una dirección, consulte la sección de tutoriales
Crear transacciones ERC20 y BEP20
Sección titulada «Crear transacciones ERC20 y BEP20»Al realizar una transacción de tokens en Ethereum, Polygon (ERC20) o Binance Smart Chain (BEP20), debe enviar una solicitud a la API de Chaingateway con los parámetros adecuados.
Parámetros
Sección titulada «Parámetros»- from: La dirección del remitente.
- to: La dirección del destinatario.
- amount: El importe a enviar.
- contractaddress: La dirección del contrato del token.
- password: La contraseña utilizada para cifrar el archivo keystore de la dirección del remitente.
Ejemplo de cabecera Authorization
Sección titulada «Ejemplo de cabecera Authorization»Reemplace YOUR_API_TOKEN por su token de API real.
Ejemplo de código
Sección titulada «Ejemplo de código»curl --request POST \ --url https://api.chaingateway.io/v2/ethereum/transactions/erc20 \ --header 'Accept: application/json' \ --header 'content-type: application/json' \ --header 'Authorization: YOUR_API_TOKEN' \ --data '{ "from": "0xYourSenderAddress", "to": "0xRecipientAddress", "amount": "100", "contractaddress": "0xTokenContractAddress", "password": "YourPassword" }'const axios = require('axios');
const url = 'https://api.chaingateway.io/v2/ethereum/transactions/erc20';const payload = { from: '0xYourSenderAddress', to: '0xRecipientAddress', amount: '100', contractaddress: '0xTokenContractAddress', password: 'YourPassword'};const headers = { 'Accept': 'application/json', 'content-type': 'application/json', 'Authorization': 'YOUR_API_TOKEN'};
axios.post(url, payload, { headers }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); });import requests
url = "https://api.chaingateway.io/v2/ethereum/transactions/erc20"payload = { "from": "0xYourSenderAddress", "to": "0xRecipientAddress", "amount": "100", "contractaddress": "0xTokenContractAddress", "password": "YourPassword"}headers = { 'Accept': 'application/json', 'content-type': 'application/json', 'Authorization': 'YOUR_API_TOKEN'}
response = requests.post(url, json=payload, headers=headers)print(response.json())<?phprequire 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client();$response = $client->post('https://api.chaingateway.io/v2/ethereum/transactions/erc20', [ 'headers' => [ 'Accept' => 'application/json', 'content-type' => 'application/json', 'Authorization' => 'YOUR_API_TOKEN', ], 'json' => [ 'from' => '0xYourSenderAddress', 'to' => '0xRecipientAddress', 'amount' => '100', 'contractaddress' => '0xTokenContractAddress', 'password' => 'YourPassword' ]]);
echo $response->getBody();?>El código debería devolver esta respuesta:
{ "status": 201, "ok": true, "message": "Succesfully created transaction", "data": { "txid": "0x73344d178812d4919e9002c560781f288030edf72ece88823ef1c377dfb71f27" }}Crear transacciones TRC20
Sección titulada «Crear transacciones TRC20»Crear transacciones para tokens de Tron funciona de forma casi idéntica. La única diferencia es que deberá proporcionar privateKey en lugar del parámetro password.
Parámetros
Sección titulada «Parámetros»- from: La dirección del remitente.
- to: La dirección del destinatario.
- amount: El importe a enviar.
- contractaddress: La dirección del contrato del token.
- privateKey: La clave privada de la dirección del remitente.
Ejemplo de cabecera Authorization
Sección titulada «Ejemplo de cabecera Authorization»Reemplace YOUR_API_TOKEN por su token de API real.
Ejemplo de código
Sección titulada «Ejemplo de código»curl --request POST\ --url https://api.chaingateway.io/v2/tron/transactions/trc20\ --header 'Accept: application/json'\ --header 'content-type: application/json'\ --header 'Authorization: YOUR_API_TOKEN'\ --data '{ "from": "TYourSenderAddress", "to": "TRecipientAddress", "amount": "100", "contractaddress": "TTokenContractAddress", "privateKey": "YourPrivateKey"}'import requests
url = "https://api.chaingateway.io/v2/tron/transactions/trc20"payload = { "from": "TYourSenderAddress", "to": "TRecipientAddress", "amount": "100", "contractaddress": "TTokenContractAddress", "privateKey": "YourPrivateKey"}headers = { 'Accept': 'application/json', 'content-type': 'application/json', 'Authorization': 'YOUR_API_TOKEN'}
response = requests.post(url, json=payload, headers=headers)print(response.json())const axios = require('axios');
const url = 'https://api.chaingateway.io/v2/tron/transactions/trc20';const payload = { from: 'TYourSenderAddress', to: 'TRecipientAddress', amount: '100', contractaddress: 'TTokenContractAddress', privateKey: 'YourPrivateKey'};const headers = { 'Accept': 'application/json', 'content-type': 'application/json', 'Authorization': 'YOUR_API_TOKEN'};
axios.post(url, payload, { headers }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); });<?phprequire 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client();$response = $client->post('https://api.chaingateway.io/v2/tron/transactions/trc20', [ 'headers' => [ 'Accept' => 'application/json', 'content-type' => 'application/json', 'Authorization' => 'YOUR_API_TOKEN', ], 'json' => [ 'from' => 'TYourSenderAddress', 'to' => 'TRecipientAddress', 'amount' => '100', 'contractaddress' => 'TTokenContractAddress', 'privateKey' => 'YourPrivateKey' ]]);
echo $response->getBody();?>El código debería devolver esta respuesta:
{ "status": 201, "ok": true, "message": "Succesfully created transaction", "data": { "txid": "0x73344d178812d4919e9002c560781f288030edf72ece88823ef1c377dfb71f27" }}