LibreMoney
2. Основная часть
2.8. API (RestAPI)
Операции с транзакциями
Broadcast Transaction
Широковещательная передачи транзакции в сеть
Запрос
http://localhost:1400/api/broadcastTransaction? transactionBytes=TX_BYTECODE
Где:
- TX_BYTECODE - байткод транзакции
Ответ
{ "transaction": "TRANSACTION_ID" }
Пример
Запрос:
http://localhost:1400/api/broadcastTransaction? transactionBytes= 000022e22800e8036653833f4272604d...
Ответ:
{ "transaction": "17484500871708980634" }
- Внимание: Вы можете получить ошибку '"error": "Double spending transaction"' если транзакция уже была транслирована в сеть
Проверено 18/05/14
Calculate Full Hash
Вычислить полный хэш транзакции
Запрос
http://localhost:1400/api/calculateFullHash? unsignedTransactionBytes=UNTXBYTES& signatureHash=SIGHASH
Где:
- UNTXBYTES неподписанные байты, содержавшиеся в транзакции
- SIGHASH sha256 хэш подписи транзакции. Применяется для операций условного депонирования
Ответ
{ "fullHash": "FULLHASH" }
Пример
Запрос:
http://localhost:1400/api/calculateFullHash? unsignedTransactionBytes=01016e23d700a005668683e673274c67...& signatureHash=07afbcfb72b4fa91d8e22f8f47950404270edc1d250d2c6edad7a58679fbe1cf
Ответ:
{ "fullHash": "cc98e57a065610d17c6ba6a6406e4930b9a740bf1737847ab2e96e3733233984" }
Проверено 15/05/14
Get Account Transaction IDs
Позволяет получать список идентификаторов транзакций, связанных с указанным аккаунтом
Запрос
http://localhost:1400/api/getAccountTransactionIds? account=ACCOUNT& timestamp=TIME
Где:
- ACCOUNT - номер аккаунта по которому вы запрашиваете информацию
- TIME - время в секундах, с момента генерации генезисного блока
Ответ
{ "transactionIds": [ARRAY_OF_IDs] }
Где:
- ARRAY_OF_IDs - список (массив) идентификаторов транзакций, связанных с указанным аккаунтом
Пример
Запрос:
http://localhost:1400/api/getAccountTransactionIds? account=6331110009135084386& timestamp=0
Ответ:
{ "transactionIds": [ "17484500871708980634" ] }
Get Unconfirmed Account Transaction IDs
Получить список идентификаторов неподтвержденных транзакций связанных с заданным LibreMoney аккаунтом
Запрос
http://localhost:1400/api/getUnconfirmedTransactionIds? account=ACCOUNT
Где:
- ACCOUNT номер аккаунта, список идентификаторов неподтвержденных транзакций которого, вы хотите получить
Ответ
{ "unconfirmedTransactionIds": [ARRAY_OF_IDs] }
Где:
- ARRAY_OF_IDs массив идентификаторов неподтвержденных транзакций, относящихся к заданному аккаунту
Пример
Запрос:
http://localhost:1400/api/getUnconfirmedTransactionIds? account=6331110009135084386
Ответ:
{ "unconfirmedTransactionIds": [ "17484500871708980634" ] }
Проверено 18/05/14
Get Transaction
Возвращает данные заданной транзакции. Может задаваться любым параметром: ID транзакции, hash, или fullhash транзакции.
Запрос
http://localhost:1400/api/getTransaction? transaction=TRANSID& hash=HASH& fullHash=FULLHASH
Где:
- TRANSID ID транзакции LibreMoney
- HASH hash транзакции
- FULLHASH fullhash транзакции
Ответ
{ "sender": "SENDERACCOUNT", "senderRS": "SENDERACCOUNTRS", "fee": "FEE", "amount": "AMOUNT", "timestamp": TIME, "referencedTransaction": REFTX, "confirmations": CONFIRMS, "subtype": SUBTYPE, "block": "BLOCKID", "senderPublicKey": "PUBKEY", "type": TYPE, "deadline": DEADLINE, "signature": "SIGNATURE", "recipient": "RECIPACCOUNT", "recipientRS": "RECIPACCOUNTRS", "fullHash": "FULLHASH", "signatureHash": "SIGHASH", "hash": "HASH", "transaction": "TRANSID", "attachment": { ATTACHMENT } }
Где:
- SENDERACCOUNT номер аккаунта отправителя
- SENDERACCOUNTRS адрес отправителя в кодировке Reed-Solomon
- FEE комиссия (в MilliLm) за данную транзакцию
- AMOUNT количество MilliLm в данной транзакции
- TIME время транзакции, измеряется в количестве секунд от времени создания генезисного блока
- REFTX Идентификатор (ID)предыдущей транзакции на которую ссылается данная транзакция. Должно быть "0" iесли отсутствует транзакция на которую ссылается данная.
- CONFIRMS количество подтверждений транзакции
- TYPE тип транзакции:
- 0 обыкновенная транзакция
- 1 альяс или произвольное сообщение в составе транзакции
- 2 если это транзакция биржи активов
- SUBTYPE субтип транзакции:
- Для альясов/произвольных сообщений:
- 0 транзакция произвольного сообщения
- 1 транзакция альяса
- Для биржи активов:
- 0 выпуск актива
- 1 трансфер актива
- 2 запрос на размещение заказа на покупку
- 3 запрос на размещение заказа на продажу
- 4 отмена ордера на покупку
- 5 отмена ордера на продажу
- Для альясов/произвольных сообщений:
- BLOCKID ID идентификатор блока содержащий данную транзакцию
- ATTACHMENT суб-бъект, представляющий любые дополнительные данные, необходимые для транзакции. Будет присутствовать только если применимо к транзакции.
- PUBKEY публичный ключ отправляющего аккаунта для транзакции
- DEADLINE дедлайн транзакции, указывается в минутах
- SIGNATURE цифровая подпись транзакции transaction
- SIGHASH хэш sha256 подписи транзакции. Используется для условного операций депонирования.
- RECIPACCOUNT номер аккаунта получателя
- RECIPACCOUNTRS адрес получателя в кодировке Reed-Solomon
Внимание: Данные о неподтвержденной транзакции не содержат параметров "block" и/или "confirmations". Данные double-spending транзакций не возвращаются.
Пример
Запрос:
http://localhost:1400/api/getTransaction? transaction=16244659048134841060
Ответ:
{ "sender": "14336428216306750617", "senderRS": "LMA-6DWM-GFYD-A7PS-72P3P", "fee": "100000000", "amount": "0", "timestamp": 7376798, "referencedTransaction": "0", "confirmations": 6, "subtype": 1, "block": "16385359704305994802", "blockTimestamp": 7376860, "attachment": { "alias":"LmApi", "uri":"http:\/\/libremoney.org/" }, "senderPublicKey": "64f103fbf0cc41045b1544cda6624eecfb8212b021fba22029a461c4b40c5d79", "type": 1, "deadline": 1, "signature": "0cdf64cb06ea21396180a6f201b6a...", "recipient": "1739068987193023818", "recipientRS": "LMA-BK2J-ZMY4-93UY-8EM9V", "fullHash": "a3c47c4a2e60c2907efc9c4b9310066cabdf3e2137e67814aa57cb960ad2dfe1", "signatureHash": "95cc276d1608dc0c14942a5efc82ccc701a56e873746ef1bfd37995c37ef5991", "hash": "15a86f71e1ac267dce35791cefafb71460f458920784ea0d10894844f05894b0", "transaction": "10431005438877942947" }
Проверено 15/05/14
Parse Transaction
Получает данные транзакции
Запрос
http://localhost:1400/api/parseTransaction? transactionBytes=TRANSBYTES
Где:
- TRANSBYTES байты LibreMoney транзакции
Ответ
{ "sender": "SENDERACCOUNT", "senderRS": "SENDERACCOUNTRS", "fee": "FEE", "amount": "AMOUNT", "timestamp": TIME, "referencedTransaction": REFTX, "confirmations": CONFIRMS, "subtype": SUBTYPE, "block": "BLOCKID", "senderPublicKey": "PUBKEY", "type": TYPE, "deadline": DEADLINE, "signature": "SIGNATURE", "recipient": "RECIPACCOUNT", "recipientRS": "RECIPACCOUNTRS", "fullHash": "FULLHASH", "signatureHash": "SIGHASH", "hash": "HASH", "transaction": "TRANSID", "attachment": { ATTACHMENT } }
Где:
- SENDERACCOUNT номер аккаунта отправителя
- SENDERACCOUNTRS адрес отправителя в кодировке Reed-Solomon
- FEE комиссия (в MilliLm) за данную транзакцию
- AMOUNT количество MilliLm в данной транзакции
- TIME время транзакции, измеряется в количестве секунд от времени создания генезисного блока
- REFTX Идентификатор (ID)предыдущей транзакции на которую ссылается данная транзакция. Должно быть "0" iесли отсутствует транзакция на которую ссылается данная.
- CONFIRMS количество подтверждений транзакции
- TYPE тип транзакции:
- 0 обыкновенная транзакция
- 1 альяс или произвольное сообщение в составе транзакции
- 2 если это транзакция биржи активов
- SUBTYPE субтип транзакции:
- Для альясов/произвольных сообщений:
- 0 транзакция произвольного сообщения
- 1 транзакция альяса
- Для биржи активов:
- 0 выпуск актива
- 1 трансфер актива
- 2 запрос на размещение заказа на покупку
- 3 запрос на размещение заказа на продажу
- 4 отмена ордера на покупку
- 5 отмена ордера на продажу
- Для альясов/произвольных сообщений:
- BLOCKID ID идентификатор блока содержащий данную транзакцию
- ATTACHMENT суб-бъект, представляющий любые дополнительные данные, необходимые для транзакции. Будет присутствовать только если применимо к транзакции.
- PUBKEY публичный ключ отправляющего аккаунта для транзакции
- DEADLINE дедлайн транзакции, указывается в минутах
- SIGNATURE цифровая подпись транзакции transaction
- SIGHASH хэш sha256 подписи транзакции. Используется для условного операций депонирования.
- RECIPACCOUNT номер аккаунта получателя
- RECIPACCOUNTRS адрес получателя в кодировке Reed-Solomon
Внимание: Данные о неподтвержденной транзакции не содержат параметров "block" и/или "confirmations". Данные double-spending транзакций не возвращаются.
Пример
Запрос:
http://localhost:1400/api/parseTransaction? transactionBytes=000022e22800e8036653833f4272604d5d3ef39...
Ответ:
{ "sender": "14336428216306750617", "senderRS": "LMA-6DWM-GFYD-A7PS-72P3P", "fee": "100000000", "amount": "0", "timestamp": 7376798, "referencedTransaction": "0", "confirmations": 6, "subtype": 1, "block": "16385359704305994802", "blockTimestamp": 7376860, "senderPublicKey": "64f103fbf0cc41045b1544cda6624eecfb8212b021fba22029a461c4b40c5d79", "type": 1, "deadline": 1, "signature": "0cdf64cb06ea21396180a6f201b6a...", "recipient": "1739068987193023818", "recipientRS": "LMA-BK2J-ZMY4-93UY-8EM9V", "fullHash": "a3c47c4a2e60c2907efc9c4b9310066cabdf3e2137e67814aa57cb960ad2dfe1", "signatureHash": "95cc276d1608dc0c14942a5efc82ccc701a56e873746ef1bfd37995c37ef5991", "hash": "15a86f71e1ac267dce35791cefafb71460f458920784ea0d10894844f05894b0", "transaction": "10431005438877942947" }
Проверено 15/05/14
Get Transaction Bytes
Возвращает байт-код транзакции.
Запрос
http://localhost:1400/api/getTransactionBytes? transaction=TXID
Где:
- TXID - идентификатор транзакции (ID)
Ответ
{ "confirmations": CONFS, "transactionBytes": "BYTECODE", "unsignedTransactionBytes": "UNBYTECODE" }
Где:
- CONFS количество подтверждений транзакции
- BYTECODE запрашиваемый байт-код транзакции
- BYTECODE неподписанные байты, включенные в транзакцию
Пример
Запрос:
http://localhost:1400/api/getTransactionBytes? transaction=17484500871708980634
Ответ:
{ "confirmations": 4462, "transactionBytes": "000022e22800e8036653833f4272604d5...", "unsignedTransactionBytes": "000022e22800e8036653833f42..." }
Проверено 18/05/14
Send Lm
Переслать указанное количество MilliLm на указанный аккаунт.
Запрос
http://localhost:1400/api/sendMoney? secretPhrase=SECRET& recipient=RECIPACCOUNT& amount=AMOUNT& fee=FEE& deadline=DEADLINE& referencedTransaction=REFTRANSACTION& publicKey=PUBKEY
Где:
- SECRET - секретная фраза/пароль для аккаунта с которого будут отправлены средства
- RECIPACCOUNT - аккаунт получателя
- AMOUNT - Количество MilliLm передаваемых в данной транзакции
- FEE - комиссия (в MilliLm) для этой транзакции
- DEADLINE - deadline для транзакции, в минутах
- REFTRANSACTION - опционально: ссылка на идентификатор (ID) предыдущей транзакции (основная транзакция не подтвердится, пока не подтвердилась предыдущая)
- PUBKEY 64-битный публичный ключ ассоциированный с аккаунтом и дополняет поле SECRET.
Ответ
{ "transaction": "TRANSACTIONID" }
Где:
- TRANSACTIONID - идентификатор только что созданной транзакции.
'Внимание! "deadline" указывается в минутах. "referencedTransaction" не обязательный параметр, может не использоваться.
Пример
Запрос:
http://localhost:1400/api/sendMoney? secretPhrase=IWontTellYou& recipient=398532577100249608& amount=1500& fee=5& deadline=900& referencedTransaction=13689168149259791567
Результат:
{ "transaction": "16244659048134841060" }
Проверено 18/05/14
Sign Transation
Рассчитать полный хэш (full hash), хэш подписи (signature hash), и транзакцию из неподписанной транзакции
Request
http://localhost:1400/api/signTransaction? unsignedTransactionBytes=UNTXBYTES& secretPhrase=SECRET
Где:
- UNTXBYTES неподписанные байты в транзакции
- SECRET секретная фраза аккаунта
Ответ
{ "fullHash": "FULLHASH", "signatureHash": "SIGHASH", "transactionBytes": "TXBYTES", "transaction": "TX", "verify": "VERIFY" }
Где:
- FULLHASH полный хэш транзакции
- SIGHASH sha256 хэш подписи транзакции. Используется для транзакций условного депонирования
- TXBYTES байткод транзакции
- TX ID транзакции
- VERIFY если верифицировано (true/false)
Пример
Запрос:
http://localhost:1400/api/signTransaction? unsignedTransactionBytes=01016e23d700a005668683e673274c67...& secretPhrase=0123456789
Ответ:
{ "fullHash": "d56ade2c322083d76ebcdb9f9ef18d7d52c6d105f67be040cc423c7a41a47aea", "signatureHash": "458514e72f4272c789f99201c27cff611460de10fe484b474166c1199c23e754", "transactionBytes": "0100471ddb00a005668683e673274c67180240...", "transaction": "15529291339976829653", "verify": true }
Проверено 15/05/14