Это руководство предназначено только для образовательных целей, я не несу ответственности за любые убытки, ущерб или другие обязательства, которые могут возникнуть в результате использования любой информации/кода, представленных здесь (или где-либо еще).

Я ни при каких обстоятельствах не являюсь профессионалом 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.