1.0.15 • Published 3 years ago

boco-api v1.0.15

Weekly downloads
340
License
ISC
Repository
github
Last release
3 years ago

Boco API

Boco API is a library for interacting with applications built on the Boco Core.

Install

yarn add @bocoplatform/boco-api

Use

Simple example of how to send tokens.

import Boco from "@bocoplatform/boco-api"

const STARGATE_URL = "https://lcd.test.boco.bococoin.io"
const ADDRESS = "bocos1abcd1234"
const boco = Boco(STARGATE_URL, ADDRESS)

// create the transaction object
const msg = boco
  .MsgSend({toAddress: 'bocos1abcd09876', amounts: [{ denom: 'BCC', amount: 10 }})

// estimate the needed gas amount
const gasEstimate = await msg.simulate()

// create a signer
const ledgerSigner = ... // async (signMessage: string) => { signature: Buffer, publicKey: Buffer }

// send the transaction
const { included }= await msg.send({ gas: gasEstimate }, ledgerSigner)

// await tx to be included in a block
await included()

API

If you want to query data only, you don't need to specify an address.

import { API } from "@bocoplatform/boco-api"

const STARGATE_URL = "https://lcd.test.boco.bococoin.io"

const api = API(STARGATE_URL)

const validators = await api.validators()

Create a sign message to sign with on a Ledger or with any other signer

const { signWithPrivateKey } = require('@bococoin/boco-keys');
const { createSignMessage } = require('@bococoin/boco-api');

const stdTx = {
  msg: [
    {
      type: `cosmos-sdk/Send`,
      value: {
        inputs: [
          {
            address: `bocos1qperwt9wrnkg5k9e5gzfgjppzpqhyav5j24d66`,
            coins: [{ denom: `BCC`, amount: `1` }]
          }
        ],
        outputs: [
          {
            address: `bocos1yeckxz7tapz34kjwnjxvmxzurerquhtrmxmuxt`,
            coins: [{ denom: `BCC`, amount: `1` }]
          }
        ]
      }
    }
  ],
  fee: { amount: [{ denom: ``, amount: `0` }], gas: `21906` },
  signatures: null,
  memo: ``
}

const signMessage = createSignMessage(stdTx, { sequence, accountNumber, chainId });
const signature = signWithPrivateKey(signMessage, Buffer.from(wallet.privateKey, 'hex'));

Create and sign a transaction from a message which then is ready to be broadcast

const { signWithPrivateKey } = require('@bocoplatform/boco-keys');
const { createSignedTransaction } = require('@bocoplatform/boco-api');

const sendMsg = {
  type: `cosmos-sdk/Send`,
  value: {
    inputs: [
      {
        address: `bocos1qperwt9wrnkg5k9e5gzfgjppzpqhyav5j24d66`,
        coins: [{ denom: `BCC`, amount: `1` }]
      }
    ],
    outputs: [
      {
        address: `bocos1yeckxz7tapz34kjwnjxvmxzurerquhtrmxmuxt`,
        coins: [{ denom: `BCC`, amount: `1` }]
      }
    ]
  }
}

const signer = signMessage = > signWithPrivateKey(signMessage, Buffer.from(wallet.privateKey, 'hex'))

const signMessage = createSignedTransaction({ gas: 1000, gasPrices = [{ amount: "10", denom: "ubcc" }], memo = `Hi from Boco Platform` }, [sendMsg], signer, chainId: "test-chain", accountNumber: 0, sequence: 12);
1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.12

3 years ago

1.0.9

3 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago