Создание транзакций с токенами
Введение
Заголовок раздела «Введение»В этом руководстве мы рассмотрим, как создавать транзакции токенов ERC20 (Ethereum), BEP20 (Binance Smart Chain) и TRC20 (Tron) с помощью API Chaingateway V2. Мы предоставим примеры на различных языках программирования, включая Shell (cURL), PHP, Python и JavaScript.
Информацию о получении API-ключа и об авторизации см. в разделе Начало работы документации ChainGateway.
Чтобы выполнять транзакции из Ethereum, BSC или Polygon, ваш адрес должен быть импортирован в Chaingateway или создан с помощью API Chaingateway. В противном случае процедура авторизации не сработает.
Чтобы создать адрес, см. раздел с руководствами
Создание транзакций ERC20 и BEP20
Заголовок раздела «Создание транзакций ERC20 и BEP20»При выполнении транзакции токена в Ethereum, Polygon (ERC20) или Binance Smart Chain (BEP20) вам нужно отправить запрос к API Chaingateway с соответствующими параметрами.
Параметры
Заголовок раздела «Параметры»- from: Адрес отправителя.
- to: Адрес получателя.
- amount: Сумма для отправки.
- contractaddress: Адрес контракта токена.
- password: Пароль, используемый для шифрования файла keystore адреса отправителя.
Пример заголовка Authorization
Заголовок раздела «Пример заголовка Authorization»Замените YOUR_API_TOKEN на ваш реальный API-токен.
Пример кода
Заголовок раздела «Пример кода»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();?>Код должен вернуть следующий ответ:
{ "status": 201, "ok": true, "message": "Succesfully created transaction", "data": { "txid": "0x73344d178812d4919e9002c560781f288030edf72ece88823ef1c377dfb71f27" }}Создание транзакций TRC20
Заголовок раздела «Создание транзакций TRC20»Создание транзакций для токенов Tron работает почти так же. Единственное отличие в том, что вам нужно указать privateKey вместо параметра password.
Параметры
Заголовок раздела «Параметры»- from: Адрес отправителя.
- to: Адрес получателя.
- amount: Сумма для отправки.
- contractaddress: Адрес контракта токена.
- privateKey: Приватный ключ адреса отправителя.
Пример заголовка Authorization
Заголовок раздела «Пример заголовка Authorization»Замените YOUR_API_TOKEN на ваш реальный API-токен.
Пример кода
Заголовок раздела «Пример кода»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();?>Код должен вернуть следующий ответ:
{ "status": 201, "ok": true, "message": "Succesfully created transaction", "data": { "txid": "0x73344d178812d4919e9002c560781f288030edf72ece88823ef1c377dfb71f27" }}