-
-
Notifications
You must be signed in to change notification settings - Fork 12
API Specification
The library allows to send and retrieve transactions/messages, get other blockchain data, and decode messages.
Performs sync request to ADAMANT blockchain endpoins.
Parameters:
-
type— endpoint name -
input— filters and options for request
Supported endpoints (type values):
| Type | Url | Response type | Response |
|---|---|---|---|
account |
/api/accounts?address= + [input]
|
list | List\ of accounts filtered by input
|
account_delegates |
/api/accounts/delegates?address= + [input]
|
field | Named delegates list of delegates account votes for |
block |
/api/blocks/get?id= + [input]
|
list | Full information of block with id = input
|
blocks |
/api/blocks + [input]
|
field | Named blocks list of blocks filtered by input
|
!!!!! state
|
/api/states/get?id= + [input]
|
list | List of transacions type = 9 with asset type state
|
delegate |
/api/delegates/get?username= + [input]
|
field | Named delegate block information of delegate with username = [input]
|
delegate_voters |
/api/delegates/voters?publicKey= + [input]
|
field ! Named accounts list of voters of delegate with publicKey = [input]
|
|
delegate_forged |
/api/delegates/forging/getForgedByAccount?generatorPublicKey= + [input]
|
string | Forging activity of delegate with publicKey = [input]
|
!!!!! transaction
|
/api/transactions/get?id= + [input]
|
!!!!! list | Transaction with id = [input]
|
transactions |
/api/transactions? + [input]
|
list | List of transactions filtered by input
|
uri |
/api/ + [input]
|
- |
Examples:
const txTrx = (await api.get(`transactions`, `fromHeight=` + (Store.lastHeight - 5) + `&and:recipientId=` + Store.user.ADM.address + `&and:type=0`)).transactions;
Any other ADAMANT endpoint can be requested — set type to uri and input to full endpoint with parameters.
Example:
const txChat = (await api.get(`uri`, `chats/get/?recipientId=` + Store.user.ADM.address + `&orderBy=timestamp:desc&fromHeight=` + (Store.lastHeight - 5))).transactions;
To get information from ADAMANT blockchain without maintaining the connection you need to use syncGet.js module.
api.syncGet(uri, isUrl, isNoJson):
-
uri— endpoint or full url; mandatory -
isUrl— boolen (true/false (default)); optional. In fales case you will geturlas:currentNode+uri; At true case url =uri -
isNoJson— boolen (true/false (default)); optional. In true case JSON body would be parsed
const data = await api.syncGet(config.infoservice + `/get`, true);const resp = await api.syncGet(`/api/states/get?senderId=${admAddress}&key=${coin.toLowerCase()}:address`);
To send information to ADAMANT blockchain you need to use send.js module.
api.send(passPhrase, address, payload, type = 'tokens', isEncode, amount_comment):
-
passPhrase— sender's passPhrase; mandatory -
address— resipient's ADAMANT address; mandatory -
payload— sending value; optional -
type— type ofpayload:tokens(default) ormessage; optional -
isEncode— mark that payment is encoded; optional -
amount_comment— comment of payment; optional
-
const result = await $u[outCurrency].send({ address: senderKvsOutAddress, value: outAmount, comment: `Hey, you are lucky! Waiting for new bets!` // if ADM }); log.info(`Reward payment result: ${JSON.stringify(result, 0, 2)}.`); const { address, value, comment } = params; console.log(`Send ${value} ADM to ${address} with comment:`, comment); let res; if (comment){ res = api.send(User.passPhrase, address, comment, `message`, null, value); } else { res = api.send(User.passPhrase, address, value, null, comment); } console.log(`Send result:`, res); if (!res) { return { success: false }; } return { success: res.success, hash: res.transactionId }; -
sendAdmMsg(address, msg, type = `message`) { if (msg && !config.isDev || true) { try { let msg_markdown = msg.replace(/[^\*]\*[^\*]/g, `**`); return api.send(config.passPhrase, address, msg_markdown, type).success || false; } catch (e) { return false; } } },
To decode information from ADAMANT blockchain transaction you can use decodeMsg.js module. Reed more about Encrypting and Decrypting Messages at this page
api.decodeMsg(msg, senderPublicKey, passPhrase, nonce):
-
msg— message you need to decrypt; mandatory -
senderPublicKey— senders' public key; mandatory -
passPhrase— private recipint's passphrase; mandatory -
nonce— nonce
const chat = tx.asset.chat; if (chat){ msg = api.decodeMsg(chat.message, tx.senderPublicKey, config.passPhrase, chat.own_message).trim(); }