Всем привет! Есть интересная задача создание API для работы с блокчейном двух криптовалют (возможно, список будет пополнятся):
Аlgorand
www.algorand.com Terra
www.terra.money Необходимо реализовать API для работы с методом, которые описаны ниже.
Если вы используете PHP, то минимальная версия PHP 8.1, для реализации на PHP API можно не реализовывать, достаточно скриптов.
Предпочтения к языкам: php, js
На вход вы принимаете:
currency — валюта (например, TRX)
token – (например, trc20)
contract_address — адреса контракта
В зависимости от того, что вы передали токен или монету, по итогу вы работаете с либо с контрактом, либо «без него» соотвественно
Если работа с токеном currency не передается.
Примечание:
Ответы в json. Успешный результат вернуть в result, если произошла ошибка при выполнение http code=500, в error саму ошибку.
Создание адреса
Нет входящих данных, адрес создается не на ноде, а offline.
Вы должны вернуть:
address — адрес кошелька
password — приватный ключ
Баланс кошелька
Запрос:
address адреса кошелька
Ответ:
balance — баланс кошелька в валюте (string)
Валидация кошелька
Запрос:
address адреса кошелька
Ответ:
is_valid — true|false
Запрос на вывод
Запрос
from_address адреса кошелька
from_password — приватный ключ кошелька
amount сумма
address — адрес куда вывести
Ответ:
txid — txid транзакции
Информация о транзакции
Запрос:
txid — txid транзакции
Ответ:
status
paid — успешно
wait — не подтверждена
fail — ошибки транзакции
fee – комиссия сети , array
amount сумма
currency валюта paid — успешно, wait — не подтверждена, fail — ошибки транзакции
Уведомление о новой транзакции, блок
Вам необходимо получать новые блоки и парсить их, вытаскивать транзакции и информацию о них. Все распарсенные транзакции необходимо отправлять по http. Сохраняете последний̆ распарсенный блок и начинайте с него при падении.
Запрос:
transactions — массив транзакций
Структура транзакции:
block_number — номер блока
from_address — от кого пришла транзакция to_address — на какой адрес
amount — сумма
txid hash
сontract_address адрес контратка(может и не быть)
Если будут вопросы с радостью на них отвечу!