MetaHash JavaScript library
Песочница находится в playground.html.
Запустить песочницу с GitHub Pages (если нода работает только по HTTP без HTTPS, то в браузере нужно разрешить запустить небезопасные скрипты).
TODO:
- доработать песочницу
- метод getIpFromDns для получения ip-адреса ноды
- получение адреса (hash) по публичному ключу
- генерация приватного и публичного ключа
- преобразование приватного ключа (.pem) в необходимый формат для методов
- преобразование публичного ключа (.pub) в необходимый формат для методов
- сделать версию для NodeJS (NPM)
- README на английском
- Подключить MetaHash JavaScript библиотеку:
<script src="https://epexa.github.io/metahash-js/metahash.min.js"></script>
или через CDN:
<script src="https://cdn.jsdelivr.net/gh/epexa/[email protected]/metahash.min.js"></script>
- Если нужно изменить конфигурацию: адрес ноды, и т.д.:
metahash.apiUrl = 'http://172.104.157.248:5795';
- Вызвать необходимый метод. Методы возвращают коллбэк в котором есть две переменных: res - результат запроса и err - в случае ошибки:
metahash.имяМетода(первыйПараметр, (res, err) => {
if (res) console.log('имяМетода', res);
else console.error('имяМетода', err)
});
Пример использования находится в example.html.
Запустить пример с GitHub Pages (если нода работает только по HTTP без HTTPS, то в браузере нужно разрешить запустить небезопасные скрипты).
HTTP-адрес ноды.
Значение по умолчанию: "http://172.104.157.248:5795"
Пример использования:
metahash.apiUrl = 'http://172.104.157.248:5795';
Префикс токена для вывода значений баланса.
Значение по умолчанию: "MHC"
Пример использования:
metahash.tokenPrefix = 'MHC';
Получение баланса адреса.
Параметры: address
Пример использования:
metahash.fetchBalance('0x009af1b05f5fa19d7054c0deeab32ecb3b1adac6c7f02b2c0b', (res, err) => {
if (res) console.log('fetchBalance', res);
else console.error('fetchBalance', err)
});
Получение транзакций по адресу.
Параметры: address
Пример использования:
metahash.fetchHistory('0x009af1b05f5fa19d7054c0deeab32ecb3b1adac6c7f02b2c0b', (res, err) => {
if (res) console.log('fetchHistory', res);
else console.error('fetchHistory', err)
});
Получение информации о транзакции по хэшу.
Параметры: hash
Пример использования:
metahash.getTx('23fb8f98f1faecf04c23112ad47bba7b42ff7bcec0cdf22ce231061d02e9ad2c', (res, err) => {
if (res) console.log('getTx', res);
else console.error('getTx', err)
});
Создание транзакции.
Параметры:
to
value
fee
nonce
data
publicKeyHex
privateKey
youHashAddress
Пример использования:
metahash.apiUrl = 'http://139.162.42.43:9999';
let publicKeyBase64 = 'MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAE8gBrTLUQxXDZQ4f/OpiFWe4dhNbEo11PtFkq/0NgXt+AxGwmiWUhojtI56Hj2H3QpxGZCqrjxldDC4IHzpyVfw=='; // from key.pub
let to = '0x0003f6441039b7f944c82ac62f7c124918e02c203b5820f5ed';
let value = 1000;
let fee = 0;
let nonce = null;
let data = '';
let publicKeyHex = metahash.base64toHex(publicKeyBase64); // convert from base64 to hex
/*
1. openssl ec -in key.pem -noout -text
2. copy "priv" value:
42:d1:ae:22:4c:27:fc:02:a4:bc:43:b9:ec:47:6b:
bd:21:b4:51:69:db:97:35:f9:c6:1d:31:a0:87:21:
04:4f
3. remove symbol ":"
*/
let privateKey = '42d1ae224c27fc02a4bc43b9ec476bbd21b45169db9735f9c61d31a08721044f';
let youHashAddress = '0x009b84f533aa2192456a7e944eb471183abbceafe678a98984';
metahash.createTx(to, value, fee, nonce, data, publicKeyHex, privateKey, youHashAddress, (res, err) => {
if (res) console.log('createTx', res, 'http://mhscan.com/?page=tx&id=' + res.params);
else console.error('createTx', err)
});
Форматирование баланса в правильный вид.
Параметры: balance
Пример использования:
let balance = metahash.balanceFormatter(20962350000);
BTC: 3LPVbQ8fu4um4aY16tpeie62kznGJywrai
ETH: 0x230D2C5aE86fFB69C8e6d575aB634f345aE497e5
MHC: 0x00a1d0f653dd39c33255acac2f5ea4fb3c3ea5795908c3bf05
Telegram: @epexa
Apache License
Version 2.0, January 2004
Подробнее в LICENSE.