|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712 |
- # DERO-HE RPC API
-
- Dero Project - dero.io
- February 3, 2022
-
- Written by [Slixe](https://github.com/Slixe).
-
- ## CONTENTS
-
- ### Daemon RPC API
-
- TODO
-
- ### Wallet RPC API
-
- Tout d'abord, notez que le serveur RPC n'est pas activé par défaut sur le wallet, pour se faire, lancez le wallet avec le paramètre `--rpc-server`.
-
- Le serveur RPC écoutera sur le port `40403` sur testnet.
-
-
- #### Echo
- Endpoint de test permettant de vérifier que le serveur RPC est bien activé du côté du wallet.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory | Comment |
- |:----:|:--------:|:---------:|:---------------:|
- | | []string | true | Array of string |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "Echo",
- "params": ["Hello", "World", "!"]
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "Echo",
- "params": ["Hello", "World", "!"]
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": "WALLET Hello World !"
- }
- ```
-
- #### Get Address
- Renvoi l'adresse DERO du portefeuille permettant de recevoir des DERO ou autres tokens.
-
- ##### Paramètres disponibles
- Aucun paramètre
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetAddress"
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetAddress"
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "address": "deto1qyyhg0xznkaxt5udct6lnlylsexvwprun6jphv89xg008vq29jk4vqqayuknf"
- }
- }
- ```
-
- #### Get Balance
- Récupère le solde actuelle du portefeuille.
-
- ##### Paramètres disponibles
- Aucun paramètre
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetBalance"
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetBalance"
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "balance": 800000,
- "unlocked_balance": 800000
- }
- }
- ```
- **NOTE**: Le montant est au format atomique. Pour rappel, 10^5 (=100000) équivaut à un 1 DERO.
-
- **Attention**: si cette adresse n'est pas enregistré sur la blockchain, vous aurez cette erreur:
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "error": {
- "code": -32098,
- "message": "Account Unregistered"
- }
- }
- ```
-
- #### Get Height
- Retourne à quel hauteur de bloc le portefeuille est synchronisé.
-
- ##### Paramètres disponibles
- Aucun paramètre
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetHeight"
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetHeight"
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "height": 420
- }
- }
- ```
-
- #### Get Transfer by TXID
- Retourne les détails de la transaction basé sur son hash.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory |
- |:----:|:----:|:---------:|
- | hash | Hash | true |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetTransferbyTXID",
- "params": {
- "txid": "2a74bcc6262f48630967129793f3b87dc30236f2cb5df6ebb09d620ec0cb503a"
- }
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetTransferbyTXID",
- "params": {
- "txid": "2a74bcc6262f48630967129793f3b87dc30236f2cb5df6ebb09d620ec0cb503a"
- }
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "entry": {
- "height": 31297,
- "topoheight": 31297,
- "blockhash": "44e010e6ae56e66e75b158871570233a8a8b918491efc2d02ce793a7ce258612",
- "minerreward": 0,
- "tpos": 17,
- "pos": 0,
- "coinbase": false,
- "incoming": true,
- "txid": "2a74bcc6262f48630967129793f3b87dc30236f2cb5df6ebb09d620ec0cb503a",
- "destination": "",
- "amount": 500000,
- "fees": 451,
- "proof": "deroproof1qy3zfvkwdz87xa7mvxc0qq7nsmcgkl3gsf00a2amhk7fs2yu09r4uqdzvfyyskpqckdxyd8vgtzd75mjujsyzj6swrfdy6gw7alx78ak23v6ql60ewqxy4j4rgqq0gfqsjjq9u",
- "status": 0,
- "time": "2022-02-03T17:51:16.006+01:00",
- "ewdata": "2efc785f92e9ffdaf1935186e0ffe561e500632722c73f95e741136389a347b8002642ae3d734c6b119a28884920036e895fc8e6a33f9c4ec6d90da1a4d1b65ef901",
- "data": "AqFoQ29tbWVudFNySGVsbG8gZnJvbSBTbGl4ZSAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "payloadtype": 0,
- "payload": "oWhDb21tZW50U3JIZWxsbyBmcm9tIFNsaXhlICEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
- "payload_rpc": [
- {
- "name": "Comment",
- "datatype": "S",
- "value": "Hello from Slixe !"
- }
- ],
- "sender": "deto1qyj4kx6azntn9psmg7dsfkuv9qs9xde0s94nmmhm2a0damffpm2zzqqcudacc",
- "dstport": 0,
- "srcport": 0
- }
- }
- }
- ```
-
- #### Get Transfers
- Retourne toutes les transactions présentes dans le portefeuille par rapport aux filtres appliqués.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory | Comment |
- |:----------:|:------:|:---------:|:--------------------------:|
- | scid | Hash | false | Smart Contract ID |
- | coinbase | bool | false | Accept coinbase TX ? |
- | in | bool | false | Accept incoming TX ? |
- | out | bool | false | Accept outgoing TX ? |
- | min_height | uint64 | false | Minimum height |
- | max_height | uint64 | false | Maximum height |
- | sender | string | false | Sender address equal |
- | receiver | string | false | Receiver address equal |
- | dstport | uint64 | false | Destination Port (Service) |
- | srcport | uint64 | false | Source Port (Service) |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetTransfers",
- "params": {
- "out": true,
- "in": true
- }
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "GetTransfers",
- "params": {
- "out": true,
- "in": true
- }
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "entries": [
- {
- "height": 31297,
- "topoheight": 31297,
- "blockhash": "44e010e6ae56e66e75b158871570233a8a8b918491efc2d02ce793a7ce258612",
- "minerreward": 0,
- "tpos": 17,
- "pos": 0,
- "coinbase": false,
- "incoming": true,
- "txid": "2a74bcc6262f48630967129793f3b87dc30236f2cb5df6ebb09d620ec0cb503a",
- "destination": "",
- "amount": 500000,
- "fees": 451,
- "proof": "deroproof1qy3zfvkwdz87xa7mvxc0qq7nsmcgkl3gsf00a2amhk7fs2yu09r4uqdzvfyyskpqckdxyd8vgtzd75mjujsyzj6swrfdy6gw7alx78ak23v6ql60ewqxy4j4rgqq0gfqsjjq9u",
- "status": 0,
- "time": "2022-02-03T17:51:16.006+01:00",
- "ewdata": "2efc785f92e9ffdaf1935186e0ffe561e500632722c73f95e741136389a347b8002642ae3d734c6b119a28884920036e895fc8e6a33f9c4ec6d90da1a4d1b65ef901",
- "data": "AqFoQ29tbWVudFNySGVsbG8gZnJvbSBTbGl4ZSAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "payloadtype": 0,
- "payload": "oWhDb21tZW50U3JIZWxsbyBmcm9tIFNsaXhlICEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
- "payload_rpc": [
- {
- "name": "Comment",
- "datatype": "S",
- "value": "Hello from Slixe !"
- }
- ],
- "sender": "deto1qyj4kx6azntn9psmg7dsfkuv9qs9xde0s94nmmhm2a0damffpm2zzqqcudacc",
- "dstport": 0,
- "srcport": 0
- }
- ]
- }
- }
- ```
-
- #### Make Integrated Address
- Retourne une nouvelle adresse avec des Payloads inclus.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory | Comment |
- |:-----------:|:--------:|:---------:|:----------------------------------------------------:|
- | address | string | false | DERO Address (if empty, the one from wallet is used) |
- | payload_rpc | Argument | false | Parameters to include in address |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "MakeIntegratedAddress",
- "params": {
- "payload_rpc": [
- {
- "name": "Comment",
- "datatype": "S",
- "value": "Hello from integrated address !"
- }
- ]
- }
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "MakeIntegratedAddress",
- "params": {
- "payload_rpc": [
- {
- "name": "Comment",
- "datatype": "S",
- "value": "Hello from integrated address !"
- }
- ]
- }
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "integrated_address": "detoi1qyyhg0xznkaxt5udct6lnlylsexvwprun6jphv89xg008vq29jk4vq9pdppk7mtdv4h8g5mcrayx2mrvdusxvun0d5sxjmn5v4nhyct5v4jzqctyv3ex2umnyqssvnqraw",
- "payload_rpc": [
- {
- "name": "Comment",
- "datatype": "S",
- "value": "Hello from integrated address !"
- }
- ]
- }
- }
- ```
-
- #### Split Integrated Address
- Retourne l'adresse DERO et les payloads inclus dans une Integrated Address.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory | Comment |
- |:------------------:|:------:|:---------:|:----------------------------:|
- | integrated_address | string | true | Integrated Address to decode |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "SplitIntegratedAddress",
- "params": {
- "integrated_address": "detoi1qyyhg0xznkaxt5udct6lnlylsexvwprun6jphv89xg008vq29jk4vq9pdppk7mtdv4h8g5mcrayx2mrvdusxvun0d5sxjmn5v4nhyct5v4jzqctyv3ex2umnyqssvnqraw"
- }
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "SplitIntegratedAddress",
- "params": {
- "integrated_address": "detoi1qyyhg0xznkaxt5udct6lnlylsexvwprun6jphv89xg008vq29jk4vq9pdppk7mtdv4h8g5mcrayx2mrvdusxvun0d5sxjmn5v4nhyct5v4jzqctyv3ex2umnyqssvnqraw"
- }
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "address": "deto1qyyhg0xznkaxt5udct6lnlylsexvwprun6jphv89xg008vq29jk4vqqayuknf",
- "payload_rpc": [
- {
- "name": "Comment",
- "datatype": "S",
- "value": "Hello from integrated address !"
- }
- ]
- }
- }
- ```
-
- #### Query Key
- Retourne la clé mnémonique (seed) associé à ce portefeuille.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory | Comment |
- |:--------:|:------:|:---------:|:--------------------------:|
- | key_type | string | true | Key Type ("mnemonic" only) |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "QueryKey",
- "params": {
- "key_type": "mnemonic"
- }
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "QueryKey",
- "params": {
- "key_type": "mnemonic"
- }
- }'
- ```
-
- ##### Result:
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "key": "eavesdrop sailor tavern fizzle mammal were utmost stellar rafts vats dedicated dosage lynx cent after toyed coexist zippers lipstick aztec dedicated custom chrome onto launching"
- }
- }
- ```
-
- #### Transfer
- Crée une transaction et renvoi son hash.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory | Comment |
- |:-----------:|:---------:|:---------:|:------------------------:|
- | scid | Hash | false | SCID of asset |
- | destination | string | false | DERO Address of receiver |
- | amount | uint64 | false | Amount of token to send |
- | burn | uint64 | false | Amount of token to burn |
- | payload_rpc | Arguments | false | Payload Arguments |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "transfer",
- "params": {
- "scid": "00000000000000000000000000000000",
- "destination": "deto1qyj4kx6azntn9psmg7dsfkuv9qs9xde0s94nmmhm2a0damffpm2zzqqcudacc",
- "amount": 100000
- }
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "transfer",
- "params": {
- "scid": "00000000000000000000000000000000",
- "destination": "deto1qyj4kx6azntn9psmg7dsfkuv9qs9xde0s94nmmhm2a0damffpm2zzqqcudacc",
- "amount": 100000
- }
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "txid": "5201c319d04fb72012ecb2fd8c903feff50bbd5db39c60dfee795b9b3a90433a"
- }
- }
- ```
-
- #### Transfer 2
- Crée une transaction vers plusieurs adresses distinctes et renvoi son hash.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory | Comment |
- |:---------:|:----------:|:---------:|:-----------------------:|
- | transfers | []Transfer | false | see previous request |
- | sc | string | false | SC Code to deploy |
- | sc_rpc | Arguments | false | SC Call arguments |
- | ringsize | uint64 | false | Level of anonymity |
- | scid | string | false | SCID to call |
- | fees | uint64 | false | Tx Fees |
- | signer | string | false | used for gas estimation |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "transfer",
- "params": {
- "transfers": [{
- "destination": "deto1qyj4kx6azntn9psmg7dsfkuv9qs9xde0s94nmmhm2a0damffpm2zzqqcudacc",
- "amount": 100000
- },
- {
- "destination": "deto1qydvjhl67a3hmcw6zq9yt449extwshzcjxkd7lgk4uhgpyxdr494yqg6zwnc2",
- "amount": 100000
- }],
- "ringsize": 32
- }
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "transfer",
- "params": {
- "transfers": [{
- "destination": "deto1qyj4kx6azntn9psmg7dsfkuv9qs9xde0s94nmmhm2a0damffpm2zzqqcudacc",
- "amount": 100000
- },
- {
- "destination": "deto1qydvjhl67a3hmcw6zq9yt449extwshzcjxkd7lgk4uhgpyxdr494yqg6zwnc2",
- "amount": 100000
- }],
- "ringsize": 32
- }
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "txid": "3a2712ae039e3f55b4cee132ec7ab76b912d05b3c1fc2744ae2ddd2c18be893e"
- }
- }
- ```
-
- #### SC Invoke
- Crée une transaction pour appeler une function du Smart Contract et retourne son hash.
-
- ##### Paramètres disponibles
- | Name | Type | Mandatory | Comment |
- |:----------------:|:---------:|:---------:|:--------------------------:|
- | scid | string | true | SC ID of asset/token |
- | sc_rpc | Arguments | true | SC Arguments |
- | sc_dero_deposit | uint64 | false | Amount of DERO to deposit |
- | sc_token_deposit | uint64 | false | Amount of token to deposit |
- | ringsize | uint64 | false | Level of anonymity |
-
- ##### Body
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "method": "scinvoke",
- "params": {
- "scid": "0000000000000000000000000000000000000000000000000000000000000001",
- "ringsize": 2,
- "sc_rpc": [{
- "name": "entrypoint",
- "datatype": "S",
- "value": "Register"
- },
- {
- "name": "name",
- "datatype": "S",
- "value": "Slixe"
- }]
- }
- }
- ```
-
- ##### cURL request
- ```json
- curl -X POST \
- http://127.0.0.1:40403/json_rpc \
- -H 'content-type: application/json' \
- -d '{
- "jsonrpc": "2.0",
- "id": "1",
- "method": "scinvoke",
- "params": {
- "scid": "0000000000000000000000000000000000000000000000000000000000000001",
- "ringsize": 2,
- "sc_rpc": [{
- "name": "entrypoint",
- "datatype": "S",
- "value": "Register"
- },
- {
- "name": "name",
- "datatype": "S",
- "value": "Slixe"
- }]
- }
- }'
- ```
-
- ##### Result
- ```json
- {
- "jsonrpc": "2.0",
- "id": "1",
- "result": {
- "txid": "bf4b2cd942f4394a03d0d66bbf8c0639f5cbcbf340becc39d4c9e02f987cecca"
- }
- }
- ```
-
|