Это руководство предназначено только для образовательных целей, я не несу ответственности за любые убытки, ущерб или другие обязательства, которые могут возникнуть в результате использования любой информации/кода, представленных здесь (или где-либо еще).
Я ни при каких обстоятельствах не являюсь профессионалом Javascript (или JS Ninja/Expert)!
Код не готов к работе! (только в учебных целях)
В этом руководстве я покажу вам, как отправить транзакцию MAN (Mainnet).
Мы будем использовать следующие пакеты: «aiman», «matrixjs-tx», «bignumber.js».
Вы можете установить их, используя:
npm install aiman matrixjs-tx bignumber.js
затем объявите их:
Приступаем к программированию!
Во-первых, мы начнем с объявления некоторых переменных tx, которые мы собираемся использовать. Нам понадобятся следующие, имена переменных не требуют пояснений: privateKey, addressWeSendFrom, addressWeSendTo, gasLimit, gasPrice, amountWeSend, идентификатор цепочки
На данный момент gasPrice должен быть около этого значения для сети, в случае, если оно когда-либо изменится, вы всегда можете получить приблизительную оценку, вызвав getGasPrice().
Сумма, которую мы отправляем, может быть выражена следующими способами:
Например, если мы хотим отправить 1 MAN, мы можем изменить суммуWeSend на man3.toWei(‘1’,’man’)
Теперь мы собираемся создать промис, который получит одноразовый адрес:
И еще одно обещание, которое создает необработанную транзакцию, которую мы собираемся использовать:
Теперь мы можем подготовить наш необработанный tx, он имеет следующий формат, мы собираемся изменить его одноразовый номер после того, как разрешим обещание getNonce():
После изменения одноразового номера необработанного tx мы вызываем обещание sendRawTransaction, а затем отображаем хэш tx, если транзакция была успешно отправлена, или сообщение об ошибке, если по какой-то причине транзакция не может быть отправлена/при создании транзакции произошла какая-то ошибка.
Здесь у нас есть функция getTxParams, если параметр валюты не указан, она будет использовать MAN по умолчанию, она преобразует параметры транзакции в шестнадцатеричный формат (и делает их правильным форматом) и добавляет значения v, r, s, которые подписи ECDSA:
Другие утилиты, которые мы использовали:
Пример вывода:
Вся программа (https://github.com/CognitiveProcessing/Matrix-AI-Network-Code-Snippets/blob/main/js/sendManTransaction.js)
Для получения дополнительной документации по используемым пакетам вы можете проверить: https://www.npmjs.com/package/bignumber.js
https://www.npmjs.com/package/buffer
Также посетите официальный портал разработчиков Matrix AI Network: dev.matrix.io.