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