Skip to content

danigorbaciov/libra-service

 
 

Repository files navigation

Build Status

For Javascript api please use kulap-libra at https://github.com/kulapio/libra-core.

Docs

Architect

Libra Wallet Service Architect To build that APIs we need shell interactive that can send requests to Libra-cli so we use Node.js with child_process and rauschma/stringio libs to run a Libra-cli container every time when the user makes a request (stateless).

Required

Install

# Download source
git clone https://github.com/kulapio/libra-service.git

# Getting in
cd libra-service

# Install dependencies
npm i

# Apply default config from .env.example
npm run prestart

Config

PORT=3000
HOST=localhost
AMOUNT_TO_MINT=100
DOCKER_IMAGE=kulap/libra_client:0.3
USE_KULAP_FAUCET=true

Run

npm run start

Develop

npm run dev

Test

npm test

Warning

  • Not production ready.

Endpoints

Create wallet:

POST /createWallet
Headers: Content-Typeapplication/json
Body: {}

Example Request:
curl --location --request POST "https://libraservice2.kulap.io/createWallet" \
  --header "Content-Type: application/json" \
  --data "{}"
Example Output:
{
    "address": "5554d60c1af7592673f0ac012ce483b842c06de3d896029cfe957c348621d5b7",
    "balance": "100",
    "mnemonic": "parrot afraid always popular trade grape divide wave dawn web identify kangaroo equal suffer humor creek scan stove hip kingdom skin enable flush announce;1"
}

Get balance:

POST /getBalance
Headers: Content-Typeapplication/json
Body:

Key Description Required
adress Libra's wallet address yes
Example Request:
curl --location --request POST "https://libraservice2.kulap.io/getBalance" \
  --header "Content-Type: application/json" \
  --data "{
	\"address\": \"87b647a009b06483be7a47296b6182294c71eced58837e8043a1f54fdb71d1ee\"
}"
Example Output:
{
    "address": "87b647a009b06483be7a47296b6182294c71eced58837e8043a1f54fdb71d1ee",
    "balance": "1000000123"
}

Transfer:

POST /transfer
Headers: Content-Typeapplication/json
Body:

Key Description Required
fromAddress Sender Libra's wallet address no
mnemonic Mnemonic phrase yes
toAddress Receiver Libra's wallet address yes
amount Amount of Libra coins to transfer yes
Example Request:
curl --location --request POST "https://libraservice2.kulap.io/transfer" \
  --header "Content-Type: application/json" \
  --data "{
	\"fromAddress\": \"3299692e5e635fa2473924177955b3be1e451efc3c03edd212de85c1070a6312\",
	\"mnemonic\": \"shoot brave host cause birth online aerobic hobby east service grow hip thank great fire collect drill elegant appear vote tackle napkin book size;1\",
	\"toAddress\": \"31c7092554bb804a4e25bd24399859428404c28cbc3b44dea5dc2a9f2314144b\",
	\"amount\": \"11\"
}"
Example Output:
{
    "address": "3299692e5e635fa2473924177955b3be1e451efc3c03edd212de85c1070a6312",
    "toAddress": "31c7092554bb804a4e25bd24399859428404c28cbc3b44dea5dc2a9f2314144b",
    "amount": "11"
}

Mint:

POST /mint
Headers: Content-Typeapplication/json
Body:

Key Description Required
address Libra's wallet address yes
mint Amount of mint coins yes
Example Request:
curl --location --request POST "https://libraservice2.kulap.io/mint" \
  --header "Content-Type: application/json" \
  --data "{
	\"address\": \"f80d5187740a76e3154ec6a24628b40a82040e71e76bdb4c1fac325fcdd73dcc\",
	\"amount\": \"100\"
}"
Example Output:
{
    "address": "f80d5187740a76e3154ec6a24628b40a82040e71e76bdb4c1fac325fcdd73dcc",
    "amount": "100"
}

Postman

https://documenter.getpostman.com/view/1671913/S1a32SZ5?version=latest

Contributors

License

Libra Service is released under the terms of the MIT license. See LICENSE for more information or see https://opensource.org/licenses/MIT.

Contributing

Contributions are welcome, feel free to fork and pull request.

About

Libra Service Api for testnet

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%