diff --git a/packages/indexer-nibi/CHANGELOG.md b/packages/indexer-nibi/CHANGELOG.md
index 8609b3ee..c8042ed7 100644
--- a/packages/indexer-nibi/CHANGELOG.md
+++ b/packages/indexer-nibi/CHANGELOG.md
@@ -7,6 +7,10 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
- .
+## v0.19.14
+
+- Match version
+
## v0.6.1
- feat(perpLeaderboard): Add perp leaderboard query
diff --git a/packages/indexer-nibi/package.json b/packages/indexer-nibi/package.json
index 33391682..204e79bc 100644
--- a/packages/indexer-nibi/package.json
+++ b/packages/indexer-nibi/package.json
@@ -1,7 +1,7 @@
{
"name": "@nibiruchain/indexer-nibi",
"description": "GraphQL API client for the Nibiru Chain indexer (heart-monitor)",
- "version": "0.6.1",
+ "version": "0.19.14",
"license": "MIT",
"main": "dist/index.js",
"types": "dist/index.d.ts",
diff --git a/packages/nibijs/README.md b/packages/nibijs/README.md
index 9b736339..3932253f 100644
--- a/packages/nibijs/README.md
+++ b/packages/nibijs/README.md
@@ -20,28 +20,32 @@ The official TypeScript SDK for the Nibiru blockchain
-
-
+
+
-
-The NibiJS (`@nibiruchain/nibijs`) package makes it possible to interact with Nibiru from a Node.js or browser environment. `nibijs` provides simple abstractions for core data structures, serialization, key management, API requests, and the submission of transactions.
+The NibiJS (`@nibiruchain/nibijs`) package makes it possible to interact with Nibiru from a Node.js or browser environment. `nibijs` provides simple abstractions for core data structures, serialization, key management, API requests, and the submission of transactions.
-The `nibijs` source code can be found in the ["packages" directory](https://github.com/NibiruChain/ts-sdk/tree/main/packages). The types and classes generated from Nibiru's `.proto` files are inside a separate `npm` package called `@nibiruchain/protojs`.
+The `nibijs` source code can be found in the ["packages" directory](https://github.com/NibiruChain/ts-sdk/tree/main/packages). The types and classes generated from Nibiru's `.proto` files are inside a separate `npm` package called `@nibiruchain/protojs`.
#### Table of Contents
+
- [Installation](#installation)
- [Usage](#usage)
+ - [Example: Creating a wallet](#example-creating-a-wallet)
+ - [Example: Querying](#example-querying)
+ - [Example: Sending funds](#example-sending-funds)
+ - [Example: Transaction with arbitrary messages](#example-transaction-with-arbitrary-messages)
- [Codebase structure](#codebase-structure)
- [Development Quick Start](#development-quick-start)
- [🔓 License](#-license)
-To learn more about Nibiru, see [docs.nibiru.fi](https://docs.nibiru.fi)
+To learn more about Nibiru, see [docs.nibiru.fi](https://docs.nibiru.fi)
---
-## Installation
+## Installation
[@nibiruchain/nibijs][npm-nibijs] is available on the npm registry.
@@ -51,14 +55,15 @@ To learn more about Nibiru, see [docs.nibiru.fi](https://docs.nibiru.fi)
npm install @nibiruchain/nibijs # or yarn add
```
-## Usage
+## Usage
The entrypoint for `nibijs` is the `Sdk` object, which is meant to mimic the root of a command line interface. It can be used for both queries and transactions.
#### Example: Creating a wallet
```js
-import { newRandomWallet, WalletHD } from "@nibiruchain/nibijs/dist/tx"
+import { newRandomWallet, WalletHD } from "@nibiruchain/nibijs"
+
const wallet: WalletHD = await newRandomWallet()
const [{ address }] = await wallet.getAccounts()
@@ -70,37 +75,62 @@ console.log("address: ", address)
#### Example: Querying
```js
-import { Testnet, newSdk } from "@nibiruchain/nibijs"
-const sdk = newSdk(Testnet, myMnemonic)
+import {
+ IncentivizedTestent,
+ NibiruQueryClient,
+ NibiruSigningClient,
+} from "@nibiruchain/nibijs"
+
+const TEST_CHAIN = IncentivizedTestent(1)
+const queryClient = await NibiruQueryClient.connect(TEST_CHAIN.endptTm)
-const balances = await sdk.query.bank.allBalances(address)
-console.log("balances: %o", balances)
+const perpParamsResp = await queryClient.nibiruExtensions.perp.params()
+console.log("perpParams: %o", perpParamsResp)
-const allPools = await sdk.query.vpool.allPools()
+const allPools = await queryClient.nibiruExtensions.vpool.allPools()
console.log("allPools: %o", allPools)
const blockHeight = 1
-const block = sdk.tmClient.block(blockHeight)
+const block = await queryClient.getBlock(blockHeight)
```
#### Example: Sending funds
```js
-import { Testnet, newSdk, newCoins, Coin } from "@nibiruchain/nibijs"
-const sdk = newSdk(Testnet, myMnemonic)
+import {
+ Coin,
+ NibiruSigningClient,
+ newCoins,
+ newSignerFromMnemonic,
+} from "@nibiruchain/nibijs"
+
+const signer = await newSignerFromMnemonic(mnemonic!)
+const signingClient = await NibiruSigningClient.connectWithSigner(
+ TEST_CHAIN.endptTm,
+ signer,
+)
+const [{ address: fromAddr }] = await signer.getAccounts()
+
const tokens: Coin[] = newCoins(5, "unibi")
const toAddr: string = "..." // bech32 address of the receiving party
-let txResp = sdk.tx.sendTokens(toAddr, tokens)
+const txResp = await signingClient.sendTokens(fromAddr, toAddr, tokens, "auto")
```
#### Example: Transaction with arbitrary messages
```js
-import { Testnet, newSdk, newCoins, Coin, DeliverTxResponse } from "@nibiruchain/nibijs"
-import { Msg } from "@nibiruchain/nibijs/msg"
-
-const sdk = newSdk(Testnet, myMnemonic)
-let msgs: TxMessage[] = [
+import { IncentivizedTestent, NibiruSigningClient, newCoin } from "@nibiruchain/nibijs"
+import { Msg, TxMessage } from "@nibiruchain/nibijs/dist/msg"
+
+const signer = await newSignerFromMnemonic(mnemonic!)
+signer.getAccounts()
+const signingClient = await NibiruSigningClient.connectWithSigner(
+ TEST_CHAIN.endptTm,
+ signer,
+)
+const [{ address: fromAddr }] = await signer.getAccounts()
+const pair = "ubtc:unusd"
+const msgs: TxMessage[] = [
Msg.perp.openPosition({
tokenPair: pair,
baseAssetAmountLimit: 0,
@@ -114,19 +144,25 @@ let msgs: TxMessage[] = [
tokenPair: pair,
margin: newCoin("20", "unusd"),
}),
+ Msg.perp.removeMargin({
+ tokenPair: pair,
+ sender: fromAddr,
+ margin: newCoin("5", "unusd"),
+ }),
+ // final margin value of 10 (open) + 20 (add) - 5 (remove) = 25
]
-let txResp: DeliverTxResponse = await sdk.tx.signAndBroadcast(...msgs)
+const txResp = await signingClient.signAndBroadcast(fromAddr, msgs, "auto")
```
## Codebase structure
-| Directories of `@nibiruchain/nibijs` | Purpose/Utility |
-| :-------- | -------- |
-| `common` | home to several commonly needed types, constants and configurations such as Network.
-| `msg` | Implements functions for creating messages (`Msg`s). These are objects that trigger state-transitions and get wrapped into transactions.
-| `query` | For querying state via the consensus engine of a full-node and the application blockchain interface (ABCI).
-| `tx` | For signing and to submitting transactions given a set of `Msg` objects.
-| `wallet` | A simple wrapper around the Keplr wallet. This module will grow as support is added for other wallets (like MetaMask). |
+| Directories of `@nibiruchain/nibijs` | Purpose/Utility |
+| :----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| `common` | home to several commonly needed types, constants and configurations such as Network. |
+| `msg` | Implements functions for creating messages (`Msg`s). These are objects that trigger state-transitions and get wrapped into transactions. |
+| `query` | For querying state via the consensus engine of a full-node and the application blockchain interface (ABCI). |
+| `tx` | For signing and to submitting transactions given a set of `Msg` objects. |
+| `wallet` | A simple wrapper around the Keplr wallet. This module will grow as support is added for other wallets (like MetaMask). |
`@nibiruchain/protojs` provides types generated from the protocol buffers of the Cosmos-SDK, Tendermint Core, and Nibiru Chain. For most use cases, it won't be necessary to interact with this layer.
@@ -138,23 +174,28 @@ let txResp: DeliverTxResponse = await sdk.tx.signAndBroadcast(...msgs)
TODO
-->
-## Development Quick Start
+## Development Quick Start
1. First install yarn.
+
```sh
npm install -g yarn
```
-2. Then, install package dependencies. At the root of the repository, run
+2. Then, install package dependencies. At the root of the repository, run
+
```sh
yarn
```
+
3. Lastly, compile the code in each package.
+
```sh
yarn build
```
See [HACKING.md](https://github.com/NibiruChain/ts-sdk/blob/main/HACKING.md) for the full development guide. It includes instructions on:
+
1. Running tests
2. Generating code for the @nibiruchain/protojs package
3. Generating documentation in HTML or Markdown from the comments of @nibiruchain/nibijs